frontmenuModel = new frontMenuModel; } /** * @title: 获取小程序菜单列表 * @param {int} {group_id} {} {小程序页面分类id} * @return array * @Author: wangkewei * @Date: 2021/5/18 9:15 */ public function getList() { $list = $this->frontmenuModel->order('sort ASC')->select(); $list = FieldConverList($list,['icon'=>'image']); return res(1,"获取成功",$list); } /** * @title: 编辑小程序菜单 * @param array * @return array * @Author: wangkewei * @Date: 2021/5/18 9:15 */ public function doEdit() { $params = $this->request->param(); $meta = !empty($params['meta'])?$params['meta']:[]; unset($params['meta']); $params = array_merge($params,$meta); $check = $this->validate($params,FrontmenusValidate::class); if(true!==$check){ return Result(0,$check); } $pid = !empty($params['pid'])?$params['pid']:0; $data = [ "name" => $params['name'], "title" => $params['title'], "path" => $params['path']??"", "component" => $params['component']??"", "is_root" => $pid==0?1:2, "is_parent" => !empty($params['is_parent'])?1:2, "pid" => $pid, "badge" => !empty($params['badge'])?$params['badge']:'', "icon" => !empty($params['icon'])?str_replace(WEBURL,'',$params['icon']):"", "redirect" => !empty($params['redirect'])?$params['redirect']:"", "affix" => !empty($params['affix'])?1:2, "hidden" => !empty($params['hidden'])?$params['hidden']:2, "dot" => !empty($params['dot'])?1:2, "noKeepAlive" => !empty($params['noKeepAlive'])?1:2, "alwaysShow" => !empty($params['alwaysShow'])?1:2, "isCustomSvgIcon" => !empty($params['isCustomSvgIcon'])?1:2, "tabHidden" => !empty($params['tabHidden'])?1:2, "sort" => !empty($params['sort'])?$params['sort']:0, "cascade" => !empty($params['cascade'])?$params['cascade']:"", "status" => !empty($params['status'])?:1, "desc" => $params['desc']??'', "group" => $params['group']??0, ]; if(!empty($params['menu_id'])){ $data['menu_id'] = $params['menu_id']; } if(!empty($pid)){ $this->frontmenuModel->where('menu_id',$pid)->update(['is_parent'=>1]); } $this->frontmenuModel->replace()->save($data); slog(1,"编辑了小程序菜单".$data['name']); return res(1,"保存成功"); } /** * @title: 删除小程序菜单 * @param {int} {id} {必填} {小程序菜单ID} * @return array * @Author: wangkewei * @Date: 2021/5/18 9:16 */ public function doDelete(int $id) { $where = []; $where[] = ['menu_id','=',$id]; try{ frontMenuModel::startTrans(); // 删除企业类型相关的菜单和请求 $orgTypeList = OrgType::where('front_ids','FIND IN SET',$id)->select()->toArray(); $orgTypeSaveData = []; foreach($orgTypeList as $orgTypeItem){ $orgTypeItem['front_ids'] = array_diff($orgTypeItem['front_ids'],[$id]); $orgTypeSaveData[] = $orgTypeItem; } // 删除企业相关的菜单和请求 $orgList = Org::where('front_ids','FIND IN SET',$id)->select()->toArray(); $orgSaveData = []; foreach($orgList as $orgItem){ $orgItem['front_ids'] = array_diff($orgItem['front_ids'],[$id]); $orgSaveData[] = $orgItem; } // 删除企业角色相关的菜单和请求 $orgRoleList = OrgRole::where('front_ids','FIND IN SET',$id)->select()->toArray(); $orgRoleSaveData = []; foreach($orgRoleList as $orgRoleItem){ $orgRoleItem['front_ids'] = array_diff($orgRoleItem['front_ids'],[$id]); $orgRoleSaveData[] = $orgRoleItem; } // 保存修改 (new OrgType)->replace()->saveAll($orgTypeSaveData); (new Org)->replace()->saveAll($orgSaveData); (new OrgRole)->replace()->saveAll($orgRoleSaveData); // 删除小程序菜单 $info = frontMenuModel::where($where)->find(); $info->delete(); frontMenuModel::commit(); }catch(\Exception $e){ frontMenuModel::rollback(); return res(2,"删除失败"); } slog(1,"删除了小程序菜单"); return res(1,"删除成功"); } /** * @title: 显示/隐藏小程序菜单 * @desc: * @param {*} * @return {*} * @Author: Rock * @Date: 2021-09-07 20:20:48 * @LastEditTime: Do not edit */ public function doHidden() { $data = $this->request->param(); if(empty($data['ids'])){ return res(2,'参数错误'); } $ids = $data['ids']; $info = $this->frontmenuModel->where('menu_id',$ids)->find(); $info->hidden = abs($info->hidden * 3 - 5); $info->save(); slog(1,($info->hidden==1?"隐藏":"显示")."了小程序页面".$info->name); return res(1,"操作成功"); } /** * @title: 获取小程序菜单可选项 * @desc: * @param {*} * @return {*} * @Author: Rock * @Date: 2021-12-28 14:31:43 * @LastEditTime: Do not edit */ public function getOptions() { $data = [ 'hiddenList' => frontMenuModel::hiddenList(), 'groupList' => frontMenuModel::groupList(), ]; return res(1,"获取成功",$data); } }