yh-pub 2.0.10 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdminLogin-_bZY7eK8.js +149 -0
- package/AdminLogin-_bZY7eK8.js.map +1 -0
- package/{Error-BBHnAI0J.js → Error-iU10G3t1.js} +2 -2
- package/{Error-BBHnAI0J.js.map → Error-iU10G3t1.js.map} +1 -1
- package/{Error401-B9zZmLGl.js → Error401-wgvbeg3C.js} +3 -3
- package/{Error401-B9zZmLGl.js.map → Error401-wgvbeg3C.js.map} +1 -1
- package/{Error404-Zs5aZibY.js → Error404-BXcBcCbK.js} +3 -3
- package/{Error404-Zs5aZibY.js.map → Error404-BXcBcCbK.js.map} +1 -1
- package/{Error500-BeHC7MB0.js → Error500-BgGL-4HG.js} +3 -3
- package/{Error500-BeHC7MB0.js.map → Error500-BgGL-4HG.js.map} +1 -1
- package/{HomeIndex-Dc7VZnGu.js → HomeIndex-rVqHNqCL.js} +2 -2
- package/{HomeIndex-Dc7VZnGu.js.map → HomeIndex-rVqHNqCL.js.map} +1 -1
- package/{IconExplorer-Dr5DHNqH.js → IconExplorer-Brxz8hDs.js} +2 -2
- package/{IconExplorer-Dr5DHNqH.js.map → IconExplorer-Brxz8hDs.js.map} +1 -1
- package/Index-SF8odcU0.js +5 -0
- package/Index-SF8odcU0.js.map +1 -0
- package/MainLogin-DJn8YWhN.js +162 -0
- package/MainLogin-DJn8YWhN.js.map +1 -0
- package/{MenuManage-CE19Barl.js → MenuManage-CkXmt5wg.js} +2 -2
- package/{MenuManage-CE19Barl.js.map → MenuManage-CkXmt5wg.js.map} +1 -1
- package/{OrgManage-BDq94j_4.js → OrgManage-EPdk3YY5.js} +2 -2
- package/{OrgManage-BDq94j_4.js.map → OrgManage-EPdk3YY5.js.map} +1 -1
- package/{RoleManage-B96hAIoM.js → RoleManage-0zwj9Ew3.js} +2 -2
- package/{RoleManage-B96hAIoM.js.map → RoleManage-0zwj9Ew3.js.map} +1 -1
- package/{SysConfig-zkAs620Z.js → SysConfig-BBvexnOf.js} +2 -2
- package/{SysConfig-zkAs620Z.js.map → SysConfig-BBvexnOf.js.map} +1 -1
- package/{TenantList-C9wXnIOV.js → TenantList-CUJhZ23v.js} +2 -2
- package/{TenantList-C9wXnIOV.js.map → TenantList-CUJhZ23v.js.map} +1 -1
- package/{index-DsHX4-H-.js → index-vgdcf7LB.js} +903 -1082
- package/index-vgdcf7LB.js.map +1 -0
- package/index.es.js +1 -1
- package/login-bg-Disn69VD.js +5 -0
- package/login-bg-Disn69VD.js.map +1 -0
- package/package.json +3 -2
- package/AdminLogin-WIwNqoIe.js +0 -148
- package/AdminLogin-WIwNqoIe.js.map +0 -1
- package/Index-MG2wd36s.js +0 -5
- package/Index-MG2wd36s.js.map +0 -1
- package/MainLogin-DrvzRbd9.js +0 -161
- package/MainLogin-DrvzRbd9.js.map +0 -1
- package/index-DsHX4-H-.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgManage-BDq94j_4.js","sources":["../components/business/system/OrgManage.vue"],"sourcesContent":["<template>\n <div class=\"yh-org-manage\">\n <el-row class=\"operation\">\n <div>\n <el-button @click=\"addNew\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"plus\"></YhIcon>\n {{ ct('新增') }}\n </el-button>\n <el-button @click=\"expandTree(true)\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"colum-height\"></YhIcon>\n {{ ct('展开') }}\n </el-button>\n <el-button @click=\"expandTree(false)\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"vertical-align-middl\"></YhIcon>\n {{ ct('折叠') }}\n </el-button>\n <el-button @click=\"getAllList\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"refresh\"></YhIcon>\n {{ ct('刷新') }}\n </el-button>\n </div>\n </el-row>\n <el-row\n class=\"contenx\"\n type=\"flex\"\n justify=\"start\"\n :gutter=\"16\"\n v-show=\"showType === 'tree'\">\n <el-col\n class=\"yh-org-manage-right\"\n :sm=\"8\"\n :md=\"8\"\n :lg=\"8\"\n :xl=\"6\">\n <el-alert\n show-icon\n :title=\"ct('当前选择编辑:') + ` ${editTitle} `\"\n :closable=\"false\"\n style=\"margin-bottom: 10px\"></el-alert>\n <el-input\n v-model=\"searchKey\"\n @change=\"search\"\n :placeholder=\"ct('输入机构名搜索')\"\n clearable>\n <template #prepend>\n <i class=\"iconfont icon-search\"></i>\n </template>\n </el-input>\n <div\n class=\"yh-orm-manage-tree\"\n v-loading=\"loading\">\n <el-tree\n ref=\"treeRef\"\n :data=\"data\"\n :props=\"treeProp\"\n node-key=\"key\"\n default-expand-all\n :expand-on-click-node=\"false\"\n :current-node-key=\"treeSelectedKeys\"\n @current-change=\"selectTree\"></el-tree>\n </div>\n </el-col>\n <el-col\n :sm=\"16\"\n :md=\"16\"\n :lg=\"16\"\n :xl=\"9\">\n <el-form\n ref=\"formRef\"\n :model=\"form\"\n :rules=\"formValidate\"\n label-width=\"90px\">\n <el-form-item\n :label=\"ct('机构编码')\"\n prop=\"value\">\n <el-input\n v-model=\"form.value\"\n ref=\"orgCodeRef\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('机构名称')\"\n prop=\"name\">\n <el-input v-model=\"form.name\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('机构类型')\"\n prop=\"adOrgtypeId\">\n <Dict\n dict=\"adOrgtypeId\"\n url=\"/orgController/getOrgType\"\n _select_id=\"\"\n v-model=\"form.adOrgtypeId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('上级机构')\"\n prop=\"parentId\"\n v-if=\"pOrgRefreshFlag\">\n <Dict\n dict=\"parentId\"\n url=\"/orgController/getGroupOrgs\"\n v-model=\"form.parentId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('默认首页')\"\n prop=\"mainPage\">\n <el-input v-model=\"form.mainPage\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('备注')\"\n prop=\"description\">\n <el-input\n v-model=\"form.description\"\n type=\"textarea\" />\n </el-form-item>\n <el-form-item :label=\"ct('是否有效')\">\n <el-switch\n v-model=\"form.active\"\n active-value=\"Y\"\n inactive-value=\"N\" />\n </el-form-item>\n <el-form-item>\n <el-button\n style=\"margin-right: 5px\"\n @click=\"submitEdit\"\n :loading=\"submitLoading\"\n :disabled=\"form.adOrgId !== ''\"\n type=\"primary\">\n <i class=\"iconfont icon-plus\"></i>\n {{ ct('保存新增') }}\n </el-button>\n <el-button\n style=\"margin-right: 5px\"\n @click=\"submitEdit\"\n :loading=\"submitLoading\"\n :disabled=\"form.adOrgId === ''\"\n type=\"primary\">\n <i class=\"iconfont icon-save\"></i>\n {{ ct('保存修改') }}\n </el-button>\n <el-button @click=\"handleReset\">{{ ct('重置') }}</el-button>\n </el-form-item>\n </el-form>\n </el-col>\n </el-row>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, onMounted, nextTick} from 'vue';\n import {ElMessage} from 'element-plus';\n import type {FormInstance, FormRules} from 'element-plus';\n import {httpRequest} from 'yh-client';\n import YhIcon from '../../common/basic/YhIcon.vue';\n import Dict from './Dict.vue';\n import {ct} from '../../../utils/i18nHelp';\n\n defineOptions({\n name: 'OrgManage',\n });\n\n // ==================== 类型定义 ====================\n\n interface OrgForm {\n value: string;\n name: string;\n adOrgtypeId: string;\n parentId: string;\n description: string;\n active: 'Y' | 'N';\n adOrgId: string;\n mainPage: string;\n }\n\n interface TreeNode {\n key: string;\n title: string;\n level: number;\n data: any;\n children?: TreeNode[];\n }\n\n // ==================== 响应式数据 ====================\n\n const showType = ref('tree');\n const loading = ref(true);\n const maxHeight = ref('500px');\n const pOrgRefreshFlag = ref(true);\n const searchKey = ref('');\n const editTitle = ref('');\n const submitLoading = ref(false);\n\n const treeRef = ref();\n const formRef = ref<FormInstance>();\n const orgCodeRef = ref();\n\n const treeProp = {\n label: 'title',\n };\n\n const form = ref<OrgForm>({\n value: '',\n name: '',\n adOrgtypeId: '',\n parentId: '',\n description: '',\n active: 'Y',\n adOrgId: '',\n mainPage: '',\n });\n\n const formValidate: FormRules<OrgForm> = {\n value: [{required: true, message: ct('编码不能为空'), trigger: 'change'}],\n name: [{required: true, message: ct('名称不能为空'), trigger: 'change'}],\n };\n\n const data = ref<TreeNode[]>([]);\n const allOrg = ref<any[]>([]);\n const treeSelectedKeys = ref<string | null>(null);\n const selectedNodes = ref<any>(null);\n\n const init = () => {\n getAllList();\n };\n\n const pOrgReload = () => {\n pOrgRefreshFlag.value = false;\n nextTick(() => {\n pOrgRefreshFlag.value = true;\n });\n };\n\n const parseTreeData = (curLevelData: any[], curLevel: number, search?: string): TreeNode[] => {\n const result: TreeNode[] = [];\n curLevelData.forEach((curLeve) => {\n const newLevelData: TreeNode = {\n data: curLeve,\n key: '',\n title: '',\n level: curLevel,\n };\n\n if (curLeve['_childs'] && curLeve['_childs'].length > 0) {\n newLevelData.children = parseTreeData(curLeve['_childs'], curLevel + 1, search);\n }\n\n if (\n search !== undefined &&\n (newLevelData.children === undefined || newLevelData.children.length === 0) &&\n curLeve.name.indexOf(search) === -1\n ) {\n return;\n }\n\n newLevelData.key = curLeve.adOrgId;\n newLevelData.title = curLeve.name;\n result.push(newLevelData);\n });\n return result;\n };\n\n const getAllList = () => {\n loading.value = true;\n pOrgReload();\n httpRequest\n .post('/orgController/getOrgData', {})\n .then((response: any) => {\n if (response.data.result) {\n allOrg.value = response.data.orgList;\n data.value = parseTreeData(allOrg.value, 0);\n }\n })\n .catch((error) => {\n console.error('获取机构列表失败:', error);\n ElMessage.error(ct('获取机构列表失败'));\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n const search = () => {\n loading.value = true;\n data.value = parseTreeData(allOrg.value, 0, searchKey.value);\n loading.value = false;\n };\n\n const selectTree = (treeNode: TreeNode | null, node: any) => {\n if (treeNode) {\n const formData = treeNode.data;\n form.value = {...formData};\n editTitle.value = formData.name;\n selectedNodes.value = node;\n treeSelectedKeys.value = treeNode.data.adOrgId;\n } else {\n cancelEdit();\n }\n };\n\n const addNew = () => {\n cancelEdit();\n treeSelectedKeys.value = null;\n nextTick(() => {\n orgCodeRef.value?.focus();\n });\n };\n\n const cancelEdit = () => {\n handleReset();\n };\n\n const handleReset = () => {\n treeSelectedKeys.value = null;\n form.value.adOrgId = '';\n form.value.active = 'Y';\n editTitle.value = '';\n formRef.value?.resetFields();\n };\n\n const submitEdit = () => {\n formRef.value?.validate((valid) => {\n if (valid) {\n submitLoading.value = true;\n const curForm = {\n value: form.value.value,\n name: form.value.name,\n adOrgtypeId: form.value.adOrgtypeId,\n parentId: form.value.parentId,\n description: form.value.description,\n active: form.value.active,\n adOrgId: form.value.adOrgId,\n mainPage: form.value.mainPage,\n };\n httpRequest\n .post('/orgController/submitOrg', curForm)\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success((form.value.adOrgId !== '' ? ct('修改') : ct('新增')) + ct('成功'));\n getAllList();\n handleReset();\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交机构失败:', error);\n ElMessage.error(ct('提交失败,请稍后重试'));\n })\n .finally(() => {\n submitLoading.value = false;\n });\n }\n });\n };\n\n const expandTree = (expand: boolean) => {\n const nodes = treeRef.value?.root.store.nodesMap;\n if (nodes) {\n for (const nodesKey in nodes) {\n nodes[nodesKey].expanded = expand;\n }\n }\n };\n\n // ==================== 生命周期 ====================\n\n onMounted(() => {\n const height = document.documentElement.clientHeight;\n maxHeight.value = `${height - 106}px`;\n init();\n });\n</script>\n\n<style lang=\"scss\">\n .yh-org-manage {\n height: 100%;\n overflow: hidden;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n .operation {\n margin-bottom: 2vh;\n }\n .contenx {\n flex: 1;\n overflow: hidden;\n .yh-org-manage-right {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .yh-orm-manage-tree {\n flex: 1;\n overflow: auto;\n }\n }\n }\n\n .select-title {\n font-weight: 600;\n color: #40a9ff;\n }\n\n .select-clear {\n margin-left: 10px;\n }\n :deep(.el-form-item__content) {\n .el-select {\n flex: 1;\n }\n }\n\n .tree-bar {\n overflow: auto;\n margin-top: 5px;\n position: relative;\n min-height: 80px;\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n box-shadow: inset 0 0 2px #d1d1d1;\n background: #e4e4e4;\n }\n }\n }\n</style>\n"],"names":["showType","ref","loading","maxHeight","pOrgRefreshFlag","searchKey","editTitle","submitLoading","treeRef","formRef","orgCodeRef","treeProp","form","formValidate","ct","data","allOrg","treeSelectedKeys","selectedNodes","init","getAllList","pOrgReload","nextTick","parseTreeData","curLevelData","curLevel","search","result","curLeve","newLevelData","httpRequest","response","error","ElMessage","selectTree","treeNode","node","formData","cancelEdit","addNew","_a","handleReset","submitEdit","valid","curForm","expandTree","expand","nodes","nodesKey","onMounted","height","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_component_el_row","_createElementVNode","_component_el_button","YhIcon","_createTextVNode","_unref","_component_el_col","_component_el_alert","_component_el_input","$event","_cache","_withDirectives","_hoisted_2","_component_el_tree","_component_el_form","_component_el_form_item","Dict","_createBlock","_component_el_switch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OrgManage-EPdk3YY5.js","sources":["../components/business/system/OrgManage.vue"],"sourcesContent":["<template>\n <div class=\"yh-org-manage\">\n <el-row class=\"operation\">\n <div>\n <el-button @click=\"addNew\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"plus\"></YhIcon>\n {{ ct('新增') }}\n </el-button>\n <el-button @click=\"expandTree(true)\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"colum-height\"></YhIcon>\n {{ ct('展开') }}\n </el-button>\n <el-button @click=\"expandTree(false)\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"vertical-align-middl\"></YhIcon>\n {{ ct('折叠') }}\n </el-button>\n <el-button @click=\"getAllList\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"refresh\"></YhIcon>\n {{ ct('刷新') }}\n </el-button>\n </div>\n </el-row>\n <el-row\n class=\"contenx\"\n type=\"flex\"\n justify=\"start\"\n :gutter=\"16\"\n v-show=\"showType === 'tree'\">\n <el-col\n class=\"yh-org-manage-right\"\n :sm=\"8\"\n :md=\"8\"\n :lg=\"8\"\n :xl=\"6\">\n <el-alert\n show-icon\n :title=\"ct('当前选择编辑:') + ` ${editTitle} `\"\n :closable=\"false\"\n style=\"margin-bottom: 10px\"></el-alert>\n <el-input\n v-model=\"searchKey\"\n @change=\"search\"\n :placeholder=\"ct('输入机构名搜索')\"\n clearable>\n <template #prepend>\n <i class=\"iconfont icon-search\"></i>\n </template>\n </el-input>\n <div\n class=\"yh-orm-manage-tree\"\n v-loading=\"loading\">\n <el-tree\n ref=\"treeRef\"\n :data=\"data\"\n :props=\"treeProp\"\n node-key=\"key\"\n default-expand-all\n :expand-on-click-node=\"false\"\n :current-node-key=\"treeSelectedKeys\"\n @current-change=\"selectTree\"></el-tree>\n </div>\n </el-col>\n <el-col\n :sm=\"16\"\n :md=\"16\"\n :lg=\"16\"\n :xl=\"9\">\n <el-form\n ref=\"formRef\"\n :model=\"form\"\n :rules=\"formValidate\"\n label-width=\"90px\">\n <el-form-item\n :label=\"ct('机构编码')\"\n prop=\"value\">\n <el-input\n v-model=\"form.value\"\n ref=\"orgCodeRef\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('机构名称')\"\n prop=\"name\">\n <el-input v-model=\"form.name\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('机构类型')\"\n prop=\"adOrgtypeId\">\n <Dict\n dict=\"adOrgtypeId\"\n url=\"/orgController/getOrgType\"\n _select_id=\"\"\n v-model=\"form.adOrgtypeId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('上级机构')\"\n prop=\"parentId\"\n v-if=\"pOrgRefreshFlag\">\n <Dict\n dict=\"parentId\"\n url=\"/orgController/getGroupOrgs\"\n v-model=\"form.parentId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('默认首页')\"\n prop=\"mainPage\">\n <el-input v-model=\"form.mainPage\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('备注')\"\n prop=\"description\">\n <el-input\n v-model=\"form.description\"\n type=\"textarea\" />\n </el-form-item>\n <el-form-item :label=\"ct('是否有效')\">\n <el-switch\n v-model=\"form.active\"\n active-value=\"Y\"\n inactive-value=\"N\" />\n </el-form-item>\n <el-form-item>\n <el-button\n style=\"margin-right: 5px\"\n @click=\"submitEdit\"\n :loading=\"submitLoading\"\n :disabled=\"form.adOrgId !== ''\"\n type=\"primary\">\n <i class=\"iconfont icon-plus\"></i>\n {{ ct('保存新增') }}\n </el-button>\n <el-button\n style=\"margin-right: 5px\"\n @click=\"submitEdit\"\n :loading=\"submitLoading\"\n :disabled=\"form.adOrgId === ''\"\n type=\"primary\">\n <i class=\"iconfont icon-save\"></i>\n {{ ct('保存修改') }}\n </el-button>\n <el-button @click=\"handleReset\">{{ ct('重置') }}</el-button>\n </el-form-item>\n </el-form>\n </el-col>\n </el-row>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, onMounted, nextTick} from 'vue';\n import {ElMessage} from 'element-plus';\n import type {FormInstance, FormRules} from 'element-plus';\n import {httpRequest} from 'yh-client';\n import YhIcon from '../../common/basic/YhIcon.vue';\n import Dict from './Dict.vue';\n import {ct} from '../../../utils/i18nHelp';\n\n defineOptions({\n name: 'OrgManage',\n });\n\n // ==================== 类型定义 ====================\n\n interface OrgForm {\n value: string;\n name: string;\n adOrgtypeId: string;\n parentId: string;\n description: string;\n active: 'Y' | 'N';\n adOrgId: string;\n mainPage: string;\n }\n\n interface TreeNode {\n key: string;\n title: string;\n level: number;\n data: any;\n children?: TreeNode[];\n }\n\n // ==================== 响应式数据 ====================\n\n const showType = ref('tree');\n const loading = ref(true);\n const maxHeight = ref('500px');\n const pOrgRefreshFlag = ref(true);\n const searchKey = ref('');\n const editTitle = ref('');\n const submitLoading = ref(false);\n\n const treeRef = ref();\n const formRef = ref<FormInstance>();\n const orgCodeRef = ref();\n\n const treeProp = {\n label: 'title',\n };\n\n const form = ref<OrgForm>({\n value: '',\n name: '',\n adOrgtypeId: '',\n parentId: '',\n description: '',\n active: 'Y',\n adOrgId: '',\n mainPage: '',\n });\n\n const formValidate: FormRules<OrgForm> = {\n value: [{required: true, message: ct('编码不能为空'), trigger: 'change'}],\n name: [{required: true, message: ct('名称不能为空'), trigger: 'change'}],\n };\n\n const data = ref<TreeNode[]>([]);\n const allOrg = ref<any[]>([]);\n const treeSelectedKeys = ref<string | null>(null);\n const selectedNodes = ref<any>(null);\n\n const init = () => {\n getAllList();\n };\n\n const pOrgReload = () => {\n pOrgRefreshFlag.value = false;\n nextTick(() => {\n pOrgRefreshFlag.value = true;\n });\n };\n\n const parseTreeData = (curLevelData: any[], curLevel: number, search?: string): TreeNode[] => {\n const result: TreeNode[] = [];\n curLevelData.forEach((curLeve) => {\n const newLevelData: TreeNode = {\n data: curLeve,\n key: '',\n title: '',\n level: curLevel,\n };\n\n if (curLeve['_childs'] && curLeve['_childs'].length > 0) {\n newLevelData.children = parseTreeData(curLeve['_childs'], curLevel + 1, search);\n }\n\n if (\n search !== undefined &&\n (newLevelData.children === undefined || newLevelData.children.length === 0) &&\n curLeve.name.indexOf(search) === -1\n ) {\n return;\n }\n\n newLevelData.key = curLeve.adOrgId;\n newLevelData.title = curLeve.name;\n result.push(newLevelData);\n });\n return result;\n };\n\n const getAllList = () => {\n loading.value = true;\n pOrgReload();\n httpRequest\n .post('/orgController/getOrgData', {})\n .then((response: any) => {\n if (response.data.result) {\n allOrg.value = response.data.orgList;\n data.value = parseTreeData(allOrg.value, 0);\n }\n })\n .catch((error) => {\n console.error('获取机构列表失败:', error);\n ElMessage.error(ct('获取机构列表失败'));\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n const search = () => {\n loading.value = true;\n data.value = parseTreeData(allOrg.value, 0, searchKey.value);\n loading.value = false;\n };\n\n const selectTree = (treeNode: TreeNode | null, node: any) => {\n if (treeNode) {\n const formData = treeNode.data;\n form.value = {...formData};\n editTitle.value = formData.name;\n selectedNodes.value = node;\n treeSelectedKeys.value = treeNode.data.adOrgId;\n } else {\n cancelEdit();\n }\n };\n\n const addNew = () => {\n cancelEdit();\n treeSelectedKeys.value = null;\n nextTick(() => {\n orgCodeRef.value?.focus();\n });\n };\n\n const cancelEdit = () => {\n handleReset();\n };\n\n const handleReset = () => {\n treeSelectedKeys.value = null;\n form.value.adOrgId = '';\n form.value.active = 'Y';\n editTitle.value = '';\n formRef.value?.resetFields();\n };\n\n const submitEdit = () => {\n formRef.value?.validate((valid) => {\n if (valid) {\n submitLoading.value = true;\n const curForm = {\n value: form.value.value,\n name: form.value.name,\n adOrgtypeId: form.value.adOrgtypeId,\n parentId: form.value.parentId,\n description: form.value.description,\n active: form.value.active,\n adOrgId: form.value.adOrgId,\n mainPage: form.value.mainPage,\n };\n httpRequest\n .post('/orgController/submitOrg', curForm)\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success((form.value.adOrgId !== '' ? ct('修改') : ct('新增')) + ct('成功'));\n getAllList();\n handleReset();\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交机构失败:', error);\n ElMessage.error(ct('提交失败,请稍后重试'));\n })\n .finally(() => {\n submitLoading.value = false;\n });\n }\n });\n };\n\n const expandTree = (expand: boolean) => {\n const nodes = treeRef.value?.root.store.nodesMap;\n if (nodes) {\n for (const nodesKey in nodes) {\n nodes[nodesKey].expanded = expand;\n }\n }\n };\n\n // ==================== 生命周期 ====================\n\n onMounted(() => {\n const height = document.documentElement.clientHeight;\n maxHeight.value = `${height - 106}px`;\n init();\n });\n</script>\n\n<style lang=\"scss\">\n .yh-org-manage {\n height: 100%;\n overflow: hidden;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n .operation {\n margin-bottom: 2vh;\n }\n .contenx {\n flex: 1;\n overflow: hidden;\n .yh-org-manage-right {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .yh-orm-manage-tree {\n flex: 1;\n overflow: auto;\n }\n }\n }\n\n .select-title {\n font-weight: 600;\n color: #40a9ff;\n }\n\n .select-clear {\n margin-left: 10px;\n }\n :deep(.el-form-item__content) {\n .el-select {\n flex: 1;\n }\n }\n\n .tree-bar {\n overflow: auto;\n margin-top: 5px;\n position: relative;\n min-height: 80px;\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n box-shadow: inset 0 0 2px #d1d1d1;\n background: #e4e4e4;\n }\n }\n }\n</style>\n"],"names":["showType","ref","loading","maxHeight","pOrgRefreshFlag","searchKey","editTitle","submitLoading","treeRef","formRef","orgCodeRef","treeProp","form","formValidate","ct","data","allOrg","treeSelectedKeys","selectedNodes","init","getAllList","pOrgReload","nextTick","parseTreeData","curLevelData","curLevel","search","result","curLeve","newLevelData","httpRequest","response","error","ElMessage","selectTree","treeNode","node","formData","cancelEdit","addNew","_a","handleReset","submitEdit","valid","curForm","expandTree","expand","nodes","nodesKey","onMounted","height","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_component_el_row","_createElementVNode","_component_el_button","YhIcon","_createTextVNode","_unref","_component_el_col","_component_el_alert","_component_el_input","$event","_cache","_withDirectives","_hoisted_2","_component_el_tree","_component_el_form","_component_el_form_item","Dict","_createBlock","_component_el_switch"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as Je, ref as i, reactive as Ge, onMounted as Qe, resolveComponent as h, resolveDirective as He, openBlock as O, createElementBlock as X, createElementVNode as C, toDisplayString as f, unref as r, createVNode as o, withCtx as d, createTextVNode as m, withDirectives as ge, createBlock as L, Fragment as ve, renderList as _e, createCommentVNode as Xe, nextTick as ke } from "vue";
|
|
2
2
|
import { ElMessage as g } from "element-plus";
|
|
3
3
|
import { httpRequest as k } from "yh-client";
|
|
4
|
-
import { c as n, f as Z } from "./index-
|
|
4
|
+
import { c as n, f as Z } from "./index-vgdcf7LB.js";
|
|
5
5
|
import { _ as Ze } from "./Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js";
|
|
6
6
|
const el = { class: "ver-container" }, ll = { class: "ver-col" }, tl = { class: "operation" }, al = { style: { padding: "5px 15px 5px 2px", "font-size": "13px" } }, ol = { class: "operation" }, nl = { style: { padding: "5px 15px 5px 2px", "font-size": "18px", "font-weight": "bold" } }, sl = { class: "ivu-card-head" }, rl = { style: { "margin-bottom": "0px" } }, dl = {
|
|
7
7
|
style: { padding: "0 10px" },
|
|
@@ -735,4 +735,4 @@ const el = { class: "ver-container" }, ll = { class: "ver-col" }, tl = { class:
|
|
|
735
735
|
export {
|
|
736
736
|
vl as default
|
|
737
737
|
};
|
|
738
|
-
//# sourceMappingURL=RoleManage-
|
|
738
|
+
//# sourceMappingURL=RoleManage-0zwj9Ew3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleManage-B96hAIoM.js","sources":["../components/business/system/RoleManage.vue"],"sourcesContent":["<template>\n <div class=\"ver-container\">\n <div class=\"ver-col\">\n <div class=\"operation\">\n <div style=\"padding: 5px 15px 5px 2px; font-size: 13px\">{{ ct('角色名称') }}</div>\n <el-input\n v-model=\"searchKey\"\n @change=\"getDataList\"\n :placeholder=\"ct('输入关键词搜索')\"\n style=\"width: 300px; margin-left: 12px\"\n clearable />\n </div>\n <div class=\"operation\">\n <div style=\"padding: 5px 15px 5px 2px; font-size: 18px; font-weight: bold\">{{ ct('角色管理') }}</div>\n <el-button\n @click=\"addRole\"\n type=\"primary\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"plus\"></YhIcon>\n {{ ct('添加角色') }}\n </el-button>\n <el-popconfirm\n :title=\"ct('确定要删除所选的角色吗?')\"\n :ok-text=\"ct('删除')\"\n :cancel-text=\"ct('取消')\"\n @confirm=\"delAll\"\n style=\"margin-left: 12px\">\n <template #reference>\n <el-button>\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"delete\"></YhIcon>\n {{ ct('批量删除') }}\n </el-button>\n </template>\n </el-popconfirm>\n <el-button\n @click=\"getDataList\"\n style=\"margin-left: 12px\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"refresh\"></YhIcon>\n {{ ct('刷新') }}\n </el-button>\n </div>\n <el-table\n v-loading=\"loading\"\n row-key=\"adRoleId\"\n :data=\"dataList\"\n ref=\"tableRef\"\n highlight-current-row\n @selection-change=\"handleSelectionChange\"\n :header-cell-style=\"{background: '#f8f8f8', color: '#606266', fontSize: '13px'}\"\n stripe>\n <el-table-column\n type=\"selection\"\n width=\"50\"\n align=\"center\"></el-table-column>\n <el-table-column\n :label=\"ct('#')\"\n width=\"50\">\n <template #default=\"scope\">{{ scope.$index + 1 }}</template>\n </el-table-column>\n <el-table-column\n :label=\"ct('所属机构')\"\n min-width=\"150\"\n prop=\"orgName\"></el-table-column>\n <el-table-column\n :label=\"ct('角色名称')\"\n min-width=\"300\"\n prop=\"name\"></el-table-column>\n <el-table-column\n :label=\"ct('角色管理员')\"\n min-width=\"150\"\n prop=\"isAdmin\"></el-table-column>\n <el-table-column\n :label=\"ct('备注')\"\n min-width=\"200\"\n prop=\"description\"></el-table-column>\n <el-table-column\n width=\"350\"\n :label=\"ct('操作')\">\n <template #default=\"{row}\">\n <el-button\n size=\"small\"\n type=\"primary\"\n @click=\"editPerm(row)\">\n {{ ct('菜单权限') }}\n </el-button>\n <el-button\n size=\"small\"\n type=\"success\"\n @click=\"editOrg(row)\">\n {{ ct('角色机构') }}\n </el-button>\n <el-button\n size=\"small\"\n type=\"info\"\n @click=\"edit(row)\">\n {{ ct('编辑') }}\n </el-button>\n <el-popconfirm\n :title=\"ct('你确定要删除吗')\"\n :ok-text=\"ct('确定')\"\n :cancel-text=\"ct('取消')\"\n @confirm=\"remove(row)\">\n <template #reference>\n <el-button\n title=\"删除\"\n size=\"small\"\n type=\"danger\">\n {{ ct('删除') }}\n </el-button>\n </template>\n </el-popconfirm>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n v-model:current-page=\"pagination.currentPage\"\n v-model:page-size=\"pagination.pageSize\"\n :page-sizes=\"[10, 30, 50, 100]\"\n layout=\"prev, pager, next, sizes, total, jumper\"\n :total=\"pagination.total\"\n @size-change=\"getDataList\"\n @current-change=\"getDataList\" />\n <!-- 编辑 -->\n <el-dialog\n :title=\"modalTitle\"\n v-model=\"roleModalVisible\"\n :close-on-click-modal=\"false\"\n @close=\"cancelRole\"\n :width=\"500\">\n <el-form\n ref=\"roleFormRef\"\n :model=\"roleForm\"\n :label-width=\"100\"\n :rules=\"roleFormValidate\">\n <el-form-item\n :label=\"ct('组织机构')\"\n prop=\"ad_org_id\">\n <Dict\n dict=\"ad_org_id\"\n url=\"/orgController/getGroupOrgs\"\n v-model=\"roleForm.adOrgId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('角色名称')\"\n prop=\"name\">\n <el-input\n v-model=\"roleForm.name\"\n :placeholder=\"ct('请输入')\" />\n </el-form-item>\n <el-form-item label=\"角色管理员\">\n <el-switch\n v-model=\"roleForm.isAdmin\"\n active-value=\"Y\"\n inactive-value=\"N\"\n size=\"large\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('备注')\"\n prop=\"description\">\n <el-input v-model=\"roleForm.description\" />\n </el-form-item>\n </el-form>\n <template #footer>\n <el-button\n text\n @click=\"cancelRole\">\n {{ ct('取消') }}\n </el-button>\n <el-button\n type=\"primary\"\n :loading=\"submitLoading\"\n @click=\"submitRole\">\n {{ ct('提交') }}\n </el-button>\n </template>\n </el-dialog>\n <!-- 菜单权限 -->\n <el-drawer\n :title=\"modalTitle\"\n v-model=\"permModalVisible\"\n :close-on-click-modal=\"false\"\n :width=\"800\"\n @close=\"cancelPermEdit\">\n <el-row :gap=\"10\">\n <el-col\n :span=\"12\"\n style=\"overflow: auto; height: 100%\">\n <el-tree\n ref=\"treeRef\"\n v-loading=\"treeLoading\"\n :data=\"permData\"\n :props=\"{label: 'title'}\"\n show-checkbox\n default-expand-all\n node-key=\"adMenuId\"\n :check-on-click-leaf=\"false\"\n :expand-on-click-node=\"false\"\n :highlight-current=\"true\"\n @current-change=\"selectTree\"\n @check-change=\"checkedMenuTree\"></el-tree>\n </el-col>\n <el-col\n :span=\"12\"\n style=\"overflow: auto; height: 100%\">\n <div class=\"ivu-card-head\"><p style=\"margin-bottom: 0px\">{{ ct('按钮权限') }}</p></div>\n <div\n style=\"padding: 0 10px\"\n class=\"custom-scrollbar\">\n <el-card\n v-for=\"(item, key) in curWindowBtnList\"\n :key=\"key\"\n shadow=\"never\"\n style=\"margin-top: 5px\">\n <template #header>\n {{ item.NAME }}\n <el-checkbox\n style=\"margin-left: 10px\"\n :indeterminate=\"item.indeterminate\"\n v-model=\"item.checkAll\"\n @change=\"handleCheckAll(item, key)\">\n {{ ct('全选') }}\n </el-checkbox>\n </template>\n <el-checkbox-group\n v-model=\"item.checkChilds\"\n @change=\"checkAllGroupChange($event, key)\">\n <el-checkbox\n v-for=\"child in item.childs\"\n :key=\"child.ID\"\n :label=\"child.ID\">\n {{ child.NAME }}\n </el-checkbox>\n </el-checkbox-group>\n </el-card>\n <el-empty\n :description=\"ct('暂无按钮权限数据')\"\n v-if=\"curWindowBtnList.length === 0\"></el-empty>\n </div>\n </el-col>\n </el-row>\n <template #footer>\n <el-button\n type=\"primary\"\n :loading=\"submitPermLoading\"\n @click=\"submitPermEdit\">\n {{ ct('提交') }}\n </el-button>\n <el-button\n text\n @click=\"cancelPermEdit\">\n {{ ct('取消') }}\n </el-button>\n </template>\n </el-drawer>\n <!-- 角色机构所属 -->\n <el-dialog\n :title=\"modalTitle\"\n v-model=\"orgModalVisible\"\n :close-on-click-modal=\"false\"\n :width=\"400\"\n class=\"depModal yh-el-dialog\">\n <el-alert\n show-icon\n :title=\"ct('请勾选下方组织机构,选中复选框为角色管理员')\"></el-alert>\n <div style=\"margin-top: 15px; min-height: 300px\">\n <div style=\"position: relative\">\n <el-tree\n ref=\"depTreeRef\"\n :data=\"orgData\"\n :props=\"{label: 'title'}\"\n show-checkbox\n default-expand-all\n node-key=\"adOrgId\"\n :check-on-click-leaf=\"true\"\n :expand-on-click-node=\"false\"\n :highlight-current=\"true\"\n check-strictly\n v-model=\"deptCheckedKeys\"\n @check-change=\"checkOrgTree\"></el-tree>\n </div>\n </div>\n <template #footer>\n <el-button\n type=\"primary\"\n :loading=\"submitDepLoading\"\n @click=\"submitRoleOrg\">\n {{ ct('提交') }}\n </el-button>\n <el-button\n text\n @click=\"orgModalVisible = false\">\n {{ ct('取消') }}\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, reactive, onMounted, nextTick} from 'vue';\n import {ElMessage} from 'element-plus';\n import type {FormInstance, FormRules} from 'element-plus';\n import {httpRequest} from 'yh-client';\n import YhIcon from '../../common/basic/YhIcon.vue';\n import Dict from './Dict.vue';\n import {ct} from '../../../utils/i18nHelp';\n\n defineOptions({\n name: 'RoleManage',\n });\n\n // ==================== 类型定义 ====================\n\n interface RoleForm {\n adRoleId: string;\n adOrgId: string;\n name: string;\n isAdmin: 'Y' | 'N';\n description: string;\n }\n\n interface RoleItem {\n adRoleId: string;\n adOrgId: string;\n name: string;\n isAdmin: string;\n description: string;\n orgName: string;\n }\n\n interface MenuPermData {\n adMenuId: string;\n name: string;\n sysWindowId: string;\n status: number;\n _childs?: MenuPermData[];\n [key: string]: any;\n }\n\n interface ButtonGroup {\n ID: string;\n NAME: string;\n checkAll: boolean;\n indeterminate: boolean;\n checkChilds: string[];\n childs: ButtonItem[];\n }\n\n interface ButtonItem {\n ID: string;\n NAME: string;\n PARENT_ID: string;\n }\n\n interface TreeNode {\n key: string;\n title: string;\n level: number;\n data: any;\n children?: TreeNode[];\n [key: string]: any;\n }\n\n interface Pagination {\n currentPage: number;\n pageSize: number;\n total: number;\n }\n\n // ==================== 响应式数据 ====================\n\n // 列表相关\n const loading = ref(false);\n const dataList = ref<RoleItem[]>([]);\n const pagination = reactive<Pagination>({\n currentPage: 1,\n pageSize: 10,\n total: 0,\n });\n const searchKey = ref('');\n const tableRef = ref();\n\n // 表单弹窗\n const roleModalVisible = ref(false);\n const modalTitle = ref('');\n const submitLoading = ref(false);\n const roleFormRef = ref<FormInstance>();\n const roleForm = ref<RoleForm>({\n adRoleId: '',\n adOrgId: '',\n name: '',\n isAdmin: 'N',\n description: '',\n });\n\n // 菜单权限抽屉\n const permModalVisible = ref(false);\n const treeLoading = ref(false);\n const permData = ref<MenuPermData[]>([]);\n const editRolePermId = ref('');\n const treeRef = ref();\n const curSelectedMenuId = ref('');\n const curWindowBtnList = ref<ButtonGroup[]>([]);\n const roleSavedBtnPermMap = ref<Record<string, string[]>>({});\n const selectedNodes = ref<string[]>([]);\n const halfSelectedNodes = ref<string[]>([]);\n const submitPermLoading = ref(false);\n\n // 角色机构弹窗\n const orgModalVisible = ref(false);\n const orgData = ref<TreeNode[]>([]);\n const depTreeRef = ref();\n const deptCheckedKeys = ref<string[]>([]);\n const submitDepLoading = ref(false);\n\n const selectList = ref<string[]>([]);\n let timer: number | null = null;\n\n // ==================== 表单验证规则 ====================\n\n const roleFormValidate: FormRules<RoleForm> = {\n adOrgId: [{required: true, message: ct('组织机构不能为空'), trigger: 'change'}],\n name: [{required: true, message: ct('角色名称不能为空'), trigger: 'change'}],\n };\n\n // ==================== 列表相关方法 ====================\n\n const init = () => {\n getDataList();\n };\n\n const getDataList = () => {\n loading.value = true;\n httpRequest\n .post('/roleController/getRoleList', {\n name: searchKey.value,\n pageSize: pagination.pageSize,\n pageIndex: pagination.currentPage,\n })\n .then((response: any) => {\n if (response.data.result) {\n dataList.value = response.data.data.records;\n pagination.total = response.data.data.total;\n }\n })\n .catch((error) => {\n console.error('获取角色列表失败:', error);\n ElMessage.error(ct('获取角色列表失败'));\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n // ==================== 角色编辑相关方法 ====================\n\n const addRole = () => {\n modalTitle.value = '添加角色';\n roleForm.value.adRoleId = '';\n roleForm.value.name = '';\n roleForm.value.isAdmin = 'N';\n roleForm.value.description = '';\n roleForm.value.adOrgId = '';\n roleModalVisible.value = true;\n };\n\n const edit = (row: RoleItem) => {\n modalTitle.value = '编辑角色';\n roleForm.value.adOrgId = row.adOrgId;\n roleForm.value.name = row.name;\n roleForm.value.isAdmin = row.isAdmin as 'Y' | 'N';\n roleForm.value.description = row.description;\n roleForm.value.adRoleId = row.adRoleId;\n roleModalVisible.value = true;\n };\n\n const submitRole = () => {\n roleFormRef.value?.validate((valid) => {\n if (valid) {\n submitLoading.value = true;\n const subForm = {\n orgId: roleForm.value.adOrgId,\n adRoleId: roleForm.value.adRoleId,\n name: roleForm.value.name,\n description: roleForm.value.description,\n isAdmin: roleForm.value.isAdmin,\n };\n httpRequest\n .post('/roleController/submitRole', subForm)\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(ct('操作成功'));\n getDataList();\n roleModalVisible.value = false;\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交角色失败:', error);\n ElMessage.error(ct('提交失败,请稍后重试'));\n })\n .finally(() => {\n submitLoading.value = false;\n });\n }\n });\n };\n\n const cancelRole = () => {\n roleModalVisible.value = false;\n };\n\n const deleteRole = (delId: string) => {\n httpRequest\n .post('/roleController/delRoleByIds', {ids: delId})\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(ct('删除成功'));\n clearSelectAll();\n getDataList();\n } else {\n ElMessage.error(ct('删除失败'));\n }\n })\n .catch((error) => {\n console.error('删除角色失败:', error);\n ElMessage.error(ct('删除失败,请稍后重试'));\n });\n };\n\n const remove = (row: RoleItem) => {\n if (row && row.adRoleId) {\n deleteRole(row.adRoleId);\n }\n };\n\n const handleSelectionChange = (selection: RoleItem[]) => {\n selectList.value = selection.map(item => item.adRoleId);\n };\n\n const clearSelectAll = () => {\n selectList.value = [];\n tableRef.value?.clearSelection();\n };\n\n const delAll = () => {\n if (selectList.value.length <= 0) {\n ElMessage.warning(ct('您还未选择要删除的数据'));\n return;\n }\n const ids = selectList.value.join(',');\n deleteRole(ids);\n };\n\n // ==================== 菜单权限相关方法 ====================\n\n const parseTreeData = (curLevelData: MenuPermData[], curLevel: number): MenuPermData[] => {\n curLevelData.forEach((item) => {\n item.id = item.adMenuId;\n item.key = item.adMenuId;\n item.title = item.name;\n item.expand = true;\n item.checked = false;\n item.level = curLevel;\n if (item['_childs'] && item['_childs'].length > 0) {\n if (!item.children) {\n item.children = [];\n }\n item['_childs'].forEach((sonTreeData) => {\n item.children!.push(parseTreeData([sonTreeData], curLevel + 1)[0]);\n });\n }\n });\n return curLevelData;\n };\n\n const getRoleMenus = async (): Promise<Record<string, any>> => {\n const roleMenuData: Record<string, any> = {};\n await httpRequest\n .post('/rolePermissionsSetting/getRoleMenus', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result) {\n response.data.data.forEach((e: any) => {\n roleMenuData[e.AD_MENU_ID] = e;\n });\n }\n })\n .catch((error) => {\n console.error('获取角色菜单失败:', error);\n });\n return roleMenuData;\n };\n\n const calNewTreeData = (\n newTreeData: MenuPermData[],\n roleMenuData: Record<string, any>\n ): number => {\n let checkedCount = 0;\n newTreeData.forEach((e) => {\n e.expand = true;\n if (roleMenuData[e.adMenuId]) {\n e.checked = true;\n checkedCount++;\n }\n if (e.children && e.children.length > 0) {\n const sonCheckedCount = calNewTreeData(e.children, roleMenuData);\n if (sonCheckedCount === e.children.length) {\n e.checked = true;\n e.indeterminate = false;\n } else if (sonCheckedCount > 0 && sonCheckedCount < e.children.length) {\n e.indeterminate = true;\n e.checked = false;\n } else {\n e.checked = false;\n e.indeterminate = false;\n }\n if (e.checked) {\n halfSelectedNodes.value.push(e.adMenuId);\n }\n if (e.checked) {\n selectedNodes.value.push(e.adMenuId);\n }\n } else {\n if (e.checked) {\n selectedNodes.value.push(e.adMenuId);\n }\n }\n });\n return checkedCount;\n };\n\n const getPermList = async () => {\n treeLoading.value = true;\n selectedNodes.value = [];\n halfSelectedNodes.value = [];\n\n const roleMenuData = await getRoleMenus();\n httpRequest\n .post('/rolePermissionsSetting/getMenuList', {})\n .then((response: any) => {\n if (response.data.result) {\n let newTreeData: MenuPermData[] = [];\n response.data.menuList.forEach((e: MenuPermData) => {\n newTreeData.push(parseTreeData([e], 0)[0]);\n });\n calNewTreeData(newTreeData, roleMenuData);\n deleteDisableNode(newTreeData);\n permData.value = newTreeData;\n treeLoading.value = false;\n\n nextTick(() => {\n const checked = selectedNodes.value.filter(\n (item) => !halfSelectedNodes.value.includes(item)\n );\n treeRef.value?.setCheckedKeys(checked);\n });\n }\n })\n .catch((error) => {\n console.error('获取菜单列表失败:', error);\n ElMessage.error(ct('获取菜单列表失败'));\n treeLoading.value = false;\n });\n };\n\n const deleteDisableNode = (permData: MenuPermData[]) => {\n permData.forEach((e) => {\n if (e.status === -1) {\n e.title = '[已禁用] ' + e.title;\n e.disabled = true;\n }\n if (e.children && e.children.length > 0) {\n deleteDisableNode(e.children);\n }\n });\n };\n\n const editPerm = (row: RoleItem) => {\n editRolePermId.value = row.adRoleId;\n modalTitle.value = '分配 ' + row.name + ' 的菜单权限';\n getPermList();\n httpRequest\n .post('/roleController/getRoleWindowButton', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result && response.data.data) {\n const roleBtnPermMap: Record<string, string[]> = {};\n response.data.data.forEach((e: any) => {\n if (!roleBtnPermMap[e.WINDOW_ID]) {\n roleBtnPermMap[e.WINDOW_ID] = [];\n }\n roleBtnPermMap[e.WINDOW_ID].push(e.BUTTON_ID);\n });\n roleSavedBtnPermMap.value = roleBtnPermMap;\n }\n });\n permModalVisible.value = true;\n };\n\n const selectTree = (data: MenuPermData | null) => {\n if (data) {\n curSelectedMenuId.value = data.sysWindowId;\n httpRequest\n .post('/rolePermissionsSetting/getMenuWindowButton', {windowId: curSelectedMenuId.value})\n .then((response: any) => {\n const {result, data: responseData} = response.data;\n if (result && responseData) {\n const roleBtnData: ButtonGroup[] = [];\n const tempQyBtnData: Record<string, ButtonItem[]> = {};\n responseData.forEach((tData: any) => {\n if (tData.TYPE === 'QY') {\n const group: ButtonGroup = {\n ID: tData.ID,\n NAME: tData.NAME,\n checkAll: false,\n indeterminate: false,\n checkChilds: [],\n childs: [],\n };\n roleBtnData.push(group);\n tempQyBtnData[tData.ID] = [];\n } else {\n if (tempQyBtnData[tData.PARENT_ID]) {\n tempQyBtnData[tData.PARENT_ID].push(tData);\n }\n }\n });\n roleBtnData.forEach((item, index) => {\n roleBtnData[index].childs = tempQyBtnData[item.ID] || [];\n const roleSavedBtns = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n const checkChilds: string[] = [];\n let tcount = 0;\n roleBtnData[index].childs.forEach((es) => {\n if (roleSavedBtns.includes(es.ID)) {\n checkChilds.push(es.ID);\n tcount++;\n }\n });\n if (tcount === roleBtnData[index].childs.length) {\n roleBtnData[index].checkAll = true;\n roleBtnData[index].indeterminate = false;\n } else if (tcount > 0) {\n roleBtnData[index].checkAll = false;\n roleBtnData[index].indeterminate = true;\n } else {\n roleBtnData[index].checkAll = false;\n roleBtnData[index].indeterminate = false;\n }\n roleBtnData[index].checkChilds = checkChilds;\n });\n curWindowBtnList.value = roleBtnData;\n }\n })\n .catch((error) => {\n console.error('获取按钮权限失败:', error);\n });\n }\n };\n\n const checkedMenuTree = () => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n selectedNodes.value = treeRef.value?.getCheckedKeys(true) || [];\n halfSelectedNodes.value = treeRef.value?.getHalfCheckedKeys(true) || [];\n }, 300);\n };\n\n const handleCheckAll = (item: ButtonGroup, key: number) => {\n let checkChilds: string[] = [];\n if (!item.checkAll) {\n item.checkAll = false;\n item.indeterminate = false;\n } else {\n checkChilds = item.childs.map((child) => child.ID);\n item.checkAll = true;\n item.indeterminate = false;\n }\n item.checkChilds = checkChilds;\n updateBtnsToList();\n curWindowBtnList.value[key] = item;\n };\n\n const checkAllGroupChange = (event: string[], key: number) => {\n const currentItem = {...curWindowBtnList.value[key]};\n if (event.length > 0) {\n let containFlag = 0;\n let okCount = 0;\n for (let i = 0; i < currentItem.childs.length; i++) {\n if (event.includes(currentItem.childs[i].ID)) {\n okCount++;\n }\n }\n if (okCount === currentItem.childs.length) {\n containFlag = 2;\n } else {\n containFlag = 1;\n }\n if (containFlag === 1) {\n currentItem.checkAll = false;\n currentItem.indeterminate = okCount === 0 ? false : true;\n } else if (containFlag === 2) {\n currentItem.checkAll = true;\n currentItem.indeterminate = false;\n }\n } else {\n currentItem.checkAll = false;\n currentItem.indeterminate = false;\n }\n currentItem.checkChilds = event;\n curWindowBtnList.value[key] = currentItem;\n updateBtnsToList();\n };\n\n const updateBtnsToList = () => {\n const btns = new Set<string>();\n curWindowBtnList.value.forEach((item) => {\n item.checkChilds.forEach((checkId) => {\n btns.add(checkId);\n });\n });\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = Array.from(btns);\n };\n\n const submitPermEdit = () => {\n submitPermLoading.value = true;\n const permMenuIds = selectedNodes.value.concat(halfSelectedNodes.value).join(',');\n const permMenuBtnIds: Record<string, string[]> = {};\n Object.keys(roleSavedBtnPermMap.value).forEach((key) => {\n permMenuBtnIds['W_' + key] = roleSavedBtnPermMap.value[key];\n });\n httpRequest\n .post('/rolePermissionsSetting/setMenus', {\n roleId: editRolePermId.value,\n ids: permMenuIds,\n btns: JSON.stringify(permMenuBtnIds),\n })\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success('操作成功');\n getDataList();\n permModalVisible.value = false;\n cancelPermEdit();\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交权限失败:', error);\n ElMessage.error('提交失败,请稍后重试');\n })\n .finally(() => {\n submitPermLoading.value = false;\n });\n };\n\n const cancelPermEdit = () => {\n selectedNodes.value = [];\n halfSelectedNodes.value = [];\n roleSavedBtnPermMap.value = {};\n curWindowBtnList.value = [];\n permModalVisible.value = false;\n };\n\n // ==================== 角色机构相关方法 ====================\n\n const parseOrgTreeData = (\n curLevelData: any,\n curLevel: number,\n roleOrgData: Record<string, any>\n ): TreeNode => {\n const newLevelData = {...curLevelData};\n newLevelData.key = curLevelData.adOrgId;\n newLevelData.title = curLevelData.name;\n if (roleOrgData[curLevelData.adOrgId]) {\n if (roleOrgData[curLevelData.adOrgId].isOrgAdmin === 'Y') {\n deptCheckedKeys.value.push(curLevelData.adOrgId);\n }\n }\n newLevelData.level = curLevel;\n if (curLevelData['_childs'] && curLevelData['_childs'].length > 0) {\n curLevelData['_childs'].forEach((sonTreeData: any) => {\n if (!newLevelData.children) {\n newLevelData.children = [];\n }\n newLevelData.children.push(parseOrgTreeData(sonTreeData, curLevel + 1, roleOrgData));\n });\n }\n return newLevelData;\n };\n\n const loadRoleOrg = async (): Promise<Record<string, any>> => {\n const roleOrgData: Record<string, any> = {};\n await httpRequest\n .post('/roleController/getRoleOrgAccess', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result) {\n if (response.data.roleOrgAccess) {\n response.data.roleOrgAccess.forEach((sd: any) => {\n roleOrgData[sd.orgId] = sd;\n });\n }\n }\n })\n .catch((error) => {\n console.error('加载角色机构失败:', error);\n });\n return roleOrgData;\n };\n\n const editOrg = async (row: RoleItem) => {\n editRolePermId.value = row.adRoleId;\n modalTitle.value = '分配 ' + row.name + ' 的组织机构权限';\n const roleOrgDataResult = await loadRoleOrg();\n httpRequest\n .post('/orgController/getUserOrgTree', {})\n .then((response: any) => {\n if (response.data.result) {\n const newTreeData: TreeNode[] = [];\n deptCheckedKeys.value = [];\n response.data.list.forEach((e: any) => {\n newTreeData.push(parseOrgTreeData(e, 0, roleOrgDataResult));\n });\n orgData.value = newTreeData;\n nextTick(() => {\n depTreeRef.value?.setCheckedKeys(deptCheckedKeys.value);\n });\n }\n })\n .catch((error) => {\n console.error('获取机构树失败:', error);\n });\n orgModalVisible.value = true;\n };\n\n const checkOrgTree = () => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n deptCheckedKeys.value = depTreeRef.value?.getCheckedKeys() || [];\n }, 300);\n };\n\n const submitRoleOrg = () => {\n const selectedNodes = depTreeRef.value?.getCheckedKeys() || [];\n const subRoleOrgData: any[] = [];\n selectedNodes.forEach((e: string) => {\n subRoleOrgData.push({ad_org_id: e, is_org_admin: 'Y'});\n });\n httpRequest\n .post('/roleController/saveRoleOrgAccess', {\n roleId: editRolePermId.value,\n subJsonData: JSON.stringify(subRoleOrgData),\n })\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(response.data.msg);\n orgModalVisible.value = false;\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交角色机构失败:', error);\n ElMessage.error('提交失败,请稍后重试');\n });\n };\n\n // ==================== 生命周期 ====================\n\n onMounted(() => {\n init();\n });\n</script>\n\n<style lang=\"scss\">\n .ver-container {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n .ver-col {\n flex: 1;\n width: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .operation {\n display: flex;\n padding: 8px 16px;\n }\n .el-table {\n flex: 1;\n overflow: hidden;\n }\n\n .select-count {\n font-weight: 600;\n color: #40a9ff;\n }\n\n .select-clear {\n margin-left: 10px;\n }\n\n .page {\n margin-top: 2vh;\n }\n\n .drop-down {\n margin-left: 5px;\n }\n\n .el-pagination {\n padding: 20px 0 0;\n justify-content: flex-end;\n }\n\n .el-drawer__header {\n margin-bottom: 20px;\n }\n\n .el-drawer__body {\n box-sizing: border-box;\n padding: 0 16px 10px;\n overflow: hidden;\n\n .el-row {\n height: 100%;\n overflow: visible;\n\n .el-card__header,\n .ivu-card-head {\n padding: 5px 10px;\n }\n\n .el-card__body {\n padding: 7px 10px;\n }\n }\n }\n }\n }\n\n .tree-list {\n position: relative;\n min-height: 80px;\n }\n\n .drawer-footer {\n z-index: 10;\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n border-top: 1px solid #e8e8e8;\n padding: 10px 16px;\n text-align: left;\n background: #fff;\n }\n\n .drawer-content {\n overflow: auto;\n }\n\n .drawer-header {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n font-size: 16px;\n color: rgba(0, 0, 0, 0.85);\n }\n\n .drawer-title {\n font-size: 16px;\n color: rgba(0, 0, 0, 0.85);\n display: block;\n margin-bottom: 16px;\n }\n\n .permModal :deep(.ivu-modal-body) {\n max-height: 560px;\n overflow: auto;\n }\n\n .depModal :deep(.ivu-modal-body) {\n max-height: 500px;\n overflow: auto;\n }\n\n // 按钮权限区域滚动条样式与菜单权限树保持一致\n .custom-scrollbar {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #0003;\n border-radius: 10px;\n transition: all 0.2s ease-in-out;\n }\n\n &::-webkit-scrollbar-track {\n border-radius: 10px;\n background: transparent;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background-color: #8883;\n }\n }\n }\n</style>\n"],"names":["loading","ref","dataList","pagination","reactive","searchKey","tableRef","roleModalVisible","modalTitle","submitLoading","roleFormRef","roleForm","permModalVisible","treeLoading","permData","editRolePermId","treeRef","curSelectedMenuId","curWindowBtnList","roleSavedBtnPermMap","selectedNodes","halfSelectedNodes","submitPermLoading","orgModalVisible","orgData","depTreeRef","deptCheckedKeys","submitDepLoading","selectList","timer","roleFormValidate","ct","init","getDataList","httpRequest","response","error","ElMessage","addRole","edit","row","submitRole","_a","valid","subForm","cancelRole","deleteRole","delId","clearSelectAll","remove","handleSelectionChange","selection","item","delAll","ids","parseTreeData","curLevelData","curLevel","sonTreeData","getRoleMenus","roleMenuData","e","calNewTreeData","newTreeData","checkedCount","sonCheckedCount","getPermList","deleteDisableNode","nextTick","checked","editPerm","roleBtnPermMap","selectTree","data","result","responseData","roleBtnData","tempQyBtnData","tData","group","index","roleSavedBtns","checkChilds","tcount","es","checkedMenuTree","_b","handleCheckAll","key","child","updateBtnsToList","checkAllGroupChange","event","currentItem","containFlag","okCount","i","btns","checkId","submitPermEdit","permMenuIds","permMenuBtnIds","cancelPermEdit","parseOrgTreeData","roleOrgData","newLevelData","loadRoleOrg","sd","editOrg","roleOrgDataResult","checkOrgTree","submitRoleOrg","subRoleOrgData","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_unref","_createVNode","_component_el_input","$event","_hoisted_5","_hoisted_6","_component_el_button","YhIcon","_createTextVNode","_component_el_popconfirm","_createBlock","_component_el_table","_component_el_table_column","_withCtx","scope","_component_el_pagination","_cache","_component_el_dialog","_component_el_form","_component_el_form_item","Dict","_component_el_switch","_component_el_drawer","_component_el_row","_component_el_col","_component_el_tree","_hoisted_7","_hoisted_8","_hoisted_9","_Fragment","_renderList","_component_el_card","_component_el_checkbox","_component_el_checkbox_group","_component_el_empty","_component_el_alert","_hoisted_10","_hoisted_11"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RoleManage-0zwj9Ew3.js","sources":["../components/business/system/RoleManage.vue"],"sourcesContent":["<template>\n <div class=\"ver-container\">\n <div class=\"ver-col\">\n <div class=\"operation\">\n <div style=\"padding: 5px 15px 5px 2px; font-size: 13px\">{{ ct('角色名称') }}</div>\n <el-input\n v-model=\"searchKey\"\n @change=\"getDataList\"\n :placeholder=\"ct('输入关键词搜索')\"\n style=\"width: 300px; margin-left: 12px\"\n clearable />\n </div>\n <div class=\"operation\">\n <div style=\"padding: 5px 15px 5px 2px; font-size: 18px; font-weight: bold\">{{ ct('角色管理') }}</div>\n <el-button\n @click=\"addRole\"\n type=\"primary\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"plus\"></YhIcon>\n {{ ct('添加角色') }}\n </el-button>\n <el-popconfirm\n :title=\"ct('确定要删除所选的角色吗?')\"\n :ok-text=\"ct('删除')\"\n :cancel-text=\"ct('取消')\"\n @confirm=\"delAll\"\n style=\"margin-left: 12px\">\n <template #reference>\n <el-button>\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"delete\"></YhIcon>\n {{ ct('批量删除') }}\n </el-button>\n </template>\n </el-popconfirm>\n <el-button\n @click=\"getDataList\"\n style=\"margin-left: 12px\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"refresh\"></YhIcon>\n {{ ct('刷新') }}\n </el-button>\n </div>\n <el-table\n v-loading=\"loading\"\n row-key=\"adRoleId\"\n :data=\"dataList\"\n ref=\"tableRef\"\n highlight-current-row\n @selection-change=\"handleSelectionChange\"\n :header-cell-style=\"{background: '#f8f8f8', color: '#606266', fontSize: '13px'}\"\n stripe>\n <el-table-column\n type=\"selection\"\n width=\"50\"\n align=\"center\"></el-table-column>\n <el-table-column\n :label=\"ct('#')\"\n width=\"50\">\n <template #default=\"scope\">{{ scope.$index + 1 }}</template>\n </el-table-column>\n <el-table-column\n :label=\"ct('所属机构')\"\n min-width=\"150\"\n prop=\"orgName\"></el-table-column>\n <el-table-column\n :label=\"ct('角色名称')\"\n min-width=\"300\"\n prop=\"name\"></el-table-column>\n <el-table-column\n :label=\"ct('角色管理员')\"\n min-width=\"150\"\n prop=\"isAdmin\"></el-table-column>\n <el-table-column\n :label=\"ct('备注')\"\n min-width=\"200\"\n prop=\"description\"></el-table-column>\n <el-table-column\n width=\"350\"\n :label=\"ct('操作')\">\n <template #default=\"{row}\">\n <el-button\n size=\"small\"\n type=\"primary\"\n @click=\"editPerm(row)\">\n {{ ct('菜单权限') }}\n </el-button>\n <el-button\n size=\"small\"\n type=\"success\"\n @click=\"editOrg(row)\">\n {{ ct('角色机构') }}\n </el-button>\n <el-button\n size=\"small\"\n type=\"info\"\n @click=\"edit(row)\">\n {{ ct('编辑') }}\n </el-button>\n <el-popconfirm\n :title=\"ct('你确定要删除吗')\"\n :ok-text=\"ct('确定')\"\n :cancel-text=\"ct('取消')\"\n @confirm=\"remove(row)\">\n <template #reference>\n <el-button\n title=\"删除\"\n size=\"small\"\n type=\"danger\">\n {{ ct('删除') }}\n </el-button>\n </template>\n </el-popconfirm>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n v-model:current-page=\"pagination.currentPage\"\n v-model:page-size=\"pagination.pageSize\"\n :page-sizes=\"[10, 30, 50, 100]\"\n layout=\"prev, pager, next, sizes, total, jumper\"\n :total=\"pagination.total\"\n @size-change=\"getDataList\"\n @current-change=\"getDataList\" />\n <!-- 编辑 -->\n <el-dialog\n :title=\"modalTitle\"\n v-model=\"roleModalVisible\"\n :close-on-click-modal=\"false\"\n @close=\"cancelRole\"\n :width=\"500\">\n <el-form\n ref=\"roleFormRef\"\n :model=\"roleForm\"\n :label-width=\"100\"\n :rules=\"roleFormValidate\">\n <el-form-item\n :label=\"ct('组织机构')\"\n prop=\"ad_org_id\">\n <Dict\n dict=\"ad_org_id\"\n url=\"/orgController/getGroupOrgs\"\n v-model=\"roleForm.adOrgId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('角色名称')\"\n prop=\"name\">\n <el-input\n v-model=\"roleForm.name\"\n :placeholder=\"ct('请输入')\" />\n </el-form-item>\n <el-form-item label=\"角色管理员\">\n <el-switch\n v-model=\"roleForm.isAdmin\"\n active-value=\"Y\"\n inactive-value=\"N\"\n size=\"large\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('备注')\"\n prop=\"description\">\n <el-input v-model=\"roleForm.description\" />\n </el-form-item>\n </el-form>\n <template #footer>\n <el-button\n text\n @click=\"cancelRole\">\n {{ ct('取消') }}\n </el-button>\n <el-button\n type=\"primary\"\n :loading=\"submitLoading\"\n @click=\"submitRole\">\n {{ ct('提交') }}\n </el-button>\n </template>\n </el-dialog>\n <!-- 菜单权限 -->\n <el-drawer\n :title=\"modalTitle\"\n v-model=\"permModalVisible\"\n :close-on-click-modal=\"false\"\n :width=\"800\"\n @close=\"cancelPermEdit\">\n <el-row :gap=\"10\">\n <el-col\n :span=\"12\"\n style=\"overflow: auto; height: 100%\">\n <el-tree\n ref=\"treeRef\"\n v-loading=\"treeLoading\"\n :data=\"permData\"\n :props=\"{label: 'title'}\"\n show-checkbox\n default-expand-all\n node-key=\"adMenuId\"\n :check-on-click-leaf=\"false\"\n :expand-on-click-node=\"false\"\n :highlight-current=\"true\"\n @current-change=\"selectTree\"\n @check-change=\"checkedMenuTree\"></el-tree>\n </el-col>\n <el-col\n :span=\"12\"\n style=\"overflow: auto; height: 100%\">\n <div class=\"ivu-card-head\"><p style=\"margin-bottom: 0px\">{{ ct('按钮权限') }}</p></div>\n <div\n style=\"padding: 0 10px\"\n class=\"custom-scrollbar\">\n <el-card\n v-for=\"(item, key) in curWindowBtnList\"\n :key=\"key\"\n shadow=\"never\"\n style=\"margin-top: 5px\">\n <template #header>\n {{ item.NAME }}\n <el-checkbox\n style=\"margin-left: 10px\"\n :indeterminate=\"item.indeterminate\"\n v-model=\"item.checkAll\"\n @change=\"handleCheckAll(item, key)\">\n {{ ct('全选') }}\n </el-checkbox>\n </template>\n <el-checkbox-group\n v-model=\"item.checkChilds\"\n @change=\"checkAllGroupChange($event, key)\">\n <el-checkbox\n v-for=\"child in item.childs\"\n :key=\"child.ID\"\n :label=\"child.ID\">\n {{ child.NAME }}\n </el-checkbox>\n </el-checkbox-group>\n </el-card>\n <el-empty\n :description=\"ct('暂无按钮权限数据')\"\n v-if=\"curWindowBtnList.length === 0\"></el-empty>\n </div>\n </el-col>\n </el-row>\n <template #footer>\n <el-button\n type=\"primary\"\n :loading=\"submitPermLoading\"\n @click=\"submitPermEdit\">\n {{ ct('提交') }}\n </el-button>\n <el-button\n text\n @click=\"cancelPermEdit\">\n {{ ct('取消') }}\n </el-button>\n </template>\n </el-drawer>\n <!-- 角色机构所属 -->\n <el-dialog\n :title=\"modalTitle\"\n v-model=\"orgModalVisible\"\n :close-on-click-modal=\"false\"\n :width=\"400\"\n class=\"depModal yh-el-dialog\">\n <el-alert\n show-icon\n :title=\"ct('请勾选下方组织机构,选中复选框为角色管理员')\"></el-alert>\n <div style=\"margin-top: 15px; min-height: 300px\">\n <div style=\"position: relative\">\n <el-tree\n ref=\"depTreeRef\"\n :data=\"orgData\"\n :props=\"{label: 'title'}\"\n show-checkbox\n default-expand-all\n node-key=\"adOrgId\"\n :check-on-click-leaf=\"true\"\n :expand-on-click-node=\"false\"\n :highlight-current=\"true\"\n check-strictly\n v-model=\"deptCheckedKeys\"\n @check-change=\"checkOrgTree\"></el-tree>\n </div>\n </div>\n <template #footer>\n <el-button\n type=\"primary\"\n :loading=\"submitDepLoading\"\n @click=\"submitRoleOrg\">\n {{ ct('提交') }}\n </el-button>\n <el-button\n text\n @click=\"orgModalVisible = false\">\n {{ ct('取消') }}\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, reactive, onMounted, nextTick} from 'vue';\n import {ElMessage} from 'element-plus';\n import type {FormInstance, FormRules} from 'element-plus';\n import {httpRequest} from 'yh-client';\n import YhIcon from '../../common/basic/YhIcon.vue';\n import Dict from './Dict.vue';\n import {ct} from '../../../utils/i18nHelp';\n\n defineOptions({\n name: 'RoleManage',\n });\n\n // ==================== 类型定义 ====================\n\n interface RoleForm {\n adRoleId: string;\n adOrgId: string;\n name: string;\n isAdmin: 'Y' | 'N';\n description: string;\n }\n\n interface RoleItem {\n adRoleId: string;\n adOrgId: string;\n name: string;\n isAdmin: string;\n description: string;\n orgName: string;\n }\n\n interface MenuPermData {\n adMenuId: string;\n name: string;\n sysWindowId: string;\n status: number;\n _childs?: MenuPermData[];\n [key: string]: any;\n }\n\n interface ButtonGroup {\n ID: string;\n NAME: string;\n checkAll: boolean;\n indeterminate: boolean;\n checkChilds: string[];\n childs: ButtonItem[];\n }\n\n interface ButtonItem {\n ID: string;\n NAME: string;\n PARENT_ID: string;\n }\n\n interface TreeNode {\n key: string;\n title: string;\n level: number;\n data: any;\n children?: TreeNode[];\n [key: string]: any;\n }\n\n interface Pagination {\n currentPage: number;\n pageSize: number;\n total: number;\n }\n\n // ==================== 响应式数据 ====================\n\n // 列表相关\n const loading = ref(false);\n const dataList = ref<RoleItem[]>([]);\n const pagination = reactive<Pagination>({\n currentPage: 1,\n pageSize: 10,\n total: 0,\n });\n const searchKey = ref('');\n const tableRef = ref();\n\n // 表单弹窗\n const roleModalVisible = ref(false);\n const modalTitle = ref('');\n const submitLoading = ref(false);\n const roleFormRef = ref<FormInstance>();\n const roleForm = ref<RoleForm>({\n adRoleId: '',\n adOrgId: '',\n name: '',\n isAdmin: 'N',\n description: '',\n });\n\n // 菜单权限抽屉\n const permModalVisible = ref(false);\n const treeLoading = ref(false);\n const permData = ref<MenuPermData[]>([]);\n const editRolePermId = ref('');\n const treeRef = ref();\n const curSelectedMenuId = ref('');\n const curWindowBtnList = ref<ButtonGroup[]>([]);\n const roleSavedBtnPermMap = ref<Record<string, string[]>>({});\n const selectedNodes = ref<string[]>([]);\n const halfSelectedNodes = ref<string[]>([]);\n const submitPermLoading = ref(false);\n\n // 角色机构弹窗\n const orgModalVisible = ref(false);\n const orgData = ref<TreeNode[]>([]);\n const depTreeRef = ref();\n const deptCheckedKeys = ref<string[]>([]);\n const submitDepLoading = ref(false);\n\n const selectList = ref<string[]>([]);\n let timer: number | null = null;\n\n // ==================== 表单验证规则 ====================\n\n const roleFormValidate: FormRules<RoleForm> = {\n adOrgId: [{required: true, message: ct('组织机构不能为空'), trigger: 'change'}],\n name: [{required: true, message: ct('角色名称不能为空'), trigger: 'change'}],\n };\n\n // ==================== 列表相关方法 ====================\n\n const init = () => {\n getDataList();\n };\n\n const getDataList = () => {\n loading.value = true;\n httpRequest\n .post('/roleController/getRoleList', {\n name: searchKey.value,\n pageSize: pagination.pageSize,\n pageIndex: pagination.currentPage,\n })\n .then((response: any) => {\n if (response.data.result) {\n dataList.value = response.data.data.records;\n pagination.total = response.data.data.total;\n }\n })\n .catch((error) => {\n console.error('获取角色列表失败:', error);\n ElMessage.error(ct('获取角色列表失败'));\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n // ==================== 角色编辑相关方法 ====================\n\n const addRole = () => {\n modalTitle.value = '添加角色';\n roleForm.value.adRoleId = '';\n roleForm.value.name = '';\n roleForm.value.isAdmin = 'N';\n roleForm.value.description = '';\n roleForm.value.adOrgId = '';\n roleModalVisible.value = true;\n };\n\n const edit = (row: RoleItem) => {\n modalTitle.value = '编辑角色';\n roleForm.value.adOrgId = row.adOrgId;\n roleForm.value.name = row.name;\n roleForm.value.isAdmin = row.isAdmin as 'Y' | 'N';\n roleForm.value.description = row.description;\n roleForm.value.adRoleId = row.adRoleId;\n roleModalVisible.value = true;\n };\n\n const submitRole = () => {\n roleFormRef.value?.validate((valid) => {\n if (valid) {\n submitLoading.value = true;\n const subForm = {\n orgId: roleForm.value.adOrgId,\n adRoleId: roleForm.value.adRoleId,\n name: roleForm.value.name,\n description: roleForm.value.description,\n isAdmin: roleForm.value.isAdmin,\n };\n httpRequest\n .post('/roleController/submitRole', subForm)\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(ct('操作成功'));\n getDataList();\n roleModalVisible.value = false;\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交角色失败:', error);\n ElMessage.error(ct('提交失败,请稍后重试'));\n })\n .finally(() => {\n submitLoading.value = false;\n });\n }\n });\n };\n\n const cancelRole = () => {\n roleModalVisible.value = false;\n };\n\n const deleteRole = (delId: string) => {\n httpRequest\n .post('/roleController/delRoleByIds', {ids: delId})\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(ct('删除成功'));\n clearSelectAll();\n getDataList();\n } else {\n ElMessage.error(ct('删除失败'));\n }\n })\n .catch((error) => {\n console.error('删除角色失败:', error);\n ElMessage.error(ct('删除失败,请稍后重试'));\n });\n };\n\n const remove = (row: RoleItem) => {\n if (row && row.adRoleId) {\n deleteRole(row.adRoleId);\n }\n };\n\n const handleSelectionChange = (selection: RoleItem[]) => {\n selectList.value = selection.map(item => item.adRoleId);\n };\n\n const clearSelectAll = () => {\n selectList.value = [];\n tableRef.value?.clearSelection();\n };\n\n const delAll = () => {\n if (selectList.value.length <= 0) {\n ElMessage.warning(ct('您还未选择要删除的数据'));\n return;\n }\n const ids = selectList.value.join(',');\n deleteRole(ids);\n };\n\n // ==================== 菜单权限相关方法 ====================\n\n const parseTreeData = (curLevelData: MenuPermData[], curLevel: number): MenuPermData[] => {\n curLevelData.forEach((item) => {\n item.id = item.adMenuId;\n item.key = item.adMenuId;\n item.title = item.name;\n item.expand = true;\n item.checked = false;\n item.level = curLevel;\n if (item['_childs'] && item['_childs'].length > 0) {\n if (!item.children) {\n item.children = [];\n }\n item['_childs'].forEach((sonTreeData) => {\n item.children!.push(parseTreeData([sonTreeData], curLevel + 1)[0]);\n });\n }\n });\n return curLevelData;\n };\n\n const getRoleMenus = async (): Promise<Record<string, any>> => {\n const roleMenuData: Record<string, any> = {};\n await httpRequest\n .post('/rolePermissionsSetting/getRoleMenus', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result) {\n response.data.data.forEach((e: any) => {\n roleMenuData[e.AD_MENU_ID] = e;\n });\n }\n })\n .catch((error) => {\n console.error('获取角色菜单失败:', error);\n });\n return roleMenuData;\n };\n\n const calNewTreeData = (\n newTreeData: MenuPermData[],\n roleMenuData: Record<string, any>\n ): number => {\n let checkedCount = 0;\n newTreeData.forEach((e) => {\n e.expand = true;\n if (roleMenuData[e.adMenuId]) {\n e.checked = true;\n checkedCount++;\n }\n if (e.children && e.children.length > 0) {\n const sonCheckedCount = calNewTreeData(e.children, roleMenuData);\n if (sonCheckedCount === e.children.length) {\n e.checked = true;\n e.indeterminate = false;\n } else if (sonCheckedCount > 0 && sonCheckedCount < e.children.length) {\n e.indeterminate = true;\n e.checked = false;\n } else {\n e.checked = false;\n e.indeterminate = false;\n }\n if (e.checked) {\n halfSelectedNodes.value.push(e.adMenuId);\n }\n if (e.checked) {\n selectedNodes.value.push(e.adMenuId);\n }\n } else {\n if (e.checked) {\n selectedNodes.value.push(e.adMenuId);\n }\n }\n });\n return checkedCount;\n };\n\n const getPermList = async () => {\n treeLoading.value = true;\n selectedNodes.value = [];\n halfSelectedNodes.value = [];\n\n const roleMenuData = await getRoleMenus();\n httpRequest\n .post('/rolePermissionsSetting/getMenuList', {})\n .then((response: any) => {\n if (response.data.result) {\n let newTreeData: MenuPermData[] = [];\n response.data.menuList.forEach((e: MenuPermData) => {\n newTreeData.push(parseTreeData([e], 0)[0]);\n });\n calNewTreeData(newTreeData, roleMenuData);\n deleteDisableNode(newTreeData);\n permData.value = newTreeData;\n treeLoading.value = false;\n\n nextTick(() => {\n const checked = selectedNodes.value.filter(\n (item) => !halfSelectedNodes.value.includes(item)\n );\n treeRef.value?.setCheckedKeys(checked);\n });\n }\n })\n .catch((error) => {\n console.error('获取菜单列表失败:', error);\n ElMessage.error(ct('获取菜单列表失败'));\n treeLoading.value = false;\n });\n };\n\n const deleteDisableNode = (permData: MenuPermData[]) => {\n permData.forEach((e) => {\n if (e.status === -1) {\n e.title = '[已禁用] ' + e.title;\n e.disabled = true;\n }\n if (e.children && e.children.length > 0) {\n deleteDisableNode(e.children);\n }\n });\n };\n\n const editPerm = (row: RoleItem) => {\n editRolePermId.value = row.adRoleId;\n modalTitle.value = '分配 ' + row.name + ' 的菜单权限';\n getPermList();\n httpRequest\n .post('/roleController/getRoleWindowButton', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result && response.data.data) {\n const roleBtnPermMap: Record<string, string[]> = {};\n response.data.data.forEach((e: any) => {\n if (!roleBtnPermMap[e.WINDOW_ID]) {\n roleBtnPermMap[e.WINDOW_ID] = [];\n }\n roleBtnPermMap[e.WINDOW_ID].push(e.BUTTON_ID);\n });\n roleSavedBtnPermMap.value = roleBtnPermMap;\n }\n });\n permModalVisible.value = true;\n };\n\n const selectTree = (data: MenuPermData | null) => {\n if (data) {\n curSelectedMenuId.value = data.sysWindowId;\n httpRequest\n .post('/rolePermissionsSetting/getMenuWindowButton', {windowId: curSelectedMenuId.value})\n .then((response: any) => {\n const {result, data: responseData} = response.data;\n if (result && responseData) {\n const roleBtnData: ButtonGroup[] = [];\n const tempQyBtnData: Record<string, ButtonItem[]> = {};\n responseData.forEach((tData: any) => {\n if (tData.TYPE === 'QY') {\n const group: ButtonGroup = {\n ID: tData.ID,\n NAME: tData.NAME,\n checkAll: false,\n indeterminate: false,\n checkChilds: [],\n childs: [],\n };\n roleBtnData.push(group);\n tempQyBtnData[tData.ID] = [];\n } else {\n if (tempQyBtnData[tData.PARENT_ID]) {\n tempQyBtnData[tData.PARENT_ID].push(tData);\n }\n }\n });\n roleBtnData.forEach((item, index) => {\n roleBtnData[index].childs = tempQyBtnData[item.ID] || [];\n const roleSavedBtns = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n const checkChilds: string[] = [];\n let tcount = 0;\n roleBtnData[index].childs.forEach((es) => {\n if (roleSavedBtns.includes(es.ID)) {\n checkChilds.push(es.ID);\n tcount++;\n }\n });\n if (tcount === roleBtnData[index].childs.length) {\n roleBtnData[index].checkAll = true;\n roleBtnData[index].indeterminate = false;\n } else if (tcount > 0) {\n roleBtnData[index].checkAll = false;\n roleBtnData[index].indeterminate = true;\n } else {\n roleBtnData[index].checkAll = false;\n roleBtnData[index].indeterminate = false;\n }\n roleBtnData[index].checkChilds = checkChilds;\n });\n curWindowBtnList.value = roleBtnData;\n }\n })\n .catch((error) => {\n console.error('获取按钮权限失败:', error);\n });\n }\n };\n\n const checkedMenuTree = () => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n selectedNodes.value = treeRef.value?.getCheckedKeys(true) || [];\n halfSelectedNodes.value = treeRef.value?.getHalfCheckedKeys(true) || [];\n }, 300);\n };\n\n const handleCheckAll = (item: ButtonGroup, key: number) => {\n let checkChilds: string[] = [];\n if (!item.checkAll) {\n item.checkAll = false;\n item.indeterminate = false;\n } else {\n checkChilds = item.childs.map((child) => child.ID);\n item.checkAll = true;\n item.indeterminate = false;\n }\n item.checkChilds = checkChilds;\n updateBtnsToList();\n curWindowBtnList.value[key] = item;\n };\n\n const checkAllGroupChange = (event: string[], key: number) => {\n const currentItem = {...curWindowBtnList.value[key]};\n if (event.length > 0) {\n let containFlag = 0;\n let okCount = 0;\n for (let i = 0; i < currentItem.childs.length; i++) {\n if (event.includes(currentItem.childs[i].ID)) {\n okCount++;\n }\n }\n if (okCount === currentItem.childs.length) {\n containFlag = 2;\n } else {\n containFlag = 1;\n }\n if (containFlag === 1) {\n currentItem.checkAll = false;\n currentItem.indeterminate = okCount === 0 ? false : true;\n } else if (containFlag === 2) {\n currentItem.checkAll = true;\n currentItem.indeterminate = false;\n }\n } else {\n currentItem.checkAll = false;\n currentItem.indeterminate = false;\n }\n currentItem.checkChilds = event;\n curWindowBtnList.value[key] = currentItem;\n updateBtnsToList();\n };\n\n const updateBtnsToList = () => {\n const btns = new Set<string>();\n curWindowBtnList.value.forEach((item) => {\n item.checkChilds.forEach((checkId) => {\n btns.add(checkId);\n });\n });\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = Array.from(btns);\n };\n\n const submitPermEdit = () => {\n submitPermLoading.value = true;\n const permMenuIds = selectedNodes.value.concat(halfSelectedNodes.value).join(',');\n const permMenuBtnIds: Record<string, string[]> = {};\n Object.keys(roleSavedBtnPermMap.value).forEach((key) => {\n permMenuBtnIds['W_' + key] = roleSavedBtnPermMap.value[key];\n });\n httpRequest\n .post('/rolePermissionsSetting/setMenus', {\n roleId: editRolePermId.value,\n ids: permMenuIds,\n btns: JSON.stringify(permMenuBtnIds),\n })\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success('操作成功');\n getDataList();\n permModalVisible.value = false;\n cancelPermEdit();\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交权限失败:', error);\n ElMessage.error('提交失败,请稍后重试');\n })\n .finally(() => {\n submitPermLoading.value = false;\n });\n };\n\n const cancelPermEdit = () => {\n selectedNodes.value = [];\n halfSelectedNodes.value = [];\n roleSavedBtnPermMap.value = {};\n curWindowBtnList.value = [];\n permModalVisible.value = false;\n };\n\n // ==================== 角色机构相关方法 ====================\n\n const parseOrgTreeData = (\n curLevelData: any,\n curLevel: number,\n roleOrgData: Record<string, any>\n ): TreeNode => {\n const newLevelData = {...curLevelData};\n newLevelData.key = curLevelData.adOrgId;\n newLevelData.title = curLevelData.name;\n if (roleOrgData[curLevelData.adOrgId]) {\n if (roleOrgData[curLevelData.adOrgId].isOrgAdmin === 'Y') {\n deptCheckedKeys.value.push(curLevelData.adOrgId);\n }\n }\n newLevelData.level = curLevel;\n if (curLevelData['_childs'] && curLevelData['_childs'].length > 0) {\n curLevelData['_childs'].forEach((sonTreeData: any) => {\n if (!newLevelData.children) {\n newLevelData.children = [];\n }\n newLevelData.children.push(parseOrgTreeData(sonTreeData, curLevel + 1, roleOrgData));\n });\n }\n return newLevelData;\n };\n\n const loadRoleOrg = async (): Promise<Record<string, any>> => {\n const roleOrgData: Record<string, any> = {};\n await httpRequest\n .post('/roleController/getRoleOrgAccess', {roleId: editRolePermId.value})\n .then((response: any) => {\n if (response.data.result) {\n if (response.data.roleOrgAccess) {\n response.data.roleOrgAccess.forEach((sd: any) => {\n roleOrgData[sd.orgId] = sd;\n });\n }\n }\n })\n .catch((error) => {\n console.error('加载角色机构失败:', error);\n });\n return roleOrgData;\n };\n\n const editOrg = async (row: RoleItem) => {\n editRolePermId.value = row.adRoleId;\n modalTitle.value = '分配 ' + row.name + ' 的组织机构权限';\n const roleOrgDataResult = await loadRoleOrg();\n httpRequest\n .post('/orgController/getUserOrgTree', {})\n .then((response: any) => {\n if (response.data.result) {\n const newTreeData: TreeNode[] = [];\n deptCheckedKeys.value = [];\n response.data.list.forEach((e: any) => {\n newTreeData.push(parseOrgTreeData(e, 0, roleOrgDataResult));\n });\n orgData.value = newTreeData;\n nextTick(() => {\n depTreeRef.value?.setCheckedKeys(deptCheckedKeys.value);\n });\n }\n })\n .catch((error) => {\n console.error('获取机构树失败:', error);\n });\n orgModalVisible.value = true;\n };\n\n const checkOrgTree = () => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n deptCheckedKeys.value = depTreeRef.value?.getCheckedKeys() || [];\n }, 300);\n };\n\n const submitRoleOrg = () => {\n const selectedNodes = depTreeRef.value?.getCheckedKeys() || [];\n const subRoleOrgData: any[] = [];\n selectedNodes.forEach((e: string) => {\n subRoleOrgData.push({ad_org_id: e, is_org_admin: 'Y'});\n });\n httpRequest\n .post('/roleController/saveRoleOrgAccess', {\n roleId: editRolePermId.value,\n subJsonData: JSON.stringify(subRoleOrgData),\n })\n .then((response: any) => {\n if (response.data.result) {\n ElMessage.success(response.data.msg);\n orgModalVisible.value = false;\n } else {\n ElMessage.error(response.data.msg);\n }\n })\n .catch((error) => {\n console.error('提交角色机构失败:', error);\n ElMessage.error('提交失败,请稍后重试');\n });\n };\n\n // ==================== 生命周期 ====================\n\n onMounted(() => {\n init();\n });\n</script>\n\n<style lang=\"scss\">\n .ver-container {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n .ver-col {\n flex: 1;\n width: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .operation {\n display: flex;\n padding: 8px 16px;\n }\n .el-table {\n flex: 1;\n overflow: hidden;\n }\n\n .select-count {\n font-weight: 600;\n color: #40a9ff;\n }\n\n .select-clear {\n margin-left: 10px;\n }\n\n .page {\n margin-top: 2vh;\n }\n\n .drop-down {\n margin-left: 5px;\n }\n\n .el-pagination {\n padding: 20px 0 0;\n justify-content: flex-end;\n }\n\n .el-drawer__header {\n margin-bottom: 20px;\n }\n\n .el-drawer__body {\n box-sizing: border-box;\n padding: 0 16px 10px;\n overflow: hidden;\n\n .el-row {\n height: 100%;\n overflow: visible;\n\n .el-card__header,\n .ivu-card-head {\n padding: 5px 10px;\n }\n\n .el-card__body {\n padding: 7px 10px;\n }\n }\n }\n }\n }\n\n .tree-list {\n position: relative;\n min-height: 80px;\n }\n\n .drawer-footer {\n z-index: 10;\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n border-top: 1px solid #e8e8e8;\n padding: 10px 16px;\n text-align: left;\n background: #fff;\n }\n\n .drawer-content {\n overflow: auto;\n }\n\n .drawer-header {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n font-size: 16px;\n color: rgba(0, 0, 0, 0.85);\n }\n\n .drawer-title {\n font-size: 16px;\n color: rgba(0, 0, 0, 0.85);\n display: block;\n margin-bottom: 16px;\n }\n\n .permModal :deep(.ivu-modal-body) {\n max-height: 560px;\n overflow: auto;\n }\n\n .depModal :deep(.ivu-modal-body) {\n max-height: 500px;\n overflow: auto;\n }\n\n // 按钮权限区域滚动条样式与菜单权限树保持一致\n .custom-scrollbar {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #0003;\n border-radius: 10px;\n transition: all 0.2s ease-in-out;\n }\n\n &::-webkit-scrollbar-track {\n border-radius: 10px;\n background: transparent;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background-color: #8883;\n }\n }\n }\n</style>\n"],"names":["loading","ref","dataList","pagination","reactive","searchKey","tableRef","roleModalVisible","modalTitle","submitLoading","roleFormRef","roleForm","permModalVisible","treeLoading","permData","editRolePermId","treeRef","curSelectedMenuId","curWindowBtnList","roleSavedBtnPermMap","selectedNodes","halfSelectedNodes","submitPermLoading","orgModalVisible","orgData","depTreeRef","deptCheckedKeys","submitDepLoading","selectList","timer","roleFormValidate","ct","init","getDataList","httpRequest","response","error","ElMessage","addRole","edit","row","submitRole","_a","valid","subForm","cancelRole","deleteRole","delId","clearSelectAll","remove","handleSelectionChange","selection","item","delAll","ids","parseTreeData","curLevelData","curLevel","sonTreeData","getRoleMenus","roleMenuData","e","calNewTreeData","newTreeData","checkedCount","sonCheckedCount","getPermList","deleteDisableNode","nextTick","checked","editPerm","roleBtnPermMap","selectTree","data","result","responseData","roleBtnData","tempQyBtnData","tData","group","index","roleSavedBtns","checkChilds","tcount","es","checkedMenuTree","_b","handleCheckAll","key","child","updateBtnsToList","checkAllGroupChange","event","currentItem","containFlag","okCount","i","btns","checkId","submitPermEdit","permMenuIds","permMenuBtnIds","cancelPermEdit","parseOrgTreeData","roleOrgData","newLevelData","loadRoleOrg","sd","editOrg","roleOrgDataResult","checkOrgTree","submitRoleOrg","subRoleOrgData","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_unref","_createVNode","_component_el_input","$event","_hoisted_5","_hoisted_6","_component_el_button","YhIcon","_createTextVNode","_component_el_popconfirm","_createBlock","_component_el_table","_component_el_table_column","_withCtx","scope","_component_el_pagination","_cache","_component_el_dialog","_component_el_form","_component_el_form_item","Dict","_component_el_switch","_component_el_drawer","_component_el_row","_component_el_col","_component_el_tree","_hoisted_7","_hoisted_8","_hoisted_9","_Fragment","_renderList","_component_el_card","_component_el_checkbox","_component_el_checkbox_group","_component_el_empty","_component_el_alert","_hoisted_10","_hoisted_11"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as oe, ref as h, watch as ne, resolveComponent as c, openBlock as f, createElementBlock as L, withModifiers as I, normalizeClass as Ve, createElementVNode as N, toDisplayString as d, unref as s, createVNode as a, createCommentVNode as se, reactive as G, computed as X, onMounted as ke, onUnmounted as we, resolveDirective as Ce, Fragment as te, withCtx as n, withKeys as ae, createTextVNode as p, withDirectives as he, createBlock as k, normalizeStyle as Ne } from "vue";
|
|
2
2
|
import { ElMessage as D } from "element-plus";
|
|
3
|
-
import { c as t, _ as Ee } from "./index-
|
|
3
|
+
import { c as t, _ as Ee } from "./index-vgdcf7LB.js";
|
|
4
4
|
import { httpRequest as j } from "yh-client";
|
|
5
5
|
const Ue = { class: "preview-area" }, Oe = ["src"], De = {
|
|
6
6
|
key: 1,
|
|
@@ -730,4 +730,4 @@ const Ue = { class: "preview-area" }, Oe = ["src"], De = {
|
|
|
730
730
|
export {
|
|
731
731
|
Fe as default
|
|
732
732
|
};
|
|
733
|
-
//# sourceMappingURL=SysConfig-
|
|
733
|
+
//# sourceMappingURL=SysConfig-BBvexnOf.js.map
|