Browse Source

1.销售公司自动添加销售角色配置

yfh 3 weeks ago
parent
commit
759c9ecf2d
1 changed files with 89 additions and 1 deletions
  1. 89 1
      src/views/system/config/config.vue

+ 89 - 1
src/views/system/config/config.vue

@@ -639,7 +639,30 @@
         </div>
       </el-form>
     </el-tab-pane>
+       <el-tab-pane label="公司销售角色默认生成配置" name="companymenu.config">
+         <el-form ref="form14" :model="form14" :rules="rules14" label-width="180px">
 
+           <el-form-item label="菜单权限">
+             <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
+             <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
+             <el-checkbox v-model="menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
+             <el-tree
+               class="tree-border"
+               :data="menuOptions"
+               show-checkbox
+               ref="menu"
+               node-key="id"
+               :check-strictly="!menuCheckStrictly"
+               empty-text="加载中,请稍后"
+               :props="defaultProps"
+             ></el-tree>
+           </el-form-item>
+
+           <div   class="footer">
+             <el-button type="primary" @click="submitForm14">提  交</el-button>
+           </div>
+         </el-form>
+       </el-tab-pane>
     </el-tabs>
      <el-dialog :title="sign.title" :visible.sync="sign.open" width="500px" append-to-body>
       <el-form ref="signform" :model="signform"   label-width="80px">
@@ -665,6 +688,7 @@ import Editor from '@/components/Editor/wang';
 import {   getConfigByKey,updateConfigByKey, clearCache } from "@/api/system/config";
 import {   listCompany } from "@/api/company/company";
 import Material from '@/components/Material'
+import {treeselect as menuTreeselect} from "@/api/system/menu";
 export default {
   name: "Config",
   components: {
@@ -681,6 +705,15 @@ export default {
   },
   data() {
     return {
+      menuCheckStrictly: true,
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // 菜单列表
+      menuOptions: [],
+      menuExpand: false,
+      menuNodeAll: false,
       companyOptions:[],
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       videoAccept:"video/*",
@@ -762,13 +795,52 @@ export default {
 
       },
       form13:{},
-      rules13:{}
+      form14:{},
+      rules13:{},
+      rules14:{}
     };
   },
   created() {
     this.getConfigByKey(this.activeName);
+    this.getMenuTreeselect();
   },
   methods: {
+    /** 查询菜单树结构 */
+    getMenuTreeselect() {
+      menuTreeselect().then(response => {
+        this.menuOptions = response.data;
+      });
+    },
+    // 树权限(展开/折叠)
+    handleCheckedTreeExpand(value, type) {
+      if (type == 'menu') {
+        let treeList = this.menuOptions;
+        for (let i = 0; i < treeList.length; i++) {
+          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
+        }
+      } else if (type == 'dept') {
+        let treeList = this.deptOptions;
+        for (let i = 0; i < treeList.length; i++) {
+          this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
+        }
+      }
+    },
+    // 树权限(全选/全不选)
+    handleCheckedTreeNodeAll(value, type) {
+      if (type == 'menu') {
+        this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
+      } else if (type == 'dept') {
+        this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
+      }
+    },
+    // 树权限(父子联动)
+    handleCheckedTreeConnect(value, type) {
+      if (type == 'menu') {
+        this.menuCheckStrictly = value ? true: false;
+      } else if (type == 'dept') {
+        this.deptCheckStrictly = value ? true: false;
+      }
+    },
     getCompanyOptions() {
         listCompany().then(response=>{
           this.companyOptions = response.rows
@@ -900,6 +972,14 @@ export default {
                this.form13 =JSON.parse(response.data.configValue);
              }
 
+          }else if(key == "companymenu.config"){
+            this.getCompanyOptions();
+             this.configId=response.data.configId;
+             this.configKey=response.data.configKey;
+             if(response.data.configValue != null) {
+               this.form14 =JSON.parse(response.data.configValue);
+             }
+
           }
         });
      },
@@ -1033,6 +1113,14 @@ export default {
         }
       });
     },
+    submitForm14(){
+      var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form14)}
+      updateConfigByKey(param).then(response => {
+        if (response.code === 200) {
+          this.msgSuccess("修改成功");
+        }
+      });
+    },
     /** 清理缓存按钮操作 */
     handleClearCache() {
       clearCache().then(response => {