{"version":3,"file":"grantResourceForm.mjs","sources":["../../../../../src/pagesDefault/sys/role/grantResourceForm.vue"],"sourcesContent":["<template>\r\n\t<a-drawer title=\"授权资源\" :width=\"drawerWidth\" :visible=\"visible\" :destroy-on-close=\"true\" :show-pagination=\"false\" :body-style=\"{ paddingBottom: '80px' }\" :footer-style=\"{ textAlign: 'right' }\" @close=\"onClose\">\r\n\t\t<a-spin :spinning=\"spinningLoading\">\r\n\t\t\t<a-radio-group v-model:value=\"moduleId\" button-style=\"solid\" style=\"padding-bottom: 10px\">\r\n\t\t\t\t<a-radio-button :key=\"module.id\" v-for=\"module in echoDatalist\" :value=\"module.id\" @click=\"moduleClock(module.id)\">\r\n\t\t\t\t\t<component :is=\"module.icon\" />\r\n\t\t\t\t\t{{ module.title }}</a-radio-button\r\n\t\t\t\t>\r\n\t\t\t</a-radio-group>\r\n\t\t\t<a-table  size=\"middle\" :columns=\"columns\" :data-source=\"loadDatas\" :pagination=\"false\" bordered>\r\n\t\t\t\t<template #bodyCell=\"{ column, record }\">\r\n\t\t\t\t\t<template v-if=\"column.dataIndex === 'parentName'\">\r\n\t\t\t\t\t\t<a-checkbox :checked=\"record.parentCheck\" @update:checked=\"(val) => changeParent(record, val)\">\r\n\t\t\t\t\t\t\t{{ record.parentName }}\r\n\t\t\t\t\t\t</a-checkbox>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t\t<template v-if=\"column.dataIndex === 'title'\">\r\n\t\t\t\t\t\t<a-checkbox :checked=\"record.nameCheck\" @update:checked=\"(val) => changeSub(record, val)\">{{ record.title }}</a-checkbox>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t\t<template v-if=\"column.dataIndex === 'button'\">\r\n\t\t\t\t\t\t<template v-if=\"record.button.length > 0\">\r\n\t\t\t\t\t\t\t<template v-for=\"(item, index) in record.button\" :key=\"item.id\">\r\n\t\t\t\t\t\t\t\t<a-checkbox v-model:checked=\"item.check\" @change=\"(evt) => changeChildCheckBox(record, evt)\">{{ item.title }}</a-checkbox>\r\n\t\t\t\t\t\t\t\t<br v-if=\"(index + 1) % 5 === 0\" />\r\n\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</template>\r\n\t\t\t</a-table>\r\n\t\t</a-spin>\r\n\t\t<template #footer>\r\n\t\t\t<a-button style=\"margin-right: 8px\" @click=\"onClose\">关闭</a-button>\r\n\t\t\t<a-button type=\"primary\" :loading=\"submitLoading\" @click=\"onSubmit\">保存</a-button>\r\n\t\t</template>\r\n\t</a-drawer>\r\n</template>\r\n<script setup name=\"grantResourceForm\">\r\nimport {nextTick} from 'vue'\r\nimport {tool,getSysMenuDefault} from 'elead-ui-tool-v3'\r\nimport roleApi from '@/api/sys/roleApi'\r\nimport userCenterApi from '@/api/sys/userCenterApi'\r\nconst spinningLoading = ref(false)\r\n\tlet firstShowMap = ref({})\r\n\tconst emit = defineEmits({ successful: null })\r\n\tconst submitLoading = ref(false)\r\n\t// 抽屉的宽度\r\n\tconst drawerWidth = 1000\r\n\t// 自动获取宽度，默认获取浏览器的宽度的90%\r\n\t//(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) * 0.9\r\n\tconst columns = [\r\n\t\t{\r\n\t\t\tkey: 'parentName',\r\n\t\t\ttitle: '一级目录',\r\n\t\t\tdataIndex: 'parentName',\r\n\t\t\tcustomCell: (row, index) => {\r\n\t\t\t\tconst parentName = row.parentName\r\n\t\t\t\tconst indexArr = firstShowMap.value[parentName]\r\n\t\t\t\tif (index === indexArr[0]) {\r\n\t\t\t\t\treturn { rowSpan: indexArr.length }\r\n\t\t\t\t}\r\n\t\t\t\treturn { rowSpan: 0 }\r\n\t\t\t},\r\n\t\t\twidth: 150\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'title',\r\n\t\t\ttitle: '菜单',\r\n\t\t\tdataIndex: 'title',\r\n\t\t\twidth: 200\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'button',\r\n\t\t\ttitle: '按钮授权',\r\n\t\t\tdataIndex: 'button',\r\n      width: 150\r\n\t\t}\r\n\t]\r\n\tconst echoDatalist = ref([])\r\n\tconst moduleId = ref('')\r\n\tconst loadDatas = ref([])\r\n\t// 获取数据\r\n\tconst loadData = async () => {\r\n\t\t// firstShowMap = {} // 重置单元格合并映射\r\n\t\t// 如果有数据，我们再不去反复的查询\r\n\t\tif (echoDatalist.value.length > 0) {\r\n\t\t\tlet data = echoDatalist.value.find((f) => f.id === moduleId.value).menu\r\n\t\t\tloadDatas.value = data\r\n\t\t} else {\r\n\t\t\t// 获取表格数据\r\n\t\t\tspinningLoading.value = true\r\n\t\t\tconst res = await roleApi.roleResourceTreeSelector()\r\n\t\t\tconst param = {\r\n\t\t\t\tid: resultDataModel.id\r\n\t\t\t}\r\n\t\t\t// 获取回显数据\r\n\t\t\tconst resEcho = await roleApi.roleOwnResource(param)\r\n\t\t\tspinningLoading.value = false\r\n\t\t\techoDatalist.value = echoModuleData(res, resEcho)\r\n\t\t\tmoduleId.value = res[0].id\r\n\t\t\tloadDatas.value = echoDatalist.value[0].menu\r\n\t\t}\r\n\t}\r\n\tconst checkFieldKeys = ['button']\r\n\tlet visible = ref(false)\r\n\t// 返回的数据模型，最终需要转换成这样\r\n\tlet resultDataModel = {\r\n\t\tid: '',\r\n\t\tgrantInfoList: []\r\n\t}\r\n\t// 打开抽屉\r\n\tconst onOpen = (record) => {\r\n\t\tresultDataModel.id = record.id\r\n\t\tvisible.value = true\r\n\t\tfirstShowMap.value = {}\r\n\t\tloadData()\r\n\t}\r\n\t// 数据转换\r\n\tconst echoModuleData = (data, resEcho) => {\r\n\t\t// 通过应用循环\r\n\t\tdata.forEach((module) => {\r\n\t\t\tif (module.menu) {\r\n\t\t\t\t// 加入回显内容\r\n\t\t\t\tmodule.menu.forEach((item) => {\r\n\t\t\t\t\tconst menueCheck = ref(0)\r\n\t\t\t\t\tif (resEcho.grantInfoList.length > 0) {\r\n\t\t\t\t\t\tresEcho.grantInfoList.forEach((grant) => {\r\n\t\t\t\t\t\t\tif (item.id === grant.menuId) {\r\n\t\t\t\t\t\t\t\tmenueCheck.value++\r\n\t\t\t\t\t\t\t\t// 处理按钮\r\n\t\t\t\t\t\t\t\tif (grant.buttonInfo.length > 0) {\r\n\t\t\t\t\t\t\t\t\tgrant.buttonInfo.forEach((button) => {\r\n\t\t\t\t\t\t\t\t\t\titem.button.forEach((itemButton) => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (button === itemButton.id) {\r\n\t\t\t\t\t\t\t\t\t\t\t\titemButton.check = true\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 回显前面的2个\r\n\t\t\t\t\tif (menueCheck.value > 0) {\r\n\t\t\t\t\t\titem.parentCheck = true\r\n\t\t\t\t\t\titem.nameCheck = true\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t// 排序\r\n\t\t\t\tmodule.menu = module.menu.sort((a, b) => {\r\n\t\t\t\t\treturn a.parentId - b.parentId\r\n\t\t\t\t})\r\n\t\t\t\t// 缓存加入索引\r\n\t\t\t\tmodule.menu.forEach((item, index) => {\r\n\t\t\t\t\t// 下面就是用来知道不同的一级菜单里面有几个二级菜单，以及他们所在的索引\r\n\t\t\t\t\tif (firstShowMap.value[item.parentName]) {\r\n\t\t\t\t\t\tfirstShowMap.value[item.parentName].push(index)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfirstShowMap.value[item.parentName] = [index]\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn data\r\n\t}\r\n\t// 通过应用分菜单\r\n\tconst moduleClock = (value) => {\r\n\t\tmoduleId.value = value\r\n\t\tloadData()\r\n\t}\r\n\t// 遍历字段\r\n\tconst handleOnlySelf = (record, key, val) => {\r\n\t\trecord[key].forEach((item) => {\r\n\t\t\t// 处理'button'选中状态\r\n\t\t\titem.check = val\r\n\t\t})\r\n\t}\r\n\tconst checkAllChildNotChecked = (record) => {\r\n\t\tconst allChecked = checkFieldKeys.every((key) => {\r\n\t\t\t// 遍历所有的字段\r\n\t\t\tconst child = record[key]\r\n\t\t\treturn child.every((field) => !field.check)\r\n\t\t})\r\n\t\treturn allChecked\r\n\t}\r\n\tconst changeChildCheckBox = (record, evt) => {\r\n\t\tlet checked = evt.target.checked\r\n\t\tif (!checked && checkAllChildNotChecked(record)) {\r\n\t\t\t// 这里注释掉勾选去掉所有按钮，联动去掉菜单\r\n\t\t\t/*record.nameCheck = false\r\n\t\trecord.parentCheck = false*/\r\n\t\t} else if (checked) {\r\n\t\t\trecord.nameCheck = checked\r\n\t\t\trecord.parentCheck = checked\r\n\t\t}\r\n\t}\r\n\t// 二级菜单的勾选\r\n\tconst changeSub = (record, val) => {\r\n\t\t// 选中二级菜单\r\n\t\trecord.nameCheck = val\r\n\t\tcheckFieldKeys.forEach((key) => {\r\n\t\t\t// 遍历所有的字段\r\n\t\t\thandleOnlySelf(record, key, val)\r\n\t\t})\r\n\t}\r\n\t// 当点击首列的勾选\r\n\tconst changeParent = (record, val) => {\r\n\t\trecord.parentCheck = val\r\n\t\t// 通过这个应用id，找到应用下的所有菜单\r\n\t\tconst moduleMenu = echoDatalist.value.find((f) => record.module === f.id)\r\n\t\tconst parentName = record.parentName\r\n\t\t// 获取同一级菜单的所有索引\r\n\t\tconst indexArr = firstShowMap.value[parentName]\r\n\t\tindexArr.forEach((indexItem) => {\r\n\t\t\t// 获取同一级菜单的所有行\r\n\t\t\tconst row = moduleMenu.menu[indexItem]\r\n\t\t\t// 给这些菜单的索引去勾选\r\n\t\t\tchangeSub(row, val)\r\n\t\t})\r\n\t}\r\n\t// 关闭抽屉\r\n\tconst onClose = () => {\r\n\t\t// 将这些缓存的给清空\r\n\t\techoDatalist.value = []\r\n\t\tmoduleId.value = ''\r\n\t\tloadDatas.value = []\r\n\t\tfirstShowMap.value = {}\r\n\t\tvisible.value = false\r\n\t}\r\n\t// 提交之前转换数据\r\n\tconst convertData = () => {\r\n\t\tresultDataModel.grantInfoList = []\r\n\t\techoDatalist.value.forEach((table) => {\r\n\t\t\tif (table.menu) {\r\n\t\t\t\ttable.menu.forEach((item) => {\r\n\t\t\t\t\tconst grantInfo = {\r\n\t\t\t\t\t\tmenuId: '',\r\n\t\t\t\t\t\tbuttonInfo: []\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (item.nameCheck) {\r\n\t\t\t\t\t\tgrantInfo.menuId = item.id\r\n\t\t\t\t\t\titem.button.forEach((button) => {\r\n\t\t\t\t\t\t\tif (button.check) {\r\n\t\t\t\t\t\t\t\tgrantInfo.buttonInfo.push(button.id)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tresultDataModel.grantInfoList.push(grantInfo)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn resultDataModel\r\n\t}\r\n\t// 验证并提交数据\r\n\tconst onSubmit = () => {\r\n\t\tconst param = convertData()\r\n\t\tsubmitLoading.value = true\r\n\t\troleApi\r\n\t\t\t.roleGrantResource(param)\r\n\t\t\t.then(() => {\r\n\t\t\t\tonClose()\r\n\t\t\t\temit('successful')\r\n\t\t\t\trefreshCacheMenu()\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tsubmitLoading.value = false\r\n\t\t\t})\r\n\t}\r\n\t// 刷新缓存的菜单\r\n\tconst refreshCacheMenu = () => {\r\n\t\tnextTick(() => {\r\n      getSysMenuDefault({userCenterApi}).then((res) => {\r\n\t\t\t\ttool.data.set('MENU', res)\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\t// 调用这个函数将子组件的一些数据和方法暴露出去\r\n\tdefineExpose({\r\n\t\tonOpen\r\n\t})\r\n</script>\r\n<style scoped>\r\n\t/* 重写复选框的样式 */\r\n\t.ant-checkbox-wrapper {\r\n\t\tmargin-left: 0px !important;\r\n\t\tpadding-top: 2px !important;\r\n\t\tpadding-bottom: 2px !important;\r\n\t}\r\n</style>\r\n"],"names":["_createBlock","_unref","_createVNode","_createElementBlock","_Fragment","_renderList","_resolveDynamicComponent","_toDisplayString","_withCtx","_createTextVNode","_openBlock"],"mappings":"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"}