From d4c43fd252707c6d682f1008aabcae0f53015e02 Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Tue, 18 Oct 2022 15:11:43 +0800
Subject: [PATCH] 允许从相册中扫码

---
 forms/chinaArea/ChinaLocations.weapp.js |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/forms/chinaArea/ChinaLocations.weapp.js b/forms/chinaArea/ChinaLocations.weapp.js
index 72bf0ce..8a92430 100644
--- a/forms/chinaArea/ChinaLocations.weapp.js
+++ b/forms/chinaArea/ChinaLocations.weapp.js
@@ -4,15 +4,15 @@
  */
 
 import Taro from '@tarojs/taro';
-import { Fetcher } from '@components/bases/Fetcher';
 import project from '@project';
+import { $hostBoot } from '@components/bases/HostBoot';
 
 const locationTree = [];
 let ChinaLocationData = {};
 let readyCallback = () => { };
 
 Taro.request({
-    url: Fetcher.host + project.host.assetsPath + '/datas/ChinaLocation.json',
+    url: $hostBoot.getHost() + project.host.assetsPath + '/datas/ChinaLocation.json',
     header: {
         'X-Requested-With': 'XMLHttpRequest',
         'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
@@ -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