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