| // +------------------------------------------------+ namespace app\system\controller; use app\common\model\Menu as MenuModel; use app\common\service\Menu as MenuService; use think\Db; use think\Request; use tools\Tree; class Menu extends _Init { /** * 菜单列表 * @param integer $pid 上级id * @return [type] [description] */ public function index($pid = 0) { $this->list = MenuModel::where('status', 'egt', 0)->where('pid', $pid)->order('sort asc')->paginate(); $this->menu = MenuService::tree(); $this->info = MenuModel::get($pid); return $this->fetch(); } /** * 添加菜单 * @param integer $pid 上级id */ public function add(Request $request, $pid = 0) { if (IS_POST) { $data = $request->post(); $result = MenuService::add($data); return $this->back($result); } else { $info['pid'] = $pid; $this->info = $info; $this->up_menus = self::_treeShow(); return $this->fetch(); } } /** * 编辑菜单 * @param [type] $id 菜单id * @return [type] [description] */ public function edit(Request $request, $id) { if (IS_POST) { $data = $request->post(); $result = MenuService::edit($data); return $this->back($result); } else { $this->info = MenuModel::get($id); $this->up_menus = self::_treeShow($id); return $this->fetch('add'); } } /** * 删除菜单 * @param [type] $id 要删除的菜单id * @return [type] [description] */ public function del($id) { $result = MenuService::del($id); return $this->back($result); } /** * 设置菜单状态 * @param [type] $id 要设置的菜单id * @param [type] $status 要设置的状态 正常 和 禁用 true false * @param [type] $type 要设置的字段 status * @return [type] 返回操作的结果 成功 true 失败 返回失败的信息 */ public function status($id, $status, $type) { $result = MenuService::status($id, $status, $type); return $this->back($result); } private function _treeShow($id = 0) { $map = []; if ($id) { $map['id'] = ['neq', $id]; } $menus = Db::name('Menu')->where($map)->order('sort asc')->select(); $menus = Tree::toFormatTree($menus); $menus = array_merge([0 => ['id' => 0, 'title_show' => '顶级菜单']], $menus); return $menus; } }