From 379c3a050d5f92c1335ed342147703301e379bf0 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 06 八月 2025 11:19:54 +0800
Subject: [PATCH] feat: 更新框架

---
 src/views/Login/Login.vue                                     |    2 
 src/views/FinanceManage/components/UsageDetailView.vue        |    2 
 .eslintrc-auto-import.json                                    |    2 +
 src/hooks/menu.ts                                             |   89 ++++++++++++++++++++++++++++++++++++++++++++
 auto-imports.d.ts                                             |    4 ++
 src/views/FinanceManage/components/DistributionDetailView.vue |    2 
 src/hooks/index.ts                                            |    1 
 7 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index dd9ecb3..a854a2f 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -146,6 +146,8 @@
     "useId": true,
     "useLink": true,
     "useLoading": true,
+    "useMenu": true,
+    "useMenus": true,
     "useModel": true,
     "useOmit": true,
     "useOmitProps": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index cc114cb..d5171c9 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -132,6 +132,8 @@
   const useIsSystemAdmin: typeof import('./src/hooks/useUser')['useIsSystemAdmin']
   const useLink: typeof import('vue-router')['useLink']
   const useLoading: typeof import('./src/hooks/global/useLoading')['useLoading']
+  const useMenu: typeof import('./src/hooks/menu')['useMenu']
+  const useMenus: typeof import('./src/hooks/menu')['useMenus']
   const useModel: typeof import('vue')['useModel']
   const useOmit: typeof import('./src/hooks/help')['useOmit']
   const useOmitProps: typeof import('./src/hooks/help')['useOmitProps']
@@ -307,6 +309,8 @@
     readonly useId: UnwrapRef<typeof import('vue')['useId']>
     readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
     readonly useLoading: UnwrapRef<typeof import('./src/hooks/global/useLoading')['useLoading']>
+    readonly useMenu: UnwrapRef<typeof import('./src/hooks/menu')['useMenu']>
+    readonly useMenus: UnwrapRef<typeof import('./src/hooks/menu')['useMenus']>
     readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
     readonly useOmit: UnwrapRef<typeof import('./src/hooks/help')['useOmit']>
     readonly useOmitProps: UnwrapRef<typeof import('./src/hooks/help')['useOmitProps']>
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index ff53805..57acf39 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -6,4 +6,5 @@
 export * from './useEvent';
 export * from './useUser';
 export * from './help';
+export * from './menu';
 // export * from './dic';
diff --git a/src/hooks/menu.ts b/src/hooks/menu.ts
new file mode 100644
index 0000000..33baff4
--- /dev/null
+++ b/src/hooks/menu.ts
@@ -0,0 +1,89 @@
+import * as menuServices from '@/services/api/menu';
+import { flattenTree } from '@/utils';
+import { DaPengAccessAdapter } from '@bole-core/components';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
+
+type UseMenusOptions = {
+  params: MaybeRef<API.APIgetMenusParams>;
+  enabled?: MaybeRef<boolean>;
+};
+
+export function useMenus({ params, enabled = true }: UseMenusOptions) {
+  const queryClient = useQueryClient();
+
+  const { data, refetch } = useQuery({
+    queryKey: ['menuServices/getMenus', params],
+    queryFn: async () => {
+      return await menuServices.getMenus(unref(params), {
+        showLoading: false,
+      });
+    },
+    placeholderData: () => [] as API.GetMenusQueryResultItem[],
+    staleTime: Infinity,
+    enabled: enabled,
+  });
+
+  const flattenMenus = computed(() => flattenTree(data.value));
+
+  function getMenuById(id: string) {
+    return flattenMenus.value.find((item) => item.id === id);
+  }
+
+  return {
+    menusTree: data,
+    refetch,
+    getMenuById,
+  };
+}
+
+type UseMenuOptions = {
+  params: MaybeRef<API.APIgetMenuParams>;
+  enabled?: MaybeRef<boolean>;
+};
+
+export function useMenu({ params, enabled = true }: UseMenuOptions) {
+  const queryClient = useQueryClient();
+
+  const { data, refetch } = useQuery({
+    queryKey: ['menuServices/getMenu', params],
+    queryFn: async () => {
+      return await menuServices.getMenu(unref(params), {
+        showLoading: false,
+      });
+    },
+    placeholderData: () => ({} as API.GetMenuQueryResult),
+    enabled: enabled,
+  });
+
+  const menuDefaultGroup = computed(
+    () => DaPengAccessAdapter.getMenuGroupAdapter(data.value?.groups ?? []) ?? {}
+  );
+
+  const menuFields = computed(() => {
+    return menuDefaultGroup.value.fields ?? [];
+  });
+
+  const menuPageButtons = computed(() => {
+    const pageButtonLocation = DaPengAccessAdapter.getButtonLocationAdapter(
+      menuDefaultGroup.value,
+      SubModuleKey[SubModuleType.PageButton]
+    );
+    return pageButtonLocation?.buttons ?? [];
+  });
+
+  const menuDataButtons = computed(() => {
+    const pageButtonLocation = DaPengAccessAdapter.getButtonLocationAdapter(
+      menuDefaultGroup.value,
+      SubModuleKey[SubModuleType.DataButton]
+    );
+    return pageButtonLocation?.buttons ?? [];
+  });
+
+  return {
+    menu: data,
+    refetch,
+    menuFields,
+    menuPageButtons,
+    menuDataButtons,
+  };
+}
diff --git a/src/views/FinanceManage/components/DistributionDetailView.vue b/src/views/FinanceManage/components/DistributionDetailView.vue
index 86fe668..10d3f52 100644
--- a/src/views/FinanceManage/components/DistributionDetailView.vue
+++ b/src/views/FinanceManage/components/DistributionDetailView.vue
@@ -19,7 +19,7 @@
   useTable,
   defineOperationBtns,
 } from '@bole-core/components';
-import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
+// import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
 import { DistributionDetailColumns } from '../constants';
 import { FlexEnterpriseSettingStatus } from '@/constants';
 import { OrderInputType } from '@bole-core/core';
diff --git a/src/views/FinanceManage/components/UsageDetailView.vue b/src/views/FinanceManage/components/UsageDetailView.vue
index d0e9a68..69dd4ab 100644
--- a/src/views/FinanceManage/components/UsageDetailView.vue
+++ b/src/views/FinanceManage/components/UsageDetailView.vue
@@ -9,7 +9,7 @@
 
 <script setup lang="ts">
 import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components';
-import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
+// import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
 import { UsageDetailColumns } from '../constants';
 import { FlexEnterpriseSettingStatus } from '@/constants';
 import { OrderInputType } from '@bole-core/core';
diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue
index 957cce6..4486379 100644
--- a/src/views/Login/Login.vue
+++ b/src/views/Login/Login.vue
@@ -179,7 +179,7 @@
     loading.value = true;
     await userStore.loginByUsername({
       userName: unref(user),
-      userPassword: unref(pwd),
+      password: unref(pwd),
     });
     loading.value = false;
     router.push({

--
Gitblit v1.9.1