generated from liutk/owl-admin-base
workflow
parent
dfb2b08cfa
commit
308eab0e60
|
|
@ -33,7 +33,7 @@ class KeywordController extends AdminController
|
|||
])
|
||||
->bulkActions([])
|
||||
->filter($this->baseFilter()->body([
|
||||
amis()->TextControl('name', __('admin.keyword'))
|
||||
amis()->TextControl('search', __('admin.keyword'))
|
||||
->size('md')
|
||||
->placeholder(__('admin.keywords.search_name')),
|
||||
amis()->TextControl('parent_name', __('admin.keywords.parent_keyword'))
|
||||
|
|
|
|||
|
|
@ -95,20 +95,64 @@ class WorkflowController extends AdminController
|
|||
|
||||
public function form($edit): Form
|
||||
{
|
||||
return $this->baseForm()->title('')->body([
|
||||
return $this->baseForm()->title('')->className('h-screen')->body([
|
||||
amisMake()->TextControl()->name('key')->label(__('workflow.key'))->required(),
|
||||
amisMake()->TextControl()->name('name')->label(__('workflow.name'))->required(),
|
||||
amisMake()->TableControl()->name('config')->label(__('workflow.config'))->showIndex()->addable()->removable()->needConfirm(false)->draggable()->columns([
|
||||
amisMake()->TableControl()->name('config')->label(__('workflow.config'))->showIndex()->addable()->removable()->needConfirm(false)->columns([
|
||||
amisMake()->SelectControl()->options(CheckType::options())->name('type')->label(__('workflow.type')),
|
||||
// amisMake()->PickerControl()
|
||||
// ->source(admin_url('api/keywords/tree-list?parent_key=job'))
|
||||
// ->valueField('key')
|
||||
// ->labelField('name')
|
||||
// ->multiple(false)
|
||||
// ->size('lg')
|
||||
// ->pickerSchema(
|
||||
// amis()->CRUDTable()->mode('table')->loadDataOnce(true)->syncLocation(false)->draggable(false)->columns([
|
||||
// amis()->TableColumn()->name('key')->label(__('keyword.key')),
|
||||
// amis()->TableColumn()->name('name')->label(__('keyword.name')),
|
||||
// ])
|
||||
// )
|
||||
// ->name('job')
|
||||
// ->label(__('workflow.job')),
|
||||
// amis()->PickerControl()
|
||||
// ->source(admin_url('api/employees?enable=1'))
|
||||
// ->valueField('id')
|
||||
// ->labelField('name')
|
||||
// ->multiple(false)
|
||||
// ->size('lg')
|
||||
// ->pickerSchema(
|
||||
// amis()->CRUDTable()->mode('table')->syncLocation(false)->draggable(false)
|
||||
// ->filter($this->baseFilter()->body([
|
||||
// amisMake()->TextControl()->name('name')->label(__('employee.name'))->size('md')->clearable(),
|
||||
// amisMake()->TextControl()->name('phone')->label(__('employee.phone'))->size('md')->clearable(),
|
||||
// ]))
|
||||
// ->columns([
|
||||
// amis()->TableColumn()->name('id')->label(__('employee.id')),
|
||||
// amis()->TableColumn()->name('name')->label(__('employee.name')),
|
||||
// amis()->TableColumn()->name('phone')->label(__('employee.phone')),
|
||||
// ])
|
||||
// )
|
||||
// ->name('user')
|
||||
// ->label(__('workflow.user')),
|
||||
// amis()->PickerControl()
|
||||
// ->source(admin_url('api/workflow/value-options?type=${type}'))
|
||||
// ->multiple(false)
|
||||
// ->pickerSchema(amisMake()->ListRenderer()->set('mode', 'list')->listItem(amisMake()->ListItem()->title('${label}')->body('${phone}')))
|
||||
// ->pickerSchema(amisMake()->CRUD2Table()->mode('list')->listItem(amisMake()->ListItem()->title('${label}')->body('${phone}')))
|
||||
// ->size('lg')
|
||||
// ->pickerSchema(
|
||||
// amis()->CRUD2Table()->mode('table')->syncLocation(false)->draggable(false)
|
||||
// ->filter($this->baseFilter()->body([
|
||||
// amisMake()->TextControl()->name('search')->label('关键字')->size('md')->clearable(),
|
||||
// ]))
|
||||
// ->columns([
|
||||
// amis()->TableColumn()->name('value'),
|
||||
// amis()->TableColumn()->name('label'),
|
||||
// ])
|
||||
// )
|
||||
// ->name('value')
|
||||
// ->label(__('workflow.value')),
|
||||
amisMake()->SelectControl()
|
||||
->source(admin_url('api/workflow/value-options?type=${type}'))
|
||||
->searchable()
|
||||
->name('value')
|
||||
->label(__('workflow.value')),
|
||||
]),
|
||||
|
|
@ -129,11 +173,14 @@ class WorkflowController extends AdminController
|
|||
public function getValueOptions(Request $request)
|
||||
{
|
||||
$type = $request->input('type');
|
||||
$options = match($type) {
|
||||
CheckType::Job->value => $this->getJobOptions(),
|
||||
CheckType::User->value => $this->getEmployeeOptions(),
|
||||
default => []
|
||||
};
|
||||
$options = [];
|
||||
if ($type == CheckType::Job->value) {
|
||||
$options = Keyword::where('parent_key', 'job')->select(['key as value', 'name as label'])->get();
|
||||
}
|
||||
if ($type == CheckType::User->value) {
|
||||
$options = Employee::enable()->select(['id as value', 'name as label'])->get();
|
||||
}
|
||||
|
||||
return $this->response()->success($options);
|
||||
}
|
||||
|
||||
|
|
@ -255,22 +302,4 @@ class WorkflowController extends AdminController
|
|||
|
||||
return $this->response()->success($list);
|
||||
}
|
||||
|
||||
public function getJobOptions()
|
||||
{
|
||||
if (! $this->jobOptions) {
|
||||
$this->jobOptions = Keyword::where('parent_key', 'job')->sort()->select(['key as value', 'name as label'])->get();
|
||||
}
|
||||
|
||||
return $this->jobOptions;
|
||||
}
|
||||
|
||||
public function getEmployeeOptions()
|
||||
{
|
||||
if (! $this->employeeOptions) {
|
||||
$this->employeeOptions = Employee::enable()->select(['id as value', 'name as label', 'phone'])->get();
|
||||
}
|
||||
|
||||
return $this->employeeOptions;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,13 +7,14 @@ use EloquentFilter\ModelFilter;
|
|||
|
||||
class KeywordFilter extends ModelFilter
|
||||
{
|
||||
/**
|
||||
* 关键字
|
||||
*/
|
||||
public function search($name)
|
||||
{
|
||||
return $this->where('name', 'like', '%'.$name.'%')->orWhere('key', 'like', '%'.$name.'%');
|
||||
}
|
||||
|
||||
public function name($name)
|
||||
{
|
||||
return $this->where('name', 'like', '%'.$name.'%')
|
||||
->orWhere('key', 'like', '%'.$name.'%');
|
||||
return $this->where('name', 'like', '%'.$name.'%');
|
||||
}
|
||||
|
||||
public function parentName($parent_name)
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@ class WorkFlowService extends BaseService
|
|||
/**
|
||||
* 是否有权限审核
|
||||
* 1. 申请人 == 审核人
|
||||
* 2. 申请人的职位 高于 审核人职位
|
||||
* 2. 申请人的 门店+职位 = 审核 门店+职位
|
||||
*/
|
||||
public function authCheck(Employee $user, WorkflowLog $log)
|
||||
{
|
||||
|
|
@ -303,6 +303,12 @@ class WorkFlowService extends BaseService
|
|||
$data['config'] = null;
|
||||
break;
|
||||
}
|
||||
if (!isset($item['value'])) {
|
||||
$item['value'] = match($item['type']) {
|
||||
CheckType::Job->value => $item['job'],
|
||||
CheckType::User->value => $item['user'],
|
||||
};
|
||||
}
|
||||
$item['title'] = match ($item['type']) {
|
||||
CheckType::Job->value => CheckType::Job->text(),
|
||||
CheckType::User->value => CheckType::User->text(),
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
namespace App\Models;
|
||||
|
||||
use App\Admin\Components;
|
||||
use App\Filters\KeywordFilter;
|
||||
use App\Admin\Filters\KeywordFilter;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
|
|
|||
|
|
@ -18,9 +18,9 @@ class EmployeeSeeder extends Seeder
|
|||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// DB::table('employee_jobs')->truncate();
|
||||
// Employee::where('admin_user_id', '!=', 1)->delete();
|
||||
// (new EmployeeFactory)->count(100)->create();
|
||||
DB::table('employee_jobs')->truncate();
|
||||
Employee::where('admin_user_id', '!=', 1)->delete();
|
||||
(new EmployeeFactory)->count(100)->create();
|
||||
|
||||
// Store::truncate();
|
||||
// Store::factory()->count(10)->create();
|
||||
|
|
|
|||
|
|
@ -9,4 +9,6 @@ return [
|
|||
'config' => '流程配置',
|
||||
'type' => '审核类型',
|
||||
'value' => '审核人',
|
||||
'job' => '职位',
|
||||
'user' => '员工',
|
||||
];
|
||||
|
|
|
|||
Loading…
Reference in New Issue