generated from liutk/owl-admin-base
admin 添加和修改 改为 drawer
parent
5359f742e4
commit
418f8489d5
|
|
@ -16,11 +16,12 @@
|
||||||
- `php artisan storage:link`
|
- `php artisan storage:link`
|
||||||
- `vim .env`
|
- `vim .env`
|
||||||
```
|
```
|
||||||
APP_URL=http://local.lottery.host
|
APP_URL=http://store-manage.hmily.club
|
||||||
DB_HOST=127.0.0.1
|
DB_HOST=127.0.0.1
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_DATABASE=lottery
|
DB_DATABASE=lottery
|
||||||
DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
DB_PASSWORD=123456
|
DB_PASSWORD=123456
|
||||||
```
|
```
|
||||||
- `php artisan migrate --seed`
|
- `php artisan migrate --seed`
|
||||||
|
- 目录 `./bootstrap/cache` 和 `./storage` 需要写入权限
|
||||||
|
|
@ -8,12 +8,14 @@ use Illuminate\Validation\ValidationException;
|
||||||
use Slowlyo\OwlAdmin\Controllers\AdminController as Controller;
|
use Slowlyo\OwlAdmin\Controllers\AdminController as Controller;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
use App\Traits\CustomActionTrait;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property \App\Admin\Services\BaseService $service
|
* @property \App\Admin\Services\BaseService $service
|
||||||
*/
|
*/
|
||||||
abstract class AdminController extends Controller
|
abstract class AdminController extends Controller
|
||||||
{
|
{
|
||||||
|
use CustomActionTrait;
|
||||||
public function update(Request $request)
|
public function update(Request $request)
|
||||||
{
|
{
|
||||||
$input = $request->all();
|
$input = $request->all();
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ class BaseKeywordController extends AdminController
|
||||||
->loadDataOnce(true)
|
->loadDataOnce(true)
|
||||||
->footerToolbar([])
|
->footerToolbar([])
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton(true),
|
$this->createTypeButton('drawer', 'xl'),
|
||||||
...$this->baseHeaderToolBar(),
|
amis('reload')->align('right'),
|
||||||
])
|
])
|
||||||
->columns([
|
->columns([
|
||||||
amisMake()->TableColumn()->name('id')->label(__('keyword.id')),
|
amisMake()->TableColumn()->name('id')->label(__('keyword.id')),
|
||||||
|
|
@ -26,7 +26,7 @@ class BaseKeywordController extends AdminController
|
||||||
amisMake()->TableColumn()->name('value')->label(__('keyword.value')),
|
amisMake()->TableColumn()->name('value')->label(__('keyword.value')),
|
||||||
amisMake()->TableColumn()->name('sort')->label(__('keyword.sort')),
|
amisMake()->TableColumn()->name('sort')->label(__('keyword.sort')),
|
||||||
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
||||||
$this->rowEditButton(true),
|
$this->rowEditTypeButton('drawer', 'xl'),
|
||||||
$this->rowDeleteButton(),
|
$this->rowDeleteButton(),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class EmployeeController extends AdminController
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton(true)->visible(Admin::user()->can('admin.hr.employees.create')),
|
$this->createTypeButton('drawer', 'xl')->visible(Admin::user()->can('admin.hr.employees.create')),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->bulkActions([])
|
->bulkActions([])
|
||||||
|
|
@ -41,7 +41,7 @@ class EmployeeController extends AdminController
|
||||||
amisMake()->TableColumn()->name('remarks')->label(__('employee.remarks')),
|
amisMake()->TableColumn()->name('remarks')->label(__('employee.remarks')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.employees.view')),
|
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.employees.view')),
|
||||||
$this->rowEditButton(true)->visible(Admin::user()->can('admin.hr.employees.update')),
|
$this->rowEditTypeButton('drawer', 'xl')->visible(Admin::user()->can('admin.hr.employees.update')),
|
||||||
$this->rowDeleteButton()->visible(Admin::user()->can('admin.hr.employees.delete')),
|
$this->rowDeleteButton()->visible(Admin::user()->can('admin.hr.employees.delete')),
|
||||||
amisMake()->AjaxAction()
|
amisMake()->AjaxAction()
|
||||||
->label(__('employee.leave'))
|
->label(__('employee.leave'))
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use App\Admin\Services\EmployeeRestService;
|
||||||
use App\Enums\EmployeeStatus;
|
use App\Enums\EmployeeStatus;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||||
|
use Slowlyo\OwlAdmin\Admin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 休息管理
|
* 休息管理
|
||||||
|
|
@ -20,7 +21,7 @@ class RestController extends AdminController
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton(true, 'lg'),
|
$this->createTypeButton('drawer', 'xl')->visible(Admin::user()->can('admin.hr.rests.create')),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->bulkActions([])
|
->bulkActions([])
|
||||||
|
|
@ -35,7 +36,7 @@ class RestController extends AdminController
|
||||||
// amisMake()->TableColumn()->name('employee.phone')->label(__('employee.phone')),
|
// amisMake()->TableColumn()->name('employee.phone')->label(__('employee.phone')),
|
||||||
amisMake()->TableColumn()->name('date')->label(__('employee_sign.date')),
|
amisMake()->TableColumn()->name('date')->label(__('employee_sign.date')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowDeleteButton(),
|
$this->rowDeleteButton()->visible(Admin::user()->can('admin.hr.rests.delete')),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use App\Admin\Services\EmployeeSignService;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Page;
|
use Slowlyo\OwlAdmin\Renderers\Page;
|
||||||
use App\Enums\{SignType, SignStatus};
|
use App\Enums\{SignType, SignStatus};
|
||||||
|
use Slowlyo\OwlAdmin\Admin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考勤打卡
|
* 考勤打卡
|
||||||
|
|
@ -17,7 +18,6 @@ class SignController extends AdminController
|
||||||
|
|
||||||
public function list(): Page
|
public function list(): Page
|
||||||
{
|
{
|
||||||
// $this->service->signResult();
|
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
|
|
@ -48,7 +48,7 @@ class SignController extends AdminController
|
||||||
->source(SignStatus::source()),
|
->source(SignStatus::source()),
|
||||||
amisMake()->TableColumn()->name('remarks')->label(__('employee_sign.remarks')),
|
amisMake()->TableColumn()->name('remarks')->label(__('employee_sign.remarks')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowShowButton(),
|
$this->rowShowButton()->visible(Admin::user()->can('admin.hr.signs.view')),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class DeviceController extends AdminController
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton(true)->visible(Admin::user()->can('admin.store.devices.create')),
|
$this->createTypeButton('drawer', 'xl')->visible(Admin::user()->can('admin.store.devices.create')),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->bulkActions([])
|
->bulkActions([])
|
||||||
|
|
@ -43,7 +43,7 @@ class DeviceController extends AdminController
|
||||||
amisMake()->TableColumn()->name('remarks')->label(__('store_device.remarks')),
|
amisMake()->TableColumn()->name('remarks')->label(__('store_device.remarks')),
|
||||||
amisMake()->TableColumn()->name('created_at')->label(__('store_device.created_at')),
|
amisMake()->TableColumn()->name('created_at')->label(__('store_device.created_at')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowEditButton(true)->visible(Admin::user()->can('admin.store.devices.update')),
|
$this->rowEditTypeButton('drawer', 'xl')->visible(Admin::user()->can('admin.store.devices.update')),
|
||||||
$this->rowDeleteButton()->visible(Admin::user()->can('admin.store.devices.delete')),
|
$this->rowDeleteButton()->visible(Admin::user()->can('admin.store.devices.delete')),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,11 @@ class EmployeeController extends AdminController
|
||||||
|
|
||||||
public function list(): Page
|
public function list(): Page
|
||||||
{
|
{
|
||||||
|
$user = Admin::user();
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton(true)->visible(Admin::user()->can('admin.store.employees.create')),
|
$this->createTypeButton('drawer', 'xl')->visible($user->can('admin.store.employees.create')),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->bulkActions([])
|
->bulkActions([])
|
||||||
|
|
@ -39,10 +40,10 @@ class EmployeeController extends AdminController
|
||||||
amisMake()->TableColumn()->name('id')->label(__('employee.id')),
|
amisMake()->TableColumn()->name('id')->label(__('employee.id')),
|
||||||
amisMake()->TableColumn()->name('store.title')->label(__('employee.store_id')),
|
amisMake()->TableColumn()->name('store.title')->label(__('employee.store_id')),
|
||||||
amisMake()->TableColumn()->name('name')->label(__('employee.name')),
|
amisMake()->TableColumn()->name('name')->label(__('employee.name')),
|
||||||
amisMake()->TableColumn()->name('store.master_id')->label(__('store.master_id'))->set('type', 'tpl')->tpl('${store.master_id == id ? "店长" : "--"}'),
|
// amisMake()->TableColumn()->name('store.master_id')->label(__('store.master_id'))->set('type', 'tpl')->tpl('${store.master_id == id ? "店长" : "--"}'),
|
||||||
amisMake()->TableColumn()->name('phone')->label(__('employee.phone')),
|
amisMake()->TableColumn()->name('phone')->label(__('employee.phone')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowDeleteButton()->visible(Admin::user()->can('admin.store.employees.delete')),
|
$this->rowDeleteButton()->visible($user->can('admin.store.employees.delete')),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,11 @@ class StoreController extends AdminController
|
||||||
|
|
||||||
public function list(): Page
|
public function list(): Page
|
||||||
{
|
{
|
||||||
|
$user = Admin::user();
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->tableLayout('fixed')
|
->tableLayout('fixed')
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
$this->createButton()->visible(Admin::user()->can('admin.store.stores.create')),
|
$this->createTypeButton('drawer', 'xl')->visible($user->can('admin.store.stores.create')),
|
||||||
...$this->baseHeaderToolBar(),
|
...$this->baseHeaderToolBar(),
|
||||||
])
|
])
|
||||||
->bulkActions([])
|
->bulkActions([])
|
||||||
|
|
@ -66,9 +67,9 @@ class StoreController extends AdminController
|
||||||
amisMake()->TableColumn()->name('business_status')->label(__('store.business_status'))->type('switch')->trueValue(BusinessStatus::Open)->falseValue(BusinessStatus::Close),
|
amisMake()->TableColumn()->name('business_status')->label(__('store.business_status'))->type('switch')->trueValue(BusinessStatus::Open)->falseValue(BusinessStatus::Close),
|
||||||
amisMake()->TableColumn()->name('created_at')->label(__('store.created_at')),
|
amisMake()->TableColumn()->name('created_at')->label(__('store.created_at')),
|
||||||
$this->rowActions([
|
$this->rowActions([
|
||||||
$this->rowShowButton()->visible(Admin::user()->can('admin.store.stores.view')),
|
$this->rowShowButton()->visible($user->can('admin.store.stores.view')),
|
||||||
$this->rowEditButton()->visible(Admin::user()->can('admin.store.stores.update')),
|
$this->rowEditTypeButton('drawer', 'xl')->visible($user->can('admin.store.stores.update')),
|
||||||
$this->rowDeleteButton()->visible(Admin::user()->can('admin.store.stores.delete')),
|
$this->rowDeleteButton()->visible($user->can('admin.store.stores.delete')),
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -80,7 +81,7 @@ class StoreController extends AdminController
|
||||||
return $this->baseForm()->title('')->body([
|
return $this->baseForm()->title('')->body([
|
||||||
amisMake()->TextControl()->name('title')->label(__('store.title'))->required(),
|
amisMake()->TextControl()->name('title')->label(__('store.title'))->required(),
|
||||||
amisMake()->SelectControl()->name('master_id')->label(__('store.master_id'))
|
amisMake()->SelectControl()->name('master_id')->label(__('store.master_id'))
|
||||||
->source(admin_url('api/employees?_all=1&employee_status='.EmployeeStatus::Online->value))
|
->source($edit ? admin_url('api/employees?_all=1&employee_status='.EmployeeStatus::Online->value) : admin_url('api/employees?_all=1&store_id=0&employee_status='.EmployeeStatus::Online->value))
|
||||||
->labelField('name')
|
->labelField('name')
|
||||||
->valueField('id')
|
->valueField('id')
|
||||||
->searchable()
|
->searchable()
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,44 @@ class StoreService extends BaseService
|
||||||
|
|
||||||
protected string $modelFilterName = StoreFilter::class;
|
protected string $modelFilterName = StoreFilter::class;
|
||||||
|
|
||||||
|
public function store($data): bool
|
||||||
|
{
|
||||||
|
$data = $this->resloveData($data);
|
||||||
|
|
||||||
|
$validate = $this->validate($data);
|
||||||
|
if ($validate !== true) {
|
||||||
|
$this->setError($validate);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$model = $this->modelName::create($data);
|
||||||
|
|
||||||
|
// 绑定店长
|
||||||
|
// Employee::where('id', $data['master_id'])->update(['store_id' => $model->id]);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update($primaryKey, $data): bool
|
||||||
|
{
|
||||||
|
$model = $this->query()->whereKey($primaryKey)->firstOrFail();
|
||||||
|
$data = $this->resloveData($data, $model);
|
||||||
|
$validate = $this->validate($data, $model);
|
||||||
|
if ($validate !== true) {
|
||||||
|
$this->setError($validate);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 还原以前的店长
|
||||||
|
// if (isset($data['master_id']) && $model->master_id != $data['master_id']) {
|
||||||
|
// Employee::where('id', $model->master_id)->update(['store_id' => 0]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
return $model->update($data);
|
||||||
|
}
|
||||||
|
|
||||||
public function resloveData($data, $model = null)
|
public function resloveData($data, $model = null)
|
||||||
{
|
{
|
||||||
if (isset($data['location'])) {
|
if (isset($data['location'])) {
|
||||||
|
|
@ -25,17 +63,6 @@ class StoreService extends BaseService
|
||||||
$data['address'] = data_get($data['location'], 'address');
|
$data['address'] = data_get($data['location'], 'address');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 绑定店长
|
|
||||||
if (isset($data['master_id'])) {
|
|
||||||
// 还原以前的店长
|
|
||||||
if ($model && $model->master_id != $data['master_id']) {
|
|
||||||
Employee::where('id', $model->master_id)->update(['store_id' => 0]);
|
|
||||||
}
|
|
||||||
if ($model->master_id != $data['master_id']) {
|
|
||||||
Employee::where('id', $data['master_id'])->update(['store_id' => $model->id]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ Route::group([
|
||||||
// 门店管理
|
// 门店管理
|
||||||
$router->resource('stores', StoreController::class);
|
$router->resource('stores', StoreController::class);
|
||||||
// 店员管理
|
// 店员管理
|
||||||
$router->resource('employees', StoreEmployeeController::class);
|
$router->resource('employees', StoreEmployeeController::class)->only(['index', 'store', 'destroy']);
|
||||||
// 彩票机管理
|
// 彩票机管理
|
||||||
$router->resource('devices', DeviceController::class);
|
$router->resource('devices', DeviceController::class);
|
||||||
// 门店分类
|
// 门店分类
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class StoreFactory extends Factory
|
||||||
{
|
{
|
||||||
return $this->afterMaking(function (Store $model) {
|
return $this->afterMaking(function (Store $model) {
|
||||||
})->afterCreating(function (Store $model) {
|
})->afterCreating(function (Store $model) {
|
||||||
Employee::where('id', $model->master_id)->update(['store_id' => $model->id]);
|
// Employee::where('id', $model->master_id)->update(['store_id' => $model->id]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,25 +50,25 @@ class AdminPermissionSeeder extends Seeder
|
||||||
'name' => '店员管理',
|
'name' => '店员管理',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/store/employees',
|
'uri' => '/store/employees',
|
||||||
'resource' => true,
|
'resource' => ['list', 'create', 'delete'],
|
||||||
],
|
],
|
||||||
'categories' => [
|
'categories' => [
|
||||||
'name' => '门店分类',
|
'name' => '门店分类',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/store/categories?parent_key=store_category',
|
'uri' => '/store/categories?parent_key=store_category',
|
||||||
'resource' => false,
|
'resource' => true,
|
||||||
],
|
],
|
||||||
'levels' => [
|
'levels' => [
|
||||||
'name' => '门店等级',
|
'name' => '门店等级',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/store/levels?parent_key=store_levels',
|
'uri' => '/store/levels?parent_key=store_levels',
|
||||||
'resource' => false,
|
'resource' => true,
|
||||||
],
|
],
|
||||||
'business' => [
|
'business' => [
|
||||||
'name' => '经营类别',
|
'name' => '经营类别',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/store/business?parent_key=store_business',
|
'uri' => '/store/business?parent_key=store_business',
|
||||||
'resource' => false,
|
'resource' => true,
|
||||||
],
|
],
|
||||||
'devices' => [
|
'devices' => [
|
||||||
'name' => '彩票机管理',
|
'name' => '彩票机管理',
|
||||||
|
|
@ -80,7 +80,7 @@ class AdminPermissionSeeder extends Seeder
|
||||||
'name' => '彩种类型',
|
'name' => '彩种类型',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/store/lottery-types?parent_key=lottery_type',
|
'uri' => '/store/lottery-types?parent_key=lottery_type',
|
||||||
'resource' => false,
|
'resource' => true,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
@ -108,7 +108,7 @@ class AdminPermissionSeeder extends Seeder
|
||||||
'name' => '职位管理',
|
'name' => '职位管理',
|
||||||
'icon' => '',
|
'icon' => '',
|
||||||
'uri' => '/hr/jobs?parent_key=job',
|
'uri' => '/hr/jobs?parent_key=job',
|
||||||
'resource' => false,
|
'resource' => true,
|
||||||
],
|
],
|
||||||
'rests' => [
|
'rests' => [
|
||||||
'name' => '休息管理',
|
'name' => '休息管理',
|
||||||
|
|
|
||||||
|
|
@ -16,15 +16,15 @@ class EmployeeSeeder extends Seeder
|
||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
// DB::table('employee_jobs')->truncate();
|
DB::table('employee_jobs')->truncate();
|
||||||
// Employee::truncate();
|
Employee::truncate();
|
||||||
// (new EmployeeFactory)->count(100)->create(['admin_user_id' => 1]);
|
(new EmployeeFactory)->count(100)->create(['admin_user_id' => 1]);
|
||||||
|
|
||||||
// Store::truncate();
|
Store::truncate();
|
||||||
// Store::factory()->count(10)->create();
|
Store::factory()->count(10)->create();
|
||||||
|
|
||||||
EmployeeSign::truncate();
|
// EmployeeSign::truncate();
|
||||||
EmployeeSignLog::truncate();
|
// EmployeeSignLog::truncate();
|
||||||
EmployeeSignLog::factory()->count(100)->create();
|
// EmployeeSignLog::factory()->count(100)->create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue