From 196aac76666571c60536973418bff3da63bef1d8 Mon Sep 17 00:00:00 2001 From: ‘chensiAb’ <‘chenchenco03@163.com’> Date: Tue, 01 Apr 2025 17:29:32 +0800 Subject: [PATCH] fix:百度地图组件微调 & 地址三级联动增加只读属性 --- forms/chinaArea/CChinaArea.vue | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/forms/chinaArea/CChinaArea.vue b/forms/chinaArea/CChinaArea.vue index 881e452..4eb81be 100644 --- a/forms/chinaArea/CChinaArea.vue +++ b/forms/chinaArea/CChinaArea.vue @@ -1,10 +1,13 @@ /** * CChinaArea - 表单项,中国地址三级联动 + * 中国地区选择器组件,用于在表单中选择省市区地址 + * 内置完整的中国行政区划数据,支持多级联动选择 + * 支持自动通过地理定位获取省市区 * @author Tevin */ <template> - <view class="c-china-area"> + <view :class="['c-china-area', readOnly ? 'read-only' : '']"> <picker class="c-china-area-picker" mode="multiSelector" @@ -58,6 +61,11 @@ }, // 占位提示 placeholder: String, + // 是否只读 + readOnly: { + type: Boolean, + default: false, + }, }, data() { return { @@ -102,7 +110,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 +120,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,7 +129,7 @@ // 区 if (codes[2]) { const distIndex = range[2].findIndex( - dist => dist.value === codes[2] + dist => dist.value === codes[2], ); if (distIndex >= 0) { current[2] = distIndex; @@ -131,7 +139,7 @@ range[3] = range[2][current[2]].children || []; const streetIndex = range[3].findIndex( - street => street.value === codes[3] + street => street.value === codes[3], ); if (streetIndex >= 0) { current[3] = streetIndex; @@ -144,7 +152,9 @@ }); } this.range = range; - this.current = current; + setTimeout(() => { + this.current = current; + }, 100); }); }, updateColumns(roll) { -- Gitblit v1.9.1