From f9398ce73a1bccff71218117ae963ea2ecd6809b Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Thu, 24 Mar 2022 12:16:04 +0800
Subject: [PATCH] 优化跨页面数据传递

---
 forms/chinaArea/ChinaLocations.weapp.js |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/forms/chinaArea/ChinaLocations.weapp.js b/forms/chinaArea/ChinaLocations.weapp.js
index 7c1986d..c9fa3c0 100644
--- a/forms/chinaArea/ChinaLocations.weapp.js
+++ b/forms/chinaArea/ChinaLocations.weapp.js
@@ -57,7 +57,7 @@
 
 export default {
     onReady(callback) {
-        if (ChinaLocationData.length > 0) {
+        if (locationTree.length > 0) {
             callback();
         } else {
             readyCallback = callback;
@@ -74,12 +74,17 @@
         let address = '';
         let tempLocationData = ChinaLocationData;
         regions.forEach((code) => {
-            if (typeof tempLocationData[code].name === 'string') {
-                address += tempLocationData[code].name;
+            if (!code || !tempLocationData[code]) {
+                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;
     },
@@ -94,15 +99,17 @@
         let address = [];
         let tempLocationData = ChinaLocationData;
         regions.forEach((code) => {
-            if (!tempLocationData[code]) {
-                return;
-            }
-            if (typeof tempLocationData[code].name === 'string') {
-                address.push(tempLocationData[code].name);
+            if (!code || !tempLocationData[code]) {
+                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;
 
@@ -128,7 +135,7 @@
                             if (provinceChildren[cityCode].name === regions[1]) {
                                 codes[1] = cityCode;
                                 // 区
-                                const areaChildren = provinceChildren[cityCode].children;
+                                const areaChildren = provinceChildren[cityCode].children || [];
                                 for (let areaCode in areaChildren) {
                                     if (areaChildren.hasOwnProperty(areaCode)) {
                                         if (areaChildren[areaCode] === regions[2]) {

--
Gitblit v1.9.1