'总账录入', 'plan_performances' => '业绩指标', 'plan_hygienes' => '清洁卫生', ]; protected array $planableTypeLabelMap = [ 'plan_ledgers' => '总账录入', 'plan_performances' => '业绩指标', 'plan_hygienes' => '清洁卫生', ]; public function list(): Page { $crud = $this->baseCRUD() ->headerToolbar([ $this->createTypeButton('drawer', 'lg') ->visible(Admin::user()->can('admin.plan.plans.create')), ...$this->baseHeaderToolBar(), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amis()->TextControl() ->name('name') ->label(__('plan.plan.name')) ->placeholder('计划名称') ->clearable(), amis()->SelectControl() ->name('planable_type') ->label(__('plan.plan.type')) ->multiple() ->options($this->planableTypes) ->clearable(), amis()->SelectControl() ->name('plan_status') ->label(__('plan.plan.status')) ->multiple() ->options(PlanStatus::options()) ->clearable(), ]), ])) ->columns([ amis()->TableColumn('id', __('plan.plan.id')), amis()->TableColumn('name', __('plan.plan.name')), amis()->TableColumn('planable_type', __('plan.plan.type'))->type('mapping')->map($this->planableTypeLabelMap), amis()->TableColumn('plan_status', __('plan.plan.status'))->type('mapping')->map(PlanStatus::labelMap()), amis()->TableColumn('created_at', __('plan.plan.created_at')), $this->rowActions([ $this->rowEditTypeButton('drawer', 'lg') ->visible(Admin::user()->can('admin.plan.plans.update')) ->visibleOn('${plan_status == '.PlanStatus::Pending->value.'}'), $this->rowDeleteButton() ->visible(Admin::user()->can('admin.plan.plans.delete')) ->visibleOn('${plan_status == '.PlanStatus::Pending->value.'}'), $this->rowShowButton() ->visible(Admin::user()->can('admin.plan.plans.view')), ]), ]); return $this->baseList($crud); } public function form(): Form { return $this->baseForm()->title('')->body([ amis()->SelectControl() ->name('planable_type') ->label(__('plan.plan.type')) ->options(Arr::except($this->planableTypes, ['plan_ledgers'])) ->required() ->disabledOn('${planable_id > 0}'), amis()->TextControl() ->name('name') ->label(__('plan.plan.name')) ->placeholder(__('plan.plan.name')) ->required(), // 业绩指标 amis()->MonthControl() ->name('plan_performance[month]') ->label(__('plan.plan.month')) ->value('${planable.month}') ->required() ->valueFormat('YYYY-MM') ->visibleOn('${planable_type == "plan_performances"}'), amis()->TreeSelectControl() ->name('plan_performance[store_category_id]') ->label(__('plan.plan.store_category_id')) ->source(admin_url('api/keywords/tree-list?parent_key=store_category')) ->labelField('name') ->valueField('key') ->onlyLeaf(true) ->value('${planable.store_category_id}') ->required() ->visibleOn('${planable_type == "plan_performances"}'), amis()->SelectControl() ->name('plan_performance[store_level_id]') ->label(__('plan.plan.store_level_id')) ->source(admin_url('api/keywords/tree-list?parent_key=store_level')) ->labelField('name') ->valueField('key') ->value('${planable.store_level_id}') ->clearable() ->visibleOn('${planable_type == "plan_performances"}'), amis()->NumberControl() ->name('plan_performance[performance]') ->label(__('plan.plan.performance')) ->placeholder(__('plan.plan.performance')) ->value('${planable.performance}') ->precision(2) ->showSteps(false) ->required() ->visibleOn('${planable_type == "plan_performances"}'), // 清洁卫生 amis()->MonthControl() ->name('plan_hygiene[month]') ->label(__('plan.plan.month')) ->value('${planable.month}') ->required() ->valueFormat('YYYY-MM') ->visibleOn('${planable_type == "plan_hygienes"}'), ]); } public function detail(): Form { return $this->baseDetail()->title('')->body([ ]); } }