From afe6a88ceaaaa504627dec3fddac44c4bf7fed6a Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 16 Oct 2021 14:13:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=8C=E4=B8=9A=E4=BA=A7=E5=93=81=E6=8C=89?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E8=B4=AD=E4=B9=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/IndustryOrderController.php | 19 ++++++- .../Renderable/SelectIndustryProductSpec.php | 50 +++++++++++++++++++ resources/lang/zh_CN/product.php | 1 + 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 app/AdminAgent/Renderable/SelectIndustryProductSpec.php diff --git a/app/AdminAgent/Controllers/IndustryOrderController.php b/app/AdminAgent/Controllers/IndustryOrderController.php index c7fe590..9f8470f 100644 --- a/app/AdminAgent/Controllers/IndustryOrderController.php +++ b/app/AdminAgent/Controllers/IndustryOrderController.php @@ -2,12 +2,14 @@ namespace App\AdminAgent\Controllers; +use App\AdminAgent\Renderable\SelectIndustryProductSpec; use App\AdminAgent\Repositories\IndustryOrder; use App\Common\OrderStatus; use App\Common\PayType; use App\Common\ProductStatus; use App\Models\AdminSetting; use App\Models\IndustryProduct; +use App\Models\IndustryProductSpec; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; @@ -139,6 +141,13 @@ class IndustryOrderController extends AdminController Admin::exit('产品已下架或库存不足'); } + $form->selectTable('industry_product_spec_id', '选择产品规格') + ->required() + ->title('选择产品规格') + ->dialogWidth('80%;min-width:825px;') + ->from(SelectIndustryProductSpec::make(['industry_product_id' => request()->input('pid')])) + ->model(IndustryProductSpec::class); + $form->hidden('pid')->value($industry->id); //pid要跟上面的request中的一样,否则提交出错 $form->number('num') ->min($industry->min_sale)->required() @@ -152,6 +161,8 @@ class IndustryOrderController extends AdminController $form->text('', '库存')->default($industry->stock)->disable(); $form->text('', '起购数量')->default($industry->min_sale)->disable(); $form->image('picture', '产品图')->default($industry->pictures)->disable(); + $form->display('', '旅游须知')->default(fn() => preg_replace('/.*?<\/script>/is', '', $industry->know))->disable(); + $form->display('', '产品详情')->default(fn() => preg_replace('/.*?<\/script>/is', '', $industry->content))->disable(); })->saving(function (Form $form) use ($industry) { //禁止编辑 if ($form->isEditing()) { @@ -173,6 +184,12 @@ class IndustryOrderController extends AdminController $micro = str_pad(floor($micro * 1000000), 6, 0, STR_PAD_LEFT); $order_no = date('ymdHis', $sec) . $micro . mt_rand(1000, 9999); + //产品规格处理 + $spec = IndustryProductSpec::where('industry_product_id', $form->pid)->find($form->industry_product_spec_id); + if (!$spec) { + return $form->response()->error('您选择的产品规格不存在'); + } + $form->deleteInput(['pid', 'picture']); $form->hidden(['industry_product_id', 'supplier_id', 'agent_id', 'order_no', 'price', 'title', 'picture', 'status', 'pay_type', 'paid_at', 'verify_code', 'trade_deposit', 'timeout']); @@ -184,7 +201,7 @@ class IndustryOrderController extends AdminController $form->supplier_id = $industry->supplier_id; $form->agent_id = Admin::user()->id; $form->order_no = $order_no; - $form->price = $form->num * $industry->price; + $form->price = $form->num * $spec->price; $form->title = $industry->title; $form->picture = $industry->pictures[0] ?? '' ; $form->status = OrderStatus::OFFLINE_UNPAID; diff --git a/app/AdminAgent/Renderable/SelectIndustryProductSpec.php b/app/AdminAgent/Renderable/SelectIndustryProductSpec.php new file mode 100644 index 0000000..df8f5ef --- /dev/null +++ b/app/AdminAgent/Renderable/SelectIndustryProductSpec.php @@ -0,0 +1,50 @@ +id; + Admin::translation('product'); + return Grid::make(new IndustryProductSpec(), function (Grid $grid) { + $grid->disableActions(); + $grid->disableBatchDelete(); + $grid->disableBatchActions(); + + $grid->model()->where([ + ['stock', '>', 0], + ['date', '>=', date('Y-m-d')], + ['industry_product_id', '=', $this->industry_product_id], + ])->selectRaw('*,concat(name, " | ", date) AS title'); + + $grid->quickSearch(['name', 'date'])->placeholder('搜索规格名称、日期'); + + $grid->column('id'); + $grid->column('name'); + $grid->column('date'); + $grid->column('stock'); + $grid->column('original_price'); + $grid->column('price'); + + $grid->paginate(15); + + $grid->filter(function (Grid\Filter $filter) { + $filter->panel(); + $filter->like('name')->width(3); + $filter->like('date')->width(2); + }); + }); + } +} diff --git a/resources/lang/zh_CN/product.php b/resources/lang/zh_CN/product.php index eb044db..9f5a84f 100644 --- a/resources/lang/zh_CN/product.php +++ b/resources/lang/zh_CN/product.php @@ -21,6 +21,7 @@ return [ 'title' => '标题', 'verify_mobile' => '核销手机号', 'spec' => '产品规格', + 'date' => '日期', 'supplier' => trans('supplier.fields'), ], 'options' => [