f841876c96a8af20a6ba4c53de037a98.json 16 KB

1
  1. {"remainingRequest":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/system/role/components/upDateRoleDialog.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/system/role/components/upDateRoleDialog.vue","mtime":1708395041892},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/babel-loader/lib/index.js","mtime":1708395147257},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js","mtime":1708395147382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGdldE1lbnVUcmVlLCBhZGRSb2xlLHJvbGVEZXRhaWxlIH0gZnJvbSAnQC9hcGkvc3lzTWFuYWdlJwpleHBvcnQgZGVmYXVsdCB7CiAgICBuYW1lOiAndXBkYXRlUm9sZURpYWxvZycsCiAgICBwcm9wczogewogICAgICAgIHVwZGF0ZVJvbGVEYXRhOiB7CiAgICAgICAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgICAgICAgZGVmYXVsdDoge30KICAgICAgICB9CiAgICB9LAogICAgY3JlYXRlZCgpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgdGhpcy5nZXRNZW51VHJlZSgpICAgICAgICAgICAgICAgCiAgICB9LCAgICAgIAogICAgZGF0YSgpIHsKICAgICAgICByZXR1cm4geyAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjaGVja0FsbDogZmFsc2UsCiAgICAgICAgICAgIGNoZWNrU3RyaWN0bHk6IHRydWUsCiAgICAgICAgICAgIGRlZmF1bHRFeHBhbmRlZDogW10sCiAgICAgICAgICAgIG1ldW5UcmVlRGF0YTogW10sCiAgICAgICAgICAgIHJ1bGVzOiB7CiAgICAgICAgICAgICAgICByb2xlTmFtZTogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fovpPlhaXop5LoibLlkI3np7AnLCB0cmlnZ2VyOiAnYmx1cicgfV0sCiAgICAgICAgICAgICAgICByb2xlS2V5OiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeadg+mZkOWtl+espicsIHRyaWdnZXI6ICdibHVyJyB9XSwKICAgICAgICAgICAgICAgIHJvbGVTb3J0OiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeaYvuekuuaOkuW6jycsIHRyaWdnZXI6ICdibHVyJyB9XSwKICAgICAgICAgICAgICAgIHN0YXR1czogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fpgInmi6nnirbmgIEnLCB0cmlnZ2VyOiAnYmx1cicgfV0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG1lbnVJZHM6W10KICAgICAgICB9CiAgICB9LAogICAgbWV0aG9kczogewogICAgICAgIGhhbmRsZUNoZWNrQWxsQ2hhbmdlKHZhbCkgewogICAgICAgICAgICBpZiAodGhpcy5jaGVja0FsbCkgewogICAgICAgICAgICAgICAgdGhpcy5jaGVja1N0cmljdGx5ID0gZmFsc2UKICAgICAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZS5zZXRDaGVja2VkTm9kZXModGhpcy5tZXVuVHJlZURhdGEpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5jaGVja1N0cmljdGx5ID0gdHJ1ZQogICAgICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlLnNldENoZWNrZWRLZXlzKFtdKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZ2V0TWVudVRyZWUoKSB7CiAgICAgICAgICAgIGdldE1lbnVUcmVlKCkudGhlbihyZXMgPT4gewogICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdEV4cGFuZGVkID0gW10KICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRFeHBhbmRlZC5wdXNoKGl0ZW0uaWQpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldW5UcmVlRGF0YSA9IHJlcy5kYXRhCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgfSwgICAgICAgIAogICAgICAgIGhhbmRsZUNoZWNrQ2hhbmdlKGRhdGEsIGNoZWNrZWQsIGluZGV0ZXJtaW5hdGUpIHsgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgLy8gLy/ojrflj5bmiYDmnInpgInkuK3nmoTlrZDoioLngrkKICAgICAgICAgICAgLy8gbGV0IGNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy50cmVlLmdldENoZWNrZWRLZXlzKCkKICAgICAgICAgICAgLy8gLy/ojrflj5bmiYDmnInpgInkuK3nmoTniLboioLngrnvvIjljYrpgInkuK3vvIkKICAgICAgICAgICAgLy8gbGV0IGhhZkNoZWNrZWRLZXlzID0gdGhpcy4kcmVmcy50cmVlLmdldEhhbGZDaGVja2VkS2V5cygpCiAgICAgICAgICAgIC8vIC8v57uE5ZCICiAgICAgICAgICAgIC8vIGxldCBtZW51SWRzID0gY2hlY2tlZEtleXMuY29uY2F0KGhhZkNoZWNrZWRLZXlzKSAgICAgICAgICAgICAKICAgICAgICAgICAgLy8gLy8gbGV0IG1lbnVJZHMgPSBjaGVja2VkS2V5cyAgICAgICAgICAgCiAgICAgICAgICAgIC8vIHRoaXMubWVudUlkcyA9IG1lbnVJZHMgICAgICAgICAgIAogICAgICAgICAgICAvLyAvLyB0aGlzLnVwZGF0ZVJvbGVEYXRhLmRhdGEubWVudUlkcyA9IG1lbnVJZHMKCiAgICAgICAgICAgIGNvbnN0IEFsbGNoZWNrZWROb2RlcyA9IHRoaXMuJHJlZnMudHJlZS5nZXRDaGVja2VkTm9kZXMoZmFsc2UsIHRydWUpOwogICAgICAgICAgICBsZXQgYXJyRGVwdElkID0gW10KICAgICAgICAgICAgQWxsY2hlY2tlZE5vZGVzLmZvckVhY2goKGl0ZW0pID0+IHsKICAgICAgICAgICAgICAgIGFyckRlcHRJZC5wdXNoKGl0ZW0uaWQpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHRoaXMudXBkYXRlUm9sZURhdGEuZGF0YS5tZW51SWRzID0gYXJyRGVwdElkCiAgICAgICAgfSwKICAgICAgICB1cGRhdGVSb2xlKCkgewogICAgICAgICAgICB0aGlzLiRyZWZzLnJ1bGVGb3JtLnZhbGlkYXRlKHZhbGlkID0+IHsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuaGFuZGxlQ2hlY2tDaGFuZ2UoKQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZVJvbGVEYXRhLmRhdGEubWVudUlkcy5sZW5ndGggIT0gMCkgeyAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVwZGF0ZVJvbGVEYXRhLmRhdGEubWVudUlkcyA9IHRoaXMubWVudUlkcwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCJ1cGRhdGVSb2xlQnRuIiwgdGhpcy51cGRhdGVSb2xlRGF0YS5kYXRhKSAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeiPnOWNleadg+mZkCEnCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9LAogICAgICAgIGNhbmNlbCgpIHsKICAgICAgICAgICAgdGhpcy51cGRhdGVSb2xlRGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UKICAgICAgICAgICAgdGhpcy5nZXRNZW51VHJlZSgpCiAgICAgICAgfSwKICAgICAgICBjbG9zZURpYWxvZygpIHsKICAgICAgICAgICAgdGhpcy5nZXRNZW51VHJlZSgpCiAgICAgICAgfSwKICAgICAgICBnZXRDdXJyZW50Tm9kZShkYXRhKSB7CiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLiRyZWZzLnRyZWUuZ2V0Tm9kZShkYXRhKTsKICAgICAgICAgICAgdGhpcy5jaGlsZE5vZGVzKG5vZGUpOwogICAgICAgICAgICB0aGlzLnBhcmVudE5vZGVzKG5vZGUpOwogICAgICAgIH0sCiAgICAgICAgY2hpbGROb2Rlcyhub2RlKSB7ICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGxlbiA9IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpICs9IDEpIHsKICAgICAgICAgICAgICAgIG5vZGUuY2hpbGROb2Rlc1tpXS5jaGVja2VkID0gbm9kZS5jaGVja2VkOwogICAgICAgICAgICAgICAgdGhpcy5jaGlsZE5vZGVzKG5vZGUuY2hpbGROb2Rlc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHBhcmVudE5vZGVzKG5vZGUpIHsgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBpZiAobm9kZS5wYXJlbnQpIHsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBub2RlKSB7ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAncGFyZW50JykgewogICAgICAgICAgICAgICAgICAgICAgICBub2RlW2tleV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Tm9kZXMobm9kZVtrZXldKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgfQp9Cg=="},{"version":3,"sources":["upDateRoleDialog.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"upDateRoleDialog.vue","sourceRoot":"src/views/system/role/components","sourcesContent":["<template>\n <div class=\"updataRoleDialog\">\n <el-dialog width=\"636px\" center title=\"修改角色\" :visible.sync=\"updateRoleData.dialogVisible\"> \n <el-form label-width=\"100px\" ref=\"ruleForm\" :rules=\"rules\" :model=\"updateRoleData.data\">\n <el-form-item label=\"角色名称:\" prop=\"roleName\">\n <el-input v-model=\"updateRoleData.data.roleName\"></el-input>\n </el-form-item>\n <el-form-item label=\"权限字符:\" prop=\"roleKey\">\n <el-input :disabled=\"updateRoleData.data.roleId == 1\" v-model=\"updateRoleData.data.roleKey\"></el-input>\n </el-form-item>\n <el-form-item label=\"显示排序:\" prop=\"roleSort\">\n <el-input v-model=\"updateRoleData.data.roleSort\" type=\"text\"\n onkeyup=\"this.value=this.value.replace(/\\D/g,'')\"\n onafterpaste=\"this.value=this.value.replace(/\\D/g,'')\" />\n </el-form-item>\n <el-form-item label=\"状态:\" prop=\"status\">\n <el-radio :disabled=\"updateRoleData.data.roleId == 1\" v-model=\"updateRoleData.data.status\"\n label=\"1\">启用</el-radio>\n <el-radio :disabled=\"updateRoleData.data.roleId == 1\" v-model=\"updateRoleData.data.status\"\n label=\"2\">停用</el-radio>\n </el-form-item>\n <el-form-item label=\"菜单权限:\">\n <div style=\"height: 400px;overflow: auto;\">\n <el-checkbox v-model=\"checkAll\" @change=\"handleCheckAllChange\">全选</el-checkbox>\n <!-- <el-tree :data=\"meunTreeData\" :show-checkbox=\"true\" ref=\"tree\" node-key=\"id\" \n :check-strictly=\"checkStrictly\" :default-expand-all=\"true\"\n :default-checked-keys='updateRoleData.data.menuIds' \n @check-change=\"handleCheckChange\" \n >\n </el-tree> -->\n <el-tree :data=\"meunTreeData\" :show-checkbox=\"true\" ref=\"tree\" node-key=\"id\"\n :check-strictly=\"checkStrictly\" @check=\"getCurrentNode\"\n :default-checked-keys=\"this.updateRoleData.data.menuIds\" :default-expand-all=\"true\"\n @check-change=\"handleCheckChange\">\n </el-tree>\n </div>\n </el-form-item> \n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <!-- <el-button @click=\"cancel()\">取 消</el-button>\n <el-button type=\"primary\" @click=\"updateRole\">保 存</el-button> -->\n <div class=\"search\" @click=\"updateRole\">保 存</div>\n <div class=\"reset\" @click=\"cancel()\">取 消</div>\n </span>\n </el-dialog>\n </div>\n</template>\n<script>\nimport { getMenuTree, addRole,roleDetaile } from '@/api/sysManage'\nexport default {\n name: 'updateRoleDialog',\n props: {\n updateRoleData: {\n type: Object,\n default: {}\n }\n },\n created() { \n this.getMenuTree() \n }, \n data() {\n return { \n checkAll: false,\n checkStrictly: true,\n defaultExpanded: [],\n meunTreeData: [],\n rules: {\n roleName: [{ required: true, message: '请输入角色名称', trigger: 'blur' }],\n roleKey: [{ required: true, message: '请输入权限字符', trigger: 'blur' }],\n roleSort: [{ required: true, message: '请输入显示排序', trigger: 'blur' }],\n status: [{ required: true, message: '请选择状态', trigger: 'blur' }],\n },\n menuIds:[]\n }\n },\n methods: {\n handleCheckAllChange(val) {\n if (this.checkAll) {\n this.checkStrictly = false\n this.$refs.tree.setCheckedNodes(this.meunTreeData);\n } else {\n this.checkStrictly = true\n this.$refs.tree.setCheckedKeys([]);\n }\n },\n getMenuTree() {\n getMenuTree().then(res => {\n if (res.code == 200) {\n this.defaultExpanded = []\n res.data.forEach(item => {\n this.defaultExpanded.push(item.id)\n })\n this.meunTreeData = res.data\n }\n })\n }, \n handleCheckChange(data, checked, indeterminate) { \n // //获取所有选中的子节点\n // let checkedKeys = this.$refs.tree.getCheckedKeys()\n // //获取所有选中的父节点(半选中)\n // let hafCheckedKeys = this.$refs.tree.getHalfCheckedKeys()\n // //组合\n // let menuIds = checkedKeys.concat(hafCheckedKeys) \n // // let menuIds = checkedKeys \n // this.menuIds = menuIds \n // // this.updateRoleData.data.menuIds = menuIds\n\n const AllcheckedNodes = this.$refs.tree.getCheckedNodes(false, true);\n let arrDeptId = []\n AllcheckedNodes.forEach((item) => {\n arrDeptId.push(item.id)\n })\n this.updateRoleData.data.menuIds = arrDeptId\n },\n updateRole() {\n this.$refs.ruleForm.validate(valid => { \n if (valid) { \n // this.handleCheckChange()\n if (this.updateRoleData.data.menuIds.length != 0) { \n // this.updateRoleData.data.menuIds = this.menuIds\n this.$emit(\"updateRoleBtn\", this.updateRoleData.data) \n } else {\n this.$message({\n type: 'warning',\n message: '请选择菜单权限!'\n });\n }\n }\n })\n },\n cancel() {\n this.updateRoleData.dialogVisible = false\n this.getMenuTree()\n },\n closeDialog() {\n this.getMenuTree()\n },\n getCurrentNode(data) {\n const node = this.$refs.tree.getNode(data);\n this.childNodes(node);\n this.parentNodes(node);\n },\n childNodes(node) { \n const len = node.childNodes.length; \n for (let i = 0; i < len; i += 1) {\n node.childNodes[i].checked = node.checked;\n this.childNodes(node.childNodes[i]);\n }\n },\n parentNodes(node) { \n if (node.parent) { \n for (const key in node) { \n if (key === 'parent') {\n node[key].checked = true;\n this.parentNodes(node[key]);\n }\n }\n }\n },\n }\n}\n</script>\n<style lang=\"scss\" scoped>\n::v-deep .el-dialog__body{\n padding: 20px 95px !important;\n}\n.dialog-footer{ \n div { \n display: inline-block;\n width: 80px;\n height: 40px;\n border-radius: 2px;\n font-size: 14px;\n line-height: 40px;\n text-align: center;\n }\n\n div:hover {\n cursor: pointer;\n }\n .search {\n margin: 0 12px;\n background-color: #2766DD;\n color: #fff;\n }\n\n .search:hover {\n background-color: #4D85F4;\n }\n .reset {\n color: #333334;\n border: 1px solid #D7D7D7;\n }\n\n .reset:hover {\n color: #1F9FFF;\n border: 1px solid #1F9FFF;\n }\n}\n// 选中后radio文本的颜色\n::v-deep .el-radio__input.is-checked+.el-radio__label {\n color: #2766DD\n}\n\n/* radio选中后小圆点的颜色 */\n::v-deep .el-radio__input.is-checked .el-radio__inner {\n background: #2766DD !important;\n border-color: #2766DD !important;\n}\n</style>"]}]}