generated from liutk/owl-admin-base
fix bug
parent
8f84d61d50
commit
ace5455b09
|
|
@ -56,25 +56,20 @@ class AgreementController extends AdminController
|
|||
amisMake()->TableColumn()->name('name')->label(__('agreement.name')),
|
||||
amisMake()->TableColumn()->name('employee.name')->label(__('agreement.employee_id')),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('agreement.created_at')),
|
||||
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
||||
$this->rowShowTypeButton('drawer', 'lg')
|
||||
->visible($user->can('admin.agreement.view')),
|
||||
$this->rowEditTypeButton('drawer', 'lg')
|
||||
->visible($user->can('admin.agreement.update'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible($user->can('admin.agreement.delete'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->applyAction(),
|
||||
$this->cancelAction(),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
$this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "edit")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->applyAction()->visibleOn('${ARRAYINCLUDES(row_actions, "apply")}'),
|
||||
// $this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
amisMake()->AjaxAction()
|
||||
->label('打包下载')
|
||||
->api(admin_url('agreement/download?id=${id}'))
|
||||
->level('link')
|
||||
->redirect(url('admin-api/_download_export') . '?path=${path}')
|
||||
->visible($user->can('admin.agreement.download'))
|
||||
->visibleOn('${workflow.check_status == '.CheckStatus::Success->value.'}'),
|
||||
->visibleOn('${ARRAYINCLUDES(row_actions, "download")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
@ -112,7 +107,7 @@ class AgreementController extends AdminController
|
|||
['label' => __('agreement.images'), 'content' => amisMake()->Images()->name('images')->src('${preview}')->enlargeAble(), 'span' => 3],
|
||||
['label' => __('workflow_log.check_status'), 'content' => amisMake()->Mapping()->name('workflow.check_status')->map(CheckStatus::options())],
|
||||
['label' => __('workflow_log.checked_at'), 'content' => '${workflow.checked_at}'],
|
||||
['label' => __('workflow_log.remarks'), 'content' => '${workflow.check_remarks}'],
|
||||
['label' => __('workflow_log.remarks'), 'content' => '${workflow_log.check_remarks}'],
|
||||
]);
|
||||
|
||||
return $this->baseDetail()->id($detailId)->title('')->onEvent([
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class EmployeeController extends AdminController
|
|||
amisMake()->TableColumn()->name('jobs')->label(__('employee.jobs'))->type('each')->items(amisMake()->Tag()->label('${name}')),
|
||||
amisMake()->TableColumn()->name('phone')->label(__('employee.phone')),
|
||||
amisMake()->TableColumn()->name('employee_status_text')->label(__('employee.employee_status'))->set('type', 'tag')->set('color', '${employee_status_color}'),
|
||||
amisMake()->TableColumn()->name('join_at')->label(__('employee.join_at')),
|
||||
amisMake()->TableColumn()->name('store.title')->label(__('employee.store_id')),
|
||||
amisMake()->TableColumn()->name('remarks')->label(__('employee.remarks')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.employees.view')),
|
||||
|
|
@ -100,6 +100,7 @@ class EmployeeController extends AdminController
|
|||
public function detail(): Form
|
||||
{
|
||||
return $this->baseDetail()->title('')->body(amisMake()->Property()->items([
|
||||
['label' => __('employee.store_id'), 'content' => '${store.title}', 'span' => 3],
|
||||
['label' => __('employee.avatar'), 'content' => amisMake()->Avatar()->src('${avatar}')],
|
||||
['label' => __('employee.name'), 'content' => '${name}'],
|
||||
['label' => __('admin.username'), 'content' => '${admin_user.username}'],
|
||||
|
|
|
|||
|
|
@ -59,21 +59,18 @@ class HolidayController extends AdminController
|
|||
amisMake()->TableColumn()->name('store.title')->label(__('employee_sign.store_id')),
|
||||
amisMake()->TableColumn()->name('employee.name')->label(__('holiday_apply.employee_id')),
|
||||
amisMake()->TableColumn()->name('type.name')->label(__('holiday_apply.type_id')),
|
||||
amisMake()->TableColumn()->name('reason')->label(__('holiday_apply.reason')),
|
||||
// amisMake()->TableColumn()->name('reason')->label(__('holiday_apply.reason')),
|
||||
amisMake()->TableColumn()->name('start_at')->label(__('holiday_apply.start_at')),
|
||||
amisMake()->TableColumn()->name('end_at')->label(__('holiday_apply.end_at')),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('holiday_apply.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('holiday_apply.created_at')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.holiday.view')),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')
|
||||
// ->visible(Admin::user()->can('admin.hr.holiday.update'))
|
||||
// ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible(Admin::user()->can('admin.hr.holiday.delete'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->applyAction(),
|
||||
$this->cancelAction(),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "edit")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->applyAction()->visibleOn('${ARRAYINCLUDES(row_actions, "apply")}'),
|
||||
$this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -54,19 +54,16 @@ class OfficalBusinessController extends AdminController
|
|||
amisMake()->TableColumn()->name('start_at')->label(__('offical_business.date')),
|
||||
amisMake()->TableColumn()->name('end_at')->label(__('offical_business.date')),
|
||||
amisMake()->TableColumn()->name('address')->label(__('offical_business.address')),
|
||||
amisMake()->TableColumn()->name('reason')->label(__('offical_business.reason')),
|
||||
// amisMake()->TableColumn()->name('reason')->label(__('offical_business.reason')),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('offical_business.created_at')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.business.view')),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')
|
||||
// ->visible(Admin::user()->can('admin.hr.business.update'))
|
||||
// ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible(Admin::user()->can('admin.hr.business.delete'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->applyAction(),
|
||||
$this->cancelAction(),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->applyAction()->visibleOn('${ARRAYINCLUDES(row_actions, "apply")}'),
|
||||
$this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,17 +57,14 @@ class OvertimeController extends AdminController
|
|||
amisMake()->TableColumn()->name('date')->label(__('overtime_apply.date')),
|
||||
amisMake()->TableColumn()->name('hours')->label(__('overtime_apply.hours')),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('overtime_apply.created_at')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.overtime.view')),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')
|
||||
// ->visible(Admin::user()->can('admin.hr.overtime.update'))
|
||||
// ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible(Admin::user()->can('admin.hr.overtime.delete'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->applyAction(),
|
||||
$this->cancelAction(),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "edit")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->applyAction()->visibleOn('${ARRAYINCLUDES(row_actions, "apply")}'),
|
||||
$this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ namespace App\Admin\Controllers\Hr;
|
|||
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\EmployeePromotionService;
|
||||
use App\Enums\EmployeeStatus;
|
||||
use App\Enums\PromotionStatus;
|
||||
use App\Enums\{EmployeeStatus, CheckStatus, PromotionStatus};
|
||||
use App\Traits\HasCheckActions;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
|
|
@ -67,16 +66,13 @@ class PromotionController extends AdminController
|
|||
amisMake()->TableColumn()->name('job.name')->label(__('employee_promotion.job_id')),
|
||||
amisMake()->TableColumn()->name('invitor.name')->label(__('employee_promotion.invitor_id')),
|
||||
amisMake()->TableColumn()->name('promotion_status')->label(__('employee_promotion.promotion_status'))->set('type', 'mapping')->map(PromotionStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('employee_promotion.created_at')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.promotion.view')),
|
||||
$this->rowEditTypeButton('drawer', 'lg')
|
||||
->visible(Admin::user()->can('admin.hr.promotion.update'))
|
||||
->visibleOn('${can_update}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible(Admin::user()->can('admin.hr.promotion.delete'))
|
||||
->visibleOn('${can_update}'),
|
||||
$this->cancelAction()->visibleOn('${promotion_status == '.PromotionStatus::Processing->value.'}'),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
$this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "edit")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
@ -124,6 +120,9 @@ class PromotionController extends AdminController
|
|||
['label' => __('employee_promotion.promotion_status'), 'content' => amisMake()->Mapping()->name('promotion_status')->map(PromotionStatus::options())],
|
||||
['label' => __('employee_promotion.remarks'), 'content' => '${remarks}'],
|
||||
['label' => __('employee_promotion.created_at'), 'content' => '${created_at}', 'span' => 3],
|
||||
['label' => __('workflow_log.check_status'), 'content' => amisMake()->Mapping()->name('workflow.check_status')->map(CheckStatus::options())],
|
||||
['label' => __('workflow_log.checked_at'), 'content' => '${workflow.checked_at}'],
|
||||
['label' => __('workflow_log.remarks'), 'content' => '${workflow.check_remarks}'],
|
||||
]);
|
||||
|
||||
$data = amisMake()->Property()->items([
|
||||
|
|
|
|||
|
|
@ -53,26 +53,19 @@ class SignRepairController extends AdminController
|
|||
]),
|
||||
]))
|
||||
->columns([
|
||||
amisMake()->Column()->name('id')->label(__('employee_sign_repair.id')),
|
||||
amisMake()->Column()->name('store.title')->label(__('employee_sign_repair.store_id')),
|
||||
amisMake()->Column()->name('employee.name')->label(__('employee_sign_repair.employee_id')),
|
||||
amisMake()->Column()->name('date')->label(__('employee_sign_repair.date')),
|
||||
amisMake()->Column()->name('sign_time')->label(__('employee_sign_repair.sign_time'))
|
||||
->set('type', 'mapping')
|
||||
->map(SignTime::options()),
|
||||
amisMake()->Column()->name('workflow.check_status')->label(__('employee_sign_repair.check_status'))
|
||||
->set('type', 'mapping')
|
||||
->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('id')->label(__('employee_sign_repair.id')),
|
||||
amisMake()->TableColumn()->name('store.title')->label(__('employee_sign_repair.store_id')),
|
||||
amisMake()->TableColumn()->name('employee.name')->label(__('employee_sign_repair.employee_id')),
|
||||
amisMake()->TableColumn()->name('date')->label(__('employee_sign_repair.date')),
|
||||
amisMake()->TableColumn()->name('sign_time')->label(__('employee_sign_repair.sign_time'))->set('type', 'mapping')->map(SignTime::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()),
|
||||
amisMake()->TableColumn()->name('workflow.check_name')->label(__('workflow.value')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.repairs.view')),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')
|
||||
// ->visible(Admin::user()->can('admin.hr.repairs.update'))
|
||||
// ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->rowDeleteButton()
|
||||
->visible(Admin::user()->can('admin.hr.repairs.delete'))
|
||||
->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
|
||||
$this->applyAction(),
|
||||
$this->cancelAction(),
|
||||
$this->rowShowButton()->visibleOn('${ARRAYINCLUDES(row_actions, "view")}'),
|
||||
// $this->rowEditTypeButton('drawer', 'lg')->visibleOn('${ARRAYINCLUDES(row_actions, "edit")}'),
|
||||
$this->rowDeleteButton()->visibleOn('${ARRAYINCLUDES(row_actions, "delete")}'),
|
||||
$this->applyAction()->visibleOn('${ARRAYINCLUDES(row_actions, "apply")}'),
|
||||
$this->cancelAction()->visibleOn('${ARRAYINCLUDES(row_actions, "cancel")}'),
|
||||
]),
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,10 @@ class WorkflowController extends AdminController
|
|||
if (! $employee) {
|
||||
return $this->response()->fail('当前登录账户未关联员工');
|
||||
}
|
||||
$log = WorkflowLog::findOrFail($request->input('id'));
|
||||
$log = WorkflowLog::find($request->input('id'));
|
||||
if (!$log) {
|
||||
return $this->response()->fail('审核已取消');
|
||||
}
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
if (! $this->service->check($employee, $log, true)) {
|
||||
|
|
@ -212,7 +215,10 @@ class WorkflowController extends AdminController
|
|||
if (! $employee) {
|
||||
return $this->response()->fail('当前登录账户未关联员工');
|
||||
}
|
||||
$log = WorkflowLog::findOrFail($request->input('id'));
|
||||
$log = WorkflowLog::find($request->input('id'));
|
||||
if (!$log) {
|
||||
return $this->response()->fail('审核已取消');
|
||||
}
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
if (! $this->service->check($employee, $log, false, ['remarks' => $request->input('remarks')])) {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ class BookController extends AdminController
|
|||
$this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.train.books.create')),
|
||||
...$this->baseHeaderToolBar(),
|
||||
])
|
||||
->bulkActions([])
|
||||
->filter($this->baseFilter()->body([
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amisMake()->SelectControl()->name('category_id')->label(__('train_book.category_id'))
|
||||
|
|
@ -47,8 +46,8 @@ class BookController extends AdminController
|
|||
amisMake()->TableColumn()->name('type')->label(__('train_book.type'))->set('type', 'mapping')->map(BookType::options()),
|
||||
amisMake()->TableColumn()->name('created_at')->label(__('train_book.created_at')),
|
||||
$this->rowActions([
|
||||
$this->rowShowButton()->visible(Admin::user()->can('admin.train.books.view')),
|
||||
$this->rowEditButton()->visible(Admin::user()->can('admin.train.books.update')),
|
||||
$this->rowShowTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.train.books.view')),
|
||||
$this->rowEditTypeButton('drawer', 'lg')->closeOnOutside(false)->visible(Admin::user()->can('admin.train.books.update')),
|
||||
$this->rowDeleteButton()->visible(Admin::user()->can('admin.train.books.delete')),
|
||||
]),
|
||||
]);
|
||||
|
|
@ -65,14 +64,24 @@ class BookController extends AdminController
|
|||
->valueField('key')
|
||||
->required(),
|
||||
amisMake()->TextControl()->name('title')->label(__('train_book.title'))->required(),
|
||||
amisMake()->ImageControl()->name('cover_image')->label(__('train_book.cover_image')),
|
||||
amisMake()->ImageControl()->name('cover_image')->label(__('train_book.cover_image'))->receiver(admin_url('upload_image') . '?full-url=1'),
|
||||
amisMake()->TextControl()->name('description')->label(__('train_book.description')),
|
||||
amisMake()->RadiosControl()->options(BookType::options())->name('type')->label(__('train_book.type')),
|
||||
Components::make()->fuEditorControl('content', __('train_book.content'))->visibleOn('${type == '.BookType::Text->value.'}'),
|
||||
Components::make()->chunkFileControl('video', __('train_book.video'))->visibleOn('${type == '.BookType::Video->value.'}'),
|
||||
// amisMake()->FileControl()->name('video')->label(__('train_book.video'))->visibleOn('${type == '.BookType::Video->value.'}'),
|
||||
// amisMake()->FileControl()->multiple()->joinValues(false)->name('files')->label(__('train_book.files'))->visibleOn('${type == '.BookType::File->value.'}'),
|
||||
Components::make()->chunkFileControl('files', __('train_book.files'))->multiple()->joinValues(false)->visibleOn('${type == '.BookType::File->value.'}'),
|
||||
amisMake()->FileControl()->name('video')->label(__('train_book.video'))
|
||||
->receiver(admin_url('upload_file') . '?full-url=1')
|
||||
->startChunkApi(admin_url('start_chunk_upload_file'))
|
||||
->chunkApi(admin_url('save_chunk_upload_file'))
|
||||
->finishChunkApi(admin_url('finish_chunk_upload_file'))
|
||||
->visibleOn('${type == '.BookType::Video->value.'}'),
|
||||
amisMake()->FileControl()->name('files')->label(__('train_book.files'))
|
||||
->receiver(admin_url('upload_file') . '?full-url=1')
|
||||
->multiple()
|
||||
->joinValues(false)
|
||||
->startChunkApi(admin_url('start_chunk_upload_file'))
|
||||
->chunkApi(admin_url('save_chunk_upload_file'))
|
||||
->finishChunkApi(admin_url('finish_chunk_upload_file'))
|
||||
->visibleOn('${type == '.BookType::File->value.'}'),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ class CheckPermission
|
|||
*/
|
||||
protected $exceptPaths = [
|
||||
'/api/*',
|
||||
'/start_chunk_upload_file',
|
||||
'/save_chunk_upload_file',
|
||||
'/finish_chunk_upload_file',
|
||||
'/upload_file',
|
||||
'/upload_image',
|
||||
'/upload_rich'
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ use App\Admin\Filters\AgreementFilter;
|
|||
use App\Models\{Agreement, WorkflowCheck};
|
||||
use Illuminate\Support\Facades\{Validator, Storage};
|
||||
use Illuminate\Support\Str;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
|
||||
class AgreementService extends BaseService
|
||||
{
|
||||
|
|
@ -15,6 +18,55 @@ class AgreementService extends BaseService
|
|||
|
||||
protected string $modelFilterName = AgreementFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions(AdminUser $user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.agreement.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.agreement.update') && $model->canUpdate()) {
|
||||
array_push($actions, 'edit');
|
||||
}
|
||||
if ($user->can('admin.agreement.delete')) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if ($user->can('admin.agreement.download') && in_array($model->workflow->check_status, [CheckStatus::Success])) {
|
||||
array_push($actions, 'download');
|
||||
}
|
||||
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::None, CheckStatus::Cancel, CheckStatus::Fail])) {
|
||||
array_push($actions, 'apply');
|
||||
}
|
||||
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
if (isset($data['images']) && $data['images']) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ use App\Models\EmployeePromotion;
|
|||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Arr;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
|
||||
class EmployeePromotionService extends BaseService
|
||||
{
|
||||
|
|
@ -19,6 +22,47 @@ class EmployeePromotionService extends BaseService
|
|||
|
||||
protected string $modelFilterName = EmployeePromotionFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions(AdminUser $user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.hr.promotion.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.hr.promotion.update') && $model->canUpdate()) {
|
||||
array_push($actions, 'edit');
|
||||
}
|
||||
if ($user->can('admin.hr.promotion.delete') && $model->canUpdate()) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if (in_array($model->promotion_status, [PromotionStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
// 获取员工所在的门店
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ use App\Enums\EmployeeStatus;
|
|||
|
||||
class EmployeeService extends BaseService
|
||||
{
|
||||
protected array $withRelationships = ['jobs', 'adminUser'];
|
||||
protected array $withRelationships = ['jobs', 'adminUser', 'store'];
|
||||
|
||||
protected string $modelName = Employee::class;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,11 +3,12 @@
|
|||
namespace App\Admin\Services;
|
||||
|
||||
use App\Admin\Filters\EmployeeSignRepairFilter;
|
||||
use App\Models\Employee;
|
||||
use App\Models\{EmployeeSignRepair, EmployeeSign, EmployeeSignLog};
|
||||
use App\Models\WorkflowCheck;
|
||||
use App\Models\{EmployeeSignRepair, Employee, WorkflowCheck, EmployeeSign, EmployeeSignLog};
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
|
||||
class EmployeeSignRepairService extends BaseService
|
||||
{
|
||||
|
|
@ -17,6 +18,47 @@ class EmployeeSignRepairService extends BaseService
|
|||
|
||||
protected string $modelFilterName = EmployeeSignRepairFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions(AdminUser $user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.hr.repairs.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.hr.repairs.delete') && !in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::None, CheckStatus::Cancel, CheckStatus::Fail])) {
|
||||
array_push($actions, 'apply');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
// 获取员工所在的门店
|
||||
|
|
@ -44,7 +86,6 @@ class EmployeeSignRepairService extends BaseService
|
|||
'employee_id.required' => __('employee_sign_repair.employee_id').'必填',
|
||||
'reason.required' => __('employee_sign_repair.reason').'必填',
|
||||
'sign_time.required' => __('employee_sign_repair.sign_time').'必填',
|
||||
'date.unique' => __('employee_sign_repair.date').' 已经申请过了',
|
||||
];
|
||||
$validator = Validator::make($data, $model ? $updateRules : $createRules, $message);
|
||||
if ($validator->fails()) {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,11 @@
|
|||
namespace App\Admin\Services;
|
||||
|
||||
use App\Admin\Filters\HolidayApplyFilter;
|
||||
use App\Models\Employee;
|
||||
use App\Models\HolidayApply;
|
||||
use App\Models\{HolidayApply, Employee};
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
|
||||
class HolidayApplyService extends BaseService
|
||||
{
|
||||
|
|
@ -16,6 +17,47 @@ class HolidayApplyService extends BaseService
|
|||
|
||||
protected string $modelFilterName = HolidayApplyFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions($user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.hr.holiday.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.hr.holiday.delete') && !in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::None, CheckStatus::Cancel, CheckStatus::Fail])) {
|
||||
array_push($actions, 'apply');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
// 获取员工所在的门店
|
||||
|
|
|
|||
|
|
@ -3,10 +3,11 @@
|
|||
namespace App\Admin\Services;
|
||||
|
||||
use App\Admin\Filters\OfficalBusinessFilter;
|
||||
use App\Models\Employee;
|
||||
use App\Models\OfficalBusiness;
|
||||
use App\Models\{Employee, OfficalBusiness};
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
|
||||
class OfficalBusinessService extends BaseService
|
||||
{
|
||||
|
|
@ -16,6 +17,47 @@ class OfficalBusinessService extends BaseService
|
|||
|
||||
protected string $modelFilterName = OfficalBusinessFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions($user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.hr.business.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.hr.business.delete') && !in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::None, CheckStatus::Cancel, CheckStatus::Fail])) {
|
||||
array_push($actions, 'apply');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
// 获取员工所在的门店
|
||||
|
|
|
|||
|
|
@ -3,10 +3,11 @@
|
|||
namespace App\Admin\Services;
|
||||
|
||||
use App\Admin\Filters\OvertimeApplyFilter;
|
||||
use App\Models\Employee;
|
||||
use App\Models\OvertimeApply;
|
||||
use App\Models\{Employee, OvertimeApply};
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Enums\CheckStatus;
|
||||
|
||||
class OvertimeApplyService extends BaseService
|
||||
{
|
||||
|
|
@ -16,6 +17,47 @@ class OvertimeApplyService extends BaseService
|
|||
|
||||
protected string $modelFilterName = OvertimeApplyFilter::class;
|
||||
|
||||
public function list()
|
||||
{
|
||||
$query = $this->listQuery();
|
||||
if (request()->input('_all')) {
|
||||
$list = (clone $query)->get();
|
||||
$items = $list->all();
|
||||
$total = $list->count();
|
||||
} else {
|
||||
$list = (clone $query)->paginate(request()->input('perPage', 20));
|
||||
$items = $list->items();
|
||||
$total = $list->total();
|
||||
}
|
||||
$user = Admin::user();
|
||||
foreach($items as &$item) {
|
||||
$item->row_actions = $this->rowActions($user, $item);
|
||||
}
|
||||
|
||||
return compact('items', 'total');
|
||||
}
|
||||
|
||||
public function rowActions($user, $model)
|
||||
{
|
||||
// view, edit, delete
|
||||
// apply, cancel
|
||||
$actions = [];
|
||||
if ($user->can('admin.hr.overtime.view')) {
|
||||
array_push($actions, 'view');
|
||||
}
|
||||
if ($user->can('admin.hr.overtime.delete') && !in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'delete');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::None, CheckStatus::Cancel, CheckStatus::Fail])) {
|
||||
array_push($actions, 'apply');
|
||||
}
|
||||
if (in_array($model->workflow->check_status, [CheckStatus::Processing])) {
|
||||
array_push($actions, 'cancel');
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
// 获取员工所在的门店
|
||||
|
|
|
|||
|
|
@ -16,37 +16,6 @@ class BookService extends BaseService
|
|||
|
||||
protected string $modelFilterName = TrianBookFilter::class;
|
||||
|
||||
public function resloveData($data, $model = null)
|
||||
{
|
||||
if (isset($data['cover_image']) && $data['cover_image']) {
|
||||
$image = $data['cover_image'];
|
||||
$data['cover_image'] = $this->formatUrl($image);
|
||||
}
|
||||
if (isset($data['video']) && $data['video']) {
|
||||
$video = is_array($data['video']) ? data_get($data, 'video.value') : $data['video'];
|
||||
$data['video'] = $this->formatUrl($video);
|
||||
}
|
||||
if (isset($data['files']) && $data['files']) {
|
||||
$files = [];
|
||||
foreach ($data['files'] as $key => $value) {
|
||||
if (is_array($value)) {
|
||||
$path = data_get($value, 'value');
|
||||
$value['url'] = $this->formatUrl($path);
|
||||
array_push($files, $value);
|
||||
} else {
|
||||
array_push($files, [
|
||||
'id' => $key + 1,
|
||||
'name' => $value,
|
||||
'url' => $this->formatUrl($value),
|
||||
'state' => 'uploaded'
|
||||
]);
|
||||
}
|
||||
}
|
||||
$data['files'] = $files;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function formatUrl($str)
|
||||
{
|
||||
return Str::startsWith($str, ['http://', 'https://']) ? $str : Storage::url($str);
|
||||
|
|
@ -58,10 +27,10 @@ class BookService extends BaseService
|
|||
'title' => ['required'],
|
||||
'category_id' => ['required'],
|
||||
'type' => ['required'],
|
||||
'files' => ['array'],
|
||||
'files' => ['nullable', 'array'],
|
||||
];
|
||||
$updateRules = [
|
||||
'files' => ['array'],
|
||||
'files' => ['nullable','array'],
|
||||
];
|
||||
$validator = Validator::make($data, $model ? $updateRules : $createRules);
|
||||
if ($validator->fails()) {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
namespace App\Admin\Services;
|
||||
|
||||
use App\Enums\CheckStatus;
|
||||
use App\Enums\CheckType;
|
||||
use App\Enums\{CheckStatus, CheckType};
|
||||
use App\Models\Employee;
|
||||
use App\Models\Keyword;
|
||||
use App\Models\Store;
|
||||
|
|
@ -120,14 +119,17 @@ class WorkFlowService extends BaseService
|
|||
|
||||
/**
|
||||
* 取消审核
|
||||
* 1. 删除未审核的流程
|
||||
* 1. 删除审核的流程
|
||||
* 2. 更新申请记录的状态
|
||||
*/
|
||||
public function cancel(WorkflowCheck $check)
|
||||
{
|
||||
$check->logs()->whereIn('check_status', [CheckStatus::None, CheckStatus::Processing])->delete();
|
||||
$check->logs()->delete();
|
||||
$check->update([
|
||||
'check_status' => CheckStatus::Cancel,
|
||||
'check_value' => null,
|
||||
'check_name' => null,
|
||||
'check_type' => null,
|
||||
]);
|
||||
|
||||
$check->subject->checkCancel();
|
||||
|
|
@ -159,6 +161,7 @@ class WorkFlowService extends BaseService
|
|||
$log->update($attributes);
|
||||
|
||||
$check = $log->check;
|
||||
$check->update(['check_name' => $user->name]);
|
||||
if ($status) {
|
||||
return $this->next($check);
|
||||
} else {
|
||||
|
|
@ -175,8 +178,13 @@ class WorkFlowService extends BaseService
|
|||
{
|
||||
$log = $check->logs()->where('check_status', CheckStatus::None)->orderBy('sort')->first();
|
||||
if ($log) {
|
||||
$check->update([
|
||||
'check_value' => $log->check_value,
|
||||
'check_name' => $log->check_name,
|
||||
'check_type' => $log->check_type,
|
||||
]);
|
||||
$log->update(['check_status' => CheckStatus::Processing]);
|
||||
// 申请人自动审核通过
|
||||
// 自动审核通过
|
||||
if ($this->authCheck($check->employee, $log)) {
|
||||
return $this->check($check->employee, $log, true, ['remarks' => '自动审核通过']);
|
||||
}
|
||||
|
|
@ -190,15 +198,19 @@ class WorkFlowService extends BaseService
|
|||
|
||||
/**
|
||||
* 是否有权限审核
|
||||
* 1. 申请人 == 审核人
|
||||
* 2. 申请人的职位 高于 审核人职位
|
||||
*/
|
||||
public function authCheck(Employee $user, WorkflowLog $log)
|
||||
{
|
||||
// if ($user->adminUser?->isAdministrator()) {
|
||||
// return true;
|
||||
// }
|
||||
if ($user->adminUser?->isAdministrator()) {
|
||||
return true;
|
||||
}
|
||||
$checkValue = [$user->id];
|
||||
if ($user->jobs) {
|
||||
foreach($user->jobs as $item) {
|
||||
if ($user->jobs && $user->jobs->count() > 0) {
|
||||
$max = $user->jobs->max('sort');
|
||||
$jobs = Keyword::where('parent_key', 'job')->where('sort', '<', $max)->get();
|
||||
foreach($user->jobs->merge($jobs) as $item) {
|
||||
array_push($checkValue, $user->store_id . '-' . $item->key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ Route::group([
|
|||
$router->post('agreement/download', [AgreementController::class, 'download'])->name('agreement.download');
|
||||
$router->resource('agreement', AgreementController::class);
|
||||
|
||||
//修改上传
|
||||
// 修改上传
|
||||
$router->post('upload_file', [\App\Admin\Controllers\IndexController::class, 'uploadFile']);
|
||||
$router->post('upload_image', [\App\Admin\Controllers\IndexController::class, 'uploadImage']);
|
||||
$router->post('upload_rich', [\App\Admin\Controllers\IndexController::class, 'uploadRich']);
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ class EmployeePromotion extends Model
|
|||
'employee_data' => 'json',
|
||||
];
|
||||
|
||||
protected $appends = ['can_update'];
|
||||
|
||||
public function modelFilter()
|
||||
{
|
||||
return \App\Admin\Filters\EmployeePromotionFilter::class;
|
||||
|
|
@ -52,11 +50,6 @@ class EmployeePromotion extends Model
|
|||
return in_array($this->promotion_status, [PromotionStatus::Employee, PromotionStatus::Invitor, PromotionStatus::Fail]);
|
||||
}
|
||||
|
||||
public function getCanUpdateAttribute()
|
||||
{
|
||||
return $this->canUpdate();
|
||||
}
|
||||
|
||||
public function store()
|
||||
{
|
||||
return $this->belongsTo(Store::class, 'store_id');
|
||||
|
|
|
|||
|
|
@ -27,11 +27,6 @@ class EmployeeSignRepair extends Model
|
|||
'sign_type' => SignType::class,
|
||||
];
|
||||
|
||||
public function canUpdate(): bool
|
||||
{
|
||||
return in_array($this->workflow?->check_status, [CheckStatus::None, CheckStatus::Fail, CheckStatus::Cancel]);
|
||||
}
|
||||
|
||||
public function checkSuccess()
|
||||
{
|
||||
EmployeeSignService::make()->signDay($this->employee, $this->sign_time, $this->date, [
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ class Book extends Model
|
|||
|
||||
protected $casts = [
|
||||
'type' => \App\Enums\BookType::class,
|
||||
// [{id:"5ab12064fee5", name:"a.txt", value:"https://xx.com/a.txt", state:"uploaded"}]
|
||||
'files' => 'json',
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -18,12 +18,13 @@ class WorkflowCheck extends Model
|
|||
'check_status' => CheckStatus::None,
|
||||
];
|
||||
|
||||
protected $fillable = ['subject_type', 'subject_id', 'subject_data', 'key', 'employee_id', 'check_status', 'checked_at', 'check_remarks'];
|
||||
protected $fillable = ['subject_type', 'subject_id', 'subject_data', 'key', 'employee_id', 'check_status', 'checked_at', 'check_remarks', 'check_type', 'check_value', 'check_name'];
|
||||
|
||||
protected $casts = [
|
||||
'subject_data' => 'json',
|
||||
'check_status' => CheckStatus::class,
|
||||
'checked_at' => 'datetime',
|
||||
'check_type' => CheckType::class,
|
||||
];
|
||||
|
||||
public function modelFilter()
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ return [
|
|||
],
|
||||
],
|
||||
'except' => [
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,11 @@ return new class extends Migration
|
|||
$table->unsignedInteger('check_status')->default(CheckStatus::None->value)->comment('审核状态');
|
||||
$table->timestamp('checked_at')->nullable()->comment('审核通过时间');
|
||||
$table->string('check_remarks')->nullable()->comment('审核未通过原因');
|
||||
|
||||
$table->string('check_type')->nullable()->comment('审核类型{job, user}');
|
||||
$table->string('check_value')->nullable()->comment('审核类型值');
|
||||
$table->string('check_name')->nullable()->comment('审核名称(展示用)');
|
||||
|
||||
$table->timestamps();
|
||||
$table->comment('审核申请');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -22,15 +22,15 @@ class AdminSeeder extends Seeder
|
|||
'password' => bcrypt('admin'),
|
||||
'name' => 'Administrator',
|
||||
]);
|
||||
// DB::table('employees')->truncate();
|
||||
// DB::table('employees')->insert([
|
||||
// 'name' => 'admin',
|
||||
// 'phone' => '12345678900',
|
||||
// 'admin_user_id' => 1,
|
||||
// 'join_at' => $now,
|
||||
// 'created_at' => $now,
|
||||
// 'updated_at' => $now,
|
||||
// ]);
|
||||
DB::table('employees')->truncate();
|
||||
DB::table('employees')->insert([
|
||||
'name' => 'admin',
|
||||
'phone' => '12345678900',
|
||||
'admin_user_id' => 1,
|
||||
'join_at' => $now,
|
||||
'created_at' => $now,
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
|
||||
// 创建初始角色
|
||||
DB::table('admin_roles')->truncate();
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ class WorkflowSeeder extends Seeder
|
|||
public function run(): void
|
||||
{
|
||||
$now = now();
|
||||
// $config = json_encode([
|
||||
// ['sort' => 1, 'type' => 'user', 'user' => 1, 'title' => '员工', 'value' => 1, 'subTitle' => 'Admin'],
|
||||
// ]);
|
||||
$config = null;
|
||||
$config = json_encode([
|
||||
['sort' => 1, 'type' => 'user', 'user' => 1, 'title' => '员工', 'value' => 1, 'subTitle' => 'Admin'],
|
||||
]);
|
||||
// $config = null;
|
||||
Workflow::truncate();
|
||||
Workflow::insert([
|
||||
['key' => 'employee_sign_repair', 'name' => '补卡申请', 'config' => $config, 'created_at' => now(), 'updated_at' => now()],
|
||||
|
|
|
|||
Loading…
Reference in New Issue