c6b000aba85e9845affe293834ebebe0.json 13 KB

1
  1. {"remainingRequest":"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=style&index=0&id=4c33675a&lang=scss&scoped=true&","dependencies":[{"path":"D:\\jiayue\\cemp-ui\\src\\views\\admin\\role\\index.vue","mtime":1619070292889},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"D:\\jiayue\\cemp-ui\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"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":["\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\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\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.el-dialog__wrapper {\n .el-dialog {\n width: 61% !important;\n\n .dialog-main-tree {\n max-height: 400px;\n overflow-y: auto;\n }\n }\n\n .el-form-item__label {\n width: 20% !important;\n padding-right: 20px;\n }\n\n .el-form-item__content {\n margin-left: 20% !important;\n }\n}\n",{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuSA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/admin/role","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"]}]}