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