From 4ea3fb422f1c1af628d948eb3908b6a61f71bbdf Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 07 八月 2025 18:05:17 +0800
Subject: [PATCH] fix: 修改

---
 src/views/System/ModuleManage.vue |   91 +++++++++++++++++++++++++++++++++------------
 1 files changed, 67 insertions(+), 24 deletions(-)

diff --git a/src/views/System/ModuleManage.vue b/src/views/System/ModuleManage.vue
index 6e6cfcf..217df8b 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,
@@ -527,18 +556,32 @@
     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,
                 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,
+              sort: c.sortCode,
+            })),
+          };
+          groups.push(group);
+        }
         let params: API.SaveMenuCommand = {
           ...currentDrawerModule.value,
           groups: groups,

--
Gitblit v1.9.1