From 73a4d1404ac13115388a9e712780e21b9b6e53b9 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期日, 19 十月 2025 17:35:08 +0800
Subject: [PATCH] fix: bug
---
packages/hooks/area.ts | 65 +++++++++++++++++++-------------
1 files changed, 39 insertions(+), 26 deletions(-)
diff --git a/packages/hooks/area.ts b/packages/hooks/area.ts
index 684ce2c..506b61d 100644
--- a/packages/hooks/area.ts
+++ b/packages/hooks/area.ts
@@ -1,24 +1,18 @@
import { flattenAreaTree, formatAreaListToTree } from '@12333/utils';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
-import { computed, onMounted, onUnmounted, ref } from 'vue';
+import { computed, MaybeRef, onMounted, onUnmounted, ref, unref } from 'vue';
import { AreaType, CategoryCode } from '@12333/constants';
import Taro, { EventChannel } from '@tarojs/taro';
import { useDictionaryDataSelect } from './dic';
import axios from 'axios';
+import * as dictionaryServices from '@12333/services/apiV2/dictionary';
export function useArea() {
const queryClient = useQueryClient();
- const { dictionaryDataList } = useDictionaryDataSelect({
- categoryCode: CategoryCode.Area,
- staleTime: Infinity,
- all: true,
- maxDeep: AreaType.Area,
- });
+ const { areaList } = useAllAreaList();
- const areaList = computed(() => dictionaryDataList.value.map(convertDictionaryToAreaTreeNode));
-
- // const areaTree = computed(() => formatAreaListToTree(areaList.value));
+ // const areaList = computed(() => dictionaryDataList.value.map(convertDictionaryToAreaTreeNode));
function getAreaFromCompleteAreaList(areaCode: string) {
return areaList.value.find((x) => x.areaCode === areaCode);
@@ -38,24 +32,31 @@
};
}
-export function useAreaTree() {
- axios.get('https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/area.txt').then((res) => {
- console.log(res);
- });
- const { data } = useQuery({
- queryKey: ['area.txt'],
- queryFn() {
- return axios
- .get<API.AreaTreeNode[]>(
- 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/area.txt'
- )
- .then((res) => res.data);
+type UseAreaTreeOptions = {
+ maxLayer?: MaybeRef<AreaType>;
+};
+
+export function useAreaTree(options = {} as UseAreaTreeOptions) {
+ const { maxLayer = AreaType.Area } = options;
+
+ // const { areaList } = useAllAreaList();
+
+ const { data: areaTree } = useQuery({
+ queryKey: ['dictionaryServices/getAreaSelect', maxLayer],
+ queryFn: () => {
+ return dictionaryServices.getAreaSelect(
+ {
+ maxDeep: unref(maxLayer),
+ },
+ { showLoading: false }
+ );
},
-
- placeholderData: () => [] as API.AreaTreeNode[],
+ placeholderData: () => [] as API.GetAreaSelectQueryResultOption[],
+ staleTime: Infinity,
});
- const areaTree = computed(() => formatAreaListToTree(data.value));
+ // const areaTree = computed(() => formatAreaListToTree(areaList.value, null, unref(maxLayer)));
+ console.log('areaTree: ', areaTree);
return { areaTree: areaTree };
}
@@ -75,7 +76,19 @@
}
export function useAllAreaList() {
- const { areaList } = useArea();
+ const { data: areaList } = useQuery({
+ queryKey: ['area.txt'],
+ queryFn() {
+ return axios
+ .get<API.AreaTreeNode[]>(
+ 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/area.txt'
+ )
+ .then((res) => res.data);
+ },
+
+ placeholderData: () => [] as API.AreaTreeNode[],
+ staleTime: Infinity,
+ });
const findAreaCodeFromName = (areaName: string) => {
const areaItem = areaList.value.find((x) => x.areaName === areaName);
--
Gitblit v1.9.1