Sfoglia il codice sorgente

fix: 菜单不区分一级二级

zh 2 anni fa
parent
commit
05f6307bbe
1 ha cambiato i file con 32 aggiunte e 15 eliminazioni
  1. 32 15
      src/views/setting/menu.vue

+ 32 - 15
src/views/setting/menu.vue

@@ -65,7 +65,7 @@
 
     <!-- 新增编辑 一级菜单 -->
     <el-dialog
-      :title="addParentFormType == 'add' ? '添加一级菜单' : '编辑一级菜单'"
+      :title="addParentFormType == 'add' ? '添加菜单' : '编辑菜单'"
       :visible.sync="addParentFormVisible"
       :show-close="false"
       width="40%"
@@ -85,11 +85,22 @@
             </el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="级菜单" prop="oneMenu">
-          <el-input
+        <el-form-item label="级菜单" prop="oneMenu">
+          <el-cascader
             v-model="addParentForm.oneMenu"
+            style="width: 100%"
+            :options="dataList"
+            :props="{ checkStrictly: true, value: 'moduleId', label: 'moduleName' }"
+            filterable
+            clearable
+          />
+        </el-form-item>
+
+        <el-form-item label="菜单名称" prop="twoMenu">
+          <el-input
+            v-model="addParentForm.twoMenu"
             type="text"
-            placeholder="请输入一级菜单名称"
+            placeholder="请输入菜单名称"
             maxlength="10"
             show-word-limit
           />
@@ -122,7 +133,7 @@
 
     <!-- 新增编辑 二级菜单 -->
     <el-dialog
-      :title="addChildFormType == 'add' ? '添加二级菜单' : '编辑二级菜单'"
+      :title="addChildFormType == 'add' ? '添加菜单' : '编辑菜单'"
       :visible.sync="addChildFormVisible"
       :show-close="false"
       width="40%"
@@ -143,9 +154,6 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="上级菜单" prop="oneMenu">
-          <!-- <el-select v-model="addChildForm.oneMenu" placeholder="请选择一级菜单" style="width: 100%">
-            <el-option :label="item.moduleName" :value="item.moduleId" v-for="(item, index) in dataList" :key="index"></el-option>
-          </el-select> -->
           <el-cascader
             v-model="addChildForm.oneMenu"
             style="width: 100%"
@@ -156,11 +164,11 @@
           />
         </el-form-item>
 
-        <el-form-item label="二级菜单" prop="twoMenu">
+        <el-form-item label="菜单名称" prop="twoMenu">
           <el-input
             v-model="addChildForm.twoMenu"
             type="text"
-            placeholder="请输入二级菜单名称"
+            placeholder="请输入菜单名称"
             maxlength="10"
             show-word-limit
           />
@@ -231,6 +239,7 @@ export default {
       addParentFormVisible: false,
       addParentForm: {
         oneMenu: '',
+        twoMenu: '',
         code: '',
         url: '',
         fullUrl: '',
@@ -240,7 +249,8 @@ export default {
       },
       addParentFormRules: {
         type: [{ required: true, message: '请选择类型', trigger: 'change' }],
-        oneMenu: [{ required: true, message: '请填写一级菜单名称', trigger: 'blur' }],
+        // oneMenu: [{ required: true, message: '请选择一级菜单', trigger: 'change' }],
+        twoMenu: [{ required: true, message: '请填写二级菜单', trigger: 'blur' }],
         code: [{ required: true, message: '请填写菜单CODE', trigger: 'blur' }],
         url: [{ required: true, message: '请填写菜单URL', trigger: 'blur' }],
         icon: [{ required: true, message: '请选择图标', trigger: 'blur' }]
@@ -261,7 +271,7 @@ export default {
       },
       addChildFormRules: {
         type: [{ required: true, message: '请选择类型', trigger: 'change' }],
-        oneMenu: [{ required: true, message: '请选择一级菜单', trigger: 'change' }],
+        // oneMenu: [{ required: true, message: '请选择一级菜单', trigger: 'change' }],
         twoMenu: [{ required: true, message: '请填写二级菜单', trigger: 'blur' }],
         code: [{ required: true, message: '请填写菜单CODE', trigger: 'blur' }],
         url: [{ required: true, message: '请填写菜单URL', trigger: 'blur' }]
@@ -631,7 +641,8 @@ export default {
         this.editParentId = cid
         getMenuDetail({ moduleId: cid }).then(res => {
           this.addParentForm = {
-            oneMenu: res.data.moduleName,
+            oneMenu: res.data.parentId,
+            twoMenu: res.data.moduleName,
             code: res.data.code,
             url: res.data.url,
             fullUrl: res.data.fullUrl,
@@ -654,14 +665,20 @@ export default {
     submitAddParentForm() {
       this.$refs.addParentForm.validate(valid => {
         if (valid) {
+          let parentId = null
+          if (this.addParentForm.oneMenu instanceof Array) {
+            parentId = this.addParentForm.oneMenu[this.addParentForm.oneMenu.length - 1] || 0
+          } else {
+            parentId = this.addParentForm.oneMenu || 0
+          }
           const params = {
-            moduleName: this.addParentForm.oneMenu,
+            moduleName: this.addParentForm.twoMenu,
             code: this.addParentForm.code,
             url: this.addParentForm.url,
             fullUrl: this.addParentForm.fullUrl,
             icon: this.addParentForm.icon,
             sortNum: this.addParentForm.sort,
-            parentId: 0,
+            parentId,
             type: this.addParentForm.type
           }
           if (this.addParentFormType == 'edit') {