Browse Source

修改菜单显示

zs 1 year ago
parent
commit
050814a992

+ 3 - 3
src/components/admin-frame/parts/Sidebar.vue

@@ -68,14 +68,14 @@ const route = useRoute();
 let onRoutes = route.path;
 let user: Ref<any> = ref({});
 const styleInfo: Ref<any> = ref(menuInfo.info);
-let items: Ref<any> = ref(menuInfo.menuList);
+let items: Ref<any> = ref([]);
 onMounted(async () => {
   user.value = store.state.user;
 });
 
 const getMenu = async () => {
-  // let res: IQueryResult = await roleAxios.am();
-  // if (res.errcode == 0) items.value = res.data;
+  let res: IQueryResult = await roleAxios.um();
+  if (res.errcode == 0) items.value = res.data;
 };
 
 watch(

+ 1 - 204
src/layout/site.ts

@@ -10,208 +10,5 @@ export const menuInfo = {
     mode: 'horizontal',
     backColor: '#242f42',
     textColor: '#ffffff'
-  },
-  menuList: [
-    { icon: 'icon-shouye', _id: 'admin_1', path: '/homeIndex', name: '系统首页' },
-    {
-      icon: 'icon-shezhi',
-      _id: 'admin_2',
-      name: '系统管理',
-      index: '2',
-      type: '0',
-      children: [
-        { icon: 'icon-shezhi', _id: 'admin_2_1', path: '/system/role', name: '角色管理' },
-        { icon: 'icon-shezhi', _id: 'admin_2_2', path: '/system/menus', name: '菜单管理' },
-        { icon: 'icon-shezhi', _id: 'admin_2_3', path: '/system/dict', name: '字典管理' }
-      ]
-    },
-    {
-      icon: 'icon-yonghu',
-      _id: 'admin_3',
-      name: '用户管理',
-      index: '3',
-      type: '0',
-      children: [
-        { icon: 'icon-yonghu', _id: 'admin_3_1', path: '/user/user', name: '普通用户' },
-        { icon: 'icon-yonghu', _id: 'admin_3_2', path: '/user/admin', name: '区域管理员' }
-      ]
-    },
-    {
-      icon: 'icon-gengduoneirong',
-      _id: 'admin_4',
-      name: '内容管理',
-      index: '4',
-      type: '0',
-      children: [
-        { icon: 'icon-gengduoneirong', _id: 'admin_4_1', path: '/content/news', name: '新闻管理' },
-        {
-          icon: 'icon-gengduoneirong',
-          _id: 'admin_4_2',
-          path: '/content/activity',
-          name: '活动管理'
-        },
-        {
-          icon: 'icon-gengduoneirong',
-          _id: 'admin_4_3',
-          path: '/content/article',
-          name: '游玩攻略管理'
-        },
-        { icon: 'icon-gengduoneirong', _id: 'admin_4_4', path: '/content/notice', name: '公告管理' }
-      ]
-    },
-    {
-      icon: 'icon-jichuxinxi',
-      _id: 'admin_5',
-      name: '基础信息管理',
-      index: '5',
-      type: '0',
-      children: [
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_1', path: '/basic/guide', name: '导游导览管理' },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_2',
-          path: '/basic/place',
-          name: '景区景点管理'
-        },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_3',
-          path: '/basic/hotel',
-          name: '酒店民宿管理'
-        },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_4',
-          path: '/basic/food',
-          name: '餐饮场所管理'
-        },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_5', path: '/basic/shop', name: '购物场所管理' },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_6',
-          path: '/basic/tourism',
-          name: '特色旅游管理'
-        },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_7',
-          path: '/basic/delicacy',
-          name: '特色美食管理'
-        },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_8', path: '/basic/souvenir', name: '纪念品管理' },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_9', path: '/basic/toilet', name: '厕所管理' },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_10', path: '/basic/parking', name: '停车场管理' },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_11', path: '/basic/medical', name: '医疗点管理' },
-        {
-          icon: 'icon-jichuxinxi',
-          _id: 'admin_5_12',
-          name: '多媒体管理',
-          type: '2',
-          children: [
-            {
-              _id: 'admin_5_12_1',
-              icon: 'icon-jichuxinxi',
-              name: '音频管理',
-              path: '/basic/media/audio'
-            },
-            {
-              _id: 'admin_5_12_2',
-              icon: 'icon-jichuxinxi',
-              name: '视频管理',
-              path: '/basic/media/video'
-            },
-            {
-              _id: 'admin_5_12_3',
-              icon: 'icon-jichuxinxi',
-              name: '图片管理',
-              path: '/basic/media/url'
-            }
-          ]
-        },
-        { icon: 'icon-jichuxinxi', _id: 'admin_5_13', path: '/basic/comment', name: '评论管理' }
-      ]
-    },
-    {
-      icon: 'icon-yewu',
-      _id: 'admin_6',
-      name: '业务管理',
-      index: '6',
-      type: '0',
-      children: [
-        { icon: 'icon-yewu', _id: 'admin_6_1', path: '/business/advert', name: '广告管理' },
-        {
-          icon: 'icon-yewu',
-          _id: 'admin_6_2',
-          path: '/business/vote',
-          name: '投票管理'
-        },
-        {
-          icon: 'icon-yewu',
-          _id: 'admin_6_3',
-          path: '/business/market',
-          name: '营销管理'
-        }
-      ]
-    },
-    {
-      icon: 'icon-kefufenxiermaikefu',
-      _id: 'admin_7',
-      name: '客服管理',
-      index: '7',
-      type: '0',
-      children: [
-        { icon: 'icon-kefufenxiermaikefu', _id: 'admin_7_1', path: '/customer/intelligence', name: '智能客服管理' },
-        {
-          icon: 'icon-kefufenxiermaikefu',
-          _id: 'admin_7_2',
-          path: '/customer/problem',
-          name: 'FAQ问答管理'
-        }
-      ]
-    },
-    {
-      icon: 'icon-wenti-m',
-      _id: 'admin_8',
-      name: '问题管理',
-      index: '8',
-      type: '0',
-      children: [
-        { icon: 'icon-wenti-m', _id: 'admin_8_1', path: '/problem/opinion', name: '意见反馈管理' },
-        {
-          icon: 'icon-wenti-m',
-          _id: 'admin_8_2',
-          path: '/problem/questionnaire',
-          name: '问卷调查管理'
-        }
-      ]
-    },
-    {
-      icon: 'icon-dingdan',
-      _id: 'admin_9',
-      name: '订单管理',
-      index: '9',
-      path: '/order/index'
-    },
-    {
-      icon: 'icon-zhanghaoguanli',
-      _id: 'admin_10',
-      name: '账号管理',
-      index: '10',
-      type: '0',
-      children: [
-        {
-          icon: 'icon-zhanghaoguanli',
-          _id: 'admin_10_1',
-          path: '/acccount/information',
-          name: '账号信息'
-        },
-        {
-          icon: 'icon-zhanghaoguanli',
-          _id: 'admin_10_2',
-          path: '/acccount/updatepd',
-          name: '修改密码'
-        }
-      ]
-    }
-  ]
+  }
 };

+ 1 - 1
src/views/login/index.vue

@@ -21,7 +21,7 @@
             </el-button>
           </el-form-item>
           <div style="float: right">
-            <el-button type="primary" @click="register()" link>立即系统首页</el-button>
+            <el-button type="primary" @click="register()" link>立即注册</el-button>
           </div>
         </el-form>
         <!--  底部  -->

+ 40 - 15
src/views/system/menus/index.vue

@@ -18,7 +18,17 @@
             <template #default="scope">{{ getDict('type', scope.row) }} </template>
           </el-table-column>
           <el-table-column align="center" label="是否启用" prop="is_use">
-            <template #default="scope">{{ getDict('is_use', scope.row) }} </template>
+            <template #default="scope">
+              <el-switch
+                v-model="scope.row.is_use"
+                inline-prompt
+                active-text="是"
+                inactive-text="否"
+                active-value="0"
+                inactive-value="1"
+                @click="handleChange(scope.row)"
+              ></el-switch>
+            </template>
           </el-table-column>
           <el-table-column align="center" label="备注" prop="remark"> </el-table-column>
           <el-table-column align="center" label="操作">
@@ -128,33 +138,28 @@ const search = async () => {
 };
 const getDict = (model: string, row: any) => {
   let word = '';
-  if (model == 'type') {
-    const r = typeList.value.find((f) => f.value === row.type);
-    if (r) word = r.label;
-    return word;
-  } else {
-    const r = is_useList.value.find((f) => f.value === row.type);
-    if (r) word = r.label;
-    return word;
-  }
+  const r = typeList.value.find((f) => f.value === row.type);
+  if (r) word = r.label;
+  return word;
 };
 // 添加
 const toAdd = () => {
   dialog.value = true;
 };
-// 保存
+// 修改
 const toUpdate = (row: any) => {
-  form.value = { parent_id: row._id };
+  form.value = _.cloneDeep(row);
   dialog.value = true;
 };
-// 修改
+// 添加下一级
 const toAddNext = (row: any) => {
-  form.value = _.cloneDeep(row);
+  form.value = { parent_id: row._id };
   dialog.value = true;
 };
-// 添加下一级
+// 保存
 const toSave = async (data: any) => {
   let res: IQueryResult;
+  data = _.omit(data, ['children', 'parent_name']); // 过滤掉属性为children的项
   if (data._id) res = await menusAxios.update(data);
   else res = await menusAxios.create(data);
   if (res.errcode == 0) {
@@ -201,6 +206,7 @@ const toClose = () => {
   form.value = {};
   tab.value = 'basic';
   dialog.value = false;
+  search();
 };
 // 查询其他信息
 const searchOther = async () => {
@@ -215,6 +221,25 @@ const searchOther = async () => {
   res = await dictAxios.query({ type: 'menus_type', is_use: '0' });
   if (res.errcode == '0') typeList.value = res.data;
 };
+// 修改是否启用
+const handleChange = (row: any) => {
+  const text = row.is_use === '0' ? '启用' : '停用';
+  ElMessageBox.confirm('确认要"' + text + '""' + row.name + '"吗?', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning'
+  })
+    .then(async () => {
+      let res: IQueryResult;
+      if (row._id) res = await menusAxios.update(row);
+      if (res.errcode == 0) {
+        ElMessage({ type: `success`, message: `修改成功` });
+      }
+    })
+    .catch(() => {
+      row.is_use = row.is_use === '0' ? '1' : '0';
+    });
+};
 </script>
 <style scoped lang="scss">
 .main {