admin export

main
panliang 2024-05-14 14:37:04 +08:00
parent 619d28b03c
commit 0deebe8a30
11 changed files with 182 additions and 5 deletions

View File

@ -22,6 +22,7 @@ class EmployeeController extends AdminController
->headerToolbar([ ->headerToolbar([
$this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.employees.create')), $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.employees.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true)
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -132,4 +133,25 @@ class EmployeeController extends AdminController
{ {
return $this->service->listQuery()->get(['id', 'name', 'phone']); return $this->service->listQuery()->get(['id', 'name', 'phone']);
} }
protected function exportFileName()
{
return '员工记录';
}
protected function exportMap($row)
{
$jobs = data_get($row, 'jobs', []);
return [
__('employee.id') => data_get($row, 'id'),
__('employee.name') => data_get($row, 'name'),
__('employee.jobs') => data_get($row, 'name'),
__('employee.jobs') => implode(',', array_column($jobs, 'name')),
__('employee.phone') => data_get($row, 'phone'),
__('employee.employee_status') => data_get($row, 'employee_status_text'),
__('employee.store_id') => data_get($row, 'store.title'),
__('employee.remarks') => data_get($row, 'remarks'),
__('employee.is_sign') => data_get($row, 'is_sign') ? '是' : '否',
];
}
} }

View File

@ -27,6 +27,7 @@ class HolidayController extends AdminController
->headerToolbar([ ->headerToolbar([
// $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.holiday.create')), // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.holiday.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -134,4 +135,25 @@ class HolidayController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '请假申请';
}
protected function exportMap($row)
{
return [
__('holiday_apply.id') => data_get($row, 'id'),
__('employee_sign.store_id') => data_get($row, 'store.title'),
__('holiday_apply.employee_id') => data_get($row, 'employee.name'),
__('holiday_apply.type_id') => data_get($row, 'type.name'),
__('holiday_apply.reason') => data_get($row, 'reason'),
__('holiday_apply.start_at') => data_get($row, 'start_at'),
__('holiday_apply.end_at') => data_get($row, 'end_at'),
__('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''),
__('workflow.value') => data_get($row, 'workflow.check_name'),
__('holiday_apply.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -25,8 +25,9 @@ class OfficalBusinessController extends AdminController
$crud = $this->baseCRUD() $crud = $this->baseCRUD()
->tableLayout('fixed') ->tableLayout('fixed')
->headerToolbar([ ->headerToolbar([
// $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.business.create')), $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.business.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -120,4 +121,25 @@ class OfficalBusinessController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '出差申请';
}
protected function exportMap($row)
{
return [
__('offical_business.id') => data_get($row, 'id'),
__('offical_business.store_id') => data_get($row, 'store.title'),
__('offical_business.employee_id') => data_get($row, 'employee.name'),
__('offical_business.start_at') => data_get($row, 'start_at'),
__('offical_business.end_at') => data_get($row, 'end_at'),
__('offical_business.address') => data_get($row, 'address'),
__('offical_business.reason') => data_get($row, 'reason'),
__('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''),
__('workflow.value') => data_get($row, 'workflow.check_name'),
__('offical_business.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -27,6 +27,7 @@ class OvertimeController extends AdminController
->headerToolbar([ ->headerToolbar([
// $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.overtime.create')), // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.overtime.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -124,4 +125,26 @@ class OvertimeController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '加班申请';
}
protected function exportMap($row)
{
return [
__('overtime_apply.id') => data_get($row, 'id'),
__('overtime_apply.store_id') => data_get($row, 'store.title'),
__('overtime_apply.employee_id') => data_get($row, 'employee.name'),
__('overtime_apply.date') => data_get($row, 'date'),
__('overtime_apply.start_at') => data_get($row, 'start_at'),
__('overtime_apply.end_at') => data_get($row, 'end_at'),
__('overtime_apply.hours') => data_get($row, 'hours'),
__('overtime_apply.reason') => data_get($row, 'reason'),
__('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''),
__('workflow.value') => data_get($row, 'workflow.check_name'),
__('overtime_apply.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -26,6 +26,7 @@ class PromotionController extends AdminController
->headerToolbar([ ->headerToolbar([
$this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.promotion.create')), $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.promotion.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filterDefaultVisible() ->filterDefaultVisible()
@ -152,4 +153,23 @@ class PromotionController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '升职申请';
}
protected function exportMap($row)
{
return [
__('employee_promotion.id') => data_get($row, 'id'),
__('employee_promotion.store_id') => data_get($row, 'store.title'),
__('employee_promotion.employee_id') => data_get($row, 'employee.name'),
__('employee_promotion.job_id') => data_get($row, 'job.name'),
__('employee_promotion.invitor_id') => data_get($row, 'invitor.name'),
__('employee_promotion.promotion_status') => data_get(PromotionStatus::options(), data_get($row, 'promotion_status'), ''),
__('workflow.value') => data_get($row, 'workflow.check_name'),
__('employee_promotion.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -24,7 +24,7 @@ class SignController extends AdminController
->tableLayout('fixed') ->tableLayout('fixed')
->headerToolbar([ ->headerToolbar([
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(), $this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -101,6 +101,11 @@ class SignController extends AdminController
])->body([$detail, amisMake()->Divider()->title(__('employee_sign.log')), $logs]); ])->body([$detail, amisMake()->Divider()->title(__('employee_sign.log')), $logs]);
} }
protected function exportFileName()
{
return '考勤打卡';
}
protected function exportMap($row) protected function exportMap($row)
{ {
$type = SignType::options(); $type = SignType::options();

View File

@ -28,6 +28,7 @@ class SignRepairController extends AdminController
->headerToolbar([ ->headerToolbar([
// $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.repairs.create')), // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.repairs.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -124,4 +125,24 @@ class SignRepairController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '补卡申请';
}
protected function exportMap($row)
{
return [
__('employee_sign_repair.id') => data_get($row, 'id'),
__('employee_sign_repair.store_id') => data_get($row, 'store.title'),
__('employee_sign_repair.employee_id') => data_get($row, 'employee.name'),
__('employee_sign_repair.date') => data_get($row, 'date'),
__('employee_sign_repair.sign_time') => data_get(SignTime::options(), data_get($row, 'sign_time'), ''),
__('employee_sign_repair.reason') => data_get($row, 'reason'),
__('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''),
__('workflow.value') => data_get($row, 'workflow.check_name'),
__('holiday_apply.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -23,6 +23,7 @@ class EmployeeController extends AdminController
->headerToolbar([ ->headerToolbar([
$this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.employees.create')), $this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.employees.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -73,4 +74,22 @@ class EmployeeController extends AdminController
->required(), ->required(),
]); ]);
} }
protected function exportFileName()
{
return '店员记录';
}
protected function exportMap($row)
{
$jobs = data_get($row, 'jobs', []);
return [
__('employee.store_id') => data_get($row, 'store.title'),
__('admin.username') => data_get($row, 'admin_user.username'),
__('employee.name') => data_get($row, 'name'),
__('employee.jobs') => implode(',', array_column($jobs, 'name')),
__('employee.phone') => data_get($row, 'phone'),
__('store.master_id') => data_get($row, 'store.master_id') == data_get($row, 'id') ? '是' : '否',
];
}
} }

View File

@ -26,6 +26,7 @@ class StoreController extends AdminController
->headerToolbar([ ->headerToolbar([
$this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.stores.create')), $this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.stores.create')),
...$this->baseHeaderToolBar(), ...$this->baseHeaderToolBar(),
$this->exportAction(true),
]) ])
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
@ -137,4 +138,26 @@ class StoreController extends AdminController
{ {
return $this->service->listQuery()->where('business_status', BusinessStatus::Open)->get(['id', 'title']); return $this->service->listQuery()->where('business_status', BusinessStatus::Open)->get(['id', 'title']);
} }
protected function exportFileName()
{
return '门店记录';
}
protected function exportMap($row)
{
return [
__('store.id') => data_get($row, 'id'),
__('store.title') => data_get($row, 'title'),
__('store.master_id') => data_get($row, 'master.name'),
__('store.category_id') => data_get($row, 'category.name'),
__('store.business_id') => data_get($row, 'business.name'),
__('store.level_id') => data_get($row, 'level.name'),
__('store.profit_ratio') => data_get($row, 'profit_ratio') . '%',
__('store.region') => data_get($row, 'region.province') . '-' . data_get($row, 'region.city'),
__('store.business_status') => data_get(BusinessStatus::options(), data_get($row, 'business_status'), ''),
__('store.address') => data_get($row, 'address'),
__('store.created_at') => data_get($row, 'created_at'),
];
}
} }

View File

@ -73,8 +73,8 @@ class OvertimeApplyService extends BaseService
$timestamps = explode(',', $data['datetime_range']); $timestamps = explode(',', $data['datetime_range']);
$start = Carbon::createFromTimestamp($timestamps[0]); $start = Carbon::createFromTimestamp($timestamps[0]);
$end = Carbon::createFromTimestamp($timestamps[1]); $end = Carbon::createFromTimestamp($timestamps[1]);
$data['start_at'] = $start->toDateTimeString(); $data['start_at'] = $start->format('Y-m-d H:i');
$data['end_at'] = $end->toDateTimeString(); $data['end_at'] = $end->format('Y-m-d H:i');
} }
if (isset($data['start_at']) && isset($data['end_at'])) { if (isset($data['start_at']) && isset($data['end_at'])) {

View File

@ -15,7 +15,7 @@ class HolidayApply extends Model
{ {
use Filterable, HasCheckable, HasDateTimeFormatter; use Filterable, HasCheckable, HasDateTimeFormatter;
protected $guarded = []; protected $fillable = ['store_id', 'employee_id', 'start_at', 'end_at', 'type_id', 'reason'];
protected $casts = [ protected $casts = [
'start_at' => 'datetime:Y-m-d H:i', 'start_at' => 'datetime:Y-m-d H:i',