91 lines
3.1 KiB
PHP
91 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers\Store;
|
|
|
|
use Dcat\Admin\{Form, Grid, Admin, Show};
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
use App\Models\Store\{Store, Desk};
|
|
use App\Models\{ProductCategory};
|
|
|
|
class DeskController extends AdminController
|
|
{
|
|
protected $translation = 'store-desk';
|
|
|
|
protected function grid()
|
|
{
|
|
return Grid::make(Desk::with(['store']), function (Grid $grid) {
|
|
$grid->model()->orderBy('created_at', 'desc');
|
|
|
|
$grid->column('id');
|
|
$grid->column('store_id')->display(fn() => data_get($this->store, 'title'));
|
|
$grid->column('name');
|
|
// $grid->column('status')->switch();
|
|
$grid->column('wxcode')->image('', 100, 100);
|
|
$grid->column('remarks')->editable();
|
|
|
|
$user = Admin::user();
|
|
|
|
$grid->showViewButton($user->can('dcat.admin.store.desk.show'));
|
|
$grid->showCreateButton($user->can('dcat.admin.store.desk.create'));
|
|
$grid->showEditButton($user->can('dcat.admin.store.desk.edit'));
|
|
$grid->showDeleteButton($user->can('dcat.admin.store.desk.destroy'));
|
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->panel();
|
|
$filter->equal('store_id')->select('api/store')->width(3);
|
|
$filter->like('name')->width(3);
|
|
});
|
|
|
|
$grid->actions(new \App\Admin\Actions\Store\RowDeskWxCode());
|
|
});
|
|
}
|
|
|
|
protected function form()
|
|
{
|
|
return Form::make(new Desk(), function (Form $form) {
|
|
$form->select('store_id')->options(Store::pluck('title', 'id'))->required();
|
|
$form->text('name')->required();
|
|
// $form->switch('status')->default(1);
|
|
$form->text('remarks');
|
|
|
|
$form->embeds('extra', function (Form\EmbeddedForm $form) {
|
|
$form->select('category_id')->options(ProductCategory::selectOptions());
|
|
});
|
|
|
|
$form->disableCreatingCheck();
|
|
$form->disableEditingCheck();
|
|
$form->disableDeleteButton();
|
|
$form->disableResetButton();
|
|
|
|
$form->saved(function (Form $form, $result) {
|
|
// 新增桌号, 生成小程序码
|
|
if ($form->isCreating()) {
|
|
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, Desk::with(['store']), function (Show $show) {
|
|
$show->field('id');
|
|
$show->field('store_id')->as(fn() => data_get($this->store, 'name'));
|
|
$show->field('name');
|
|
// $show->field('status')->bool();
|
|
$show->field('wxcode');
|
|
$show->field('remarks');
|
|
|
|
$model = $show->model();
|
|
$category_id = data_get($model->extra, 'category_id');
|
|
if ($category_id) {
|
|
$category = ProductCategory::find($category_id);
|
|
$show->field('category_id')->as(fn() => $category ? $category->name : $category_id);
|
|
}
|
|
|
|
$show->disableEditButton();
|
|
$show->disableDeleteButton();
|
|
});
|
|
}
|
|
}
|