generated from liutk/owl-admin-base
90 lines
3.6 KiB
PHP
90 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use App\Enums\CheckStatus;
|
|
use Slowlyo\OwlAdmin\Renderers\Service;
|
|
|
|
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 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=${id}'))
|
|
->confirmText(__('admin.confirm'))
|
|
->visibleOn('${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('${id}'),
|
|
amisMake()->TextControl()->name('remarks')->label(__('workflow_log.remarks'))->required(),
|
|
])
|
|
))
|
|
->visibleOn('${check_status == '.CheckStatus::Processing->value.'}');
|
|
}
|
|
|
|
/**
|
|
* 审批流水
|
|
*/
|
|
public function baseWorkflowLogList($reloadAfterCheckSuccess = null, $reloadAfterCheckFailed = null): Service
|
|
{
|
|
if (func_num_args() === 1 && ! is_null($reloadAfterCheckSuccess)) {
|
|
$reloadAfterCheckFailed = $reloadAfterCheckSuccess;
|
|
}
|
|
|
|
return amis()->Service()
|
|
->initFetch(false)
|
|
->api(admin_url('api/workflow/logs?id=${workflow.id}'))
|
|
->body(
|
|
amis()->Table()->columnsTogglable(false)->columns([
|
|
amis()->TableColumn()->name('batch_id')->label(__('workflow_log.batch_id')),
|
|
amis()->TableColumn()->name('check_name')->label(__('workflow_log.check_name')),
|
|
amis()->TableColumn()->name('check_user.name')->label(__('workflow_log.check_user_id')),
|
|
amis()->TableColumn()->name('check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options(2)),
|
|
amis()->TableColumn()->name('checked_at')->label(__('workflow_log.checked_at')),
|
|
amis()->TableColumn()->name('remarks')->label(__('workflow_log.remarks')),
|
|
])->itemActions([
|
|
$this->succesAction()->visibleOn('${checkable}')->reload($reloadAfterCheckSuccess),
|
|
$this->failAction()->visibleOn('${checkable}')->reload($reloadAfterCheckFailed),
|
|
])
|
|
);
|
|
}
|
|
}
|