generated from liutk/owl-admin-base
编码风格
parent
efff9c2c03
commit
1a377349e9
|
|
@ -33,6 +33,7 @@ abstract class AdminController extends Controller
|
|||
tap($th, fn () => report($th))
|
||||
);
|
||||
}
|
||||
|
||||
return $this->autoResponse($result, __('admin.save'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class LedgerController extends AdminController
|
|||
['label' => __('finance.ledger.actual_income'), 'content' => '${actual_income}'],
|
||||
['label' => __('finance.ledger.photos'), 'content' => amis()->Images()->enlargeAble()->source('${photos}')->enlargeWithGallary(), 'span' => 2],
|
||||
['label' => __('finance.ledger.ledger_status'), 'content' => amis()->Mapping()->map(LedgerStatus::labelMap())->value('${ledger_status}'), 'span' => 2],
|
||||
])
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ class LedgerController extends AdminController
|
|||
],
|
||||
attributes: [
|
||||
'approval_result' => __('finance.ledger.approval_result'),
|
||||
'failed_reason' => __('finance.ledger.failed_reason'),
|
||||
'failed_reason' => __('finance.ledger.failed_reason'),
|
||||
],
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
namespace App\Admin\Controllers\Hr;
|
||||
|
||||
use App\Models\Employee;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\EmployeeService;
|
||||
use App\Enums\EmployeeStatus;
|
||||
use App\Models\Employee;
|
||||
use Illuminate\Http\Request;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use App\Admin\Services\EmployeeService;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
|
||||
class EmployeeController extends AdminController
|
||||
{
|
||||
|
|
@ -73,12 +73,12 @@ class EmployeeController extends AdminController
|
|||
amisMake()->TextControl()->name('remarks')->label(__('employee.remarks')),
|
||||
amisMake()->ImageControl()->name('prize_images')->label(__('employee.prize_images'))
|
||||
->multiple()
|
||||
->receiver($this->uploadImagePath() . '?full-url=1')
|
||||
->receiver($this->uploadImagePath().'?full-url=1')
|
||||
->joinValues(false)
|
||||
->extractValue(true),
|
||||
amisMake()->ImageControl()->name('skill_images')->label(__('employee.skill_images'))
|
||||
->multiple()
|
||||
->receiver($this->uploadImagePath() . '?full-url=1')
|
||||
->receiver($this->uploadImagePath().'?full-url=1')
|
||||
->joinValues(false)
|
||||
->extractValue(true),
|
||||
amisMake()->TextControl()->name('username')->label(__('admin.username'))->value('${admin_user.username}')->visible(! $edit)->required(! $edit),
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
namespace App\Admin\Controllers\Hr;
|
||||
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\EmployeeRestService;
|
||||
use App\Enums\EmployeeStatus;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
|
||||
/**
|
||||
* 休息日管理
|
||||
|
|
@ -26,7 +26,7 @@ class RestController extends AdminController
|
|||
->bulkActions([])
|
||||
->filter($this->baseFilter()->body([
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amisMake()->TextControl()->name('employee_name')->label(__('employee_sign.employee_id'))->placeholder(__('employee.name') .'/'. __('employee.phone'))->columnRatio(3)->clearable(),
|
||||
amisMake()->TextControl()->name('employee_name')->label(__('employee_sign.employee_id'))->placeholder(__('employee.name').'/'.__('employee.phone'))->columnRatio(3)->clearable(),
|
||||
amisMake()->DateRangeControl()->name('date_range')->label(__('employee_sign.date'))->columnRatio(3)->clearable(),
|
||||
]),
|
||||
]))
|
||||
|
|
@ -46,7 +46,7 @@ class RestController extends AdminController
|
|||
{
|
||||
return $this->baseForm()->title('')->body([
|
||||
amisMake()->SelectControl()->name('employees')->label(__('employee_sign.employee_id'))
|
||||
->source(admin_url('hr/employees?_action=getData&_all=1&employee_status=' . EmployeeStatus::Online->value))
|
||||
->source(admin_url('hr/employees?_action=getData&_all=1&employee_status='.EmployeeStatus::Online->value))
|
||||
->labelField('name')
|
||||
->valueField('id')
|
||||
->searchable()
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
namespace App\Admin\Controllers\Store;
|
||||
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\StoreDeviceService;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\StoreDeviceService;
|
||||
|
||||
/**
|
||||
* 彩票机管理
|
||||
|
|
@ -64,4 +64,4 @@ class DeviceController extends AdminController
|
|||
amisMake()->TextControl()->name('remarks')->label(__('store_device.remarks')),
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
namespace App\Admin\Controllers\Store;
|
||||
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\StoreEmployeeService;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,15 +2,14 @@
|
|||
|
||||
namespace App\Admin\Controllers\Store;
|
||||
|
||||
use App\Models\{Store, Employee};
|
||||
use Illuminate\Http\Request;
|
||||
use App\Enums\{BusinessStatus, StoreRole, EmployeeStatus};
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\StoreService;
|
||||
use App\Enums\BusinessStatus;
|
||||
use App\Enums\EmployeeStatus;
|
||||
use App\Models\Store;
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
|
||||
/**
|
||||
* 门店管理
|
||||
|
|
@ -81,7 +80,7 @@ class StoreController extends AdminController
|
|||
return $this->baseForm()->title('')->body([
|
||||
amisMake()->TextControl()->name('title')->label(__('store.title'))->required(),
|
||||
amisMake()->SelectControl()->name('master_id')->label(__('store.master_id'))
|
||||
->source(admin_url('hr/employees?_action=getData&_all=1&employee_status=' . EmployeeStatus::Online->value))
|
||||
->source(admin_url('hr/employees?_action=getData&_all=1&employee_status='.EmployeeStatus::Online->value))
|
||||
->labelField('name')
|
||||
->valueField('id')
|
||||
->searchable()
|
||||
|
|
@ -120,6 +119,7 @@ class StoreController extends AdminController
|
|||
['label' => __('store.address'), 'content' => '${address}', 'span' => 2],
|
||||
['label' => __('store.profit_ratio'), 'content' => '${profit_ratio}%', 'span' => 3],
|
||||
]);
|
||||
|
||||
return $this->baseDetail()->title('')->body([$detail]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
namespace App\Admin\Controllers\System;
|
||||
|
||||
use Slowlyo\OwlAdmin\Admin;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
use App\Admin\Controllers\AdminController;
|
||||
use App\Admin\Services\WorkFlowService;
|
||||
use App\Enums\CheckType;
|
||||
use App\Models\{Keyword, Employee};
|
||||
use App\Models\Employee;
|
||||
use App\Models\Keyword;
|
||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||
|
||||
/**
|
||||
* 审核流程管理
|
||||
|
|
@ -18,6 +18,7 @@ class WorkflowController extends AdminController
|
|||
protected string $serviceName = WorkFlowService::class;
|
||||
|
||||
protected $jobOptions;
|
||||
|
||||
protected $employeeOptions;
|
||||
|
||||
public function list(): Page
|
||||
|
|
@ -31,8 +32,8 @@ class WorkflowController extends AdminController
|
|||
->bulkActions([])
|
||||
->filter($this->baseFilter()->body([
|
||||
amis()->GroupControl()->mode('horizontal')->body([
|
||||
amisMake()->TextControl()->name('search')->label(__('admin.keyword'))->placeholder(__('workflow.key') . '/' . __('workflow.name'))->columnRatio(3)->clearable(),
|
||||
])
|
||||
amisMake()->TextControl()->name('search')->label(__('admin.keyword'))->placeholder(__('workflow.key').'/'.__('workflow.name'))->columnRatio(3)->clearable(),
|
||||
]),
|
||||
]))
|
||||
->columns([
|
||||
amisMake()->TableColumn()->name('id')->label(__('workflow.id')),
|
||||
|
|
@ -81,12 +82,13 @@ class WorkflowController extends AdminController
|
|||
['label' => __('workflow.name'), 'content' => '${name}'],
|
||||
['label' => __('workflow.config'), 'content' => amisMake()->Steps()->labelPlacement('horizontal')->source('${config}'), 'span' => 3],
|
||||
]);
|
||||
|
||||
return $this->baseDetail()->title('')->body($detail);
|
||||
}
|
||||
|
||||
public function getJobOptions()
|
||||
{
|
||||
if (!$this->jobOptions) {
|
||||
if (! $this->jobOptions) {
|
||||
$this->jobOptions = Keyword::where('parent_key', 'job')->get();
|
||||
}
|
||||
|
||||
|
|
@ -95,11 +97,10 @@ class WorkflowController extends AdminController
|
|||
|
||||
public function getEmployeeOptions()
|
||||
{
|
||||
if (!$this->employeeOptions) {
|
||||
if (! $this->employeeOptions) {
|
||||
$this->employeeOptions = Employee::enable()->get();
|
||||
}
|
||||
|
||||
return $this->employeeOptions;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Admin\Filters;
|
||||
|
||||
use EloquentFilter\ModelFilter;
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class EmployeeRestFilter extends ModelFilter
|
||||
{
|
||||
|
|
@ -11,12 +11,12 @@ class EmployeeRestFilter extends ModelFilter
|
|||
|
||||
public $relations = [
|
||||
'store' => [
|
||||
'store_title' => 'title'
|
||||
'store_title' => 'title',
|
||||
],
|
||||
'employee' => [
|
||||
'employee_name' => 'name',
|
||||
'employee_search' => 'search',
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
public function employeeId($key)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,6 @@ class KeywordFilter extends ModelFilter
|
|||
|
||||
public function withParentKey($key)
|
||||
{
|
||||
return $this->where(fn($q) => $q->where('parent_key', $key)->orWhere('key', $key));
|
||||
return $this->where(fn ($q) => $q->where('parent_key', $key)->orWhere('key', $key));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,12 +10,12 @@ class StoreEmployeeFilter extends ModelFilter
|
|||
|
||||
public $relations = [
|
||||
'store' => [
|
||||
'store_title' => 'title'
|
||||
'store_title' => 'title',
|
||||
],
|
||||
'employee' => [
|
||||
'employee_name' => 'name',
|
||||
'employee_search' => 'search',
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
public function employeeId($key)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@
|
|||
|
||||
namespace App\Admin\Services;
|
||||
|
||||
use App\Models\{EmployeeRest, Employee};
|
||||
use App\Admin\Filters\EmployeeRestFilter;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Models\Employee;
|
||||
use App\Models\EmployeeRest;
|
||||
|
||||
class EmployeeRestService extends BaseService
|
||||
{
|
||||
|
|
@ -32,7 +30,7 @@ class EmployeeRestService extends BaseService
|
|||
$employees = Employee::whereIn('id', $data['employees'])->enable()->get();
|
||||
$list = [];
|
||||
$now = now();
|
||||
foreach($employees as $employee) {
|
||||
foreach ($employees as $employee) {
|
||||
foreach ($dates as $date) {
|
||||
array_push($list, [
|
||||
'date' => $date,
|
||||
|
|
@ -44,7 +42,7 @@ class EmployeeRestService extends BaseService
|
|||
} else {
|
||||
$this->modelName::create($data);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ use App\Models\Employee;
|
|||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
use Slowlyo\OwlAdmin\Services\AdminUserService;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ namespace App\Admin\Services;
|
|||
use App\Admin\Filters\LedgerFilter;
|
||||
use App\Enums\LedgerStatus;
|
||||
use App\Models\Ledger;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class LedgerService extends BaseService
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Admin\Services;
|
||||
|
||||
use App\Models\StoreDevice;
|
||||
use App\Admin\Filters\StoreDeviceFilter;
|
||||
use App\Models\StoreDevice;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class StoreDeviceService extends BaseService
|
||||
|
|
|
|||
|
|
@ -2,11 +2,10 @@
|
|||
|
||||
namespace App\Admin\Services;
|
||||
|
||||
use App\Admin\Filters\StoreEmployeeFilter;
|
||||
use App\Models\StoreEmployee;
|
||||
use App\Admin\Filters\StoreDeviceFilter;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Admin\Filters\StoreEmployeeFilter;
|
||||
|
||||
class StoreEmployeeService extends BaseService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace App\Admin\Services;
|
||||
|
||||
use App\Enums\StoreRole;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Models\{Store, Employee};
|
||||
use App\Admin\Filters\StoreFilter;
|
||||
use App\Enums\StoreRole;
|
||||
use App\Models\Employee;
|
||||
use App\Models\Store;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class StoreService extends BaseService
|
||||
{
|
||||
|
|
@ -65,6 +66,7 @@ class StoreService extends BaseService
|
|||
foreach ($employees as $employee) {
|
||||
if (DB::table('store_employees')->where('employee_id', $employee->id)->exists()) {
|
||||
$this->setError($employee->name.' 已经是店员');
|
||||
|
||||
return false;
|
||||
}
|
||||
$data[$employee->id] = ['role' => StoreRole::Employee];
|
||||
|
|
@ -78,6 +80,7 @@ class StoreService extends BaseService
|
|||
public function destroyEmployee(Store $store, array $employeeIds)
|
||||
{
|
||||
$store->employees()->detach($employeeIds);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -121,6 +124,7 @@ class StoreService extends BaseService
|
|||
{
|
||||
// 删除店员
|
||||
DB::table('store_employees')->whereIn('store_id', $ids)->delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
namespace App\Admin\Services;
|
||||
|
||||
use App\Enums\CheckType;
|
||||
use App\Models\{Workflow, Keyword, Employee};
|
||||
use Illuminate\Support\Arr;
|
||||
use App\Models\Employee;
|
||||
use App\Models\Keyword;
|
||||
use App\Models\Workflow;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class WorkFlowService extends BaseService
|
||||
|
|
@ -20,22 +20,23 @@ class WorkFlowService extends BaseService
|
|||
public function resloveData($data, $model = null)
|
||||
{
|
||||
if (isset($data['config'])) {
|
||||
foreach($data['config'] as $key => &$item) {
|
||||
$item['title'] = match($item['type']) {
|
||||
foreach ($data['config'] as $key => &$item) {
|
||||
$item['title'] = match ($item['type']) {
|
||||
CheckType::Job->value => CheckType::Job->text(),
|
||||
CheckType::User->value => CheckType::User->text(),
|
||||
};
|
||||
$item['subTitle'] = match($item['type']) {
|
||||
$item['subTitle'] = match ($item['type']) {
|
||||
CheckType::Job->value => Keyword::where('key', $item['job'])->value('name'),
|
||||
CheckType::User->value => Employee::where('id', $item['user'])->value('name'),
|
||||
};
|
||||
$item['value'] = match($item['type']) {
|
||||
$item['value'] = match ($item['type']) {
|
||||
CheckType::Job->value => $item['job'],
|
||||
CheckType::User->value => $item['user'],
|
||||
};
|
||||
$item['sort'] = $key + 1;
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
|
@ -46,14 +47,15 @@ class WorkFlowService extends BaseService
|
|||
'name' => ['required'],
|
||||
];
|
||||
$updateRules = [
|
||||
'key' => [Rule::unique('workflows', 'key')->ignore($model?->id)]
|
||||
'key' => [Rule::unique('workflows', 'key')->ignore($model?->id)],
|
||||
];
|
||||
$validator = Validator::make($data, $model ? $updateRules : $createRules, [
|
||||
'key.unique' => ':input 已经存在'
|
||||
'key.unique' => ':input 已经存在',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return $validator->errors()->first();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ Route::group([
|
|||
$router->resource('lottery-types', BaseKeywordController::class);
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 人事管理
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace App\Enums;
|
||||
|
||||
use Dcat\Admin\Admin;
|
||||
|
||||
enum CheckStatus: int
|
||||
{
|
||||
case None = 0;
|
||||
|
|
@ -15,11 +13,11 @@ enum CheckStatus: int
|
|||
public static function options(): array
|
||||
{
|
||||
return [
|
||||
static::None->value => '未审核',
|
||||
static::Processing->value => '审核中',
|
||||
static::Success->value => '审核通过',
|
||||
static::Fail->value => '审核不通过',
|
||||
static::Cancel->value => '已取消',
|
||||
self::None->value => '未审核',
|
||||
self::Processing->value => '审核中',
|
||||
self::Success->value => '审核通过',
|
||||
self::Fail->value => '审核不通过',
|
||||
self::Cancel->value => '已取消',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -32,11 +30,11 @@ enum CheckStatus: int
|
|||
{
|
||||
// 'active' | 'inactive' | 'error' | 'success' | 'processing' | 'warning' |
|
||||
return [
|
||||
static::None->value => 'active',
|
||||
static::Processing->value => 'processing',
|
||||
static::Success->value => 'success',
|
||||
static::Fail->value => 'error',
|
||||
static::Cancel->value => 'inactive',
|
||||
self::None->value => 'active',
|
||||
self::Processing->value => 'processing',
|
||||
self::Success->value => 'success',
|
||||
self::Fail->value => 'error',
|
||||
self::Cancel->value => 'inactive',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@ enum LedgerStatus: int
|
|||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
static::Pending => '待编辑',
|
||||
static::Processing => '待审核',
|
||||
static::Passed => '已完成',
|
||||
static::Rejected => '未通过',
|
||||
self::Pending => '待编辑',
|
||||
self::Processing => '待审核',
|
||||
self::Passed => '已完成',
|
||||
self::Rejected => '未通过',
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -32,10 +32,10 @@ enum LedgerStatus: int
|
|||
public static function labelMap(): array
|
||||
{
|
||||
return [
|
||||
static::Pending->value => '<span class="label label-primary">待编辑</span>',
|
||||
static::Processing->value => '<span class="label label-warning">待审核</span>',
|
||||
static::Passed->value => '<span class="label label-success">已完成</span>',
|
||||
static::Rejected->value => '<span class="label label-danger">未通过</span>',
|
||||
self::Pending->value => '<span class="label label-primary">待编辑</span>',
|
||||
self::Processing->value => '<span class="label label-warning">待审核</span>',
|
||||
self::Passed->value => '<span class="label label-success">已完成</span>',
|
||||
self::Rejected->value => '<span class="label label-danger">未通过</span>',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,13 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Casts\StorageJson;
|
||||
use App\Admin\Filters\EmployeeFilter;
|
||||
use App\Enums\EmployeeStatus;
|
||||
use App\Traits\HasDateTimeFormatter;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
use App\Admin\Filters\EmployeeFilter;
|
||||
|
||||
/**
|
||||
* 员工
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* 员工-休息日
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Enums\{SignType, SignStatus};
|
||||
use App\Enums\SignStatus;
|
||||
use App\Enums\SignType;
|
||||
use App\Traits\HasDateTimeFormatter;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* 员工-打卡情况
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Enums\SignType;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* 员工-打卡流水
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|||
|
||||
class Ledger extends Model
|
||||
{
|
||||
use Filterable, HasFactory, HasDateTimeFormatter;
|
||||
use Filterable, HasDateTimeFormatter, HasFactory;
|
||||
|
||||
protected $attributes = [
|
||||
'ledger_status' => LedgerStatus::Pending,
|
||||
|
|
@ -47,6 +47,7 @@ class Ledger extends Model
|
|||
if (! is_array($photos = json_decode($value ?? '', true))) {
|
||||
$photos = [];
|
||||
}
|
||||
|
||||
return $photos;
|
||||
},
|
||||
set: fn (mixed $value) => json_encode(is_array($value) ? $value : []),
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use EloquentFilter\Filterable;
|
||||
use App\Traits\HasDateTimeFormatter;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
|
|
@ -20,5 +20,4 @@ class StoreDevice extends Model
|
|||
{
|
||||
return $this->belongsTo(Store::class, 'store_id');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
|
||||
/**
|
||||
* 店员
|
||||
|
|
@ -13,7 +13,7 @@ class StoreEmployee extends Pivot
|
|||
use Filterable;
|
||||
|
||||
protected $table = 'store_employees';
|
||||
|
||||
|
||||
public $incrementing = true;
|
||||
|
||||
public function store()
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ class Workflow extends Model
|
|||
protected $fillable = ['key', 'name', 'config'];
|
||||
|
||||
protected $casts = [
|
||||
'config' => 'array'
|
||||
'config' => 'array',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ use Illuminate\Database\Eloquent\Model;
|
|||
class WorkflowLog extends Model
|
||||
{
|
||||
protected $fillable = ['batch_id', 'check_type', 'check_value', 'check_name', 'user_id', 'subject_type', 'subject_id', 'subject_data', 'is_enable', 'check_user_id', 'checked_at', 'remarks', 'check_status', 'sort'];
|
||||
|
||||
|
||||
protected $casts = [
|
||||
'check_type' => CheckType::class,
|
||||
'check_type' => CheckType::class,
|
||||
'check_status' => CheckStatus::class,
|
||||
'is_enable' => 'boolean',
|
||||
'is_enable' => 'boolean',
|
||||
'subject_data' => 'json',
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use App\Models\Employee;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use Slowlyo\OwlAdmin\Models\AdminUser;
|
||||
|
||||
/**
|
||||
|
|
@ -12,6 +12,7 @@ use Slowlyo\OwlAdmin\Models\AdminUser;
|
|||
class EmployeeFactory extends Factory
|
||||
{
|
||||
protected $model = Employee::class;
|
||||
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
|
|
@ -22,6 +23,7 @@ class EmployeeFactory extends Factory
|
|||
$faker = $this->faker;
|
||||
$name = $faker->name;
|
||||
$phone = $faker->phoneNumber();
|
||||
|
||||
// $adminUser = AdminUser::create([
|
||||
// 'username' => $phone,
|
||||
// 'password' => bcrypt($phone),
|
||||
|
|
@ -34,7 +36,7 @@ class EmployeeFactory extends Factory
|
|||
'prize_images' => ['https://via.placeholder.com/100x100.png'],
|
||||
'skill_images' => ['https://via.placeholder.com/100x100.png'],
|
||||
// 'admin_user_id' => $adminUser->id,
|
||||
'join_at' => now()
|
||||
'join_at' => now(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,11 @@
|
|||
|
||||
namespace Database\Factories;
|
||||
|
||||
use App\Models\Employee;
|
||||
use App\Models\Keyword;
|
||||
use App\Models\Store;
|
||||
use App\Models\StoreEmployee;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use App\Models\{Store, Employee, StoreEmployee, Keyword};
|
||||
|
||||
/**
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Store>
|
||||
|
|
@ -11,6 +14,7 @@ use App\Models\{Store, Employee, StoreEmployee, Keyword};
|
|||
class StoreFactory extends Factory
|
||||
{
|
||||
protected $model = Store::class;
|
||||
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
|
|
@ -20,14 +24,15 @@ class StoreFactory extends Factory
|
|||
{
|
||||
do {
|
||||
$master = Employee::inRandomOrder()->first();
|
||||
} while(StoreEmployee::where('employee_id', $master->id)->exists());
|
||||
} while (StoreEmployee::where('employee_id', $master->id)->exists());
|
||||
|
||||
return [
|
||||
'title' => $this->faker->word(),
|
||||
'master_id' => $master->id,
|
||||
'category_id' => Keyword::where('lv', 3)->where('parent_key', 'store_category')->inRandomOrder()->value('key'),
|
||||
'business_id' => Keyword::where('lv', 2)->where('parent_key', 'store_business')->inRandomOrder()->value('key'),
|
||||
'level_id' => Keyword::where('lv', 2)->where('parent_key', 'store_level')->inRandomOrder()->value('key'),
|
||||
'region' => ["city" => "通辽市", "code" => 150500, "street" => null, "cityCode" => 150500, "district" => null, "province" => "内蒙古自治区", "districtCode" => 0, "provinceCode" => 150000],
|
||||
'region' => ['city' => '通辽市', 'code' => 150500, 'street' => null, 'cityCode' => 150500, 'district' => null, 'province' => '内蒙古自治区', 'districtCode' => 0, 'provinceCode' => 150000],
|
||||
'lon' => '107.11352677389',
|
||||
'lat' => '29.167519061656',
|
||||
'address' => '重庆市南川区东城街道办事处东环路三号',
|
||||
|
|
|
|||
|
|
@ -108,13 +108,13 @@ class AdminPermissionSeeder extends Seeder
|
|||
'name' => '职位管理',
|
||||
'icon' => '',
|
||||
'uri' => '/hr/jobs?parent_key=job',
|
||||
'resource' => false
|
||||
'resource' => false,
|
||||
],
|
||||
'rests' => [
|
||||
'name' => '休息管理',
|
||||
'icon' => '',
|
||||
'uri' => '/hr/rests',
|
||||
'resource' => true
|
||||
'resource' => true,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class AdminSeeder extends Seeder
|
|||
DB::table('admin_users')->insert([
|
||||
'username' => 'admin',
|
||||
'password' => bcrypt('admin'),
|
||||
'name' => 'Administrator',
|
||||
'name' => 'Administrator',
|
||||
]);
|
||||
|
||||
// 创建初始角色
|
||||
|
|
|
|||
|
|
@ -2,10 +2,11 @@
|
|||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use App\Models\Employee;
|
||||
use App\Models\Store;
|
||||
use Database\Factories\EmployeeFactory;
|
||||
use Database\Factories\StoreFactory;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\{Employee, Store};
|
||||
use Database\Factories\{EmployeeFactory, StoreFactory};
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class EmployeeSeeder extends Seeder
|
||||
|
|
@ -18,7 +19,7 @@ class EmployeeSeeder extends Seeder
|
|||
DB::table('employee_jobs')->truncate();
|
||||
Employee::truncate();
|
||||
(new EmployeeFactory)->count(100)->create(['admin_user_id' => 1]);
|
||||
|
||||
|
||||
DB::table('store_employees')->truncate();
|
||||
Store::truncate();
|
||||
(new StoreFactory)->count(10)->create();
|
||||
|
|
|
|||
|
|
@ -2,9 +2,8 @@
|
|||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Workflow;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WorkflowSeeder extends Seeder
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ return [
|
|||
'updated_at' => '更新时间',
|
||||
|
||||
'rest' => '休息日',
|
||||
|
||||
|
||||
'date' => '日期',
|
||||
'store_id' => '门店',
|
||||
'employee_id' => '员工',
|
||||
|
|
|
|||
Loading…
Reference in New Issue