From 24e6ac6a7d4a411cb4d7774b672911d08ef913e5 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 14 Apr 2024 23:53:16 +0800 Subject: [PATCH] Update --- app/Admin/Controllers/Plan/PlanController.php | 16 ++++++++++++++-- app/Admin/Services/Plan/PlanService.php | 2 +- app/Models/PlanHygiene.php | 16 ++++++++++++++++ ...4_04_14_211927_create_plan_hygienes_table.php | 1 + lang/zh_CN/plan.php | 5 +++-- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/app/Admin/Controllers/Plan/PlanController.php b/app/Admin/Controllers/Plan/PlanController.php index bdacba5..e51793b 100644 --- a/app/Admin/Controllers/Plan/PlanController.php +++ b/app/Admin/Controllers/Plan/PlanController.php @@ -108,7 +108,7 @@ class PlanController extends AdminController ->visibleOn('${planable_type == "plan_performances"}'), amis()->TreeSelectControl() ->name('plan_performance[store_category_id]') - ->label(__('plan.plan.store_category_id')) + ->label(__('plan.plan.store_category')) ->source(admin_url('api/keywords/tree-list?parent_key=store_category')) ->labelField('name') ->valueField('key') @@ -118,7 +118,7 @@ class PlanController extends AdminController ->visibleOn('${planable_type == "plan_performances"}'), amis()->SelectControl() ->name('plan_performance[store_level_id]') - ->label(__('plan.plan.store_level_id')) + ->label(__('plan.plan.store_level')) ->source(admin_url('api/keywords/tree-list?parent_key=store_level')) ->labelField('name') ->valueField('key') @@ -143,6 +143,18 @@ class PlanController extends AdminController ->required() ->valueFormat('YYYY-MM') ->visibleOn('${planable_type == "plan_hygienes"}'), + amis()->SelectControl() + ->name('plan_hygiene[store_ids]') + ->label(__('plan.plan.store')) + ->value('${planable.store_ids}') + ->multiple() + ->joinValues(false) + ->extractValue(true) + ->source(admin_url('api/stores?_all=1')) + ->labelField('title') + ->valueField('id') + ->searchable() + ->visibleOn('${planable_type == "plan_hygienes"}'), ]); } diff --git a/app/Admin/Services/Plan/PlanService.php b/app/Admin/Services/Plan/PlanService.php index 6e1e826..6e726da 100644 --- a/app/Admin/Services/Plan/PlanService.php +++ b/app/Admin/Services/Plan/PlanService.php @@ -62,7 +62,7 @@ class PlanService extends BaseService $planable = PlanPerformance::create($data['plan_performance']); break; - case 'plan_performances': + case 'plan_hygienes': $planable = PlanHygiene::create($data['plan_hygiene']); break; } diff --git a/app/Models/PlanHygiene.php b/app/Models/PlanHygiene.php index 92375ae..30c3800 100644 --- a/app/Models/PlanHygiene.php +++ b/app/Models/PlanHygiene.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphOne; @@ -12,10 +13,25 @@ class PlanHygiene extends Model protected $fillable = [ 'month', + 'store_ids', ]; public function plan(): MorphOne { return $this->morphOne(Plan::class, 'planable'); } + + protected function storeIds(): Attribute + { + return Attribute::make( + get: function (mixed $value) { + if (! is_array($photos = json_decode($value ?? '', true))) { + $photos = []; + } + + return $photos; + }, + set: fn (mixed $value) => json_encode(is_array($value) ? $value : []), + ); + } } diff --git a/database/migrations/2024_04_14_211927_create_plan_hygienes_table.php b/database/migrations/2024_04_14_211927_create_plan_hygienes_table.php index 5ac49c5..d04ae5c 100644 --- a/database/migrations/2024_04_14_211927_create_plan_hygienes_table.php +++ b/database/migrations/2024_04_14_211927_create_plan_hygienes_table.php @@ -14,6 +14,7 @@ return new class extends Migration Schema::create('plan_hygienes', function (Blueprint $table) { $table->id(); $table->string('month')->comment('月份: 2024-04'); + $table->json('store_ids')->nullable()->comment('门店'); $table->timestamps(); }); } diff --git a/lang/zh_CN/plan.php b/lang/zh_CN/plan.php index 4d40615..ec98acb 100644 --- a/lang/zh_CN/plan.php +++ b/lang/zh_CN/plan.php @@ -9,8 +9,9 @@ return [ 'created_at' => '创建时间', 'updated_at' => '更新时间', 'month' => '月份', - 'store_category_id' => '门店分类', - 'store_level_id' => '门店等级', + 'store' => '门店', + 'store_category' => '门店分类', + 'store_level' => '门店等级', 'performance' => '业绩', ], ];