| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace App\Http\Controllers\Manager;
- use App\Http\Requests\Manager\Menu as Request;
- use App\Models\Manager\Menu as MenuModel;
- /**
- * 菜单管理
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-05
- *
- */
- class Menu extends Manager
- {
- /**
- * 列表
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-05
- */
- public function list(MenuModel $MenuModel)
- {
- // 查询数据
- $menu = $MenuModel->query()->select(['id', 'title', 'module', 'url', 'icon', 'type', 'pid'])->get()->toArray();
- // 树形
- $list = array_sort(list_to_tree($menu), 'module', SORT_ASC);
- // 返回结果
- return json_send(['code' => 'success', 'msg' => '成功', 'data' => $list]);
- }
- /**
- * 新增
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-05
- */
- public function add(Request $request, MenuModel $MenuModel)
- {
- // 进行验证
- $request->scene('add')->validate();
- // 接收参数
- $data['url'] = request('url', '');
- $data['title'] = request('title', '');
- $data['module'] = request('module', '');
- $data['icon'] = request('icon', '');
- $data['type'] = request('type', '');
- $data['pid'] = request('pid', 0);
- $data['sort_order'] = request('sort_order', 0);
- // 新增
- $data['id'] = $MenuModel->add($data);
- // 提示
- if (!$data['id']) return json_send(['code' => 'error', 'msg' => '新增失败']);
- // 成功
- return json_send(['code' => 'success', 'msg' => '新增成功', 'data' => $data]);
- }
- /** 编辑
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-05
- */
- public function edit(Request $request, MenuModel $MenuModel)
- {
- // 进行验证
- $request->scene('edit')->validate();
- // 接收参数
- $id = request('id', 0);
- $data['url'] = request('url', '');
- $data['title'] = request('title', '');
- $data['module'] = request('module', '');
- $data['icon'] = request('icon', '');
- $data['type'] = request('type', '');
- $data['pid'] = request('pid', 0);
- $data['sort_order'] = request('sort_order', 0);
- // 查询数据
- $oldData = $MenuModel->query()->find($id);
- // 提示
- if (!$oldData) return json_send(['code' => 'error', 'msg' => '数据不存在']);
- // 错误
- if ($data['pid'] == $id) return json_send(['code' => 'error', 'msg' => '上级菜单不能为当前菜单']);
- // 新增
- $data['id'] = $MenuModel->edit($id, $data);
- // 提示
- if (!$data['id']) return json_send(['code' => 'error', 'msg' => '编辑失败']);
- // 成功
- return json_send(['code' => 'success', 'msg' => '编辑成功', 'data' => $data]);
- }
- /** 删除
- * @author 唐远望
- * @version 1.0
- * @date 2025-12-05
- */
- public function delete(Request $request, MenuModel $MenuModel)
- {
- // 进行验证
- $request->scene('delete')->validate();
- // 接收参数
- $id = request('id', 0);
- // 查询数据
- $oldData = $MenuModel->query()->find($id);
- // 提示
- if (!$oldData) return json_send(['code' => 'error', 'msg' => '数据不存在']);
- // 如果有数据
- if ($MenuModel->where([['pid', '=', $id]])->value('id')) return json_send(['code' => 'error', 'msg' => '请先删除子节点']);
- // 删除节点
- $result = $MenuModel->query()->where([['id', '=', $id]])->delete();
- // 删除失败
- if (!$result) return json_send(['code' => 'error', 'msg' => '删除失败']);
- // 更新缓存
- $MenuModel->getList($oldData['module'], true);
- // 删除成功
- return json_send(['code' => 'success', 'msg' => '删除成功', 'data' => ['id' => $id]]);
- }
- }
|