Quellcode durchsuchen

🎨 增加区域已创建村落接口对接

快乐的梦鱼 vor 1 Tag
Ursprung
Commit
5f26ab7a35
2 geänderte Dateien mit 44 neuen und 1 gelöschten Zeilen
  1. 24 0
      src/api/light/LightVillageApi.ts
  2. 20 1
      src/pages/home/light/create-village.vue

+ 24 - 0
src/api/light/LightVillageApi.ts

@@ -420,6 +420,30 @@ export class LightVillageApi extends AppServerRequestModule<DataModel> {
     return await this.post<KeyValue>('/village/village/addVillage', '创建村社', data);
   }
 
+  /**
+   * 村社地图
+   * POST /village/village/mapVillage
+   */
+  async getMapVillage(params: {
+    /** 地区code */
+    areaCode: number;
+  }) {
+    const res = await this.post<{
+      village_id: number | null;
+      is_light: number | null;
+      village_name: string | null;
+      area_id: number;
+      area_code: number;
+      merger_name: string;
+      longitude: string;
+      latitude: string;
+      name: string;
+    }[]>('/village/village/mapVillage', '村社地图', {
+      area_code: params.areaCode,
+    });
+    return res.requireData();
+  }
+
   async updateStorage(params: {
     /** 村社ID */
     villageId: number;

+ 20 - 1
src/pages/home/light/create-village.vue

@@ -155,7 +155,7 @@ async function asyncLoadData(item: CascaderItem) {
     data: region,
   }));
 }
-function handlePickEnd(values: CascaderItem[]) {
+async function handlePickEnd(values: CascaderItem[]) {
   if (values.length > 0) {
     selectedRegion.value = values[values.length - 1].data;
     let i = values.length - 1;
@@ -169,6 +169,25 @@ function handlePickEnd(values: CascaderItem[]) {
         break;
       }
     }
+
+    const areaCode = Number(selectedValue.value[selectedValue.value.length - 1]);
+    try {
+      const mapVillages = await LightVillageApi.getMapVillage({ areaCode });
+      const existingVillages = mapVillages.filter(v => v.village_id !== null);
+      if (existingVillages.length > 0) {
+        searchedList.value = existingVillages.map(v => ({
+          id: v.village_id!,
+          name: v.village_name || v.name,
+          image: '',
+          address: v.merger_name?.replace(/,/g, '') || '',
+        }) as unknown as VillageListItem);
+        showSearchedList.value = true;
+        return;
+      }
+    } catch (_) {
+      // 查询失败不阻塞流程,继续进入输入信息步骤
+    }
+
     if (i !== values.length - 1) {
       alert({
         title: '提示',