| 
					
				 | 
			
			
				@@ -0,0 +1,184 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div class="app-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-tabs v-model="activeName" @tab-click="handleClick" > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <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-tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+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/company/companyMenu"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "Config", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Material, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Editor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    photoArr: function(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form1.certs = val.join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    images: function(val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form7.images = val.join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      menuCheckStrictly: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      defaultProps: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        children: "children", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        label: "label" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 菜单列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      menuOptions: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      menuExpand: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      menuNodeAll: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      companyOptions:[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      activeName:"companymenu.config", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      configId:null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      configKey:null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form14:{}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rules14:{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  created() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.getConfigByKey(this.activeName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.getMenuTreeselect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleClick(tab, event){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(tab.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.getConfigByKey(tab.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 查询菜单树结构 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleSuccess(response, file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 上传成功后的回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.myloading.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form7.videoUrl = response.url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.upload.clearFiles(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getConfigByKey(key){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getConfigByKey(key).then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(key == "companymenu.config"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.getCompanyOptions(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(response.data.configId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.configId=response.data.configId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.configKey=response.data.configKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(response.data.configValue != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.form14 = JSON.parse(response.data.configValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 回显选中的菜单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (this.form14.menuIds && this.form14.menuIds.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.$refs.menu.setCheckedKeys(this.form14.menuIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.form14 = { menuIds: [] }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    submitForm14(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form14.menuIds = this.getMenuAllCheckedKeys(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var param={configId:this.configId,configKey:this.configKey,configValue:JSON.stringify(this.form14)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      updateConfigByKey(param).then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (response.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.msgSuccess("修改成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 所有菜单节点数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getMenuAllCheckedKeys() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 目前被选中的菜单节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let checkedKeys = this.$refs.menu.getHalfCheckedKeys(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 半选中的菜单节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let halfCheckedKeys = this.$refs.menu.getCheckedKeys(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return checkedKeys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 清理缓存按钮操作 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleClearCache() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      clearCache().then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (response.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.msgSuccess("清理成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.footer{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  align-items: flex-end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  justify-content: flex-end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |