From 58cec38eef64d74f77fd2688911dff380f1b2a24 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 21 Feb 2022 16:25:14 +0800 Subject: [PATCH] 优化地址三级联动组件,允许只有两级的地址,可以被选中 --- forms/chinaArea/ChinaLocations.js | 30 +++++++++++++++++------------- forms/chinaArea/ChinaLocations.weapp.js | 28 ++++++++++++++++------------ forms/chinaArea/CChinaArea.vue | 2 +- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/forms/chinaArea/CChinaArea.vue b/forms/chinaArea/CChinaArea.vue index 85b8143..8a71fb5 100644 --- a/forms/chinaArea/CChinaArea.vue +++ b/forms/chinaArea/CChinaArea.vue @@ -66,7 +66,7 @@ selected() { const curVal = this.itemRes.formData[this.itemRes.name]; if (curVal && curVal.length === 3) { - return getRegionNames(curVal).join(' / '); + return getRegionNames(curVal).filter(Boolean).join(' / '); } else { return ''; } diff --git a/forms/chinaArea/ChinaLocations.js b/forms/chinaArea/ChinaLocations.js index 1d53f78..32c57c1 100644 --- a/forms/chinaArea/ChinaLocations.js +++ b/forms/chinaArea/ChinaLocations.js @@ -51,14 +51,16 @@ let tempLocationData = ChinaLocationData; regions.forEach((code) => { if (!code || !tempLocationData[code]) { - return; - } - if (typeof tempLocationData[code].name === 'string') { - address += tempLocationData[code].name; + address.push(''); + tempLocationData = []; } else { - address += tempLocationData[code]; + if (typeof tempLocationData[code].name === 'string') { + address += tempLocationData[code].name; + } else { + address += tempLocationData[code]; + } + tempLocationData = tempLocationData[code].children; } - tempLocationData = tempLocationData[code].children; }); return address; }, @@ -74,14 +76,16 @@ let tempLocationData = ChinaLocationData; regions.forEach((code) => { if (!code || !tempLocationData[code]) { - return; - } - if (typeof tempLocationData[code].name === 'string') { - address.push(tempLocationData[code].name); + address.push(''); + tempLocationData = []; } else { - address.push(tempLocationData[code]); + if (typeof tempLocationData[code].name === 'string') { + address.push(tempLocationData[code].name); + } else { + address.push(tempLocationData[code]); + } + tempLocationData = tempLocationData[code].children; } - tempLocationData = tempLocationData[code].children; }); return address; }, @@ -153,5 +157,5 @@ } } return area; - } + }, }; \ No newline at end of file diff --git a/forms/chinaArea/ChinaLocations.weapp.js b/forms/chinaArea/ChinaLocations.weapp.js index 974ac5f..c9fa3c0 100644 --- a/forms/chinaArea/ChinaLocations.weapp.js +++ b/forms/chinaArea/ChinaLocations.weapp.js @@ -75,14 +75,16 @@ let tempLocationData = ChinaLocationData; regions.forEach((code) => { if (!code || !tempLocationData[code]) { - return; - } - if (typeof tempLocationData[code].name === 'string') { - address += tempLocationData[code].name; + address.push(''); + tempLocationData = []; } else { - address += tempLocationData[code]; + if (typeof tempLocationData[code].name === 'string') { + address += tempLocationData[code].name; + } else { + address += tempLocationData[code]; + } + tempLocationData = tempLocationData[code].children; } - tempLocationData = tempLocationData[code].children; }); return address; }, @@ -98,14 +100,16 @@ let tempLocationData = ChinaLocationData; regions.forEach((code) => { if (!code || !tempLocationData[code]) { - return; - } - if (typeof tempLocationData[code].name === 'string') { - address.push(tempLocationData[code].name); + address.push(''); + tempLocationData = []; } else { - address.push(tempLocationData[code]); + if (typeof tempLocationData[code].name === 'string') { + address.push(tempLocationData[code].name); + } else { + address.push(tempLocationData[code]); + } + tempLocationData = tempLocationData[code].children; } - tempLocationData = tempLocationData[code].children; }); return address; -- Gitblit v1.9.1