|
|
@ -37,6 +37,8 @@ class CategoryController extends AdminController |
|
|
protected function grid() |
|
|
protected function grid() |
|
|
{ |
|
|
{ |
|
|
return Grid::make(new Category(), function (Grid $grid) { |
|
|
return Grid::make(new Category(), function (Grid $grid) { |
|
|
|
|
|
$grid->model()->where('agent_id', Admin::user()->id); |
|
|
|
|
|
|
|
|
$grid->column('id')->sortable(); |
|
|
$grid->column('id')->sortable(); |
|
|
$grid->column('name'); |
|
|
$grid->column('name'); |
|
|
$grid->column('pid'); |
|
|
$grid->column('pid'); |
|
|
@ -55,6 +57,11 @@ class CategoryController extends AdminController |
|
|
protected function detail($id) |
|
|
protected function detail($id) |
|
|
{ |
|
|
{ |
|
|
return Show::make($id, new Category(), function (Show $show) { |
|
|
return Show::make($id, new Category(), function (Show $show) { |
|
|
|
|
|
//不允许查看非自己的数据
|
|
|
|
|
|
if ($show->model()->agent_id != Admin::user()->id) { |
|
|
|
|
|
Admin::exit('数据不存在'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$show->field('id'); |
|
|
$show->field('id'); |
|
|
$show->field('name'); |
|
|
$show->field('name'); |
|
|
$show->field('pid'); |
|
|
$show->field('pid'); |
|
|
@ -75,27 +82,33 @@ class CategoryController extends AdminController |
|
|
$options = Category::selectOptions(fn($query) => $query->where('agent_id', $agent_id)); |
|
|
$options = Category::selectOptions(fn($query) => $query->where('agent_id', $agent_id)); |
|
|
|
|
|
|
|
|
$form->display('id'); |
|
|
$form->display('id'); |
|
|
$form->hidden('agent_id')->value($agent_id)->required(); |
|
|
|
|
|
$form->select('pid')->options($options)->required(); |
|
|
$form->select('pid')->options($options)->required(); |
|
|
$form->text('name')->required(); |
|
|
$form->text('name')->required(); |
|
|
$form->text('sort')->default(255)->help('越小越靠前'); |
|
|
$form->text('sort')->default(255)->help('越小越靠前'); |
|
|
// $form->text('template');
|
|
|
// $form->text('template');
|
|
|
})->saving(function (Form $form) { |
|
|
})->saving(function (Form $form) { |
|
|
|
|
|
//不允许修改非自己的数据
|
|
|
|
|
|
if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) { |
|
|
|
|
|
return $form->response()->error('数据不存在'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//不允许编辑的字段
|
|
|
//不允许编辑的字段
|
|
|
$form->ignore(['id', 'deleted_at']); |
|
|
$form->ignore(['id', 'deleted_at']); |
|
|
|
|
|
|
|
|
$form->agent_id = Admin::user()->id; |
|
|
$form->agent_id = Admin::user()->id; |
|
|
$form->sort = $form->sort ?? 255; |
|
|
$form->sort = $form->sort ?? 255; |
|
|
})->deleting(function (Form $form) { |
|
|
})->deleting(function (Form $form) { |
|
|
//获取到要删除分类的ID
|
|
|
|
|
|
$category_id = (int)$form->getKey(); |
|
|
|
|
|
|
|
|
//不允许修改非自己的数据
|
|
|
|
|
|
if ($form->model()[0]['agent_id'] != Admin::user()->id) { |
|
|
|
|
|
return $form->response()->error('数据不存在'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//获取要删除类目的所有下级ID
|
|
|
//获取要删除类目的所有下级ID
|
|
|
$agent_id = Admin::user()->id; |
|
|
$agent_id = Admin::user()->id; |
|
|
$category = Category::where('agent_id', $agent_id)->pluck('pid', 'id')->toArray(); |
|
|
$category = Category::where('agent_id', $agent_id)->pluck('pid', 'id')->toArray(); |
|
|
$ids = getChildCate($category_id, $category); |
|
|
|
|
|
|
|
|
$ids = getChildCate((int)$form->getKey(), $category); |
|
|
|
|
|
|
|
|
if (AgentProduct::query()->where('agent_id', $agent_id)->whereIn('category_id', $ids)->exists()) { |
|
|
|
|
|
|
|
|
if (AgentProduct::where('agent_id', $agent_id)->whereIn('category_id', $ids)->exists()) { |
|
|
return $form->response()->error('该分类下已经发布产品,不允许删除'); |
|
|
return $form->response()->error('该分类下已经发布产品,不允许删除'); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|