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