| | |
| | | <div class="menuSettings_box"> |
| | | <div class="menuSettings_tree"> |
| | | <My-bread :list="['运维管理', '菜单设置']"></My-bread> |
| | | <!-- <el-button class="saveBtn" type="primary" size="mini" @click="sendChange" |
| | | >保存</el-button |
| | | > --> |
| | | <el-divider /> |
| | | <el-tree |
| | | :data="data" |
| | | :props="defaultProps" |
| | | show-checkbox |
| | | @check-change="handleCheckChange" |
| | | /> |
| | | <div class="menuTreeBox"> |
| | | <el-tree |
| | | ref="tree" |
| | | :props="defaultProps" |
| | | node-key="id" |
| | | :data="menuList" |
| | | :expand-on-click-node="false" |
| | | :default-expand-all="true" |
| | | draggable |
| | | @node-click="handleNodeClick" |
| | | @node-drag-start="handleDragStart" |
| | | @node-drag-end="handleDrop" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | <span class="btnBox"> |
| | | <el-button |
| | | v-if="menuStatus.insert" |
| | | type="text" |
| | | size="mini" |
| | | @click="() => append(node, data)" |
| | | > |
| | | <i class="el-icon-circle-plus"></i> |
| | | </el-button> |
| | | <el-button |
| | | v-if="menuStatus.delete" |
| | | type="text" |
| | | size="mini" |
| | | @click="() => remove(node, data)" |
| | | > |
| | | <i class="el-icon-delete-solid"></i> |
| | | </el-button> |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | <div class="menuSettings"> |
| | | <div class="btn_box"> |
| | | <el-button type="primary">新建</el-button> |
| | | <el-button type="primary">修改</el-button> |
| | | <!-- <el-button class="delBtn">清除</el-button> --> |
| | | <div class="title_box"> |
| | | <h4>详细信息</h4> |
| | | </div> |
| | | <div class="table_box"> |
| | | <el-table :data="tableData" stripe> |
| | | <el-table-column prop="menuname" label="菜单名称" /> |
| | | <el-table-column prop="parentmenuname" label="父菜单名称" /> |
| | | <el-table-column prop="dataBulk" label="数据数量" /> |
| | | <el-table-column prop="creationtime" label="创建时间" /> |
| | | <el-table-column prop="creationname" label="创建人" /> |
| | | <el-table-column fixed="right" label="操作" width="280"> |
| | | <template #default> |
| | | <!-- <el-button type="primary" size="small">修改</el-button> --> |
| | | <el-button type="primary" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 40px" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="10" |
| | | <div class="form_box"> |
| | | <el-form :model="itemdetail" ref="itemdetail" :rules="rules"> |
| | | <el-form-item |
| | | prop="enName" |
| | | label="英文名称" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <el-input v-model="itemdetail.enName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="cnName" |
| | | label="中文名称" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="itemdetail.cnName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="图标" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.icon" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="isShow" |
| | | label="是否显示" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-select v-model="itemdetail.isShow" placeholder=""> |
| | | <el-option |
| | | v-for="item in options1" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="菜单Url" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.url" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="授权" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.perms" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="类型" prop="type" :label-width="formLabelWidth"> |
| | | <el-select v-model="itemdetail.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in options2" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <div class="btnBox" v-if="menuStatus.update"> |
| | | <el-button type="primary" @click="updMenu('itemdetail')" |
| | | >保存</el-button |
| | | > |
| | | <el-button type="primary" @click="reset('itemdetail')" |
| | | >取消</el-button |
| | | > |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="新增子菜单" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="ruleForm" ref="ruleForm" :rules="rules"> |
| | | <el-form-item |
| | | prop="enName" |
| | | label="英文名称" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="ruleForm.enName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="cnName" |
| | | label="中文名称" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="ruleForm.cnName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="图标" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.icon" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="isShow" |
| | | label="是否显示" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-select v-model="ruleForm.isShow" placeholder=""> |
| | | <el-option |
| | | v-for="item in options1" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="菜单Url" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.url" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="授权" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.perms" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="类型" prop="type" :label-width="formLabelWidth"> |
| | | <el-select v-model="ruleForm.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in options2" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="resetForm('ruleForm')">取消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitForm('ruleForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >提交</el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | |
| | | import MyBread from '../../components/MyBread.vue'; |
| | | import { |
| | | queryMenuTree, |
| | | updateMenuTree, |
| | | updateMenuTrees, |
| | | queryMaxId, |
| | | insertMenu, |
| | | deleteMenu, |
| | | } from '../../api/api'; |
| | | export default { |
| | | //import引入的组件需要注入到对象中才能使用 |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | currentPage4: 1, |
| | | tableData: [ |
| | | menuStatus: { |
| | | delete: false, |
| | | insert: false, |
| | | update: false, |
| | | }, |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'cnName', |
| | | }, |
| | | fullscreenLoading: false, |
| | | oriData: [], //原始树数据 |
| | | menuList: [], //el树数据 |
| | | old_dirDat: [], //el树数据(拖动前) |
| | | newData: [], //拖动后原始数据 |
| | | itemdetail: { |
| | | cnName: '', |
| | | enName: '', |
| | | icon: null, |
| | | isShow: null, |
| | | perms: null, |
| | | url: '', |
| | | type: null, |
| | | bak: '', |
| | | }, |
| | | backUpData: '', |
| | | formLabelWidth: '130px', |
| | | delChildID: '', |
| | | delChildIDs: [], |
| | | dialogFormVisible: false, |
| | | ruleForm: { |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | enName: '', |
| | | cnName: '', |
| | | icon: '', |
| | | isShow: null, |
| | | url: '', |
| | | perms: null, |
| | | type: null, |
| | | bak: '', |
| | | }, |
| | | rules: { |
| | | enName: [ |
| | | { required: true, message: '请输入英文名称', trigger: 'blur' }, |
| | | ], |
| | | cnName: [ |
| | | { required: true, message: '请输入中文名称', trigger: 'blur' }, |
| | | ], |
| | | |
| | | isShow: [ |
| | | { |
| | | required: true, |
| | | message: '请选择是否显示', |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | type: [ |
| | | { |
| | | required: true, |
| | | message: '请选择节点类型', |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | }, |
| | | // 下拉的option里面的value定义成0,1,不能定义成’0’,'1’字符串, |
| | | // 如果要定义成字符串,后台需要返回的也是字符串 |
| | | options1: [ |
| | | { |
| | | menuname: "数据质检", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | value: 0, |
| | | label: '隐藏', |
| | | }, |
| | | { |
| | | menuname: "数据交换", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "数据管理", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "服务管理", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "综合展示", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "运维管理", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "菜单管理", |
| | | parentmenuname: "运维管理", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "用户管理", |
| | | parentmenuname: "运维管理", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "系统管理", |
| | | parentmenuname: "运维管理", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "系统配置", |
| | | parentmenuname: "运维管理", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | value: 1, |
| | | label: '显示', |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | data: [ |
| | | options2: [ |
| | | { |
| | | label: "数据质检", |
| | | value: 0, |
| | | label: '根目录', |
| | | }, |
| | | { |
| | | label: "数据交换", |
| | | value: 1, |
| | | label: '菜单', |
| | | }, |
| | | { |
| | | label: "数据管理", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "服务管理", |
| | | }, |
| | | { |
| | | label: "综合展示", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "运维管理", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | value: 2, |
| | | label: '按钮', |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleSizeChange(val) { |
| | | console.log(`每页 ${val} 条`); |
| | | getMenuTree() { |
| | | //获取目录树最大ID,新建节点使用 |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | queryMenuTree().then((res) => { |
| | | if (res.code == 200) { |
| | | this.menuList = this.treeData(res.result); |
| | | this.oriData = res.result; |
| | | this.newData = res.result; |
| | | } else { |
| | | console.log('接口报错'); |
| | | } |
| | | }); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | console.log(`当前页: ${val}`); |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据 |
| | | branchArr.length > 0 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值 |
| | | return father.pid == 0; // 返回一级菜单 |
| | | }); |
| | | }, |
| | | handleCheckChange() {}, |
| | | append(node, data) { |
| | | this.dialogFormVisible = true; |
| | | this.ruleForm.pid = data.id; |
| | | this.ruleForm.orderNum = node.childNodes.length + 1; |
| | | this.ruleForm.level = data.level + 1; |
| | | }, |
| | | resetForm(formName) { |
| | | this.dialogFormVisible = false; |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].resetFields(); |
| | | this.ruleForm = {}; |
| | | }); |
| | | }, |
| | | submitForm(formName) { |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.fullscreenLoading = true; |
| | | insertMenu(this.ruleForm) |
| | | .then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: '添加成功', |
| | | type: 'success', |
| | | }); |
| | | this.getMenuTree(); |
| | | this.itemdetail = {}; |
| | | this.ruleForm = {}; |
| | | this.dialogFormVisible = false; |
| | | this.$refs[formName].resetFields(); |
| | | } |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | this.itemdetail = {}; |
| | | this.$message.error('添加失败'); |
| | | this.fullscreenLoading = false; |
| | | console.log(res); |
| | | }); |
| | | } else { |
| | | // alert("目录名称不能为空"); |
| | | return false; |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | remove(node, data) { |
| | | this.$confirm('此操作将删除该节点, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(() => { |
| | | //兄弟重新排序 |
| | | const parent = node.parent; |
| | | const children = parent.data.children || parent.data; |
| | | children.splice(data.orderNum - 1, 1); |
| | | children.forEach((item, index) => { |
| | | item.orderNum = index + 1; |
| | | }); |
| | | |
| | | this.traverseArr(data); //获取删除的子ID |
| | | this.delChildIDs.push(data.id); //要删除的全部ID |
| | | let delIDs = this.delChildIDs; |
| | | Promise.all([ |
| | | deleteMenu({ ids: delIDs.toString() }), |
| | | updateMenuTrees(children), |
| | | ]) |
| | | .then((res) => { |
| | | if (res[0].code == 200 && res[1].code == 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | }); |
| | | this.getMenuTree(); |
| | | this.itemdetail = {}; |
| | | } else if (res[0].code == 200) { |
| | | this.getMenuTree(); |
| | | this.$message.error('删除成功,位置调整失败'); |
| | | } else if (res[1].code == 200) { |
| | | this.getMenuTree(); |
| | | this.$message.error('删除失败,位置调整成功'); |
| | | } else { |
| | | this.$message.error('删除失败'); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: '删除失败', |
| | | }); |
| | | }); |
| | | |
| | | //重置要删除的子ID |
| | | this.delChildIDs = []; |
| | | }) |
| | | .catch(() => { |
| | | this.$message('已取消删除'); |
| | | }); |
| | | }, |
| | | traverseArr(obj) { |
| | | if (obj.children) { |
| | | return obj.children.forEach((item) => { |
| | | // console.log(item.id + "---" + item.name); |
| | | // this.delChildID += "id=" + item.id + "&"; |
| | | this.delChildIDs.push(item.id); |
| | | this.traverseArr(item); |
| | | }); |
| | | } |
| | | return; |
| | | }, |
| | | flaten(arr) { |
| | | return arr.reduce((p, v, i) => { |
| | | for (let i = 0; i < p.length; i++) { |
| | | if (p[i].children) { |
| | | delete p[i].children; |
| | | } |
| | | } |
| | | return p.concat(v.children ? this.flaten(v.children).concat(v) : v); |
| | | }, []); |
| | | }, |
| | | handleDragStart(node, ev) { |
| | | this.old_dirDat = JSON.parse(JSON.stringify(this.menuList)); //将备份的dir重新赋值 |
| | | }, |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | this.$confirm('此操作将保存目录更改, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(() => { |
| | | //父节点 |
| | | let data = dropType != 'inner' ? dropNode.parent.data : dropNode.data; |
| | | // 父节点中全部子节点 |
| | | let nodeData = |
| | | dropNode.level == 1 && dropType != 'inner' ? data : data.children; |
| | | //变更节点 |
| | | // console.log(nodeData); |
| | | nodeData.forEach((item, i) => { |
| | | if (dropType != 'inner') { |
| | | if (draggingNode.data.pid === dropNode.data.pid) { |
| | | item.pid = item.pid; |
| | | } else { |
| | | item.pid = dropNode.data.pid; |
| | | } |
| | | } else { |
| | | item.pid = data.id; |
| | | } |
| | | item.orderNum = i + 1; |
| | | }); |
| | | // console.log(nodeData); |
| | | //更新原始整体数据 |
| | | let arr = []; |
| | | this.oriData.forEach((e) => { |
| | | nodeData.forEach((item) => { |
| | | if (item.id === e.id) e = item; |
| | | }); |
| | | arr.push(e); |
| | | }); |
| | | this.newData = arr; |
| | | this.sendChange(); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消更改', |
| | | }); |
| | | this.menuList = this.old_dirDat; //将备份的dir重新赋值 |
| | | }); |
| | | }, |
| | | sendChange() { |
| | | this.newData.forEach((item) => { |
| | | if (item.pid == 0) { |
| | | item.type = 0; |
| | | } |
| | | }); |
| | | updateMenuTrees(this.newData) |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | this.getMenuTree(); |
| | | return; |
| | | } else { |
| | | alert('调整失败,请重试!'); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | alert('修改失败,请重试!'); |
| | | }); |
| | | }, |
| | | handleNodeClick(data) { |
| | | // console.log(data); |
| | | this.backUpData = JSON.stringify(data); |
| | | this.itemdetail = JSON.parse(JSON.stringify(data)); |
| | | }, |
| | | updMenu(formName) { |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.fullscreenLoading = true; |
| | | updateMenuTree(this.itemdetail) |
| | | .then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getMenuTree(); |
| | | this.itemdetail = {}; |
| | | this.dialogFormVisible = false; |
| | | this.$refs[formName].resetFields(); |
| | | } |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | alert('修改失败,请重试!'); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | reset(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | if (this.backUpData != '') { |
| | | this.itemdetail = JSON.parse(this.backUpData); |
| | | } |
| | | }, |
| | | showPermsMenu(res) { |
| | | switch (res.tag) { |
| | | case '/delete': |
| | | this.menuStatus.delete = true; |
| | | break; |
| | | case '/insert': |
| | | this.menuStatus.insert = true; |
| | | break; |
| | | case '/update': |
| | | this.menuStatus.update = true; |
| | | break; |
| | | } |
| | | }, |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | this.getMenuTree(); |
| | | }, |
| | | created() { |
| | | var val = this.$store.state.currentPerms; |
| | | var permsEntity = this.$store.state.permsEntity; |
| | | for (var i = 0; i < permsEntity.length; i++) { |
| | | if (permsEntity[i].perms == val) { |
| | | this.showPermsMenu(permsEntity[i]); |
| | | } |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | .menuSettings_tree { |
| | | position: relative; |
| | | width: 344px; |
| | | height: 100%; |
| | | background: rgb(240, 242, 245); |
| | |
| | | border-radius: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | /deep/ .el-tree-node__label { |
| | | font-size: 18px; |
| | | } |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .menuTreeBox { |
| | | height: 90%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | // /deep/ .el-tree-node__label { |
| | | // font-size: 18px; |
| | | // } |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin: 0 10px 0 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | .btn_box { |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | |
| | | border-radius: 10px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | .delBtn { |
| | | margin-left: auto; |
| | | } |
| | | } |
| | | .table_box { |
| | | .form_box { |
| | | border: 1px solid rgb(202, 201, 204); |
| | | border-radius: 10px; |
| | | background: #fff; |
| | | padding: 10px; |
| | | padding-top: 30px; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | .el-table__body { |
| | | width: 100% !important; |
| | | .el-input { |
| | | width: 400px; |
| | | } |
| | | .btnBox { |
| | | margin: 0 270px 20px; |
| | | width: 200px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | } |