store-manage/app/Admin/Controllers/Store/EmployeeController.php

72 lines
2.8 KiB
PHP

<?php
namespace App\Admin\Controllers\Store;
use App\Admin\Controllers\AdminController;
use App\Admin\Services\StoreEmployeeService;
use Slowlyo\OwlAdmin\Admin;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Renderers\Page;
/**
* 店员管理
*/
class EmployeeController extends AdminController
{
protected string $serviceName = StoreEmployeeService::class;
public function list(): Page
{
$crud = $this->baseCRUD()
->tableLayout('fixed')
->headerToolbar([
$this->createButton(true)->visible(Admin::user()->can('admin.store.employees.create')),
...$this->baseHeaderToolBar(),
])
->bulkActions([])
->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([
amisMake()->SelectControl()->name('store_id')->label(__('employee.store_id'))
->source(admin_url('api/stores?_all=1'))
->labelField('title')
->valueField('id')
->columnRatio(3)
->clearable(),
amisMake()->TextControl()->name('employee_search')->label(__('store.employees'))->placeholder('姓名/电话')->columnRatio(3)->clearable(),
]),
]))
->columns([
amisMake()->TableColumn()->name('id')->label(__('employee.id')),
amisMake()->TableColumn()->name('store.title')->label(__('employee.store_id')),
amisMake()->TableColumn()->name('name')->label(__('store.employees')),
amisMake()->TableColumn()->name('phone')->label(__('employee.phone')),
$this->rowActions([
// $this->rowEditButton(true)->visible(Admin::user()->can('admin.store.employees.update')),
$this->rowDeleteButton()->visible(Admin::user()->can('admin.store.employees.delete')),
]),
]);
return $this->baseList($crud);
}
public function form($edit): Form
{
return $this->baseForm()->title('')->body([
amisMake()->SelectControl()->name('store_id')->label(__('employee.store_id'))
->source(admin_url('api/stores?_all=1'))
->labelField('title')
->valueField('id')
->required(),
amisMake()->SelectControl()->name('employee_id')->label(__('store.employees'))
->source(admin_url('api/employees?_all=1&store_id=0&master_store_id=0&enable=1'))
->labelField('name')
->valueField('id')
->multiple()
->joinValues(false)
->extractValue()
->searchable()
->required(),
]);
}
}