zhengyiming
2025-02-10 958b79ed89b9e742540f714a80261d222c0fc09b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// import { store } from '@/store';
// import { defineStore } from 'pinia';
// import { formatAreaListToTree } from '@/utils';
// import * as areaServices from '@/services/api/Area';
 
// export interface AreaState {
//   /**
//    * 完整的地区数据树
//    */
//   completeAreaTree: API.AreaTreeNode[];
//   /**
//    * 打平的完整的地区
//    */
//   completeAreaList: API.AreaDto[];
//   completeAreaTreeDone: boolean;
//   /**
//    * 多个select分步获取地区数据
//    */
//   provinceList: API.AreaDto[];
//   /**
//    * 储存areaCode下面的子集
//    */
//   areaMap: Record<API.AreaDto['areaCode'], API.AreaDto[]>;
//   /**
//    * 根据areaCode储存单个area数据
//    */
//   areaItemMap: Record<API.AreaDto['areaCode'], API.AreaDto>;
// }
 
// export const useAreaStore = defineStore({
//   id: 'area',
//   state: (): AreaState => ({
//     completeAreaTree: [],
//     completeAreaTreeDone: false,
//     completeAreaList: [],
//     //----------------------------------
//     provinceList: [],
//     areaMap: {},
//     areaItemMap: {},
//   }),
//   getters: {
//     getAreaFromCompleteAreaList(state) {
//       return (areaCode: number) => state.completeAreaList.find((x) => x.areaCode === areaCode);
//     },
//     getAreaByAreaCode(state) {
//       return (areaCode: number) => state.areaItemMap[areaCode];
//     },
//     getAreaNameByAreaCode() {
//       return (areaCode: number) => {
//         const area = this.getAreaByAreaCode(areaCode);
//         return area ? area.areaName : '';
//       };
//     },
//     getAreaNameByAreaCodeWithParentName() {
//       return (areaCode: number) => {
//         const area = this.getAreaByAreaCode(areaCode);
//         if (area?.parentCode) {
//           const parent = this.getAreaByAreaCode(area.parentCode);
//           return parent ? `${parent.areaName}${area.areaName}` : '';
//         } else {
//           return area ? area.areaName : '';
//         }
//       };
//     },
//   },
 
//   actions: {
//     async getCompleteAreaTree() {
//       try {
//         if (!this.completeAreaList.length) {
//           const res = await areaServices.getAreaList({
//             showLoading: false,
//           });
//           this.completeAreaTreeDone = true;
//           const completeAreaList = res;
//           this.completeAreaTree = formatAreaListToTree(completeAreaList, 0);
//           this.completeAreaList = completeAreaList;
//           this.provinceList = res.filter((x) => !x.parentCode);
//           this.setAreaMap(res);
//         }
//         return this.completeAreaList;
//       } catch (error) {
//         throw error;
//       }
//     },
 
//     setAreaMap(areaList: API.AreaDto[]) {
//       areaList.forEach((item) => {
//         this.areaItemMap[item.areaCode] = item;
//       });
//     },
//   },
// });
 
// export function useAreaStoreHook() {
//   return useAreaStore(store);
// }