yh-pub 2.0.2 → 2.0.7
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-W5d0M-rz.js → AdminLogin-BQ1XLQaD.js} +83 -72
- package/AdminLogin-BQ1XLQaD.js.map +1 -0
- package/{Error-BZ9xAkuT.js → Error-mAhb4JTd.js} +2 -2
- package/{Error-BZ9xAkuT.js.map → Error-mAhb4JTd.js.map} +1 -1
- package/Error401-B7NlVttM.js +31 -0
- package/Error401-B7NlVttM.js.map +1 -0
- package/Error404-Ba9ueMHc.js +31 -0
- package/Error404-Ba9ueMHc.js.map +1 -0
- package/Error500-DYjNCZNu.js +31 -0
- package/Error500-DYjNCZNu.js.map +1 -0
- package/{HomeIndex-DnGu5xD0.js → HomeIndex-BO9gew40.js} +172 -172
- package/HomeIndex-BO9gew40.js.map +1 -0
- package/{IconExplorer-IvNeUIhq.js → IconExplorer-CAqKbvQ1.js} +25 -25
- package/IconExplorer-CAqKbvQ1.js.map +1 -0
- package/Index-fSvx8Wih.js +5 -0
- package/Index-fSvx8Wih.js.map +1 -0
- package/{MainLogin-CgJLift-.js → MainLogin-D2XRuJDW.js} +92 -84
- package/MainLogin-D2XRuJDW.js.map +1 -0
- package/MenuManage-BPvVvMzw.js +626 -0
- package/MenuManage-BPvVvMzw.js.map +1 -0
- package/OrgManage-DM43rEPk.js +380 -0
- package/OrgManage-DM43rEPk.js.map +1 -0
- package/RoleManage-AqGTGljA.js +738 -0
- package/RoleManage-AqGTGljA.js.map +1 -0
- package/SysConfig-v9nYZf4a.js +733 -0
- package/SysConfig-v9nYZf4a.js.map +1 -0
- package/TenantList-PeEEKz0o.js +705 -0
- package/TenantList-PeEEKz0o.js.map +1 -0
- package/{index-C75ufNln.js → index-kZF68V9S.js} +9766 -9641
- package/index-kZF68V9S.js.map +1 -0
- package/index.es.js +51 -47
- package/package.json +1 -1
- package/style.css +1 -1
- package/AdminLogin-W5d0M-rz.js.map +0 -1
- package/Error401-DrA7Y9h3.js +0 -30
- package/Error401-DrA7Y9h3.js.map +0 -1
- package/Error404-C5K4o1R3.js +0 -30
- package/Error404-C5K4o1R3.js.map +0 -1
- package/Error500-D9nu1xhW.js +0 -30
- package/Error500-D9nu1xhW.js.map +0 -1
- package/HomeIndex-DnGu5xD0.js.map +0 -1
- package/IconExplorer-IvNeUIhq.js.map +0 -1
- package/Index-BMd4lEnI.js +0 -5
- package/Index-BMd4lEnI.js.map +0 -1
- package/MainLogin-CgJLift-.js.map +0 -1
- package/MenuManage-BJkQPgpt.js +0 -640
- package/MenuManage-BJkQPgpt.js.map +0 -1
- package/OrgManage-jLpAnwf4.js +0 -378
- package/OrgManage-jLpAnwf4.js.map +0 -1
- package/RoleManage-D2RwwJoM.js +0 -729
- package/RoleManage-D2RwwJoM.js.map +0 -1
- package/SysConfig-CYcl0wCh.js +0 -727
- package/SysConfig-CYcl0wCh.js.map +0 -1
- package/TenantList-CNVwmoEt.js +0 -693
- package/TenantList-CNVwmoEt.js.map +0 -1
- package/index-C75ufNln.js.map +0 -1
- package/index.d.ts +0 -35
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuManage-BPvVvMzw.js","sources":["../components/common/basic/IconSelect.vue","../components/business/admin/menu/MenuManage.vue"],"sourcesContent":["<template>\n <el-dialog\n v-model=\"iconModal\"\n :title=\"ct('选择ICON')\"\n :width=\"1200\">\n <div style=\"height: 600px\">\n <el-form\n :model=\"searchForm\"\n layout=\"inline\">\n <el-form-item :label=\"ct('筛选图标')\">\n <el-input\n v-model=\"searchForm.icon\"\n :placeholder=\"ct('输入中文、英文、拼音筛选')\"\n allow-clear></el-input>\n </el-form-item>\n </el-form>\n <div\n v-loading=\"loading\"\n class=\"icon-choose-container\">\n <template v-for=\"item in resultList\">\n <YhIcon\n :font-family=\"item.fontFamily\"\n :prefix=\"item.prefix\"\n :name=\"item.value\"\n @click=\"clickIcon(item)\" />\n </template>\n </div>\n </div>\n <div slot=\"footer\">\n <el-button\n type=\"primary\"\n @click=\"ok()\">\n {{ ct('关闭') }}\n </el-button>\n </div>\n </el-dialog>\n</template>\n<script setup>\n import {ref, reactive, watch, computed, onMounted} from 'vue';\n import {getIconList} from './iconData';\n import YhIcon from './YhIcon.vue';\n import {ct} from '../../../utils/i18nHelp';\n\n const props = defineProps({\n actionData: {\n type: Object,\n },\n });\n const emits = defineEmits(['clickSure']);\n watch(\n () => props.actionData,\n (val) => {\n if (val.type === 'select') {\n iconModal.value = true;\n } else {\n iconModal.value = false;\n }\n },\n {\n deep: true,\n }\n );\n const resultList = computed(() => {\n const keyword = searchForm.icon.toLowerCase();\n if (!keyword) return iconList.value;\n return iconList.value.filter((item) => {\n return (\n (item.label && item.label.toLowerCase().indexOf(keyword) > -1) ||\n (item.value && item.value.toLowerCase().indexOf(keyword) > -1) ||\n (item.pinyinFull && item.pinyinFull.indexOf(keyword) > -1) ||\n (item.pinyinFirst && item.pinyinFirst.indexOf(keyword) > -1)\n );\n });\n });\n function ok() {\n searchForm.icon = '';\n iconModal.value = false;\n }\n function cancel() {\n searchForm.icon = '';\n iconModal.value = false;\n }\n function clickIcon(val) {\n const fullClass = `${val.fontFamily} ${val.prefix}${val.value}`;\n toIcon.value = fullClass;\n emits('clickSure', fullClass);\n iconModal.value = false;\n }\n const searchForm = reactive({\n icon: '',\n });\n\n const iconModal = ref(false);\n const toIcon = ref('');\n const iconList = ref([]);\n const loading = ref(false);\n\n // 首次挂载时加载图标数据(动态加载 pinyin-pro)\n onMounted(async () => {\n if (iconList.value.length > 0) return;\n loading.value = true;\n try {\n iconList.value = await getIconList();\n } finally {\n loading.value = false;\n }\n });\n</script>\n\n<style lang=\"scss\">\n .icon-choose-container {\n overflow: auto;\n height: 536px;\n border-top: 1px solid #ccc;\n border-left: 1px solid #ccc;\n display: flex;\n align-content: flex-start;\n flex-wrap: wrap;\n margin-top: 24px;\n\n // YhIcon 组件容器样式\n i {\n cursor: pointer;\n font-size: 26px;\n display: inline-block;\n width: 56.7px;\n height: 56.7px;\n text-align: center;\n line-height: 56.7px;\n border-right: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n box-sizing: border-box;\n overflow: hidden;\n transition: font-size 0.2s ease-in-out 0s;\n &:hover {\n font-size: 40px;\n }\n }\n }\n</style>\n","<template>\n <div class=\"yh-pub-menu-manage\">\n <div class=\"operation\">\n <el-button\n @click=\"addNew\"\n type=\"primary\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"plus\"></YhIcon>\n {{ ct('新增') }}\n </el-button>\n <el-button\n @click=\"delAll\"\n type=\"danger\">\n <YhIcon\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"delete2\"></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 <div class=\"yh-pub-menu-main\">\n <div class=\"tree\">\n <div class=\"edit-status-row\">\n <div class=\"tree-tips\">{{ ct('当前选择编辑:') + editTitle }}</div>\n <YhIcon\n class=\"select-clear-icon\"\n @click=\"cancelEdit\"\n fontFamily=\"yhicon\"\n prefix=\"yh-\"\n name=\"circle-close\"></YhIcon>\n </div>\n <el-input\n v-model=\"searchKey\"\n @change=\"search\"\n :placeholder=\"ct('输入菜单名搜索')\"\n clearable>\n <template #prepend>\n <YhIcon name=\"search\"></YhIcon>\n </template>\n </el-input>\n <div\n class=\"tree-bar\"\n v-loading=\"loading\">\n <el-tree\n ref=\"treeRef\"\n :data=\"data\"\n :props=\"menuTreeProps\"\n node-key=\"key\"\n default-expand-all\n :expand-on-click-node=\"false\"\n highlight-current\n :current-node-key=\"treeSelectedKeys\"\n @current-change=\"selectTree\"></el-tree>\n </div>\n </div>\n <div class=\"form\">\n <el-form\n ref=\"formRef\"\n class=\"menu-edit-form\"\n :model=\"form\"\n :rules=\"formValidate\"\n label-width=\"90px\">\n <el-form-item\n :label=\"ct('名称')\"\n prop=\"name\">\n <el-input\n v-model=\"form.name\"\n ref=\"nameInputRef\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('类型')\"\n prop=\"menuType\">\n <el-select\n v-model=\"form.menuType\"\n popper-class=\"yh-pub-menu-option\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable>\n <el-option\n v-for=\"item in MENU_TYPE_OPTIONS\"\n :key=\"item.value\"\n :value=\"item.value\"\n :label=\"item.label\">\n <div class=\"yh-pub-menu-option-item\">\n <div class=\"name\">{{ item.label }}</div>\n <div class=\"tip\">{{ item.desc }}</div>\n </div>\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item\n :label=\"ct('所属模块')\"\n prop=\"sysModuleId\">\n <Dict\n dict=\"sysModuleId\"\n _select_id=\"59C1E77AE78D44DF8876688FE78DB53E\"\n v-model=\"form.sysModuleId\"\n placeholder=\"请选择或输入搜索\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('请求地址')\"\n prop=\"url\"\n v-show=\"['LINK', 'SUBPAGE'].includes(form.menuType)\">\n <el-autocomplete\n v-model=\"form.url\"\n :fetch-suggestions=\"queryUrlSuggestions\"\n :placeholder=\"ct('请输入或选择组件路径')\"\n clearable\n style=\"width: 100%\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('访问窗口')\"\n prop=\"sysWindowId\"\n v-show=\"form.menuType === 'WINDOW' || form.menuType === 'JOIN'\">\n <Dict\n dict=\"sysWindowId\"\n _select_id=\"F56B868C8FF44053926920588FB3C76C\"\n v-model=\"form.sysWindowId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n label=\"App页面\"\n prop=\"sysAppDesignId\"\n v-show=\"form.menuType === 'APP'\">\n <Dict\n dict=\"sysAppDesignId\"\n _select_id=\"1352728B367842EDAFF195BF073DD817\"\n v-model=\"form.sysAppDesignId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable />\n </el-form-item>\n <el-form-item\n :label=\"ct('上级菜单')\"\n prop=\"parentId\">\n <el-select\n v-model=\"form.parentId\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable>\n <el-option\n v-for=\"m in menuListOptions\"\n :value=\"m.adMenuId\"\n :label=\"m.name\"\n :key=\"m.adMenuId\"></el-option>\n </el-select>\n </el-form-item>\n <el-form-item\n :label=\"ct('显示模式')\"\n prop=\"showMode\">\n <el-select\n v-model=\"form.showMode\"\n :placeholder=\"ct('请选择或输入搜索')\"\n filterable\n clearable>\n <el-option\n value=\"P\"\n :label=\"ct('电脑端')\"></el-option>\n <el-option\n value=\"M\"\n :label=\"ct('手机端')\"></el-option>\n <el-option\n value=\"PM\"\n :label=\"ct('电脑+手机')\"></el-option>\n </el-select>\n </el-form-item>\n <el-form-item\n :label=\"ct('排序')\"\n prop=\"seq\">\n <el-input\n type=\"number\"\n v-model=\"form.seq\" />\n </el-form-item>\n <el-form-item\n :label=\"ct('图标地址')\"\n prop=\"iconPath\"\n class=\"icon-select-form-item\">\n <el-button\n type=\"info\"\n @click=\"getIcon()\">\n {{ ct('图标选择') }}\n </el-button>\n <el-input v-model=\"form.iconPath\" />\n <span class=\"icon-preview\">\n <YhIcon\n v-if=\"form.iconPath\"\n :name=\"form.iconPath\" />\n </span>\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 inline-prompt\n :active-value=\"'Y'\"\n :inactive-value=\"'N'\"\n :active-text=\"ct('有效')\"\n :inactive-text=\"ct('无效')\" />\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.adMenuId !== ''\"\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.adMenuId === ''\"\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 </div>\n </div>\n <IconSelect\n :actionData=\"toIconData\"\n @clickSure=\"iconSure\"></IconSelect>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import {ref, computed, onMounted, onActivated, nextTick} from 'vue';\n import {ElMessage, ElMessageBox} from 'element-plus';\n import type {FormInstance, FormRules} from 'element-plus';\n import {deepClone, httpRequest} from 'yh-client';\n import {ct} from '../../../../index';\n import {getComponentMap} from '../../../../router/component-map';\n import Dict from '../../system/Dict.vue';\n import IconSelect from '../../../common/basic/IconSelect.vue';\n import YhIcon from '../../../common/basic/YhIcon.vue';\n\n // 定义组件名(keep-alive 缓存 key)\n defineOptions({\n name: 'MenuManage',\n });\n\n // ==================== 类型定义 ====================\n\n interface MenuForm {\n name: string;\n menuType: string;\n sysModuleId: string;\n sysWindowId: string;\n sysAppDesignId: string;\n url: string;\n parentId: string;\n showMode: string | null;\n seq: number | null;\n iconPath: string;\n description: string;\n adMenuId: string;\n active: \"Y\" | \"N\";\n }\n\n interface TreeNode {\n key: string;\n title: string;\n level: number;\n data: any;\n children?: TreeNode[];\n }\n\n interface MenuListItem {\n adMenuId: string;\n name: string;\n menuType: string;\n _childs?: any[];\n }\n\n // ==================== 常量定义 ====================\n\n const MENU_TYPE_OPTIONS = [\n {value: 'WINDOW', label: ct('窗口'), desc: ct('引用配置窗口作为页面')},\n {value: 'LINK', label: ct('访问链接'), desc: ct('外部链接或内部组件路径')},\n {value: 'SUBPAGE', label: ct('子页面'), desc: ct('以弹窗方式打开页面的权限')},\n {value: 'JOIN', label: ct('关联弹窗'), desc: ct('关联其他窗口的权限控制')},\n {value: 'GROUP', label: ct('菜单分组'), desc: ct('电脑端菜单分组容器')},\n {value: 'APP', label: ct('手机页面'), desc: ct('手机端页面')},\n ];\n\n // ==================== 响应式数据 ====================\n\n const showType = ref('tree');\n const loading = ref(true);\n const searchKey = ref('');\n const editTitle = ref('');\n const treeSelectedKeys = ref<string | null>(null);\n const submitLoading = ref(false);\n\n const treeRef = ref();\n const formRef = ref<FormInstance>();\n const nameInputRef = ref();\n\n const data = ref<TreeNode[]>([]);\n const allMenu = ref<any[]>([]);\n const menuList = ref<MenuListItem[]>([]);\n const toIconData = ref<Record<string, any>>({});\n const selectedNodes = ref<any>(null);\n const isCancelling = ref(false); // 防止 cancelEdit 递归\n\n // 表单数据\n const form = ref<MenuForm>({\n name: '',\n menuType: '',\n sysModuleId: '',\n sysWindowId: '',\n sysAppDesignId: '',\n url: '',\n parentId: '',\n showMode: null,\n seq: null,\n iconPath: '',\n description: '',\n adMenuId: '',\n active: \"Y\",\n });\n\n // 表单验证规则\n const formValidate: FormRules<MenuForm> = {\n name: [{required: true, message: ct('名称不能为空'), trigger: 'blur'}],\n menuType: [{required: true, message: ct('菜单类型不能为空'), trigger: 'blur'}],\n sysModuleId: [{required: true, message: ct('所属模块不能为空'), trigger: 'blur'}],\n showMode: [{required: true, message: ct('显示模式不能为空'), trigger: 'blur'}],\n seq: [{required: true, message: ct('排序值不能为空'), trigger: 'blur'}],\n iconPath: [{required: true, message: ct('图标不能为空'), trigger: 'blur'}],\n };\n\n const menuTreeProps = {\n label: 'title',\n };\n\n // ==================== 计算属性 ====================\n\n const menuListOptions = computed(() => {\n return menuList.value.filter((menu) => {\n return ['JOIN'].includes(form.value.menuType) || menu.menuType === 'GROUP';\n });\n });\n\n // 查询组件路径建议\n const queryUrlSuggestions = (queryString: string, cb: (suggestions: any[]) => void) => {\n const componentMap = getComponentMap();\n const paths = Object.keys(componentMap);\n\n const results = queryString\n ? paths.filter((path) => path.toLowerCase().includes(queryString.toLowerCase()))\n : paths;\n\n cb(results.map((path) => ({value: path})));\n };\n\n // ==================== 方法 ====================\n\n // 获取所有菜单数据\n const getAllList = () => {\n loading.value = true;\n httpRequest\n .post<{result: boolean; menuList: any[]}>('/menuController/getMenuData', {})\n .then((response) => {\n if (response.data.result) {\n menuList.value = [];\n allMenu.value = response.data.menuList;\n data.value = parseTreeData(allMenu.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 // 搜索\n const search = () => {\n loading.value = true;\n data.value = parseTreeData(allMenu.value, 0, searchKey.value);\n loading.value = false;\n };\n\n // 解析树形数据\n const parseTreeData = (menus: any[], curLevel: number, search?: string): TreeNode[] => {\n const result: TreeNode[] = [];\n menus.forEach((menu) => {\n const newLevelData: TreeNode = {\n data: menu,\n key: '',\n title: '',\n level: curLevel,\n };\n\n if (menu['_childs'] && menu['_childs'].length > 0) {\n newLevelData.children = parseTreeData(menu['_childs'], curLevel + 1, search);\n }\n\n if (\n search !== undefined &&\n (newLevelData.children === undefined || newLevelData.children.length === 0) &&\n menu.name.indexOf(search) === -1\n ) {\n return;\n } else if (search === undefined) {\n menuList.value.push(menu);\n }\n\n newLevelData.key = menu.adMenuId;\n newLevelData.title = menu.name;\n result.push(newLevelData);\n });\n return result;\n };\n\n // 选择树节点\n const selectTree = (treeNode: TreeNode | null, node: any) => {\n if (treeNode) {\n // 深拷贝避免直接引用原始数据\n const formData = deepClone(treeNode.data);\n formData.active = formData.active === 'Y';\n form.value = formData;\n editTitle.value = formData.name;\n selectedNodes.value = node;\n treeSelectedKeys.value = treeNode.data.adMenuId;\n } else {\n // 直接重置,不再调用 cancelEdit 避免递归\n treeSelectedKeys.value = null;\n handleReset();\n }\n };\n\n // 新增\n const addNew = () => {\n cancelEdit();\n nextTick(() => {\n nameInputRef.value?.focus();\n });\n };\n\n // 取消编辑\n const cancelEdit = () => {\n if (isCancelling.value) return;\n isCancelling.value = true;\n treeRef.value?.setCurrentKey(null);\n nextTick(() => {\n treeSelectedKeys.value = null;\n handleReset();\n isCancelling.value = false;\n });\n };\n\n // 重置表单\n const handleReset = () => {\n form.value.adMenuId = '';\n editTitle.value = '';\n formRef.value?.resetFields();\n };\n\n // 提交编辑\n const submitEdit = () => {\n if (form.value.adMenuId && form.value.parentId === form.value.adMenuId) {\n ElMessage.error(ct('父级菜单不能为自身!'));\n return;\n }\n\n formRef.value?.validate((valid) => {\n if (valid) {\n submitLoading.value = true;\n // 深拷贝并排除不需要的字段\n const clonedForm = deepClone(form.value) as Record<string, any>;\n delete clonedForm.created;\n delete clonedForm.updated;\n delete clonedForm._childs;\n clonedForm.active = clonedForm.active ? 'Y' : 'N';\n\n httpRequest\n .post<{result: boolean; msg: string}>('/menuController/submitMenu', clonedForm)\n .then((response) => {\n if (response.data.result) {\n ElMessage.success(\n (form.value.adMenuId !== '' ? ct('修改') : ct('新增')) + ct('成功')\n );\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 // 删除\n const delAll = () => {\n if (!selectedNodes.value) {\n ElMessage.warning(ct('您还未勾选要删除的数据'));\n return;\n }\n\n ElMessageBox.confirm(ct('您确认要删除所选的数据?'), ct('确认删除'), {\n type: 'warning',\n }).then(() => {\n const ids = form.value.adMenuId;\n httpRequest\n .post<{result: boolean; msg: string}>('/menuController/delMenuByIds', {ids})\n .then((response) => {\n if (response.data.result) {\n ElMessage.success(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 });\n };\n\n // 图标选择\n const getIcon = () => {\n toIconData.value = {\n type: 'select',\n };\n };\n\n const iconSure = (iconPath: string) => {\n form.value.iconPath = iconPath;\n };\n\n // ==================== 生命周期 ====================\n\n // 首次加载数据\n onMounted(() => {\n getAllList();\n });\n\n // Keep-alive 激活时保持缓存\n onActivated(() => {\n // 无需额外处理\n });\n</script>\n\n<style lang=\"scss\">\n .yh-pub-menu-manage {\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .operation {\n margin-bottom: 20px;\n }\n\n .edit-status-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n background-color: var(--el-bg-color-page);\n box-sizing: border-box;\n padding: 8px 16px;\n font-size: 14px;\n color: var(--el-text-color-regular);\n\n .select-clear-icon {\n flex-shrink: 0;\n font-size: 18px;\n cursor: pointer;\n color: var(--el-color-danger);\n transition: all 0.3s;\n\n &:hover {\n color: var(--el-color-danger-light-3);\n transform: scale(1.1);\n }\n }\n }\n\n .yh-pub-menu-main {\n display: flex;\n flex: 1;\n overflow: hidden;\n .tree {\n height: 100%;\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n .tree-bar {\n flex: 1;\n overflow: auto;\n }\n }\n .form {\n flex: 2;\n height: 100%;\n overflow: auto;\n }\n }\n\n .select-title {\n font-weight: 600;\n color: #40a9ff;\n }\n\n .tree-bar {\n overflow: auto;\n margin-top: 5px;\n position: relative;\n min-height: 80px;\n\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background: var(--el-bg-color);\n }\n \n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--el-text-color-placeholder);\n }\n }\n\n .menu-edit-form {\n .el-form-item__content {\n display: flex;\n\n .el-input,\n .el-select {\n flex: 1;\n }\n }\n\n .icon-select-form-item {\n .el-input {\n margin: 0 10px;\n }\n\n .icon-preview {\n padding: 0 10px 0 0;\n\n .iconfont {\n font-size: 24px;\n }\n }\n }\n }\n }\n\n .yh-pub-menu-option {\n &-item {\n display: flex;\n .name {\n color: var(--el-text-color-regular);\n }\n .tip {\n flex: 1;\n text-align: right;\n color: var(--el-text-color-placeholder);\n }\n }\n }\n</style>\n"],"names":["props","__props","emits","__emit","watch","val","iconModal","resultList","computed","keyword","searchForm","iconList","item","ok","clickIcon","fullClass","toIcon","reactive","ref","loading","onMounted","getIconList","_createBlock","_component_el_dialog","$event","_unref","ct","_createElementVNode","_hoisted_1","_createVNode","_component_el_form","_component_el_form_item","_component_el_input","_cache","_withDirectives","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","YhIcon","_hoisted_3","_component_el_button","MENU_TYPE_OPTIONS","searchKey","editTitle","treeSelectedKeys","submitLoading","treeRef","formRef","nameInputRef","data","allMenu","menuList","toIconData","selectedNodes","isCancelling","form","formValidate","menuTreeProps","menuListOptions","menu","queryUrlSuggestions","queryString","cb","componentMap","getComponentMap","paths","results","path","getAllList","httpRequest","response","parseTreeData","error","ElMessage","search","menus","curLevel","result","newLevelData","selectTree","treeNode","node","formData","deepClone","handleReset","addNew","cancelEdit","nextTick","_a","submitEdit","valid","clonedForm","delAll","ElMessageBox","ids","getIcon","iconSure","iconPath","onActivated","_createTextVNode","_hoisted_4","_hoisted_5","_hoisted_6","_toDisplayString","_hoisted_7","_component_el_tree","_hoisted_8","_component_el_select","_component_el_option","_hoisted_9","_hoisted_10","_hoisted_11","Dict","_component_el_autocomplete","_vShow","m","_hoisted_12","_component_el_switch","IconSelect"],"mappings":"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"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { defineComponent as oe, ref as i, onMounted as ne, resolveComponent as p, resolveDirective as re, openBlock as E, createElementBlock as B, createVNode as l, withCtx as n, createElementVNode as b, createTextVNode as v, toDisplayString as g, unref as d, withDirectives as K, createBlock as de, createCommentVNode as ue, vShow as ie, nextTick as S } from "vue";
|
|
2
|
+
import { ElMessage as V } from "element-plus";
|
|
3
|
+
import { httpRequest as Y } from "yh-client";
|
|
4
|
+
import { f as x, c as t } from "./index-kZF68V9S.js";
|
|
5
|
+
import { _ as H } from "./Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js";
|
|
6
|
+
const se = { class: "yh-org-manage" }, me = { class: "yh-orm-manage-tree" }, _e = /* @__PURE__ */ oe({
|
|
7
|
+
name: "OrgManage",
|
|
8
|
+
__name: "OrgManage",
|
|
9
|
+
setup(ce) {
|
|
10
|
+
const j = i("tree"), y = i(!0), A = i("500px"), O = i(!0), I = i(""), k = i(""), _ = i(!1), F = i(), C = i(), P = i(), G = {
|
|
11
|
+
label: "title"
|
|
12
|
+
}, a = i({
|
|
13
|
+
value: "",
|
|
14
|
+
name: "",
|
|
15
|
+
adOrgtypeId: "",
|
|
16
|
+
parentId: "",
|
|
17
|
+
description: "",
|
|
18
|
+
active: "Y",
|
|
19
|
+
adOrgId: "",
|
|
20
|
+
mainPage: ""
|
|
21
|
+
}), z = {
|
|
22
|
+
value: [{ required: !0, message: t("编码不能为空"), trigger: "change" }],
|
|
23
|
+
name: [{ required: !0, message: t("名称不能为空"), trigger: "change" }]
|
|
24
|
+
}, w = i([]), R = i([]), h = i(null), J = i(null), Q = () => {
|
|
25
|
+
U();
|
|
26
|
+
}, W = () => {
|
|
27
|
+
O.value = !1, S(() => {
|
|
28
|
+
O.value = !0;
|
|
29
|
+
});
|
|
30
|
+
}, T = (o, e, r) => {
|
|
31
|
+
const s = [];
|
|
32
|
+
return o.forEach((c) => {
|
|
33
|
+
const m = {
|
|
34
|
+
data: c,
|
|
35
|
+
key: "",
|
|
36
|
+
title: "",
|
|
37
|
+
level: e
|
|
38
|
+
};
|
|
39
|
+
c._childs && c._childs.length > 0 && (m.children = T(c._childs, e + 1, r)), !(r !== void 0 && (m.children === void 0 || m.children.length === 0) && c.name.indexOf(r) === -1) && (m.key = c.adOrgId, m.title = c.name, s.push(m));
|
|
40
|
+
}), s;
|
|
41
|
+
}, U = () => {
|
|
42
|
+
y.value = !0, W(), Y.post("/orgController/getOrgData", {}).then((o) => {
|
|
43
|
+
o.data.result && (R.value = o.data.orgList, w.value = T(R.value, 0));
|
|
44
|
+
}).catch((o) => {
|
|
45
|
+
console.error("获取机构列表失败:", o), V.error(t("获取机构列表失败"));
|
|
46
|
+
}).finally(() => {
|
|
47
|
+
y.value = !1;
|
|
48
|
+
});
|
|
49
|
+
}, X = () => {
|
|
50
|
+
y.value = !0, w.value = T(R.value, 0, I.value), y.value = !1;
|
|
51
|
+
}, Z = (o, e) => {
|
|
52
|
+
if (o) {
|
|
53
|
+
const r = o.data;
|
|
54
|
+
a.value = { ...r }, k.value = r.name, J.value = e, h.value = o.data.adOrgId;
|
|
55
|
+
} else
|
|
56
|
+
$();
|
|
57
|
+
}, L = () => {
|
|
58
|
+
$(), h.value = null, S(() => {
|
|
59
|
+
var o;
|
|
60
|
+
(o = P.value) == null || o.focus();
|
|
61
|
+
});
|
|
62
|
+
}, $ = () => {
|
|
63
|
+
D();
|
|
64
|
+
}, D = () => {
|
|
65
|
+
var o;
|
|
66
|
+
h.value = null, a.value.adOrgId = "", a.value.active = "Y", k.value = "", (o = C.value) == null || o.resetFields();
|
|
67
|
+
}, M = () => {
|
|
68
|
+
var o;
|
|
69
|
+
(o = C.value) == null || o.validate((e) => {
|
|
70
|
+
if (e) {
|
|
71
|
+
_.value = !0;
|
|
72
|
+
const r = {
|
|
73
|
+
value: a.value.value,
|
|
74
|
+
name: a.value.name,
|
|
75
|
+
adOrgtypeId: a.value.adOrgtypeId,
|
|
76
|
+
parentId: a.value.parentId,
|
|
77
|
+
description: a.value.description,
|
|
78
|
+
active: a.value.active,
|
|
79
|
+
adOrgId: a.value.adOrgId,
|
|
80
|
+
mainPage: a.value.mainPage
|
|
81
|
+
};
|
|
82
|
+
Y.post("/orgController/submitOrg", r).then((s) => {
|
|
83
|
+
s.data.result ? (V.success((a.value.adOrgId !== "" ? t("修改") : t("新增")) + t("成功")), U(), D()) : V.error(s.data.msg);
|
|
84
|
+
}).catch((s) => {
|
|
85
|
+
console.error("提交机构失败:", s), V.error(t("提交失败,请稍后重试"));
|
|
86
|
+
}).finally(() => {
|
|
87
|
+
_.value = !1;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}, N = (o) => {
|
|
92
|
+
var r;
|
|
93
|
+
const e = (r = F.value) == null ? void 0 : r.root.store.nodesMap;
|
|
94
|
+
if (e)
|
|
95
|
+
for (const s in e)
|
|
96
|
+
e[s].expanded = o;
|
|
97
|
+
};
|
|
98
|
+
return ne(() => {
|
|
99
|
+
const o = document.documentElement.clientHeight;
|
|
100
|
+
A.value = `${o - 106}px`, Q();
|
|
101
|
+
}), (o, e) => {
|
|
102
|
+
const r = p("el-button"), s = p("el-row"), c = p("el-alert"), m = p("el-input"), ee = p("el-tree"), q = p("el-col"), f = p("el-form-item"), le = p("el-switch"), ae = p("el-form"), te = re("loading");
|
|
103
|
+
return E(), B("div", se, [
|
|
104
|
+
l(s, { class: "operation" }, {
|
|
105
|
+
default: n(() => [
|
|
106
|
+
b("div", null, [
|
|
107
|
+
l(r, { onClick: L }, {
|
|
108
|
+
default: n(() => [
|
|
109
|
+
l(x, {
|
|
110
|
+
fontFamily: "yhicon",
|
|
111
|
+
prefix: "yh-",
|
|
112
|
+
name: "plus"
|
|
113
|
+
}),
|
|
114
|
+
v(" " + g(d(t)("新增")), 1)
|
|
115
|
+
]),
|
|
116
|
+
_: 1
|
|
117
|
+
}),
|
|
118
|
+
l(r, {
|
|
119
|
+
onClick: e[0] || (e[0] = (u) => N(!0))
|
|
120
|
+
}, {
|
|
121
|
+
default: n(() => [
|
|
122
|
+
l(x, {
|
|
123
|
+
fontFamily: "yhicon",
|
|
124
|
+
prefix: "yh-",
|
|
125
|
+
name: "colum-height"
|
|
126
|
+
}),
|
|
127
|
+
v(" " + g(d(t)("展开")), 1)
|
|
128
|
+
]),
|
|
129
|
+
_: 1
|
|
130
|
+
}),
|
|
131
|
+
l(r, {
|
|
132
|
+
onClick: e[1] || (e[1] = (u) => N(!1))
|
|
133
|
+
}, {
|
|
134
|
+
default: n(() => [
|
|
135
|
+
l(x, {
|
|
136
|
+
fontFamily: "yhicon",
|
|
137
|
+
prefix: "yh-",
|
|
138
|
+
name: "vertical-align-middl"
|
|
139
|
+
}),
|
|
140
|
+
v(" " + g(d(t)("折叠")), 1)
|
|
141
|
+
]),
|
|
142
|
+
_: 1
|
|
143
|
+
}),
|
|
144
|
+
l(r, { onClick: U }, {
|
|
145
|
+
default: n(() => [
|
|
146
|
+
l(x, {
|
|
147
|
+
fontFamily: "yhicon",
|
|
148
|
+
prefix: "yh-",
|
|
149
|
+
name: "refresh"
|
|
150
|
+
}),
|
|
151
|
+
v(" " + g(d(t)("刷新")), 1)
|
|
152
|
+
]),
|
|
153
|
+
_: 1
|
|
154
|
+
})
|
|
155
|
+
])
|
|
156
|
+
]),
|
|
157
|
+
_: 1
|
|
158
|
+
}),
|
|
159
|
+
K(l(s, {
|
|
160
|
+
class: "contenx",
|
|
161
|
+
type: "flex",
|
|
162
|
+
justify: "start",
|
|
163
|
+
gutter: 16
|
|
164
|
+
}, {
|
|
165
|
+
default: n(() => [
|
|
166
|
+
l(q, {
|
|
167
|
+
class: "yh-org-manage-right",
|
|
168
|
+
sm: 8,
|
|
169
|
+
md: 8,
|
|
170
|
+
lg: 8,
|
|
171
|
+
xl: 6
|
|
172
|
+
}, {
|
|
173
|
+
default: n(() => [
|
|
174
|
+
l(c, {
|
|
175
|
+
"show-icon": "",
|
|
176
|
+
title: d(t)("当前选择编辑:") + ` ${k.value} `,
|
|
177
|
+
closable: !1,
|
|
178
|
+
style: { "margin-bottom": "10px" }
|
|
179
|
+
}, null, 8, ["title"]),
|
|
180
|
+
l(m, {
|
|
181
|
+
modelValue: I.value,
|
|
182
|
+
"onUpdate:modelValue": e[2] || (e[2] = (u) => I.value = u),
|
|
183
|
+
onChange: X,
|
|
184
|
+
placeholder: d(t)("输入机构名搜索"),
|
|
185
|
+
clearable: ""
|
|
186
|
+
}, {
|
|
187
|
+
prepend: n(() => [...e[10] || (e[10] = [
|
|
188
|
+
b("i", { class: "iconfont icon-search" }, null, -1)
|
|
189
|
+
])]),
|
|
190
|
+
_: 1
|
|
191
|
+
}, 8, ["modelValue", "placeholder"]),
|
|
192
|
+
K((E(), B("div", me, [
|
|
193
|
+
l(ee, {
|
|
194
|
+
ref_key: "treeRef",
|
|
195
|
+
ref: F,
|
|
196
|
+
data: w.value,
|
|
197
|
+
props: G,
|
|
198
|
+
"node-key": "key",
|
|
199
|
+
"default-expand-all": "",
|
|
200
|
+
"expand-on-click-node": !1,
|
|
201
|
+
"current-node-key": h.value,
|
|
202
|
+
onCurrentChange: Z
|
|
203
|
+
}, null, 8, ["data", "current-node-key"])
|
|
204
|
+
])), [
|
|
205
|
+
[te, y.value]
|
|
206
|
+
])
|
|
207
|
+
]),
|
|
208
|
+
_: 1
|
|
209
|
+
}),
|
|
210
|
+
l(q, {
|
|
211
|
+
sm: 16,
|
|
212
|
+
md: 16,
|
|
213
|
+
lg: 16,
|
|
214
|
+
xl: 9
|
|
215
|
+
}, {
|
|
216
|
+
default: n(() => [
|
|
217
|
+
l(ae, {
|
|
218
|
+
ref_key: "formRef",
|
|
219
|
+
ref: C,
|
|
220
|
+
model: a.value,
|
|
221
|
+
rules: z,
|
|
222
|
+
"label-width": "90px"
|
|
223
|
+
}, {
|
|
224
|
+
default: n(() => [
|
|
225
|
+
l(f, {
|
|
226
|
+
label: d(t)("机构编码"),
|
|
227
|
+
prop: "value"
|
|
228
|
+
}, {
|
|
229
|
+
default: n(() => [
|
|
230
|
+
l(m, {
|
|
231
|
+
modelValue: a.value.value,
|
|
232
|
+
"onUpdate:modelValue": e[3] || (e[3] = (u) => a.value.value = u),
|
|
233
|
+
ref_key: "orgCodeRef",
|
|
234
|
+
ref: P
|
|
235
|
+
}, null, 8, ["modelValue"])
|
|
236
|
+
]),
|
|
237
|
+
_: 1
|
|
238
|
+
}, 8, ["label"]),
|
|
239
|
+
l(f, {
|
|
240
|
+
label: d(t)("机构名称"),
|
|
241
|
+
prop: "name"
|
|
242
|
+
}, {
|
|
243
|
+
default: n(() => [
|
|
244
|
+
l(m, {
|
|
245
|
+
modelValue: a.value.name,
|
|
246
|
+
"onUpdate:modelValue": e[4] || (e[4] = (u) => a.value.name = u)
|
|
247
|
+
}, null, 8, ["modelValue"])
|
|
248
|
+
]),
|
|
249
|
+
_: 1
|
|
250
|
+
}, 8, ["label"]),
|
|
251
|
+
l(f, {
|
|
252
|
+
label: d(t)("机构类型"),
|
|
253
|
+
prop: "adOrgtypeId"
|
|
254
|
+
}, {
|
|
255
|
+
default: n(() => [
|
|
256
|
+
l(H, {
|
|
257
|
+
dict: "adOrgtypeId",
|
|
258
|
+
url: "/orgController/getOrgType",
|
|
259
|
+
_select_id: "",
|
|
260
|
+
modelValue: a.value.adOrgtypeId,
|
|
261
|
+
"onUpdate:modelValue": e[5] || (e[5] = (u) => a.value.adOrgtypeId = u),
|
|
262
|
+
placeholder: d(t)("请选择或输入搜索"),
|
|
263
|
+
filterable: "",
|
|
264
|
+
clearable: ""
|
|
265
|
+
}, null, 8, ["modelValue", "placeholder"])
|
|
266
|
+
]),
|
|
267
|
+
_: 1
|
|
268
|
+
}, 8, ["label"]),
|
|
269
|
+
O.value ? (E(), de(f, {
|
|
270
|
+
key: 0,
|
|
271
|
+
label: d(t)("上级机构"),
|
|
272
|
+
prop: "parentId"
|
|
273
|
+
}, {
|
|
274
|
+
default: n(() => [
|
|
275
|
+
l(H, {
|
|
276
|
+
dict: "parentId",
|
|
277
|
+
url: "/orgController/getGroupOrgs",
|
|
278
|
+
modelValue: a.value.parentId,
|
|
279
|
+
"onUpdate:modelValue": e[6] || (e[6] = (u) => a.value.parentId = u),
|
|
280
|
+
placeholder: d(t)("请选择或输入搜索"),
|
|
281
|
+
filterable: "",
|
|
282
|
+
clearable: ""
|
|
283
|
+
}, null, 8, ["modelValue", "placeholder"])
|
|
284
|
+
]),
|
|
285
|
+
_: 1
|
|
286
|
+
}, 8, ["label"])) : ue("", !0),
|
|
287
|
+
l(f, {
|
|
288
|
+
label: d(t)("默认首页"),
|
|
289
|
+
prop: "mainPage"
|
|
290
|
+
}, {
|
|
291
|
+
default: n(() => [
|
|
292
|
+
l(m, {
|
|
293
|
+
modelValue: a.value.mainPage,
|
|
294
|
+
"onUpdate:modelValue": e[7] || (e[7] = (u) => a.value.mainPage = u)
|
|
295
|
+
}, null, 8, ["modelValue"])
|
|
296
|
+
]),
|
|
297
|
+
_: 1
|
|
298
|
+
}, 8, ["label"]),
|
|
299
|
+
l(f, {
|
|
300
|
+
label: d(t)("备注"),
|
|
301
|
+
prop: "description"
|
|
302
|
+
}, {
|
|
303
|
+
default: n(() => [
|
|
304
|
+
l(m, {
|
|
305
|
+
modelValue: a.value.description,
|
|
306
|
+
"onUpdate:modelValue": e[8] || (e[8] = (u) => a.value.description = u),
|
|
307
|
+
type: "textarea"
|
|
308
|
+
}, null, 8, ["modelValue"])
|
|
309
|
+
]),
|
|
310
|
+
_: 1
|
|
311
|
+
}, 8, ["label"]),
|
|
312
|
+
l(f, {
|
|
313
|
+
label: d(t)("是否有效")
|
|
314
|
+
}, {
|
|
315
|
+
default: n(() => [
|
|
316
|
+
l(le, {
|
|
317
|
+
modelValue: a.value.active,
|
|
318
|
+
"onUpdate:modelValue": e[9] || (e[9] = (u) => a.value.active = u),
|
|
319
|
+
"active-value": "Y",
|
|
320
|
+
"inactive-value": "N"
|
|
321
|
+
}, null, 8, ["modelValue"])
|
|
322
|
+
]),
|
|
323
|
+
_: 1
|
|
324
|
+
}, 8, ["label"]),
|
|
325
|
+
l(f, null, {
|
|
326
|
+
default: n(() => [
|
|
327
|
+
l(r, {
|
|
328
|
+
style: { "margin-right": "5px" },
|
|
329
|
+
onClick: M,
|
|
330
|
+
loading: _.value,
|
|
331
|
+
disabled: a.value.adOrgId !== "",
|
|
332
|
+
type: "primary"
|
|
333
|
+
}, {
|
|
334
|
+
default: n(() => [
|
|
335
|
+
e[11] || (e[11] = b("i", { class: "iconfont icon-plus" }, null, -1)),
|
|
336
|
+
v(" " + g(d(t)("保存新增")), 1)
|
|
337
|
+
]),
|
|
338
|
+
_: 1
|
|
339
|
+
}, 8, ["loading", "disabled"]),
|
|
340
|
+
l(r, {
|
|
341
|
+
style: { "margin-right": "5px" },
|
|
342
|
+
onClick: M,
|
|
343
|
+
loading: _.value,
|
|
344
|
+
disabled: a.value.adOrgId === "",
|
|
345
|
+
type: "primary"
|
|
346
|
+
}, {
|
|
347
|
+
default: n(() => [
|
|
348
|
+
e[12] || (e[12] = b("i", { class: "iconfont icon-save" }, null, -1)),
|
|
349
|
+
v(" " + g(d(t)("保存修改")), 1)
|
|
350
|
+
]),
|
|
351
|
+
_: 1
|
|
352
|
+
}, 8, ["loading", "disabled"]),
|
|
353
|
+
l(r, { onClick: D }, {
|
|
354
|
+
default: n(() => [
|
|
355
|
+
v(g(d(t)("重置")), 1)
|
|
356
|
+
]),
|
|
357
|
+
_: 1
|
|
358
|
+
})
|
|
359
|
+
]),
|
|
360
|
+
_: 1
|
|
361
|
+
})
|
|
362
|
+
]),
|
|
363
|
+
_: 1
|
|
364
|
+
}, 8, ["model"])
|
|
365
|
+
]),
|
|
366
|
+
_: 1
|
|
367
|
+
})
|
|
368
|
+
]),
|
|
369
|
+
_: 1
|
|
370
|
+
}, 512), [
|
|
371
|
+
[ie, j.value === "tree"]
|
|
372
|
+
])
|
|
373
|
+
]);
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
export {
|
|
378
|
+
_e as default
|
|
379
|
+
};
|
|
380
|
+
//# sourceMappingURL=OrgManage-DM43rEPk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgManage-DM43rEPk.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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"}
|