Browse Source

first commit

felixyin 8 months ago
commit
4f74e1343f
100 changed files with 25083 additions and 0 deletions
  1. 25 0
      .gitignore
  2. 20 0
      .hbuilderx/launch.json
  3. 13 0
      .vite/deps/_metadata.json
  4. 1 0
      .vite/deps/package.json
  5. 76 0
      .vite/deps/vue-jsonp.js
  6. 7 0
      .vite/deps/vue-jsonp.js.map
  7. 212 0
      App.vue
  8. 1 0
      README.md
  9. 32 0
      androidPrivacy.json
  10. 11 0
      common/auth.js
  11. 2 0
      common/config.js
  12. 139 0
      common/getLocation.js
  13. 2017 0
      common/global.css
  14. 423 0
      common/global.scss
  15. 35 0
      common/request.js
  16. 619 0
      common/utils/fx-openMap/openMap.js
  17. 18 0
      common/utils/fx-openMap/package.json
  18. 52 0
      components/callAlarm.vue
  19. 180 0
      components/comp-select-address/CompSelectAddress.vue
  20. 17 0
      components/comp-select-address/README.md
  21. 13586 0
      components/comp-select-address/citydata.js
  22. 20 0
      index.html
  23. 24 0
      main.js
  24. 187 0
      manifest.json
  25. 5 0
      package.json
  26. 176 0
      pages.json
  27. 119 0
      pages/account/about.vue
  28. 202 0
      pages/account/agent.vue
  29. 385 0
      pages/account/cash.vue
  30. 677 0
      pages/account/certification.vue
  31. 207 0
      pages/account/complaint.vue
  32. 352 0
      pages/account/forgot.vue
  33. 71 0
      pages/account/help.vue
  34. 618 0
      pages/account/index.vue
  35. 324 0
      pages/account/inviteCode.vue
  36. 362 0
      pages/account/login.vue
  37. 296 0
      pages/account/promotion.vue
  38. 443 0
      pages/account/register.vue
  39. 431 0
      pages/account/setting.vue
  40. 29 0
      pages/account/test.vue
  41. 236 0
      pages/account/wallet.vue
  42. 346 0
      pages/index/fast.vue
  43. 559 0
      pages/index/index.vue
  44. 435 0
      pages/order/detail.vue
  45. 613 0
      pages/order/index.vue
  46. 227 0
      pages/order/map.vue
  47. 235 0
      pages/project/index.vue
  48. 18 0
      pnpm-lock.yaml
  49. BIN
      static/account/QR_code.png
  50. BIN
      static/account/about.png
  51. BIN
      static/account/about/agreement.png
  52. BIN
      static/account/about/privacy.png
  53. BIN
      static/account/about/statement.png
  54. BIN
      static/account/activation.png
  55. BIN
      static/account/agent.png
  56. BIN
      static/account/agent/banner.png
  57. BIN
      static/account/agent/bg.png
  58. BIN
      static/account/avatar.png
  59. BIN
      static/account/certification/add.png
  60. BIN
      static/account/certification/clear.png
  61. BIN
      static/account/certification/idcard_after.png
  62. BIN
      static/account/certification/idcard_before.png
  63. BIN
      static/account/coupon_background.png
  64. BIN
      static/account/custom.png
  65. BIN
      static/account/feedback.png
  66. BIN
      static/account/invite/background.png
  67. BIN
      static/account/invite/circle.png
  68. BIN
      static/account/invite/wechat.png
  69. BIN
      static/account/levle_default.png
  70. BIN
      static/account/order_background.png
  71. BIN
      static/account/process.png
  72. BIN
      static/account/promotion.png
  73. BIN
      static/account/setting.png
  74. BIN
      static/account/wallet/cash.png
  75. BIN
      static/account/wallet/refund.png
  76. BIN
      static/account/wallet/spread.png
  77. BIN
      static/account/wallet_background.png
  78. BIN
      static/common/alarm.png
  79. BIN
      static/common/alipay.png
  80. BIN
      static/common/background.png
  81. BIN
      static/common/close.png
  82. BIN
      static/common/footer.png
  83. BIN
      static/common/location_default.png
  84. BIN
      static/common/no_order.png
  85. BIN
      static/common/radio_selected.png
  86. BIN
      static/common/radio_unselect.png
  87. BIN
      static/common/right.png
  88. BIN
      static/common/slogan.png
  89. BIN
      static/common/timer.png
  90. BIN
      static/index/badge_card_bg.jpg
  91. BIN
      static/index/project.png
  92. BIN
      static/index/question.png
  93. BIN
      static/index/verify.png
  94. BIN
      static/login/hidden.png
  95. BIN
      static/login/invite.png
  96. BIN
      static/login/password.png
  97. BIN
      static/login/phone.png
  98. BIN
      static/login/show.png
  99. BIN
      static/login/verify.png
  100. BIN
      static/logo.png

+ 25 - 0
.gitignore

@@ -0,0 +1,25 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+unpackage
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?

+ 20 - 0
.hbuilderx/launch.json

@@ -0,0 +1,20 @@
+{
+    // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+    // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+    "version" : "0.0",
+    "configurations" : [
+        {
+            "app-plus" : {
+                "launchtype" : "local"
+            },
+            "default" : {
+                "launchtype" : "local"
+            },
+            "type" : "uniCloud"
+        },
+        {
+            "playground" : "standard",
+            "type" : "uni-app:app-ios"
+        }
+    ]
+}

+ 13 - 0
.vite/deps/_metadata.json

@@ -0,0 +1,13 @@
+{
+  "hash": "3d316297",
+  "browserHash": "9c935516",
+  "optimized": {
+    "vue-jsonp": {
+      "src": "../../node_modules/.pnpm/registry.npmmirror.com+vue-jsonp@2.0.0/node_modules/vue-jsonp/dist/index.esm.js",
+      "file": "vue-jsonp.js",
+      "fileHash": "18b6e01a",
+      "needsInterop": false
+    }
+  },
+  "chunks": {}
+}

+ 1 - 0
.vite/deps/package.json

@@ -0,0 +1 @@
+{"type":"module"}

+ 76 - 0
.vite/deps/vue-jsonp.js

@@ -0,0 +1,76 @@
+// ../../../../Projects/4D_uniapp_service/node_modules/.pnpm/registry.npmmirror.com+vue-jsonp@2.0.0/node_modules/vue-jsonp/dist/index.esm.js
+function e(t2, n2) {
+  t2 = t2.replace(/=/g, "");
+  var o2 = [];
+  switch (n2.constructor) {
+    case String:
+    case Number:
+    case Boolean:
+      o2.push(encodeURIComponent(t2) + "=" + encodeURIComponent(n2));
+      break;
+    case Array:
+      n2.forEach(function(n3) {
+        o2 = o2.concat(e(t2 + "[]=", n3));
+      });
+      break;
+    case Object:
+      Object.keys(n2).forEach(function(r) {
+        var a = n2[r];
+        o2 = o2.concat(e(t2 + "[" + r + "]", a));
+      });
+  }
+  return o2;
+}
+function t(e2) {
+  var n2 = [];
+  return e2.forEach(function(e3) {
+    "string" == typeof e3 ? n2.push(e3) : n2 = n2.concat(t(e3));
+  }), n2;
+}
+var n = { install: function(e2) {
+  e2.prototype.$jsonp = o;
+} };
+function o(n2, o2, r) {
+  if (void 0 === o2 && (o2 = {}), "string" != typeof n2)
+    throw new Error('[Vue-jsonp] Type of param "url" is not string.');
+  if ("object" != typeof o2 || !o2)
+    throw new Error("[Vue-jsonp] Invalid params, should be an object.");
+  return r = "number" == typeof r ? r : 5e3, new Promise(function(a, c) {
+    var u = "string" == typeof o2.callbackQuery ? o2.callbackQuery : "callback", i = "string" == typeof o2.callbackName ? o2.callbackName : "jsonp_" + (Math.floor(1e5 * Math.random()) * Date.now()).toString(16);
+    o2[u] = i, delete o2.callbackQuery, delete o2.callbackName;
+    var s = [];
+    Object.keys(o2).forEach(function(t2) {
+      s = s.concat(e(t2, o2[t2]));
+    });
+    var l = t(s).join("&"), f = function() {
+      p(), clearTimeout(m), c({ status: 400, statusText: "Bad Request" });
+    }, p = function() {
+      b.removeEventListener("error", f);
+    }, d = function() {
+      document.body.removeChild(b), delete window[i];
+    }, m = null;
+    r > -1 && (m = setTimeout(function() {
+      p(), d(), c({ statusText: "Request Timeout", status: 408 });
+    }, r)), window[i] = function(e2) {
+      clearTimeout(m), p(), d(), a(e2);
+    };
+    var b = document.createElement("script");
+    b.addEventListener("error", f), b.src = n2 + (/\?/.test(n2) ? "&" : "?") + l, document.body.appendChild(b);
+  });
+}
+export {
+  n as VueJsonp,
+  o as jsonp
+};
+/*! Bundled license information:
+
+vue-jsonp/dist/index.esm.js:
+  (**
+   * Vue Jsonp.
+   * # Carry Your World #
+   *
+   * @author: LancerComet
+   * @license: MIT
+   *)
+*/
+//# sourceMappingURL=vue-jsonp.js.map

+ 7 - 0
.vite/deps/vue-jsonp.js.map

@@ -0,0 +1,7 @@
+{
+  "version": 3,
+  "sources": ["../../node_modules/.pnpm/registry.npmmirror.com+vue-jsonp@2.0.0/node_modules/vue-jsonp/dist/index.esm.js"],
+  "sourcesContent": ["function e(t,n){t=t.replace(/=/g,\"\");var o=[];switch(n.constructor){case String:case Number:case Boolean:o.push(encodeURIComponent(t)+\"=\"+encodeURIComponent(n));break;case Array:n.forEach((function(n){o=o.concat(e(t+\"[]=\",n))}));break;case Object:Object.keys(n).forEach((function(r){var a=n[r];o=o.concat(e(t+\"[\"+r+\"]\",a))}))}return o}function t(e){var n=[];return e.forEach((function(e){\"string\"==typeof e?n.push(e):n=n.concat(t(e))})),n}\n/**\n * Vue Jsonp.\n * # Carry Your World #\n *\n * @author: LancerComet\n * @license: MIT\n */var n={install:function(e){e.prototype.$jsonp=o}};function o(n,o,r){if(void 0===o&&(o={}),\"string\"!=typeof n)throw new Error('[Vue-jsonp] Type of param \"url\" is not string.');if(\"object\"!=typeof o||!o)throw new Error(\"[Vue-jsonp] Invalid params, should be an object.\");return r=\"number\"==typeof r?r:5e3,new Promise((function(a,c){var u=\"string\"==typeof o.callbackQuery?o.callbackQuery:\"callback\",i=\"string\"==typeof o.callbackName?o.callbackName:\"jsonp_\"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);o[u]=i,delete o.callbackQuery,delete o.callbackName;var s=[];Object.keys(o).forEach((function(t){s=s.concat(e(t,o[t]))}));var l=t(s).join(\"&\"),f=function(){p(),clearTimeout(m),c({status:400,statusText:\"Bad Request\"})},p=function(){b.removeEventListener(\"error\",f)},d=function(){document.body.removeChild(b),delete window[i]},m=null;r>-1&&(m=setTimeout((function(){p(),d(),c({statusText:\"Request Timeout\",status:408})}),r)),window[i]=function(e){clearTimeout(m),p(),d(),a(e)};var b=document.createElement(\"script\");b.addEventListener(\"error\",f),b.src=n+(/\\?/.test(n)?\"&\":\"?\")+l,document.body.appendChild(b)}))}export{n as VueJsonp,o as jsonp};\n"],
+  "mappings": ";AAAA,SAAS,EAAEA,IAAEC,IAAE;AAAC,EAAAD,KAAEA,GAAE,QAAQ,MAAK,EAAE;AAAE,MAAIE,KAAE,CAAC;AAAE,UAAOD,GAAE,aAAY;AAAA,IAAC,KAAK;AAAA,IAAO,KAAK;AAAA,IAAO,KAAK;AAAQ,MAAAC,GAAE,KAAK,mBAAmBF,EAAC,IAAE,MAAI,mBAAmBC,EAAC,CAAC;AAAE;AAAA,IAAM,KAAK;AAAM,MAAAA,GAAE,QAAS,SAASA,IAAE;AAAC,QAAAC,KAAEA,GAAE,OAAO,EAAEF,KAAE,OAAMC,EAAC,CAAC;AAAA,MAAC,CAAE;AAAE;AAAA,IAAM,KAAK;AAAO,aAAO,KAAKA,EAAC,EAAE,QAAS,SAAS,GAAE;AAAC,YAAI,IAAEA,GAAE,CAAC;AAAE,QAAAC,KAAEA,GAAE,OAAO,EAAEF,KAAE,MAAI,IAAE,KAAI,CAAC,CAAC;AAAA,MAAC,CAAE;AAAA,EAAC;AAAC,SAAOE;AAAC;AAAC,SAAS,EAAEC,IAAE;AAAC,MAAIF,KAAE,CAAC;AAAE,SAAOE,GAAE,QAAS,SAASA,IAAE;AAAC,gBAAU,OAAOA,KAAEF,GAAE,KAAKE,EAAC,IAAEF,KAAEA,GAAE,OAAO,EAAEE,EAAC,CAAC;AAAA,EAAC,CAAE,GAAEF;AAAC;AAOnb,IAAI,IAAE,EAAC,SAAQ,SAASE,IAAE;AAAC,EAAAA,GAAE,UAAU,SAAO;AAAC,EAAC;AAAE,SAAS,EAAEF,IAAEC,IAAE,GAAE;AAAC,MAAG,WAASA,OAAIA,KAAE,CAAC,IAAG,YAAU,OAAOD;AAAE,UAAM,IAAI,MAAM,gDAAgD;AAAE,MAAG,YAAU,OAAOC,MAAG,CAACA;AAAE,UAAM,IAAI,MAAM,kDAAkD;AAAE,SAAO,IAAE,YAAU,OAAO,IAAE,IAAE,KAAI,IAAI,QAAS,SAAS,GAAE,GAAE;AAAC,QAAI,IAAE,YAAU,OAAOA,GAAE,gBAAcA,GAAE,gBAAc,YAAW,IAAE,YAAU,OAAOA,GAAE,eAAaA,GAAE,eAAa,YAAU,KAAK,MAAM,MAAI,KAAK,OAAO,CAAC,IAAE,KAAK,IAAI,GAAG,SAAS,EAAE;AAAE,IAAAA,GAAE,CAAC,IAAE,GAAE,OAAOA,GAAE,eAAc,OAAOA,GAAE;AAAa,QAAI,IAAE,CAAC;AAAE,WAAO,KAAKA,EAAC,EAAE,QAAS,SAASF,IAAE;AAAC,UAAE,EAAE,OAAO,EAAEA,IAAEE,GAAEF,EAAC,CAAC,CAAC;AAAA,IAAC,CAAE;AAAE,QAAI,IAAE,EAAE,CAAC,EAAE,KAAK,GAAG,GAAE,IAAE,WAAU;AAAC,QAAE,GAAE,aAAa,CAAC,GAAE,EAAE,EAAC,QAAO,KAAI,YAAW,cAAa,CAAC;AAAA,IAAC,GAAE,IAAE,WAAU;AAAC,QAAE,oBAAoB,SAAQ,CAAC;AAAA,IAAC,GAAE,IAAE,WAAU;AAAC,eAAS,KAAK,YAAY,CAAC,GAAE,OAAO,OAAO,CAAC;AAAA,IAAC,GAAE,IAAE;AAAK,QAAE,OAAK,IAAE,WAAY,WAAU;AAAC,QAAE,GAAE,EAAE,GAAE,EAAE,EAAC,YAAW,mBAAkB,QAAO,IAAG,CAAC;AAAA,IAAC,GAAG,CAAC,IAAG,OAAO,CAAC,IAAE,SAASG,IAAE;AAAC,mBAAa,CAAC,GAAE,EAAE,GAAE,EAAE,GAAE,EAAEA,EAAC;AAAA,IAAC;AAAE,QAAI,IAAE,SAAS,cAAc,QAAQ;AAAE,MAAE,iBAAiB,SAAQ,CAAC,GAAE,EAAE,MAAIF,MAAG,KAAK,KAAKA,EAAC,IAAE,MAAI,OAAK,GAAE,SAAS,KAAK,YAAY,CAAC;AAAA,EAAC,CAAE;AAAC;",
+  "names": ["t", "n", "o", "e"]
+}

+ 212 - 0
App.vue

@@ -0,0 +1,212 @@
+<script>
+import request from '/common/request.js';
+export default {
+	onLaunch: function () {
+		console.log('App Launch');
+		// #ifdef APP-PLUS || APP-PLUS-NVUE
+		this.checkVersion();
+		// #endif
+	},
+	onShow: function () {
+		console.log('App Show');
+	},
+	onHide: function () {
+		console.log('App Hide');
+	},
+	data() {
+		return { orderTimer: {}, fastOrderTimer: {}, receiveOrderTimer: {} };
+	},
+	mounted() {
+		// this.playVoiceBroadcast();
+		// this.getFastOrderNum();
+		this.startPlayVoiceBroadcast();
+		uni.$on('startPlayVoiceBroadcast', (res) => {
+			clearInterval(this.orderTimer);
+
+			if (res) {
+				this.startPlayVoiceBroadcast();
+			}
+		});
+		uni.$on('receiveOrdernum', (res) => {
+			clearInterval(this.receiveOrderTimer);
+			res && this.receiveOrdernum();
+		});
+		uni.$on('fastOrderNum', (res) => {
+			clearInterval(this.fastOrderTimer);
+			res && this.fastOrderNum();
+		});
+	},
+	methods: {
+		// #ifdef APP-PLUS || APP-PLUS-NVUE
+		// app更新检测
+		checkVersion() {
+			// 获取应用版本号
+			let version = plus.runtime.version;
+
+			//检测当前平台,如果是安卓则启动安卓更新
+			uni.getSystemInfo({
+				success: (res) => {
+					this.updateHandler(res.platform, version);
+				}
+			});
+		},
+		// 更新操作
+		updateHandler(platform, version) {
+			let data = {
+				platform: platform,
+				version: version
+			};
+			let _this = this;
+			request({
+				url: '/api/getdow',
+				data: { data },
+				success: (res) => {
+					if (res.data.data.version_num1) {
+						const info = res.data.data.version_num1;
+						var urlxz = res.data.data.url;
+						let version_num_d = info.split('.').join('');
+						let version_d = version.split('.').join('');
+						if (info !== '' && version_num_d > version_d) {
+							uni.showModal({
+								//提醒用户更新
+								title: '更新提示',
+								content: `发现新版本,是否更新`,
+								success: (res) => {
+									if (res.confirm) {
+										if (platform == 'android'){
+											plus.runtime.openURL('https://dd.niusenyun.com/dow/嘀咚点到师傅端.apk');
+										} 
+										else if (platform == 'ios') {
+											const appleId = 1629163610; //app对应的appleId
+											plus.runtime.launchApplication(
+												{
+													action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
+												},
+												function (e) {
+													console.log('Open system default browser failed:' + e.message);
+												}
+											);
+										}
+									} else {
+										//	plus.runtime.quit();
+									}
+								}
+							});
+						}
+					}
+				},
+				fail: () => {},
+				complete: () => {
+					//	uni.hideLoading();
+				}
+			});
+		},
+		// #endif
+		// 可接单数量
+		receiveOrdernum() {
+			const _this = this;
+			this.receiveOrderTimer = setInterval(function () {
+				_this.getOrderNum();
+			}, 3000);
+		},
+		startPlayVoiceBroadcast() {
+			const _this = this;
+			this.orderTimer = setInterval(function () {
+				_this.playVoiceBroadcast();
+			}, 3000);
+		},
+		fastOrderNum() {
+			const _this = this;
+			this.fastOrderTimer = setInterval(function () {
+				_this.getFastOrderNum();
+			}, 3000);
+		},
+		playVoiceBroadcast() {
+			request({
+				url: '/api/userjs/play',
+				data: {},
+				success: (res) => {
+					console.log('订单播报', res);
+					if (res.data.code == 1) {
+						const innerAudioContext = uni.createInnerAudioContext();
+						innerAudioContext.autoplay = true;
+						innerAudioContext.src = '/static/voice/order_new.mp3';
+						innerAudioContext.onPlay(() => {});
+
+						console.log('订单播报', res);
+					} else if (res.data.code == 10001) {
+						clearInterval(this.orderTimer);
+					}
+				},
+				fail: () => {},
+				complete: () => {}
+			});
+			request({
+				url: '/api/userjs/cancelplay',
+				data: {},
+				success: (res) => {
+					if (res.data.code == 1) {
+						console.log('取消订单播报', res);
+						const innerAudioContext = uni.createInnerAudioContext();
+						innerAudioContext.autoplay = true;
+						innerAudioContext.src = '/static/voice/order_cancel.mp3';
+						innerAudioContext.onPlay(() => {});
+					}
+				},
+				fail: () => {},
+				complete: () => {}
+			});
+			// that.jiaobiao();
+			//that.tishi()
+
+			//   uni.$on("sxqd", function (data) {
+			//     that.jiaobiao();
+			//   });
+		},
+		getFastOrderNum() {
+			request({
+				url: '/api/userjs/getJsOrdernum',
+				data: {},
+				success: (res) => {
+					console.log('抢单订单数量', res);
+					if (res.data.code == 0) {
+						clearInterval(this.fastOrderTimer);
+					}
+					if (res.data.data > 0) {
+						uni.setTabBarBadge({ index: 2, text: res.data.data + '' });
+					} else {
+						// 没有认证
+						uni.removeTabBarBadge({ index: 2 });
+					}
+				},
+				fail: () => {},
+				complete: () => {}
+			});
+		},
+		getOrderNum() {
+			request({
+				url: '/api/userjs/getOrdernum',
+				data: {},
+				success: (res) => {
+					console.log('可接单数量', res);
+					if (res.data.code == 0) {
+						clearInterval(this.receiveOrderTimer);
+					}
+					if (res.data.data > 0) {
+						uni.setTabBarBadge({ index: 3, text: res.data.data + '' });
+					} else {
+						// 没有认证
+						uni.removeTabBarBadge({ index: 3 });
+					}
+				},
+				fail: () => {},
+				complete: () => {}
+			});
+		}
+	}
+};
+</script>
+
+<style>
+/*每个页面公共css */
+</style>

+ 1 - 0
README.md

@@ -0,0 +1 @@
+# 4D_uniapp_service

+ 32 - 0
androidPrivacy.json

@@ -0,0 +1,32 @@
+{
+    "version" : "100",
+    "prompt" : "template",
+    "title" : "个人信息保护提示",
+    "message" : "  欢迎使用嘀咚点到! 我们非常重视和保护您的个人信息和隐私,请你务必审慎阅读、充分理解“用户协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://h55.niusenyun.com/pages/account/help?id=21\" >《用户协议》</a>和<a href=\"https://h55.niusenyun.com/pages/account/help?id=5\">《隐私政策》</a>了解我们是如何规范地收集和使用您的个人信息。如果你同意,请点击下面按钮开始接受我们的服务。",
+    "buttonAccept" : "同意并接受",
+    "buttonRefuse" : "不同意",
+    "hrefLoader" : "system",
+    "second" : {
+        "title" : "温馨提示",
+        "message" : "  如果您不同意<a href=\"https://h55.niusenyun.com/pages/account/help?id=21\">《用户协议》</a>和<a href=\"https://h55.niusenyun.com/pages/account/help?id=5\">《隐私政策》</a>,很遗憾我们将无法为您提供服务。您需要同意以上协议后,才能使用嘀咚点到!。<br/>  我们将严格按照相关法律法规要求,坚决保障您的个人隐私和信息安全",
+        "buttonAccept" : "同意并继续",
+        "buttonRefuse" : "放弃使用"
+    },
+    "styles" : {
+        "backgroundColor" : "#FFFFFF",
+        "borderRadius" : "5rpx",
+        "title" : {
+            "color" : "#000000"
+        },
+        "buttonAccept" : {
+            "color" : "#599C0B"
+        },
+        "buttonRefuse" : {
+            "color" : "#6A6A6A"
+        }
+    },
+    "disagreeMode" : {
+        "support" : false,
+        "loadNativePlugins" : false
+    }
+}

+ 11 - 0
common/auth.js

@@ -0,0 +1,11 @@
+export default function async(redirect = true) {
+  const id = uni.getStorageSync("id");
+  const token = uni.getStorageSync("token");
+  if (!id || !token) {
+    redirect && uni.navigateTo({
+      url: "/pages/account/login",
+    });
+    return false;
+  }
+  return true;
+}

+ 2 - 0
common/config.js

@@ -0,0 +1,2 @@
+export const apiBaseUrl = 'https://dd.niusenyun.com';
+export const webBaseUrl = 'https://h55.niusenyun.com';

+ 139 - 0
common/getLocation.js

@@ -0,0 +1,139 @@
+// #ifdef H5
+import { jsonp } from "vue-jsonp";
+
+// #endif
+// import wx from 'weixin-js-sdk'
+
+let locationLoading = false;
+export default function() {
+	if (locationLoading) return;
+	locationLoading = true;
+	console.log("location start");
+
+	// wx.config({
+	//   debug: false, // 开启调试模式,
+	//   appId: data.appId, //必填,企业号的唯一标识,此处企业号corpid
+	//   timestamp: data.timestamp, //必填,生成签名的时间戳
+	//   nonceStr: data.nonceStr, //必填,生成签名的随机串
+	//   signature: data.signature, //必填,签名,见附录1
+	//   jsApiList: ["chooseImage"], //必填,需要使用的JS接口列表JS接口列表见附录2
+	//   });
+
+	return new Promise((resolve, reject) => {
+		let locationType = "gcj02";
+
+		// #ifdef APP-PLUS
+		let ua = uni.getSystemInfoSync().platform;
+		if (/ios/i.test(ua)) locationType = "wgs84";
+		// #endif
+		uni.getLocation({
+			type: 'wgs84', //gcj02
+			altitude: false, 
+			isHighAccuracy: false,
+			geocode: true,
+			success: function(res) {
+				console.log("GPS", res);
+				// const key = "MPRBZ-N4E66-BI3SY-M3L4N-S2AW5-BIBGN";
+				let url = "";
+				let latitude = res.latitude;
+				let longitude = res.longitude;
+				let data = {
+					// ...res?.address,
+					location: {
+						lat: res.latitude,
+						lng: res.longitude
+					}
+				};
+
+
+				uni.setStorageSync('address', res);
+
+				resolve(data);
+				// let url = "https://apis.map.qq.com/ws/coord/v1/translate";
+				// let data = {
+				//   locations: `${latitude},${longitude}`,
+				//   key,
+				//   output: "jsonp",
+				//   type: 1,
+				// };
+				// jsonp(url, data).then((res) => {
+				//   console.log("坐标转换", res);
+				//   if (res?.status == 0) {
+				//     const translateLocation = res?.locations;
+				//     if (translateLocation && translateLocation?.length) {
+				//       latitude = translateLocation[0]?.lat;
+				//       longitude = translateLocation[0]?.lng;
+				//     }
+				//   }
+
+				// uni.request({
+				//   url: "https://api.niusenyun.com/api/v1/getRegionByLocation",
+				//   method: "POST",
+				//   data: {
+				//     latitude,
+				//     longitude,
+				//   },
+				//   success: (res) => {
+				//     console.log("geocoder", res);
+				//     if (res.data?.code == 0) {
+				//       const locationData = res.data?.data;
+				//       const address = locationData?.address_component ?? {};
+				//       const address_info = locationData?.ad_info ?? {};
+
+				//       const addressData = { ...address_info, ...address };
+				//       uni.setStorage({
+				//         key: "address",
+				//         data: addressData,
+				//         success: function () {},
+				//       });
+				//       resolve(addressData);
+				//     }
+				//   },
+				// });
+
+				// url = "https://apis.map.qq.com/ws/geocoder/v1/";
+				// data = {
+				//   location: `${latitude},${longitude}`,
+				//   key,
+				//   output: "jsonp",
+				// };
+				// jsonp(url, data).then((res) => {
+				//   console.log("geocoder info", res);
+				//   const address = res.result?.address_component ?? {};
+				//   const address_info = res.result?.ad_info ?? {};
+				//   const location = res.result?.location ?? address_info?.location;
+				//   const addressData = {
+				//     ...address_info,
+				//     ...address,
+				//     location,
+				//   };
+
+
+				// resolve(addressData);
+				// });
+				// });
+
+				// #ifdef APP
+				// const addressData = res?.address; addressData.location = {
+				// 	lng: res?.longitude,
+				// 	lat: res?.latitude,
+				// };
+
+				// uni.setStorage({
+				// 	key: "address",
+				// 	data: addressData,
+				// 	success: function() {},
+				// });
+
+				// #endif
+			},
+			fail: function(ret) {
+				console.log("定位失败", ret);
+				reject(ret);
+			},
+			complete: function(ret) {
+				locationLoading = false;
+			},
+		});
+	});
+}

+ 2017 - 0
common/global.css

@@ -0,0 +1,2017 @@
+/* ==================
+        初始化
+ ==================== */
+body {
+	background-color: #F7F8F9;
+	font-size: 28upx;
+	color: #333333;
+	font-family: Helvetica Neue, Helvetica, sans-serif;
+}
+
+view,
+scroll-view,
+swiper,
+button,
+input,
+textarea,
+label,
+navigator,
+image {
+	box-sizing: border-box;
+}
+
+.round {
+	border-radius: 5000upx;
+}
+
+.radius {
+	border-radius: 6upx;
+}
+.radius-df {
+	border-radius: 10upx;
+}
+.radius-lg {
+	border-radius: 20upx;
+}
+.radius-xl {
+	border-radius: 40upx;
+}
+.radius-top-xl {
+	border-top-left-radius: 40upx;
+	border-top-right-radius: 40upx;
+}
+.overflow{overflow: hidden;}
+
+/* ==================
+          图片
+ ==================== */
+
+image {
+	max-width: 100%;
+	display: inline-block;
+	position: relative;
+	z-index: 0;
+}
+
+image.loading::before {
+	content: "";
+	background-color: #f5f5f5;
+	display: block;
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	z-index: -2;
+}
+
+image.loading::after {
+	content: "\e7f1";
+	font-family: "cuIcon";
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 32upx;
+	height: 32upx;
+	line-height: 32upx;
+	right: 0;
+	bottom: 0;
+	z-index: -1;
+	font-size: 32upx;
+	margin: auto;
+	color: #ccc;
+	-webkit-animation: cuIcon-spin 2s infinite linear;
+	animation: cuIcon-spin 2s infinite linear;
+	display: block;
+}
+
+.response {
+	width: 100%;
+}
+
+/* ==================
+         开关
+ ==================== */
+
+switch,
+checkbox,
+radio {
+	position: relative;
+}
+
+switch::after,
+switch::before {
+	font-family: "cuIcon";
+	content: "\e645";
+	position: absolute;
+	color: #ffffff !important;
+	top: 0%;
+	left: 0upx;
+	font-size: 26upx;
+	line-height: 26px;
+	width: 50%;
+	text-align: center;
+	pointer-events: none;
+	transform: scale(0, 0);
+	transition: all 0.3s ease-in-out 0s;
+	z-index: 9;
+	bottom: 0;
+	height: 26px;
+	margin: auto;
+}
+
+switch::before {
+	content: "\e646";
+	right: 0;
+	transform: scale(1, 1);
+	left: auto;
+}
+
+switch[checked]::after,
+switch.checked::after {
+	transform: scale(1, 1);
+}
+
+switch[checked]::before,
+switch.checked::before {
+	transform: scale(0, 0);
+}
+
+/* #ifndef MP-ALIPAY */
+radio::before,
+checkbox::before {
+	font-family: "cuIcon";
+	content: "\e645";
+	position: absolute;
+	color: #ffffff !important;
+	top: 50%;
+	margin-top: -8px;
+	right: 5px;
+	font-size: 32upx;
+	line-height: 16px;
+	pointer-events: none;
+	transform: scale(1, 1);
+	transition: all 0.3s ease-in-out 0s;
+	z-index: 9;
+}
+
+radio .wx-radio-input,
+checkbox .wx-checkbox-input,
+radio .uni-radio-input,
+checkbox .uni-checkbox-input {
+	margin: 0;
+	width: 24px;
+	height: 24px;
+}
+
+checkbox.round .wx-checkbox-input,
+checkbox.round .uni-checkbox-input {
+	border-radius: 100upx;
+}
+
+/* #endif */
+
+switch[checked]::before {
+	transform: scale(0, 0);
+}
+
+switch .wx-switch-input,
+switch .uni-switch-input {
+	border: none;
+	padding: 0 24px;
+	width: 48px;
+	height: 26px;
+	margin: 0;
+	border-radius: 100upx;
+}
+
+switch .wx-switch-input:not([class*="bg-"]),
+switch .uni-switch-input:not([class*="bg-"]) {
+	background: #8799a3 !important;
+}
+
+switch .wx-switch-input::after,
+switch .uni-switch-input::after {
+	margin: auto;
+	width: 26px;
+	height: 26px;
+	border-radius: 100upx;
+	left: 0upx;
+	top: 0upx;
+	bottom: 0upx;
+	position: absolute;
+	transform: scale(0.9, 0.9);
+	transition: all 0.1s ease-in-out 0s;
+}
+
+switch .wx-switch-input.wx-switch-input-checked::after,
+switch .uni-switch-input.uni-switch-input-checked::after {
+	margin: auto;
+	left: 22px;
+	box-shadow: none;
+	transform: scale(0.9, 0.9);
+}
+
+radio-group {
+	display: inline-block;
+}
+
+
+
+switch.radius .wx-switch-input::after,
+switch.radius .wx-switch-input,
+switch.radius .wx-switch-input::before,
+switch.radius .uni-switch-input::after,
+switch.radius .uni-switch-input,
+switch.radius .uni-switch-input::before {
+	border-radius: 10upx;
+}
+
+switch .wx-switch-input::before,
+radio.radio::before,
+checkbox .wx-checkbox-input::before,
+radio .wx-radio-input::before,
+switch .uni-switch-input::before,
+radio.radio::before,
+checkbox .uni-checkbox-input::before,
+radio .uni-radio-input::before {
+	display: none;
+}
+
+radio.radio[checked]::after,
+radio.radio .uni-radio-input-checked::after {
+	content: "";
+	background-color: transparent;
+	display: block;
+	position: absolute;
+	width: 8px;
+	height: 8px;
+	z-index: 999;
+	top: 0upx;
+	left: 0upx;
+	right: 0;
+	bottom: 0;
+	margin: auto;
+	border-radius: 200upx;
+	/* #ifndef MP */
+	border: 7px solid #ffffff !important;
+	/* #endif */
+
+	/* #ifdef MP */
+	border: 8px solid #ffffff !important;
+	/* #endif */
+}
+
+.switch-sex::after {
+	content: "\e71c";
+}
+
+.switch-sex::before {
+	content: "\e71a";
+}
+
+.switch-sex .wx-switch-input,
+.switch-sex .uni-switch-input {
+	background: #e54d42 !important;
+	border-color: #e54d42 !important;
+}
+
+.switch-sex[checked] .wx-switch-input,
+.switch-sex.checked .uni-switch-input {
+	background: #0081ff !important;
+	border-color: #0081ff !important;
+}
+
+switch.red[checked] .wx-switch-input.wx-switch-input-checked,
+checkbox.red[checked] .wx-checkbox-input,
+radio.red[checked] .wx-radio-input,
+switch.red.checked .uni-switch-input.uni-switch-input-checked,
+checkbox.red.checked .uni-checkbox-input,
+radio.red.checked .uni-radio-input {
+	background-color: #e54d42 !important;
+	border-color: #e54d42 !important;
+	color: #ffffff !important;
+}
+
+switch.orange[checked] .wx-switch-input,
+checkbox.orange[checked] .wx-checkbox-input,
+radio.orange[checked] .wx-radio-input,
+switch.orange.checked .uni-switch-input,
+checkbox.orange.checked .uni-checkbox-input,
+radio.orange.checked .uni-radio-input {
+	background-color: #f37b1d !important;
+	border-color: #f37b1d !important;
+	color: #ffffff !important;
+}
+
+switch.yellow[checked] .wx-switch-input,
+checkbox.yellow[checked] .wx-checkbox-input,
+radio.yellow[checked] .wx-radio-input,
+switch.yellow.checked .uni-switch-input,
+checkbox.yellow.checked .uni-checkbox-input,
+radio.yellow.checked .uni-radio-input {
+	background-color: #fbbd08 !important;
+	border-color: #fbbd08 !important;
+	color: #333333 !important;
+}
+
+switch.olive[checked] .wx-switch-input,
+checkbox.olive[checked] .wx-checkbox-input,
+radio.olive[checked] .wx-radio-input,
+switch.olive.checked .uni-switch-input,
+checkbox.olive.checked .uni-checkbox-input,
+radio.olive.checked .uni-radio-input {
+	background-color: #8dc63f !important;
+	border-color: #8dc63f !important;
+	color: #ffffff !important;
+}
+
+switch.green[checked] .wx-switch-input,
+switch[checked] .wx-switch-input,
+checkbox.green[checked] .wx-checkbox-input,
+checkbox[checked] .wx-checkbox-input,
+radio.green[checked] .wx-radio-input,
+radio[checked] .wx-radio-input,
+switch.green.checked .uni-switch-input,
+switch.checked .uni-switch-input,
+checkbox.green.checked .uni-checkbox-input,
+checkbox.checked .uni-checkbox-input,
+radio.green.checked .uni-radio-input,
+radio.checked .uni-radio-input {
+	background-color: #39b54a !important;
+	border-color: #39b54a !important;
+	color: #ffffff !important;
+	border-color: #39B54A !important;
+}
+
+switch.cyan[checked] .wx-switch-input,
+checkbox.cyan[checked] .wx-checkbox-input,
+radio.cyan[checked] .wx-radio-input,
+switch.cyan.checked .uni-switch-input,
+checkbox.cyan.checked .uni-checkbox-input,
+radio.cyan.checked .uni-radio-input {
+	background-color: #1cbbb4 !important;
+	border-color: #1cbbb4 !important;
+	color: #ffffff !important;
+}
+
+switch.blue[checked] .wx-switch-input,
+checkbox.blue[checked] .wx-checkbox-input,
+radio.blue[checked] .wx-radio-input,
+switch.blue.checked .uni-switch-input,
+checkbox.blue.checked .uni-checkbox-input,
+radio.blue.checked .uni-radio-input {
+	background-color: #0081ff !important;
+	border-color: #0081ff !important;
+	color: #ffffff !important;
+}
+
+switch.purple[checked] .wx-switch-input,
+checkbox.purple[checked] .wx-checkbox-input,
+radio.purple[checked] .wx-radio-input,
+switch.purple.checked .uni-switch-input,
+checkbox.purple.checked .uni-checkbox-input,
+radio.purple.checked .uni-radio-input {
+	background-color: #6739b6 !important;
+	border-color: #6739b6 !important;
+	color: #ffffff !important;
+}
+
+switch.mauve[checked] .wx-switch-input,
+checkbox.mauve[checked] .wx-checkbox-input,
+radio.mauve[checked] .wx-radio-input,
+switch.mauve.checked .uni-switch-input,
+checkbox.mauve.checked .uni-checkbox-input,
+radio.mauve.checked .uni-radio-input {
+	background-color: #9c26b0 !important;
+	border-color: #9c26b0 !important;
+	color: #ffffff !important;
+}
+
+switch.pink[checked] .wx-switch-input,
+checkbox.pink[checked] .wx-checkbox-input,
+radio.pink[checked] .wx-radio-input,
+switch.pink.checked .uni-switch-input,
+checkbox.pink.checked .uni-checkbox-input,
+radio.pink.checked .uni-radio-input {
+	background-color: #e03997 !important;
+	border-color: #e03997 !important;
+	color: #ffffff !important;
+}
+
+switch.brown[checked] .wx-switch-input,
+checkbox.brown[checked] .wx-checkbox-input,
+radio.brown[checked] .wx-radio-input,
+switch.brown.checked .uni-switch-input,
+checkbox.brown.checked .uni-checkbox-input,
+radio.brown.checked .uni-radio-input {
+	background-color: #a5673f !important;
+	border-color: #a5673f !important;
+	color: #ffffff !important;
+}
+
+switch.grey[checked] .wx-switch-input,
+checkbox.grey[checked] .wx-checkbox-input,
+radio.grey[checked] .wx-radio-input,
+switch.grey.checked .uni-switch-input,
+checkbox.grey.checked .uni-checkbox-input,
+radio.grey.checked .uni-radio-input {
+	background-color: #8799a3 !important;
+	border-color: #8799a3 !important;
+	color: #ffffff !important;
+}
+
+switch.gray[checked] .wx-switch-input,
+checkbox.gray[checked] .wx-checkbox-input,
+radio.gray[checked] .wx-radio-input,
+switch.gray.checked .uni-switch-input,
+checkbox.gray.checked .uni-checkbox-input,
+radio.gray.checked .uni-radio-input {
+	background-color: #f0f0f0 !important;
+	border-color: #f0f0f0 !important;
+	color: #333333 !important;
+}
+
+switch.black[checked] .wx-switch-input,
+checkbox.black[checked] .wx-checkbox-input,
+radio.black[checked] .wx-radio-input,
+switch.black.checked .uni-switch-input,
+checkbox.black.checked .uni-checkbox-input,
+radio.black.checked .uni-radio-input {
+	background-color: #333333 !important;
+	border-color: #333333 !important;
+	color: #ffffff !important;
+}
+
+switch.white[checked] .wx-switch-input,
+checkbox.white[checked] .wx-checkbox-input,
+radio.white[checked] .wx-radio-input,
+switch.white.checked .uni-switch-input,
+checkbox.white.checked .uni-checkbox-input,
+radio.white.checked .uni-radio-input {
+	background-color: #ffffff !important;
+	border-color: #ffffff !important;
+	color: #333333 !important;
+}
+
+/* ==================
+          边框
+ ==================== */
+
+/* -- 实线 -- */
+
+.solid,
+.solid-top,
+.solid-right,
+.solid-bottom,
+.solid-left,
+.solids,
+.solids-top,
+.solids-right,
+.solids-bottom,
+.solids-left,
+.dashed,
+.dashed-top,
+.dashed-right,
+.dashed-bottom,
+.dashed-left {
+	position: relative;
+}
+
+.solid::after,
+.solid-top::after,
+.solid-right::after,
+.solid-bottom::after,
+.solid-left::after,
+.solids::after,
+.solids-top::after,
+.solids-right::after,
+.solids-bottom::after,
+.solids-left::after,
+.dashed::after,
+.dashed-top::after,
+.dashed-right::after,
+.dashed-bottom::after,
+.dashed-left::after {
+	content: " ";
+	width: 200%;
+	height: 200%;
+	position: absolute;
+	top: 0;
+	left: 0;
+	border-radius: inherit;
+	transform: scale(0.5);
+	transform-origin: 0 0;
+	pointer-events: none;
+	box-sizing: border-box;
+}
+
+.solid::after {
+	border: 1upx solid rgba(0, 0, 0, 0.1);
+}
+
+.solid-top::after {
+	border-top: 1upx solid rgba(0, 0, 0, 0.1);
+}
+
+.solid-right::after {
+	border-right: 1upx solid rgba(0, 0, 0, 0.1);
+}
+
+.solid-bottom::after {
+	border-bottom: 1upx solid rgba(0, 0, 0, 0.1);
+}
+.solid-bottom-black{border-bottom: 2upx solid rgba(0, 0, 0, 1)}
+.solid-left::after {
+	border-left: 1upx solid rgba(0, 0, 0, 0.1);
+}
+
+.solids::after {
+	border: 8upx solid #eee;
+}
+
+.solids-top::after {
+	border-top: 8upx solid #eee;
+}
+
+.solids-right::after {
+	border-right: 8upx solid #eee;
+}
+
+.solids-bottom::after {
+	border-bottom: 8upx solid #eee;
+}
+
+.solids-left::after {
+	border-left: 8upx solid #eee;
+}
+.solid-black{border:2upx solid #000 ;}
+.solid-gray{border:2upx solid #c9c9c9 ;}
+/* -- 虚线 -- */
+.dotted {
+	border: 1upx dotted #999;
+}
+.dashed::after {
+	border: 1upx dashed #ddd;
+}
+
+.dashed-top::after {
+	border-top: 1upx dashed #ddd;
+}
+
+.dashed-right::after {
+	border-right: 1upx dashed #ddd;
+}
+
+.dashed-bottom::after {
+	border-bottom: 1upx dashed #ddd;
+}
+
+.dashed-left::after {
+	border-left: 1upx dashed #ddd;
+}
+
+/* -- 阴影 -- */
+
+.shadow[class*='white'] {
+	--ShadowSize: 0 1upx 6upx;
+}
+
+.shadow-lg {
+	--ShadowSize: 0upx 40upx 100upx 0upx;
+}
+
+.shadow-warp {
+	position: relative;
+	box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1);
+}
+
+.shadow-warp:before,
+.shadow-warp:after {
+	position: absolute;
+	content: "";
+	top: 20upx;
+	bottom: 30upx;
+	left: 20upx;
+	width: 50%;
+	box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2);
+	transform: rotate(-3deg);
+	z-index: -1;
+}
+
+.shadow-warp:after {
+	right: 20upx;
+	left: auto;
+	transform: rotate(3deg);
+}
+
+.shadow-blur {
+	position: relative;
+}
+
+.shadow-blur::before {
+	content: "";
+	display: block;
+	background: inherit;
+	filter: blur(10upx);
+	position: absolute;
+	width: 100%;
+	height: 100%;
+	top: 10upx;
+	left: 10upx;
+	z-index: -1;
+	opacity: 0.4;
+	transform-origin: 0 0;
+	border-radius: inherit;
+	transform: scale(1, 1);
+}
+
+/* ==================
+          加载
+ ==================== */
+
+.load-progress {
+	pointer-events: none;
+	top: 0;
+	position: fixed;
+	width: 100%;
+	left: 0;
+	z-index: 2000;
+}
+
+.load-progress.hide {
+	display: none;
+}
+
+.load-progress .load-progress-bar {
+	position: relative;
+	width: 100%;
+	height: 4upx;
+	overflow: hidden;
+	transition: all 200ms ease 0s;
+}
+
+.load-progress .load-progress-spinner {
+	position: absolute;
+	top: 10upx;
+	right: 10upx;
+	z-index: 2000;
+	display: block;
+}
+
+.load-progress .load-progress-spinner::after {
+	content: "";
+	display: block;
+	width: 24upx;
+	height: 24upx;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+	border: solid 4upx transparent;
+	border-top-color: inherit;
+	border-left-color: inherit;
+	border-radius: 50%;
+	-webkit-animation: load-progress-spinner 0.4s linear infinite;
+	animation: load-progress-spinner 0.4s linear infinite;
+}
+
+@-webkit-keyframes load-progress-spinner {
+	0% {
+		-webkit-transform: rotate(0);
+		transform: rotate(0);
+	}
+
+	100% {
+		-webkit-transform: rotate(360deg);
+		transform: rotate(360deg);
+	}
+}
+
+@keyframes load-progress-spinner {
+	0% {
+		-webkit-transform: rotate(0);
+		transform: rotate(0);
+	}
+
+	100% {
+		-webkit-transform: rotate(360deg);
+		transform: rotate(360deg);
+	}
+}
+
+
+/* ==================
+         轮播
+ ==================== */
+swiper .a-swiper-dot {
+	display: inline-block;
+	width: 16upx;
+	height: 16upx;
+	background: rgba(0, 0, 0, .3);
+	border-radius: 50%;
+	vertical-align: middle;
+}
+
+swiper[class*="-dot"] .wx-swiper-dots,
+swiper[class*="-dot"] .a-swiper-dots,
+swiper[class*="-dot"] .uni-swiper-dots {
+	display: flex;
+	align-items: center;
+	width: 100%;
+	justify-content: center;
+}
+
+swiper.square-dot .wx-swiper-dot,
+swiper.square-dot .a-swiper-dot,
+swiper.square-dot .uni-swiper-dot {
+	background-color: #ffffff;
+	opacity: 0.4;
+	width: 10upx;
+	height: 10upx;
+	border-radius: 20upx;
+	margin: 0 8upx !important;
+}
+
+swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active,
+swiper.square-dot .a-swiper-dot.a-swiper-dot-active,
+swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active {
+	opacity: 1;
+	width: 30upx;
+}
+
+swiper.round-dot .wx-swiper-dot,
+swiper.round-dot .a-swiper-dot,
+swiper.round-dot .uni-swiper-dot {
+	width: 10upx;
+	height: 10upx;
+	position: relative;
+	margin: 4upx 8upx !important;
+}
+
+swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after,
+swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after,
+swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after {
+	content: "";
+	position: absolute;
+	width: 10upx;
+	height: 10upx;
+	top: 0upx;
+	left: 0upx;
+	right: 0;
+	bottom: 0;
+	margin: auto;
+	background-color: #ffffff;
+	border-radius: 20upx;
+}
+
+swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active,
+swiper.round-dot .a-swiper-dot.a-swiper-dot-active,
+swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active {
+	width: 18upx;
+	height: 18upx;
+}
+
+.screen-swiper {
+	min-height: 375upx;
+}
+
+.screen-swiper image,
+.screen-swiper video,
+.swiper-item image,
+.swiper-item video {
+	width: 100%;
+	display: block;
+	height: 100%;
+	margin: 0;
+	pointer-events: none;
+}
+
+.card-swiper {
+	height: 420upx !important;
+}
+
+.card-swiper swiper-item {
+	width: 610upx !important;
+	left: 70upx;
+	box-sizing: border-box;
+	padding: 40upx 0upx 70upx;
+	overflow: initial;
+}
+
+.card-swiper swiper-item .swiper-item {
+	width: 100%;
+	display: block;
+	height: 100%;
+	border-radius: 10upx;
+	transform: scale(0.9);
+	transition: all 0.2s ease-in 0s;
+	overflow: hidden;
+}
+
+.card-swiper swiper-item.cur .swiper-item {
+	transform: none;
+	transition: all 0.2s ease-in 0s;
+}
+
+
+.tower-swiper {
+	height: 420upx;
+	position: relative;
+	max-width: 750upx;
+	overflow: hidden;
+}
+
+.tower-swiper .tower-item {
+	position: absolute;
+	width: 300upx;
+	height: 380upx;
+	top: 0;
+	bottom: 0;
+	left: 50%;
+	margin: auto;
+	transition: all 0.2s ease-in 0s;
+	opacity: 1;
+}
+
+.tower-swiper .tower-item.none {
+	opacity: 0;
+}
+
+.tower-swiper .tower-item .swiper-item {
+	width: 100%;
+	height: 100%;
+	border-radius: 6upx;
+	overflow: hidden;
+}
+
+/* ==================
+          布局
+ ==================== */
+
+/*  -- flex弹性布局 -- */
+
+.flex {
+	display: flex;
+}
+
+.basis-xs {
+	flex-basis: 20%;
+}
+.basis-s {
+	flex-basis: 25%;
+}
+.basis-m {
+	flex-basis: 30%;
+}
+.basis-xm {
+	flex-basis: 35%;
+}
+.basis-sm {
+	flex-basis: 40%;
+}
+
+.basis-df {
+	flex-basis: 50%;
+}
+
+.basis-lg {
+	flex-basis: 60%;
+}
+.basis-l {
+	flex-basis: 70%;
+}
+.basis-xl {
+	flex-basis: 80%;
+}
+
+.flex-sub {
+	flex: 1;
+}
+
+.flex-twice {
+	flex: 2;
+}
+
+.flex-treble {
+	flex: 3;
+}
+
+.flex-direction {
+	flex-direction: column;
+}
+
+.flex-wrap {
+	flex-wrap: wrap;
+}
+
+.align-start {
+	align-items: flex-start;
+}
+
+.align-end {
+	align-items: flex-end;
+}
+
+.align-center {
+	align-items: center;
+}
+
+.align-stretch {
+	align-items: stretch;
+}
+
+.self-start {
+	align-self: flex-start;
+}
+
+.self-center {
+	align-self: flex-center;
+}
+
+.self-end {
+	align-self: flex-end;
+}
+
+.self-stretch {
+	align-self: stretch;
+}
+
+.align-stretch {
+	align-items: stretch;
+}
+
+.justify-start {
+	justify-content: flex-start;
+}
+
+.justify-end {
+	justify-content: flex-end;
+}
+
+.justify-center {
+	justify-content: center;
+}
+
+.justify-between {
+	justify-content: space-between;
+}
+
+.justify-around {
+	justify-content: space-around;
+}
+
+/* grid布局 */
+
+.grid {
+	display: flex;
+	flex-wrap: wrap;
+}
+
+.grid.grid-square {
+	overflow: hidden;
+}
+
+.grid.grid-square .cu-tag {
+	position: absolute;
+	right: 0;
+	top: 0;
+	border-bottom-left-radius: 6upx;
+	padding: 6upx 12upx;
+	height: auto;
+	background-color: rgba(0, 0, 0, 0.5);
+}
+
+.grid.grid-square>view>text[class*="cuIcon-"] {
+	font-size: 52upx;
+	position: absolute;
+	color: #8799a3;
+	margin: auto;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	flex-direction: column;
+}
+
+.grid.grid-square>view {
+	margin-right: 20upx;
+	margin-bottom: 20upx;
+	border-radius: 6upx;
+	position: relative;
+	overflow: hidden;
+}
+.grid.grid-square>view.bg-img image {
+	width: 100%;
+	height: 100%;
+	position: absolute;
+}
+.grid.col-1.grid-square>view {
+	padding-bottom: 100%;
+	height: 0;
+	margin-right: 0;
+}
+
+.grid.col-2.grid-square>view {
+	padding-bottom: calc((100% - 20upx)/2);
+	height: 0;
+	width: calc((100% - 20upx)/2);
+}
+
+.grid.col-3.grid-square>view {
+	padding-bottom: calc((100% - 40upx)/3);
+	height: 0;
+	width: calc((100% - 40upx)/3);
+}
+
+.grid.col-4.grid-square>view {
+	padding-bottom: calc((100% - 60upx)/4);
+	height: 0;
+	width: calc((100% - 60upx)/4);
+}
+
+.grid.col-5.grid-square>view {
+	padding-bottom: calc((100% - 80upx)/5);
+	height: 0;
+	width: calc((100% - 80upx)/5);
+}
+
+.grid.col-2.grid-square>view:nth-child(2n),
+.grid.col-3.grid-square>view:nth-child(3n),
+.grid.col-4.grid-square>view:nth-child(4n),
+.grid.col-5.grid-square>view:nth-child(5n) {
+	margin-right: 0;
+}
+
+.grid.col-1>view {
+	width: 100%;
+}
+
+.grid.col-2>view {
+	width: 50%;
+}
+
+.grid.col-3>view {
+	width: 33.33%;
+}
+
+.grid.col-4>view {
+	width: 25%;
+}
+
+.grid.col-5>view {
+	width: 20%;
+}
+
+/*  -- 内外边距 -- */
+
+.margin-0 {
+	margin: 0;
+}
+
+.margin-xs {
+	margin: 10upx;
+}
+
+.margin-sm {
+	margin: 20upx;
+}
+
+.margin {
+	margin: 30upx;
+}
+
+.margin-lg {
+	margin: 40upx;
+}
+
+.margin-xl {
+	margin: 50upx;
+}
+
+.margin-top-xs {
+	margin-top: 10upx;
+}
+
+.margin-top-sm {
+	margin-top: 20upx;
+}
+
+.margin-top {
+	margin-top: 30upx;
+}
+
+.margin-top-lg {
+	margin-top: 40upx;
+}
+
+.margin-top-xl {
+	margin-top: 50upx;
+}
+
+.margin-right-xs {
+	margin-right: 10upx;
+}
+
+.margin-right-sm {
+	margin-right: 20upx;
+}
+
+.margin-right {
+	margin-right: 30upx;
+}
+
+.margin-right-lg {
+	margin-right: 40upx;
+}
+
+.margin-right-xl {
+	margin-right: 50upx;
+}
+
+.margin-bottom-xs {
+	margin-bottom: 10upx;
+}
+
+.margin-bottom-sm {
+	margin-bottom: 20upx;
+}
+
+.margin-bottom {
+	margin-bottom: 30upx;
+}
+
+.margin-bottom-lg {
+	margin-bottom: 40upx;
+}
+
+.margin-bottom-xl {
+	margin-bottom: 50upx;
+}
+
+.margin-left-xs {
+	margin-left: 10upx;
+}
+
+.margin-left-sm {
+	margin-left: 20upx;
+}
+
+.margin-left {
+	margin-left: 30upx;
+}
+
+.margin-left-lg {
+	margin-left: 40upx;
+}
+
+.margin-left-xl {
+	margin-left: 50upx;
+}
+
+.margin-lr-xs {
+	margin-left: 10upx;
+	margin-right: 10upx;
+}
+
+.margin-lr-sm {
+	margin-left: 20upx;
+	margin-right: 20upx;
+}
+
+.margin-lr {
+	margin-left: 30upx;
+	margin-right: 30upx;
+}
+
+.margin-lr-lg {
+	margin-left: 40upx;
+	margin-right: 40upx;
+}
+
+.margin-lr-xl {
+	margin-left: 50upx;
+	margin-right: 50upx;
+}
+
+.margin-tb-xs {
+	margin-top: 10upx;
+	margin-bottom: 10upx;
+}
+
+.margin-tb-sm {
+	margin-top: 20upx;
+	margin-bottom: 20upx;
+}
+
+.margin-tb {
+	margin-top: 30upx;
+	margin-bottom: 30upx;
+}
+
+.margin-tb-lg {
+	margin-top: 40upx;
+	margin-bottom: 40upx;
+}
+
+.margin-tb-xl {
+	margin-top: 50upx;
+	margin-bottom: 50upx;
+}
+
+.padding-0 {
+	padding: 0;
+}
+
+.padding-xs {
+	padding: 10upx;
+}
+
+.padding-sm {
+	padding: 20upx;
+}
+
+.padding {
+	padding: 30upx;
+}
+
+.padding-lg {
+	padding: 40upx;
+}
+
+.padding-xl {
+	padding: 50upx;
+}
+
+.padding-top-xs {
+	padding-top: 10upx;
+}
+
+.padding-top-sm {
+	padding-top: 20upx;
+}
+
+.padding-top {
+	padding-top: 30upx;
+}
+
+.padding-top-lg {
+	padding-top: 40upx;
+}
+
+.padding-top-xl {
+	padding-top: 50upx;
+}
+
+.padding-right-xs {
+	padding-right: 10upx;
+}
+
+.padding-right-sm {
+	padding-right: 20upx;
+}
+
+.padding-right {
+	padding-right: 30upx;
+}
+
+.padding-right-lg {
+	padding-right: 40upx;
+}
+
+.padding-right-xl {
+	padding-right: 50upx;
+}
+
+.padding-bottom-xs {
+	padding-bottom: 10upx;
+}
+
+.padding-bottom-sm {
+	padding-bottom: 20upx;
+}
+
+.padding-bottom {
+	padding-bottom: 30upx;
+}
+
+.padding-bottom-lg {
+	padding-bottom: 40upx;
+}
+
+.padding-bottom-xl {
+	padding-bottom: 50upx;
+}
+
+.padding-left-xs {
+	padding-left: 10upx;
+}
+
+.padding-left-sm {
+	padding-left: 20upx;
+}
+
+.padding-left {
+	padding-left: 30upx;
+}
+
+.padding-left-lg {
+	padding-left: 40upx;
+}
+
+.padding-left-xl {
+	padding-left: 50upx;
+}
+
+.padding-lr-xs {
+	padding-left: 10upx;
+	padding-right: 10upx;
+}
+
+.padding-lr-sm {
+	padding-left: 20upx;
+	padding-right: 20upx;
+}
+
+.padding-lr {
+	padding-left: 30upx;
+	padding-right: 30upx;
+}
+
+.padding-lr-lg {
+	padding-left: 40upx;
+	padding-right: 40upx;
+}
+
+.padding-lr-xl {
+	padding-left: 50upx;
+	padding-right: 50upx;
+}
+
+.padding-tb-xs {
+	padding-top: 10upx;
+	padding-bottom: 10upx;
+}
+
+.padding-tb-sm {
+	padding-top: 20upx;
+	padding-bottom: 20upx;
+}
+
+.padding-tb {
+	padding-top: 30upx;
+	padding-bottom: 30upx;
+}
+
+.padding-tb-lg {
+	padding-top: 40upx;
+	padding-bottom: 40upx;
+}
+
+.padding-tb-xl {
+	padding-top: 50upx;
+	padding-bottom: 50upx;
+}
+
+/* -- 浮动 --  */
+
+.cf::after,
+.cf::before {
+	content: " ";
+	display: table;
+}
+
+.cf::after {
+	clear: both;
+}
+
+.fl {
+	float: left;
+}
+
+.fr {
+	float: right;
+}
+
+/* ==================
+          背景
+ ==================== */
+
+.line-red::after,
+.lines-red::after {
+	border-color: #e54d42;
+}
+
+.line-orange::after,
+.lines-orange::after {
+	border-color: #f37b1d;
+}
+
+.line-yellow::after,
+.lines-yellow::after {
+	border-color: #fbbd08;
+}
+
+.line-olive::after,
+.lines-olive::after {
+	border-color: #8dc63f;
+}
+
+.line-green::after,
+.lines-green::after {
+	border-color: #39b54a;
+}
+
+.line-cyan::after,
+.lines-cyan::after {
+	border-color: #1cbbb4;
+}
+
+.line-blue::after,
+.lines-blue::after {
+	border-color: #0081ff;
+}
+
+.line-purple::after,
+.lines-purple::after {
+	border-color: #6739b6;
+}
+
+.line-mauve::after,
+.lines-mauve::after {
+	border-color: #9c26b0;
+}
+
+.line-pink::after,
+.lines-pink::after {
+	border-color: #e03997;
+}
+
+.line-brown::after,
+.lines-brown::after {
+	border-color: #a5673f;
+}
+
+.line-grey::after,
+.lines-grey::after {
+	border-color: #8799a3;
+}
+
+.line-gray::after,
+.lines-gray::after {
+	border-color: #aaaaaa;
+}
+
+.line-black::after,
+.lines-black::after {
+	border-color: #333333;
+}
+
+.line-white::after,
+.lines-white::after {
+	border-color: #ffffff;
+}
+
+.bg-red {
+	background-color: #f00;
+	color: #ffffff;
+}
+
+.bg-orange {
+	background-color: #f37b1d;
+	color: #ffffff;
+}
+
+.bg-yellow {
+	background-color: #fbbd08;
+	color: #333333;
+}
+
+.bg-olive {
+	background-color: #8dc63f;
+	color: #ffffff;
+}
+
+.bg-green {
+	background-color: #06d69c;
+	color: #ffffff;
+}
+
+.bg-cyan {
+	background-color: #1cbbb4;
+	color: #ffffff;
+}
+
+.bg-blue {
+	background-color: #0081ff;
+	color: #ffffff;
+}
+
+.bg-purple {
+	background-color: #6739b6;
+	color: #ffffff;
+}
+
+.bg-mauve {
+	background-color: #9c26b0;
+	color: #ffffff;
+}
+
+.bg-pink {
+	background-color: #e03997;
+	color: #ffffff;
+}
+
+.bg-brown {
+	background-color: #fddcbd;
+	color: #000;
+}
+
+.bg-grey {
+	background-color: #e6eaea;
+	color: #ffffff;
+}
+
+.bg-gray {
+	background-color: #f4f0f0;
+	color: #333333;
+}
+.bg-darkgray {
+	background-color: #eee;
+	color: #333333;
+}
+.bg-lightgray {
+	background-color: #f9f7fa;
+	color: #333333;
+}
+.bg-black {
+	background-color: #333333;
+	color: #ffffff;
+}
+.bg-lightblack {
+	background-color: #666;
+	color: #ffffff;
+}
+.bg-darkblack {
+	background-color: #000;
+	color: #ffffff;
+}
+.bg-darkgrey {
+	background-color: #c6c6c6;
+	color: #ffffff;
+}
+.bg-white {
+	background-color: #ffffff;
+	color: #666666;
+}
+
+.bg-shadeTop {
+	background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01));
+	color: #ffffff;
+}
+
+.bg-shadeBottom {
+	background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1));
+	color: #ffffff;
+}
+
+.bg-red.light {
+	color: #e54d42;
+	background-color: #fadbd9;
+}
+
+.bg-orange.light {
+	color: #f37b1d;
+	background-color: #fde6d2;
+}
+
+.bg-yellow.light {
+	color: #fbbd08;
+	background-color: #fef2ced2;
+}
+
+.bg-olive.light {
+	color: #8dc63f;
+	background-color: #e8f4d9;
+}
+
+.bg-green.light {
+	color: #39b54a;
+	background-color: #d7f0dbff;
+}
+
+.bg-cyan.light {
+	color: #1cbbb4;
+	background-color: #d2f1f0;
+}
+
+.bg-blue.light {
+	color: #0081ff;
+	background-color: #cce6ff;
+}
+
+.bg-purple.light {
+	color: #6739b6;
+	background-color: #e1d7f0;
+}
+
+.bg-mauve.light {
+	color: #9c26b0;
+	background-color: #ebd4ef;
+}
+
+.bg-pink.light {
+	color: #e03997;
+	background-color: #f9d7ea;
+}
+
+.bg-brown.light {
+	color: #a5673f;
+	background-color: #ede1d9;
+}
+
+.bg-grey.light {
+	color: #8799a3;
+	background-color: #e7ebed;
+}
+
+.bg-gradual-red {
+	background-image: linear-gradient(45deg, #f43f3b, #ec008c);
+	color: #ffffff;
+}
+
+.bg-gradual-orange {
+	background-image: linear-gradient(45deg, #ff9700, #ed1c24);
+	color: #ffffff;
+}
+
+.bg-gradual-green {
+	background: linear-gradient(to bottom, #06d69c 60%,#f9f9f9 40% );
+	color: #ffffff;
+}
+
+.bg-gradual-purple {
+	background-image: linear-gradient(45deg, #9000ff, #5e00ff);
+	color: #ffffff;
+}
+
+.bg-gradual-pink {
+	background-image: linear-gradient(45deg, #ec008c, #6739b6);
+	color: #ffffff;
+}
+
+.bg-gradual-blue {
+	background-image: linear-gradient(45deg, #0081ff, #1cbbb4);
+	color: #ffffff;
+}
+
+.shadow[class*="-red"] {
+	box-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2);
+}
+
+.shadow[class*="-orange"] {
+	box-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2);
+}
+
+.shadow[class*="-yellow"] {
+	box-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2);
+}
+
+.shadow[class*="-olive"] {
+	box-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2);
+}
+
+.shadow[class*="-green"] {
+	box-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2);
+}
+
+.shadow[class*="-cyan"] {
+	box-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2);
+}
+
+.shadow[class*="-blue"] {
+	box-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2);
+}
+
+.shadow[class*="-purple"] {
+	box-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2);
+}
+
+.shadow[class*="-mauve"] {
+	box-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2);
+}
+
+.shadow[class*="-pink"] {
+	box-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2);
+}
+
+.shadow[class*="-brown"] {
+	box-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2);
+}
+
+.shadow[class*="-grey"] {
+	box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2);
+}
+
+.shadow[class*="-gray"] {
+	box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2);
+}
+.shadow[class*="-black"] {
+	box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2);
+}
+.shadow-black{box-shadow: 0upx 0upx 20upx 0upx rgba(26, 26, 26, 0.1);}
+
+.shadow[class*="-white"] {
+	box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2);
+}
+
+.text-shadow[class*="-red"] {
+	text-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2);
+}
+
+.text-shadow[class*="-orange"] {
+	text-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2);
+}
+
+.text-shadow[class*="-yellow"] {
+	text-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2);
+}
+
+.text-shadow[class*="-olive"] {
+	text-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2);
+}
+
+.text-shadow[class*="-green"] {
+	text-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2);
+}
+
+.text-shadow[class*="-cyan"] {
+	text-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2);
+}
+
+.text-shadow[class*="-blue"] {
+	text-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2);
+}
+
+.text-shadow[class*="-purple"] {
+	text-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2);
+}
+
+.text-shadow[class*="-mauve"] {
+	text-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2);
+}
+
+.text-shadow[class*="-pink"] {
+	text-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2);
+}
+
+.text-shadow[class*="-brown"] {
+	text-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2);
+}
+
+.text-shadow[class*="-grey"] {
+	text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2);
+}
+
+.text-shadow[class*="-gray"] {
+	text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2);
+}
+
+.text-shadow[class*="-black"] {
+	text-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2);
+}
+
+.bg-img {
+	background-size: cover;
+	background-position: center;
+	background-repeat: no-repeat;
+}
+
+.bg-mask {
+	background-color: #333333;
+	position: relative;
+}
+
+.bg-mask::after {
+	content: "";
+	border-radius: inherit;
+	width: 100%;
+	height: 100%;
+	display: block;
+	background-color: rgba(0, 0, 0, 0.4);
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	top: 0;
+}
+
+.bg-mask view,
+.bg-mask cover-view {
+	z-index: 5;
+	position: relative;
+}
+
+.bg-video {
+	position: relative;
+}
+
+.bg-video video {
+	display: block;
+	height: 100%;
+	width: 100%;
+	-o-object-fit: cover;
+	object-fit: cover;
+	position: absolute;
+	top: 0;
+	z-index: 0;
+	pointer-events: none;
+}
+
+/* ==================
+          文本
+ ==================== */
+
+.text-xs {
+	font-size: 20upx;
+}
+
+.text-sm {
+	font-size: 24upx;
+}
+
+.text-df {
+	font-size: 28upx;
+}
+
+.text-lg {
+	font-size: 32upx;
+}
+
+.text-xl {
+	font-size: 36upx;
+}
+
+.text-xxl {
+	font-size: 44upx;
+}
+
+.text-sl {
+	font-size: 80upx;
+}
+
+.text-xsl {
+	font-size: 120upx;
+}
+
+.text-Abc {
+	text-transform: Capitalize;
+}
+
+.text-ABC {
+	text-transform: Uppercase;
+}
+
+.text-abc {
+	text-transform: Lowercase;
+}
+.text-italic {
+	font-style:italic
+}
+.text-oblique {
+	font-style:oblique
+}
+.text-price::before {
+	content: "¥";
+	font-size: 80%;
+	margin-right: 4upx;
+}
+
+.text-cut {
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	overflow: hidden;
+}
+
+.text-bold {
+	font-weight: bold;
+}
+
+.text-center {
+	text-align: center;
+}
+
+.text-content {
+	line-height: 1.6;
+}
+
+.text-left {
+	text-align: left;
+}
+
+.text-right {
+	text-align: right;
+}
+
+.text-red,
+.line-red,
+.lines-red {
+	color: #e54d42;
+}
+
+.text-orange,
+.line-orange,
+.lines-orange {
+	color: #f37b1d;
+}
+
+.text-yellow,
+.line-yellow,
+.lines-yellow {
+	color: #fbbd08;
+}
+
+.text-olive,
+.line-olive,
+.lines-olive {
+	color: #8dc63f;
+}
+
+.text-green,
+.line-green,
+.lines-green {
+	color: #39b54a;
+}
+
+.text-cyan,
+.line-cyan,
+.lines-cyan {
+	color: #1cbbb4;
+}
+
+.text-blue,
+.line-blue,
+.lines-blue {
+	color: #0081ff;
+}
+
+.text-purple,
+.line-purple,
+.lines-purple {
+	color: #6739b6;
+}
+
+.text-mauve,
+.line-mauve,
+.lines-mauve {
+	color: #9c26b0;
+}
+
+.text-pink,
+.line-pink,
+.lines-pink {
+	color: #e03997;
+}
+
+.text-brown,
+.line-brown,
+.lines-brown {
+	color: #a5673f;
+}
+
+.text-grey,
+.line-grey,
+.lines-grey {
+	color: #8799a3;
+}
+
+.text-gray,
+.line-gray,
+.lines-gray {
+	color: #aaaaaa;
+}
+
+.text-lightblack,
+.line-lightblack,
+.lines-lightblack {
+	color: #666;
+}
+.text-darkblack,
+.line-darkblack,
+.lines-darkblack {
+	color: #000;
+}
+.text-black,
+.line-black,
+.lines-black {
+	color: #333333;
+}
+
+.text-white,
+.line-white,
+.lines-white {
+	color: #ffffff;
+}
+
+.fixedtop{width: 100%;position: fixed;z-index: 99;top: 0upx;}
+.fixed {width: 100%;padding:60upx 10upx 10upx;position: fixed;z-index: 99;top: 0upx;}
+.fixedbottom{width: 100%;position: fixed;z-index: 99;bottom: 30upx;}

+ 423 - 0
common/global.scss

@@ -0,0 +1,423 @@
+.content {
+    :deep(.uni-card) {
+        margin: 20upx !important;
+        background-color: red;
+    }
+
+    .content_background {
+        background: linear-gradient(180deg, #f7f8f900 0%, #f7f8f9ff 50%);
+    }
+}
+
+
+/*	==================
+		   通知
+	==================	*/
+.uni-noticebar {
+    border-radius: 16upx;
+    padding: 8upx 12upx !important;
+
+    .notice_icon {
+        width: 64upx;
+        height: 64upx;
+        border-radius: 16upx;
+        margin-right: 20upx;
+    }
+}
+
+/*	==================
+		   导航
+	==================	*/
+.navigation_wrap {
+    padding: 40upx 20upx 20upx;
+    margin-bottom: 10px;
+    background: #fff;
+    position: sticky;
+    top: 0px;
+    z-index: 1;
+    box-shadow: rgba(26, 26, 26, 0.1) 0px 0px 0.625rem 0px;
+
+    .uni-scroll-view-content {
+        display: flex;
+        width: fit-content;
+        min-width: 100%;
+
+        uni-view {
+            .tab_title {
+                padding: 0 24upx;
+                width: max-content;
+                font-size: 26upx;
+                font-weight: 400;
+                color: #666666;
+                line-height: 33upx;
+                margin-bottom: 8upx;
+            }
+
+            .tab_line {
+                width: 40upx;
+                height: 4upx;
+                border-radius: 2upx;
+                margin: 0 auto;
+            }
+
+            &.active {
+                .tab_title {
+                    font-weight: bold;
+                    color: #000000;
+                }
+
+                .tab_line {
+                    background: #07d69e;
+                }
+            }
+        }
+    }
+}
+
+/*	==================
+		   卡片
+	==================	*/
+
+.card {
+    width: 710upx;
+    background: #ffffff;
+    border-radius: 16upx;
+    margin: 10upx 20upx 10upx;
+    // box-shadow: 0px 5px 5px 0px rgba(130, 130, 130, 0.1);
+    box-shadow: 5upx 5upx 10upx 0upx rgba(26, 26, 26, 0.1);
+}
+
+/*	==================
+		   项目列表
+	==================	*/
+.service_wrap {
+    margin: 0 20upx 20upx;
+    padding: 30upx 20upx;
+    display: flex;
+
+    .service_thumbnail {
+        width: 250upx !important;
+        height: 250upx !important;
+        border-radius: 8upx;
+        margin-right: 30upx;
+    }
+
+    .service_title {
+        font-size: 32upx;
+        font-weight: bold;
+        color: #333333;
+
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        .service_title_extra {
+            font-size: 24upx;
+            font-weight: 400;
+            color: #ff490e;
+			&.cannel_color {
+				color: #999;
+			}
+			&.success_color {
+				color: #07d69e;
+			}
+			&.warning_color {
+				color: #F37B1D;
+			}
+        }
+    }
+
+    .service_detail {
+        height: 70upx;
+        margin: 26upx 0 0;
+        font-size: 26upx;
+        font-weight: 400;
+        color: #999999;
+
+        display: -webkit-box;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        word-wrap: break-word;
+        white-space: normal !important;
+        -webkit-line-clamp: 2;
+        -webkit-box-orient: vertical;
+    }
+
+    .service_extra {
+        margin: 16upx 0;
+        display: flex;
+        align-items: center;
+
+        .service_extra_image {
+            width: 30upx;
+            height: 30upx;
+            margin-right: 5upx;
+        }
+
+        .service_extra_text {
+            width: 114upx;
+            font-size: 26upx;
+            font-weight: 400;
+            color: #07d69e;
+
+            display: -webkit-box;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            overflow-wrap: break-word;
+            white-space: normal !important;
+            -webkit-line-clamp: 1;
+            -webkit-box-orient: vertical;
+        }
+
+        .service_extra_order {
+            font-size: 26upx;
+            font-weight: 400;
+            color: #999999;
+
+            .service_extra_order_num {
+                font-size: 24upx;
+                padding: 0 2upx;
+            }
+        }
+
+        .service_extra_price {
+            font-size: 42upx;
+            font-weight: 400;
+            color: #ff490e;
+
+            .service_extra_price_prefix {
+                font-size: 24upx;
+            }
+        }
+    }
+
+    .service_tag {
+        .uni-tag {
+            border: 0;
+            background-color: #D2F1F0 !important;
+            color: #1CBBB4 !important;
+            margin-right: 20upx;
+
+            &:nth-child(3n+2) {
+                background-color: #FADBD9 !important;
+                color: #E54D42 !important;
+            }
+
+            &:nth-child(3n) {
+                background-color: #FDE6D2 !important;
+                color: #F37B1D !important;
+            }
+        }
+    }
+
+    .service_footer {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        .service_footer_price {
+            font-size: 42upx;
+            font-weight: 400;
+            color: #ff490e;
+
+            .service_footer_price_prefix {
+                font-size: 24upx;
+            }
+        }
+    }
+}
+
+/*	==================
+			按键
+	==================	*/
+.submit_btn,
+.cancel_btn,
+.disabled_btn,
+.busy_btn {
+    width: 180upx;
+    height: 56upx;
+    background: linear-gradient(88deg, #37ecba 0%, #72afd3 100%);
+    border-radius: 28upx;
+    padding: 4upx 0 0;
+
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: white !important;
+
+    font-size: 28upx;
+    margin: 0 6upx;
+    box-shadow: 0 0 0.625rem 0 rgba(26, 26, 26, 0.1);
+
+    &::after {
+        border: 0;
+    }
+}
+
+.cancel_btn {
+    background: white;
+    color: #666 !important;
+    border: 1upx solid #999;
+}
+
+.disabled_btn {
+    background: #ccc !important;
+}
+
+.busy_btn {
+    background: #f49191
+}
+
+
+/* ==================
+          头像
+ ==================== */
+
+.avatar {
+    font-variant: small-caps;
+    margin: 0;
+    padding: 0;
+    display: inline-flex;
+    text-align: center;
+    justify-content: center;
+    align-items: center;
+    color: #ffffff;
+    white-space: nowrap;
+    position: relative;
+    width: 64upx;
+    height: 64upx;
+    background-size: cover;
+    background-position: center;
+    vertical-align: middle;
+    font-size: 1.5em;
+
+    .big {
+        width: 240upx;
+        height: 240upx;
+        font-size: 2.5em;
+    }
+}
+
+/*	==================
+		   表单
+	==================	*/
+.uni-form {
+    .uni-form-item {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin: 0 20upx;
+        min-height: 90upx;
+        border-bottom: 1upx solid #EEEEEE;
+        padding-right: 20upx;
+
+        &:last-child {
+            border-bottom: 0;
+        }
+
+        .title {
+            font-size: 26upx;
+            font-weight: 400;
+            color: #333333;
+            display: flex;
+            align-items: center;
+
+            .form_item_icon {
+                width: 40upx;
+                height: 40upx;
+                margin-right: 10upx;
+            }
+        }
+
+        .uni-input {
+            text-align: right;
+            font-size: 26upx;
+            width: 480upx;
+        }
+
+        .form_item_btn_icon {
+            width: 28upx;
+            height: 28upx;
+            margin: 0 6upx 0 69upx;
+        }
+    }
+}
+
+/*	==================
+		   底部按钮
+	==================	*/
+.footer_btn_wrap {
+    width: 750upx;
+    // height: 140upx;
+    background: #ffffff;
+    z-index: 9;
+    position: sticky;
+    bottom: 0;
+    box-shadow: 5upx -5upx 10upx 0upx rgba(26, 26, 26, 0.1);
+    padding: 20upx 0;
+    /* 兼容 iOS 设备 */
+    padding-bottom: calc(20upx + constant(safe-area-inset-bottom));
+    /* 兼容 iPhone X 及以上设备 */
+    padding-bottom: calc(20upx + env(safe-area-inset-bottom));
+
+    .footer_btn {
+        width: 630upx;
+        height: 80upx;
+        background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+        border-radius: 16upx;
+        margin: 0 auto;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+
+        font-weight: bold;
+        color: #ffffff;
+
+        margin-bottom: 20upx;
+
+        &:last-child {
+            margin-bottom: 0;
+        }
+    }
+
+    .footer_btn_disabled {
+        background: #CCCCCC;
+    }
+
+    .footer_btn_busy {
+        background: #f49191
+    }
+}
+
+/*	==================
+		   底部
+	==================	*/
+.footer {
+    display: flex;
+    justify-content: center;
+    padding: 100upx 0 80upx;
+    background: #F7F8F9;
+
+    uni-image {
+        width: 594upx;
+        height: 107upx;
+        margin: 0 auto;
+    }
+}
+
+
+/*	==================
+		   警报
+	==================	*/
+.call_alarm_back {
+	position: fixed;
+	right: 20upx;
+	bottom: 300upx;
+	opacity: 0.6;
+	z-index: 2;
+
+	uni-image {
+		width: 100upx;
+		height: 100upx;
+	}
+}

+ 35 - 0
common/request.js

@@ -0,0 +1,35 @@
+import { apiBaseUrl } from "/common/config.js";
+
+const request = async (
+  options = {
+    url: "",
+    method: "",
+    data: {},
+    success: () => {},
+    fail: () => {},
+    complete: () => {},
+  }
+) => {
+  return uni.request({
+    url: `${apiBaseUrl}${options?.url}`,
+    header: {
+      "XX-Token": uni.getStorageSync("token"),
+      "XX-Device-Type": "web",
+    },
+    method: options?.method ?? "GET",
+    data: {
+      uid: uni.getStorageSync("id"),
+      ...options?.data,
+    },
+    success: (res) => {
+      options?.success(res);
+    },
+    fail: (res) => {
+      options?.fail(res);
+    },
+    complete: (res) => {
+      options?.complete(res);
+    },
+  });
+};
+export default request;

+ 619 - 0
common/utils/fx-openMap/openMap.js

@@ -0,0 +1,619 @@
+let itemList = ["百度地图","高德地图","腾讯地图"];
+// #ifdef APP-PLUS
+var isBaidu = plus.runtime.isApplicationExist({pname:'com.baidu.BaiduMap',action:'baidumap://'});
+var isGaode = plus.runtime.isApplicationExist({pname:'com.autonavi.minimap',action:'iosamap://'});
+var isQQ = plus.runtime.isApplicationExist({pname:'com.tencent.map',action:'qqmap://'});
+let AppitemList = [{title:"腾讯地图"}];
+if(isBaidu && isGaode){
+	AppitemList = [{title:"百度地图"},{title:"高德地图"},{title:"腾讯地图"}];
+}
+if(!isBaidu && isGaode){
+	AppitemList = [{title:"高德地图"},{title:"腾讯地图"}];
+}
+if(isBaidu && !isGaode){
+	AppitemList = [{title:"百度地图"},{title:"腾讯地图"}];
+}
+// #endif
+function openMapByAndroid(origin, destination,mode) {
+	let originName = origin&&origin.name?origin.name:"起点";
+	let destinationName = destination.name?destination.name:"终点";
+	var bdMode = "driving";
+	if(mode == "bus"){
+		bdMode = "transit";
+	}else if(mode == "walk"){
+		bdMode = "walking";
+	}else if(mode == "bike"){
+		bdMode = "riding";
+	}
+	var bdapp = "baidumap://map/direction?destination=name:"+destinationName+"|latlng:"+destination.latitude+","+destination.longitude+"&coord_type=gcj02&mode="+bdMode+"&src=uniapp";
+	if(origin){
+		bdapp = "baidumap://map/direction?origin=name:"+originName+"|latlng:"+origin.latitude+","+origin.longitude+"&destination=name:"+destinationName+"|latlng:"+destination.latitude+","+destination.longitude+"&coord_type=gcj02&mode="+bdMode+"&src=uniapp";
+	}
+	var bdappDown = "http://map.baidu.com/zt/qudao/newfengchao/1012337a/html/slide.html"
+	var amapMode = 0;
+	if(mode == "bus"){
+		amapMode = 1;
+	}else if(mode == "walk"){
+		amapMode = 2;
+	}else if(mode == "bike"){
+		amapMode = 3;
+	}
+	var amapuri = "amapuri://route/plan/?sourceApplication=uniapp&dlat="+destination.latitude+"&dlon="+destination.longitude+"&dname="+destinationName+"&t="+amapMode;
+	if(origin){
+		amapuri = "amapuri://route/plan/?sourceApplication=uniapp&slat="+origin.latitude+"&slon="+origin.longitude+"&sname="+originName+"&dlat="+destination.latitude+"&dlon="+destination.longitude+"&dname="+destinationName+"&t="+amapMode;
+	}
+	var amapuriDown = "http://wap.amap.com/";
+	var qqmap = "qqmap://map/routeplan?type="+mode+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	if(origin){
+		qqmap = "qqmap://map/routeplan?type="+mode+"&from="+originName+"&fromcoord="+origin.latitude+","+origin.longitude+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	}
+	var qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type="+mode+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	if(origin){
+		qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type="+mode+"&from="+originName+"&fromcoord="+origin.latitude+","+origin.longitude+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	}
+	// #ifdef APP-PLUS
+	plus.nativeUI.actionSheet(
+		{
+			title:"选择导航",
+			cancel:"取消",
+			buttons:AppitemList
+		},
+		function(res){
+			if(isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index ==2){
+					appOpenUrl(amapuri);
+				}else if(res.index == 3){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else if(!isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(amapuri);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else if(isBaidu && !isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else{
+				if(res.index == 1){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+					
+				}
+				
+			}
+		}
+	);
+	// #endif
+	// #ifndef APP-PLUS
+	uni.showActionSheet({
+		itemList:itemList,
+		success: (res) => {
+			if(res.tapIndex == 0){
+				openURL(bdapp,bdappDown)
+			}else if(res.tapIndex == 1){
+				openURL(amapuri,amapuriDown)
+			}else{
+				openURL(qqmap,qqmapDefault)
+			}
+			
+		}
+	})
+	// #endif
+	
+}
+function navigationByAndroid(destination){
+	let destinationName = destination.name?destination.name:"终点";
+	var bdapp = "baidumap://map/navi?location="+destination.latitude+","+destination.longitude+"&query="+destinationName+"&coord_type=gcj02&src=uniapp";
+	var bdappDown = "http://map.baidu.com/zt/qudao/newfengchao/1012337a/html/slide.html"
+	var amapuri = "androidamap://navi?sourceApplication=uniapp&lat="+destination.latitude+"&lon="+destination.longitude+"&poiname="+destinationName+"&dev=1";
+	var amapuriDown = "http://wap.amap.com/";
+	var qqmap = "qqmap://map/routeplan?type=drive&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	var qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type=drive&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	// #ifdef APP-PLUS
+	plus.nativeUI.actionSheet(
+		{
+			title:"选择导航",
+			cancel:"取消",
+			buttons:AppitemList
+		},
+		function(res){
+			if(isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index ==2){
+					appOpenUrl(amapuri);
+				}else if(res.index == 3){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else if(!isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(amapuri);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else if(isBaidu && !isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}
+			}else{
+				if(res.index == 1){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+					
+				}
+				
+			}
+		}
+	);
+	// #endif
+	// #ifndef APP-PLUS
+	uni.showActionSheet({
+		itemList:itemList,
+		success: (res) => {
+			if(res.tapIndex == 0){
+				openURL(bdapp,bdappDown)
+			}else if(res.tapIndex == 1){
+				openURL(amapuri,amapuriDown)
+			}else{
+				openURL(qqmap,qqmapDefault)
+			}
+			
+		}
+	})
+	// #endif
+}
+function openMapByIos(origin, destination,mode) {
+	let originName = origin&&origin.name?origin.name:"起点";
+	let destinationName = destination.name?destination.name:"终点";
+	var bdMode = "driving";
+	var bdapp = "baidumap://map/direction?origin=我的位置&destination=name:"+destinationName+"|latlng:"+destination.latitude+","+destination.longitude+"&coord_type=gcj02&mode="+bdMode+"&src=uniapp";
+	if(origin){
+		bdapp = "baidumap://map/direction?origin=name:"+originName+"|latlng:"+origin.latitude+","+origin.longitude+"&destination=name:"+destinationName+"|latlng:"+destination.latitude+","+destination.longitude+"&coord_type=gcj02&mode="+bdMode+"&src=uniapp";
+	}
+	var bdappDown = "https://apps.apple.com/cn/app/id452186370";
+	var amapMode = 0;
+	if(mode == "bus"){
+		amapMode = 1;
+	}else if(mode == "walk"){
+		amapMode = 2;
+	}else if(mode == "bike"){
+		amapMode = 3;
+	}
+	var amapuri = "iosamap://route/plan/?sourceApplication=uniapp&dlat="+destination.latitude+"&dlon="+destination.longitude+"&dname="+destinationName+"&t="+amapMode;
+	if(origin){
+		amapuri = "iosamap://route/plan/?sourceApplication=uniapp&slat="+origin.latitude+"&slon="+origin.longitude+"&sname="+originName+"&dlat="+destination.latitude+"&dlon="+destination.longitude+"&dname="+destinationName+"&t="+amapMode;
+	}
+	var amapuriDown = "https://apps.apple.com/cn/app/id461703208";
+	var qqmap = "qqmap://map/routeplan?type="+mode+"&from=我的位置&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	if(origin){
+		qqmap = "qqmap://map/routeplan?type="+mode+"&from="+originName+"&fromcoord="+origin.latitude+","+origin.longitude+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	}
+	var qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type="+mode+"&from=我的位置&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	if(origin){
+		qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type="+mode+"&from="+originName+"&fromcoord="+origin.latitude+","+origin.longitude+"&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	}
+	var iosMode = 'd';
+	if(mode == "bus"){
+		bdMode = "transit";
+		iosMode = 'r';
+	}else if(mode == "walk"){
+		bdMode = "walking";
+		iosMode = 'w';
+	}else if(mode == "bike"){
+		bdMode = "riding";
+		iosMode = 'w';
+	}
+	var iosmap = "http://maps.apple.com/?daddr="+destination.latitude+","+destination.longitude+"&dirflg="+iosMode
+	if(origin){
+		iosmap = "http://maps.apple.com/?saddr="+origin.latitude+","+origin.longitude+"&daddr="+destination.latitude+","+destination.longitude+"&dirflg="+iosMode
+	}
+	// #ifdef APP-PLUS
+	plus.nativeUI.actionSheet(
+		{
+			title:"选择导航",
+			cancel:"取消",
+			buttons:AppitemList.indexOf("Apple地图")<0 ? AppitemList.concat({title:"Apple地图"}):AppitemList
+		},
+		function(res){
+			if(isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					appOpenUrl(amapuri);
+				}else if(res.index == 3){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 4){
+					appOpenUrl(iosmap);
+				}
+			}else if(!isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(amapuri);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 3){
+					appOpenUrl(iosmap);
+				}
+			}else if(isBaidu && !isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 3){
+					appOpenUrl(iosmap);
+				}
+			}else{
+				if(res.index == 1){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 2){
+					appOpenUrl(iosmap);
+				}
+			}
+		}
+	);
+	// #endif
+	// #ifndef APP-PLUS
+	uni.showActionSheet({
+		itemList:itemList.indexOf("Apple地图")<0 ? itemList.concat("Apple地图"):itemList,
+		success: (res) => {
+			if(res.tapIndex == 0){
+				openURL(bdapp,bdappDown)
+			}else if(res.tapIndex == 1){
+				openURL(amapuri,amapuriDown)
+			}else if(res.tapIndex == 2){
+				openURL(qqmap,qqmapDefault)
+			}else if(res.tapIndex == 3){
+				openURL(iosmap);
+			}
+		}
+	})
+	// #endif
+	
+}
+function navigationByIos(destination){
+	let destinationName = destination.name?destination.name:"终点";
+	var bdapp = "baidumap://map/navi?location="+destination.latitude+","+destination.longitude+"&coord_type=gcj02&query="+destinationName+"&src=uniapp";
+	var bdappDown = "https://apps.apple.com/cn/app/id452186370";
+	var amapuri = "iosamap://navi?sourceApplication=uniapp&lat="+destination.latitude+"&lon="+destination.longitude+"&poiname="+destinationName+"&dev=1";
+	var amapuriDown = "https://apps.apple.com/cn/app/id461703208";
+	var qqmap = "qqmap://map/routeplan?type=drive&from=我的位置&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude;
+	var qqmapDefault = "https://apis.map.qq.com/uri/v1/routeplan?type=drive&from=我的位置&to="+destinationName+"&tocoord="+destination.latitude+","+destination.longitude+"&policy=1";
+	var iosmap = "http://maps.apple.com/?daddr="+destination.latitude+","+destination.longitude+"&dirflg=d";
+	// #ifdef APP-PLUS
+	plus.nativeUI.actionSheet(
+		{
+			title:"选择导航",
+			cancel:"取消",
+			buttons:AppitemList.indexOf("Apple地图")<0 ? AppitemList.concat({title:"Apple地图"}):AppitemList
+		},
+		function(res){
+			if(isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					appOpenUrl(amapuri);
+				}else if(res.index == 3){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 4){
+					appOpenUrl(iosmap);
+				}
+			}else if(!isBaidu && isGaode){
+				if(res.index == 1){
+					appOpenUrl(amapuri);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 3){
+					appOpenUrl(iosmap);
+				}
+			}else if(isBaidu && !isGaode){
+				if(res.index == 1){
+					appOpenUrl(bdapp);
+				}else if(res.index == 2){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 3){
+					appOpenUrl(iosmap);
+				}
+			}else{
+				if(res.index == 1){
+					if(isQQ){
+						appOpenUrl(qqmap);
+					}else{
+						appOpenUrl(qqmapDefault);
+					}
+				}else if(res.index == 2){
+					appOpenUrl(iosmap);
+				}
+			}
+		}
+	);
+	// #endif
+	// #ifndef APP-PLUS
+	uni.showActionSheet({
+		itemList:itemList.indexOf("Apple地图")<0 ? itemList.concat("Apple地图"):itemList,
+		success: (res) => {
+			if(res.tapIndex == 0){
+				openURL(bdapp,bdappDown)
+			}else if(res.tapIndex == 1){
+				openURL(amapuri,amapuriDown)
+			}else if(res.tapIndex == 2){
+				openURL(qqmap,qqmapDefault)
+			}else if(res.tapIndex == 3){
+				openURL(iosmap);
+			}
+		}
+	})
+	// #endif
+}
+function appOpenUrl(_url){
+	var _time = new Date().getTime()
+	plus.runtime.openURL(encodeURI(_url+'&time=' + _time));
+}
+function openURL(url,downLoadUrl="") {
+	var _time = new Date().getTime()
+	window.location.href= encodeURI(url+'&time=' + _time);
+	var startTime = Date.now();
+	var endTime = 0;
+	var t= setTimeout(()=>{
+		 endTime = Date.now() - startTime;
+		 if(endTime>=2000&&!(document.hidden || document.webkitHidden)){
+			  window.location.href = encodeURI(downLoadUrl);
+		 }else{
+			 clearTimeout(t)
+		 }
+	},2000)
+	document.addEventListener("visibilitychange",(res)=>{
+		if(document.hidden || document.webkitHidden){
+			clearTimeout(t)
+		}
+	})
+	
+}
+let PI  = 3.14159265358979324;
+let x_pi = 3.14159265358979324 * 3000.0 / 180.0
+function delta(lat, lon) {
+	var a = 6378245.0; //  a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
+	var ee = 0.00669342162296594323; //  ee: 椭球的偏心率。
+	var dLat = transformLat(lon - 105.0, lat - 35.0);
+	var dLon = transformLon(lon - 105.0, lat - 35.0);
+	var radLat = lat / 180.0 * PI;
+	var magic = Math.sin(radLat);
+	magic = 1 - ee * magic * magic;
+	var sqrtMagic = Math.sqrt(magic);
+	dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * PI);
+	dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * PI);
+	return {'lat': dLat, 'lon': dLon};
+}
+function gcj_encrypt(wgsLat, wgsLon) {
+	if(outOfChina(wgsLat, wgsLon))
+	return {'lat': wgsLat, 'lon': wgsLon};
+	var d = delta(wgsLat, wgsLon);
+	return {'lat' : wgsLat + d.lat,'lon' : wgsLon + d.lon};
+}
+function bd_decrypt(bdLat, bdLon) {
+	var x = bdLon - 0.0065, y = bdLat - 0.006;
+	var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
+	var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
+	var gcjLon = z * Math.cos(theta);
+	var gcjLat = z * Math.sin(theta);
+	return {'lat' : gcjLat, 'lon' : gcjLon};
+}
+function outOfChina(lat, lon) {
+	if (lon < 72.004 || lon > 137.8347)
+		return true;
+	if (lat < 0.8293 || lat > 55.8271)
+		return true;
+	return false;
+}
+function transformLat(x, y) {
+	var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
+	ret += (20.0 * Math.sin(6.0 * x * PI) + 20.0 * Math.sin(2.0 * x * PI)) * 2.0 / 3.0;
+	ret += (20.0 * Math.sin(y * PI) + 40.0 * Math.sin(y / 3.0 * PI)) * 2.0 / 3.0;
+	ret += (160.0 * Math.sin(y / 12.0 * PI) + 320 * Math.sin(y * PI / 30.0)) * 2.0 / 3.0;
+	return ret;
+}
+function transformLon(x, y) {
+	var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
+	ret += (20.0 * Math.sin(6.0 * x * PI) + 20.0 * Math.sin(2.0 * x * PI)) * 2.0 / 3.0;
+	ret += (20.0 * Math.sin(x * PI) + 40.0 * Math.sin(x / 3.0 * PI)) * 2.0 / 3.0;
+	ret += (150.0 * Math.sin(x / 12.0 * PI) + 300.0 * Math.sin(x / 30.0 * PI)) * 2.0 / 3.0;
+	return ret;
+}
+export default {
+	/* 路程规划 */
+	routePlan(options,type="gcj02") {
+		let _origin = options.origin,_destination = options.destination,_mode = options.mode?options.mode:"drive";
+		
+		if(type.toLowerCase() == "wgs84"){
+			if(options.origin){
+				_origin.latitude = gcj_encrypt(options.origin.latitude, options.origin.longitude).lat
+				_origin.longitude = gcj_encrypt(options.origin.latitude,options.origin.longitude).lon
+			}
+			_destination.latitude = gcj_encrypt(options.destination.latitude, options.destination.longitude).lat
+			_destination.longitude = gcj_encrypt(options.destination.latitude,options.destination.longitude).lon
+		}else if(type.toLowerCase() == "bd09"){
+			if(options.origin){
+				_origin.latitude = bd_decrypt(options.origin.latitude, options.origin.longitude).lat
+				_origin.longitude = bd_decrypt(options.origin.latitude,options.origin.longitude).lon
+			}
+			_destination.latitude = bd_decrypt(options.destination.latitude, options.destination.longitude).lat
+			_destination.longitude = bd_decrypt(options.destination.latitude, options.destination.longitude).lon
+		}
+		// #ifdef MP
+			// #ifdef MP-WEIXIN
+			const mapCtx = wx.createMapContext(options.mapId, this);
+			mapCtx.openMapApp({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				destination: _destination.name,
+				complete: res => {
+					console.log(res);
+				}
+			});
+			// #endif
+			// #ifdef MP-QQ
+			qq.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+			// #ifdef MP-ALIPAY
+			my.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+			// #ifdef MP-360 || MP-BAIDU || MP-TOUTIAO
+			uni.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+			
+		// #endif
+		// #ifndef MP
+			switch(uni.getSystemInfoSync().platform){
+				case 'android':
+					console.log('运行Android上')
+					openMapByAndroid(_origin, _destination,_mode)
+					break;
+				case 'ios':
+					console.log('运行iOS上')
+					openMapByIos(_origin, _destination,_mode)
+					break;
+				default:
+					console.log('运行在开发者工具上')	
+					break;
+			}
+			
+		// #endif
+	},
+	navigation(options,type="gcj02"){
+		let _destination = options.destination;
+		
+		if(type.toLowerCase() == "wgs84"){
+			_destination.latitude = gcj_encrypt(options.destination.latitude, options.destination.longitude).lat
+			_destination.longitude = gcj_encrypt(options.destination.latitude,options.destination.longitude).lon
+		}else if(type.toLowerCase() == "bd09"){
+			_destination.latitude = bd_decrypt(options.destination.latitude, options.destination.longitude).lat
+			_destination.longitude = bd_decrypt(options.destination.latitude, options.destination.longitude).lon
+		}
+		// #ifdef MP
+			// #ifdef MP-WEIXIN
+			const mapCtx = wx.createMapContext(options.mapId, this);
+			mapCtx.openMapApp({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				destination: _destination.name,
+				complete: res => {
+					console.log(res);
+				}
+			});
+			// #endif
+			// #ifdef MP-QQ
+			qq.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+			// #ifdef MP-ALIPAY
+			my.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+			// #ifdef MP-360 || MP-BAIDU || MP-TOUTIAO
+			uni.openLocation({
+				latitude: _destination.latitude,
+				longitude: _destination.longitude,
+				name: _destination.name
+			})
+			// #endif
+		// #endif
+		// #ifndef MP
+			switch(uni.getSystemInfoSync().platform){
+				case 'android':
+					console.log('运行Android上')
+					navigationByAndroid(_destination)
+					break;
+				case 'ios':
+					console.log('运行iOS上')
+					navigationByIos( _destination)
+					break;
+				default:
+					console.log('运行在开发者工具上')	
+					break;
+			}
+			
+		// #endif
+	}
+}

+ 18 - 0
common/utils/fx-openMap/package.json

@@ -0,0 +1,18 @@
+{
+    "id": "fx-openMap",
+    "name": "h5、微信小程序、APP页面唤起地图APP导航",
+    "version": "v1.18",
+    "description": "适合用于H5、微信小程序、APP需要唤起地图APP进行导航",
+    "keywords": [
+        "map",
+        "地图",
+        "导航",
+        "地图APP"
+    ],
+    "dcloudext": {
+        "category": [
+            "JS SDK",
+            "通用 SDK"
+        ]
+    }
+}

+ 52 - 0
components/callAlarm.vue

@@ -0,0 +1,52 @@
+<template>
+	<view>
+		<view class="call_alarm_back" @tap="callAlarm">
+			<image mode="widthFix" src="/static/common/alarm.png" style="width: 45upx" />
+			<view style="font-size: 22upx; color: #fff">警报</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+// import { ref, watch, reactive, toRefs, onMounted } from "vue";
+import request from '/common/request.js';
+
+const callAlarm = () => {
+	uni.showLoading({
+		content: '加载中',
+		mask: true
+	});
+	request({
+		url: '/api/userjs/callPost',
+		method: 'GET',
+		success: (res) => {
+			console.log('警报结果', res);
+			uni.showToast({
+				title: res.data.msg,
+				duration: 1500,
+				icon: 'none'
+			});
+		},
+		fail: () => {},
+		complete: () => {
+			setTimeout(() => {
+				uni.hideLoading();
+			}, 1500);
+		}
+	});
+};
+</script>
+
+<style lang="scss" scoped>
+.call_alarm_back {
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+
+	width: 80upx;
+	height: 80upx;
+	border-radius: 50%;
+	background-color: red;
+	padding: 10upx;
+}
+</style>

+ 180 - 0
components/comp-select-address/CompSelectAddress.vue

@@ -0,0 +1,180 @@
+<template>
+  <view class="SelectAddress">
+    <picker
+      mode="multiSelector"
+      :value="addressSelectListData"
+      @columnchange="addressColumnchange"
+      @change="addressChange"
+      :range="addressListData"
+    >
+      <!-- <view class="noneAddress" v-if="!addressListStr">
+        <uni-easyinput
+          trim="all"
+          placeholder="请选择您的地区"
+          disabled
+        ></uni-easyinput>
+      </view> -->
+      <view class="haveAddress">
+        <uni-easyinput
+          trim="all"
+          placeholder="请选择您的地区"
+          disabled
+          :value="addressListStr"
+        ></uni-easyinput>
+      </view>
+    </picker>
+  </view>
+</template>
+<script>
+import chinaAddress from "./citydata";
+export default {
+  name: "CompSelectAddress",
+  data() {
+    return {
+      chinaAddress: [], // 全国省市区
+      addressListData: [], // 全国省市区
+      addressSelectListData: [0, 0, 0], // 当前选择的省市区 index
+      addressListStr: "", // 当前选择的省市区
+    };
+  },
+  props: {
+    value: {
+      type: Array,
+      default: [],
+    },
+  },
+  mounted() {
+    this.chinaAddress = chinaAddress;
+    // 获取全国省份
+    this.getProvince();
+
+    // 回显地址
+    if (this.value) {
+      const showAddressList = this.value;
+      this.addressListStr = showAddressList.join("-");
+    }
+  },
+
+  methods: {
+    // 获取全国省份list
+    getProvince() {
+      const chinaAddress = this.chinaAddress;
+      const provinceListData = [];
+      for (const province_key in chinaAddress) {
+        provinceListData.push(chinaAddress[province_key].label);
+      }
+      this.addressListData[0] = provinceListData;
+      // 默认加载第一个省份的城市
+      this.getCity(provinceListData[0]);
+    },
+    // 根据省份获取城市
+    getCity(province) {
+      // 获取省份对象
+      const chinaAddress = this.chinaAddress;
+      const chinaAddress_Item = chinaAddress.find((item) => {
+        return item.label === province;
+      });
+      // 获取城市list
+      const cityChildren = chinaAddress_Item.children;
+      if (!cityChildren) {
+        // 如果省份没有市区 清空上次的市区和区域数据
+        this.addressListData[1] = "";
+        this.addressListData[2] = "";
+        return;
+      }
+      // 解析城市list
+      const cityListData = [];
+      for (const city_key in cityChildren) {
+        cityListData.push(cityChildren[city_key].label);
+      }
+      this.addressListData[1] = cityListData;
+      // 默认加载第一个省份的第一个城市的区域
+      this.getCounty(province, cityListData[0]);
+    },
+    // 根据省份和城市 获取区域
+    getCounty(province, city) {
+      // 获取省份对象
+      const chinaAddress = this.chinaAddress;
+      const chinaAddress_Item = chinaAddress.find((item) => {
+        return item.label === province;
+      });
+      // 获取城市list
+      const cityChildren = chinaAddress_Item.children;
+
+      // 根据城市获取区域
+      const cityChildren_item = cityChildren.find((item) => {
+        return item.label === city;
+      });
+
+      // 解析区域list
+      const countyListData = [];
+      if (cityChildren_item.children) {
+        for (const county_key in cityChildren_item.children) {
+          countyListData.push(cityChildren_item.children[county_key].label);
+        }
+      } else {
+        countyListData.push(cityChildren_item.label);
+      }
+      this.addressListData[2] = countyListData;
+    },
+    // 区域更新
+    addressColumnchange(e) {
+      const { column, value } = e.detail;
+      this.addressSelectListData[column] = value;
+      // 当前选择的节点地址
+      const selectItem = this.addressListData[column][value];
+      if (column === 0) {
+        // 根据省份获取城市
+        this.getCity(selectItem);
+      } else if (column === 1) {
+        // 获取当前城市的省份
+        const province = this.addressListData[0][this.addressSelectListData[0]];
+        // 根据省份和城市获取区域
+        if (selectItem) {
+          this.getCounty(province, selectItem);
+        }
+      }
+      this.$forceUpdate();
+    },
+    // 区域确定
+    addressChange(e) {
+      const { value } = e.detail;
+      // 获取省、市、区
+      let province = this.addressListData[0][value[0]] || "";
+      let city = this.addressListData[1][value[1]] || "";
+      let county = this.addressListData[2][value[2]] || "";
+
+      // 拼接页面显示的地址链接
+      const addressListStr = [];
+      if (province) {
+        addressListStr.push(province);
+      }
+      if (city) {
+        addressListStr.push(city);
+      }
+      if (county) {
+        addressListStr.push(county);
+      }
+      this.addressListStr = addressListStr.join("-");
+
+      // 传值给父页面
+      const addressList = [province, city, county];
+      this.$emit("selectAddress", addressList);
+    },
+  },
+};
+</script>
+<style>
+.noneAddress {
+  font-size: 28rpx;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #cdcdcd;
+}
+.haveAddress {
+  font-size: 28rpx;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #333333;
+}
+</style>

+ 17 - 0
components/comp-select-address/README.md

@@ -0,0 +1,17 @@
+----------------------------------------------------组件使用方式
+
+<CompSelectAddress
+@selectAddress="selectAddress"
+:value="['天津市', '河东区', '河东区']"
+/>
+
+// 点击确定的回调
+selectAddress(value) {
+const [province, city, county] = value;
+console.log("省份", province);
+console.log("城市", city);
+console.log("区域", county);
+},
+
+// 回显的地址
+value="['天津市', '河东区', '河东区']"

+ 13586 - 0
components/comp-select-address/citydata.js

@@ -0,0 +1,13586 @@
+export default [
+  {
+    children: [
+      {
+        value: "东城区",
+        label: "东城区",
+      },
+      {
+        value: "西城区",
+        label: "西城区",
+      },
+      {
+        value: "朝阳区",
+        label: "朝阳区",
+      },
+      {
+        value: "丰台区",
+        label: "丰台区",
+      },
+      {
+        value: "石景山区",
+        label: "石景山区",
+      },
+      {
+        value: "海淀区",
+        label: "海淀区",
+      },
+      {
+        value: "门头沟区",
+        label: "门头沟区",
+      },
+      {
+        value: "房山区",
+        label: "房山区",
+      },
+      {
+        value: "通州区",
+        label: "通州区",
+      },
+      {
+        value: "顺义区",
+        label: "顺义区",
+      },
+      {
+        value: "昌平区",
+        label: "昌平区",
+      },
+      {
+        value: "大兴区",
+        label: "大兴区",
+      },
+      {
+        value: "怀柔区",
+        label: "怀柔区",
+      },
+      {
+        value: "平谷区",
+        label: "平谷区",
+      },
+      {
+        value: "密云区",
+        label: "密云区",
+      },
+      {
+        value: "延庆区",
+        label: "延庆区",
+      },
+    ],
+    value: "北京市",
+    label: "北京市",
+  },
+  {
+    children: [
+      {
+        value: "和平区",
+        label: "和平区",
+      },
+      {
+        value: "河东区",
+        label: "河东区",
+      },
+      {
+        value: "河西区",
+        label: "河西区",
+      },
+      {
+        value: "南开区",
+        label: "南开区",
+      },
+      {
+        value: "河北区",
+        label: "河北区",
+      },
+      {
+        value: "红桥区",
+        label: "红桥区",
+      },
+      {
+        value: "东丽区",
+        label: "东丽区",
+      },
+      {
+        value: "西青区",
+        label: "西青区",
+      },
+      {
+        value: "津南区",
+        label: "津南区",
+      },
+      {
+        value: "北辰区",
+        label: "北辰区",
+      },
+      {
+        value: "武清区",
+        label: "武清区",
+      },
+      {
+        value: "宝坻区",
+        label: "宝坻区",
+      },
+      {
+        value: "滨海新区",
+        label: "滨海新区",
+      },
+      {
+        value: "宁河区",
+        label: "宁河区",
+      },
+      {
+        value: "静海区",
+        label: "静海区",
+      },
+      {
+        value: "蓟州区",
+        label: "蓟州区",
+      },
+    ],
+    value: "天津市",
+    label: "天津市",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "长安区",
+            label: "长安区",
+          },
+          {
+            value: "桥西区",
+            label: "桥西区",
+          },
+          {
+            value: "新华区",
+            label: "新华区",
+          },
+          {
+            value: "井陉矿区",
+            label: "井陉矿区",
+          },
+          {
+            value: "裕华区",
+            label: "裕华区",
+          },
+          {
+            value: "藁城区",
+            label: "藁城区",
+          },
+          {
+            value: "鹿泉区",
+            label: "鹿泉区",
+          },
+          {
+            value: "栾城区",
+            label: "栾城区",
+          },
+          {
+            value: "井陉县",
+            label: "井陉县",
+          },
+          {
+            value: "正定县",
+            label: "正定县",
+          },
+          {
+            value: "行唐县",
+            label: "行唐县",
+          },
+          {
+            value: "灵寿县",
+            label: "灵寿县",
+          },
+          {
+            value: "高邑县",
+            label: "高邑县",
+          },
+          {
+            value: "深泽县",
+            label: "深泽县",
+          },
+          {
+            value: "赞皇县",
+            label: "赞皇县",
+          },
+          {
+            value: "无极县",
+            label: "无极县",
+          },
+          {
+            value: "平山县",
+            label: "平山县",
+          },
+          {
+            value: "元氏县",
+            label: "元氏县",
+          },
+          {
+            value: "赵县",
+            label: "赵县",
+          },
+          {
+            value: "晋州市",
+            label: "晋州市",
+          },
+          {
+            value: "新乐市",
+            label: "新乐市",
+          },
+        ],
+        value: "石家庄市",
+        label: "石家庄市",
+      },
+      {
+        children: [
+          {
+            value: "路南区",
+            label: "路南区",
+          },
+          {
+            value: "路北区",
+            label: "路北区",
+          },
+          {
+            value: "古冶区",
+            label: "古冶区",
+          },
+          {
+            value: "开平区",
+            label: "开平区",
+          },
+          {
+            value: "丰南区",
+            label: "丰南区",
+          },
+          {
+            value: "丰润区",
+            label: "丰润区",
+          },
+          {
+            value: "曹妃甸区",
+            label: "曹妃甸区",
+          },
+          {
+            value: "滦县",
+            label: "滦县",
+          },
+          {
+            value: "滦南县",
+            label: "滦南县",
+          },
+          {
+            value: "乐亭县",
+            label: "乐亭县",
+          },
+          {
+            value: "迁西县",
+            label: "迁西县",
+          },
+          {
+            value: "玉田县",
+            label: "玉田县",
+          },
+          {
+            value: "遵化市",
+            label: "遵化市",
+          },
+          {
+            value: "迁安市",
+            label: "迁安市",
+          },
+        ],
+        value: "唐山市",
+        label: "唐山市",
+      },
+      {
+        children: [
+          {
+            value: "海港区",
+            label: "海港区",
+          },
+          {
+            value: "山海关区",
+            label: "山海关区",
+          },
+          {
+            value: "北戴河区",
+            label: "北戴河区",
+          },
+          {
+            value: "抚宁区",
+            label: "抚宁区",
+          },
+          {
+            value: "青龙满族自治县",
+            label: "青龙满族自治县",
+          },
+          {
+            value: "昌黎县",
+            label: "昌黎县",
+          },
+          {
+            value: "卢龙县",
+            label: "卢龙县",
+          },
+        ],
+        value: "秦皇岛市",
+        label: "秦皇岛市",
+      },
+      {
+        children: [
+          {
+            value: "邯山区",
+            label: "邯山区",
+          },
+          {
+            value: "丛台区",
+            label: "丛台区",
+          },
+          {
+            value: "复兴区",
+            label: "复兴区",
+          },
+          {
+            value: "峰峰矿区",
+            label: "峰峰矿区",
+          },
+          {
+            value: "邯郸县",
+            label: "邯郸县",
+          },
+          {
+            value: "临漳县",
+            label: "临漳县",
+          },
+          {
+            value: "成安县",
+            label: "成安县",
+          },
+          {
+            value: "大名县",
+            label: "大名县",
+          },
+          {
+            value: "涉县",
+            label: "涉县",
+          },
+          {
+            value: "磁县",
+            label: "磁县",
+          },
+          {
+            value: "肥乡县",
+            label: "肥乡县",
+          },
+          {
+            value: "永年县",
+            label: "永年县",
+          },
+          {
+            value: "邱县",
+            label: "邱县",
+          },
+          {
+            value: "鸡泽县",
+            label: "鸡泽县",
+          },
+          {
+            value: "广平县",
+            label: "广平县",
+          },
+          {
+            value: "馆陶县",
+            label: "馆陶县",
+          },
+          {
+            value: "魏县",
+            label: "魏县",
+          },
+          {
+            value: "曲周县",
+            label: "曲周县",
+          },
+          {
+            value: "武安市",
+            label: "武安市",
+          },
+        ],
+        value: "邯郸市",
+        label: "邯郸市",
+      },
+      {
+        children: [
+          {
+            value: "桥东区",
+            label: "桥东区",
+          },
+          {
+            value: "桥西区",
+            label: "桥西区",
+          },
+          {
+            value: "邢台县",
+            label: "邢台县",
+          },
+          {
+            value: "临城县",
+            label: "临城县",
+          },
+          {
+            value: "内丘县",
+            label: "内丘县",
+          },
+          {
+            value: "柏乡县",
+            label: "柏乡县",
+          },
+          {
+            value: "隆尧县",
+            label: "隆尧县",
+          },
+          {
+            value: "任县",
+            label: "任县",
+          },
+          {
+            value: "南和县",
+            label: "南和县",
+          },
+          {
+            value: "宁晋县",
+            label: "宁晋县",
+          },
+          {
+            value: "巨鹿县",
+            label: "巨鹿县",
+          },
+          {
+            value: "新河县",
+            label: "新河县",
+          },
+          {
+            value: "广宗县",
+            label: "广宗县",
+          },
+          {
+            value: "平乡县",
+            label: "平乡县",
+          },
+          {
+            value: "威县",
+            label: "威县",
+          },
+          {
+            value: "清河县",
+            label: "清河县",
+          },
+          {
+            value: "临西县",
+            label: "临西县",
+          },
+          {
+            value: "南宫市",
+            label: "南宫市",
+          },
+          {
+            value: "沙河市",
+            label: "沙河市",
+          },
+        ],
+        value: "邢台市",
+        label: "邢台市",
+      },
+      {
+        children: [
+          {
+            value: "竞秀区",
+            label: "竞秀区",
+          },
+          {
+            value: "莲池区",
+            label: "莲池区",
+          },
+          {
+            value: "满城区",
+            label: "满城区",
+          },
+          {
+            value: "清苑区",
+            label: "清苑区",
+          },
+          {
+            value: "徐水区",
+            label: "徐水区",
+          },
+          {
+            value: "涞水县",
+            label: "涞水县",
+          },
+          {
+            value: "阜平县",
+            label: "阜平县",
+          },
+          {
+            value: "定兴县",
+            label: "定兴县",
+          },
+          {
+            value: "唐县",
+            label: "唐县",
+          },
+          {
+            value: "高阳县",
+            label: "高阳县",
+          },
+          {
+            value: "容城县",
+            label: "容城县",
+          },
+          {
+            value: "涞源县",
+            label: "涞源县",
+          },
+          {
+            value: "望都县",
+            label: "望都县",
+          },
+          {
+            value: "安新县",
+            label: "安新县",
+          },
+          {
+            value: "易县",
+            label: "易县",
+          },
+          {
+            value: "曲阳县",
+            label: "曲阳县",
+          },
+          {
+            value: "蠡县",
+            label: "蠡县",
+          },
+          {
+            value: "顺平县",
+            label: "顺平县",
+          },
+          {
+            value: "博野县",
+            label: "博野县",
+          },
+          {
+            value: "雄县",
+            label: "雄县",
+          },
+          {
+            value: "涿州市",
+            label: "涿州市",
+          },
+          {
+            value: "安国市",
+            label: "安国市",
+          },
+          {
+            value: "高碑店市",
+            label: "高碑店市",
+          },
+        ],
+        value: "保定市",
+        label: "保定市",
+      },
+      {
+        children: [
+          {
+            value: "桥东区",
+            label: "桥东区",
+          },
+          {
+            value: "桥西区",
+            label: "桥西区",
+          },
+          {
+            value: "宣化区",
+            label: "宣化区",
+          },
+          {
+            value: "下花园区",
+            label: "下花园区",
+          },
+          {
+            value: "万全区",
+            label: "万全区",
+          },
+          {
+            value: "崇礼区",
+            label: "崇礼区",
+          },
+          {
+            value: "张北县",
+            label: "张北县",
+          },
+          {
+            value: "康保县",
+            label: "康保县",
+          },
+          {
+            value: "沽源县",
+            label: "沽源县",
+          },
+          {
+            value: "尚义县",
+            label: "尚义县",
+          },
+          {
+            value: "蔚县",
+            label: "蔚县",
+          },
+          {
+            value: "阳原县",
+            label: "阳原县",
+          },
+          {
+            value: "怀安县",
+            label: "怀安县",
+          },
+          {
+            value: "怀来县",
+            label: "怀来县",
+          },
+          {
+            value: "涿鹿县",
+            label: "涿鹿县",
+          },
+          {
+            value: "赤城县",
+            label: "赤城县",
+          },
+        ],
+        value: "张家口市",
+        label: "张家口市",
+      },
+      {
+        children: [
+          {
+            value: "双桥区",
+            label: "双桥区",
+          },
+          {
+            value: "双滦区",
+            label: "双滦区",
+          },
+          {
+            value: "鹰手营子矿区",
+            label: "鹰手营子矿区",
+          },
+          {
+            value: "承德县",
+            label: "承德县",
+          },
+          {
+            value: "兴隆县",
+            label: "兴隆县",
+          },
+          {
+            value: "平泉县",
+            label: "平泉县",
+          },
+          {
+            value: "滦平县",
+            label: "滦平县",
+          },
+          {
+            value: "隆化县",
+            label: "隆化县",
+          },
+          {
+            value: "丰宁满族自治县",
+            label: "丰宁满族自治县",
+          },
+          {
+            value: "宽城满族自治县",
+            label: "宽城满族自治县",
+          },
+          {
+            value: "围场满族蒙古族自治县",
+            label: "围场满族蒙古族自治县",
+          },
+        ],
+        value: "承德市",
+        label: "承德市",
+      },
+      {
+        children: [
+          {
+            value: "新华区",
+            label: "新华区",
+          },
+          {
+            value: "运河区",
+            label: "运河区",
+          },
+          {
+            value: "沧县",
+            label: "沧县",
+          },
+          {
+            value: "青县",
+            label: "青县",
+          },
+          {
+            value: "东光县",
+            label: "东光县",
+          },
+          {
+            value: "海兴县",
+            label: "海兴县",
+          },
+          {
+            value: "盐山县",
+            label: "盐山县",
+          },
+          {
+            value: "肃宁县",
+            label: "肃宁县",
+          },
+          {
+            value: "南皮县",
+            label: "南皮县",
+          },
+          {
+            value: "吴桥县",
+            label: "吴桥县",
+          },
+          {
+            value: "献县",
+            label: "献县",
+          },
+          {
+            value: "孟村回族自治县",
+            label: "孟村回族自治县",
+          },
+          {
+            value: "泊头市",
+            label: "泊头市",
+          },
+          {
+            value: "任丘市",
+            label: "任丘市",
+          },
+          {
+            value: "黄骅市",
+            label: "黄骅市",
+          },
+          {
+            value: "河间市",
+            label: "河间市",
+          },
+        ],
+        value: "沧州市",
+        label: "沧州市",
+      },
+      {
+        children: [
+          {
+            value: "安次区",
+            label: "安次区",
+          },
+          {
+            value: "广阳区",
+            label: "广阳区",
+          },
+          {
+            value: "固安县",
+            label: "固安县",
+          },
+          {
+            value: "永清县",
+            label: "永清县",
+          },
+          {
+            value: "香河县",
+            label: "香河县",
+          },
+          {
+            value: "大城县",
+            label: "大城县",
+          },
+          {
+            value: "文安县",
+            label: "文安县",
+          },
+          {
+            value: "大厂回族自治县",
+            label: "大厂回族自治县",
+          },
+          {
+            value: "霸州市",
+            label: "霸州市",
+          },
+          {
+            value: "三河市",
+            label: "三河市",
+          },
+        ],
+        value: "廊坊市",
+        label: "廊坊市",
+      },
+      {
+        children: [
+          {
+            value: "桃城区",
+            label: "桃城区",
+          },
+          {
+            value: "冀州区",
+            label: "冀州区",
+          },
+          {
+            value: "枣强县",
+            label: "枣强县",
+          },
+          {
+            value: "武邑县",
+            label: "武邑县",
+          },
+          {
+            value: "武强县",
+            label: "武强县",
+          },
+          {
+            value: "饶阳县",
+            label: "饶阳县",
+          },
+          {
+            value: "安平县",
+            label: "安平县",
+          },
+          {
+            value: "故城县",
+            label: "故城县",
+          },
+          {
+            value: "景县",
+            label: "景县",
+          },
+          {
+            value: "阜城县",
+            label: "阜城县",
+          },
+          {
+            value: "深州市",
+            label: "深州市",
+          },
+        ],
+        value: "衡水市",
+        label: "衡水市",
+      },
+      {
+        value: "定州市",
+        label: "定州市",
+      },
+      {
+        value: "辛集市",
+        label: "辛集市",
+      },
+    ],
+    value: "河北省",
+    label: "河北省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "小店区",
+            label: "小店区",
+          },
+          {
+            value: "迎泽区",
+            label: "迎泽区",
+          },
+          {
+            value: "杏花岭区",
+            label: "杏花岭区",
+          },
+          {
+            value: "尖草坪区",
+            label: "尖草坪区",
+          },
+          {
+            value: "万柏林区",
+            label: "万柏林区",
+          },
+          {
+            value: "晋源区",
+            label: "晋源区",
+          },
+          {
+            value: "清徐县",
+            label: "清徐县",
+          },
+          {
+            value: "阳曲县",
+            label: "阳曲县",
+          },
+          {
+            value: "娄烦县",
+            label: "娄烦县",
+          },
+          {
+            value: "古交市",
+            label: "古交市",
+          },
+        ],
+        value: "太原市",
+        label: "太原市",
+      },
+      {
+        children: [
+          {
+            value: "城区",
+            label: "城区",
+          },
+          {
+            value: "矿区",
+            label: "矿区",
+          },
+          {
+            value: "南郊区",
+            label: "南郊区",
+          },
+          {
+            value: "新荣区",
+            label: "新荣区",
+          },
+          {
+            value: "阳高县",
+            label: "阳高县",
+          },
+          {
+            value: "天镇县",
+            label: "天镇县",
+          },
+          {
+            value: "广灵县",
+            label: "广灵县",
+          },
+          {
+            value: "灵丘县",
+            label: "灵丘县",
+          },
+          {
+            value: "浑源县",
+            label: "浑源县",
+          },
+          {
+            value: "左云县",
+            label: "左云县",
+          },
+          {
+            value: "大同县",
+            label: "大同县",
+          },
+        ],
+        value: "大同市",
+        label: "大同市",
+      },
+      {
+        children: [
+          {
+            value: "城区",
+            label: "城区",
+          },
+          {
+            value: "矿区",
+            label: "矿区",
+          },
+          {
+            value: "郊区",
+            label: "郊区",
+          },
+          {
+            value: "平定县",
+            label: "平定县",
+          },
+          {
+            value: "盂县",
+            label: "盂县",
+          },
+        ],
+        value: "阳泉市",
+        label: "阳泉市",
+      },
+      {
+        children: [
+          {
+            value: "城区",
+            label: "城区",
+          },
+          {
+            value: "郊区",
+            label: "郊区",
+          },
+          {
+            value: "长治县",
+            label: "长治县",
+          },
+          {
+            value: "襄垣县",
+            label: "襄垣县",
+          },
+          {
+            value: "屯留县",
+            label: "屯留县",
+          },
+          {
+            value: "平顺县",
+            label: "平顺县",
+          },
+          {
+            value: "黎城县",
+            label: "黎城县",
+          },
+          {
+            value: "壶关县",
+            label: "壶关县",
+          },
+          {
+            value: "长子县",
+            label: "长子县",
+          },
+          {
+            value: "武乡县",
+            label: "武乡县",
+          },
+          {
+            value: "沁县",
+            label: "沁县",
+          },
+          {
+            value: "沁源县",
+            label: "沁源县",
+          },
+          {
+            value: "潞城市",
+            label: "潞城市",
+          },
+        ],
+        value: "长治市",
+        label: "长治市",
+      },
+      {
+        children: [
+          {
+            value: "城区",
+            label: "城区",
+          },
+          {
+            value: "沁水县",
+            label: "沁水县",
+          },
+          {
+            value: "阳城县",
+            label: "阳城县",
+          },
+          {
+            value: "陵川县",
+            label: "陵川县",
+          },
+          {
+            value: "泽州县",
+            label: "泽州县",
+          },
+          {
+            value: "高平市",
+            label: "高平市",
+          },
+        ],
+        value: "晋城市",
+        label: "晋城市",
+      },
+      {
+        children: [
+          {
+            value: "朔城区",
+            label: "朔城区",
+          },
+          {
+            value: "平鲁区",
+            label: "平鲁区",
+          },
+          {
+            value: "山阴县",
+            label: "山阴县",
+          },
+          {
+            value: "应县",
+            label: "应县",
+          },
+          {
+            value: "右玉县",
+            label: "右玉县",
+          },
+          {
+            value: "怀仁县",
+            label: "怀仁县",
+          },
+        ],
+        value: "朔州市",
+        label: "朔州市",
+      },
+      {
+        children: [
+          {
+            value: "榆次区",
+            label: "榆次区",
+          },
+          {
+            value: "榆社县",
+            label: "榆社县",
+          },
+          {
+            value: "左权县",
+            label: "左权县",
+          },
+          {
+            value: "和顺县",
+            label: "和顺县",
+          },
+          {
+            value: "昔阳县",
+            label: "昔阳县",
+          },
+          {
+            value: "寿阳县",
+            label: "寿阳县",
+          },
+          {
+            value: "太谷县",
+            label: "太谷县",
+          },
+          {
+            value: "祁县",
+            label: "祁县",
+          },
+          {
+            value: "平遥县",
+            label: "平遥县",
+          },
+          {
+            value: "灵石县",
+            label: "灵石县",
+          },
+          {
+            value: "介休市",
+            label: "介休市",
+          },
+        ],
+        value: "晋中市",
+        label: "晋中市",
+      },
+      {
+        children: [
+          {
+            value: "盐湖区",
+            label: "盐湖区",
+          },
+          {
+            value: "临猗县",
+            label: "临猗县",
+          },
+          {
+            value: "万荣县",
+            label: "万荣县",
+          },
+          {
+            value: "闻喜县",
+            label: "闻喜县",
+          },
+          {
+            value: "稷山县",
+            label: "稷山县",
+          },
+          {
+            value: "新绛县",
+            label: "新绛县",
+          },
+          {
+            value: "绛县",
+            label: "绛县",
+          },
+          {
+            value: "垣曲县",
+            label: "垣曲县",
+          },
+          {
+            value: "夏县",
+            label: "夏县",
+          },
+          {
+            value: "平陆县",
+            label: "平陆县",
+          },
+          {
+            value: "芮城县",
+            label: "芮城县",
+          },
+          {
+            value: "永济市",
+            label: "永济市",
+          },
+          {
+            value: "河津市",
+            label: "河津市",
+          },
+        ],
+        value: "运城市",
+        label: "运城市",
+      },
+      {
+        children: [
+          {
+            value: "忻府区",
+            label: "忻府区",
+          },
+          {
+            value: "定襄县",
+            label: "定襄县",
+          },
+          {
+            value: "五台县",
+            label: "五台县",
+          },
+          {
+            value: "代县",
+            label: "代县",
+          },
+          {
+            value: "繁峙县",
+            label: "繁峙县",
+          },
+          {
+            value: "宁武县",
+            label: "宁武县",
+          },
+          {
+            value: "静乐县",
+            label: "静乐县",
+          },
+          {
+            value: "神池县",
+            label: "神池县",
+          },
+          {
+            value: "五寨县",
+            label: "五寨县",
+          },
+          {
+            value: "岢岚县",
+            label: "岢岚县",
+          },
+          {
+            value: "河曲县",
+            label: "河曲县",
+          },
+          {
+            value: "保德县",
+            label: "保德县",
+          },
+          {
+            value: "偏关县",
+            label: "偏关县",
+          },
+          {
+            value: "原平市",
+            label: "原平市",
+          },
+        ],
+        value: "忻州市",
+        label: "忻州市",
+      },
+      {
+        children: [
+          {
+            value: "尧都区",
+            label: "尧都区",
+          },
+          {
+            value: "曲沃县",
+            label: "曲沃县",
+          },
+          {
+            value: "翼城县",
+            label: "翼城县",
+          },
+          {
+            value: "襄汾县",
+            label: "襄汾县",
+          },
+          {
+            value: "洪洞县",
+            label: "洪洞县",
+          },
+          {
+            value: "古县",
+            label: "古县",
+          },
+          {
+            value: "安泽县",
+            label: "安泽县",
+          },
+          {
+            value: "浮山县",
+            label: "浮山县",
+          },
+          {
+            value: "吉县",
+            label: "吉县",
+          },
+          {
+            value: "乡宁县",
+            label: "乡宁县",
+          },
+          {
+            value: "大宁县",
+            label: "大宁县",
+          },
+          {
+            value: "隰县",
+            label: "隰县",
+          },
+          {
+            value: "永和县",
+            label: "永和县",
+          },
+          {
+            value: "蒲县",
+            label: "蒲县",
+          },
+          {
+            value: "汾西县",
+            label: "汾西县",
+          },
+          {
+            value: "侯马市",
+            label: "侯马市",
+          },
+          {
+            value: "霍州市",
+            label: "霍州市",
+          },
+        ],
+        value: "临汾市",
+        label: "临汾市",
+      },
+      {
+        children: [
+          {
+            value: "离石区",
+            label: "离石区",
+          },
+          {
+            value: "文水县",
+            label: "文水县",
+          },
+          {
+            value: "交城县",
+            label: "交城县",
+          },
+          {
+            value: "兴县",
+            label: "兴县",
+          },
+          {
+            value: "临县",
+            label: "临县",
+          },
+          {
+            value: "柳林县",
+            label: "柳林县",
+          },
+          {
+            value: "石楼县",
+            label: "石楼县",
+          },
+          {
+            value: "岚县",
+            label: "岚县",
+          },
+          {
+            value: "方山县",
+            label: "方山县",
+          },
+          {
+            value: "中阳县",
+            label: "中阳县",
+          },
+          {
+            value: "交口县",
+            label: "交口县",
+          },
+          {
+            value: "孝义市",
+            label: "孝义市",
+          },
+          {
+            value: "汾阳市",
+            label: "汾阳市",
+          },
+        ],
+        value: "吕梁市",
+        label: "吕梁市",
+      },
+    ],
+    value: "山西省",
+    label: "山西省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "新城区",
+            label: "新城区",
+          },
+          {
+            value: "回民区",
+            label: "回民区",
+          },
+          {
+            value: "玉泉区",
+            label: "玉泉区",
+          },
+          {
+            value: "赛罕区",
+            label: "赛罕区",
+          },
+          {
+            value: "土默特左旗",
+            label: "土默特左旗",
+          },
+          {
+            value: "托克托县",
+            label: "托克托县",
+          },
+          {
+            value: "和林格尔县",
+            label: "和林格尔县",
+          },
+          {
+            value: "清水河县",
+            label: "清水河县",
+          },
+          {
+            value: "武川县",
+            label: "武川县",
+          },
+        ],
+        value: "呼和浩特市",
+        label: "呼和浩特市",
+      },
+      {
+        children: [
+          {
+            value: "东河区",
+            label: "东河区",
+          },
+          {
+            value: "昆都仑区",
+            label: "昆都仑区",
+          },
+          {
+            value: "青山区",
+            label: "青山区",
+          },
+          {
+            value: "石拐区",
+            label: "石拐区",
+          },
+          {
+            value: "白云鄂博矿区",
+            label: "白云鄂博矿区",
+          },
+          {
+            value: "九原区",
+            label: "九原区",
+          },
+          {
+            value: "土默特右旗",
+            label: "土默特右旗",
+          },
+          {
+            value: "固阳县",
+            label: "固阳县",
+          },
+          {
+            value: "达尔罕茂明安联合旗",
+            label: "达尔罕茂明安联合旗",
+          },
+        ],
+        value: "包头市",
+        label: "包头市",
+      },
+      {
+        children: [
+          {
+            value: "海勃湾区",
+            label: "海勃湾区",
+          },
+          {
+            value: "海南区",
+            label: "海南区",
+          },
+          {
+            value: "乌达区",
+            label: "乌达区",
+          },
+        ],
+        value: "乌海市",
+        label: "乌海市",
+      },
+      {
+        children: [
+          {
+            value: "红山区",
+            label: "红山区",
+          },
+          {
+            value: "元宝山区",
+            label: "元宝山区",
+          },
+          {
+            value: "松山区",
+            label: "松山区",
+          },
+          {
+            value: "阿鲁科尔沁旗",
+            label: "阿鲁科尔沁旗",
+          },
+          {
+            value: "巴林左旗",
+            label: "巴林左旗",
+          },
+          {
+            value: "巴林右旗",
+            label: "巴林右旗",
+          },
+          {
+            value: "林西县",
+            label: "林西县",
+          },
+          {
+            value: "克什克腾旗",
+            label: "克什克腾旗",
+          },
+          {
+            value: "翁牛特旗",
+            label: "翁牛特旗",
+          },
+          {
+            value: "喀喇沁旗",
+            label: "喀喇沁旗",
+          },
+          {
+            value: "宁城县",
+            label: "宁城县",
+          },
+          {
+            value: "敖汉旗",
+            label: "敖汉旗",
+          },
+        ],
+        value: "赤峰市",
+        label: "赤峰市",
+      },
+      {
+        children: [
+          {
+            value: "科尔沁区",
+            label: "科尔沁区",
+          },
+          {
+            value: "科尔沁左翼中旗",
+            label: "科尔沁左翼中旗",
+          },
+          {
+            value: "科尔沁左翼后旗",
+            label: "科尔沁左翼后旗",
+          },
+          {
+            value: "开鲁县",
+            label: "开鲁县",
+          },
+          {
+            value: "库伦旗",
+            label: "库伦旗",
+          },
+          {
+            value: "奈曼旗",
+            label: "奈曼旗",
+          },
+          {
+            value: "扎鲁特旗",
+            label: "扎鲁特旗",
+          },
+          {
+            value: "霍林郭勒市",
+            label: "霍林郭勒市",
+          },
+        ],
+        value: "通辽市",
+        label: "通辽市",
+      },
+      {
+        children: [
+          {
+            value: "东胜区",
+            label: "东胜区",
+          },
+          {
+            value: "康巴什区",
+            label: "康巴什区",
+          },
+          {
+            value: "达拉特旗",
+            label: "达拉特旗",
+          },
+          {
+            value: "准格尔旗",
+            label: "准格尔旗",
+          },
+          {
+            value: "鄂托克前旗",
+            label: "鄂托克前旗",
+          },
+          {
+            value: "鄂托克旗",
+            label: "鄂托克旗",
+          },
+          {
+            value: "杭锦旗",
+            label: "杭锦旗",
+          },
+          {
+            value: "乌审旗",
+            label: "乌审旗",
+          },
+          {
+            value: "伊金霍洛旗",
+            label: "伊金霍洛旗",
+          },
+        ],
+        value: "鄂尔多斯市",
+        label: "鄂尔多斯市",
+      },
+      {
+        children: [
+          {
+            value: "海拉尔区",
+            label: "海拉尔区",
+          },
+          {
+            value: "扎赉诺尔区",
+            label: "扎赉诺尔区",
+          },
+          {
+            value: "阿荣旗",
+            label: "阿荣旗",
+          },
+          {
+            value: "莫力达瓦达斡尔族自治旗",
+            label: "莫力达瓦达斡尔族自治旗",
+          },
+          {
+            value: "鄂伦春自治旗",
+            label: "鄂伦春自治旗",
+          },
+          {
+            value: "鄂温克族自治旗",
+            label: "鄂温克族自治旗",
+          },
+          {
+            value: "陈巴尔虎旗",
+            label: "陈巴尔虎旗",
+          },
+          {
+            value: "新巴尔虎左旗",
+            label: "新巴尔虎左旗",
+          },
+          {
+            value: "新巴尔虎右旗",
+            label: "新巴尔虎右旗",
+          },
+          {
+            value: "满洲里市",
+            label: "满洲里市",
+          },
+          {
+            value: "牙克石市",
+            label: "牙克石市",
+          },
+          {
+            value: "扎兰屯市",
+            label: "扎兰屯市",
+          },
+          {
+            value: "额尔古纳市",
+            label: "额尔古纳市",
+          },
+          {
+            value: "根河市",
+            label: "根河市",
+          },
+        ],
+        value: "呼伦贝尔市",
+        label: "呼伦贝尔市",
+      },
+      {
+        children: [
+          {
+            value: "临河区",
+            label: "临河区",
+          },
+          {
+            value: "五原县",
+            label: "五原县",
+          },
+          {
+            value: "磴口县",
+            label: "磴口县",
+          },
+          {
+            value: "乌拉特前旗",
+            label: "乌拉特前旗",
+          },
+          {
+            value: "乌拉特中旗",
+            label: "乌拉特中旗",
+          },
+          {
+            value: "乌拉特后旗",
+            label: "乌拉特后旗",
+          },
+          {
+            value: "杭锦后旗",
+            label: "杭锦后旗",
+          },
+        ],
+        value: "巴彦淖尔市",
+        label: "巴彦淖尔市",
+      },
+      {
+        children: [
+          {
+            value: "集宁区",
+            label: "集宁区",
+          },
+          {
+            value: "卓资县",
+            label: "卓资县",
+          },
+          {
+            value: "化德县",
+            label: "化德县",
+          },
+          {
+            value: "商都县",
+            label: "商都县",
+          },
+          {
+            value: "兴和县",
+            label: "兴和县",
+          },
+          {
+            value: "凉城县",
+            label: "凉城县",
+          },
+          {
+            value: "察哈尔右翼前旗",
+            label: "察哈尔右翼前旗",
+          },
+          {
+            value: "察哈尔右翼中旗",
+            label: "察哈尔右翼中旗",
+          },
+          {
+            value: "察哈尔右翼后旗",
+            label: "察哈尔右翼后旗",
+          },
+          {
+            value: "四子王旗",
+            label: "四子王旗",
+          },
+          {
+            value: "丰镇市",
+            label: "丰镇市",
+          },
+        ],
+        value: "乌兰察布市",
+        label: "乌兰察布市",
+      },
+      {
+        children: [
+          {
+            value: "乌兰浩特市",
+            label: "乌兰浩特市",
+          },
+          {
+            value: "阿尔山市",
+            label: "阿尔山市",
+          },
+          {
+            value: "科尔沁右翼前旗",
+            label: "科尔沁右翼前旗",
+          },
+          {
+            value: "科尔沁右翼中旗",
+            label: "科尔沁右翼中旗",
+          },
+          {
+            value: "扎赉特旗",
+            label: "扎赉特旗",
+          },
+          {
+            value: "突泉县",
+            label: "突泉县",
+          },
+        ],
+        value: "兴安盟",
+        label: "兴安盟",
+      },
+      {
+        children: [
+          {
+            value: "二连浩特市",
+            label: "二连浩特市",
+          },
+          {
+            value: "锡林浩特市",
+            label: "锡林浩特市",
+          },
+          {
+            value: "阿巴嘎旗",
+            label: "阿巴嘎旗",
+          },
+          {
+            value: "苏尼特左旗",
+            label: "苏尼特左旗",
+          },
+          {
+            value: "苏尼特右旗",
+            label: "苏尼特右旗",
+          },
+          {
+            value: "东乌珠穆沁旗",
+            label: "东乌珠穆沁旗",
+          },
+          {
+            value: "西乌珠穆沁旗",
+            label: "西乌珠穆沁旗",
+          },
+          {
+            value: "太仆寺旗",
+            label: "太仆寺旗",
+          },
+          {
+            value: "镶黄旗",
+            label: "镶黄旗",
+          },
+          {
+            value: "正镶白旗",
+            label: "正镶白旗",
+          },
+          {
+            value: "正蓝旗",
+            label: "正蓝旗",
+          },
+          {
+            value: "多伦县",
+            label: "多伦县",
+          },
+        ],
+        value: "锡林郭勒盟",
+        label: "锡林郭勒盟",
+      },
+      {
+        children: [
+          {
+            value: "阿拉善左旗",
+            label: "阿拉善左旗",
+          },
+          {
+            value: "阿拉善右旗",
+            label: "阿拉善右旗",
+          },
+          {
+            value: "额济纳旗",
+            label: "额济纳旗",
+          },
+        ],
+        value: "阿拉善盟",
+        label: "阿拉善盟",
+      },
+    ],
+    value: "内蒙古自治区",
+    label: "内蒙古自治区",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "和平区",
+            label: "和平区",
+          },
+          {
+            value: "沈河区",
+            label: "沈河区",
+          },
+          {
+            value: "大东区",
+            label: "大东区",
+          },
+          {
+            value: "皇姑区",
+            label: "皇姑区",
+          },
+          {
+            value: "铁西区",
+            label: "铁西区",
+          },
+          {
+            value: "苏家屯区",
+            label: "苏家屯区",
+          },
+          {
+            value: "浑南区",
+            label: "浑南区",
+          },
+          {
+            value: "沈北新区",
+            label: "沈北新区",
+          },
+          {
+            value: "于洪区",
+            label: "于洪区",
+          },
+          {
+            value: "辽中区",
+            label: "辽中区",
+          },
+          {
+            value: "康平县",
+            label: "康平县",
+          },
+          {
+            value: "法库县",
+            label: "法库县",
+          },
+          {
+            value: "新民市",
+            label: "新民市",
+          },
+        ],
+        value: "沈阳市",
+        label: "沈阳市",
+      },
+      {
+        children: [
+          {
+            value: "中山区",
+            label: "中山区",
+          },
+          {
+            value: "西岗区",
+            label: "西岗区",
+          },
+          {
+            value: "沙河口区",
+            label: "沙河口区",
+          },
+          {
+            value: "甘井子区",
+            label: "甘井子区",
+          },
+          {
+            value: "旅顺口区",
+            label: "旅顺口区",
+          },
+          {
+            value: "金州区",
+            label: "金州区",
+          },
+          {
+            value: "普兰店区",
+            label: "普兰店区",
+          },
+          {
+            value: "长海县",
+            label: "长海县",
+          },
+          {
+            value: "瓦房店市",
+            label: "瓦房店市",
+          },
+          {
+            value: "庄河市",
+            label: "庄河市",
+          },
+        ],
+        value: "大连市",
+        label: "大连市",
+      },
+      {
+        children: [
+          {
+            value: "铁东区",
+            label: "铁东区",
+          },
+          {
+            value: "铁西区",
+            label: "铁西区",
+          },
+          {
+            value: "立山区",
+            label: "立山区",
+          },
+          {
+            value: "千山区",
+            label: "千山区",
+          },
+          {
+            value: "台安县",
+            label: "台安县",
+          },
+          {
+            value: "岫岩满族自治县",
+            label: "岫岩满族自治县",
+          },
+          {
+            value: "海城市",
+            label: "海城市",
+          },
+        ],
+        value: "鞍山市",
+        label: "鞍山市",
+      },
+      {
+        children: [
+          {
+            value: "新抚区",
+            label: "新抚区",
+          },
+          {
+            value: "东洲区",
+            label: "东洲区",
+          },
+          {
+            value: "望花区",
+            label: "望花区",
+          },
+          {
+            value: "顺城区",
+            label: "顺城区",
+          },
+          {
+            value: "抚顺县",
+            label: "抚顺县",
+          },
+          {
+            value: "新宾满族自治县",
+            label: "新宾满族自治县",
+          },
+          {
+            value: "清原满族自治县",
+            label: "清原满族自治县",
+          },
+        ],
+        value: "抚顺市",
+        label: "抚顺市",
+      },
+      {
+        children: [
+          {
+            value: "平山区",
+            label: "平山区",
+          },
+          {
+            value: "溪湖区",
+            label: "溪湖区",
+          },
+          {
+            value: "明山区",
+            label: "明山区",
+          },
+          {
+            value: "南芬区",
+            label: "南芬区",
+          },
+          {
+            value: "本溪满族自治县",
+            label: "本溪满族自治县",
+          },
+          {
+            value: "桓仁满族自治县",
+            label: "桓仁满族自治县",
+          },
+        ],
+        value: "本溪市",
+        label: "本溪市",
+      },
+      {
+        children: [
+          {
+            value: "元宝区",
+            label: "元宝区",
+          },
+          {
+            value: "振兴区",
+            label: "振兴区",
+          },
+          {
+            value: "振安区",
+            label: "振安区",
+          },
+          {
+            value: "宽甸满族自治县",
+            label: "宽甸满族自治县",
+          },
+          {
+            value: "东港市",
+            label: "东港市",
+          },
+          {
+            value: "凤城市",
+            label: "凤城市",
+          },
+        ],
+        value: "丹东市",
+        label: "丹东市",
+      },
+      {
+        children: [
+          {
+            value: "古塔区",
+            label: "古塔区",
+          },
+          {
+            value: "凌河区",
+            label: "凌河区",
+          },
+          {
+            value: "太和区",
+            label: "太和区",
+          },
+          {
+            value: "黑山县",
+            label: "黑山县",
+          },
+          {
+            value: "义县",
+            label: "义县",
+          },
+          {
+            value: "凌海市",
+            label: "凌海市",
+          },
+          {
+            value: "北镇市",
+            label: "北镇市",
+          },
+        ],
+        value: "锦州市",
+        label: "锦州市",
+      },
+      {
+        children: [
+          {
+            value: "站前区",
+            label: "站前区",
+          },
+          {
+            value: "西市区",
+            label: "西市区",
+          },
+          {
+            value: "鲅鱼圈区",
+            label: "鲅鱼圈区",
+          },
+          {
+            value: "老边区",
+            label: "老边区",
+          },
+          {
+            value: "盖州市",
+            label: "盖州市",
+          },
+          {
+            value: "大石桥市",
+            label: "大石桥市",
+          },
+        ],
+        value: "营口市",
+        label: "营口市",
+      },
+      {
+        children: [
+          {
+            value: "海州区",
+            label: "海州区",
+          },
+          {
+            value: "新邱区",
+            label: "新邱区",
+          },
+          {
+            value: "太平区",
+            label: "太平区",
+          },
+          {
+            value: "清河门区",
+            label: "清河门区",
+          },
+          {
+            value: "细河区",
+            label: "细河区",
+          },
+          {
+            value: "阜新蒙古族自治县",
+            label: "阜新蒙古族自治县",
+          },
+          {
+            value: "彰武县",
+            label: "彰武县",
+          },
+        ],
+        value: "阜新市",
+        label: "阜新市",
+      },
+      {
+        children: [
+          {
+            value: "白塔区",
+            label: "白塔区",
+          },
+          {
+            value: "文圣区",
+            label: "文圣区",
+          },
+          {
+            value: "宏伟区",
+            label: "宏伟区",
+          },
+          {
+            value: "弓长岭区",
+            label: "弓长岭区",
+          },
+          {
+            value: "太子河区",
+            label: "太子河区",
+          },
+          {
+            value: "辽阳县",
+            label: "辽阳县",
+          },
+          {
+            value: "灯塔市",
+            label: "灯塔市",
+          },
+        ],
+        value: "辽阳市",
+        label: "辽阳市",
+      },
+      {
+        children: [
+          {
+            value: "双台子区",
+            label: "双台子区",
+          },
+          {
+            value: "兴隆台区",
+            label: "兴隆台区",
+          },
+          {
+            value: "大洼区",
+            label: "大洼区",
+          },
+          {
+            value: "盘山县",
+            label: "盘山县",
+          },
+        ],
+        value: "盘锦市",
+        label: "盘锦市",
+      },
+      {
+        children: [
+          {
+            value: "银州区",
+            label: "银州区",
+          },
+          {
+            value: "清河区",
+            label: "清河区",
+          },
+          {
+            value: "铁岭县",
+            label: "铁岭县",
+          },
+          {
+            value: "西丰县",
+            label: "西丰县",
+          },
+          {
+            value: "昌图县",
+            label: "昌图县",
+          },
+          {
+            value: "调兵山市",
+            label: "调兵山市",
+          },
+          {
+            value: "开原市",
+            label: "开原市",
+          },
+        ],
+        value: "铁岭市",
+        label: "铁岭市",
+      },
+      {
+        children: [
+          {
+            value: "双塔区",
+            label: "双塔区",
+          },
+          {
+            value: "龙城区",
+            label: "龙城区",
+          },
+          {
+            value: "朝阳县",
+            label: "朝阳县",
+          },
+          {
+            value: "建平县",
+            label: "建平县",
+          },
+          {
+            value: "喀喇沁左翼蒙古族自治县",
+            label: "喀喇沁左翼蒙古族自治县",
+          },
+          {
+            value: "北票市",
+            label: "北票市",
+          },
+          {
+            value: "凌源市",
+            label: "凌源市",
+          },
+        ],
+        value: "朝阳市",
+        label: "朝阳市",
+      },
+      {
+        children: [
+          {
+            value: "连山区",
+            label: "连山区",
+          },
+          {
+            value: "龙港区",
+            label: "龙港区",
+          },
+          {
+            value: "南票区",
+            label: "南票区",
+          },
+          {
+            value: "绥中县",
+            label: "绥中县",
+          },
+          {
+            value: "建昌县",
+            label: "建昌县",
+          },
+          {
+            value: "兴城市",
+            label: "兴城市",
+          },
+        ],
+        value: "葫芦岛市",
+        label: "葫芦岛市",
+      },
+    ],
+    value: "辽宁省",
+    label: "辽宁省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "南关区",
+            label: "南关区",
+          },
+          {
+            value: "宽城区",
+            label: "宽城区",
+          },
+          {
+            value: "朝阳区",
+            label: "朝阳区",
+          },
+          {
+            value: "二道区",
+            label: "二道区",
+          },
+          {
+            value: "绿园区",
+            label: "绿园区",
+          },
+          {
+            value: "双阳区",
+            label: "双阳区",
+          },
+          {
+            value: "九台区",
+            label: "九台区",
+          },
+          {
+            value: "农安县",
+            label: "农安县",
+          },
+          {
+            value: "榆树市",
+            label: "榆树市",
+          },
+          {
+            value: "德惠市",
+            label: "德惠市",
+          },
+        ],
+        value: "长春市",
+        label: "长春市",
+      },
+      {
+        children: [
+          {
+            value: "昌邑区",
+            label: "昌邑区",
+          },
+          {
+            value: "龙潭区",
+            label: "龙潭区",
+          },
+          {
+            value: "船营区",
+            label: "船营区",
+          },
+          {
+            value: "丰满区",
+            label: "丰满区",
+          },
+          {
+            value: "永吉县",
+            label: "永吉县",
+          },
+          {
+            value: "蛟河市",
+            label: "蛟河市",
+          },
+          {
+            value: "桦甸市",
+            label: "桦甸市",
+          },
+          {
+            value: "舒兰市",
+            label: "舒兰市",
+          },
+          {
+            value: "磐石市",
+            label: "磐石市",
+          },
+        ],
+        value: "吉林市",
+        label: "吉林市",
+      },
+      {
+        children: [
+          {
+            value: "铁西区",
+            label: "铁西区",
+          },
+          {
+            value: "铁东区",
+            label: "铁东区",
+          },
+          {
+            value: "梨树县",
+            label: "梨树县",
+          },
+          {
+            value: "伊通满族自治县",
+            label: "伊通满族自治县",
+          },
+          {
+            value: "公主岭市",
+            label: "公主岭市",
+          },
+          {
+            value: "双辽市",
+            label: "双辽市",
+          },
+        ],
+        value: "四平市",
+        label: "四平市",
+      },
+      {
+        children: [
+          {
+            value: "龙山区",
+            label: "龙山区",
+          },
+          {
+            value: "西安区",
+            label: "西安区",
+          },
+          {
+            value: "东丰县",
+            label: "东丰县",
+          },
+          {
+            value: "东辽县",
+            label: "东辽县",
+          },
+        ],
+        value: "辽源市",
+        label: "辽源市",
+      },
+      {
+        children: [
+          {
+            value: "东昌区",
+            label: "东昌区",
+          },
+          {
+            value: "二道江区",
+            label: "二道江区",
+          },
+          {
+            value: "通化县",
+            label: "通化县",
+          },
+          {
+            value: "辉南县",
+            label: "辉南县",
+          },
+          {
+            value: "柳河县",
+            label: "柳河县",
+          },
+          {
+            value: "梅河口市",
+            label: "梅河口市",
+          },
+          {
+            value: "集安市",
+            label: "集安市",
+          },
+        ],
+        value: "通化市",
+        label: "通化市",
+      },
+      {
+        children: [
+          {
+            value: "浑江区",
+            label: "浑江区",
+          },
+          {
+            value: "江源区",
+            label: "江源区",
+          },
+          {
+            value: "抚松县",
+            label: "抚松县",
+          },
+          {
+            value: "靖宇县",
+            label: "靖宇县",
+          },
+          {
+            value: "长白朝鲜族自治县",
+            label: "长白朝鲜族自治县",
+          },
+          {
+            value: "临江市",
+            label: "临江市",
+          },
+        ],
+        value: "白山市",
+        label: "白山市",
+      },
+      {
+        children: [
+          {
+            value: "宁江区",
+            label: "宁江区",
+          },
+          {
+            value: "前郭尔罗斯蒙古族自治县",
+            label: "前郭尔罗斯蒙古族自治县",
+          },
+          {
+            value: "长岭县",
+            label: "长岭县",
+          },
+          {
+            value: "乾安县",
+            label: "乾安县",
+          },
+          {
+            value: "扶余市",
+            label: "扶余市",
+          },
+        ],
+        value: "松原市",
+        label: "松原市",
+      },
+      {
+        children: [
+          {
+            value: "洮北区",
+            label: "洮北区",
+          },
+          {
+            value: "镇赉县",
+            label: "镇赉县",
+          },
+          {
+            value: "通榆县",
+            label: "通榆县",
+          },
+          {
+            value: "洮南市",
+            label: "洮南市",
+          },
+          {
+            value: "大安市",
+            label: "大安市",
+          },
+        ],
+        value: "白城市",
+        label: "白城市",
+      },
+      {
+        children: [
+          {
+            value: "延吉市",
+            label: "延吉市",
+          },
+          {
+            value: "图们市",
+            label: "图们市",
+          },
+          {
+            value: "敦化市",
+            label: "敦化市",
+          },
+          {
+            value: "珲春市",
+            label: "珲春市",
+          },
+          {
+            value: "龙井市",
+            label: "龙井市",
+          },
+          {
+            value: "和龙市",
+            label: "和龙市",
+          },
+          {
+            value: "汪清县",
+            label: "汪清县",
+          },
+          {
+            value: "安图县",
+            label: "安图县",
+          },
+        ],
+        value: "延边朝鲜族自治州",
+        label: "延边朝鲜族自治州",
+      },
+    ],
+    value: "吉林省",
+    label: "吉林省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "道里区",
+            label: "道里区",
+          },
+          {
+            value: "南岗区",
+            label: "南岗区",
+          },
+          {
+            value: "道外区",
+            label: "道外区",
+          },
+          {
+            value: "平房区",
+            label: "平房区",
+          },
+          {
+            value: "松北区",
+            label: "松北区",
+          },
+          {
+            value: "香坊区",
+            label: "香坊区",
+          },
+          {
+            value: "呼兰区",
+            label: "呼兰区",
+          },
+          {
+            value: "阿城区",
+            label: "阿城区",
+          },
+          {
+            value: "双城区",
+            label: "双城区",
+          },
+          {
+            value: "依兰县",
+            label: "依兰县",
+          },
+          {
+            value: "方正县",
+            label: "方正县",
+          },
+          {
+            value: "宾县",
+            label: "宾县",
+          },
+          {
+            value: "巴彦县",
+            label: "巴彦县",
+          },
+          {
+            value: "木兰县",
+            label: "木兰县",
+          },
+          {
+            value: "通河县",
+            label: "通河县",
+          },
+          {
+            value: "延寿县",
+            label: "延寿县",
+          },
+          {
+            value: "尚志市",
+            label: "尚志市",
+          },
+          {
+            value: "五常市",
+            label: "五常市",
+          },
+        ],
+        value: "哈尔滨市",
+        label: "哈尔滨市",
+      },
+      {
+        children: [
+          {
+            value: "龙沙区",
+            label: "龙沙区",
+          },
+          {
+            value: "建华区",
+            label: "建华区",
+          },
+          {
+            value: "铁锋区",
+            label: "铁锋区",
+          },
+          {
+            value: "昂昂溪区",
+            label: "昂昂溪区",
+          },
+          {
+            value: "富拉尔基区",
+            label: "富拉尔基区",
+          },
+          {
+            value: "碾子山区",
+            label: "碾子山区",
+          },
+          {
+            value: "梅里斯达斡尔族区",
+            label: "梅里斯达斡尔族区",
+          },
+          {
+            value: "龙江县",
+            label: "龙江县",
+          },
+          {
+            value: "依安县",
+            label: "依安县",
+          },
+          {
+            value: "泰来县",
+            label: "泰来县",
+          },
+          {
+            value: "甘南县",
+            label: "甘南县",
+          },
+          {
+            value: "富裕县",
+            label: "富裕县",
+          },
+          {
+            value: "克山县",
+            label: "克山县",
+          },
+          {
+            value: "克东县",
+            label: "克东县",
+          },
+          {
+            value: "拜泉县",
+            label: "拜泉县",
+          },
+          {
+            value: "讷河市",
+            label: "讷河市",
+          },
+        ],
+        value: "齐齐哈尔市",
+        label: "齐齐哈尔市",
+      },
+      {
+        children: [
+          {
+            value: "鸡冠区",
+            label: "鸡冠区",
+          },
+          {
+            value: "恒山区",
+            label: "恒山区",
+          },
+          {
+            value: "滴道区",
+            label: "滴道区",
+          },
+          {
+            value: "梨树区",
+            label: "梨树区",
+          },
+          {
+            value: "城子河区",
+            label: "城子河区",
+          },
+          {
+            value: "麻山区",
+            label: "麻山区",
+          },
+          {
+            value: "鸡东县",
+            label: "鸡东县",
+          },
+          {
+            value: "虎林市",
+            label: "虎林市",
+          },
+          {
+            value: "密山市",
+            label: "密山市",
+          },
+        ],
+        value: "鸡西市",
+        label: "鸡西市",
+      },
+      {
+        children: [
+          {
+            value: "向阳区",
+            label: "向阳区",
+          },
+          {
+            value: "工农区",
+            label: "工农区",
+          },
+          {
+            value: "南山区",
+            label: "南山区",
+          },
+          {
+            value: "兴安区",
+            label: "兴安区",
+          },
+          {
+            value: "东山区",
+            label: "东山区",
+          },
+          {
+            value: "兴山区",
+            label: "兴山区",
+          },
+          {
+            value: "萝北县",
+            label: "萝北县",
+          },
+          {
+            value: "绥滨县",
+            label: "绥滨县",
+          },
+        ],
+        value: "鹤岗市",
+        label: "鹤岗市",
+      },
+      {
+        children: [
+          {
+            value: "尖山区",
+            label: "尖山区",
+          },
+          {
+            value: "岭东区",
+            label: "岭东区",
+          },
+          {
+            value: "四方台区",
+            label: "四方台区",
+          },
+          {
+            value: "宝山区",
+            label: "宝山区",
+          },
+          {
+            value: "集贤县",
+            label: "集贤县",
+          },
+          {
+            value: "友谊县",
+            label: "友谊县",
+          },
+          {
+            value: "宝清县",
+            label: "宝清县",
+          },
+          {
+            value: "饶河县",
+            label: "饶河县",
+          },
+        ],
+        value: "双鸭山市",
+        label: "双鸭山市",
+      },
+      {
+        children: [
+          {
+            value: "萨尔图区",
+            label: "萨尔图区",
+          },
+          {
+            value: "龙凤区",
+            label: "龙凤区",
+          },
+          {
+            value: "让胡路区",
+            label: "让胡路区",
+          },
+          {
+            value: "红岗区",
+            label: "红岗区",
+          },
+          {
+            value: "大同区",
+            label: "大同区",
+          },
+          {
+            value: "肇州县",
+            label: "肇州县",
+          },
+          {
+            value: "肇源县",
+            label: "肇源县",
+          },
+          {
+            value: "林甸县",
+            label: "林甸县",
+          },
+          {
+            value: "杜尔伯特蒙古族自治县",
+            label: "杜尔伯特蒙古族自治县",
+          },
+        ],
+        value: "大庆市",
+        label: "大庆市",
+      },
+      {
+        children: [
+          {
+            value: "伊春区",
+            label: "伊春区",
+          },
+          {
+            value: "南岔区",
+            label: "南岔区",
+          },
+          {
+            value: "友好区",
+            label: "友好区",
+          },
+          {
+            value: "西林区",
+            label: "西林区",
+          },
+          {
+            value: "翠峦区",
+            label: "翠峦区",
+          },
+          {
+            value: "新青区",
+            label: "新青区",
+          },
+          {
+            value: "美溪区",
+            label: "美溪区",
+          },
+          {
+            value: "金山屯区",
+            label: "金山屯区",
+          },
+          {
+            value: "五营区",
+            label: "五营区",
+          },
+          {
+            value: "乌马河区",
+            label: "乌马河区",
+          },
+          {
+            value: "汤旺河区",
+            label: "汤旺河区",
+          },
+          {
+            value: "带岭区",
+            label: "带岭区",
+          },
+          {
+            value: "乌伊岭区",
+            label: "乌伊岭区",
+          },
+          {
+            value: "红星区",
+            label: "红星区",
+          },
+          {
+            value: "上甘岭区",
+            label: "上甘岭区",
+          },
+          {
+            value: "嘉荫县",
+            label: "嘉荫县",
+          },
+          {
+            value: "铁力市",
+            label: "铁力市",
+          },
+        ],
+        value: "伊春市",
+        label: "伊春市",
+      },
+      {
+        children: [
+          {
+            value: "向阳区",
+            label: "向阳区",
+          },
+          {
+            value: "前进区",
+            label: "前进区",
+          },
+          {
+            value: "东风区",
+            label: "东风区",
+          },
+          {
+            value: "郊区",
+            label: "郊区",
+          },
+          {
+            value: "桦南县",
+            label: "桦南县",
+          },
+          {
+            value: "桦川县",
+            label: "桦川县",
+          },
+          {
+            value: "汤原县",
+            label: "汤原县",
+          },
+          {
+            value: "同江市",
+            label: "同江市",
+          },
+          {
+            value: "富锦市",
+            label: "富锦市",
+          },
+          {
+            value: "抚远市",
+            label: "抚远市",
+          },
+        ],
+        value: "佳木斯市",
+        label: "佳木斯市",
+      },
+      {
+        children: [
+          {
+            value: "新兴区",
+            label: "新兴区",
+          },
+          {
+            value: "桃山区",
+            label: "桃山区",
+          },
+          {
+            value: "茄子河区",
+            label: "茄子河区",
+          },
+          {
+            value: "勃利县",
+            label: "勃利县",
+          },
+        ],
+        value: "七台河市",
+        label: "七台河市",
+      },
+      {
+        children: [
+          {
+            value: "东安区",
+            label: "东安区",
+          },
+          {
+            value: "阳明区",
+            label: "阳明区",
+          },
+          {
+            value: "爱民区",
+            label: "爱民区",
+          },
+          {
+            value: "西安区",
+            label: "西安区",
+          },
+          {
+            value: "林口县",
+            label: "林口县",
+          },
+          {
+            value: "绥芬河市",
+            label: "绥芬河市",
+          },
+          {
+            value: "海林市",
+            label: "海林市",
+          },
+          {
+            value: "宁安市",
+            label: "宁安市",
+          },
+          {
+            value: "穆棱市",
+            label: "穆棱市",
+          },
+          {
+            value: "东宁市",
+            label: "东宁市",
+          },
+        ],
+        value: "牡丹江市",
+        label: "牡丹江市",
+      },
+      {
+        children: [
+          {
+            value: "爱辉区",
+            label: "爱辉区",
+          },
+          {
+            value: "嫩江县",
+            label: "嫩江县",
+          },
+          {
+            value: "逊克县",
+            label: "逊克县",
+          },
+          {
+            value: "孙吴县",
+            label: "孙吴县",
+          },
+          {
+            value: "北安市",
+            label: "北安市",
+          },
+          {
+            value: "五大连池市",
+            label: "五大连池市",
+          },
+        ],
+        value: "黑河市",
+        label: "黑河市",
+      },
+      {
+        children: [
+          {
+            value: "北林区",
+            label: "北林区",
+          },
+          {
+            value: "望奎县",
+            label: "望奎县",
+          },
+          {
+            value: "兰西县",
+            label: "兰西县",
+          },
+          {
+            value: "青冈县",
+            label: "青冈县",
+          },
+          {
+            value: "庆安县",
+            label: "庆安县",
+          },
+          {
+            value: "明水县",
+            label: "明水县",
+          },
+          {
+            value: "绥棱县",
+            label: "绥棱县",
+          },
+          {
+            value: "安达市",
+            label: "安达市",
+          },
+          {
+            value: "肇东市",
+            label: "肇东市",
+          },
+          {
+            value: "海伦市",
+            label: "海伦市",
+          },
+        ],
+        value: "绥化市",
+        label: "绥化市",
+      },
+      {
+        children: [
+          {
+            value: "呼玛县",
+            label: "呼玛县",
+          },
+          {
+            value: "塔河县",
+            label: "塔河县",
+          },
+          {
+            value: "漠河县",
+            label: "漠河县",
+          },
+        ],
+        value: "大兴安岭地区",
+        label: "大兴安岭地区",
+      },
+    ],
+    value: "黑龙江省",
+    label: "黑龙江省",
+  },
+  {
+    children: [
+      {
+        value: "黄浦区",
+        label: "黄浦区",
+      },
+      {
+        value: "徐汇区",
+        label: "徐汇区",
+      },
+      {
+        value: "长宁区",
+        label: "长宁区",
+      },
+      {
+        value: "静安区",
+        label: "静安区",
+      },
+      {
+        value: "普陀区",
+        label: "普陀区",
+      },
+      {
+        value: "虹口区",
+        label: "虹口区",
+      },
+      {
+        value: "杨浦区",
+        label: "杨浦区",
+      },
+      {
+        value: "闵行区",
+        label: "闵行区",
+      },
+      {
+        value: "宝山区",
+        label: "宝山区",
+      },
+      {
+        value: "嘉定区",
+        label: "嘉定区",
+      },
+      {
+        value: "浦东新区",
+        label: "浦东新区",
+      },
+      {
+        value: "金山区",
+        label: "金山区",
+      },
+      {
+        value: "松江区",
+        label: "松江区",
+      },
+      {
+        value: "青浦区",
+        label: "青浦区",
+      },
+      {
+        value: "奉贤区",
+        label: "奉贤区",
+      },
+      {
+        value: "崇明区",
+        label: "崇明区",
+      },
+    ],
+    value: "上海市",
+    label: "上海市",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "玄武区",
+            label: "玄武区",
+          },
+          {
+            value: "秦淮区",
+            label: "秦淮区",
+          },
+          {
+            value: "建邺区",
+            label: "建邺区",
+          },
+          {
+            value: "鼓楼区",
+            label: "鼓楼区",
+          },
+          {
+            value: "浦口区",
+            label: "浦口区",
+          },
+          {
+            value: "栖霞区",
+            label: "栖霞区",
+          },
+          {
+            value: "雨花台区",
+            label: "雨花台区",
+          },
+          {
+            value: "江宁区",
+            label: "江宁区",
+          },
+          {
+            value: "六合区",
+            label: "六合区",
+          },
+          {
+            value: "溧水区",
+            label: "溧水区",
+          },
+          {
+            value: "高淳区",
+            label: "高淳区",
+          },
+        ],
+        value: "南京市",
+        label: "南京市",
+      },
+      {
+        children: [
+          {
+            value: "锡山区",
+            label: "锡山区",
+          },
+          {
+            value: "惠山区",
+            label: "惠山区",
+          },
+          {
+            value: "滨湖区",
+            label: "滨湖区",
+          },
+          {
+            value: "梁溪区",
+            label: "梁溪区",
+          },
+          {
+            value: "新吴区",
+            label: "新吴区",
+          },
+          {
+            value: "江阴市",
+            label: "江阴市",
+          },
+          {
+            value: "宜兴市",
+            label: "宜兴市",
+          },
+        ],
+        value: "无锡市",
+        label: "无锡市",
+      },
+      {
+        children: [
+          {
+            value: "鼓楼区",
+            label: "鼓楼区",
+          },
+          {
+            value: "云龙区",
+            label: "云龙区",
+          },
+          {
+            value: "贾汪区",
+            label: "贾汪区",
+          },
+          {
+            value: "泉山区",
+            label: "泉山区",
+          },
+          {
+            value: "铜山区",
+            label: "铜山区",
+          },
+          {
+            value: "丰县",
+            label: "丰县",
+          },
+          {
+            value: "沛县",
+            label: "沛县",
+          },
+          {
+            value: "睢宁县",
+            label: "睢宁县",
+          },
+          {
+            value: "新沂市",
+            label: "新沂市",
+          },
+          {
+            value: "邳州市",
+            label: "邳州市",
+          },
+        ],
+        value: "徐州市",
+        label: "徐州市",
+      },
+      {
+        children: [
+          {
+            value: "天宁区",
+            label: "天宁区",
+          },
+          {
+            value: "钟楼区",
+            label: "钟楼区",
+          },
+          {
+            value: "新北区",
+            label: "新北区",
+          },
+          {
+            value: "武进区",
+            label: "武进区",
+          },
+          {
+            value: "金坛区",
+            label: "金坛区",
+          },
+          {
+            value: "溧阳市",
+            label: "溧阳市",
+          },
+        ],
+        value: "常州市",
+        label: "常州市",
+      },
+      {
+        children: [
+          {
+            value: "虎丘区",
+            label: "虎丘区",
+          },
+          {
+            value: "吴中区",
+            label: "吴中区",
+          },
+          {
+            value: "相城区",
+            label: "相城区",
+          },
+          {
+            value: "姑苏区",
+            label: "姑苏区",
+          },
+          {
+            value: "吴江区",
+            label: "吴江区",
+          },
+          {
+            value: "常熟市",
+            label: "常熟市",
+          },
+          {
+            value: "张家港市",
+            label: "张家港市",
+          },
+          {
+            value: "昆山市",
+            label: "昆山市",
+          },
+          {
+            value: "太仓市",
+            label: "太仓市",
+          },
+        ],
+        value: "苏州市",
+        label: "苏州市",
+      },
+      {
+        children: [
+          {
+            value: "崇川区",
+            label: "崇川区",
+          },
+          {
+            value: "港闸区",
+            label: "港闸区",
+          },
+          {
+            value: "通州区",
+            label: "通州区",
+          },
+          {
+            value: "海安县",
+            label: "海安县",
+          },
+          {
+            value: "如东县",
+            label: "如东县",
+          },
+          {
+            value: "启东市",
+            label: "启东市",
+          },
+          {
+            value: "如皋市",
+            label: "如皋市",
+          },
+          {
+            value: "海门市",
+            label: "海门市",
+          },
+        ],
+        value: "南通市",
+        label: "南通市",
+      },
+      {
+        children: [
+          {
+            value: "连云区",
+            label: "连云区",
+          },
+          {
+            value: "海州区",
+            label: "海州区",
+          },
+          {
+            value: "赣榆区",
+            label: "赣榆区",
+          },
+          {
+            value: "东海县",
+            label: "东海县",
+          },
+          {
+            value: "灌云县",
+            label: "灌云县",
+          },
+          {
+            value: "灌南县",
+            label: "灌南县",
+          },
+        ],
+        value: "连云港市",
+        label: "连云港市",
+      },
+      {
+        children: [
+          {
+            value: "淮安区",
+            label: "淮安区",
+          },
+          {
+            value: "淮阴区",
+            label: "淮阴区",
+          },
+          {
+            value: "清江浦区",
+            label: "清江浦区",
+          },
+          {
+            value: "洪泽区",
+            label: "洪泽区",
+          },
+          {
+            value: "涟水县",
+            label: "涟水县",
+          },
+          {
+            value: "盱眙县",
+            label: "盱眙县",
+          },
+          {
+            value: "金湖县",
+            label: "金湖县",
+          },
+        ],
+        value: "淮安市",
+        label: "淮安市",
+      },
+      {
+        children: [
+          {
+            value: "亭湖区",
+            label: "亭湖区",
+          },
+          {
+            value: "盐都区",
+            label: "盐都区",
+          },
+          {
+            value: "大丰区",
+            label: "大丰区",
+          },
+          {
+            value: "响水县",
+            label: "响水县",
+          },
+          {
+            value: "滨海县",
+            label: "滨海县",
+          },
+          {
+            value: "阜宁县",
+            label: "阜宁县",
+          },
+          {
+            value: "射阳县",
+            label: "射阳县",
+          },
+          {
+            value: "建湖县",
+            label: "建湖县",
+          },
+          {
+            value: "东台市",
+            label: "东台市",
+          },
+        ],
+        value: "盐城市",
+        label: "盐城市",
+      },
+      {
+        children: [
+          {
+            value: "广陵区",
+            label: "广陵区",
+          },
+          {
+            value: "邗江区",
+            label: "邗江区",
+          },
+          {
+            value: "江都区",
+            label: "江都区",
+          },
+          {
+            value: "宝应县",
+            label: "宝应县",
+          },
+          {
+            value: "仪征市",
+            label: "仪征市",
+          },
+          {
+            value: "高邮市",
+            label: "高邮市",
+          },
+        ],
+        value: "扬州市",
+        label: "扬州市",
+      },
+      {
+        children: [
+          {
+            value: "京口区",
+            label: "京口区",
+          },
+          {
+            value: "润州区",
+            label: "润州区",
+          },
+          {
+            value: "丹徒区",
+            label: "丹徒区",
+          },
+          {
+            value: "丹阳市",
+            label: "丹阳市",
+          },
+          {
+            value: "扬中市",
+            label: "扬中市",
+          },
+          {
+            value: "句容市",
+            label: "句容市",
+          },
+        ],
+        value: "镇江市",
+        label: "镇江市",
+      },
+      {
+        children: [
+          {
+            value: "海陵区",
+            label: "海陵区",
+          },
+          {
+            value: "高港区",
+            label: "高港区",
+          },
+          {
+            value: "姜堰区",
+            label: "姜堰区",
+          },
+          {
+            value: "兴化市",
+            label: "兴化市",
+          },
+          {
+            value: "靖江市",
+            label: "靖江市",
+          },
+          {
+            value: "泰兴市",
+            label: "泰兴市",
+          },
+        ],
+        value: "泰州市",
+        label: "泰州市",
+      },
+      {
+        children: [
+          {
+            value: "宿城区",
+            label: "宿城区",
+          },
+          {
+            value: "宿豫区",
+            label: "宿豫区",
+          },
+          {
+            value: "沭阳县",
+            label: "沭阳县",
+          },
+          {
+            value: "泗阳县",
+            label: "泗阳县",
+          },
+          {
+            value: "泗洪县",
+            label: "泗洪县",
+          },
+        ],
+        value: "宿迁市",
+        label: "宿迁市",
+      },
+    ],
+    value: "江苏省",
+    label: "江苏省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "上城区",
+            label: "上城区",
+          },
+          {
+            value: "下城区",
+            label: "下城区",
+          },
+          {
+            value: "江干区",
+            label: "江干区",
+          },
+          {
+            value: "拱墅区",
+            label: "拱墅区",
+          },
+          {
+            value: "西湖区",
+            label: "西湖区",
+          },
+          {
+            value: "滨江区",
+            label: "滨江区",
+          },
+          {
+            value: "萧山区",
+            label: "萧山区",
+          },
+          {
+            value: "余杭区",
+            label: "余杭区",
+          },
+          {
+            value: "富阳区",
+            label: "富阳区",
+          },
+          {
+            value: "桐庐县",
+            label: "桐庐县",
+          },
+          {
+            value: "淳安县",
+            label: "淳安县",
+          },
+          {
+            value: "建德市",
+            label: "建德市",
+          },
+          {
+            value: "临安市",
+            label: "临安市",
+          },
+        ],
+        value: "杭州市",
+        label: "杭州市",
+      },
+      {
+        children: [
+          {
+            value: "海曙区",
+            label: "海曙区",
+          },
+          {
+            value: "江东区",
+            label: "江东区",
+          },
+          {
+            value: "江北区",
+            label: "江北区",
+          },
+          {
+            value: "北仑区",
+            label: "北仑区",
+          },
+          {
+            value: "镇海区",
+            label: "镇海区",
+          },
+          {
+            value: "鄞州区",
+            label: "鄞州区",
+          },
+          {
+            value: "象山县",
+            label: "象山县",
+          },
+          {
+            value: "宁海县",
+            label: "宁海县",
+          },
+          {
+            value: "余姚市",
+            label: "余姚市",
+          },
+          {
+            value: "慈溪市",
+            label: "慈溪市",
+          },
+          {
+            value: "奉化市",
+            label: "奉化市",
+          },
+        ],
+        value: "宁波市",
+        label: "宁波市",
+      },
+      {
+        children: [
+          {
+            value: "鹿城区",
+            label: "鹿城区",
+          },
+          {
+            value: "龙湾区",
+            label: "龙湾区",
+          },
+          {
+            value: "瓯海区",
+            label: "瓯海区",
+          },
+          {
+            value: "洞头区",
+            label: "洞头区",
+          },
+          {
+            value: "永嘉县",
+            label: "永嘉县",
+          },
+          {
+            value: "平阳县",
+            label: "平阳县",
+          },
+          {
+            value: "苍南县",
+            label: "苍南县",
+          },
+          {
+            value: "文成县",
+            label: "文成县",
+          },
+          {
+            value: "泰顺县",
+            label: "泰顺县",
+          },
+          {
+            value: "瑞安市",
+            label: "瑞安市",
+          },
+          {
+            value: "乐清市",
+            label: "乐清市",
+          },
+        ],
+        value: "温州市",
+        label: "温州市",
+      },
+      {
+        children: [
+          {
+            value: "南湖区",
+            label: "南湖区",
+          },
+          {
+            value: "秀洲区",
+            label: "秀洲区",
+          },
+          {
+            value: "嘉善县",
+            label: "嘉善县",
+          },
+          {
+            value: "海盐县",
+            label: "海盐县",
+          },
+          {
+            value: "海宁市",
+            label: "海宁市",
+          },
+          {
+            value: "平湖市",
+            label: "平湖市",
+          },
+          {
+            value: "桐乡市",
+            label: "桐乡市",
+          },
+        ],
+        value: "嘉兴市",
+        label: "嘉兴市",
+      },
+      {
+        children: [
+          {
+            value: "吴兴区",
+            label: "吴兴区",
+          },
+          {
+            value: "南浔区",
+            label: "南浔区",
+          },
+          {
+            value: "德清县",
+            label: "德清县",
+          },
+          {
+            value: "长兴县",
+            label: "长兴县",
+          },
+          {
+            value: "安吉县",
+            label: "安吉县",
+          },
+        ],
+        value: "湖州市",
+        label: "湖州市",
+      },
+      {
+        children: [
+          {
+            value: "越城区",
+            label: "越城区",
+          },
+          {
+            value: "柯桥区",
+            label: "柯桥区",
+          },
+          {
+            value: "上虞区",
+            label: "上虞区",
+          },
+          {
+            value: "新昌县",
+            label: "新昌县",
+          },
+          {
+            value: "诸暨市",
+            label: "诸暨市",
+          },
+          {
+            value: "嵊州市",
+            label: "嵊州市",
+          },
+        ],
+        value: "绍兴市",
+        label: "绍兴市",
+      },
+      {
+        children: [
+          {
+            value: "婺城区",
+            label: "婺城区",
+          },
+          {
+            value: "金东区",
+            label: "金东区",
+          },
+          {
+            value: "武义县",
+            label: "武义县",
+          },
+          {
+            value: "浦江县",
+            label: "浦江县",
+          },
+          {
+            value: "磐安县",
+            label: "磐安县",
+          },
+          {
+            value: "兰溪市",
+            label: "兰溪市",
+          },
+          {
+            value: "义乌市",
+            label: "义乌市",
+          },
+          {
+            value: "东阳市",
+            label: "东阳市",
+          },
+          {
+            value: "永康市",
+            label: "永康市",
+          },
+        ],
+        value: "金华市",
+        label: "金华市",
+      },
+      {
+        children: [
+          {
+            value: "柯城区",
+            label: "柯城区",
+          },
+          {
+            value: "衢江区",
+            label: "衢江区",
+          },
+          {
+            value: "常山县",
+            label: "常山县",
+          },
+          {
+            value: "开化县",
+            label: "开化县",
+          },
+          {
+            value: "龙游县",
+            label: "龙游县",
+          },
+          {
+            value: "江山市",
+            label: "江山市",
+          },
+        ],
+        value: "衢州市",
+        label: "衢州市",
+      },
+      {
+        children: [
+          {
+            value: "定海区",
+            label: "定海区",
+          },
+          {
+            value: "普陀区",
+            label: "普陀区",
+          },
+          {
+            value: "岱山县",
+            label: "岱山县",
+          },
+          {
+            value: "嵊泗县",
+            label: "嵊泗县",
+          },
+        ],
+        value: "舟山市",
+        label: "舟山市",
+      },
+      {
+        children: [
+          {
+            value: "椒江区",
+            label: "椒江区",
+          },
+          {
+            value: "黄岩区",
+            label: "黄岩区",
+          },
+          {
+            value: "路桥区",
+            label: "路桥区",
+          },
+          {
+            value: "玉环县",
+            label: "玉环县",
+          },
+          {
+            value: "三门县",
+            label: "三门县",
+          },
+          {
+            value: "天台县",
+            label: "天台县",
+          },
+          {
+            value: "仙居县",
+            label: "仙居县",
+          },
+          {
+            value: "温岭市",
+            label: "温岭市",
+          },
+          {
+            value: "临海市",
+            label: "临海市",
+          },
+        ],
+        value: "台州市",
+        label: "台州市",
+      },
+      {
+        children: [
+          {
+            value: "莲都区",
+            label: "莲都区",
+          },
+          {
+            value: "青田县",
+            label: "青田县",
+          },
+          {
+            value: "缙云县",
+            label: "缙云县",
+          },
+          {
+            value: "遂昌县",
+            label: "遂昌县",
+          },
+          {
+            value: "松阳县",
+            label: "松阳县",
+          },
+          {
+            value: "云和县",
+            label: "云和县",
+          },
+          {
+            value: "庆元县",
+            label: "庆元县",
+          },
+          {
+            value: "景宁畲族自治县",
+            label: "景宁畲族自治县",
+          },
+          {
+            value: "龙泉市",
+            label: "龙泉市",
+          },
+        ],
+        value: "丽水市",
+        label: "丽水市",
+      },
+    ],
+    value: "浙江省",
+    label: "浙江省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "瑶海区",
+            label: "瑶海区",
+          },
+          {
+            value: "庐阳区",
+            label: "庐阳区",
+          },
+          {
+            value: "蜀山区",
+            label: "蜀山区",
+          },
+          {
+            value: "包河区",
+            label: "包河区",
+          },
+          {
+            value: "长丰县",
+            label: "长丰县",
+          },
+          {
+            value: "肥东县",
+            label: "肥东县",
+          },
+          {
+            value: "肥西县",
+            label: "肥西县",
+          },
+          {
+            value: "庐江县",
+            label: "庐江县",
+          },
+          {
+            value: "巢湖市",
+            label: "巢湖市",
+          },
+        ],
+        value: "合肥市",
+        label: "合肥市",
+      },
+      {
+        children: [
+          {
+            value: "镜湖区",
+            label: "镜湖区",
+          },
+          {
+            value: "弋江区",
+            label: "弋江区",
+          },
+          {
+            value: "鸠江区",
+            label: "鸠江区",
+          },
+          {
+            value: "三山区",
+            label: "三山区",
+          },
+          {
+            value: "芜湖县",
+            label: "芜湖县",
+          },
+          {
+            value: "繁昌县",
+            label: "繁昌县",
+          },
+          {
+            value: "南陵县",
+            label: "南陵县",
+          },
+          {
+            value: "无为县",
+            label: "无为县",
+          },
+        ],
+        value: "芜湖市",
+        label: "芜湖市",
+      },
+      {
+        children: [
+          {
+            value: "龙子湖区",
+            label: "龙子湖区",
+          },
+          {
+            value: "蚌山区",
+            label: "蚌山区",
+          },
+          {
+            value: "禹会区",
+            label: "禹会区",
+          },
+          {
+            value: "淮上区",
+            label: "淮上区",
+          },
+          {
+            value: "怀远县",
+            label: "怀远县",
+          },
+          {
+            value: "五河县",
+            label: "五河县",
+          },
+          {
+            value: "固镇县",
+            label: "固镇县",
+          },
+        ],
+        value: "蚌埠市",
+        label: "蚌埠市",
+      },
+      {
+        children: [
+          {
+            value: "大通区",
+            label: "大通区",
+          },
+          {
+            value: "田家庵区",
+            label: "田家庵区",
+          },
+          {
+            value: "谢家集区",
+            label: "谢家集区",
+          },
+          {
+            value: "八公山区",
+            label: "八公山区",
+          },
+          {
+            value: "潘集区",
+            label: "潘集区",
+          },
+          {
+            value: "凤台县",
+            label: "凤台县",
+          },
+          {
+            value: "寿县",
+            label: "寿县",
+          },
+        ],
+        value: "淮南市",
+        label: "淮南市",
+      },
+      {
+        children: [
+          {
+            value: "花山区",
+            label: "花山区",
+          },
+          {
+            value: "雨山区",
+            label: "雨山区",
+          },
+          {
+            value: "博望区",
+            label: "博望区",
+          },
+          {
+            value: "当涂县",
+            label: "当涂县",
+          },
+          {
+            value: "含山县",
+            label: "含山县",
+          },
+          {
+            value: "和县",
+            label: "和县",
+          },
+        ],
+        value: "马鞍山市",
+        label: "马鞍山市",
+      },
+      {
+        children: [
+          {
+            value: "杜集区",
+            label: "杜集区",
+          },
+          {
+            value: "相山区",
+            label: "相山区",
+          },
+          {
+            value: "烈山区",
+            label: "烈山区",
+          },
+          {
+            value: "濉溪县",
+            label: "濉溪县",
+          },
+        ],
+        value: "淮北市",
+        label: "淮北市",
+      },
+      {
+        children: [
+          {
+            value: "铜官区",
+            label: "铜官区",
+          },
+          {
+            value: "义安区",
+            label: "义安区",
+          },
+          {
+            value: "郊区",
+            label: "郊区",
+          },
+          {
+            value: "枞阳县",
+            label: "枞阳县",
+          },
+        ],
+        value: "铜陵市",
+        label: "铜陵市",
+      },
+      {
+        children: [
+          {
+            value: "迎江区",
+            label: "迎江区",
+          },
+          {
+            value: "大观区",
+            label: "大观区",
+          },
+          {
+            value: "宜秀区",
+            label: "宜秀区",
+          },
+          {
+            value: "怀宁县",
+            label: "怀宁县",
+          },
+          {
+            value: "潜山县",
+            label: "潜山县",
+          },
+          {
+            value: "太湖县",
+            label: "太湖县",
+          },
+          {
+            value: "宿松县",
+            label: "宿松县",
+          },
+          {
+            value: "望江县",
+            label: "望江县",
+          },
+          {
+            value: "岳西县",
+            label: "岳西县",
+          },
+          {
+            value: "桐城市",
+            label: "桐城市",
+          },
+        ],
+        value: "安庆市",
+        label: "安庆市",
+      },
+      {
+        children: [
+          {
+            value: "屯溪区",
+            label: "屯溪区",
+          },
+          {
+            value: "黄山区",
+            label: "黄山区",
+          },
+          {
+            value: "徽州区",
+            label: "徽州区",
+          },
+          {
+            value: "歙县",
+            label: "歙县",
+          },
+          {
+            value: "休宁县",
+            label: "休宁县",
+          },
+          {
+            value: "黟县",
+            label: "黟县",
+          },
+          {
+            value: "祁门县",
+            label: "祁门县",
+          },
+        ],
+        value: "黄山市",
+        label: "黄山市",
+      },
+      {
+        children: [
+          {
+            value: "琅琊区",
+            label: "琅琊区",
+          },
+          {
+            value: "南谯区",
+            label: "南谯区",
+          },
+          {
+            value: "来安县",
+            label: "来安县",
+          },
+          {
+            value: "全椒县",
+            label: "全椒县",
+          },
+          {
+            value: "定远县",
+            label: "定远县",
+          },
+          {
+            value: "凤阳县",
+            label: "凤阳县",
+          },
+          {
+            value: "天长市",
+            label: "天长市",
+          },
+          {
+            value: "明光市",
+            label: "明光市",
+          },
+        ],
+        value: "滁州市",
+        label: "滁州市",
+      },
+      {
+        children: [
+          {
+            value: "颍州区",
+            label: "颍州区",
+          },
+          {
+            value: "颍东区",
+            label: "颍东区",
+          },
+          {
+            value: "颍泉区",
+            label: "颍泉区",
+          },
+          {
+            value: "临泉县",
+            label: "临泉县",
+          },
+          {
+            value: "太和县",
+            label: "太和县",
+          },
+          {
+            value: "阜南县",
+            label: "阜南县",
+          },
+          {
+            value: "颍上县",
+            label: "颍上县",
+          },
+          {
+            value: "界首市",
+            label: "界首市",
+          },
+        ],
+        value: "阜阳市",
+        label: "阜阳市",
+      },
+      {
+        children: [
+          {
+            value: "埇桥区",
+            label: "埇桥区",
+          },
+          {
+            value: "砀山县",
+            label: "砀山县",
+          },
+          {
+            value: "萧县",
+            label: "萧县",
+          },
+          {
+            value: "灵璧县",
+            label: "灵璧县",
+          },
+          {
+            value: "泗县",
+            label: "泗县",
+          },
+        ],
+        value: "宿州市",
+        label: "宿州市",
+      },
+      {
+        children: [
+          {
+            value: "金安区",
+            label: "金安区",
+          },
+          {
+            value: "裕安区",
+            label: "裕安区",
+          },
+          {
+            value: "叶集区",
+            label: "叶集区",
+          },
+          {
+            value: "霍邱县",
+            label: "霍邱县",
+          },
+          {
+            value: "舒城县",
+            label: "舒城县",
+          },
+          {
+            value: "金寨县",
+            label: "金寨县",
+          },
+          {
+            value: "霍山县",
+            label: "霍山县",
+          },
+        ],
+        value: "六安市",
+        label: "六安市",
+      },
+      {
+        children: [
+          {
+            value: "谯城区",
+            label: "谯城区",
+          },
+          {
+            value: "涡阳县",
+            label: "涡阳县",
+          },
+          {
+            value: "蒙城县",
+            label: "蒙城县",
+          },
+          {
+            value: "利辛县",
+            label: "利辛县",
+          },
+        ],
+        value: "亳州市",
+        label: "亳州市",
+      },
+      {
+        children: [
+          {
+            value: "贵池区",
+            label: "贵池区",
+          },
+          {
+            value: "东至县",
+            label: "东至县",
+          },
+          {
+            value: "石台县",
+            label: "石台县",
+          },
+          {
+            value: "青阳县",
+            label: "青阳县",
+          },
+        ],
+        value: "池州市",
+        label: "池州市",
+      },
+      {
+        children: [
+          {
+            value: "宣州区",
+            label: "宣州区",
+          },
+          {
+            value: "郎溪县",
+            label: "郎溪县",
+          },
+          {
+            value: "广德县",
+            label: "广德县",
+          },
+          {
+            value: "泾县",
+            label: "泾县",
+          },
+          {
+            value: "绩溪县",
+            label: "绩溪县",
+          },
+          {
+            value: "旌德县",
+            label: "旌德县",
+          },
+          {
+            value: "宁国市",
+            label: "宁国市",
+          },
+        ],
+        value: "宣城市",
+        label: "宣城市",
+      },
+    ],
+    value: "安徽省",
+    label: "安徽省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "鼓楼区",
+            label: "鼓楼区",
+          },
+          {
+            value: "台江区",
+            label: "台江区",
+          },
+          {
+            value: "仓山区",
+            label: "仓山区",
+          },
+          {
+            value: "马尾区",
+            label: "马尾区",
+          },
+          {
+            value: "晋安区",
+            label: "晋安区",
+          },
+          {
+            value: "闽侯县",
+            label: "闽侯县",
+          },
+          {
+            value: "连江县",
+            label: "连江县",
+          },
+          {
+            value: "罗源县",
+            label: "罗源县",
+          },
+          {
+            value: "闽清县",
+            label: "闽清县",
+          },
+          {
+            value: "永泰县",
+            label: "永泰县",
+          },
+          {
+            value: "平潭县",
+            label: "平潭县",
+          },
+          {
+            value: "福清市",
+            label: "福清市",
+          },
+          {
+            value: "长乐市",
+            label: "长乐市",
+          },
+        ],
+        value: "福州市",
+        label: "福州市",
+      },
+      {
+        children: [
+          {
+            value: "思明区",
+            label: "思明区",
+          },
+          {
+            value: "海沧区",
+            label: "海沧区",
+          },
+          {
+            value: "湖里区",
+            label: "湖里区",
+          },
+          {
+            value: "集美区",
+            label: "集美区",
+          },
+          {
+            value: "同安区",
+            label: "同安区",
+          },
+          {
+            value: "翔安区",
+            label: "翔安区",
+          },
+        ],
+        value: "厦门市",
+        label: "厦门市",
+      },
+      {
+        children: [
+          {
+            value: "城厢区",
+            label: "城厢区",
+          },
+          {
+            value: "涵江区",
+            label: "涵江区",
+          },
+          {
+            value: "荔城区",
+            label: "荔城区",
+          },
+          {
+            value: "秀屿区",
+            label: "秀屿区",
+          },
+          {
+            value: "仙游县",
+            label: "仙游县",
+          },
+        ],
+        value: "莆田市",
+        label: "莆田市",
+      },
+      {
+        children: [
+          {
+            value: "梅列区",
+            label: "梅列区",
+          },
+          {
+            value: "三元区",
+            label: "三元区",
+          },
+          {
+            value: "明溪县",
+            label: "明溪县",
+          },
+          {
+            value: "清流县",
+            label: "清流县",
+          },
+          {
+            value: "宁化县",
+            label: "宁化县",
+          },
+          {
+            value: "大田县",
+            label: "大田县",
+          },
+          {
+            value: "尤溪县",
+            label: "尤溪县",
+          },
+          {
+            value: "沙县",
+            label: "沙县",
+          },
+          {
+            value: "将乐县",
+            label: "将乐县",
+          },
+          {
+            value: "泰宁县",
+            label: "泰宁县",
+          },
+          {
+            value: "建宁县",
+            label: "建宁县",
+          },
+          {
+            value: "永安市",
+            label: "永安市",
+          },
+        ],
+        value: "三明市",
+        label: "三明市",
+      },
+      {
+        children: [
+          {
+            value: "鲤城区",
+            label: "鲤城区",
+          },
+          {
+            value: "丰泽区",
+            label: "丰泽区",
+          },
+          {
+            value: "洛江区",
+            label: "洛江区",
+          },
+          {
+            value: "泉港区",
+            label: "泉港区",
+          },
+          {
+            value: "惠安县",
+            label: "惠安县",
+          },
+          {
+            value: "安溪县",
+            label: "安溪县",
+          },
+          {
+            value: "永春县",
+            label: "永春县",
+          },
+          {
+            value: "德化县",
+            label: "德化县",
+          },
+          {
+            value: "金门县",
+            label: "金门县",
+          },
+          {
+            value: "石狮市",
+            label: "石狮市",
+          },
+          {
+            value: "晋江市",
+            label: "晋江市",
+          },
+          {
+            value: "南安市",
+            label: "南安市",
+          },
+        ],
+        value: "泉州市",
+        label: "泉州市",
+      },
+      {
+        children: [
+          {
+            value: "芗城区",
+            label: "芗城区",
+          },
+          {
+            value: "龙文区",
+            label: "龙文区",
+          },
+          {
+            value: "云霄县",
+            label: "云霄县",
+          },
+          {
+            value: "漳浦县",
+            label: "漳浦县",
+          },
+          {
+            value: "诏安县",
+            label: "诏安县",
+          },
+          {
+            value: "长泰县",
+            label: "长泰县",
+          },
+          {
+            value: "东山县",
+            label: "东山县",
+          },
+          {
+            value: "南靖县",
+            label: "南靖县",
+          },
+          {
+            value: "平和县",
+            label: "平和县",
+          },
+          {
+            value: "华安县",
+            label: "华安县",
+          },
+          {
+            value: "龙海市",
+            label: "龙海市",
+          },
+        ],
+        value: "漳州市",
+        label: "漳州市",
+      },
+      {
+        children: [
+          {
+            value: "延平区",
+            label: "延平区",
+          },
+          {
+            value: "建阳区",
+            label: "建阳区",
+          },
+          {
+            value: "顺昌县",
+            label: "顺昌县",
+          },
+          {
+            value: "浦城县",
+            label: "浦城县",
+          },
+          {
+            value: "光泽县",
+            label: "光泽县",
+          },
+          {
+            value: "松溪县",
+            label: "松溪县",
+          },
+          {
+            value: "政和县",
+            label: "政和县",
+          },
+          {
+            value: "邵武市",
+            label: "邵武市",
+          },
+          {
+            value: "武夷山市",
+            label: "武夷山市",
+          },
+          {
+            value: "建瓯市",
+            label: "建瓯市",
+          },
+        ],
+        value: "南平市",
+        label: "南平市",
+      },
+      {
+        children: [
+          {
+            value: "新罗区",
+            label: "新罗区",
+          },
+          {
+            value: "永定区",
+            label: "永定区",
+          },
+          {
+            value: "长汀县",
+            label: "长汀县",
+          },
+          {
+            value: "上杭县",
+            label: "上杭县",
+          },
+          {
+            value: "武平县",
+            label: "武平县",
+          },
+          {
+            value: "连城县",
+            label: "连城县",
+          },
+          {
+            value: "漳平市",
+            label: "漳平市",
+          },
+        ],
+        value: "龙岩市",
+        label: "龙岩市",
+      },
+      {
+        children: [
+          {
+            value: "蕉城区",
+            label: "蕉城区",
+          },
+          {
+            value: "霞浦县",
+            label: "霞浦县",
+          },
+          {
+            value: "古田县",
+            label: "古田县",
+          },
+          {
+            value: "屏南县",
+            label: "屏南县",
+          },
+          {
+            value: "寿宁县",
+            label: "寿宁县",
+          },
+          {
+            value: "周宁县",
+            label: "周宁县",
+          },
+          {
+            value: "柘荣县",
+            label: "柘荣县",
+          },
+          {
+            value: "福安市",
+            label: "福安市",
+          },
+          {
+            value: "福鼎市",
+            label: "福鼎市",
+          },
+        ],
+        value: "宁德市",
+        label: "宁德市",
+      },
+    ],
+    value: "福建省",
+    label: "福建省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "东湖区",
+            label: "东湖区",
+          },
+          {
+            value: "西湖区",
+            label: "西湖区",
+          },
+          {
+            value: "青云谱区",
+            label: "青云谱区",
+          },
+          {
+            value: "湾里区",
+            label: "湾里区",
+          },
+          {
+            value: "青山湖区",
+            label: "青山湖区",
+          },
+          {
+            value: "新建区",
+            label: "新建区",
+          },
+          {
+            value: "南昌县",
+            label: "南昌县",
+          },
+          {
+            value: "安义县",
+            label: "安义县",
+          },
+          {
+            value: "进贤县",
+            label: "进贤县",
+          },
+        ],
+        value: "南昌市",
+        label: "南昌市",
+      },
+      {
+        children: [
+          {
+            value: "昌江区",
+            label: "昌江区",
+          },
+          {
+            value: "珠山区",
+            label: "珠山区",
+          },
+          {
+            value: "浮梁县",
+            label: "浮梁县",
+          },
+          {
+            value: "乐平市",
+            label: "乐平市",
+          },
+        ],
+        value: "景德镇市",
+        label: "景德镇市",
+      },
+      {
+        children: [
+          {
+            value: "安源区",
+            label: "安源区",
+          },
+          {
+            value: "湘东区",
+            label: "湘东区",
+          },
+          {
+            value: "莲花县",
+            label: "莲花县",
+          },
+          {
+            value: "上栗县",
+            label: "上栗县",
+          },
+          {
+            value: "芦溪县",
+            label: "芦溪县",
+          },
+        ],
+        value: "萍乡市",
+        label: "萍乡市",
+      },
+      {
+        children: [
+          {
+            value: "濂溪区",
+            label: "濂溪区",
+          },
+          {
+            value: "浔阳区",
+            label: "浔阳区",
+          },
+          {
+            value: "九江县",
+            label: "九江县",
+          },
+          {
+            value: "武宁县",
+            label: "武宁县",
+          },
+          {
+            value: "修水县",
+            label: "修水县",
+          },
+          {
+            value: "永修县",
+            label: "永修县",
+          },
+          {
+            value: "德安县",
+            label: "德安县",
+          },
+          {
+            value: "都昌县",
+            label: "都昌县",
+          },
+          {
+            value: "湖口县",
+            label: "湖口县",
+          },
+          {
+            value: "彭泽县",
+            label: "彭泽县",
+          },
+          {
+            value: "瑞昌市",
+            label: "瑞昌市",
+          },
+          {
+            value: "共青城市",
+            label: "共青城市",
+          },
+          {
+            value: "庐山市",
+            label: "庐山市",
+          },
+        ],
+        value: "九江市",
+        label: "九江市",
+      },
+      {
+        children: [
+          {
+            value: "渝水区",
+            label: "渝水区",
+          },
+          {
+            value: "分宜县",
+            label: "分宜县",
+          },
+        ],
+        value: "新余市",
+        label: "新余市",
+      },
+      {
+        children: [
+          {
+            value: "月湖区",
+            label: "月湖区",
+          },
+          {
+            value: "余江县",
+            label: "余江县",
+          },
+          {
+            value: "贵溪市",
+            label: "贵溪市",
+          },
+        ],
+        value: "鹰潭市",
+        label: "鹰潭市",
+      },
+      {
+        children: [
+          {
+            value: "章贡区",
+            label: "章贡区",
+          },
+          {
+            value: "南康区",
+            label: "南康区",
+          },
+          {
+            value: "赣县",
+            label: "赣县",
+          },
+          {
+            value: "信丰县",
+            label: "信丰县",
+          },
+          {
+            value: "大余县",
+            label: "大余县",
+          },
+          {
+            value: "上犹县",
+            label: "上犹县",
+          },
+          {
+            value: "崇义县",
+            label: "崇义县",
+          },
+          {
+            value: "安远县",
+            label: "安远县",
+          },
+          {
+            value: "龙南县",
+            label: "龙南县",
+          },
+          {
+            value: "定南县",
+            label: "定南县",
+          },
+          {
+            value: "全南县",
+            label: "全南县",
+          },
+          {
+            value: "宁都县",
+            label: "宁都县",
+          },
+          {
+            value: "于都县",
+            label: "于都县",
+          },
+          {
+            value: "兴国县",
+            label: "兴国县",
+          },
+          {
+            value: "会昌县",
+            label: "会昌县",
+          },
+          {
+            value: "寻乌县",
+            label: "寻乌县",
+          },
+          {
+            value: "石城县",
+            label: "石城县",
+          },
+          {
+            value: "瑞金市",
+            label: "瑞金市",
+          },
+        ],
+        value: "赣州市",
+        label: "赣州市",
+      },
+      {
+        children: [
+          {
+            value: "吉州区",
+            label: "吉州区",
+          },
+          {
+            value: "青原区",
+            label: "青原区",
+          },
+          {
+            value: "吉安县",
+            label: "吉安县",
+          },
+          {
+            value: "吉水县",
+            label: "吉水县",
+          },
+          {
+            value: "峡江县",
+            label: "峡江县",
+          },
+          {
+            value: "新干县",
+            label: "新干县",
+          },
+          {
+            value: "永丰县",
+            label: "永丰县",
+          },
+          {
+            value: "泰和县",
+            label: "泰和县",
+          },
+          {
+            value: "遂川县",
+            label: "遂川县",
+          },
+          {
+            value: "万安县",
+            label: "万安县",
+          },
+          {
+            value: "安福县",
+            label: "安福县",
+          },
+          {
+            value: "永新县",
+            label: "永新县",
+          },
+          {
+            value: "井冈山市",
+            label: "井冈山市",
+          },
+        ],
+        value: "吉安市",
+        label: "吉安市",
+      },
+      {
+        children: [
+          {
+            value: "袁州区",
+            label: "袁州区",
+          },
+          {
+            value: "奉新县",
+            label: "奉新县",
+          },
+          {
+            value: "万载县",
+            label: "万载县",
+          },
+          {
+            value: "上高县",
+            label: "上高县",
+          },
+          {
+            value: "宜丰县",
+            label: "宜丰县",
+          },
+          {
+            value: "靖安县",
+            label: "靖安县",
+          },
+          {
+            value: "铜鼓县",
+            label: "铜鼓县",
+          },
+          {
+            value: "丰城市",
+            label: "丰城市",
+          },
+          {
+            value: "樟树市",
+            label: "樟树市",
+          },
+          {
+            value: "高安市",
+            label: "高安市",
+          },
+        ],
+        value: "宜春市",
+        label: "宜春市",
+      },
+      {
+        children: [
+          {
+            value: "临川区",
+            label: "临川区",
+          },
+          {
+            value: "南城县",
+            label: "南城县",
+          },
+          {
+            value: "黎川县",
+            label: "黎川县",
+          },
+          {
+            value: "南丰县",
+            label: "南丰县",
+          },
+          {
+            value: "崇仁县",
+            label: "崇仁县",
+          },
+          {
+            value: "乐安县",
+            label: "乐安县",
+          },
+          {
+            value: "宜黄县",
+            label: "宜黄县",
+          },
+          {
+            value: "金溪县",
+            label: "金溪县",
+          },
+          {
+            value: "资溪县",
+            label: "资溪县",
+          },
+          {
+            value: "东乡县",
+            label: "东乡县",
+          },
+          {
+            value: "广昌县",
+            label: "广昌县",
+          },
+        ],
+        value: "抚州市",
+        label: "抚州市",
+      },
+      {
+        children: [
+          {
+            value: "信州区",
+            label: "信州区",
+          },
+          {
+            value: "广丰区",
+            label: "广丰区",
+          },
+          {
+            value: "上饶县",
+            label: "上饶县",
+          },
+          {
+            value: "玉山县",
+            label: "玉山县",
+          },
+          {
+            value: "铅山县",
+            label: "铅山县",
+          },
+          {
+            value: "横峰县",
+            label: "横峰县",
+          },
+          {
+            value: "弋阳县",
+            label: "弋阳县",
+          },
+          {
+            value: "余干县",
+            label: "余干县",
+          },
+          {
+            value: "鄱阳县",
+            label: "鄱阳县",
+          },
+          {
+            value: "万年县",
+            label: "万年县",
+          },
+          {
+            value: "婺源县",
+            label: "婺源县",
+          },
+          {
+            value: "德兴市",
+            label: "德兴市",
+          },
+        ],
+        value: "上饶市",
+        label: "上饶市",
+      },
+    ],
+    value: "江西省",
+    label: "江西省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "历下区",
+            label: "历下区",
+          },
+          {
+            value: "市中区",
+            label: "市中区",
+          },
+          {
+            value: "槐荫区",
+            label: "槐荫区",
+          },
+          {
+            value: "天桥区",
+            label: "天桥区",
+          },
+          {
+            value: "历城区",
+            label: "历城区",
+          },
+          {
+            value: "长清区",
+            label: "长清区",
+          },
+          {
+            value: "平阴县",
+            label: "平阴县",
+          },
+          {
+            value: "济阳县",
+            label: "济阳县",
+          },
+          {
+            value: "商河县",
+            label: "商河县",
+          },
+          {
+            value: "章丘市",
+            label: "章丘市",
+          },
+        ],
+        value: "济南市",
+        label: "济南市",
+      },
+      {
+        children: [
+          {
+            value: "市南区",
+            label: "市南区",
+          },
+          {
+            value: "市北区",
+            label: "市北区",
+          },
+          {
+            value: "黄岛区",
+            label: "黄岛区",
+          },
+          {
+            value: "崂山区",
+            label: "崂山区",
+          },
+          {
+            value: "李沧区",
+            label: "李沧区",
+          },
+          {
+            value: "城阳区",
+            label: "城阳区",
+          },
+          {
+            value: "胶州市",
+            label: "胶州市",
+          },
+          {
+            value: "即墨市",
+            label: "即墨市",
+          },
+          {
+            value: "平度市",
+            label: "平度市",
+          },
+          {
+            value: "莱西市",
+            label: "莱西市",
+          },
+        ],
+        value: "青岛市",
+        label: "青岛市",
+      },
+      {
+        children: [
+          {
+            value: "淄川区",
+            label: "淄川区",
+          },
+          {
+            value: "张店区",
+            label: "张店区",
+          },
+          {
+            value: "博山区",
+            label: "博山区",
+          },
+          {
+            value: "临淄区",
+            label: "临淄区",
+          },
+          {
+            value: "周村区",
+            label: "周村区",
+          },
+          {
+            value: "桓台县",
+            label: "桓台县",
+          },
+          {
+            value: "高青县",
+            label: "高青县",
+          },
+          {
+            value: "沂源县",
+            label: "沂源县",
+          },
+        ],
+        value: "淄博市",
+        label: "淄博市",
+      },
+      {
+        children: [
+          {
+            value: "市中区",
+            label: "市中区",
+          },
+          {
+            value: "薛城区",
+            label: "薛城区",
+          },
+          {
+            value: "峄城区",
+            label: "峄城区",
+          },
+          {
+            value: "台儿庄区",
+            label: "台儿庄区",
+          },
+          {
+            value: "山亭区",
+            label: "山亭区",
+          },
+          {
+            value: "滕州市",
+            label: "滕州市",
+          },
+        ],
+        value: "枣庄市",
+        label: "枣庄市",
+      },
+      {
+        children: [
+          {
+            value: "东营区",
+            label: "东营区",
+          },
+          {
+            value: "河口区",
+            label: "河口区",
+          },
+          {
+            value: "垦利区",
+            label: "垦利区",
+          },
+          {
+            value: "利津县",
+            label: "利津县",
+          },
+          {
+            value: "广饶县",
+            label: "广饶县",
+          },
+        ],
+        value: "东营市",
+        label: "东营市",
+      },
+      {
+        children: [
+          {
+            value: "芝罘区",
+            label: "芝罘区",
+          },
+          {
+            value: "福山区",
+            label: "福山区",
+          },
+          {
+            value: "牟平区",
+            label: "牟平区",
+          },
+          {
+            value: "莱山区",
+            label: "莱山区",
+          },
+          {
+            value: "长岛县",
+            label: "长岛县",
+          },
+          {
+            value: "龙口市",
+            label: "龙口市",
+          },
+          {
+            value: "莱阳市",
+            label: "莱阳市",
+          },
+          {
+            value: "莱州市",
+            label: "莱州市",
+          },
+          {
+            value: "蓬莱市",
+            label: "蓬莱市",
+          },
+          {
+            value: "招远市",
+            label: "招远市",
+          },
+          {
+            value: "栖霞市",
+            label: "栖霞市",
+          },
+          {
+            value: "海阳市",
+            label: "海阳市",
+          },
+        ],
+        value: "烟台市",
+        label: "烟台市",
+      },
+      {
+        children: [
+          {
+            value: "潍城区",
+            label: "潍城区",
+          },
+          {
+            value: "寒亭区",
+            label: "寒亭区",
+          },
+          {
+            value: "坊子区",
+            label: "坊子区",
+          },
+          {
+            value: "奎文区",
+            label: "奎文区",
+          },
+          {
+            value: "临朐县",
+            label: "临朐县",
+          },
+          {
+            value: "昌乐县",
+            label: "昌乐县",
+          },
+          {
+            value: "青州市",
+            label: "青州市",
+          },
+          {
+            value: "诸城市",
+            label: "诸城市",
+          },
+          {
+            value: "寿光市",
+            label: "寿光市",
+          },
+          {
+            value: "安丘市",
+            label: "安丘市",
+          },
+          {
+            value: "高密市",
+            label: "高密市",
+          },
+          {
+            value: "昌邑市",
+            label: "昌邑市",
+          },
+        ],
+        value: "潍坊市",
+        label: "潍坊市",
+      },
+      {
+        children: [
+          {
+            value: "任城区",
+            label: "任城区",
+          },
+          {
+            value: "兖州区",
+            label: "兖州区",
+          },
+          {
+            value: "微山县",
+            label: "微山县",
+          },
+          {
+            value: "鱼台县",
+            label: "鱼台县",
+          },
+          {
+            value: "金乡县",
+            label: "金乡县",
+          },
+          {
+            value: "嘉祥县",
+            label: "嘉祥县",
+          },
+          {
+            value: "汶上县",
+            label: "汶上县",
+          },
+          {
+            value: "泗水县",
+            label: "泗水县",
+          },
+          {
+            value: "梁山县",
+            label: "梁山县",
+          },
+          {
+            value: "曲阜市",
+            label: "曲阜市",
+          },
+          {
+            value: "邹城市",
+            label: "邹城市",
+          },
+        ],
+        value: "济宁市",
+        label: "济宁市",
+      },
+      {
+        children: [
+          {
+            value: "泰山区",
+            label: "泰山区",
+          },
+          {
+            value: "岱岳区",
+            label: "岱岳区",
+          },
+          {
+            value: "宁阳县",
+            label: "宁阳县",
+          },
+          {
+            value: "东平县",
+            label: "东平县",
+          },
+          {
+            value: "新泰市",
+            label: "新泰市",
+          },
+          {
+            value: "肥城市",
+            label: "肥城市",
+          },
+        ],
+        value: "泰安市",
+        label: "泰安市",
+      },
+      {
+        children: [
+          {
+            value: "环翠区",
+            label: "环翠区",
+          },
+          {
+            value: "文登区",
+            label: "文登区",
+          },
+          {
+            value: "荣成市",
+            label: "荣成市",
+          },
+          {
+            value: "乳山市",
+            label: "乳山市",
+          },
+        ],
+        value: "威海市",
+        label: "威海市",
+      },
+      {
+        children: [
+          {
+            value: "东港区",
+            label: "东港区",
+          },
+          {
+            value: "岚山区",
+            label: "岚山区",
+          },
+          {
+            value: "五莲县",
+            label: "五莲县",
+          },
+          {
+            value: "莒县",
+            label: "莒县",
+          },
+        ],
+        value: "日照市",
+        label: "日照市",
+      },
+      {
+        children: [
+          {
+            value: "莱城区",
+            label: "莱城区",
+          },
+          {
+            value: "钢城区",
+            label: "钢城区",
+          },
+        ],
+        value: "莱芜市",
+        label: "莱芜市",
+      },
+      {
+        children: [
+          {
+            value: "兰山区",
+            label: "兰山区",
+          },
+          {
+            value: "罗庄区",
+            label: "罗庄区",
+          },
+          {
+            value: "河东区",
+            label: "河东区",
+          },
+          {
+            value: "沂南县",
+            label: "沂南县",
+          },
+          {
+            value: "郯城县",
+            label: "郯城县",
+          },
+          {
+            value: "沂水县",
+            label: "沂水县",
+          },
+          {
+            value: "兰陵县",
+            label: "兰陵县",
+          },
+          {
+            value: "费县",
+            label: "费县",
+          },
+          {
+            value: "平邑县",
+            label: "平邑县",
+          },
+          {
+            value: "莒南县",
+            label: "莒南县",
+          },
+          {
+            value: "蒙阴县",
+            label: "蒙阴县",
+          },
+          {
+            value: "临沭县",
+            label: "临沭县",
+          },
+        ],
+        value: "临沂市",
+        label: "临沂市",
+      },
+      {
+        children: [
+          {
+            value: "德城区",
+            label: "德城区",
+          },
+          {
+            value: "陵城区",
+            label: "陵城区",
+          },
+          {
+            value: "宁津县",
+            label: "宁津县",
+          },
+          {
+            value: "庆云县",
+            label: "庆云县",
+          },
+          {
+            value: "临邑县",
+            label: "临邑县",
+          },
+          {
+            value: "齐河县",
+            label: "齐河县",
+          },
+          {
+            value: "平原县",
+            label: "平原县",
+          },
+          {
+            value: "夏津县",
+            label: "夏津县",
+          },
+          {
+            value: "武城县",
+            label: "武城县",
+          },
+          {
+            value: "乐陵市",
+            label: "乐陵市",
+          },
+          {
+            value: "禹城市",
+            label: "禹城市",
+          },
+        ],
+        value: "德州市",
+        label: "德州市",
+      },
+      {
+        children: [
+          {
+            value: "东昌府区",
+            label: "东昌府区",
+          },
+          {
+            value: "阳谷县",
+            label: "阳谷县",
+          },
+          {
+            value: "莘县",
+            label: "莘县",
+          },
+          {
+            value: "茌平县",
+            label: "茌平县",
+          },
+          {
+            value: "东阿县",
+            label: "东阿县",
+          },
+          {
+            value: "冠县",
+            label: "冠县",
+          },
+          {
+            value: "高唐县",
+            label: "高唐县",
+          },
+          {
+            value: "临清市",
+            label: "临清市",
+          },
+        ],
+        value: "聊城市",
+        label: "聊城市",
+      },
+      {
+        children: [
+          {
+            value: "滨城区",
+            label: "滨城区",
+          },
+          {
+            value: "沾化区",
+            label: "沾化区",
+          },
+          {
+            value: "惠民县",
+            label: "惠民县",
+          },
+          {
+            value: "阳信县",
+            label: "阳信县",
+          },
+          {
+            value: "无棣县",
+            label: "无棣县",
+          },
+          {
+            value: "博兴县",
+            label: "博兴县",
+          },
+          {
+            value: "邹平县",
+            label: "邹平县",
+          },
+        ],
+        value: "滨州市",
+        label: "滨州市",
+      },
+      {
+        children: [
+          {
+            value: "牡丹区",
+            label: "牡丹区",
+          },
+          {
+            value: "定陶区",
+            label: "定陶区",
+          },
+          {
+            value: "曹县",
+            label: "曹县",
+          },
+          {
+            value: "单县",
+            label: "单县",
+          },
+          {
+            value: "成武县",
+            label: "成武县",
+          },
+          {
+            value: "巨野县",
+            label: "巨野县",
+          },
+          {
+            value: "郓城县",
+            label: "郓城县",
+          },
+          {
+            value: "鄄城县",
+            label: "鄄城县",
+          },
+          {
+            value: "东明县",
+            label: "东明县",
+          },
+        ],
+        value: "菏泽市",
+        label: "菏泽市",
+      },
+    ],
+    value: "山东省",
+    label: "山东省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "中原区",
+            label: "中原区",
+          },
+          {
+            value: "二七区",
+            label: "二七区",
+          },
+          {
+            value: "管城回族区",
+            label: "管城回族区",
+          },
+          {
+            value: "金水区",
+            label: "金水区",
+          },
+          {
+            value: "上街区",
+            label: "上街区",
+          },
+          {
+            value: "惠济区",
+            label: "惠济区",
+          },
+          {
+            value: "中牟县",
+            label: "中牟县",
+          },
+          {
+            value: "巩义市",
+            label: "巩义市",
+          },
+          {
+            value: "荥阳市",
+            label: "荥阳市",
+          },
+          {
+            value: "新密市",
+            label: "新密市",
+          },
+          {
+            value: "新郑市",
+            label: "新郑市",
+          },
+          {
+            value: "登封市",
+            label: "登封市",
+          },
+        ],
+        value: "郑州市",
+        label: "郑州市",
+      },
+      {
+        children: [
+          {
+            value: "龙亭区",
+            label: "龙亭区",
+          },
+          {
+            value: "顺河回族区",
+            label: "顺河回族区",
+          },
+          {
+            value: "鼓楼区",
+            label: "鼓楼区",
+          },
+          {
+            value: "禹王台区",
+            label: "禹王台区",
+          },
+          {
+            value: "金明区",
+            label: "金明区",
+          },
+          {
+            value: "祥符区",
+            label: "祥符区",
+          },
+          {
+            value: "杞县",
+            label: "杞县",
+          },
+          {
+            value: "通许县",
+            label: "通许县",
+          },
+          {
+            value: "尉氏县",
+            label: "尉氏县",
+          },
+          {
+            value: "兰考县",
+            label: "兰考县",
+          },
+        ],
+        value: "开封市",
+        label: "开封市",
+      },
+      {
+        children: [
+          {
+            value: "老城区",
+            label: "老城区",
+          },
+          {
+            value: "西工区",
+            label: "西工区",
+          },
+          {
+            value: "瀍河回族区",
+            label: "瀍河回族区",
+          },
+          {
+            value: "涧西区",
+            label: "涧西区",
+          },
+          {
+            value: "吉利区",
+            label: "吉利区",
+          },
+          {
+            value: "洛龙区",
+            label: "洛龙区",
+          },
+          {
+            value: "孟津县",
+            label: "孟津县",
+          },
+          {
+            value: "新安县",
+            label: "新安县",
+          },
+          {
+            value: "栾川县",
+            label: "栾川县",
+          },
+          {
+            value: "嵩县",
+            label: "嵩县",
+          },
+          {
+            value: "汝阳县",
+            label: "汝阳县",
+          },
+          {
+            value: "宜阳县",
+            label: "宜阳县",
+          },
+          {
+            value: "洛宁县",
+            label: "洛宁县",
+          },
+          {
+            value: "伊川县",
+            label: "伊川县",
+          },
+          {
+            value: "偃师市",
+            label: "偃师市",
+          },
+        ],
+        value: "洛阳市",
+        label: "洛阳市",
+      },
+      {
+        children: [
+          {
+            value: "新华区",
+            label: "新华区",
+          },
+          {
+            value: "卫东区",
+            label: "卫东区",
+          },
+          {
+            value: "石龙区",
+            label: "石龙区",
+          },
+          {
+            value: "湛河区",
+            label: "湛河区",
+          },
+          {
+            value: "宝丰县",
+            label: "宝丰县",
+          },
+          {
+            value: "叶县",
+            label: "叶县",
+          },
+          {
+            value: "鲁山县",
+            label: "鲁山县",
+          },
+          {
+            value: "郏县",
+            label: "郏县",
+          },
+          {
+            value: "舞钢市",
+            label: "舞钢市",
+          },
+          {
+            value: "汝州市",
+            label: "汝州市",
+          },
+        ],
+        value: "平顶山市",
+        label: "平顶山市",
+      },
+      {
+        children: [
+          {
+            value: "文峰区",
+            label: "文峰区",
+          },
+          {
+            value: "北关区",
+            label: "北关区",
+          },
+          {
+            value: "殷都区",
+            label: "殷都区",
+          },
+          {
+            value: "龙安区",
+            label: "龙安区",
+          },
+          {
+            value: "安阳县",
+            label: "安阳县",
+          },
+          {
+            value: "汤阴县",
+            label: "汤阴县",
+          },
+          {
+            value: "滑县",
+            label: "滑县",
+          },
+          {
+            value: "内黄县",
+            label: "内黄县",
+          },
+          {
+            value: "林州市",
+            label: "林州市",
+          },
+        ],
+        value: "安阳市",
+        label: "安阳市",
+      },
+      {
+        children: [
+          {
+            value: "鹤山区",
+            label: "鹤山区",
+          },
+          {
+            value: "山城区",
+            label: "山城区",
+          },
+          {
+            value: "淇滨区",
+            label: "淇滨区",
+          },
+          {
+            value: "浚县",
+            label: "浚县",
+          },
+          {
+            value: "淇县",
+            label: "淇县",
+          },
+        ],
+        value: "鹤壁市",
+        label: "鹤壁市",
+      },
+      {
+        children: [
+          {
+            value: "红旗区",
+            label: "红旗区",
+          },
+          {
+            value: "卫滨区",
+            label: "卫滨区",
+          },
+          {
+            value: "凤泉区",
+            label: "凤泉区",
+          },
+          {
+            value: "牧野区",
+            label: "牧野区",
+          },
+          {
+            value: "新乡县",
+            label: "新乡县",
+          },
+          {
+            value: "获嘉县",
+            label: "获嘉县",
+          },
+          {
+            value: "原阳县",
+            label: "原阳县",
+          },
+          {
+            value: "延津县",
+            label: "延津县",
+          },
+          {
+            value: "封丘县",
+            label: "封丘县",
+          },
+          {
+            value: "长垣县",
+            label: "长垣县",
+          },
+          {
+            value: "卫辉市",
+            label: "卫辉市",
+          },
+          {
+            value: "辉县市",
+            label: "辉县市",
+          },
+        ],
+        value: "新乡市",
+        label: "新乡市",
+      },
+      {
+        children: [
+          {
+            value: "解放区",
+            label: "解放区",
+          },
+          {
+            value: "中站区",
+            label: "中站区",
+          },
+          {
+            value: "马村区",
+            label: "马村区",
+          },
+          {
+            value: "山阳区",
+            label: "山阳区",
+          },
+          {
+            value: "修武县",
+            label: "修武县",
+          },
+          {
+            value: "博爱县",
+            label: "博爱县",
+          },
+          {
+            value: "武陟县",
+            label: "武陟县",
+          },
+          {
+            value: "温县",
+            label: "温县",
+          },
+          {
+            value: "沁阳市",
+            label: "沁阳市",
+          },
+          {
+            value: "孟州市",
+            label: "孟州市",
+          },
+        ],
+        value: "焦作市",
+        label: "焦作市",
+      },
+      {
+        children: [
+          {
+            value: "华龙区",
+            label: "华龙区",
+          },
+          {
+            value: "清丰县",
+            label: "清丰县",
+          },
+          {
+            value: "南乐县",
+            label: "南乐县",
+          },
+          {
+            value: "范县",
+            label: "范县",
+          },
+          {
+            value: "台前县",
+            label: "台前县",
+          },
+          {
+            value: "濮阳县",
+            label: "濮阳县",
+          },
+        ],
+        value: "濮阳市",
+        label: "濮阳市",
+      },
+      {
+        children: [
+          {
+            value: "魏都区",
+            label: "魏都区",
+          },
+          {
+            value: "许昌县",
+            label: "许昌县",
+          },
+          {
+            value: "鄢陵县",
+            label: "鄢陵县",
+          },
+          {
+            value: "襄城县",
+            label: "襄城县",
+          },
+          {
+            value: "禹州市",
+            label: "禹州市",
+          },
+          {
+            value: "长葛市",
+            label: "长葛市",
+          },
+        ],
+        value: "许昌市",
+        label: "许昌市",
+      },
+      {
+        children: [
+          {
+            value: "源汇区",
+            label: "源汇区",
+          },
+          {
+            value: "郾城区",
+            label: "郾城区",
+          },
+          {
+            value: "召陵区",
+            label: "召陵区",
+          },
+          {
+            value: "舞阳县",
+            label: "舞阳县",
+          },
+          {
+            value: "临颍县",
+            label: "临颍县",
+          },
+        ],
+        value: "漯河市",
+        label: "漯河市",
+      },
+      {
+        children: [
+          {
+            value: "湖滨区",
+            label: "湖滨区",
+          },
+          {
+            value: "陕州区",
+            label: "陕州区",
+          },
+          {
+            value: "渑池县",
+            label: "渑池县",
+          },
+          {
+            value: "卢氏县",
+            label: "卢氏县",
+          },
+          {
+            value: "义马市",
+            label: "义马市",
+          },
+          {
+            value: "灵宝市",
+            label: "灵宝市",
+          },
+        ],
+        value: "三门峡市",
+        label: "三门峡市",
+      },
+      {
+        children: [
+          {
+            value: "宛城区",
+            label: "宛城区",
+          },
+          {
+            value: "卧龙区",
+            label: "卧龙区",
+          },
+          {
+            value: "南召县",
+            label: "南召县",
+          },
+          {
+            value: "方城县",
+            label: "方城县",
+          },
+          {
+            value: "西峡县",
+            label: "西峡县",
+          },
+          {
+            value: "镇平县",
+            label: "镇平县",
+          },
+          {
+            value: "内乡县",
+            label: "内乡县",
+          },
+          {
+            value: "淅川县",
+            label: "淅川县",
+          },
+          {
+            value: "社旗县",
+            label: "社旗县",
+          },
+          {
+            value: "唐河县",
+            label: "唐河县",
+          },
+          {
+            value: "新野县",
+            label: "新野县",
+          },
+          {
+            value: "桐柏县",
+            label: "桐柏县",
+          },
+          {
+            value: "邓州市",
+            label: "邓州市",
+          },
+        ],
+        value: "南阳市",
+        label: "南阳市",
+      },
+      {
+        children: [
+          {
+            value: "梁园区",
+            label: "梁园区",
+          },
+          {
+            value: "睢阳区",
+            label: "睢阳区",
+          },
+          {
+            value: "民权县",
+            label: "民权县",
+          },
+          {
+            value: "睢县",
+            label: "睢县",
+          },
+          {
+            value: "宁陵县",
+            label: "宁陵县",
+          },
+          {
+            value: "柘城县",
+            label: "柘城县",
+          },
+          {
+            value: "虞城县",
+            label: "虞城县",
+          },
+          {
+            value: "夏邑县",
+            label: "夏邑县",
+          },
+          {
+            value: "永城市",
+            label: "永城市",
+          },
+        ],
+        value: "商丘市",
+        label: "商丘市",
+      },
+      {
+        children: [
+          {
+            value: "浉河区",
+            label: "浉河区",
+          },
+          {
+            value: "平桥区",
+            label: "平桥区",
+          },
+          {
+            value: "罗山县",
+            label: "罗山县",
+          },
+          {
+            value: "光山县",
+            label: "光山县",
+          },
+          {
+            value: "新县",
+            label: "新县",
+          },
+          {
+            value: "商城县",
+            label: "商城县",
+          },
+          {
+            value: "固始县",
+            label: "固始县",
+          },
+          {
+            value: "潢川县",
+            label: "潢川县",
+          },
+          {
+            value: "淮滨县",
+            label: "淮滨县",
+          },
+          {
+            value: "息县",
+            label: "息县",
+          },
+        ],
+        value: "信阳市",
+        label: "信阳市",
+      },
+      {
+        children: [
+          {
+            value: "川汇区",
+            label: "川汇区",
+          },
+          {
+            value: "扶沟县",
+            label: "扶沟县",
+          },
+          {
+            value: "西华县",
+            label: "西华县",
+          },
+          {
+            value: "商水县",
+            label: "商水县",
+          },
+          {
+            value: "沈丘县",
+            label: "沈丘县",
+          },
+          {
+            value: "郸城县",
+            label: "郸城县",
+          },
+          {
+            value: "淮阳县",
+            label: "淮阳县",
+          },
+          {
+            value: "太康县",
+            label: "太康县",
+          },
+          {
+            value: "鹿邑县",
+            label: "鹿邑县",
+          },
+          {
+            value: "项城市",
+            label: "项城市",
+          },
+        ],
+        value: "周口市",
+        label: "周口市",
+      },
+      {
+        children: [
+          {
+            value: "驿城区",
+            label: "驿城区",
+          },
+          {
+            value: "西平县",
+            label: "西平县",
+          },
+          {
+            value: "上蔡县",
+            label: "上蔡县",
+          },
+          {
+            value: "平舆县",
+            label: "平舆县",
+          },
+          {
+            value: "正阳县",
+            label: "正阳县",
+          },
+          {
+            value: "确山县",
+            label: "确山县",
+          },
+          {
+            value: "泌阳县",
+            label: "泌阳县",
+          },
+          {
+            value: "汝南县",
+            label: "汝南县",
+          },
+          {
+            value: "遂平县",
+            label: "遂平县",
+          },
+          {
+            value: "新蔡县",
+            label: "新蔡县",
+          },
+        ],
+        value: "驻马店市",
+        label: "驻马店市",
+      },
+      {
+        value: "济源市",
+        label: "济源市",
+      },
+    ],
+    value: "河南省",
+    label: "河南省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "江岸区",
+            label: "江岸区",
+          },
+          {
+            value: "江汉区",
+            label: "江汉区",
+          },
+          {
+            value: "硚口区",
+            label: "硚口区",
+          },
+          {
+            value: "汉阳区",
+            label: "汉阳区",
+          },
+          {
+            value: "武昌区",
+            label: "武昌区",
+          },
+          {
+            value: "青山区",
+            label: "青山区",
+          },
+          {
+            value: "洪山区",
+            label: "洪山区",
+          },
+          {
+            value: "东西湖区",
+            label: "东西湖区",
+          },
+          {
+            value: "汉南区",
+            label: "汉南区",
+          },
+          {
+            value: "蔡甸区",
+            label: "蔡甸区",
+          },
+          {
+            value: "江夏区",
+            label: "江夏区",
+          },
+          {
+            value: "黄陂区",
+            label: "黄陂区",
+          },
+          {
+            value: "新洲区",
+            label: "新洲区",
+          },
+        ],
+        value: "武汉市",
+        label: "武汉市",
+      },
+      {
+        children: [
+          {
+            value: "黄石港区",
+            label: "黄石港区",
+          },
+          {
+            value: "西塞山区",
+            label: "西塞山区",
+          },
+          {
+            value: "下陆区",
+            label: "下陆区",
+          },
+          {
+            value: "铁山区",
+            label: "铁山区",
+          },
+          {
+            value: "阳新县",
+            label: "阳新县",
+          },
+          {
+            value: "大冶市",
+            label: "大冶市",
+          },
+        ],
+        value: "黄石市",
+        label: "黄石市",
+      },
+      {
+        children: [
+          {
+            value: "茅箭区",
+            label: "茅箭区",
+          },
+          {
+            value: "张湾区",
+            label: "张湾区",
+          },
+          {
+            value: "郧阳区",
+            label: "郧阳区",
+          },
+          {
+            value: "郧西县",
+            label: "郧西县",
+          },
+          {
+            value: "竹山县",
+            label: "竹山县",
+          },
+          {
+            value: "竹溪县",
+            label: "竹溪县",
+          },
+          {
+            value: "房县",
+            label: "房县",
+          },
+          {
+            value: "丹江口市",
+            label: "丹江口市",
+          },
+        ],
+        value: "十堰市",
+        label: "十堰市",
+      },
+      {
+        children: [
+          {
+            value: "西陵区",
+            label: "西陵区",
+          },
+          {
+            value: "伍家岗区",
+            label: "伍家岗区",
+          },
+          {
+            value: "点军区",
+            label: "点军区",
+          },
+          {
+            value: "猇亭区",
+            label: "猇亭区",
+          },
+          {
+            value: "夷陵区",
+            label: "夷陵区",
+          },
+          {
+            value: "远安县",
+            label: "远安县",
+          },
+          {
+            value: "兴山县",
+            label: "兴山县",
+          },
+          {
+            value: "秭归县",
+            label: "秭归县",
+          },
+          {
+            value: "长阳土家族自治县",
+            label: "长阳土家族自治县",
+          },
+          {
+            value: "五峰土家族自治县",
+            label: "五峰土家族自治县",
+          },
+          {
+            value: "宜都市",
+            label: "宜都市",
+          },
+          {
+            value: "当阳市",
+            label: "当阳市",
+          },
+          {
+            value: "枝江市",
+            label: "枝江市",
+          },
+        ],
+        value: "宜昌市",
+        label: "宜昌市",
+      },
+      {
+        children: [
+          {
+            value: "襄城区",
+            label: "襄城区",
+          },
+          {
+            value: "樊城区",
+            label: "樊城区",
+          },
+          {
+            value: "襄州区",
+            label: "襄州区",
+          },
+          {
+            value: "南漳县",
+            label: "南漳县",
+          },
+          {
+            value: "谷城县",
+            label: "谷城县",
+          },
+          {
+            value: "保康县",
+            label: "保康县",
+          },
+          {
+            value: "老河口市",
+            label: "老河口市",
+          },
+          {
+            value: "枣阳市",
+            label: "枣阳市",
+          },
+          {
+            value: "宜城市",
+            label: "宜城市",
+          },
+        ],
+        value: "襄阳市",
+        label: "襄阳市",
+      },
+      {
+        children: [
+          {
+            value: "梁子湖区",
+            label: "梁子湖区",
+          },
+          {
+            value: "华容区",
+            label: "华容区",
+          },
+          {
+            value: "鄂城区",
+            label: "鄂城区",
+          },
+        ],
+        value: "鄂州市",
+        label: "鄂州市",
+      },
+      {
+        children: [
+          {
+            value: "东宝区",
+            label: "东宝区",
+          },
+          {
+            value: "掇刀区",
+            label: "掇刀区",
+          },
+          {
+            value: "京山县",
+            label: "京山县",
+          },
+          {
+            value: "沙洋县",
+            label: "沙洋县",
+          },
+          {
+            value: "钟祥市",
+            label: "钟祥市",
+          },
+        ],
+        value: "荆门市",
+        label: "荆门市",
+      },
+      {
+        children: [
+          {
+            value: "孝南区",
+            label: "孝南区",
+          },
+          {
+            value: "孝昌县",
+            label: "孝昌县",
+          },
+          {
+            value: "大悟县",
+            label: "大悟县",
+          },
+          {
+            value: "云梦县",
+            label: "云梦县",
+          },
+          {
+            value: "应城市",
+            label: "应城市",
+          },
+          {
+            value: "安陆市",
+            label: "安陆市",
+          },
+          {
+            value: "汉川市",
+            label: "汉川市",
+          },
+        ],
+        value: "孝感市",
+        label: "孝感市",
+      },
+      {
+        children: [
+          {
+            value: "沙市区",
+            label: "沙市区",
+          },
+          {
+            value: "荆州区",
+            label: "荆州区",
+          },
+          {
+            value: "公安县",
+            label: "公安县",
+          },
+          {
+            value: "监利县",
+            label: "监利县",
+          },
+          {
+            value: "江陵县",
+            label: "江陵县",
+          },
+          {
+            value: "石首市",
+            label: "石首市",
+          },
+          {
+            value: "洪湖市",
+            label: "洪湖市",
+          },
+          {
+            value: "松滋市",
+            label: "松滋市",
+          },
+        ],
+        value: "荆州市",
+        label: "荆州市",
+      },
+      {
+        children: [
+          {
+            value: "黄州区",
+            label: "黄州区",
+          },
+          {
+            value: "团风县",
+            label: "团风县",
+          },
+          {
+            value: "红安县",
+            label: "红安县",
+          },
+          {
+            value: "罗田县",
+            label: "罗田县",
+          },
+          {
+            value: "英山县",
+            label: "英山县",
+          },
+          {
+            value: "浠水县",
+            label: "浠水县",
+          },
+          {
+            value: "蕲春县",
+            label: "蕲春县",
+          },
+          {
+            value: "黄梅县",
+            label: "黄梅县",
+          },
+          {
+            value: "麻城市",
+            label: "麻城市",
+          },
+          {
+            value: "武穴市",
+            label: "武穴市",
+          },
+        ],
+        value: "黄冈市",
+        label: "黄冈市",
+      },
+      {
+        children: [
+          {
+            value: "咸安区",
+            label: "咸安区",
+          },
+          {
+            value: "嘉鱼县",
+            label: "嘉鱼县",
+          },
+          {
+            value: "通城县",
+            label: "通城县",
+          },
+          {
+            value: "崇阳县",
+            label: "崇阳县",
+          },
+          {
+            value: "通山县",
+            label: "通山县",
+          },
+          {
+            value: "赤壁市",
+            label: "赤壁市",
+          },
+        ],
+        value: "咸宁市",
+        label: "咸宁市",
+      },
+      {
+        children: [
+          {
+            value: "曾都区",
+            label: "曾都区",
+          },
+          {
+            value: "随县",
+            label: "随县",
+          },
+          {
+            value: "广水市",
+            label: "广水市",
+          },
+        ],
+        value: "随州市",
+        label: "随州市",
+      },
+      {
+        children: [
+          {
+            value: "恩施市",
+            label: "恩施市",
+          },
+          {
+            value: "利川市",
+            label: "利川市",
+          },
+          {
+            value: "建始县",
+            label: "建始县",
+          },
+          {
+            value: "巴东县",
+            label: "巴东县",
+          },
+          {
+            value: "宣恩县",
+            label: "宣恩县",
+          },
+          {
+            value: "咸丰县",
+            label: "咸丰县",
+          },
+          {
+            value: "来凤县",
+            label: "来凤县",
+          },
+          {
+            value: "鹤峰县",
+            label: "鹤峰县",
+          },
+        ],
+        value: "恩施土家族苗族自治州",
+        label: "恩施土家族苗族自治州",
+      },
+      {
+        value: "仙桃市",
+        label: "仙桃市",
+      },
+      {
+        value: "潜江市",
+        label: "潜江市",
+      },
+      {
+        value: "天门市",
+        label: "天门市",
+      },
+      {
+        value: "神农架林区",
+        label: "神农架林区",
+      },
+    ],
+    value: "湖北省",
+    label: "湖北省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "芙蓉区",
+            label: "芙蓉区",
+          },
+          {
+            value: "天心区",
+            label: "天心区",
+          },
+          {
+            value: "岳麓区",
+            label: "岳麓区",
+          },
+          {
+            value: "开福区",
+            label: "开福区",
+          },
+          {
+            value: "雨花区",
+            label: "雨花区",
+          },
+          {
+            value: "望城区",
+            label: "望城区",
+          },
+          {
+            value: "长沙县",
+            label: "长沙县",
+          },
+          {
+            value: "宁乡县",
+            label: "宁乡县",
+          },
+          {
+            value: "浏阳市",
+            label: "浏阳市",
+          },
+        ],
+        value: "长沙市",
+        label: "长沙市",
+      },
+      {
+        children: [
+          {
+            value: "荷塘区",
+            label: "荷塘区",
+          },
+          {
+            value: "芦淞区",
+            label: "芦淞区",
+          },
+          {
+            value: "石峰区",
+            label: "石峰区",
+          },
+          {
+            value: "天元区",
+            label: "天元区",
+          },
+          {
+            value: "株洲县",
+            label: "株洲县",
+          },
+          {
+            value: "攸县",
+            label: "攸县",
+          },
+          {
+            value: "茶陵县",
+            label: "茶陵县",
+          },
+          {
+            value: "炎陵县",
+            label: "炎陵县",
+          },
+          {
+            value: "醴陵市",
+            label: "醴陵市",
+          },
+        ],
+        value: "株洲市",
+        label: "株洲市",
+      },
+      {
+        children: [
+          {
+            value: "雨湖区",
+            label: "雨湖区",
+          },
+          {
+            value: "岳塘区",
+            label: "岳塘区",
+          },
+          {
+            value: "湘潭县",
+            label: "湘潭县",
+          },
+          {
+            value: "湘乡市",
+            label: "湘乡市",
+          },
+          {
+            value: "韶山市",
+            label: "韶山市",
+          },
+        ],
+        value: "湘潭市",
+        label: "湘潭市",
+      },
+      {
+        children: [
+          {
+            value: "珠晖区",
+            label: "珠晖区",
+          },
+          {
+            value: "雁峰区",
+            label: "雁峰区",
+          },
+          {
+            value: "石鼓区",
+            label: "石鼓区",
+          },
+          {
+            value: "蒸湘区",
+            label: "蒸湘区",
+          },
+          {
+            value: "南岳区",
+            label: "南岳区",
+          },
+          {
+            value: "衡阳县",
+            label: "衡阳县",
+          },
+          {
+            value: "衡南县",
+            label: "衡南县",
+          },
+          {
+            value: "衡山县",
+            label: "衡山县",
+          },
+          {
+            value: "衡东县",
+            label: "衡东县",
+          },
+          {
+            value: "祁东县",
+            label: "祁东县",
+          },
+          {
+            value: "耒阳市",
+            label: "耒阳市",
+          },
+          {
+            value: "常宁市",
+            label: "常宁市",
+          },
+        ],
+        value: "衡阳市",
+        label: "衡阳市",
+      },
+      {
+        children: [
+          {
+            value: "双清区",
+            label: "双清区",
+          },
+          {
+            value: "大祥区",
+            label: "大祥区",
+          },
+          {
+            value: "北塔区",
+            label: "北塔区",
+          },
+          {
+            value: "邵东县",
+            label: "邵东县",
+          },
+          {
+            value: "新邵县",
+            label: "新邵县",
+          },
+          {
+            value: "邵阳县",
+            label: "邵阳县",
+          },
+          {
+            value: "隆回县",
+            label: "隆回县",
+          },
+          {
+            value: "洞口县",
+            label: "洞口县",
+          },
+          {
+            value: "绥宁县",
+            label: "绥宁县",
+          },
+          {
+            value: "新宁县",
+            label: "新宁县",
+          },
+          {
+            value: "城步苗族自治县",
+            label: "城步苗族自治县",
+          },
+          {
+            value: "武冈市",
+            label: "武冈市",
+          },
+        ],
+        value: "邵阳市",
+        label: "邵阳市",
+      },
+      {
+        children: [
+          {
+            value: "岳阳楼区",
+            label: "岳阳楼区",
+          },
+          {
+            value: "云溪区",
+            label: "云溪区",
+          },
+          {
+            value: "君山区",
+            label: "君山区",
+          },
+          {
+            value: "岳阳县",
+            label: "岳阳县",
+          },
+          {
+            value: "华容县",
+            label: "华容县",
+          },
+          {
+            value: "湘阴县",
+            label: "湘阴县",
+          },
+          {
+            value: "平江县",
+            label: "平江县",
+          },
+          {
+            value: "汨罗市",
+            label: "汨罗市",
+          },
+          {
+            value: "临湘市",
+            label: "临湘市",
+          },
+        ],
+        value: "岳阳市",
+        label: "岳阳市",
+      },
+      {
+        children: [
+          {
+            value: "武陵区",
+            label: "武陵区",
+          },
+          {
+            value: "鼎城区",
+            label: "鼎城区",
+          },
+          {
+            value: "安乡县",
+            label: "安乡县",
+          },
+          {
+            value: "汉寿县",
+            label: "汉寿县",
+          },
+          {
+            value: "澧县",
+            label: "澧县",
+          },
+          {
+            value: "临澧县",
+            label: "临澧县",
+          },
+          {
+            value: "桃源县",
+            label: "桃源县",
+          },
+          {
+            value: "石门县",
+            label: "石门县",
+          },
+          {
+            value: "津市市",
+            label: "津市市",
+          },
+        ],
+        value: "常德市",
+        label: "常德市",
+      },
+      {
+        children: [
+          {
+            value: "永定区",
+            label: "永定区",
+          },
+          {
+            value: "武陵源区",
+            label: "武陵源区",
+          },
+          {
+            value: "慈利县",
+            label: "慈利县",
+          },
+          {
+            value: "桑植县",
+            label: "桑植县",
+          },
+        ],
+        value: "张家界市",
+        label: "张家界市",
+      },
+      {
+        children: [
+          {
+            value: "资阳区",
+            label: "资阳区",
+          },
+          {
+            value: "赫山区",
+            label: "赫山区",
+          },
+          {
+            value: "南县",
+            label: "南县",
+          },
+          {
+            value: "桃江县",
+            label: "桃江县",
+          },
+          {
+            value: "安化县",
+            label: "安化县",
+          },
+          {
+            value: "沅江市",
+            label: "沅江市",
+          },
+        ],
+        value: "益阳市",
+        label: "益阳市",
+      },
+      {
+        children: [
+          {
+            value: "北湖区",
+            label: "北湖区",
+          },
+          {
+            value: "苏仙区",
+            label: "苏仙区",
+          },
+          {
+            value: "桂阳县",
+            label: "桂阳县",
+          },
+          {
+            value: "宜章县",
+            label: "宜章县",
+          },
+          {
+            value: "永兴县",
+            label: "永兴县",
+          },
+          {
+            value: "嘉禾县",
+            label: "嘉禾县",
+          },
+          {
+            value: "临武县",
+            label: "临武县",
+          },
+          {
+            value: "汝城县",
+            label: "汝城县",
+          },
+          {
+            value: "桂东县",
+            label: "桂东县",
+          },
+          {
+            value: "安仁县",
+            label: "安仁县",
+          },
+          {
+            value: "资兴市",
+            label: "资兴市",
+          },
+        ],
+        value: "郴州市",
+        label: "郴州市",
+      },
+      {
+        children: [
+          {
+            value: "零陵区",
+            label: "零陵区",
+          },
+          {
+            value: "冷水滩区",
+            label: "冷水滩区",
+          },
+          {
+            value: "祁阳县",
+            label: "祁阳县",
+          },
+          {
+            value: "东安县",
+            label: "东安县",
+          },
+          {
+            value: "双牌县",
+            label: "双牌县",
+          },
+          {
+            value: "道县",
+            label: "道县",
+          },
+          {
+            value: "江永县",
+            label: "江永县",
+          },
+          {
+            value: "宁远县",
+            label: "宁远县",
+          },
+          {
+            value: "蓝山县",
+            label: "蓝山县",
+          },
+          {
+            value: "新田县",
+            label: "新田县",
+          },
+          {
+            value: "江华瑶族自治县",
+            label: "江华瑶族自治县",
+          },
+        ],
+        value: "永州市",
+        label: "永州市",
+      },
+      {
+        children: [
+          {
+            value: "鹤城区",
+            label: "鹤城区",
+          },
+          {
+            value: "中方县",
+            label: "中方县",
+          },
+          {
+            value: "沅陵县",
+            label: "沅陵县",
+          },
+          {
+            value: "辰溪县",
+            label: "辰溪县",
+          },
+          {
+            value: "溆浦县",
+            label: "溆浦县",
+          },
+          {
+            value: "会同县",
+            label: "会同县",
+          },
+          {
+            value: "麻阳苗族自治县",
+            label: "麻阳苗族自治县",
+          },
+          {
+            value: "新晃侗族自治县",
+            label: "新晃侗族自治县",
+          },
+          {
+            value: "芷江侗族自治县",
+            label: "芷江侗族自治县",
+          },
+          {
+            value: "靖州苗族侗族自治县",
+            label: "靖州苗族侗族自治县",
+          },
+          {
+            value: "通道侗族自治县",
+            label: "通道侗族自治县",
+          },
+          {
+            value: "洪江市",
+            label: "洪江市",
+          },
+        ],
+        value: "怀化市",
+        label: "怀化市",
+      },
+      {
+        children: [
+          {
+            value: "娄星区",
+            label: "娄星区",
+          },
+          {
+            value: "双峰县",
+            label: "双峰县",
+          },
+          {
+            value: "新化县",
+            label: "新化县",
+          },
+          {
+            value: "冷水江市",
+            label: "冷水江市",
+          },
+          {
+            value: "涟源市",
+            label: "涟源市",
+          },
+        ],
+        value: "娄底市",
+        label: "娄底市",
+      },
+      {
+        children: [
+          {
+            value: "吉首市",
+            label: "吉首市",
+          },
+          {
+            value: "泸溪县",
+            label: "泸溪县",
+          },
+          {
+            value: "凤凰县",
+            label: "凤凰县",
+          },
+          {
+            value: "花垣县",
+            label: "花垣县",
+          },
+          {
+            value: "保靖县",
+            label: "保靖县",
+          },
+          {
+            value: "古丈县",
+            label: "古丈县",
+          },
+          {
+            value: "永顺县",
+            label: "永顺县",
+          },
+          {
+            value: "龙山县",
+            label: "龙山县",
+          },
+        ],
+        value: "湘西土家族苗族自治州",
+        label: "湘西土家族苗族自治州",
+      },
+    ],
+    value: "湖南省",
+    label: "湖南省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "荔湾区",
+            label: "荔湾区",
+          },
+          {
+            value: "越秀区",
+            label: "越秀区",
+          },
+          {
+            value: "海珠区",
+            label: "海珠区",
+          },
+          {
+            value: "天河区",
+            label: "天河区",
+          },
+          {
+            value: "白云区",
+            label: "白云区",
+          },
+          {
+            value: "黄埔区",
+            label: "黄埔区",
+          },
+          {
+            value: "番禺区",
+            label: "番禺区",
+          },
+          {
+            value: "花都区",
+            label: "花都区",
+          },
+          {
+            value: "南沙区",
+            label: "南沙区",
+          },
+          {
+            value: "从化区",
+            label: "从化区",
+          },
+          {
+            value: "增城区",
+            label: "增城区",
+          },
+        ],
+        value: "广州市",
+        label: "广州市",
+      },
+      {
+        children: [
+          {
+            value: "武江区",
+            label: "武江区",
+          },
+          {
+            value: "浈江区",
+            label: "浈江区",
+          },
+          {
+            value: "曲江区",
+            label: "曲江区",
+          },
+          {
+            value: "始兴县",
+            label: "始兴县",
+          },
+          {
+            value: "仁化县",
+            label: "仁化县",
+          },
+          {
+            value: "翁源县",
+            label: "翁源县",
+          },
+          {
+            value: "乳源瑶族自治县",
+            label: "乳源瑶族自治县",
+          },
+          {
+            value: "新丰县",
+            label: "新丰县",
+          },
+          {
+            value: "乐昌市",
+            label: "乐昌市",
+          },
+          {
+            value: "南雄市",
+            label: "南雄市",
+          },
+        ],
+        value: "韶关市",
+        label: "韶关市",
+      },
+      {
+        children: [
+          {
+            value: "罗湖区",
+            label: "罗湖区",
+          },
+          {
+            value: "福田区",
+            label: "福田区",
+          },
+          {
+            value: "南山区",
+            label: "南山区",
+          },
+          {
+            value: "宝安区",
+            label: "宝安区",
+          },
+          {
+            value: "龙岗区",
+            label: "龙岗区",
+          },
+          {
+            value: "盐田区",
+            label: "盐田区",
+          },
+        ],
+        value: "深圳市",
+        label: "深圳市",
+      },
+      {
+        children: [
+          {
+            value: "香洲区",
+            label: "香洲区",
+          },
+          {
+            value: "斗门区",
+            label: "斗门区",
+          },
+          {
+            value: "金湾区",
+            label: "金湾区",
+          },
+        ],
+        value: "珠海市",
+        label: "珠海市",
+      },
+      {
+        children: [
+          {
+            value: "龙湖区",
+            label: "龙湖区",
+          },
+          {
+            value: "金平区",
+            label: "金平区",
+          },
+          {
+            value: "濠江区",
+            label: "濠江区",
+          },
+          {
+            value: "潮阳区",
+            label: "潮阳区",
+          },
+          {
+            value: "潮南区",
+            label: "潮南区",
+          },
+          {
+            value: "澄海区",
+            label: "澄海区",
+          },
+          {
+            value: "南澳县",
+            label: "南澳县",
+          },
+        ],
+        value: "汕头市",
+        label: "汕头市",
+      },
+      {
+        children: [
+          {
+            value: "禅城区",
+            label: "禅城区",
+          },
+          {
+            value: "南海区",
+            label: "南海区",
+          },
+          {
+            value: "顺德区",
+            label: "顺德区",
+          },
+          {
+            value: "三水区",
+            label: "三水区",
+          },
+          {
+            value: "高明区",
+            label: "高明区",
+          },
+        ],
+        value: "佛山市",
+        label: "佛山市",
+      },
+      {
+        children: [
+          {
+            value: "蓬江区",
+            label: "蓬江区",
+          },
+          {
+            value: "江海区",
+            label: "江海区",
+          },
+          {
+            value: "新会区",
+            label: "新会区",
+          },
+          {
+            value: "台山市",
+            label: "台山市",
+          },
+          {
+            value: "开平市",
+            label: "开平市",
+          },
+          {
+            value: "鹤山市",
+            label: "鹤山市",
+          },
+          {
+            value: "恩平市",
+            label: "恩平市",
+          },
+        ],
+        value: "江门市",
+        label: "江门市",
+      },
+      {
+        children: [
+          {
+            value: "赤坎区",
+            label: "赤坎区",
+          },
+          {
+            value: "霞山区",
+            label: "霞山区",
+          },
+          {
+            value: "坡头区",
+            label: "坡头区",
+          },
+          {
+            value: "麻章区",
+            label: "麻章区",
+          },
+          {
+            value: "遂溪县",
+            label: "遂溪县",
+          },
+          {
+            value: "徐闻县",
+            label: "徐闻县",
+          },
+          {
+            value: "廉江市",
+            label: "廉江市",
+          },
+          {
+            value: "雷州市",
+            label: "雷州市",
+          },
+          {
+            value: "吴川市",
+            label: "吴川市",
+          },
+        ],
+        value: "湛江市",
+        label: "湛江市",
+      },
+      {
+        children: [
+          {
+            value: "茂南区",
+            label: "茂南区",
+          },
+          {
+            value: "电白区",
+            label: "电白区",
+          },
+          {
+            value: "高州市",
+            label: "高州市",
+          },
+          {
+            value: "化州市",
+            label: "化州市",
+          },
+          {
+            value: "信宜市",
+            label: "信宜市",
+          },
+        ],
+        value: "茂名市",
+        label: "茂名市",
+      },
+      {
+        children: [
+          {
+            value: "端州区",
+            label: "端州区",
+          },
+          {
+            value: "鼎湖区",
+            label: "鼎湖区",
+          },
+          {
+            value: "高要区",
+            label: "高要区",
+          },
+          {
+            value: "广宁县",
+            label: "广宁县",
+          },
+          {
+            value: "怀集县",
+            label: "怀集县",
+          },
+          {
+            value: "封开县",
+            label: "封开县",
+          },
+          {
+            value: "德庆县",
+            label: "德庆县",
+          },
+          {
+            value: "四会市",
+            label: "四会市",
+          },
+        ],
+        value: "肇庆市",
+        label: "肇庆市",
+      },
+      {
+        children: [
+          {
+            value: "惠城区",
+            label: "惠城区",
+          },
+          {
+            value: "惠阳区",
+            label: "惠阳区",
+          },
+          {
+            value: "博罗县",
+            label: "博罗县",
+          },
+          {
+            value: "惠东县",
+            label: "惠东县",
+          },
+          {
+            value: "龙门县",
+            label: "龙门县",
+          },
+        ],
+        value: "惠州市",
+        label: "惠州市",
+      },
+      {
+        children: [
+          {
+            value: "梅江区",
+            label: "梅江区",
+          },
+          {
+            value: "梅县区",
+            label: "梅县区",
+          },
+          {
+            value: "大埔县",
+            label: "大埔县",
+          },
+          {
+            value: "丰顺县",
+            label: "丰顺县",
+          },
+          {
+            value: "五华县",
+            label: "五华县",
+          },
+          {
+            value: "平远县",
+            label: "平远县",
+          },
+          {
+            value: "蕉岭县",
+            label: "蕉岭县",
+          },
+          {
+            value: "兴宁市",
+            label: "兴宁市",
+          },
+        ],
+        value: "梅州市",
+        label: "梅州市",
+      },
+      {
+        children: [
+          {
+            value: "城区",
+            label: "城区",
+          },
+          {
+            value: "海丰县",
+            label: "海丰县",
+          },
+          {
+            value: "陆河县",
+            label: "陆河县",
+          },
+          {
+            value: "陆丰市",
+            label: "陆丰市",
+          },
+        ],
+        value: "汕尾市",
+        label: "汕尾市",
+      },
+      {
+        children: [
+          {
+            value: "源城区",
+            label: "源城区",
+          },
+          {
+            value: "紫金县",
+            label: "紫金县",
+          },
+          {
+            value: "龙川县",
+            label: "龙川县",
+          },
+          {
+            value: "连平县",
+            label: "连平县",
+          },
+          {
+            value: "和平县",
+            label: "和平县",
+          },
+          {
+            value: "东源县",
+            label: "东源县",
+          },
+        ],
+        value: "河源市",
+        label: "河源市",
+      },
+      {
+        children: [
+          {
+            value: "江城区",
+            label: "江城区",
+          },
+          {
+            value: "阳东区",
+            label: "阳东区",
+          },
+          {
+            value: "阳西县",
+            label: "阳西县",
+          },
+          {
+            value: "阳春市",
+            label: "阳春市",
+          },
+        ],
+        value: "阳江市",
+        label: "阳江市",
+      },
+      {
+        children: [
+          {
+            value: "清城区",
+            label: "清城区",
+          },
+          {
+            value: "清新区",
+            label: "清新区",
+          },
+          {
+            value: "佛冈县",
+            label: "佛冈县",
+          },
+          {
+            value: "阳山县",
+            label: "阳山县",
+          },
+          {
+            value: "连山壮族瑶族自治县",
+            label: "连山壮族瑶族自治县",
+          },
+          {
+            value: "连南瑶族自治县",
+            label: "连南瑶族自治县",
+          },
+          {
+            value: "英德市",
+            label: "英德市",
+          },
+          {
+            value: "连州市",
+            label: "连州市",
+          },
+        ],
+        value: "清远市",
+        label: "清远市",
+      },
+      {
+        value: "东莞市",
+        label: "东莞市",
+      },
+      {
+        value: "中山市",
+        label: "中山市",
+      },
+      {
+        children: [
+          {
+            value: "湘桥区",
+            label: "湘桥区",
+          },
+          {
+            value: "潮安区",
+            label: "潮安区",
+          },
+          {
+            value: "饶平县",
+            label: "饶平县",
+          },
+        ],
+        value: "潮州市",
+        label: "潮州市",
+      },
+      {
+        children: [
+          {
+            value: "榕城区",
+            label: "榕城区",
+          },
+          {
+            value: "揭东区",
+            label: "揭东区",
+          },
+          {
+            value: "揭西县",
+            label: "揭西县",
+          },
+          {
+            value: "惠来县",
+            label: "惠来县",
+          },
+          {
+            value: "普宁市",
+            label: "普宁市",
+          },
+        ],
+        value: "揭阳市",
+        label: "揭阳市",
+      },
+      {
+        children: [
+          {
+            value: "云城区",
+            label: "云城区",
+          },
+          {
+            value: "云安区",
+            label: "云安区",
+          },
+          {
+            value: "新兴县",
+            label: "新兴县",
+          },
+          {
+            value: "郁南县",
+            label: "郁南县",
+          },
+          {
+            value: "罗定市",
+            label: "罗定市",
+          },
+        ],
+        value: "云浮市",
+        label: "云浮市",
+      },
+    ],
+    value: "广东省",
+    label: "广东省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "兴宁区",
+            label: "兴宁区",
+          },
+          {
+            value: "青秀区",
+            label: "青秀区",
+          },
+          {
+            value: "江南区",
+            label: "江南区",
+          },
+          {
+            value: "西乡塘区",
+            label: "西乡塘区",
+          },
+          {
+            value: "良庆区",
+            label: "良庆区",
+          },
+          {
+            value: "邕宁区",
+            label: "邕宁区",
+          },
+          {
+            value: "武鸣区",
+            label: "武鸣区",
+          },
+          {
+            value: "隆安县",
+            label: "隆安县",
+          },
+          {
+            value: "马山县",
+            label: "马山县",
+          },
+          {
+            value: "上林县",
+            label: "上林县",
+          },
+          {
+            value: "宾阳县",
+            label: "宾阳县",
+          },
+          {
+            value: "横县",
+            label: "横县",
+          },
+        ],
+        value: "南宁市",
+        label: "南宁市",
+      },
+      {
+        children: [
+          {
+            value: "城中区",
+            label: "城中区",
+          },
+          {
+            value: "鱼峰区",
+            label: "鱼峰区",
+          },
+          {
+            value: "柳南区",
+            label: "柳南区",
+          },
+          {
+            value: "柳北区",
+            label: "柳北区",
+          },
+          {
+            value: "柳江区",
+            label: "柳江区",
+          },
+          {
+            value: "柳城县",
+            label: "柳城县",
+          },
+          {
+            value: "鹿寨县",
+            label: "鹿寨县",
+          },
+          {
+            value: "融安县",
+            label: "融安县",
+          },
+          {
+            value: "融水苗族自治县",
+            label: "融水苗族自治县",
+          },
+          {
+            value: "三江侗族自治县",
+            label: "三江侗族自治县",
+          },
+        ],
+        value: "柳州市",
+        label: "柳州市",
+      },
+      {
+        children: [
+          {
+            value: "秀峰区",
+            label: "秀峰区",
+          },
+          {
+            value: "叠彩区",
+            label: "叠彩区",
+          },
+          {
+            value: "象山区",
+            label: "象山区",
+          },
+          {
+            value: "七星区",
+            label: "七星区",
+          },
+          {
+            value: "雁山区",
+            label: "雁山区",
+          },
+          {
+            value: "临桂区",
+            label: "临桂区",
+          },
+          {
+            value: "阳朔县",
+            label: "阳朔县",
+          },
+          {
+            value: "灵川县",
+            label: "灵川县",
+          },
+          {
+            value: "全州县",
+            label: "全州县",
+          },
+          {
+            value: "兴安县",
+            label: "兴安县",
+          },
+          {
+            value: "永福县",
+            label: "永福县",
+          },
+          {
+            value: "灌阳县",
+            label: "灌阳县",
+          },
+          {
+            value: "龙胜各族自治县",
+            label: "龙胜各族自治县",
+          },
+          {
+            value: "资源县",
+            label: "资源县",
+          },
+          {
+            value: "平乐县",
+            label: "平乐县",
+          },
+          {
+            value: "荔浦县",
+            label: "荔浦县",
+          },
+          {
+            value: "恭城瑶族自治县",
+            label: "恭城瑶族自治县",
+          },
+        ],
+        value: "桂林市",
+        label: "桂林市",
+      },
+      {
+        children: [
+          {
+            value: "万秀区",
+            label: "万秀区",
+          },
+          {
+            value: "长洲区",
+            label: "长洲区",
+          },
+          {
+            value: "龙圩区",
+            label: "龙圩区",
+          },
+          {
+            value: "苍梧县",
+            label: "苍梧县",
+          },
+          {
+            value: "藤县",
+            label: "藤县",
+          },
+          {
+            value: "蒙山县",
+            label: "蒙山县",
+          },
+          {
+            value: "岑溪市",
+            label: "岑溪市",
+          },
+        ],
+        value: "梧州市",
+        label: "梧州市",
+      },
+      {
+        children: [
+          {
+            value: "海城区",
+            label: "海城区",
+          },
+          {
+            value: "银海区",
+            label: "银海区",
+          },
+          {
+            value: "铁山港区",
+            label: "铁山港区",
+          },
+          {
+            value: "合浦县",
+            label: "合浦县",
+          },
+        ],
+        value: "北海市",
+        label: "北海市",
+      },
+      {
+        children: [
+          {
+            value: "港口区",
+            label: "港口区",
+          },
+          {
+            value: "防城区",
+            label: "防城区",
+          },
+          {
+            value: "上思县",
+            label: "上思县",
+          },
+          {
+            value: "东兴市",
+            label: "东兴市",
+          },
+        ],
+        value: "防城港市",
+        label: "防城港市",
+      },
+      {
+        children: [
+          {
+            value: "钦南区",
+            label: "钦南区",
+          },
+          {
+            value: "钦北区",
+            label: "钦北区",
+          },
+          {
+            value: "灵山县",
+            label: "灵山县",
+          },
+          {
+            value: "浦北县",
+            label: "浦北县",
+          },
+        ],
+        value: "钦州市",
+        label: "钦州市",
+      },
+      {
+        children: [
+          {
+            value: "港北区",
+            label: "港北区",
+          },
+          {
+            value: "港南区",
+            label: "港南区",
+          },
+          {
+            value: "覃塘区",
+            label: "覃塘区",
+          },
+          {
+            value: "平南县",
+            label: "平南县",
+          },
+          {
+            value: "桂平市",
+            label: "桂平市",
+          },
+        ],
+        value: "贵港市",
+        label: "贵港市",
+      },
+      {
+        children: [
+          {
+            value: "玉州区",
+            label: "玉州区",
+          },
+          {
+            value: "福绵区",
+            label: "福绵区",
+          },
+          {
+            value: "容县",
+            label: "容县",
+          },
+          {
+            value: "陆川县",
+            label: "陆川县",
+          },
+          {
+            value: "博白县",
+            label: "博白县",
+          },
+          {
+            value: "兴业县",
+            label: "兴业县",
+          },
+          {
+            value: "北流市",
+            label: "北流市",
+          },
+        ],
+        value: "玉林市",
+        label: "玉林市",
+      },
+      {
+        children: [
+          {
+            value: "右江区",
+            label: "右江区",
+          },
+          {
+            value: "田阳县",
+            label: "田阳县",
+          },
+          {
+            value: "田东县",
+            label: "田东县",
+          },
+          {
+            value: "平果县",
+            label: "平果县",
+          },
+          {
+            value: "德保县",
+            label: "德保县",
+          },
+          {
+            value: "那坡县",
+            label: "那坡县",
+          },
+          {
+            value: "凌云县",
+            label: "凌云县",
+          },
+          {
+            value: "乐业县",
+            label: "乐业县",
+          },
+          {
+            value: "田林县",
+            label: "田林县",
+          },
+          {
+            value: "西林县",
+            label: "西林县",
+          },
+          {
+            value: "隆林各族自治县",
+            label: "隆林各族自治县",
+          },
+          {
+            value: "靖西市",
+            label: "靖西市",
+          },
+        ],
+        value: "百色市",
+        label: "百色市",
+      },
+      {
+        children: [
+          {
+            value: "八步区",
+            label: "八步区",
+          },
+          {
+            value: "平桂区",
+            label: "平桂区",
+          },
+          {
+            value: "昭平县",
+            label: "昭平县",
+          },
+          {
+            value: "钟山县",
+            label: "钟山县",
+          },
+          {
+            value: "富川瑶族自治县",
+            label: "富川瑶族自治县",
+          },
+        ],
+        value: "贺州市",
+        label: "贺州市",
+      },
+      {
+        children: [
+          {
+            value: "金城江区",
+            label: "金城江区",
+          },
+          {
+            value: "南丹县",
+            label: "南丹县",
+          },
+          {
+            value: "天峨县",
+            label: "天峨县",
+          },
+          {
+            value: "凤山县",
+            label: "凤山县",
+          },
+          {
+            value: "东兰县",
+            label: "东兰县",
+          },
+          {
+            value: "罗城仫佬族自治县",
+            label: "罗城仫佬族自治县",
+          },
+          {
+            value: "环江毛南族自治县",
+            label: "环江毛南族自治县",
+          },
+          {
+            value: "巴马瑶族自治县",
+            label: "巴马瑶族自治县",
+          },
+          {
+            value: "都安瑶族自治县",
+            label: "都安瑶族自治县",
+          },
+          {
+            value: "大化瑶族自治县",
+            label: "大化瑶族自治县",
+          },
+          {
+            value: "宜州市",
+            label: "宜州市",
+          },
+        ],
+        value: "河池市",
+        label: "河池市",
+      },
+      {
+        children: [
+          {
+            value: "兴宾区",
+            label: "兴宾区",
+          },
+          {
+            value: "忻城县",
+            label: "忻城县",
+          },
+          {
+            value: "象州县",
+            label: "象州县",
+          },
+          {
+            value: "武宣县",
+            label: "武宣县",
+          },
+          {
+            value: "金秀瑶族自治县",
+            label: "金秀瑶族自治县",
+          },
+          {
+            value: "合山市",
+            label: "合山市",
+          },
+        ],
+        value: "来宾市",
+        label: "来宾市",
+      },
+      {
+        children: [
+          {
+            value: "江州区",
+            label: "江州区",
+          },
+          {
+            value: "扶绥县",
+            label: "扶绥县",
+          },
+          {
+            value: "宁明县",
+            label: "宁明县",
+          },
+          {
+            value: "龙州县",
+            label: "龙州县",
+          },
+          {
+            value: "大新县",
+            label: "大新县",
+          },
+          {
+            value: "天等县",
+            label: "天等县",
+          },
+          {
+            value: "凭祥市",
+            label: "凭祥市",
+          },
+        ],
+        value: "崇左市",
+        label: "崇左市",
+      },
+    ],
+    value: "广西壮族自治区",
+    label: "广西壮族自治区",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "秀英区",
+            label: "秀英区",
+          },
+          {
+            value: "龙华区",
+            label: "龙华区",
+          },
+          {
+            value: "琼山区",
+            label: "琼山区",
+          },
+          {
+            value: "美兰区",
+            label: "美兰区",
+          },
+        ],
+        value: "海口市",
+        label: "海口市",
+      },
+      {
+        children: [
+          {
+            value: "海棠区",
+            label: "海棠区",
+          },
+          {
+            value: "吉阳区",
+            label: "吉阳区",
+          },
+          {
+            value: "天涯区",
+            label: "天涯区",
+          },
+          {
+            value: "崖州区",
+            label: "崖州区",
+          },
+        ],
+        value: "三亚市",
+        label: "三亚市",
+      },
+      {
+        value: "三沙市",
+        label: "三沙市",
+      },
+      {
+        value: "儋州市",
+        label: "儋州市",
+      },
+      {
+        value: "五指山市",
+        label: "五指山市",
+      },
+      {
+        value: "琼海市",
+        label: "琼海市",
+      },
+      {
+        value: "文昌市",
+        label: "文昌市",
+      },
+      {
+        value: "万宁市",
+        label: "万宁市",
+      },
+      {
+        value: "东方市",
+        label: "东方市",
+      },
+      {
+        value: "定安县",
+        label: "定安县",
+      },
+      {
+        value: "屯昌县",
+        label: "屯昌县",
+      },
+      {
+        value: "澄迈县",
+        label: "澄迈县",
+      },
+      {
+        value: "临高县",
+        label: "临高县",
+      },
+      {
+        value: "白沙黎族自治县",
+        label: "白沙黎族自治县",
+      },
+      {
+        value: "昌江黎族自治县",
+        label: "昌江黎族自治县",
+      },
+      {
+        value: "乐东黎族自治县",
+        label: "乐东黎族自治县",
+      },
+      {
+        value: "陵水黎族自治县",
+        label: "陵水黎族自治县",
+      },
+      {
+        value: "保亭黎族苗族自治县",
+        label: "保亭黎族苗族自治县",
+      },
+      {
+        value: "琼中黎族苗族自治县",
+        label: "琼中黎族苗族自治县",
+      },
+    ],
+    value: "海南省",
+    label: "海南省",
+  },
+  {
+    children: [
+      {
+        value: "万州区",
+        label: "万州区",
+      },
+      {
+        value: "涪陵区",
+        label: "涪陵区",
+      },
+      {
+        value: "渝中区",
+        label: "渝中区",
+      },
+      {
+        value: "大渡口区",
+        label: "大渡口区",
+      },
+      {
+        value: "江北区",
+        label: "江北区",
+      },
+      {
+        value: "沙坪坝区",
+        label: "沙坪坝区",
+      },
+      {
+        value: "九龙坡区",
+        label: "九龙坡区",
+      },
+      {
+        value: "南岸区",
+        label: "南岸区",
+      },
+      {
+        value: "北碚区",
+        label: "北碚区",
+      },
+      {
+        value: "綦江区",
+        label: "綦江区",
+      },
+      {
+        value: "大足区",
+        label: "大足区",
+      },
+      {
+        value: "渝北区",
+        label: "渝北区",
+      },
+      {
+        value: "巴南区",
+        label: "巴南区",
+      },
+      {
+        value: "黔江区",
+        label: "黔江区",
+      },
+      {
+        value: "长寿区",
+        label: "长寿区",
+      },
+      {
+        value: "江津区",
+        label: "江津区",
+      },
+      {
+        value: "合川区",
+        label: "合川区",
+      },
+      {
+        value: "永川区",
+        label: "永川区",
+      },
+      {
+        value: "南川区",
+        label: "南川区",
+      },
+      {
+        value: "璧山区",
+        label: "璧山区",
+      },
+      {
+        value: "铜梁区",
+        label: "铜梁区",
+      },
+      {
+        value: "潼南区",
+        label: "潼南区",
+      },
+      {
+        value: "荣昌区",
+        label: "荣昌区",
+      },
+      {
+        value: "开州区",
+        label: "开州区",
+      },
+      {
+        value: "梁平县",
+        label: "梁平县",
+      },
+      {
+        value: "城口县",
+        label: "城口县",
+      },
+      {
+        value: "丰都县",
+        label: "丰都县",
+      },
+      {
+        value: "垫江县",
+        label: "垫江县",
+      },
+      {
+        value: "武隆县",
+        label: "武隆县",
+      },
+      {
+        value: "忠县",
+        label: "忠县",
+      },
+      {
+        value: "云阳县",
+        label: "云阳县",
+      },
+      {
+        value: "奉节县",
+        label: "奉节县",
+      },
+      {
+        value: "巫山县",
+        label: "巫山县",
+      },
+      {
+        value: "巫溪县",
+        label: "巫溪县",
+      },
+      {
+        value: "石柱土家族自治县",
+        label: "石柱土家族自治县",
+      },
+      {
+        value: "秀山土家族苗族自治县",
+        label: "秀山土家族苗族自治县",
+      },
+      {
+        value: "酉阳土家族苗族自治县",
+        label: "酉阳土家族苗族自治县",
+      },
+      {
+        value: "彭水苗族土家族自治县",
+        label: "彭水苗族土家族自治县",
+      },
+    ],
+    value: "重庆市",
+    label: "重庆市",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "锦江区",
+            label: "锦江区",
+          },
+          {
+            value: "青羊区",
+            label: "青羊区",
+          },
+          {
+            value: "金牛区",
+            label: "金牛区",
+          },
+          {
+            value: "武侯区",
+            label: "武侯区",
+          },
+          {
+            value: "成华区",
+            label: "成华区",
+          },
+          {
+            value: "龙泉驿区",
+            label: "龙泉驿区",
+          },
+          {
+            value: "青白江区",
+            label: "青白江区",
+          },
+          {
+            value: "新都区",
+            label: "新都区",
+          },
+          {
+            value: "温江区",
+            label: "温江区",
+          },
+          {
+            value: "双流区",
+            label: "双流区",
+          },
+          {
+            value: "金堂县",
+            label: "金堂县",
+          },
+          {
+            value: "郫县",
+            label: "郫县",
+          },
+          {
+            value: "大邑县",
+            label: "大邑县",
+          },
+          {
+            value: "蒲江县",
+            label: "蒲江县",
+          },
+          {
+            value: "新津县",
+            label: "新津县",
+          },
+          {
+            value: "都江堰市",
+            label: "都江堰市",
+          },
+          {
+            value: "彭州市",
+            label: "彭州市",
+          },
+          {
+            value: "邛崃市",
+            label: "邛崃市",
+          },
+          {
+            value: "崇州市",
+            label: "崇州市",
+          },
+          {
+            value: "简阳市",
+            label: "简阳市",
+          },
+        ],
+        value: "成都市",
+        label: "成都市",
+      },
+      {
+        children: [
+          {
+            value: "自流井区",
+            label: "自流井区",
+          },
+          {
+            value: "贡井区",
+            label: "贡井区",
+          },
+          {
+            value: "大安区",
+            label: "大安区",
+          },
+          {
+            value: "沿滩区",
+            label: "沿滩区",
+          },
+          {
+            value: "荣县",
+            label: "荣县",
+          },
+          {
+            value: "富顺县",
+            label: "富顺县",
+          },
+        ],
+        value: "自贡市",
+        label: "自贡市",
+      },
+      {
+        children: [
+          {
+            value: "东区",
+            label: "东区",
+          },
+          {
+            value: "西区",
+            label: "西区",
+          },
+          {
+            value: "仁和区",
+            label: "仁和区",
+          },
+          {
+            value: "米易县",
+            label: "米易县",
+          },
+          {
+            value: "盐边县",
+            label: "盐边县",
+          },
+        ],
+        value: "攀枝花市",
+        label: "攀枝花市",
+      },
+      {
+        children: [
+          {
+            value: "江阳区",
+            label: "江阳区",
+          },
+          {
+            value: "纳溪区",
+            label: "纳溪区",
+          },
+          {
+            value: "龙马潭区",
+            label: "龙马潭区",
+          },
+          {
+            value: "泸县",
+            label: "泸县",
+          },
+          {
+            value: "合江县",
+            label: "合江县",
+          },
+          {
+            value: "叙永县",
+            label: "叙永县",
+          },
+          {
+            value: "古蔺县",
+            label: "古蔺县",
+          },
+        ],
+        value: "泸州市",
+        label: "泸州市",
+      },
+      {
+        children: [
+          {
+            value: "旌阳区",
+            label: "旌阳区",
+          },
+          {
+            value: "中江县",
+            label: "中江县",
+          },
+          {
+            value: "罗江县",
+            label: "罗江县",
+          },
+          {
+            value: "广汉市",
+            label: "广汉市",
+          },
+          {
+            value: "什邡市",
+            label: "什邡市",
+          },
+          {
+            value: "绵竹市",
+            label: "绵竹市",
+          },
+        ],
+        value: "德阳市",
+        label: "德阳市",
+      },
+      {
+        children: [
+          {
+            value: "涪城区",
+            label: "涪城区",
+          },
+          {
+            value: "游仙区",
+            label: "游仙区",
+          },
+          {
+            value: "安州区",
+            label: "安州区",
+          },
+          {
+            value: "三台县",
+            label: "三台县",
+          },
+          {
+            value: "盐亭县",
+            label: "盐亭县",
+          },
+          {
+            value: "梓潼县",
+            label: "梓潼县",
+          },
+          {
+            value: "北川羌族自治县",
+            label: "北川羌族自治县",
+          },
+          {
+            value: "平武县",
+            label: "平武县",
+          },
+          {
+            value: "江油市",
+            label: "江油市",
+          },
+        ],
+        value: "绵阳市",
+        label: "绵阳市",
+      },
+      {
+        children: [
+          {
+            value: "利州区",
+            label: "利州区",
+          },
+          {
+            value: "昭化区",
+            label: "昭化区",
+          },
+          {
+            value: "朝天区",
+            label: "朝天区",
+          },
+          {
+            value: "旺苍县",
+            label: "旺苍县",
+          },
+          {
+            value: "青川县",
+            label: "青川县",
+          },
+          {
+            value: "剑阁县",
+            label: "剑阁县",
+          },
+          {
+            value: "苍溪县",
+            label: "苍溪县",
+          },
+        ],
+        value: "广元市",
+        label: "广元市",
+      },
+      {
+        children: [
+          {
+            value: "船山区",
+            label: "船山区",
+          },
+          {
+            value: "安居区",
+            label: "安居区",
+          },
+          {
+            value: "蓬溪县",
+            label: "蓬溪县",
+          },
+          {
+            value: "射洪县",
+            label: "射洪县",
+          },
+          {
+            value: "大英县",
+            label: "大英县",
+          },
+        ],
+        value: "遂宁市",
+        label: "遂宁市",
+      },
+      {
+        children: [
+          {
+            value: "市中区",
+            label: "市中区",
+          },
+          {
+            value: "东兴区",
+            label: "东兴区",
+          },
+          {
+            value: "威远县",
+            label: "威远县",
+          },
+          {
+            value: "资中县",
+            label: "资中县",
+          },
+          {
+            value: "隆昌县",
+            label: "隆昌县",
+          },
+        ],
+        value: "内江市",
+        label: "内江市",
+      },
+      {
+        children: [
+          {
+            value: "市中区",
+            label: "市中区",
+          },
+          {
+            value: "沙湾区",
+            label: "沙湾区",
+          },
+          {
+            value: "五通桥区",
+            label: "五通桥区",
+          },
+          {
+            value: "金口河区",
+            label: "金口河区",
+          },
+          {
+            value: "犍为县",
+            label: "犍为县",
+          },
+          {
+            value: "井研县",
+            label: "井研县",
+          },
+          {
+            value: "夹江县",
+            label: "夹江县",
+          },
+          {
+            value: "沐川县",
+            label: "沐川县",
+          },
+          {
+            value: "峨边彝族自治县",
+            label: "峨边彝族自治县",
+          },
+          {
+            value: "马边彝族自治县",
+            label: "马边彝族自治县",
+          },
+          {
+            value: "峨眉山市",
+            label: "峨眉山市",
+          },
+        ],
+        value: "乐山市",
+        label: "乐山市",
+      },
+      {
+        children: [
+          {
+            value: "顺庆区",
+            label: "顺庆区",
+          },
+          {
+            value: "高坪区",
+            label: "高坪区",
+          },
+          {
+            value: "嘉陵区",
+            label: "嘉陵区",
+          },
+          {
+            value: "南部县",
+            label: "南部县",
+          },
+          {
+            value: "营山县",
+            label: "营山县",
+          },
+          {
+            value: "蓬安县",
+            label: "蓬安县",
+          },
+          {
+            value: "仪陇县",
+            label: "仪陇县",
+          },
+          {
+            value: "西充县",
+            label: "西充县",
+          },
+          {
+            value: "阆中市",
+            label: "阆中市",
+          },
+        ],
+        value: "南充市",
+        label: "南充市",
+      },
+      {
+        children: [
+          {
+            value: "东坡区",
+            label: "东坡区",
+          },
+          {
+            value: "彭山区",
+            label: "彭山区",
+          },
+          {
+            value: "仁寿县",
+            label: "仁寿县",
+          },
+          {
+            value: "洪雅县",
+            label: "洪雅县",
+          },
+          {
+            value: "丹棱县",
+            label: "丹棱县",
+          },
+          {
+            value: "青神县",
+            label: "青神县",
+          },
+        ],
+        value: "眉山市",
+        label: "眉山市",
+      },
+      {
+        children: [
+          {
+            value: "翠屏区",
+            label: "翠屏区",
+          },
+          {
+            value: "南溪区",
+            label: "南溪区",
+          },
+          {
+            value: "宜宾县",
+            label: "宜宾县",
+          },
+          {
+            value: "江安县",
+            label: "江安县",
+          },
+          {
+            value: "长宁县",
+            label: "长宁县",
+          },
+          {
+            value: "高县",
+            label: "高县",
+          },
+          {
+            value: "珙县",
+            label: "珙县",
+          },
+          {
+            value: "筠连县",
+            label: "筠连县",
+          },
+          {
+            value: "兴文县",
+            label: "兴文县",
+          },
+          {
+            value: "屏山县",
+            label: "屏山县",
+          },
+        ],
+        value: "宜宾市",
+        label: "宜宾市",
+      },
+      {
+        children: [
+          {
+            value: "广安区",
+            label: "广安区",
+          },
+          {
+            value: "前锋区",
+            label: "前锋区",
+          },
+          {
+            value: "岳池县",
+            label: "岳池县",
+          },
+          {
+            value: "武胜县",
+            label: "武胜县",
+          },
+          {
+            value: "邻水县",
+            label: "邻水县",
+          },
+          {
+            value: "华蓥市",
+            label: "华蓥市",
+          },
+        ],
+        value: "广安市",
+        label: "广安市",
+      },
+      {
+        children: [
+          {
+            value: "通川区",
+            label: "通川区",
+          },
+          {
+            value: "达川区",
+            label: "达川区",
+          },
+          {
+            value: "宣汉县",
+            label: "宣汉县",
+          },
+          {
+            value: "开江县",
+            label: "开江县",
+          },
+          {
+            value: "大竹县",
+            label: "大竹县",
+          },
+          {
+            value: "渠县",
+            label: "渠县",
+          },
+          {
+            value: "万源市",
+            label: "万源市",
+          },
+        ],
+        value: "达州市",
+        label: "达州市",
+      },
+      {
+        children: [
+          {
+            value: "雨城区",
+            label: "雨城区",
+          },
+          {
+            value: "名山区",
+            label: "名山区",
+          },
+          {
+            value: "荥经县",
+            label: "荥经县",
+          },
+          {
+            value: "汉源县",
+            label: "汉源县",
+          },
+          {
+            value: "石棉县",
+            label: "石棉县",
+          },
+          {
+            value: "天全县",
+            label: "天全县",
+          },
+          {
+            value: "芦山县",
+            label: "芦山县",
+          },
+          {
+            value: "宝兴县",
+            label: "宝兴县",
+          },
+        ],
+        value: "雅安市",
+        label: "雅安市",
+      },
+      {
+        children: [
+          {
+            value: "巴州区",
+            label: "巴州区",
+          },
+          {
+            value: "恩阳区",
+            label: "恩阳区",
+          },
+          {
+            value: "通江县",
+            label: "通江县",
+          },
+          {
+            value: "南江县",
+            label: "南江县",
+          },
+          {
+            value: "平昌县",
+            label: "平昌县",
+          },
+        ],
+        value: "巴中市",
+        label: "巴中市",
+      },
+      {
+        children: [
+          {
+            value: "雁江区",
+            label: "雁江区",
+          },
+          {
+            value: "安岳县",
+            label: "安岳县",
+          },
+          {
+            value: "乐至县",
+            label: "乐至县",
+          },
+        ],
+        value: "资阳市",
+        label: "资阳市",
+      },
+      {
+        children: [
+          {
+            value: "马尔康市",
+            label: "马尔康市",
+          },
+          {
+            value: "汶川县",
+            label: "汶川县",
+          },
+          {
+            value: "理县",
+            label: "理县",
+          },
+          {
+            value: "茂县",
+            label: "茂县",
+          },
+          {
+            value: "松潘县",
+            label: "松潘县",
+          },
+          {
+            value: "九寨沟县",
+            label: "九寨沟县",
+          },
+          {
+            value: "金川县",
+            label: "金川县",
+          },
+          {
+            value: "小金县",
+            label: "小金县",
+          },
+          {
+            value: "黑水县",
+            label: "黑水县",
+          },
+          {
+            value: "壤塘县",
+            label: "壤塘县",
+          },
+          {
+            value: "阿坝县",
+            label: "阿坝县",
+          },
+          {
+            value: "若尔盖县",
+            label: "若尔盖县",
+          },
+          {
+            value: "红原县",
+            label: "红原县",
+          },
+        ],
+        value: "阿坝藏族羌族自治州",
+        label: "阿坝藏族羌族自治州",
+      },
+      {
+        children: [
+          {
+            value: "康定市",
+            label: "康定市",
+          },
+          {
+            value: "泸定县",
+            label: "泸定县",
+          },
+          {
+            value: "丹巴县",
+            label: "丹巴县",
+          },
+          {
+            value: "九龙县",
+            label: "九龙县",
+          },
+          {
+            value: "雅江县",
+            label: "雅江县",
+          },
+          {
+            value: "道孚县",
+            label: "道孚县",
+          },
+          {
+            value: "炉霍县",
+            label: "炉霍县",
+          },
+          {
+            value: "甘孜县",
+            label: "甘孜县",
+          },
+          {
+            value: "新龙县",
+            label: "新龙县",
+          },
+          {
+            value: "德格县",
+            label: "德格县",
+          },
+          {
+            value: "白玉县",
+            label: "白玉县",
+          },
+          {
+            value: "石渠县",
+            label: "石渠县",
+          },
+          {
+            value: "色达县",
+            label: "色达县",
+          },
+          {
+            value: "理塘县",
+            label: "理塘县",
+          },
+          {
+            value: "巴塘县",
+            label: "巴塘县",
+          },
+          {
+            value: "乡城县",
+            label: "乡城县",
+          },
+          {
+            value: "稻城县",
+            label: "稻城县",
+          },
+          {
+            value: "得荣县",
+            label: "得荣县",
+          },
+        ],
+        value: "甘孜藏族自治州",
+        label: "甘孜藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "西昌市",
+            label: "西昌市",
+          },
+          {
+            value: "木里藏族自治县",
+            label: "木里藏族自治县",
+          },
+          {
+            value: "盐源县",
+            label: "盐源县",
+          },
+          {
+            value: "德昌县",
+            label: "德昌县",
+          },
+          {
+            value: "会理县",
+            label: "会理县",
+          },
+          {
+            value: "会东县",
+            label: "会东县",
+          },
+          {
+            value: "宁南县",
+            label: "宁南县",
+          },
+          {
+            value: "普格县",
+            label: "普格县",
+          },
+          {
+            value: "布拖县",
+            label: "布拖县",
+          },
+          {
+            value: "金阳县",
+            label: "金阳县",
+          },
+          {
+            value: "昭觉县",
+            label: "昭觉县",
+          },
+          {
+            value: "喜德县",
+            label: "喜德县",
+          },
+          {
+            value: "冕宁县",
+            label: "冕宁县",
+          },
+          {
+            value: "越西县",
+            label: "越西县",
+          },
+          {
+            value: "甘洛县",
+            label: "甘洛县",
+          },
+          {
+            value: "美姑县",
+            label: "美姑县",
+          },
+          {
+            value: "雷波县",
+            label: "雷波县",
+          },
+        ],
+        value: "凉山彝族自治州",
+        label: "凉山彝族自治州",
+      },
+    ],
+    value: "四川省",
+    label: "四川省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "南明区",
+            label: "南明区",
+          },
+          {
+            value: "云岩区",
+            label: "云岩区",
+          },
+          {
+            value: "花溪区",
+            label: "花溪区",
+          },
+          {
+            value: "乌当区",
+            label: "乌当区",
+          },
+          {
+            value: "白云区",
+            label: "白云区",
+          },
+          {
+            value: "观山湖区",
+            label: "观山湖区",
+          },
+          {
+            value: "开阳县",
+            label: "开阳县",
+          },
+          {
+            value: "息烽县",
+            label: "息烽县",
+          },
+          {
+            value: "修文县",
+            label: "修文县",
+          },
+          {
+            value: "清镇市",
+            label: "清镇市",
+          },
+        ],
+        value: "贵阳市",
+        label: "贵阳市",
+      },
+      {
+        children: [
+          {
+            value: "钟山区",
+            label: "钟山区",
+          },
+          {
+            value: "六枝特区",
+            label: "六枝特区",
+          },
+          {
+            value: "水城县",
+            label: "水城县",
+          },
+          {
+            value: "盘县",
+            label: "盘县",
+          },
+        ],
+        value: "六盘水市",
+        label: "六盘水市",
+      },
+      {
+        children: [
+          {
+            value: "红花岗区",
+            label: "红花岗区",
+          },
+          {
+            value: "汇川区",
+            label: "汇川区",
+          },
+          {
+            value: "播州区",
+            label: "播州区",
+          },
+          {
+            value: "桐梓县",
+            label: "桐梓县",
+          },
+          {
+            value: "绥阳县",
+            label: "绥阳县",
+          },
+          {
+            value: "正安县",
+            label: "正安县",
+          },
+          {
+            value: "道真仡佬族苗族自治县",
+            label: "道真仡佬族苗族自治县",
+          },
+          {
+            value: "务川仡佬族苗族自治县",
+            label: "务川仡佬族苗族自治县",
+          },
+          {
+            value: "凤冈县",
+            label: "凤冈县",
+          },
+          {
+            value: "湄潭县",
+            label: "湄潭县",
+          },
+          {
+            value: "余庆县",
+            label: "余庆县",
+          },
+          {
+            value: "习水县",
+            label: "习水县",
+          },
+          {
+            value: "赤水市",
+            label: "赤水市",
+          },
+          {
+            value: "仁怀市",
+            label: "仁怀市",
+          },
+        ],
+        value: "遵义市",
+        label: "遵义市",
+      },
+      {
+        children: [
+          {
+            value: "西秀区",
+            label: "西秀区",
+          },
+          {
+            value: "平坝区",
+            label: "平坝区",
+          },
+          {
+            value: "普定县",
+            label: "普定县",
+          },
+          {
+            value: "镇宁布依族苗族自治县",
+            label: "镇宁布依族苗族自治县",
+          },
+          {
+            value: "关岭布依族苗族自治县",
+            label: "关岭布依族苗族自治县",
+          },
+          {
+            value: "紫云苗族布依族自治县",
+            label: "紫云苗族布依族自治县",
+          },
+        ],
+        value: "安顺市",
+        label: "安顺市",
+      },
+      {
+        children: [
+          {
+            value: "七星关区",
+            label: "七星关区",
+          },
+          {
+            value: "大方县",
+            label: "大方县",
+          },
+          {
+            value: "黔西县",
+            label: "黔西县",
+          },
+          {
+            value: "金沙县",
+            label: "金沙县",
+          },
+          {
+            value: "织金县",
+            label: "织金县",
+          },
+          {
+            value: "纳雍县",
+            label: "纳雍县",
+          },
+          {
+            value: "威宁彝族回族苗族自治县",
+            label: "威宁彝族回族苗族自治县",
+          },
+          {
+            value: "赫章县",
+            label: "赫章县",
+          },
+        ],
+        value: "毕节市",
+        label: "毕节市",
+      },
+      {
+        children: [
+          {
+            value: "碧江区",
+            label: "碧江区",
+          },
+          {
+            value: "万山区",
+            label: "万山区",
+          },
+          {
+            value: "江口县",
+            label: "江口县",
+          },
+          {
+            value: "玉屏侗族自治县",
+            label: "玉屏侗族自治县",
+          },
+          {
+            value: "石阡县",
+            label: "石阡县",
+          },
+          {
+            value: "思南县",
+            label: "思南县",
+          },
+          {
+            value: "印江土家族苗族自治县",
+            label: "印江土家族苗族自治县",
+          },
+          {
+            value: "德江县",
+            label: "德江县",
+          },
+          {
+            value: "沿河土家族自治县",
+            label: "沿河土家族自治县",
+          },
+          {
+            value: "松桃苗族自治县",
+            label: "松桃苗族自治县",
+          },
+        ],
+        value: "铜仁市",
+        label: "铜仁市",
+      },
+      {
+        children: [
+          {
+            value: "兴义市",
+            label: "兴义市",
+          },
+          {
+            value: "兴仁县",
+            label: "兴仁县",
+          },
+          {
+            value: "普安县",
+            label: "普安县",
+          },
+          {
+            value: "晴隆县",
+            label: "晴隆县",
+          },
+          {
+            value: "贞丰县",
+            label: "贞丰县",
+          },
+          {
+            value: "望谟县",
+            label: "望谟县",
+          },
+          {
+            value: "册亨县",
+            label: "册亨县",
+          },
+          {
+            value: "安龙县",
+            label: "安龙县",
+          },
+        ],
+        value: "黔西南布依族苗族自治州",
+        label: "黔西南布依族苗族自治州",
+      },
+      {
+        children: [
+          {
+            value: "凯里市",
+            label: "凯里市",
+          },
+          {
+            value: "黄平县",
+            label: "黄平县",
+          },
+          {
+            value: "施秉县",
+            label: "施秉县",
+          },
+          {
+            value: "三穗县",
+            label: "三穗县",
+          },
+          {
+            value: "镇远县",
+            label: "镇远县",
+          },
+          {
+            value: "岑巩县",
+            label: "岑巩县",
+          },
+          {
+            value: "天柱县",
+            label: "天柱县",
+          },
+          {
+            value: "锦屏县",
+            label: "锦屏县",
+          },
+          {
+            value: "剑河县",
+            label: "剑河县",
+          },
+          {
+            value: "台江县",
+            label: "台江县",
+          },
+          {
+            value: "黎平县",
+            label: "黎平县",
+          },
+          {
+            value: "榕江县",
+            label: "榕江县",
+          },
+          {
+            value: "从江县",
+            label: "从江县",
+          },
+          {
+            value: "雷山县",
+            label: "雷山县",
+          },
+          {
+            value: "麻江县",
+            label: "麻江县",
+          },
+          {
+            value: "丹寨县",
+            label: "丹寨县",
+          },
+        ],
+        value: "黔东南苗族侗族自治州",
+        label: "黔东南苗族侗族自治州",
+      },
+      {
+        children: [
+          {
+            value: "都匀市",
+            label: "都匀市",
+          },
+          {
+            value: "福泉市",
+            label: "福泉市",
+          },
+          {
+            value: "荔波县",
+            label: "荔波县",
+          },
+          {
+            value: "贵定县",
+            label: "贵定县",
+          },
+          {
+            value: "瓮安县",
+            label: "瓮安县",
+          },
+          {
+            value: "独山县",
+            label: "独山县",
+          },
+          {
+            value: "平塘县",
+            label: "平塘县",
+          },
+          {
+            value: "罗甸县",
+            label: "罗甸县",
+          },
+          {
+            value: "长顺县",
+            label: "长顺县",
+          },
+          {
+            value: "龙里县",
+            label: "龙里县",
+          },
+          {
+            value: "惠水县",
+            label: "惠水县",
+          },
+          {
+            value: "三都水族自治县",
+            label: "三都水族自治县",
+          },
+        ],
+        value: "黔南布依族苗族自治州",
+        label: "黔南布依族苗族自治州",
+      },
+    ],
+    value: "贵州省",
+    label: "贵州省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "五华区",
+            label: "五华区",
+          },
+          {
+            value: "盘龙区",
+            label: "盘龙区",
+          },
+          {
+            value: "官渡区",
+            label: "官渡区",
+          },
+          {
+            value: "西山区",
+            label: "西山区",
+          },
+          {
+            value: "东川区",
+            label: "东川区",
+          },
+          {
+            value: "呈贡区",
+            label: "呈贡区",
+          },
+          {
+            value: "晋宁县",
+            label: "晋宁县",
+          },
+          {
+            value: "富民县",
+            label: "富民县",
+          },
+          {
+            value: "宜良县",
+            label: "宜良县",
+          },
+          {
+            value: "石林彝族自治县",
+            label: "石林彝族自治县",
+          },
+          {
+            value: "嵩明县",
+            label: "嵩明县",
+          },
+          {
+            value: "禄劝彝族苗族自治县",
+            label: "禄劝彝族苗族自治县",
+          },
+          {
+            value: "寻甸回族彝族自治县",
+            label: "寻甸回族彝族自治县",
+          },
+          {
+            value: "安宁市",
+            label: "安宁市",
+          },
+        ],
+        value: "昆明市",
+        label: "昆明市",
+      },
+      {
+        children: [
+          {
+            value: "麒麟区",
+            label: "麒麟区",
+          },
+          {
+            value: "沾益区",
+            label: "沾益区",
+          },
+          {
+            value: "马龙县",
+            label: "马龙县",
+          },
+          {
+            value: "陆良县",
+            label: "陆良县",
+          },
+          {
+            value: "师宗县",
+            label: "师宗县",
+          },
+          {
+            value: "罗平县",
+            label: "罗平县",
+          },
+          {
+            value: "富源县",
+            label: "富源县",
+          },
+          {
+            value: "会泽县",
+            label: "会泽县",
+          },
+          {
+            value: "宣威市",
+            label: "宣威市",
+          },
+        ],
+        value: "曲靖市",
+        label: "曲靖市",
+      },
+      {
+        children: [
+          {
+            value: "红塔区",
+            label: "红塔区",
+          },
+          {
+            value: "江川区",
+            label: "江川区",
+          },
+          {
+            value: "澄江县",
+            label: "澄江县",
+          },
+          {
+            value: "通海县",
+            label: "通海县",
+          },
+          {
+            value: "华宁县",
+            label: "华宁县",
+          },
+          {
+            value: "易门县",
+            label: "易门县",
+          },
+          {
+            value: "峨山彝族自治县",
+            label: "峨山彝族自治县",
+          },
+          {
+            value: "新平彝族傣族自治县",
+            label: "新平彝族傣族自治县",
+          },
+          {
+            value: "元江哈尼族彝族傣族自治县",
+            label: "元江哈尼族彝族傣族自治县",
+          },
+        ],
+        value: "玉溪市",
+        label: "玉溪市",
+      },
+      {
+        children: [
+          {
+            value: "隆阳区",
+            label: "隆阳区",
+          },
+          {
+            value: "施甸县",
+            label: "施甸县",
+          },
+          {
+            value: "龙陵县",
+            label: "龙陵县",
+          },
+          {
+            value: "昌宁县",
+            label: "昌宁县",
+          },
+          {
+            value: "腾冲市",
+            label: "腾冲市",
+          },
+        ],
+        value: "保山市",
+        label: "保山市",
+      },
+      {
+        children: [
+          {
+            value: "昭阳区",
+            label: "昭阳区",
+          },
+          {
+            value: "鲁甸县",
+            label: "鲁甸县",
+          },
+          {
+            value: "巧家县",
+            label: "巧家县",
+          },
+          {
+            value: "盐津县",
+            label: "盐津县",
+          },
+          {
+            value: "大关县",
+            label: "大关县",
+          },
+          {
+            value: "永善县",
+            label: "永善县",
+          },
+          {
+            value: "绥江县",
+            label: "绥江县",
+          },
+          {
+            value: "镇雄县",
+            label: "镇雄县",
+          },
+          {
+            value: "彝良县",
+            label: "彝良县",
+          },
+          {
+            value: "威信县",
+            label: "威信县",
+          },
+          {
+            value: "水富县",
+            label: "水富县",
+          },
+        ],
+        value: "昭通市",
+        label: "昭通市",
+      },
+      {
+        children: [
+          {
+            value: "古城区",
+            label: "古城区",
+          },
+          {
+            value: "玉龙纳西族自治县",
+            label: "玉龙纳西族自治县",
+          },
+          {
+            value: "永胜县",
+            label: "永胜县",
+          },
+          {
+            value: "华坪县",
+            label: "华坪县",
+          },
+          {
+            value: "宁蒗彝族自治县",
+            label: "宁蒗彝族自治县",
+          },
+        ],
+        value: "丽江市",
+        label: "丽江市",
+      },
+      {
+        children: [
+          {
+            value: "思茅区",
+            label: "思茅区",
+          },
+          {
+            value: "宁洱哈尼族彝族自治县",
+            label: "宁洱哈尼族彝族自治县",
+          },
+          {
+            value: "墨江哈尼族自治县",
+            label: "墨江哈尼族自治县",
+          },
+          {
+            value: "景东彝族自治县",
+            label: "景东彝族自治县",
+          },
+          {
+            value: "景谷傣族彝族自治县",
+            label: "景谷傣族彝族自治县",
+          },
+          {
+            value: "镇沅彝族哈尼族拉祜族自治县",
+            label: "镇沅彝族哈尼族拉祜族自治县",
+          },
+          {
+            value: "江城哈尼族彝族自治县",
+            label: "江城哈尼族彝族自治县",
+          },
+          {
+            value: "孟连傣族拉祜族佤族自治县",
+            label: "孟连傣族拉祜族佤族自治县",
+          },
+          {
+            value: "澜沧拉祜族自治县",
+            label: "澜沧拉祜族自治县",
+          },
+          {
+            value: "西盟佤族自治县",
+            label: "西盟佤族自治县",
+          },
+        ],
+        value: "普洱市",
+        label: "普洱市",
+      },
+      {
+        children: [
+          {
+            value: "临翔区",
+            label: "临翔区",
+          },
+          {
+            value: "凤庆县",
+            label: "凤庆县",
+          },
+          {
+            value: "云县",
+            label: "云县",
+          },
+          {
+            value: "永德县",
+            label: "永德县",
+          },
+          {
+            value: "镇康县",
+            label: "镇康县",
+          },
+          {
+            value: "双江拉祜族佤族布朗族傣族自治县",
+            label: "双江拉祜族佤族布朗族傣族自治县",
+          },
+          {
+            value: "耿马傣族佤族自治县",
+            label: "耿马傣族佤族自治县",
+          },
+          {
+            value: "沧源佤族自治县",
+            label: "沧源佤族自治县",
+          },
+        ],
+        value: "临沧市",
+        label: "临沧市",
+      },
+      {
+        children: [
+          {
+            value: "楚雄市",
+            label: "楚雄市",
+          },
+          {
+            value: "双柏县",
+            label: "双柏县",
+          },
+          {
+            value: "牟定县",
+            label: "牟定县",
+          },
+          {
+            value: "南华县",
+            label: "南华县",
+          },
+          {
+            value: "姚安县",
+            label: "姚安县",
+          },
+          {
+            value: "大姚县",
+            label: "大姚县",
+          },
+          {
+            value: "永仁县",
+            label: "永仁县",
+          },
+          {
+            value: "元谋县",
+            label: "元谋县",
+          },
+          {
+            value: "武定县",
+            label: "武定县",
+          },
+          {
+            value: "禄丰县",
+            label: "禄丰县",
+          },
+        ],
+        value: "楚雄彝族自治州",
+        label: "楚雄彝族自治州",
+      },
+      {
+        children: [
+          {
+            value: "个旧市",
+            label: "个旧市",
+          },
+          {
+            value: "开远市",
+            label: "开远市",
+          },
+          {
+            value: "蒙自市",
+            label: "蒙自市",
+          },
+          {
+            value: "弥勒市",
+            label: "弥勒市",
+          },
+          {
+            value: "屏边苗族自治县",
+            label: "屏边苗族自治县",
+          },
+          {
+            value: "建水县",
+            label: "建水县",
+          },
+          {
+            value: "石屏县",
+            label: "石屏县",
+          },
+          {
+            value: "泸西县",
+            label: "泸西县",
+          },
+          {
+            value: "元阳县",
+            label: "元阳县",
+          },
+          {
+            value: "红河县",
+            label: "红河县",
+          },
+          {
+            value: "金平苗族瑶族傣族自治县",
+            label: "金平苗族瑶族傣族自治县",
+          },
+          {
+            value: "绿春县",
+            label: "绿春县",
+          },
+          {
+            value: "河口瑶族自治县",
+            label: "河口瑶族自治县",
+          },
+        ],
+        value: "红河哈尼族彝族自治州",
+        label: "红河哈尼族彝族自治州",
+      },
+      {
+        children: [
+          {
+            value: "文山市",
+            label: "文山市",
+          },
+          {
+            value: "砚山县",
+            label: "砚山县",
+          },
+          {
+            value: "西畴县",
+            label: "西畴县",
+          },
+          {
+            value: "麻栗坡县",
+            label: "麻栗坡县",
+          },
+          {
+            value: "马关县",
+            label: "马关县",
+          },
+          {
+            value: "丘北县",
+            label: "丘北县",
+          },
+          {
+            value: "广南县",
+            label: "广南县",
+          },
+          {
+            value: "富宁县",
+            label: "富宁县",
+          },
+        ],
+        value: "文山壮族苗族自治州",
+        label: "文山壮族苗族自治州",
+      },
+      {
+        children: [
+          {
+            value: "景洪市",
+            label: "景洪市",
+          },
+          {
+            value: "勐海县",
+            label: "勐海县",
+          },
+          {
+            value: "勐腊县",
+            label: "勐腊县",
+          },
+        ],
+        value: "西双版纳傣族自治州",
+        label: "西双版纳傣族自治州",
+      },
+      {
+        children: [
+          {
+            value: "大理市",
+            label: "大理市",
+          },
+          {
+            value: "漾濞彝族自治县",
+            label: "漾濞彝族自治县",
+          },
+          {
+            value: "祥云县",
+            label: "祥云县",
+          },
+          {
+            value: "宾川县",
+            label: "宾川县",
+          },
+          {
+            value: "弥渡县",
+            label: "弥渡县",
+          },
+          {
+            value: "南涧彝族自治县",
+            label: "南涧彝族自治县",
+          },
+          {
+            value: "巍山彝族回族自治县",
+            label: "巍山彝族回族自治县",
+          },
+          {
+            value: "永平县",
+            label: "永平县",
+          },
+          {
+            value: "云龙县",
+            label: "云龙县",
+          },
+          {
+            value: "洱源县",
+            label: "洱源县",
+          },
+          {
+            value: "剑川县",
+            label: "剑川县",
+          },
+          {
+            value: "鹤庆县",
+            label: "鹤庆县",
+          },
+        ],
+        value: "大理白族自治州",
+        label: "大理白族自治州",
+      },
+      {
+        children: [
+          {
+            value: "瑞丽市",
+            label: "瑞丽市",
+          },
+          {
+            value: "芒市",
+            label: "芒市",
+          },
+          {
+            value: "梁河县",
+            label: "梁河县",
+          },
+          {
+            value: "盈江县",
+            label: "盈江县",
+          },
+          {
+            value: "陇川县",
+            label: "陇川县",
+          },
+        ],
+        value: "德宏傣族景颇族自治州",
+        label: "德宏傣族景颇族自治州",
+      },
+      {
+        children: [
+          {
+            value: "泸水市",
+            label: "泸水市",
+          },
+          {
+            value: "福贡县",
+            label: "福贡县",
+          },
+          {
+            value: "贡山独龙族怒族自治县",
+            label: "贡山独龙族怒族自治县",
+          },
+          {
+            value: "兰坪白族普米族自治县",
+            label: "兰坪白族普米族自治县",
+          },
+        ],
+        value: "怒江傈僳族自治州",
+        label: "怒江傈僳族自治州",
+      },
+      {
+        children: [
+          {
+            value: "香格里拉市",
+            label: "香格里拉市",
+          },
+          {
+            value: "德钦县",
+            label: "德钦县",
+          },
+          {
+            value: "维西傈僳族自治县",
+            label: "维西傈僳族自治县",
+          },
+        ],
+        value: "迪庆藏族自治州",
+        label: "迪庆藏族自治州",
+      },
+    ],
+    value: "云南省",
+    label: "云南省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "城关区",
+            label: "城关区",
+          },
+          {
+            value: "堆龙德庆区",
+            label: "堆龙德庆区",
+          },
+          {
+            value: "林周县",
+            label: "林周县",
+          },
+          {
+            value: "当雄县",
+            label: "当雄县",
+          },
+          {
+            value: "尼木县",
+            label: "尼木县",
+          },
+          {
+            value: "曲水县",
+            label: "曲水县",
+          },
+          {
+            value: "达孜县",
+            label: "达孜县",
+          },
+          {
+            value: "墨竹工卡县",
+            label: "墨竹工卡县",
+          },
+        ],
+        value: "拉萨市",
+        label: "拉萨市",
+      },
+      {
+        children: [
+          {
+            value: "桑珠孜区",
+            label: "桑珠孜区",
+          },
+          {
+            value: "南木林县",
+            label: "南木林县",
+          },
+          {
+            value: "江孜县",
+            label: "江孜县",
+          },
+          {
+            value: "定日县",
+            label: "定日县",
+          },
+          {
+            value: "萨迦县",
+            label: "萨迦县",
+          },
+          {
+            value: "拉孜县",
+            label: "拉孜县",
+          },
+          {
+            value: "昂仁县",
+            label: "昂仁县",
+          },
+          {
+            value: "谢通门县",
+            label: "谢通门县",
+          },
+          {
+            value: "白朗县",
+            label: "白朗县",
+          },
+          {
+            value: "仁布县",
+            label: "仁布县",
+          },
+          {
+            value: "康马县",
+            label: "康马县",
+          },
+          {
+            value: "定结县",
+            label: "定结县",
+          },
+          {
+            value: "仲巴县",
+            label: "仲巴县",
+          },
+          {
+            value: "亚东县",
+            label: "亚东县",
+          },
+          {
+            value: "吉隆县",
+            label: "吉隆县",
+          },
+          {
+            value: "聂拉木县",
+            label: "聂拉木县",
+          },
+          {
+            value: "萨嘎县",
+            label: "萨嘎县",
+          },
+          {
+            value: "岗巴县",
+            label: "岗巴县",
+          },
+        ],
+        value: "日喀则市",
+        label: "日喀则市",
+      },
+      {
+        children: [
+          {
+            value: "卡若区",
+            label: "卡若区",
+          },
+          {
+            value: "江达县",
+            label: "江达县",
+          },
+          {
+            value: "贡觉县",
+            label: "贡觉县",
+          },
+          {
+            value: "类乌齐县",
+            label: "类乌齐县",
+          },
+          {
+            value: "丁青县",
+            label: "丁青县",
+          },
+          {
+            value: "察雅县",
+            label: "察雅县",
+          },
+          {
+            value: "八宿县",
+            label: "八宿县",
+          },
+          {
+            value: "左贡县",
+            label: "左贡县",
+          },
+          {
+            value: "芒康县",
+            label: "芒康县",
+          },
+          {
+            value: "洛隆县",
+            label: "洛隆县",
+          },
+          {
+            value: "边坝县",
+            label: "边坝县",
+          },
+        ],
+        value: "昌都市",
+        label: "昌都市",
+      },
+      {
+        children: [
+          {
+            value: "巴宜区",
+            label: "巴宜区",
+          },
+          {
+            value: "工布江达县",
+            label: "工布江达县",
+          },
+          {
+            value: "米林县",
+            label: "米林县",
+          },
+          {
+            value: "墨脱县",
+            label: "墨脱县",
+          },
+          {
+            value: "波密县",
+            label: "波密县",
+          },
+          {
+            value: "察隅县",
+            label: "察隅县",
+          },
+          {
+            value: "朗县",
+            label: "朗县",
+          },
+        ],
+        value: "林芝市",
+        label: "林芝市",
+      },
+      {
+        children: [
+          {
+            value: "乃东区",
+            label: "乃东区",
+          },
+          {
+            value: "扎囊县",
+            label: "扎囊县",
+          },
+          {
+            value: "贡嘎县",
+            label: "贡嘎县",
+          },
+          {
+            value: "桑日县",
+            label: "桑日县",
+          },
+          {
+            value: "琼结县",
+            label: "琼结县",
+          },
+          {
+            value: "曲松县",
+            label: "曲松县",
+          },
+          {
+            value: "措美县",
+            label: "措美县",
+          },
+          {
+            value: "洛扎县",
+            label: "洛扎县",
+          },
+          {
+            value: "加查县",
+            label: "加查县",
+          },
+          {
+            value: "隆子县",
+            label: "隆子县",
+          },
+          {
+            value: "错那县",
+            label: "错那县",
+          },
+          {
+            value: "浪卡子县",
+            label: "浪卡子县",
+          },
+        ],
+        value: "山南市",
+        label: "山南市",
+      },
+      {
+        children: [
+          {
+            value: "那曲县",
+            label: "那曲县",
+          },
+          {
+            value: "嘉黎县",
+            label: "嘉黎县",
+          },
+          {
+            value: "比如县",
+            label: "比如县",
+          },
+          {
+            value: "聂荣县",
+            label: "聂荣县",
+          },
+          {
+            value: "安多县",
+            label: "安多县",
+          },
+          {
+            value: "申扎县",
+            label: "申扎县",
+          },
+          {
+            value: "索县",
+            label: "索县",
+          },
+          {
+            value: "班戈县",
+            label: "班戈县",
+          },
+          {
+            value: "巴青县",
+            label: "巴青县",
+          },
+          {
+            value: "尼玛县",
+            label: "尼玛县",
+          },
+          {
+            value: "双湖县",
+            label: "双湖县",
+          },
+        ],
+        value: "那曲地区",
+        label: "那曲地区",
+      },
+      {
+        children: [
+          {
+            value: "普兰县",
+            label: "普兰县",
+          },
+          {
+            value: "札达县",
+            label: "札达县",
+          },
+          {
+            value: "噶尔县",
+            label: "噶尔县",
+          },
+          {
+            value: "日土县",
+            label: "日土县",
+          },
+          {
+            value: "革吉县",
+            label: "革吉县",
+          },
+          {
+            value: "改则县",
+            label: "改则县",
+          },
+          {
+            value: "措勤县",
+            label: "措勤县",
+          },
+        ],
+        value: "阿里地区",
+        label: "阿里地区",
+      },
+    ],
+    value: "西藏自治区",
+    label: "西藏自治区",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "新城区",
+            label: "新城区",
+          },
+          {
+            value: "碑林区",
+            label: "碑林区",
+          },
+          {
+            value: "莲湖区",
+            label: "莲湖区",
+          },
+          {
+            value: "灞桥区",
+            label: "灞桥区",
+          },
+          {
+            value: "未央区",
+            label: "未央区",
+          },
+          {
+            value: "雁塔区",
+            label: "雁塔区",
+          },
+          {
+            value: "阎良区",
+            label: "阎良区",
+          },
+          {
+            value: "临潼区",
+            label: "临潼区",
+          },
+          {
+            value: "长安区",
+            label: "长安区",
+          },
+          {
+            value: "高陵区",
+            label: "高陵区",
+          },
+          {
+            value: "蓝田县",
+            label: "蓝田县",
+          },
+          {
+            value: "周至县",
+            label: "周至县",
+          },
+          {
+            value: "户县",
+            label: "户县",
+          },
+        ],
+        value: "西安市",
+        label: "西安市",
+      },
+      {
+        children: [
+          {
+            value: "王益区",
+            label: "王益区",
+          },
+          {
+            value: "印台区",
+            label: "印台区",
+          },
+          {
+            value: "耀州区",
+            label: "耀州区",
+          },
+          {
+            value: "宜君县",
+            label: "宜君县",
+          },
+        ],
+        value: "铜川市",
+        label: "铜川市",
+      },
+      {
+        children: [
+          {
+            value: "渭滨区",
+            label: "渭滨区",
+          },
+          {
+            value: "金台区",
+            label: "金台区",
+          },
+          {
+            value: "陈仓区",
+            label: "陈仓区",
+          },
+          {
+            value: "凤翔县",
+            label: "凤翔县",
+          },
+          {
+            value: "岐山县",
+            label: "岐山县",
+          },
+          {
+            value: "扶风县",
+            label: "扶风县",
+          },
+          {
+            value: "眉县",
+            label: "眉县",
+          },
+          {
+            value: "陇县",
+            label: "陇县",
+          },
+          {
+            value: "千阳县",
+            label: "千阳县",
+          },
+          {
+            value: "麟游县",
+            label: "麟游县",
+          },
+          {
+            value: "凤县",
+            label: "凤县",
+          },
+          {
+            value: "太白县",
+            label: "太白县",
+          },
+        ],
+        value: "宝鸡市",
+        label: "宝鸡市",
+      },
+      {
+        children: [
+          {
+            value: "秦都区",
+            label: "秦都区",
+          },
+          {
+            value: "杨陵区",
+            label: "杨陵区",
+          },
+          {
+            value: "渭城区",
+            label: "渭城区",
+          },
+          {
+            value: "三原县",
+            label: "三原县",
+          },
+          {
+            value: "泾阳县",
+            label: "泾阳县",
+          },
+          {
+            value: "乾县",
+            label: "乾县",
+          },
+          {
+            value: "礼泉县",
+            label: "礼泉县",
+          },
+          {
+            value: "永寿县",
+            label: "永寿县",
+          },
+          {
+            value: "彬县",
+            label: "彬县",
+          },
+          {
+            value: "长武县",
+            label: "长武县",
+          },
+          {
+            value: "旬邑县",
+            label: "旬邑县",
+          },
+          {
+            value: "淳化县",
+            label: "淳化县",
+          },
+          {
+            value: "武功县",
+            label: "武功县",
+          },
+          {
+            value: "兴平市",
+            label: "兴平市",
+          },
+        ],
+        value: "咸阳市",
+        label: "咸阳市",
+      },
+      {
+        children: [
+          {
+            value: "临渭区",
+            label: "临渭区",
+          },
+          {
+            value: "华州区",
+            label: "华州区",
+          },
+          {
+            value: "潼关县",
+            label: "潼关县",
+          },
+          {
+            value: "大荔县",
+            label: "大荔县",
+          },
+          {
+            value: "合阳县",
+            label: "合阳县",
+          },
+          {
+            value: "澄城县",
+            label: "澄城县",
+          },
+          {
+            value: "蒲城县",
+            label: "蒲城县",
+          },
+          {
+            value: "白水县",
+            label: "白水县",
+          },
+          {
+            value: "富平县",
+            label: "富平县",
+          },
+          {
+            value: "韩城市",
+            label: "韩城市",
+          },
+          {
+            value: "华阴市",
+            label: "华阴市",
+          },
+        ],
+        value: "渭南市",
+        label: "渭南市",
+      },
+      {
+        children: [
+          {
+            value: "宝塔区",
+            label: "宝塔区",
+          },
+          {
+            value: "安塞区",
+            label: "安塞区",
+          },
+          {
+            value: "延长县",
+            label: "延长县",
+          },
+          {
+            value: "延川县",
+            label: "延川县",
+          },
+          {
+            value: "子长县",
+            label: "子长县",
+          },
+          {
+            value: "志丹县",
+            label: "志丹县",
+          },
+          {
+            value: "吴起县",
+            label: "吴起县",
+          },
+          {
+            value: "甘泉县",
+            label: "甘泉县",
+          },
+          {
+            value: "富县",
+            label: "富县",
+          },
+          {
+            value: "洛川县",
+            label: "洛川县",
+          },
+          {
+            value: "宜川县",
+            label: "宜川县",
+          },
+          {
+            value: "黄龙县",
+            label: "黄龙县",
+          },
+          {
+            value: "黄陵县",
+            label: "黄陵县",
+          },
+        ],
+        value: "延安市",
+        label: "延安市",
+      },
+      {
+        children: [
+          {
+            value: "汉台区",
+            label: "汉台区",
+          },
+          {
+            value: "南郑县",
+            label: "南郑县",
+          },
+          {
+            value: "城固县",
+            label: "城固县",
+          },
+          {
+            value: "洋县",
+            label: "洋县",
+          },
+          {
+            value: "西乡县",
+            label: "西乡县",
+          },
+          {
+            value: "勉县",
+            label: "勉县",
+          },
+          {
+            value: "宁强县",
+            label: "宁强县",
+          },
+          {
+            value: "略阳县",
+            label: "略阳县",
+          },
+          {
+            value: "镇巴县",
+            label: "镇巴县",
+          },
+          {
+            value: "留坝县",
+            label: "留坝县",
+          },
+          {
+            value: "佛坪县",
+            label: "佛坪县",
+          },
+        ],
+        value: "汉中市",
+        label: "汉中市",
+      },
+      {
+        children: [
+          {
+            value: "榆阳区",
+            label: "榆阳区",
+          },
+          {
+            value: "横山区",
+            label: "横山区",
+          },
+          {
+            value: "神木县",
+            label: "神木县",
+          },
+          {
+            value: "府谷县",
+            label: "府谷县",
+          },
+          {
+            value: "靖边县",
+            label: "靖边县",
+          },
+          {
+            value: "定边县",
+            label: "定边县",
+          },
+          {
+            value: "绥德县",
+            label: "绥德县",
+          },
+          {
+            value: "米脂县",
+            label: "米脂县",
+          },
+          {
+            value: "佳县",
+            label: "佳县",
+          },
+          {
+            value: "吴堡县",
+            label: "吴堡县",
+          },
+          {
+            value: "清涧县",
+            label: "清涧县",
+          },
+          {
+            value: "子洲县",
+            label: "子洲县",
+          },
+        ],
+        value: "榆林市",
+        label: "榆林市",
+      },
+      {
+        children: [
+          {
+            value: "汉滨区",
+            label: "汉滨区",
+          },
+          {
+            value: "汉阴县",
+            label: "汉阴县",
+          },
+          {
+            value: "石泉县",
+            label: "石泉县",
+          },
+          {
+            value: "宁陕县",
+            label: "宁陕县",
+          },
+          {
+            value: "紫阳县",
+            label: "紫阳县",
+          },
+          {
+            value: "岚皋县",
+            label: "岚皋县",
+          },
+          {
+            value: "平利县",
+            label: "平利县",
+          },
+          {
+            value: "镇坪县",
+            label: "镇坪县",
+          },
+          {
+            value: "旬阳县",
+            label: "旬阳县",
+          },
+          {
+            value: "白河县",
+            label: "白河县",
+          },
+        ],
+        value: "安康市",
+        label: "安康市",
+      },
+      {
+        children: [
+          {
+            value: "商州区",
+            label: "商州区",
+          },
+          {
+            value: "洛南县",
+            label: "洛南县",
+          },
+          {
+            value: "丹凤县",
+            label: "丹凤县",
+          },
+          {
+            value: "商南县",
+            label: "商南县",
+          },
+          {
+            value: "山阳县",
+            label: "山阳县",
+          },
+          {
+            value: "镇安县",
+            label: "镇安县",
+          },
+          {
+            value: "柞水县",
+            label: "柞水县",
+          },
+        ],
+        value: "商洛市",
+        label: "商洛市",
+      },
+    ],
+    value: "陕西省",
+    label: "陕西省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "城关区",
+            label: "城关区",
+          },
+          {
+            value: "七里河区",
+            label: "七里河区",
+          },
+          {
+            value: "西固区",
+            label: "西固区",
+          },
+          {
+            value: "安宁区",
+            label: "安宁区",
+          },
+          {
+            value: "红古区",
+            label: "红古区",
+          },
+          {
+            value: "永登县",
+            label: "永登县",
+          },
+          {
+            value: "皋兰县",
+            label: "皋兰县",
+          },
+          {
+            value: "榆中县",
+            label: "榆中县",
+          },
+        ],
+        value: "兰州市",
+        label: "兰州市",
+      },
+      {
+        value: "嘉峪关市",
+        label: "嘉峪关市",
+      },
+      {
+        children: [
+          {
+            value: "金川区",
+            label: "金川区",
+          },
+          {
+            value: "永昌县",
+            label: "永昌县",
+          },
+        ],
+        value: "金昌市",
+        label: "金昌市",
+      },
+      {
+        children: [
+          {
+            value: "白银区",
+            label: "白银区",
+          },
+          {
+            value: "平川区",
+            label: "平川区",
+          },
+          {
+            value: "靖远县",
+            label: "靖远县",
+          },
+          {
+            value: "会宁县",
+            label: "会宁县",
+          },
+          {
+            value: "景泰县",
+            label: "景泰县",
+          },
+        ],
+        value: "白银市",
+        label: "白银市",
+      },
+      {
+        children: [
+          {
+            value: "秦州区",
+            label: "秦州区",
+          },
+          {
+            value: "麦积区",
+            label: "麦积区",
+          },
+          {
+            value: "清水县",
+            label: "清水县",
+          },
+          {
+            value: "秦安县",
+            label: "秦安县",
+          },
+          {
+            value: "甘谷县",
+            label: "甘谷县",
+          },
+          {
+            value: "武山县",
+            label: "武山县",
+          },
+          {
+            value: "张家川回族自治县",
+            label: "张家川回族自治县",
+          },
+        ],
+        value: "天水市",
+        label: "天水市",
+      },
+      {
+        children: [
+          {
+            value: "凉州区",
+            label: "凉州区",
+          },
+          {
+            value: "民勤县",
+            label: "民勤县",
+          },
+          {
+            value: "古浪县",
+            label: "古浪县",
+          },
+          {
+            value: "天祝藏族自治县",
+            label: "天祝藏族自治县",
+          },
+        ],
+        value: "武威市",
+        label: "武威市",
+      },
+      {
+        children: [
+          {
+            value: "甘州区",
+            label: "甘州区",
+          },
+          {
+            value: "肃南裕固族自治县",
+            label: "肃南裕固族自治县",
+          },
+          {
+            value: "民乐县",
+            label: "民乐县",
+          },
+          {
+            value: "临泽县",
+            label: "临泽县",
+          },
+          {
+            value: "高台县",
+            label: "高台县",
+          },
+          {
+            value: "山丹县",
+            label: "山丹县",
+          },
+        ],
+        value: "张掖市",
+        label: "张掖市",
+      },
+      {
+        children: [
+          {
+            value: "崆峒区",
+            label: "崆峒区",
+          },
+          {
+            value: "泾川县",
+            label: "泾川县",
+          },
+          {
+            value: "灵台县",
+            label: "灵台县",
+          },
+          {
+            value: "崇信县",
+            label: "崇信县",
+          },
+          {
+            value: "华亭县",
+            label: "华亭县",
+          },
+          {
+            value: "庄浪县",
+            label: "庄浪县",
+          },
+          {
+            value: "静宁县",
+            label: "静宁县",
+          },
+        ],
+        value: "平凉市",
+        label: "平凉市",
+      },
+      {
+        children: [
+          {
+            value: "肃州区",
+            label: "肃州区",
+          },
+          {
+            value: "金塔县",
+            label: "金塔县",
+          },
+          {
+            value: "瓜州县",
+            label: "瓜州县",
+          },
+          {
+            value: "肃北蒙古族自治县",
+            label: "肃北蒙古族自治县",
+          },
+          {
+            value: "阿克塞哈萨克族自治县",
+            label: "阿克塞哈萨克族自治县",
+          },
+          {
+            value: "玉门市",
+            label: "玉门市",
+          },
+          {
+            value: "敦煌市",
+            label: "敦煌市",
+          },
+        ],
+        value: "酒泉市",
+        label: "酒泉市",
+      },
+      {
+        children: [
+          {
+            value: "西峰区",
+            label: "西峰区",
+          },
+          {
+            value: "庆城县",
+            label: "庆城县",
+          },
+          {
+            value: "环县",
+            label: "环县",
+          },
+          {
+            value: "华池县",
+            label: "华池县",
+          },
+          {
+            value: "合水县",
+            label: "合水县",
+          },
+          {
+            value: "正宁县",
+            label: "正宁县",
+          },
+          {
+            value: "宁县",
+            label: "宁县",
+          },
+          {
+            value: "镇原县",
+            label: "镇原县",
+          },
+        ],
+        value: "庆阳市",
+        label: "庆阳市",
+      },
+      {
+        children: [
+          {
+            value: "安定区",
+            label: "安定区",
+          },
+          {
+            value: "通渭县",
+            label: "通渭县",
+          },
+          {
+            value: "陇西县",
+            label: "陇西县",
+          },
+          {
+            value: "渭源县",
+            label: "渭源县",
+          },
+          {
+            value: "临洮县",
+            label: "临洮县",
+          },
+          {
+            value: "漳县",
+            label: "漳县",
+          },
+          {
+            value: "岷县",
+            label: "岷县",
+          },
+        ],
+        value: "定西市",
+        label: "定西市",
+      },
+      {
+        children: [
+          {
+            value: "武都区",
+            label: "武都区",
+          },
+          {
+            value: "成县",
+            label: "成县",
+          },
+          {
+            value: "文县",
+            label: "文县",
+          },
+          {
+            value: "宕昌县",
+            label: "宕昌县",
+          },
+          {
+            value: "康县",
+            label: "康县",
+          },
+          {
+            value: "西和县",
+            label: "西和县",
+          },
+          {
+            value: "礼县",
+            label: "礼县",
+          },
+          {
+            value: "徽县",
+            label: "徽县",
+          },
+          {
+            value: "两当县",
+            label: "两当县",
+          },
+        ],
+        value: "陇南市",
+        label: "陇南市",
+      },
+      {
+        children: [
+          {
+            value: "临夏市",
+            label: "临夏市",
+          },
+          {
+            value: "临夏县",
+            label: "临夏县",
+          },
+          {
+            value: "康乐县",
+            label: "康乐县",
+          },
+          {
+            value: "永靖县",
+            label: "永靖县",
+          },
+          {
+            value: "广河县",
+            label: "广河县",
+          },
+          {
+            value: "和政县",
+            label: "和政县",
+          },
+          {
+            value: "东乡族自治县",
+            label: "东乡族自治县",
+          },
+          {
+            value: "积石山保安族东乡族撒拉族自治县",
+            label: "积石山保安族东乡族撒拉族自治县",
+          },
+        ],
+        value: "临夏回族自治州",
+        label: "临夏回族自治州",
+      },
+      {
+        children: [
+          {
+            value: "合作市",
+            label: "合作市",
+          },
+          {
+            value: "临潭县",
+            label: "临潭县",
+          },
+          {
+            value: "卓尼县",
+            label: "卓尼县",
+          },
+          {
+            value: "舟曲县",
+            label: "舟曲县",
+          },
+          {
+            value: "迭部县",
+            label: "迭部县",
+          },
+          {
+            value: "玛曲县",
+            label: "玛曲县",
+          },
+          {
+            value: "碌曲县",
+            label: "碌曲县",
+          },
+          {
+            value: "夏河县",
+            label: "夏河县",
+          },
+        ],
+        value: "甘南藏族自治州",
+        label: "甘南藏族自治州",
+      },
+    ],
+    value: "甘肃省",
+    label: "甘肃省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "城东区",
+            label: "城东区",
+          },
+          {
+            value: "城中区",
+            label: "城中区",
+          },
+          {
+            value: "城西区",
+            label: "城西区",
+          },
+          {
+            value: "城北区",
+            label: "城北区",
+          },
+          {
+            value: "大通回族土族自治县",
+            label: "大通回族土族自治县",
+          },
+          {
+            value: "湟中县",
+            label: "湟中县",
+          },
+          {
+            value: "湟源县",
+            label: "湟源县",
+          },
+        ],
+        value: "西宁市",
+        label: "西宁市",
+      },
+      {
+        children: [
+          {
+            value: "乐都区",
+            label: "乐都区",
+          },
+          {
+            value: "平安区",
+            label: "平安区",
+          },
+          {
+            value: "民和回族土族自治县",
+            label: "民和回族土族自治县",
+          },
+          {
+            value: "互助土族自治县",
+            label: "互助土族自治县",
+          },
+          {
+            value: "化隆回族自治县",
+            label: "化隆回族自治县",
+          },
+          {
+            value: "循化撒拉族自治县",
+            label: "循化撒拉族自治县",
+          },
+        ],
+        value: "海东市",
+        label: "海东市",
+      },
+      {
+        children: [
+          {
+            value: "门源回族自治县",
+            label: "门源回族自治县",
+          },
+          {
+            value: "祁连县",
+            label: "祁连县",
+          },
+          {
+            value: "海晏县",
+            label: "海晏县",
+          },
+          {
+            value: "刚察县",
+            label: "刚察县",
+          },
+        ],
+        value: "海北藏族自治州",
+        label: "海北藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "同仁县",
+            label: "同仁县",
+          },
+          {
+            value: "尖扎县",
+            label: "尖扎县",
+          },
+          {
+            value: "泽库县",
+            label: "泽库县",
+          },
+          {
+            value: "河南蒙古族自治县",
+            label: "河南蒙古族自治县",
+          },
+        ],
+        value: "黄南藏族自治州",
+        label: "黄南藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "共和县",
+            label: "共和县",
+          },
+          {
+            value: "同德县",
+            label: "同德县",
+          },
+          {
+            value: "贵德县",
+            label: "贵德县",
+          },
+          {
+            value: "兴海县",
+            label: "兴海县",
+          },
+          {
+            value: "贵南县",
+            label: "贵南县",
+          },
+        ],
+        value: "海南藏族自治州",
+        label: "海南藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "玛沁县",
+            label: "玛沁县",
+          },
+          {
+            value: "班玛县",
+            label: "班玛县",
+          },
+          {
+            value: "甘德县",
+            label: "甘德县",
+          },
+          {
+            value: "达日县",
+            label: "达日县",
+          },
+          {
+            value: "久治县",
+            label: "久治县",
+          },
+          {
+            value: "玛多县",
+            label: "玛多县",
+          },
+        ],
+        value: "果洛藏族自治州",
+        label: "果洛藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "玉树市",
+            label: "玉树市",
+          },
+          {
+            value: "杂多县",
+            label: "杂多县",
+          },
+          {
+            value: "称多县",
+            label: "称多县",
+          },
+          {
+            value: "治多县",
+            label: "治多县",
+          },
+          {
+            value: "囊谦县",
+            label: "囊谦县",
+          },
+          {
+            value: "曲麻莱县",
+            label: "曲麻莱县",
+          },
+        ],
+        value: "玉树藏族自治州",
+        label: "玉树藏族自治州",
+      },
+      {
+        children: [
+          {
+            value: "格尔木市",
+            label: "格尔木市",
+          },
+          {
+            value: "德令哈市",
+            label: "德令哈市",
+          },
+          {
+            value: "乌兰县",
+            label: "乌兰县",
+          },
+          {
+            value: "都兰县",
+            label: "都兰县",
+          },
+          {
+            value: "天峻县",
+            label: "天峻县",
+          },
+        ],
+        value: "海西蒙古族藏族自治州",
+        label: "海西蒙古族藏族自治州",
+      },
+    ],
+    value: "青海省",
+    label: "青海省",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "兴庆区",
+            label: "兴庆区",
+          },
+          {
+            value: "西夏区",
+            label: "西夏区",
+          },
+          {
+            value: "金凤区",
+            label: "金凤区",
+          },
+          {
+            value: "永宁县",
+            label: "永宁县",
+          },
+          {
+            value: "贺兰县",
+            label: "贺兰县",
+          },
+          {
+            value: "灵武市",
+            label: "灵武市",
+          },
+        ],
+        value: "银川市",
+        label: "银川市",
+      },
+      {
+        children: [
+          {
+            value: "大武口区",
+            label: "大武口区",
+          },
+          {
+            value: "惠农区",
+            label: "惠农区",
+          },
+          {
+            value: "平罗县",
+            label: "平罗县",
+          },
+        ],
+        value: "石嘴山市",
+        label: "石嘴山市",
+      },
+      {
+        children: [
+          {
+            value: "利通区",
+            label: "利通区",
+          },
+          {
+            value: "红寺堡区",
+            label: "红寺堡区",
+          },
+          {
+            value: "盐池县",
+            label: "盐池县",
+          },
+          {
+            value: "同心县",
+            label: "同心县",
+          },
+          {
+            value: "青铜峡市",
+            label: "青铜峡市",
+          },
+        ],
+        value: "吴忠市",
+        label: "吴忠市",
+      },
+      {
+        children: [
+          {
+            value: "原州区",
+            label: "原州区",
+          },
+          {
+            value: "西吉县",
+            label: "西吉县",
+          },
+          {
+            value: "隆德县",
+            label: "隆德县",
+          },
+          {
+            value: "泾源县",
+            label: "泾源县",
+          },
+          {
+            value: "彭阳县",
+            label: "彭阳县",
+          },
+        ],
+        value: "固原市",
+        label: "固原市",
+      },
+      {
+        children: [
+          {
+            value: "沙坡头区",
+            label: "沙坡头区",
+          },
+          {
+            value: "中宁县",
+            label: "中宁县",
+          },
+          {
+            value: "海原县",
+            label: "海原县",
+          },
+        ],
+        value: "中卫市",
+        label: "中卫市",
+      },
+    ],
+    value: "宁夏回族自治区",
+    label: "宁夏回族自治区",
+  },
+  {
+    children: [
+      {
+        children: [
+          {
+            value: "天山区",
+            label: "天山区",
+          },
+          {
+            value: "沙依巴克区",
+            label: "沙依巴克区",
+          },
+          {
+            value: "新市区",
+            label: "新市区",
+          },
+          {
+            value: "水磨沟区",
+            label: "水磨沟区",
+          },
+          {
+            value: "头屯河区",
+            label: "头屯河区",
+          },
+          {
+            value: "达坂城区",
+            label: "达坂城区",
+          },
+          {
+            value: "米东区",
+            label: "米东区",
+          },
+          {
+            value: "乌鲁木齐县",
+            label: "乌鲁木齐县",
+          },
+        ],
+        value: "乌鲁木齐市",
+        label: "乌鲁木齐市",
+      },
+      {
+        children: [
+          {
+            value: "独山子区",
+            label: "独山子区",
+          },
+          {
+            value: "克拉玛依区",
+            label: "克拉玛依区",
+          },
+          {
+            value: "白碱滩区",
+            label: "白碱滩区",
+          },
+          {
+            value: "乌尔禾区",
+            label: "乌尔禾区",
+          },
+        ],
+        value: "克拉玛依市",
+        label: "克拉玛依市",
+      },
+      {
+        children: [
+          {
+            value: "高昌区",
+            label: "高昌区",
+          },
+          {
+            value: "鄯善县",
+            label: "鄯善县",
+          },
+          {
+            value: "托克逊县",
+            label: "托克逊县",
+          },
+        ],
+        value: "吐鲁番市",
+        label: "吐鲁番市",
+      },
+      {
+        children: [
+          {
+            value: "伊州区",
+            label: "伊州区",
+          },
+          {
+            value: "巴里坤哈萨克自治县",
+            label: "巴里坤哈萨克自治县",
+          },
+          {
+            value: "伊吾县",
+            label: "伊吾县",
+          },
+        ],
+        value: "哈密市",
+        label: "哈密市",
+      },
+      {
+        children: [
+          {
+            value: "昌吉市",
+            label: "昌吉市",
+          },
+          {
+            value: "阜康市",
+            label: "阜康市",
+          },
+          {
+            value: "呼图壁县",
+            label: "呼图壁县",
+          },
+          {
+            value: "玛纳斯县",
+            label: "玛纳斯县",
+          },
+          {
+            value: "奇台县",
+            label: "奇台县",
+          },
+          {
+            value: "吉木萨尔县",
+            label: "吉木萨尔县",
+          },
+          {
+            value: "木垒哈萨克自治县",
+            label: "木垒哈萨克自治县",
+          },
+        ],
+        value: "昌吉回族自治州",
+        label: "昌吉回族自治州",
+      },
+      {
+        children: [
+          {
+            value: "博乐市",
+            label: "博乐市",
+          },
+          {
+            value: "阿拉山口市",
+            label: "阿拉山口市",
+          },
+          {
+            value: "精河县",
+            label: "精河县",
+          },
+          {
+            value: "温泉县",
+            label: "温泉县",
+          },
+        ],
+        value: "博尔塔拉蒙古自治州",
+        label: "博尔塔拉蒙古自治州",
+      },
+      {
+        children: [
+          {
+            value: "库尔勒市",
+            label: "库尔勒市",
+          },
+          {
+            value: "轮台县",
+            label: "轮台县",
+          },
+          {
+            value: "尉犁县",
+            label: "尉犁县",
+          },
+          {
+            value: "若羌县",
+            label: "若羌县",
+          },
+          {
+            value: "且末县",
+            label: "且末县",
+          },
+          {
+            value: "焉耆回族自治县",
+            label: "焉耆回族自治县",
+          },
+          {
+            value: "和静县",
+            label: "和静县",
+          },
+          {
+            value: "和硕县",
+            label: "和硕县",
+          },
+          {
+            value: "博湖县",
+            label: "博湖县",
+          },
+        ],
+        value: "巴音郭楞蒙古自治州",
+        label: "巴音郭楞蒙古自治州",
+      },
+      {
+        children: [
+          {
+            value: "阿克苏市",
+            label: "阿克苏市",
+          },
+          {
+            value: "温宿县",
+            label: "温宿县",
+          },
+          {
+            value: "库车县",
+            label: "库车县",
+          },
+          {
+            value: "沙雅县",
+            label: "沙雅县",
+          },
+          {
+            value: "新和县",
+            label: "新和县",
+          },
+          {
+            value: "拜城县",
+            label: "拜城县",
+          },
+          {
+            value: "乌什县",
+            label: "乌什县",
+          },
+          {
+            value: "阿瓦提县",
+            label: "阿瓦提县",
+          },
+          {
+            value: "柯坪县",
+            label: "柯坪县",
+          },
+        ],
+        value: "阿克苏地区",
+        label: "阿克苏地区",
+      },
+      {
+        children: [
+          {
+            value: "阿图什市",
+            label: "阿图什市",
+          },
+          {
+            value: "阿克陶县",
+            label: "阿克陶县",
+          },
+          {
+            value: "阿合奇县",
+            label: "阿合奇县",
+          },
+          {
+            value: "乌恰县",
+            label: "乌恰县",
+          },
+        ],
+        value: "克孜勒苏柯尔克孜自治州",
+        label: "克孜勒苏柯尔克孜自治州",
+      },
+      {
+        children: [
+          {
+            value: "喀什市",
+            label: "喀什市",
+          },
+          {
+            value: "疏附县",
+            label: "疏附县",
+          },
+          {
+            value: "疏勒县",
+            label: "疏勒县",
+          },
+          {
+            value: "英吉沙县",
+            label: "英吉沙县",
+          },
+          {
+            value: "泽普县",
+            label: "泽普县",
+          },
+          {
+            value: "莎车县",
+            label: "莎车县",
+          },
+          {
+            value: "叶城县",
+            label: "叶城县",
+          },
+          {
+            value: "麦盖提县",
+            label: "麦盖提县",
+          },
+          {
+            value: "岳普湖县",
+            label: "岳普湖县",
+          },
+          {
+            value: "伽师县",
+            label: "伽师县",
+          },
+          {
+            value: "巴楚县",
+            label: "巴楚县",
+          },
+          {
+            value: "塔什库尔干塔吉克自治县",
+            label: "塔什库尔干塔吉克自治县",
+          },
+        ],
+        value: "喀什地区",
+        label: "喀什地区",
+      },
+      {
+        children: [
+          {
+            value: "和田市",
+            label: "和田市",
+          },
+          {
+            value: "和田县",
+            label: "和田县",
+          },
+          {
+            value: "墨玉县",
+            label: "墨玉县",
+          },
+          {
+            value: "皮山县",
+            label: "皮山县",
+          },
+          {
+            value: "洛浦县",
+            label: "洛浦县",
+          },
+          {
+            value: "策勒县",
+            label: "策勒县",
+          },
+          {
+            value: "于田县",
+            label: "于田县",
+          },
+          {
+            value: "民丰县",
+            label: "民丰县",
+          },
+        ],
+        value: "和田地区",
+        label: "和田地区",
+      },
+      {
+        children: [
+          {
+            value: "伊宁市",
+            label: "伊宁市",
+          },
+          {
+            value: "奎屯市",
+            label: "奎屯市",
+          },
+          {
+            value: "霍尔果斯市",
+            label: "霍尔果斯市",
+          },
+          {
+            value: "伊宁县",
+            label: "伊宁县",
+          },
+          {
+            value: "察布查尔锡伯自治县",
+            label: "察布查尔锡伯自治县",
+          },
+          {
+            value: "霍城县",
+            label: "霍城县",
+          },
+          {
+            value: "巩留县",
+            label: "巩留县",
+          },
+          {
+            value: "新源县",
+            label: "新源县",
+          },
+          {
+            value: "昭苏县",
+            label: "昭苏县",
+          },
+          {
+            value: "特克斯县",
+            label: "特克斯县",
+          },
+          {
+            value: "尼勒克县",
+            label: "尼勒克县",
+          },
+        ],
+        value: "伊犁哈萨克自治州",
+        label: "伊犁哈萨克自治州",
+      },
+      {
+        children: [
+          {
+            value: "塔城市",
+            label: "塔城市",
+          },
+          {
+            value: "乌苏市",
+            label: "乌苏市",
+          },
+          {
+            value: "额敏县",
+            label: "额敏县",
+          },
+          {
+            value: "沙湾县",
+            label: "沙湾县",
+          },
+          {
+            value: "托里县",
+            label: "托里县",
+          },
+          {
+            value: "裕民县",
+            label: "裕民县",
+          },
+          {
+            value: "和布克赛尔蒙古自治县",
+            label: "和布克赛尔蒙古自治县",
+          },
+        ],
+        value: "塔城地区",
+        label: "塔城地区",
+      },
+      {
+        children: [
+          {
+            value: "阿勒泰市",
+            label: "阿勒泰市",
+          },
+          {
+            value: "布尔津县",
+            label: "布尔津县",
+          },
+          {
+            value: "富蕴县",
+            label: "富蕴县",
+          },
+          {
+            value: "福海县",
+            label: "福海县",
+          },
+          {
+            value: "哈巴河县",
+            label: "哈巴河县",
+          },
+          {
+            value: "青河县",
+            label: "青河县",
+          },
+          {
+            value: "吉木乃县",
+            label: "吉木乃县",
+          },
+        ],
+        value: "阿勒泰地区",
+        label: "阿勒泰地区",
+      },
+      {
+        value: "石河子市",
+        label: "石河子市",
+      },
+      {
+        value: "阿拉尔市",
+        label: "阿拉尔市",
+      },
+      {
+        value: "图木舒克市",
+        label: "图木舒克市",
+      },
+      {
+        value: "五家渠市",
+        label: "五家渠市",
+      },
+      {
+        value: "铁门关市",
+        label: "铁门关市",
+      },
+    ],
+    value: "新疆维吾尔自治区",
+    label: "新疆维吾尔自治区",
+  },
+  {
+    value: "台湾省",
+    label: "台湾省",
+  },
+  {
+    value: "香港特别行政区",
+    label: "香港特别行政区",
+  },
+  {
+    value: "澳门特别行政区",
+    label: "澳门特别行政区",
+  },
+];

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>

+ 24 - 0
main.js

@@ -0,0 +1,24 @@
+import App from './App'
+import "/common/global.css";
+import "/common/global.scss";
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+  ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif

+ 187 - 0
manifest.json

@@ -0,0 +1,187 @@
+{
+    "name" : "嘀咚点到师傅端",
+    "appid" : "__UNI__EBACA03",
+    "description" : "",
+    "versionName" : "2.0.6",
+    "versionCode" : 206,
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {
+            "Maps" : {},
+            "OAuth" : {},
+            "Payment" : {},
+            "Camera" : {},
+            "Share" : {},
+            "Barcode" : {},
+            "Geolocation" : {}
+        },
+        "permissions" : {
+            "location" : {
+                "desc" : "用于获取定位信息"
+            }
+        },
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ],
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
+                "targetSdkVersion" : 30,
+                "minSdkVersion" : 21
+            },
+            /* ios打包配置 */
+            "ios" : {
+                "privacyDescription" : {
+                    "NSPhotoLibraryUsageDescription" : "获取相册图片,上传头像等",
+                    "NSPhotoLibraryAddUsageDescription" : "下载APP中的图片",
+                    "NSCameraUsageDescription" : "拍摄照片,上传头像等",
+                    "NSLocationWhenInUseUsageDescription" : "获取位置,提供距离更近的技师信息",
+                    "NSLocationAlwaysUsageDescription" : "获取位置,提供距离更近的技师信息",
+                    "NSLocationAlwaysAndWhenInUseUsageDescription" : "获取位置,提供距离更近的技师信息"
+                },
+                "dSYMs" : false,
+                "idfa" : false
+            },
+            /* SDK配置 */
+            "sdkConfigs" : {
+                "geolocation" : {
+                    "system" : {
+                        "__platform__" : [ "ios", "android" ]
+                    }
+                },
+                "maps" : {
+                    "amap" : {
+                        "appkey_ios" : "1b8f006c331a6ac3f2d4df500c5843d2",
+                        "appkey_android" : "e7703ba0579394ad136d69fb5c8e9920"
+                    }
+                },
+                "oauth" : {
+                    "weixin" : {
+                        "appid" : "wxdb429f6192643dbd",
+                        "UniversalLinks" : "https://dd.niusenyun.com/"
+                    }
+                },
+                "share" : {
+                    "weixin" : {
+                        "appid" : "wxdb429f6192643dbd",
+                        "UniversalLinks" : "https://dd.niusenyun.com/"
+                    }
+                },
+                "payment" : {
+                    "alipay" : {
+                        "__platform__" : [ "ios", "android" ]
+                    },
+                    "weixin" : {
+                        "__platform__" : [ "ios", "android" ],
+                        "appid" : "wxdb429f6192643dbd",
+                        "UniversalLinks" : "https://dd.niusenyun.com/"
+                    }
+                },
+                "ad" : {}
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            },
+            "splashscreen" : {
+                "useOriginalMsgbox" : true
+            }
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "3",
+    "h5" : {
+        "sdkConfigs" : {
+            "maps" : {
+                "qqmap" : {
+                    "key" : "MPRBZ-N4E66-BI3SY-M3L4N-S2AW5-BIBGN"
+                }
+            }
+        }
+    }
+}

+ 5 - 0
package.json

@@ -0,0 +1,5 @@
+{
+	"dependencies": {
+		"vue-jsonp": "^2.0.0"
+	}
+}

+ 176 - 0
pages.json

@@ -0,0 +1,176 @@
+{
+	"pages": [
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "嘀咚点到"
+			}
+		},
+		{
+			"path": "pages/project/index",
+			"style": {
+				"navigationBarTitleText": "服务项目"
+			}
+		},
+		{
+			"path": "pages/index/fast",
+			"style": {
+				"navigationBarTitleText": "快速抢单"
+			}
+		},
+		{
+			"path": "pages/order/index",
+			"style": {
+				"navigationBarTitleText": "我的订单"
+			}
+		},
+		{
+			"path": "pages/order/detail",
+			"style": {
+				"navigationBarTitleText": "订单详情"
+			}
+		},
+		{
+			"path": "pages/order/map",
+			"style": {
+				"navigationBarTitleText": "地图详情"
+			}
+		},
+		{
+			"path": "pages/account/index",
+			"style": {
+				"navigationBarTitleText": "我的"
+			}
+		},
+		{
+			"path": "pages/account/login",
+			"style": {
+				"navigationBarTitleText": "技师登录"
+			}
+		},
+		{
+			"path": "pages/account/register",
+			"style": {
+				"navigationBarTitleText": "技师注册"
+			}
+		},
+		{
+			"path": "pages/account/forgot",
+			"style": {
+				"navigationBarTitleText": "忘记密码"
+			}
+		},
+		{
+			"path": "pages/account/inviteCode",
+			"style": {
+				"navigationBarTitleText": "我的二维码"
+			}
+		},
+		{
+			"path": "pages/account/help",
+			"style": {
+				"navigationBarTitleText": ""
+			}
+		},
+		{
+			"path": "pages/account/agent",
+			"style": {
+				"navigationBarTitleText": "代理中心"
+			}
+		},
+		{
+			"path": "pages/account/promotion",
+			"style": {
+				"navigationBarTitleText": "代理中心"
+			}
+		},
+		{
+			"path": "pages/account/about",
+			"style": {
+				"navigationBarTitleText": "关于我们"
+			}
+		},
+		{
+			"path": "pages/account/complaint",
+			"style": {
+				"navigationBarTitleText": "意见反馈"
+			}
+		},
+		{
+			"path": "pages/account/wallet",
+			"style": {
+				"navigationBarTitleText": "我的钱包"
+			}
+		},
+		{
+			"path": "pages/account/cash",
+			"style": {
+				"navigationBarTitleText": "提现"
+			}
+		},
+		{
+			"path": "pages/account/setting",
+			"style": {
+				"navigationBarTitleText": "设置管理"
+			}
+		},
+		{
+			"path": "pages/account/certification",
+			"style": {
+				"navigationBarTitleText": "技师认证"
+			}
+		},
+		{
+			"path": "pages/account/test",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "嘀咚点到",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8",
+		"navigationStyle": "custom"
+	},
+	"tabBar": {
+		"color": "#999",
+		"selectedColor": "#07D69E",
+		"borderStyle": "black",
+		"backgroundColor": "#ffffff",
+		"list": [
+			{
+				"pagePath": "pages/index/index",
+				"iconPath": "static/tabbar/home.png",
+				"selectedIconPath": "static/tabbar/home_active.png",
+				"text": "首页"
+			},
+			{
+				"pagePath": "pages/project/index",
+				"iconPath": "static/tabbar/member.png",
+				"selectedIconPath": "static/tabbar/member_active.png",
+				"text": "服务项目"
+			},
+			{
+				"pagePath": "pages/index/fast",
+				"iconPath": "static/tabbar/service.png",
+				"selectedIconPath": "static/tabbar/service_active.png",
+				"text": "抢单"
+			},
+			{
+				"pagePath": "pages/order/index",
+				"iconPath": "static/tabbar/order.png",
+				"selectedIconPath": "static/tabbar/order_active.png",
+				"text": "订单"
+			},
+			{
+				"pagePath": "pages/account/index",
+				"iconPath": "static/tabbar/account.png",
+				"selectedIconPath": "static/tabbar/account_active.png",
+				"text": "我的"
+			}
+		]
+	},
+	"uniIdRouter": {}
+}

+ 119 - 0
pages/account/about.vue

@@ -0,0 +1,119 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="关于我们" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+			<view>
+				<uni-list :border="false">
+					<uni-list-chat
+						:avatar-circle="true"
+						:title="item.title"
+						:avatar="item.avatar"
+						:note="item.note"
+						v-for="(item, index) in items"
+						:key="index"
+						clickable
+						@click="handleToHelp(item.id)"
+					>
+						<view class="chat-custom-right">
+							<image src="/static/common/right.png" class="extra_image" mode="aspectFill" />
+						</view>
+					</uni-list-chat>
+				</uni-list>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+
+const statusBarHeight = ref();
+const items = reactive([
+	{
+		id: '3',
+		title: '责任声明',
+		avatar: '/static/account/about/statement.png',
+		note: '点击查看嘀咚点到责任声明'
+	},
+	{
+		id: '21',
+		title: '用户协议',
+		avatar: '/static/account/about/agreement.png',
+		note: '点击查看嘀咚点到用户协议'
+	},
+	{
+		id: '5',
+		title: '隐私政策',
+		avatar: '/static/account/about/privacy.png',
+		note: '点击查看嘀咚点到隐私政策'
+	}
+]);
+
+const handleToHelp = (id) => {
+	uni.navigateTo({
+		url: `/pages/account/help?id=${id}`
+	});
+};
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+});
+
+onShow(() => {
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+})
+</script>
+
+<style lang="scss" scoped>
+.content {
+	padding: 20upx;
+
+	.uni-list {
+		background: transparent;
+
+		:deep(.uni-list-chat) {
+			margin: 10upx 0;
+			height: 150upx;
+			.uni-list-chat__header {
+				width: 84upx;
+				height: 80upx;
+				.uni-list-chat__header-image {
+					width: 76upx;
+					height: 76upx;
+				}
+			}
+
+			.uni-list-chat__container {
+				padding: 40upx;
+
+				.uni-list-chat__content-title {
+					font-size: 32upx;
+					font-weight: 400;
+					color: #000000;
+				}
+				.uni-list-chat__content-note {
+					font-size: 24upx;
+					font-weight: 400;
+					color: #999999;
+				}
+				.uni-list-chat__content-extra {
+					justify-content: center;
+					.chat-custom-right {
+						.extra_image {
+							width: 14upx;
+							height: 24upx;
+						}
+					}
+				}
+			}
+		}
+	}
+}
+</style>

+ 202 - 0
pages/account/agent.vue

@@ -0,0 +1,202 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="代理中心" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+			<view>
+				<image class="card_thumbnail" src="/static/account/agent/banner.png" mode="aspectFill" style="width: 617upx; height: 205upx; margin: 55upx auto" />
+				<view
+					style="
+						width: 670upx;
+						background: #ffffff;
+						border: 10upx solid;
+						border-image: linear-gradient(90deg, #37ecba, #72afd3) 10 10;
+						border-radius: 40upx;
+						clip-path: inset(0 0 round 15upx);
+						padding: 61upx 30upx;
+						margin-bottom: 39upx;
+					"
+				>
+					<rich-text :nodes="agentInfo?.post_content"></rich-text>
+				</view>
+				<view class="agent_form_wrap">
+					<uni-forms label-position="top">
+						<uni-forms-item label="您的姓名" name="name" required>
+							<uni-easyinput trim="all" placeholder="请输入姓名" v-model="params.name"></uni-easyinput>
+						</uni-forms-item>
+						<uni-forms-item label="您的电话" name="name" required>
+							<uni-easyinput trim="all" type="number" placeholder="请输入您的电话" v-model="params.phone"></uni-easyinput>
+						</uni-forms-item>
+						<uni-forms-item label="所在地区" name="name" required>
+							<comp-select-address class="address" @selectAddress="selectAddress" />
+						</uni-forms-item>
+					</uni-forms>
+
+					<button type="primary" class="form_submit_btn" :loading="loading" @tap.capture="handleApply">立即申请</button>
+				</view>
+			</view>
+			<view class="footer">
+				<image mode="widthFix" src="/static/common/footer.png" />
+			</view>
+		</view>
+	</view>
+</template>
+
+<style lang="scss" scoped>
+.content {
+	padding: 0 40upx;
+	.agent_form_wrap {
+		width: 670upx;
+		height: 733upx;
+		background: url('/static/account/agent/bg.png') no-repeat;
+		background-size: cover;
+		padding: 65upx 40upx;
+		:deep(.uni-forms-item) {
+			font-size: 32upx;
+			color: #333333;
+			.is-required {
+				margin-right: 5upx;
+			}
+
+			.is-disabled {
+				background-color: initial !important;
+				font: inherit !important;
+				color: inherit !important;
+			}
+		}
+
+		.form_submit_btn {
+			width: 630upx;
+			height: 80upx;
+			background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+			border-radius: 16upx;
+
+			margin: 10upx auto;
+			font-size: 32upx;
+			font-weight: bold;
+			color: #ffffff;
+		}
+	}
+}
+</style>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+import CompSelectAddress from '/components/comp-select-address/CompSelectAddress.vue';
+
+const statusBarHeight = ref();
+const loading = ref(false);
+const agentInfo = ref();
+const params = reactive({
+	name: '',
+	mobile: '',
+	district: ''
+});
+
+onLoad(() => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	getPortalInfo();
+});
+
+onShow(()=> {
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+})
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const getPortalInfo = () => {
+	request({
+		url: '/api/portal/getInfo',
+		method: 'GET',
+		data: { id: 13 },
+		success: (res) => {
+			console.log('代理信息', res);
+			if (res.data?.code == 1) {
+				agentInfo.value = res.data?.data;
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const selectAddress = (val) => {
+	params.district = val[2];
+};
+
+const handleApply = () => {
+	if (!params.name.trim()) {
+		uni.showToast({
+			title: '请填写姓名',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+	if (!params.phone.trim()) {
+		uni.showToast({
+			title: '请填写电话',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+	if (!params.district.trim()) {
+		uni.showToast({
+			title: '请选择地址',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+	uni.showLoading({
+		content: '加载中',
+		mask: true
+	});
+
+	request({
+		url: '/api/user/agencyapply',
+		method: 'POST',
+		data: params,
+		success: (res) => {
+			console.log('提交申请', res);
+
+			if (res.data?.code == 1) {
+				uni.showToast({
+					title: '提交成功',
+					duration: 2000,
+					icon: 'none'
+				});
+				setTimeout(function () {
+					const canNavBack = getCurrentPages();
+					if (canNavBack && canNavBack.length > 1) {
+						uni.navigateBack();
+					} else {
+						history.back();
+					}
+				}, 1000);
+			} else {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			setTimeout(function () {
+				uni.hideLoading();
+			}, 2000);
+		}
+	});
+};
+</script>

+ 385 - 0
pages/account/cash.vue

@@ -0,0 +1,385 @@
+<template>
+	
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="余额明细" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+		  <view class="content_background" style="padding: 49upx 0">
+		    <view class="card">
+		      <view class="uni-form" style="padding: 34upx 0">
+		        <view
+		          style="
+		            font-size: 32upx;
+		            font-weight: bold;
+		            color: #000000;
+		            margin: 0px 32upx 18upx;
+		          "
+		          >提现账户</view
+		        >
+		
+		        <view class="uni-form-item" style="border-bottom: 0">
+		          <view class="title">
+		            <image
+		              src="/static/common/alipay.png"
+		              mode="aspectFill"
+		              class="form_item_icon"
+		            />
+		            支付宝支付
+		          </view>
+		          <view @tap="handleSelectPayType" data-type="alipay">
+		            <image
+		              src="/static/common/radio_selected.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-if="payType == 'alipay'"
+		            />
+		            <image
+		              src="/static/common/radio_unselect.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-else
+		            />
+		          </view>
+		        </view>
+		        <view
+		          class="uni-column"
+		          style="padding: 10upx 80upx 30upx"
+		          v-if="payType == 'alipay'"
+		        >
+		          <input
+		            class="uni-input"
+		            placeholder="支付宝账号"
+		            style="
+		              height: 50upx;
+		              font-size: 28upx;
+		              font-weight: 400;
+		              color: #999999;
+		              margin: 0 0 20upx;
+		              border-bottom: 1px solid #eee;
+		            "
+		            v-model="alipayParams.account"
+		          />
+		          <input
+		            class="uni-input"
+		            placeholder="支付宝认证实名(真实姓名)"
+		            style="
+		              height: 50upx;
+		              font-size: 28upx;
+		              font-weight: 400;
+		              color: #999999;
+		              border-bottom: 1px solid #eee;
+		            "
+		            v-model="alipayParams.name"
+		          />
+		        </view>
+		        <view class="uni-form-item uni-column" v-if="false">
+		          <view class="title">
+		            <image
+		              src="/static/common/wechat.png"
+		              mode="aspectFill"
+		              class="form_item_icon"
+		            />
+		            微信支付
+		          </view>
+		          <view @tap="handleSelectPayType" data-type="wxpay">
+		            <image
+		              src="/static/common/radio_selected.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-if="payType == 'wxpay'"
+		            />
+		            <image
+		              src="/static/common/radio_unselect.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-else
+		            />
+		          </view>
+		        </view>
+		      </view>
+		    </view>
+		    <view class="card" style="margin-top: 20upx">
+		      <view class="uni-form" style="padding: 34upx 0">
+		        <view
+		          style="
+		            font-size: 32upx;
+		            font-weight: bold;
+		            color: #000000;
+		            margin: 0px 32upx 18upx;
+		          "
+		          >提现金额</view
+		        >
+		        <view
+		          class="uni-column"
+		          style="padding: 10upx 80upx 30upx"
+		          v-if="payType == 'alipay'"
+		        >
+		          <view
+		            class="flex align-center"
+		            style="
+		              border-bottom: 1px solid #eee;
+		              margin: 0 0 20upx;
+		              color: #ff490e;
+		            "
+		          >
+		            <text style="margin-right: 5upx">¥</text>
+		            <input
+		              class="uni-input"
+		              type="number"
+		              style="
+		                height: 50upx;
+		                font-size: 28upx;
+		                font-weight: 400;
+		                color: #999999;
+		              "
+		              placeholder="请填写提现金额"
+		              v-model="alipayParams.money"
+		            />
+		          </view>
+		          <view
+		            class="flex"
+		            style="font-size: 24upx; font-weight: 400; color: #999999"
+		          >
+		            <view>当前余额 {{ maxMoney }}</view>
+		            <view
+		              style="color: #07d69e; margin-left: 20upx"
+		              @tap.stop="handleAllCash"
+		              >全部提现</view
+		            >
+		          </view>
+		        </view>
+		
+		        <view class="uni-form-item uni-column" v-if="false">
+		          <view class="title">
+		            <image
+		              src="/static/common/wechat.png"
+		              mode="aspectFill"
+		              class="form_item_icon"
+		            />
+		            微信支付
+		          </view>
+		          <view @tap="handleSelectPayType" data-type="wxpay">
+		            <image
+		              src="/static/common/radio_selected.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-if="payType == 'wxpay'"
+		            />
+		            <image
+		              src="/static/common/radio_unselect.png"
+		              mode="aspectFill"
+		              class="form_item_btn_icon"
+		              v-else
+		            />
+		          </view>
+		        </view>
+		      </view>
+		    </view>
+		
+		    <view class="footer">
+		      <image mode="widthFix" src="/static/common/footer.png" />
+		    </view>
+		  </view>
+		
+		  <view class="footer_btn_wrap" style="position: fixed" @tap="handleToCash">
+		    <view
+		      class="footer_btn"
+		      :class="{
+		        footer_btn_disabled: alipayParams?.money <= 0 || maxMoney <= 0,
+		      }"
+		    >
+		      确认提现
+		    </view>
+		  </view>
+		</view>
+	</view>
+
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+import { onLoad, onShow } from "@dcloudio/uni-app";
+import request from "/common/request.js";
+import auth from "/common/auth.js";
+
+const statusBarHeight = ref();
+const payType = ref("alipay");
+const maxMoney = ref(0);
+const alipayParams = reactive({
+  account: "",
+  name: "",
+  money: "",
+});
+
+onLoad((option) => {
+  statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+});
+
+onShow(() => {
+  renderData();
+  uni.$emit('fastOrderNum', false);
+  uni.$emit('receiveOrdernum', false);
+});
+
+async function renderData() {
+  if (auth()) {
+    getUserInfo();
+    uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+  }
+}
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const handleSelectPayType = (e) => {
+  payType.value = e?.currentTarget?.dataset?.type;
+};
+
+function getUserInfo() {
+  request({
+    url: "/api/user/getInfo",
+    method: "GET",
+    success: (res) => {
+      console.log("用户信息", res);
+      if (res.data?.code == 1) {
+        maxMoney.value = res.data?.data?.balance;
+        // alipayParams.money = res.data?.data?.balance;
+      }
+    },
+    fail: () => {},
+    complete: () => {
+      uni.hideLoading();
+    },
+  });
+}
+
+function handleAllCash() {
+  alipayParams.money = maxMoney.value;
+}
+
+function handleToCash() {
+  if (maxMoney.value <= 0) return;
+
+  if (payType.value == "alipay") {
+    if (!alipayParams.account) {
+      uni.showToast({
+        title: "请输入支付宝账号",
+        duration: 2000,
+        icon: "none",
+      });
+      return;
+    } else {
+      // const reg =
+      //   /^(1[3456789]\d{9})|([a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+)$/;
+      // if (!reg.test(alipayParams.account)) {
+      //   uni.showToast({
+      //     title: "支付宝账号为手机或邮箱",
+      //     duration: 3000,
+      //     icon: "none",
+      //   });
+      //   return;
+      // }
+    }
+
+    if (!alipayParams.name) {
+      uni.showToast({
+        title: "请输入支付宝认证实名",
+        duration: 2000,
+        icon: "none",
+      });
+      return;
+    } else {
+      const reg = /^[\u4e00-\u9fa5]+$/;
+      if (!reg.test(alipayParams.name)) {
+        uni.showToast({
+          title: "支付宝认证实名需为中文",
+          duration: 3000,
+          icon: "none",
+        });
+        return;
+      }
+    }
+  }
+
+  if (!alipayParams.money) {
+    uni.showToast({
+      title: "请填写提现金额",
+      duration: 2000,
+      icon: "none",
+    });
+    return;
+  }
+
+  if (alipayParams.money > maxMoney) {
+    uni.showToast({
+      title: "提现余额不足",
+      duration: 2000,
+      icon: "none",
+    });
+    return;
+  }
+
+  uni.showLoading();
+  request({
+    url: "/api/user/addTx",
+    method: "POST",
+    data: {
+      money: alipayParams.money,
+      tx_type: 2,
+      zfb_name: alipayParams.name,
+      zfb_action: alipayParams.account,
+    },
+    success: (res) => {
+      console.log("提现res", res);
+      if (res.data?.code == 1) {
+        uni.showToast({
+          title: "提现申请已提交",
+          duration: 2000,
+          icon: "none",
+        });
+        setTimeout(function () {
+          const canNavBack = getCurrentPages();
+          if (canNavBack && canNavBack.length > 1) {
+            uni.navigateBack();
+          } else {
+            history.back();
+          }
+        }, 2000);
+      } else {
+        uni.showToast({
+          title: res.data.msg,
+          duration: 2000,
+          icon: "none",
+        });
+      }
+    },
+    fail: () => {},
+    complete: () => {
+      uni.hideLoading();
+    },
+  });
+}
+</script>
+
+<style lang="scss" scoped>
+uni-page-body,
+.content {
+  // min-height: calc(100vh);
+}
+.content {
+  background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+  .uni-form {
+    .uni-form-item {
+      margin: 0 20upx 0 32upx;
+      .title {
+        font-size: 30upx !important;
+        .form_item_icon {
+          width: 52upx;
+          height: 52upx;
+        }
+      }
+    }
+  }
+}
+</style>

+ 677 - 0
pages/account/certification.vue

@@ -0,0 +1,677 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="技师认证" :statusBar="true" @clickLeft="handleToBack" />
+		<uni-section title="身份证" type="line">
+			<view class="idcard_wrap">
+				<image
+					:src="idcardData[0] ? idcardData[0] : idcard[0]"
+					@tap="handleOpenIdcardImage"
+					:data-id="0"
+					mode="aspectFill"
+					style="width: 340upx !important; height: 200upx !important; border-radius: 12px; margin-right: 12px"
+				></image>
+				<image
+					:src="idcardData[1] ? idcardData[1] : idcard[1]"
+					@tap="handleOpenIdcardImage"
+					:data-id="1"
+					mode="aspectFill"
+					style="width: 340upx !important; height: 200upx !important; border-radius: 12px"
+				></image>
+			</view>
+		</uni-section>
+		<uni-section title="手持身份证照片" type="line">
+			<view class="idcard_wrap">
+				<image
+					:src="idcardData[2] ? idcardData[2] : idcard[0]"
+					@tap="handleOpenIdcardImage"
+					:data-id="2"
+					mode="aspectFill"
+					style="width: 340upx !important; height: 200upx !important; border-radius: 12px"
+				></image>
+			</view>
+		</uni-section>
+		<uni-section title="工作照" type="line">
+			<view>
+				<view class="picture_list_wrap">
+					<view class="picture_list" v-for="(i, index) in workPicture" :key="index">
+						<view>
+							<image src="/static/account/certification/clear.png" class="picture_close" @tap="handleClearPicture" :data-index="index"></image>
+							<image :src="i" class="picture" mode="aspectFill"></image>
+						</view>
+						<!-- <button size="mini" style="color: #ff6868">裁剪</button> -->
+					</view>
+					<image src="/static/account/certification/add.png" class="picture" @tap="handleOpenImage" v-if="workPicture.length < 6"></image>
+				</view>
+			</view>
+		</uni-section>
+		<uni-section title="生活照" type="line">
+			<view class="picture_list_wrap">
+				<view class="picture_list" v-for="(i, index) in lifePicture" :key="index">
+					<view>
+						<image src="/static/account/certification/clear.png" class="picture_close" @tap="handleClearLifePicture" :data-index="index"></image>
+						<image :src="i" class="picture" mode="aspectFill"></image>
+					</view>
+<!-- 					<button size="mini" style="color: #fff; background: #ff6868" @tap="handleCropping(index, 'life')">裁剪</button> -->
+				</view>
+				<image src="/static/account/certification/add.png" class="picture" @tap="handleOpenLifeImage" v-if="lifePicture.length < 6"></image>
+			</view>
+		</uni-section>
+
+		<uni-section title="证书" type="line">
+			<view class="picture_list_wrap">
+				<view class="picture_list" v-for="(i, index) in certificatesPicture" :key="index">
+					<image src="/static/account/certification/clear.png" class="picture_close" @tap="handleClearCertificatesPicture" :data-id="index"></image>
+					<image :src="i" class="picture" mode="aspectFill"></image>
+				</view>
+				<image src="/static/account/certification/add.png" class="picture" @tap="handleOpenCertificatesImage" v-if="certificatesPicture.length < 6"></image>
+			</view>
+		</uni-section>
+
+		<uni-popup ref="picturePopup" background-color="#fff" @change="change">
+			<view class="picture_popup_container">
+				<!-- <bt-cropper ref="cropper" :imageSrc="imageSrc" :ratio="1"></bt-cropper> -->
+				<!-- <uni-cropper
+          :src="imageSrc"
+          @complete="handleCrop"
+          :disable-scale="true"
+          :disable-rotate="true"
+        ></uni-cropper> -->
+				<okingtz-cropper
+					@uploadSuccess="uploadSuccess"
+					:image="imageSrc"
+					:cropWidth="750"
+					:cropHeight="750"
+					:maxCropper="true"
+					:canScale="false"
+					selectButtonText=""
+					saveButtonText="裁剪"
+				></okingtz-cropper>
+			</view>
+		</uni-popup>
+
+		<uni-popup ref="lifePicturePopup" background-color="#fff" @change="change">
+			<view class="picture_popup_container">
+				<okingtz-cropper
+					@uploadSuccess="uploadLifeSuccess"
+					:image="lifeImageSrc"
+					:cropWidth="750"
+					:cropHeight="750"
+					:maxCropper="true"
+					:canScale="false"
+					selectButtonText=""
+					saveButtonText="裁剪"
+				></okingtz-cropper>
+			</view>
+		</uni-popup>
+
+		<view class="agreement_wrap" @tap="handleIsAgreement">
+			<image src="/static/common/radio_selected.png" v-if="isAgreement"></image>
+			<image src="/static/common/radio_unselect.png" v-else></image>
+
+			已阅读并同意
+			<text style="color: #14a5ec" @tap.stop="handleToAgreement">《入驻协议》</text>
+		</view>
+		<view class="notice">每次修改信息后需要24小时审核</view>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+
+		<view class="footer_btn_wrap">
+			<view class="footer_btn" @tap="handleSave">保 存</view>
+		</view>
+	</view>
+</template>
+<style>
+.container {
+	/** 外层一定要指定大小 */
+}
+</style>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+import { apiBaseUrl } from '/common/config.js';
+import OkingtzCropper from '@/uni_modules/okingtz-cropper/components/okingtz-cropper/okingtz-cropper';
+
+const statusBarHeight = ref();
+const idcard = reactive(['/static/account/certification/idcard_before.png', '/static/account/certification/idcard_after.png']);
+
+const idcardData = ref(['', '', '']);
+const isAgreement = ref(true);
+const userData = ref({});
+const picturePopup = ref();
+const imageSrc = ref();
+const cropper = ref();
+const workPicture = ref([]);
+const workPictureOriginal = ref([]);
+const workOpenIndex = ref(0);
+
+const currentPictureBlob = ref();
+const lifeImageSrc = ref();
+const lifePicturePopup = ref();
+const lifePicture = ref([]);
+const lifePictureOriginal = ref([]);
+const lifeOpenIndex = ref(0);
+
+const certificatesPicture = ref([]);
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+const handleCropping = (index, type) => {
+	if (type == 'life') {
+		handleLifePictureToggle(index);
+	}
+};
+
+const getBase64Image = (src) => {
+	return new Promise((resolve) => {
+		let xhr = new XMLHttpRequest();
+		xhr.open('get', src, true);
+		xhr.responseType = 'blob';
+		xhr.onload = function () {
+			if (this.status == 200) {
+				let blob = this.response;
+				let oFileReader = new FileReader();
+				oFileReader.onloadend = function (e) {
+					const base64 = e.target.result;
+					resolve(base64);
+				};
+				oFileReader.readAsDataURL(blob);
+			}
+		};
+		xhr.send();
+	});
+};
+
+const handleOpenIdcardImage = (e) => {
+	const id = e.currentTarget.dataset.id;
+	uni.chooseImage({
+		count: 1,
+		success: (chooseImageRes) => {
+			console.log('选择照片', chooseImageRes);
+			const tempFilePaths = chooseImageRes.tempFilePaths;
+			uni.showLoading({
+				content: '加载中',
+				mask: true
+			});
+
+			uni.uploadFile({
+				url: `${apiBaseUrl}/api/UpImg/upimg`,
+				filePath: tempFilePaths[0],
+				header: {
+					'XX-Token': uni.getStorageSync('token'),
+					'XX-Device-Type': 'web'
+				},
+				name: 'file',
+				formData: {},
+				success: (uploadFileRes) => {
+					console.log('结果', uploadFileRes);
+					console.log('结果', JSON.parse(uploadFileRes.data));
+					idcardData.value[id] = JSON.parse(uploadFileRes.data).data.url;
+				},
+				complete: () => {
+					setTimeout(function () {
+						uni.hideLoading();
+					}, 100);
+				}
+			});
+		}
+	});
+};
+const handleToAgreement = () => {
+	uni.navigateTo({ url: '/pages/account/help?id=11' });
+};
+const handleIsAgreement = () => {
+	isAgreement.value = !isAgreement.value;
+};
+const handleSave = () => {
+	if (!isAgreement) {
+		uni.showToast({
+			title: '请阅读并同意《入驻协议》',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+	request({
+		url: '/api/user/applyJsPost',
+		method: 'POST',
+		data: {
+			...userData.value,
+			identity: idcardData.value,
+			pictures: lifePicture.value,
+			work: workPicture.value,
+			life_original: lifePictureOriginal.value,
+			work_original: workPictureOriginal.value,
+			certificates: certificatesPicture.value
+		},
+		success: (res) => {
+			console.log(res);
+			if (res.data.code == 1) {
+				uni.showToast({
+					title: '提交成功',
+					duration: 2000,
+					icon: 'none'
+				});
+				setTimeout(function () {
+					uni.navigateBack();
+				}, 1000);
+			} else {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			setTimeout(function () {
+				uni.hideLoading();
+			}, 2000);
+		}
+	});
+};
+const handleClearPicture = (e) => {
+	uni.showModal({
+		title: '提示',
+		content: '确定删除该图片吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				const index = e.currentTarget.dataset.index;
+				workPicture.value.splice(index,1);
+				workPictureOriginal.value.splice(index,1);
+				//that.arr2.splice(e.currentTarget.dataset.id,1)
+			}
+		}
+	});
+};
+
+const handleClearLifePicture = (e) => {
+	uni.showModal({
+		title: '提示',
+		content: '确定删除该图片吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				const index = e.currentTarget.dataset.index;
+				lifePicture.value.splice(index, 1);
+				lifePictureOriginal.value.splice(index, 1);
+				//that.arr2.splice(e.currentTarget.dataset.id,1)
+			}
+		}
+	});
+};
+
+const handleClearCertificatesPicture = (e) => {
+	uni.showModal({
+		title: '提示',
+		content: '确定删除该图片吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				const id = e.currentTarget.dataset.id;
+				certificatesPicture.value.splice(id, 1);
+			}
+		}
+	});
+};
+
+const uploadSuccess = (tempFilePath) => {
+	uni.showToast({
+		title: '保存成功'
+	});
+	// 4.根据自己的业务场景处理tempFilePath ;接口保存,或者上传至云空间
+	console.log('tempFilePath_->', tempFilePath);
+
+	const file = { tempFilePaths: [tempFilePath] };
+	//   const blob = base64ToBlob(tempFilePath);
+
+	updateImage(file, false);
+	//   console.log("blob", blob);
+	//   workPicture.value[workOpenIndex] = blob;
+	//   handleWorkPictureToggleClose();
+};
+
+const uploadLifeSuccess = (tempFilePath) => {
+	uni.showToast({
+		title: '保存成功'
+	});
+	console.log('tempFilePath_->', tempFilePath);
+
+	const file = { tempFilePaths: [tempFilePath] };
+	updateLifeImage(file, false);
+
+	//   handleLifePictureToggleClose();
+};
+
+const base64ToBlob = (base64) => {
+	let arr = base64.split(',');
+	let mime = arr[0].match(/:(.*?);/)[1];
+	let bstr = atob(arr[1]);
+	let n = bstr.length;
+	let u8arr = new Uint8Array(n);
+	while (n--) {
+		u8arr[n] = bstr.charCodeAt(n);
+	}
+	return new Blob([u8arr], {
+		type: mime
+	});
+};
+
+const change = (e) => {
+	console.log('弹窗', e);
+};
+
+const handleWorkPictureToggleClose = () => {
+	picturePopup.value.close();
+};
+
+const handleLifePictureToggleClose = () => {
+	lifePicturePopup.value.close();
+};
+
+const handleWorkPictureToggle = (index) => {
+	imageSrc.value = currentPictureBlob.value;
+	workOpenIndex.value = index;
+	picturePopup.value.open('bottom');
+};
+
+const handleLifePictureToggle = async (index) => {
+	lifeImageSrc.value = currentPictureBlob.value;
+	lifeOpenIndex.value = index;
+	lifePicturePopup.value.open('bottom');
+};
+
+const handleOpenImage = (original = true) => {
+	uni.chooseImage({
+		count: 1,
+		success: (res) => {
+			console.log('选择照片', res);
+			updateImage(res, original);
+		}
+	});
+};
+const handleOpenLifeImage = (original = true) => {
+	uni.chooseImage({
+		count: 1,
+		success: (res) => {
+			console.log('选择照片', res);
+			updateLifeImage(res, original);
+		}
+	});
+};
+const handleOpenCertificatesImage = () => {
+	uni.chooseImage({
+		count: 1,
+		success: (res) => {
+			for (var i = 0; i < res.tempFilePaths.length; i++) {
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				
+				uni.uploadFile({
+					url: `${apiBaseUrl}/api/UpImg/upimg`,
+					filePath: res.tempFilePaths[i],
+					header: {
+						'XX-Token': uni.getStorageSync('token'),
+						'XX-Device-Type': 'web'
+					},
+					name: 'file',
+					formData: {},
+					success: (uploadFileRes) => {
+						console.log('照片结果', uploadFileRes);
+						console.log('照片结果2', JSON.parse(uploadFileRes.data));
+						const pictrue = JSON.parse(uploadFileRes.data);
+						certificatesPicture.value.push(pictrue.data.url);
+						// certificatesPicture.value[certificatesPicture.value.length - 1] = pictrue.data.url;
+						// certificatesPicture.value.push(pictrue.data.url);
+					},
+					complete: () => {
+						setTimeout(function () {
+							uni.hideLoading();
+						}, 100);
+					}
+				});
+			}
+		}
+	});
+};
+
+const updateImage = (res, original) => {
+	for (var i = 0; i < res.tempFilePaths.length; i++) {
+		uni.showLoading({
+			content: '加载中',
+			mask: true
+		});
+		console.log('提交上传', res.tempFilePaths);
+		// if (original) if (original) currentPictureBlob.value = res.tempFilePaths[i];
+
+		uni.uploadFile({
+			url: `${apiBaseUrl}/api/UpImg/upimg`,
+			filePath: res.tempFilePaths[i],
+			header: {
+				'XX-Token': uni.getStorageSync('token'),
+				'XX-Device-Type': 'web'
+			},
+			name: 'file',
+			formData: {},
+			success: (uploadFileRes) => {
+				console.log('照片结果', uploadFileRes);
+				console.log('照片结果2', JSON.parse(uploadFileRes.data));
+				const pictrue = JSON.parse(uploadFileRes.data);
+				// if (original) {
+					workPictureOriginal.value.push(pictrue.data.url);
+					workPicture.value.push(pictrue.data.url);
+					// handleWorkPictureToggle(workPicture.value.length - 1);
+				// } else {
+				// 	workPicture.value[workOpenIndex.value] = pictrue.data.url;
+				// 	handleWorkPictureToggleClose();
+				// }
+			},
+			complete: () => {
+				setTimeout(function () {
+					uni.hideLoading();
+				}, 100);
+			}
+		});
+	}
+};
+const updateLifeImage = (res, original = true) => {
+	for (var i = 0; i < res.tempFilePaths.length; i++) {
+		uni.showLoading({
+			content: '加载中',
+			mask: true
+		});
+
+		// if (original) currentPictureBlob.value = res.tempFilePaths[i];
+
+		uni.uploadFile({
+			url: `${apiBaseUrl}/api/UpImg/upimg`,
+			filePath: res.tempFilePaths[i],
+			header: {
+				'XX-Token': uni.getStorageSync('token'),
+				'XX-Device-Type': 'web'
+			},
+			name: 'file',
+			formData: {},
+			success: (uploadFileRes) => {
+				const pictrue = JSON.parse(uploadFileRes.data);
+				// if (original) {
+					lifePictureOriginal.value.push(pictrue.data.url);
+					lifePicture.value.push(pictrue.data.url);
+					console.log('生活照',lifePictureOriginal.value);
+					// handleLifePictureToggle(lifePicture.value.length - 1);
+					// lifePicture.value[lifeOpenIndex.value] = pictrue.data.url;
+				// } else {
+				// 	lifePicture.value[lifeOpenIndex.value] = pictrue.data.url;
+				// 	handleLifePictureToggleClose();
+				// }
+			},
+			complete: () => {
+				setTimeout(function () {
+					uni.hideLoading();
+				}, 100);
+			}
+		});
+	}
+};
+
+const getUserInfo = () => {
+	request({
+		url: '/api/userjs/getInfo',
+		success: (res) => {
+			console.log('用户信息', res);
+			if (res.data?.data?.work) {
+				workPicture.value = res.data?.data?.work;
+			}
+			if (res.data?.data?.work_original) workPictureOriginal.value = [...res.data?.data?.work_original];
+			else workPictureOriginal.value = [...res.data?.data?.work];
+
+			if (res.data?.data?.pictures) {
+				lifePicture.value = res.data?.data?.pictures;
+			}
+			if (res.data?.data?.life_original) lifePictureOriginal.value = [...res.data?.data?.life_original];
+			else lifePictureOriginal.value = [...res.data?.data?.pictures];
+			console.log('lifePictureOriginal1',lifePictureOriginal.value)
+
+			if (res.data?.data?.identity) {
+				idcardData.value = res.data?.data?.identity;
+			}
+			if (res.data?.data?.certificates) {
+				certificatesPicture.value = res.data?.data?.certificates;
+			}
+			userData.value = res.data?.data;
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const handleDeleteImage = (e) => {
+	console.log('删除', e);
+};
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	renderData();
+});
+
+onShow(() => {
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+
+async function renderData() {
+	if (auth()) {
+		uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+		getUserInfo();
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+:deep(.uni-section) {
+	padding: 20upx 0;
+	.uni-section-content {
+		padding: 20upx;
+	}
+
+	.uni-progress {
+		display: none;
+	}
+}
+
+.idcard_wrap {
+	display: flex;
+	uni-image {
+		width: 185px !important;
+		height: 102px !important;
+	}
+}
+
+.picture_popup_container {
+	// height: 100vh;
+	padding-bottom: 45px;
+	padding-top: 45px;
+	:deep(.uni-content-info) {
+		.cropper-config {
+			justify-content: space-around;
+		}
+	}
+}
+
+.picture_list_wrap {
+	display: flex;
+	flex-wrap: wrap;
+
+	.picture {
+		width: 222upx;
+		height: 222upx;
+		margin-right: 20upx !important;
+		margin-bottom: 20upx;
+
+		&:nth-child(3n) {
+			margin-right: 0 !important;
+		}
+	}
+	.picture_list {
+		position: relative;
+		display: flex;
+		flex-direction: column;
+		&:nth-child(3n) {
+			.picture {
+				margin-right: 0 !important;
+			}
+		}
+		.picture_close {
+			width: 45upx;
+			height: 45upx;
+			position: absolute;
+			right: 18upx;
+			z-index: 1;
+			opacity: 0.8;
+		}
+	}
+}
+
+.agreement_wrap {
+	clear: both;
+	width: 100%;
+	height: 50px;
+	margin: 40upx auto 0;
+	display: block;
+	position: relative;
+	text-align: center;
+	line-height: 50px;
+	font-size: 14px;
+	color: #666;
+	uni-image {
+		width: 14px;
+		height: 14px;
+		position: relative;
+		top: 2px;
+		margin-right: 5px;
+	}
+}
+
+.notice {
+	margin: 0 auto;
+	text-align: center;
+	height: 40px;
+	line-height: 20px;
+	color: #999;
+	font-size: 12px;
+	font-weight: normal;
+}
+</style>

+ 207 - 0
pages/account/complaint.vue

@@ -0,0 +1,207 @@
+<template>
+	<view>
+		 <uni-nav-bar :fixed="true" shadow left-icon="left" title="意见反馈" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+		  <view style="padding: 42upx">
+		    <view class="title_wrap">
+		      <text class="title_prefix">*</text>问题类型</view
+		    >
+		    <view class="content_wrap" @tap="handleOpenPopup"
+		      ><text> {{ items[current]?.name || "请选择问题" }}</text>
+		      <image
+		        class="card_thumbnail"
+		        src="/static/common/right.png"
+		        mode="aspectFill"
+		        style="width: 14upx; height: 24upx"
+		      />
+		    </view>
+		    <view class="title_wrap">
+		      <text class="title_prefix">*</text>问题详情</view
+		    >
+		    <view class="content_wrap" style="height: auto; flex-direction: column">
+		      <textarea
+		        auto-height
+		        :maxlength="100"
+		        placeholder="请描述您遇到的相关问题或功能建议,请上传手机截图,我们将为您不断改进。"
+		        style="
+		          min-height: 150upx;
+		          font-size: 24upx;
+		          font-weight: 400;
+		          color: #999999;
+		        "
+		        v-model="params.idea"
+		      />
+		      <view style="width: 100%; display: flex; justify-content: flex-end"
+		        >{{ params.idea.length }}/100</view
+		      >
+		    </view>
+		
+		    <!-- <view class="title_wrap">
+		      截图或图片<text class="title_suffix">(最多上传3张)</text></view
+		    > -->
+		  </view>
+		
+		  <view class="footer">
+		    <image mode="widthFix" src="/static/images/footer.png" />
+		  </view>
+		
+		  <view class="footer_btn_wrap flex align-center" style="position: fixed">
+		    <view class="footer_btn" @tap="handleSubmit"> 提交 </view>
+		  </view>
+		
+		  <uni-popup ref="popup" background-color="#fff">
+		    <view class="uni-list">
+		      <radio-group @change="handleRadioChange" style="padding: 20upx">
+		        <label
+		          class="flex align-center justify-between"
+		          style="padding-left: 40upx"
+		          v-for="(item, index) in items"
+		          :key="index"
+		        >
+		          <view>{{ item.name }}</view>
+		          <view>
+		            <radio
+		              :value="`${index}`"
+		              :checked="index == current"
+		              style="margin: 20upx"
+		            />
+		          </view>
+		        </label>
+		      </radio-group>
+		    </view>
+		  </uni-popup>
+		</view>
+	</view>
+
+</template>
+<script setup>
+import { ref, reactive } from "vue";
+import { onLoad, onShow } from "@dcloudio/uni-app";
+import request from "/common/request.js";
+import auth from "/common/auth.js";
+
+const statusBarHeight = ref();
+
+onLoad((option) => {
+  statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+});
+
+onShow(() => {
+  auth();
+  uni.$emit('fastOrderNum', false);
+  uni.$emit('receiveOrdernum', false);
+});
+
+const params = reactive({
+  idea: "",
+});
+const current = ref(0);
+const items = reactive([
+  { value: "1", name: "订单问题" },
+  { value: "2", name: "功能问题" },
+  { value: "3", name: "账号问题" },
+  { value: "4", name: "操作问题" },
+  { value: "5", name: "BUG反馈" },
+  { value: "6", name: "其他" },
+]);
+const popup = ref();
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const handleSubmit = () => {
+  if (!params.idea.trim()) {
+    uni.showToast({
+      title: "请填写意见",
+      duration: 2000,
+      icon: "none",
+    });
+    return;
+  }
+
+  uni.showLoading();
+  request({
+    url: "/api/user/addIdea",
+    method: "POST",
+    data: {
+      ...params,
+      type: items[current.value].value,
+    },
+    success: (res) => {
+      console.log("投诉建议", res);
+      uni.hideLoading();
+      uni.showToast({
+        title: res.data?.msg,
+        duration: 2000,
+        icon: "none",
+      });
+      if (res.data.code == 1) {
+        setTimeout(function () {
+          const canNavBack = getCurrentPages();
+          if (canNavBack && canNavBack.length > 1) {
+            uni.navigateBack();
+          } else {
+            history.back();
+          }
+        }, 1500);
+      }
+    },
+    fail: () => {
+      uni.hideLoading();
+    },
+    complete: () => {},
+  });
+};
+const handleOpenPopup = () => {
+  popup.value.open("bottom");
+};
+const handleRadioChange = (e) => {
+  console.log("选择", e);
+  current.value = e.detail.value;
+  popup.value.close();
+};
+</script>
+
+<style lang="scss" scoped>
+.content {
+  .title_wrap {
+    font-size: 28upx;
+    font-weight: 400;
+    font-family: Verdana;
+    color: #333333;
+    margin: 42upx 0 24upx;
+    .title_prefix {
+      color: #ff490e;
+      margin-right: 5upx;
+    }
+    .title_suffix {
+      font-size: 26upx;
+      color: #999999;
+    }
+  }
+  .content_wrap {
+    width: 670upx;
+    height: 80upx;
+    background: #ffffff;
+    border: 1upx solid #cccccc;
+    border-radius: 10upx;
+
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+    padding: 20upx;
+
+    font-size: 24upx;
+    font-weight: 400;
+    color: #999999;
+  }
+
+  uni-radio {
+    &::before {
+      content: "";
+    }
+  }
+}
+</style>

+ 352 - 0
pages/account/forgot.vue

@@ -0,0 +1,352 @@
+<template>
+	<view class="content" >
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="忘记密码" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="logo_wrap">
+			<image src="/static/logo.png" class="logo" />
+		</view>
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/phone.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入手机号" v-model="loginData.mobile" />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/verify.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" type="number" :maxlength="6" placeholder="请输入验证码" v-model="loginData.code" style="width: 330upx" />
+				<view
+					style="width: 160upx; font-size: 28upx; font-weight: 400; color: #07d69e; display: flex; justify-content: flex-end; align-items: center"
+					@tap="getVerificationCode"
+				>
+					{{ countdown > 0 ? countdown : '获取验证码' }}
+				</view>
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/password.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入密码" :password="isPassword" v-model="loginData.password" />
+				<image src="/static/login/hidden.png" class="form_input_suffix" mode="aspectFill" @click="onChangePassword" v-if="isPassword" />
+				<image src="/static/login/show.png" class="form_input_suffix" mode="aspectFill" @click="onChangePassword" v-else />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_link" @tap="handleToRegister">注册</view>
+			<view class="form_link" @tap="handleToLogin">登录</view>
+		</view>
+
+		<view style="height: 100px"></view>
+
+		<view class="agreement">
+			<image src="/static/common/radio_selected.png" class="agreement_radio" @tap="handleAgreement" v-if="isAgreement"></image>
+			<image src="/static/common/radio_unselect.png" class="agreement_radio" @tap="handleAgreement" v-else></image>
+			<text @tap="handleAgreement">已阅读并同意</text>
+			<text class="link_text" @tap="handleToServiceHtml">《用户协议》</text>
+			和
+			<text class="link_text" @tap="handleToPravicyHtml">《隐私政策》</text>
+		</view>
+
+		<button type="primary" class="form_submit_btn" :loading="loading" @click="handleSubmit">更改密码</button>
+		<uni-popup ref="alertDialog" type="dialog">
+			<uni-popup-dialog type="info" cancelText="取消" confirmText="已阅读并同意" title="服务协议及隐私保护" @confirm="dialogConfirm" @close="dialogClose">
+				<view>
+					为了保障您的合法权益,请阅读本平台以下协议
+					<text style="color: #07d69e" @tap="handleToServiceHtml">《用户协议》</text>
+					、
+					<text style="color: #07d69e" @tap="handleToPravicyHtml">《隐私政策》</text>
+				</view>
+			</uni-popup-dialog>
+		</uni-popup>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import { apiBaseUrl } from '/common/config.js';
+
+const statusBarHeight = ref();
+const countdown = ref(0);
+
+const loading = ref(false);
+const loginData = reactive({
+	mobile: '',
+	password: '',
+	code: '',
+	type: 2
+});
+
+const isPassword = ref(true);
+const isAgreement = ref(false);
+const alertDialog = ref();
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	const _countdownTime = uni.getStorageSync('countdownVerificationCode');
+	if (_countdownTime) {
+		const _countdown = 60 - parseInt((new Date() - _countdownTime) / 1000);
+		if (_countdown > 0) countdown.value = _countdown;
+	}
+});
+
+onShow((option) => {});
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const showToast = (title) => {
+	uni.showToast({ title, duration: 2000, icon: 'none' });
+};
+const verifyFormData = () => {
+	let message = '';
+	if (loginData.mobile == '') message = '请填写手机号';
+	else if (loginData.password == '') message = '请填写密码';
+	else if (loginData.code == '') message = '请填写验证码';
+	return message;
+};
+
+const onChangePassword = () => {
+	isPassword.value = !isPassword.value;
+};
+
+const handleToLogin = () => {
+	uni.redirectTo({
+		url: '/pages/account/login'
+	});
+};
+
+const handleToRegister = () => {
+	uni.redirectTo({
+		url: '/pages/account/register'
+	});
+};
+
+//跳转到用户协议
+const handleToServiceHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=24'
+	});
+};
+//跳转到隐私政策
+const handleToPravicyHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=23'
+	});
+};
+
+const handleAgreement = () => {
+	isAgreement.value = !isAgreement.value;
+};
+
+const dialogConfirm = () => {
+	isAgreement.value = true;
+	handleSubmit();
+};
+const dialogClose = () => {};
+const dialogToggle = () => {
+	alertDialog.value.open();
+};
+
+const handleSubmit = async () => {
+	let message = verifyFormData();
+
+	if (message) {
+		showToast(message);
+		return;
+	}
+
+	if (!isAgreement.value) {
+		dialogToggle();
+		return;
+	}
+
+	uni.showLoading();
+	request({
+		url: `/api/uppass`,
+		method: 'POST',
+		data: { ...loginData },
+		success: async (res) => {
+			console.log('密码重置', res);
+			uni.hideLoading();
+			showToast(res.data?.msg || '更改成功');
+			if (res.data.code == 1) {
+				setTimeout(function () {
+					uni.redirectTo({
+						url: '/pages/account/login'
+					});
+				}, 2000);
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const getVerificationCode = () => {
+	if (countdown.value) return;
+
+	if (!loginData.mobile) {
+		uni.showToast({
+			title: '请输入手机号',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+
+	countdown.value = 60;
+	uni.setStorageSync({
+		key: 'countdownVerificationCode',
+		data: new Date()
+	});
+
+	let countdownTimer = setInterval(function () {
+		if (countdown.value > 0) countdown.value -= 1;
+		else {
+			countdown.value = 0;
+			uni.removeStorageSync('countdownVerificationCode');
+			clearInterval(countdownTimer);
+		}
+	}, 1000);
+
+	uni.showLoading({
+		content: '加载中',
+		mask: true
+	});
+	request({
+		url: '/api/getVerificationCode',
+		method: 'POST',
+		data: {
+			mobile: loginData.mobile,
+			status: 2,
+			type: 2
+		},
+		success: (res) => {
+			uni.hideLoading();
+			console.log('获取验证码', res);
+			const message = res.data?.msg || '验证码已发送';
+			uni.showToast({
+				title: message,
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		fail: () => {
+			countdown.value = 0;
+			uni.removeStorageSync('countdownVerificationCode');
+			clearInterval(countdownTimer);
+			uni.hideLoading();
+		},
+		complete: () => {}
+	});
+};
+</script>
+<style lang="scss" scoped>
+.content {
+	width: 750upx;
+	margin: 0 auto;
+	background: #f9f9f9;
+	position: relative;
+
+	.logo_wrap {
+		padding: 69upx 0;
+		.logo {
+			width: 160upx;
+			height: 160upx;
+			display: block;
+			margin: 0 auto;
+			border-radius: 40upx;
+		}
+	}
+	.form_row {
+		display: flex;
+		justify-content: space-between;
+		padding: 0 60upx;
+		.form_input_wrap {
+			width: 630upx;
+			height: 80upx;
+			background: #ffffff;
+			border: 1upx solid #07d69e;
+			border-radius: 40upx;
+			margin: 0 auto 30upx;
+
+			display: flex;
+			padding: 18upx 35upx 22upx;
+
+			.form_input_prefix {
+				width: 40upx;
+				height: 40upx;
+			}
+			.form_input {
+				width: 430upx;
+				height: 42upx;
+				font-size: 28upx;
+				font-weight: 400;
+				color: #999999;
+				line-height: 40upx;
+				margin: 0 20upx;
+			}
+
+			.form_input_suffix {
+				width: 40upx;
+				height: 40upx;
+			}
+		}
+		.form_link {
+			font-size: 26upx;
+			font-weight: 400;
+			color: #07d69e;
+			margin: 0 22upx;
+		}
+	}
+
+	.form_submit_btn {
+		width: 630upx;
+		height: 80upx;
+		background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+		border-radius: 40upx;
+
+		margin: 10upx auto;
+		font-size: 32upx;
+		font-weight: bold;
+		color: #ffffff;
+	}
+
+	.agreement {
+		font-size: 24upx;
+		color: #666;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 62upx 0;
+		.agreement_radio {
+			width: 28upx;
+			height: 28upx;
+			margin: 0 10upx;
+		}
+		.link_text {
+			color: #07d69e;
+		}
+	}
+}
+
+:deep(.uni-modal) {
+	.uni-modal__bd {
+		padding: 30upx;
+	}
+	.uni-modal__ft {
+		.uni-modal__btn_primary {
+			color: #07d69e !important;
+		}
+		.uni-modal__btn_default {
+			color: #999 !important;
+		}
+	}
+}
+</style>

+ 71 - 0
pages/account/help.vue

@@ -0,0 +1,71 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" :title="title" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+			<rich-text :nodes="content"></rich-text>
+
+			<view class="footer">
+				<image mode="widthFix" src="/static/common/footer.png" />
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+
+const statusBarHeight = ref();
+const content = ref();
+const title = ref();
+
+const props = defineProps({
+	id: Number | String
+});
+
+onLoad(() => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	getContent();
+});
+onShow(() => {
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const getContent = () => {
+	uni.showLoading();
+	request({
+		url: '/api/portal/getInfo',
+		method: 'GET',
+		data: {
+			id: props.id
+		},
+		success: (res) => {
+			if (res.data?.data?.post_content) {
+				content.value = res.data?.data?.post_content;
+				title.value = res.data?.data?.post_title;
+				uni.setNavigationBarTitle({
+					title: res.data?.data?.post_title
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+</script>
+<style lang="scss" scoped>
+.content {
+	padding: 60upx 20upx 20upx;
+	p {
+		margin: 20upx;
+	}
+}
+</style>

+ 618 - 0
pages/account/index.vue

@@ -0,0 +1,618 @@
+<template>
+	<view class="content" :style="{ paddingTop: `${statusBarHeight}px` }">
+		<view style="display: flex; justify-content: space-between; padding: 40upx">
+			<view style="display: flex">
+				<view style="margin-right: 41upx" @tap="handleToSetting">
+					<image class="card_thumbnail" :src="userData?.js?.avatar || '/static/account/avatar.png'" mode="aspectFill" style="width: 130upx; height: 130upx" />
+				</view>
+				<view style="display: flex; flex-direction: column; justify-content: center">
+					<view style="font-size: 40upx; font-weight: bold; color: #000000">{{ userData?.js?.name || userData?.mobile }}</view>
+
+					<view style="font-size: 26upx; font-weight: 400; color: #666666; margin: 24upx 0 0">
+						{{ userData?.mobile }}
+						<!-- #ifdef APP-PLUS -->
+						<!-- <text
+              style="color: #999; font-size: 12px; margin-left: 10px"
+              v-if="userData?.openid"
+              >已绑定微信</text
+            >
+            <text
+              style="color: #07d69e; font-size: 12px; margin-left: 10px"
+              v-else
+              >绑定微信</text
+            > -->
+						<!-- #endif -->
+					</view>
+				</view>
+			</view>
+			<view style="display: flex; flex-direction: column; align-items: center">
+				<view>
+					<image class="card_thumbnail" src="/static/account/levle_default.png" mode="aspectFill" style="width: 80upx; height: 80upx" />
+				</view>
+				<view style="font-size: 24upx; font-weight: 400; color: #333333; margin-top: 5upx"></view>
+			</view>
+		</view>
+
+		<view class="card">
+			<view class="notice_wrap text-sm">
+				<uni-notice-bar showIcon text="涉嫌私下交易,禁止技师接单的处罚通知!" backgroundColor="#DCFCF1" color="#07D69E" :speed="80">
+					<image style="width: 64upx; height: 64upx; border-radius: 16upx; margin-right: 20upx; margin-bottom: 10upx" mode="aspectFit" src="/static/logo.png"></image>
+				</uni-notice-bar>
+			</view>
+		</view>
+
+		<view class="card wallet_wrap" @tap="handleToCashDetail">
+			<view>
+				<view class="wallet_title">我的钱包</view>
+				<view class="wallet_balance">{{ userData?.balance }}</view>
+			</view>
+			<view>
+				<button class="wallet_cash" @tap.stop="handleToCash">提现</button>
+			</view>
+		</view>
+
+		<view class="store_wrap">
+			<view class="card coupon_wrap" style="padding: 0 20upx; align-items: center">
+				<view class="store_title">我的好评</view>
+				<view class="store_title">
+					<uni-rate :touchable="false" size="14" color="#FFA6A8" active-color="#FF8000" :readonly="true" :value="userData?.score ? userData?.score.toFixed(1) : 5" />
+				</view>
+			</view>
+			<view class="card order_wrap">
+				<view class="store_title">我的订单</view>
+				<view class="store_title">
+					<text class="store_number">{{ userData?.js?.jiedan_num }}</text>
+					单
+				</view>
+			</view>
+		</view>
+
+		<view>
+			<view class="card_title">常用功能</view>
+			<view class="card tools_wrap">
+				<view class="tools_column" @tap="handleNavigatorTo('/pages/account/inviteCode')">
+					<image class="tools_thumbnail" src="/static/account/QR_code.png" mode="aspectFill" />
+					<text class="tools_title">我的二维码</text>
+				</view>
+
+				<view class="tools_column" @tap="handleToAgent">
+					<image class="tools_thumbnail" src="/static/account/agent.png" mode="aspectFill" />
+					<text class="tools_title">代理中心</text>
+				</view>
+				<view class="tools_column" @tap="handleToPromotion">
+					<image class="tools_thumbnail" src="/static/account/promotion.png" mode="aspectFill" />
+					<text class="tools_title">推广团队</text>
+				</view>
+				<view class="tools_column" @tap="handleToSetting">
+					<image class="tools_thumbnail" src="/static/account/setting.png" mode="aspectFill" />
+					<text class="tools_title">设置管理</text>
+				</view>
+				<view class="tools_column" @tap="callCustomService">
+					<image class="tools_thumbnail" src="/static/account/custom.png" mode="aspectFill" />
+					<text class="tools_title">联系客服</text>
+				</view>
+				<view class="tools_column" @tap="handleToProcess">
+					<image class="tools_thumbnail" src="/static/account/process.png" mode="aspectFill" />
+					<text class="tools_title">服务须知</text>
+				</view>
+				<view class="tools_column" @tap="handleToAbout">
+					<image class="tools_thumbnail" src="/static/account/about.png" mode="aspectFill" />
+					<text class="tools_title">关于我们</text>
+				</view>
+				<view class="tools_column">
+					<image class="tools_thumbnail" src="/static/account/feedback.png" mode="aspectFill" />
+					<text class="tools_title" @tap="handleToComplaint">意见反馈</text>
+				</view>
+			</view>
+		</view>
+
+		<view class="footer" style="display: flex; flex-direction: column; align-items: center;">
+			<image mode="widthFix" src="/static/common/footer.png" />
+			 <!-- #ifdef APP-PLUS -->
+			<view style="color: gainsboro;">当前版本{{version}}</view>
+			<!-- #endif -->
+		</view>
+		<callAlarm />
+	</view>
+</template>
+
+<style lang="scss" scoped>
+.content {
+	background: url('/static/common/background.png') no-repeat center center;
+	background-size: cover;
+
+	.wallet_wrap {
+		width: 710upx;
+		height: 160upx;
+		position: relative;
+		top: -15px;
+		background: url('/static/account/wallet_background.png') no-repeat center center;
+		background-size: cover;
+
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		padding: 20upx 30upx;
+		.wallet_title {
+			font-size: 30upx;
+			font-weight: 400;
+			color: #ffffff;
+			height: 50upx;
+			line-height: 50upx;
+		}
+		.wallet_balance {
+			font-size: 38upx;
+			font-weight: bold;
+			color: #ffffff;
+			height: 50upx;
+			line-height: 50upx;
+		}
+		.wallet_cash {
+			width: 120upx;
+			height: 56upx;
+			background: #ffffff;
+			border-radius: 28upx;
+
+			font-size: 30upx;
+			font-weight: 400;
+			color: #07d69e;
+			line-height: 1.75rem;
+		}
+	}
+	.store_wrap {
+		display: flex;
+		justify-content: space-between;
+		position: relative;
+		top: -20upx;
+		.coupon_wrap,
+		.order_wrap {
+			width: 345upx;
+			height: 120upx;
+			background: url('/static/account/coupon_background.png') no-repeat center center;
+			background-size: cover;
+
+			display: flex;
+			justify-content: space-between;
+			align-items: baseline;
+			padding: 24upx 20upx 0;
+		}
+		.order_wrap {
+			background: url('/static/account/order_background.png') no-repeat center center;
+			margin-left: 0;
+		}
+
+		.store_title {
+			font-size: 26upx;
+			font-weight: 400;
+			color: #000000;
+		}
+		.store_number {
+			font-size: 48upx;
+			font-weight: bold;
+			color: #000000;
+			margin: 0 2upx;
+		}
+	}
+	.tools_wrap {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 30upx 20upx;
+		.tools_column {
+			width: 25%;
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+
+			margin: 10upx 0;
+
+			.tools_thumbnail {
+				width: 64upx;
+				height: 64upx;
+			}
+			.tools_title {
+				font-size: 26upx;
+				font-weight: 400;
+				color: #333333;
+				margin: 10upx 0;
+			}
+		}
+	}
+	.card_title {
+		font-size: 28upx;
+		font-weight: 400;
+		color: #000000;
+		margin: 0 15px;
+		height: 35upx;
+	}
+}
+</style>
+
+<script setup>
+import callAlarm from '/components/callAlarm.vue';
+import { ref, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+// import wx from "weixin-js-sdk";
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+
+const version = ref();
+const statusBarHeight = ref();
+const userData = ref();
+const customServiceData = ref(); // 客服电话
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	initData();
+});
+
+onShow(() => {
+	renderData();
+	uni.$emit('fastOrderNum', true);
+	uni.$emit('receiveOrdernum', true);
+});
+
+onPullDownRefresh(() => {
+	getUserInfo();
+});
+
+async function initData() {
+	// #ifdef APP-PLUS
+	version.value = plus.runtime.version;
+	// #endif
+	getCustomService();
+	if (auth(false)) {
+		// getCofig();
+		uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+	}
+}
+
+async function renderData() {
+	uni.$emit('realtimeOrderOpen', false);
+	if (auth()) {
+		getUserInfo();
+		uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+	}
+}
+
+// #ifdef H5
+// 配置信息
+function getCofig() {
+	request({
+		url: '/api/jsOrder/pay',
+		method: 'POST',
+		data: {
+			pay_type: 'wxpay',
+			order_id: that.id,
+			lng: uni.getStorageSync('lng'),
+			lat: uni.getStorageSync('lat'),
+			service_id: that.id2
+		},
+		success: (res) => {
+			console.log(res);
+
+			if (res.data.code == 1) {
+				if (that.cur != 3) {
+					// #ifdef APP-PLUS
+					uni.requestPayment({
+						provider: fs,
+						orderInfo: res.data.data, //微信、支付宝订单数据
+						success: function (res) {
+							console.log('success:' + JSON.stringify(res));
+							uni.showToast({
+								title: '支付成功',
+								duration: 2000,
+								icon: 'none'
+							});
+							uni.$emit('gxfb1', {
+								msg: '页面更新'
+							});
+							//	uni.navigateBack();
+							setTimeout(function () {
+								uni.navigateBack({
+									delta: 2
+								});
+							}, 1000);
+						},
+						fail: function (err) {
+							console.log('fail:' + JSON.stringify(err));
+							uni.showToast({
+								title: '支付失败',
+								duration: 2000,
+								icon: 'none'
+							});
+						}
+					});
+					// #endif
+					// #ifdef H5
+					// 微信H5
+					if (that.isWxBrowser()) {
+						that.wxJsPay(res.data.data);
+					}
+					// #endif
+				} else {
+					uni.showToast({
+						title: '支付成功',
+						duration: 2000,
+						icon: 'none'
+					});
+					uni.$emit('gxfb1', {
+						msg: '页面更新'
+					});
+					//	uni.navigateBack();
+					setTimeout(function () {
+						uni.navigateBack({
+							delta: 2
+						});
+					}, 1000);
+				}
+			} else {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			setTimeout(function () {
+				uni.hideLoading();
+			}, 2000);
+		}
+	});
+
+	const appid = 'wx9ea72aa0d6935bb1';
+	const timestamp = '123456';
+	const nonceStr = 'ABCDEF';
+	const signature = 'didongdiandao';
+	wxConfig(appid, timestamp, nonceStr, signature);
+	/* let url = "";
+  let ua = navigator.userAgent.toLowerCase();
+  url = window.location.href.split("#")[0]; //获取到的url是当前页面的域名
+
+  // GetWeixinScan 后端提供配置信息
+  uni.request({
+    url: "/api/goods/wx/wx_jsapi_ticket", // 此处找后端要接口 微信不能使用端口访问端口改为 wx
+    method: "GET",
+    data: {
+      url: url, // 当前页面的域名
+    },
+    success: (response) => {
+      const res = response.data;
+      console.log(res, "resres");
+      if (res) {
+        wxConfig(res.appId, res.timestamp, res.nonceStr, res.signature);
+      } else {
+        alert("获取配置信息返回为空");
+      }
+    },
+    fail: (error) => {
+      console.log(
+        error,
+        "请求获取微信配置失败 请求方法:http://xx.haileer.top:8901/wx_jsapi_ticket"
+      );
+    },
+  }); */
+}
+// #endif
+
+// #ifdef H5
+// wx.config的配置
+function wxConfig(appId, timestamp, nonceStr, signature) {
+	wx.config({
+		debug: true, // 开启调试模式,
+		appId: appId, // 必填,企业号的唯一标识
+		timestamp: timestamp, // 必填,生成签名的时间戳
+		nonceStr: nonceStr, // 必填,生成签名的随机串
+		signature: signature, // 必填,签名
+		jsApiList: ['scanQRCode', 'checkJsApi', 'hideOptionMenu'] // 必填,需要使用的JS接口列表
+	});
+	wx.ready(() => {
+		console.log('配置完成,扫码前准备完成');
+		// 1 判断当前版本是否支持指定 JS 接口,支持批量判断
+		wx.checkJsApi({
+			jsApiList: ['scanQRCode'],
+			success: function (res) {
+				// alert('检查结果',res)
+				// 以键值对的形式返回,可用的api值true,不可用为false// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
+				if (res.checkResult.scanQRCode == false) {
+					alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
+					return;
+				}
+			}
+		});
+		wx.hideOptionMenu();
+	});
+	wx.error(function (res) {
+		alert('出错了:' + res.errMsg); //wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
+	});
+}
+// #endif
+
+// 点击扫码 区分普通扫码和H5扫码
+function scan() {
+	// #ifndef H5
+	uni.scanCode({
+		onlyFromCamera: true,
+		success: function (res) {
+			console.log('条码res:' + res);
+			console.log('条码类型:' + res.scanType);
+			console.log('条码内容:' + res.result);
+
+			const result = res.result;
+			if (result) {
+				const codeIndex = result.indexOf('code=');
+				const code = result.slice(codeIndex + 5);
+				console.log('code', code);
+				if (code && codeIndex > -1) {
+					// 普通分销商
+					if (userData.value.distributor_id === 1) {
+						codeOpt(9, code);
+					} else {
+						uni.showModal({
+							title: '更换分销商身份',
+							content: '当前身份:' + userData.value.fenxiaoshang + ',确认更换身份为 出租车分销商 吗?',
+							success: function (res) {
+								if (res.confirm) {
+									// 执行确认后的操作
+									codeOpt(9, code);
+								} else {
+									// 执行取消后的操作
+								}
+							}
+						});
+					}
+				}
+			}
+		},
+		fail: (error) => {
+			console.log('暂不支持1');
+		}
+	});
+	// #endif
+	// #ifdef H5
+	// onScan();
+	// #endif
+}
+
+function codeOpt(id, code) {
+	request({
+		url: '/api/js/reg/codeOpt',
+		data: {
+			id: id,
+			code: code
+		},
+		method: 'GET',
+		success: (ret) => {
+			console.log('codeOpt ret', ret);
+			if (ret.data.code === 1) {
+				const data = ret.data.data;
+				if (data.new) {
+					uni.showToast({
+						title: ret.data.msg,
+						//将值设置为 success 或者直接不用写icon这个参数
+						icon: 'none',
+						//显示持续时间为 2秒
+						duration: 2000
+					});
+				} else {
+					uni.showToast({
+						title: ret.data.msg,
+						//将值设置为 success 或者直接不用写icon这个参数
+						icon: 'none',
+						//显示持续时间为 2秒
+						duration: 2000
+					});
+				}
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+}
+// #ifdef H5
+// h5扫描二维码并解析
+function onScan() {
+	wx.scanQRCode({
+		needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+		scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
+		success: function (res) {
+			var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果
+			var resultArr = result.split(','); // 扫描结果以逗号分割数组
+			var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容
+		},
+		fail: function (response) {
+			console.log('调用扫码失败');
+			console.log(response);
+			alert(' wx.scanQRCode失败');
+		}
+	});
+}
+// #endif
+
+// 获取客服电话
+const getCustomService = () => {
+	request({
+		url: '/api/getKefu',
+		method: 'GET',
+		success: (res) => {
+			console.log('客服', res);
+			if (res.data.code == 1) {
+				customServiceData.value = res.data.data;
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			// uni.hideLoading();
+		}
+	});
+};
+// 联系客服
+const callCustomService = () => {
+	customServiceData.value &&
+		uni.makePhoneCall({
+			phoneNumber: customServiceData.value
+		});
+};
+
+const getUserInfo = () => {
+	uni.showLoading();
+	request({
+		url: '/api/user/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('客户信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+			} else if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+			uni.stopPullDownRefresh();
+		}
+	});
+};
+
+const handleNavigatorTo = (path) => {
+	uni.navigateTo({ url: path });
+};
+const handleToCash = () => {
+	uni.navigateTo({ url: '/pages/account/cash' });
+};
+const handleToSetting = () => {
+	uni.navigateTo({ url: '/pages/account/setting' });
+};
+const handleToComplaint = () => {
+	uni.navigateTo({ url: '/pages/account/complaint' });
+};
+const handleToAbout = () => {
+	uni.navigateTo({ url: '/pages/account/about' });
+};
+const handleToCashDetail = () => {
+	uni.navigateTo({ url: '/pages/account/wallet' });
+};
+const handleToProcess = () => {
+	uni.navigateTo({ url: '/pages/account/help?id=9' });
+};
+const handleToAgent = () => {
+	uni.navigateTo({ url: '/pages/account/agent' });
+};
+const handleToPromotion = () => {
+	uni.navigateTo({ url: '/pages/account/promotion' });
+};
+</script>

+ 324 - 0
pages/account/inviteCode.vue

@@ -0,0 +1,324 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="我的二维码" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+			<view :style="{ paddingTop: `${statusBarHeight}px` }">
+				<view class="card scroll-view-item">
+					<view class="service_avatar_wrap avatar_wrap" style="display: flex; justify-content: center">
+						<image :src="userData?.js?.avatar || '/static/account/avatar.png'" mode="aspectFill" class="service_avatar avatar big radius-df" />
+					</view>
+					<view class="text-center" style="font-size: 40upx; font-weight: bold; color: #000000">{{ userData?.js?.name }}</view>
+					<view class="service_avatar_wrap invite_code_wrap" style="display: flex; justify-content: center">
+						<image :src="inviteData?.erweima" mode="aspectFill" class="service_avatar avatar big radius-df" />
+					</view>
+					<view class="text-center" style="font-size: 32upx; font-weight: bold; color: #010101">邀请码:{{ inviteData?.referral }}</view>
+					<view class="text-center" style="font-size: 29upx; font-weight: 400; color: #999999; margin: 30upx 0upx 75upx">扫描二维码,邀请好友</view>
+					<!-- #ifdef APP-PLUS -->
+					<view class="flex justify-between invite_button_wrap">
+						<view class="invite_button" @tap.stop="handleOpen">分享链接</view>
+						<view class="invite_button" @tap.stop="handleToRule">分享规则</view>
+					</view>
+					<!-- #endif -->
+				</view>
+				<!-- #ifdef APP-PLUS -->
+				<view style="margin: 90upx 0 40upx">
+					<view
+						style="
+							width: 530upx;
+							height: 80upx;
+							background: #07d69e;
+							border-radius: 40upx;
+							margin: 0 auto;
+							display: flex;
+							justify-content: center;
+							align-items: center;
+
+							font-size: 30upx;
+							color: #ffffff;
+						"
+						@tap="downImage"
+					>
+						下载二维码
+					</view>
+				</view>
+				<!-- #endif -->
+			</view>
+
+			<uni-popup ref="inviteLinkPopup">
+				<view class="invite_link_popup">
+					<view style="height: 100upx; width: 100%; line-height: 100upx; text-align: center; color: #464646; border-bottom: 1upx solid #ededed">分享链接</view>
+					<view style="display: flex; align-items: center; padding: 20upx; justify-content: space-around">
+						<view style="margin: 0 10px; text-align: center" @tap="shareWechat">
+							<view>
+								<image src="/static/account/invite/wechat.png" mode="aspectFill" class="service_avatar avatar big radius-df" style="" />
+							</view>
+							<view>微信</view>
+						</view>
+
+						<view style="margin: 0 10px; text-align: center" @tap="shareWechatCircle">
+							<view>
+								<image src="/static/account/invite/circle.png" mode="aspectFill" class="service_avatar avatar big radius-df" style="" />
+							</view>
+							<view>朋友圈</view>
+						</view>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+	</view>
+</template>
+
+<style lang="scss" scoped>
+.content {
+	background: url('/static/account/invite/background.png') no-repeat center center;
+	background-size: cover;
+	min-height: calc(100vh - 155upx);
+	padding: 210upx 80upx 90upx;
+	.card {
+		width: 590upx;
+		height: 785upx;
+		margin: 0;
+		position: relative;
+		padding-top: 90upx;
+	}
+	.scroll-view-item {
+		display: block;
+		.avatar_wrap {
+			width: 100%;
+			position: absolute;
+			top: -70px;
+			.service_avatar {
+				width: 200upx;
+				height: 200upx;
+			}
+		}
+		.invite_code_wrap {
+			.service_avatar {
+				width: 314upx;
+				height: 314upx;
+			}
+		}
+
+		.invite_button_wrap {
+			padding: 0 30upx;
+			.invite_button {
+				width: 220upx;
+				height: 60upx;
+				background: #ffffff;
+				border: 1upx solid #07d69e;
+				border-radius: 30upx;
+				font-size: 28upx;
+				font-weight: 400;
+				color: #07d69e;
+
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
+	}
+	:deep(.uni-popup__wrapper) {
+		.invite_link_popup {
+			height: 300upx;
+			background: #fff;
+		}
+	}
+}
+</style>
+
+<script setup>
+import { ref, watch, reactive, getCurrentInstance } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import getLocation from '/common/getLocation.js';
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+import { apiBaseUrl, webBaseUrl } from '/common/config.js';
+
+const statusBarHeight = ref();
+const inviteData = ref();
+const inviteLinkPopup = ref();
+const userData = ref();
+
+const handleToRule = () => {
+	uni.navigateTo({ url: '/pages/account/help?id=14' });
+};
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	console.log('statusBarHeight', statusBarHeight.value);
+});
+
+onShow((option) => {
+	renderData();
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+
+async function renderData() {
+	uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+	if (auth()) {
+		getUserInfo();
+		getInviteCode();
+	}
+}
+
+function getInviteCode() {
+	uni.showLoading();
+	request({
+		url: '/api/user/geterweima',
+		method: 'GET',
+		success: (res) => {
+			console.log('二维码', res);
+			if (res.data?.code == 1) {
+				inviteData.value = res.data?.data;
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+}
+
+const getUserInfo = () => {
+	uni.showLoading();
+	request({
+		url: '/api/user/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('技师信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+			} else if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+function handleOpen() {
+	inviteLinkPopup.value.open('bottom');
+}
+
+function downImage() {
+	let url = inviteData.value?.erweima;
+	uni.downloadFile({
+		url,
+		header: {
+			'XX-Token': uni.getStorageSync('token'),
+			'XX-Device-Type': 'web'
+		},
+		success: (res) => {
+			console.log('下载文件', res);
+			if (res.statusCode === 200) {
+				const file = res.tempFilePath;
+				save(file);
+			}
+		}
+	});
+}
+
+//保存图片到本地
+function save(url) {
+	uni.saveImageToPhotosAlbum({
+		filePath: url,
+		success: () => {
+			uni.showToast({
+				title: '图片已保存',
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		fail: () => {
+			uni.showToast({
+				title: '保存失败',
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		complete: () => {}
+	});
+}
+
+//  #ifdef APP-PLUS
+function shareWechat() {
+	uni.share({
+		provider: 'weixin',
+		scene: 'WXSceneSession',
+		type: 0,
+		imageUrl: `${webBaseUrl}/static/logo.png`,
+		href: `${webBaseUrl}/pages/account/register?invite=${inviteData.value?.referral}`,
+		title: '嘀咚点到',
+		summary: '邀请您加入嘀咚点到',
+		success: function (res) {
+			console.log('success:' + JSON.stringify(res));
+			uni.showToast({
+				title: '分享成功',
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		fail: function (err) {
+			console.log('fail:' + JSON.stringify(err));
+			uni.showToast({
+				title: JSON.stringify(err),
+				duration: 5000,
+				icon: 'none'
+			});
+			uni.showToast({
+				title: '分享失败',
+				duration: 2000,
+				icon: 'none'
+			});
+		}
+	});
+}
+function shareWechatCircle() {
+	uni.share({
+		provider: 'weixin',
+		scene: 'WXSceneTimeline',
+		type: 0,
+		imageUrl: `${webBaseUrl}/static/logo.png`,
+		href: `${webBaseUrl}/pages/account/register?invite=${inviteData.value?.referral}`,
+		title: '嘀咚点到',
+		summary: '邀请你加入嘀咚点到',
+		success: function (res) {
+			console.log('success:' + JSON.stringify(res));
+			uni.showToast({
+				title: '分享成功',
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		fail: function (err) {
+			console.log('fail:' + JSON.stringify(err));
+			uni.showToast({
+				title: '分享失败',
+				duration: 2000,
+				icon: 'none'
+			});
+		}
+	});
+}
+//  #endif
+</script>

+ 362 - 0
pages/account/login.vue

@@ -0,0 +1,362 @@
+<template>
+	<view class="content" >
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="技师登录" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="logo_wrap">
+			<image src="/static/logo.png" class="logo" />
+		</view>
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/phone.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入手机号" v-model="loginData.mobile" />
+			</view>
+		</view>
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/password.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入密码" :password="isPassword" v-model="loginData.password" />
+				<image src="/static/login/hidden.png" class="form_input_suffix" mode="aspectFill" @tap="onChangePassword" v-if="isPassword" />
+				<image src="/static/login/show.png" class="form_input_suffix" mode="aspectFill" @tap="onChangePassword" v-else />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_link" @tap="handleToForgot">忘记密码</view>
+			<view class="form_link" @tap="handleToRegister">注册</view>
+		</view>
+
+		<view style="height: 100px"></view>
+
+		<view class="agreement">
+			<image src="/static/common/radio_selected.png" class="agreement_radio" @tap="handleAgreement" v-if="isAgreement"></image>
+			<image src="/static/common/radio_unselect.png" class="agreement_radio" @tap="handleAgreement" v-else></image>
+			<text @tap="handleAgreement">已阅读并同意</text>
+			<text class="link_text" @tap="handleToServiceHtml">《用户协议》</text>
+			和
+			<text class="link_text" @tap="handleToPravicyHtml">《隐私政策》</text>
+		</view>
+
+		<button type="primary" class="form_submit_btn" :loading="loading" @tap="handleLogin">登录</button>
+
+		<uni-popup ref="alertDialog" type="dialog">
+			<uni-popup-dialog type="info" cancelText="取消" confirmText="已阅读并同意" title="服务协议及隐私保护" @confirm="dialogConfirm" @close="dialogClose">
+				<view>
+					为了保障您的合法权益,请阅读本平台以下协议
+					<text style="color: #07d69e" @tap="handleToServiceHtml">《用户协议》</text>
+					、
+					<text style="color: #07d69e" @tap="handleToPravicyHtml">《隐私政策》</text>
+				</view>
+			</uni-popup-dialog>
+		</uni-popup>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+
+const loading = ref(false);
+const loginData = reactive({
+	mobile: '',
+	password: '',
+	status: 1,
+	type: 2
+});
+const isPassword = ref(true);
+const isAgreement = ref(false);
+
+const statusBarHeight = ref();
+const alertDialog = ref();
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	console.log('statusBarHeight', statusBarHeight.value);
+});
+
+onShow((option) => {
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+const showToast = (title) => {
+	uni.showToast({ title, duration: 2000, icon: 'none' });
+};
+const verifyFormData = () => {
+	let message = '';
+	if (loginData.mobile == '') message = '请填写手机号';
+	else if (loginData.password == '') message = '请填写密码';
+	return message;
+};
+
+const onChangePassword = () => {
+	isPassword.value = !isPassword.value;
+};
+
+const handleToRegister = () => {
+	uni.redirectTo({
+		url: '/pages/account/register'
+	});
+};
+const handleToForgot = () => {
+	uni.redirectTo({
+		url: '/pages/account/forgot'
+	});
+};
+
+//跳转到用户协议
+const handleToServiceHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=24'
+	});
+};
+//跳转到隐私政策
+const handleToPravicyHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=23'
+	});
+};
+
+const handleAgreement = () => {
+	isAgreement.value = !isAgreement.value;
+};
+
+const dialogConfirm = () => {
+	isAgreement.value = true;
+	handleLogin();
+};
+const dialogClose = () => {};
+const dialogToggle = () => {
+	alertDialog.value.open();
+};
+
+const handleLogin = async () => {
+	let message = verifyFormData();
+
+	if (message) {
+		showToast(message);
+		return;
+	}
+
+	if (!isAgreement.value) {
+		dialogToggle();
+		return;
+	}
+
+	uni.showLoading();
+	request({
+		url: '/api/login',
+		method: 'POST',
+		data: loginData,
+		success: async (res) => {
+			console.log('用户登录', res);
+
+			showToast(res.data.msg);
+			if (res.data.code == 1) {
+				uni.setStorageSync('token', res.data?.data?.token);
+				uni.setStorageSync('id', res.data?.data?.id);
+				setTimeout(function () {
+					const canNavBack = getCurrentPages();
+					if (canNavBack && canNavBack.length > 1) {
+						uni.navigateBack();
+					} else {
+						history.back();
+					}
+					uni.$emit('startPlayVoiceBroadcast', true);
+				}, 1000);
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			// uni.hideLoading();
+		}
+	});
+};
+
+const handleWechartLogin = () => {
+	uni.login({
+		provider: 'weixin',
+		success: function (loginRes) {
+			console.log(loginRes.code);
+
+			// 获取用户信息
+			uni.getUserInfo({
+				provider: 'weixin',
+				success: function (infoRes) {
+					console.log('用户昵称为:' + infoRes.userInfo.nickName);
+					/*	uni.showToast({
+																				title:JSON.stringify(infoRes),
+																				duration: 5000,
+																				icon: 'none'
+																			});*/
+					uni.showLoading({
+						content: '加载中',
+						mask: true
+					});
+					request({
+						url: '/api/wxlogin/wxLogin',
+						method: 'POST',
+						data: {
+							openid: infoRes.userInfo.openId,
+							avatar: infoRes.userInfo.avatarUrl,
+							type: 2,
+							nickname: infoRes.userInfo.nickName
+						},
+						success: (res) => {
+							console.log(res);
+
+							if (res.data.code == 1) {
+								if (res.data.data.token) {
+									uni.setStorage({
+										key: 'token',
+										data: res.data.data.token,
+										success: function () {}
+									});
+									uni.setStorage({
+										key: 'id',
+										data: res.data.data.id,
+										success: function () {}
+									});
+									uni.$emit('sxdd', {
+										msg: '页面更新'
+									});
+									//	uni.navigateBack();
+									setTimeout(function () {
+										uni.switchTab({
+											url: '/pages/index/index'
+										});
+									}, 1000);
+								} else {
+									uni.navigateTo({
+										url: '/pages/bangding/bangding?id=' + res.data.data.id
+									});
+								}
+							} else {
+								uni.showToast({
+									title: res.data.msg,
+									duration: 2000,
+									icon: 'none'
+								});
+							}
+						},
+						fail: () => {},
+						complete: () => {
+							setTimeout(function () {
+								uni.hideLoading();
+							}, 2000);
+						}
+					});
+				}
+			});
+		}
+	});
+};
+</script>
+<style lang="scss" scoped>
+.content {
+	width: 750upx;
+	margin: 0 auto;
+	background: #f9f9f9;
+	position: relative;
+
+	.logo_wrap {
+		padding: 69upx 0;
+		.logo {
+			width: 160upx;
+			height: 160upx;
+			display: block;
+			margin: 0 auto;
+			border-radius: 40upx;
+		}
+	}
+	.form_row {
+		display: flex;
+		justify-content: space-between;
+		padding: 0 60upx;
+		.form_input_wrap {
+			width: 630upx;
+			height: 80upx;
+			background: #ffffff;
+			border: 1upx solid #07d69e;
+			border-radius: 40upx;
+			margin: 0 auto 30upx;
+
+			display: flex;
+			padding: 18upx 35upx 22upx;
+
+			.form_input_prefix {
+				width: 40upx;
+				height: 40upx;
+			}
+			.form_input {
+				width: 430upx;
+				height: 42upx;
+				font-size: 28upx;
+				font-weight: 400;
+				color: #999999;
+				line-height: 40upx;
+				margin: 0 20upx;
+			}
+
+			.form_input_suffix {
+				width: 40upx;
+				height: 40upx;
+			}
+		}
+		.form_link {
+			font-size: 26upx;
+			font-weight: 400;
+			color: #07d69e;
+			margin: 0 22upx;
+		}
+	}
+
+	.form_submit_btn {
+		width: 630upx;
+		height: 80upx;
+		background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+		border-radius: 40upx;
+
+		margin: 10upx auto;
+		font-size: 32upx;
+		font-weight: bold;
+		color: #ffffff;
+	}
+
+	.agreement {
+		font-size: 24upx;
+		color: #666;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 62upx 0;
+		.agreement_radio {
+			width: 28upx;
+			height: 28upx;
+			margin: 0 10upx;
+		}
+		.link_text {
+			color: #07d69e;
+		}
+	}
+}
+
+:deep(.uni-modal) {
+	.uni-modal__bd {
+		padding: 30upx;
+	}
+	.uni-modal__ft {
+		.uni-modal__btn_primary {
+			color: #07d69e !important;
+		}
+		.uni-modal__btn_default {
+			color: #999 !important;
+		}
+	}
+}
+</style>

+ 296 - 0
pages/account/promotion.vue

@@ -0,0 +1,296 @@
+<template>
+  <view class="content">
+	  <uni-nav-bar :fixed="true" shadow left-icon="left" title="推广团队" :statusBar="true" @clickLeft="handleToBack" />
+    <view style="display: flex; justify-content: space-between; padding: 40upx">
+      <view style="display: flex">
+        <view style="margin-right: 41upx">
+          <image
+            class="card_thumbnail"
+            :src="userData?.js?.avatar || '/static/account/avatar.png'"
+            mode="aspectFill"
+            style="width: 130upx; height: 130upx"
+          />
+        </view>
+        <view
+          style="display: flex; flex-direction: column; justify-content: center"
+        >
+          <view style="font-size: 40upx; font-weight: bold; color: #000000">{{
+            userData?.js?.name
+          }}</view>
+
+          <view
+            style="
+              font-size: 26upx;
+              font-weight: 400;
+              color: #999;
+              margin: 24upx 0 0;
+            "
+          >
+            {{ userData?.mobile }}
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <view class="card">
+      <view
+        style="
+          width: 710upx;
+          height: 80upx;
+          background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+          border-radius: 20upx 20upx 0px 0px;
+          padding-top: 20upx;
+        "
+      >
+        <uni-segmented-control
+          :current="current"
+          :values="items"
+          style-type="text"
+          active-color="#FFFFFF"
+          @clickItem="onClickItem"
+        />
+      </view>
+
+      <view>
+        <view v-if="current === 0">
+          <uni-list :border="true">
+            <!-- 显示圆形头像 -->
+            <uni-list-chat
+              v-for="(item, index) in promotionData[current]"
+              :key="index"
+              :avatar-circle="true"
+              :title="`${item?.user_nickname || item?.mobile}(${item?.mobile})`"
+              :avatar="item?.avatar || '/static/account/avatar.png'"
+              :note="verifyTime(item?.create_time)"
+              time=" "
+            >
+              <view class="chat-custom-right">
+                <text class="chat-custom-text">直接好友</text>
+              </view>
+            </uni-list-chat>
+          </uni-list>
+        </view>
+        <view v-if="current === 1">
+          <uni-list :border="true">
+            <!-- 显示圆形头像 -->
+            <uni-list-chat
+              v-for="(item, index) in promotionData[current]"
+              :key="index"
+              :avatar-circle="true"
+              :title="`${item?.user_nickname || item?.mobile}(${item?.mobile})`"
+              :avatar="item?.avatar || '/static/account/avatar.png'"
+              :note="verifyTime(item?.create_time)"
+              time=" "
+            >
+              <view class="chat-custom-right">
+                <text class="chat-custom-text">间接好友</text>
+              </view>
+            </uni-list-chat>
+          </uni-list>
+        </view>
+      </view>
+    </view>
+
+    <view class="loading_wrap" v-if="loading && params.page > 1">
+      <uni-load-more status="loading"></uni-load-more>
+    </view>
+
+    <view class="footer">
+      <image mode="widthFix" src="/static/common/footer.png" />
+    </view>
+  </view>
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app";
+import request from "/common/request.js";
+import auth from "/common/auth.js";
+
+const statusBarHeight = ref();
+const userData = ref();
+const current = ref(0);
+const items = ["直接好友", "间接好友"];
+const params = reactive({
+  page: 1,
+  type: 1,
+});
+const promotionData = ref([]);
+const stopReachBottom = ref(false);
+const loading = ref(false);
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+onLoad((option) => {
+  statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+  initData();
+});
+
+onShow(() => {
+  renderData();
+  uni.$emit('fastOrderNum', false);
+  uni.$emit('receiveOrdernum', false);
+});
+
+onReachBottom((option) => {
+  if (stopReachBottom.value) return;
+  getPromotionData(true);
+});
+
+async function initData() {
+  if (auth(false)) {
+    uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+  }
+}
+
+async function renderData() {
+  if (auth()) {
+    uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+    getUserInfo();
+    getPromotionData();
+  }
+}
+
+const getUserInfo = () => {
+  uni.showLoading();
+  request({
+    url: "/api/user/getInfo",
+    method: "GET",
+    success: (res) => {
+      console.log("客户信息", res);
+      if (res.data.code == 1) {
+        userData.value = res.data?.data ?? {};
+      } else if (res.data.code == 10001) {
+        uni.removeStorageSync("token");
+        uni.removeStorageSync("id");
+        uni.showToast({
+          title: "登录已失效,请重新登录",
+          duration: 2000,
+          icon: "none",
+          success: () => {
+            uni.navigateTo({
+              url: "/pages/account/login",
+            });
+          },
+        });
+      }
+    },
+    fail: () => {},
+    complete: () => {
+      uni.hideLoading();
+      uni.stopPullDownRefresh();
+    },
+  });
+};
+
+const onClickItem = (e) => {
+  if (current.value != e.currentIndex) {
+    current.value = e.currentIndex;
+    params.type = e.currentIndex + 1;
+    getPromotionData();
+  }
+};
+
+const getPromotionData = (next = false) => {
+  if (loading.value) return;
+  if (next) {
+    params.page++;
+  } else {
+    params.page = 1;
+    stopReachBottom.value = false;
+    uni.showLoading();
+  }
+  loading.value = true;
+  request({
+    url: "/api/user/getxiaji",
+    method: "GET",
+    data: params,
+    success: (res) => {
+      console.log("好友", res);
+      if (res.data?.code == 1) {
+        promotionData.value[current.value] = res.data?.data;
+
+        if (!res.data?.data || !res.data?.data?.length) {
+          // if (params.page == 1) locationMessage.value = "暂无订单哦!";
+
+          stopReachBottom.value = true;
+          params.page--;
+        }
+        if (next) promotionData.value[current.value].push(...res.data?.data);
+        else promotionData.value[current.value] = res.data?.data ?? [];
+      }
+    },
+    fail: () => {},
+    complete: () => {
+      loading.value = false;
+      uni.hideLoading();
+    },
+  });
+};
+
+const verifyTime = (timestamp) => {
+  if (!timestamp) return "";
+  // 此处时间戳以毫秒为单位
+  let date = new Date(parseInt(timestamp) * 1000);
+  let Year = date.getFullYear();
+  let Moth =
+    date.getMonth() + 1 < 10
+      ? "0" + (date.getMonth() + 1)
+      : date.getMonth() + 1;
+  let Day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+  let Hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+  let Minute =
+    date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+  // let Sechond =
+  //   date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+  let GMT = Year + "-" + Moth + "-" + Day + "   " + Hour + ":" + Minute;
+  return GMT;
+};
+</script>
+
+<style lang="scss" scoped>
+.content {
+  :deep(.segmented-control) {
+    height: initial;
+    width: 600upx;
+    .segmented-control__text {
+      opacity: 0.8;
+      font-size: 29upx;
+      font-weight: 400;
+      color: #ffffff !important;
+      &::after {
+        content: "";
+        width: 40upx;
+        height: 4upx;
+        background: transparent;
+        border-radius: 2upx;
+        display: block;
+        margin: 6upx auto;
+      }
+      &.segmented-control__item--text {
+        opacity: 1;
+        font-weight: bold;
+        font-size: 32upx;
+        border: 0;
+        &::after {
+          background: #ffffff;
+        }
+      }
+    }
+  }
+  :deep(.uni-list-chat) {
+    .uni-list-chat__container {
+      padding: 30upx;
+      .uni-list-chat__content-extra {
+        justify-content: center;
+        font-size: 24upx;
+        font-weight: 400;
+        color: #ff490e;
+      }
+    }
+  }
+}
+</style>

+ 443 - 0
pages/account/register.vue

@@ -0,0 +1,443 @@
+<template>
+	<view class="content">
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="技师注册" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="logo_wrap">
+			<image src="/static/logo.png" class="logo" />
+		</view>
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/phone.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入手机号" v-model="loginData.mobile" />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/verify.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" type="number" :maxlength="6" placeholder="请输入验证码" v-model="loginData.code" style="width: 330upx" />
+				<view
+					style="width: 160upx; font-size: 28upx; font-weight: 400; color: #07d69e; display: flex; justify-content: flex-end; align-items: center"
+					@tap="getVerificationCode"
+				>
+					{{ countdown > 0 ? countdown : '获取验证码' }}
+				</view>
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/password.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" placeholder="请输入密码" :password="isPassword" v-model="loginData.password" />
+				<image src="/static/login/hidden.png" class="form_input_suffix" mode="aspectFill" @click="onChangePassword" v-if="isPassword" />
+				<image src="/static/login/show.png" class="form_input_suffix" mode="aspectFill" @click="onChangePassword" v-else />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_input_wrap">
+				<image src="/static/login/invite.png" class="form_input_prefix" mode="aspectFill" />
+				<input class="form_input" type="number" :maxlength="10" placeholder="请输入邀请码(可不填)" v-model="loginData.referral" />
+			</view>
+		</view>
+
+		<view class="form_row">
+			<view class="form_link" @tap="handleToForgot">忘记密码</view>
+			<view class="form_link" @tap="handleToLogin">登录</view>
+		</view>
+
+		<view style="height: 100px"></view>
+
+		<view class="agreement">
+			<image src="/static/common/radio_selected.png" class="agreement_radio" @tap="handleAgreement" v-if="isAgreement"></image>
+			<image src="/static/common/radio_unselect.png" class="agreement_radio" @tap="handleAgreement" v-else></image>
+			<text @tap="handleAgreement">已阅读并同意</text>
+			<text class="link_text" @tap="handleToServiceHtml">《用户协议》</text>
+			和
+			<text class="link_text" @tap="handleToPravicyHtml">《隐私政策》</text>
+		</view>
+
+		<button type="primary" class="form_submit_btn" :loading="loading" @click="handleRegister">注册</button>
+
+		<uni-popup ref="alertDialog" type="dialog">
+			<uni-popup-dialog type="info" cancelText="取消" confirmText="已阅读并同意" title="服务协议及隐私保护" @confirm="dialogConfirm" @close="dialogClose">
+				<view>
+					为了保障您的合法权益,请阅读本平台以下协议
+					<text style="color: #07d69e" @tap="handleToServiceHtml">《用户协议》</text>
+					、
+					<text style="color: #07d69e" @tap="handleToPravicyHtml">《隐私政策》</text>
+				</view>
+			</uni-popup-dialog>
+		</uni-popup>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+
+const statusBarHeight = ref();
+const countdown = ref(0);
+
+const loading = ref(false);
+const loginData = reactive({
+	mobile: '',
+	password: '',
+	code: '',
+	referral: '',
+	type: 2 // 客户
+});
+
+const isPassword = ref(true);
+const isAgreement = ref(false);
+const alertDialog = ref();
+
+onLoad((option) => {
+	loginData.referral = option?.invite || '';
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	const _countdownTime = uni.getStorageSync('countdownVerificationCode');
+	if (_countdownTime) {
+		const _countdown = 60 - parseInt((new Date() - _countdownTime) / 1000);
+		if (_countdown > 0) countdown.value = _countdown;
+	}
+});
+
+onShow((option) => {});
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+const showToast = (title) => {
+	uni.showToast({ title, duration: 2000, icon: 'none' });
+};
+const verifyFormData = () => {
+	let message = '';
+	if (loginData.mobile == '') message = '请填写手机号';
+	else if (loginData.password == '') message = '请填写密码';
+	else if (loginData.code == '') message = '请填写验证码';
+	return message;
+};
+
+const onChangePassword = () => {
+	isPassword.value = !isPassword.value;
+};
+
+const handleToLogin = () => {
+	uni.redirectTo({
+		url: '/pages/account/login'
+	});
+};
+
+const handleToForgot = () => {
+	uni.redirectTo({
+		url: '/pages/account/forgot'
+	});
+};
+
+//跳转到用户协议
+const handleToServiceHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=24'
+	});
+};
+//跳转到隐私政策
+const handleToPravicyHtml = () => {
+	uni.navigateTo({
+		url: '/pages/account/help?id=23'
+	});
+};
+
+const handleAgreement = () => {
+	isAgreement.value = !isAgreement.value;
+};
+
+const dialogConfirm = () => {
+	isAgreement.value = true;
+	handleRegister();
+};
+const dialogClose = () => {};
+const dialogToggle = () => {
+	alertDialog.value.open();
+};
+
+const handleRegister = async () => {
+	let message = verifyFormData();
+
+	if (message) {
+		showToast(message);
+		return;
+	}
+
+	if (!isAgreement.value) {
+		dialogToggle();
+		return;
+	}
+
+	uni.showLoading();
+	request({
+		url: '/api/regPost',
+		method: 'POST',
+		data: { ...loginData },
+		success: async (res) => {
+			console.log('用户注册', res);
+			uni.hideLoading();
+			showToast(res.data?.msg || '注册成功');
+			if (res.data.code == 1) {
+				uni.setStorageSync('token', res.data?.data?.token);
+				uni.setStorageSync('id', res.data?.data?.id);
+				setTimeout(function () {
+					uni.switchTab({
+						url: '/pages/index/index'
+					});
+				}, 2000);
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const getVerificationCode = () => {
+	if (countdown.value) return;
+
+	if (!loginData.mobile) {
+		uni.showToast({
+			title: '请输入手机号',
+			duration: 2000,
+			icon: 'none'
+		});
+		return;
+	}
+
+	countdown.value = 60;
+	uni.setStorageSync({
+		key: 'countdownVerificationCode',
+		data: new Date()
+	});
+
+	let countdownTimer = setInterval(function () {
+		if (countdown.value > 0) countdown.value -= 1;
+		else {
+			countdown.value = 0;
+			uni.removeStorageSync('countdownVerificationCode');
+			clearInterval(countdownTimer);
+		}
+	}, 1000);
+
+	uni.showLoading({
+		content: '加载中',
+		mask: true
+	});
+	request({
+		url: '/api/getVerificationCode',
+		method: 'POST',
+		data: {
+			mobile: loginData.mobile,
+			status: 2,
+			type: 1
+		},
+		success: (res) => {
+			uni.hideLoading();
+			console.log('获取验证码', res);
+			const message = res.data?.msg || '验证码已发送';
+			uni.showToast({
+				title: message,
+				duration: 2000,
+				icon: 'none'
+			});
+		},
+		fail: () => {
+			countdown.value = 0;
+			uni.removeStorageSync('countdownVerificationCode');
+			clearInterval(countdownTimer);
+			uni.hideLoading();
+		},
+		complete: () => {}
+	});
+};
+
+const handleWechartLogin = () => {
+	uni.login({
+		provider: 'weixin',
+		success: function (loginRes) {
+			console.log(loginRes.code);
+
+			// 获取用户信息
+			uni.getUserInfo({
+				provider: 'weixin',
+				success: function (infoRes) {
+					console.log('用户昵称为:' + infoRes.userInfo.nickName);
+					/*	uni.showToast({
+																				title:JSON.stringify(infoRes),
+																				duration: 5000,
+																				icon: 'none'
+																			});*/
+					uni.showLoading({
+						content: '加载中',
+						mask: true
+					});
+					request({
+						url: '/api/wxlogin/wxLogin',
+						method: 'POST',
+						data: {
+							openid: infoRes.userInfo.openId,
+							avatar: infoRes.userInfo.avatarUrl,
+							type: 2,
+							nickname: infoRes.userInfo.nickName
+						},
+						success: (res) => {
+							console.log(res);
+
+							if (res.data.code == 1) {
+								if (res.data.data.token) {
+									uni.setStorage({
+										key: 'token',
+										data: res.data.data.token,
+										success: function () {}
+									});
+									uni.setStorage({
+										key: 'id',
+										data: res.data.data.id,
+										success: function () {}
+									});
+									uni.$emit('sxdd', {
+										msg: '页面更新'
+									});
+									//	uni.navigateBack();
+									setTimeout(function () {
+										uni.switchTab({
+											url: '/pages/index/index'
+										});
+									}, 1000);
+								} else {
+									uni.navigateTo({
+										url: '/pages/bangding/bangding?id=' + res.data.data.id
+									});
+								}
+							} else {
+								uni.showToast({
+									title: res.data.msg,
+									duration: 2000,
+									icon: 'none'
+								});
+							}
+						},
+						fail: () => {},
+						complete: () => {
+							setTimeout(function () {
+								uni.hideLoading();
+							}, 2000);
+						}
+					});
+				}
+			});
+		}
+	});
+};
+</script>
+<style lang="scss" scoped>
+.content {
+	width: 750upx;
+	margin: 0 auto;
+	background: #f9f9f9;
+	position: relative;
+
+	.logo_wrap {
+		padding: 69upx 0;
+		.logo {
+			width: 160upx;
+			height: 160upx;
+			display: block;
+			margin: 0 auto;
+			border-radius: 40upx;
+		}
+	}
+	.form_row {
+		display: flex;
+		justify-content: space-between;
+		padding: 0 60upx;
+		.form_input_wrap {
+			width: 630upx;
+			height: 80upx;
+			background: #ffffff;
+			border: 1upx solid #07d69e;
+			border-radius: 40upx;
+			margin: 0 auto 30upx;
+
+			display: flex;
+			padding: 18upx 35upx 22upx;
+
+			.form_input_prefix {
+				width: 40upx;
+				height: 40upx;
+			}
+			.form_input {
+				width: 430upx;
+				height: 42upx;
+				font-size: 28upx;
+				font-weight: 400;
+				color: #999999;
+				line-height: 40upx;
+				margin: 0 20upx;
+			}
+
+			.form_input_suffix {
+				width: 40upx;
+				height: 40upx;
+			}
+		}
+		.form_link {
+			font-size: 26upx;
+			font-weight: 400;
+			color: #07d69e;
+			margin: 0 22upx;
+		}
+	}
+
+	.form_submit_btn {
+		width: 630upx;
+		height: 80upx;
+		background: linear-gradient(90deg, #37ecba 0%, #72afd3 100%);
+		border-radius: 40upx;
+
+		margin: 10upx auto;
+		font-size: 32upx;
+		font-weight: bold;
+		color: #ffffff;
+	}
+
+	.agreement {
+		font-size: 24upx;
+		color: #666;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 62upx 0;
+		.agreement_radio {
+			width: 28upx;
+			height: 28upx;
+			margin: 0 10upx;
+		}
+		.link_text {
+			color: #07d69e;
+		}
+	}
+}
+
+:deep(.uni-modal) {
+	.uni-modal__bd {
+		padding: 30upx;
+	}
+	.uni-modal__ft {
+		.uni-modal__btn_primary {
+			color: #07d69e !important;
+		}
+		.uni-modal__btn_default {
+			color: #999 !important;
+		}
+	}
+}
+</style>

+ 431 - 0
pages/account/setting.vue

@@ -0,0 +1,431 @@
+<template>
+	<view class="content">
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="设置管理" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="card">
+			<view class="uni-form">
+				<view class="uni-form-item uni-column" style="padding-top: 20upx; padding-bottom: 20upx">
+					<view class="title">头像</view>
+					<view>
+						<view style="display: flex; align-items: center" @tap="handleOpenImage">
+							<image
+								class="card_thumbnail"
+								:src="serviceData?.avatar || '/static/account/avatar.png'"
+								mode="aspectFill"
+								style="width: 130upx; height: 130upx; margin-right: 20upx"
+							/>
+							<image class="card_thumbnail" src="/static/common/right.png" mode="aspectFill" style="width: 14upx; height: 24upx" />
+						</view>
+					</view>
+				</view>
+
+				<view class="uni-form-item uni-column">
+					<view class="title">昵称</view>
+					<view>
+						<input class="uni-input" placeholder="请输入昵称" v-model="serviceData.name" />
+					</view>
+				</view>
+
+				<view class="uni-form-item uni-column">
+					<view class="title">性别</view>
+					<view>
+						<picker @change="bindPickerChange" :value="sexIndex" :range="sexArray">
+							<view>{{ sexArray[sexIndex] }}</view>
+						</picker>
+					</view>
+				</view>
+
+				<view class="uni-form-item uni-column">
+					<view class="title">服务电话</view>
+					<view>
+						<input class="uni-input" type="number" v-model="userData.phone" />
+					</view>
+				</view>
+				<!-- <view class="uni-form-item uni-column">
+          <view class="title"> 邀请码 </view>
+          <view>
+            <input
+              class="uni-input"
+              type="number"
+              disabled
+              :value="userData?.referral"
+            />
+          </view>
+        </view> -->
+				<view class="uni-form-item uni-column">
+					<view class="title">认证信息</view>
+					<view class="flex align-center" @tap.stop="handleToCertification">
+						<text style="font-size: 26upx; font-weight: 400; color: #999999; margin-right: 20upx">{{ userData?.js_status == 1 ? '已认证' : '未认证' }}</text>
+						<image class="card_thumbnail" src="/static/common/right.png" mode="aspectFill" style="width: 14upx; height: 24upx" />
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">实时接单</view>
+					<view>
+						<switch color="#FFCC33" :checked="!!userData?.is_real_time" @change="changeIsRealtime" />
+					</view>
+				</view>
+				<view class="uni-form-item uni-column" style="flex-wrap: wrap; padding-top: 20upx; padding-bottom: 20upx; padding-right: 0">
+					<view class="title">自我介绍</view>
+					<textarea
+						placeholder-style="color:#999"
+						placeholder="请输入自我介绍"
+						style="
+							width: calc(100vw - 44px);
+							height: 100px;
+							box-sizing: border-box;
+							margin: 0 auto;
+							margin-top: 20upx;
+							margin-bottom: 20upx;
+							font-size: 14px;
+							color: #464646;
+							line-height: 20px;
+							padding: 5px;
+							border-radius: 8px;
+							border: 1px solid #ededed;
+						"
+						v-model="userData.jianjie"
+					/>
+				</view>
+
+				<view class="uni-form-item uni-column">
+					<view class="title">清除缓存</view>
+					<view class="flex justify-end align-center uni-input" @tap="handleClearCache">
+						<view class="flex align-center">
+							<image class="card_thumbnail" src="/static/common/right.png" mode="aspectFill" style="width: 14upx; height: 24upx" />
+						</view>
+					</view>
+				</view>
+
+				<view class="uni-form-item uni-column">
+					<view class="title">账户注销</view>
+					<view class="flex align-center" @tap.stop="handleDestroy">
+						<text style="font-size: 26upx; font-weight: 400; color: #999999; margin-right: 20upx">注销后无法恢复,请谨慎操作</text>
+						<image class="card_thumbnail" src="/static/common/right.png" mode="aspectFill" style="width: 14upx; height: 24upx" />
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+
+		<view class="footer_btn_wrap">
+			<view class="footer_btn" @tap="handleSave">保 存</view>
+			<view class="footer_btn footer_btn_busy" @tap="handleLogout">退出登录</view>
+		</view>
+
+		<uni-popup ref="picturePopup" background-color="#fff">
+			<view class="picture_popup_container">
+				<okingtz-cropper
+					@uploadSuccess="uploadCropperSuccess"
+					:image="imageSrc"
+					:cropWidth="750"
+					:cropHeight="750"
+					:maxCropper="true"
+					:canScale="false"
+					selectButtonText=""
+					saveButtonText="裁剪"
+				></okingtz-cropper>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<style lang="scss" scoped>
+.content {
+	.footer_btn_wrap {
+		position: fixed;
+	}
+
+	:deep(uni-switch) {
+		&::before {
+			content: '';
+		}
+
+		.uni-switch-input {
+			border: 1px solid #dfdfdf !important;
+			background-color: #dfdfdf !important;
+			&.uni-switch-input-checked {
+				background-color: rgb(6, 214, 156) !important;
+				border-color: rgb(6, 214, 156) !important;
+			}
+		}
+	}
+	.picture_popup_container {
+		// height: 100vh;
+		padding-bottom: 45px;
+		padding-top: 45px;
+		:deep(.uni-content-info) {
+			.cropper-config {
+				justify-content: space-around;
+			}
+		}
+	}
+}
+</style>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+import { apiBaseUrl } from '/common/config.js';
+
+const statusBarHeight = ref();
+const picturePopup = ref();
+const imageSrc = ref();
+const userData = ref({
+	user_nickname: ''
+});
+const defaultBrief = ref('欢迎您使用嘀咚点到,我是经过严格培训加入平台,顾客就是我的上帝,平台是我家,努力靠大家,您的满意就是给我最好的鼓励。');
+const serviceData = ref({});
+
+const changeIsRealtime = (e) => {
+	userData.value.is_real_time = e.detail.value ? 1 : 0;
+};
+
+const sexArray = ['保密','男', '女'];
+const sexIndex = ref(0);
+
+const uploadCropperSuccess = (tempFilePath) => {
+	const tempFilePaths = [tempFilePath];
+	console.log('图片', tempFilePaths);
+	updateImage(tempFilePaths);
+};
+const updateImage = (tempFilePaths) => {
+	console.log('图片上传', tempFilePaths);
+	uni.showLoading({
+		content: '上传中',
+		mask: true
+	});
+	uni.uploadFile({
+		url: `${apiBaseUrl}/api/UpImg/upimg`,
+		filePath: tempFilePaths[0],
+		header: {
+			'XX-Token': uni.getStorageSync('token'),
+			'XX-Device-Type': 'web'
+		},
+		name: 'file',
+		formData: {},
+		success: (uploadFileRes) => {
+			console.log('上传文件response', uploadFileRes);
+			serviceData.value.avatar = JSON.parse(uploadFileRes.data).data.url;
+			handlePictureToggleClose();
+		},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+const handlePictureToggle = async (src) => {
+	imageSrc.value = src;
+	picturePopup.value.open('bottom');
+};
+const handlePictureToggleClose = () => {
+	picturePopup.value.close();
+};
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+const bindPickerChange = (e) => {
+	sexIndex.value = e.detail.value;
+	userData.value.sex = e.detail.value;
+};
+
+const handleDestroy = () => {
+	uni.showModal({
+		title: '提示',
+		content: '确定要注销账户吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				uni.showLoading();
+				request({
+					url: '/api/user/destroy',
+					method: 'POST',
+					success: (res) => {
+						console.log('注销', res);
+						uni.clearStorage();
+						uni.showToast({
+							title: res.data?.msg,
+							duration: 2000,
+							icon: 'none'
+						});
+						setTimeout(() => {
+							uni.navigateTo({
+								url: '/pages/account/login'
+							});
+						}, 1500);
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 1500);
+					}
+				});
+			}
+		}
+	});
+};
+
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+});
+
+onShow(() => {
+	renderData();
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+
+async function renderData() {
+	if (auth()) {
+		uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+		getUserInfo();
+	}
+}
+
+const getUserInfo = () => {
+	uni.showLoading();
+	request({
+		url: '/api/userjs/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('客户信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+				serviceData.value = res.data?.data?.js ?? {};
+				sexIndex.value = res.data?.data?.sex;
+				// if(!userData.value?.jianjie){
+				// 	userData.value.jianjie = defaultBrief.value;
+				// }
+			} else if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const handleLogout = () => {
+	uni.showModal({
+		title: '提示',
+		content: '确定退出登录吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				uni.clearStorage();
+				uni.redirectTo({
+					url: '/pages/account/login'
+				});
+			}
+		}
+	});
+};
+
+const handleSave = () => {
+
+	uni.showLoading();
+	request({
+		url: '/api/userjs/editInfo',
+		method: 'POST',
+		data: {
+			phone: userData.value?.phone,
+			jianjie: userData.value?.jianjie,
+			is_make: 1,
+			is_real_time: userData.value?.is_real_time,
+			avatar: serviceData.value?.avatar,
+			name: serviceData.value?.name,
+			sex: userData.value?.sex
+		},
+		success: (res) => {
+			console.log('保存用户', res);
+			if (res.data.code == 1) {
+				uni.showToast({
+					title: '保存成功',
+					icon: 'none'
+				});
+				setTimeout(() => uni.switchTab({ url: '/pages/account/index' }), 1500);
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const handleClearCache = () => {
+	// 使用plus.cache.calculate 获取应用的缓存大小,
+	// #ifdef APP-PLUS
+	plus.cache.calculate(function (size) {
+		//size是多少个字节单位是b
+		//你可以做下面相应的处理
+		//  if(size<1024){
+		// 	 self.xxx=size+'B';
+		//  }
+		//  else if(size/1024>=1 && size/1024/1024<1){
+		// 	  self.xxx= Math.floor(size/1024*100)/100+'KB';
+		//  }
+		// else if(size/1024/1024>=1){
+		//          self.xxx=Math.floor(size/1024/1024*100)/100+'M';
+		// }
+		//可以询问用户是否删除
+		uni.showModal({
+			title: '提示',
+			content: '确定清除缓存吗?',
+			success(res) {
+				// 用户确定要删除
+				if (res.confirm) {
+					//使用plus.cache.clear 清除应用中的缓存数据 这里清除后还要二十几KB没有清除,达不到全部清除
+					plus.cache.clear(function () {
+						uni.showToast({
+							title: '清除成功',
+							icon: 'none',
+							success() {
+								//成功后处理
+							}
+						});
+					});
+				}
+			}
+		});
+	});
+	// #endif
+};
+
+const handleOpenImage = () => {
+	uni.chooseImage({
+		count: 1,
+		success: (chooseImageRes) => {
+			const tempFilePaths = chooseImageRes.tempFilePaths;
+			handlePictureToggle(tempFilePaths[0]);
+		}
+	});
+};
+
+const handleToCertification = () => {
+	uni.navigateTo({
+		url: '/pages/account/certification'
+	});
+};
+</script>

+ 29 - 0
pages/account/test.vue

@@ -0,0 +1,29 @@
+<template>
+  <view class="container">
+    <bt-cropper ref="cropper" :imageSrc="imageSrc"></bt-cropper>
+    <button @click="crop">裁切</button>
+  </view>
+</template>
+<style>
+    .container{
+        /** 外层一定要指定大小 */
+        height:100vh;
+    }
+</style>
+<script>
+export default {
+    data(){
+        return {
+            imageSrc:"https://dd.yunjuhui.net/upload/back/20220514/6fe33a5348a70be3f36e052287d1c033.jpg"
+        }
+    },
+   methods:{
+      crop(){
+        // 通过组件定义的ref调用cropper方法,返回一个promise对象
+        this.$refs.cropper.crop().then((res)=>{
+            console.log(res)
+        })
+      }
+   }
+}
+</script>

+ 236 - 0
pages/account/wallet.vue

@@ -0,0 +1,236 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="余额明细" :statusBar="true" @clickLeft="handleToBack" />
+		<view class="content">
+		  <view >
+		    <uni-list :border="false">
+		      <uni-list-chat
+		        :avatar-circle="true"
+		        :title="verifyTypeTxt(item)"
+		        :avatar="verifyTypeImg(item)"
+		        :note="verifyTime(item?.add_time)"
+		        v-for="(item, index) in walletData"
+		        :key="index"
+		      >
+		        <view class="chat-custom-right">
+		          <view class="extra_text" :class="{ active: item?.money > 0 }"
+		            >{{ item?.money > 0 ? "+" : "" }}{{ item?.money }}</view
+		          >
+		          <view>余额 {{ item?.yue }}</view>
+		        </view>
+		      </uni-list-chat>
+		    </uni-list>
+		    <view class="loading_wrap" v-if="loading && params?.page > 1">
+		      <uni-load-more status="loading"></uni-load-more>
+		    </view>
+		    <view class="footer">
+		      <image mode="widthFix" src="/static/common/footer.png" />
+		    </view>
+		  </view>
+		</view>
+	</view>
+
+</template>
+
+<script setup>
+import { ref, reactive } from "vue";
+import request from "/common/request.js";
+import auth from "/common/auth.js";
+import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app";
+
+const statusBarHeight = ref();
+const loading = ref(false);
+const params = reactive({
+  type: 0,
+  page: 1,
+});
+const walletData = ref();
+const stopReachBottom = ref(false);
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+onLoad((option) => {
+  statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+  uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+});
+
+onShow(() => {
+  renderData();
+  uni.$emit('fastOrderNum', false);
+  uni.$emit('receiveOrdernum', false);
+});
+
+onReachBottom(() => {
+  if (stopReachBottom.value) return;
+  getMoneyLog(true);
+});
+
+async function renderData() {
+  auth() && getMoneyLog();
+}
+
+const verifyTypeTxt = (object) => {
+  let type_txt = "";
+  switch (object?.type) {
+    case 1:
+      type_txt = "余额支付";
+      break;
+    case 2:
+      type_txt = "取消订单退款";
+      break;
+    case 99:
+      type_txt = "余额提现";
+      break;
+    case 100:
+      type_txt = "提现失败,余额返还";
+      break;
+    default:
+      type_txt = object?.remark ? object?.remark.replace("一级", "直接").replace("二级", "间接") : object?.remark;
+  }
+  return type_txt;
+};
+const verifyTypeImg = (object) => {
+  let type_img = "/static/account/wallet/";
+  switch (object?.type) {
+    case 1:
+      type_img += "cash.png";
+      break;
+    case 2:
+      type_img += "refund.png";
+      break;
+    case 99:
+      type_img += "cash.png";
+      break;
+    case 100:
+      type_img += "refund.png";
+      break;
+    default:
+      type_img += "spread.png";
+  }
+  return type_img;
+};
+const verifyTime = (timestamp) => {
+  if (!timestamp) return "";
+  // 此处时间戳以毫秒为单位
+  let date = new Date(parseInt(timestamp) * 1000);
+  let Year = date.getFullYear();
+  let Moth =
+    date.getMonth() + 1 < 10
+      ? "0" + (date.getMonth() + 1)
+      : date.getMonth() + 1;
+  let Day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+  let Hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+  let Minute =
+    date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+  let Sechond =
+    date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+  let GMT =
+    Year + "-" + Moth + "-" + Day + "   " + Hour + ":" + Minute + ":" + Sechond;
+  return GMT;
+};
+const getMoneyLog = (next = false) => {
+  if (next) params.page++;
+  else {
+    params.page = 1;
+    stopReachBottom.value = false;
+    uni.showLoading();
+  }
+  loading.value = true;
+
+  request({
+    url: "/api/user/getMoneyLog",
+    method: "GET",
+    data: params,
+    success: (res) => {
+      console.log("余额明细", res);
+      if (res.data?.code == 10001) {
+        uni.removeStorageSync("token");
+        uni.removeStorageSync("id");
+        uni.showToast({
+          title: "登录已失效,请重新登录",
+          duration: 2000,
+          icon: "none",
+          success: () => {
+            uni.navigateTo({
+              url: "/pages/account/login",
+            });
+          },
+        });
+      }
+      if (res.data?.code == 1) {
+        if (!res.data?.data || !res.data?.data?.length) {
+          //   if (params.page == 1) locationMessage.value = "暂无订单哦!";
+          stopReachBottom.value = true;
+          params.page--;
+        }
+        if (next) walletData.value.push(...res.data?.data);
+        else walletData.value = res.data?.data ?? [];
+      }
+    },
+    fail: () => {},
+    complete: () => {
+      loading.value = false;
+      uni.hideLoading();
+    },
+  });
+};
+</script>
+
+<style lang="scss" scoped>
+.content {
+  padding: 20upx;
+
+  .uni-list {
+    background: transparent;
+
+    :deep(.uni-list-chat) {
+      margin: 10upx 0;
+      height: 150upx;
+      .uni-list-chat__header {
+        width: 84upx;
+        height: 80upx;
+        .uni-list-chat__header-image {
+          width: 76upx;
+          height: 76upx;
+        }
+      }
+
+      .uni-list-chat__container {
+        padding: 40upx;
+
+        .uni-list-chat__content-title {
+          font-size: 32upx;
+          font-weight: 400;
+          color: #000000;
+        }
+        .uni-list-chat__content-note {
+          font-size: 24upx;
+          font-weight: 400;
+          color: #999999;
+        }
+        .uni-list-chat__content-extra {
+          justify-content: center;
+          .chat-custom-right {
+            .extra_text {
+              text-align: right;
+              font-size: 32upx;
+              font-weight: bold;
+              color: #000000;
+              &.active {
+                color: #ff490e;
+              }
+            }
+            .extra_image {
+              width: 14upx;
+              height: 24upx;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+</style>

+ 346 - 0
pages/index/fast.vue

@@ -0,0 +1,346 @@
+<template>
+	<view>
+		<scroll-view scroll-x class="navigation_wrap">
+			<view class="uni-scroll-view-content" :style="{ paddingTop: `${statusBarHeight}px` }">
+				<uni-badge class="uni-badge-left-margin" :text="realtimeData[index]?.order_num" absolute="rightTop" size="small" v-for="(item, index) in category" :key="index">
+					<view :class="current == index && 'active'" @tap="onChangeTab(index)">
+						<view class="box">
+							<view class="tab_title">{{ item?.category_name }}</view>
+						</view>
+						<view class="tab_line"></view>
+					</view>
+				</uni-badge>
+			</view>
+		</scroll-view>
+
+		<scroll-view scroll-y v-if="orderData && orderData?.length">
+			<view class="card service_wrap" v-for="(item, index) in orderData" :key="index" @tap="handleOrderDetail(item?.id)" :data-id="item.id">
+				<view style="position: relative">
+					<image class="service_thumbnail" :src="item?.project?.icon" mode="aspectFill" />
+					<view
+						style="position: absolute; top: 0; font-size: 23upx; width: 250upx; text-align: center; background: #ffffffbb; padding: 10upx; color: red; font-weight: 600"
+						v-if="item?.type == 2"
+					>
+						预约订单
+					</view>
+				</view>
+				<view style="width: 400upx">
+					<view class="service_title">
+						<text>{{ item?.project?.name }}</text>
+
+						<text class="service_extra_order" style="font-weight: 400; color: #999; font-size: 24upx">
+							<text class="service_extra_order_num">≤ {{ item?.distance }}</text>
+							Km
+						</text>
+					</view>
+					<view class="service_detail">
+						<text>{{ item?.address }}</text>
+					</view>
+					<view class="service_extra" style="justify-content: space-between">
+						<view style="display: flex; align-items: center">
+							<image src="/static/common/timer.png" mode="aspectFill" class="service_extra_image" />
+							<text class="service_extra_text">{{ item?.minute }}分钟</text>
+						</view>
+						<view class="service_footer">
+							<view class="service_footer_price">
+								<text class="text-xs">分成</text>
+								<text class="service_footer_price_prefix">¥</text>
+								<text>{{ item?.order_price }}</text>
+							</view>
+						</view>
+					</view>
+					<view class="service_footer">
+						<view class="service_footer_price">
+							<text class="service_footer_price_prefix">¥</text>
+							<text>{{ item?.price }}</text>
+						</view>
+						<view>
+							<button class="submit_btn disabled_btn" :data-id="item?.id" v-if="isFastSuccess(item)">已抢单</button>
+							<button class="submit_btn" :data-id="item?.id" @tap.stop="handleFastOrder" v-else>立即抢单</button>
+						</view>
+					</view>
+				</view>
+			</view>
+		</scroll-view>
+		<view v-else>
+			<view class="service_wrap" style="padding: 18upx 0px 10upx; display: flex; flex-direction: column; align-items: center">
+				<image mode="widthFix" src="/static/common/no_order.png" class="commend_icon" style="width: 455upx; height: 259upx; margin-top: 20upx" />
+				<text style="font-size: 28upx; font-weight: 400; color: #999999; margin-top: 30upx">{{ locationMessage[current] }}</text>
+			</view>
+		</view>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+		<callAlarm />
+	</view>
+</template>
+
+<script setup>
+import callAlarm from '/components/callAlarm.vue';
+import { ref, watch, reactive, computed } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import getLocation from '/common/getLocation.js';
+import request from '/common/request.js';
+
+const statusBarHeight = ref(0);
+const current = ref(0);
+const locationMessage = ref([]);
+const category = reactive([]);
+const address = ref({
+	city: null,
+	district: null,
+	street: null,
+	location: {}
+});
+const realtimeOpen = ref(true);
+const realtimeData = ref([]);
+const params = reactive({
+	page: 1,
+	category_id: 0,
+	type: 8
+});
+const orderData = ref([]);
+const userData = ref();
+
+function timeStamp(value) {
+	const date = new Date(value * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+	const year = date.getFullYear();
+	const month = ('0' + (date.getMonth() + 1)).slice(-2);
+	const sdate = ('0' + date.getDate()).slice(-2);
+	const hour = ('0' + date.getHours()).slice(-2);
+	const minute = ('0' + date.getMinutes()).slice(-2);
+	const second = ('0' + date.getSeconds()).slice(-2);
+	// 拼接
+	return `${year}-${month}-${sdate} ${hour}:${minute}`;
+}
+
+const getProjectCategory = () => {
+	request({
+		url: '/api/jsProjectCategory/getList',
+		method: 'GET',
+		success: (res) => {
+			console.log('项目分类', res.data?.data);
+			category.push(...res.data?.data);
+			params.category_id = res.data?.data[current.value]?.id;
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const onChangeTab = (index) => {
+	console.log('切换选项卡', index);
+	locationMessage.value[index] = '';
+	if (current.value !== index) {
+		current.value = index;
+		params.category_id = category[current.value]?.id;
+	}
+};
+
+const getOrderNumber = () => {
+	request({
+		url: '/api/userjs/getClassifyOrderNum',
+		data: {},
+		success: (res) => {
+			//console.log(res);
+			console.log('实时订单数', res);
+			//   that.arrnum = res.data.data;
+
+			if (res.data?.code == 10001) {
+				console.log('10001');
+				realtimeOpen.value = false;
+			}
+			if (res.data?.code == 1) {
+				realtimeData.value = res.data?.data;
+				realtimeOpen.value = true;
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const handleOrderDetail = (order_id) => {
+	uni.navigateTo({ url: `/pages/order/detail?id=${order_id}` });
+};
+const getUserInfo = () => {
+	request({
+		url: '/api/user/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('客户信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+				
+				uni.$emit('fastOrderNum', true);
+				uni.$emit('receiveOrdernum', true);
+			} else if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.$emit('fastOrderNum', false);
+				uni.$emit('receiveOrdernum', false);
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const isFastSuccess = (order) => {
+	const fast_number_list = order.fast_number_list;
+	let isFast = -1;
+	if (fast_number_list && fast_number_list?.length) isFast = fast_number_list.indexOf(userData.value?.js?.id);
+	return isFast == -1 ? false : true;
+};
+const getOrderList = (next = true, showLoading = true) => {
+	showLoading && uni.showLoading();
+	request({
+		url: '/api/userjs/getFastOrderList',
+		data: params,
+		success: (res) => {
+			console.log('订单列表', res);
+			if (res.data?.code == 1) {
+				orderData.value = res.data?.data;
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			showLoading && uni.stopPullDownRefresh();
+			showLoading && uni.hideLoading();
+		}
+	});
+};
+
+const handleFastOrder = (e) => {
+	const id = e.currentTarget.dataset.id;
+	uni.showModal({
+		title: '提示',
+		content: '确定要抢单吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				//return
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				request({
+					url: '/api/userjs/jeidanPost',
+					method: 'POST',
+					data: {
+						order_id: id
+					},
+					success: (res) => {
+						console.log('快速抢单', res);
+						if (res.data?.code == 1) {
+							uni.showToast({
+								title: '抢单报名成功,等待客户选择',
+								duration: 2000,
+								icon: 'none'
+							});
+							getOrderList(false, false);
+						} else {
+							uni.showToast({
+								title: res.data.msg,
+								duration: 2000,
+								icon: 'none'
+							});
+						}
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 2000);
+					}
+				});
+			}
+		}
+	});
+};
+
+const initLocation = () => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	const address_storage = uni.getStorageSync('address');
+	address.value = address_storage;
+	console.log('初始化');
+	realtimeOpen.value = true;
+	getProjectCategory();
+	uni.$on('realtimeOrderOpen', changeRealtimeOpen);
+};
+
+const changeRealtimeOpen = (e) => {
+	realtimeOpen.value = !!e;
+};
+const renderData = async () => {
+	console.log('渲染');
+	realtimeOpen.value = true;
+	uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+	getOrderList();
+	getOrderNumber();
+	getUserInfo();
+	const realtime = setInterval(() => {
+		if (realtimeOpen.value) {
+			getOrderNumber();
+		} else clearInterval(realtime);
+	}, 3000);
+	// const new_address = await getLocation();
+	// if (new_address) address.value = new_address;
+};
+
+onLoad((option) => {
+	initLocation();
+});
+onShow(() => {
+	address.value = uni.getStorageSync('address');
+	renderData();
+});
+watch(
+	() => params.category_id,
+	() => {
+		getOrderList();
+	}
+);
+
+watch(
+	() => realtimeOpen.value,
+	(newVal) => {
+		console.log('newVal', newVal);
+	}
+);
+watch(
+	() => realtimeData.value,
+	(newVal, oldVal) => {
+		console.log('新值', newVal);
+		console.log('旧值', oldVal);
+		newVal.forEach((element, index) => {
+			if (oldVal.length) {
+				const old_element = oldVal[index];
+				element['id'] == old_element['id'] && element['order_num'] != old_element['order_num'] && current.value == index && getOrderList();
+			}
+		});
+	},
+	//深度监听
+	{ deep: false }
+);
+</script>
+<style lang="scss" scoped>
+.navigation_wrap {
+	padding: 20upx 20upx 0upx;
+
+	.uni-badge--x {
+		margin: 20upx 0;
+	}
+}
+</style>

+ 559 - 0
pages/index/index.vue

@@ -0,0 +1,559 @@
+<template>
+	<view class="content">
+		<view :style="{ marginTop: statusBarHeight }"></view>
+
+		<swiper class="screen-swiper" circular :indicator-dots="bannerConfig.indicatorDots"
+			:autoplay="bannerConfig.autoplay" :interval="bannerConfig.interval" :duration="bannerConfig.duration">
+			<swiper-item v-for="(item, index) in bannerData" :key="index">
+				<image :src="item.image" mode="aspectFill"></image>
+			</swiper-item>
+		</swiper>
+		<uni-card class="navigate_card">
+			<uni-notice-bar showIcon :text="noticeData" backgroundColor="#DCFCF1" color="#07D69E" :speed="80"
+				class="text-sm">
+				<image mode="aspectFit" src="/static/logo.png" class="notice_icon"></image>
+			</uni-notice-bar>
+
+			<view class="badge_card_wrap">
+				<view class="badge_card_avatar">
+					<image class="card_thumbnail" :src="userData?.js?.avatar || '/static/account/avatar.png'"
+						mode="aspectFill"
+						style="width: 200upx; height: 200upx; border: 4px solid #ccc0cb; border-radius: 50%" />
+
+					<view
+						style="font-size: 18px; font-weight: bold; font-family: cursive; padding: 20upx; color: #333; height: 90upx">
+						{{ userData?.js?.name }}
+					</view>
+
+					<view class="location_wrap">
+						<image src="/static/order/location.png" mode="aspectFill" class="location_icon"></image>
+						<text class="location_text">
+							{{ address?.city? `${address?.province}${address?.city}${address.district}${address.street}` : emptyAddress }}
+						</text>
+					</view>
+
+					<uni-tag :circle="true" :text="userData?.js ? (userData?.js?.is_work ? '营业' : '休息') : '未登录'"
+						:type="userData?.js ? (userData?.js?.is_work ? 'warning' : '') : 'error'" size="small"
+						style="position: absolute" />
+				</view>
+				<view class="badge_card_content">
+					<view style="display: flex; justify-content: space-between; padding: 15upx 90upx">
+						<uni-tag text="个人信息" type="primary" />
+						<view>
+							<text style="color: #21925e"
+								@tap.stop="handleToUserInfo">{{ userData?.js?.js_status == 1 ? '认证通过' : '立即前往' }}</text>
+						</view>
+					</view>
+					<view style="display: flex; justify-content: space-between; padding: 15upx 90upx">
+						<uni-tag text="技师认证" type="primary" />
+						<view>
+							<text style="color: #21925e"
+								@tap.stop="handleToCertification">{{ userData?.js?.js_status == 1 ? '认证通过' : '立即前往' }}</text>
+						</view>
+					</view>
+					<view style="display: flex; justify-content: space-between; padding: 15upx 90upx">
+						<view style="width: 200upx">
+							<uni-tag text="服务项目" type="primary" />
+						</view>
+						<view><text style="color: #21925e" @tap.stop="handleToProject">立即前往</text></view>
+					</view>
+				</view>
+				<view class="badge_card_action">
+					<button style="background: #f5a625; color: #fff; border-radius: 24upx; width: 160upx"
+						class="mini-btn" type="default" size="mini" @tap="handlePostSite">
+						定 位
+					</button>
+					<button style="color: #fff; border-radius: 24upx; width: 160upx"
+						:style="{ background: userData?.js?.is_work ? '#E43D33' : '#07d69e' }" class="mini-btn"
+						type="default" size="mini" @tap="handleWork">
+						{{ userData?.js?.is_work ? '下 钟' : '上 钟' }}
+					</button>
+				</view>
+			</view>
+			<uni-grid :column="3" :show-border="false" :square="false" v-if="false">
+				<uni-grid-item v-for="(item, index) in navigateData" :index="index" :key="index">
+					<view class="grid-item-box" style="background-color: #fff">
+						<image mode="aspectFit" :src="item?.icon" class="navigate_icon"></image>
+						<text class="navigate_title text-sm">{{ item?.name }}</text>
+					</view>
+				</uni-grid-item>
+			</uni-grid>
+		</uni-card>
+		<view style="position: relative; top: -60upx">
+			<image mode="widthFix" src="/static/common/slogan.png" style="width: 100%; padding: 0 20upx; z-index: 0">
+			</image>
+		</view>
+
+		<swiper class="screen-swiper" circular :indicator-dots="bannerConfig.indicatorDots"
+			:autoplay="bannerConfig.autoplay" :interval="bannerConfig.interval" :duration="bannerConfig.duration"
+			style="margin: 0 20upx; min-height: 200upx; height: 200upx; position: relative; top: -40upx" v-if="false">
+			<swiper-item v-for="(item, index) in subBannerData" :key="index">
+				<image :src="item.image" mode="aspectFill" style="border-radius: 20upx"></image>
+			</swiper-item>
+		</swiper>
+
+		<uni-grid :column="2" :showBorder="false" style="padding: 0 10upx; position: relative; top: -20upx"
+			v-if="false">
+			<uni-grid-item v-for="(item, index) in goodsData" :index="index" :key="index">
+				<view style="margin: 10upx; overflow: hidden; border-radius: 10upx">
+					<image mode="aspectFill" :src="item?.icon"></image>
+				</view>
+			</uni-grid-item>
+		</uni-grid>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+
+		<callAlarm />
+	</view>
+</template>
+
+<script setup>
+	import { ref, reactive } from 'vue';
+	import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+	import request from '/common/request.js';
+	import getLocation from '/common/getLocation.js';
+	import callAlarm from '/components/callAlarm.vue';
+
+	const statusBarHeight = ref(0);
+	const bannerConfig = reactive({
+		indicatorDots: false,
+		autoplay: true,
+		interval: 5000,
+		duration: 500
+	});
+
+	const address = ref({});
+	const emptyAddress = ref('未获得定位!请点击定位更换地点');
+	const bannerData = ref();
+	const subBannerData = ref();
+	const noticeData = ref('涉嫌私下交易,禁止技师接单的处罚通知!');
+	const goodsData = ref();
+	const navigateData = ref([{
+			name: '技师认证',
+			icon: '/static/index/verify.png'
+		},
+		{
+			name: '开通服务',
+			icon: '/static/index/project.png'
+		},
+		{
+			name: '新手教程',
+			icon: '/static/index/question.png'
+		}
+	]);
+	const userData = ref();
+
+	const handleWork = () => {
+		if (!userData.value) {
+			handleToLogin();
+			return;
+		}
+
+		if (userData.value?.js?.js_status != 1) {
+			if (!userData.value?.js?.js_status == 2) {
+				uni.showToast({
+					title: '请重新进行技师信息认证',
+					duration: 1500,
+					icon: 'none'
+				});
+				return;
+
+			}
+			uni.showToast({
+				title: '请先进行技师信息认证并等待审核结果',
+				duration: 1500,
+				icon: 'none'
+			});
+			return;
+		}
+
+		uni.showLoading();
+		request({
+			url: '/api/userjs/setWorkTime',
+			method: 'POST',
+			data: {
+				is_work: !userData.value?.js?.is_work
+			},
+			success: (res) => {
+				console.log('上下钟', res);
+				uni.showToast({
+					title: res.data.msg,
+					duration: 1500,
+					icon: 'none'
+				});
+				if (res.data?.code == 1) {
+					setTimeout(() => {
+						getUserInfo();
+					}, 1000);
+				}
+			},
+			fail: () => {},
+			complete: () => {
+				uni.stopPullDownRefresh();
+				setTimeout(() => {
+					uni.hideLoading();
+				}, 1500);
+			}
+		});
+	};
+	const handlePostSite = async () => {
+		if (!userData.value) {
+			handleToLogin();
+			return;
+		}
+		const new_address = await getLocation();
+		await getGeocode(new_address?.location?.lat, new_address?.location?.lng);
+		address.value = uni.getStorageSync('address');
+		console.log('获取定位', new_address);
+		const latitude = new_address?.location?.lat;
+		const longitude = new_address?.location?.lng;
+
+		if (!latitude || !longitude) {
+			uni.showToast({
+				title: '获取位置失败,请重新定位',
+				duration: 1500,
+				icon: 'none'
+			});
+			return;
+		}
+		uni.showLoading();
+		request({
+			url: '/api/userjs/addPostSite',
+			method: 'POST',
+			data: {
+				lat: latitude,
+				long: longitude,
+				nation: new_address?.nation,
+				province: new_address?.province,
+				city: new_address?.city,
+				district: new_address?.district,
+				street: new_address?.street,
+				street_number: new_address?.street_number
+			},
+			success: (res) => {
+				console.log('添加定位', res);
+				if (res.data?.code == 1) {
+					uni.showToast({
+						title: res.data?.msg,
+						duration: 1500,
+						icon: 'none'
+					});
+					// getGeocode(latitude, longitude);
+				}
+			},
+			fail: () => {},
+			complete: () => {
+				setTimeout(() => {
+					uni.hideLoading();
+				}, 1500);
+			}
+		});
+	};
+
+	const handleToLogin = () => {
+		uni.navigateTo({
+			url: '/pages/account/login'
+		});
+	};
+	const handleToUserInfo = () => {
+		uni.navigateTo({
+			url: '/pages/account/setting'
+		});
+	};
+
+	const handleToCertification = () => {
+		uni.navigateTo({
+			url: '/pages/account/certification'
+		});
+	};
+
+	const handleToProject = () => {
+		uni.switchTab({
+			url: '/pages/project/index'
+		});
+	};
+	onLoad((option) => {
+		statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+		initData();
+	});
+	onShow((option) => {
+		uni.$emit('realtimeOrderOpen', false);
+
+		getUserInfo();
+		getPostSite();
+	});
+
+	const initData = () => {
+		const addressStorage = uni.getStorageSync('address');
+		if (addressStorage) address.value = addressStorage;
+		getInitData();
+	};
+
+	const getPostSite = () => {
+		request({
+			url: '/api/userjs/getPostSite',
+			method: 'POST',
+			success: (res) => {
+				console.log('技师定位数据', res);
+				console.log('经纬度', res.data?.data?.lat);
+				console.log('经纬度', res.data?.data?.lng);
+				if (res.data?.code == 1) {
+					const latitude = res.data?.data?.lat;
+					const longitude = res.data?.data?.lng;
+					if (!address.value?.location || address.value.location.lat !== latitude || address
+						.value.location.lng !== longitude)
+						getGeocode(latitude, longitude);
+					// uni.request({
+					// 	url: 'https://restapi.amap.com/v3/geocode/regeo?parameters',
+					// 	method: 'GET',
+					// 	data: {
+					// 		key: '3c813127122a372b7b0a6f0db7eb911e',
+					// 		location: `${longitude},${latitude}`
+					// 	},
+					// 	success: (res) => {
+					// 		console.log('高德地址', res);
+					// 		address.value = res.data?.regeocode?.formatted_address;
+					// 	}
+					// });
+				}
+			},
+			fail: () => {},
+			complete: () => {}
+		});
+	};
+
+	const getGeocode = async (latitude, longitude) => {
+		return new Promise((resolve, reject) => {
+			return uni.request({
+				// url: 'https://api.luokuang.com/v2/search/reverse?ak=EE172078158336222860E89C41DA444414EB02CEE4BACDC69FDNZOH2XLMU6557&radius=&lon=117.124909&lat=39.133927&categories=',
+				url: `https://api.luokuang.com/v2/search/reverse?ak=EE1720783281948228787B497622B814F58816BB392367AA4EEYF1W3DBFR6557&lon=${longitude}&lat=${latitude}&size=1&coord_type=WGS84`,
+				success(res) {
+					console.log('逆编译res', res)
+					const result = res.data?.result[0]
+						?.properties;
+					address.value.province = result?.province
+					address.value.city = result?.city
+					address.value.district = result?.county
+					address.value.street = result?.street
+					address.value.location = {
+						lng: longitude,
+						lat: latitude
+					};
+
+					console.log('address', address.value)
+					uni.setStorageSync('address', address
+						.value);
+					resolve(res)
+				},
+				fail: (err) => reject(err),
+			})
+		});
+
+
+
+
+		return;
+		let key = 'd8ee08d704acd692b06fc465d2eb6106'; // 高德WebKey
+		// // #ifdef APP-PLUS
+		// const system = uni.getSystemInfoSync(); // 获取系统信息
+		// if (system.platform === "android")
+		// 	key = "d8ee08d704acd692b06fc465d2eb6106"; // "e7703ba0579394ad136d69fb5c8e9920";
+		// else
+		// 	key = "1b8f006c331a6ac3f2d4df500c5843d2";
+		// // #endif
+
+		uni.request({
+			url: 'https://restapi.amap.com/v3/geocode/regeo?parameters',
+			method: 'GET',
+			data: {
+				key,
+				location: `${longitude},${latitude}`
+			},
+			success: (res) => {
+				console.log('高德地址', res);
+				address.value = res.data?.regeocode?.formatted_address;
+			}
+		});
+	};
+
+	const getInitData = () => {
+		uni.showLoading();
+		request({
+			url: '/api/js/index',
+			success: (res) => {
+				console.log('技师index数据', res);
+				if (res.data?.code == 1) {
+					bannerData.value = res.data?.data?.banner;
+					goodsData.value = res.data?.data?.goods;
+					subBannerData.value = res.data?.data?.banner2;
+					// navigateData.value = res.data?.data?.nav;
+				}
+				//   that.arr = res.data.data.goods;
+				//   that.banner = res.data.data.banner;
+				//   that.banner2 = res.data.data.banner2;
+				//   that.nav = res.data.data.nav;
+				// that.userInfo = res.data.data;
+			},
+			fail: () => {},
+			complete: () => {
+				uni.stopPullDownRefresh();
+				uni.hideLoading();
+			}
+		});
+	};
+
+	const getUserInfo = () => {
+		uni.showLoading();
+		request({
+			url: '/api/user/getInfo',
+			method: 'GET',
+			success: (res) => {
+				console.log('客户信息', res);
+				if (res.data.code == 1) {
+					userData.value = res.data?.data ?? {};
+					uni.$emit('fastOrderNum', true);
+					uni.$emit('receiveOrdernum', true);
+				} else if (res.data.code == 10001) {
+					uni.removeStorageSync('token');
+					uni.removeStorageSync('id');
+					uni.$emit('fastOrderNum', false);
+					uni.$emit('receiveOrdernum', false);
+				}
+			},
+			fail: () => {},
+			complete: () => {
+				uni.hideLoading();
+				uni.stopPullDownRefresh();
+			}
+		});
+	};
+</script>
+
+<style lang="scss" scoped>
+	.uni-noticebar {
+		border: 1upx solid #07d69e33;
+		border-radius: 8upx;
+	}
+
+	.grid-item-box {
+		flex: 1;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		padding: 30upx 0 0;
+
+		.navigate_icon {
+			width: 100upx;
+			height: 100upx;
+		}
+
+		.navigate_title {
+			// font-size: 29upx;
+			color: #333333;
+			padding: 10upx 0 10upx;
+		}
+	}
+
+	.content {
+		.navigate_card {
+			position: relative;
+			top: -40upx;
+			background: linear-gradient(to bottom, #ffffff55, #fff);
+			padding: 0upx !important;
+			margin: 0 20upx !important;
+			z-index: 1;
+
+			.uni-noticebar {
+				margin-bottom: 0;
+			}
+
+			.category_content {
+				display: flex;
+				justify-content: space-around;
+				margin-top: 24upx;
+
+				.category_item_wrap {
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+
+					.category_icon {
+						width: 100upx;
+						height: 100upx;
+						border-radius: 64upx;
+					}
+
+					.category_title {
+						padding: 16upx 0 8upx;
+						font-weight: 400;
+						color: #333333;
+					}
+				}
+			}
+		}
+
+		.badge_card_wrap {
+			position: relative;
+			width: 668upx;
+			height: 1070upx;
+			background: url('/static/index/badge_card_bg.jpg') center center no-repeat;
+			background-size: contain;
+			border-radius: 24upx;
+			margin: 20upx auto;
+			box-shadow: 5upx 5upx 10upx 0upx rgba(26, 26, 26, 0.1);
+
+			.badge_card_avatar {
+				position: absolute;
+				top: 200upx;
+				width: 100%;
+				display: flex;
+				justify-content: center;
+				flex-direction: column;
+				align-items: center;
+			}
+
+			.badge_card_content {
+				position: absolute;
+				top: 600upx;
+				width: 100%;
+			}
+
+			.badge_card_action {
+				position: absolute;
+				width: 100%;
+				display: flex;
+				justify-content: space-evenly;
+				bottom: 50px;
+
+				uni-button {
+					&::after {
+						border: 0;
+					}
+				}
+			}
+		}
+
+		.location_wrap {
+			display: flex;
+			align-items: center;
+			max-width: 600upx;
+			height: 100upx;
+			overflow: hidden;
+
+			.location_icon {
+				width: 32upx;
+				height: 32upx;
+			}
+
+			.location_text {
+				margin-left: 10upx;
+				max-width: 550upx;
+			}
+		}
+	}
+</style>

+ 435 - 0
pages/order/detail.vue

@@ -0,0 +1,435 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="订单详情" :statusBar="true" @clickLeft="handleToBack" style="z-index: 10" />
+		<map style="width: 100%; height: 680upx; margin-top: 0px" :latitude="orderData?.lat" :longitude="orderData?.lng" :markers="covers"></map>
+		<view class="" style="width: 100%; height: 50px" v-if="verifyUserAuth() && getOrderStatus() != '已完成' && getOrderStatus() != '待评价' && getOrderStatus() != '已取消'">
+			<view
+				class=""
+				@tap="handleToMap"
+				style="
+					margin-left: 10px;
+					line-height: 30px;
+					text-align: center;
+					font-size: 14px;
+					width: 80px;
+					height: 30px;
+					margin-top: 10px;
+					float: left;
+					border-radius: 6px;
+					color: white;
+					background-color: #00a1da;
+				"
+			>
+				查看大图
+			</view>
+			<view
+				class=""
+				@tap="handleToNavigationMap"
+				style="
+					margin-right: 10px;
+					line-height: 30px;
+					text-align: center;
+					font-size: 14px;
+					width: 80px;
+					height: 30px;
+					margin-top: 10px;
+					float: right;
+					border-radius: 6px;
+					color: white;
+					background-color: #06d69c;
+				"
+				v-if="orderData?.jiedan_js_id"
+			>
+				开始导航
+			</view>
+			<view
+				class=""
+				@tap.stop="handleFastOrder"
+				style="
+					margin-right: 10px;
+					line-height: 30px;
+					text-align: center;
+					font-size: 14px;
+					width: 80px;
+					height: 30px;
+					margin-top: 10px;
+					float: right;
+					border-radius: 6px;
+					color: white;
+					background-color: #06d69c;
+				"
+				v-if="!isFastSuccess && !orderData?.jiedan_js_id"
+			>
+				立即抢单
+			</view>
+		</view>
+
+		<view class="card">
+			<view class="uni-form">
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_order.png" mode="aspectFill" class="form_item_icon" />
+						订单状态
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">
+								{{ getOrderStatus() }}
+								<text v-if="!verifyUserAuth()">(客户已选择其他技师)</text>
+								<text style="margin-left: 20upx; color: #00a1da" v-if="countdownStatus">倒计时:{{ countdown }}</text>
+							</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_balance.png" mode="aspectFill" class="form_item_icon" />
+						服务项目
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">{{ orderData?.project?.name }}</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_location.png" mode="aspectFill" class="form_item_icon" />
+						服务地址
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">{{ orderData?.address }}</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column" v-if="verifyUserAuth() && getOrderStatus() != '已完成' && getOrderStatus() != '待评价' && getOrderStatus() != '已取消'">
+					<view class="title">
+						<image src="/static/order/detail/_address.png" mode="aspectFill" class="form_item_icon" />
+						详细地址
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">{{ getOrderAddress(orderData?.address1) }}</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_service.png" mode="aspectFill" class="form_item_icon" />
+						订单编号
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">{{ orderData?.order_sn }}</text>
+						</view>
+					</view>
+				</view>
+
+				<view class="uni-form-item uni-column" v-if="verifyUserAuth() && getOrderStatus() != '已完成' && getOrderStatus() != '待评价'">
+					<view class="title">
+						<image src="/static/order/detail/_phone.png" mode="aspectFill" class="form_item_icon" />
+						联系电话
+					</view>
+					<view>
+						<view style="display: flex; align-items: center" @tap="handleCallMobile">
+							<text class="uni-input" style="color: #00a1da">{{ orderData?.mobile }}</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column" v-if="orderData?.type == 2">
+					<view class="title">
+						<image src="/static/order/detail/_timer.png" mode="aspectFill" class="form_item_icon" />
+						服务时间
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">{{ timeStamp(orderData?.appoint_time) }}</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_travel.png" mode="aspectFill" class="form_item_icon" />
+						目标距离
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input">≤ {{ orderData?.distance }}Km</text>
+						</view>
+					</view>
+				</view>
+				<view class="uni-form-item uni-column">
+					<view class="title">
+						<image src="/static/order/detail/_balance.png" mode="aspectFill" class="form_item_icon" />
+						赚取分成
+					</view>
+					<view>
+						<view style="display: flex; align-items: center">
+							<text class="uni-input" style="font-size: 24upx; font-weight: 400; color: #ff490e">
+								¥
+								<text style="font-size: 42upx">{{ orderData?.order_price }}</text>
+							</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+	</view>
+</template>
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import Map from '@/common/utils/fx-openMap/openMap.js';
+
+const params = reactive({
+	order_id: 0,
+	call_id: ''
+});
+const address = ref({
+	city: null,
+	district: null,
+	street: null,
+	location: {}
+});
+const orderData = ref({});
+const covers = reactive([
+	{
+		latitude: 0,
+		longitude: 0,
+		iconPath: '/static/order/detail/end.png'
+	},
+	{
+		latitude: 0,
+		longitude: 0,
+		iconPath: '/static/order/detail/start.png'
+	}
+]);
+
+const countdownStatus = ref(false);
+const countdown = ref(0);
+const userData = ref();
+
+const verifyUserAuth = () => {
+	if(!orderData.value.jiedan_js_id) return true;
+	if(orderData.value.jiedan_js_id == userData.value.js.id) return true;
+	return false;
+}
+const handleCallMobile = () => {
+	uni.makePhoneCall({
+		phoneNumber: orderData.value?.mobile
+	});
+};
+function timeStamp(value) {
+	const date = new Date(value * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+	const year = date.getFullYear();
+	const month = ('0' + (date.getMonth() + 1)).slice(-2);
+	const sdate = ('0' + date.getDate()).slice(-2);
+	const hour = ('0' + date.getHours()).slice(-2);
+	const minute = ('0' + date.getMinutes()).slice(-2);
+	const second = ('0' + date.getSeconds()).slice(-2);
+	// 拼接
+	return `${year}-${month}-${sdate} ${hour}:${minute}`;
+}
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+const getOrderData = () => {
+	if (!params.order_id) return;
+	uni.showLoading();
+	request({
+		url: '/api/jsOrder/getInfo',
+		data: params,
+		success: (res) => {
+			console.log('订单详情', res);
+			if (res.data.code != 1) {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+				return;
+			}
+			const _orderData = res.data?.data;
+			orderData.value = _orderData;
+
+			covers[0].latitude = _orderData?.lat;
+			covers[0].longitude = _orderData?.lng;
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const getOrderStatus = () => {
+	switch (parseInt(orderData.value?.status)) {
+		case 1:
+			if (orderData.value?.jiedan_js_id) return '待接单';
+			if (isFastSuccess()) return '待客户选择技师';
+			else return '待抢单';
+		case 2:
+			return '待服务';
+		case 3:
+			return '待评价';
+		case 4:
+			return '已完成';
+		case 5:
+			return '已取消';
+		case 6:
+			countdownStatus.value = true;
+			const start_time = parseInt(orderData.value?.start_time || 0);
+			const minute = parseInt((orderData.value?.minute || 0) * 60);
+			let inter = setInterval(function () {
+				const current_time = parseInt(new Date().getTime() / 1000);
+				const remainder = start_time + minute - current_time;
+
+				if (remainder > 0) {
+					const lastest_minute = parseInt(remainder / 60);
+					let lastest_second = remainder % 60;
+					if (lastest_second < 10) lastest_second = `0${lastest_second}`;
+					countdown.value = `${lastest_minute}:${lastest_second}`;
+				} else {
+					countdownStatus.value = false;
+					countdown.value = '服务结束';
+					clearInterval(inter);
+				}
+			}, 1000);
+			return '服务中';
+		default:
+			return '';
+	}
+};
+const getOrderAddress = (address) => {
+	if (!address) return address;
+	if (orderData.value?.jiedan_js_id && userData.value?.js?.id == orderData.value.jiedan_js_id) return address;
+	else return address.replace(/[\d]/g, '*'); //清除"数字"以外的字符
+};
+const handleFastOrder = (e) => {
+	uni.showModal({
+		title: '提示',
+		content: '确定要抢单吗?',
+		success(res) {
+			// 用户确定
+			if (res.confirm) {
+				//return
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				request({
+					url: '/api/userjs/jeidanPost',
+					method: 'POST',
+					data: {
+						order_id: orderData.value?.id
+					},
+					success: (res) => {
+						console.log('快速抢单', res);
+						if (res.data?.code == 1) {
+							uni.showToast({
+								title: '抢单报名成功,等待客户选择',
+								duration: 2000,
+								icon: 'none'
+							});
+						} else {
+							uni.showToast({
+								title: res.data.msg,
+								duration: 2000,
+								icon: 'none'
+							});
+						}
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 2000);
+					}
+				});
+			}
+		}
+	});
+};
+const handleToMap = () => {
+	uni.navigateTo({
+		url: `/pages/order/map?id=${params.order_id}`
+	});
+};
+
+const handleToNavigationMap = () => {
+	const options = {
+		destination: {
+			//导航终点点坐标和名称
+			latitude: covers[1].latitude,
+			longitude: covers[1].longitude,
+			name: orderData.value?.address
+		},
+		mode: 'drive' //导航方式 公交:bus驾车:drive(默认),步行:walk,骑行:bike
+	};
+	Map.navigation(options);
+};
+const getUserInfo = () => {
+	request({
+		url: '/api/user/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('客户信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+			} else if (res.data.code == 10001) {
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+const isFastSuccess = () => {
+	const fast_number_list = orderData.value?.fast_number_list;
+	let isFast = -1;
+	if (fast_number_list && fast_number_list?.length) isFast = fast_number_list.indexOf(userData.value?.js?.id);
+	return isFast == -1 ? false : true;
+};
+const initData = () => {
+	const address_storage = uni.getStorageSync('address');
+	address.value = {
+		...address_storage,
+		city: address_storage?.city ?? '全国'
+	};
+	console.log('位置', address_storage);
+	covers[1].latitude = address_storage?.location?.lat ?? 0;
+	covers[1].longitude = address_storage?.location?.lng ?? 0;
+	uni.$emit('realtimeOrderOpen', false);
+};
+onLoad((option) => {
+	params.order_id = option?.id;
+	initData();
+});
+onShow(() => {
+	getOrderData();
+	getUserInfo();
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+</script>
+<style lang="scss" scoped>
+.uni-form .uni-form-item .uni-input {
+	text-align: left;
+	text-indent: 2em;
+	padding-left: 20upx;
+	width: 460upx;
+}
+:deep(.uni-navbar) {
+	.uni-navbar--fixed {
+		z-index: 999;
+	}
+}
+</style>

+ 613 - 0
pages/order/index.vue

@@ -0,0 +1,613 @@
+<template>
+	<view class="content">
+		<scroll-view scroll-x class="navigation_wrap">
+			<view class="uni-scroll-view-content" :style="{ paddingTop: `${statusBarHeight}px` }">
+				<view v-for="(item, index) in category" :key="index" :class="current == index && 'active'" @tap="onChangeTab(index)">
+					<view class="tab_title">{{ item?.name }}</view>
+					<view class="tab_line"></view>
+				</view>
+			</view>
+		</scroll-view>
+
+		<view>
+			<view v-for="(item, _index) in category" :key="item?.id">
+				<view v-if="current == _index">
+					<scroll-view scroll-y v-if="orderData[_index] && orderData[_index]?.length">
+						<view class="card service_wrap" v-for="(item, index) in orderData[_index]" :key="index">
+							<view @tap="handleToDetail(item.id)">
+								<image class="service_thumbnail" :src="item?.project?.icon" mode="aspectFill" />
+							</view>
+							<view>
+								<view @tap="handleToDetail(item.id)">
+									<view class="service_title">
+										<text>{{ item?.project?.name }}</text>
+										<text
+											class="service_title_extra"
+											:class="{ warning_color: item?.status == 3, success_color: item?.status == 4, cannel_color: item?.status == 5 }"
+										>
+											{{ statusString(+item?.status) }}
+										</text>
+									</view>
+
+									<view class="service_extra">
+										<image src="/static/order/location.png" mode="aspectFill" class="service_extra_image" />
+										<view style="height: 70upx; display: flex; align-items: center">
+											<view class="service_extra_text">{{ item?.address ?? item?.address1 }}</view>
+										</view>
+									</view>
+									<view class="service_extra" style="justify-content: space-between">
+										<view style="display: flex; align-items: center">
+											<image src="/static/order/timer.png" mode="aspectFill" class="service_extra_image" />
+											<view class="service_extra_text" style="width: 220upx">{{ timeStamp(item?.create_time) }}</view>
+										</view>
+										<view style="font-weight: 400; color: #999; font-size: 24upx">≤ {{ item?.distance }}Km</view>
+									</view>
+								</view>
+								<view class="service_footer">
+									<view class="service_footer_price">
+										<text class="service_footer_price_prefix">¥</text>
+										<text>{{ item?.price }}</text>
+									</view>
+									<view class="service_footer_price">
+										<text class="service_footer_price_prefix">分成¥</text>
+										<text>{{ item?.order_price }}</text>
+									</view>
+								</view>
+								<view class="service_footer" style="margin-top: 40upx">
+									<view></view>
+									<view class="flex align-center">
+										<button class="busy_btn" v-if="item.status == 1" @tap="handleToSelect(item?.id, false)">拒绝接单</button>
+										<button class="submit_btn" v-if="item.status == 1" @tap="handleToSelect(item?.id)">接单</button>
+										<button class="submit_btn" v-if="item.status == 2" @tap.stop="handleScanCode">扫码</button>
+										<button class="cancel_btn" v-if="item.status == 3 || item.status == 4 || item.status == 5" @tap.stop="handleToDel" :data-id="item.id">
+											删除订单
+										</button>
+									</view>
+								</view>
+							</view>
+						</view>
+					</scroll-view>
+					<view v-else>
+						<view style="padding: 40px 0px; display: flex; flex-direction: column; align-items: center">
+							<image mode="widthFix" src="/static/common/no_order.png" class="commend_icon" style="width: 455upx; height: 259upx" />
+							<text style="font-size: 28upx; font-weight: 400; color: #999999; margin-top: 30upx">{{ locationMessage }}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="loading_wrap" v-if="loading && searchParams?.page > 1">
+			<uni-load-more status="loading"></uni-load-more>
+		</view>
+
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+		<callAlarm />
+	</view>
+</template>
+<script setup>
+import callAlarm from '/components/callAlarm.vue';
+import { ref, watch, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import auth from '/common/auth.js';
+
+const statusBarHeight = ref();
+const loading = ref(false);
+const current = ref(0);
+const locationMessage = ref('');
+const activeColor = '#07D69E';
+const styleType = 'text';
+const category = reactive([
+	{ name: '全部', id: 1 },
+	{ name: '待接单', id: 2 },
+	{ name: '待服务', id: 3 },
+	{ name: '服务中', id: 4 },
+	{ name: '已完成', id: 5 },
+	{ name: '待评价', id: 6 },
+	{ name: '已取消', id: 7 }
+]);
+const searchParams = reactive({
+	page: 1,
+	type: 1
+});
+
+const serviceData = ref({});
+
+const orderData = ref([]);
+const address = ref({
+	city: null,
+	district: null,
+	street: null,
+	location: {}
+});
+const stopReachBottom = ref(false);
+
+const openid = ref();
+const codeQR = ref();
+const codePopup = ref();
+const inter = ref();
+
+const getOrderData = (next = false) => {
+	searchParams.type = category[current.value]?.id;
+
+	if (next) searchParams.page++;
+	else {
+		searchParams.page = 1;
+		stopReachBottom.value = false;
+		uni.showLoading();
+	}
+	loading.value = true;
+	request({
+		url: '/api/userjs/getProjectOrderList',
+		data: searchParams,
+		success: (res) => {
+			console.log('订单', res);
+			if (res.data.code === 1) {
+				if (!res.data?.data || !res.data?.data?.length) {
+					if (searchParams.page == 1) locationMessage.value = '暂无订单哦!';
+					stopReachBottom.value = true;
+					searchParams.page--;
+				}
+				if (next) orderData.value[current.value].push(...res.data?.data);
+				else orderData.value[current.value] = res.data?.data ?? [];
+			} else if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			loading.value = false;
+			uni.stopPullDownRefresh();
+			!next && uni.hideLoading();
+		}
+	});
+};
+const handleScanCode = (e) => {
+	uni.scanCode({
+		success: function (res) {
+			console.log('条码类型:' + res.scanType);
+			console.log('条码内容:' + res.result);
+			//that.kwd=res.result
+			request({
+				url: '/api/userjs/start',
+				method: 'POST',
+				data: { order_id: res.result },
+				success: (res) => {
+					console.log(res);
+					if (res.data.code == 1) {
+						uni.showToast({
+							title: '扫码成功',
+							duration: 2000,
+							icon: 'none'
+						});
+						getOrderData();
+					} else {
+						uni.showToast({
+							title: res.data.msg,
+							duration: 2000,
+							icon: 'none'
+						});
+					}
+				},
+				fail: () => {},
+				complete: () => {
+					uni.stopPullDownRefresh();
+					setTimeout(() => {
+						uni.hideLoading();
+					}, 2000);
+				}
+			});
+		}
+	});
+};
+const getRealtime = () => {
+	request({
+		url: '/api/userjs/getOrdeNum',
+		success: (res) => {
+			console.log('待接单数据', res);
+			// that.jdnum = res.data.data
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+onLoad((option) => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+});
+onShow(() => {
+	renderLocation();
+	uni.$emit('realtimeOrderOpen', false);
+	uni.$emit('fastOrderNum', true);
+});
+
+onReachBottom((option) => {
+	if (stopReachBottom.value) return;
+	getOrderData(true);
+});
+
+onPullDownRefresh((option) => {
+	getOrderData();
+});
+
+async function renderLocation() {
+	if (auth()) {
+		getOrderData();
+		getRealtime();
+		uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+		uni.$emit('receiveOrdernum', true);
+	}
+}
+
+const onChangeTab = (index) => {
+	if (current.value !== index) {
+		current.value = index;
+		handleSlide();
+	}
+};
+
+function handleChangeCodePopup(e) {
+	if (!e?.show) {
+		clearInterval(inter.value);
+	}
+}
+
+function showCodePopup(e) {
+	const order_id = e.currentTarget.dataset.id;
+	codeQR.value = e.currentTarget.dataset.code;
+	codePopup.value.open('center');
+
+	clearInterval(inter.value);
+	inter.value = setInterval(async function () {
+		const status = await getOrderInfo(order_id);
+		if (status == 6) {
+			clearInterval(inter);
+			codePopup.value.close();
+			uni.showToast({
+				title: '技师扫码成功',
+				duration: 2000
+			});
+			setTimeout(() => {
+				uni.navigateTo({
+					url: `/pages/order/detail?id=${order_id}`
+				});
+			}, 2000);
+		}
+	}, 2000);
+}
+
+const handleSlide = () => {
+	locationMessage.value = '';
+	getOrderData();
+	uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+};
+
+const timeStamp = function (value) {
+	const date = new Date(value * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+	const year = date.getFullYear();
+	const month = ('0' + (date.getMonth() + 1)).slice(-2);
+	const sdate = ('0' + date.getDate()).slice(-2);
+	const hour = ('0' + date.getHours()).slice(-2);
+	const minute = ('0' + date.getMinutes()).slice(-2);
+	const second = ('0' + date.getSeconds()).slice(-2);
+	// 拼接
+	const result = year + '-' + month + '-' + sdate + ' ' + hour + ':' + minute; //+ ":" + second;
+	// 返回
+	return result;
+};
+
+const statusString = (status) => {
+	switch (status) {
+		case 0:
+			return '待支付';
+		case 1:
+			return '待接单';
+		case 2:
+			return '待服务';
+		case 3:
+			return '待评价';
+		case 4:
+			return '已完成';
+		case 5:
+			return '退款';
+		case 6:
+			return '服务中';
+	}
+};
+
+const getOrder = (next = false) => {
+	console.log('getOrder');
+	if (next) searchParams.page++;
+	else {
+		searchParams.page = 1;
+		stopReachBottom.value = false;
+		uni.showLoading();
+	}
+	loading.value = true;
+	request({
+		url: '/api/userjs/getProjectOrderList',
+		method: 'GET',
+		data: { ...searchParams, type: category[current.value].id },
+		success: (res) => {
+			console.log('订单列表', res);
+
+			if (res.data.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				uni.showToast({
+					title: '登录已失效,请重新登录',
+					duration: 2000,
+					icon: 'none',
+					success: () => {
+						uni.navigateTo({
+							url: '/pages/account/login'
+						});
+					}
+				});
+			}
+
+			if (res.data.code === 1) {
+				if (!res.data?.data || !res.data?.data?.length) {
+					if (searchParams.page == 1) locationMessage.value = '暂无订单哦!';
+
+					stopReachBottom.value = true;
+					searchParams.page--;
+				}
+				if (next) orderData.value[current.value].push(...res.data?.data);
+				else orderData.value[current.value] = res.data?.data ?? {};
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.stopPullDownRefresh();
+			loading.value = false;
+			uni.hideLoading();
+		}
+	});
+};
+
+const handleToPay = (e) => {
+	const id = e.currentTarget.dataset.id;
+	let url = `/pages/order/pay?id=${id}`;
+	// #ifdef H5
+	if (false) {
+		const prefix = document.location.toString().split('//')[0];
+		const host = window.location.host;
+		url = `${prefix}//${host}${url}`;
+	} else uni.navigateTo({ url });
+	// #endif
+	// #ifndef H5
+	uni.navigateTo({ url });
+	// #endif
+};
+
+const handleToSelect = (id, isSelected = true) => {
+	const message = isSelected ? '接单' : '拒绝接单';
+	const url = isSelected ? '/api/userjs/jeidanPost' : '/api/userjs/addShield';
+	uni.showModal({
+		title: '提示',
+		content: `确定${message}吗?`,
+		success(res) {
+			// 确定
+			if (res.confirm) {
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				request({
+					url,
+					method: 'POST',
+					data: {
+						order_id: id
+					},
+					success: (res) => {
+						console.log('接单结果', res);
+						uni.showToast({
+							title: res.data.msg,
+							duration: 2000,
+							icon: 'none'
+						});
+						getOrderData();
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 2000);
+					}
+				});
+			}
+		}
+	});
+};
+
+function handleToWithhold(id) {
+	return new Promise((resolve, reject) => {
+		uni.showLoading();
+		request({
+			url: '/api/jsOrder/getwithhold',
+			method: 'GET',
+			data: {
+				order_id: id
+			},
+			success: (res) => {
+				console.log('取消订单res', res);
+				let message = '';
+				if (res.data.code == 1) {
+					for (let i = 0; i < res.data?.data?.length; i++) {
+						message = message + res.data.data[i]?.remark + '<br>';
+					}
+				} else {
+					uni.showToast({
+						title: res.data.msg,
+						duration: 2000,
+						icon: 'none'
+					});
+				}
+				resolve(message);
+			},
+			fail: () => {
+				reject(false);
+			},
+			complete: () => {
+				uni.hideLoading();
+			}
+		});
+	});
+}
+
+async function handleToCancel(e) {
+	const id = e.currentTarget.dataset.id;
+	const status = e.currentTarget.dataset.status;
+	let message = '确定要取消订单吗?';
+	if (status == 2) {
+		const _message = await handleToWithhold(id);
+		console.log('_message', _message);
+		message = _message.replace(/<br>/g, '\r\n') + message;
+	}
+
+	uni.showModal({
+		title: '提示',
+		content: message,
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				//return
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				onCancel(id);
+			}
+		}
+	});
+}
+
+function onCancel(id) {
+	uni.showLoading();
+	request({
+		url: '/api/jsOrder/orderCancel',
+		method: 'POST',
+		data: {
+			order_id: id
+		},
+		success: (res) => {
+			console.log('取消订单', res);
+			if (res.data.code == 1) {
+				getOrderData();
+			} else {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+}
+
+function handleToDel(e) {
+	const id = e.currentTarget.dataset.id; // 复制内容,必须字符串,数字需要转换为字符串
+	uni.showModal({
+		title: '提示',
+		content: '确定删除该订单吗?',
+		success(res) {
+			// 用户确定要删除
+			if (res.confirm) {
+				uni.showLoading();
+				request({
+					url: '/api/userjs/deleteOrder',
+					method: 'POST',
+					data: {
+						order_id: id
+					},
+					success: (res) => {
+						console.log('deleteOrder', res);
+						uni.showToast({
+							title: res.data.msg,
+							duration: 2000,
+							icon: 'none'
+						});
+						getOrderData();
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 2000);
+					}
+				});
+			}
+		}
+	});
+}
+
+function handleToEvaluate(e) {
+	const id = e.currentTarget.dataset.id;
+	uni.navigateTo({ url: `/pages/order/evaluate?id=${id}` });
+}
+
+function handleToDetail(id) {
+	uni.navigateTo({ url: `/pages/order/detail?id=${id}` });
+}
+
+function handleToServiceDetail(id) {
+	uni.navigateTo({ url: `/pages/service/detail?id=${id}` });
+}
+
+async function getOrderInfo(order_id) {
+	return new Promise((resolve, reject) => {
+		request({
+			url: '/api/jsOrder/getInfo',
+			method: 'GET',
+			data: { order_id },
+			success: (res) => {
+				console.log('订单信息', res);
+				if (res.data?.code == 1) {
+					resolve(res.data?.data?.status);
+				}
+				resolve(0);
+			},
+			fail: (res) => {
+				reject(res);
+			},
+			complete: () => {}
+		});
+	});
+}
+</script>
+
+<style lang="scss" scoped>
+.service_wrap {
+	.service_title {
+		margin-bottom: 16upx;
+	}
+
+	.service_extra {
+		margin: 0 0 12upx;
+
+		.service_extra_text {
+			width: 355upx;
+			color: #999999;
+			margin-top: 2upx;
+			-webkit-line-clamp: 2;
+		}
+	}
+}
+</style>

+ 227 - 0
pages/order/map.vue

@@ -0,0 +1,227 @@
+<template>
+	<view>
+		<uni-nav-bar :fixed="true" shadow left-icon="left" title="大地图" :statusBar="true" @clickLeft="handleToBack" />
+		<map
+			style="width: 100%; margin-top: 0upx"
+			:style="{ height: `calc(100vh - 90upx - ${bottomHeight}upx)` }"
+			:latitude="covers[0].latitude"
+			:longitude="covers[0].longitude"
+			:markers="covers"
+			scale="12"
+		></map>
+		<view class="" style="width: 100%; height: 50px">
+			<view></view>
+			<view
+				class=""
+				@tap="handleToNavigationMap"
+				style="
+					margin-right: 10px;
+					line-height: 30px;
+					text-align: center;
+					font-size: 14px;
+					width: 80px;
+					height: 30px;
+					margin-top: 10px;
+					float: right;
+					border-radius: 6px;
+					color: white;
+					background-color: #06d69c;
+				"
+				v-if="orderData?.jiedan_js_id"
+			>
+				开始导航
+			</view>
+			<view
+				class=""
+				@tap.stop="handleFastOrder"
+				style="
+					margin-right: 10px;
+					line-height: 30px;
+					text-align: center;
+					font-size: 14px;
+					width: 80px;
+					height: 30px;
+					margin-top: 10px;
+					float: right;
+					border-radius: 6px;
+					color: white;
+					background-color: #06d69c;
+				"
+				v-if="!isFastSuccess && !orderData?.jiedan_js_id"
+			>
+				立即抢单
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import request from '/common/request.js';
+import Map from '@/common/utils/fx-openMap/openMap.js';
+
+const address = ref({
+	city: null,
+	district: null,
+	street: null,
+	location: {}
+});
+const params = reactive({
+	order_id: 0,
+	call_id: ''
+});
+const orderData = ref({});
+const bottomHeight = ref(180);
+const covers = reactive([
+	{
+		latitude: 0,
+		longitude: 0,
+		iconPath: '/static/order/detail/end.png'
+	},
+	{
+		latitude: 0,
+		longitude: 0,
+		iconPath: '/static/order/detail/start.png'
+	}
+]);
+
+const userData = ref();
+
+const handleToBack = () => {
+	const canNavBack = getCurrentPages();
+	if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+	else history.back();
+};
+
+const getOrderData = () => {
+	if (!params.order_id) return;
+	uni.showLoading();
+	request({
+		url: '/api/jsOrder/getInfo',
+		data: params,
+		success: (res) => {
+			console.log('订单详情', res);
+			if (res.data.code != 1) {
+				uni.showToast({
+					title: res.data.msg,
+					duration: 2000,
+					icon: 'none'
+				});
+				return;
+			}
+			const _orderData = res.data?.data;
+			orderData.value = _orderData;
+
+			covers[0].latitude = _orderData?.lat;
+			covers[0].longitude = _orderData?.lng;
+		},
+		fail: () => {},
+		complete: () => {
+			uni.hideLoading();
+		}
+	});
+};
+
+const handleToNavigationMap = () => {
+	const options = {
+		destination: {
+			//导航终点点坐标和名称
+			latitude: covers[1].latitude,
+			longitude: covers[1].longitude,
+			name: orderData.value?.address
+		},
+		mode: 'drive' //导航方式 公交:bus驾车:drive(默认),步行:walk,骑行:bike
+	};
+	Map.navigation(options);
+};
+
+const handleFastOrder = () => {
+	uni.showModal({
+		title: '提示',
+		content: '确定要抢单吗?',
+		success(res) {
+			// 用户确定
+			if (res.confirm) {
+				//return
+				uni.showLoading({
+					content: '加载中',
+					mask: true
+				});
+				request({
+					url: '/api/userjs/jeidanPost',
+					method: 'POST',
+					data: {
+						order_id: orderData.value?.id
+					},
+					success: (res) => {
+						console.log('快速抢单', res);
+						if (res.data?.code == 1) {
+							uni.showToast({
+								title: '抢单报名成功,等待客户选择',
+								duration: 2000,
+								icon: 'none'
+							});
+						} else {
+							uni.showToast({
+								title: res.data.msg,
+								duration: 2000,
+								icon: 'none'
+							});
+						}
+					},
+					fail: () => {},
+					complete: () => {
+						setTimeout(() => {
+							uni.hideLoading();
+						}, 2000);
+					}
+				});
+			}
+		}
+	});
+};
+
+const initData = (option) => {
+	params.order_id = option?.id;
+	const address_storage = uni.getStorageSync('address');
+	address.value = {
+		...address_storage,
+		city: address_storage?.city ?? '全国'
+	};
+	covers[1].latitude = address_storage?.location?.lat;
+	covers[1].longitude = address_storage?.location?.lng;
+
+	console.log('covers', covers);
+};
+onLoad((option) => {
+	initData(option);
+});
+onShow(() => {
+	getOrderData();
+	getUserInfo();
+	uni.$emit('fastOrderNum', false);
+	uni.$emit('receiveOrdernum', false);
+});
+const getUserInfo = () => {
+	request({
+		url: '/api/user/getInfo',
+		method: 'GET',
+		success: (res) => {
+			console.log('客户信息', res);
+			if (res.data.code == 1) {
+				userData.value = res.data?.data ?? {};
+			} else if (res.data.code == 10001) {
+			}
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+const isFastSuccess = () => {
+	const fast_number_list = orderData.value?.fast_number_list;
+	let isFast = -1;
+	if (fast_number_list && fast_number_list?.length) isFast = fast_number_list.indexOf(userData.value?.js?.id);
+	return isFast == -1 ? false : true;
+};
+</script>

+ 235 - 0
pages/project/index.vue

@@ -0,0 +1,235 @@
+<template>
+	<view>
+		<scroll-view scroll-x class="navigation_wrap">
+			<view class="uni-scroll-view-content" :style="{ paddingTop: `${statusBarHeight}px` }">
+				<view v-for="(item, index) in category" :key="index" :class="current == index && 'active'" @tap="onChangeTab(index)">
+					<view class="tab_title">{{ item?.category_name }}</view>
+					<view class="tab_line"></view>
+				</view>
+			</view>
+		</scroll-view>
+
+		<swiper :style="{ height: `${swiperHeight}upx` }" :current="current" circular @change="handleSlide">
+			<swiper-item v-for="(item, _index) in category" :key="item?.id">
+				<scroll-view scroll-y v-if="serviceData[_index] && serviceData[_index]?.length">
+					<view class="card service_wrap" v-for="(item, index) in serviceData[_index]" :key="index" @tap="handleClick" :data-id="item.id">
+						<view>
+							<image class="service_thumbnail" :src="item?.icon" mode="aspectFill" />
+						</view>
+						<view>
+							<view class="service_title">
+								<text>{{ item?.name }}</text>
+								<view class="service_footer">
+									<view class="service_footer_price">
+										<text class="text-xs">分成</text>
+										<text class="service_footer_price_prefix">¥</text>
+										<text>{{ item?.service?.order_price }}</text>
+									</view>
+								</view>
+							</view>
+							<view class="service_extra service_tag">
+								<uni-tag :text="tag?.name" v-for="tag in item?.tag" :key="tag?.id" />
+							</view>
+							<view class="service_detail">
+								<text>{{ item?.brief }}</text>
+							</view>
+
+							<view class="service_footer">
+								<view class="service_extra">
+									<image src="/static/common/timer.png" mode="aspectFill" class="service_extra_image" />
+									<text class="service_extra_text">{{ item?.service?.minute }}分钟</text>
+								</view>
+								<view>
+									<button class="busy_btn" v-if="item?.is_shenqing == 0" :data-id="item?.id" @tap.stop="handelProjectApply">开通服务</button>
+									<button class="disabled_btn" v-if="item?.is_shenqing == 1" disabled>等待审核</button>
+								</view>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+				<view v-else>
+					<view class="service_wrap" style="padding: 18upx 0px 10upx; display: flex; flex-direction: column; align-items: center">
+						<image mode="widthFix" src="/static/common/location_default.png" class="commend_icon" style="width: 400upx; height: 228upx; margin-top: 20upx" />
+						<text style="font-size: 28upx; font-weight: 400; color: #999999; margin-top: 30upx">{{ locationMessage[current] }}</text>
+					</view>
+				</view>
+			</swiper-item>
+		</swiper>
+		<view class="footer">
+			<image mode="widthFix" src="/static/common/footer.png" />
+		</view>
+		<callAlarm />
+	</view>
+</template>
+
+<script setup>
+import callAlarm from '/components/callAlarm.vue';
+import { ref, watch, reactive } from 'vue';
+import { onLoad, onShow, onPullDownRefresh } from '@dcloudio/uni-app';
+import getLocation from '/common/getLocation.js';
+import request from '/common/request.js';
+
+const statusBarHeight = ref(0);
+const current = ref(0);
+const swiperHeight = ref(346);
+const swiperHeightDefault = ref(346);
+const category = reactive([]);
+const serviceData = ref([]);
+const address = ref({
+	city: null,
+	district: null,
+	street: null,
+	location: {}
+});
+const locationMessage = ref([]);
+
+const getProjectCategory = () => {
+	request({
+		url: '/api/jsProjectCategory/getList',
+		method: 'GET',
+		success: (res) => {
+			console.log('项目分类', res.data?.data);
+			category.push(...res.data?.data);
+			getProject();
+		},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const getProject = () => {
+	uni.showLoading();
+	
+	console.log('xianfmu',address.value)
+	request({
+		url: '/api/jsProject/getList',
+		method: 'GET',
+		data: {
+			category_id: category[current.value]?.id,
+			page: 1,
+			district: address.value?.district,
+			xlng: address.value?.location?.lng,
+			xlat: address.value?.location?.lat
+		},
+		success: (res) => {
+			console.log('技师项目', res);
+			serviceData.value[current.value] = res.data?.data;
+			if (!res.data?.data?.length) locationMessage.value[current.value] = '当前区域未开通服务';
+			swiperHeight.value = res.data?.data?.length * swiperHeightDefault.value || swiperHeightDefault.value;
+		},
+		fail: () => {},
+		complete: () => {
+			uni.stopPullDownRefresh();
+			uni.hideLoading();
+		}
+	});
+};
+
+const onChangeTab = (index) => {
+	console.log('切换选项卡', index);
+	locationMessage.value[index] = '';
+	if (current.value !== index) {
+		current.value = index;
+	}
+};
+
+const handleSlide = (e) => {
+	current.value = e.detail.current;
+	getProject();
+	uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+};
+
+const handelProjectApply = (e) => {
+	uni.showLoading();
+	request({
+		url: '/api/userjs/postProject',
+		method: 'POST',
+		data: {
+			project_id: e.currentTarget.dataset.id
+		},
+		success: (res) => {
+			console.log('申请项目', res);
+			uni.showToast({
+				title: res.data?.msg,
+				icon: 'none'
+			});
+			if (res.data?.code == 10001) {
+				uni.removeStorageSync('token');
+				uni.removeStorageSync('id');
+				setTimeout(() => {
+					uni.navigateTo({
+						url: '/pages/account/login'
+					});
+				}, 2000);
+			}
+			// if (res.data?.code == 0) {
+			// 	setTimeout(() => {
+			// 		uni.navigateTo({
+			// 			url: '/pages/account/login'
+			// 		});
+			// 	}, 2000);
+			// }
+			if (res.data?.code == 1) {
+				setTimeout(() => {
+					getProject();
+				}, 2000);
+			}
+		},
+		fail: () => {},
+		complete: () => {
+			uni.stopPullDownRefresh();
+			setTimeout(() => {
+				uni.hideLoading();
+			}, 2000);
+		}
+	});
+};
+
+const handleClick = (e) => {
+	const id = e.currentTarget.dataset.id;
+	id &&
+		uni.navigateTo({
+			url: `/pages/project/detail?id=${id}`
+		});
+};
+
+// 校准定位
+const adjustLocation = () => {
+	request({
+		url: '/api/userjs/addPostSite',
+		method: 'POST',
+		data: {
+			lat: address.location?.lat,
+			long: address.location?.lng
+		},
+		success: (res) => {},
+		fail: () => {},
+		complete: () => {}
+	});
+};
+
+const initLocation = () => {
+	statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight;
+	const address_storage = uni.getStorageSync('address');
+	address.value = address_storage;
+	getProjectCategory();
+	uni.$on('onChangeTab', onChangeTab);
+};
+
+async function renderLocation(option) {
+	uni.pageScrollTo({ scrollTop: 0, duration: 0 });
+	address.value =  uni.getStorageSync('address');
+	getProject();
+}
+
+onLoad((option) => {
+	initLocation();
+});
+
+onShow((option) => {
+	renderLocation(option);
+	uni.$emit('realtimeOrderOpen', false);
+	uni.$emit('fastOrderNum', true);
+	uni.$emit('receiveOrdernum', true);
+});
+</script>

+ 18 - 0
pnpm-lock.yaml

@@ -0,0 +1,18 @@
+lockfileVersion: '6.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+dependencies:
+  vue-jsonp:
+    specifier: ^2.0.0
+    version: registry.npmmirror.com/vue-jsonp@2.0.0
+
+packages:
+
+  registry.npmmirror.com/vue-jsonp@2.0.0:
+    resolution: {integrity: sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-jsonp/-/vue-jsonp-2.0.0.tgz}
+    name: vue-jsonp
+    version: 2.0.0
+    dev: false

BIN
static/account/QR_code.png


BIN
static/account/about.png


BIN
static/account/about/agreement.png


BIN
static/account/about/privacy.png


BIN
static/account/about/statement.png


BIN
static/account/activation.png


BIN
static/account/agent.png


BIN
static/account/agent/banner.png


BIN
static/account/agent/bg.png


BIN
static/account/avatar.png


BIN
static/account/certification/add.png


BIN
static/account/certification/clear.png


BIN
static/account/certification/idcard_after.png


BIN
static/account/certification/idcard_before.png


BIN
static/account/coupon_background.png


BIN
static/account/custom.png


BIN
static/account/feedback.png


BIN
static/account/invite/background.png


BIN
static/account/invite/circle.png


BIN
static/account/invite/wechat.png


BIN
static/account/levle_default.png


BIN
static/account/order_background.png


BIN
static/account/process.png


BIN
static/account/promotion.png


BIN
static/account/setting.png


BIN
static/account/wallet/cash.png


BIN
static/account/wallet/refund.png


BIN
static/account/wallet/spread.png


BIN
static/account/wallet_background.png


BIN
static/common/alarm.png


BIN
static/common/alipay.png


BIN
static/common/background.png


BIN
static/common/close.png


BIN
static/common/footer.png


BIN
static/common/location_default.png


BIN
static/common/no_order.png


BIN
static/common/radio_selected.png


BIN
static/common/radio_unselect.png


BIN
static/common/right.png


BIN
static/common/slogan.png


BIN
static/common/timer.png


BIN
static/index/badge_card_bg.jpg


BIN
static/index/project.png


BIN
static/index/question.png


BIN
static/index/verify.png


BIN
static/login/hidden.png


BIN
static/login/invite.png


BIN
static/login/password.png


BIN
static/login/phone.png


BIN
static/login/show.png


BIN
static/login/verify.png


BIN
static/logo.png


Some files were not shown because too many files changed in this diff