From 675e9d9e998412c0777427d36124e340463bb56f Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期二, 05 八月 2025 14:32:27 +0800 Subject: [PATCH] fix: 修改功能模块 --- src/views/System/ModuleManage.vue | 140 ++++++++++++++++++++++++---------------------- 1 files changed, 72 insertions(+), 68 deletions(-) diff --git a/src/views/System/ModuleManage.vue b/src/views/System/ModuleManage.vue index 5389d40..c35f3b4 100644 --- a/src/views/System/ModuleManage.vue +++ b/src/views/System/ModuleManage.vue @@ -104,6 +104,8 @@ FastBtn, ModuleColumns, EnumMenuType, + EnumClientTypeText, + EnumUserTypeText, } from '@/constants'; import SubModuleEditDrawer from './components/SubModuleEditDrawer.vue'; import AddOrEditModuleDialog from './components/AddOrEditModuleDialog.vue'; @@ -111,6 +113,7 @@ import _ from 'lodash'; import { useReset } from '@bole-core/core'; import * as menuServices from '@/services/api/menu'; +import { DrawerTableDataItem } from './types'; defineOptions({ name: 'ModuleManage', @@ -181,6 +184,9 @@ const BaseState = { loading: true, searchValue: '', + group: 'default', + userType: EnumUserType.Operation, + clientType: EnumClientType.PcWeb, }; const state = reactive({ ...BaseState }); const moduleTreeStore = ref<TreeStore<TreeModuleDtoGroupDto>>(); @@ -210,9 +216,10 @@ //drawer const drawerVisible = ref(false); const currentDrawerModule = ref<API.GetMenuQueryResult>({}); + const drawerState = reactive<{ type: SubModuleType; - tableData: ValueOf<API.AllSubModule>; + tableData: DrawerTableDataItem[]; }>({ type: SubModuleType.PageButton, tableData: [], @@ -225,8 +232,8 @@ try { let res = await menuServices.getMenus( { - userType: EnumUserType.Operation, - clientType: EnumClientType.PcWeb, + userType: state.userType, + clientType: state.clientType, }, { showLoading: false, @@ -363,8 +370,8 @@ async function handleAddOrEditModule() { try { let params: API.SaveMenuCommand = { - userType: EnumUserType.Operation, - clientType: EnumClientType.PcWeb, + userType: state.userType, + clientType: state.clientType, code: editForm.enCode, name: editForm.name, type: editForm.isMenu ? EnumMenuType.Menu : EnumMenuType.Page, @@ -396,12 +403,7 @@ async function saveMenu(params: API.SaveMenuCommand) { try { const res = await menuServices.saveMenu(params); - if (res) { - Message.successMessage('淇濆瓨鎴愬姛'); - getAllModule(); - editDialogFormVisible.value = false; - return res; - } + return res; } catch (error) {} } @@ -418,19 +420,36 @@ async function openDrawer(module: TreeModuleDtoGroupDto, type: SubModuleType) { try { drawerState.type = type; - currentDrawerModule.value = await getMenu(module.id); - await nextTick(); getBaseModuleGetAllSubModule(module, type); } catch (error) {} } async function getBaseModuleGetAllSubModule(module: TreeModuleDtoGroupDto, type: SubModuleType) { try { - const defaultGroup = currentDrawerModule.value.groups.find((g) => g.group === 'default') ?? {}; + const menu = await getMenu(module.id); + currentDrawerModule.value = menu; + const currentGroup = menu.groups.find((g) => g.group === state.group) ?? {}; if (type === SubModuleType.Column) { - drawerState.tableData = defaultGroup.fields ?? []; + drawerState.tableData = (currentGroup.fields ?? []).map((f) => ({ + enCode: f.code, + name: f.name, + sortCode: f.sort, + width: f.width, + isEdit: false, + isShow: false, + id: f.id, + })); } else { - drawerState.tableData = - defaultGroup.buttonLocations?.find((b) => b.location === SubModuleKey[type])?.buttons ?? []; + drawerState.tableData = ( + currentGroup.buttonLocations?.find((b) => b.location === SubModuleKey[type])?.buttons ?? [] + ).map((b) => ({ + enCode: b.code, + name: b.name, + sortCode: b.sort, + width: b.width, + isEdit: false, + isShow: false, + id: b.id, + })); } drawerVisible.value = true; } catch (error) {} @@ -441,17 +460,17 @@ enCode: '', name: '', sortCode: sortCode, - width: 0, + width: 0 as any as string, isEdit: true, - apiName: '', - realColumn: '', + // apiName: '', + // realColumn: '', isShow: true, }; drawerState.tableData?.push(baseData); } function getDefaultSortCode() { return drawerState.tableData.length > 0 - ? drawerState.tableData[drawerState.tableData.length - 1].sort + 1 + ? drawerState.tableData[drawerState.tableData.length - 1].sortCode + 1 : 0; } function handleBatchAddColumn(keys: string[]) { @@ -460,13 +479,13 @@ enCode: key, name: '', sortCode: sortCode + index, - width: 0, + width: 0 as any as string, isEdit: true, })); drawerState.tableData?.push(...baseDataList); } function handleAddFastBtn(fastBtn: FastBtn) { - let subModule: API.ModuleButtonDto | API.ModuleColumnDto = { + let subModule: DrawerTableDataItem = { enCode: fastBtn.enCode, name: fastBtn.name, sortCode: getDefaultSortCode(), @@ -477,37 +496,29 @@ } handleSaveSubModule(subModule); } -async function handleSaveSubModule(subModule: API.ModuleButtonDto | API.ModuleColumnDto) { +async function handleSaveSubModule(subModule: DrawerTableDataItem) { try { - let params = { - moduleId: currentDrawerModule.value.id, - enCode: subModule.enCode, + let params: API.SaveMenuFieldCommand = { + parentId: currentDrawerModule.value.id, + code: subModule.enCode, name: subModule.name, - sortCode: subModule.sortCode, + group: state.group, + // location: 'string', + width: subModule.width, + sort: subModule.sortCode, }; if (subModule.id) { - //@ts-ignore params.id = subModule.id; } if (drawerState.type === SubModuleType.Column) { - const _subModule = subModule as API.ModuleColumnDto; - params = { - ...params, - //@ts-ignore - width: _subModule.width, - apiName: _subModule.apiName, - realColumn: _subModule.realColumn, - isShow: _subModule.isShow, - }; } else { - //@ts-ignore - params.buttonType = drawerState.type; + params.location = SubModuleKey[drawerState.type]; } let res = null; if (drawerState.type === SubModuleType.Column) { - res = await baseModuleServices.addOrEditModuleColumn(params); + res = await menuServices.saveMenuField(params); } else { - res = await baseModuleServices.addOrEditModuleButton(params); + res = await menuServices.saveMenuButton(params); } if (res) { getBaseModuleGetAllSubModule(currentDrawerModule.value, drawerState.type); @@ -518,28 +529,24 @@ async function handelBatchSaveColumn() { try { if (drawerState.type === SubModuleType.Column) { - let columnModuleList = drawerState.tableData as (API.ModuleColumnDto & { isEdit: boolean })[]; //.filter((d) => d.isEdit); + let columnModuleList = drawerState.tableData; //.filter((d) => d.isEdit); if (columnModuleList.length > 0) { - let params = columnModuleList.map((columnModule) => { - let columnItem = { - moduleId: currentDrawerModule.value.id, - enCode: columnModule.enCode, - name: columnModule.name, - sortCode: columnModule.sortCode, - apiName: columnModule.apiName, - realColumn: columnModule.realColumn, - isShow: columnModule.isShow, - width: columnModule.width, - }; - if (columnModule.id) { - //@ts-ignore - columnItem.id = columnModule.id; + const groups = currentDrawerModule.value.groups.map((group) => { + if (group.group === state.group) { + group.fields = columnModuleList.map((c) => ({ + code: c.enCode, + name: c.name, + width: c.width, + sort: c.sortCode, + })); } - return columnItem; + return group; }); - let res = await baseModuleServices.addModuleColumnList(params, { - getResponse: true, - }); + let params: API.SaveMenuCommand = { + ...currentDrawerModule.value, + groups: groups, + }; + const res = await saveMenu(params); if (res) { getBaseModuleGetAllSubModule(currentDrawerModule.value, drawerState.type); Message.successMessage('淇濆瓨鎴愬姛'); @@ -549,15 +556,12 @@ } catch (error) {} } -async function handleDeleteSubModule(subModule: API.ModuleButtonDto | API.ModuleColumnDto) { +async function handleDeleteSubModule(subModule: DrawerTableDataItem) { try { await Message.deleteMessage(); - let res = null; - if (drawerState.type === SubModuleType.Column) { - res = await baseModuleServices.deleteModuleColumn({ id: subModule.id }); - } else { - res = await baseModuleServices.deleteModuleButton({ id: subModule.id }); - } + let res = await menuServices.deleteMenu({ + ids: [subModule.id], + }); if (res) { Message.successMessage('鍒犻櫎鎴愬姛'); getBaseModuleGetAllSubModule(currentDrawerModule.value, drawerState.type); -- Gitblit v1.9.1