From ca2d2295e954f8b50069ee5a0fcc32e80433fafd Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Tue, 06 Apr 2021 15:40:07 +0800 Subject: [PATCH] 修复地址三级联动的问题 --- forms/chinaArea/CChinaArea.vue | 39 +++++++++++++++++++++++++-------------- 1 files changed, 25 insertions(+), 14 deletions(-) diff --git a/forms/chinaArea/CChinaArea.vue b/forms/chinaArea/CChinaArea.vue index d797021..59e0e7d 100644 --- a/forms/chinaArea/CChinaArea.vue +++ b/forms/chinaArea/CChinaArea.vue @@ -72,10 +72,12 @@ }, methods: { handleOpen(evt) { - if (evt.target.className.indexOf('at-input__title') >= 0) { - evt.stopPropagation(); - evt.preventDefault(); - return; + if (process.env.TARO_ENV === 'h5') { + if (evt && evt.target.className.indexOf('at-input__title') >= 0) { + evt.stopPropagation(); + evt.preventDefault(); + return; + } } const curVal = this.itemRes.formData[this.itemRes.name]; const range = [ @@ -89,7 +91,7 @@ // 省 if (curVal[0]) { const proviceIndex = locationTree.findIndex( - provice => provice.code === curVal[0] + provice => provice.value === curVal[0] ); if (proviceIndex >= 0) { range[1] = locationTree[proviceIndex].children; @@ -98,19 +100,19 @@ // 市 if (curVal[1]) { const cityIndex = range[1].findIndex( - city => city.code === curVal[1] + city => city.value === curVal[1] ); if (cityIndex >= 0) { - range[2] = range[1].children[cityIndex].children; + range[2] = range[1][cityIndex].children; current[1] = cityIndex; } // 区 if (curVal[2]) { const areaIndex = range[2].findIndex( - area => area.code === curVal[2] + area => area.value === curVal[2] ); if (areaIndex >= 0) { - current[2] === areaIndex; + current[2] = areaIndex; } } } @@ -121,15 +123,20 @@ this.current = current; }, updateColumns(roll) { + // 第一列滚动 if (roll.column === 0) { const cities = locationTree[roll.value].children; - this.range.splice(1, 2, cities, cities[0].children); + this.range = [this.range[0], cities, cities[0].children]; this.current = [roll.value, 0, 0]; - } else if (roll.column === 1) { + } + // 第二列滚动 + else if (roll.column === 1) { const areas = locationTree[this.current[0]].children[roll.value].children; - this.range.splice(2, 1, areas); + this.range = [this.range[0], this.range[1], areas]; this.current = [this.current[0], roll.value, 0]; - } else if (roll.column === 3) { + } + // 第三列滚动 + else if (roll.column === 3) { this.current.splice(2, 1, roll.value); } }, @@ -144,6 +151,10 @@ this.itemRes.onChange(codes); }, }, - mounted() {}, + mounted() { + if (process.env.TARO_ENV === 'weapp') { + this.handleOpen(); + } + }, }; </script> \ No newline at end of file -- Gitblit v1.9.1