generated from liutk/owl-admin-base
90 lines
3.4 KiB
PHP
90 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use App\Enums\CheckStatus;
|
|
use Slowlyo\OwlAdmin\Renderers\DrawerAction;
|
|
|
|
trait HasCheckActions
|
|
{
|
|
public function applyAction()
|
|
{
|
|
return amisMake()
|
|
->AjaxAction()
|
|
->label('发起审核')
|
|
->level('link')
|
|
->api(amisMake()->BaseApi()->url(admin_url('api/workflow/apply'))->method('post')->data([
|
|
'id' => '${workflow.id}',
|
|
'user' => '${employee_id}',
|
|
]))
|
|
->confirmText(__('admin.confirm'))
|
|
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}');
|
|
}
|
|
|
|
/**
|
|
* 审批操作
|
|
*/
|
|
public function approveAction(): DrawerAction
|
|
{
|
|
return amis()->DrawerAction()->icon('fa fa-check-square')->label('审核')->level('link')->drawer(
|
|
amis()->Drawer()->title('审核')->body([
|
|
amis()->Form()->title('')
|
|
->api('post:'.admin_url('api/workflow/approve'))
|
|
->body([
|
|
amis()->HiddenControl()->name('id')->value('${workflow.id}'),
|
|
amis()->RadiosControl('approval_results', '审核结果')
|
|
->options([
|
|
['label' => '通过', 'value' => 1],
|
|
['label' => '拒绝', 'value' => 2],
|
|
])
|
|
->selectFirst()
|
|
->required(),
|
|
amis()->TextareaControl('remarks', '拒绝原因')
|
|
->visibleOn('${approval_results == 2}')
|
|
->required()
|
|
->minRows(15),
|
|
]),
|
|
])->size('lg')
|
|
)->visibleOn('${workflow.check_status == '.CheckStatus::Processing->value.'}');
|
|
}
|
|
|
|
public function cancelAction()
|
|
{
|
|
return amisMake()
|
|
->AjaxAction()
|
|
->label('取消审核')
|
|
->level('link')
|
|
->api(amisMake()->BaseApi()->url(admin_url('api/workflow/cancel'))->method('post')->data([
|
|
'id' => '${workflow.id}'
|
|
]))
|
|
->confirmText(__('admin.confirm'))
|
|
->visibleOn('${workflow.check_status == '.CheckStatus::Processing->value.'}');
|
|
}
|
|
|
|
public function succesAction()
|
|
{
|
|
return amisMake()
|
|
->AjaxAction()
|
|
->label('审核通过')
|
|
->level('link')
|
|
->api('post:' . admin_url('api/workflow/success?id=${workflow.id}'))
|
|
->confirmText(__('admin.confirm'))
|
|
->visibleOn('${workflow.check_status == '.CheckStatus::Processing->value.'}');
|
|
}
|
|
|
|
public function failAction()
|
|
{
|
|
return amisMake()
|
|
->DialogAction()
|
|
->label('审核不通过')
|
|
->level('link')
|
|
->dialog(amisMake()->Dialog()->title('审核不通过')->body(
|
|
amisMake()->Form()->title('')->api('post:'.admin_url('api/workflow/fail'))->body([
|
|
amisMake()->HiddenControl()->name('id')->value('${workflow.id}'),
|
|
amisMake()->TextControl()->name('remarks')->label(__('workflow_log.remarks'))->required(),
|
|
])
|
|
))
|
|
->visibleOn('${workflow.check_status == '.CheckStatus::Processing->value.'}');
|
|
}
|
|
}
|