From 04a859aa95b231c032c71d06518497a973c2f4e8 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 15 Jan 2026 17:41:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 uniapps/work-wx/src/subPackages/deviceRegistration/add.vue |  106 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 85 insertions(+), 21 deletions(-)

diff --git a/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue b/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
index 3f85b95..cd2af14 100644
--- a/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
+++ b/uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
@@ -144,19 +144,21 @@
         <u-form-item
                 label="所属区域"
                 labelWidth="230rpx"
-                prop="serialNumber"
+                prop="regionCode"
                 :borderBottom="true"
                 ref="item2"
+                @click="isShowRegion = true"
         >
-            <view class="select-wrapper">
-                <u-input
-                        v-model="formParams.serialNumber"
-                        border="none"
-                        placeholder="请选择"
-                        readonly
-                ></u-input>
-                <view class="select-icon">▼</view>
-            </view>
+            <u-input
+                v-model="formParams.regionText"
+                disabled
+                disabledColor="#ffffff"
+                placeholder="请选择所属区域"
+                border="none"
+            ></u-input>
+            <template #right>
+                <up-icon name="arrow-down"></up-icon>
+            </template>
         </u-form-item>
         <u-form-item
                 label="民用航空器登记证书"
@@ -259,9 +261,16 @@
         />
         <!-- 所属区域 -->
         <u-cascader 
-            show="show"
-            v-model="value"
+            :show="isShowRegion"
+            v-model="formParams.regionCode"
             :data="areaData"
+            value-key="code"
+			label-key="name"
+			children-key="children"
+            :auto-close="true"
+            @confirm="onRegionConfirm"
+            @close="isShowRegion = false"
+            @cancel="isShowRegion = false"
         ></u-cascader>
     </u-form>
     <u-button @click="submitForm" color="#1D6FE9">提交</u-button>
@@ -293,6 +302,8 @@
     hasInsurance: '', // 是否有保险
     hasInsuranceText: '', // 是否有保险文本
     region: '', // 所属区域
+    regionCode: '', // 所属区域
+    regionText: '', // 所属区域文本
     caacRegistrationCode: '', // 民用航空器登记证书
     caacRegistrationCodeText: '', // 民用航空器登记证书文本
     deviceImage: '', // 飞行器照片
@@ -341,6 +352,38 @@
 const onPurchaseDate = (e) => {
     formParams.value.purchaseDate = dayjs(e.value).format('YYYY-MM-DD')
     showPurchaseDate.value = false
+}
+
+const findRegionNamesByCodes = (codes, areaData) => {
+  const result = []
+  let currentData = areaData
+  
+  for (const code of codes) {
+    // 转换为字符串比较(因为code可能是字符串类型)
+    const codeStr = code.toString()
+    const item = currentData.find(item => item.code === codeStr)
+    
+    if (!item) {
+      console.warn(`未找到code为 ${codeStr} 的行政区划`)
+      break
+    }
+    
+    result.push(item.name)
+    currentData = item.children || []
+  }
+  
+  return result
+}
+
+// 所属区域确认
+const onRegionConfirm = (e) => {
+    console.log(e,'888')
+    formParams.value.region = e?.join(',')[2] || '' // 用逗号分隔的区域码
+    // 通过arrRegion的数组值为[36,3608,360824] 从areaData里面反查出名称
+    const regionNames = findRegionNamesByCodes(e, areaData.value)
+    console.log(regionNames, '77777')
+    formParams.value.regionText = regionNames.join('-') || '' // 用连字符连接的区域名称
+    isShowRegion.value = false  
 }
 // 是否有保险
 const actionsHasInsurance = ref([
@@ -455,13 +498,13 @@
 // 获取所属单位
 const isShowRegion = ref(false)
 const areaData = ref([])
-function getAreaData() {
-    areaDataApi().then(res => {
-        if (res.data.code === 200) {
-            areaData.value = res.data.data
-        }
-    })
-}
+// function getAreaData() {
+//     areaDataApi().then(res => {
+//         if (res.data.code === 200) {
+//             areaData.value = res.data.data
+//         }
+//     })
+// }
 // 提交图片
 function afterReadImage(event) {
     // 获取上传的文件对象
@@ -543,8 +586,29 @@
         // 这里可以添加额外的失败处理逻辑
     }
 }
-onMounted(() => {
-    getAreaData()
+onMounted(async () => {
+    // 动态导入xzqhData,确保在使用前已初始化
+    const { xzqhData } = await import('@/static/xzqh/index')
+    // console.log(xzqhData,'9999')
+    // xzqhData.map 循环三层
+    // 第一层:省份
+    // 第二层:城市
+    // 第三层:区县
+    areaData.value = xzqhData
+    // xzqhData.map(item => ({
+    //     label: item.name,
+    //     value: item.code,
+    //     children: item.children.map(child => ({
+    //         label: child.name,
+    //         value: child.code,
+    //         children: child.children?.map(district => ({
+    //             label: district.name,
+    //             value: district.code
+    //         })) || []
+    //     }))
+    // }))
+    // console.log(areaData.value, '8888')
+    
 })
 </script>
 <style scoped lang="scss">

--
Gitblit v1.9.3