store-manage/app/Traits/HasCheckActions.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.'}');
}
}