From 93393138afcda975703f8c89ae1702fb62502080 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 05 八月 2025 13:11:49 +0800
Subject: [PATCH] fix: 修改功能模块

---
 src/hooks/useAccess.ts |   59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/src/hooks/useAccess.ts b/src/hooks/useAccess.ts
index def0bd2..73ac9b2 100644
--- a/src/hooks/useAccess.ts
+++ b/src/hooks/useAccess.ts
@@ -1,5 +1,5 @@
 import { Route } from '@/router';
-import type { OperationBtnType, ColumnPropsMap } from '@bole-core/components';
+import type { OperationBtnType, ColumnPropsMap, ModuleColumnDto } from '@bole-core/components';
 import {
   useAccess as useBoleAccess,
   useGroupColumns as useBoleGroupColumns,
@@ -7,6 +7,7 @@
 } from '@bole-core/components';
 import type { Ref, ComputedRef } from 'vue';
 import { myClient } from '@/constants/query';
+import * as menuServices from '@/services/api/menu';
 
 type UseAccessOptions = {
   operationBtnMap?: Record<string, OperationBtnType>;
@@ -28,23 +29,61 @@
 
   const moduleId = route.meta.moduleId;
 
+  const groupName = 'default';
+
   return useBoleAccess({
-    queryKey: ['baseModuleServices/getCurrentSubModuleList', { moduleId }],
+    queryKey: ['menuServices/getMenu', { moduleId }],
     service: async () => {
-      // return await baseModuleServices.getCurrentSubModuleList({ moduleId }, { showLoading: false });
-      return await Promise.resolve({
-        pageButton: [],
-        dataButton: [],
-        column: [],
-      });
+      const res = await menuServices.getMenu({ id: moduleId });
+      const group = res.groups.find((g) => g.group === groupName);
+      const pageButtonLocation = group?.buttonLocations?.find?.(
+        (buttonLocation) => buttonLocation.location === SubModuleKey[SubModuleType.PageButton]
+      );
+      const dataButtonLocation = group?.buttonLocations?.find?.(
+        (buttonLocation) => buttonLocation.location === SubModuleKey[SubModuleType.DataButton]
+      );
+      return {
+        pageButton: menuButtonAdapter(pageButtonLocation, SubModuleType.PageButton),
+        dataButton: menuButtonAdapter(dataButtonLocation, SubModuleType.DataButton),
+        column: menuFieldsAdapter(group?.fields ?? []),
+      };
     },
     ...options,
   });
 }
 
+function menuButtonAdapter(buttonLocation: API.GetMenuQueryResultButtonLocation, buttonType) {
+  const buttons = buttonLocation?.buttons ?? [];
+  return buttons.map((x) => ({
+    id: x.id,
+    moduleId: '',
+    parentId: '',
+    enCode: x.code,
+    name: x.name,
+    sortCode: x.sort,
+    buttonType: buttonType,
+    hasCheck: x.isChecked,
+  }));
+}
+
+function menuFieldsAdapter(fields: API.GetMenuQueryResultField[]) {
+  return fields.map((x) => ({
+    id: x.id,
+    moduleId: '',
+    parentId: '',
+    enCode: x.code,
+    name: x.name,
+    sortCode: x.sort,
+    width: Number(x.width),
+    hasCheck: x.isChecked,
+    fixed: false,
+    isShow: true,
+  }));
+}
+
 export function useClearSubModule() {
   function clearSubModule() {
-    myClient.removeQueries({ queryKey: ['baseModuleServices/getCurrentSubModuleList'] });
+    myClient.removeQueries({ queryKey: ['menuServices/getMenu'] });
   }
 
   return { clearSubModule };
@@ -53,7 +92,7 @@
 /**
  * 瀵筩olumns杩涜鍒嗙粍
  */
-export function useGroupColumns(columns: Ref<API.ModuleColumnDto[]>, groups: string[]) {
+export function useGroupColumns(columns: Ref<ModuleColumnDto[]>, groups: string[]) {
   //@ts-ignore
   return useBoleGroupColumns(columns, groups);
 }

--
Gitblit v1.9.1