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