'总账录入',
'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([
]);
}
}