2a1adf83179e55840cf08a38d76d0b80.json 25 KB

1
  1. {"remainingRequest":"D:\\jiayue\\cemp-ui\\node_modules\\babel-loader\\lib\\index.js!D:\\jiayue\\cemp-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jiayue\\cemp-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jiayue\\cemp-ui\\src\\views\\admin\\role\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jiayue\\cemp-ui\\src\\views\\admin\\role\\index.vue","mtime":1619070292889},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.object.get-own-property-descriptors\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.regexp.split\";\nimport _defineProperty from \"D:/jiayue/cemp-ui/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { addObj, delObj, fetchList, fetchRoleTree, permissionUpd, putObj } from '@/api/admin/role';\nimport { tableOption } from '@/const/crud/admin/role';\nimport { fetchTree } from '@/api/admin/dept';\nimport { fetchMenuTree } from '@/api/admin/menu';\nimport { mapGetters } from 'vuex';\nexport default {\n name: 'TableRole',\n data: function data() {\n return {\n searchForm: {},\n tableOption: tableOption,\n dsScopeData: [],\n treeData: [],\n checkedKeys: [],\n checkedDsScope: [],\n defaultProps: {\n label: 'name',\n value: 'id'\n },\n page: {\n total: 0,\n // 总页数\n currentPage: 1,\n // 当前页数\n pageSize: 20 // 每页显示多少条\n\n },\n menuIds: '',\n list: [],\n listLoading: true,\n form: {},\n roleId: undefined,\n roleCode: undefined,\n rolesOptions: undefined,\n dialogPermissionVisible: false,\n roleManager_btn_add: false,\n roleManager_btn_edit: false,\n roleManager_btn_del: false,\n roleManager_btn_perm: false\n };\n },\n created: function created() {\n this.roleManager_btn_add = this.permissions['sys_role_add'];\n this.roleManager_btn_edit = this.permissions['sys_role_edit'];\n this.roleManager_btn_del = this.permissions['sys_role_del'];\n this.roleManager_btn_perm = this.permissions['sys_role_perm'];\n },\n computed: _objectSpread({}, mapGetters(['elements', 'permissions'])),\n methods: {\n getList: function getList(page, params) {\n var _this2 = this;\n\n this.listLoading = true;\n fetchList(Object.assign({\n current: page.currentPage,\n size: page.pageSize\n }, params, this.searchForm)).then(function (response) {\n _this2.list = response.data.data.records;\n _this2.page.total = response.data.data.total;\n _this2.listLoading = false;\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n handleRefreshChange: function handleRefreshChange() {\n this.getList(this.page);\n },\n handleFilter: function handleFilter(form) {\n this.searchForm = form;\n this.page.currentPage = 1;\n this.getList(this.page, form);\n },\n handleOpenBefore: function handleOpenBefore(show) {\n var _this3 = this;\n\n fetchTree().then(function (response) {\n _this3.dsScopeData = response.data.data;\n\n if (_this3.form.dsScope) {\n _this3.checkedDsScope = _this3.form.dsScope.split(',');\n } else {\n _this3.checkedDsScope = [];\n }\n });\n show();\n },\n handleUpdate: function handleUpdate(row, index) {\n this.$refs.crud.rowEdit(row, index);\n },\n cancal: function cancal() {\n this.dialogPermissionVisible = false;\n },\n handlePermission: function handlePermission(row) {\n var _this4 = this;\n\n fetchRoleTree(row.roleId).then(function (response) {\n _this4.checkedKeys = response.data.data;\n return fetchMenuTree();\n }).then(function (response) {\n _this4.treeData = response.data.data; // 解析出所有的太监节点\n\n _this4.checkedKeys = _this4.resolveAllEunuchNodeId(_this4.treeData, _this4.checkedKeys, []);\n _this4.dialogPermissionVisible = true;\n _this4.roleId = row.roleId;\n _this4.roleCode = row.roleCode;\n });\n },\n\n /**\n * 解析出所有的太监节点id\n * @param json 待解析的json串\n * @param idArr 原始节点数组\n * @param temp 临时存放节点id的数组\n * @return 太监节点id数组\n */\n resolveAllEunuchNodeId: function resolveAllEunuchNodeId(json, idArr, temp) {\n var _this5 = this;\n\n var _loop = function _loop(i) {\n var item = json[i]; // 存在子节点,递归遍历;不存在子节点,将json的id添加到临时数组中\n\n if (item.children && item.children.length !== 0) {\n _this5.resolveAllEunuchNodeId(item.children, idArr, temp);\n } else {\n temp.push(idArr.filter(function (id) {\n return id === item.id;\n }));\n }\n };\n\n for (var i = 0; i < json.length; i++) {\n _loop(i);\n }\n\n return temp;\n },\n filterNode: function filterNode(value, data) {\n if (!value) return true;\n return data.label.indexOf(value) !== -1;\n },\n getNodeData: function getNodeData(data, done) {\n done();\n },\n handleDelete: function handleDelete(row, index) {\n var _this6 = this;\n\n var _this = this;\n\n this.$confirm('是否确认删除名称为\"' + row.roleName + '\"' + '\"的数据项?', '警告', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(function () {\n return delObj(row.roleId);\n }).then(function () {\n _this6.getList(_this6.page);\n\n _this6.$notify.success('删除成功');\n });\n },\n create: function create(row, done, loading) {\n var _this7 = this;\n\n if (this.form.dsType === 1) {\n this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',');\n }\n\n addObj(this.form).then(function () {\n _this7.getList(_this7.page);\n\n done();\n\n _this7.$notify.success('创建成功');\n }).catch(function () {\n loading();\n });\n },\n update: function update(row, index, done, loading) {\n var _this8 = this;\n\n if (this.form.dsType === 1) {\n this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',');\n }\n\n putObj(this.form).then(function () {\n _this8.getList(_this8.page);\n\n done();\n\n _this8.$notify.success('修改成功');\n }).catch(function () {\n loading();\n });\n },\n updatePermession: function updatePermession(roleId) {\n var _this9 = this;\n\n this.menuIds = '';\n this.menuIds = this.$refs.menuTree.getCheckedKeys().join(',').concat(',').concat(this.$refs.menuTree.getHalfCheckedKeys().join(','));\n permissionUpd(roleId, this.menuIds).then(function () {\n _this9.dialogPermissionVisible = false;\n\n _this9.$store.dispatch('GetMenu', {\n type: false\n });\n\n _this9.$notify.success('修改成功');\n });\n }\n }\n};",{"version":3,"sources":["index.vue"],"names":[],"mappings":"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","sourcesContent":["<!--\r\n - Copyright (c) 2018-2025, lengleng All rights reserved.\r\n -\r\n - Redistribution and use in source and binary forms, with or without\r\n - modification, are permitted provided that the following conditions are met:\r\n -\r\n - Redistributions of source code must retain the above copyright notice,\r\n - this list of conditions and the following disclaimer.\r\n - Redistributions in binary form must reproduce the above copyright\r\n - notice, this list of conditions and the following disclaimer in the\r\n - documentation and/or other materials provided with the distribution.\r\n - Neither the name of the pig4cloud.com developer nor the names of its\r\n - contributors may be used to endorse or promote products derived from\r\n - this software without specific prior written permission.\r\n - Author: lengleng (wangiegie@gmail.com)\r\n -->\r\n\r\n<template>\r\n <div class=\"app-container calendar-list-container\">\r\n <basic-container>\r\n <avue-crud\r\n ref=\"crud\"\r\n :option=\"tableOption\"\r\n :data=\"list\"\r\n :page.sync=\"page\"\r\n v-model=\"form\"\r\n :table-loading=\"listLoading\"\r\n :before-open=\"handleOpenBefore\"\r\n @on-load=\"getList\"\r\n @search-change=\"handleFilter\"\r\n @refresh-change=\"handleRefreshChange\"\r\n @row-update=\"update\"\r\n @row-save=\"create\">\r\n\r\n <template slot=\"menuLeft\">\r\n <el-button\r\n v-if=\"roleManager_btn_add\"\r\n class=\"filter-item\"\r\n type=\"primary\"\r\n icon=\"el-icon-edit\"\r\n @click=\"$refs.crud.rowAdd()\">添加\r\n </el-button>\r\n </template>\r\n <template slot=\"dsScopeForm\" slot-scope=\"scope\">\r\n <div v-if=\"form.dsType == 1\">\r\n <el-tree\r\n ref=\"scopeTree\"\r\n :data=\"dsScopeData\"\r\n :check-strictly=\"true\"\r\n :props=\"defaultProps\"\r\n :default-checked-keys=\"checkedDsScope\"\r\n class=\"filter-tree\"\r\n node-key=\"id\"\r\n highlight-current\r\n show-checkbox/>\r\n </div>\r\n </template>\r\n\r\n <template\r\n slot=\"menu\"\r\n slot-scope=\"scope\">\r\n <el-button\r\n v-if=\"roleManager_btn_edit\"\r\n type=\"text\"\r\n icon=\"el-icon-edit\"\r\n @click=\"handleUpdate(scope.row,scope.index)\">编辑\r\n </el-button>\r\n <el-button\r\n v-if=\"roleManager_btn_del\"\r\n type=\"text\"\r\n icon=\"el-icon-delete\"\r\n @click=\"handleDelete(scope.row,scope.index)\">删除\r\n </el-button>\r\n <el-button\r\n v-if=\"roleManager_btn_perm\"\r\n type=\"text\"\r\n icon=\"el-icon-plus\"\r\n @click=\"handlePermission(scope.row,scope.index)\">权限\r\n </el-button>\r\n </template>\r\n </avue-crud>\r\n </basic-container>\r\n <el-dialog\r\n :visible.sync=\"dialogPermissionVisible\"\r\n :close-on-click-modal=\"false\"\r\n title=\"分配权限\">\r\n <div class=\"dialog-main-tree\">\r\n <el-tree\r\n ref=\"menuTree\"\r\n :data=\"treeData\"\r\n :default-checked-keys=\"checkedKeys\"\r\n :check-strictly=\"false\"\r\n :props=\"defaultProps\"\r\n :filter-node-method=\"filterNode\"\r\n class=\"filter-tree\"\r\n node-key=\"id\"\r\n highlight-current\r\n show-checkbox\r\n default-expand-all/>\r\n </div>\r\n <div slot=\"footer\"\r\n class=\"dialog-footer\">\r\n <el-button\r\n type=\"primary\"\r\n @click=\"updatePermession(roleId)\">更 新\r\n </el-button>\r\n <el-button\r\n type=\"default\"\r\n @click=\"cancal()\">取消\r\n </el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import {addObj, delObj, fetchList, fetchRoleTree, permissionUpd, putObj} from '@/api/admin/role'\r\n import {tableOption} from '@/const/crud/admin/role'\r\n import {fetchTree} from '@/api/admin/dept'\r\n import {fetchMenuTree} from '@/api/admin/menu'\r\n import {mapGetters} from 'vuex'\r\n\r\n export default {\r\n name: 'TableRole',\r\n data() {\r\n return {\r\n searchForm: {},\r\n tableOption: tableOption,\r\n dsScopeData: [],\r\n treeData: [],\r\n checkedKeys: [],\r\n checkedDsScope: [],\r\n defaultProps: {\r\n label: 'name',\r\n value: 'id'\r\n },\r\n page: {\r\n total: 0, // 总页数\r\n currentPage: 1, // 当前页数\r\n pageSize: 20 // 每页显示多少条\r\n },\r\n menuIds: '',\r\n list: [],\r\n listLoading: true,\r\n form: {},\r\n roleId: undefined,\r\n roleCode: undefined,\r\n rolesOptions: undefined,\r\n dialogPermissionVisible: false,\r\n roleManager_btn_add: false,\r\n roleManager_btn_edit: false,\r\n roleManager_btn_del: false,\r\n roleManager_btn_perm: false\r\n }\r\n },\r\n created() {\r\n this.roleManager_btn_add = this.permissions['sys_role_add']\r\n this.roleManager_btn_edit = this.permissions['sys_role_edit']\r\n this.roleManager_btn_del = this.permissions['sys_role_del']\r\n this.roleManager_btn_perm = this.permissions['sys_role_perm']\r\n },\r\n computed: {\r\n ...mapGetters(['elements', 'permissions'])\r\n },\r\n methods: {\r\n getList(page, params) {\r\n this.listLoading = true\r\n fetchList(Object.assign({\r\n current: page.currentPage,\r\n size: page.pageSize\r\n }, params, this.searchForm)).then(response => {\r\n this.list = response.data.data.records\r\n this.page.total = response.data.data.total\r\n this.listLoading = false\r\n }).catch(() => {\r\n this.listLoading = false\r\n })\r\n },\r\n handleRefreshChange() {\r\n this.getList(this.page)\r\n },\r\n handleFilter(form) {\r\n this.searchForm = form\r\n this.page.currentPage = 1\r\n this.getList(this.page, form)\r\n },\r\n handleOpenBefore(show) {\r\n fetchTree().then(response => {\r\n this.dsScopeData = response.data.data\r\n if (this.form.dsScope) {\r\n this.checkedDsScope = (this.form.dsScope).split(',')\r\n } else {\r\n this.checkedDsScope = []\r\n }\r\n })\r\n show()\r\n },\r\n handleUpdate(row, index) {\r\n this.$refs.crud.rowEdit(row, index)\r\n },\r\n cancal() {\r\n this.dialogPermissionVisible = false;\r\n },\r\n handlePermission(row) {\r\n fetchRoleTree(row.roleId)\r\n .then(response => {\r\n this.checkedKeys = response.data.data\r\n return fetchMenuTree()\r\n })\r\n .then(response => {\r\n this.treeData = response.data.data\r\n // 解析出所有的太监节点\r\n this.checkedKeys = this.resolveAllEunuchNodeId(this.treeData, this.checkedKeys, [])\r\n this.dialogPermissionVisible = true\r\n this.roleId = row.roleId\r\n this.roleCode = row.roleCode\r\n })\r\n },\r\n /**\r\n * 解析出所有的太监节点id\r\n * @param json 待解析的json串\r\n * @param idArr 原始节点数组\r\n * @param temp 临时存放节点id的数组\r\n * @return 太监节点id数组\r\n */\r\n resolveAllEunuchNodeId(json, idArr, temp) {\r\n for (let i = 0; i < json.length; i++) {\r\n const item = json[i]\r\n // 存在子节点,递归遍历;不存在子节点,将json的id添加到临时数组中\r\n if (item.children && item.children.length !== 0) {\r\n this.resolveAllEunuchNodeId(item.children, idArr, temp)\r\n } else {\r\n temp.push(idArr.filter(id => id === item.id))\r\n }\r\n }\r\n return temp\r\n },\r\n filterNode(value, data) {\r\n if (!value) return true\r\n return data.label.indexOf(value) !== -1\r\n },\r\n getNodeData(data, done) {\r\n done()\r\n },\r\n handleDelete(row, index) {\r\n var _this = this\r\n this.$confirm('是否确认删除名称为\"' + row.roleName + '\"' + '\"的数据项?', '警告', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(function () {\r\n return delObj(row.roleId)\r\n }).then(() => {\r\n this.getList(this.page)\r\n this.$notify.success('删除成功')\r\n })\r\n },\r\n create(row, done, loading) {\r\n if (this.form.dsType === 1) {\r\n this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')\r\n }\r\n addObj(this.form).then(() => {\r\n this.getList(this.page)\r\n done()\r\n this.$notify.success('创建成功')\r\n }).catch(() => {\r\n loading()\r\n })\r\n },\r\n update(row, index, done, loading) {\r\n if (this.form.dsType === 1) {\r\n this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')\r\n }\r\n putObj(this.form).then(() => {\r\n this.getList(this.page)\r\n done()\r\n this.$notify.success('修改成功')\r\n }).catch(() => {\r\n loading()\r\n })\r\n },\r\n updatePermession(roleId) {\r\n this.menuIds = ''\r\n this.menuIds = this.$refs.menuTree.getCheckedKeys().join(',').concat(',').concat(this.$refs.menuTree.getHalfCheckedKeys().join(','))\r\n permissionUpd(roleId, this.menuIds).then(() => {\r\n this.dialogPermissionVisible = false\r\n this.$store.dispatch('GetMenu', {type: false})\r\n this.$notify.success('修改成功')\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .el-dialog__wrapper {\r\n .el-dialog {\r\n width: 61% !important;\r\n\r\n .dialog-main-tree {\r\n max-height: 400px;\r\n overflow-y: auto;\r\n }\r\n }\r\n\r\n .el-form-item__label {\r\n width: 20% !important;\r\n padding-right: 20px;\r\n }\r\n\r\n .el-form-item__content {\r\n margin-left: 20% !important;\r\n }\r\n }\r\n</style>\r\n"],"sourceRoot":"src/views/admin/role"}]}