From 05f8a54cbcc8ae34da3ae6fe2081e0ca6f82174e Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 21 十月 2025 14:44:18 +0800
Subject: [PATCH] fix: bug
---
src/views/System/ModuleManage.vue | 113 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 71 insertions(+), 42 deletions(-)
diff --git a/src/views/System/ModuleManage.vue b/src/views/System/ModuleManage.vue
index d07ec24..b55268a 100644
--- a/src/views/System/ModuleManage.vue
+++ b/src/views/System/ModuleManage.vue
@@ -3,6 +3,22 @@
<AppContainer>
<ProTableQueryFilterBar @on-reset="handleReset">
<template #query>
+ <QueryFilterItem>
+ <FieldRadio
+ v-model="state.clientType"
+ :value-enum="EnumClientTypeText"
+ buttonStyle
+ @change="getAllModule()"
+ />
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <FieldRadio
+ v-model="state.userType"
+ :value-enum="EnumUserTypeText"
+ buttonStyle
+ @change="getAllModule()"
+ />
+ </QueryFilterItem>
<div class="query-filter-list-item">
<SearchInput
v-model="state.searchValue"
@@ -50,14 +66,14 @@
row.type=v?EnumMenuType.Menu:EnumMenuType.Page
}"
inline-prompt
- @change="(v: number) => handleChangeStatus(v, row, 'isMenu')"
+ @change="(v: boolean) => handleChangeStatus(v, row, 'isMenu')"
></el-switch>
</template>
<template v-else-if="column.property === 'enabledMark'">
<el-switch
:modelValue="!row.isDisabled"
:onUpdate:modelValue="(v: boolean) => row.isDisabled =!v"
- @change="(v: number) => handleChangeStatus(v, row, 'enabledMark')"
+ @change="(v: boolean) => handleChangeStatus(v, row, 'enabledMark')"
></el-switch>
</template>
</template>
@@ -94,6 +110,8 @@
LoadingLayout,
OperationBtnType,
SearchInput,
+ QueryFilterItem,
+ FieldRadio,
} from '@bole-core/components';
import { ModuleUtils, TreeModuleDtoGroupDto, Message, TreeStore, flattenTree } from '@/utils';
import { TableInstance } from 'element-plus';
@@ -104,6 +122,8 @@
FastBtn,
ModuleColumns,
EnumMenuType,
+ EnumClientTypeText,
+ EnumUserTypeText,
} from '@/constants';
import SubModuleEditDrawer from './components/SubModuleEditDrawer.vue';
import AddOrEditModuleDialog from './components/AddOrEditModuleDialog.vue';
@@ -183,6 +203,8 @@
loading: true,
searchValue: '',
group: 'default',
+ userType: EnumUserType.Operation,
+ clientType: EnumClientType.PcWeb,
};
const state = reactive({ ...BaseState });
const moduleTreeStore = ref<TreeStore<TreeModuleDtoGroupDto>>();
@@ -228,8 +250,8 @@
try {
let res = await menuServices.getMenus(
{
- userType: EnumUserType.Operation,
- clientType: EnumClientType.PcWeb,
+ userType: state.userType,
+ clientType: state.clientType,
},
{
showLoading: false,
@@ -242,23 +264,30 @@
}
type StatusEventType = {
isCache: boolean;
- isMenu: number;
- enabledMark: number;
+ isMenu: boolean;
+ enabledMark: boolean;
};
async function handleChangeStatus<T extends keyof StatusEventType>(
- value: StatusEventType[T],
+ value: boolean,
data: TreeModuleDtoGroupDto,
statusType: T
) {
try {
- // let params = {
- // ..._.omit(data, ['children', 'parentNode']),
- // [statusType]: value,
- // };
- // await baseModuleServices.addOrEditModule(params);
- } catch (error) {
- Message.errorMessage('鎿嶄綔澶辫触');
- }
+ let params: API.SetMenuSwitchCommand = {
+ ids: [data.id],
+ type: data.type,
+ isDisabled: data.isDisabled,
+ isCache: data.isCache,
+ };
+ if (statusType === 'isMenu') {
+ params.type = value ? EnumMenuType.Menu : EnumMenuType.Page;
+ } else if (statusType === 'isCache') {
+ params.isCache = value;
+ } else {
+ params.isDisabled = !value;
+ }
+ await menuServices.setMenuSwitch(params);
+ } catch (error) {}
}
async function getMenu(id: string) {
@@ -366,8 +395,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,
@@ -399,12 +428,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) {}
}
@@ -505,22 +529,13 @@
name: subModule.name,
group: state.group,
// location: 'string',
- width: subModule.width,
+ width: subModule.width.toString(),
sort: subModule.sortCode,
};
if (subModule.id) {
params.id = subModule.id;
}
if (drawerState.type === SubModuleType.Column) {
- // const _subModule = subModule;
- // params = {
- // ...params,
- // //@ts-ignore
- // width: _subModule.width,
- // // apiName: _subModule.apiName,
- // // realColumn: _subModule.realColumn,
- // // isShow: _subModule.isShow,
- // };
} else {
params.location = SubModuleKey[drawerState.type];
}
@@ -541,23 +556,37 @@
if (drawerState.type === SubModuleType.Column) {
let columnModuleList = drawerState.tableData; //.filter((d) => d.isEdit);
if (columnModuleList.length > 0) {
- const groups = currentDrawerModule.value.groups.map((group) => {
- if (group.group === state.group) {
- group.fields ==
- columnModuleList.map((c) => ({
+ let groups = [...currentDrawerModule.value.groups];
+ const isExist = groups.some((g) => g.group === state.group);
+ if (isExist) {
+ groups = groups.map((group) => {
+ if (group.group === state.group) {
+ group.fields = columnModuleList.map((c) => ({
code: c.enCode,
name: c.name,
- width: c.width,
+ width: c.width.toString(),
sort: c.sortCode,
}));
- }
- return group;
- });
+ }
+ return group;
+ });
+ } else {
+ const group: API.GetMenuQueryResultGroup = {
+ group: state.group,
+ fields: columnModuleList.map((c) => ({
+ code: c.enCode,
+ name: c.name,
+ width: c.width.toString(),
+ sort: c.sortCode,
+ })),
+ };
+ groups.push(group);
+ }
let params: API.SaveMenuCommand = {
...currentDrawerModule.value,
groups: groups,
};
- const res = await menuServices.saveMenu(params);
+ const res = await saveMenu(params);
if (res) {
getBaseModuleGetAllSubModule(currentDrawerModule.value, drawerState.type);
Message.successMessage('淇濆瓨鎴愬姛');
--
Gitblit v1.9.1