123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <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>
|