From fdeb869c386da95150a087bc22bcebc4e57d0f76 Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Tue, 18 Mar 2025 18:16:32 +0800
Subject: [PATCH] 更新所有表单组件文档和头注释

---
 forms/chinaArea/CChinaArea.vue |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/forms/chinaArea/CChinaArea.vue b/forms/chinaArea/CChinaArea.vue
index c329e5e..faadcf5 100644
--- a/forms/chinaArea/CChinaArea.vue
+++ b/forms/chinaArea/CChinaArea.vue
@@ -1,5 +1,8 @@
 /**
  * CChinaArea - 表单项,中国地址三级联动
+ * 中国地区选择器组件,用于在表单中选择省市区地址
+ * 内置完整的中国行政区划数据,支持多级联动选择
+ * 支持自动通过地理定位获取省市区
  * @author Tevin
  */
 
@@ -102,7 +105,7 @@
                         // 省
                         if (codes[0]) {
                             const proviceIndex = locationTree.findIndex(
-                                provice => provice.value === codes[0]
+                                provice => provice.value === codes[0],
                             );
                             if (proviceIndex >= 0) {
                                 range[1] = locationTree[proviceIndex].children;
@@ -112,7 +115,7 @@
                                 // 市
                                 if (codes[1]) {
                                     const cityIndex = range[1].findIndex(
-                                        city => city.value === codes[1]
+                                        city => city.value === codes[1],
                                     );
                                     if (cityIndex >= 0) {
                                         range[2] = range[1][cityIndex].children;
@@ -121,22 +124,20 @@
                                     // 区
                                     if (codes[2]) {
                                         const distIndex = range[2].findIndex(
-                                            dist => dist.value === codes[2]
+                                            dist => dist.value === codes[2],
                                         );
                                         if (distIndex >= 0) {
                                             current[2] = distIndex;
                                         }
                                         // 街
-                                        if (this.level === 4 && codes[3]) {
-                                            if (distIndex >= 0) {
-                                                range[3] =
-                                                    range[2][distIndex].children || [];
-                                                const streetIndex = range[3].findIndex(
-                                                    street => street.value === codes[3]
-                                                );
-                                                if (streetIndex >= 0) {
-                                                    current[3] = streetIndex;
-                                                }
+                                        if (this.level === 4) {
+                                            range[3] =
+                                                range[2][current[2]].children || [];
+                                            const streetIndex = range[3].findIndex(
+                                                street => street.value === codes[3],
+                                            );
+                                            if (streetIndex >= 0) {
+                                                current[3] = streetIndex;
                                             }
                                         }
                                     }
@@ -146,7 +147,9 @@
                     });
                 }
                 this.range = range;
-                this.current = current;
+                setTimeout(() => {
+                    this.current = current;
+                }, 100);
             });
         },
         updateColumns(roll) {
@@ -228,8 +231,10 @@
                             address.province.replace(/省|市|自治区|特别行政区/g, ''),
                             address.city,
                             address.district,
-                            address.street,
                         ];
+                        if (this.level === 4) {
+                            regions.push(address.street);
+                        }
                         $locations.getRegionCodes(regions, codes => {
                             if (codes && codes.length > 0) {
                                 $locations.getRegionNames(codes, names => {

--
Gitblit v1.9.1