From a29788866e8ef773d582c2a5297222bceb6a3d0e Mon Sep 17 00:00:00 2001 From: guoxing <1369478551@qq.com> Date: Mon, 13 Feb 2023 18:43:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B1=87=E8=9E=8D=E4=BA=91=E9=93=BE2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallplusui-uniapp-app2/.gitignore | 15 + mallplusui-uniapp-app2/.hbuilderx/launch.json | 16 + mallplusui-uniapp-app2/App.vue | 505 + mallplusui-uniapp-app2/Json.js | 672 + mallplusui-uniapp-app2/README.en.md | 38 + mallplusui-uniapp-app2/README.md | 75 + mallplusui-uniapp-app2/common/api.js | 441 + mallplusui-uniapp-app2/common/checker.js | 22 + mallplusui-uniapp-app2/common/city.data.js | 1451 ++ mallplusui-uniapp-app2/common/date.js | 43 + mallplusui-uniapp-app2/common/html-parser.js | 352 + mallplusui-uniapp-app2/common/list.js | 32 + mallplusui-uniapp-app2/common/uni-H5Api.js | 71 + .../Winglau14-lotusAddress.css | 107 + .../Winglau14-lotusAddress.js | 1 + .../Winglau14-lotusAddress.vue | 216 + .../circle-percent/circle-percent.vue | 125 + .../cmd-result-page/cmd-result-page.vue | 212 + .../components/coolc-coupon/coolc-coupon.vue | 190 + .../components/drag-ball/ball.js | 85 + .../components/drag-ball/drag-ball.js | 21 + .../components/drag-ball/drag-ball.vue | 135 + mallplusui-uniapp-app2/components/empty.vue | 52 + .../components/eonfox/eonfox.js | 453 + .../components/eonfox/fns.js | 285 + .../components/eonfox/grouporder.js | 39 + .../components/eonfox/merchant.js | 12 + .../components/eonfox/order.js | 72 + .../components/eonfox/pay.js | 70 + .../components/eonfox/polling.js | 61 + .../components/eonfox/qqmap-wx-jssdk.js | 1123 ++ .../components/eonfox/version.js | 3 + .../components/eonfox/websocket.js | 541 + .../gaoyia-parse/components/wxParseAudio.vue | 28 + .../gaoyia-parse/components/wxParseImg.vue | 119 + .../gaoyia-parse/components/wxParseTable.vue | 53 + .../components/wxParseTemplate0.vue | 98 + .../components/wxParseTemplate1.vue | 88 + .../components/wxParseTemplate10.vue | 88 + .../components/wxParseTemplate11.vue | 86 + .../components/wxParseTemplate2.vue | 88 + .../components/wxParseTemplate3.vue | 88 + .../components/wxParseTemplate4.vue | 88 + .../components/wxParseTemplate5.vue | 88 + .../components/wxParseTemplate6.vue | 88 + .../components/wxParseTemplate7.vue | 88 + .../components/wxParseTemplate8.vue | 88 + .../components/wxParseTemplate9.vue | 88 + .../gaoyia-parse/components/wxParseVideo.vue | 15 + .../components/gaoyia-parse/libs/html2json.js | 262 + .../gaoyia-parse/libs/htmlparser.js | 156 + .../components/gaoyia-parse/libs/wxDiscode.js | 195 + .../components/gaoyia-parse/parse.css | 248 + .../components/gaoyia-parse/parse.vue | 223 + .../components/jihai-lable.vue | 50 + .../components/jshop/image/trumpet.png | Bin 0 -> 1167 bytes .../components/jshop/image/zoom.png | Bin 0 -> 1097 bytes .../components/jshop/jshop-adpop.vue | 192 + .../components/jshop/jshop-article.vue | 82 + .../jshop/jshop-articleClassify.vue | 82 + .../components/jshop/jshop-blank.vue | 21 + .../components/jshop/jshop-content.vue | 27 + .../components/jshop/jshop-coupon.vue | 101 + .../components/jshop/jshop-goods.vue | 604 + .../components/jshop/jshop-groupPurchase.vue | 132 + .../components/jshop/jshop-imgSingle.vue | 189 + .../components/jshop/jshop-imgSlide.vue | 667 + .../components/jshop/jshop-imgWindow.vue | 207 + .../components/jshop/jshop-navBar.vue | 616 + .../components/jshop/jshop-notice.vue | 69 + .../components/jshop/jshop-onegoods.vue | 150 + .../components/jshop/jshop-pintuan.vue | 83 + .../components/jshop/jshop-record.vue | 187 + .../components/jshop/jshop-search.vue | 118 + .../components/jshop/jshop-slidegoods.vue | 614 + .../components/jshop/jshop-tabbar.vue | 163 + .../components/jshop/jshop-textarea.vue | 59 + .../components/jshop/jshop-video.vue | 30 + .../components/jshop/jshop.vue | 88 + mallplusui-uniapp-app2/components/jshop/test | 284 + .../components/likes/likes.vue | 71 + .../mall-copyright/mallplusCopyright.vue | 36 + .../mehaotian-search-revision.vue | 223 + .../components/mix-list-cell.vue | 119 + .../components/mix-loading/mix-loading.vue | 68 + .../mpvue-citypicker/city-data/area.js | 12542 ++++++++++++++++ .../mpvue-citypicker/city-data/city.js | 1503 ++ .../mpvue-citypicker/city-data/province.js | 139 + .../mpvue-citypicker/mpvueCityPicker.vue | 210 + .../components/mpvue-picker/mpvuePicker.vue | 463 + .../components/neil-modal.vue | 260 + .../components/payments/paymentsByAli.vue | 246 + .../components/payments/paymentsByApp.vue | 287 + .../components/payments/paymentsByH5.vue | 412 + .../components/payments/paymentsByWx.vue | 249 + .../components/raffle-wheel/raffle-wheel.vue | 0 .../components/red-bag/index.vue | 79 + .../components/reserve-date/reserve-date.vue | 496 + .../components/reserve-date/uni-icon.vue | 419 + mallplusui-uniapp-app2/components/share.vue | 238 + .../components/time-filter/time-filter.vue | 205 + .../components/u-charts/component.vue | 165 + .../components/u-charts/u-charts.js | 5633 +++++++ .../components/u-charts/u-charts.min.js | 1 + .../components/uni-badge/uni-badge.vue | 101 + .../components/uni-countdown/readme.md | 73 + .../uni-countdown/uni-countdown.vue | 156 + .../uni-grid-item/uni-grid-item.vue | 239 + .../components/uni-grid/uni-grid.vue | 96 + .../components/uni-icon/readme.md | 127 + .../components/uni-icon/uni-icon.vue | 421 + .../uni-load-more/uni-load-more.vue | 194 + .../components/uni-number-box.vue | 199 + .../components/uni-rate/readme.md | 59 + .../components/uni-rate/uni-rate.vue | 125 + .../components/uni-section/uni-section.vue | 135 + .../components/uni-tag/uni-tag.vue | 230 + .../components/upload-images.vue | 226 + .../components/xiujun-evaluate/Readme.md | 40 + .../components/xiujun-evaluate/iconfont.css | 26 + .../components/xiujun-evaluate/list.js | 62 + .../xiujun-evaluate/uni-evaluate.vue | 236 + .../components/zhouWei-navBar/index.vue | 430 + .../zhouWei-navBar/zhouWei-navBar.md | 132 + mallplusui-uniapp-app2/config/api.js | 408 + mallplusui-uniapp-app2/config/baseUrl.js | 51 + mallplusui-uniapp-app2/config/common.js | 485 + mallplusui-uniapp-app2/config/config.js | 14 + mallplusui-uniapp-app2/config/db.js | 84 + mallplusui-uniapp-app2/config/mixins.js | 176 + .../config/requestConfig.js | 211 + mallplusui-uniapp-app2/config/store.js | 124 + mallplusui-uniapp-app2/main.js | 62 + mallplusui-uniapp-app2/mallplus.keystore | Bin 0 -> 2603 bytes mallplusui-uniapp-app2/manifest.json | 172 + .../node_modules/jweixin-module/README.md | 30 + .../node_modules/jweixin-module/lib/index.js | 1 + .../node_modules/jweixin-module/package.json | 54 + .../node_modules/weixin-js-sdk/README.md | 21 + .../node_modules/weixin-js-sdk/index.js | 819 + .../weixin-js-sdk/index.original.js | 2 + .../node_modules/weixin-js-sdk/package.json | 42 + mallplusui-uniapp-app2/package-lock.json | 18 + mallplusui-uniapp-app2/package.json | 17 + mallplusui-uniapp-app2/pages.json | 843 ++ mallplusui-uniapp-app2/pages/cart/cart.vue | 449 + .../pages/category/areaGoods.vue | 231 + .../pages/category/category.vue | 243 + mallplusui-uniapp-app2/pages/index/index.vue | 1424 ++ mallplusui-uniapp-app2/pages/index/lease.vue | 268 + .../pages/index/nearbyBusiness.vue | 561 + .../pages/index/secskill.vue | 581 + mallplusui-uniapp-app2/pages/index/user.vue | 770 + .../pages/integral/home/home.css | 115 + .../pages/integral/home/home.vue | 166 + mallplusui-uniapp-app2/pages/money/pay.vue | 229 + .../pages/money/paySuccess.vue | 78 + .../pages/order/createOrder.vue | 870 ++ .../pages/order/createOrder1.vue | 771 + .../pages/order/createStoreOrder.vue | 806 + .../pages/order/createStoreOrder1.vue | 761 + .../pages/order/evaluate.vue | 291 + .../pages/order/logistics.vue | 230 + mallplusui-uniapp-app2/pages/order/order.vue | 671 + .../pages/order/orderDetail.vue | 590 + .../pages/order/payment/auth.vue | 159 + .../pages/order/payment/index.vue | 231 + .../pages/order/payment/index1.vue | 210 + .../pages/order/payment/result.vue | 75 + mallplusui-uniapp-app2/pages/public/index.vue | 373 + mallplusui-uniapp-app2/pages/public/login.vue | 817 + .../pages/public/loginCode.vue | 371 + mallplusui-uniapp-app2/pages/public/reg.vue | 256 + .../pages/search/search.vue | 378 + .../pages/set/certification.vue | 707 + mallplusui-uniapp-app2/pages/set/set.vue | 149 + .../pagesA/after_sale/detail.vue | 388 + .../pagesA/after_sale/index.vue | 382 + .../pagesA/after_sale/list.vue | 642 + .../pagesA/build/applyCommunity.vue | 395 + .../pagesA/build/bindCommunity.vue | 397 + .../pagesA/build/community.vue | 1088 ++ .../pagesA/build/communityList.vue | 514 + .../pagesA/build/floorList.vue | 381 + .../pagesA/build/groupList.vue | 404 + .../pagesA/build/groupProduct.vue | 997 ++ .../pagesA/build/notice.vue | 199 + .../pagesA/build/repairOrder/repairOrder.vue | 389 + .../pagesA/product/categoryAttr.vue | 352 + .../pagesA/product/discountList.vue | 408 + .../pagesA/product/giftList.vue | 406 + .../pagesA/product/giftProduct.vue | 706 + .../pagesA/product/groupActivityDetail.vue | 1219 ++ .../pagesA/product/groupActivityList.vue | 381 + .../pagesA/product/groupList.vue | 407 + .../pagesA/product/groupProduct.vue | 1097 ++ .../pagesA/product/list.vue | 528 + .../pagesA/product/paiMaiDetail.vue | 726 + .../pagesA/product/paiMaiList.vue | 406 + .../pagesA/product/product.vue | 1283 ++ .../pagesA/product/secskillDetail.vue | 1030 ++ mallplusui-uniapp-app2/pagesA/product/tag.vue | 205 + .../pagesA/product/tagGoodslist.vue | 483 + .../pagesC/seller/caldar.vue | 114 + .../pagesC/seller/dayStatisc.vue | 180 + .../pagesC/seller/evaluate.vue | 302 + .../pagesC/seller/goods.vue | 649 + .../pagesC/seller/index.vue | 947 ++ .../pagesC/seller/login.vue | 239 + .../pagesC/seller/member.vue | 567 + .../pagesC/seller/monthStatisc.vue | 178 + .../pagesC/seller/order.vue | 648 + .../pagesC/seller/orderDetail.vue | 582 + .../pagesC/seller/secskill.vue | 577 + .../pagesC/seller/stack.vue | 161 + .../pagesC/seller/store.vue | 722 + .../pagesC/store/applyBusiness.vue | 333 + .../pagesC/store/businessDetails.vue | 1036 ++ mallplusui-uniapp-app2/pagesC/store/index.vue | 365 + mallplusui-uniapp-app2/pagesC/store/list.vue | 279 + .../pagesC/store/school.vue | 742 + .../pagesC/store/schoolList.vue | 386 + mallplusui-uniapp-app2/pagesC/store/store.vue | 1039 ++ .../pagesC/store/storeList.vue | 382 + .../pagesC/store/storeResult.vue | 95 + .../pagesU/address/address.vue | 180 + .../pagesU/address/addressManage.vue | 220 + .../pagesU/address/addressManage1.vue | 314 + .../pagesU/marking/index.vue | 0 .../pagesU/notice/notice.vue | 202 + .../pagesU/notice/notice1.vue | 151 + .../pagesU/notice/subjectDetail.vue | 655 + .../pagesU/notice/subjectList.vue | 371 + mallplusui-uniapp-app2/pagesU/user/README.md | 100 + .../pagesU/user/applyMember.vue | 284 + .../pagesU/user/balance.vue | 102 + .../pagesU/user/collect.vue | 557 + mallplusui-uniapp-app2/pagesU/user/coupon.vue | 513 + .../pagesU/user/deposit.vue | 869 ++ mallplusui-uniapp-app2/pagesU/user/forget.vue | 488 + .../pagesU/user/integral.vue | 190 + mallplusui-uniapp-app2/pagesU/user/invite.vue | 326 + .../pagesU/user/inviteList.vue | 162 + .../pagesU/user/inviteMoney.vue | 416 + .../pagesU/user/myPurse.vue | 580 + .../pagesU/user/profile.vue | 190 + .../pagesU/user/reset_password.vue | 127 + .../plugins/APPUpdate/APPUpdate.md | 106 + .../plugins/APPUpdate/index.js | 816 + .../plugins/request/fileUpload.js | 390 + .../plugins/request/index.js | 7 + .../plugins/request/qiniuUploader.js | 169 + .../plugins/request/request.js | 225 + .../plugins/request/request.md | 229 + mallplusui-uniapp-app2/root.txt | 0 mallplusui-uniapp-app2/static/address.png | Bin 0 -> 125015 bytes mallplusui-uniapp-app2/static/arc.png | Bin 0 -> 8014 bytes mallplusui-uniapp-app2/static/css/style.css | 777 + mallplusui-uniapp-app2/static/emptyCart.jpg | Bin 0 -> 7681 bytes mallplusui-uniapp-app2/static/errorImage.jpg | Bin 0 -> 2103 bytes mallplusui-uniapp-app2/static/fujin.png | Bin 0 -> 7087 bytes mallplusui-uniapp-app2/static/fujin_.png | Bin 0 -> 8147 bytes mallplusui-uniapp-app2/static/icon/ic_ar.png | Bin 0 -> 31432 bytes .../static/image/alipay.png | Bin 0 -> 2620 bytes .../static/image/balancepay.png | Bin 0 -> 1913 bytes .../static/image/camera.png | Bin 0 -> 1081 bytes mallplusui-uniapp-app2/static/image/del.png | Bin 0 -> 1078 bytes .../static/image/ic-img.png | Bin 0 -> 3287 bytes .../static/image/ic-link.png | Bin 0 -> 18813 bytes .../static/image/invite-bg.png | Bin 0 -> 90209 bytes .../static/image/payment_balance.png | Bin 0 -> 2462 bytes mallplusui-uniapp-app2/static/image/qq.png | Bin 0 -> 3494 bytes .../static/image/wechatpay.png | Bin 0 -> 1843 bytes mallplusui-uniapp-app2/static/img/alipay.png | Bin 0 -> 57695 bytes mallplusui-uniapp-app2/static/iphone.png | Bin 0 -> 3143 bytes mallplusui-uniapp-app2/static/location.png | Bin 0 -> 5993 bytes mallplusui-uniapp-app2/static/logo.png | Bin 0 -> 294614 bytes .../static/missing-face.png | Bin 0 -> 4379 bytes mallplusui-uniapp-app2/static/position.png | Bin 0 -> 9900 bytes mallplusui-uniapp-app2/static/right-arrow.png | Bin 0 -> 3672 bytes mallplusui-uniapp-app2/static/search.png | Bin 0 -> 5516 bytes .../static/search/attention.png | Bin 0 -> 5511 bytes .../static/search/attention_forbid.png | Bin 0 -> 7804 bytes mallplusui-uniapp-app2/static/search/back.png | Bin 0 -> 3748 bytes .../static/search/delete.png | Bin 0 -> 4279 bytes mallplusui-uniapp-app2/static/select.png | Bin 0 -> 1754 bytes mallplusui-uniapp-app2/static/selected.png | Bin 0 -> 1753 bytes .../static/tab-cart-current.png | Bin 0 -> 6851 bytes mallplusui-uniapp-app2/static/tab-cart.png | Bin 0 -> 3702 bytes .../static/tab-cate-current.png | Bin 0 -> 5759 bytes mallplusui-uniapp-app2/static/tab-cate.png | Bin 0 -> 5859 bytes .../static/tab-home-current.png | Bin 0 -> 6539 bytes mallplusui-uniapp-app2/static/tab-home.png | Bin 0 -> 3634 bytes .../static/tab-my-current.png | Bin 0 -> 6038 bytes mallplusui-uniapp-app2/static/tab-my.png | Bin 0 -> 3686 bytes mallplusui-uniapp-app2/static/temp/ad1.jpg | Bin 0 -> 19230 bytes .../static/temp/antFill-gift.png | Bin 0 -> 640 bytes .../static/temp/antFill-home.png | Bin 0 -> 449 bytes mallplusui-uniapp-app2/static/temp/c1.png | Bin 0 -> 7432 bytes mallplusui-uniapp-app2/static/temp/c3.png | Bin 0 -> 9845 bytes mallplusui-uniapp-app2/static/temp/c4.png | Bin 0 -> 9222 bytes mallplusui-uniapp-app2/static/temp/c5.png | Bin 0 -> 7959 bytes mallplusui-uniapp-app2/static/temp/c6.png | Bin 0 -> 8140 bytes mallplusui-uniapp-app2/static/temp/c7.png | Bin 0 -> 7954 bytes mallplusui-uniapp-app2/static/temp/c8.png | Bin 0 -> 9850 bytes .../static/temp/fabfa-dropbox.png | Bin 0 -> 885 bytes .../static/temp/fasfa-archive.png | Bin 0 -> 329 bytes .../static/temp/fasfa-history.png | Bin 0 -> 1138 bytes .../static/temp/fasfa-shopping.png | Bin 0 -> 976 bytes .../static/temp/fasfa-sitemap.png | Bin 0 -> 539 bytes .../static/temp/fasfa-street.png | Bin 0 -> 905 bytes .../static/temp/fasfa-truck.png | Bin 0 -> 812 bytes .../static/temp/fasfausers.png | Bin 0 -> 1136 bytes mallplusui-uniapp-app2/static/temp/h1.png | Bin 0 -> 2918 bytes mallplusui-uniapp-app2/static/temp/nav1.png | Bin 0 -> 8257 bytes .../static/temp/secskill-img.jpg | Bin 0 -> 4322 bytes .../static/temp/share_moment.png | Bin 0 -> 12480 bytes .../static/temp/share_qq.png | Bin 0 -> 9711 bytes .../static/temp/share_qqzone.png | Bin 0 -> 10392 bytes .../static/temp/share_wechat.png | Bin 0 -> 11385 bytes mallplusui-uniapp-app2/static/user-bg.jpg | Bin 0 -> 14299 bytes mallplusui-uniapp-app2/static/vip-card-bg.png | Bin 0 -> 39414 bytes mallplusui-uniapp-app2/static/youhuiquan.png | Bin 0 -> 976 bytes mallplusui-uniapp-app2/static/yticon.ttf | Bin 0 -> 7080 bytes .../static/zhouWei-navBar/icon_back_black.png | Bin 0 -> 341 bytes .../static/zhouWei-navBar/icon_back_white.png | Bin 0 -> 594 bytes .../static/zhouWei-navBar/icon_home_black.png | Bin 0 -> 583 bytes .../static/zhouWei-navBar/icon_home_white.png | Bin 0 -> 694 bytes mallplusui-uniapp-app2/store/index.js | 38 + mallplusui-uniapp-app2/test.json | 1 + mallplusui-uniapp-app2/uni.scss | 112 + 331 files changed, 95753 insertions(+) create mode 100644 mallplusui-uniapp-app2/.gitignore create mode 100644 mallplusui-uniapp-app2/.hbuilderx/launch.json create mode 100644 mallplusui-uniapp-app2/App.vue create mode 100644 mallplusui-uniapp-app2/Json.js create mode 100644 mallplusui-uniapp-app2/README.en.md create mode 100644 mallplusui-uniapp-app2/README.md create mode 100644 mallplusui-uniapp-app2/common/api.js create mode 100644 mallplusui-uniapp-app2/common/checker.js create mode 100644 mallplusui-uniapp-app2/common/city.data.js create mode 100644 mallplusui-uniapp-app2/common/date.js create mode 100644 mallplusui-uniapp-app2/common/html-parser.js create mode 100644 mallplusui-uniapp-app2/common/list.js create mode 100644 mallplusui-uniapp-app2/common/uni-H5Api.js create mode 100644 mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.css create mode 100644 mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.js create mode 100644 mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.vue create mode 100644 mallplusui-uniapp-app2/components/circle-percent/circle-percent.vue create mode 100644 mallplusui-uniapp-app2/components/cmd-result-page/cmd-result-page.vue create mode 100644 mallplusui-uniapp-app2/components/coolc-coupon/coolc-coupon.vue create mode 100644 mallplusui-uniapp-app2/components/drag-ball/ball.js create mode 100644 mallplusui-uniapp-app2/components/drag-ball/drag-ball.js create mode 100644 mallplusui-uniapp-app2/components/drag-ball/drag-ball.vue create mode 100644 mallplusui-uniapp-app2/components/empty.vue create mode 100644 mallplusui-uniapp-app2/components/eonfox/eonfox.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/fns.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/grouporder.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/merchant.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/order.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/pay.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/polling.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/qqmap-wx-jssdk.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/version.js create mode 100644 mallplusui-uniapp-app2/components/eonfox/websocket.js create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseAudio.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseImg.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTable.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate0.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate1.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate10.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate11.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate2.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate3.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate4.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate5.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate6.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate7.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate8.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate9.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseVideo.vue create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/libs/html2json.js create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/libs/htmlparser.js create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/libs/wxDiscode.js create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/parse.css create mode 100644 mallplusui-uniapp-app2/components/gaoyia-parse/parse.vue create mode 100644 mallplusui-uniapp-app2/components/jihai-lable.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/image/trumpet.png create mode 100644 mallplusui-uniapp-app2/components/jshop/image/zoom.png create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-adpop.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-article.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-articleClassify.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-blank.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-content.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-coupon.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-goods.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-groupPurchase.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-imgSingle.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-imgSlide.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-imgWindow.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-navBar.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-notice.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-onegoods.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-pintuan.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-record.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-search.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-slidegoods.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-tabbar.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-textarea.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop-video.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/jshop.vue create mode 100644 mallplusui-uniapp-app2/components/jshop/test create mode 100644 mallplusui-uniapp-app2/components/likes/likes.vue create mode 100644 mallplusui-uniapp-app2/components/mall-copyright/mallplusCopyright.vue create mode 100644 mallplusui-uniapp-app2/components/mehaotian-search-revision/mehaotian-search-revision.vue create mode 100644 mallplusui-uniapp-app2/components/mix-list-cell.vue create mode 100644 mallplusui-uniapp-app2/components/mix-loading/mix-loading.vue create mode 100644 mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/area.js create mode 100644 mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/city.js create mode 100644 mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/province.js create mode 100644 mallplusui-uniapp-app2/components/mpvue-citypicker/mpvueCityPicker.vue create mode 100644 mallplusui-uniapp-app2/components/mpvue-picker/mpvuePicker.vue create mode 100644 mallplusui-uniapp-app2/components/neil-modal.vue create mode 100644 mallplusui-uniapp-app2/components/payments/paymentsByAli.vue create mode 100644 mallplusui-uniapp-app2/components/payments/paymentsByApp.vue create mode 100644 mallplusui-uniapp-app2/components/payments/paymentsByH5.vue create mode 100644 mallplusui-uniapp-app2/components/payments/paymentsByWx.vue create mode 100644 mallplusui-uniapp-app2/components/raffle-wheel/raffle-wheel.vue create mode 100644 mallplusui-uniapp-app2/components/red-bag/index.vue create mode 100644 mallplusui-uniapp-app2/components/reserve-date/reserve-date.vue create mode 100644 mallplusui-uniapp-app2/components/reserve-date/uni-icon.vue create mode 100644 mallplusui-uniapp-app2/components/share.vue create mode 100644 mallplusui-uniapp-app2/components/time-filter/time-filter.vue create mode 100644 mallplusui-uniapp-app2/components/u-charts/component.vue create mode 100644 mallplusui-uniapp-app2/components/u-charts/u-charts.js create mode 100644 mallplusui-uniapp-app2/components/u-charts/u-charts.min.js create mode 100644 mallplusui-uniapp-app2/components/uni-badge/uni-badge.vue create mode 100644 mallplusui-uniapp-app2/components/uni-countdown/readme.md create mode 100644 mallplusui-uniapp-app2/components/uni-countdown/uni-countdown.vue create mode 100644 mallplusui-uniapp-app2/components/uni-grid-item/uni-grid-item.vue create mode 100644 mallplusui-uniapp-app2/components/uni-grid/uni-grid.vue create mode 100644 mallplusui-uniapp-app2/components/uni-icon/readme.md create mode 100644 mallplusui-uniapp-app2/components/uni-icon/uni-icon.vue create mode 100644 mallplusui-uniapp-app2/components/uni-load-more/uni-load-more.vue create mode 100644 mallplusui-uniapp-app2/components/uni-number-box.vue create mode 100644 mallplusui-uniapp-app2/components/uni-rate/readme.md create mode 100644 mallplusui-uniapp-app2/components/uni-rate/uni-rate.vue create mode 100644 mallplusui-uniapp-app2/components/uni-section/uni-section.vue create mode 100644 mallplusui-uniapp-app2/components/uni-tag/uni-tag.vue create mode 100644 mallplusui-uniapp-app2/components/upload-images.vue create mode 100644 mallplusui-uniapp-app2/components/xiujun-evaluate/Readme.md create mode 100644 mallplusui-uniapp-app2/components/xiujun-evaluate/iconfont.css create mode 100644 mallplusui-uniapp-app2/components/xiujun-evaluate/list.js create mode 100644 mallplusui-uniapp-app2/components/xiujun-evaluate/uni-evaluate.vue create mode 100644 mallplusui-uniapp-app2/components/zhouWei-navBar/index.vue create mode 100644 mallplusui-uniapp-app2/components/zhouWei-navBar/zhouWei-navBar.md create mode 100644 mallplusui-uniapp-app2/config/api.js create mode 100644 mallplusui-uniapp-app2/config/baseUrl.js create mode 100644 mallplusui-uniapp-app2/config/common.js create mode 100644 mallplusui-uniapp-app2/config/config.js create mode 100644 mallplusui-uniapp-app2/config/db.js create mode 100644 mallplusui-uniapp-app2/config/mixins.js create mode 100644 mallplusui-uniapp-app2/config/requestConfig.js create mode 100644 mallplusui-uniapp-app2/config/store.js create mode 100644 mallplusui-uniapp-app2/main.js create mode 100644 mallplusui-uniapp-app2/mallplus.keystore create mode 100644 mallplusui-uniapp-app2/manifest.json create mode 100644 mallplusui-uniapp-app2/node_modules/jweixin-module/README.md create mode 100644 mallplusui-uniapp-app2/node_modules/jweixin-module/lib/index.js create mode 100644 mallplusui-uniapp-app2/node_modules/jweixin-module/package.json create mode 100644 mallplusui-uniapp-app2/node_modules/weixin-js-sdk/README.md create mode 100644 mallplusui-uniapp-app2/node_modules/weixin-js-sdk/index.js create mode 100644 mallplusui-uniapp-app2/node_modules/weixin-js-sdk/index.original.js create mode 100644 mallplusui-uniapp-app2/node_modules/weixin-js-sdk/package.json create mode 100644 mallplusui-uniapp-app2/package-lock.json create mode 100644 mallplusui-uniapp-app2/package.json create mode 100644 mallplusui-uniapp-app2/pages.json create mode 100644 mallplusui-uniapp-app2/pages/cart/cart.vue create mode 100644 mallplusui-uniapp-app2/pages/category/areaGoods.vue create mode 100644 mallplusui-uniapp-app2/pages/category/category.vue create mode 100644 mallplusui-uniapp-app2/pages/index/index.vue create mode 100644 mallplusui-uniapp-app2/pages/index/lease.vue create mode 100644 mallplusui-uniapp-app2/pages/index/nearbyBusiness.vue create mode 100644 mallplusui-uniapp-app2/pages/index/secskill.vue create mode 100644 mallplusui-uniapp-app2/pages/index/user.vue create mode 100644 mallplusui-uniapp-app2/pages/integral/home/home.css create mode 100644 mallplusui-uniapp-app2/pages/integral/home/home.vue create mode 100644 mallplusui-uniapp-app2/pages/money/pay.vue create mode 100644 mallplusui-uniapp-app2/pages/money/paySuccess.vue create mode 100644 mallplusui-uniapp-app2/pages/order/createOrder.vue create mode 100644 mallplusui-uniapp-app2/pages/order/createOrder1.vue create mode 100644 mallplusui-uniapp-app2/pages/order/createStoreOrder.vue create mode 100644 mallplusui-uniapp-app2/pages/order/createStoreOrder1.vue create mode 100644 mallplusui-uniapp-app2/pages/order/evaluate.vue create mode 100644 mallplusui-uniapp-app2/pages/order/logistics.vue create mode 100644 mallplusui-uniapp-app2/pages/order/order.vue create mode 100644 mallplusui-uniapp-app2/pages/order/orderDetail.vue create mode 100644 mallplusui-uniapp-app2/pages/order/payment/auth.vue create mode 100644 mallplusui-uniapp-app2/pages/order/payment/index.vue create mode 100644 mallplusui-uniapp-app2/pages/order/payment/index1.vue create mode 100644 mallplusui-uniapp-app2/pages/order/payment/result.vue create mode 100644 mallplusui-uniapp-app2/pages/public/index.vue create mode 100644 mallplusui-uniapp-app2/pages/public/login.vue create mode 100644 mallplusui-uniapp-app2/pages/public/loginCode.vue create mode 100644 mallplusui-uniapp-app2/pages/public/reg.vue create mode 100644 mallplusui-uniapp-app2/pages/search/search.vue create mode 100644 mallplusui-uniapp-app2/pages/set/certification.vue create mode 100644 mallplusui-uniapp-app2/pages/set/set.vue create mode 100644 mallplusui-uniapp-app2/pagesA/after_sale/detail.vue create mode 100644 mallplusui-uniapp-app2/pagesA/after_sale/index.vue create mode 100644 mallplusui-uniapp-app2/pagesA/after_sale/list.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/applyCommunity.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/bindCommunity.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/community.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/communityList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/floorList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/groupList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/groupProduct.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/notice.vue create mode 100644 mallplusui-uniapp-app2/pagesA/build/repairOrder/repairOrder.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/categoryAttr.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/discountList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/giftList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/giftProduct.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/groupActivityDetail.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/groupActivityList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/groupList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/groupProduct.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/list.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/paiMaiDetail.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/paiMaiList.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/product.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/tag.vue create mode 100644 mallplusui-uniapp-app2/pagesA/product/tagGoodslist.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/caldar.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/dayStatisc.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/evaluate.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/goods.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/index.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/login.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/member.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/monthStatisc.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/order.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/orderDetail.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/secskill.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/stack.vue create mode 100644 mallplusui-uniapp-app2/pagesC/seller/store.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/applyBusiness.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/businessDetails.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/index.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/list.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/school.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/schoolList.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/store.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/storeList.vue create mode 100644 mallplusui-uniapp-app2/pagesC/store/storeResult.vue create mode 100644 mallplusui-uniapp-app2/pagesU/address/address.vue create mode 100644 mallplusui-uniapp-app2/pagesU/address/addressManage.vue create mode 100644 mallplusui-uniapp-app2/pagesU/address/addressManage1.vue create mode 100644 mallplusui-uniapp-app2/pagesU/marking/index.vue create mode 100644 mallplusui-uniapp-app2/pagesU/notice/notice.vue create mode 100644 mallplusui-uniapp-app2/pagesU/notice/notice1.vue create mode 100644 mallplusui-uniapp-app2/pagesU/notice/subjectDetail.vue create mode 100644 mallplusui-uniapp-app2/pagesU/notice/subjectList.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/README.md create mode 100644 mallplusui-uniapp-app2/pagesU/user/applyMember.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/balance.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/collect.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/coupon.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/deposit.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/forget.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/integral.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/invite.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/inviteList.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/inviteMoney.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/myPurse.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/profile.vue create mode 100644 mallplusui-uniapp-app2/pagesU/user/reset_password.vue create mode 100644 mallplusui-uniapp-app2/plugins/APPUpdate/APPUpdate.md create mode 100644 mallplusui-uniapp-app2/plugins/APPUpdate/index.js create mode 100644 mallplusui-uniapp-app2/plugins/request/fileUpload.js create mode 100644 mallplusui-uniapp-app2/plugins/request/index.js create mode 100644 mallplusui-uniapp-app2/plugins/request/qiniuUploader.js create mode 100644 mallplusui-uniapp-app2/plugins/request/request.js create mode 100644 mallplusui-uniapp-app2/plugins/request/request.md create mode 100644 mallplusui-uniapp-app2/root.txt create mode 100644 mallplusui-uniapp-app2/static/address.png create mode 100644 mallplusui-uniapp-app2/static/arc.png create mode 100644 mallplusui-uniapp-app2/static/css/style.css create mode 100644 mallplusui-uniapp-app2/static/emptyCart.jpg create mode 100644 mallplusui-uniapp-app2/static/errorImage.jpg create mode 100644 mallplusui-uniapp-app2/static/fujin.png create mode 100644 mallplusui-uniapp-app2/static/fujin_.png create mode 100644 mallplusui-uniapp-app2/static/icon/ic_ar.png create mode 100644 mallplusui-uniapp-app2/static/image/alipay.png create mode 100644 mallplusui-uniapp-app2/static/image/balancepay.png create mode 100644 mallplusui-uniapp-app2/static/image/camera.png create mode 100644 mallplusui-uniapp-app2/static/image/del.png create mode 100644 mallplusui-uniapp-app2/static/image/ic-img.png create mode 100644 mallplusui-uniapp-app2/static/image/ic-link.png create mode 100644 mallplusui-uniapp-app2/static/image/invite-bg.png create mode 100644 mallplusui-uniapp-app2/static/image/payment_balance.png create mode 100644 mallplusui-uniapp-app2/static/image/qq.png create mode 100644 mallplusui-uniapp-app2/static/image/wechatpay.png create mode 100644 mallplusui-uniapp-app2/static/img/alipay.png create mode 100644 mallplusui-uniapp-app2/static/iphone.png create mode 100644 mallplusui-uniapp-app2/static/location.png create mode 100644 mallplusui-uniapp-app2/static/logo.png create mode 100644 mallplusui-uniapp-app2/static/missing-face.png create mode 100644 mallplusui-uniapp-app2/static/position.png create mode 100644 mallplusui-uniapp-app2/static/right-arrow.png create mode 100644 mallplusui-uniapp-app2/static/search.png create mode 100644 mallplusui-uniapp-app2/static/search/attention.png create mode 100644 mallplusui-uniapp-app2/static/search/attention_forbid.png create mode 100644 mallplusui-uniapp-app2/static/search/back.png create mode 100644 mallplusui-uniapp-app2/static/search/delete.png create mode 100644 mallplusui-uniapp-app2/static/select.png create mode 100644 mallplusui-uniapp-app2/static/selected.png create mode 100644 mallplusui-uniapp-app2/static/tab-cart-current.png create mode 100644 mallplusui-uniapp-app2/static/tab-cart.png create mode 100644 mallplusui-uniapp-app2/static/tab-cate-current.png create mode 100644 mallplusui-uniapp-app2/static/tab-cate.png create mode 100644 mallplusui-uniapp-app2/static/tab-home-current.png create mode 100644 mallplusui-uniapp-app2/static/tab-home.png create mode 100644 mallplusui-uniapp-app2/static/tab-my-current.png create mode 100644 mallplusui-uniapp-app2/static/tab-my.png create mode 100644 mallplusui-uniapp-app2/static/temp/ad1.jpg create mode 100644 mallplusui-uniapp-app2/static/temp/antFill-gift.png create mode 100644 mallplusui-uniapp-app2/static/temp/antFill-home.png create mode 100644 mallplusui-uniapp-app2/static/temp/c1.png create mode 100644 mallplusui-uniapp-app2/static/temp/c3.png create mode 100644 mallplusui-uniapp-app2/static/temp/c4.png create mode 100644 mallplusui-uniapp-app2/static/temp/c5.png create mode 100644 mallplusui-uniapp-app2/static/temp/c6.png create mode 100644 mallplusui-uniapp-app2/static/temp/c7.png create mode 100644 mallplusui-uniapp-app2/static/temp/c8.png create mode 100644 mallplusui-uniapp-app2/static/temp/fabfa-dropbox.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-archive.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-history.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-shopping.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-sitemap.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-street.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfa-truck.png create mode 100644 mallplusui-uniapp-app2/static/temp/fasfausers.png create mode 100644 mallplusui-uniapp-app2/static/temp/h1.png create mode 100644 mallplusui-uniapp-app2/static/temp/nav1.png create mode 100644 mallplusui-uniapp-app2/static/temp/secskill-img.jpg create mode 100644 mallplusui-uniapp-app2/static/temp/share_moment.png create mode 100644 mallplusui-uniapp-app2/static/temp/share_qq.png create mode 100644 mallplusui-uniapp-app2/static/temp/share_qqzone.png create mode 100644 mallplusui-uniapp-app2/static/temp/share_wechat.png create mode 100644 mallplusui-uniapp-app2/static/user-bg.jpg create mode 100644 mallplusui-uniapp-app2/static/vip-card-bg.png create mode 100644 mallplusui-uniapp-app2/static/youhuiquan.png create mode 100644 mallplusui-uniapp-app2/static/yticon.ttf create mode 100644 mallplusui-uniapp-app2/static/zhouWei-navBar/icon_back_black.png create mode 100644 mallplusui-uniapp-app2/static/zhouWei-navBar/icon_back_white.png create mode 100644 mallplusui-uniapp-app2/static/zhouWei-navBar/icon_home_black.png create mode 100644 mallplusui-uniapp-app2/static/zhouWei-navBar/icon_home_white.png create mode 100644 mallplusui-uniapp-app2/store/index.js create mode 100644 mallplusui-uniapp-app2/test.json create mode 100644 mallplusui-uniapp-app2/uni.scss diff --git a/mallplusui-uniapp-app2/.gitignore b/mallplusui-uniapp-app2/.gitignore new file mode 100644 index 0000000..61e358d --- /dev/null +++ b/mallplusui-uniapp-app2/.gitignore @@ -0,0 +1,15 @@ +# Maven # +target/ + +# IDEA # +.idea/ +*.iml +*.zip +# Eclipse # +.settings/ +.classpath +.project + +/vue +/unpackage +*/vue \ No newline at end of file diff --git a/mallplusui-uniapp-app2/.hbuilderx/launch.json b/mallplusui-uniapp-app2/.hbuilderx/launch.json new file mode 100644 index 0000000..582561b --- /dev/null +++ b/mallplusui-uniapp-app2/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // 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" + } + ] +} diff --git a/mallplusui-uniapp-app2/App.vue b/mallplusui-uniapp-app2/App.vue new file mode 100644 index 0000000..8c9547a --- /dev/null +++ b/mallplusui-uniapp-app2/App.vue @@ -0,0 +1,505 @@ + + + diff --git a/mallplusui-uniapp-app2/Json.js b/mallplusui-uniapp-app2/Json.js new file mode 100644 index 0000000..fa2240a --- /dev/null +++ b/mallplusui-uniapp-app2/Json.js @@ -0,0 +1,672 @@ +/* 用户 */ +const userInfo = { + status: 1, + data: { + id: 1, + mobile: 18888888888, + nickname: 'Leo yo', + portrait: 'http://img.61ef.cn/news/201409/28/2014092805595807.jpg' + }, + msg: '提示' +} +/* 首页轮播图 */ +const carouselList = [{ + src: "/static/temp/banner3.jpg", + background: "rgb(203, 87, 60)", + }, + { + src: "/static/temp/banner2.jpg", + background: "rgb(205, 215, 218)", + }, + { + src: "/static/temp/banner4.jpg", + background: "rgb(183, 73, 69)", + } +] +/* 商品列表 */ +const goodsList = [{ + image: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg", + image2: "http://pic.rmb.bdstatic.com/819a044daa66718c2c40a48c1ba971e6.jpeg", + image3: "http://img001.hc360.cn/y5/M00/1B/45/wKhQUVYFE0uEZ7zVAAAAAMj3H1w418.jpg", + title: "古黛妃 短袖t恤女夏装2019新款韩版宽松", + price: 179, + sales: 61, + }, + { + image: "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg", + image2: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1554013048&di=a3dc9fd1406dd7bad7fbb97b5489ec04&imgtype=jpg&er=1&src=http%3A%2F%2Fimg009.hc360.cn%2Fhb%2FnKo44ac2656F831c684507E3Da0E3a26841.jpg", + image3: "http://img.zcool.cn/community/017a4e58b4eab6a801219c77084373.jpg", + title: "潘歌针织连衣裙", + price: 78, + sales: 16, + }, + { + image: "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg", + image2: "http://m.360buyimg.com/n12/jfs/t247/42/1078640382/162559/3628a0b/53f5ad09N0dd79894.jpg%21q70.jpg", + image3: "http://ikids.61kids.com.cn/upload/2018-12-29/1546070626796114.jpg", + title: "巧谷2019春夏季新品新款女装", + price: 108.8, + sales: 5, + }, { + image: "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=756705744,3505936868&fm=11&gp=0.jpg", + image2: "http://images.jaadee.com/images/201702/goods_img/30150_d85aed83521.jpg", + image3: "http://img13.360buyimg.com/popWaterMark/jfs/t865/120/206320620/138889/dcc94caa/550acedcN613e2a9d.jpg", + title: "私萱连衣裙", + price: 265, + sales: 88, + }, { + image: "https://img13.360buyimg.com/n8/jfs/t1/30343/20/1029/481370/5c449438Ecb46a15b/2b2adccb6dc742fd.jpg", + image2: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553418265666&di=d4a7f7eb0ae3c859edeb921641ee1c3a&imgtype=0&src=http%3A%2F%2Fimg003.hc360.cn%2Fy3%2FM02%2FF8%2F9F%2FwKhQh1TuSkGELIlQAAAAAPuLl4M987.jpg", + image3: "http://img.ef43.com.cn/product/2016/8/05100204b0c.jpg", + title: "娇诗茹 ulzzang原宿风学生潮韩版春夏短", + price: 422, + sales: 137, + }, { + image: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg", + image2: "http://image5.suning.cn/uimg/b2c/newcatentries/0070158827-000000000622091973_2_800x800.jpg", + image3: "http://img.61ef.cn/news/201903/20/2019032009251784.jpg", + title: "古黛妃 短袖t恤女夏装2019新款韩版宽松", + price: 179, + sales: 95, + }, +] + +/* 购物车 */ +const cartList = [{ + id: 1, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553005139&di=3368549edf9eee769a9bcb3fbbed2504&imgtype=jpg&er=1&src=http%3A%2F%2Fimg002.hc360.cn%2Fy3%2FM01%2F5F%2FDB%2FwKhQh1T7iceEGRdWAAAAADQvqk8733.jpg', + attr_val: '春装款 L', + stock: 15, + title: 'OVBE 长袖风衣', + price: 278.00, + number: 1 + }, + { + id: 3, + image: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2319343996,1107396922&fm=26&gp=0.jpg', + attr_val: '激光导航 扫拖一体', + stock: 3, + title: '科沃斯 Ecovacs 扫地机器人', + price: 1348.00, + number: 5 + }, + { + id: 4, + image: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2668268226,1765897385&fm=26&gp=0.jpg', + attr_val: 'XL', + stock: 55, + title: '朵绒菲小西装', + price: 175.88, + number: 1 + }, + { + id: 5, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552410549432&di=06dd3758053fb6d6362516f30a42d055&imgtype=0&src=http%3A%2F%2Fimgcache.mysodao.com%2Fimg3%2FM0A%2F67%2F42%2FCgAPD1vNSsHNm-TnAAEy61txQb4543_400x400x2.JPG', + attr_val: '520 #粉红色', + stock: 15, + title: '迪奥(Dior)烈艳唇膏', + price: 1089.00, + number: 1 + }, + { + id: 6, + image: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1031875829,2994442603&fm=26&gp=0.jpg', + attr_val: '樱花味润手霜 30ml', + stock: 15, + title: "欧舒丹(L'OCCITANE)乳木果", + price: 128, + number: 1 + }, + { + id: 7, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553007107&di=390915aa8a022cf0b03c03340881b0e7&imgtype=jpg&er=1&src=http%3A%2F%2Fimg13.360buyimg.com%2Fn0%2Fjfs%2Ft646%2F285%2F736444951%2F480473%2Faa701c97%2F548176feN10c9ed7b.jpg', + attr_val: '特级 12个', + stock: 7, + title: '新疆阿克苏苹果 特级', + price: 58.8, + number: 10 + }, + { + id: 8, + image: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2319343996,1107396922&fm=26&gp=0.jpg', + attr_val: '激光导航 扫拖一体', + stock: 15, + title: '科沃斯 Ecovacs 扫地机器人', + price: 1348.00, + number: 1 + }, + { + id: 9, + image: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2668268226,1765897385&fm=26&gp=0.jpg', + attr_val: 'XL', + stock: 55, + title: '朵绒菲小西装', + price: 175.88, + number: 1 + }, + { + id: 10, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552410549432&di=06dd3758053fb6d6362516f30a42d055&imgtype=0&src=http%3A%2F%2Fimgcache.mysodao.com%2Fimg3%2FM0A%2F67%2F42%2FCgAPD1vNSsHNm-TnAAEy61txQb4543_400x400x2.JPG', + attr_val: '520 #粉红色', + stock: 15, + title: '迪奥(Dior)烈艳唇膏', + price: 1089.00, + number: 1 + }, + { + id: 11, + image: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1031875829,2994442603&fm=26&gp=0.jpg', + attr_val: '樱花味润手霜 30ml', + stock: 15, + title: "欧舒丹(L'OCCITANE)乳木果", + price: 128, + number: 1 + }, + { + id: 12, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553007107&di=390915aa8a022cf0b03c03340881b0e7&imgtype=jpg&er=1&src=http%3A%2F%2Fimg13.360buyimg.com%2Fn0%2Fjfs%2Ft646%2F285%2F736444951%2F480473%2Faa701c97%2F548176feN10c9ed7b.jpg', + attr_val: '特级 12个', + stock: 7, + title: '新疆阿克苏苹果 特级', + price: 58.8, + number: 10 + }, + { + id: 13, + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552405266625&di=a703f2b2cdb0fe7f3f05f62dd91307ab&imgtype=0&src=http%3A%2F%2Fwww.78.cn%2Fzixun%2Fnews%2Fupload%2F20190214%2F1550114706486250.jpg', + attr_val: '春装款/m', + stock: 15, + title: '女装2019春秋新款', + price: 420.00, + number: 1 + } +]; +//详情展示页面 +const detailData = { + title: '纯种金毛幼犬活体有血统证书', + title2: '拆家小能手 你值得拥有', + favorite: true, + imgList: [{ + src: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg' + }, + { + src: 'http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1309/06/c4/25310541_1378426131583.jpg' + }, + { + src: 'http://img.pconline.com.cn/images/upload/upc/tx/photoblog/1610/26/c4/28926240_1477451226577_mthumb.jpg' + }, + { + src: 'http://picture.ik123.com/uploads/allimg/190219/12-1Z219105139.jpg' + }, + ], + episodeList: [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 + ], + guessList: [{ + src: 'http://img.52z.com/upload/news/image/20180530/20180530081619_31029.jpg', + title: '猫眼指甲油', + title2: '独树一帜的免照灯猫眼指甲' + }, + { + src: 'http://m.china-7.net/uploads/14778449362891.jpg', + title: '创意屋', + title2: '创意屋形上下双层高低床' + }, + { + src: 'http://www.k73.com/up/allimg/130415/22-130415093527.jpg', + title: 'MissCandy 指甲油', + title2: '十分适合喜欢素净的妹纸,尽显淡雅的气质' + }, + { + src: 'http://img0.imgtn.bdimg.com/it/u=2108933440,2194129200&fm=214&gp=0.jpg ', + title: 'RMK 2017星空海蓝唇釉', + title2: '唇釉质地,上唇后很滋润。少女也会心动的蓝色,透明液体形状。' + } + ], + evaList: [{ + src: 'http://gss0.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/77c6a7efce1b9d1663174705fbdeb48f8d546486.jpg', + nickname: 'Ranth Allngal', + time: '09-20 12:54', + zan: '54', + content: '评论不要太苛刻,不管什么产品都会有瑕疵,客服也说了可以退货并且商家承担运费,我觉得至少态度就可以给五星。' + }, + { + src: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg', + nickname: 'Ranth Allngal', + time: '09-20 12:54', + zan: '54', + content: '楼上说的好有道理。' + } + ] +} +const shareList = [{ + type: 1, + icon: '/static/temp/share_wechat.png', + text: '微信好友', + provider: 'weixin', + scene: 'WXSceneSession', + typeIcon: 0 + }, + { + type: 2, + icon: '/static/temp/share_moment.png', + text: '朋友圈', + provider: 'weixin', + scene: 'WXSenceTimeline', + typeIcon: 0 + }, + { + type: 3, + icon: '/static/temp/share_qq.png', + text: 'QQ好友', + provider: 'qq', + scene: 'WXSceneSession', + typeIcon: 1 + }, + { + type: 4, + icon: '/static/temp/share_qqzone.png', + text: 'QQ空间', + provider: 'qq', + scene: 'WXSenceTimeline', + typeIcon: 1 + } +] +const lazyLoadList = [{ + src: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg' + }, + { + src: 'http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1309/06/c4/25310541_1378426131583.jpg' + }, + { + src: 'http://img.pconline.com.cn/images/upload/upc/tx/photoblog/1610/26/c4/28926240_1477451226577_mthumb.jpg' + }, + { + src: 'http://picture.ik123.com/uploads/allimg/190219/12-1Z219105139.jpg' + }, + { + src: 'http://img5.imgtn.bdimg.com/it/u=2904900134,438461613&fm=26&gp=0.jpg' + }, + { + src: 'http://img1.imgtn.bdimg.com/it/u=1690475408,2565370337&fm=26&gp=0.jpg' + }, + { + src: 'http://img.99114.com/group1/M00/7F/99/wKgGS1kVrPGAe5LmAAU2KrJmb3Q923_600_600.jpg' + }, + { + src: 'http://img4.imgtn.bdimg.com/it/u=261047209,372231813&fm=26&gp=0.jpg' + }, + { + src: 'http://i2.17173cdn.com/i7mz64/YWxqaGBf/tu17173com/20150107/eMyVMObjlbcvDEv.jpg' + }, + { + src: 'http://img008.hc360.cn/m4/M02/E7/87/wKhQ6FSrfU6EfUoyAAAAAITAfyc280.jpg' + }, + { + src: 'http://pic1.win4000.com/wallpaper/d/5991569950166.jpg' + }, + { + src: 'http://gss0.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/6f061d950a7b0208f9fe945e60d9f2d3572cc85e.jpg' + }, + { + src: 'http://pic41.nipic.com/20140429/18169759_125841756000_2.jpg' + }, + { + src: 'http://www.k73.com/up/allimg/130415/22-130415093527.jpg' + }, + { + src: 'http://img.52z.com/upload/news/image/20180530/20180530081619_31029.jpg' + }, + { + src: 'http://b-ssl.duitang.com/uploads/item/201410/02/20141002111638_tXAzU.jpeg' + }, + { + src: 'http://img2.ph.126.net/C4JW6f57QWSB21-8jh2UGQ==/1762596304262286698.jpg' + }, + { + src: 'http://att.bbs.duowan.com/forum/201405/17/190257nzcvkkdg6w2e8226.jpg' + }, + { + src: 'http://attach.bbs.miui.com/forum/201504/10/223644v3intigyvva0vgym.jpg' + }, + { + src: 'http://pic1.win4000.com/mobile/3/57888a298d61d.jpg' + }, +] + +const orderList = [{ + time: '2019-04-06 11:37', + state: 1, + goodsList: [{ + image: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg', + }, + { + image: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg', + }, + { + image: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg', + }, + { + image: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg', + }, + { + image: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg', + }, + { + image: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg', + }, + { + image: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg', + } + ] + }, + { + time: '2019-04-06 11:37', + state: 9, + goodsList: [{ + title: '古黛妃 短袖t恤女 春夏装2019新款韩版宽松', + price: 179.5, + image: 'https://img13.360buyimg.com/n8/jfs/t1/30343/20/1029/481370/5c449438Ecb46a15b/2b2adccb6dc742fd.jpg', + number: 1, + attr: '珊瑚粉 M' + }] + }, + { + time: '2019-04-06 11:37', + state: 1, + goodsList: [{ + image: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/2120460599/O1CN01LBPS4C1GINkwsOTXS_!!2120460599.jpg_430x430q90.jpg', + }, + { + image: 'https://img.alicdn.com/imgextra/i2/1069876356/TB2ocTQG4WYBuNjy1zkXXXGGpXa_!!1069876356.jpg_430x430q90.jpg', + }, + { + image: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/2120460599/O1CN01YsmgwZ1GINkv38rkn_!!2120460599.jpg_430x430q90.jpg', + }, + ] + }, + { + time: '2019-04-06 11:37', + state: 1, + goodsList: [{ + title: '回力女鞋高帮帆布鞋女学生韩版鞋子女2019潮鞋女鞋新款春季板鞋女', + price: 69, + image: 'https://img.alicdn.com/imgextra/i3/2128794607/TB2gzzoc41YBuNjy1zcXXbNcXXa_!!2128794607.jpg_430x430q90.jpg', + number: 1, + attr: '白色-高帮 39' + }] + }, + { + time: '2019-04-06 11:37', + state: 1, + goodsList: [{ + image: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/3358098495/O1CN01dhYyid2Ccl5MWLDok_!!3358098495.jpg_430x430q90.jpg', + }, + { + image: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i3/3358098495/O1CN01AWsnFA2Ccl5OzvqsL_!!3358098495.jpg_430x430q90.jpg', + }, + ] + }, + { + time: '2019-04-06 11:37', + state: 1, + goodsList: [{ + image: 'https://img.alicdn.com/imgextra/i4/3470687433/O1CN0124mMQOSERr18L1h_!!3470687433.jpg_430x430q90.jpg', + }, + { + image: 'https://img.alicdn.com/imgextra/i3/2888462616/O1CN01ERra5J1VCAbZaKI5n_!!0-item_pic.jpg_430x430q90.jpg', + }, + { + image: 'https://gd3.alicdn.com/imgextra/i3/819381730/O1CN01YV4mXj1OeNhQIhQlh_!!819381730.jpg_400x400.jpg', + }, + ] + } + +] +const cateList = [{ + id: 1, + name: '手机数码' + }, + { + id: 2, + name: '礼品鲜花' + }, + { + id: 3, + name: '男装女装' + }, + { + id: 4, + name: '母婴用品' + }, + { + id: 5, + pid: 1, + name: '手机通讯' + }, + { + id: 6, + pid: 1, + name: '运营商' + }, + { + id: 8, + pid: 5, + name: '全面屏手机', + picture: '/static/temp/cate2.jpg' + }, + { + id: 9, + pid: 5, + name: '游戏手机', + picture: '/static/temp/cate3.jpg' + }, + { + id: 10, + pid: 5, + name: '老人机', + picture: '/static/temp/cate1.jpg' + }, + { + id: 11, + pid: 5, + name: '拍照手机', + picture: '/static/temp/cate4.jpg' + }, + { + id: 12, + pid: 5, + name: '女性手机', + picture: '/static/temp/cate5.jpg' + }, + { + id: 14, + pid: 6, + name: '合约机', + picture: '/static/temp/cate1.jpg' + }, + { + id: 15, + pid: 6, + name: '选好卡', + picture: '/static/temp/cate4.jpg' + }, + { + id: 16, + pid: 6, + name: '办套餐', + picture: '/static/temp/cate5.jpg' + }, + { + id: 17, + pid: 2, + name: '礼品', + }, + { + id: 18, + pid: 2, + name: '鲜花', + }, + { + id: 19, + pid: 17, + name: '公益摆件', + picture: '/static/temp/cate7.jpg' + }, + { + id: 20, + pid: 17, + name: '创意礼品', + picture: '/static/temp/cate8.jpg' + }, + { + id: 21, + pid: 18, + name: '鲜花', + picture: '/static/temp/cate9.jpg' + }, + { + id: 22, + pid: 18, + name: '每周一花', + picture: '/static/temp/cate10.jpg' + }, + { + id: 23, + pid: 18, + name: '卡通花束', + picture: '/static/temp/cate11.jpg' + }, + { + id: 24, + pid: 18, + name: '永生花', + picture: '/static/temp/cate12.jpg' + }, + { + id: 25, + pid: 3, + name: '男装' + }, + { + id: 26, + pid: 3, + name: '女装' + }, + { + id: 27, + pid: 25, + name: '男士T恤', + picture: '/static/temp/cate13.jpg' + }, + { + id: 28, + pid: 25, + name: '男士外套', + picture: '/static/temp/cate14.jpg' + }, + { + id: 29, + pid: 26, + name: '裙装', + picture: '/static/temp/cate15.jpg' + }, + { + id: 30, + pid: 26, + name: 'T恤', + picture: '/static/temp/cate16.jpg' + }, + { + id: 31, + pid: 26, + name: '上装', + picture: '/static/temp/cate15.jpg' + }, + { + id: 32, + pid: 26, + name: '下装', + picture: '/static/temp/cate16.jpg' + }, + { + id: 33, + pid: 4, + name: '奶粉', + }, + { + id: 34, + pid: 4, + name: '营养辅食', + }, + { + id: 35, + pid: 4, + name: '童装', + }, + { + id: 39, + pid: 4, + name: '喂养用品', + }, + { + id: 36, + pid: 33, + name: '有机奶粉', + picture: '/static/temp/cate17.jpg' + }, + { + id: 37, + pid: 34, + name: '果泥/果汁', + picture: '/static/temp/cate18.jpg' + }, + { + id: 39, + pid: 34, + name: '面条/粥', + picture: '/static/temp/cate20.jpg' + }, + { + id: 42, + pid: 35, + name: '婴童衣橱', + picture: '/static/temp/cate19.jpg' + }, + { + id: 43, + pid: 39, + name: '吸奶器', + picture: '/static/temp/cate21.jpg' + }, + { + id: 44, + pid: 39, + name: '儿童餐具', + picture: '/static/temp/cate22.jpg' + }, + { + id: 45, + pid: 39, + name: '牙胶安抚', + picture: '/static/temp/cate23.jpg' + }, + { + id: 46, + pid: 39, + name: '围兜', + picture: '/static/temp/cate24.jpg' + }, +] + +export default { + carouselList, + cartList, + detailData, + lazyLoadList, + userInfo, + shareList, + goodsList, + orderList, + cateList +} diff --git a/mallplusui-uniapp-app2/README.en.md b/mallplusui-uniapp-app2/README.en.md new file mode 100644 index 0000000..7b402c0 --- /dev/null +++ b/mallplusui-uniapp-app2/README.en.md @@ -0,0 +1,38 @@ +# uniapp +https://blog.csdn.net/weixin_34337265/article/details/86030756 +https://blog.csdn.net/Neil_1993/article/details/85691295 +https://blog.csdn.net/qq_15764943/article/details/85837552 +#### Description +{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} + +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + +#### Contribution + +1. Fork the repository +2. Create Feat_xxx branch +3. Commit your code +4. Create Pull Request + + +#### Gitee Feature + +1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md +2. Gitee blog [blog.gitee.com](https://blog.gitee.com) +3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) +4. The most valuable open source project [GVP](https://gitee.com/gvp) +5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) +6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) \ No newline at end of file diff --git a/mallplusui-uniapp-app2/README.md b/mallplusui-uniapp-app2/README.md new file mode 100644 index 0000000..10c801d --- /dev/null +++ b/mallplusui-uniapp-app2/README.md @@ -0,0 +1,75 @@ +<<<<<<< HEAD +# uniapp +======= +# orangemall多租户商城后台uni-app前端 +>>>>>>> d3c4db497ff0a14620ac8c253d9b194cbc87afae + +#### 介绍 +{**以下是码云平台说明,您可以替换此简介** +码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 +无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} + +#### 软件架构 +软件架构说明 + + +#### 安装教程 +<<<<<<< HEAD +qq 951449465 +1. 根目录下执行 npm install jweixin-module --save + + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + +======= + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request +>>>>>>> d3c4db497ff0a14620ac8c253d9b194cbc87afae + + +#### 码云特技 + +<<<<<<< HEAD +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 +5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +======= +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 +5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +>>>>>>> d3c4db497ff0a14620ac8c253d9b194cbc87afae + + +现在的分销是 会员注册的时候 填写邀请码,然后我购买分销商品,并且支付成功后,给邀请码的用户反钱 \ No newline at end of file diff --git a/mallplusui-uniapp-app2/common/api.js b/mallplusui-uniapp-app2/common/api.js new file mode 100644 index 0000000..31f2988 --- /dev/null +++ b/mallplusui-uniapp-app2/common/api.js @@ -0,0 +1,441 @@ +import store from '../store/index'; +export default { + // qq 237524947 wx15d4269d3210863d + BASEURI: 'http://mall.yyundong.com/portalapi/api/', + // BASEURI: 'http://www.yyundong.com:8083/api/', + ADMINURI: 'http://mall.yyundong.com/adminapi/', + ESURI: 'http://www.yyundong.com:8081/', + h5Appid: 'wxb4660f37187c0b8e', // h5微信登录的appId 暂时测试用 + source: 1, //1 weixinApplet 2 h5Source 3 pcSource 4 android 5ios + es: { + simpleSearchList: 'esProduct/search/simple', //简单搜索 + search: 'esProduct/search', //综合搜索、筛选、排序 + }, + /** + * 接口名称 + */ + index: { + sysInfo: 'single/home/sysInfo', + submitLocaltion: 'single/home/submitLocaltion', + getAppletOpenId: 'applet/getAppletOpenId', // 获取openId + getWxPhone: 'applet/getWxPhone', // 获取手机号 + logout: 'single/home/logout', + appletLogin_by_weixin: 'applet/login_by_weixin1', // 登录(手机号:phone 密码:password) + login: 'single/home/login', // 登录(手机号:phone 密码:password) + appLogin: 'single/home/appLogin', + simpleReg: 'single/home/simpleReg', // 登录(手机号:phone 密码:password) + home: 'single/home/content', //首页展示 + home1: 'single/home/content1', //首页展示 + homeFlashPromotionList: 'single/home/homeFlashPromotionList', // 秒杀列表 + bannerList: 'single/home/bannerList', // 首页banner + updatePassword: 'single/home/updatePassword', // 修改密码 + loginByCode: 'single/home/loginByCode', // 手机和验证码登录 + reg: 'single/home/reg', // 注册 + sendCodes: 'single/home/sms/codes', // 获取验证码 + acceptCoupon: 'single/sms/add', // 获取优惠券 + listMemberCoupon: 'single/sms/listMemberCoupon', // 优惠券列表 + couponList: 'single/home/couponList', // 优惠券 + selectNotRecive: 'single/home/selectNotRecive', // 可领取的优惠券 + userInfo: 'single/home/userInfo', // 用户信息 + userSampleInfo: 'single/home/userSampleInfo', // 用户信息 + groupActivityDetail: 'single/sms/group.activity.getdetial', // 查询团购详情信息 + groupActivityList: 'single/sms/groupActivityList', // 查询商品团购列表 + logs: 'single/home/logs', // 记录日志 + diyDetail: 'single/sms/diyDetail', + homeNewProduct: 'single/sms/homeNewProduct/list', //首页新品推荐列表 + homeBrand: 'single/sms/homeBrand/list', //首页品牌推荐列表 + homeRecommendProduct: 'single/sms/homeRecommendProduct/list', //首页人气推荐列表 + homeRecommendSubject: 'single/sms/homeRecommendSubject/list', //首页专题推荐列表 + nearShopList: 'single/store/dis/shopList', //附近门店 + nearStoreList: 'single/store/dis/storeList', // 附近商户 + shoplist: 'single/store/shoplist', //查询门店管理 + shopDetail: 'single/store/shopDetail', // 门店详情 + storeClassList: 'single/store/storeClass/list', // 商户内部分类 + storeCommentList: 'single/store/storeComment/list', // 商户评论 + noticeList: 'single/home/notice/list', + noticeDetail: 'single/home/notice/detail', + }, + member: { + applyMember: 'single/user/applyMember', // 会员升级等级 + memberLevelList: 'single/user/memberLevel/list', // 查询会员等级列表 + getInviteData: 'single/user/getInviteData', + inviteUser: 'single/user/inviteUser', + inviteMoney: 'single/user/inviteMoney', + currentMember: 'single/user/currentMember', + updateMember: 'single/user/updateMember', + resetPassword: 'single/user/resetPassword', + schoolList: 'single/user/school/list', // 查询学校列表 + schoolDetail: 'single/user/schoolDetail', // 查询拼团商品详情信息 + getAreaByPid: 'single/user/getAreaByPid', // 根据pid查询区域 + bindSchool: 'single/user/bindSchool', // 会员绑定学校 + bindArea: 'single/user/bindArea', // 会员绑定区域 + applyStore: 'single/store/applyStore', // 商户入驻 + storeDetail: 'single/store/detail', // 商户详情 + storeDetail1: 'single/store/detail1', // 商户详情 带用户 + store: 'single/store/home', // 商户主页 + storeList: 'single/store/store/list', // 商户列表 + memberTagList: 'single/user/memberTag/list', // 商户列表 + addStoreComment: 'single/store/addStoreComment', // 商户addStoreComment + memberBlanceLogList: 'single/user/memberBlanceLog/list', + }, + build: { + getBuildNoticeByPage: 'single/build/getBuildNoticeByPage', // 所有社区和房间 + getBuildWuyeCompanyByPage: 'single/build/getBuildWuyeCompanyByPage', // 所有社区和房间 + groupList: 'single/build/groupList', // 所有社区和房间 + communityList: 'single/build/communityList', // 所有社区和房间 + nearCommunityList: 'single/build/near/communityList', // 周边社区 + floorList: 'single/build/floorList', // 所有社区和房间 + allCommunity: 'single/build/allCommunity', // 所有社区和房间 + bindCommunity: 'single/build/bindCommunity', // 绑定小区和房间 + home: 'single/build/home', // 首页内容页信息展示 + applyCommunity: 'single/build/applyCommunity', // 社区入驻 + + + }, + goods: { + tagGoodsList: 'single/pms/tag/goods', // 查询标签商品 + goodsPromoto: 'single/sms/detail', // 单个商品的优惠详情 + secskillDetail: 'single/pms/secskill/detail', // 查询秒杀商品详情信息 + groupGoodsDetail: 'single/pms/goodsGroup/detail', // 查询拼团商品详情信息 + + groupHotGoodsList: 'single/pms/groupHotGoods/list', // 查询生效拼团商品列表 + giftDetail: 'single/pms/gift/detail', // 查询商品详情信息 + giftList: 'single/pms/gift/list', // 查询商品列表 + paiMaiDetail: 'single/pms/paimai/detail', // 查询商品详情信息 + updatePaiMai: 'single/pms/updatePaiMai', // 参与竞价 + typeGiftList: 'single/pms/typeGiftList', //查询商品类型下的商品列表 + addView: 'single/pms/addView', // 查询商品详情信息 + viewList: 'single/pms/viewList', // 查询商品列表 + + goodsDetail: 'single/pms/goods/detail', // 查询商品详情信息 + goodsList: 'single/pms/goods/list', // 查询商品列表 + productAttrCategoryList: 'single/pms/productAttrCategory/list', // 查询商品属性分类列表 + categoryList: 'single/pms/productCategory/list', // 查询商品分类列表 + createGoods: 'single/pms/createGoods', //创建商品 + brandList: 'single/pms/brand/list', // 根据条件查询所有品牌表列表 + consultList: 'single/pms/consult/list', // 取某个商品的评价 + categoryAndGoodsList: 'single/pms/categoryAndGoodsList/list', // 查询商品属性分类列表和商品 + typeGoodsList: 'single/pms/typeGoodsList', //查询商品类型下的商品列表 + typeGoodsList1: 'single/pms/typeGoodsList1', //查询商品类型下的商品列表 + areaGoodsList: 'single/pms/areaGoodsList', //查询商品类型下的商品列表 + typeList: 'single/pms/typeList', //查询商品类型下的商品列表 + + getGoodsTypes: 'single/pms/getGoodsTypes', // 查询分类 + + recommendBrand: 'single/pms/recommendBrand/list', // 查询首页推荐品牌 + newProductList: 'single/pms/newProductList/list', //查询首页新品 + hotProductList: 'single/pms/hotProductList/list', // 查询热销商品 + listCollect: 'collection/listCollect', // 显示关注列表 + deleteCollect: 'collection/delete', // 删除收藏中的某个商品 + favoriteSave: 'collection/favoriteSave', // 添加/商品收藏 + listAddress: 'address/list', // 显示所有收货地址 + deleteAddress: 'address/delete', // 删除 + addressSave: 'address/save', // 添加 + setDefaultAddress: 'address/address-set-default', // 设为默认地址 + getItemDefautl: 'address/getItemDefautl', // 显示默认收货地址 + + }, + order: { + getRefundReason: 'single/oms/order/getRefundReason', // 查询售后原因 + saveOmsOrderReturnApply: 'single/oms/saveOmsOrderReturnApply', // 添加售后 + aftersaleslist: 'single/oms/order/aftersaleslist', // 查询售后列表 + aftersalesinfo: 'single/oms/aftersalesinfo', // 查询售后详情 + addGroup: 'single/oms/addGroup', // 发起拼团 + acceptGroup: 'single/oms/acceptGroup', // 提交拼团 + sampleOrderList: 'single/oms/sampleOrderList', // 查询订单列表 + orderList: 'single/oms/order/list', // 查询订单列表 + orderDetail: 'single/oms/detail', // 查询订单列表 + preGroupActivityOrder: 'single/oms/preGroupActivityOrder', // 预览订单团购 + preOrder: 'single/oms/submitPreview', // 预览订单 + bookOrder: 'single/oms/generateOrder', // 生成订单 + submitStorePreview: 'single/oms/submitStorePreview', // 预览订单 + generateStoreOrder: 'single/oms/generateStoreOrder', // 生成订单 + closeOrder: 'single/oms/closeOrder', // 关闭订单 + confimDelivery: 'single/oms/confimDelivery', //确认收货 + applyRefund: 'single/oms/applyRefund', // 申请退款 + logisticbyapi: 'single/oms/logisticbyapi', // 查看物流 + orderevaluate: 'single/oms/orderevaluate', //订单评价 + addCart: 'cart/addCart', // 添加商品到购物车 + cartList: 'cart/list', // 获取某个会员的购物车列表 + promotionCartList: 'cart/list/promotion', // 获取某个会员的购物车列表,包括促销信息 + updateQuantity: 'cart/update/quantity', //修改购物车中某个商品的数量 + deleteCart: 'cart/delete', // 删除购物车中的某个商品 + clearCart: 'cart/clear', // 清空购物车 + + paymentlist: 'pay/paymentlist', // 查询订单列表 + + jifenPay: 'pay/jifenPay', // 积分兑换 + balancePay: 'pay/balancePay', // 余额支付 + weixinAppletPay: 'pay/weixinAppletPay', // 微信小程序支付 + //支付宝 + aliAppPay: 'aliPay/appPay', // 支付宝app支付 + aliWapPay: 'aliPay/wapPay', // 支付宝支付 + wapPayNoSdk: 'aliPay/wapPayNoSdk', // 支付宝支付 + pcPay: 'aliPay/pcPay', // 支付宝支付 + aliPay: 'aliPay/tradePay', // 支付宝支付 String authCode, String scene + aliPrecreatePay: 'aliPay/tradePrecreatePay', // 支付宝扫码支付 + aliRefund: 'aliPay/tradePrecreatePay', // 支付宝退款 + //微信 + wapPay: 'wxPay/wapPay', //微信H5 支付 注意:必须再web页面中发起支付且域名已添加到开发配置中 + webPay: 'wxPay/webPay', //公众号支付 + scanCode1: 'wxPay/scanCode1', //扫码支付模式一 已测试 + scanCode2: 'wxPay/scanCode2', //扫码支付模式二 已测试 + appPay: 'wxPay/appPay', //微信APP支付 + micropay: 'wxPay/micropay', //微信刷卡支付 + miniAppPay: 'wxPay/miniAppPay', //微信小程序支付 + refund: 'wxPay/refund', //微信退款 String transactionId,String outTradeNo + authCodeToOpenid: 'wxPay/authCodeToOpenid', //openId,采用 网页授权获取 access_token API:SnsAccessTokenApi获取 + + //银联支付 + frontConsume: 'unionPay/frontConsume', //PC网关支付 B2C跟B2B查询区别就在于bizType的不同 + frontConsume2: 'unionPay/frontConsume2', //B2B的网关支付 B2C跟B2B查询区别就在于bizType的不同 + wapConsume: 'unionPay/wapConsume', //WAP支付 请在手机paymentlist端访问此action + appConsume: 'unionPay/appConsume', //APP支付获取tn + frontrefund: 'unionPay/refund', // + + //京东 + jdappPay: 'JDPay/appPay', //App 支付 + saveOrder: 'JDPay/saveOrder', //String payType PC H5 支付 + customerPay: 'JDPay/customerPay', //商户二维码支付 + fkmPay: 'JDPay/fkmPay', //刷卡支付 String token, String amount + jdrefund: 'JDPay/refund', //微信APP支付 + + + }, + cms: { + subjectList: 'single/cms/subject/list', // 查询文章列表 + subjectCategoryList: 'single/cms/subjectCategory/list', // 查询文章分类列表 + subjectCommentList: 'single/cms/subjectComment/list', // 查询文章评论列表 + recommendSubjectList: 'single/cms/recommendSubjectList/list', //查询首页推荐文章 + topicList: 'single/cms/topic/list', // 查询专题列表 + topicDetail: 'single/cms/topic/detail', // 专题详情 + subjectDetail: 'single/cms/subject/detail', // 文章详情 + createSubject: 'single/cms/createSubject', // 创建文章 + }, + /** + 商户端后台接口 + **/ + admin: { + + login: 'sys/sysUser/login', // 登录(手机号:phone 密码:password) + orderStatic: 'home/orderStatic', // 订单统计 + goodsStatic: 'home/goodsStatic', // 商品统计 + userStatic: 'home/userStatic', //会员统计 + orderDayStatic: 'home/orderDayStatic', //订单日统计 + dayStatic: 'home/dayStatic', //订单日统计 + + bannerList: 'sms/SmsHomeAdvertise/list', // 首页banner + memberList: 'ums/UmsMember/list', // 查询学校列表 + storeDetail: 'sys/SysStore/storeDetail', // 查询拼团商品详情信息 + schoolList: 'single/user/school/list', // 查询学校列表 + schoolDetail: 'single/user/schoolDetail', // 查询拼团商品详情信息 + getAreaByPid: 'single/user/getAreaByPid', // 根据pid查询区域 + bindSchool: 'single/user/bindSchool', // 会员绑定学校 + bindArea: 'single/user/bindArea', // 会员绑定区域 + goodsDetail: 'single/pms/goods/detail', // 查询商品详情信息 + goodsList: 'pms/PmsProduct/goods/list', // 查询商品列表 + updatePublishStatus: 'pms/PmsProduct/publishStatus', + updateReComStatus: 'pms/PmsProduct/updateReComStatus', + delivery: 'oms/OmsOrder/delivery', // 订单发货 + orderList: 'oms/OmsOrder/order/list', // 查询订单列表 + orderDetail: 'single/oms/detail', // 查询订单列表 + subjectList: 'single/cms/subject/list', // 查询文章列表 + }, + /** + * 封装请求(async await 封装uni.request) 对应portal 项目 + * method post/get + * endpoint 接口方法名 + * data 所需传递参数 + * load 是否需要loading + */ + async apiCall(method, endpoint, data, load) { + if (load) { + uni.showLoading({ + title: '请稍候', + mask: true + }); + } + + let token = uni.getStorageSync('token') || ''; + let fullurl = this.BASEURI + endpoint; + console.log("fullurl",fullurl); + var contentType = 'application/x-www-form-urlencoded'; + + data.authorization = token; + //console.log(endpoint); + let [error, res] = await uni.request({ + url: fullurl, + data: data, + method: method, + header: { + //'Content-Type': 'application/x-www-form-urlencoded', + 'content-type': contentType, + // 'authorization1': Authorization || '' + }, + }); + if (load) { + uni.hideLoading(); + } + + if (undefined == res || 'undefined' == res) { + console.log('index'); + uni.navigateTo({ + url: `/pages/public/login` + }) + } + if (res.data.msg == 'User token expired!') { + console.log('User token expired'); + uni.showToast({ + title: '请先登录', + icon: 'none' + }); + uni.navigateTo({ + url: `/pages/public/login` + }) + } + if (res.data.msg == '请先登录' || res.data.code == 100) { + console.log("100=" + res.data); + uni.showToast({ + title: '请先登录', + icon: 'none' + }); + uni.navigateTo({ + url: `/pages/public/login` + }) + } + console.log(res.data); + console.log(fullurl); + console.log(res.data.data); + if (res.data.code == 200) { + console.log("===>>>"); + return res.data.data; + } else { + console.log(">>>>>="); + if (res.data) { + if (!res.data.msg) { + res.data.msg = res.data.data; + } + uni.showToast({ + title: res.data.msg, + icon: 'none' + }); + this.$api.msg(res.data.msg); + } + + } + }, + /** + * 封装请求(async await 封装uni.request) 对应admin 项目 + * method post/get + * endpoint 接口方法名 + * data 所需传递参数 + * load 是否需要loading + */ + async apiAdminCall(method, endpoint, data, load) { + if (load) { + uni.showLoading({ + title: '请稍候', + mask: true + }); + } + + let token = uni.getStorageSync('adminToken') || ''; + let fullurl = this.ADMINURI + endpoint; + var contentType = 'application/json'; + + data.Authorization = token; + //console.log(endpoint); + let [error, res] = await uni.request({ + url: fullurl, + data: data, + method: method, + header: { + //'Content-Type': 'application/x-www-form-urlencoded', + 'content-type': contentType, + // 'authorization1': Authorization || '' + }, + }); + if (load) { + uni.hideLoading(); + } + console.log(res); + + if (undefined == res || 'undefined' == res) { + console.log('index'); + uni.navigateTo({ + url: `/pages/index/index` + }) + } + if (res.data.msg == 'User token expired!') { + console.log('User token expired'); + uni.showToast({ + title: '请先登录', + icon: 'none' + }); + uni.navigateTo({ + url: `/pages/public/login` + }) + } + if (res.data.msg == '请先登录' || res.data.code == 100) { + console.log("100=" + res.data); + uni.showToast({ + title: '请先登录', + icon: 'none' + }); + uni.navigateTo({ + url: `/pagesC/seller/login` + }) + } + + if (res.data.code == 200) { + console.log(res.data.data); + return res.data.data; + } else { + console.log(res.data); + if (res.data && res.data.msg) { + + uni.showToast({ + title: res.data.msg, + icon: 'none' + }); + this.$api.msg(res.data.msg); + } + + } + }, + /** + * 封装请求(async await 封装uni.request) 对应search 项目 + * method post/get + * endpoint 接口方法名 + * data 所需传递参数 + * load 是否需要loading + */ + async apiEsCall(method, endpoint, data, load) { + if (!load) { + uni.showLoading({ + title: '请稍候', + mask: true + }); + } + + let fullurl = this.ESURI + endpoint; + //let fullurl = 'http://localhost:8085/api/' + endpoint; + let Authorization = `${store.state.userInfo.tokenHead}${store.state.userInfo.token}`; + let [error, res] = await uni.request({ + url: fullurl, + data: data, + method: method, + header: { + 'Content-Type': 'application/x-www-form-urlencoded', + // 'content-type': 'application/json', + 'Authorization': Authorization || '' + }, + }); + console.log(error); + if (!load) { + uni.hideLoading(); + } + return res; + + }, +} diff --git a/mallplusui-uniapp-app2/common/checker.js b/mallplusui-uniapp-app2/common/checker.js new file mode 100644 index 0000000..b7538d1 --- /dev/null +++ b/mallplusui-uniapp-app2/common/checker.js @@ -0,0 +1,22 @@ +module.exports = { + error:'', + isJSON : function (str){ + if (typeof str == 'string') { + try { + var obj=JSON.parse(str); + if(typeof obj == 'object' && obj ){ + return true; + }else{ + return false; + } + } catch(e) { + console.log('error:'+str+'!!!'+e); + return false; + } + } + }, + isNumber : function (checkVal){ + var reg = /^-?[1-9][0-9]?.?[0-9]*$/; + return reg.test(checkVal); + } +} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/common/city.data.js b/mallplusui-uniapp-app2/common/city.data.js new file mode 100644 index 0000000..0a23f0d --- /dev/null +++ b/mallplusui-uniapp-app2/common/city.data.js @@ -0,0 +1,1451 @@ +export default [{ + "value": 110000, + "label": "北京市", + "children": [{ + "value": 110101, + "label": "东城区" + }, { + "value": 110102, + "label": "西城区" + }, { + "value": 110105, + "label": "朝阳区" + }, { + "value": 110106, + "label": "丰台区" + }, { + "value": 110107, + "label": "石景山区" + }, { + "value": 110108, + "label": "海淀区" + }, { + "value": 110109, + "label": "门头沟区" + }, { + "value": 110111, + "label": "房山区" + }, { + "value": 110112, + "label": "通州区" + }, { + "value": 110113, + "label": "顺义区" + }, { + "value": 110114, + "label": "昌平区" + }, { + "value": 110115, + "label": "大兴区" + }, { + "value": 110116, + "label": "怀柔区" + }, { + "value": 110117, + "label": "平谷区" + }, { + "value": 110118, + "label": "密云区" + }, { + "value": 110119, + "label": "延庆区" + }] +}, { + "value": 120000, + "label": "天津市", + "children": [{ + "value": 120101, + "label": "和平区" + }, { + "value": 120102, + "label": "河东区" + }, { + "value": 120103, + "label": "河西区" + }, { + "value": 120104, + "label": "南开区" + }, { + "value": 120105, + "label": "河北区" + }, { + "value": 120106, + "label": "红桥区" + }, { + "value": 120110, + "label": "东丽区" + }, { + "value": 120111, + "label": "西青区" + }, { + "value": 120112, + "label": "津南区" + }, { + "value": 120113, + "label": "北辰区" + }, { + "value": 120114, + "label": "武清区" + }, { + "value": 120115, + "label": "宝坻区" + }, { + "value": 120116, + "label": "滨海新区" + }, { + "value": 120117, + "label": "宁河区" + }, { + "value": 120118, + "label": "静海区" + }, { + "value": 120119, + "label": "蓟州区" + }] +}, { + "value": 130000, + "label": "河北省", + "children": [{ + "value": 130100, + "label": "石家庄市" + }, { + "value": 130200, + "label": "唐山市" + }, { + "value": 130300, + "label": "秦皇岛市" + }, { + "value": 130400, + "label": "邯郸市" + }, { + "value": 130500, + "label": "邢台市" + }, { + "value": 130600, + "label": "保定市" + }, { + "value": 130700, + "label": "张家口市" + }, { + "value": 130800, + "label": "承德市" + }, { + "value": 130900, + "label": "沧州市" + }, { + "value": 131000, + "label": "廊坊市" + }, { + "value": 131100, + "label": "衡水市" + }, { + "value": 139000, + "label": "省直辖县级行政区划" + }] +}, { + "value": 140000, + "label": "山西省", + "children": [{ + "value": 140100, + "label": "太原市" + }, { + "value": 140200, + "label": "大同市" + }, { + "value": 140300, + "label": "阳泉市" + }, { + "value": 140400, + "label": "长治市" + }, { + "value": 140500, + "label": "晋城市" + }, { + "value": 140600, + "label": "朔州市" + }, { + "value": 140700, + "label": "晋中市" + }, { + "value": 140800, + "label": "运城市" + }, { + "value": 140900, + "label": "忻州市" + }, { + "value": 141000, + "label": "临汾市" + }, { + "value": 141100, + "label": "吕梁市" + }] +}, { + "value": 150000, + "label": "内蒙古自治区", + "children": [{ + "value": 150100, + "label": "呼和浩特市" + }, { + "value": 150200, + "label": "包头市" + }, { + "value": 150300, + "label": "乌海市" + }, { + "value": 150400, + "label": "赤峰市" + }, { + "value": 150500, + "label": "通辽市" + }, { + "value": 150600, + "label": "鄂尔多斯市" + }, { + "value": 150700, + "label": "呼伦贝尔市" + }, { + "value": 150800, + "label": "巴彦淖尔市" + }, { + "value": 150900, + "label": "乌兰察布市" + }, { + "value": 152200, + "label": "兴安盟" + }, { + "value": 152500, + "label": "锡林郭勒盟" + }, { + "value": 152900, + "label": "阿拉善盟" + }] +}, { + "value": 210000, + "label": "辽宁省", + "children": [{ + "value": 210100, + "label": "沈阳市" + }, { + "value": 210200, + "label": "大连市" + }, { + "value": 210300, + "label": "鞍山市" + }, { + "value": 210400, + "label": "抚顺市" + }, { + "value": 210500, + "label": "本溪市" + }, { + "value": 210600, + "label": "丹东市" + }, { + "value": 210700, + "label": "锦州市" + }, { + "value": 210800, + "label": "营口市" + }, { + "value": 210900, + "label": "阜新市" + }, { + "value": 211000, + "label": "辽阳市" + }, { + "value": 211100, + "label": "盘锦市" + }, { + "value": 211200, + "label": "铁岭市" + }, { + "value": 211300, + "label": "朝阳市" + }, { + "value": 211400, + "label": "葫芦岛市" + }] +}, { + "value": 220000, + "label": "吉林省", + "children": [{ + "value": 220100, + "label": "长春市" + }, { + "value": 220200, + "label": "吉林市" + }, { + "value": 220300, + "label": "四平市" + }, { + "value": 220400, + "label": "辽源市" + }, { + "value": 220500, + "label": "通化市" + }, { + "value": 220600, + "label": "白山市" + }, { + "value": 220700, + "label": "松原市" + }, { + "value": 220800, + "label": "白城市" + }, { + "value": 222400, + "label": "延边朝鲜族自治州" + }] +}, { + "value": 230000, + "label": "黑龙江省", + "children": [{ + "value": 230100, + "label": "哈尔滨市" + }, { + "value": 230200, + "label": "齐齐哈尔市" + }, { + "value": 230300, + "label": "鸡西市" + }, { + "value": 230400, + "label": "鹤岗市" + }, { + "value": 230500, + "label": "双鸭山市" + }, { + "value": 230600, + "label": "大庆市" + }, { + "value": 230700, + "label": "伊春市" + }, { + "value": 230800, + "label": "佳木斯市" + }, { + "value": 230900, + "label": "七台河市" + }, { + "value": 231000, + "label": "牡丹江市" + }, { + "value": 231100, + "label": "黑河市" + }, { + "value": 231200, + "label": "绥化市" + }, { + "value": 232700, + "label": "大兴安岭地区" + }] +}, { + "value": 310000, + "label": "上海市", + "children": [{ + "value": 310101, + "label": "黄浦区" + }, { + "value": 310104, + "label": "徐汇区" + }, { + "value": 310105, + "label": "长宁区" + }, { + "value": 310106, + "label": "静安区" + }, { + "value": 310107, + "label": "普陀区" + }, { + "value": 310109, + "label": "虹口区" + }, { + "value": 310110, + "label": "杨浦区" + }, { + "value": 310112, + "label": "闵行区" + }, { + "value": 310113, + "label": "宝山区" + }, { + "value": 310114, + "label": "嘉定区" + }, { + "value": 310115, + "label": "浦东新区" + }, { + "value": 310116, + "label": "金山区" + }, { + "value": 310117, + "label": "松江区" + }, { + "value": 310118, + "label": "青浦区" + }, { + "value": 310120, + "label": "奉贤区" + }, { + "value": 310151, + "label": "崇明区" + }] +}, { + "value": 320000, + "label": "江苏省", + "children": [{ + "value": 320100, + "label": "南京市" + }, { + "value": 320200, + "label": "无锡市" + }, { + "value": 320300, + "label": "徐州市" + }, { + "value": 320400, + "label": "常州市" + }, { + "value": 320500, + "label": "苏州市" + }, { + "value": 320600, + "label": "南通市" + }, { + "value": 320700, + "label": "连云港市" + }, { + "value": 320800, + "label": "淮安市" + }, { + "value": 320900, + "label": "盐城市" + }, { + "value": 321000, + "label": "扬州市" + }, { + "value": 321100, + "label": "镇江市" + }, { + "value": 321200, + "label": "泰州市" + }, { + "value": 321300, + "label": "宿迁市" + }] +}, { + "value": 330000, + "label": "浙江省", + "children": [{ + "value": 330100, + "label": "杭州市" + }, { + "value": 330200, + "label": "宁波市" + }, { + "value": 330300, + "label": "温州市" + }, { + "value": 330400, + "label": "嘉兴市" + }, { + "value": 330500, + "label": "湖州市" + }, { + "value": 330600, + "label": "绍兴市" + }, { + "value": 330700, + "label": "金华市" + }, { + "value": 330800, + "label": "衢州市" + }, { + "value": 330900, + "label": "舟山市" + }, { + "value": 331000, + "label": "台州市" + }, { + "value": 331100, + "label": "丽水市" + }] +}, { + "value": 340000, + "label": "安徽省", + "children": [{ + "value": 340100, + "label": "合肥市" + }, { + "value": 340200, + "label": "芜湖市" + }, { + "value": 340300, + "label": "蚌埠市" + }, { + "value": 340400, + "label": "淮南市" + }, { + "value": 340500, + "label": "马鞍山市" + }, { + "value": 340600, + "label": "淮北市" + }, { + "value": 340700, + "label": "铜陵市" + }, { + "value": 340800, + "label": "安庆市" + }, { + "value": 341000, + "label": "黄山市" + }, { + "value": 341100, + "label": "滁州市" + }, { + "value": 341200, + "label": "阜阳市" + }, { + "value": 341300, + "label": "宿州市" + }, { + "value": 341500, + "label": "六安市" + }, { + "value": 341600, + "label": "亳州市" + }, { + "value": 341700, + "label": "池州市" + }, { + "value": 341800, + "label": "宣城市" + }] +}, { + "value": 350000, + "label": "福建省", + "children": [{ + "value": 350100, + "label": "福州市" + }, { + "value": 350200, + "label": "厦门市" + }, { + "value": 350300, + "label": "莆田市" + }, { + "value": 350400, + "label": "三明市" + }, { + "value": 350500, + "label": "泉州市" + }, { + "value": 350600, + "label": "漳州市" + }, { + "value": 350700, + "label": "南平市" + }, { + "value": 350800, + "label": "龙岩市" + }, { + "value": 350900, + "label": "宁德市" + }] +}, { + "value": 360000, + "label": "江西省", + "children": [{ + "value": 360100, + "label": "南昌市" + }, { + "value": 360200, + "label": "景德镇市" + }, { + "value": 360300, + "label": "萍乡市" + }, { + "value": 360400, + "label": "九江市" + }, { + "value": 360500, + "label": "新余市" + }, { + "value": 360600, + "label": "鹰潭市" + }, { + "value": 360700, + "label": "赣州市" + }, { + "value": 360800, + "label": "吉安市" + }, { + "value": 360900, + "label": "宜春市" + }, { + "value": 361000, + "label": "抚州市" + }, { + "value": 361100, + "label": "上饶市" + }] +}, { + "value": 370000, + "label": "山东省", + "children": [{ + "value": 370100, + "label": "济南市" + }, { + "value": 370200, + "label": "青岛市" + }, { + "value": 370300, + "label": "淄博市" + }, { + "value": 370400, + "label": "枣庄市" + }, { + "value": 370500, + "label": "东营市" + }, { + "value": 370600, + "label": "烟台市" + }, { + "value": 370700, + "label": "潍坊市" + }, { + "value": 370800, + "label": "济宁市" + }, { + "value": 370900, + "label": "泰安市" + }, { + "value": 371000, + "label": "威海市" + }, { + "value": 371100, + "label": "日照市" + }, { + "value": 371200, + "label": "莱芜市" + }, { + "value": 371300, + "label": "临沂市" + }, { + "value": 371400, + "label": "德州市" + }, { + "value": 371500, + "label": "聊城市" + }, { + "value": 371600, + "label": "滨州市" + }, { + "value": 371700, + "label": "菏泽市" + }] +}, { + "value": 410000, + "label": "河南省", + "children": [{ + "value": 410100, + "label": "郑州市" + }, { + "value": 410200, + "label": "开封市" + }, { + "value": 410300, + "label": "洛阳市" + }, { + "value": 410400, + "label": "平顶山市" + }, { + "value": 410500, + "label": "安阳市" + }, { + "value": 410600, + "label": "鹤壁市" + }, { + "value": 410700, + "label": "新乡市" + }, { + "value": 410800, + "label": "焦作市" + }, { + "value": 410900, + "label": "濮阳市" + }, { + "value": 411000, + "label": "许昌市" + }, { + "value": 411100, + "label": "漯河市" + }, { + "value": 411200, + "label": "三门峡市" + }, { + "value": 411300, + "label": "南阳市" + }, { + "value": 411400, + "label": "商丘市" + }, { + "value": 411500, + "label": "信阳市" + }, { + "value": 411600, + "label": "周口市" + }, { + "value": 411700, + "label": "驻马店市" + }, { + "value": 419000, + "label": "省直辖县级行政区划" + }] +}, { + "value": 420000, + "label": "湖北省", + "children": [{ + "value": 420100, + "label": "武汉市" + }, { + "value": 420200, + "label": "黄石市" + }, { + "value": 420300, + "label": "十堰市" + }, { + "value": 420500, + "label": "宜昌市" + }, { + "value": 420600, + "label": "襄阳市" + }, { + "value": 420700, + "label": "鄂州市" + }, { + "value": 420800, + "label": "荆门市" + }, { + "value": 420900, + "label": "孝感市" + }, { + "value": 421000, + "label": "荆州市" + }, { + "value": 421100, + "label": "黄冈市" + }, { + "value": 421200, + "label": "咸宁市" + }, { + "value": 421300, + "label": "随州市" + }, { + "value": 422800, + "label": "恩施土家族苗族自治州" + }, { + "value": 429000, + "label": "省直辖县级行政区划" + }] +}, { + "value": 430000, + "label": "湖南省", + "children": [{ + "value": 430100, + "label": "长沙市" + }, { + "value": 430200, + "label": "株洲市" + }, { + "value": 430300, + "label": "湘潭市" + }, { + "value": 430400, + "label": "衡阳市" + }, { + "value": 430500, + "label": "邵阳市" + }, { + "value": 430600, + "label": "岳阳市" + }, { + "value": 430700, + "label": "常德市" + }, { + "value": 430800, + "label": "张家界市" + }, { + "value": 430900, + "label": "益阳市" + }, { + "value": 431000, + "label": "郴州市" + }, { + "value": 431100, + "label": "永州市" + }, { + "value": 431200, + "label": "怀化市" + }, { + "value": 431300, + "label": "娄底市" + }, { + "value": 433100, + "label": "湘西土家族苗族自治州" + }] +}, { + "value": 440000, + "label": "广东省", + "children": [{ + "value": 440100, + "label": "广州市" + }, { + "value": 440200, + "label": "韶关市" + }, { + "value": 440300, + "label": "深圳市" + }, { + "value": 440400, + "label": "珠海市" + }, { + "value": 440500, + "label": "汕头市" + }, { + "value": 440600, + "label": "佛山市" + }, { + "value": 440700, + "label": "江门市" + }, { + "value": 440800, + "label": "湛江市" + }, { + "value": 440900, + "label": "茂名市" + }, { + "value": 441200, + "label": "肇庆市" + }, { + "value": 441300, + "label": "惠州市" + }, { + "value": 441400, + "label": "梅州市" + }, { + "value": 441500, + "label": "汕尾市" + }, { + "value": 441600, + "label": "河源市" + }, { + "value": 441700, + "label": "阳江市" + }, { + "value": 441800, + "label": "清远市" + }, { + "value": 441900, + "label": "东莞市" + }, { + "value": 442000, + "label": "中山市" + }, { + "value": 445100, + "label": "潮州市" + }, { + "value": 445200, + "label": "揭阳市" + }, { + "value": 445300, + "label": "云浮市" + }] +}, { + "value": 450000, + "label": "广西壮族自治区", + "children": [{ + "value": 450100, + "label": "南宁市" + }, { + "value": 450200, + "label": "柳州市" + }, { + "value": 450300, + "label": "桂林市" + }, { + "value": 450400, + "label": "梧州市" + }, { + "value": 450500, + "label": "北海市" + }, { + "value": 450600, + "label": "防城港市" + }, { + "value": 450700, + "label": "钦州市" + }, { + "value": 450800, + "label": "贵港市" + }, { + "value": 450900, + "label": "玉林市" + }, { + "value": 451000, + "label": "百色市" + }, { + "value": 451100, + "label": "贺州市" + }, { + "value": 451200, + "label": "河池市" + }, { + "value": 451300, + "label": "来宾市" + }, { + "value": 451400, + "label": "崇左市" + }] +}, { + "value": 460000, + "label": "海南省", + "children": [{ + "value": 460100, + "label": "海口市" + }, { + "value": 460200, + "label": "三亚市" + }, { + "value": 460300, + "label": "三沙市" + }, { + "value": 460400, + "label": "儋州市" + }, { + "value": 469000, + "label": "省直辖县级行政区划" + }] +}, { + "value": 500000, + "label": "重庆市", + "children": [{ + "value": 500101, + "label": "万州区" + }, { + "value": 500102, + "label": "涪陵区" + }, { + "value": 500103, + "label": "渝中区" + }, { + "value": 500104, + "label": "大渡口区" + }, { + "value": 500105, + "label": "江北区" + }, { + "value": 500106, + "label": "沙坪坝区" + }, { + "value": 500107, + "label": "九龙坡区" + }, { + "value": 500108, + "label": "南岸区" + }, { + "value": 500109, + "label": "北碚区" + }, { + "value": 500110, + "label": "綦江区" + }, { + "value": 500111, + "label": "大足区" + }, { + "value": 500112, + "label": "渝北区" + }, { + "value": 500113, + "label": "巴南区" + }, { + "value": 500114, + "label": "黔江区" + }, { + "value": 500115, + "label": "长寿区" + }, { + "value": 500116, + "label": "江津区" + }, { + "value": 500117, + "label": "合川区" + }, { + "value": 500118, + "label": "永川区" + }, { + "value": 500119, + "label": "南川区" + }, { + "value": 500120, + "label": "璧山区" + }, { + "value": 500151, + "label": "铜梁区" + }, { + "value": 500152, + "label": "潼南区" + }, { + "value": 500153, + "label": "荣昌区" + }, { + "value": 500154, + "label": "开州区" + }] +}, { + "value": 510000, + "label": "四川省", + "children": [{ + "value": 510100, + "label": "成都市" + }, { + "value": 510300, + "label": "自贡市" + }, { + "value": 510400, + "label": "攀枝花市" + }, { + "value": 510500, + "label": "泸州市" + }, { + "value": 510600, + "label": "德阳市" + }, { + "value": 510700, + "label": "绵阳市" + }, { + "value": 510800, + "label": "广元市" + }, { + "value": 510900, + "label": "遂宁市" + }, { + "value": 511000, + "label": "内江市" + }, { + "value": 511100, + "label": "乐山市" + }, { + "value": 511300, + "label": "南充市" + }, { + "value": 511400, + "label": "眉山市" + }, { + "value": 511500, + "label": "宜宾市" + }, { + "value": 511600, + "label": "广安市" + }, { + "value": 511700, + "label": "达州市" + }, { + "value": 511800, + "label": "雅安市" + }, { + "value": 511900, + "label": "巴中市" + }, { + "value": 512000, + "label": "资阳市" + }, { + "value": 513200, + "label": "阿坝藏族羌族自治州" + }, { + "value": 513300, + "label": "甘孜藏族自治州" + }, { + "value": 513400, + "label": "凉山彝族自治州" + }] +}, { + "value": 520000, + "label": "贵州省", + "children": [{ + "value": 520100, + "label": "贵阳市" + }, { + "value": 520200, + "label": "六盘水市" + }, { + "value": 520300, + "label": "遵义市" + }, { + "value": 520400, + "label": "安顺市" + }, { + "value": 520500, + "label": "毕节市" + }, { + "value": 520600, + "label": "铜仁市" + }, { + "value": 522300, + "label": "黔西南布依族苗族自治州" + }, { + "value": 522600, + "label": "黔东南苗族侗族自治州" + }, { + "value": 522700, + "label": "黔南布依族苗族自治州" + }] +}, { + "value": 530000, + "label": "云南省", + "children": [{ + "value": 530100, + "label": "昆明市" + }, { + "value": 530300, + "label": "曲靖市" + }, { + "value": 530400, + "label": "玉溪市" + }, { + "value": 530500, + "label": "保山市" + }, { + "value": 530600, + "label": "昭通市" + }, { + "value": 530700, + "label": "丽江市" + }, { + "value": 530800, + "label": "普洱市" + }, { + "value": 530900, + "label": "临沧市" + }, { + "value": 532300, + "label": "楚雄彝族自治州" + }, { + "value": 532500, + "label": "红河哈尼族彝族自治州" + }, { + "value": 532600, + "label": "文山壮族苗族自治州" + }, { + "value": 532800, + "label": "西双版纳傣族自治州" + }, { + "value": 532900, + "label": "大理白族自治州" + }, { + "value": 533100, + "label": "德宏傣族景颇族自治州" + }, { + "value": 533300, + "label": "怒江傈僳族自治州" + }, { + "value": 533400, + "label": "迪庆藏族自治州" + }] +}, { + "value": 540000, + "label": "西藏自治区", + "children": [{ + "value": 540100, + "label": "拉萨市" + }, { + "value": 540200, + "label": "日喀则市" + }, { + "value": 540300, + "label": "昌都市" + }, { + "value": 540400, + "label": "林芝市" + }, { + "value": 540500, + "label": "山南市" + }, { + "value": 542400, + "label": "那曲地区" + }, { + "value": 542500, + "label": "阿里地区" + }] +}, { + "value": 610000, + "label": "陕西省", + "children": [{ + "value": 610100, + "label": "西安市" + }, { + "value": 610200, + "label": "铜川市" + }, { + "value": 610300, + "label": "宝鸡市" + }, { + "value": 610400, + "label": "咸阳市" + }, { + "value": 610500, + "label": "渭南市" + }, { + "value": 610600, + "label": "延安市" + }, { + "value": 610700, + "label": "汉中市" + }, { + "value": 610800, + "label": "榆林市" + }, { + "value": 610900, + "label": "安康市" + }, { + "value": 611000, + "label": "商洛市" + }] +}, { + "value": 620000, + "label": "甘肃省", + "children": [{ + "value": 620100, + "label": "兰州市" + }, { + "value": 620200, + "label": "嘉峪关市" + }, { + "value": 620300, + "label": "金昌市" + }, { + "value": 620400, + "label": "白银市" + }, { + "value": 620500, + "label": "天水市" + }, { + "value": 620600, + "label": "武威市" + }, { + "value": 620700, + "label": "张掖市" + }, { + "value": 620800, + "label": "平凉市" + }, { + "value": 620900, + "label": "酒泉市" + }, { + "value": 621000, + "label": "庆阳市" + }, { + "value": 621100, + "label": "定西市" + }, { + "value": 621200, + "label": "陇南市" + }, { + "value": 622900, + "label": "临夏回族自治州" + }, { + "value": 623000, + "label": "甘南藏族自治州" + }] +}, { + "value": 630000, + "label": "青海省", + "children": [{ + "value": 630100, + "label": "西宁市" + }, { + "value": 630200, + "label": "海东市" + }, { + "value": 632200, + "label": "海北藏族自治州" + }, { + "value": 632300, + "label": "黄南藏族自治州" + }, { + "value": 632500, + "label": "海南藏族自治州" + }, { + "value": 632600, + "label": "果洛藏族自治州" + }, { + "value": 632700, + "label": "玉树藏族自治州" + }, { + "value": 632800, + "label": "海西蒙古族藏族自治州" + }] +}, { + "value": 640000, + "label": "宁夏回族自治区", + "children": [{ + "value": 640100, + "label": "银川市" + }, { + "value": 640200, + "label": "石嘴山市" + }, { + "value": 640300, + "label": "吴忠市" + }, { + "value": 640400, + "label": "固原市" + }, { + "value": 640500, + "label": "中卫市" + }] +}, { + "value": 650000, + "label": "新疆维吾尔自治区", + "children": [{ + "value": 650100, + "label": "乌鲁木齐市" + }, { + "value": 650200, + "label": "克拉玛依市" + }, { + "value": 650400, + "label": "吐鲁番市" + }, { + "value": 650500, + "label": "哈密市" + }, { + "value": 652300, + "label": "昌吉回族自治州" + }, { + "value": 652700, + "label": "博尔塔拉蒙古自治州" + }, { + "value": 652800, + "label": "巴音郭楞蒙古自治州" + }, { + "value": 652900, + "label": "阿克苏地区" + }, { + "value": 653000, + "label": "克孜勒苏柯尔克孜自治州" + }, { + "value": 653100, + "label": "喀什地区" + }, { + "value": 653200, + "label": "和田地区" + }, { + "value": 654000, + "label": "伊犁哈萨克自治州" + }, { + "value": 654200, + "label": "塔城地区" + }, { + "value": 654300, + "label": "阿勒泰地区" + }, { + "value": 659000, + "label": "自治区直辖县级行政区划" + }] +}, { + "value": 710000, + "label": "台湾省", + "children": [{ + "value": "710100", + "label": "台北市" + }, { + "value": "710200", + "label": "高雄市" + }, { + "value": "710300", + "label": "台南市" + }, { + "value": "710400", + "label": "台中市" + }, { + "value": "710500", + "label": "金门县" + }, { + "value": "710600", + "label": "南投县" + }, { + "value": "710700", + "label": "基隆市" + }, { + "value": "710800", + "label": "新竹市" + }, { + "value": "710900", + "label": "嘉义市" + }, { + "value": "711100", + "label": "新北市" + }, { + "value": "711200", + "label": "宜兰县" + }, { + "value": "711300", + "label": "新竹县" + }, { + "value": "711400", + "label": "桃园县" + }, { + "value": "711500", + "label": "苗栗县" + }, { + "value": "711700", + "label": "彰化县" + }, { + "value": "711900", + "label": "嘉义县" + }, { + "value": "712100", + "label": "云林县" + }, { + "value": "712400", + "label": "屏东县" + }, { + "value": "712500", + "label": "台东县" + }, { + "value": "712600", + "label": "花莲县" + }, { + "value": "712700", + "label": "澎湖县" + }] +}, { + "value": 810000, + "label": "香港特别行政区", + "children": [{ + "value": "810100", + "label": "香港岛" + }, { + "value": "810200", + "label": "九龙" + }, { + "value": "810300", + "label": "新界" + }] +}, { + "value": 820000, + "label": "澳门特别行政区", + "children": [{ + "value": "820100", + "label": "澳门半岛" + }, { + "value": "820200", + "label": "氹仔岛" + }, { + "value": "820300", + "label": "路环岛" + }] +}] diff --git a/mallplusui-uniapp-app2/common/date.js b/mallplusui-uniapp-app2/common/date.js new file mode 100644 index 0000000..74fb0c5 --- /dev/null +++ b/mallplusui-uniapp-app2/common/date.js @@ -0,0 +1,43 @@ +// date.js +export function formatDate(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + let o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + }; + for (let k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + let str = o[k] + ''; + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); + } + } + return fmt; +} + +function padLeftZero(str) { + return ('00' + str).substr(str.length); +} + +export function str2Date(dateStr, separator) { + if (!separator) { + separator = "-"; + } + let dateArr = dateStr.split(separator); + let year = parseInt(dateArr[0]); + let month; + //处理月份为04这样的情况 + if (dateArr[1].indexOf("0") == 0) { + month = parseInt(dateArr[1].substring(1)); + } else { + month = parseInt(dateArr[1]); + } + let day = parseInt(dateArr[2]); + let date = new Date(year, month - 1, day); + return date; +} + diff --git a/mallplusui-uniapp-app2/common/html-parser.js b/mallplusui-uniapp-app2/common/html-parser.js new file mode 100644 index 0000000..20a89b2 --- /dev/null +++ b/mallplusui-uniapp-app2/common/html-parser.js @@ -0,0 +1,352 @@ +/* + * HTML5 Parser By Sam Blowes + * + * Designed for HTML5 documents + * + * Original code by John Resig (ejohn.org) + * http://ejohn.org/blog/pure-javascript-html-parser/ + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * ---------------------------------------------------------------------------- + * License + * ---------------------------------------------------------------------------- + * + * This code is triple licensed using Apache Software License 2.0, + * Mozilla Public License or GNU Public License + * + * //////////////////////////////////////////////////////////////////////////// + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * //////////////////////////////////////////////////////////////////////////// + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Simple HTML Parser. + * + * The Initial Developer of the Original Code is Erik Arvidsson. + * Portions created by Erik Arvidssson are Copyright (C) 2004. All Rights + * Reserved. + * + * //////////////////////////////////////////////////////////////////////////// + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * ---------------------------------------------------------------------------- + * Usage + * ---------------------------------------------------------------------------- + * + * // Use like so: + * HTMLParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * // or to get an XML string: + * HTMLtoXML(htmlString); + * + * // or to get an XML DOM Document + * HTMLtoDOM(htmlString); + * + * // or to inject into an existing document/DOM node + * HTMLtoDOM(htmlString, document); + * HTMLtoDOM(htmlString, document.body); + * + */ +// Regular Expressions for parsing tags and attributes +var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/; +var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/; +var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; // Empty Elements - HTML 5 + +var empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr'); // Block Elements - HTML 5 +// fixed by xxx 将 ins 标签从块级名单中移除 + +var block = makeMap('a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); // Inline Elements - HTML 5 + +var inline = makeMap('abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); // Elements that you can, intentionally, leave open +// (and which close themselves) + +var closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); // Attributes that have their values filled in disabled="disabled" + +var fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'); // Special Elements (can contain anything) + +var special = makeMap('script,style'); +function HTMLParser(html, handler) { + var index; + var chars; + var match; + var stack = []; + var last = html; + + stack.last = function () { + return this[this.length - 1]; + }; + + while (html) { + chars = true; // Make sure we're not in a script or style element + + if (!stack.last() || !special[stack.last()]) { + // Comment + if (html.indexOf(''); + + if (index >= 0) { + if (handler.comment) { + handler.comment(html.substring(4, index)); + } + + html = html.substring(index + 3); + chars = false; + } // end tag + + } else if (html.indexOf(']*>'), function (all, text) { + text = text.replace(/|/g, '$1$2'); + + if (handler.chars) { + handler.chars(text); + } + + return ''; + }); + parseEndTag('', stack.last()); + } + + if (html == last) { + throw 'Parse Error: ' + html; + } + + last = html; + } // Clean up any remaining tags + + + parseEndTag(); + + function parseStartTag(tag, tagName, rest, unary) { + tagName = tagName.toLowerCase(); + + if (block[tagName]) { + while (stack.last() && inline[stack.last()]) { + parseEndTag('', stack.last()); + } + } + + if (closeSelf[tagName] && stack.last() == tagName) { + parseEndTag('', tagName); + } + + unary = empty[tagName] || !!unary; + + if (!unary) { + stack.push(tagName); + } + + if (handler.start) { + var attrs = []; + rest.replace(attr, function (match, name) { + var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : ''; + attrs.push({ + name: name, + value: value, + escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') // " + + }); + }); + + if (handler.start) { + handler.start(tagName, attrs, unary); + } + } + } + + function parseEndTag(tag, tagName) { + // If no tag name is provided, clean shop + if (!tagName) { + var pos = 0; + } // Find the closest opened tag of the same type + else { + for (var pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos] == tagName) { + break; + } + } + } + + if (pos >= 0) { + // Close all the open elements, up the stack + for (var i = stack.length - 1; i >= pos; i--) { + if (handler.end) { + handler.end(stack[i]); + } + } // Remove the open elements from the stack + + + stack.length = pos; + } + } +} + +function makeMap(str) { + var obj = {}; + var items = str.split(','); + + for (var i = 0; i < items.length; i++) { + obj[items[i]] = true; + } + + return obj; +} + +function removeDOCTYPE(html) { + return html.replace(/<\?xml.*\?>\n/, '').replace(/\n/, '').replace(/\n/, ''); +} + +function parseAttrs(attrs) { + return attrs.reduce(function (pre, attr) { + var value = attr.value; + var name = attr.name; + + if (pre[name]) { + pre[name] = pre[name] + " " + value; + } else { + pre[name] = value; + } + + return pre; + }, {}); +} + +function parseHtml(html) { + html = removeDOCTYPE(html); + var stacks = []; + var results = { + node: 'root', + children: [] + }; + HTMLParser(html, { + start: function start(tag, attrs, unary) { + var node = { + name: tag + }; + + if (attrs.length !== 0) { + node.attrs = parseAttrs(attrs); + } + + if (unary) { + var parent = stacks[0] || results; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } else { + stacks.unshift(node); + } + }, + end: function end(tag) { + var node = stacks.shift(); + if (node.name !== tag) console.error('invalid state: mismatch end tag'); + + if (stacks.length === 0) { + results.children.push(node); + } else { + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }, + chars: function chars(text) { + var node = { + type: 'text', + text: text + }; + + if (stacks.length === 0) { + results.children.push(node); + } else { + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }, + comment: function comment(text) { + var node = { + node: 'comment', + text: text + }; + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }); + return results.children; +} + +export default parseHtml; diff --git a/mallplusui-uniapp-app2/common/list.js b/mallplusui-uniapp-app2/common/list.js new file mode 100644 index 0000000..d09eba8 --- /dev/null +++ b/mallplusui-uniapp-app2/common/list.js @@ -0,0 +1,32 @@ +const listData = [{ + content: "好评", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_2.jpg", + user_name: "测试1", + rate:5, + imgs:[] +}, +{ + content: "中评", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_12.jpg", + user_name: "测试2", + rate:4, + imgs:[ + 'http://cs.zhangkaixing.com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + 'http://cs.zhangkaixing.com/face/face_14.jpg', + 'http://cs.zhangkaixing.com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + ] +}, +{ + content: "", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_15.jpg", + user_name: "测试3", + rate:2, + imgs:[] +}] + +export default listData \ No newline at end of file diff --git a/mallplusui-uniapp-app2/common/uni-H5Api.js b/mallplusui-uniapp-app2/common/uni-H5Api.js new file mode 100644 index 0000000..ea5823d --- /dev/null +++ b/mallplusui-uniapp-app2/common/uni-H5Api.js @@ -0,0 +1,71 @@ +//#ifdef H5 +/** clipboard.js v2.0.4**/ +!function(t,e){try{window.ClipboardJS=e();}catch(e){};"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports} + return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;ndata}) + cb.on('success',function(res){ + window.__clipboard__=data; + success&&Types.isFunction(success)&&success({data:res.text}) + complete&&Types.isFunction(complete)&&complete() + cb.off('error') + cb.off('success') + cb.destroy()}) + cb.on('error',function(err){fail&&Types.isFunction(fail)&&fail(err) + complete&&Types.isFunction(complete)&&complete() + cb.off('error') + cb.off('success') + cb.destroy()}) + cb.onClick(e)}; +uni.getClipboardData=function(options){let emptyFun=function(){} + let config={data:null,event:null,success:emptyFun,fail:emptyFun,complete:emptyFun} + if(options&&Types.isObject(options)){config=Object.assign({},config,options)} + let success=config.success||emptyFun + let fail=config.fail||emptyFun + let complete=config.complete||emptyFun + if(window.__clipboard__!==undefined){success&&Types.isFunction(success)&&success({data:window.__clipboard__})}else{fail&&Types.isFunction(fail)&&fail({data:null})} + complete&&Types.isFunction(complete)&&complete()}; +function fileDownLoad(data){var linkElement=document.createElement('a') + linkElement.setAttribute('href',data.blob) + linkElement.setAttribute('downLoad',data.name) + linkElement.click()} +uni.saveImageToPhotosAlbum=uni.saveVideoToPhotosAlbum=function(options){let emptyFun=function(){} + let config={filePath:null,success:emptyFun,fail:emptyFun,complete:emptyFun} + if(options&&Types.isObject(options)){config=Object.assign({},config,options)} + if(options&&Types.isString(options)){config=Object.assign({},config,{filePath:options})} + let filePath=config.filePath + let success=config.success||emptyFun + let fail=config.fail||emptyFun + let complete=config.complete||emptyFun + if(!filePath){fail&&Types.isFunction(fail)&&fail({msg:'no File'}) + complete&&Types.isFunction(complete)&&complete() + return} + let names=filePath.split('/') + let name=names[names.length-1] + uni.downloadFile({url:filePath,success:function(res){let tempFilePath=res.tempFilePath + fileDownLoad({name:name,blob:tempFilePath}) + success&&Types.isFunction(success)&&success({filePath:filePath})},fail:function(err){fail&&Types.isFunction(fail)&&fail({msg:err})},complete:function(){complete&&Types.isFunction(complete)&&complete()}})} +//#endif diff --git a/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.css b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.css new file mode 100644 index 0000000..1b83b24 --- /dev/null +++ b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.css @@ -0,0 +1,107 @@ +.lotus-address-picker { + font-size: 26rpx; + padding-top: 30rpx; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + line-height: normal; + padding-right: 30rpx; + box-sizing: border-box; +} +.lotus-address-picker-box { + /*display: -webkit-box; + display: -webkit-flex;*/ + display: flex; + align-items: center; + justify-content: center; + justify-content: flex-start; + padding-top: 10rpx; + padding-bottom: 10rpx; +} +.lotus-address-picker-box-item { + height: 600upx; + overflow-y: auto; + width: 33.333%; + padding-left: 20rpx; + padding-right: 20rpx; + box-sizing: border-box; +} +.lotus-address-picker2 { + color: #e93b3d; + position: relative; +} +.lotus-address-picker2:after { + content: ''; + position: absolute; + right: 0; + top: 65%; + transform: translateY(-35%) rotate(-45deg); + width: 20rpx; + height: 10rpx; + border-left-width: 4rpx; + border-bottom-width: 4rpx; + border-left-style: solid; + border-bottom-style: solid; + border-left-color: #e93b3d; + border-bottom-color: #e93b3d; +} +.lotus-address-mask { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 999; + background: rgba(0, 0, 0, 0.5); +} +.lotus-address-box { + background: #fff; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: auto; +} +.lotus-address-action { + font-size: 30rpx; + /*display: -webkit-box; + display: -webkit-flex;*/ + display: flex; + align-items: center; + justify-content: center; + justify-content: space-between; + padding: 25rpx 30rpx; + position: relative; +} +.lotus-address-action:after { + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #eee; + color: #eee; + transform-origin: 0 0; + transform: scaleY(0.5); +} +.lotus-address-action:before { + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-bottom: 1px solid #eee; + color: #eee; + transform-origin: 0 100%; + transform: scaleY(0.5); +} +.lotus-address-action-cancel { + color: #969696; +} +.lotus-address-action-affirm { + color: #e93b3d; +} diff --git a/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.js b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.js new file mode 100644 index 0000000..7ffd730 --- /dev/null +++ b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.js @@ -0,0 +1 @@ +export let lotusAddressJson=[{value:"110000",name:"北京"},{value:"120000",name:"天津"},{value:"130000",name:"河北省"},{value:"140000",name:"山西省"},{value:"150000",name:"内蒙古自治区"},{value:"210000",name:"辽宁省"},{value:"220000",name:"吉林省"},{value:"230000",name:"黑龙江省"},{value:"310000",name:"上海"},{value:"320000",name:"江苏省"},{value:"330000",name:"浙江省"},{value:"340000",name:"安徽省"},{value:"350000",name:"福建省"},{value:"360000",name:"江西省"},{value:"370000",name:"山东省"},{value:"410000",name:"河南省"},{value:"420000",name:"湖北省"},{value:"430000",name:"湖南省"},{value:"440000",name:"广东省"},{value:"450000",name:"广西壮族自治区"},{value:"460000",name:"海南省"},{value:"500000",name:"重庆"},{value:"510000",name:"四川省"},{value:"520000",name:"贵州省"},{value:"530000",name:"云南省"},{value:"540000",name:"西藏自治区"},{value:"610000",name:"陕西省"},{value:"620000",name:"甘肃省"},{value:"630000",name:"青海省"},{value:"640000",name:"宁夏回族自治区"},{value:"650000",name:"新疆维吾尔自治区"},{value:"710000",name:"台湾"},{value:"810000",name:"香港特别行政区"},{value:"820000",name:"澳门特别行政区"},{value:"990000",name:"海外"},{value:"110100",name:"北京市",parent:"110000"},{value:"120100",name:"天津市",parent:"120000"},{value:"130100",name:"石家庄市",parent:"130000"},{value:"130200",name:"唐山市",parent:"130000"},{value:"130300",name:"秦皇岛市",parent:"130000"},{value:"130400",name:"邯郸市",parent:"130000"},{value:"130500",name:"邢台市",parent:"130000"},{value:"130600",name:"保定市",parent:"130000"},{value:"130700",name:"张家口市",parent:"130000"},{value:"130800",name:"承德市",parent:"130000"},{value:"130900",name:"沧州市",parent:"130000"},{value:"131000",name:"廊坊市",parent:"130000"},{value:"131100",name:"衡水市",parent:"130000"},{value:"140100",name:"太原市",parent:"140000"},{value:"140200",name:"大同市",parent:"140000"},{value:"140300",name:"阳泉市",parent:"140000"},{value:"140400",name:"长治市",parent:"140000"},{value:"140500",name:"晋城市",parent:"140000"},{value:"140600",name:"朔州市",parent:"140000"},{value:"140700",name:"晋中市",parent:"140000"},{value:"140800",name:"运城市",parent:"140000"},{value:"140900",name:"忻州市",parent:"140000"},{value:"141000",name:"临汾市",parent:"140000"},{value:"141100",name:"吕梁市",parent:"140000"},{value:"150100",name:"呼和浩特市",parent:"150000"},{value:"150200",name:"包头市",parent:"150000"},{value:"150300",name:"乌海市",parent:"150000"},{value:"150400",name:"赤峰市",parent:"150000"},{value:"150500",name:"通辽市",parent:"150000"},{value:"150600",name:"鄂尔多斯市",parent:"150000"},{value:"150700",name:"呼伦贝尔市",parent:"150000"},{value:"150800",name:"巴彦淖尔市",parent:"150000"},{value:"150900",name:"乌兰察布市",parent:"150000"},{value:"152200",name:"兴安盟",parent:"150000"},{value:"152500",name:"锡林郭勒盟",parent:"150000"},{value:"152900",name:"阿拉善盟",parent:"150000"},{value:"210100",name:"沈阳市",parent:"210000"},{value:"210200",name:"大连市",parent:"210000"},{value:"210300",name:"鞍山市",parent:"210000"},{value:"210400",name:"抚顺市",parent:"210000"},{value:"210500",name:"本溪市",parent:"210000"},{value:"210600",name:"丹东市",parent:"210000"},{value:"210700",name:"锦州市",parent:"210000"},{value:"210800",name:"营口市",parent:"210000"},{value:"210900",name:"阜新市",parent:"210000"},{value:"211000",name:"辽阳市",parent:"210000"},{value:"211100",name:"盘锦市",parent:"210000"},{value:"211200",name:"铁岭市",parent:"210000"},{value:"211300",name:"朝阳市",parent:"210000"},{value:"211400",name:"葫芦岛市",parent:"210000"},{value:"220100",name:"长春市",parent:"220000"},{value:"220200",name:"吉林市",parent:"220000"},{value:"220300",name:"四平市",parent:"220000"},{value:"220400",name:"辽源市",parent:"220000"},{value:"220500",name:"通化市",parent:"220000"},{value:"220600",name:"白山市",parent:"220000"},{value:"220700",name:"松原市",parent:"220000"},{value:"220800",name:"白城市",parent:"220000"},{value:"222400",name:"延边朝鲜族自治州",parent:"220000"},{value:"230100",name:"哈尔滨市",parent:"230000"},{value:"230200",name:"齐齐哈尔市",parent:"230000"},{value:"230300",name:"鸡西市",parent:"230000"},{value:"230400",name:"鹤岗市",parent:"230000"},{value:"230500",name:"双鸭山市",parent:"230000"},{value:"230600",name:"大庆市",parent:"230000"},{value:"230700",name:"伊春市",parent:"230000"},{value:"230800",name:"佳木斯市",parent:"230000"},{value:"230900",name:"七台河市",parent:"230000"},{value:"231000",name:"牡丹江市",parent:"230000"},{value:"231100",name:"黑河市",parent:"230000"},{value:"231200",name:"绥化市",parent:"230000"},{value:"232700",name:"大兴安岭地区",parent:"230000"},{value:"310100",name:"上海市",parent:"310000"},{value:"320100",name:"南京市",parent:"320000"},{value:"320200",name:"无锡市",parent:"320000"},{value:"320300",name:"徐州市",parent:"320000"},{value:"320400",name:"常州市",parent:"320000"},{value:"320500",name:"苏州市",parent:"320000"},{value:"320600",name:"南通市",parent:"320000"},{value:"320700",name:"连云港市",parent:"320000"},{value:"320800",name:"淮安市",parent:"320000"},{value:"320900",name:"盐城市",parent:"320000"},{value:"321000",name:"扬州市",parent:"320000"},{value:"321100",name:"镇江市",parent:"320000"},{value:"321200",name:"泰州市",parent:"320000"},{value:"321300",name:"宿迁市",parent:"320000"},{value:"330100",name:"杭州市",parent:"330000"},{value:"330200",name:"宁波市",parent:"330000"},{value:"330300",name:"温州市",parent:"330000"},{value:"330400",name:"嘉兴市",parent:"330000"},{value:"330500",name:"湖州市",parent:"330000"},{value:"330600",name:"绍兴市",parent:"330000"},{value:"330700",name:"金华市",parent:"330000"},{value:"330800",name:"衢州市",parent:"330000"},{value:"330900",name:"舟山市",parent:"330000"},{value:"331000",name:"台州市",parent:"330000"},{value:"331100",name:"丽水市",parent:"330000"},{value:"340100",name:"合肥市",parent:"340000"},{value:"340200",name:"芜湖市",parent:"340000"},{value:"340300",name:"蚌埠市",parent:"340000"},{value:"340400",name:"淮南市",parent:"340000"},{value:"340500",name:"马鞍山市",parent:"340000"},{value:"340600",name:"淮北市",parent:"340000"},{value:"340700",name:"铜陵市",parent:"340000"},{value:"340800",name:"安庆市",parent:"340000"},{value:"341000",name:"黄山市",parent:"340000"},{value:"341100",name:"滁州市",parent:"340000"},{value:"341200",name:"阜阳市",parent:"340000"},{value:"341300",name:"宿州市",parent:"340000"},{value:"341500",name:"六安市",parent:"340000"},{value:"341600",name:"亳州市",parent:"340000"},{value:"341700",name:"池州市",parent:"340000"},{value:"341800",name:"宣城市",parent:"340000"},{value:"350100",name:"福州市",parent:"350000"},{value:"350200",name:"厦门市",parent:"350000"},{value:"350300",name:"莆田市",parent:"350000"},{value:"350400",name:"三明市",parent:"350000"},{value:"350500",name:"泉州市",parent:"350000"},{value:"350600",name:"漳州市",parent:"350000"},{value:"350700",name:"南平市",parent:"350000"},{value:"350800",name:"龙岩市",parent:"350000"},{value:"350900",name:"宁德市",parent:"350000"},{value:"360100",name:"南昌市",parent:"360000"},{value:"360200",name:"景德镇市",parent:"360000"},{value:"360300",name:"萍乡市",parent:"360000"},{value:"360400",name:"九江市",parent:"360000"},{value:"360500",name:"新余市",parent:"360000"},{value:"360600",name:"鹰潭市",parent:"360000"},{value:"360700",name:"赣州市",parent:"360000"},{value:"360800",name:"吉安市",parent:"360000"},{value:"360900",name:"宜春市",parent:"360000"},{value:"361000",name:"抚州市",parent:"360000"},{value:"361100",name:"上饶市",parent:"360000"},{value:"370100",name:"济南市",parent:"370000"},{value:"370200",name:"青岛市",parent:"370000"},{value:"370300",name:"淄博市",parent:"370000"},{value:"370400",name:"枣庄市",parent:"370000"},{value:"370500",name:"东营市",parent:"370000"},{value:"370600",name:"烟台市",parent:"370000"},{value:"370700",name:"潍坊市",parent:"370000"},{value:"370800",name:"济宁市",parent:"370000"},{value:"370900",name:"泰安市",parent:"370000"},{value:"371000",name:"威海市",parent:"370000"},{value:"371100",name:"日照市",parent:"370000"},{value:"371200",name:"莱芜市",parent:"370000"},{value:"371300",name:"临沂市",parent:"370000"},{value:"371400",name:"德州市",parent:"370000"},{value:"371500",name:"聊城市",parent:"370000"},{value:"371600",name:"滨州市",parent:"370000"},{value:"371700",name:"菏泽市",parent:"370000"},{value:"410100",name:"郑州市",parent:"410000"},{value:"410200",name:"开封市",parent:"410000"},{value:"410300",name:"洛阳市",parent:"410000"},{value:"410400",name:"平顶山市",parent:"410000"},{value:"410500",name:"安阳市",parent:"410000"},{value:"410600",name:"鹤壁市",parent:"410000"},{value:"410700",name:"新乡市",parent:"410000"},{value:"410800",name:"焦作市",parent:"410000"},{value:"410900",name:"濮阳市",parent:"410000"},{value:"411000",name:"许昌市",parent:"410000"},{value:"411100",name:"漯河市",parent:"410000"},{value:"411200",name:"三门峡市",parent:"410000"},{value:"411300",name:"南阳市",parent:"410000"},{value:"411400",name:"商丘市",parent:"410000"},{value:"411500",name:"信阳市",parent:"410000"},{value:"411600",name:"周口市",parent:"410000"},{value:"411700",name:"驻马店市",parent:"410000"},{value:"420100",name:"武汉市",parent:"420000"},{value:"420200",name:"黄石市",parent:"420000"},{value:"420300",name:"十堰市",parent:"420000"},{value:"420500",name:"宜昌市",parent:"420000"},{value:"420600",name:"襄阳市",parent:"420000"},{value:"420700",name:"鄂州市",parent:"420000"},{value:"420800",name:"荆门市",parent:"420000"},{value:"420900",name:"孝感市",parent:"420000"},{value:"421000",name:"荆州市",parent:"420000"},{value:"421100",name:"黄冈市",parent:"420000"},{value:"421200",name:"咸宁市",parent:"420000"},{value:"421300",name:"随州市",parent:"420000"},{value:"422800",name:"恩施土家族苗族自治州",parent:"420000"},{value:"430100",name:"长沙市",parent:"430000"},{value:"430200",name:"株洲市",parent:"430000"},{value:"430300",name:"湘潭市",parent:"430000"},{value:"430400",name:"衡阳市",parent:"430000"},{value:"430500",name:"邵阳市",parent:"430000"},{value:"430600",name:"岳阳市",parent:"430000"},{value:"430700",name:"常德市",parent:"430000"},{value:"430800",name:"张家界市",parent:"430000"},{value:"430900",name:"益阳市",parent:"430000"},{value:"431000",name:"郴州市",parent:"430000"},{value:"431100",name:"永州市",parent:"430000"},{value:"431200",name:"怀化市",parent:"430000"},{value:"431300",name:"娄底市",parent:"430000"},{value:"433100",name:"湘西土家族苗族自治州",parent:"430000"},{value:"440100",name:"广州市",parent:"440000"},{value:"440200",name:"韶关市",parent:"440000"},{value:"440300",name:"深圳市",parent:"440000"},{value:"440400",name:"珠海市",parent:"440000"},{value:"440500",name:"汕头市",parent:"440000"},{value:"440600",name:"佛山市",parent:"440000"},{value:"440700",name:"江门市",parent:"440000"},{value:"440800",name:"湛江市",parent:"440000"},{value:"440900",name:"茂名市",parent:"440000"},{value:"441200",name:"肇庆市",parent:"440000"},{value:"441300",name:"惠州市",parent:"440000"},{value:"441400",name:"梅州市",parent:"440000"},{value:"441500",name:"汕尾市",parent:"440000"},{value:"441600",name:"河源市",parent:"440000"},{value:"441700",name:"阳江市",parent:"440000"},{value:"441800",name:"清远市",parent:"440000"},{value:"441900",name:"东莞市",parent:"440000"},{value:"442000",name:"中山市",parent:"440000"},{value:"442101",name:"东沙群岛",parent:"440000"},{value:"445100",name:"潮州市",parent:"440000"},{value:"445200",name:"揭阳市",parent:"440000"},{value:"445300",name:"云浮市",parent:"440000"},{value:"450100",name:"南宁市",parent:"450000"},{value:"450200",name:"柳州市",parent:"450000"},{value:"450300",name:"桂林市",parent:"450000"},{value:"450400",name:"梧州市",parent:"450000"},{value:"450500",name:"北海市",parent:"450000"},{value:"450600",name:"防城港市",parent:"450000"},{value:"450700",name:"钦州市",parent:"450000"},{value:"450800",name:"贵港市",parent:"450000"},{value:"450900",name:"玉林市",parent:"450000"},{value:"451000",name:"百色市",parent:"450000"},{value:"451100",name:"贺州市",parent:"450000"},{value:"451200",name:"河池市",parent:"450000"},{value:"451300",name:"来宾市",parent:"450000"},{value:"451400",name:"崇左市",parent:"450000"},{value:"460100",name:"海口市",parent:"460000"},{value:"460200",name:"三亚市",parent:"460000"},{value:"460300",name:"三沙市",parent:"460000"},{value:"500100",name:"重庆市",parent:"500000"},{value:"510100",name:"成都市",parent:"510000"},{value:"510300",name:"自贡市",parent:"510000"},{value:"510400",name:"攀枝花市",parent:"510000"},{value:"510500",name:"泸州市",parent:"510000"},{value:"510600",name:"德阳市",parent:"510000"},{value:"510700",name:"绵阳市",parent:"510000"},{value:"510800",name:"广元市",parent:"510000"},{value:"510900",name:"遂宁市",parent:"510000"},{value:"511000",name:"内江市",parent:"510000"},{value:"511100",name:"乐山市",parent:"510000"},{value:"511300",name:"南充市",parent:"510000"},{value:"511400",name:"眉山市",parent:"510000"},{value:"511500",name:"宜宾市",parent:"510000"},{value:"511600",name:"广安市",parent:"510000"},{value:"511700",name:"达州市",parent:"510000"},{value:"511800",name:"雅安市",parent:"510000"},{value:"511900",name:"巴中市",parent:"510000"},{value:"512000",name:"资阳市",parent:"510000"},{value:"513200",name:"阿坝藏族羌族自治州",parent:"510000"},{value:"513300",name:"甘孜藏族自治州",parent:"510000"},{value:"513400",name:"凉山彝族自治州",parent:"510000"},{value:"520100",name:"贵阳市",parent:"520000"},{value:"520200",name:"六盘水市",parent:"520000"},{value:"520300",name:"遵义市",parent:"520000"},{value:"520400",name:"安顺市",parent:"520000"},{value:"522200",name:"铜仁市",parent:"520000"},{value:"522300",name:"黔西南布依族苗族自治州",parent:"520000"},{value:"522400",name:"毕节市",parent:"520000"},{value:"522600",name:"黔东南苗族侗族自治州",parent:"520000"},{value:"522700",name:"黔南布依族苗族自治州",parent:"520000"},{value:"530100",name:"昆明市",parent:"530000"},{value:"530300",name:"曲靖市",parent:"530000"},{value:"530400",name:"玉溪市",parent:"530000"},{value:"530500",name:"保山市",parent:"530000"},{value:"530600",name:"昭通市",parent:"530000"},{value:"530700",name:"丽江市",parent:"530000"},{value:"530800",name:"普洱市",parent:"530000"},{value:"530900",name:"临沧市",parent:"530000"},{value:"532300",name:"楚雄彝族自治州",parent:"530000"},{value:"532500",name:"红河哈尼族彝族自治州",parent:"530000"},{value:"532600",name:"文山壮族苗族自治州",parent:"530000"},{value:"532800",name:"西双版纳傣族自治州",parent:"530000"},{value:"532900",name:"大理白族自治州",parent:"530000"},{value:"533100",name:"德宏傣族景颇族自治州",parent:"530000"},{value:"533300",name:"怒江傈僳族自治州",parent:"530000"},{value:"533400",name:"迪庆藏族自治州",parent:"530000"},{value:"540100",name:"拉萨市",parent:"540000"},{value:"542100",name:"昌都市",parent:"540000"},{value:"542200",name:"山南地区",parent:"540000"},{value:"542300",name:"日喀则市",parent:"540000"},{value:"542400",name:"那曲地区",parent:"540000"},{value:"542500",name:"阿里地区",parent:"540000"},{value:"542600",name:"林芝市",parent:"540000"},{value:"610100",name:"西安市",parent:"610000"},{value:"610200",name:"铜川市",parent:"610000"},{value:"610300",name:"宝鸡市",parent:"610000"},{value:"610400",name:"咸阳市",parent:"610000"},{value:"610500",name:"渭南市",parent:"610000"},{value:"610600",name:"延安市",parent:"610000"},{value:"610700",name:"汉中市",parent:"610000"},{value:"610800",name:"榆林市",parent:"610000"},{value:"610900",name:"安康市",parent:"610000"},{value:"611000",name:"商洛市",parent:"610000"},{value:"620100",name:"兰州市",parent:"620000"},{value:"620200",name:"嘉峪关市",parent:"620000"},{value:"620300",name:"金昌市",parent:"620000"},{value:"620400",name:"白银市",parent:"620000"},{value:"620500",name:"天水市",parent:"620000"},{value:"620600",name:"武威市",parent:"620000"},{value:"620700",name:"张掖市",parent:"620000"},{value:"620800",name:"平凉市",parent:"620000"},{value:"620900",name:"酒泉市",parent:"620000"},{value:"621000",name:"庆阳市",parent:"620000"},{value:"621100",name:"定西市",parent:"620000"},{value:"621200",name:"陇南市",parent:"620000"},{value:"622900",name:"临夏回族自治州",parent:"620000"},{value:"623000",name:"甘南藏族自治州",parent:"620000"},{value:"630100",name:"西宁市",parent:"630000"},{value:"632100",name:"海东市",parent:"630000"},{value:"632200",name:"海北藏族自治州",parent:"630000"},{value:"632300",name:"黄南藏族自治州",parent:"630000"},{value:"632500",name:"海南藏族自治州",parent:"630000"},{value:"632600",name:"果洛藏族自治州",parent:"630000"},{value:"632700",name:"玉树藏族自治州",parent:"630000"},{value:"632800",name:"海西蒙古族藏族自治州",parent:"630000"},{value:"640100",name:"银川市",parent:"640000"},{value:"640200",name:"石嘴山市",parent:"640000"},{value:"640300",name:"吴忠市",parent:"640000"},{value:"640400",name:"固原市",parent:"640000"},{value:"640500",name:"中卫市",parent:"640000"},{value:"650100",name:"乌鲁木齐市",parent:"650000"},{value:"650200",name:"克拉玛依市",parent:"650000"},{value:"652100",name:"吐鲁番市",parent:"650000"},{value:"652200",name:"哈密地区",parent:"650000"},{value:"652300",name:"昌吉回族自治州",parent:"650000"},{value:"652700",name:"博尔塔拉蒙古自治州",parent:"650000"},{value:"652800",name:"巴音郭楞蒙古自治州",parent:"650000"},{value:"652900",name:"阿克苏地区",parent:"650000"},{value:"653000",name:"克孜勒苏柯尔克孜自治州",parent:"650000"},{value:"653100",name:"喀什地区",parent:"650000"},{value:"653200",name:"和田地区",parent:"650000"},{value:"654000",name:"伊犁哈萨克自治州",parent:"650000"},{value:"654200",name:"塔城地区",parent:"650000"},{value:"654300",name:"阿勒泰地区",parent:"650000"},{value:"659000",name:"可克达拉市",parent:"650000"},{value:"710100",name:"台北市",parent:"710000"},{value:"710200",name:"高雄市",parent:"710000"},{value:"710300",name:"台南市",parent:"710000"},{value:"710400",name:"台中市",parent:"710000"},{value:"710500",name:"金门县",parent:"710000"},{value:"710600",name:"南投县",parent:"710000"},{value:"710700",name:"基隆市",parent:"710000"},{value:"710800",name:"新竹市",parent:"710000"},{value:"710900",name:"嘉义市",parent:"710000"},{value:"711100",name:"新北市",parent:"710000"},{value:"711200",name:"宜兰县",parent:"710000"},{value:"711300",name:"新竹县",parent:"710000"},{value:"711400",name:"桃园县",parent:"710000"},{value:"711500",name:"苗栗县",parent:"710000"},{value:"711700",name:"彰化县",parent:"710000"},{value:"711900",name:"嘉义县",parent:"710000"},{value:"712100",name:"云林县",parent:"710000"},{value:"712400",name:"屏东县",parent:"710000"},{value:"712500",name:"台东县",parent:"710000"},{value:"712600",name:"花莲县",parent:"710000"},{value:"712700",name:"澎湖县",parent:"710000"},{value:"712800",name:"连江县",parent:"710000"},{value:"810100",name:"香港岛",parent:"810000"},{value:"810200",name:"九龙",parent:"810000"},{value:"810300",name:"新界",parent:"810000"},{value:"820100",name:"澳门半岛",parent:"820000"},{value:"820200",name:"离岛",parent:"820000"},{value:"990100",name:"海外",parent:"990000"},{value:"110101",name:"东城区",parent:"110100"},{value:"110102",name:"西城区",parent:"110100"},{value:"110103",name:"崇文区",parent:"110100"},{value:"110104",name:"宣武区",parent:"110100"},{value:"110105",name:"朝阳区",parent:"110100"},{value:"110106",name:"丰台区",parent:"110100"},{value:"110107",name:"石景山区",parent:"110100"},{value:"110108",name:"海淀区",parent:"110100"},{value:"110109",name:"门头沟区",parent:"110100"},{value:"110111",name:"房山区",parent:"110100"},{value:"110112",name:"通州区",parent:"110100"},{value:"110113",name:"顺义区",parent:"110100"},{value:"110114",name:"昌平区",parent:"110100"},{value:"110115",name:"大兴区",parent:"110100"},{value:"110116",name:"怀柔区",parent:"110100"},{value:"110117",name:"平谷区",parent:"110100"},{value:"110228",name:"密云县",parent:"110100"},{value:"110229",name:"延庆县",parent:"110100"},{value:"110230",name:"其它区",parent:"110100"},{value:"120101",name:"和平区",parent:"120100"},{value:"120102",name:"河东区",parent:"120100"},{value:"120103",name:"河西区",parent:"120100"},{value:"120104",name:"南开区",parent:"120100"},{value:"120105",name:"河北区",parent:"120100"},{value:"120106",name:"红桥区",parent:"120100"},{value:"120107",name:"塘沽区",parent:"120100"},{value:"120108",name:"汉沽区",parent:"120100"},{value:"120109",name:"大港区",parent:"120100"},{value:"120110",name:"东丽区",parent:"120100"},{value:"120111",name:"西青区",parent:"120100"},{value:"120112",name:"津南区",parent:"120100"},{value:"120113",name:"北辰区",parent:"120100"},{value:"120114",name:"武清区",parent:"120100"},{value:"120115",name:"宝坻区",parent:"120100"},{value:"120116",name:"滨海新区",parent:"120100"},{value:"120221",name:"宁河县",parent:"120100"},{value:"120223",name:"静海县",parent:"120100"},{value:"120225",name:"蓟县",parent:"120100"},{value:"120226",name:"其它区",parent:"120100"},{value:"130102",name:"长安区",parent:"130100"},{value:"130103",name:"桥东区",parent:"130100"},{value:"130104",name:"桥西区",parent:"130100"},{value:"130105",name:"新华区",parent:"130100"},{value:"130107",name:"井陉矿区",parent:"130100"},{value:"130108",name:"裕华区",parent:"130100"},{value:"130121",name:"井陉县",parent:"130100"},{value:"130123",name:"正定县",parent:"130100"},{value:"130124",name:"栾城区",parent:"130100"},{value:"130125",name:"行唐县",parent:"130100"},{value:"130126",name:"灵寿县",parent:"130100"},{value:"130127",name:"高邑县",parent:"130100"},{value:"130128",name:"深泽县",parent:"130100"},{value:"130129",name:"赞皇县",parent:"130100"},{value:"130130",name:"无极县",parent:"130100"},{value:"130131",name:"平山县",parent:"130100"},{value:"130132",name:"元氏县",parent:"130100"},{value:"130133",name:"赵县",parent:"130100"},{value:"130181",name:"辛集市",parent:"130100"},{value:"130182",name:"藁城区",parent:"130100"},{value:"130183",name:"晋州市",parent:"130100"},{value:"130184",name:"新乐市",parent:"130100"},{value:"130185",name:"鹿泉区",parent:"130100"},{value:"130186",name:"其它区",parent:"130100"},{value:"130202",name:"路南区",parent:"130200"},{value:"130203",name:"路北区",parent:"130200"},{value:"130204",name:"古冶区",parent:"130200"},{value:"130205",name:"开平区",parent:"130200"},{value:"130207",name:"丰南区",parent:"130200"},{value:"130208",name:"丰润区",parent:"130200"},{value:"130223",name:"滦县",parent:"130200"},{value:"130224",name:"滦南县",parent:"130200"},{value:"130225",name:"乐亭县",parent:"130200"},{value:"130227",name:"迁西县",parent:"130200"},{value:"130229",name:"玉田县",parent:"130200"},{value:"130230",name:"曹妃甸区",parent:"130200"},{value:"130281",name:"遵化市",parent:"130200"},{value:"130283",name:"迁安市",parent:"130200"},{value:"130284",name:"其它区",parent:"130200"},{value:"130302",name:"海港区",parent:"130300"},{value:"130303",name:"山海关区",parent:"130300"},{value:"130304",name:"北戴河区",parent:"130300"},{value:"130321",name:"青龙满族自治县",parent:"130300"},{value:"130322",name:"昌黎县",parent:"130300"},{value:"130323",name:"抚宁县",parent:"130300"},{value:"130324",name:"卢龙县",parent:"130300"},{value:"130398",name:"其它区",parent:"130300"},{value:"130399",name:"经济技术开发区",parent:"130300"},{value:"130402",name:"邯山区",parent:"130400"},{value:"130403",name:"丛台区",parent:"130400"},{value:"130404",name:"复兴区",parent:"130400"},{value:"130406",name:"峰峰矿区",parent:"130400"},{value:"130421",name:"邯郸县",parent:"130400"},{value:"130423",name:"临漳县",parent:"130400"},{value:"130424",name:"成安县",parent:"130400"},{value:"130425",name:"大名县",parent:"130400"},{value:"130426",name:"涉县",parent:"130400"},{value:"130427",name:"磁县",parent:"130400"},{value:"130428",name:"肥乡县",parent:"130400"},{value:"130429",name:"永年县",parent:"130400"},{value:"130430",name:"邱县",parent:"130400"},{value:"130431",name:"鸡泽县",parent:"130400"},{value:"130432",name:"广平县",parent:"130400"},{value:"130433",name:"馆陶县",parent:"130400"},{value:"130434",name:"魏县",parent:"130400"},{value:"130435",name:"曲周县",parent:"130400"},{value:"130481",name:"武安市",parent:"130400"},{value:"130482",name:"其它区",parent:"130400"},{value:"130502",name:"桥东区",parent:"130500"},{value:"130503",name:"桥西区",parent:"130500"},{value:"130521",name:"邢台县",parent:"130500"},{value:"130522",name:"临城县",parent:"130500"},{value:"130523",name:"内丘县",parent:"130500"},{value:"130524",name:"柏乡县",parent:"130500"},{value:"130525",name:"隆尧县",parent:"130500"},{value:"130526",name:"任县",parent:"130500"},{value:"130527",name:"南和县",parent:"130500"},{value:"130528",name:"宁晋县",parent:"130500"},{value:"130529",name:"巨鹿县",parent:"130500"},{value:"130530",name:"新河县",parent:"130500"},{value:"130531",name:"广宗县",parent:"130500"},{value:"130532",name:"平乡县",parent:"130500"},{value:"130533",name:"威县",parent:"130500"},{value:"130534",name:"清河县",parent:"130500"},{value:"130535",name:"临西县",parent:"130500"},{value:"130581",name:"南宫市",parent:"130500"},{value:"130582",name:"沙河市",parent:"130500"},{value:"130583",name:"其它区",parent:"130500"},{value:"130602",name:"新市区",parent:"130600"},{value:"130603",name:"北市区",parent:"130600"},{value:"130604",name:"南市区",parent:"130600"},{value:"130621",name:"满城县",parent:"130600"},{value:"130622",name:"清苑县",parent:"130600"},{value:"130623",name:"涞水县",parent:"130600"},{value:"130624",name:"阜平县",parent:"130600"},{value:"130625",name:"徐水县",parent:"130600"},{value:"130626",name:"定兴县",parent:"130600"},{value:"130627",name:"唐县",parent:"130600"},{value:"130628",name:"高阳县",parent:"130600"},{value:"130629",name:"容城县",parent:"130600"},{value:"130630",name:"涞源县",parent:"130600"},{value:"130631",name:"望都县",parent:"130600"},{value:"130632",name:"安新县",parent:"130600"},{value:"130633",name:"易县",parent:"130600"},{value:"130634",name:"曲阳县",parent:"130600"},{value:"130635",name:"蠡县",parent:"130600"},{value:"130636",name:"顺平县",parent:"130600"},{value:"130637",name:"博野县",parent:"130600"},{value:"130638",name:"雄县",parent:"130600"},{value:"130681",name:"涿州市",parent:"130600"},{value:"130682",name:"定州市",parent:"130600"},{value:"130683",name:"安国市",parent:"130600"},{value:"130684",name:"高碑店市",parent:"130600"},{value:"130698",name:"高开区",parent:"130600"},{value:"130699",name:"其它区",parent:"130600"},{value:"130702",name:"桥东区",parent:"130700"},{value:"130703",name:"桥西区",parent:"130700"},{value:"130705",name:"宣化区",parent:"130700"},{value:"130706",name:"下花园区",parent:"130700"},{value:"130721",name:"宣化县",parent:"130700"},{value:"130722",name:"张北县",parent:"130700"},{value:"130723",name:"康保县",parent:"130700"},{value:"130724",name:"沽源县",parent:"130700"},{value:"130725",name:"尚义县",parent:"130700"},{value:"130726",name:"蔚县",parent:"130700"},{value:"130727",name:"阳原县",parent:"130700"},{value:"130728",name:"怀安县",parent:"130700"},{value:"130729",name:"万全县",parent:"130700"},{value:"130730",name:"怀来县",parent:"130700"},{value:"130731",name:"涿鹿县",parent:"130700"},{value:"130732",name:"赤城县",parent:"130700"},{value:"130733",name:"崇礼县",parent:"130700"},{value:"130734",name:"其它区",parent:"130700"},{value:"130802",name:"双桥区",parent:"130800"},{value:"130803",name:"双滦区",parent:"130800"},{value:"130804",name:"鹰手营子矿区",parent:"130800"},{value:"130821",name:"承德县",parent:"130800"},{value:"130822",name:"兴隆县",parent:"130800"},{value:"130823",name:"平泉县",parent:"130800"},{value:"130824",name:"滦平县",parent:"130800"},{value:"130825",name:"隆化县",parent:"130800"},{value:"130826",name:"丰宁满族自治县",parent:"130800"},{value:"130827",name:"宽城满族自治县",parent:"130800"},{value:"130828",name:"围场满族蒙古族自治县",parent:"130800"},{value:"130829",name:"其它区",parent:"130800"},{value:"130902",name:"新华区",parent:"130900"},{value:"130903",name:"运河区",parent:"130900"},{value:"130921",name:"沧县",parent:"130900"},{value:"130922",name:"青县",parent:"130900"},{value:"130923",name:"东光县",parent:"130900"},{value:"130924",name:"海兴县",parent:"130900"},{value:"130925",name:"盐山县",parent:"130900"},{value:"130926",name:"肃宁县",parent:"130900"},{value:"130927",name:"南皮县",parent:"130900"},{value:"130928",name:"吴桥县",parent:"130900"},{value:"130929",name:"献县",parent:"130900"},{value:"130930",name:"孟村回族自治县",parent:"130900"},{value:"130981",name:"泊头市",parent:"130900"},{value:"130982",name:"任丘市",parent:"130900"},{value:"130983",name:"黄骅市",parent:"130900"},{value:"130984",name:"河间市",parent:"130900"},{value:"130985",name:"其它区",parent:"130900"},{value:"131002",name:"安次区",parent:"131000"},{value:"131003",name:"广阳区",parent:"131000"},{value:"131022",name:"固安县",parent:"131000"},{value:"131023",name:"永清县",parent:"131000"},{value:"131024",name:"香河县",parent:"131000"},{value:"131025",name:"大城县",parent:"131000"},{value:"131026",name:"文安县",parent:"131000"},{value:"131028",name:"大厂回族自治县",parent:"131000"},{value:"131051",name:"开发区",parent:"131000"},{value:"131052",name:"燕郊经济技术开发区",parent:"131000"},{value:"131081",name:"霸州市",parent:"131000"},{value:"131082",name:"三河市",parent:"131000"},{value:"131083",name:"其它区",parent:"131000"},{value:"131102",name:"桃城区",parent:"131100"},{value:"131121",name:"枣强县",parent:"131100"},{value:"131122",name:"武邑县",parent:"131100"},{value:"131123",name:"武强县",parent:"131100"},{value:"131124",name:"饶阳县",parent:"131100"},{value:"131125",name:"安平县",parent:"131100"},{value:"131126",name:"故城县",parent:"131100"},{value:"131127",name:"景县",parent:"131100"},{value:"131128",name:"阜城县",parent:"131100"},{value:"131181",name:"冀州市",parent:"131100"},{value:"131182",name:"深州市",parent:"131100"},{value:"131183",name:"其它区",parent:"131100"},{value:"140105",name:"小店区",parent:"140100"},{value:"140106",name:"迎泽区",parent:"140100"},{value:"140107",name:"杏花岭区",parent:"140100"},{value:"140108",name:"尖草坪区",parent:"140100"},{value:"140109",name:"万柏林区",parent:"140100"},{value:"140110",name:"晋源区",parent:"140100"},{value:"140121",name:"清徐县",parent:"140100"},{value:"140122",name:"阳曲县",parent:"140100"},{value:"140123",name:"娄烦县",parent:"140100"},{value:"140181",name:"古交市",parent:"140100"},{value:"140182",name:"其它区",parent:"140100"},{value:"140202",name:"城区",parent:"140200"},{value:"140203",name:"矿区",parent:"140200"},{value:"140211",name:"南郊区",parent:"140200"},{value:"140212",name:"新荣区",parent:"140200"},{value:"140221",name:"阳高县",parent:"140200"},{value:"140222",name:"天镇县",parent:"140200"},{value:"140223",name:"广灵县",parent:"140200"},{value:"140224",name:"灵丘县",parent:"140200"},{value:"140225",name:"浑源县",parent:"140200"},{value:"140226",name:"左云县",parent:"140200"},{value:"140227",name:"大同县",parent:"140200"},{value:"140228",name:"其它区",parent:"140200"},{value:"140302",name:"城区",parent:"140300"},{value:"140303",name:"矿区",parent:"140300"},{value:"140311",name:"郊区",parent:"140300"},{value:"140321",name:"平定县",parent:"140300"},{value:"140322",name:"盂县",parent:"140300"},{value:"140323",name:"其它区",parent:"140300"},{value:"140421",name:"长治县",parent:"140400"},{value:"140423",name:"襄垣县",parent:"140400"},{value:"140424",name:"屯留县",parent:"140400"},{value:"140425",name:"平顺县",parent:"140400"},{value:"140426",name:"黎城县",parent:"140400"},{value:"140427",name:"壶关县",parent:"140400"},{value:"140428",name:"长子县",parent:"140400"},{value:"140429",name:"武乡县",parent:"140400"},{value:"140430",name:"沁县",parent:"140400"},{value:"140431",name:"沁源县",parent:"140400"},{value:"140481",name:"潞城市",parent:"140400"},{value:"140482",name:"城区",parent:"140400"},{value:"140483",name:"郊区",parent:"140400"},{value:"140484",name:"高新区",parent:"140400"},{value:"140485",name:"其它区",parent:"140400"},{value:"140502",name:"城区",parent:"140500"},{value:"140521",name:"沁水县",parent:"140500"},{value:"140522",name:"阳城县",parent:"140500"},{value:"140524",name:"陵川县",parent:"140500"},{value:"140525",name:"泽州县",parent:"140500"},{value:"140581",name:"高平市",parent:"140500"},{value:"140582",name:"其它区",parent:"140500"},{value:"140602",name:"朔城区",parent:"140600"},{value:"140603",name:"平鲁区",parent:"140600"},{value:"140621",name:"山阴县",parent:"140600"},{value:"140622",name:"应县",parent:"140600"},{value:"140623",name:"右玉县",parent:"140600"},{value:"140624",name:"怀仁县",parent:"140600"},{value:"140625",name:"其它区",parent:"140600"},{value:"140702",name:"榆次区",parent:"140700"},{value:"140721",name:"榆社县",parent:"140700"},{value:"140722",name:"左权县",parent:"140700"},{value:"140723",name:"和顺县",parent:"140700"},{value:"140724",name:"昔阳县",parent:"140700"},{value:"140725",name:"寿阳县",parent:"140700"},{value:"140726",name:"太谷县",parent:"140700"},{value:"140727",name:"祁县",parent:"140700"},{value:"140728",name:"平遥县",parent:"140700"},{value:"140729",name:"灵石县",parent:"140700"},{value:"140781",name:"介休市",parent:"140700"},{value:"140782",name:"其它区",parent:"140700"},{value:"140802",name:"盐湖区",parent:"140800"},{value:"140821",name:"临猗县",parent:"140800"},{value:"140822",name:"万荣县",parent:"140800"},{value:"140823",name:"闻喜县",parent:"140800"},{value:"140824",name:"稷山县",parent:"140800"},{value:"140825",name:"新绛县",parent:"140800"},{value:"140826",name:"绛县",parent:"140800"},{value:"140827",name:"垣曲县",parent:"140800"},{value:"140828",name:"夏县",parent:"140800"},{value:"140829",name:"平陆县",parent:"140800"},{value:"140830",name:"芮城县",parent:"140800"},{value:"140881",name:"永济市",parent:"140800"},{value:"140882",name:"河津市",parent:"140800"},{value:"140883",name:"其它区",parent:"140800"},{value:"140902",name:"忻府区",parent:"140900"},{value:"140921",name:"定襄县",parent:"140900"},{value:"140922",name:"五台县",parent:"140900"},{value:"140923",name:"代县",parent:"140900"},{value:"140924",name:"繁峙县",parent:"140900"},{value:"140925",name:"宁武县",parent:"140900"},{value:"140926",name:"静乐县",parent:"140900"},{value:"140927",name:"神池县",parent:"140900"},{value:"140928",name:"五寨县",parent:"140900"},{value:"140929",name:"岢岚县",parent:"140900"},{value:"140930",name:"河曲县",parent:"140900"},{value:"140931",name:"保德县",parent:"140900"},{value:"140932",name:"偏关县",parent:"140900"},{value:"140981",name:"原平市",parent:"140900"},{value:"140982",name:"其它区",parent:"140900"},{value:"141002",name:"尧都区",parent:"141000"},{value:"141021",name:"曲沃县",parent:"141000"},{value:"141022",name:"翼城县",parent:"141000"},{value:"141023",name:"襄汾县",parent:"141000"},{value:"141024",name:"洪洞县",parent:"141000"},{value:"141025",name:"古县",parent:"141000"},{value:"141026",name:"安泽县",parent:"141000"},{value:"141027",name:"浮山县",parent:"141000"},{value:"141028",name:"吉县",parent:"141000"},{value:"141029",name:"乡宁县",parent:"141000"},{value:"141030",name:"大宁县",parent:"141000"},{value:"141031",name:"隰县",parent:"141000"},{value:"141032",name:"永和县",parent:"141000"},{value:"141033",name:"蒲县",parent:"141000"},{value:"141034",name:"汾西县",parent:"141000"},{value:"141081",name:"侯马市",parent:"141000"},{value:"141082",name:"霍州市",parent:"141000"},{value:"141083",name:"其它区",parent:"141000"},{value:"141102",name:"离石区",parent:"141100"},{value:"141121",name:"文水县",parent:"141100"},{value:"141122",name:"交城县",parent:"141100"},{value:"141123",name:"兴县",parent:"141100"},{value:"141124",name:"临县",parent:"141100"},{value:"141125",name:"柳林县",parent:"141100"},{value:"141126",name:"石楼县",parent:"141100"},{value:"141127",name:"岚县",parent:"141100"},{value:"141128",name:"方山县",parent:"141100"},{value:"141129",name:"中阳县",parent:"141100"},{value:"141130",name:"交口县",parent:"141100"},{value:"141181",name:"孝义市",parent:"141100"},{value:"141182",name:"汾阳市",parent:"141100"},{value:"141183",name:"其它区",parent:"141100"},{value:"150102",name:"新城区",parent:"150100"},{value:"150103",name:"回民区",parent:"150100"},{value:"150104",name:"玉泉区",parent:"150100"},{value:"150105",name:"赛罕区",parent:"150100"},{value:"150121",name:"土默特左旗",parent:"150100"},{value:"150122",name:"托克托县",parent:"150100"},{value:"150123",name:"和林格尔县",parent:"150100"},{value:"150124",name:"清水河县",parent:"150100"},{value:"150125",name:"武川县",parent:"150100"},{value:"150126",name:"其它区",parent:"150100"},{value:"150202",name:"东河区",parent:"150200"},{value:"150203",name:"昆都仑区",parent:"150200"},{value:"150204",name:"青山区",parent:"150200"},{value:"150205",name:"石拐区",parent:"150200"},{value:"150206",name:"白云鄂博矿区",parent:"150200"},{value:"150207",name:"九原区",parent:"150200"},{value:"150221",name:"土默特右旗",parent:"150200"},{value:"150222",name:"固阳县",parent:"150200"},{value:"150223",name:"达尔罕茂明安联合旗",parent:"150200"},{value:"150224",name:"其它区",parent:"150200"},{value:"150302",name:"海勃湾区",parent:"150300"},{value:"150303",name:"海南区",parent:"150300"},{value:"150304",name:"乌达区",parent:"150300"},{value:"150305",name:"其它区",parent:"150300"},{value:"150402",name:"红山区",parent:"150400"},{value:"150403",name:"元宝山区",parent:"150400"},{value:"150404",name:"松山区",parent:"150400"},{value:"150421",name:"阿鲁科尔沁旗",parent:"150400"},{value:"150422",name:"巴林左旗",parent:"150400"},{value:"150423",name:"巴林右旗",parent:"150400"},{value:"150424",name:"林西县",parent:"150400"},{value:"150425",name:"克什克腾旗",parent:"150400"},{value:"150426",name:"翁牛特旗",parent:"150400"},{value:"150428",name:"喀喇沁旗",parent:"150400"},{value:"150429",name:"宁城县",parent:"150400"},{value:"150430",name:"敖汉旗",parent:"150400"},{value:"150431",name:"其它区",parent:"150400"},{value:"150502",name:"科尔沁区",parent:"150500"},{value:"150521",name:"科尔沁左翼中旗",parent:"150500"},{value:"150522",name:"科尔沁左翼后旗",parent:"150500"},{value:"150523",name:"开鲁县",parent:"150500"},{value:"150524",name:"库伦旗",parent:"150500"},{value:"150525",name:"奈曼旗",parent:"150500"},{value:"150526",name:"扎鲁特旗",parent:"150500"},{value:"150581",name:"霍林郭勒市",parent:"150500"},{value:"150582",name:"其它区",parent:"150500"},{value:"150602",name:"东胜区",parent:"150600"},{value:"150621",name:"达拉特旗",parent:"150600"},{value:"150622",name:"准格尔旗",parent:"150600"},{value:"150623",name:"鄂托克前旗",parent:"150600"},{value:"150624",name:"鄂托克旗",parent:"150600"},{value:"150625",name:"杭锦旗",parent:"150600"},{value:"150626",name:"乌审旗",parent:"150600"},{value:"150627",name:"伊金霍洛旗",parent:"150600"},{value:"150628",name:"其它区",parent:"150600"},{value:"150702",name:"海拉尔区",parent:"150700"},{value:"150703",name:"扎赉诺尔区",parent:"150700"},{value:"150721",name:"阿荣旗",parent:"150700"},{value:"150722",name:"莫力达瓦达斡尔族自治旗",parent:"150700"},{value:"150723",name:"鄂伦春自治旗",parent:"150700"},{value:"150724",name:"鄂温克族自治旗",parent:"150700"},{value:"150725",name:"陈巴尔虎旗",parent:"150700"},{value:"150726",name:"新巴尔虎左旗",parent:"150700"},{value:"150727",name:"新巴尔虎右旗",parent:"150700"},{value:"150781",name:"满洲里市",parent:"150700"},{value:"150782",name:"牙克石市",parent:"150700"},{value:"150783",name:"扎兰屯市",parent:"150700"},{value:"150784",name:"额尔古纳市",parent:"150700"},{value:"150785",name:"根河市",parent:"150700"},{value:"150786",name:"其它区",parent:"150700"},{value:"150802",name:"临河区",parent:"150800"},{value:"150821",name:"五原县",parent:"150800"},{value:"150822",name:"磴口县",parent:"150800"},{value:"150823",name:"乌拉特前旗",parent:"150800"},{value:"150824",name:"乌拉特中旗",parent:"150800"},{value:"150825",name:"乌拉特后旗",parent:"150800"},{value:"150826",name:"杭锦后旗",parent:"150800"},{value:"150827",name:"其它区",parent:"150800"},{value:"150902",name:"集宁区",parent:"150900"},{value:"150921",name:"卓资县",parent:"150900"},{value:"150922",name:"化德县",parent:"150900"},{value:"150923",name:"商都县",parent:"150900"},{value:"150924",name:"兴和县",parent:"150900"},{value:"150925",name:"凉城县",parent:"150900"},{value:"150926",name:"察哈尔右翼前旗",parent:"150900"},{value:"150927",name:"察哈尔右翼中旗",parent:"150900"},{value:"150928",name:"察哈尔右翼后旗",parent:"150900"},{value:"150929",name:"四子王旗",parent:"150900"},{value:"150981",name:"丰镇市",parent:"150900"},{value:"150982",name:"其它区",parent:"150900"},{value:"152201",name:"乌兰浩特市",parent:"152200"},{value:"152202",name:"阿尔山市",parent:"152200"},{value:"152221",name:"科尔沁右翼前旗",parent:"152200"},{value:"152222",name:"科尔沁右翼中旗",parent:"152200"},{value:"152223",name:"扎赉特旗",parent:"152200"},{value:"152224",name:"突泉县",parent:"152200"},{value:"152225",name:"其它区",parent:"152200"},{value:"152501",name:"二连浩特市",parent:"152500"},{value:"152502",name:"锡林浩特市",parent:"152500"},{value:"152522",name:"阿巴嘎旗",parent:"152500"},{value:"152523",name:"苏尼特左旗",parent:"152500"},{value:"152524",name:"苏尼特右旗",parent:"152500"},{value:"152525",name:"东乌珠穆沁旗",parent:"152500"},{value:"152526",name:"西乌珠穆沁旗",parent:"152500"},{value:"152527",name:"太仆寺旗",parent:"152500"},{value:"152528",name:"镶黄旗",parent:"152500"},{value:"152529",name:"正镶白旗",parent:"152500"},{value:"152530",name:"正蓝旗",parent:"152500"},{value:"152531",name:"多伦县",parent:"152500"},{value:"152532",name:"其它区",parent:"152500"},{value:"152921",name:"阿拉善左旗",parent:"152900"},{value:"152922",name:"阿拉善右旗",parent:"152900"},{value:"152923",name:"额济纳旗",parent:"152900"},{value:"152924",name:"其它区",parent:"152900"},{value:"210102",name:"和平区",parent:"210100"},{value:"210103",name:"沈河区",parent:"210100"},{value:"210104",name:"大东区",parent:"210100"},{value:"210105",name:"皇姑区",parent:"210100"},{value:"210106",name:"铁西区",parent:"210100"},{value:"210111",name:"苏家屯区",parent:"210100"},{value:"210112",name:"浑南区",parent:"210100"},{value:"210113",name:"新城子区",parent:"210100"},{value:"210114",name:"于洪区",parent:"210100"},{value:"210122",name:"辽中县",parent:"210100"},{value:"210123",name:"康平县",parent:"210100"},{value:"210124",name:"法库县",parent:"210100"},{value:"210181",name:"新民市",parent:"210100"},{value:"210182",name:"浑南新区",parent:"210100"},{value:"210183",name:"张士开发区",parent:"210100"},{value:"210184",name:"沈北新区",parent:"210100"},{value:"210185",name:"其它区",parent:"210100"},{value:"210202",name:"中山区",parent:"210200"},{value:"210203",name:"西岗区",parent:"210200"},{value:"210204",name:"沙河口区",parent:"210200"},{value:"210211",name:"甘井子区",parent:"210200"},{value:"210212",name:"旅顺口区",parent:"210200"},{value:"210213",name:"金州区",parent:"210200"},{value:"210224",name:"长海县",parent:"210200"},{value:"210251",name:"开发区",parent:"210200"},{value:"210281",name:"瓦房店市",parent:"210200"},{value:"210282",name:"普兰店市",parent:"210200"},{value:"210283",name:"庄河市",parent:"210200"},{value:"210297",name:"岭前区",parent:"210200"},{value:"210298",name:"其它区",parent:"210200"},{value:"210302",name:"铁东区",parent:"210300"},{value:"210303",name:"铁西区",parent:"210300"},{value:"210304",name:"立山区",parent:"210300"},{value:"210311",name:"千山区",parent:"210300"},{value:"210321",name:"台安县",parent:"210300"},{value:"210323",name:"岫岩满族自治县",parent:"210300"},{value:"210351",name:"高新区",parent:"210300"},{value:"210381",name:"海城市",parent:"210300"},{value:"210382",name:"其它区",parent:"210300"},{value:"210402",name:"新抚区",parent:"210400"},{value:"210403",name:"东洲区",parent:"210400"},{value:"210404",name:"望花区",parent:"210400"},{value:"210411",name:"顺城区",parent:"210400"},{value:"210421",name:"抚顺县",parent:"210400"},{value:"210422",name:"新宾满族自治县",parent:"210400"},{value:"210423",name:"清原满族自治县",parent:"210400"},{value:"210424",name:"其它区",parent:"210400"},{value:"210502",name:"平山区",parent:"210500"},{value:"210503",name:"溪湖区",parent:"210500"},{value:"210504",name:"明山区",parent:"210500"},{value:"210505",name:"南芬区",parent:"210500"},{value:"210521",name:"本溪满族自治县",parent:"210500"},{value:"210522",name:"桓仁满族自治县",parent:"210500"},{value:"210523",name:"其它区",parent:"210500"},{value:"210602",name:"元宝区",parent:"210600"},{value:"210603",name:"振兴区",parent:"210600"},{value:"210604",name:"振安区",parent:"210600"},{value:"210624",name:"宽甸满族自治县",parent:"210600"},{value:"210681",name:"东港市",parent:"210600"},{value:"210682",name:"凤城市",parent:"210600"},{value:"210683",name:"其它区",parent:"210600"},{value:"210702",name:"古塔区",parent:"210700"},{value:"210703",name:"凌河区",parent:"210700"},{value:"210711",name:"太和区",parent:"210700"},{value:"210726",name:"黑山县",parent:"210700"},{value:"210727",name:"义县",parent:"210700"},{value:"210781",name:"凌海市",parent:"210700"},{value:"210782",name:"北镇市",parent:"210700"},{value:"210783",name:"其它区",parent:"210700"},{value:"210802",name:"站前区",parent:"210800"},{value:"210803",name:"西市区",parent:"210800"},{value:"210804",name:"鲅鱼圈区",parent:"210800"},{value:"210811",name:"老边区",parent:"210800"},{value:"210881",name:"盖州市",parent:"210800"},{value:"210882",name:"大石桥市",parent:"210800"},{value:"210883",name:"其它区",parent:"210800"},{value:"210902",name:"海州区",parent:"210900"},{value:"210903",name:"新邱区",parent:"210900"},{value:"210904",name:"太平区",parent:"210900"},{value:"210905",name:"清河门区",parent:"210900"},{value:"210911",name:"细河区",parent:"210900"},{value:"210921",name:"阜新蒙古族自治县",parent:"210900"},{value:"210922",name:"彰武县",parent:"210900"},{value:"210923",name:"其它区",parent:"210900"},{value:"211002",name:"白塔区",parent:"211000"},{value:"211003",name:"文圣区",parent:"211000"},{value:"211004",name:"宏伟区",parent:"211000"},{value:"211005",name:"弓长岭区",parent:"211000"},{value:"211011",name:"太子河区",parent:"211000"},{value:"211021",name:"辽阳县",parent:"211000"},{value:"211081",name:"灯塔市",parent:"211000"},{value:"211082",name:"其它区",parent:"211000"},{value:"211102",name:"双台子区",parent:"211100"},{value:"211103",name:"兴隆台区",parent:"211100"},{value:"211121",name:"大洼县",parent:"211100"},{value:"211122",name:"盘山县",parent:"211100"},{value:"211123",name:"其它区",parent:"211100"},{value:"211202",name:"银州区",parent:"211200"},{value:"211204",name:"清河区",parent:"211200"},{value:"211221",name:"铁岭县",parent:"211200"},{value:"211223",name:"西丰县",parent:"211200"},{value:"211224",name:"昌图县",parent:"211200"},{value:"211281",name:"调兵山市",parent:"211200"},{value:"211282",name:"开原市",parent:"211200"},{value:"211283",name:"其它区",parent:"211200"},{value:"211302",name:"双塔区",parent:"211300"},{value:"211303",name:"龙城区",parent:"211300"},{value:"211321",name:"朝阳县",parent:"211300"},{value:"211322",name:"建平县",parent:"211300"},{value:"211324",name:"喀喇沁左翼蒙古族自治县",parent:"211300"},{value:"211381",name:"北票市",parent:"211300"},{value:"211382",name:"凌源市",parent:"211300"},{value:"211383",name:"其它区",parent:"211300"},{value:"211402",name:"连山区",parent:"211400"},{value:"211403",name:"龙港区",parent:"211400"},{value:"211404",name:"南票区",parent:"211400"},{value:"211421",name:"绥中县",parent:"211400"},{value:"211422",name:"建昌县",parent:"211400"},{value:"211481",name:"兴城市",parent:"211400"},{value:"211482",name:"其它区",parent:"211400"},{value:"220102",name:"南关区",parent:"220100"},{value:"220103",name:"宽城区",parent:"220100"},{value:"220104",name:"朝阳区",parent:"220100"},{value:"220105",name:"二道区",parent:"220100"},{value:"220106",name:"绿园区",parent:"220100"},{value:"220112",name:"双阳区",parent:"220100"},{value:"220122",name:"农安县",parent:"220100"},{value:"220181",name:"九台区",parent:"220100"},{value:"220182",name:"榆树市",parent:"220100"},{value:"220183",name:"德惠市",parent:"220100"},{value:"220184",name:"高新技术产业开发区",parent:"220100"},{value:"220185",name:"汽车产业开发区",parent:"220100"},{value:"220186",name:"经济技术开发区",parent:"220100"},{value:"220187",name:"净月旅游开发区",parent:"220100"},{value:"220188",name:"其它区",parent:"220100"},{value:"220202",name:"昌邑区",parent:"220200"},{value:"220203",name:"龙潭区",parent:"220200"},{value:"220204",name:"船营区",parent:"220200"},{value:"220211",name:"丰满区",parent:"220200"},{value:"220221",name:"永吉县",parent:"220200"},{value:"220281",name:"蛟河市",parent:"220200"},{value:"220282",name:"桦甸市",parent:"220200"},{value:"220283",name:"舒兰市",parent:"220200"},{value:"220284",name:"磐石市",parent:"220200"},{value:"220285",name:"其它区",parent:"220200"},{value:"220302",name:"铁西区",parent:"220300"},{value:"220303",name:"铁东区",parent:"220300"},{value:"220322",name:"梨树县",parent:"220300"},{value:"220323",name:"伊通满族自治县",parent:"220300"},{value:"220381",name:"公主岭市",parent:"220300"},{value:"220382",name:"双辽市",parent:"220300"},{value:"220383",name:"其它区",parent:"220300"},{value:"220402",name:"龙山区",parent:"220400"},{value:"220403",name:"西安区",parent:"220400"},{value:"220421",name:"东丰县",parent:"220400"},{value:"220422",name:"东辽县",parent:"220400"},{value:"220423",name:"其它区",parent:"220400"},{value:"220502",name:"东昌区",parent:"220500"},{value:"220503",name:"二道江区",parent:"220500"},{value:"220521",name:"通化县",parent:"220500"},{value:"220523",name:"辉南县",parent:"220500"},{value:"220524",name:"柳河县",parent:"220500"},{value:"220581",name:"梅河口市",parent:"220500"},{value:"220582",name:"集安市",parent:"220500"},{value:"220583",name:"其它区",parent:"220500"},{value:"220602",name:"浑江区",parent:"220600"},{value:"220621",name:"抚松县",parent:"220600"},{value:"220622",name:"靖宇县",parent:"220600"},{value:"220623",name:"长白朝鲜族自治县",parent:"220600"},{value:"220625",name:"江源区",parent:"220600"},{value:"220681",name:"临江市",parent:"220600"},{value:"220682",name:"其它区",parent:"220600"},{value:"220702",name:"宁江区",parent:"220700"},{value:"220721",name:"前郭尔罗斯蒙古族自治县",parent:"220700"},{value:"220722",name:"长岭县",parent:"220700"},{value:"220723",name:"乾安县",parent:"220700"},{value:"220724",name:"扶余市",parent:"220700"},{value:"220725",name:"其它区",parent:"220700"},{value:"220802",name:"洮北区",parent:"220800"},{value:"220821",name:"镇赉县",parent:"220800"},{value:"220822",name:"通榆县",parent:"220800"},{value:"220881",name:"洮南市",parent:"220800"},{value:"220882",name:"大安市",parent:"220800"},{value:"220883",name:"其它区",parent:"220800"},{value:"222401",name:"延吉市",parent:"222400"},{value:"222402",name:"图们市",parent:"222400"},{value:"222403",name:"敦化市",parent:"222400"},{value:"222404",name:"珲春市",parent:"222400"},{value:"222405",name:"龙井市",parent:"222400"},{value:"222406",name:"和龙市",parent:"222400"},{value:"222424",name:"汪清县",parent:"222400"},{value:"222426",name:"安图县",parent:"222400"},{value:"222427",name:"其它区",parent:"222400"},{value:"230102",name:"道里区",parent:"230100"},{value:"230103",name:"南岗区",parent:"230100"},{value:"230104",name:"道外区",parent:"230100"},{value:"230106",name:"香坊区",parent:"230100"},{value:"230107",name:"动力区",parent:"230100"},{value:"230108",name:"平房区",parent:"230100"},{value:"230109",name:"松北区",parent:"230100"},{value:"230111",name:"呼兰区",parent:"230100"},{value:"230123",name:"依兰县",parent:"230100"},{value:"230124",name:"方正县",parent:"230100"},{value:"230125",name:"宾县",parent:"230100"},{value:"230126",name:"巴彦县",parent:"230100"},{value:"230127",name:"木兰县",parent:"230100"},{value:"230128",name:"通河县",parent:"230100"},{value:"230129",name:"延寿县",parent:"230100"},{value:"230181",name:"阿城区",parent:"230100"},{value:"230182",name:"双城区",parent:"230100"},{value:"230183",name:"尚志市",parent:"230100"},{value:"230184",name:"五常市",parent:"230100"},{value:"230185",name:"阿城市",parent:"230100"},{value:"230186",name:"其它区",parent:"230100"},{value:"230202",name:"龙沙区",parent:"230200"},{value:"230203",name:"建华区",parent:"230200"},{value:"230204",name:"铁锋区",parent:"230200"},{value:"230205",name:"昂昂溪区",parent:"230200"},{value:"230206",name:"富拉尔基区",parent:"230200"},{value:"230207",name:"碾子山区",parent:"230200"},{value:"230208",name:"梅里斯达斡尔族区",parent:"230200"},{value:"230221",name:"龙江县",parent:"230200"},{value:"230223",name:"依安县",parent:"230200"},{value:"230224",name:"泰来县",parent:"230200"},{value:"230225",name:"甘南县",parent:"230200"},{value:"230227",name:"富裕县",parent:"230200"},{value:"230229",name:"克山县",parent:"230200"},{value:"230230",name:"克东县",parent:"230200"},{value:"230231",name:"拜泉县",parent:"230200"},{value:"230281",name:"讷河市",parent:"230200"},{value:"230282",name:"其它区",parent:"230200"},{value:"230302",name:"鸡冠区",parent:"230300"},{value:"230303",name:"恒山区",parent:"230300"},{value:"230304",name:"滴道区",parent:"230300"},{value:"230305",name:"梨树区",parent:"230300"},{value:"230306",name:"城子河区",parent:"230300"},{value:"230307",name:"麻山区",parent:"230300"},{value:"230321",name:"鸡东县",parent:"230300"},{value:"230381",name:"虎林市",parent:"230300"},{value:"230382",name:"密山市",parent:"230300"},{value:"230383",name:"其它区",parent:"230300"},{value:"230402",name:"向阳区",parent:"230400"},{value:"230403",name:"工农区",parent:"230400"},{value:"230404",name:"南山区",parent:"230400"},{value:"230405",name:"兴安区",parent:"230400"},{value:"230406",name:"东山区",parent:"230400"},{value:"230407",name:"兴山区",parent:"230400"},{value:"230421",name:"萝北县",parent:"230400"},{value:"230422",name:"绥滨县",parent:"230400"},{value:"230423",name:"其它区",parent:"230400"},{value:"230502",name:"尖山区",parent:"230500"},{value:"230503",name:"岭东区",parent:"230500"},{value:"230505",name:"四方台区",parent:"230500"},{value:"230506",name:"宝山区",parent:"230500"},{value:"230521",name:"集贤县",parent:"230500"},{value:"230522",name:"友谊县",parent:"230500"},{value:"230523",name:"宝清县",parent:"230500"},{value:"230524",name:"饶河县",parent:"230500"},{value:"230525",name:"其它区",parent:"230500"},{value:"230602",name:"萨尔图区",parent:"230600"},{value:"230603",name:"龙凤区",parent:"230600"},{value:"230604",name:"让胡路区",parent:"230600"},{value:"230605",name:"红岗区",parent:"230600"},{value:"230606",name:"大同区",parent:"230600"},{value:"230621",name:"肇州县",parent:"230600"},{value:"230622",name:"肇源县",parent:"230600"},{value:"230623",name:"林甸县",parent:"230600"},{value:"230624",name:"杜尔伯特蒙古族自治县",parent:"230600"},{value:"230625",name:"其它区",parent:"230600"},{value:"230702",name:"伊春区",parent:"230700"},{value:"230703",name:"南岔区",parent:"230700"},{value:"230704",name:"友好区",parent:"230700"},{value:"230705",name:"西林区",parent:"230700"},{value:"230706",name:"翠峦区",parent:"230700"},{value:"230707",name:"新青区",parent:"230700"},{value:"230708",name:"美溪区",parent:"230700"},{value:"230709",name:"金山屯区",parent:"230700"},{value:"230710",name:"五营区",parent:"230700"},{value:"230711",name:"乌马河区",parent:"230700"},{value:"230712",name:"汤旺河区",parent:"230700"},{value:"230713",name:"带岭区",parent:"230700"},{value:"230714",name:"乌伊岭区",parent:"230700"},{value:"230715",name:"红星区",parent:"230700"},{value:"230716",name:"上甘岭区",parent:"230700"},{value:"230722",name:"嘉荫县",parent:"230700"},{value:"230781",name:"铁力市",parent:"230700"},{value:"230782",name:"其它区",parent:"230700"},{value:"230802",name:"永红区",parent:"230800"},{value:"230803",name:"向阳区",parent:"230800"},{value:"230804",name:"前进区",parent:"230800"},{value:"230805",name:"东风区",parent:"230800"},{value:"230811",name:"郊区",parent:"230800"},{value:"230822",name:"桦南县",parent:"230800"},{value:"230826",name:"桦川县",parent:"230800"},{value:"230828",name:"汤原县",parent:"230800"},{value:"230833",name:"抚远县",parent:"230800"},{value:"230881",name:"同江市",parent:"230800"},{value:"230882",name:"富锦市",parent:"230800"},{value:"230883",name:"其它区",parent:"230800"},{value:"230902",name:"新兴区",parent:"230900"},{value:"230903",name:"桃山区",parent:"230900"},{value:"230904",name:"茄子河区",parent:"230900"},{value:"230921",name:"勃利县",parent:"230900"},{value:"230922",name:"其它区",parent:"230900"},{value:"231002",name:"东安区",parent:"231000"},{value:"231003",name:"阳明区",parent:"231000"},{value:"231004",name:"爱民区",parent:"231000"},{value:"231005",name:"西安区",parent:"231000"},{value:"231024",name:"东宁县",parent:"231000"},{value:"231025",name:"林口县",parent:"231000"},{value:"231081",name:"绥芬河市",parent:"231000"},{value:"231083",name:"海林市",parent:"231000"},{value:"231084",name:"宁安市",parent:"231000"},{value:"231085",name:"穆棱市",parent:"231000"},{value:"231086",name:"其它区",parent:"231000"},{value:"231102",name:"爱辉区",parent:"231100"},{value:"231121",name:"嫩江县",parent:"231100"},{value:"231123",name:"逊克县",parent:"231100"},{value:"231124",name:"孙吴县",parent:"231100"},{value:"231181",name:"北安市",parent:"231100"},{value:"231182",name:"五大连池市",parent:"231100"},{value:"231183",name:"其它区",parent:"231100"},{value:"231202",name:"北林区",parent:"231200"},{value:"231221",name:"望奎县",parent:"231200"},{value:"231222",name:"兰西县",parent:"231200"},{value:"231223",name:"青冈县",parent:"231200"},{value:"231224",name:"庆安县",parent:"231200"},{value:"231225",name:"明水县",parent:"231200"},{value:"231226",name:"绥棱县",parent:"231200"},{value:"231281",name:"安达市",parent:"231200"},{value:"231282",name:"肇东市",parent:"231200"},{value:"231283",name:"海伦市",parent:"231200"},{value:"231284",name:"其它区",parent:"231200"},{value:"232702",name:"松岭区",parent:"232700"},{value:"232703",name:"新林区",parent:"232700"},{value:"232704",name:"呼中区",parent:"232700"},{value:"232721",name:"呼玛县",parent:"232700"},{value:"232722",name:"塔河县",parent:"232700"},{value:"232723",name:"漠河县",parent:"232700"},{value:"232724",name:"加格达奇区",parent:"232700"},{value:"232725",name:"其它区",parent:"232700"},{value:"310101",name:"黄浦区",parent:"310100"},{value:"310103",name:"卢湾区",parent:"310100"},{value:"310104",name:"徐汇区",parent:"310100"},{value:"310105",name:"长宁区",parent:"310100"},{value:"310106",name:"静安区",parent:"310100"},{value:"310107",name:"普陀区",parent:"310100"},{value:"310108",name:"闸北区",parent:"310100"},{value:"310109",name:"虹口区",parent:"310100"},{value:"310110",name:"杨浦区",parent:"310100"},{value:"310112",name:"闵行区",parent:"310100"},{value:"310113",name:"宝山区",parent:"310100"},{value:"310114",name:"嘉定区",parent:"310100"},{value:"310115",name:"浦东新区",parent:"310100"},{value:"310116",name:"金山区",parent:"310100"},{value:"310117",name:"松江区",parent:"310100"},{value:"310118",name:"青浦区",parent:"310100"},{value:"310119",name:"南汇区",parent:"310100"},{value:"310120",name:"奉贤区",parent:"310100"},{value:"310152",name:"川沙区",parent:"310100"},{value:"310230",name:"崇明县",parent:"310100"},{value:"310231",name:"其它区",parent:"310100"},{value:"320102",name:"玄武区",parent:"320100"},{value:"320103",name:"白下区",parent:"320100"},{value:"320104",name:"秦淮区",parent:"320100"},{value:"320105",name:"建邺区",parent:"320100"},{value:"320106",name:"鼓楼区",parent:"320100"},{value:"320107",name:"下关区",parent:"320100"},{value:"320111",name:"浦口区",parent:"320100"},{value:"320113",name:"栖霞区",parent:"320100"},{value:"320114",name:"雨花台区",parent:"320100"},{value:"320115",name:"江宁区",parent:"320100"},{value:"320116",name:"六合区",parent:"320100"},{value:"320124",name:"溧水区",parent:"320100"},{value:"320125",name:"高淳区",parent:"320100"},{value:"320126",name:"其它区",parent:"320100"},{value:"320202",name:"崇安区",parent:"320200"},{value:"320203",name:"南长区",parent:"320200"},{value:"320204",name:"北塘区",parent:"320200"},{value:"320205",name:"锡山区",parent:"320200"},{value:"320206",name:"惠山区",parent:"320200"},{value:"320211",name:"滨湖区",parent:"320200"},{value:"320213",name:"梁溪区",parent:"320200"},{value:"320214",name:"新吴区",parent:"320200"},{value:"320281",name:"江阴市",parent:"320200"},{value:"320282",name:"宜兴市",parent:"320200"},{value:"320296",name:"新区",parent:"320200"},{value:"320297",name:"其它区",parent:"320200"},{value:"320302",name:"鼓楼区",parent:"320300"},{value:"320303",name:"云龙区",parent:"320300"},{value:"320304",name:"九里区",parent:"320300"},{value:"320305",name:"贾汪区",parent:"320300"},{value:"320311",name:"泉山区",parent:"320300"},{value:"320321",name:"丰县",parent:"320300"},{value:"320322",name:"沛县",parent:"320300"},{value:"320323",name:"铜山区",parent:"320300"},{value:"320324",name:"睢宁县",parent:"320300"},{value:"320381",name:"新沂市",parent:"320300"},{value:"320382",name:"邳州市",parent:"320300"},{value:"320383",name:"其它区",parent:"320300"},{value:"320402",name:"天宁区",parent:"320400"},{value:"320404",name:"钟楼区",parent:"320400"},{value:"320405",name:"戚墅堰区",parent:"320400"},{value:"320411",name:"新北区",parent:"320400"},{value:"320412",name:"武进区",parent:"320400"},{value:"320481",name:"溧阳市",parent:"320400"},{value:"320482",name:"金坛市",parent:"320400"},{value:"320483",name:"其它区",parent:"320400"},{value:"320502",name:"沧浪区",parent:"320500"},{value:"320503",name:"平江区",parent:"320500"},{value:"320504",name:"金阊区",parent:"320500"},{value:"320505",name:"虎丘区",parent:"320500"},{value:"320506",name:"吴中区",parent:"320500"},{value:"320507",name:"相城区",parent:"320500"},{value:"320508",name:"姑苏区",parent:"320500"},{value:"320581",name:"常熟市",parent:"320500"},{value:"320582",name:"张家港市",parent:"320500"},{value:"320583",name:"昆山市",parent:"320500"},{value:"320584",name:"吴江区",parent:"320500"},{value:"320585",name:"太仓市",parent:"320500"},{value:"320594",name:"新区",parent:"320500"},{value:"320595",name:"园区",parent:"320500"},{value:"320596",name:"其它区",parent:"320500"},{value:"320602",name:"崇川区",parent:"320600"},{value:"320611",name:"港闸区",parent:"320600"},{value:"320612",name:"通州区",parent:"320600"},{value:"320621",name:"海安县",parent:"320600"},{value:"320623",name:"如东县",parent:"320600"},{value:"320681",name:"启东市",parent:"320600"},{value:"320682",name:"如皋市",parent:"320600"},{value:"320683",name:"通州市",parent:"320600"},{value:"320684",name:"海门市",parent:"320600"},{value:"320693",name:"开发区",parent:"320600"},{value:"320694",name:"其它区",parent:"320600"},{value:"320703",name:"连云区",parent:"320700"},{value:"320705",name:"新浦区",parent:"320700"},{value:"320706",name:"海州区",parent:"320700"},{value:"320721",name:"赣榆区",parent:"320700"},{value:"320722",name:"东海县",parent:"320700"},{value:"320723",name:"灌云县",parent:"320700"},{value:"320724",name:"灌南县",parent:"320700"},{value:"320725",name:"其它区",parent:"320700"},{value:"320802",name:"清河区",parent:"320800"},{value:"320803",name:"淮安区",parent:"320800"},{value:"320804",name:"淮阴区",parent:"320800"},{value:"320811",name:"清浦区",parent:"320800"},{value:"320826",name:"涟水县",parent:"320800"},{value:"320829",name:"洪泽县",parent:"320800"},{value:"320830",name:"盱眙县",parent:"320800"},{value:"320831",name:"金湖县",parent:"320800"},{value:"320832",name:"其它区",parent:"320800"},{value:"320902",name:"亭湖区",parent:"320900"},{value:"320903",name:"盐都区",parent:"320900"},{value:"320921",name:"响水县",parent:"320900"},{value:"320922",name:"滨海县",parent:"320900"},{value:"320923",name:"阜宁县",parent:"320900"},{value:"320924",name:"射阳县",parent:"320900"},{value:"320925",name:"建湖县",parent:"320900"},{value:"320981",name:"东台市",parent:"320900"},{value:"320982",name:"大丰市",parent:"320900"},{value:"320983",name:"其它区",parent:"320900"},{value:"321002",name:"广陵区",parent:"321000"},{value:"321003",name:"邗江区",parent:"321000"},{value:"321011",name:"维扬区",parent:"321000"},{value:"321023",name:"宝应县",parent:"321000"},{value:"321081",name:"仪征市",parent:"321000"},{value:"321084",name:"高邮市",parent:"321000"},{value:"321088",name:"江都区",parent:"321000"},{value:"321092",name:"经济开发区",parent:"321000"},{value:"321093",name:"其它区",parent:"321000"},{value:"321102",name:"京口区",parent:"321100"},{value:"321111",name:"润州区",parent:"321100"},{value:"321112",name:"丹徒区",parent:"321100"},{value:"321181",name:"丹阳市",parent:"321100"},{value:"321182",name:"扬中市",parent:"321100"},{value:"321183",name:"句容市",parent:"321100"},{value:"321184",name:"其它区",parent:"321100"},{value:"321202",name:"海陵区",parent:"321200"},{value:"321203",name:"高港区",parent:"321200"},{value:"321281",name:"兴化市",parent:"321200"},{value:"321282",name:"靖江市",parent:"321200"},{value:"321283",name:"泰兴市",parent:"321200"},{value:"321284",name:"姜堰区",parent:"321200"},{value:"321285",name:"其它区",parent:"321200"},{value:"321302",name:"宿城区",parent:"321300"},{value:"321311",name:"宿豫区",parent:"321300"},{value:"321322",name:"沭阳县",parent:"321300"},{value:"321323",name:"泗阳县",parent:"321300"},{value:"321324",name:"泗洪县",parent:"321300"},{value:"321325",name:"其它区",parent:"321300"},{value:"330102",name:"上城区",parent:"330100"},{value:"330103",name:"下城区",parent:"330100"},{value:"330104",name:"江干区",parent:"330100"},{value:"330105",name:"拱墅区",parent:"330100"},{value:"330106",name:"西湖区",parent:"330100"},{value:"330108",name:"滨江区",parent:"330100"},{value:"330109",name:"萧山区",parent:"330100"},{value:"330110",name:"余杭区",parent:"330100"},{value:"330122",name:"桐庐县",parent:"330100"},{value:"330127",name:"淳安县",parent:"330100"},{value:"330182",name:"建德市",parent:"330100"},{value:"330183",name:"富阳区",parent:"330100"},{value:"330185",name:"临安市",parent:"330100"},{value:"330186",name:"其它区",parent:"330100"},{value:"330203",name:"海曙区",parent:"330200"},{value:"330204",name:"江东区",parent:"330200"},{value:"330205",name:"江北区",parent:"330200"},{value:"330206",name:"北仑区",parent:"330200"},{value:"330211",name:"镇海区",parent:"330200"},{value:"330212",name:"鄞州区",parent:"330200"},{value:"330225",name:"象山县",parent:"330200"},{value:"330226",name:"宁海县",parent:"330200"},{value:"330281",name:"余姚市",parent:"330200"},{value:"330282",name:"慈溪市",parent:"330200"},{value:"330283",name:"奉化市",parent:"330200"},{value:"330284",name:"其它区",parent:"330200"},{value:"330302",name:"鹿城区",parent:"330300"},{value:"330303",name:"龙湾区",parent:"330300"},{value:"330304",name:"瓯海区",parent:"330300"},{value:"330322",name:"洞头县",parent:"330300"},{value:"330324",name:"永嘉县",parent:"330300"},{value:"330326",name:"平阳县",parent:"330300"},{value:"330327",name:"苍南县",parent:"330300"},{value:"330328",name:"文成县",parent:"330300"},{value:"330329",name:"泰顺县",parent:"330300"},{value:"330381",name:"瑞安市",parent:"330300"},{value:"330382",name:"乐清市",parent:"330300"},{value:"330383",name:"其它区",parent:"330300"},{value:"330402",name:"南湖区",parent:"330400"},{value:"330411",name:"秀洲区",parent:"330400"},{value:"330421",name:"嘉善县",parent:"330400"},{value:"330424",name:"海盐县",parent:"330400"},{value:"330481",name:"海宁市",parent:"330400"},{value:"330482",name:"平湖市",parent:"330400"},{value:"330483",name:"桐乡市",parent:"330400"},{value:"330484",name:"其它区",parent:"330400"},{value:"330502",name:"吴兴区",parent:"330500"},{value:"330503",name:"南浔区",parent:"330500"},{value:"330521",name:"德清县",parent:"330500"},{value:"330522",name:"长兴县",parent:"330500"},{value:"330523",name:"安吉县",parent:"330500"},{value:"330524",name:"其它区",parent:"330500"},{value:"330602",name:"越城区",parent:"330600"},{value:"330621",name:"柯桥区",parent:"330600"},{value:"330624",name:"新昌县",parent:"330600"},{value:"330681",name:"诸暨市",parent:"330600"},{value:"330682",name:"上虞区",parent:"330600"},{value:"330683",name:"嵊州市",parent:"330600"},{value:"330684",name:"其它区",parent:"330600"},{value:"330702",name:"婺城区",parent:"330700"},{value:"330703",name:"金东区",parent:"330700"},{value:"330723",name:"武义县",parent:"330700"},{value:"330726",name:"浦江县",parent:"330700"},{value:"330727",name:"磐安县",parent:"330700"},{value:"330781",name:"兰溪市",parent:"330700"},{value:"330782",name:"义乌市",parent:"330700"},{value:"330783",name:"东阳市",parent:"330700"},{value:"330784",name:"永康市",parent:"330700"},{value:"330785",name:"其它区",parent:"330700"},{value:"330802",name:"柯城区",parent:"330800"},{value:"330803",name:"衢江区",parent:"330800"},{value:"330822",name:"常山县",parent:"330800"},{value:"330824",name:"开化县",parent:"330800"},{value:"330825",name:"龙游县",parent:"330800"},{value:"330881",name:"江山市",parent:"330800"},{value:"330882",name:"其它区",parent:"330800"},{value:"330902",name:"定海区",parent:"330900"},{value:"330903",name:"普陀区",parent:"330900"},{value:"330921",name:"岱山县",parent:"330900"},{value:"330922",name:"嵊泗县",parent:"330900"},{value:"330923",name:"其它区",parent:"330900"},{value:"331002",name:"椒江区",parent:"331000"},{value:"331003",name:"黄岩区",parent:"331000"},{value:"331004",name:"路桥区",parent:"331000"},{value:"331021",name:"玉环县",parent:"331000"},{value:"331022",name:"三门县",parent:"331000"},{value:"331023",name:"天台县",parent:"331000"},{value:"331024",name:"仙居县",parent:"331000"},{value:"331081",name:"温岭市",parent:"331000"},{value:"331082",name:"临海市",parent:"331000"},{value:"331083",name:"其它区",parent:"331000"},{value:"331102",name:"莲都区",parent:"331100"},{value:"331121",name:"青田县",parent:"331100"},{value:"331122",name:"缙云县",parent:"331100"},{value:"331123",name:"遂昌县",parent:"331100"},{value:"331124",name:"松阳县",parent:"331100"},{value:"331125",name:"云和县",parent:"331100"},{value:"331126",name:"庆元县",parent:"331100"},{value:"331127",name:"景宁畲族自治县",parent:"331100"},{value:"331181",name:"龙泉市",parent:"331100"},{value:"331182",name:"其它区",parent:"331100"},{value:"340102",name:"瑶海区",parent:"340100"},{value:"340103",name:"庐阳区",parent:"340100"},{value:"340104",name:"蜀山区",parent:"340100"},{value:"340111",name:"包河区",parent:"340100"},{value:"340121",name:"长丰县",parent:"340100"},{value:"340122",name:"肥东县",parent:"340100"},{value:"340123",name:"肥西县",parent:"340100"},{value:"340151",name:"高新区",parent:"340100"},{value:"340191",name:"中区",parent:"340100"},{value:"340192",name:"其它区",parent:"340100"},{value:"340202",name:"镜湖区",parent:"340200"},{value:"340203",name:"弋江区",parent:"340200"},{value:"340207",name:"鸠江区",parent:"340200"},{value:"340208",name:"三山区",parent:"340200"},{value:"340221",name:"芜湖县",parent:"340200"},{value:"340222",name:"繁昌县",parent:"340200"},{value:"340223",name:"南陵县",parent:"340200"},{value:"340224",name:"其它区",parent:"340200"},{value:"340302",name:"龙子湖区",parent:"340300"},{value:"340303",name:"蚌山区",parent:"340300"},{value:"340304",name:"禹会区",parent:"340300"},{value:"340311",name:"淮上区",parent:"340300"},{value:"340321",name:"怀远县",parent:"340300"},{value:"340322",name:"五河县",parent:"340300"},{value:"340323",name:"固镇县",parent:"340300"},{value:"340324",name:"其它区",parent:"340300"},{value:"340402",name:"大通区",parent:"340400"},{value:"340403",name:"田家庵区",parent:"340400"},{value:"340404",name:"谢家集区",parent:"340400"},{value:"340405",name:"八公山区",parent:"340400"},{value:"340406",name:"潘集区",parent:"340400"},{value:"340421",name:"凤台县",parent:"340400"},{value:"340422",name:"其它区",parent:"340400"},{value:"340499",name:"寿县",parent:"340400"},{value:"340502",name:"金家庄区",parent:"340500"},{value:"340503",name:"花山区",parent:"340500"},{value:"340504",name:"雨山区",parent:"340500"},{value:"340506",name:"博望区",parent:"340500"},{value:"340521",name:"当涂县",parent:"340500"},{value:"340522",name:"其它区",parent:"340500"},{value:"340602",name:"杜集区",parent:"340600"},{value:"340603",name:"相山区",parent:"340600"},{value:"340604",name:"烈山区",parent:"340600"},{value:"340621",name:"濉溪县",parent:"340600"},{value:"340622",name:"其它区",parent:"340600"},{value:"340702",name:"铜官山区",parent:"340700"},{value:"340703",name:"狮子山区",parent:"340700"},{value:"340705",name:"铜官区",parent:"340700"},{value:"340711",name:"郊区",parent:"340700"},{value:"340721",name:"铜陵县",parent:"340700"},{value:"340722",name:"其它区",parent:"340700"},{value:"340799",name:"枞阳县",parent:"340700"},{value:"340802",name:"迎江区",parent:"340800"},{value:"340803",name:"大观区",parent:"340800"},{value:"340811",name:"宜秀区",parent:"340800"},{value:"340822",name:"怀宁县",parent:"340800"},{value:"340823",name:"枞阳县",parent:"340800"},{value:"340824",name:"潜山县",parent:"340800"},{value:"340825",name:"太湖县",parent:"340800"},{value:"340826",name:"宿松县",parent:"340800"},{value:"340827",name:"望江县",parent:"340800"},{value:"340828",name:"岳西县",parent:"340800"},{value:"340881",name:"桐城市",parent:"340800"},{value:"340882",name:"其它区",parent:"340800"},{value:"341002",name:"屯溪区",parent:"341000"},{value:"341003",name:"黄山区",parent:"341000"},{value:"341004",name:"徽州区",parent:"341000"},{value:"341021",name:"歙县",parent:"341000"},{value:"341022",name:"休宁县",parent:"341000"},{value:"341023",name:"黟县",parent:"341000"},{value:"341024",name:"祁门县",parent:"341000"},{value:"341025",name:"其它区",parent:"341000"},{value:"341102",name:"琅琊区",parent:"341100"},{value:"341103",name:"南谯区",parent:"341100"},{value:"341122",name:"来安县",parent:"341100"},{value:"341124",name:"全椒县",parent:"341100"},{value:"341125",name:"定远县",parent:"341100"},{value:"341126",name:"凤阳县",parent:"341100"},{value:"341181",name:"天长市",parent:"341100"},{value:"341182",name:"明光市",parent:"341100"},{value:"341183",name:"其它区",parent:"341100"},{value:"341202",name:"颍州区",parent:"341200"},{value:"341203",name:"颍东区",parent:"341200"},{value:"341204",name:"颍泉区",parent:"341200"},{value:"341221",name:"临泉县",parent:"341200"},{value:"341222",name:"太和县",parent:"341200"},{value:"341225",name:"阜南县",parent:"341200"},{value:"341226",name:"颍上县",parent:"341200"},{value:"341282",name:"界首市",parent:"341200"},{value:"341283",name:"其它区",parent:"341200"},{value:"341302",name:"埇桥区",parent:"341300"},{value:"341321",name:"砀山县",parent:"341300"},{value:"341322",name:"萧县",parent:"341300"},{value:"341323",name:"灵璧县",parent:"341300"},{value:"341324",name:"泗县",parent:"341300"},{value:"341325",name:"其它区",parent:"341300"},{value:"341400",name:"巢湖市",parent:"340100"},{value:"341402",name:"居巢区",parent:"340100"},{value:"341421",name:"庐江县",parent:"340100"},{value:"341422",name:"无为县",parent:"340200"},{value:"341423",name:"含山县",parent:"340500"},{value:"341424",name:"和县",parent:"340500"},{value:"341502",name:"金安区",parent:"341500"},{value:"341503",name:"裕安区",parent:"341500"},{value:"341504",name:"叶集区",parent:"341500"},{value:"341521",name:"寿县",parent:"341500"},{value:"341522",name:"霍邱县",parent:"341500"},{value:"341523",name:"舒城县",parent:"341500"},{value:"341524",name:"金寨县",parent:"341500"},{value:"341525",name:"霍山县",parent:"341500"},{value:"341526",name:"其它区",parent:"341500"},{value:"341602",name:"谯城区",parent:"341600"},{value:"341621",name:"涡阳县",parent:"341600"},{value:"341622",name:"蒙城县",parent:"341600"},{value:"341623",name:"利辛县",parent:"341600"},{value:"341624",name:"其它区",parent:"341600"},{value:"341702",name:"贵池区",parent:"341700"},{value:"341721",name:"东至县",parent:"341700"},{value:"341722",name:"石台县",parent:"341700"},{value:"341723",name:"青阳县",parent:"341700"},{value:"341724",name:"其它区",parent:"341700"},{value:"341802",name:"宣州区",parent:"341800"},{value:"341821",name:"郎溪县",parent:"341800"},{value:"341822",name:"广德县",parent:"341800"},{value:"341823",name:"泾县",parent:"341800"},{value:"341824",name:"绩溪县",parent:"341800"},{value:"341825",name:"旌德县",parent:"341800"},{value:"341881",name:"宁国市",parent:"341800"},{value:"341882",name:"其它区",parent:"341800"},{value:"350102",name:"鼓楼区",parent:"350100"},{value:"350103",name:"台江区",parent:"350100"},{value:"350104",name:"仓山区",parent:"350100"},{value:"350105",name:"马尾区",parent:"350100"},{value:"350111",name:"晋安区",parent:"350100"},{value:"350121",name:"闽侯县",parent:"350100"},{value:"350122",name:"连江县",parent:"350100"},{value:"350123",name:"罗源县",parent:"350100"},{value:"350124",name:"闽清县",parent:"350100"},{value:"350125",name:"永泰县",parent:"350100"},{value:"350128",name:"平潭县",parent:"350100"},{value:"350181",name:"福清市",parent:"350100"},{value:"350182",name:"长乐市",parent:"350100"},{value:"350183",name:"其它区",parent:"350100"},{value:"350203",name:"思明区",parent:"350200"},{value:"350205",name:"海沧区",parent:"350200"},{value:"350206",name:"湖里区",parent:"350200"},{value:"350211",name:"集美区",parent:"350200"},{value:"350212",name:"同安区",parent:"350200"},{value:"350213",name:"翔安区",parent:"350200"},{value:"350214",name:"其它区",parent:"350200"},{value:"350302",name:"城厢区",parent:"350300"},{value:"350303",name:"涵江区",parent:"350300"},{value:"350304",name:"荔城区",parent:"350300"},{value:"350305",name:"秀屿区",parent:"350300"},{value:"350322",name:"仙游县",parent:"350300"},{value:"350323",name:"其它区",parent:"350300"},{value:"350402",name:"梅列区",parent:"350400"},{value:"350403",name:"三元区",parent:"350400"},{value:"350421",name:"明溪县",parent:"350400"},{value:"350423",name:"清流县",parent:"350400"},{value:"350424",name:"宁化县",parent:"350400"},{value:"350425",name:"大田县",parent:"350400"},{value:"350426",name:"尤溪县",parent:"350400"},{value:"350427",name:"沙县",parent:"350400"},{value:"350428",name:"将乐县",parent:"350400"},{value:"350429",name:"泰宁县",parent:"350400"},{value:"350430",name:"建宁县",parent:"350400"},{value:"350481",name:"永安市",parent:"350400"},{value:"350482",name:"其它区",parent:"350400"},{value:"350502",name:"鲤城区",parent:"350500"},{value:"350503",name:"丰泽区",parent:"350500"},{value:"350504",name:"洛江区",parent:"350500"},{value:"350505",name:"泉港区",parent:"350500"},{value:"350521",name:"惠安县",parent:"350500"},{value:"350524",name:"安溪县",parent:"350500"},{value:"350525",name:"永春县",parent:"350500"},{value:"350526",name:"德化县",parent:"350500"},{value:"350527",name:"金门县",parent:"350500"},{value:"350581",name:"石狮市",parent:"350500"},{value:"350582",name:"晋江市",parent:"350500"},{value:"350583",name:"南安市",parent:"350500"},{value:"350584",name:"其它区",parent:"350500"},{value:"350602",name:"芗城区",parent:"350600"},{value:"350603",name:"龙文区",parent:"350600"},{value:"350622",name:"云霄县",parent:"350600"},{value:"350623",name:"漳浦县",parent:"350600"},{value:"350624",name:"诏安县",parent:"350600"},{value:"350625",name:"长泰县",parent:"350600"},{value:"350626",name:"东山县",parent:"350600"},{value:"350627",name:"南靖县",parent:"350600"},{value:"350628",name:"平和县",parent:"350600"},{value:"350629",name:"华安县",parent:"350600"},{value:"350681",name:"龙海市",parent:"350600"},{value:"350682",name:"其它区",parent:"350600"},{value:"350702",name:"延平区",parent:"350700"},{value:"350721",name:"顺昌县",parent:"350700"},{value:"350722",name:"浦城县",parent:"350700"},{value:"350723",name:"光泽县",parent:"350700"},{value:"350724",name:"松溪县",parent:"350700"},{value:"350725",name:"政和县",parent:"350700"},{value:"350781",name:"邵武市",parent:"350700"},{value:"350782",name:"武夷山市",parent:"350700"},{value:"350783",name:"建瓯市",parent:"350700"},{value:"350784",name:"建阳区",parent:"350700"},{value:"350785",name:"其它区",parent:"350700"},{value:"350802",name:"新罗区",parent:"350800"},{value:"350821",name:"长汀县",parent:"350800"},{value:"350822",name:"永定区",parent:"350800"},{value:"350823",name:"上杭县",parent:"350800"},{value:"350824",name:"武平县",parent:"350800"},{value:"350825",name:"连城县",parent:"350800"},{value:"350881",name:"漳平市",parent:"350800"},{value:"350882",name:"其它区",parent:"350800"},{value:"350902",name:"蕉城区",parent:"350900"},{value:"350921",name:"霞浦县",parent:"350900"},{value:"350922",name:"古田县",parent:"350900"},{value:"350923",name:"屏南县",parent:"350900"},{value:"350924",name:"寿宁县",parent:"350900"},{value:"350925",name:"周宁县",parent:"350900"},{value:"350926",name:"柘荣县",parent:"350900"},{value:"350981",name:"福安市",parent:"350900"},{value:"350982",name:"福鼎市",parent:"350900"},{value:"350983",name:"其它区",parent:"350900"},{value:"360102",name:"东湖区",parent:"360100"},{value:"360103",name:"西湖区",parent:"360100"},{value:"360104",name:"青云谱区",parent:"360100"},{value:"360105",name:"湾里区",parent:"360100"},{value:"360111",name:"青山湖区",parent:"360100"},{value:"360121",name:"南昌县",parent:"360100"},{value:"360122",name:"新建县",parent:"360100"},{value:"360123",name:"安义县",parent:"360100"},{value:"360124",name:"进贤县",parent:"360100"},{value:"360125",name:"红谷滩新区",parent:"360100"},{value:"360126",name:"经济技术开发区",parent:"360100"},{value:"360127",name:"昌北区",parent:"360100"},{value:"360128",name:"其它区",parent:"360100"},{value:"360202",name:"昌江区",parent:"360200"},{value:"360203",name:"珠山区",parent:"360200"},{value:"360222",name:"浮梁县",parent:"360200"},{value:"360281",name:"乐平市",parent:"360200"},{value:"360282",name:"其它区",parent:"360200"},{value:"360302",name:"安源区",parent:"360300"},{value:"360313",name:"湘东区",parent:"360300"},{value:"360321",name:"莲花县",parent:"360300"},{value:"360322",name:"上栗县",parent:"360300"},{value:"360323",name:"芦溪县",parent:"360300"},{value:"360324",name:"其它区",parent:"360300"},{value:"360402",name:"庐山区",parent:"360400"},{value:"360403",name:"浔阳区",parent:"360400"},{value:"360421",name:"九江县",parent:"360400"},{value:"360423",name:"武宁县",parent:"360400"},{value:"360424",name:"修水县",parent:"360400"},{value:"360425",name:"永修县",parent:"360400"},{value:"360426",name:"德安县",parent:"360400"},{value:"360427",name:"星子县",parent:"360400"},{value:"360428",name:"都昌县",parent:"360400"},{value:"360429",name:"湖口县",parent:"360400"},{value:"360430",name:"彭泽县",parent:"360400"},{value:"360481",name:"瑞昌市",parent:"360400"},{value:"360482",name:"其它区",parent:"360400"},{value:"360483",name:"共青城市",parent:"360400"},{value:"360502",name:"渝水区",parent:"360500"},{value:"360521",name:"分宜县",parent:"360500"},{value:"360522",name:"其它区",parent:"360500"},{value:"360602",name:"月湖区",parent:"360600"},{value:"360622",name:"余江县",parent:"360600"},{value:"360681",name:"贵溪市",parent:"360600"},{value:"360682",name:"其它区",parent:"360600"},{value:"360702",name:"章贡区",parent:"360700"},{value:"360721",name:"赣县",parent:"360700"},{value:"360722",name:"信丰县",parent:"360700"},{value:"360723",name:"大余县",parent:"360700"},{value:"360724",name:"上犹县",parent:"360700"},{value:"360725",name:"崇义县",parent:"360700"},{value:"360726",name:"安远县",parent:"360700"},{value:"360727",name:"龙南县",parent:"360700"},{value:"360728",name:"定南县",parent:"360700"},{value:"360729",name:"全南县",parent:"360700"},{value:"360730",name:"宁都县",parent:"360700"},{value:"360731",name:"于都县",parent:"360700"},{value:"360732",name:"兴国县",parent:"360700"},{value:"360733",name:"会昌县",parent:"360700"},{value:"360734",name:"寻乌县",parent:"360700"},{value:"360735",name:"石城县",parent:"360700"},{value:"360751",name:"黄金区",parent:"360700"},{value:"360781",name:"瑞金市",parent:"360700"},{value:"360782",name:"南康区",parent:"360700"},{value:"360783",name:"其它区",parent:"360700"},{value:"360802",name:"吉州区",parent:"360800"},{value:"360803",name:"青原区",parent:"360800"},{value:"360821",name:"吉安县",parent:"360800"},{value:"360822",name:"吉水县",parent:"360800"},{value:"360823",name:"峡江县",parent:"360800"},{value:"360824",name:"新干县",parent:"360800"},{value:"360825",name:"永丰县",parent:"360800"},{value:"360826",name:"泰和县",parent:"360800"},{value:"360827",name:"遂川县",parent:"360800"},{value:"360828",name:"万安县",parent:"360800"},{value:"360829",name:"安福县",parent:"360800"},{value:"360830",name:"永新县",parent:"360800"},{value:"360881",name:"井冈山市",parent:"360800"},{value:"360882",name:"其它区",parent:"360800"},{value:"360902",name:"袁州区",parent:"360900"},{value:"360921",name:"奉新县",parent:"360900"},{value:"360922",name:"万载县",parent:"360900"},{value:"360923",name:"上高县",parent:"360900"},{value:"360924",name:"宜丰县",parent:"360900"},{value:"360925",name:"靖安县",parent:"360900"},{value:"360926",name:"铜鼓县",parent:"360900"},{value:"360981",name:"丰城市",parent:"360900"},{value:"360982",name:"樟树市",parent:"360900"},{value:"360983",name:"高安市",parent:"360900"},{value:"360984",name:"其它区",parent:"360900"},{value:"361002",name:"临川区",parent:"361000"},{value:"361021",name:"南城县",parent:"361000"},{value:"361022",name:"黎川县",parent:"361000"},{value:"361023",name:"南丰县",parent:"361000"},{value:"361024",name:"崇仁县",parent:"361000"},{value:"361025",name:"乐安县",parent:"361000"},{value:"361026",name:"宜黄县",parent:"361000"},{value:"361027",name:"金溪县",parent:"361000"},{value:"361028",name:"资溪县",parent:"361000"},{value:"361029",name:"东乡县",parent:"361000"},{value:"361030",name:"广昌县",parent:"361000"},{value:"361031",name:"其它区",parent:"361000"},{value:"361102",name:"信州区",parent:"361100"},{value:"361121",name:"上饶县",parent:"361100"},{value:"361122",name:"广丰区",parent:"361100"},{value:"361123",name:"玉山县",parent:"361100"},{value:"361124",name:"铅山县",parent:"361100"},{value:"361125",name:"横峰县",parent:"361100"},{value:"361126",name:"弋阳县",parent:"361100"},{value:"361127",name:"余干县",parent:"361100"},{value:"361128",name:"鄱阳县",parent:"361100"},{value:"361129",name:"万年县",parent:"361100"},{value:"361130",name:"婺源县",parent:"361100"},{value:"361181",name:"德兴市",parent:"361100"},{value:"361182",name:"其它区",parent:"361100"},{value:"370102",name:"历下区",parent:"370100"},{value:"370103",name:"市中区",parent:"370100"},{value:"370104",name:"槐荫区",parent:"370100"},{value:"370105",name:"天桥区",parent:"370100"},{value:"370112",name:"历城区",parent:"370100"},{value:"370113",name:"长清区",parent:"370100"},{value:"370124",name:"平阴县",parent:"370100"},{value:"370125",name:"济阳县",parent:"370100"},{value:"370126",name:"商河县",parent:"370100"},{value:"370181",name:"章丘市",parent:"370100"},{value:"370182",name:"其它区",parent:"370100"},{value:"370202",name:"市南区",parent:"370200"},{value:"370203",name:"市北区",parent:"370200"},{value:"370205",name:"四方区",parent:"370200"},{value:"370211",name:"黄岛区",parent:"370200"},{value:"370212",name:"崂山区",parent:"370200"},{value:"370213",name:"李沧区",parent:"370200"},{value:"370214",name:"城阳区",parent:"370200"},{value:"370251",name:"开发区",parent:"370200"},{value:"370281",name:"胶州市",parent:"370200"},{value:"370282",name:"即墨市",parent:"370200"},{value:"370283",name:"平度市",parent:"370200"},{value:"370284",name:"胶南市",parent:"370200"},{value:"370285",name:"莱西市",parent:"370200"},{value:"370286",name:"其它区",parent:"370200"},{value:"370302",name:"淄川区",parent:"370300"},{value:"370303",name:"张店区",parent:"370300"},{value:"370304",name:"博山区",parent:"370300"},{value:"370305",name:"临淄区",parent:"370300"},{value:"370306",name:"周村区",parent:"370300"},{value:"370321",name:"桓台县",parent:"370300"},{value:"370322",name:"高青县",parent:"370300"},{value:"370323",name:"沂源县",parent:"370300"},{value:"370324",name:"其它区",parent:"370300"},{value:"370402",name:"市中区",parent:"370400"},{value:"370403",name:"薛城区",parent:"370400"},{value:"370404",name:"峄城区",parent:"370400"},{value:"370405",name:"台儿庄区",parent:"370400"},{value:"370406",name:"山亭区",parent:"370400"},{value:"370481",name:"滕州市",parent:"370400"},{value:"370482",name:"其它区",parent:"370400"},{value:"370502",name:"东营区",parent:"370500"},{value:"370503",name:"河口区",parent:"370500"},{value:"370521",name:"垦利县",parent:"370500"},{value:"370522",name:"利津县",parent:"370500"},{value:"370523",name:"广饶县",parent:"370500"},{value:"370589",name:"西城区",parent:"370500"},{value:"370590",name:"东城区",parent:"370500"},{value:"370591",name:"其它区",parent:"370500"},{value:"370602",name:"芝罘区",parent:"370600"},{value:"370611",name:"福山区",parent:"370600"},{value:"370612",name:"牟平区",parent:"370600"},{value:"370613",name:"莱山区",parent:"370600"},{value:"370634",name:"长岛县",parent:"370600"},{value:"370681",name:"龙口市",parent:"370600"},{value:"370682",name:"莱阳市",parent:"370600"},{value:"370683",name:"莱州市",parent:"370600"},{value:"370684",name:"蓬莱市",parent:"370600"},{value:"370685",name:"招远市",parent:"370600"},{value:"370686",name:"栖霞市",parent:"370600"},{value:"370687",name:"海阳市",parent:"370600"},{value:"370688",name:"其它区",parent:"370600"},{value:"370702",name:"潍城区",parent:"370700"},{value:"370703",name:"寒亭区",parent:"370700"},{value:"370704",name:"坊子区",parent:"370700"},{value:"370705",name:"奎文区",parent:"370700"},{value:"370724",name:"临朐县",parent:"370700"},{value:"370725",name:"昌乐县",parent:"370700"},{value:"370751",name:"开发区",parent:"370700"},{value:"370781",name:"青州市",parent:"370700"},{value:"370782",name:"诸城市",parent:"370700"},{value:"370783",name:"寿光市",parent:"370700"},{value:"370784",name:"安丘市",parent:"370700"},{value:"370785",name:"高密市",parent:"370700"},{value:"370786",name:"昌邑市",parent:"370700"},{value:"370787",name:"其它区",parent:"370700"},{value:"370802",name:"市中区",parent:"370800"},{value:"370811",name:"任城区",parent:"370800"},{value:"370826",name:"微山县",parent:"370800"},{value:"370827",name:"鱼台县",parent:"370800"},{value:"370828",name:"金乡县",parent:"370800"},{value:"370829",name:"嘉祥县",parent:"370800"},{value:"370830",name:"汶上县",parent:"370800"},{value:"370831",name:"泗水县",parent:"370800"},{value:"370832",name:"梁山县",parent:"370800"},{value:"370881",name:"曲阜市",parent:"370800"},{value:"370882",name:"兖州区",parent:"370800"},{value:"370883",name:"邹城市",parent:"370800"},{value:"370884",name:"其它区",parent:"370800"},{value:"370902",name:"泰山区",parent:"370900"},{value:"370903",name:"岱岳区",parent:"370900"},{value:"370921",name:"宁阳县",parent:"370900"},{value:"370923",name:"东平县",parent:"370900"},{value:"370982",name:"新泰市",parent:"370900"},{value:"370983",name:"肥城市",parent:"370900"},{value:"370984",name:"其它区",parent:"370900"},{value:"371002",name:"环翠区",parent:"371000"},{value:"371081",name:"文登区",parent:"371000"},{value:"371082",name:"荣成市",parent:"371000"},{value:"371083",name:"乳山市",parent:"371000"},{value:"371084",name:"其它区",parent:"371000"},{value:"371102",name:"东港区",parent:"371100"},{value:"371103",name:"岚山区",parent:"371100"},{value:"371121",name:"五莲县",parent:"371100"},{value:"371122",name:"莒县",parent:"371100"},{value:"371123",name:"其它区",parent:"371100"},{value:"371202",name:"莱城区",parent:"371200"},{value:"371203",name:"钢城区",parent:"371200"},{value:"371204",name:"其它区",parent:"371200"},{value:"371302",name:"兰山区",parent:"371300"},{value:"371311",name:"罗庄区",parent:"371300"},{value:"371312",name:"河东区",parent:"371300"},{value:"371321",name:"沂南县",parent:"371300"},{value:"371322",name:"郯城县",parent:"371300"},{value:"371323",name:"沂水县",parent:"371300"},{value:"371324",name:"兰陵县",parent:"371300"},{value:"371325",name:"费县",parent:"371300"},{value:"371326",name:"平邑县",parent:"371300"},{value:"371327",name:"莒南县",parent:"371300"},{value:"371328",name:"蒙阴县",parent:"371300"},{value:"371329",name:"临沭县",parent:"371300"},{value:"371330",name:"其它区",parent:"371300"},{value:"371402",name:"德城区",parent:"371400"},{value:"371421",name:"陵城区",parent:"371400"},{value:"371422",name:"宁津县",parent:"371400"},{value:"371423",name:"庆云县",parent:"371400"},{value:"371424",name:"临邑县",parent:"371400"},{value:"371425",name:"齐河县",parent:"371400"},{value:"371426",name:"平原县",parent:"371400"},{value:"371427",name:"夏津县",parent:"371400"},{value:"371428",name:"武城县",parent:"371400"},{value:"371451",name:"开发区",parent:"371400"},{value:"371481",name:"乐陵市",parent:"371400"},{value:"371482",name:"禹城市",parent:"371400"},{value:"371483",name:"其它区",parent:"371400"},{value:"371502",name:"东昌府区",parent:"371500"},{value:"371521",name:"阳谷县",parent:"371500"},{value:"371522",name:"莘县",parent:"371500"},{value:"371523",name:"茌平县",parent:"371500"},{value:"371524",name:"东阿县",parent:"371500"},{value:"371525",name:"冠县",parent:"371500"},{value:"371526",name:"高唐县",parent:"371500"},{value:"371581",name:"临清市",parent:"371500"},{value:"371582",name:"其它区",parent:"371500"},{value:"371602",name:"滨城区",parent:"371600"},{value:"371621",name:"惠民县",parent:"371600"},{value:"371622",name:"阳信县",parent:"371600"},{value:"371623",name:"无棣县",parent:"371600"},{value:"371624",name:"沾化区",parent:"371600"},{value:"371625",name:"博兴县",parent:"371600"},{value:"371626",name:"邹平县",parent:"371600"},{value:"371627",name:"其它区",parent:"371600"},{value:"371702",name:"牡丹区",parent:"371700"},{value:"371721",name:"曹县",parent:"371700"},{value:"371722",name:"单县",parent:"371700"},{value:"371723",name:"成武县",parent:"371700"},{value:"371724",name:"巨野县",parent:"371700"},{value:"371725",name:"郓城县",parent:"371700"},{value:"371726",name:"鄄城县",parent:"371700"},{value:"371727",name:"定陶县",parent:"371700"},{value:"371728",name:"东明县",parent:"371700"},{value:"371729",name:"其它区",parent:"371700"},{value:"410102",name:"中原区",parent:"410100"},{value:"410103",name:"二七区",parent:"410100"},{value:"410104",name:"管城回族区",parent:"410100"},{value:"410105",name:"金水区",parent:"410100"},{value:"410106",name:"上街区",parent:"410100"},{value:"410108",name:"惠济区",parent:"410100"},{value:"410122",name:"中牟县",parent:"410100"},{value:"410181",name:"巩义市",parent:"410100"},{value:"410182",name:"荥阳市",parent:"410100"},{value:"410183",name:"新密市",parent:"410100"},{value:"410184",name:"新郑市",parent:"410100"},{value:"410185",name:"登封市",parent:"410100"},{value:"410186",name:"郑东新区",parent:"410100"},{value:"410187",name:"高新区",parent:"410100"},{value:"410188",name:"其它区",parent:"410100"},{value:"410202",name:"龙亭区",parent:"410200"},{value:"410203",name:"顺河回族区",parent:"410200"},{value:"410204",name:"鼓楼区",parent:"410200"},{value:"410205",name:"禹王台区",parent:"410200"},{value:"410211",name:"金明区",parent:"410200"},{value:"410221",name:"杞县",parent:"410200"},{value:"410222",name:"通许县",parent:"410200"},{value:"410223",name:"尉氏县",parent:"410200"},{value:"410224",name:"祥符区",parent:"410200"},{value:"410225",name:"兰考县",parent:"410200"},{value:"410226",name:"其它区",parent:"410200"},{value:"410302",name:"老城区",parent:"410300"},{value:"410303",name:"西工区",parent:"410300"},{value:"410304",name:"瀍河回族区",parent:"410300"},{value:"410305",name:"涧西区",parent:"410300"},{value:"410306",name:"吉利区",parent:"410300"},{value:"410307",name:"洛龙区",parent:"410300"},{value:"410322",name:"孟津县",parent:"410300"},{value:"410323",name:"新安县",parent:"410300"},{value:"410324",name:"栾川县",parent:"410300"},{value:"410325",name:"嵩县",parent:"410300"},{value:"410326",name:"汝阳县",parent:"410300"},{value:"410327",name:"宜阳县",parent:"410300"},{value:"410328",name:"洛宁县",parent:"410300"},{value:"410329",name:"伊川县",parent:"410300"},{value:"410381",name:"偃师市",parent:"410300"},{value:"410402",name:"新华区",parent:"410400"},{value:"410403",name:"卫东区",parent:"410400"},{value:"410404",name:"石龙区",parent:"410400"},{value:"410411",name:"湛河区",parent:"410400"},{value:"410421",name:"宝丰县",parent:"410400"},{value:"410422",name:"叶县",parent:"410400"},{value:"410423",name:"鲁山县",parent:"410400"},{value:"410425",name:"郏县",parent:"410400"},{value:"410481",name:"舞钢市",parent:"410400"},{value:"410482",name:"汝州市",parent:"410400"},{value:"410483",name:"其它区",parent:"410400"},{value:"410502",name:"文峰区",parent:"410500"},{value:"410503",name:"北关区",parent:"410500"},{value:"410505",name:"殷都区",parent:"410500"},{value:"410506",name:"龙安区",parent:"410500"},{value:"410522",name:"安阳县",parent:"410500"},{value:"410523",name:"汤阴县",parent:"410500"},{value:"410526",name:"滑县",parent:"410500"},{value:"410527",name:"内黄县",parent:"410500"},{value:"410581",name:"林州市",parent:"410500"},{value:"410582",name:"其它区",parent:"410500"},{value:"410602",name:"鹤山区",parent:"410600"},{value:"410603",name:"山城区",parent:"410600"},{value:"410611",name:"淇滨区",parent:"410600"},{value:"410621",name:"浚县",parent:"410600"},{value:"410622",name:"淇县",parent:"410600"},{value:"410623",name:"其它区",parent:"410600"},{value:"410702",name:"红旗区",parent:"410700"},{value:"410703",name:"卫滨区",parent:"410700"},{value:"410704",name:"凤泉区",parent:"410700"},{value:"410711",name:"牧野区",parent:"410700"},{value:"410721",name:"新乡县",parent:"410700"},{value:"410724",name:"获嘉县",parent:"410700"},{value:"410725",name:"原阳县",parent:"410700"},{value:"410726",name:"延津县",parent:"410700"},{value:"410727",name:"封丘县",parent:"410700"},{value:"410728",name:"长垣县",parent:"410700"},{value:"410781",name:"卫辉市",parent:"410700"},{value:"410782",name:"辉县市",parent:"410700"},{value:"410783",name:"其它区",parent:"410700"},{value:"410802",name:"解放区",parent:"410800"},{value:"410803",name:"中站区",parent:"410800"},{value:"410804",name:"马村区",parent:"410800"},{value:"410811",name:"山阳区",parent:"410800"},{value:"410821",name:"修武县",parent:"410800"},{value:"410822",name:"博爱县",parent:"410800"},{value:"410823",name:"武陟县",parent:"410800"},{value:"410825",name:"温县",parent:"410800"},{value:"410881",name:"济源市",parent:"410000"},{value:"410882",name:"沁阳市",parent:"410800"},{value:"410883",name:"孟州市",parent:"410800"},{value:"410884",name:"其它区",parent:"410800"},{value:"410902",name:"华龙区",parent:"410900"},{value:"410922",name:"清丰县",parent:"410900"},{value:"410923",name:"南乐县",parent:"410900"},{value:"410926",name:"范县",parent:"410900"},{value:"410927",name:"台前县",parent:"410900"},{value:"410928",name:"濮阳县",parent:"410900"},{value:"410929",name:"其它区",parent:"410900"},{value:"411002",name:"魏都区",parent:"411000"},{value:"411023",name:"许昌县",parent:"411000"},{value:"411024",name:"鄢陵县",parent:"411000"},{value:"411025",name:"襄城县",parent:"411000"},{value:"411081",name:"禹州市",parent:"411000"},{value:"411082",name:"长葛市",parent:"411000"},{value:"411083",name:"其它区",parent:"411000"},{value:"411102",name:"源汇区",parent:"411100"},{value:"411103",name:"郾城区",parent:"411100"},{value:"411104",name:"召陵区",parent:"411100"},{value:"411121",name:"舞阳县",parent:"411100"},{value:"411122",name:"临颍县",parent:"411100"},{value:"411123",name:"其它区",parent:"411100"},{value:"411202",name:"湖滨区",parent:"411200"},{value:"411221",name:"渑池县",parent:"411200"},{value:"411222",name:"陕州区",parent:"411200"},{value:"411224",name:"卢氏县",parent:"411200"},{value:"411281",name:"义马市",parent:"411200"},{value:"411282",name:"灵宝市",parent:"411200"},{value:"411283",name:"其它区",parent:"411200"},{value:"411302",name:"宛城区",parent:"411300"},{value:"411303",name:"卧龙区",parent:"411300"},{value:"411321",name:"南召县",parent:"411300"},{value:"411322",name:"方城县",parent:"411300"},{value:"411323",name:"西峡县",parent:"411300"},{value:"411324",name:"镇平县",parent:"411300"},{value:"411325",name:"内乡县",parent:"411300"},{value:"411326",name:"淅川县",parent:"411300"},{value:"411327",name:"社旗县",parent:"411300"},{value:"411328",name:"唐河县",parent:"411300"},{value:"411329",name:"新野县",parent:"411300"},{value:"411330",name:"桐柏县",parent:"411300"},{value:"411381",name:"邓州市",parent:"411300"},{value:"411382",name:"其它区",parent:"411300"},{value:"411402",name:"梁园区",parent:"411400"},{value:"411403",name:"睢阳区",parent:"411400"},{value:"411421",name:"民权县",parent:"411400"},{value:"411422",name:"睢县",parent:"411400"},{value:"411423",name:"宁陵县",parent:"411400"},{value:"411424",name:"柘城县",parent:"411400"},{value:"411425",name:"虞城县",parent:"411400"},{value:"411426",name:"夏邑县",parent:"411400"},{value:"411481",name:"永城市",parent:"411400"},{value:"411482",name:"其它区",parent:"411400"},{value:"411502",name:"浉河区",parent:"411500"},{value:"411503",name:"平桥区",parent:"411500"},{value:"411521",name:"罗山县",parent:"411500"},{value:"411522",name:"光山县",parent:"411500"},{value:"411523",name:"新县",parent:"411500"},{value:"411524",name:"商城县",parent:"411500"},{value:"411525",name:"固始县",parent:"411500"},{value:"411526",name:"潢川县",parent:"411500"},{value:"411527",name:"淮滨县",parent:"411500"},{value:"411528",name:"息县",parent:"411500"},{value:"411529",name:"其它区",parent:"411500"},{value:"411602",name:"川汇区",parent:"411600"},{value:"411621",name:"扶沟县",parent:"411600"},{value:"411622",name:"西华县",parent:"411600"},{value:"411623",name:"商水县",parent:"411600"},{value:"411624",name:"沈丘县",parent:"411600"},{value:"411625",name:"郸城县",parent:"411600"},{value:"411626",name:"淮阳县",parent:"411600"},{value:"411627",name:"太康县",parent:"411600"},{value:"411628",name:"鹿邑县",parent:"411600"},{value:"411681",name:"项城市",parent:"411600"},{value:"411682",name:"其它区",parent:"411600"},{value:"411702",name:"驿城区",parent:"411700"},{value:"411721",name:"西平县",parent:"411700"},{value:"411722",name:"上蔡县",parent:"411700"},{value:"411723",name:"平舆县",parent:"411700"},{value:"411724",name:"正阳县",parent:"411700"},{value:"411725",name:"确山县",parent:"411700"},{value:"411726",name:"泌阳县",parent:"411700"},{value:"411727",name:"汝南县",parent:"411700"},{value:"411728",name:"遂平县",parent:"411700"},{value:"411729",name:"新蔡县",parent:"411700"},{value:"411730",name:"其它区",parent:"411700"},{value:"420102",name:"江岸区",parent:"420100"},{value:"420103",name:"江汉区",parent:"420100"},{value:"420104",name:"硚口区",parent:"420100"},{value:"420105",name:"汉阳区",parent:"420100"},{value:"420106",name:"武昌区",parent:"420100"},{value:"420107",name:"青山区",parent:"420100"},{value:"420111",name:"洪山区",parent:"420100"},{value:"420112",name:"东西湖区",parent:"420100"},{value:"420113",name:"汉南区",parent:"420100"},{value:"420114",name:"蔡甸区",parent:"420100"},{value:"420115",name:"江夏区",parent:"420100"},{value:"420116",name:"黄陂区",parent:"420100"},{value:"420117",name:"新洲区",parent:"420100"},{value:"420118",name:"其它区",parent:"420100"},{value:"420202",name:"黄石港区",parent:"420200"},{value:"420203",name:"西塞山区",parent:"420200"},{value:"420204",name:"下陆区",parent:"420200"},{value:"420205",name:"铁山区",parent:"420200"},{value:"420222",name:"阳新县",parent:"420200"},{value:"420281",name:"大冶市",parent:"420200"},{value:"420282",name:"其它区",parent:"420200"},{value:"420302",name:"茅箭区",parent:"420300"},{value:"420303",name:"张湾区",parent:"420300"},{value:"420321",name:"郧阳区",parent:"420300"},{value:"420322",name:"郧西县",parent:"420300"},{value:"420323",name:"竹山县",parent:"420300"},{value:"420324",name:"竹溪县",parent:"420300"},{value:"420325",name:"房县",parent:"420300"},{value:"420381",name:"丹江口市",parent:"420300"},{value:"420382",name:"城区",parent:"420300"},{value:"420383",name:"其它区",parent:"420300"},{value:"420502",name:"西陵区",parent:"420500"},{value:"420503",name:"伍家岗区",parent:"420500"},{value:"420504",name:"点军区",parent:"420500"},{value:"420505",name:"猇亭区",parent:"420500"},{value:"420506",name:"夷陵区",parent:"420500"},{value:"420525",name:"远安县",parent:"420500"},{value:"420526",name:"兴山县",parent:"420500"},{value:"420527",name:"秭归县",parent:"420500"},{value:"420528",name:"长阳土家族自治县",parent:"420500"},{value:"420529",name:"五峰土家族自治县",parent:"420500"},{value:"420551",name:"葛洲坝区",parent:"420500"},{value:"420552",name:"开发区",parent:"420500"},{value:"420581",name:"宜都市",parent:"420500"},{value:"420582",name:"当阳市",parent:"420500"},{value:"420583",name:"枝江市",parent:"420500"},{value:"420584",name:"其它区",parent:"420500"},{value:"420602",name:"襄城区",parent:"420600"},{value:"420606",name:"樊城区",parent:"420600"},{value:"420607",name:"襄州区",parent:"420600"},{value:"420624",name:"南漳县",parent:"420600"},{value:"420625",name:"谷城县",parent:"420600"},{value:"420626",name:"保康县",parent:"420600"},{value:"420682",name:"老河口市",parent:"420600"},{value:"420683",name:"枣阳市",parent:"420600"},{value:"420684",name:"宜城市",parent:"420600"},{value:"420685",name:"其它区",parent:"420600"},{value:"420702",name:"梁子湖区",parent:"420700"},{value:"420703",name:"华容区",parent:"420700"},{value:"420704",name:"鄂城区",parent:"420700"},{value:"420705",name:"其它区",parent:"420700"},{value:"420802",name:"东宝区",parent:"420800"},{value:"420804",name:"掇刀区",parent:"420800"},{value:"420821",name:"京山县",parent:"420800"},{value:"420822",name:"沙洋县",parent:"420800"},{value:"420881",name:"钟祥市",parent:"420800"},{value:"420882",name:"其它区",parent:"420800"},{value:"420902",name:"孝南区",parent:"420900"},{value:"420921",name:"孝昌县",parent:"420900"},{value:"420922",name:"大悟县",parent:"420900"},{value:"420923",name:"云梦县",parent:"420900"},{value:"420981",name:"应城市",parent:"420900"},{value:"420982",name:"安陆市",parent:"420900"},{value:"420984",name:"汉川市",parent:"420900"},{value:"420985",name:"其它区",parent:"420900"},{value:"421002",name:"沙市区",parent:"421000"},{value:"421003",name:"荆州区",parent:"421000"},{value:"421022",name:"公安县",parent:"421000"},{value:"421023",name:"监利县",parent:"421000"},{value:"421024",name:"江陵县",parent:"421000"},{value:"421081",name:"石首市",parent:"421000"},{value:"421083",name:"洪湖市",parent:"421000"},{value:"421087",name:"松滋市",parent:"421000"},{value:"421088",name:"其它区",parent:"421000"},{value:"421102",name:"黄州区",parent:"421100"},{value:"421121",name:"团风县",parent:"421100"},{value:"421122",name:"红安县",parent:"421100"},{value:"421123",name:"罗田县",parent:"421100"},{value:"421124",name:"英山县",parent:"421100"},{value:"421125",name:"浠水县",parent:"421100"},{value:"421126",name:"蕲春县",parent:"421100"},{value:"421127",name:"黄梅县",parent:"421100"},{value:"421181",name:"麻城市",parent:"421100"},{value:"421182",name:"武穴市",parent:"421100"},{value:"421183",name:"其它区",parent:"421100"},{value:"421202",name:"咸安区",parent:"421200"},{value:"421221",name:"嘉鱼县",parent:"421200"},{value:"421222",name:"通城县",parent:"421200"},{value:"421223",name:"崇阳县",parent:"421200"},{value:"421224",name:"通山县",parent:"421200"},{value:"421281",name:"赤壁市",parent:"421200"},{value:"421282",name:"温泉城区",parent:"421200"},{value:"421283",name:"其它区",parent:"421200"},{value:"421302",name:"曾都区",parent:"421300"},{value:"421321",name:"随县",parent:"421300"},{value:"421381",name:"广水市",parent:"421300"},{value:"421382",name:"其它区",parent:"421300"},{value:"422801",name:"恩施市",parent:"422800"},{value:"422802",name:"利川市",parent:"422800"},{value:"422822",name:"建始县",parent:"422800"},{value:"422823",name:"巴东县",parent:"422800"},{value:"422825",name:"宣恩县",parent:"422800"},{value:"422826",name:"咸丰县",parent:"422800"},{value:"422827",name:"来凤县",parent:"422800"},{value:"422828",name:"鹤峰县",parent:"422800"},{value:"422829",name:"其它区",parent:"422800"},{value:"429004",name:"仙桃市",parent:"420000"},{value:"429005",name:"潜江市",parent:"420000"},{value:"429006",name:"天门市",parent:"420000"},{value:"429021",name:"神农架林区",parent:"420000"},{value:"430102",name:"芙蓉区",parent:"430100"},{value:"430103",name:"天心区",parent:"430100"},{value:"430104",name:"岳麓区",parent:"430100"},{value:"430105",name:"开福区",parent:"430100"},{value:"430111",name:"雨花区",parent:"430100"},{value:"430121",name:"长沙县",parent:"430100"},{value:"430122",name:"望城区",parent:"430100"},{value:"430124",name:"宁乡县",parent:"430100"},{value:"430181",name:"浏阳市",parent:"430100"},{value:"430182",name:"其它区",parent:"430100"},{value:"430202",name:"荷塘区",parent:"430200"},{value:"430203",name:"芦淞区",parent:"430200"},{value:"430204",name:"石峰区",parent:"430200"},{value:"430211",name:"天元区",parent:"430200"},{value:"430221",name:"株洲县",parent:"430200"},{value:"430223",name:"攸县",parent:"430200"},{value:"430224",name:"茶陵县",parent:"430200"},{value:"430225",name:"炎陵县",parent:"430200"},{value:"430281",name:"醴陵市",parent:"430200"},{value:"430282",name:"其它区",parent:"430200"},{value:"430302",name:"雨湖区",parent:"430300"},{value:"430304",name:"岳塘区",parent:"430300"},{value:"430321",name:"湘潭县",parent:"430300"},{value:"430381",name:"湘乡市",parent:"430300"},{value:"430382",name:"韶山市",parent:"430300"},{value:"430383",name:"其它区",parent:"430300"},{value:"430405",name:"珠晖区",parent:"430400"},{value:"430406",name:"雁峰区",parent:"430400"},{value:"430407",name:"石鼓区",parent:"430400"},{value:"430408",name:"蒸湘区",parent:"430400"},{value:"430412",name:"南岳区",parent:"430400"},{value:"430421",name:"衡阳县",parent:"430400"},{value:"430422",name:"衡南县",parent:"430400"},{value:"430423",name:"衡山县",parent:"430400"},{value:"430424",name:"衡东县",parent:"430400"},{value:"430426",name:"祁东县",parent:"430400"},{value:"430481",name:"耒阳市",parent:"430400"},{value:"430482",name:"常宁市",parent:"430400"},{value:"430483",name:"其它区",parent:"430400"},{value:"430502",name:"双清区",parent:"430500"},{value:"430503",name:"大祥区",parent:"430500"},{value:"430511",name:"北塔区",parent:"430500"},{value:"430521",name:"邵东县",parent:"430500"},{value:"430522",name:"新邵县",parent:"430500"},{value:"430523",name:"邵阳县",parent:"430500"},{value:"430524",name:"隆回县",parent:"430500"},{value:"430525",name:"洞口县",parent:"430500"},{value:"430527",name:"绥宁县",parent:"430500"},{value:"430528",name:"新宁县",parent:"430500"},{value:"430529",name:"城步苗族自治县",parent:"430500"},{value:"430581",name:"武冈市",parent:"430500"},{value:"430582",name:"其它区",parent:"430500"},{value:"430602",name:"岳阳楼区",parent:"430600"},{value:"430603",name:"云溪区",parent:"430600"},{value:"430611",name:"君山区",parent:"430600"},{value:"430621",name:"岳阳县",parent:"430600"},{value:"430623",name:"华容县",parent:"430600"},{value:"430624",name:"湘阴县",parent:"430600"},{value:"430626",name:"平江县",parent:"430600"},{value:"430681",name:"汨罗市",parent:"430600"},{value:"430682",name:"临湘市",parent:"430600"},{value:"430683",name:"其它区",parent:"430600"},{value:"430702",name:"武陵区",parent:"430700"},{value:"430703",name:"鼎城区",parent:"430700"},{value:"430721",name:"安乡县",parent:"430700"},{value:"430722",name:"汉寿县",parent:"430700"},{value:"430723",name:"澧县",parent:"430700"},{value:"430724",name:"临澧县",parent:"430700"},{value:"430725",name:"桃源县",parent:"430700"},{value:"430726",name:"石门县",parent:"430700"},{value:"430781",name:"津市市",parent:"430700"},{value:"430782",name:"其它区",parent:"430700"},{value:"430802",name:"永定区",parent:"430800"},{value:"430811",name:"武陵源区",parent:"430800"},{value:"430821",name:"慈利县",parent:"430800"},{value:"430822",name:"桑植县",parent:"430800"},{value:"430823",name:"其它区",parent:"430800"},{value:"430902",name:"资阳区",parent:"430900"},{value:"430903",name:"赫山区",parent:"430900"},{value:"430921",name:"南县",parent:"430900"},{value:"430922",name:"桃江县",parent:"430900"},{value:"430923",name:"安化县",parent:"430900"},{value:"430981",name:"沅江市",parent:"430900"},{value:"430982",name:"其它区",parent:"430900"},{value:"431002",name:"北湖区",parent:"431000"},{value:"431003",name:"苏仙区",parent:"431000"},{value:"431021",name:"桂阳县",parent:"431000"},{value:"431022",name:"宜章县",parent:"431000"},{value:"431023",name:"永兴县",parent:"431000"},{value:"431024",name:"嘉禾县",parent:"431000"},{value:"431025",name:"临武县",parent:"431000"},{value:"431026",name:"汝城县",parent:"431000"},{value:"431027",name:"桂东县",parent:"431000"},{value:"431028",name:"安仁县",parent:"431000"},{value:"431081",name:"资兴市",parent:"431000"},{value:"431082",name:"其它区",parent:"431000"},{value:"431102",name:"零陵区",parent:"431100"},{value:"431103",name:"冷水滩区",parent:"431100"},{value:"431121",name:"祁阳县",parent:"431100"},{value:"431122",name:"东安县",parent:"431100"},{value:"431123",name:"双牌县",parent:"431100"},{value:"431124",name:"道县",parent:"431100"},{value:"431125",name:"江永县",parent:"431100"},{value:"431126",name:"宁远县",parent:"431100"},{value:"431127",name:"蓝山县",parent:"431100"},{value:"431128",name:"新田县",parent:"431100"},{value:"431129",name:"江华瑶族自治县",parent:"431100"},{value:"431130",name:"其它区",parent:"431100"},{value:"431202",name:"鹤城区",parent:"431200"},{value:"431221",name:"中方县",parent:"431200"},{value:"431222",name:"沅陵县",parent:"431200"},{value:"431223",name:"辰溪县",parent:"431200"},{value:"431224",name:"溆浦县",parent:"431200"},{value:"431225",name:"会同县",parent:"431200"},{value:"431226",name:"麻阳苗族自治县",parent:"431200"},{value:"431227",name:"新晃侗族自治县",parent:"431200"},{value:"431228",name:"芷江侗族自治县",parent:"431200"},{value:"431229",name:"靖州苗族侗族自治县",parent:"431200"},{value:"431230",name:"通道侗族自治县",parent:"431200"},{value:"431281",name:"洪江市",parent:"431200"},{value:"431282",name:"其它区",parent:"431200"},{value:"431302",name:"娄星区",parent:"431300"},{value:"431321",name:"双峰县",parent:"431300"},{value:"431322",name:"新化县",parent:"431300"},{value:"431381",name:"冷水江市",parent:"431300"},{value:"431382",name:"涟源市",parent:"431300"},{value:"431383",name:"其它区",parent:"431300"},{value:"433101",name:"吉首市",parent:"433100"},{value:"433122",name:"泸溪县",parent:"433100"},{value:"433123",name:"凤凰县",parent:"433100"},{value:"433124",name:"花垣县",parent:"433100"},{value:"433125",name:"保靖县",parent:"433100"},{value:"433126",name:"古丈县",parent:"433100"},{value:"433127",name:"永顺县",parent:"433100"},{value:"433130",name:"龙山县",parent:"433100"},{value:"433131",name:"其它区",parent:"433100"},{value:"440103",name:"荔湾区",parent:"440100"},{value:"440104",name:"越秀区",parent:"440100"},{value:"440105",name:"海珠区",parent:"440100"},{value:"440106",name:"天河区",parent:"440100"},{value:"440111",name:"白云区",parent:"440100"},{value:"440112",name:"黄埔区",parent:"440100"},{value:"440113",name:"番禺区",parent:"440100"},{value:"440114",name:"花都区",parent:"440100"},{value:"440115",name:"南沙区",parent:"440100"},{value:"440116",name:"萝岗区",parent:"440100"},{value:"440183",name:"增城区",parent:"440100"},{value:"440184",name:"从化区",parent:"440100"},{value:"440188",name:"东山区",parent:"440100"},{value:"440189",name:"其它区",parent:"440100"},{value:"440203",name:"武江区",parent:"440200"},{value:"440204",name:"浈江区",parent:"440200"},{value:"440205",name:"曲江区",parent:"440200"},{value:"440222",name:"始兴县",parent:"440200"},{value:"440224",name:"仁化县",parent:"440200"},{value:"440229",name:"翁源县",parent:"440200"},{value:"440232",name:"乳源瑶族自治县",parent:"440200"},{value:"440233",name:"新丰县",parent:"440200"},{value:"440281",name:"乐昌市",parent:"440200"},{value:"440282",name:"南雄市",parent:"440200"},{value:"440283",name:"其它区",parent:"440200"},{value:"440303",name:"罗湖区",parent:"440300"},{value:"440304",name:"福田区",parent:"440300"},{value:"440305",name:"南山区",parent:"440300"},{value:"440306",name:"宝安区",parent:"440300"},{value:"440307",name:"龙岗区",parent:"440300"},{value:"440308",name:"盐田区",parent:"440300"},{value:"440309",name:"其它区",parent:"440300"},{value:"440320",name:"光明新区",parent:"440300"},{value:"440321",name:"坪山新区",parent:"440300"},{value:"440322",name:"大鹏新区",parent:"440300"},{value:"440323",name:"龙华新区",parent:"440300"},{value:"440402",name:"香洲区",parent:"440400"},{value:"440403",name:"斗门区",parent:"440400"},{value:"440404",name:"金湾区",parent:"440400"},{value:"440486",name:"金唐区",parent:"440400"},{value:"440487",name:"南湾区",parent:"440400"},{value:"440488",name:"其它区",parent:"440400"},{value:"440507",name:"龙湖区",parent:"440500"},{value:"440511",name:"金平区",parent:"440500"},{value:"440512",name:"濠江区",parent:"440500"},{value:"440513",name:"潮阳区",parent:"440500"},{value:"440514",name:"潮南区",parent:"440500"},{value:"440515",name:"澄海区",parent:"440500"},{value:"440523",name:"南澳县",parent:"440500"},{value:"440524",name:"其它区",parent:"440500"},{value:"440604",name:"禅城区",parent:"440600"},{value:"440605",name:"南海区",parent:"440600"},{value:"440606",name:"顺德区",parent:"440600"},{value:"440607",name:"三水区",parent:"440600"},{value:"440608",name:"高明区",parent:"440600"},{value:"440609",name:"其它区",parent:"440600"},{value:"440703",name:"蓬江区",parent:"440700"},{value:"440704",name:"江海区",parent:"440700"},{value:"440705",name:"新会区",parent:"440700"},{value:"440781",name:"台山市",parent:"440700"},{value:"440783",name:"开平市",parent:"440700"},{value:"440784",name:"鹤山市",parent:"440700"},{value:"440785",name:"恩平市",parent:"440700"},{value:"440786",name:"其它区",parent:"440700"},{value:"440802",name:"赤坎区",parent:"440800"},{value:"440803",name:"霞山区",parent:"440800"},{value:"440804",name:"坡头区",parent:"440800"},{value:"440811",name:"麻章区",parent:"440800"},{value:"440823",name:"遂溪县",parent:"440800"},{value:"440825",name:"徐闻县",parent:"440800"},{value:"440881",name:"廉江市",parent:"440800"},{value:"440882",name:"雷州市",parent:"440800"},{value:"440883",name:"吴川市",parent:"440800"},{value:"440884",name:"其它区",parent:"440800"},{value:"440902",name:"茂南区",parent:"440900"},{value:"440903",name:"电白区",parent:"440900"},{value:"440923",name:"电白县",parent:"440900"},{value:"440981",name:"高州市",parent:"440900"},{value:"440982",name:"化州市",parent:"440900"},{value:"440983",name:"信宜市",parent:"440900"},{value:"440984",name:"其它区",parent:"440900"},{value:"441202",name:"端州区",parent:"441200"},{value:"441203",name:"鼎湖区",parent:"441200"},{value:"441223",name:"广宁县",parent:"441200"},{value:"441224",name:"怀集县",parent:"441200"},{value:"441225",name:"封开县",parent:"441200"},{value:"441226",name:"德庆县",parent:"441200"},{value:"441283",name:"高要市",parent:"441200"},{value:"441284",name:"四会市",parent:"441200"},{value:"441285",name:"其它区",parent:"441200"},{value:"441302",name:"惠城区",parent:"441300"},{value:"441303",name:"惠阳区",parent:"441300"},{value:"441322",name:"博罗县",parent:"441300"},{value:"441323",name:"惠东县",parent:"441300"},{value:"441324",name:"龙门县",parent:"441300"},{value:"441325",name:"其它区",parent:"441300"},{value:"441402",name:"梅江区",parent:"441400"},{value:"441421",name:"梅县区",parent:"441400"},{value:"441422",name:"大埔县",parent:"441400"},{value:"441423",name:"丰顺县",parent:"441400"},{value:"441424",name:"五华县",parent:"441400"},{value:"441426",name:"平远县",parent:"441400"},{value:"441427",name:"蕉岭县",parent:"441400"},{value:"441481",name:"兴宁市",parent:"441400"},{value:"441482",name:"其它区",parent:"441400"},{value:"441502",name:"城区",parent:"441500"},{value:"441521",name:"海丰县",parent:"441500"},{value:"441523",name:"陆河县",parent:"441500"},{value:"441581",name:"陆丰市",parent:"441500"},{value:"441582",name:"其它区",parent:"441500"},{value:"441602",name:"源城区",parent:"441600"},{value:"441621",name:"紫金县",parent:"441600"},{value:"441622",name:"龙川县",parent:"441600"},{value:"441623",name:"连平县",parent:"441600"},{value:"441624",name:"和平县",parent:"441600"},{value:"441625",name:"东源县",parent:"441600"},{value:"441626",name:"其它区",parent:"441600"},{value:"441702",name:"江城区",parent:"441700"},{value:"441721",name:"阳西县",parent:"441700"},{value:"441723",name:"阳东区",parent:"441700"},{value:"441781",name:"阳春市",parent:"441700"},{value:"441782",name:"其它区",parent:"441700"},{value:"441802",name:"清城区",parent:"441800"},{value:"441821",name:"佛冈县",parent:"441800"},{value:"441823",name:"阳山县",parent:"441800"},{value:"441825",name:"连山壮族瑶族自治县",parent:"441800"},{value:"441826",name:"连南瑶族自治县",parent:"441800"},{value:"441827",name:"清新区",parent:"441800"},{value:"441881",name:"英德市",parent:"441800"},{value:"441882",name:"连州市",parent:"441800"},{value:"441883",name:"其它区",parent:"441800"},{value:"445102",name:"湘桥区",parent:"445100"},{value:"445121",name:"潮安区",parent:"445100"},{value:"445122",name:"饶平县",parent:"445100"},{value:"445185",name:"枫溪区",parent:"445100"},{value:"445186",name:"其它区",parent:"445100"},{value:"445202",name:"榕城区",parent:"445200"},{value:"445221",name:"揭东区",parent:"445200"},{value:"445222",name:"揭西县",parent:"445200"},{value:"445224",name:"惠来县",parent:"445200"},{value:"445281",name:"普宁市",parent:"445200"},{value:"445284",name:"东山区",parent:"445200"},{value:"445285",name:"其它区",parent:"445200"},{value:"445302",name:"云城区",parent:"445300"},{value:"445321",name:"新兴县",parent:"445300"},{value:"445322",name:"郁南县",parent:"445300"},{value:"445323",name:"云安区",parent:"445300"},{value:"445381",name:"罗定市",parent:"445300"},{value:"445382",name:"其它区",parent:"445300"},{value:"450102",name:"兴宁区",parent:"450100"},{value:"450103",name:"青秀区",parent:"450100"},{value:"450105",name:"江南区",parent:"450100"},{value:"450107",name:"西乡塘区",parent:"450100"},{value:"450108",name:"良庆区",parent:"450100"},{value:"450109",name:"邕宁区",parent:"450100"},{value:"450122",name:"武鸣区",parent:"450100"},{value:"450123",name:"隆安县",parent:"450100"},{value:"450124",name:"马山县",parent:"450100"},{value:"450125",name:"上林县",parent:"450100"},{value:"450126",name:"宾阳县",parent:"450100"},{value:"450127",name:"横县",parent:"450100"},{value:"450128",name:"其它区",parent:"450100"},{value:"450202",name:"城中区",parent:"450200"},{value:"450203",name:"鱼峰区",parent:"450200"},{value:"450204",name:"柳南区",parent:"450200"},{value:"450205",name:"柳北区",parent:"450200"},{value:"450221",name:"柳江县",parent:"450200"},{value:"450222",name:"柳城县",parent:"450200"},{value:"450223",name:"鹿寨县",parent:"450200"},{value:"450224",name:"融安县",parent:"450200"},{value:"450225",name:"融水苗族自治县",parent:"450200"},{value:"450226",name:"三江侗族自治县",parent:"450200"},{value:"450227",name:"其它区",parent:"450200"},{value:"450302",name:"秀峰区",parent:"450300"},{value:"450303",name:"叠彩区",parent:"450300"},{value:"450304",name:"象山区",parent:"450300"},{value:"450305",name:"七星区",parent:"450300"},{value:"450311",name:"雁山区",parent:"450300"},{value:"450321",name:"阳朔县",parent:"450300"},{value:"450322",name:"临桂区",parent:"450300"},{value:"450323",name:"灵川县",parent:"450300"},{value:"450324",name:"全州县",parent:"450300"},{value:"450325",name:"兴安县",parent:"450300"},{value:"450326",name:"永福县",parent:"450300"},{value:"450327",name:"灌阳县",parent:"450300"},{value:"450328",name:"龙胜各族自治县",parent:"450300"},{value:"450329",name:"资源县",parent:"450300"},{value:"450330",name:"平乐县",parent:"450300"},{value:"450331",name:"荔浦县",parent:"450300"},{value:"450332",name:"恭城瑶族自治县",parent:"450300"},{value:"450333",name:"其它区",parent:"450300"},{value:"450403",name:"万秀区",parent:"450400"},{value:"450404",name:"蝶山区",parent:"450400"},{value:"450405",name:"长洲区",parent:"450400"},{value:"450406",name:"龙圩区",parent:"450400"},{value:"450421",name:"苍梧县",parent:"450400"},{value:"450422",name:"藤县",parent:"450400"},{value:"450423",name:"蒙山县",parent:"450400"},{value:"450481",name:"岑溪市",parent:"450400"},{value:"450482",name:"其它区",parent:"450400"},{value:"450502",name:"海城区",parent:"450500"},{value:"450503",name:"银海区",parent:"450500"},{value:"450512",name:"铁山港区",parent:"450500"},{value:"450521",name:"合浦县",parent:"450500"},{value:"450522",name:"其它区",parent:"450500"},{value:"450602",name:"港口区",parent:"450600"},{value:"450603",name:"防城区",parent:"450600"},{value:"450621",name:"上思县",parent:"450600"},{value:"450681",name:"东兴市",parent:"450600"},{value:"450682",name:"其它区",parent:"450600"},{value:"450702",name:"钦南区",parent:"450700"},{value:"450703",name:"钦北区",parent:"450700"},{value:"450721",name:"灵山县",parent:"450700"},{value:"450722",name:"浦北县",parent:"450700"},{value:"450723",name:"其它区",parent:"450700"},{value:"450802",name:"港北区",parent:"450800"},{value:"450803",name:"港南区",parent:"450800"},{value:"450804",name:"覃塘区",parent:"450800"},{value:"450821",name:"平南县",parent:"450800"},{value:"450881",name:"桂平市",parent:"450800"},{value:"450882",name:"其它区",parent:"450800"},{value:"450902",name:"玉州区",parent:"450900"},{value:"450903",name:"福绵区",parent:"450900"},{value:"450921",name:"容县",parent:"450900"},{value:"450922",name:"陆川县",parent:"450900"},{value:"450923",name:"博白县",parent:"450900"},{value:"450924",name:"兴业县",parent:"450900"},{value:"450981",name:"北流市",parent:"450900"},{value:"450982",name:"其它区",parent:"450900"},{value:"451002",name:"右江区",parent:"451000"},{value:"451021",name:"田阳县",parent:"451000"},{value:"451022",name:"田东县",parent:"451000"},{value:"451023",name:"平果县",parent:"451000"},{value:"451024",name:"德保县",parent:"451000"},{value:"451025",name:"靖西县",parent:"451000"},{value:"451026",name:"那坡县",parent:"451000"},{value:"451027",name:"凌云县",parent:"451000"},{value:"451028",name:"乐业县",parent:"451000"},{value:"451029",name:"田林县",parent:"451000"},{value:"451030",name:"西林县",parent:"451000"},{value:"451031",name:"隆林各族自治县",parent:"451000"},{value:"451032",name:"其它区",parent:"451000"},{value:"451102",name:"八步区",parent:"451100"},{value:"451119",name:"平桂管理区",parent:"451100"},{value:"451121",name:"昭平县",parent:"451100"},{value:"451122",name:"钟山县",parent:"451100"},{value:"451123",name:"富川瑶族自治县",parent:"451100"},{value:"451124",name:"其它区",parent:"451100"},{value:"451202",name:"金城江区",parent:"451200"},{value:"451221",name:"南丹县",parent:"451200"},{value:"451222",name:"天峨县",parent:"451200"},{value:"451223",name:"凤山县",parent:"451200"},{value:"451224",name:"东兰县",parent:"451200"},{value:"451225",name:"罗城仫佬族自治县",parent:"451200"},{value:"451226",name:"环江毛南族自治县",parent:"451200"},{value:"451227",name:"巴马瑶族自治县",parent:"451200"},{value:"451228",name:"都安瑶族自治县",parent:"451200"},{value:"451229",name:"大化瑶族自治县",parent:"451200"},{value:"451281",name:"宜州市",parent:"451200"},{value:"451282",name:"其它区",parent:"451200"},{value:"451302",name:"兴宾区",parent:"451300"},{value:"451321",name:"忻城县",parent:"451300"},{value:"451322",name:"象州县",parent:"451300"},{value:"451323",name:"武宣县",parent:"451300"},{value:"451324",name:"金秀瑶族自治县",parent:"451300"},{value:"451381",name:"合山市",parent:"451300"},{value:"451382",name:"其它区",parent:"451300"},{value:"451402",name:"江州区",parent:"451400"},{value:"451421",name:"扶绥县",parent:"451400"},{value:"451422",name:"宁明县",parent:"451400"},{value:"451423",name:"龙州县",parent:"451400"},{value:"451424",name:"大新县",parent:"451400"},{value:"451425",name:"天等县",parent:"451400"},{value:"451481",name:"凭祥市",parent:"451400"},{value:"451482",name:"其它区",parent:"451400"},{value:"460105",name:"秀英区",parent:"460100"},{value:"460106",name:"龙华区",parent:"460100"},{value:"460107",name:"琼山区",parent:"460100"},{value:"460108",name:"美兰区",parent:"460100"},{value:"460109",name:"其它区",parent:"460100"},{value:"460321",name:"西沙群岛",parent:"460300"},{value:"460322",name:"南沙群岛",parent:"460300"},{value:"460323",name:"中沙群岛的岛礁及其海域",parent:"460300"},{value:"469001",name:"五指山市",parent:"460000"},{value:"469002",name:"琼海市",parent:"460000"},{value:"469003",name:"儋州市",parent:"460000"},{value:"469005",name:"文昌市",parent:"460000"},{value:"469006",name:"万宁市",parent:"460000"},{value:"469007",name:"东方市",parent:"460000"},{value:"469025",name:"定安县",parent:"460000"},{value:"469026",name:"屯昌县",parent:"460000"},{value:"469027",name:"澄迈县",parent:"460000"},{value:"469028",name:"临高县",parent:"460000"},{value:"469030",name:"白沙黎族自治县",parent:"460000"},{value:"469031",name:"昌江黎族自治县",parent:"460000"},{value:"469033",name:"乐东黎族自治县",parent:"460000"},{value:"469034",name:"陵水黎族自治县",parent:"460000"},{value:"469035",name:"保亭黎族苗族自治县",parent:"460000"},{value:"469036",name:"琼中黎族苗族自治县",parent:"460000"},{value:"469037",name:"西沙群岛",parent:"460000"},{value:"469038",name:"南沙群岛",parent:"460000"},{value:"469039",name:"中沙群岛的岛礁及其海域",parent:"460000"},{value:"471004",name:"高新区",parent:"410300"},{value:"471005",name:"其它区",parent:"410300"},{value:"500101",name:"万州区",parent:"500100"},{value:"500102",name:"涪陵区",parent:"500100"},{value:"500103",name:"渝中区",parent:"500100"},{value:"500104",name:"大渡口区",parent:"500100"},{value:"500105",name:"江北区",parent:"500100"},{value:"500106",name:"沙坪坝区",parent:"500100"},{value:"500107",name:"九龙坡区",parent:"500100"},{value:"500108",name:"南岸区",parent:"500100"},{value:"500109",name:"北碚区",parent:"500100"},{value:"500110",name:"万盛区",parent:"500100"},{value:"500111",name:"双桥区",parent:"500100"},{value:"500112",name:"渝北区",parent:"500100"},{value:"500113",name:"巴南区",parent:"500100"},{value:"500114",name:"黔江区",parent:"500100"},{value:"500115",name:"长寿区",parent:"500100"},{value:"500222",name:"綦江区",parent:"500100"},{value:"500223",name:"潼南县",parent:"500100"},{value:"500224",name:"铜梁区",parent:"500100"},{value:"500225",name:"大足区",parent:"500100"},{value:"500226",name:"荣昌县",parent:"500100"},{value:"500227",name:"璧山区",parent:"500100"},{value:"500228",name:"梁平县",parent:"500100"},{value:"500229",name:"城口县",parent:"500100"},{value:"500230",name:"丰都县",parent:"500100"},{value:"500231",name:"垫江县",parent:"500100"},{value:"500232",name:"武隆县",parent:"500100"},{value:"500233",name:"忠县",parent:"500100"},{value:"500234",name:"开县",parent:"500100"},{value:"500235",name:"云阳县",parent:"500100"},{value:"500236",name:"奉节县",parent:"500100"},{value:"500237",name:"巫山县",parent:"500100"},{value:"500238",name:"巫溪县",parent:"500100"},{value:"500240",name:"石柱土家族自治县",parent:"500100"},{value:"500241",name:"秀山土家族苗族自治县",parent:"500100"},{value:"500242",name:"酉阳土家族苗族自治县",parent:"500100"},{value:"500243",name:"彭水苗族土家族自治县",parent:"500100"},{value:"500381",name:"江津区",parent:"500100"},{value:"500382",name:"合川区",parent:"500100"},{value:"500383",name:"永川区",parent:"500100"},{value:"500384",name:"南川区",parent:"500100"},{value:"500385",name:"其它区",parent:"500100"},{value:"510104",name:"锦江区",parent:"510100"},{value:"510105",name:"青羊区",parent:"510100"},{value:"510106",name:"金牛区",parent:"510100"},{value:"510107",name:"武侯区",parent:"510100"},{value:"510108",name:"成华区",parent:"510100"},{value:"510112",name:"龙泉驿区",parent:"510100"},{value:"510113",name:"青白江区",parent:"510100"},{value:"510114",name:"新都区",parent:"510100"},{value:"510115",name:"温江区",parent:"510100"},{value:"510121",name:"金堂县",parent:"510100"},{value:"510122",name:"双流县",parent:"510100"},{value:"510124",name:"郫县",parent:"510100"},{value:"510129",name:"大邑县",parent:"510100"},{value:"510131",name:"蒲江县",parent:"510100"},{value:"510132",name:"新津县",parent:"510100"},{value:"510181",name:"都江堰市",parent:"510100"},{value:"510182",name:"彭州市",parent:"510100"},{value:"510183",name:"邛崃市",parent:"510100"},{value:"510184",name:"崇州市",parent:"510100"},{value:"510185",name:"其它区",parent:"510100"},{value:"510302",name:"自流井区",parent:"510300"},{value:"510303",name:"贡井区",parent:"510300"},{value:"510304",name:"大安区",parent:"510300"},{value:"510311",name:"沿滩区",parent:"510300"},{value:"510321",name:"荣县",parent:"510300"},{value:"510322",name:"富顺县",parent:"510300"},{value:"510323",name:"其它区",parent:"510300"},{value:"510402",name:"东区",parent:"510400"},{value:"510403",name:"西区",parent:"510400"},{value:"510411",name:"仁和区",parent:"510400"},{value:"510421",name:"米易县",parent:"510400"},{value:"510422",name:"盐边县",parent:"510400"},{value:"510423",name:"其它区",parent:"510400"},{value:"510502",name:"江阳区",parent:"510500"},{value:"510503",name:"纳溪区",parent:"510500"},{value:"510504",name:"龙马潭区",parent:"510500"},{value:"510521",name:"泸县",parent:"510500"},{value:"510522",name:"合江县",parent:"510500"},{value:"510524",name:"叙永县",parent:"510500"},{value:"510525",name:"古蔺县",parent:"510500"},{value:"510526",name:"其它区",parent:"510500"},{value:"510603",name:"旌阳区",parent:"510600"},{value:"510623",name:"中江县",parent:"510600"},{value:"510626",name:"罗江县",parent:"510600"},{value:"510681",name:"广汉市",parent:"510600"},{value:"510682",name:"什邡市",parent:"510600"},{value:"510683",name:"绵竹市",parent:"510600"},{value:"510684",name:"其它区",parent:"510600"},{value:"510703",name:"涪城区",parent:"510700"},{value:"510704",name:"游仙区",parent:"510700"},{value:"510722",name:"三台县",parent:"510700"},{value:"510723",name:"盐亭县",parent:"510700"},{value:"510724",name:"安县",parent:"510700"},{value:"510725",name:"梓潼县",parent:"510700"},{value:"510726",name:"北川羌族自治县",parent:"510700"},{value:"510727",name:"平武县",parent:"510700"},{value:"510751",name:"高新区",parent:"510700"},{value:"510781",name:"江油市",parent:"510700"},{value:"510782",name:"其它区",parent:"510700"},{value:"510802",name:"利州区",parent:"510800"},{value:"510811",name:"昭化区",parent:"510800"},{value:"510812",name:"朝天区",parent:"510800"},{value:"510821",name:"旺苍县",parent:"510800"},{value:"510822",name:"青川县",parent:"510800"},{value:"510823",name:"剑阁县",parent:"510800"},{value:"510824",name:"苍溪县",parent:"510800"},{value:"510825",name:"其它区",parent:"510800"},{value:"510903",name:"船山区",parent:"510900"},{value:"510904",name:"安居区",parent:"510900"},{value:"510921",name:"蓬溪县",parent:"510900"},{value:"510922",name:"射洪县",parent:"510900"},{value:"510923",name:"大英县",parent:"510900"},{value:"510924",name:"其它区",parent:"510900"},{value:"511002",name:"市中区",parent:"511000"},{value:"511011",name:"东兴区",parent:"511000"},{value:"511024",name:"威远县",parent:"511000"},{value:"511025",name:"资中县",parent:"511000"},{value:"511028",name:"隆昌县",parent:"511000"},{value:"511029",name:"其它区",parent:"511000"},{value:"511102",name:"市中区",parent:"511100"},{value:"511111",name:"沙湾区",parent:"511100"},{value:"511112",name:"五通桥区",parent:"511100"},{value:"511113",name:"金口河区",parent:"511100"},{value:"511123",name:"犍为县",parent:"511100"},{value:"511124",name:"井研县",parent:"511100"},{value:"511126",name:"夹江县",parent:"511100"},{value:"511129",name:"沐川县",parent:"511100"},{value:"511132",name:"峨边彝族自治县",parent:"511100"},{value:"511133",name:"马边彝族自治县",parent:"511100"},{value:"511181",name:"峨眉山市",parent:"511100"},{value:"511182",name:"其它区",parent:"511100"},{value:"511302",name:"顺庆区",parent:"511300"},{value:"511303",name:"高坪区",parent:"511300"},{value:"511304",name:"嘉陵区",parent:"511300"},{value:"511321",name:"南部县",parent:"511300"},{value:"511322",name:"营山县",parent:"511300"},{value:"511323",name:"蓬安县",parent:"511300"},{value:"511324",name:"仪陇县",parent:"511300"},{value:"511325",name:"西充县",parent:"511300"},{value:"511381",name:"阆中市",parent:"511300"},{value:"511382",name:"其它区",parent:"511300"},{value:"511402",name:"东坡区",parent:"511400"},{value:"511421",name:"仁寿县",parent:"511400"},{value:"511422",name:"彭山区",parent:"511400"},{value:"511423",name:"洪雅县",parent:"511400"},{value:"511424",name:"丹棱县",parent:"511400"},{value:"511425",name:"青神县",parent:"511400"},{value:"511426",name:"其它区",parent:"511400"},{value:"511502",name:"翠屏区",parent:"511500"},{value:"511521",name:"宜宾县",parent:"511500"},{value:"511522",name:"南溪区",parent:"511500"},{value:"511523",name:"江安县",parent:"511500"},{value:"511524",name:"长宁县",parent:"511500"},{value:"511525",name:"高县",parent:"511500"},{value:"511526",name:"珙县",parent:"511500"},{value:"511527",name:"筠连县",parent:"511500"},{value:"511528",name:"兴文县",parent:"511500"},{value:"511529",name:"屏山县",parent:"511500"},{value:"511530",name:"其它区",parent:"511500"},{value:"511602",name:"广安区",parent:"511600"},{value:"511603",name:"前锋区",parent:"511600"},{value:"511621",name:"岳池县",parent:"511600"},{value:"511622",name:"武胜县",parent:"511600"},{value:"511623",name:"邻水县",parent:"511600"},{value:"511681",name:"华蓥市",parent:"511600"},{value:"511682",name:"市辖区",parent:"511600"},{value:"511683",name:"其它区",parent:"511600"},{value:"511702",name:"通川区",parent:"511700"},{value:"511721",name:"达川区",parent:"511700"},{value:"511722",name:"宣汉县",parent:"511700"},{value:"511723",name:"开江县",parent:"511700"},{value:"511724",name:"大竹县",parent:"511700"},{value:"511725",name:"渠县",parent:"511700"},{value:"511781",name:"万源市",parent:"511700"},{value:"511782",name:"其它区",parent:"511700"},{value:"511802",name:"雨城区",parent:"511800"},{value:"511821",name:"名山区",parent:"511800"},{value:"511822",name:"荥经县",parent:"511800"},{value:"511823",name:"汉源县",parent:"511800"},{value:"511824",name:"石棉县",parent:"511800"},{value:"511825",name:"天全县",parent:"511800"},{value:"511826",name:"芦山县",parent:"511800"},{value:"511827",name:"宝兴县",parent:"511800"},{value:"511828",name:"其它区",parent:"511800"},{value:"511902",name:"巴州区",parent:"511900"},{value:"511903",name:"恩阳区",parent:"511900"},{value:"511921",name:"通江县",parent:"511900"},{value:"511922",name:"南江县",parent:"511900"},{value:"511923",name:"平昌县",parent:"511900"},{value:"511924",name:"其它区",parent:"511900"},{value:"512002",name:"雁江区",parent:"512000"},{value:"512021",name:"安岳县",parent:"512000"},{value:"512022",name:"乐至县",parent:"512000"},{value:"512081",name:"简阳市",parent:"512000"},{value:"512082",name:"其它区",parent:"512000"},{value:"513221",name:"汶川县",parent:"513200"},{value:"513222",name:"理县",parent:"513200"},{value:"513223",name:"茂县",parent:"513200"},{value:"513224",name:"松潘县",parent:"513200"},{value:"513225",name:"九寨沟县",parent:"513200"},{value:"513226",name:"金川县",parent:"513200"},{value:"513227",name:"小金县",parent:"513200"},{value:"513228",name:"黑水县",parent:"513200"},{value:"513229",name:"马尔康县",parent:"513200"},{value:"513230",name:"壤塘县",parent:"513200"},{value:"513231",name:"阿坝县",parent:"513200"},{value:"513232",name:"若尔盖县",parent:"513200"},{value:"513233",name:"红原县",parent:"513200"},{value:"513234",name:"其它区",parent:"513200"},{value:"513321",name:"康定市",parent:"513300"},{value:"513322",name:"泸定县",parent:"513300"},{value:"513323",name:"丹巴县",parent:"513300"},{value:"513324",name:"九龙县",parent:"513300"},{value:"513325",name:"雅江县",parent:"513300"},{value:"513326",name:"道孚县",parent:"513300"},{value:"513327",name:"炉霍县",parent:"513300"},{value:"513328",name:"甘孜县",parent:"513300"},{value:"513329",name:"新龙县",parent:"513300"},{value:"513330",name:"德格县",parent:"513300"},{value:"513331",name:"白玉县",parent:"513300"},{value:"513332",name:"石渠县",parent:"513300"},{value:"513333",name:"色达县",parent:"513300"},{value:"513334",name:"理塘县",parent:"513300"},{value:"513335",name:"巴塘县",parent:"513300"},{value:"513336",name:"乡城县",parent:"513300"},{value:"513337",name:"稻城县",parent:"513300"},{value:"513338",name:"得荣县",parent:"513300"},{value:"513339",name:"其它区",parent:"513300"},{value:"513401",name:"西昌市",parent:"513400"},{value:"513422",name:"木里藏族自治县",parent:"513400"},{value:"513423",name:"盐源县",parent:"513400"},{value:"513424",name:"德昌县",parent:"513400"},{value:"513425",name:"会理县",parent:"513400"},{value:"513426",name:"会东县",parent:"513400"},{value:"513427",name:"宁南县",parent:"513400"},{value:"513428",name:"普格县",parent:"513400"},{value:"513429",name:"布拖县",parent:"513400"},{value:"513430",name:"金阳县",parent:"513400"},{value:"513431",name:"昭觉县",parent:"513400"},{value:"513432",name:"喜德县",parent:"513400"},{value:"513433",name:"冕宁县",parent:"513400"},{value:"513434",name:"越西县",parent:"513400"},{value:"513435",name:"甘洛县",parent:"513400"},{value:"513436",name:"美姑县",parent:"513400"},{value:"513437",name:"雷波县",parent:"513400"},{value:"513438",name:"其它区",parent:"513400"},{value:"520102",name:"南明区",parent:"520100"},{value:"520103",name:"云岩区",parent:"520100"},{value:"520111",name:"花溪区",parent:"520100"},{value:"520112",name:"乌当区",parent:"520100"},{value:"520113",name:"白云区",parent:"520100"},{value:"520114",name:"小河区",parent:"520100"},{value:"520121",name:"开阳县",parent:"520100"},{value:"520122",name:"息烽县",parent:"520100"},{value:"520123",name:"修文县",parent:"520100"},{value:"520151",name:"观山湖区",parent:"520100"},{value:"520181",name:"清镇市",parent:"520100"},{value:"520182",name:"其它区",parent:"520100"},{value:"520201",name:"钟山区",parent:"520200"},{value:"520203",name:"六枝特区",parent:"520200"},{value:"520221",name:"水城县",parent:"520200"},{value:"520222",name:"盘县",parent:"520200"},{value:"520223",name:"其它区",parent:"520200"},{value:"520302",name:"红花岗区",parent:"520300"},{value:"520303",name:"汇川区",parent:"520300"},{value:"520321",name:"遵义县",parent:"520300"},{value:"520322",name:"桐梓县",parent:"520300"},{value:"520323",name:"绥阳县",parent:"520300"},{value:"520324",name:"正安县",parent:"520300"},{value:"520325",name:"道真仡佬族苗族自治县",parent:"520300"},{value:"520326",name:"务川仡佬族苗族自治县",parent:"520300"},{value:"520327",name:"凤冈县",parent:"520300"},{value:"520328",name:"湄潭县",parent:"520300"},{value:"520329",name:"余庆县",parent:"520300"},{value:"520330",name:"习水县",parent:"520300"},{value:"520381",name:"赤水市",parent:"520300"},{value:"520382",name:"仁怀市",parent:"520300"},{value:"520383",name:"其它区",parent:"520300"},{value:"520402",name:"西秀区",parent:"520400"},{value:"520421",name:"平坝区",parent:"520400"},{value:"520422",name:"普定县",parent:"520400"},{value:"520423",name:"镇宁布依族苗族自治县",parent:"520400"},{value:"520424",name:"关岭布依族苗族自治县",parent:"520400"},{value:"520425",name:"紫云苗族布依族自治县",parent:"520400"},{value:"520426",name:"其它区",parent:"520400"},{value:"522201",name:"碧江区",parent:"522200"},{value:"522222",name:"江口县",parent:"522200"},{value:"522223",name:"玉屏侗族自治县",parent:"522200"},{value:"522224",name:"石阡县",parent:"522200"},{value:"522225",name:"思南县",parent:"522200"},{value:"522226",name:"印江土家族苗族自治县",parent:"522200"},{value:"522227",name:"德江县",parent:"522200"},{value:"522228",name:"沿河土家族自治县",parent:"522200"},{value:"522229",name:"松桃苗族自治县",parent:"522200"},{value:"522230",name:"万山区",parent:"522200"},{value:"522231",name:"其它区",parent:"522200"},{value:"522301",name:"兴义市",parent:"522300"},{value:"522322",name:"兴仁县",parent:"522300"},{value:"522323",name:"普安县",parent:"522300"},{value:"522324",name:"晴隆县",parent:"522300"},{value:"522325",name:"贞丰县",parent:"522300"},{value:"522326",name:"望谟县",parent:"522300"},{value:"522327",name:"册亨县",parent:"522300"},{value:"522328",name:"安龙县",parent:"522300"},{value:"522329",name:"其它区",parent:"522300"},{value:"522401",name:"七星关区",parent:"522400"},{value:"522422",name:"大方县",parent:"522400"},{value:"522423",name:"黔西县",parent:"522400"},{value:"522424",name:"金沙县",parent:"522400"},{value:"522425",name:"织金县",parent:"522400"},{value:"522426",name:"纳雍县",parent:"522400"},{value:"522427",name:"威宁彝族回族苗族自治县",parent:"522400"},{value:"522428",name:"赫章县",parent:"522400"},{value:"522429",name:"其它区",parent:"522400"},{value:"522601",name:"凯里市",parent:"522600"},{value:"522622",name:"黄平县",parent:"522600"},{value:"522623",name:"施秉县",parent:"522600"},{value:"522624",name:"三穗县",parent:"522600"},{value:"522625",name:"镇远县",parent:"522600"},{value:"522626",name:"岑巩县",parent:"522600"},{value:"522627",name:"天柱县",parent:"522600"},{value:"522628",name:"锦屏县",parent:"522600"},{value:"522629",name:"剑河县",parent:"522600"},{value:"522630",name:"台江县",parent:"522600"},{value:"522631",name:"黎平县",parent:"522600"},{value:"522632",name:"榕江县",parent:"522600"},{value:"522633",name:"从江县",parent:"522600"},{value:"522634",name:"雷山县",parent:"522600"},{value:"522635",name:"麻江县",parent:"522600"},{value:"522636",name:"丹寨县",parent:"522600"},{value:"522637",name:"其它区",parent:"522600"},{value:"522701",name:"都匀市",parent:"522700"},{value:"522702",name:"福泉市",parent:"522700"},{value:"522722",name:"荔波县",parent:"522700"},{value:"522723",name:"贵定县",parent:"522700"},{value:"522725",name:"瓮安县",parent:"522700"},{value:"522726",name:"独山县",parent:"522700"},{value:"522727",name:"平塘县",parent:"522700"},{value:"522728",name:"罗甸县",parent:"522700"},{value:"522729",name:"长顺县",parent:"522700"},{value:"522730",name:"龙里县",parent:"522700"},{value:"522731",name:"惠水县",parent:"522700"},{value:"522732",name:"三都水族自治县",parent:"522700"},{value:"522733",name:"其它区",parent:"522700"},{value:"530102",name:"五华区",parent:"530100"},{value:"530103",name:"盘龙区",parent:"530100"},{value:"530111",name:"官渡区",parent:"530100"},{value:"530112",name:"西山区",parent:"530100"},{value:"530113",name:"东川区",parent:"530100"},{value:"530121",name:"呈贡区",parent:"530100"},{value:"530122",name:"晋宁县",parent:"530100"},{value:"530124",name:"富民县",parent:"530100"},{value:"530125",name:"宜良县",parent:"530100"},{value:"530126",name:"石林彝族自治县",parent:"530100"},{value:"530127",name:"嵩明县",parent:"530100"},{value:"530128",name:"禄劝彝族苗族自治县",parent:"530100"},{value:"530129",name:"寻甸回族彝族自治县",parent:"530100"},{value:"530181",name:"安宁市",parent:"530100"},{value:"530182",name:"其它区",parent:"530100"},{value:"530302",name:"麒麟区",parent:"530300"},{value:"530321",name:"马龙县",parent:"530300"},{value:"530322",name:"陆良县",parent:"530300"},{value:"530323",name:"师宗县",parent:"530300"},{value:"530324",name:"罗平县",parent:"530300"},{value:"530325",name:"富源县",parent:"530300"},{value:"530326",name:"会泽县",parent:"530300"},{value:"530328",name:"沾益县",parent:"530300"},{value:"530381",name:"宣威市",parent:"530300"},{value:"530382",name:"其它区",parent:"530300"},{value:"530402",name:"红塔区",parent:"530400"},{value:"530421",name:"江川县",parent:"530400"},{value:"530422",name:"澄江县",parent:"530400"},{value:"530423",name:"通海县",parent:"530400"},{value:"530424",name:"华宁县",parent:"530400"},{value:"530425",name:"易门县",parent:"530400"},{value:"530426",name:"峨山彝族自治县",parent:"530400"},{value:"530427",name:"新平彝族傣族自治县",parent:"530400"},{value:"530428",name:"元江哈尼族彝族傣族自治县",parent:"530400"},{value:"530429",name:"其它区",parent:"530400"},{value:"530502",name:"隆阳区",parent:"530500"},{value:"530521",name:"施甸县",parent:"530500"},{value:"530522",name:"腾冲县",parent:"530500"},{value:"530523",name:"龙陵县",parent:"530500"},{value:"530524",name:"昌宁县",parent:"530500"},{value:"530525",name:"其它区",parent:"530500"},{value:"530602",name:"昭阳区",parent:"530600"},{value:"530621",name:"鲁甸县",parent:"530600"},{value:"530622",name:"巧家县",parent:"530600"},{value:"530623",name:"盐津县",parent:"530600"},{value:"530624",name:"大关县",parent:"530600"},{value:"530625",name:"永善县",parent:"530600"},{value:"530626",name:"绥江县",parent:"530600"},{value:"530627",name:"镇雄县",parent:"530600"},{value:"530628",name:"彝良县",parent:"530600"},{value:"530629",name:"威信县",parent:"530600"},{value:"530630",name:"水富县",parent:"530600"},{value:"530631",name:"其它区",parent:"530600"},{value:"530702",name:"古城区",parent:"530700"},{value:"530721",name:"玉龙纳西族自治县",parent:"530700"},{value:"530722",name:"永胜县",parent:"530700"},{value:"530723",name:"华坪县",parent:"530700"},{value:"530724",name:"宁蒗彝族自治县",parent:"530700"},{value:"530725",name:"其它区",parent:"530700"},{value:"530802",name:"思茅区",parent:"530800"},{value:"530821",name:"宁洱哈尼族彝族自治县",parent:"530800"},{value:"530822",name:"墨江哈尼族自治县",parent:"530800"},{value:"530823",name:"景东彝族自治县",parent:"530800"},{value:"530824",name:"景谷傣族彝族自治县",parent:"530800"},{value:"530825",name:"镇沅彝族哈尼族拉祜族自治县",parent:"530800"},{value:"530826",name:"江城哈尼族彝族自治县",parent:"530800"},{value:"530827",name:"孟连傣族拉祜族佤族自治县",parent:"530800"},{value:"530828",name:"澜沧拉祜族自治县",parent:"530800"},{value:"530829",name:"西盟佤族自治县",parent:"530800"},{value:"530830",name:"其它区",parent:"530800"},{value:"530902",name:"临翔区",parent:"530900"},{value:"530921",name:"凤庆县",parent:"530900"},{value:"530922",name:"云县",parent:"530900"},{value:"530923",name:"永德县",parent:"530900"},{value:"530924",name:"镇康县",parent:"530900"},{value:"530925",name:"双江拉祜族佤族布朗族傣族自治县",parent:"530900"},{value:"530926",name:"耿马傣族佤族自治县",parent:"530900"},{value:"530927",name:"沧源佤族自治县",parent:"530900"},{value:"530928",name:"其它区",parent:"530900"},{value:"532301",name:"楚雄市",parent:"532300"},{value:"532322",name:"双柏县",parent:"532300"},{value:"532323",name:"牟定县",parent:"532300"},{value:"532324",name:"南华县",parent:"532300"},{value:"532325",name:"姚安县",parent:"532300"},{value:"532326",name:"大姚县",parent:"532300"},{value:"532327",name:"永仁县",parent:"532300"},{value:"532328",name:"元谋县",parent:"532300"},{value:"532329",name:"武定县",parent:"532300"},{value:"532331",name:"禄丰县",parent:"532300"},{value:"532332",name:"其它区",parent:"532300"},{value:"532501",name:"个旧市",parent:"532500"},{value:"532502",name:"开远市",parent:"532500"},{value:"532522",name:"蒙自市",parent:"532500"},{value:"532523",name:"屏边苗族自治县",parent:"532500"},{value:"532524",name:"建水县",parent:"532500"},{value:"532525",name:"石屏县",parent:"532500"},{value:"532526",name:"弥勒市",parent:"532500"},{value:"532527",name:"泸西县",parent:"532500"},{value:"532528",name:"元阳县",parent:"532500"},{value:"532529",name:"红河县",parent:"532500"},{value:"532530",name:"金平苗族瑶族傣族自治县",parent:"532500"},{value:"532531",name:"绿春县",parent:"532500"},{value:"532532",name:"河口瑶族自治县",parent:"532500"},{value:"532533",name:"其它区",parent:"532500"},{value:"532621",name:"文山市",parent:"532600"},{value:"532622",name:"砚山县",parent:"532600"},{value:"532623",name:"西畴县",parent:"532600"},{value:"532624",name:"麻栗坡县",parent:"532600"},{value:"532625",name:"马关县",parent:"532600"},{value:"532626",name:"丘北县",parent:"532600"},{value:"532627",name:"广南县",parent:"532600"},{value:"532628",name:"富宁县",parent:"532600"},{value:"532629",name:"其它区",parent:"532600"},{value:"532801",name:"景洪市",parent:"532800"},{value:"532822",name:"勐海县",parent:"532800"},{value:"532823",name:"勐腊县",parent:"532800"},{value:"532824",name:"其它区",parent:"532800"},{value:"532901",name:"大理市",parent:"532900"},{value:"532922",name:"漾濞彝族自治县",parent:"532900"},{value:"532923",name:"祥云县",parent:"532900"},{value:"532924",name:"宾川县",parent:"532900"},{value:"532925",name:"弥渡县",parent:"532900"},{value:"532926",name:"南涧彝族自治县",parent:"532900"},{value:"532927",name:"巍山彝族回族自治县",parent:"532900"},{value:"532928",name:"永平县",parent:"532900"},{value:"532929",name:"云龙县",parent:"532900"},{value:"532930",name:"洱源县",parent:"532900"},{value:"532931",name:"剑川县",parent:"532900"},{value:"532932",name:"鹤庆县",parent:"532900"},{value:"532933",name:"其它区",parent:"532900"},{value:"533102",name:"瑞丽市",parent:"533100"},{value:"533103",name:"芒市",parent:"533100"},{value:"533122",name:"梁河县",parent:"533100"},{value:"533123",name:"盈江县",parent:"533100"},{value:"533124",name:"陇川县",parent:"533100"},{value:"533125",name:"其它区",parent:"533100"},{value:"533321",name:"泸水县",parent:"533300"},{value:"533323",name:"福贡县",parent:"533300"},{value:"533324",name:"贡山独龙族怒族自治县",parent:"533300"},{value:"533325",name:"兰坪白族普米族自治县",parent:"533300"},{value:"533326",name:"其它区",parent:"533300"},{value:"533421",name:"香格里拉市",parent:"533400"},{value:"533422",name:"德钦县",parent:"533400"},{value:"533423",name:"维西傈僳族自治县",parent:"533400"},{value:"533424",name:"其它区",parent:"533400"},{value:"540102",name:"城关区",parent:"540100"},{value:"540121",name:"林周县",parent:"540100"},{value:"540122",name:"当雄县",parent:"540100"},{value:"540123",name:"尼木县",parent:"540100"},{value:"540124",name:"曲水县",parent:"540100"},{value:"540125",name:"堆龙德庆县",parent:"540100"},{value:"540126",name:"达孜县",parent:"540100"},{value:"540127",name:"墨竹工卡县",parent:"540100"},{value:"540128",name:"其它区",parent:"540100"},{value:"542121",name:"卡若区",parent:"542100"},{value:"542122",name:"江达县",parent:"542100"},{value:"542123",name:"贡觉县",parent:"542100"},{value:"542124",name:"类乌齐县",parent:"542100"},{value:"542125",name:"丁青县",parent:"542100"},{value:"542126",name:"察雅县",parent:"542100"},{value:"542127",name:"八宿县",parent:"542100"},{value:"542128",name:"左贡县",parent:"542100"},{value:"542129",name:"芒康县",parent:"542100"},{value:"542132",name:"洛隆县",parent:"542100"},{value:"542133",name:"边坝县",parent:"542100"},{value:"542134",name:"其它区",parent:"542100"},{value:"542221",name:"乃东县",parent:"542200"},{value:"542222",name:"扎囊县",parent:"542200"},{value:"542223",name:"贡嘎县",parent:"542200"},{value:"542224",name:"桑日县",parent:"542200"},{value:"542225",name:"琼结县",parent:"542200"},{value:"542226",name:"曲松县",parent:"542200"},{value:"542227",name:"措美县",parent:"542200"},{value:"542228",name:"洛扎县",parent:"542200"},{value:"542229",name:"加查县",parent:"542200"},{value:"542231",name:"隆子县",parent:"542200"},{value:"542232",name:"错那县",parent:"542200"},{value:"542233",name:"浪卡子县",parent:"542200"},{value:"542234",name:"其它区",parent:"542200"},{value:"542301",name:"桑珠孜区",parent:"542300"},{value:"542322",name:"南木林县",parent:"542300"},{value:"542323",name:"江孜县",parent:"542300"},{value:"542324",name:"定日县",parent:"542300"},{value:"542325",name:"萨迦县",parent:"542300"},{value:"542326",name:"拉孜县",parent:"542300"},{value:"542327",name:"昂仁县",parent:"542300"},{value:"542328",name:"谢通门县",parent:"542300"},{value:"542329",name:"白朗县",parent:"542300"},{value:"542330",name:"仁布县",parent:"542300"},{value:"542331",name:"康马县",parent:"542300"},{value:"542332",name:"定结县",parent:"542300"},{value:"542333",name:"仲巴县",parent:"542300"},{value:"542334",name:"亚东县",parent:"542300"},{value:"542335",name:"吉隆县",parent:"542300"},{value:"542336",name:"聂拉木县",parent:"542300"},{value:"542337",name:"萨嘎县",parent:"542300"},{value:"542338",name:"岗巴县",parent:"542300"},{value:"542339",name:"其它区",parent:"542300"},{value:"542421",name:"那曲县",parent:"542400"},{value:"542422",name:"嘉黎县",parent:"542400"},{value:"542423",name:"比如县",parent:"542400"},{value:"542424",name:"聂荣县",parent:"542400"},{value:"542425",name:"安多县",parent:"542400"},{value:"542426",name:"申扎县",parent:"542400"},{value:"542427",name:"索县",parent:"542400"},{value:"542428",name:"班戈县",parent:"542400"},{value:"542429",name:"巴青县",parent:"542400"},{value:"542430",name:"尼玛县",parent:"542400"},{value:"542431",name:"其它区",parent:"542400"},{value:"542432",name:"双湖县",parent:"542400"},{value:"542521",name:"普兰县",parent:"542500"},{value:"542522",name:"札达县",parent:"542500"},{value:"542523",name:"噶尔县",parent:"542500"},{value:"542524",name:"日土县",parent:"542500"},{value:"542525",name:"革吉县",parent:"542500"},{value:"542526",name:"改则县",parent:"542500"},{value:"542527",name:"措勤县",parent:"542500"},{value:"542528",name:"其它区",parent:"542500"},{value:"542621",name:"巴宜区",parent:"542600"},{value:"542622",name:"工布江达县",parent:"542600"},{value:"542623",name:"米林县",parent:"542600"},{value:"542624",name:"墨脱县",parent:"542600"},{value:"542625",name:"波密县",parent:"542600"},{value:"542626",name:"察隅县",parent:"542600"},{value:"542627",name:"朗县",parent:"542600"},{value:"542628",name:"其它区",parent:"542600"},{value:"610102",name:"新城区",parent:"610100"},{value:"610103",name:"碑林区",parent:"610100"},{value:"610104",name:"莲湖区",parent:"610100"},{value:"610111",name:"灞桥区",parent:"610100"},{value:"610112",name:"未央区",parent:"610100"},{value:"610113",name:"雁塔区",parent:"610100"},{value:"610114",name:"阎良区",parent:"610100"},{value:"610115",name:"临潼区",parent:"610100"},{value:"610116",name:"长安区",parent:"610100"},{value:"610122",name:"蓝田县",parent:"610100"},{value:"610124",name:"周至县",parent:"610100"},{value:"610125",name:"户县",parent:"610100"},{value:"610126",name:"高陵区",parent:"610100"},{value:"610127",name:"其它区",parent:"610100"},{value:"610202",name:"王益区",parent:"610200"},{value:"610203",name:"印台区",parent:"610200"},{value:"610204",name:"耀州区",parent:"610200"},{value:"610222",name:"宜君县",parent:"610200"},{value:"610223",name:"其它区",parent:"610200"},{value:"610302",name:"渭滨区",parent:"610300"},{value:"610303",name:"金台区",parent:"610300"},{value:"610304",name:"陈仓区",parent:"610300"},{value:"610322",name:"凤翔县",parent:"610300"},{value:"610323",name:"岐山县",parent:"610300"},{value:"610324",name:"扶风县",parent:"610300"},{value:"610326",name:"眉县",parent:"610300"},{value:"610327",name:"陇县",parent:"610300"},{value:"610328",name:"千阳县",parent:"610300"},{value:"610329",name:"麟游县",parent:"610300"},{value:"610330",name:"凤县",parent:"610300"},{value:"610331",name:"太白县",parent:"610300"},{value:"610332",name:"其它区",parent:"610300"},{value:"610402",name:"秦都区",parent:"610400"},{value:"610403",name:"杨陵区",parent:"610400"},{value:"610404",name:"渭城区",parent:"610400"},{value:"610422",name:"三原县",parent:"610400"},{value:"610423",name:"泾阳县",parent:"610400"},{value:"610424",name:"乾县",parent:"610400"},{value:"610425",name:"礼泉县",parent:"610400"},{value:"610426",name:"永寿县",parent:"610400"},{value:"610427",name:"彬县",parent:"610400"},{value:"610428",name:"长武县",parent:"610400"},{value:"610429",name:"旬邑县",parent:"610400"},{value:"610430",name:"淳化县",parent:"610400"},{value:"610431",name:"武功县",parent:"610400"},{value:"610481",name:"兴平市",parent:"610400"},{value:"610482",name:"其它区",parent:"610400"},{value:"610502",name:"临渭区",parent:"610500"},{value:"610521",name:"华县",parent:"610500"},{value:"610522",name:"潼关县",parent:"610500"},{value:"610523",name:"大荔县",parent:"610500"},{value:"610524",name:"合阳县",parent:"610500"},{value:"610525",name:"澄城县",parent:"610500"},{value:"610526",name:"蒲城县",parent:"610500"},{value:"610527",name:"白水县",parent:"610500"},{value:"610528",name:"富平县",parent:"610500"},{value:"610581",name:"韩城市",parent:"610500"},{value:"610582",name:"华阴市",parent:"610500"},{value:"610583",name:"其它区",parent:"610500"},{value:"610602",name:"宝塔区",parent:"610600"},{value:"610621",name:"延长县",parent:"610600"},{value:"610622",name:"延川县",parent:"610600"},{value:"610623",name:"子长县",parent:"610600"},{value:"610624",name:"安塞县",parent:"610600"},{value:"610625",name:"志丹县",parent:"610600"},{value:"610626",name:"吴起县",parent:"610600"},{value:"610627",name:"甘泉县",parent:"610600"},{value:"610628",name:"富县",parent:"610600"},{value:"610629",name:"洛川县",parent:"610600"},{value:"610630",name:"宜川县",parent:"610600"},{value:"610631",name:"黄龙县",parent:"610600"},{value:"610632",name:"黄陵县",parent:"610600"},{value:"610633",name:"其它区",parent:"610600"},{value:"610702",name:"汉台区",parent:"610700"},{value:"610721",name:"南郑县",parent:"610700"},{value:"610722",name:"城固县",parent:"610700"},{value:"610723",name:"洋县",parent:"610700"},{value:"610724",name:"西乡县",parent:"610700"},{value:"610725",name:"勉县",parent:"610700"},{value:"610726",name:"宁强县",parent:"610700"},{value:"610727",name:"略阳县",parent:"610700"},{value:"610728",name:"镇巴县",parent:"610700"},{value:"610729",name:"留坝县",parent:"610700"},{value:"610730",name:"佛坪县",parent:"610700"},{value:"610731",name:"其它区",parent:"610700"},{value:"610802",name:"榆阳区",parent:"610800"},{value:"610821",name:"神木县",parent:"610800"},{value:"610822",name:"府谷县",parent:"610800"},{value:"610823",name:"横山县",parent:"610800"},{value:"610824",name:"靖边县",parent:"610800"},{value:"610825",name:"定边县",parent:"610800"},{value:"610826",name:"绥德县",parent:"610800"},{value:"610827",name:"米脂县",parent:"610800"},{value:"610828",name:"佳县",parent:"610800"},{value:"610829",name:"吴堡县",parent:"610800"},{value:"610830",name:"清涧县",parent:"610800"},{value:"610831",name:"子洲县",parent:"610800"},{value:"610832",name:"其它区",parent:"610800"},{value:"610902",name:"汉滨区",parent:"610900"},{value:"610921",name:"汉阴县",parent:"610900"},{value:"610922",name:"石泉县",parent:"610900"},{value:"610923",name:"宁陕县",parent:"610900"},{value:"610924",name:"紫阳县",parent:"610900"},{value:"610925",name:"岚皋县",parent:"610900"},{value:"610926",name:"平利县",parent:"610900"},{value:"610927",name:"镇坪县",parent:"610900"},{value:"610928",name:"旬阳县",parent:"610900"},{value:"610929",name:"白河县",parent:"610900"},{value:"610930",name:"其它区",parent:"610900"},{value:"611002",name:"商州区",parent:"611000"},{value:"611021",name:"洛南县",parent:"611000"},{value:"611022",name:"丹凤县",parent:"611000"},{value:"611023",name:"商南县",parent:"611000"},{value:"611024",name:"山阳县",parent:"611000"},{value:"611025",name:"镇安县",parent:"611000"},{value:"611026",name:"柞水县",parent:"611000"},{value:"611027",name:"其它区",parent:"611000"},{value:"620102",name:"城关区",parent:"620100"},{value:"620103",name:"七里河区",parent:"620100"},{value:"620104",name:"西固区",parent:"620100"},{value:"620105",name:"安宁区",parent:"620100"},{value:"620111",name:"红古区",parent:"620100"},{value:"620121",name:"永登县",parent:"620100"},{value:"620122",name:"皋兰县",parent:"620100"},{value:"620123",name:"榆中县",parent:"620100"},{value:"620124",name:"其它区",parent:"620100"},{value:"620302",name:"金川区",parent:"620300"},{value:"620321",name:"永昌县",parent:"620300"},{value:"620322",name:"其它区",parent:"620300"},{value:"620402",name:"白银区",parent:"620400"},{value:"620403",name:"平川区",parent:"620400"},{value:"620421",name:"靖远县",parent:"620400"},{value:"620422",name:"会宁县",parent:"620400"},{value:"620423",name:"景泰县",parent:"620400"},{value:"620424",name:"其它区",parent:"620400"},{value:"620502",name:"秦州区",parent:"620500"},{value:"620503",name:"麦积区",parent:"620500"},{value:"620521",name:"清水县",parent:"620500"},{value:"620522",name:"秦安县",parent:"620500"},{value:"620523",name:"甘谷县",parent:"620500"},{value:"620524",name:"武山县",parent:"620500"},{value:"620525",name:"张家川回族自治县",parent:"620500"},{value:"620526",name:"其它区",parent:"620500"},{value:"620602",name:"凉州区",parent:"620600"},{value:"620621",name:"民勤县",parent:"620600"},{value:"620622",name:"古浪县",parent:"620600"},{value:"620623",name:"天祝藏族自治县",parent:"620600"},{value:"620624",name:"其它区",parent:"620600"},{value:"620702",name:"甘州区",parent:"620700"},{value:"620721",name:"肃南裕固族自治县",parent:"620700"},{value:"620722",name:"民乐县",parent:"620700"},{value:"620723",name:"临泽县",parent:"620700"},{value:"620724",name:"高台县",parent:"620700"},{value:"620725",name:"山丹县",parent:"620700"},{value:"620726",name:"其它区",parent:"620700"},{value:"620802",name:"崆峒区",parent:"620800"},{value:"620821",name:"泾川县",parent:"620800"},{value:"620822",name:"灵台县",parent:"620800"},{value:"620823",name:"崇信县",parent:"620800"},{value:"620824",name:"华亭县",parent:"620800"},{value:"620825",name:"庄浪县",parent:"620800"},{value:"620826",name:"静宁县",parent:"620800"},{value:"620827",name:"其它区",parent:"620800"},{value:"620902",name:"肃州区",parent:"620900"},{value:"620921",name:"金塔县",parent:"620900"},{value:"620922",name:"瓜州县",parent:"620900"},{value:"620923",name:"肃北蒙古族自治县",parent:"620900"},{value:"620924",name:"阿克塞哈萨克族自治县",parent:"620900"},{value:"620981",name:"玉门市",parent:"620900"},{value:"620982",name:"敦煌市",parent:"620900"},{value:"620983",name:"其它区",parent:"620900"},{value:"621002",name:"西峰区",parent:"621000"},{value:"621021",name:"庆城县",parent:"621000"},{value:"621022",name:"环县",parent:"621000"},{value:"621023",name:"华池县",parent:"621000"},{value:"621024",name:"合水县",parent:"621000"},{value:"621025",name:"正宁县",parent:"621000"},{value:"621026",name:"宁县",parent:"621000"},{value:"621027",name:"镇原县",parent:"621000"},{value:"621028",name:"其它区",parent:"621000"},{value:"621102",name:"安定区",parent:"621100"},{value:"621121",name:"通渭县",parent:"621100"},{value:"621122",name:"陇西县",parent:"621100"},{value:"621123",name:"渭源县",parent:"621100"},{value:"621124",name:"临洮县",parent:"621100"},{value:"621125",name:"漳县",parent:"621100"},{value:"621126",name:"岷县",parent:"621100"},{value:"621127",name:"其它区",parent:"621100"},{value:"621202",name:"武都区",parent:"621200"},{value:"621221",name:"成县",parent:"621200"},{value:"621222",name:"文县",parent:"621200"},{value:"621223",name:"宕昌县",parent:"621200"},{value:"621224",name:"康县",parent:"621200"},{value:"621225",name:"西和县",parent:"621200"},{value:"621226",name:"礼县",parent:"621200"},{value:"621227",name:"徽县",parent:"621200"},{value:"621228",name:"两当县",parent:"621200"},{value:"621229",name:"其它区",parent:"621200"},{value:"622901",name:"临夏市",parent:"622900"},{value:"622921",name:"临夏县",parent:"622900"},{value:"622922",name:"康乐县",parent:"622900"},{value:"622923",name:"永靖县",parent:"622900"},{value:"622924",name:"广河县",parent:"622900"},{value:"622925",name:"和政县",parent:"622900"},{value:"622926",name:"东乡族自治县",parent:"622900"},{value:"622927",name:"积石山保安族东乡族撒拉族自治县",parent:"622900"},{value:"622928",name:"其它区",parent:"622900"},{value:"623001",name:"合作市",parent:"623000"},{value:"623021",name:"临潭县",parent:"623000"},{value:"623022",name:"卓尼县",parent:"623000"},{value:"623023",name:"舟曲县",parent:"623000"},{value:"623024",name:"迭部县",parent:"623000"},{value:"623025",name:"玛曲县",parent:"623000"},{value:"623026",name:"碌曲县",parent:"623000"},{value:"623027",name:"夏河县",parent:"623000"},{value:"623028",name:"其它区",parent:"623000"},{value:"630102",name:"城东区",parent:"630100"},{value:"630103",name:"城中区",parent:"630100"},{value:"630104",name:"城西区",parent:"630100"},{value:"630105",name:"城北区",parent:"630100"},{value:"630121",name:"大通回族土族自治县",parent:"630100"},{value:"630122",name:"湟中县",parent:"630100"},{value:"630123",name:"湟源县",parent:"630100"},{value:"630124",name:"其它区",parent:"630100"},{value:"632121",name:"平安区",parent:"632100"},{value:"632122",name:"民和回族土族自治县",parent:"632100"},{value:"632123",name:"乐都区",parent:"632100"},{value:"632126",name:"互助土族自治县",parent:"632100"},{value:"632127",name:"化隆回族自治县",parent:"632100"},{value:"632128",name:"循化撒拉族自治县",parent:"632100"},{value:"632129",name:"其它区",parent:"632100"},{value:"632221",name:"门源回族自治县",parent:"632200"},{value:"632222",name:"祁连县",parent:"632200"},{value:"632223",name:"海晏县",parent:"632200"},{value:"632224",name:"刚察县",parent:"632200"},{value:"632225",name:"其它区",parent:"632200"},{value:"632321",name:"同仁县",parent:"632300"},{value:"632322",name:"尖扎县",parent:"632300"},{value:"632323",name:"泽库县",parent:"632300"},{value:"632324",name:"河南蒙古族自治县",parent:"632300"},{value:"632325",name:"其它区",parent:"632300"},{value:"632521",name:"共和县",parent:"632500"},{value:"632522",name:"同德县",parent:"632500"},{value:"632523",name:"贵德县",parent:"632500"},{value:"632524",name:"兴海县",parent:"632500"},{value:"632525",name:"贵南县",parent:"632500"},{value:"632526",name:"其它区",parent:"632500"},{value:"632621",name:"玛沁县",parent:"632600"},{value:"632622",name:"班玛县",parent:"632600"},{value:"632623",name:"甘德县",parent:"632600"},{value:"632624",name:"达日县",parent:"632600"},{value:"632625",name:"久治县",parent:"632600"},{value:"632626",name:"玛多县",parent:"632600"},{value:"632627",name:"其它区",parent:"632600"},{value:"632721",name:"玉树市",parent:"632700"},{value:"632722",name:"杂多县",parent:"632700"},{value:"632723",name:"称多县",parent:"632700"},{value:"632724",name:"治多县",parent:"632700"},{value:"632725",name:"囊谦县",parent:"632700"},{value:"632726",name:"曲麻莱县",parent:"632700"},{value:"632727",name:"其它区",parent:"632700"},{value:"632801",name:"格尔木市",parent:"632800"},{value:"632802",name:"德令哈市",parent:"632800"},{value:"632821",name:"乌兰县",parent:"632800"},{value:"632822",name:"都兰县",parent:"632800"},{value:"632823",name:"天峻县",parent:"632800"},{value:"632824",name:"其它区",parent:"632800"},{value:"640104",name:"兴庆区",parent:"640100"},{value:"640105",name:"西夏区",parent:"640100"},{value:"640106",name:"金凤区",parent:"640100"},{value:"640121",name:"永宁县",parent:"640100"},{value:"640122",name:"贺兰县",parent:"640100"},{value:"640181",name:"灵武市",parent:"640100"},{value:"640182",name:"其它区",parent:"640100"},{value:"640202",name:"大武口区",parent:"640200"},{value:"640205",name:"惠农区",parent:"640200"},{value:"640221",name:"平罗县",parent:"640200"},{value:"640222",name:"其它区",parent:"640200"},{value:"640302",name:"利通区",parent:"640300"},{value:"640303",name:"红寺堡区",parent:"640300"},{value:"640323",name:"盐池县",parent:"640300"},{value:"640324",name:"同心县",parent:"640300"},{value:"640381",name:"青铜峡市",parent:"640300"},{value:"640382",name:"其它区",parent:"640300"},{value:"640402",name:"原州区",parent:"640400"},{value:"640422",name:"西吉县",parent:"640400"},{value:"640423",name:"隆德县",parent:"640400"},{value:"640424",name:"泾源县",parent:"640400"},{value:"640425",name:"彭阳县",parent:"640400"},{value:"640426",name:"其它区",parent:"640400"},{value:"640502",name:"沙坡头区",parent:"640500"},{value:"640521",name:"中宁县",parent:"640500"},{value:"640522",name:"海原县",parent:"640500"},{value:"640523",name:"其它区",parent:"640500"},{value:"650102",name:"天山区",parent:"650100"},{value:"650103",name:"沙依巴克区",parent:"650100"},{value:"650104",name:"新市区",parent:"650100"},{value:"650105",name:"水磨沟区",parent:"650100"},{value:"650106",name:"头屯河区",parent:"650100"},{value:"650107",name:"达坂城区",parent:"650100"},{value:"650108",name:"东山区",parent:"650100"},{value:"650109",name:"米东区",parent:"650100"},{value:"650121",name:"乌鲁木齐县",parent:"650100"},{value:"650122",name:"其它区",parent:"650100"},{value:"650202",name:"独山子区",parent:"650200"},{value:"650203",name:"克拉玛依区",parent:"650200"},{value:"650204",name:"白碱滩区",parent:"650200"},{value:"650205",name:"乌尔禾区",parent:"650200"},{value:"650206",name:"其它区",parent:"650200"},{value:"652101",name:"高昌区",parent:"652100"},{value:"652122",name:"鄯善县",parent:"652100"},{value:"652123",name:"托克逊县",parent:"652100"},{value:"652124",name:"其它区",parent:"652100"},{value:"652201",name:"哈密市",parent:"652200"},{value:"652222",name:"巴里坤哈萨克自治县",parent:"652200"},{value:"652223",name:"伊吾县",parent:"652200"},{value:"652224",name:"其它区",parent:"652200"},{value:"652301",name:"昌吉市",parent:"652300"},{value:"652302",name:"阜康市",parent:"652300"},{value:"652303",name:"米泉市",parent:"652300"},{value:"652323",name:"呼图壁县",parent:"652300"},{value:"652324",name:"玛纳斯县",parent:"652300"},{value:"652325",name:"奇台县",parent:"652300"},{value:"652327",name:"吉木萨尔县",parent:"652300"},{value:"652328",name:"木垒哈萨克自治县",parent:"652300"},{value:"652329",name:"其它区",parent:"652300"},{value:"652701",name:"博乐市",parent:"652700"},{value:"652702",name:"阿拉山口市",parent:"652700"},{value:"652722",name:"精河县",parent:"652700"},{value:"652723",name:"温泉县",parent:"652700"},{value:"652724",name:"其它区",parent:"652700"},{value:"652801",name:"库尔勒市",parent:"652800"},{value:"652822",name:"轮台县",parent:"652800"},{value:"652823",name:"尉犁县",parent:"652800"},{value:"652824",name:"若羌县",parent:"652800"},{value:"652825",name:"且末县",parent:"652800"},{value:"652826",name:"焉耆回族自治县",parent:"652800"},{value:"652827",name:"和静县",parent:"652800"},{value:"652828",name:"和硕县",parent:"652800"},{value:"652829",name:"博湖县",parent:"652800"},{value:"652830",name:"其它区",parent:"652800"},{value:"652901",name:"阿克苏市",parent:"652900"},{value:"652922",name:"温宿县",parent:"652900"},{value:"652923",name:"库车县",parent:"652900"},{value:"652924",name:"沙雅县",parent:"652900"},{value:"652925",name:"新和县",parent:"652900"},{value:"652926",name:"拜城县",parent:"652900"},{value:"652927",name:"乌什县",parent:"652900"},{value:"652928",name:"阿瓦提县",parent:"652900"},{value:"652929",name:"柯坪县",parent:"652900"},{value:"652930",name:"其它区",parent:"652900"},{value:"653001",name:"阿图什市",parent:"653000"},{value:"653022",name:"阿克陶县",parent:"653000"},{value:"653023",name:"阿合奇县",parent:"653000"},{value:"653024",name:"乌恰县",parent:"653000"},{value:"653025",name:"其它区",parent:"653000"},{value:"653101",name:"喀什市",parent:"653100"},{value:"653121",name:"疏附县",parent:"653100"},{value:"653122",name:"疏勒县",parent:"653100"},{value:"653123",name:"英吉沙县",parent:"653100"},{value:"653124",name:"泽普县",parent:"653100"},{value:"653125",name:"莎车县",parent:"653100"},{value:"653126",name:"叶城县",parent:"653100"},{value:"653127",name:"麦盖提县",parent:"653100"},{value:"653128",name:"岳普湖县",parent:"653100"},{value:"653129",name:"伽师县",parent:"653100"},{value:"653130",name:"巴楚县",parent:"653100"},{value:"653131",name:"塔什库尔干塔吉克自治县",parent:"653100"},{value:"653132",name:"其它区",parent:"653100"},{value:"653201",name:"和田市",parent:"653200"},{value:"653221",name:"和田县",parent:"653200"},{value:"653222",name:"墨玉县",parent:"653200"},{value:"653223",name:"皮山县",parent:"653200"},{value:"653224",name:"洛浦县",parent:"653200"},{value:"653225",name:"策勒县",parent:"653200"},{value:"653226",name:"于田县",parent:"653200"},{value:"653227",name:"民丰县",parent:"653200"},{value:"653228",name:"其它区",parent:"653200"},{value:"654002",name:"伊宁市",parent:"654000"},{value:"654003",name:"奎屯市",parent:"654000"},{value:"654004",name:"霍尔果斯市",parent:"654000"},{value:"654021",name:"伊宁县",parent:"654000"},{value:"654022",name:"察布查尔锡伯自治县",parent:"654000"},{value:"654023",name:"霍城县",parent:"654000"},{value:"654024",name:"巩留县",parent:"654000"},{value:"654025",name:"新源县",parent:"654000"},{value:"654026",name:"昭苏县",parent:"654000"},{value:"654027",name:"特克斯县",parent:"654000"},{value:"654028",name:"尼勒克县",parent:"654000"},{value:"654029",name:"其它区",parent:"654000"},{value:"654201",name:"塔城市",parent:"654200"},{value:"654202",name:"乌苏市",parent:"654200"},{value:"654221",name:"额敏县",parent:"654200"},{value:"654223",name:"沙湾县",parent:"654200"},{value:"654224",name:"托里县",parent:"654200"},{value:"654225",name:"裕民县",parent:"654200"},{value:"654226",name:"和布克赛尔蒙古自治县",parent:"654200"},{value:"654227",name:"其它区",parent:"654200"},{value:"654301",name:"阿勒泰市",parent:"654300"},{value:"654321",name:"布尔津县",parent:"654300"},{value:"654322",name:"富蕴县",parent:"654300"},{value:"654323",name:"福海县",parent:"654300"},{value:"654324",name:"哈巴河县",parent:"654300"},{value:"654325",name:"青河县",parent:"654300"},{value:"654326",name:"吉木乃县",parent:"654300"},{value:"654327",name:"其它区",parent:"654300"},{value:"659001",name:"石河子市",parent:"650000"},{value:"659002",name:"阿拉尔市",parent:"650000"},{value:"659003",name:"图木舒克市",parent:"650000"},{value:"659004",name:"五家渠市",parent:"650000"},{value:"659007",name:"双河市",parent:"659000"},{value:"659008",name:"可克达拉市",parent:"659000"},{value:"710101",name:"中正区",parent:"710100"},{value:"710102",name:"大同区",parent:"710100"},{value:"710103",name:"中山区",parent:"710100"},{value:"710104",name:"松山区",parent:"710100"},{value:"710105",name:"大安区",parent:"710100"},{value:"710106",name:"万华区",parent:"710100"},{value:"710107",name:"信义区",parent:"710100"},{value:"710108",name:"士林区",parent:"710100"},{value:"710109",name:"北投区",parent:"710100"},{value:"710110",name:"内湖区",parent:"710100"},{value:"710111",name:"南港区",parent:"710100"},{value:"710112",name:"文山区",parent:"710100"},{value:"710113",name:"其它区",parent:"710100"},{value:"710201",name:"新兴区",parent:"710200"},{value:"710202",name:"前金区",parent:"710200"},{value:"710203",name:"芩雅区",parent:"710200"},{value:"710204",name:"盐埕区",parent:"710200"},{value:"710205",name:"鼓山区",parent:"710200"},{value:"710206",name:"旗津区",parent:"710200"},{value:"710207",name:"前镇区",parent:"710200"},{value:"710208",name:"三民区",parent:"710200"},{value:"710209",name:"左营区",parent:"710200"},{value:"710210",name:"楠梓区",parent:"710200"},{value:"710211",name:"小港区",parent:"710200"},{value:"710212",name:"其它区",parent:"710200"},{value:"710241",name:"苓雅区",parent:"710200"},{value:"710242",name:"仁武区",parent:"710200"},{value:"710243",name:"大社区",parent:"710200"},{value:"710244",name:"冈山区",parent:"710200"},{value:"710245",name:"路竹区",parent:"710200"},{value:"710246",name:"阿莲区",parent:"710200"},{value:"710247",name:"田寮区",parent:"710200"},{value:"710248",name:"燕巢区",parent:"710200"},{value:"710249",name:"桥头区",parent:"710200"},{value:"710250",name:"梓官区",parent:"710200"},{value:"710251",name:"弥陀区",parent:"710200"},{value:"710252",name:"永安区",parent:"710200"},{value:"710253",name:"湖内区",parent:"710200"},{value:"710254",name:"凤山区",parent:"710200"},{value:"710255",name:"大寮区",parent:"710200"},{value:"710256",name:"林园区",parent:"710200"},{value:"710257",name:"鸟松区",parent:"710200"},{value:"710258",name:"大树区",parent:"710200"},{value:"710259",name:"旗山区",parent:"710200"},{value:"710260",name:"美浓区",parent:"710200"},{value:"710261",name:"六龟区",parent:"710200"},{value:"710262",name:"内门区",parent:"710200"},{value:"710263",name:"杉林区",parent:"710200"},{value:"710264",name:"甲仙区",parent:"710200"},{value:"710265",name:"桃源区",parent:"710200"},{value:"710266",name:"那玛夏区",parent:"710200"},{value:"710267",name:"茂林区",parent:"710200"},{value:"710268",name:"茄萣区",parent:"710200"},{value:"710301",name:"中西区",parent:"710300"},{value:"710302",name:"东区",parent:"710300"},{value:"710303",name:"南区",parent:"710300"},{value:"710304",name:"北区",parent:"710300"},{value:"710305",name:"安平区",parent:"710300"},{value:"710306",name:"安南区",parent:"710300"},{value:"710307",name:"其它区",parent:"710300"},{value:"710339",name:"永康区",parent:"710300"},{value:"710340",name:"归仁区",parent:"710300"},{value:"710341",name:"新化区",parent:"710300"},{value:"710342",name:"左镇区",parent:"710300"},{value:"710343",name:"玉井区",parent:"710300"},{value:"710344",name:"楠西区",parent:"710300"},{value:"710345",name:"南化区",parent:"710300"},{value:"710346",name:"仁德区",parent:"710300"},{value:"710347",name:"关庙区",parent:"710300"},{value:"710348",name:"龙崎区",parent:"710300"},{value:"710349",name:"官田区",parent:"710300"},{value:"710350",name:"麻豆区",parent:"710300"},{value:"710351",name:"佳里区",parent:"710300"},{value:"710352",name:"西港区",parent:"710300"},{value:"710353",name:"七股区",parent:"710300"},{value:"710354",name:"将军区",parent:"710300"},{value:"710355",name:"学甲区",parent:"710300"},{value:"710356",name:"北门区",parent:"710300"},{value:"710357",name:"新营区",parent:"710300"},{value:"710358",name:"后壁区",parent:"710300"},{value:"710359",name:"白河区",parent:"710300"},{value:"710360",name:"东山区",parent:"710300"},{value:"710361",name:"六甲区",parent:"710300"},{value:"710362",name:"下营区",parent:"710300"},{value:"710363",name:"柳营区",parent:"710300"},{value:"710364",name:"盐水区",parent:"710300"},{value:"710365",name:"善化区",parent:"710300"},{value:"710366",name:"大内区",parent:"710300"},{value:"710367",name:"山上区",parent:"710300"},{value:"710368",name:"新市区",parent:"710300"},{value:"710369",name:"安定区",parent:"710300"},{value:"710401",name:"中区",parent:"710400"},{value:"710402",name:"东区",parent:"710400"},{value:"710403",name:"南区",parent:"710400"},{value:"710404",name:"西区",parent:"710400"},{value:"710405",name:"北区",parent:"710400"},{value:"710406",name:"北屯区",parent:"710400"},{value:"710407",name:"西屯区",parent:"710400"},{value:"710408",name:"南屯区",parent:"710400"},{value:"710409",name:"其它区",parent:"710400"},{value:"710431",name:"太平区",parent:"710400"},{value:"710432",name:"大里区",parent:"710400"},{value:"710433",name:"雾峰区",parent:"710400"},{value:"710434",name:"乌日区",parent:"710400"},{value:"710435",name:"丰原区",parent:"710400"},{value:"710436",name:"后里区",parent:"710400"},{value:"710437",name:"石冈区",parent:"710400"},{value:"710438",name:"东势区",parent:"710400"},{value:"710439",name:"和平区",parent:"710400"},{value:"710440",name:"新社区",parent:"710400"},{value:"710441",name:"潭子区",parent:"710400"},{value:"710442",name:"大雅区",parent:"710400"},{value:"710443",name:"神冈区",parent:"710400"},{value:"710444",name:"大肚区",parent:"710400"},{value:"710445",name:"沙鹿区",parent:"710400"},{value:"710446",name:"龙井区",parent:"710400"},{value:"710447",name:"梧栖区",parent:"710400"},{value:"710448",name:"清水区",parent:"710400"},{value:"710449",name:"大甲区",parent:"710400"},{value:"710450",name:"外埔区",parent:"710400"},{value:"710451",name:"大安区",parent:"710400"},{value:"710507",name:"金沙镇",parent:"710500"},{value:"710508",name:"金湖镇",parent:"710500"},{value:"710509",name:"金宁乡",parent:"710500"},{value:"710510",name:"金城镇",parent:"710500"},{value:"710511",name:"烈屿乡",parent:"710500"},{value:"710512",name:"乌坵乡",parent:"710500"},{value:"710614",name:"南投市",parent:"710600"},{value:"710615",name:"中寮乡",parent:"710600"},{value:"710616",name:"草屯镇",parent:"710600"},{value:"710617",name:"国姓乡",parent:"710600"},{value:"710618",name:"埔里镇",parent:"710600"},{value:"710619",name:"仁爱乡",parent:"710600"},{value:"710620",name:"名间乡",parent:"710600"},{value:"710621",name:"集集镇",parent:"710600"},{value:"710622",name:"水里乡",parent:"710600"},{value:"710623",name:"鱼池乡",parent:"710600"},{value:"710624",name:"信义乡",parent:"710600"},{value:"710625",name:"竹山镇",parent:"710600"},{value:"710626",name:"鹿谷乡",parent:"710600"},{value:"710701",name:"仁爱区",parent:"710700"},{value:"710702",name:"信义区",parent:"710700"},{value:"710703",name:"中正区",parent:"710700"},{value:"710704",name:"中山区",parent:"710700"},{value:"710705",name:"安乐区",parent:"710700"},{value:"710706",name:"暖暖区",parent:"710700"},{value:"710707",name:"七堵区",parent:"710700"},{value:"710708",name:"其它区",parent:"710700"},{value:"710801",name:"东区",parent:"710800"},{value:"710802",name:"北区",parent:"710800"},{value:"710803",name:"香山区",parent:"710800"},{value:"710804",name:"其它区",parent:"710800"},{value:"710901",name:"东区",parent:"710900"},{value:"710902",name:"西区",parent:"710900"},{value:"710903",name:"其它区",parent:"710900"},{value:"711130",name:"万里区",parent:"711100"},{value:"711131",name:"金山区",parent:"711100"},{value:"711132",name:"板桥区",parent:"711100"},{value:"711133",name:"汐止区",parent:"711100"},{value:"711134",name:"深坑区",parent:"711100"},{value:"711135",name:"石碇区",parent:"711100"},{value:"711136",name:"瑞芳区",parent:"711100"},{value:"711137",name:"平溪区",parent:"711100"},{value:"711138",name:"双溪区",parent:"711100"},{value:"711139",name:"贡寮区",parent:"711100"},{value:"711140",name:"新店区",parent:"711100"},{value:"711141",name:"坪林区",parent:"711100"},{value:"711142",name:"乌来区",parent:"711100"},{value:"711143",name:"永和区",parent:"711100"},{value:"711144",name:"中和区",parent:"711100"},{value:"711145",name:"土城区",parent:"711100"},{value:"711146",name:"三峡区",parent:"711100"},{value:"711147",name:"树林区",parent:"711100"},{value:"711148",name:"莺歌区",parent:"711100"},{value:"711149",name:"三重区",parent:"711100"},{value:"711150",name:"新庄区",parent:"711100"},{value:"711151",name:"泰山区",parent:"711100"},{value:"711152",name:"林口区",parent:"711100"},{value:"711153",name:"芦洲区",parent:"711100"},{value:"711154",name:"五股区",parent:"711100"},{value:"711155",name:"八里区",parent:"711100"},{value:"711156",name:"淡水区",parent:"711100"},{value:"711157",name:"三芝区",parent:"711100"},{value:"711158",name:"石门区",parent:"711100"},{value:"711214",name:"宜兰市",parent:"711200"},{value:"711215",name:"头城镇",parent:"711200"},{value:"711216",name:"礁溪乡",parent:"711200"},{value:"711217",name:"壮围乡",parent:"711200"},{value:"711218",name:"员山乡",parent:"711200"},{value:"711219",name:"罗东镇",parent:"711200"},{value:"711220",name:"三星乡",parent:"711200"},{value:"711221",name:"大同乡",parent:"711200"},{value:"711222",name:"五结乡",parent:"711200"},{value:"711223",name:"冬山乡",parent:"711200"},{value:"711224",name:"苏澳镇",parent:"711200"},{value:"711225",name:"南澳乡",parent:"711200"},{value:"711226",name:"钓鱼台",parent:"711200"},{value:"711314",name:"竹北市",parent:"711300"},{value:"711315",name:"湖口乡",parent:"711300"},{value:"711316",name:"新丰乡",parent:"711300"},{value:"711317",name:"新埔镇",parent:"711300"},{value:"711318",name:"关西镇",parent:"711300"},{value:"711319",name:"芎林乡",parent:"711300"},{value:"711320",name:"宝山乡",parent:"711300"},{value:"711321",name:"竹东镇",parent:"711300"},{value:"711322",name:"五峰乡",parent:"711300"},{value:"711323",name:"横山乡",parent:"711300"},{value:"711324",name:"尖石乡",parent:"711300"},{value:"711325",name:"北埔乡",parent:"711300"},{value:"711326",name:"峨眉乡",parent:"711300"},{value:"711414",name:"中坜市",parent:"711400"},{value:"711415",name:"平镇市",parent:"711400"},{value:"711416",name:"龙潭乡",parent:"711400"},{value:"711417",name:"杨梅市",parent:"711400"},{value:"711418",name:"新屋乡",parent:"711400"},{value:"711419",name:"观音乡",parent:"711400"},{value:"711420",name:"桃园市",parent:"711400"},{value:"711421",name:"龟山乡",parent:"711400"},{value:"711422",name:"八德市",parent:"711400"},{value:"711423",name:"大溪镇",parent:"711400"},{value:"711424",name:"复兴乡",parent:"711400"},{value:"711425",name:"大园乡",parent:"711400"},{value:"711426",name:"芦竹乡",parent:"711400"},{value:"711519",name:"竹南镇",parent:"711500"},{value:"711520",name:"头份镇",parent:"711500"},{value:"711521",name:"三湾乡",parent:"711500"},{value:"711522",name:"南庄乡",parent:"711500"},{value:"711523",name:"狮潭乡",parent:"711500"},{value:"711524",name:"后龙镇",parent:"711500"},{value:"711525",name:"通霄镇",parent:"711500"},{value:"711526",name:"苑里镇",parent:"711500"},{value:"711527",name:"苗栗市",parent:"711500"},{value:"711528",name:"造桥乡",parent:"711500"},{value:"711529",name:"头屋乡",parent:"711500"},{value:"711530",name:"公馆乡",parent:"711500"},{value:"711531",name:"大湖乡",parent:"711500"},{value:"711532",name:"泰安乡",parent:"711500"},{value:"711533",name:"铜锣乡",parent:"711500"},{value:"711534",name:"三义乡",parent:"711500"},{value:"711535",name:"西湖乡",parent:"711500"},{value:"711536",name:"卓兰镇",parent:"711500"},{value:"711727",name:"彰化市",parent:"711700"},{value:"711728",name:"芬园乡",parent:"711700"},{value:"711729",name:"花坛乡",parent:"711700"},{value:"711730",name:"秀水乡",parent:"711700"},{value:"711731",name:"鹿港镇",parent:"711700"},{value:"711732",name:"福兴乡",parent:"711700"},{value:"711733",name:"线西乡",parent:"711700"},{value:"711734",name:"和美镇",parent:"711700"},{value:"711735",name:"伸港乡",parent:"711700"},{value:"711736",name:"员林镇",parent:"711700"},{value:"711737",name:"社头乡",parent:"711700"},{value:"711738",name:"永靖乡",parent:"711700"},{value:"711739",name:"埔心乡",parent:"711700"},{value:"711740",name:"溪湖镇",parent:"711700"},{value:"711741",name:"大村乡",parent:"711700"},{value:"711742",name:"埔盐乡",parent:"711700"},{value:"711743",name:"田中镇",parent:"711700"},{value:"711744",name:"北斗镇",parent:"711700"},{value:"711745",name:"田尾乡",parent:"711700"},{value:"711746",name:"埤头乡",parent:"711700"},{value:"711747",name:"溪州乡",parent:"711700"},{value:"711748",name:"竹塘乡",parent:"711700"},{value:"711749",name:"二林镇",parent:"711700"},{value:"711750",name:"大城乡",parent:"711700"},{value:"711751",name:"芳苑乡",parent:"711700"},{value:"711752",name:"二水乡",parent:"711700"},{value:"711919",name:"番路乡",parent:"711900"},{value:"711920",name:"梅山乡",parent:"711900"},{value:"711921",name:"竹崎乡",parent:"711900"},{value:"711922",name:"阿里山乡",parent:"711900"},{value:"711923",name:"中埔乡",parent:"711900"},{value:"711924",name:"大埔乡",parent:"711900"},{value:"711925",name:"水上乡",parent:"711900"},{value:"711926",name:"鹿草乡",parent:"711900"},{value:"711927",name:"太保市",parent:"711900"},{value:"711928",name:"朴子市",parent:"711900"},{value:"711929",name:"东石乡",parent:"711900"},{value:"711930",name:"六脚乡",parent:"711900"},{value:"711931",name:"新港乡",parent:"711900"},{value:"711932",name:"民雄乡",parent:"711900"},{value:"711933",name:"大林镇",parent:"711900"},{value:"711934",name:"溪口乡",parent:"711900"},{value:"711935",name:"义竹乡",parent:"711900"},{value:"711936",name:"布袋镇",parent:"711900"},{value:"712121",name:"斗南镇",parent:"712100"},{value:"712122",name:"大埤乡",parent:"712100"},{value:"712123",name:"虎尾镇",parent:"712100"},{value:"712124",name:"土库镇",parent:"712100"},{value:"712125",name:"褒忠乡",parent:"712100"},{value:"712126",name:"东势乡",parent:"712100"},{value:"712127",name:"台西乡",parent:"712100"},{value:"712128",name:"仑背乡",parent:"712100"},{value:"712129",name:"麦寮乡",parent:"712100"},{value:"712130",name:"斗六市",parent:"712100"},{value:"712131",name:"林内乡",parent:"712100"},{value:"712132",name:"古坑乡",parent:"712100"},{value:"712133",name:"莿桐乡",parent:"712100"},{value:"712134",name:"西螺镇",parent:"712100"},{value:"712135",name:"二仑乡",parent:"712100"},{value:"712136",name:"北港镇",parent:"712100"},{value:"712137",name:"水林乡",parent:"712100"},{value:"712138",name:"口湖乡",parent:"712100"},{value:"712139",name:"四湖乡",parent:"712100"},{value:"712140",name:"元长乡",parent:"712100"},{value:"712434",name:"屏东市",parent:"712400"},{value:"712435",name:"三地门乡",parent:"712400"},{value:"712436",name:"雾台乡",parent:"712400"},{value:"712437",name:"玛家乡",parent:"712400"},{value:"712438",name:"九如乡",parent:"712400"},{value:"712439",name:"里港乡",parent:"712400"},{value:"712440",name:"高树乡",parent:"712400"},{value:"712441",name:"盐埔乡",parent:"712400"},{value:"712442",name:"长治乡",parent:"712400"},{value:"712443",name:"麟洛乡",parent:"712400"},{value:"712444",name:"竹田乡",parent:"712400"},{value:"712445",name:"内埔乡",parent:"712400"},{value:"712446",name:"万丹乡",parent:"712400"},{value:"712447",name:"潮州镇",parent:"712400"},{value:"712448",name:"泰武乡",parent:"712400"},{value:"712449",name:"来义乡",parent:"712400"},{value:"712450",name:"万峦乡",parent:"712400"},{value:"712451",name:"崁顶乡",parent:"712400"},{value:"712452",name:"新埤乡",parent:"712400"},{value:"712453",name:"南州乡",parent:"712400"},{value:"712454",name:"林边乡",parent:"712400"},{value:"712455",name:"东港镇",parent:"712400"},{value:"712456",name:"琉球乡",parent:"712400"},{value:"712457",name:"佳冬乡",parent:"712400"},{value:"712458",name:"新园乡",parent:"712400"},{value:"712459",name:"枋寮乡",parent:"712400"},{value:"712460",name:"枋山乡",parent:"712400"},{value:"712461",name:"春日乡",parent:"712400"},{value:"712462",name:"狮子乡",parent:"712400"},{value:"712463",name:"车城乡",parent:"712400"},{value:"712464",name:"牡丹乡",parent:"712400"},{value:"712465",name:"恒春镇",parent:"712400"},{value:"712466",name:"满州乡",parent:"712400"},{value:"712517",name:"台东市",parent:"712500"},{value:"712518",name:"绿岛乡",parent:"712500"},{value:"712519",name:"兰屿乡",parent:"712500"},{value:"712520",name:"延平乡",parent:"712500"},{value:"712521",name:"卑南乡",parent:"712500"},{value:"712522",name:"鹿野乡",parent:"712500"},{value:"712523",name:"关山镇",parent:"712500"},{value:"712524",name:"海端乡",parent:"712500"},{value:"712525",name:"池上乡",parent:"712500"},{value:"712526",name:"东河乡",parent:"712500"},{value:"712527",name:"成功镇",parent:"712500"},{value:"712528",name:"长滨乡",parent:"712500"},{value:"712529",name:"金峰乡",parent:"712500"},{value:"712530",name:"大武乡",parent:"712500"},{value:"712531",name:"达仁乡",parent:"712500"},{value:"712532",name:"太麻里乡",parent:"712500"},{value:"712615",name:"花莲市",parent:"712600"},{value:"712616",name:"新城乡",parent:"712600"},{value:"712617",name:"太鲁阁",parent:"712600"},{value:"712618",name:"秀林乡",parent:"712600"},{value:"712619",name:"吉安乡",parent:"712600"},{value:"712620",name:"寿丰乡",parent:"712600"},{value:"712621",name:"凤林镇",parent:"712600"},{value:"712622",name:"光复乡",parent:"712600"},{value:"712623",name:"丰滨乡",parent:"712600"},{value:"712624",name:"瑞穗乡",parent:"712600"},{value:"712625",name:"万荣乡",parent:"712600"},{value:"712626",name:"玉里镇",parent:"712600"},{value:"712627",name:"卓溪乡",parent:"712600"},{value:"712628",name:"富里乡",parent:"712600"},{value:"712707",name:"马公市",parent:"712700"},{value:"712708",name:"西屿乡",parent:"712700"},{value:"712709",name:"望安乡",parent:"712700"},{value:"712710",name:"七美乡",parent:"712700"},{value:"712711",name:"白沙乡",parent:"712700"},{value:"712712",name:"湖西乡",parent:"712700"},{value:"712805",name:"南竿乡",parent:"712800"},{value:"712806",name:"北竿乡",parent:"712800"},{value:"712807",name:"莒光乡",parent:"712800"},{value:"712808",name:"东引乡",parent:"712800"},{value:"810101",name:"中西区",parent:"810100"},{value:"810102",name:"湾仔",parent:"810100"},{value:"810103",name:"东区",parent:"810100"},{value:"810104",name:"南区",parent:"810100"},{value:"810201",name:"九龙城区",parent:"810200"},{value:"810202",name:"油尖旺区",parent:"810200"},{value:"810203",name:"深水埗区",parent:"810200"},{value:"810204",name:"黄大仙区",parent:"810200"},{value:"810205",name:"观塘区",parent:"810200"},{value:"810301",name:"北区",parent:"810300"},{value:"810302",name:"大埔区",parent:"810300"},{value:"810303",name:"沙田区",parent:"810300"},{value:"810304",name:"西贡区",parent:"810300"},{value:"810305",name:"元朗区",parent:"810300"},{value:"810306",name:"屯门区",parent:"810300"},{value:"810307",name:"荃湾区",parent:"810300"},{value:"810308",name:"葵青区",parent:"810300"},{value:"810309",name:"离岛区",parent:"810300"},{value:"441901",parent:"441900",name:"莞城区"},{value:"441902",parent:"441900",name:"南城区"},{value:"441904",parent:"441900",name:"万江区"},{value:"441905",parent:"441900",name:"石碣镇"},{value:"441906",parent:"441900",name:"石龙镇"},{value:"441907",parent:"441900",name:"茶山镇"},{value:"441908",parent:"441900",name:"石排镇"},{value:"441909",parent:"441900",name:"企石镇"},{value:"441910",parent:"441900",name:"横沥镇"},{value:"441911",parent:"441900",name:"桥头镇"},{value:"441912",parent:"441900",name:"谢岗镇"},{value:"441913",parent:"441900",name:"东坑镇"},{value:"441914",parent:"441900",name:"常平镇"},{value:"441915",parent:"441900",name:"寮步镇"},{value:"441916",parent:"441900",name:"大朗镇"},{value:"441917",parent:"441900",name:"麻涌镇"},{value:"441918",parent:"441900",name:"中堂镇"},{value:"441919",parent:"441900",name:"高埗镇"},{value:"441920",parent:"441900",name:"樟木头镇"},{value:"441921",parent:"441900",name:"大岭山镇"},{value:"441922",parent:"441900",name:"望牛墩镇"},{value:"441923",parent:"441900",name:"黄江镇"},{value:"441924",parent:"441900",name:"洪梅镇"},{value:"441925",parent:"441900",name:"清溪镇"},{value:"441926",parent:"441900",name:"沙田镇"},{value:"441927",parent:"441900",name:"道滘镇"},{value:"441928",parent:"441900",name:"塘厦镇"},{value:"441929",parent:"441900",name:"虎门镇"},{value:"441930",parent:"441900",name:"厚街镇"},{value:"441931",parent:"441900",name:"凤岗镇"},{value:"441932",parent:"441900",name:"长安镇"},{value:"442001",parent:"442000",name:"石岐区"},{value:"442004",parent:"442000",name:"南区"},{value:"442005",parent:"442000",name:"五桂山区"},{value:"442006",parent:"442000",name:"火炬开发区"},{value:"442007",parent:"442000",name:"黄圃镇"},{value:"442008",parent:"442000",name:"南头镇"},{value:"442009",parent:"442000",name:"东凤镇"},{value:"442010",parent:"442000",name:"阜沙镇"},{value:"442011",parent:"442000",name:"小榄镇"},{value:"442012",parent:"442000",name:"东升镇"},{value:"442013",parent:"442000",name:"古镇镇"},{value:"442014",parent:"442000",name:"横栏镇"},{value:"442015",parent:"442000",name:"三角镇"},{value:"442016",parent:"442000",name:"民众镇"},{value:"442017",parent:"442000",name:"南朗镇"},{value:"442018",parent:"442000",name:"港口镇"},{value:"442019",parent:"442000",name:"大涌镇"},{value:"442020",parent:"442000",name:"沙溪镇"},{value:"442021",parent:"442000",name:"三乡镇"},{value:"442022",parent:"442000",name:"板芙镇"},{value:"442023",parent:"442000",name:"神湾镇"},{value:"442024",parent:"442000",name:"坦洲镇"}]; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.vue b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.vue new file mode 100644 index 0000000..b7ef500 --- /dev/null +++ b/mallplusui-uniapp-app2/components/Winglau14-lotusAddress/Winglau14-lotusAddress.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/circle-percent/circle-percent.vue b/mallplusui-uniapp-app2/components/circle-percent/circle-percent.vue new file mode 100644 index 0000000..4e24218 --- /dev/null +++ b/mallplusui-uniapp-app2/components/circle-percent/circle-percent.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/cmd-result-page/cmd-result-page.vue b/mallplusui-uniapp-app2/components/cmd-result-page/cmd-result-page.vue new file mode 100644 index 0000000..a6725e4 --- /dev/null +++ b/mallplusui-uniapp-app2/components/cmd-result-page/cmd-result-page.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/coolc-coupon/coolc-coupon.vue b/mallplusui-uniapp-app2/components/coolc-coupon/coolc-coupon.vue new file mode 100644 index 0000000..5b3fb74 --- /dev/null +++ b/mallplusui-uniapp-app2/components/coolc-coupon/coolc-coupon.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/drag-ball/ball.js b/mallplusui-uniapp-app2/components/drag-ball/ball.js new file mode 100644 index 0000000..070321b --- /dev/null +++ b/mallplusui-uniapp-app2/components/drag-ball/ball.js @@ -0,0 +1,85 @@ +import value from './ball.js'; + +var list = [] + +var boundary = [[],[]] + +function getDistance( x_1, y_1, x_2, y_2){ + + let x = (x_2 - x_1)*2; + let y = (y_2 - y_1)*2; + + let s = Math.pow((x * x + y * y), 0.5); + + return s; +} + +function sustained(that){ + + let data = value.list; + let index_1 = 0; + let index_2 = 0; + + setInterval(function(){ + + for (let number = 0; number < data.length; number++) { + + data[number].y = data[number].y+( data[number].floating[1] ? 0.05 : -0.05) ; + data[number].floating[0] < 15 ? data[number].floating[0] = data[number].floating[0]+1 : data[number].floating[0] = 1 ; + data[number].floating[0] == 1 ? data[number].floating[1] = !data[number].floating[1] : data[number].floating[1]; + value.mapping(that); + + for (let i = 0; i < data.length; i++) { + + index_1 = getDistance(data[i].x,data[i].y,data[number].x,data[number].y); + index_2 = (data[i].radius*2) + (data[number].radius*2); + + if(i != number){ + + if( index_1 < index_2){ + + data[i].x = data[i].x+(-(data[number].x-data[i].x)/100) ; + data[i].y = data[i].y+(-(data[number].y-data[i].y)/100) ; + + (data[i].x-data[i].radius) < 0 ? data[i].x = data[i].radius : data[i].x; + (data[i].y-data[i].radius) < 0 ? data[i].y = data[i].radius : data[i].y; + + (data[i].x+data[i].radius) > value.boundary[0] ? data[i].x = (value.boundary[0]-data[i].radius) : data[i].x; + (data[i].y+data[i].radius) > value.boundary[1] ? data[i].y = (value.boundary[1]-data[i].radius) : data[i].y; + + value.mapping(that); + + } + + } + } + } + },100); +} + +function mapping(_this){ + let data = value.list + let context = uni.createCanvasContext('canvas',_this); + + for (let i = 0; i < data.length; i++) { + + context.beginPath(); + context.arc(data[i].x, data[i].y, data[i].radius, 0, 2 * Math.PI, true); + context.setFillStyle(data[i].color[data[i].colse ? 1 : 0]); + context.fill(); + + context.setFillStyle('#FFFFFF'); + context.setFontSize(data[i].size); + if(data[i].labelName.length < 6){ + context.fillText(data[i].labelName,(data[i].x - (data[i].size*(0.5*data[i].labelName.length))), (data[i].y + data[i].size*(0.5))) + }else{ + context.fillText(data[i].labelName.substring(0, 3),(data[i].x - (data[i].size*(0.5*(data[i].labelName.substring(0, 3)).length))), + ((data[i].y + data[i].size*(0.5))-data[i].size*(0.8))) + context.fillText(data[i].labelName.substring(3, 6),(data[i].x - (data[i].size*(0.5*(data[i].labelName.substring(3, 6)).length))), + ((data[i].y + data[i].size*(0.5))+data[i].size*(0.8))) + } + } + context.draw(); +} + +export default {mapping,list,sustained,boundary} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/drag-ball/drag-ball.js b/mallplusui-uniapp-app2/components/drag-ball/drag-ball.js new file mode 100644 index 0000000..1609522 --- /dev/null +++ b/mallplusui-uniapp-app2/components/drag-ball/drag-ball.js @@ -0,0 +1,21 @@ +import value from '../../componets/drag-ball/drag-ball.js'; + +var list = [{x:100,y:50,radius:25},{x:200,y:50,radius:25},{x:300,y:50,radius:25}] + +function mapping(_this){ + + let data = value.list + + let context = uni.createCanvasContext('canvas',_this); + + for (let i = 0; i < data.length; i++) { + context.beginPath(); + context.arc(data[i].x, data[i].y, data[i].radius, 0, 2 * Math.PI, true); + context.setFillStyle('#AAAAAA'); + context.fill(); + } + + context.draw(); +} + +export default {mapping,list} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/drag-ball/drag-ball.vue b/mallplusui-uniapp-app2/components/drag-ball/drag-ball.vue new file mode 100644 index 0000000..bc93814 --- /dev/null +++ b/mallplusui-uniapp-app2/components/drag-ball/drag-ball.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/empty.vue b/mallplusui-uniapp-app2/components/empty.vue new file mode 100644 index 0000000..4da4df0 --- /dev/null +++ b/mallplusui-uniapp-app2/components/empty.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/eonfox/eonfox.js b/mallplusui-uniapp-app2/components/eonfox/eonfox.js new file mode 100644 index 0000000..9b0d082 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/eonfox.js @@ -0,0 +1,453 @@ +var eonfox = function(config){ + if( config ){ + if( config.debug ){ + eonfox.prototype.debug = true; + } + if( config.application ){ + eonfox.prototype.application = config.application; + } + if( config.api_server_url ){ + eonfox.prototype.api_server_url = config.api_server_url; + } + } + +}; +eonfox.prototype = { + + constructor : eonfox, + + //是否开启调试模式 + debug : false, + + + //文件服务器URL + file_server_url : 'http://img.eonfox.cc/', + + //接口地址 应用ID + api_server_url : 'http://server.test.eapie.com/', + application : "test", + + //会话名称 + session_name : 'Eonfox_API_Engine_Session', + + /* + 转换时间格式 + */ + switchingTime: function(timestamp) { + var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; + var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); + return Y + M + D + h + m + s; + }, + + + //提交的有效等待时间 + submit_sleep_expire_time : 30, + + + //请求任务 + submit_task : null, + + /** + * 提交队列 + */ + submit_queue : [], + + + + /** + * 提交登记 + */ + submit_register : function( config ){ + config.time = ((new Date()).getTime()/1000);//赋值是 时间戳 (秒),用于有效时间 + eonfox.prototype.submit_queue.push(config); + }, + + + + /** + * 运行提交 + */ + submit_run : function(){ + if( eonfox.prototype.submit_queue.length < 1 ){ + return false;//没有执行的提交 + } + if( eonfox.prototype.submit_queue[0].runtime ){ + return false;//正在执行 + } + + //检查是否已经失效 + if( (eonfox.prototype.submit_queue[0].time + eonfox.prototype.submit_sleep_expire_time) < ((new Date()).getTime()/1000) ){ + //已经过了有效期 + //删除第一个元素 + eonfox.prototype.submit_queue.shift(); + //再次提交 + return eonfox.prototype.submit_run(); + } + + eonfox.prototype.submit_queue[0].runtime = true; + var config = eonfox.prototype.submit_queue[0]; + + //从本地缓存中同步获取指定 key 对应的内容。 + var token = eonfox.prototype.token(function(e){ + config.error(e); + }); + + if( !(function(){try{ return token['session_right_token'];}catch(e){return false;}}()) ){ + config.right_data.session = "start"; + config.right_data.application = this.application; + }else{ + config.right_data.token = token['session_right_token']; + config.left_data.token = token['session_left_token']; + config.left_data.session = "start"; + config.left_data.application = this.application; + } + + var request = { + url : config.url, + method : "POST", + dataType : "json", + responseType : "text", + header: {"Content-Type":"application/x-www-form-urlencoded"},//跨域,防止请求options + complete : function(){ + //当请求完成之后调用这个函数,无论成功或失败。执行时间比success晚 + //删除第一个元素 + eonfox.prototype.submit_queue.shift(); + //再次提交 + eonfox.prototype.submit_run(); + }, + success : function(){}, + fail : function(err){ + config.error(err); + } + } + + //右令牌 + var right_token_post = function(){ + request.data = config.right_data; + request.success = function(success_data_all){ + //这里要注意,这里是包含了 data + if(typeof success_data_all != 'object'){ + success_data_all = (function(){try{ return JSON.parse(success_data_all);}catch(e){return false;}}()); + } + var success_data = success_data_all.data? success_data_all.data : null; + if(typeof success_data != 'object'){ + console.warn("应用接口响应异常"); + return config.callback(false, success_data_all); + } + + //如果存在请求令牌,直接返回数据 + if( (function(){try{ return success_data['token'];}catch(e){return false;}}()) ){ + //储存令牌 + eonfox.prototype.storage_token(success_data); + //返回到回调函数 + return config.callback(success_data, success_data_all); + }else{ + //否则说明没有这个会话,再进行左令牌查询 + return left_token_post(); + } + }; + if( eonfox.prototype.debug ){ + console.log("post():右令牌提交:", request); + } + + eonfox.prototype.submit_task = uni.request(request); + }; + + + //左令牌 + var left_token_post = function(){ + request.data = config.left_data; + request.success = function(success_data_all){ + //这里要注意,这里是包含了 data + if(typeof success_data_all != 'object'){ + success_data_all = (function(){try{ return JSON.parse(success_data_all);}catch(e){return false;}}()); + } + var success_data = success_data_all.data? success_data_all.data : null; + if(typeof success_data != 'object'){ + console.warn("应用接口响应异常"); + return config.callback(false, success_data_all); + } + + //如果没有报错 + if( (function(){try{ return success_data['token'];}catch(e){return false;}}()) ){ + //储存令牌 + eonfox.prototype.storage_token(success_data); + } + + //返回到回调函数 + return config.callback(success_data, success_data_all); + }; + + if( eonfox.prototype.debug ){ + console.log("post():左令牌提交:", request); + } + + eonfox.prototype.submit_task = uni.request(request); + }; + + + return right_token_post(); + }, + /** + * 获取左token + * 如果没用传入回调函数,那么则直接返回当前左令牌,但是有可能会出现左令牌失效 + * 正常操作是,传入一个回调函数,左令牌始终是保持最新的。 + * + * @param {Function} #fn + */ + websocketToken : function(fn){ + if(typeof fn != "function"){ + var storage_token = eonfox.prototype.token(); + if( (function(){try{ return storage_token['session_websocket_token'];}catch(e){return false;}}()) ){ + return storage_token['session_websocket_token']; + }else{ + return ''; + } + }else{ + eonfox.prototype.submit({ + callback: function(){ + //从本地缓存中同步获取指定 key 对应的内容。 + var websocket_token = ""; + var websocket_token = eonfox.prototype.token(); + if( (function(){try{ return storage_token['session_websocket_token'];}catch(e){return false;}}()) ){ + websocket_token = storage_token['session_websocket_token']; + } + fn(websocket_token); + } + }); + return true; + } + }, + + + + /* 中断请求任务 */ + abort : function(){ + //清理等待的请求 + eonfox.prototype.submit_queue = []; + //中断请求任务 + if( eonfox.prototype.submit_task.abort ){ + eonfox.prototype.submit_task.abort(); + } + }, + + + + /* 提交请求 + * 暂时只支持 POST + * { + * url : this.api_server_url,默认接口地址 + * data : {}, + * callback : 回调函数 第一个是单个 data,第二个是 全部的返回数据 + * error : 错误回调函数 + * } + * + */ + submit : function(config){ + if( eonfox.prototype.debug ){ + console.log("submit()传入参数:", config); + } + + //回调函数 + if( !config.callback || config.callback.constructor != Function ){ + config.callback = function(){}; + } + if( !config.error || config.error.constructor != Function ){ + config.error = function(){}; + } + + //路由 + if(typeof config.url == 'undefined' || typeof config.url != 'string'){ + config.url = this.api_server_url; + } + + config.right_data = {}; + config.left_data = {}; + //请求字符串 + if( config.request ){ + //如果是对象,则先转换为字符串 + if(typeof config.request == "object"){ + config.request = JSON.stringify(config.request) + } + if(typeof config.request == "string"){ + config.right_data.data = config.request; + config.left_data.data = config.request; + } + } + + //用户传入的data数据 + if( config.data && typeof config.data == "object" ){ + for(var i in config.data){ + config.right_data[i] = config.data[i]; + config.left_data[i] = config.data[i]; + } + } + + if( eonfox.prototype.debug ){ + console.log("post():right_data、left_data:", config.right_data, config.left_data); + } + + /*//是否强制提交 + config.recursion = config.recursion? true : false; + //大于0,说明存在队列 + if( this.submit_queue.length > 0 ){ + //判断是否强制提交 + if( config.recursion ){ + //去登记注册 + eonfox.prototype.submit_register(config); + }else{ + //否则返回错误信息 + console.warn("应用接口提交队列个数:", this.submit_queue.length); + return config.error("应用接口出现重复提交,前方正在提交队列个数:", this.submit_queue.length); + } + }else{ + //去登记注册 + eonfox.prototype.submit_register(config); + } */ + + //去登记注册 + eonfox.prototype.submit_register(config); + //并且调用执行 + eonfox.prototype.submit_run(); + }, + + + + /** + * 储存token + * + * @param {Object} data + */ + storage_token : function(data){ + if( !data ){ + return false; + } + + var token_data = null; + var exist_right_token = false; + var exist_left_token = false; + + exist_right_token = (function(){try{ return data['token']['session_right_token'];}catch(e){return false;}}()); + exist_left_token = (function(){try{ return data['token']['session_left_token'];}catch(e){return false;}}()); + if(exist_right_token && exist_left_token){ + token_data = data['token']; + }else{ + //有可能是顶级关联对象 + exist_right_token = (function(){try{ return data['session_right_token'];}catch(e){return false;}}()); + exist_left_token = (function(){try{ return data['session_left_token'];}catch(e){return false;}}()); + if(exist_right_token && exist_left_token){ + token_data = data; + } + } + + if(!token_data){ + return false; + } + + //从本地缓存中同步获取指定 key 对应的内容。 + var storage_token = eonfox.prototype.token(); + if( (function(){try{ return storage_token['session_right_token'];}catch(e){return false;}}()) && + (function(){try{ return storage_token['session_left_token'];}catch(e){return false;}}()) ){ + + if(storage_token['session_right_token'] == token_data['session_right_token'] || + storage_token['session_left_token'] == token_data['session_left_token'] ){ + if( eonfox.prototype.debug ){ + console.log("需要对比旧token中的当前时间戳,为true则不需要更新token", storage_token['session_now_time'], token_data['session_now_time'], parseInt(storage_token['session_now_time']) > parseInt(token_data['session_now_time'])); + } + if( parseInt(storage_token['session_now_time']) > parseInt(token_data['session_now_time']) ){ + if( eonfox.prototype.debug ){ + console.log("并发异步,不需要更新token" ); + } + return false; + } + + } + } + + //console.log( uni.setStorageSync ); + + try { + uni.setStorageSync(this.session_name +":"+ this.application, JSON.stringify(token_data)); + } catch (e) { + console.warn(e); + return false; + } + + return true; + }, + + + + /** + * 获取token + * + * @param {Function} error_function + */ + token : function(error_function){ + //异步可能存在覆盖的问题,所以对比已存在的token,如果右左有一个相同则比较当前时间,即最大的当前时间是最新的。 + var storage_token = false; + try { + storage_token = uni.getStorageSync(this.session_name +":"+ this.application); + if( storage_token ){ + storage_token = (function(){try{ return JSON.parse(storage_token);}catch(e){return false;}}()); + } + } catch (e) { + console.warn(e); + if(error_function){ + error_function(e); + } + return false; + } + + return storage_token; + }, + + + /** + * 获取左token + * 如果没用传入回调函数,那么则直接返回当前左令牌,但是有可能会出现左令牌失效 + * 正常操作是,传入一个回调函数,左令牌始终是保持最新的。 + * + * @param {Function} #fn + */ + left_token : function(fn){ + if(typeof fn != "function"){ + var storage_token = eonfox.prototype.token(); + if( (function(){try{ return storage_token['session_left_token'];}catch(e){return false;}}()) ){ + return storage_token['session_left_token']; + }else{ + return ''; + } + }else{ + eonfox.prototype.submit({ + callback: function(){ + //从本地缓存中同步获取指定 key 对应的内容。 + var left_token = ""; + var storage_token = eonfox.prototype.token(); + if( (function(){try{ return storage_token['session_left_token'];}catch(e){return false;}}()) ){ + left_token = storage_token['session_left_token']; + } + fn(left_token); + } + }); + return true; + } + }, + /* 获取 websocket 数据 */ + websocket_data : function(res){ + console.log(res); + if( !res.data ){ + + return false; + } + + return JSON.parse( res.data ); + } + +}; +export default eonfox; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/fns.js b/mallplusui-uniapp-app2/components/eonfox/fns.js new file mode 100644 index 0000000..34164b6 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/fns.js @@ -0,0 +1,285 @@ +var fns = { + //-------------- + //api接口验证 + checkError: function(data, ids, error){ + if(typeof(error)!='function'){ + error=function(){ + } + } + if(data.errno){ + error(data.errno, data.error); + return false; + } + if(!data.data){ + error(1, "未知错误"); + return false; + } + if(ids){ + if(typeof ids =='object'){ + for( var i in ids){ + if(typeof ids[i] != "undefined"){ + var id = ids[i]; + if( data.data[id] && data.data[id].errno ){ + error(data.data[id].errno, data.data[id].error); + return false; + } + }else{ + error(1, "“"+ids[i]+"”目标,未知错误"); + return false; + } + } + }else if(typeof ids =='string' || typeof ids == 'number'){ + if(typeof data.data[ids] != "undefined" ){ + if( data.data[ids].errno ){ + error(data.data[ids].errno, data.data[ids].error); + return false; + } + }else{ + error(1, "“"+ids+"”目标,未知错误"); + return false; + } + }else{ + error(1, "“"+ids+"”目标,未知错误"); + return false; + } + + } + + var data_list = {}; + + if(data.data){ + for(var i in data.data){ + if(typeof data.data[i].data != "undefined"){ + data_list[i] = data.data[i].data; + } + } + } + return data_list; + }, + //数据处理 ceil向上取整 + number_pre:function(number,pre){ + switch(pre){ + case 'ceil': + return Math.ceil(number) + break; + } + }, + //保留两位小数 + number_floor_2:function(number){ + var number = number * 100; + number = Math.floor(number) + number = number/100; + return number.toFixed(2); + }, + //错误信息处理 + err:function(title,data,_json,fun){ + + if(data){ + if(_json){ + data=JSON.stringify(data) + } + console.log(title+' :',data) + uni.showToast({ + title:title+' : '+data, + icon:'none', + duration:1500, + success() { + if(fun){ + fun(); + } + } + }) + }else{ + console.log(title) + uni.showToast({ + title:title, + icon:'none', + duration:1500, + success() { + if(fun){ + fun(); + } + } + }) + } + + }, + //成功信息处理 + success(title,fun){ + if(fun){ + fun(); + } + uni.hideLoading(); + /* uni.showToast({ + title:title, + icon:'success', + success() { + if(fun){ + fun(); + } + } + }) */ + }, + //敬请期待 + waiting:function(){ + uni.showToast({ + title:'敬请期待', + icon:'none' + }) + }, + //授权验证 + oauth_:function(){ + uni.setStorage({ + key:'oauth', + data:true + }) + }, + noauth:function(){ + uni.setStorage({ + key:'oauth', + data:false + }) + }, + //绑定验证 + unionid:function(){ + uni.setStorage({ + key:'unionid', + data:true + }) + }, + nunionid:function(){ + uni.setStorage({ + key:'unionid', + data:false + }) + }, + //绑定 + bind:function(){ + console.log('oauth'); + uni.getStorage({ + key:'oauth', + success(re) { + console.log('oauth',re); + } + }) + }, + //获取指定url参数 + getUrlQuery:function (urlStr) { + // var urlStr = location.search.substr(1) ? location.search.substr(1) : ""; + var urlArr = []; + for(var i = 0; i < urlStr.split("&").length; i++) { + urlArr.push(urlStr.split("&")[i].split("=")[0] ? urlStr.split("&")[i].split("=")[0] : ""); + urlArr.push(urlStr.split("&")[i].split("=")[1] ? urlStr.split("&")[i].split("=")[1] : "onlyKey") + } + if(urlStr == "") { + return; + } else { + var urlObj = {} + for(var i = 0; i < urlArr.length; i += 2) { + if(urlArr[i] != "") { + urlObj[urlArr[i]] = decodeURIComponent(urlArr[i + 1]); + } + } + return urlObj; + } + } + , + // url参数解析 + getUrlkey:function(url) { + var params = {}; + var urls = url.split("?"); console.log('1_分割url:', urls) + var arr = urls[1].split("&"); console.log('2_分割urls[1]:', arr) + for (var i = 0, l = arr.length; i < l; i++) { + var a = arr[i].split("="); console.log('3_遍历 arr 并分割后赋值给a:', a[0], a[1]) + params[a[0]] = a[1]; console.log('4_a给params对象赋值:', params) + } console.log('5_结果:', params) + return params; + } + , + toast(tit,url,time){ + if(!time){ + time=1500 + } + uni.showToast({ + title:tit, + success() { + setTimeout(function(){ + uni.reLaunch({ + url:url + }) + },time) + } + }) + }, + setSystemInfoSync(){ + uni.getStorage({ + key:'SystemInfoSync', + fail(err) { + console.log('设置缓存'); + try { + console.log('star'); + const res = uni.getSystemInfoSync(); + console.log('config'+JSON.stringify(res)); + uni.setStorage({ + key:'SystemInfoSync', + data:res + }) + console.log('ok'); + } catch (e) { + console.log('catch+'+JSON.stringify(e)); + // error + } + }, + + }) + }, + getCompare(Version,newVersion,fun){ + if(Version==newVersion){ + console.log('没有更新'); + return + } + console.log('接收到参数'); + uni.getStorage({ + key:'SystemInfoSync', + success(res) { + console.log('缓存:'+JSON.stringify(res)); + if(res.data){ + var SystemInfoSync=res.data; + console.log('json:'+JSON.stringify(SystemInfoSync)); + console.log('设备:'+SystemInfoSync.platform); + if(SystemInfoSync.platform=='android'){ + console.log('设备:安卓'); + fun(); + } + }else{ + return this.setSystemInfo(); + } + }, + fail(err) { + console.log('缓存获取失败'+JSON.stringify(err)); + const res = uni.getSystemInfoSync(); + console.log('config'+JSON.stringify(res)); + uni.setStorage({ + key:'SystemInfoSync', + data:res, + success() { + if(res.platform=='android'){ + console.log('设备:安卓'); + fun(); + } + } + }) + + }, + complete() { + console.log('获取缓存'); + } + }) + + + + } + //------------------------ +}; + +export default fns; diff --git a/mallplusui-uniapp-app2/components/eonfox/grouporder.js b/mallplusui-uniapp-app2/components/eonfox/grouporder.js new file mode 100644 index 0000000..3107ea6 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/grouporder.js @@ -0,0 +1,39 @@ +import eonfox from '@/components/eonfox/eonfox.js'; +var ef=new eonfox() +import f from '@/components/eonfox/fns.js'; +var pay= { + shoppingCar:function(groupId,method,pass,fun){ + ef.submit({ + request:{ + s:['SHOPGROUPGOODSSELFPAY',[{id:groupId,pay_method:method,pay_password:pass}]] + }, + callback:function(data){ + const dataList=(data=f.checkError(data,'s',function(errno,error){ + f.err(error) + + })) + console.log('da...',dataList) + if(dataList.s==true){ + fun() + } + +// var dataList=data.s +// if(dataList.data){ +// if(dataList.data==true){ +// f.err('支付成功') +// }else{ +// f.err('支付失败') +// } +// +// } + + console.log('支付结果'); + }, + error(err){ + f.err('',err,1) + } + }) + } + +} +export default pay; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/merchant.js b/mallplusui-uniapp-app2/components/eonfox/merchant.js new file mode 100644 index 0000000..f638b4f --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/merchant.js @@ -0,0 +1,12 @@ +/* 商家模块 */ +var merchant = function(){}; +merchant.prototype = { + + constructor : merchant, + + //收银员的订单列表是否需要刷新 + cashierOrderListRefresh : false + +}; + +export default merchant; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/order.js b/mallplusui-uniapp-app2/components/eonfox/order.js new file mode 100644 index 0000000..7f14103 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/order.js @@ -0,0 +1,72 @@ +import eonfox from '@/components/eonfox/eonfox.js'; +var ef = new eonfox(); + +var order = { + + /* 检查支付状态 + order_id 要检查的订单ID + frequency 检查的次数,当等于0时,则返回回调 + callback 回调。成功时:callback.success 失败时:callback.fail + 因为有 frequency 次数,所以每次进来 -1 。如果不等于0,那么要继续递归 + + order.checkPayState({ + order_id: order_id, + frequency: 3, + success:function(){ + + }, + fail:function(){ + + } + }) + */ + checkPayState : function(data){ + var _this = this; + if(typeof data.success != 'function') data.success = function(){}; + if(typeof data.fail != 'function') data.fail = function(){}; + if( typeof data.frequency != 'number') data.frequency = 3; + + if( !data.frequency || !data.order_id ){ + return data.fail('参数不正确', data); + } + + + //如果不等于0,那么要继续递归 + data.frequency --; + + //开始查询状态 0表示未支付;1表示支付成功。 + ef.submit({ + request:{ + s:['APPLICATIONORDERSELFPAYSTATE',[{order_id: data.order_id}]] + }, + callback: function(r){ + console.log('order.checkPayState:::',r); + // console.log('支付查询回调成功',r.data.s.data) ;return r.data.s.data; + if( !r.errno && !r.data.s.errno && r.data.s.data){ + console.log('支付成功'); + //获取成功,无错误信息时 + return data.success(); + } else { + console.log('支付状态查询失败或者未支付'); + if( !data.frequency ){ + return data.fail(); + }else{ + setTimeout(function() { + return _this.checkPayState(data); + }, 2000); + } + } + }, + error(err){ + data.fail(err); + } + }) + + } + + + + +}; + +export default order; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/pay.js b/mallplusui-uniapp-app2/components/eonfox/pay.js new file mode 100644 index 0000000..0ff744e --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/pay.js @@ -0,0 +1,70 @@ +import eonfox from '@/components/eonfox/eonfox.js'; +var ef=new eonfox() +import f from '@/components/eonfox/fns.js'; +var pay= { + set_password:function(pass,pass_confirm,fun){ + ef.submit({ + request:{ + set_pass:['setpass',[{password:pass}]] + }, + callback:function(data){ + if(data=f.checkError(data,'set_pass',function(errno,error){ + f.err(error) + })){ + fun() + }else{ + f.err('设置失败') + } + console.log('支付结果'); + }, + error(err){ + f.err('',err,1) + } + }) + }, + shoppingCar:function(id,method,pass,fun){ + ef.submit({ + request:{ + s:['SHOPORDERSELFPAYMENT',[{order_id:id,pay_method:method,pay_password:pass}]] + }, + callback:function(data){ + const dataList=(data=f.checkError(data,'s',function(errno,error){ + f.err(error) + + })) + console.log('da...',dataList) + if(dataList.s.order_id){ + + f.err('支付成功') + return ok + } + + console.log('支付结果'); + }, + error(err){ + f.err('',err,1) + } + }) + }, + //取消订单 + cancel_order:function(id,fun){ + ef.submit({ + request:{ + cancel_order:['SHOPORDERSELFCANCEL',[{id:id}]] + }, + callback:function(data){ + if(data=f.checkError(data,'cancel_order',function(errno,error){ + f.err(error) + })){ + fun() + }else{ + f.err('订单取消失败') + } + }, + error(err){ + f.err('',err,1) + } + }) + }, +} +export default pay; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/polling.js b/mallplusui-uniapp-app2/components/eonfox/polling.js new file mode 100644 index 0000000..3903355 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/polling.js @@ -0,0 +1,61 @@ +var polling = { + + //定时器ID + _interval_id : null, + _switch : false, + + //关闭 + close : function(){ + clearInterval(this._interval_id); + this._interval_id = null; + }, + + //暂停 + stop : function(){ + this._switch = false; + }, + + //启动 + start : function(){ + this._switch = true; + }, + + + /** + * 开启 + * + * @param {Time} ms 毫秒数 + * @param {Function} fn 回调函数 + */ + run : function(ms, fn){ + if( !ms || typeof ms != 'number'){ + ms = 3000;//默认3秒 + } + if(!fn || typeof fn != 'function'){ + fn = function(){}; + } + + var _this = this; + //如果已经存在,则要关闭轮询 + if( _this._interval_id ){ + _this.start(); + return true; + } + + var i = 0; + _this._switch = true; + _this._interval_id = setInterval(function(){ + if( !_this._switch ){ + return false; + } + + i ++; + fn(i); + }, ms); + + return true; + } + +}; + +export default polling; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/qqmap-wx-jssdk.js b/mallplusui-uniapp-app2/components/eonfox/qqmap-wx-jssdk.js new file mode 100644 index 0000000..9724e31 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/qqmap-wx-jssdk.js @@ -0,0 +1,1123 @@ +/** + * 微信小程序JavaScriptSDK + * + * @version 1.2 + * @date 2019-03-06 + * @author v_ylyue@tencent.com + */ + +var ERROR_CONF = { + KEY_ERR: 311, + KEY_ERR_MSG: 'key格式错误', + PARAM_ERR: 310, + PARAM_ERR_MSG: '请求参数信息有误', + SYSTEM_ERR: 600, + SYSTEM_ERR_MSG: '系统错误', + WX_ERR_CODE: 1000, + WX_OK_CODE: 200 +}; +var BASE_URL = 'https://apis.map.qq.com/ws/'; +var URL_SEARCH = BASE_URL + 'place/v1/search'; +var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; +var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; +var URL_CITY_LIST = BASE_URL + 'district/v1/list'; +var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; +var URL_DISTANCE = BASE_URL + 'distance/v1/'; +var URL_DIRECTION = BASE_URL + 'direction/v1/'; +var MODE = { + driving: 'driving', + transit: 'transit' +}; +var EARTH_RADIUS = 6378136.49; +var Utils = { + /** + * md5加密方法 + * 版权所有©2011 Sebastian Tschan,https://blueimp.net + */ + safeAdd(x, y) { + var lsw = (x & 0xffff) + (y & 0xffff); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xffff); + }, + bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); + }, + md5cmn(q, a, b, x, s, t) { + return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b); + }, + md5ff(a, b, c, d, x, s, t) { + return this.md5cmn((b & c) | (~b & d), a, b, x, s, t); + }, + md5gg(a, b, c, d, x, s, t) { + return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t); + }, + md5hh(a, b, c, d, x, s, t) { + return this.md5cmn(b ^ c ^ d, a, b, x, s, t); + }, + md5ii(a, b, c, d, x, s, t) { + return this.md5cmn(c ^ (b | ~d), a, b, x, s, t); + }, + binlMD5(x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[((len + 64) >>> 9 << 4) + 14] = len; + + var i; + var olda; + var oldb; + var oldc; + var oldd; + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = this.md5ff(a, b, c, d, x[i], 7, -680876936); + d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586); + c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819); + b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897); + d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983); + a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063); + b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101); + c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329); + + a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510); + d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713); + b = this.md5gg(b, c, d, a, x[i], 20, -373897302); + a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691); + d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083); + c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335); + b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848); + a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438); + d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961); + b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784); + c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734); + + a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558); + d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556); + a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632); + b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174); + d = this.md5hh(d, a, b, c, x[i], 11, -358537222); + c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979); + b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189); + a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487); + d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835); + c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520); + b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651); + + a = this.md5ii(a, b, c, d, x[i], 6, -198630844); + d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055); + a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523); + b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744); + c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070); + d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259); + b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551); + + a = this.safeAdd(a, olda); + b = this.safeAdd(b, oldb); + c = this.safeAdd(c, oldc); + d = this.safeAdd(d, oldd); + } + return [a, b, c, d]; + }, + binl2rstr(input) { + var i; + var output = ''; + var length32 = input.length * 32; + for (i = 0; i < length32; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff); + } + return output; + }, + rstr2binl(input) { + var i; + var output = []; + output[(input.length >> 2) - 1] = undefined; + for (i = 0; i < output.length; i += 1) { + output[i] = 0; + } + var length8 = input.length * 8; + for (i = 0; i < length8; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32); + } + return output; + }, + rstrMD5(s) { + return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8)); + }, + rstrHMACMD5(key, data) { + var i; + var bkey = this.rstr2binl(key); + var ipad = []; + var opad = []; + var hash; + ipad[15] = opad[15] = undefined; + if (bkey.length > 16) { + bkey = this.binlMD5(bkey, key.length * 8); + } + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5c5c5c5c; + } + hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8); + return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128)); + }, + rstr2hex(input) { + var hexTab = '0123456789abcdef'; + var output = ''; + var x; + var i; + for (i = 0; i < input.length; i += 1) { + x = input.charCodeAt(i); + output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f); + } + return output; + }, + str2rstrUTF8(input) { + return unescape(encodeURIComponent(input)); + }, + rawMD5(s) { + return this.rstrMD5(this.str2rstrUTF8(s)); + }, + hexMD5(s) { + return this.rstr2hex(this.rawMD5(s)); + }, + rawHMACMD5(k, d) { + return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d)); + }, + hexHMACMD5(k, d) { + return this.rstr2hex(this.rawHMACMD5(k, d)); + }, + + md5(string, key, raw) { + if (!key) { + if (!raw) { + return this.hexMD5(string); + } + return this.rawMD5(string); + } + if (!raw) { + return this.hexHMACMD5(key, string); + } + return this.rawHMACMD5(key, string); + }, + /** + * 得到md5加密后的sig参数 + * @param {Object} requestParam 接口参数 + * @param {String} sk签名字符串 + * @param {String} featrue 方法名 + * @return 返回加密后的sig参数 + */ + getSig(requestParam, sk, feature, mode) { + var sig = null; + var requestArr = []; + Object.keys(requestParam).sort().forEach(function(key){ + requestArr.push(key + '=' + requestParam[key]); + }); + if (feature == 'search') { + sig = '/ws/place/v1/search?' + requestArr.join('&') + sk; + } + if (feature == 'suggest') { + sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk; + } + if (feature == 'reverseGeocoder') { + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'geocoder') { + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'getCityList') { + sig = '/ws/district/v1/list?' + requestArr.join('&') + sk; + } + if (feature == 'getDistrictByCityId') { + sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk; + } + if (feature == 'calculateDistance') { + sig = '/ws/distance/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'direction') { + sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk; + } + sig = this.md5(sig); + return sig; + }, + /** + * 得到终点query字符串 + * @param {Array|String} 检索数据 + */ + location2query(data) { + if (typeof data == 'string') { + return data; + } + var query = ''; + for (var i = 0; i < data.length; i++) { + var d = data[i]; + if (!!query) { + query += ';'; + } + if (d.location) { + query = query + d.location.lat + ',' + d.location.lng; + } + if (d.latitude && d.longitude) { + query = query + d.latitude + ',' + d.longitude; + } + } + return query; + }, + + /** + * 计算角度 + */ + rad(d) { + return d * Math.PI / 180.0; + }, + /** + * 处理终点location数组 + * @return 返回终点数组 + */ + getEndLocation(location){ + var to = location.split(';'); + var endLocation = []; + for (var i = 0; i < to.length; i++) { + endLocation.push({ + lat: parseFloat(to[i].split(',')[0]), + lng: parseFloat(to[i].split(',')[1]) + }) + } + return endLocation; + }, + + /** + * 计算两点间直线距离 + * @param a 表示纬度差 + * @param b 表示经度差 + * @return 返回的是距离,单位m + */ + getDistance(latFrom, lngFrom, latTo, lngTo) { + var radLatFrom = this.rad(latFrom); + var radLatTo = this.rad(latTo); + var a = radLatFrom - radLatTo; + var b = this.rad(lngFrom) - this.rad(lngTo); + var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); + distance = distance * EARTH_RADIUS; + distance = Math.round(distance * 10000) / 10000; + return parseFloat(distance.toFixed(0)); + }, + /** + * 使用微信接口进行定位 + */ + getWXLocation(success, fail, complete) { + wx.getLocation({ + type: 'gcj02', + success: success, + fail: fail, + complete: complete + }); + }, + + /** + * 获取location参数 + */ + getLocationParam(location) { + if (typeof location == 'string') { + var locationArr = location.split(','); + if (locationArr.length === 2) { + location = { + latitude: location.split(',')[0], + longitude: location.split(',')[1] + }; + } else { + location = {}; + } + } + return location; + }, + + /** + * 回调函数默认处理 + */ + polyfillParam(param) { + param.success = param.success || function () { }; + param.fail = param.fail || function () { }; + param.complete = param.complete || function () { }; + }, + + /** + * 验证param对应的key值是否为空 + * + * @param {Object} param 接口参数 + * @param {String} key 对应参数的key + */ + checkParamKeyEmpty(param, key) { + if (!param[key]) { + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误'); + param.fail(errconf); + param.complete(errconf); + return true; + } + return false; + }, + + /** + * 验证参数中是否存在检索词keyword + * + * @param {Object} param 接口参数 + */ + checkKeyword(param){ + return !this.checkParamKeyEmpty(param, 'keyword'); + }, + + /** + * 验证location值 + * + * @param {Object} param 接口参数 + */ + checkLocation(param) { + var location = this.getLocationParam(param.location); + if (!location || !location.latitude || !location.longitude) { + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); + param.fail(errconf); + param.complete(errconf); + return false; + } + return true; + }, + + /** + * 构造错误数据结构 + * @param {Number} errCode 错误码 + * @param {Number} errMsg 错误描述 + */ + buildErrorConfig(errCode, errMsg) { + return { + status: errCode, + message: errMsg + }; + }, + + /** + * + * 数据处理函数 + * 根据传入参数不同处理不同数据 + * @param {String} feature 功能名称 + * search 地点搜索 + * suggest关键词提示 + * reverseGeocoder逆地址解析 + * geocoder地址解析 + * getCityList获取城市列表:父集 + * getDistrictByCityId获取区县列表:子集 + * calculateDistance距离计算 + * @param {Object} param 接口参数 + * @param {Object} data 数据 + */ + handleData(param,data,feature){ + if (feature == 'search') { + var searchResult = data.data; + var searchSimplify = []; + for (var i = 0; i < searchResult.length; i++) { + searchSimplify.push({ + id: searchResult[i].id || null, + title: searchResult[i].title || null, + latitude: searchResult[i].location && searchResult[i].location.lat || null, + longitude: searchResult[i].location && searchResult[i].location.lng || null, + address: searchResult[i].address || null, + category: searchResult[i].category || null, + tel: searchResult[i].tel || null, + adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, + city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, + district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, + province: searchResult[i].ad_info && searchResult[i].ad_info.province || null + }) + } + param.success(data, { + searchResult: searchResult, + searchSimplify: searchSimplify + }) + } else if (feature == 'suggest') { + var suggestResult = data.data; + var suggestSimplify = []; + for (var i = 0; i < suggestResult.length; i++) { + suggestSimplify.push({ + adcode: suggestResult[i].adcode || null, + address: suggestResult[i].address || null, + category: suggestResult[i].category || null, + city: suggestResult[i].city || null, + district: suggestResult[i].district || null, + id: suggestResult[i].id || null, + latitude: suggestResult[i].location && suggestResult[i].location.lat || null, + longitude: suggestResult[i].location && suggestResult[i].location.lng || null, + province: suggestResult[i].province || null, + title: suggestResult[i].title || null, + type: suggestResult[i].type || null + }) + } + param.success(data, { + suggestResult: suggestResult, + suggestSimplify: suggestSimplify + }) + } else if (feature == 'reverseGeocoder') { + var reverseGeocoderResult = data.result; + var reverseGeocoderSimplify = { + address: reverseGeocoderResult.address || null, + latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, + longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, + adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, + city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, + district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, + nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, + province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, + street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, + street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, + recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, + rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null + }; + if (reverseGeocoderResult.pois) {//判断是否返回周边poi + var pois = reverseGeocoderResult.pois; + var poisSimplify = []; + for (var i = 0;i < pois.length;i++) { + poisSimplify.push({ + id: pois[i].id || null, + title: pois[i].title || null, + latitude: pois[i].location && pois[i].location.lat || null, + longitude: pois[i].location && pois[i].location.lng || null, + address: pois[i].address || null, + category: pois[i].category || null, + adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, + city: pois[i].ad_info && pois[i].ad_info.city || null, + district: pois[i].ad_info && pois[i].ad_info.district || null, + province: pois[i].ad_info && pois[i].ad_info.province || null + }) + } + param.success(data,{ + reverseGeocoderResult: reverseGeocoderResult, + reverseGeocoderSimplify: reverseGeocoderSimplify, + pois: pois, + poisSimplify: poisSimplify + }) + } else { + param.success(data, { + reverseGeocoderResult: reverseGeocoderResult, + reverseGeocoderSimplify: reverseGeocoderSimplify + }) + } + } else if (feature == 'geocoder') { + var geocoderResult = data.result; + var geocoderSimplify = { + title: geocoderResult.title || null, + latitude: geocoderResult.location && geocoderResult.location.lat || null, + longitude: geocoderResult.location && geocoderResult.location.lng || null, + adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, + province: geocoderResult.address_components && geocoderResult.address_components.province || null, + city: geocoderResult.address_components && geocoderResult.address_components.city || null, + district: geocoderResult.address_components && geocoderResult.address_components.district || null, + street: geocoderResult.address_components && geocoderResult.address_components.street || null, + street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, + level: geocoderResult.level || null + }; + param.success(data,{ + geocoderResult: geocoderResult, + geocoderSimplify: geocoderSimplify + }); + } else if (feature == 'getCityList') { + var provinceResult = data.result[0]; + var cityResult = data.result[1]; + var districtResult = data.result[2]; + param.success(data,{ + provinceResult: provinceResult, + cityResult: cityResult, + districtResult: districtResult + }); + } else if (feature == 'getDistrictByCityId') { + var districtByCity = data.result[0]; + param.success(data, districtByCity); + } else if (feature == 'calculateDistance') { + var calculateDistanceResult = data.result.elements; + var distance = []; + for (var i = 0; i < calculateDistanceResult.length; i++){ + distance.push(calculateDistanceResult[i].distance); + } + param.success(data, { + calculateDistanceResult: calculateDistanceResult, + distance: distance + }); + } else if (feature == 'direction') { + var direction = data.result.routes; + param.success(data,direction); + } else { + param.success(data); + } + }, + + /** + * 构造微信请求参数,公共属性处理 + * + * @param {Object} param 接口参数 + * @param {Object} param 配置项 + * @param {String} feature 方法名 + */ + buildWxRequestConfig(param, options, feature) { + var that = this; + options.header = { "content-type": "application/json" }; + options.method = 'GET'; + options.success = function (res) { + var data = res.data; + if (data.status === 0) { + that.handleData(param, data, feature); + } else { + param.fail(data); + } + }; + options.fail = function (res) { + res.statusCode = ERROR_CONF.WX_ERR_CODE; + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + }; + options.complete = function (res) { + var statusCode = +res.statusCode; + switch(statusCode) { + case ERROR_CONF.WX_ERR_CODE: { + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + break; + } + case ERROR_CONF.WX_OK_CODE: { + var data = res.data; + if (data.status === 0) { + param.complete(data); + } else { + param.complete(that.buildErrorConfig(data.status, data.message)); + } + break; + } + default:{ + param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)); + } + + } + }; + return options; + }, + + /** + * 处理用户参数是否传入坐标进行不同的处理 + */ + locationProcess(param, locationsuccess, locationfail, locationcomplete) { + var that = this; + locationfail = locationfail || function (res) { + res.statusCode = ERROR_CONF.WX_ERR_CODE; + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + }; + locationcomplete = locationcomplete || function (res) { + if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + } + }; + if (!param.location) { + that.getWXLocation(locationsuccess, locationfail, locationcomplete); + } else if (that.checkLocation(param)) { + var location = Utils.getLocationParam(param.location); + locationsuccess(location); + } + } +}; + + +class QQMapWX { + + /** + * 构造函数 + * + * @param {Object} options 接口参数,key 为必选参数 + */ + constructor(options) { + if (!options.key) { + throw Error('key值不能为空'); + } + this.key = options.key; + }; + + /** + * POI周边检索 + * + * @param {Object} options 接口参数对象 + * + * 参数对象结构可以参考 + * @see http://lbs.qq.com/webservice_v1/guide-search.html + */ + search(options) { + var that = this; + options = options || {}; + + Utils.polyfillParam(options); + + if (!Utils.checkKeyword(options)) { + return; + } + + var requestParam = { + keyword: options.keyword, + orderby: options.orderby || '_distance', + page_size: options.page_size || 10, + page_index: options.page_index || 1, + output: 'json', + key: that.key + }; + + if (options.address_format) { + requestParam.address_format = options.address_format; + } + + if (options.filter) { + requestParam.filter = options.filter; + } + + var distance = options.distance || "1000"; + var auto_extend = options.auto_extend || 1; + var region = null; + var rectangle = null; + + //判断城市限定参数 + if (options.region) { + region = options.region; + } + + //矩形限定坐标(暂时只支持字符串格式) + if (options.rectangle) { + rectangle = options.rectangle; + } + + var locationsuccess = function (result) { + if (region && !rectangle) { + //城市限定参数拼接 + requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } else if (rectangle && !region) { + //矩形搜索 + requestParam.boundary = "rectangle(" + rectangle + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } else { + requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SEARCH, + data: requestParam + }, 'search')); + }; + Utils.locationProcess(options, locationsuccess); + }; + + /** + * sug模糊检索 + * + * @param {Object} options 接口参数对象 + * + * 参数对象结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-suggestion.html + */ + getSuggestion(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (!Utils.checkKeyword(options)) { + return; + } + + var requestParam = { + keyword: options.keyword, + region: options.region || '全国', + region_fix: options.region_fix || 0, + policy: options.policy || 0, + page_size: options.page_size || 10,//控制显示条数 + page_index: options.page_index || 1,//控制页数 + get_subpois : options.get_subpois || 0,//返回子地点 + output: 'json', + key: that.key + }; + //长地址 + if (options.address_format) { + requestParam.address_format = options.address_format; + } + //过滤 + if (options.filter) { + requestParam.filter = options.filter; + } + //排序 + if (options.location) { + var locationsuccess = function (result) { + requestParam.location = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SUGGESTION, + data: requestParam + }, "suggest")); + }; + Utils.locationProcess(options, locationsuccess); + } else { + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SUGGESTION, + data: requestParam + }, "suggest")); + } + }; + + /** + * 逆地址解析 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-gcoder.html + */ + reverseGeocoder(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + var requestParam = { + coord_type: options.coord_type || 5, + get_poi: options.get_poi || 0, + output: 'json', + key: that.key + }; + if (options.poi_options) { + requestParam.poi_options = options.poi_options + } + + var locationsuccess = function (result) { + requestParam.location = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_GET_GEOCODER, + data: requestParam + }, 'reverseGeocoder')); + }; + Utils.locationProcess(options, locationsuccess); + }; + + /** + * 地址解析 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-geocoder.html + */ + geocoder(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'address')) { + return; + } + + var requestParam = { + address: options.address, + output: 'json', + key: that.key + }; + + //城市限定 + if (options.region) { + requestParam.region = options.region; + } + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_GET_GEOCODER, + data: requestParam + },'geocoder')); + }; + + + /** + * 获取城市列表 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-region.html + */ + getCityList(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + var requestParam = { + output: 'json', + key: that.key + }; + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_CITY_LIST, + data: requestParam + },'getCityList')); + }; + + /** + * 获取对应城市ID的区县列表 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-region.html + */ + getDistrictByCityId(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'id')) { + return; + } + + var requestParam = { + id: options.id || '', + output: 'json', + key: that.key + }; + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_AREA_LIST, + data: requestParam + },'getDistrictByCityId')); + }; + + /** + * 用于单起点到多终点的路线距离(非直线距离)计算: + * 支持两种距离计算方式:步行和驾车。 + * 起点到终点最大限制直线距离10公里。 + * + * 新增直线距离计算。 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-distance.html + */ + calculateDistance(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'to')) { + return; + } + + var requestParam = { + mode: options.mode || 'walking', + to: Utils.location2query(options.to), + output: 'json', + key: that.key + }; + + if (options.from) { + options.location = options.from; + } + + //计算直线距离 + if(requestParam.mode == 'straight'){ + var locationsuccess = function (result) { + var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标 + var data = { + message:"query ok", + result:{ + elements:[] + }, + status:0 + }; + for (var i = 0; i < locationTo.length; i++) { + data.result.elements.push({//将坐标存入 + distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), + duration:0, + from:{ + lat: result.latitude, + lng:result.longitude + }, + to:{ + lat: locationTo[i].lat, + lng: locationTo[i].lng + } + }); + } + var calculateResult = data.result.elements; + var distanceResult = []; + for (var i = 0; i < calculateResult.length; i++) { + distanceResult.push(calculateResult[i].distance); + } + return options.success(data,{ + calculateResult: calculateResult, + distanceResult: distanceResult + }); + }; + + Utils.locationProcess(options, locationsuccess); + } else { + var locationsuccess = function (result) { + requestParam.from = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_DISTANCE, + data: requestParam + },'calculateDistance')); + }; + + Utils.locationProcess(options, locationsuccess); + } + }; + + /** + * 路线规划: + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * https://lbs.qq.com/webservice_v1/guide-road.html + */ + direction(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'to')) { + return; + } + + var requestParam = { + output: 'json', + key: that.key + }; + + //to格式处理 + if (typeof options.to == 'string') { + requestParam.to = options.to; + } else { + requestParam.to = options.to.latitude + ',' + options.to.longitude; + } + //初始化局部请求域名 + var SET_URL_DIRECTION = null; + //设置默认mode属性 + options.mode = options.mode || MODE.driving; + + //设置请求域名 + SET_URL_DIRECTION = URL_DIRECTION + options.mode; + + if (options.from) { + options.location = options.from; + } + + if (options.mode == MODE.driving) { + if (options.from_poi) { + requestParam.from_poi = options.from_poi; + } + if (options.heading) { + requestParam.heading = options.heading; + } + if (options.speed) { + requestParam.speed = options.speed; + } + if (options.accuracy) { + requestParam.accuracy = options.accuracy; + } + if (options.road_type) { + requestParam.road_type = options.road_type; + } + if (options.to_poi) { + requestParam.to_poi = options.to_poi; + } + if (options.from_track) { + requestParam.from_track = options.from_track; + } + if (options.waypoints) { + requestParam.waypoints = options.waypoints; + } + if (options.policy) { + requestParam.policy = options.policy; + } + if (options.plate_number) { + requestParam.plate_number = options.plate_number; + } + } + + if (options.mode == MODE.transit) { + if (options.departure_time) { + requestParam.departure_time = options.departure_time; + } + if (options.policy) { + requestParam.policy = options.policy; + } + } + + var locationsuccess = function (result) { + requestParam.from = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction',options.mode); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: SET_URL_DIRECTION, + data: requestParam + }, 'direction')); + }; + + Utils.locationProcess(options, locationsuccess); + } +}; + +module.exports = QQMapWX; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/version.js b/mallplusui-uniapp-app2/components/eonfox/version.js new file mode 100644 index 0000000..b5d702c --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/version.js @@ -0,0 +1,3 @@ +// 版本控制文件 + var version='0.0.12'; + export default version; \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/eonfox/websocket.js b/mallplusui-uniapp-app2/components/eonfox/websocket.js new file mode 100644 index 0000000..90830e2 --- /dev/null +++ b/mallplusui-uniapp-app2/components/eonfox/websocket.js @@ -0,0 +1,541 @@ +import eonfoxObject from '@/components/eonfox/eonfox.js'; +var eonfox = new eonfoxObject(); +var websocket_app = false; +//#ifdef APP-PLUS +websocket_app = true; +//#endif + +var websocket = function(config){}; +websocket.prototype = { + + // url :'wss://developer.eapie.eonfox.com:9997',//测试版 + url :'wss://eapie.eonfox.com:9999',//正式版 + connect_type : 0,//连接类型。0是安卓,1是非安卓 + debug: false,//是否调试 + close_type : 0,//1是手动关闭,不会再尝试连接 + token:'',//websocket令牌 + open:false,//打开状态 + client_id:'',//连接ID + server_time: 0,//websocket 服务器时间 + messages:[],//接受的websocket消息的集合 + message_max_number:10,//最大消息个数 + messages_change:function(){},//变动时执行的函数 + + heartbeat_interval_id: null,//心跳检测的定时器ID + heartbeat_ms: 15000,//心跳检测毫秒 + heartbeat_messages:[],//心跳检测的信息集合 + heartbeat_message_max_number:10,//最大消息个数 + heartbeat_messages_change:function(){},//变动时执行的函数 + + + connect_parameter: null,//连接websocket的参数 + + + /* 调试信息 */ + debug_message:function(message, fn){ + if( !websocket.prototype.debug ){ + return false; + } + + console.log(message); + + uni.showToast({ + title: message, + icon: 'none', + duration: 3000 + }); + + if(typeof fn == 'function'){ + fn(); + } + }, + + /* 获取 websocket 数据 */ + get_data : function(res){ + if( !res.data ){ + return false; + } + return JSON.parse( res.data ); + }, + + + + /* 设置心跳检测的信息集合 */ + set_heartbeat_messages: function(message){ + if( this.heartbeat_messages.length >= this.heartbeat_message_max_number ){ + this.heartbeat_messages.pop();//删除最后一个元素 + } + + //往前面添加 + this.heartbeat_messages.unshift(message); + if(typeof websocket.prototype.heartbeat_messages_change == 'function') websocket.prototype.heartbeat_messages_change(); + }, + + + /* 设置心跳检测的信息集合 */ + set_messages: function(message){ + if( this.messages.length >= this.message_max_number ){ + this.messages.pop();//删除最后一个元素 + } + + //往前面添加 + this.messages.unshift(message); + if(typeof websocket.prototype.messages_change == 'function') websocket.prototype.messages_change(); + }, + + messages_change_function: function(fn){ + websocket.prototype.messages_change = fn; + }, + + heartbeat_messages_change_function: function(fn){ + websocket.prototype.heartbeat_messages_change = fn; + }, + + + /** + * 获取左 websocket_token + * 如果没用传入回调函数,那么则直接返回当前左令牌,但是有可能会出现左令牌失效 + * 正常操作是,传入一个回调函数,左令牌始终是保持最新的。 + * + * @param {Function} #fn + */ + session_websocket_token : function(fn){ + if(typeof fn != "function"){ + var storage_token = eonfox.token(); + if( (function(){try{ return storage_token['session_websocket_token'];}catch(e){return false;}}()) ){ + return storage_token['session_websocket_token']; + }else{ + return ''; + } + }else{ + eonfox.submit({ + callback: function(){ + //从本地缓存中同步获取指定 key 对应的内容。 + var websocket_token = ""; + var storage_token = eonfox.token(); + if( (function(){try{ return storage_token['session_websocket_token'];}catch(e){return false;}}()) ){ + websocket_token = storage_token['session_websocket_token']; + } + fn(websocket_token); + } + }); + return true; + } + }, + + /* + * 获取 websocket 令牌 + * 传入一个回调函数 + */ + get_token : function(fn){ + var websocket_token = websocket.prototype.session_websocket_token(); + if( websocket_token ){ + console.log('get_websocket_token 已存在', websocket_token); + fn(websocket_token); + }else{ + console.log('get_websocket_token 不存在,异步获取'); + websocket.prototype.session_websocket_token(function(websocket_token){ + fn(websocket_token); + }); + } + }, + + + + /* 连接 websocket */ + connect: function(connectParameter){ + websocket.prototype.connect_type = 1;//连接类型。0是安卓,1是非安卓 + websocket.prototype.not_android_connect(connectParameter); + // if( websocket_app && plus.os.name == 'Android'){ + // websocket.prototype.connect_type = 0;//连接类型。0是安卓,1是非安卓 + // websocket.prototype.android_connect(connectParameter); + // }else{ + // websocket.prototype.connect_type = 1;//连接类型。0是安卓,1是非安卓 + // websocket.prototype.not_android_connect(connectParameter); + // } + }, + + //安卓程序 + android_connect: function(connectParameter){}, + + + //非安卓程序 + //data.onSocketOpen + not_android_connect: function(connectParameter){ + var _this = this; + websocket.prototype.debug_message('websocket.connect 连接 websocket'); + websocket.prototype.connect_parameter = connectParameter; + websocket.prototype.get_token(function(token){ + if( !token ){ + //这里弹出错误消息 + websocket.prototype.debug_message('websocket.connect 连接失败!没有获取到 websocket token'); + } + + //链接 + uni.connectSocket({ + url: websocket.prototype.url, + success(){ + _this.set_messages({ + state:true, + content:'连接webscoket成功', + }); + websocket.prototype.token = token; + websocket.prototype.debug_message(' uni.connectSocket 连接webscoket成功!token:'+token); + }, + fail(){ + _this.set_messages({ + state:false, + content:'连接webscoket失败', + }); + + websocket.prototype.debug_message(' uni.connectSocket 连接webscoket失败!token:'+token); + } + }); + + }); + + //WebSocket连接打开监听 + uni.onSocketOpen(function () { + websocket.prototype.close_type = 0; + websocket.prototype.open = true; + websocket.prototype.debug_message('uni.onSocketOpen WebSocket连接已经打开监听!'); + if(connectParameter && typeof connectParameter.onSocketOpen == 'function'){ + connectParameter.onSocketOpen(); + } + }); + + uni.onSocketClose(function (res) { + websocket.prototype.token = ''; + websocket.prototype.open = false; + websocket.prototype.client_id = ''; + //关闭心跳检测 + if( websocket.prototype.heartbeat_interval_id ){ + clearInterval( websocket.prototype.heartbeat_interval_id ); + } + + if(connectParameter && typeof connectParameter.onSocketClose == 'function'){ + connectParameter.onSocketClose(res); + } + + //开启心跳检测 + if( websocket.prototype.close_type == 0){ + websocket.prototype.debug_message('uni.onSocketClose 非手动关闭,开启心跳守护'); + setTimeout(function(){ + websocket.prototype.connect(connectParameter); + }, websocket.prototype.heartbeat_ms); + + } + websocket.prototype.debug_message('uni.onSocketClose WebSocket 已关闭!'); + }); + + //收到服务器内容 + uni.onSocketMessage(function (res) { + console.log('onSocketMessage!!!!!!!!'); + //给一个超时器 + setTimeout(function(){ + console.log('setTimeout!!!!!!!!'); + websocket.prototype.debug_message('onSocketMessage 获取 websocket 数据:' + JSON.stringify(res)); + var websocket_token = eonfox.websocketToken(); + var r = websocket.prototype.get_data(res); + //websocket 检查连接ID值(旧-新) + if( (r.data && r.data.client_id && websocket.prototype.client_id != r.data.client_id) || + (r.data && r.data.server_time && websocket.prototype.server_time != r.data.server_time) || + (websocket.prototype.token != websocket_token) ){ + if(r.data && r.data.client_id && websocket.prototype.client_id != r.data.client_id){ + websocket.prototype.debug_message('websocket 连接ID 不一致',function(){ + console.log('websocket.prototype.client_id != r.data.client_id', websocket.prototype.client_id, r.data.client_id); + }); + } + if(r.data && r.data.server_time && websocket.prototype.server_time != r.data.server_time){ + websocket.prototype.debug_message('websocket 服务器时间 不一致',function(){ + console.log('websocket.prototype.server_time != r.data.server_time', websocket.prototype.server_time, r.data.server_time); + }); + } + if(websocket.prototype.token != websocket_token){ + websocket.prototype.debug_message('websocket_token 不一致',function(){ + console.log('websocket.prototype.token != websocket_token', websocket.prototype.token, websocket_token); + }); + } + return websocket.prototype.init( r.data.client_id, r.data.server_time, websocket_token, connectParameter, function(){ + if(typeof connectParameter.onSocketMessage == 'function'){ + connectParameter.onSocketMessage(res); + } + });//初始化 + }else{ + if(connectParameter && typeof connectParameter.onSocketMessage == 'function'){ + connectParameter.onSocketMessage(res); + } + } + + }, 0); + + }); + + uni.onSocketError(function (res) { + //开启心跳检测 + setTimeout(function(){ + websocket.prototype.connect(connectParameter); + }, websocket.prototype.heartbeat_ms); + if(connectParameter && typeof connectParameter.onSocketError == 'function'){ + connectParameter.onSocketError(res); + } + _this.set_messages({ + state:false, + content:'连接webscoket失败', + error: res + }); + + websocket.prototype.debug_message('uni.onSocketError WebSocket连接打开失败,请检查!error:'+res); + }); + }, + + + + /* 初始化 */ + init : function( client_id, server_time, token, connectParameter, callback){ + var errorData = { + open : websocket.prototype.open, + token : websocket.prototype.token, + client_id : client_id + }; + + if( !websocket.prototype.open || !client_id ){ + _this.set_messages({ + state:false, + content:'websocket 初始化失败', + error: '' + }); + websocket.prototype.debug_message('websocket 初始化失败!'); + }; + + eonfox.submit({ + request: { + s: ['SESSIONWEBSOCKETSELFCLIENT', [{ + client_id: client_id, //连接id + server_time: server_time // 服务器时间 + }]] + }, + callback: function(){ + //必须是在初始化成功之后 才更新连接ID值 + websocket.prototype.client_id = client_id; + websocket.prototype.server_time = server_time; + //再次重置 websoket 令牌 + websocket.prototype.token = token; + //开启心跳检测 + if( websocket.prototype.heartbeat_interval_id ){ + clearInterval( websocket.prototype.heartbeat_interval_id ); + } + websocket.prototype.heartbeat_interval_id = setInterval(function(){ + websocket.prototype.debug_message('websocket init 心跳检测'); + websocket.prototype.heartbeat(function(errorData){ + websocket.prototype.debug_message('websocket init 心跳检测失败', function(){ + console.log('websocket_init 心跳检测失败返回值:', errorData); + }); + clearInterval( websocket.prototype.heartbeat_interval_id ); + websocket.prototype.connect(connectParameter); + }); + }, websocket.prototype.heartbeat_ms); + + if(typeof connectParameter.initSuccess != 'function') connectParameter.initSuccess = function(){}; + connectParameter.initSuccess(); + websocket.prototype.debug_message('websocket init 初始化成功'); + websocket.prototype.set_heartbeat_messages({ + state:true, + content:'websocket init 初始化成功!' + }); + if(typeof callback != 'function') callback = function(){}; + callback(); + }, + error : function(errorData){ + websocket.prototype.debug_message('websocket init 初始化错误'); + websocket.prototype.set_heartbeat_messages({ + state:false, + content:'websocket init 初始化错误!', + error:errorData + }); + return connectParameter.initError(errorData); + } + }); + }, + + + /* 发送心跳 */ + heartbeat: function(errorFunction){ + var errorData = { + open : websocket.prototype.open, + token : websocket.prototype.token, + client_id : websocket.prototype.client_id + }; + if( !websocket.prototype.open || !websocket.prototype.token ){ + if(typeof errorFunction != 'function') errorFunction = function(){}; + websocket.prototype.debug_message('websocket heartbeat 初始化失败!'); + websocket.prototype.set_heartbeat_messages({ + state:false, + content:'websocket 初始化失败!' + }); + return errorFunction(errorData); + }; + + var heartbeat = JSON.stringify({ + module:'heartbeat', + application: eonfox.application, + token: websocket.prototype.token + }); + + uni.sendSocketMessage({ + data: heartbeat, + success: function(res){ + websocket.prototype.debug_message('websocket heartbeat 保持心跳成功!'); + websocket.prototype.set_heartbeat_messages({ + state:true, + content:'websocket heartbeat 保持心跳成功!' + }); + }, + fail: function(data){ + websocket.prototype.debug_message('websocket heartbeat 保持心跳失败!'); + websocket.prototype.set_heartbeat_messages({ + state:false, + content:'websocket heartbeat 保持心跳失败!', + error: data + }); + return errorFunction(errorData); + } + }); + + }, + + + + //重启 websocket + restart : function(){ + websocket.prototype.close(); + //重启 + websocket.prototype.connect(websocket.prototype.connect_parameter); + websocket.prototype.debug_message('重启 websocket'); + }, + + //关闭 + close : function(){ + //关闭 + if( websocket.prototype.open ){ + //连接类型。0是安卓,1是非安卓 + if( websocket.prototype.connect_type == 1 ){ + uni.closeSocket(); + }else{ + // + } + } + + websocket.prototype.close_type = 1; + websocket.prototype.token = ''; + websocket.prototype.open = false; + websocket.prototype.client_id = ''; + //关闭心跳检测 + if( websocket.prototype.heartbeat_interval_id ){ + clearInterval( websocket.prototype.heartbeat_interval_id ); + } + + }, + + + + + /* 用户向用户推送 */ + user_push : function(user_id, message, errorFunction){ + var data = { + open : websocket.prototype.open, + token : websocket.prototype.token + } + if( !websocket.prototype.open || !websocket.prototype.token ){ + if(typeof errorFunction != 'function') errorFunction = function(){}; + return errorFunction(data); + } + var user_push = JSON.stringify({ + module:'user_push', + application: eonfox.application, + token: websocket.prototype.token, + user_id:user_id, + message: message, + }); + + uni.sendSocketMessage({ + data: user_push, + success: function(res){ + websocket.prototype.debug_message('websocket 消息推送成功!', function(){ + console.log('user_push', res) + }); + websocket.prototype.set_messages({ + state:true, + content:'websocket user_push 消息推送成功!', + }); + }, + fail: function(faildata){ + websocket.prototype.debug_message('websocket 消息推送失败!', function(){ + console.log('user_push', faildata) + }); + websocket.prototype.set_messages({ + state:false, + content:'websocket user_push 消息推送失败!', + error:faildata + }); + + return errorFunction(errorData); + } + }); + + }, + + + /* 用户向后台推送 */ + admin_push : function(message, errorFunction){ + var data = { + open : websocket.prototype.open, + token : websocket.prototype.token + } + if( !websocket.prototype.open || !websocket.prototype.token ){ + if(typeof errorFunction != 'function') errorFunction = function(){}; + return errorFunction(data); + } + var admin_push = JSON.stringify({ + module:'admin_push', + application: eonfox.application, + token: websocket.prototype.token, + message: message, + }); + + uni.sendSocketMessage({ + data: admin_push, + success: function(res){ + websocket.prototype.debug_message('websocket 消息推送成功!', function(){ + console.log('admin_push', res) + }); + websocket.prototype.set_messages({ + state:true, + content:'websocket admin_push 消息推送成功!', + }); + + }, + fail: function(faildata){ + websocket.prototype.debug_message('websocket 消息推送失败!', function(){ + console.log('admin_push', faildata) + }); + websocket.prototype.set_messages({ + state:false, + content:'websocket admin_push 消息推送失败!', + error:faildata + }); + + return errorFunction(errorData); + } + }); + }, + + + + + +}; + +export default websocket; + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseAudio.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseAudio.vue new file mode 100644 index 0000000..b277717 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseAudio.vue @@ -0,0 +1,28 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseImg.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseImg.vue new file mode 100644 index 0000000..4762094 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseImg.vue @@ -0,0 +1,119 @@ + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTable.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTable.vue new file mode 100644 index 0000000..3a94b4e --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTable.vue @@ -0,0 +1,53 @@ + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate0.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate0.vue new file mode 100644 index 0000000..c306d47 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate0.vue @@ -0,0 +1,98 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate1.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate1.vue new file mode 100644 index 0000000..7054e35 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate1.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate10.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate10.vue new file mode 100644 index 0000000..11c252c --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate10.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate11.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate11.vue new file mode 100644 index 0000000..47b2163 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate11.vue @@ -0,0 +1,86 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate2.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate2.vue new file mode 100644 index 0000000..f06782a --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate2.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate3.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate3.vue new file mode 100644 index 0000000..b0943f8 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate3.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate4.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate4.vue new file mode 100644 index 0000000..8a43756 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate4.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate5.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate5.vue new file mode 100644 index 0000000..0c0993e --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate5.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate6.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate6.vue new file mode 100644 index 0000000..0dca28a --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate6.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate7.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate7.vue new file mode 100644 index 0000000..b62acaf --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate7.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate8.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate8.vue new file mode 100644 index 0000000..f6fa037 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate8.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate9.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate9.vue new file mode 100644 index 0000000..47ac81a --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseTemplate9.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseVideo.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseVideo.vue new file mode 100644 index 0000000..7d05285 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/components/wxParseVideo.vue @@ -0,0 +1,15 @@ + + + diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/libs/html2json.js b/mallplusui-uniapp-app2/components/gaoyia-parse/libs/html2json.js new file mode 100644 index 0000000..f71a3e7 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/libs/html2json.js @@ -0,0 +1,262 @@ +/** + * html2Json 改造来自: https://github.com/Jxck/html2json + * + * + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ + +import wxDiscode from './wxDiscode'; +import HTMLParser from './htmlparser'; + +function makeMap(str) { + const obj = {}; + const items = str.split(','); + for (let i = 0; i < items.length; i += 1) obj[items[i]] = true; + return obj; +} + +// Block Elements - HTML 5 +const block = makeMap('br,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); + +// Inline Elements - HTML 5 +const inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); + +// Elements that you can, intentionally, leave open +// (and which close themselves) +const closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); + +function removeDOCTYPE(html) { + const isDocument = /([^]*)<\/body>/.test(html); + return isDocument ? RegExp.$1 : html; +} + +function trimHtml(html) { + return html + .replace(//gi, '') + .replace(/\/\*.*?\*\//gi, '') + .replace(/[ ]+/gi, '') + .replace(//gi, ''); +} + +function getScreenInfo() { + const screen = {}; + wx.getSystemInfo({ + success: (res) => { + screen.width = res.windowWidth; + screen.height = res.windowHeight; + }, + }); + return screen; +} + +function html2json(html, customHandler, imageProp, host) { + // 处理字符串 + html = removeDOCTYPE(html); + html = trimHtml(html); + html = wxDiscode.strDiscode(html); + // 生成node节点 + const bufArray = []; + const results = { + nodes: [], + imageUrls: [], + }; + + const screen = getScreenInfo(); + function Node(tag) { + this.node = 'element'; + this.tag = tag; + + this.$screen = screen; + } + + HTMLParser(html, { + start(tag, attrs, unary) { + // node for this element + const node = new Node(tag); + + if (bufArray.length !== 0) { + const parent = bufArray[0]; + if (parent.nodes === undefined) { + parent.nodes = []; + } + } + + if (block[tag]) { + node.tagType = 'block'; + } else if (inline[tag]) { + node.tagType = 'inline'; + } else if (closeSelf[tag]) { + node.tagType = 'closeSelf'; + } + + node.attr = attrs.reduce((pre, attr) => { + const { name } = attr; + let { value } = attr; + if (name === 'class') { + node.classStr = value; + } + // has multi attibutes + // make it array of attribute + if (name === 'style') { + node.styleStr = value; + } + if (value.match(/ /)) { + value = value.split(' '); + } + + // if attr already exists + // merge it + if (pre[name]) { + if (Array.isArray(pre[name])) { + // already array, push to last + pre[name].push(value); + } else { + // single value, make it array + pre[name] = [pre[name], value]; + } + } else { + // not exist, put it + pre[name] = value; + } + + return pre; + }, {}); + + // 优化样式相关属性 + if (node.classStr) { + node.classStr += ` ${node.tag}`; + } else { + node.classStr = node.tag; + } + if (node.tagType === 'inline') { + node.classStr += ' inline'; + } + + // 对img添加额外数据 + if (node.tag === 'img') { + let imgUrl = node.attr.src; + imgUrl = wxDiscode.urlToHttpUrl(imgUrl, imageProp.domain); + Object.assign(node.attr, imageProp, { + src: imgUrl || '', + }); + if (imgUrl) { + results.imageUrls.push(imgUrl); + } + } + + // 处理a标签属性 + if (node.tag === 'a') { + node.attr.href = node.attr.href || ''; + } + + // 处理font标签样式属性 + if (node.tag === 'font') { + const fontSize = [ + 'x-small', + 'small', + 'medium', + 'large', + 'x-large', + 'xx-large', + '-webkit-xxx-large', + ]; + const styleAttrs = { + color: 'color', + face: 'font-family', + size: 'font-size', + }; + if (!node.styleStr) node.styleStr = ''; + Object.keys(styleAttrs).forEach((key) => { + if (node.attr[key]) { + const value = key === 'size' ? fontSize[node.attr[key] - 1] : node.attr[key]; + node.styleStr += `${styleAttrs[key]}: ${value};`; + } + }); + } + + // 临时记录source资源 + if (node.tag === 'source') { + results.source = node.attr.src; + } + + if (customHandler.start) { + customHandler.start(node, results); + } + + if (unary) { + // if this tag doesn't have end tag + // like + // add to parents + const parent = bufArray[0] || results; + if (parent.nodes === undefined) { + parent.nodes = []; + } + parent.nodes.push(node); + } else { + bufArray.unshift(node); + } + }, + end(tag) { + // merge into parent tag + const node = bufArray.shift(); + if (node.tag !== tag) { + console.error('invalid state: mismatch end tag'); + } + + // 当有缓存source资源时于于video补上src资源 + if (node.tag === 'video' && results.source) { + node.attr.src = results.source; + delete results.source; + } + + if (customHandler.end) { + customHandler.end(node, results); + } + + if (bufArray.length === 0) { + results.nodes.push(node); + } else { + const parent = bufArray[0]; + if (!parent.nodes) { + parent.nodes = []; + } + parent.nodes.push(node); + } + }, + chars(text) { + // if (!text.trim()){ + // return; + // } + const node = { + node: 'text', + text, + }; + + if (customHandler.chars) { + customHandler.chars(node, results); + } + + if (bufArray.length === 0) { + results.nodes.push(node); + } else { + const parent = bufArray[0]; + if (parent.nodes === undefined) { + parent.nodes = []; + } + parent.nodes.push(node); + } + }, + }); + + return results; +} + +export default html2json; diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/libs/htmlparser.js b/mallplusui-uniapp-app2/components/gaoyia-parse/libs/htmlparser.js new file mode 100644 index 0000000..2939da3 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/libs/htmlparser.js @@ -0,0 +1,156 @@ +/** + * + * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser + * + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ +// Regular Expressions for parsing tags and attributes + +const startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z0-9_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/; +const endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/; +const attr = /([a-zA-Z0-9_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; + +function makeMap(str) { + const obj = {}; + const items = str.split(','); + for (let i = 0; i < items.length; i += 1) obj[items[i]] = true; + return obj; +} + +// Empty Elements - HTML 5 +const empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr'); + +// Block Elements - HTML 5 +const block = makeMap('address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); + +// Inline Elements - HTML 5 +const inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); + +// Elements that you can, intentionally, leave open +// (and which close themselves) +const closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); + +// Attributes that have their values filled in disabled="disabled" +const fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'); + +function HTMLParser(html, handler) { + let index; + let chars; + let match; + let last = html; + const stack = []; + + stack.last = () => stack[stack.length - 1]; + + function parseEndTag(tag, tagName) { + // If no tag name is provided, clean shop + let pos; + if (!tagName) { + pos = 0; + } else { + // Find the closest opened tag of the same type + tagName = tagName.toLowerCase(); + for (pos = stack.length - 1; pos >= 0; pos -= 1) { + if (stack[pos] === tagName) break; + } + } + if (pos >= 0) { + // Close all the open elements, up the stack + for (let i = stack.length - 1; i >= pos; i -= 1) { + if (handler.end) handler.end(stack[i]); + } + + // Remove the open elements from the stack + stack.length = pos; + } + } + + function parseStartTag(tag, tagName, rest, unary) { + tagName = tagName.toLowerCase(); + + if (block[tagName]) { + while (stack.last() && inline[stack.last()]) { + parseEndTag('', stack.last()); + } + } + + if (closeSelf[tagName] && stack.last() === tagName) { + parseEndTag('', tagName); + } + + unary = empty[tagName] || !!unary; + + if (!unary) stack.push(tagName); + + if (handler.start) { + const attrs = []; + + rest.replace(attr, function genAttr(matches, name) { + const value = arguments[2] || arguments[3] || arguments[4] || (fillAttrs[name] ? name : ''); + + attrs.push({ + name, + value, + escaped: value.replace(/(^|[^\\])"/g, '$1\\"'), // " + }); + }); + + if (handler.start) { + handler.start(tagName, attrs, unary); + } + } + } + + while (html) { + chars = true; + + if (html.indexOf(' "); + str = str.replace(/ /g, ' '); + str = str.replace(/ /g, ' '); + str = str.replace(/"/g, "'"); + str = str.replace(/&/g, '&'); + str = str.replace(/</g, '<'); + str = str.replace(/>/g, '>'); + str = str.replace(/•/g, '•'); + return str; +} + +// HTML 支持的其他实体 +function strOtherDiscode(str) { + str = str.replace(/Œ/g, 'Œ'); + str = str.replace(/œ/g, 'œ'); + str = str.replace(/Š/g, 'Š'); + str = str.replace(/š/g, 'š'); + str = str.replace(/Ÿ/g, 'Ÿ'); + str = str.replace(/ƒ/g, 'ƒ'); + str = str.replace(/ˆ/g, 'ˆ'); + str = str.replace(/˜/g, '˜'); + str = str.replace(/ /g, ''); + str = str.replace(/ /g, ''); + str = str.replace(/ /g, ''); + str = str.replace(/‌/g, ''); + str = str.replace(/‍/g, ''); + str = str.replace(/‎/g, ''); + str = str.replace(/‏/g, ''); + str = str.replace(/–/g, '–'); + str = str.replace(/—/g, '—'); + str = str.replace(/‘/g, '‘'); + str = str.replace(/’/g, '’'); + str = str.replace(/‚/g, '‚'); + str = str.replace(/“/g, '“'); + str = str.replace(/”/g, '”'); + str = str.replace(/„/g, '„'); + str = str.replace(/†/g, '†'); + str = str.replace(/‡/g, '‡'); + str = str.replace(/•/g, '•'); + str = str.replace(/…/g, '…'); + str = str.replace(/‰/g, '‰'); + str = str.replace(/′/g, '′'); + str = str.replace(/″/g, '″'); + str = str.replace(/‹/g, '‹'); + str = str.replace(/›/g, '›'); + str = str.replace(/‾/g, '‾'); + str = str.replace(/€/g, '€'); + str = str.replace(/™/g, '™'); + + str = str.replace(/←/g, '←'); + str = str.replace(/↑/g, '↑'); + str = str.replace(/→/g, '→'); + str = str.replace(/↓/g, '↓'); + str = str.replace(/↔/g, '↔'); + str = str.replace(/↵/g, '↵'); + str = str.replace(/⌈/g, '⌈'); + str = str.replace(/⌉/g, '⌉'); + + str = str.replace(/⌊/g, '⌊'); + str = str.replace(/⌋/g, '⌋'); + str = str.replace(/◊/g, '◊'); + str = str.replace(/♠/g, '♠'); + str = str.replace(/♣/g, '♣'); + str = str.replace(/♥/g, '♥'); + + str = str.replace(/♦/g, '♦'); + str = str.replace(/'/g, "'"); + return str; +} + +function strDiscode(str) { + str = strNumDiscode(str); + str = strGreeceDiscode(str); + str = strcharacterDiscode(str); + str = strOtherDiscode(str); + return str; +} + +function urlToHttpUrl(url, domain) { + if (/^\/\//.test(url)) { + return `https:${url}`; + } else if (/^\//.test(url)) { + return `https://${domain}${url}`; + } + return url; +} + +export default { + strDiscode, + urlToHttpUrl, +}; diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/parse.css b/mallplusui-uniapp-app2/components/gaoyia-parse/parse.css new file mode 100644 index 0000000..a9d8c34 --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/parse.css @@ -0,0 +1,248 @@ +/** + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ +/** + * 请在全局下引入该文件,@import '/static/wxParse.css'; + */ +.wxParse { + user-select:none; + width: 100%; + font-family: Helvetica, "PingFangSC", 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + color: #333; + line-height: 1.5; + font-size: 1em; + text-align:justify;/* //左右两端对齐 */ +} +.wxParse view ,.wxParse uni-view{ + word-break: break-word; +} +.wxParse .p { + padding-bottom: 0; + clear: both; + /* letter-spacing: 0;//字间距 */ +} +.wxParse .inline { + display: inline; + margin: 0; + padding: 0; +} + +.wxParse .div { + margin: 0; + padding: 0; + display: block; +} + +.wxParse .h1{ + font-size: 2em; + line-height: 1.2em; + margin: 0.67em 0; +} +.wxParse .h2{ + font-size: 1.5em; + margin: 0.83em 0; +} +.wxParse .h3{ + font-size: 1.17em; + margin: 1em 0; +} +.wxParse .h4{ + margin: 1.33em 0; +} +.wxParse .h5{ + font-size: 0.83em; + margin: 1.67em 0; +} +.wxParse .h6{ + font-size: 0.83em; + margin: 1.67em 0; +} + +.wxParse .h1, +.wxParse .h2, +.wxParse .h3, +.wxParse .h4, +.wxParse .h5, +.wxParse .h6, +.wxParse .b, +.wxParse .strong{ + font-weight: bolder; +} + +.wxParse .i, +.wxParse .cite, +.wxParse .em, +.wxParse .var, +.wxParse .address { + font-style: italic; +} +.wxParse .spaceshow{ + white-space: pre; +} +.wxParse .pre, +.wxParse .tt, +.wxParse .code, +.wxParse .kbd, +.wxParse .samp { + font-family: monospace; +} +.wxParse .pre { + overflow: auto; + background: #f5f5f5; + padding: 16upx; + white-space: pre; + margin: 1em 0upx; + font-size: 24upx; +} +.wxParse .code { + overflow: auto; + padding: 16upx; + white-space: pre; + margin: 1em 0upx; + background: #f5f5f5; + font-size: 24upx; +} + +.wxParse .big { + font-size: 1.17em; +} + +.wxParse .small, +.wxParse .sub, +.wxParse .sup { + font-size: 0.83em; +} + +.wxParse .sub { + vertical-align: sub; +} +.wxParse .sup { + vertical-align: super; +} + +.wxParse .s, +.wxParse .strike, +.wxParse .del { + text-decoration: line-through; +} + +.wxParse .strong, +.wxParse .s { + display: inline; +} + +.wxParse .a { + color: deepskyblue; +} + +.wxParse .video { + text-align: center; + margin: 22upx 0; +} + +.wxParse .video-video { + width: 100%; +} +.wxParse .uni-image{ + max-width: 100%; +} +.wxParse .img { + display: block; + max-width: 100%; + margin-bottom: 0em;/* //与p标签底部padding同时修改 */ + overflow: hidden; +} + +.wxParse .blockquote { + margin: 10upx 0; + padding: 22upx 0 22upx 22upx; + font-family: Courier, Calibri, "宋体"; + background: #f5f5f5; + border-left: 6upx solid #dbdbdb; +} +.wxParse .blockquote .p { + margin: 0; +} +.wxParse .ul, .wxParse .ol { + display: block; + margin: 1em 0; + padding-left: 2em; +} +.wxParse .ol { + list-style-type: disc; +} +.wxParse .ol { + list-style-type: decimal; +} +.wxParse .ol>weixin-parse-template,.wxParse .ul>weixin-parse-template { + display: list-item; + align-items: baseline; + text-align: match-parent; +} + +.wxParse .ol>.li,.wxParse .ul>.li { + display: list-item; + align-items: baseline; + text-align: match-parent; +} +.wxParse .ul .ul, .wxParse .ol .ul { + list-style-type: circle; +} +.wxParse .ol .ol .ul, .wxParse .ol .ul .ul, .wxParse .ul .ol .ul, .wxParse .ul .ul .ul { + list-style-type: square; +} + +.wxParse .u { + text-decoration: underline; +} +.wxParse .hide { + display: none; +} +.wxParse .del { + display: inline; +} +.wxParse .figure { + overflow: hidden; +} +.wxParse .table .table{ + border-collapse:collapse; + box-sizing: border-box; + /* 内边框 */ + border: 1px solid #dadada; + width: 100%; +} +.wxParse .tbody{ + border-collapse:collapse; + box-sizing: border-box; + /* 内边框 */ + border: 1px solid #dadada; +} +.wxParse .thead, .wxParse .tfoot, .wxParse .th{ + border-collapse:collapse; + box-sizing: border-box; + background: #ececec; + font-weight: 40; +} +.wxParse .tr { + border-collapse:collapse; + box-sizing: border-box; + /* border: 2px solid #F0AD4E; */ + overflow:auto; +} +.wxParse .th, +.wxParse .td{ + border-collapse:collapse; + box-sizing: border-box; + border: 2upx solid #dadada; + overflow:auto; +} +.wxParse .audio, .wxParse .uni-audio-default{ + display: block; +} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/gaoyia-parse/parse.vue b/mallplusui-uniapp-app2/components/gaoyia-parse/parse.vue new file mode 100644 index 0000000..61a80bb --- /dev/null +++ b/mallplusui-uniapp-app2/components/gaoyia-parse/parse.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jihai-lable.vue b/mallplusui-uniapp-app2/components/jihai-lable.vue new file mode 100644 index 0000000..cacbb02 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jihai-lable.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/image/trumpet.png b/mallplusui-uniapp-app2/components/jshop/image/trumpet.png new file mode 100644 index 0000000000000000000000000000000000000000..ad77ac0e4c0c4babd9efa44489f486ec7ae75f55 GIT binary patch literal 1167 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u!1|;QLq8J$%7`-z?B1$5BeXNr6bM+Ea@{>~a zDsl^e@(c_%_7w$*$=RtT3Q4KynR&KK?|1K4QpilPRSGxtHSjHPPR+>ls47YguJQ{> zuF6ifOi{A8OB2#6Ujsl~}fnFS@8`FRQ;GZT~YOG|8(l=MNC=tFG*dQTtjKOhGlLaBMcU?~Fn zf1XUjdj?1;i@sYqSQJ-??bKMovAXrDmvEPo zv&N=S?uD+dx=|rpR&bascI98lGBN6AvY?1wSJ>1`msL)51#Y>t{;1{T!(Z>ste$y& z(eHx~&;N=4e72nLxuJlPONT(Cg67>o&6S~-c9m2=Z7P_%BvG;?wYk8tO>LRL4u(4n zU2F2gx@PU%rYB(JxI^XzBOl}bMzQ&&`EPGbxVD{r&NkUe`);aU(9i5$BJ_Kwx@+$4 zv$H2$ne*1v#y@DbTH$FSRfa?rQxB<)KXvOk{EI)HWt%l4raSNBUI$G9W4YuO|1K!5yyLo6f$RA3Fwe)6_IXE1g*@ExUa)|7M#0HSwmn=+ zS{&8WzGtx9Q~9yGq4+@H1D$~9yB9C94O^(pDDr9bhh*vBTA5Ro!&EX4Xzjh@{m|#_ z;ku22o9~GyT$wjtK$`JfwBPT&Qcq@mkl4V#gMA94y6nd?hXZ=+*>97ajdHY=-_J2LCl{OMci#?Y^*9V}1+!+ETdy zLw@@S@rSzC_FDcqDp#klzh(8>+J_&)Bdj~PKe<+LroEP8eP^AtdhOd%?KA8TH3}qW zFvc*|sT|QV*nQZ${l9#X?+%U(=55UH8y@#nG;iI$S87LW-KJKJwEo!6o9)>R^Ep2z zEs)&ov#!e2(`|>Hrw*G9!@b`s+-YX5JAa!o$;*7aJY)A!*MtM**BQP)jGyG^Icr|y z?+<>_pFJdKN$TRY`R#hoI7t`iA|7!X~kP3%XGcDn~qB{an^L HB{Ts5@zB|@ literal 0 HcmV?d00001 diff --git a/mallplusui-uniapp-app2/components/jshop/image/zoom.png b/mallplusui-uniapp-app2/components/jshop/image/zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..d7aded9fd10cfdc41126d4bdbaf18932b44a7aa9 GIT binary patch literal 1097 zcmeAS@N?(olHy`uVBq!ia0vp^S|H591|*LjJ{irx!04SB5>XQ2>tmIipR1RclAn~S zSCLx)lxJYDv9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3 za#eP+Wr~u$9hXgo70`g()RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`$q{6sLWFOC zf^&XRs)DJWnQpS7iIIZ2rJkXgfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv*>Ne@ z6s4qD1-ZCEEd%mwl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{ z^NN*0MnKGPNi9w;$}A|!%+FH*nVFcBUs__Tq@)kBL?3Dk(0lrD{{cDh5K7Gh21^mp z|MO%L-ZL;T?euhU42fucd)3wUngY&`#QZHNzru?l`Var^orr{d!!@M+MMn;o=fPiTHgV&A3f-PS$k`*$c$=djDiU+szA6~g^jGNiX9Ywa>H zmfUgs$)3}X+Uz{$nIE|#)L$MINAEMsn?3PIlcf7kS~8`&&G-LU z&{x1*Ua-Y+yHKjz@g+CrD#sjH%68XlilpqEM^|MYGOb%4u~h1x`^<~?MCP9q)LXFr z&A-XTMKdq16G?x{A#R|2bWPgQGcWduh(F~pH((y08oV#7twy*zC;>v4c zeydq^M{n83SM#z0s~P(`jQ%Lc9o}rwC;scUhRlJQjj_7NDr-6lS&MJGY~LDP@aGKd*T)De7VN93kB&g?n`GdF_{c``FBH$;8v|7bU$t5VxmazgunFti}D4 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-article.vue b/mallplusui-uniapp-app2/components/jshop/jshop-article.vue new file mode 100644 index 0000000..a3a7716 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-article.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-articleClassify.vue b/mallplusui-uniapp-app2/components/jshop/jshop-articleClassify.vue new file mode 100644 index 0000000..a8b4e25 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-articleClassify.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-blank.vue b/mallplusui-uniapp-app2/components/jshop/jshop-blank.vue new file mode 100644 index 0000000..d396c32 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-blank.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-content.vue b/mallplusui-uniapp-app2/components/jshop/jshop-content.vue new file mode 100644 index 0000000..252b277 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-content.vue @@ -0,0 +1,27 @@ + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-coupon.vue b/mallplusui-uniapp-app2/components/jshop/jshop-coupon.vue new file mode 100644 index 0000000..de585f8 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-coupon.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-goods.vue b/mallplusui-uniapp-app2/components/jshop/jshop-goods.vue new file mode 100644 index 0000000..f999cde --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-goods.vue @@ -0,0 +1,604 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-groupPurchase.vue b/mallplusui-uniapp-app2/components/jshop/jshop-groupPurchase.vue new file mode 100644 index 0000000..4eb18fb --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-groupPurchase.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-imgSingle.vue b/mallplusui-uniapp-app2/components/jshop/jshop-imgSingle.vue new file mode 100644 index 0000000..d2a0a6d --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-imgSingle.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-imgSlide.vue b/mallplusui-uniapp-app2/components/jshop/jshop-imgSlide.vue new file mode 100644 index 0000000..ebe3a00 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-imgSlide.vue @@ -0,0 +1,667 @@ + + + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-imgWindow.vue b/mallplusui-uniapp-app2/components/jshop/jshop-imgWindow.vue new file mode 100644 index 0000000..561984a --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-imgWindow.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-navBar.vue b/mallplusui-uniapp-app2/components/jshop/jshop-navBar.vue new file mode 100644 index 0000000..7de5d13 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-navBar.vue @@ -0,0 +1,616 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-notice.vue b/mallplusui-uniapp-app2/components/jshop/jshop-notice.vue new file mode 100644 index 0000000..20031a6 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-notice.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-onegoods.vue b/mallplusui-uniapp-app2/components/jshop/jshop-onegoods.vue new file mode 100644 index 0000000..a0c8e47 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-onegoods.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-pintuan.vue b/mallplusui-uniapp-app2/components/jshop/jshop-pintuan.vue new file mode 100644 index 0000000..539d2c5 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-pintuan.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-record.vue b/mallplusui-uniapp-app2/components/jshop/jshop-record.vue new file mode 100644 index 0000000..c4b9cd8 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-record.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-search.vue b/mallplusui-uniapp-app2/components/jshop/jshop-search.vue new file mode 100644 index 0000000..5de1b84 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-search.vue @@ -0,0 +1,118 @@ + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-slidegoods.vue b/mallplusui-uniapp-app2/components/jshop/jshop-slidegoods.vue new file mode 100644 index 0000000..09a2c8e --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-slidegoods.vue @@ -0,0 +1,614 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-tabbar.vue b/mallplusui-uniapp-app2/components/jshop/jshop-tabbar.vue new file mode 100644 index 0000000..50a3080 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-tabbar.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-textarea.vue b/mallplusui-uniapp-app2/components/jshop/jshop-textarea.vue new file mode 100644 index 0000000..d161d11 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-textarea.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop-video.vue b/mallplusui-uniapp-app2/components/jshop/jshop-video.vue new file mode 100644 index 0000000..0e8f70e --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop-video.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/jshop/jshop.vue b/mallplusui-uniapp-app2/components/jshop/jshop.vue new file mode 100644 index 0000000..cb536b6 --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/jshop.vue @@ -0,0 +1,88 @@ + + + diff --git a/mallplusui-uniapp-app2/components/jshop/test b/mallplusui-uniapp-app2/components/jshop/test new file mode 100644 index 0000000..f9d611c --- /dev/null +++ b/mallplusui-uniapp-app2/components/jshop/test @@ -0,0 +1,284 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/likes/likes.vue b/mallplusui-uniapp-app2/components/likes/likes.vue new file mode 100644 index 0000000..3b35e05 --- /dev/null +++ b/mallplusui-uniapp-app2/components/likes/likes.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mall-copyright/mallplusCopyright.vue b/mallplusui-uniapp-app2/components/mall-copyright/mallplusCopyright.vue new file mode 100644 index 0000000..667d793 --- /dev/null +++ b/mallplusui-uniapp-app2/components/mall-copyright/mallplusCopyright.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mehaotian-search-revision/mehaotian-search-revision.vue b/mallplusui-uniapp-app2/components/mehaotian-search-revision/mehaotian-search-revision.vue new file mode 100644 index 0000000..39b22f9 --- /dev/null +++ b/mallplusui-uniapp-app2/components/mehaotian-search-revision/mehaotian-search-revision.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mix-list-cell.vue b/mallplusui-uniapp-app2/components/mix-list-cell.vue new file mode 100644 index 0000000..a60259c --- /dev/null +++ b/mallplusui-uniapp-app2/components/mix-list-cell.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mix-loading/mix-loading.vue b/mallplusui-uniapp-app2/components/mix-loading/mix-loading.vue new file mode 100644 index 0000000..3c38afe --- /dev/null +++ b/mallplusui-uniapp-app2/components/mix-loading/mix-loading.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/area.js b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/area.js new file mode 100644 index 0000000..92dfc30 --- /dev/null +++ b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/area.js @@ -0,0 +1,12542 @@ +/* eslint-disable */ +var areaData = [ + [ + [{ + "label": "东城区", + "value": "110101" + }, + { + "label": "西城区", + "value": "110102" + }, + { + "label": "朝阳区", + "value": "110105" + }, + { + "label": "丰台区", + "value": "110106" + }, + { + "label": "石景山区", + "value": "110107" + }, + { + "label": "海淀区", + "value": "110108" + }, + { + "label": "门头沟区", + "value": "110109" + }, + { + "label": "房山区", + "value": "110111" + }, + { + "label": "通州区", + "value": "110112" + }, + { + "label": "顺义区", + "value": "110113" + }, + { + "label": "昌平区", + "value": "110114" + }, + { + "label": "大兴区", + "value": "110115" + }, + { + "label": "怀柔区", + "value": "110116" + }, + { + "label": "平谷区", + "value": "110117" + }, + { + "label": "密云区", + "value": "110118" + }, + { + "label": "延庆区", + "value": "110119" + } + ] + ], + [ + [{ + "label": "和平区", + "value": "120101" + }, + { + "label": "河东区", + "value": "120102" + }, + { + "label": "河西区", + "value": "120103" + }, + { + "label": "南开区", + "value": "120104" + }, + { + "label": "河北区", + "value": "120105" + }, + { + "label": "红桥区", + "value": "120106" + }, + { + "label": "东丽区", + "value": "120110" + }, + { + "label": "西青区", + "value": "120111" + }, + { + "label": "津南区", + "value": "120112" + }, + { + "label": "北辰区", + "value": "120113" + }, + { + "label": "武清区", + "value": "120114" + }, + { + "label": "宝坻区", + "value": "120115" + }, + { + "label": "滨海新区", + "value": "120116" + }, + { + "label": "宁河区", + "value": "120117" + }, + { + "label": "静海区", + "value": "120118" + }, + { + "label": "蓟州区", + "value": "120119" + } + ] + ], + [ + [{ + "label": "长安区", + "value": "130102" + }, + { + "label": "桥西区", + "value": "130104" + }, + { + "label": "新华区", + "value": "130105" + }, + { + "label": "井陉矿区", + "value": "130107" + }, + { + "label": "裕华区", + "value": "130108" + }, + { + "label": "藁城区", + "value": "130109" + }, + { + "label": "鹿泉区", + "value": "130110" + }, + { + "label": "栾城区", + "value": "130111" + }, + { + "label": "井陉县", + "value": "130121" + }, + { + "label": "正定县", + "value": "130123" + }, + { + "label": "行唐县", + "value": "130125" + }, + { + "label": "灵寿县", + "value": "130126" + }, + { + "label": "高邑县", + "value": "130127" + }, + { + "label": "深泽县", + "value": "130128" + }, + { + "label": "赞皇县", + "value": "130129" + }, + { + "label": "无极县", + "value": "130130" + }, + { + "label": "平山县", + "value": "130131" + }, + { + "label": "元氏县", + "value": "130132" + }, + { + "label": "赵县", + "value": "130133" + }, + { + "label": "石家庄高新技术产业开发区", + "value": "130171" + }, + { + "label": "石家庄循环化工园区", + "value": "130172" + }, + { + "label": "辛集市", + "value": "130181" + }, + { + "label": "晋州市", + "value": "130183" + }, + { + "label": "新乐市", + "value": "130184" + } + ], + [{ + "label": "路南区", + "value": "130202" + }, + { + "label": "路北区", + "value": "130203" + }, + { + "label": "古冶区", + "value": "130204" + }, + { + "label": "开平区", + "value": "130205" + }, + { + "label": "丰南区", + "value": "130207" + }, + { + "label": "丰润区", + "value": "130208" + }, + { + "label": "曹妃甸区", + "value": "130209" + }, + { + "label": "滦县", + "value": "130223" + }, + { + "label": "滦南县", + "value": "130224" + }, + { + "label": "乐亭县", + "value": "130225" + }, + { + "label": "迁西县", + "value": "130227" + }, + { + "label": "玉田县", + "value": "130229" + }, + { + "label": "唐山市芦台经济技术开发区", + "value": "130271" + }, + { + "label": "唐山市汉沽管理区", + "value": "130272" + }, + { + "label": "唐山高新技术产业开发区", + "value": "130273" + }, + { + "label": "河北唐山海港经济开发区", + "value": "130274" + }, + { + "label": "遵化市", + "value": "130281" + }, + { + "label": "迁安市", + "value": "130283" + } + ], + [{ + "label": "海港区", + "value": "130302" + }, + { + "label": "山海关区", + "value": "130303" + }, + { + "label": "北戴河区", + "value": "130304" + }, + { + "label": "抚宁区", + "value": "130306" + }, + { + "label": "青龙满族自治县", + "value": "130321" + }, + { + "label": "昌黎县", + "value": "130322" + }, + { + "label": "卢龙县", + "value": "130324" + }, + { + "label": "秦皇岛市经济技术开发区", + "value": "130371" + }, + { + "label": "北戴河新区", + "value": "130372" + } + ], + [{ + "label": "邯山区", + "value": "130402" + }, + { + "label": "丛台区", + "value": "130403" + }, + { + "label": "复兴区", + "value": "130404" + }, + { + "label": "峰峰矿区", + "value": "130406" + }, + { + "label": "肥乡区", + "value": "130407" + }, + { + "label": "永年区", + "value": "130408" + }, + { + "label": "临漳县", + "value": "130423" + }, + { + "label": "成安县", + "value": "130424" + }, + { + "label": "大名县", + "value": "130425" + }, + { + "label": "涉县", + "value": "130426" + }, + { + "label": "磁县", + "value": "130427" + }, + { + "label": "邱县", + "value": "130430" + }, + { + "label": "鸡泽县", + "value": "130431" + }, + { + "label": "广平县", + "value": "130432" + }, + { + "label": "馆陶县", + "value": "130433" + }, + { + "label": "魏县", + "value": "130434" + }, + { + "label": "曲周县", + "value": "130435" + }, + { + "label": "邯郸经济技术开发区", + "value": "130471" + }, + { + "label": "邯郸冀南新区", + "value": "130473" + }, + { + "label": "武安市", + "value": "130481" + } + ], + [{ + "label": "桥东区", + "value": "130502" + }, + { + "label": "桥西区", + "value": "130503" + }, + { + "label": "邢台县", + "value": "130521" + }, + { + "label": "临城县", + "value": "130522" + }, + { + "label": "内丘县", + "value": "130523" + }, + { + "label": "柏乡县", + "value": "130524" + }, + { + "label": "隆尧县", + "value": "130525" + }, + { + "label": "任县", + "value": "130526" + }, + { + "label": "南和县", + "value": "130527" + }, + { + "label": "宁晋县", + "value": "130528" + }, + { + "label": "巨鹿县", + "value": "130529" + }, + { + "label": "新河县", + "value": "130530" + }, + { + "label": "广宗县", + "value": "130531" + }, + { + "label": "平乡县", + "value": "130532" + }, + { + "label": "威县", + "value": "130533" + }, + { + "label": "清河县", + "value": "130534" + }, + { + "label": "临西县", + "value": "130535" + }, + { + "label": "河北邢台经济开发区", + "value": "130571" + }, + { + "label": "南宫市", + "value": "130581" + }, + { + "label": "沙河市", + "value": "130582" + } + ], + [{ + "label": "竞秀区", + "value": "130602" + }, + { + "label": "莲池区", + "value": "130606" + }, + { + "label": "满城区", + "value": "130607" + }, + { + "label": "清苑区", + "value": "130608" + }, + { + "label": "徐水区", + "value": "130609" + }, + { + "label": "涞水县", + "value": "130623" + }, + { + "label": "阜平县", + "value": "130624" + }, + { + "label": "定兴县", + "value": "130626" + }, + { + "label": "唐县", + "value": "130627" + }, + { + "label": "高阳县", + "value": "130628" + }, + { + "label": "容城县", + "value": "130629" + }, + { + "label": "涞源县", + "value": "130630" + }, + { + "label": "望都县", + "value": "130631" + }, + { + "label": "安新县", + "value": "130632" + }, + { + "label": "易县", + "value": "130633" + }, + { + "label": "曲阳县", + "value": "130634" + }, + { + "label": "蠡县", + "value": "130635" + }, + { + "label": "顺平县", + "value": "130636" + }, + { + "label": "博野县", + "value": "130637" + }, + { + "label": "雄县", + "value": "130638" + }, + { + "label": "保定高新技术产业开发区", + "value": "130671" + }, + { + "label": "保定白沟新城", + "value": "130672" + }, + { + "label": "涿州市", + "value": "130681" + }, + { + "label": "定州市", + "value": "130682" + }, + { + "label": "安国市", + "value": "130683" + }, + { + "label": "高碑店市", + "value": "130684" + } + ], + [{ + "label": "桥东区", + "value": "130702" + }, + { + "label": "桥西区", + "value": "130703" + }, + { + "label": "宣化区", + "value": "130705" + }, + { + "label": "下花园区", + "value": "130706" + }, + { + "label": "万全区", + "value": "130708" + }, + { + "label": "崇礼区", + "value": "130709" + }, + { + "label": "张北县", + "value": "130722" + }, + { + "label": "康保县", + "value": "130723" + }, + { + "label": "沽源县", + "value": "130724" + }, + { + "label": "尚义县", + "value": "130725" + }, + { + "label": "蔚县", + "value": "130726" + }, + { + "label": "阳原县", + "value": "130727" + }, + { + "label": "怀安县", + "value": "130728" + }, + { + "label": "怀来县", + "value": "130730" + }, + { + "label": "涿鹿县", + "value": "130731" + }, + { + "label": "赤城县", + "value": "130732" + }, + { + "label": "张家口市高新技术产业开发区", + "value": "130771" + }, + { + "label": "张家口市察北管理区", + "value": "130772" + }, + { + "label": "张家口市塞北管理区", + "value": "130773" + } + ], + [{ + "label": "双桥区", + "value": "130802" + }, + { + "label": "双滦区", + "value": "130803" + }, + { + "label": "鹰手营子矿区", + "value": "130804" + }, + { + "label": "承德县", + "value": "130821" + }, + { + "label": "兴隆县", + "value": "130822" + }, + { + "label": "滦平县", + "value": "130824" + }, + { + "label": "隆化县", + "value": "130825" + }, + { + "label": "丰宁满族自治县", + "value": "130826" + }, + { + "label": "宽城满族自治县", + "value": "130827" + }, + { + "label": "围场满族蒙古族自治县", + "value": "130828" + }, + { + "label": "承德高新技术产业开发区", + "value": "130871" + }, + { + "label": "平泉市", + "value": "130881" + } + ], + [{ + "label": "新华区", + "value": "130902" + }, + { + "label": "运河区", + "value": "130903" + }, + { + "label": "沧县", + "value": "130921" + }, + { + "label": "青县", + "value": "130922" + }, + { + "label": "东光县", + "value": "130923" + }, + { + "label": "海兴县", + "value": "130924" + }, + { + "label": "盐山县", + "value": "130925" + }, + { + "label": "肃宁县", + "value": "130926" + }, + { + "label": "南皮县", + "value": "130927" + }, + { + "label": "吴桥县", + "value": "130928" + }, + { + "label": "献县", + "value": "130929" + }, + { + "label": "孟村回族自治县", + "value": "130930" + }, + { + "label": "河北沧州经济开发区", + "value": "130971" + }, + { + "label": "沧州高新技术产业开发区", + "value": "130972" + }, + { + "label": "沧州渤海新区", + "value": "130973" + }, + { + "label": "泊头市", + "value": "130981" + }, + { + "label": "任丘市", + "value": "130982" + }, + { + "label": "黄骅市", + "value": "130983" + }, + { + "label": "河间市", + "value": "130984" + } + ], + [{ + "label": "安次区", + "value": "131002" + }, + { + "label": "广阳区", + "value": "131003" + }, + { + "label": "固安县", + "value": "131022" + }, + { + "label": "永清县", + "value": "131023" + }, + { + "label": "香河县", + "value": "131024" + }, + { + "label": "大城县", + "value": "131025" + }, + { + "label": "文安县", + "value": "131026" + }, + { + "label": "大厂回族自治县", + "value": "131028" + }, + { + "label": "廊坊经济技术开发区", + "value": "131071" + }, + { + "label": "霸州市", + "value": "131081" + }, + { + "label": "三河市", + "value": "131082" + } + ], + [{ + "label": "桃城区", + "value": "131102" + }, + { + "label": "冀州区", + "value": "131103" + }, + { + "label": "枣强县", + "value": "131121" + }, + { + "label": "武邑县", + "value": "131122" + }, + { + "label": "武强县", + "value": "131123" + }, + { + "label": "饶阳县", + "value": "131124" + }, + { + "label": "安平县", + "value": "131125" + }, + { + "label": "故城县", + "value": "131126" + }, + { + "label": "景县", + "value": "131127" + }, + { + "label": "阜城县", + "value": "131128" + }, + { + "label": "河北衡水经济开发区", + "value": "131171" + }, + { + "label": "衡水滨湖新区", + "value": "131172" + }, + { + "label": "深州市", + "value": "131182" + } + ] + ], + [ + [{ + "label": "小店区", + "value": "140105" + }, + { + "label": "迎泽区", + "value": "140106" + }, + { + "label": "杏花岭区", + "value": "140107" + }, + { + "label": "尖草坪区", + "value": "140108" + }, + { + "label": "万柏林区", + "value": "140109" + }, + { + "label": "晋源区", + "value": "140110" + }, + { + "label": "清徐县", + "value": "140121" + }, + { + "label": "阳曲县", + "value": "140122" + }, + { + "label": "娄烦县", + "value": "140123" + }, + { + "label": "山西转型综合改革示范区", + "value": "140171" + }, + { + "label": "古交市", + "value": "140181" + } + ], + [{ + "label": "城区", + "value": "140202" + }, + { + "label": "矿区", + "value": "140203" + }, + { + "label": "南郊区", + "value": "140211" + }, + { + "label": "新荣区", + "value": "140212" + }, + { + "label": "阳高县", + "value": "140221" + }, + { + "label": "天镇县", + "value": "140222" + }, + { + "label": "广灵县", + "value": "140223" + }, + { + "label": "灵丘县", + "value": "140224" + }, + { + "label": "浑源县", + "value": "140225" + }, + { + "label": "左云县", + "value": "140226" + }, + { + "label": "大同县", + "value": "140227" + }, + { + "label": "山西大同经济开发区", + "value": "140271" + } + ], + [{ + "label": "城区", + "value": "140302" + }, + { + "label": "矿区", + "value": "140303" + }, + { + "label": "郊区", + "value": "140311" + }, + { + "label": "平定县", + "value": "140321" + }, + { + "label": "盂县", + "value": "140322" + }, + { + "label": "山西阳泉经济开发区", + "value": "140371" + } + ], + [{ + "label": "城区", + "value": "140402" + }, + { + "label": "郊区", + "value": "140411" + }, + { + "label": "长治县", + "value": "140421" + }, + { + "label": "襄垣县", + "value": "140423" + }, + { + "label": "屯留县", + "value": "140424" + }, + { + "label": "平顺县", + "value": "140425" + }, + { + "label": "黎城县", + "value": "140426" + }, + { + "label": "壶关县", + "value": "140427" + }, + { + "label": "长子县", + "value": "140428" + }, + { + "label": "武乡县", + "value": "140429" + }, + { + "label": "沁县", + "value": "140430" + }, + { + "label": "沁源县", + "value": "140431" + }, + { + "label": "山西长治高新技术产业园区", + "value": "140471" + }, + { + "label": "潞城市", + "value": "140481" + } + ], + [{ + "label": "城区", + "value": "140502" + }, + { + "label": "沁水县", + "value": "140521" + }, + { + "label": "阳城县", + "value": "140522" + }, + { + "label": "陵川县", + "value": "140524" + }, + { + "label": "泽州县", + "value": "140525" + }, + { + "label": "高平市", + "value": "140581" + } + ], + [{ + "label": "朔城区", + "value": "140602" + }, + { + "label": "平鲁区", + "value": "140603" + }, + { + "label": "山阴县", + "value": "140621" + }, + { + "label": "应县", + "value": "140622" + }, + { + "label": "右玉县", + "value": "140623" + }, + { + "label": "怀仁县", + "value": "140624" + }, + { + "label": "山西朔州经济开发区", + "value": "140671" + } + ], + [{ + "label": "榆次区", + "value": "140702" + }, + { + "label": "榆社县", + "value": "140721" + }, + { + "label": "左权县", + "value": "140722" + }, + { + "label": "和顺县", + "value": "140723" + }, + { + "label": "昔阳县", + "value": "140724" + }, + { + "label": "寿阳县", + "value": "140725" + }, + { + "label": "太谷县", + "value": "140726" + }, + { + "label": "祁县", + "value": "140727" + }, + { + "label": "平遥县", + "value": "140728" + }, + { + "label": "灵石县", + "value": "140729" + }, + { + "label": "介休市", + "value": "140781" + } + ], + [{ + "label": "盐湖区", + "value": "140802" + }, + { + "label": "临猗县", + "value": "140821" + }, + { + "label": "万荣县", + "value": "140822" + }, + { + "label": "闻喜县", + "value": "140823" + }, + { + "label": "稷山县", + "value": "140824" + }, + { + "label": "新绛县", + "value": "140825" + }, + { + "label": "绛县", + "value": "140826" + }, + { + "label": "垣曲县", + "value": "140827" + }, + { + "label": "夏县", + "value": "140828" + }, + { + "label": "平陆县", + "value": "140829" + }, + { + "label": "芮城县", + "value": "140830" + }, + { + "label": "永济市", + "value": "140881" + }, + { + "label": "河津市", + "value": "140882" + } + ], + [{ + "label": "忻府区", + "value": "140902" + }, + { + "label": "定襄县", + "value": "140921" + }, + { + "label": "五台县", + "value": "140922" + }, + { + "label": "代县", + "value": "140923" + }, + { + "label": "繁峙县", + "value": "140924" + }, + { + "label": "宁武县", + "value": "140925" + }, + { + "label": "静乐县", + "value": "140926" + }, + { + "label": "神池县", + "value": "140927" + }, + { + "label": "五寨县", + "value": "140928" + }, + { + "label": "岢岚县", + "value": "140929" + }, + { + "label": "河曲县", + "value": "140930" + }, + { + "label": "保德县", + "value": "140931" + }, + { + "label": "偏关县", + "value": "140932" + }, + { + "label": "五台山风景名胜区", + "value": "140971" + }, + { + "label": "原平市", + "value": "140981" + } + ], + [{ + "label": "尧都区", + "value": "141002" + }, + { + "label": "曲沃县", + "value": "141021" + }, + { + "label": "翼城县", + "value": "141022" + }, + { + "label": "襄汾县", + "value": "141023" + }, + { + "label": "洪洞县", + "value": "141024" + }, + { + "label": "古县", + "value": "141025" + }, + { + "label": "安泽县", + "value": "141026" + }, + { + "label": "浮山县", + "value": "141027" + }, + { + "label": "吉县", + "value": "141028" + }, + { + "label": "乡宁县", + "value": "141029" + }, + { + "label": "大宁县", + "value": "141030" + }, + { + "label": "隰县", + "value": "141031" + }, + { + "label": "永和县", + "value": "141032" + }, + { + "label": "蒲县", + "value": "141033" + }, + { + "label": "汾西县", + "value": "141034" + }, + { + "label": "侯马市", + "value": "141081" + }, + { + "label": "霍州市", + "value": "141082" + } + ], + [{ + "label": "离石区", + "value": "141102" + }, + { + "label": "文水县", + "value": "141121" + }, + { + "label": "交城县", + "value": "141122" + }, + { + "label": "兴县", + "value": "141123" + }, + { + "label": "临县", + "value": "141124" + }, + { + "label": "柳林县", + "value": "141125" + }, + { + "label": "石楼县", + "value": "141126" + }, + { + "label": "岚县", + "value": "141127" + }, + { + "label": "方山县", + "value": "141128" + }, + { + "label": "中阳县", + "value": "141129" + }, + { + "label": "交口县", + "value": "141130" + }, + { + "label": "孝义市", + "value": "141181" + }, + { + "label": "汾阳市", + "value": "141182" + } + ] + ], + [ + [{ + "label": "新城区", + "value": "150102" + }, + { + "label": "回民区", + "value": "150103" + }, + { + "label": "玉泉区", + "value": "150104" + }, + { + "label": "赛罕区", + "value": "150105" + }, + { + "label": "土默特左旗", + "value": "150121" + }, + { + "label": "托克托县", + "value": "150122" + }, + { + "label": "和林格尔县", + "value": "150123" + }, + { + "label": "清水河县", + "value": "150124" + }, + { + "label": "武川县", + "value": "150125" + }, + { + "label": "呼和浩特金海工业园区", + "value": "150171" + }, + { + "label": "呼和浩特经济技术开发区", + "value": "150172" + } + ], + [{ + "label": "东河区", + "value": "150202" + }, + { + "label": "昆都仑区", + "value": "150203" + }, + { + "label": "青山区", + "value": "150204" + }, + { + "label": "石拐区", + "value": "150205" + }, + { + "label": "白云鄂博矿区", + "value": "150206" + }, + { + "label": "九原区", + "value": "150207" + }, + { + "label": "土默特右旗", + "value": "150221" + }, + { + "label": "固阳县", + "value": "150222" + }, + { + "label": "达尔罕茂明安联合旗", + "value": "150223" + }, + { + "label": "包头稀土高新技术产业开发区", + "value": "150271" + } + ], + [{ + "label": "海勃湾区", + "value": "150302" + }, + { + "label": "海南区", + "value": "150303" + }, + { + "label": "乌达区", + "value": "150304" + } + ], + [{ + "label": "红山区", + "value": "150402" + }, + { + "label": "元宝山区", + "value": "150403" + }, + { + "label": "松山区", + "value": "150404" + }, + { + "label": "阿鲁科尔沁旗", + "value": "150421" + }, + { + "label": "巴林左旗", + "value": "150422" + }, + { + "label": "巴林右旗", + "value": "150423" + }, + { + "label": "林西县", + "value": "150424" + }, + { + "label": "克什克腾旗", + "value": "150425" + }, + { + "label": "翁牛特旗", + "value": "150426" + }, + { + "label": "喀喇沁旗", + "value": "150428" + }, + { + "label": "宁城县", + "value": "150429" + }, + { + "label": "敖汉旗", + "value": "150430" + } + ], + [{ + "label": "科尔沁区", + "value": "150502" + }, + { + "label": "科尔沁左翼中旗", + "value": "150521" + }, + { + "label": "科尔沁左翼后旗", + "value": "150522" + }, + { + "label": "开鲁县", + "value": "150523" + }, + { + "label": "库伦旗", + "value": "150524" + }, + { + "label": "奈曼旗", + "value": "150525" + }, + { + "label": "扎鲁特旗", + "value": "150526" + }, + { + "label": "通辽经济技术开发区", + "value": "150571" + }, + { + "label": "霍林郭勒市", + "value": "150581" + } + ], + [{ + "label": "东胜区", + "value": "150602" + }, + { + "label": "康巴什区", + "value": "150603" + }, + { + "label": "达拉特旗", + "value": "150621" + }, + { + "label": "准格尔旗", + "value": "150622" + }, + { + "label": "鄂托克前旗", + "value": "150623" + }, + { + "label": "鄂托克旗", + "value": "150624" + }, + { + "label": "杭锦旗", + "value": "150625" + }, + { + "label": "乌审旗", + "value": "150626" + }, + { + "label": "伊金霍洛旗", + "value": "150627" + } + ], + [{ + "label": "海拉尔区", + "value": "150702" + }, + { + "label": "扎赉诺尔区", + "value": "150703" + }, + { + "label": "阿荣旗", + "value": "150721" + }, + { + "label": "莫力达瓦达斡尔族自治旗", + "value": "150722" + }, + { + "label": "鄂伦春自治旗", + "value": "150723" + }, + { + "label": "鄂温克族自治旗", + "value": "150724" + }, + { + "label": "陈巴尔虎旗", + "value": "150725" + }, + { + "label": "新巴尔虎左旗", + "value": "150726" + }, + { + "label": "新巴尔虎右旗", + "value": "150727" + }, + { + "label": "满洲里市", + "value": "150781" + }, + { + "label": "牙克石市", + "value": "150782" + }, + { + "label": "扎兰屯市", + "value": "150783" + }, + { + "label": "额尔古纳市", + "value": "150784" + }, + { + "label": "根河市", + "value": "150785" + } + ], + [{ + "label": "临河区", + "value": "150802" + }, + { + "label": "五原县", + "value": "150821" + }, + { + "label": "磴口县", + "value": "150822" + }, + { + "label": "乌拉特前旗", + "value": "150823" + }, + { + "label": "乌拉特中旗", + "value": "150824" + }, + { + "label": "乌拉特后旗", + "value": "150825" + }, + { + "label": "杭锦后旗", + "value": "150826" + } + ], + [{ + "label": "集宁区", + "value": "150902" + }, + { + "label": "卓资县", + "value": "150921" + }, + { + "label": "化德县", + "value": "150922" + }, + { + "label": "商都县", + "value": "150923" + }, + { + "label": "兴和县", + "value": "150924" + }, + { + "label": "凉城县", + "value": "150925" + }, + { + "label": "察哈尔右翼前旗", + "value": "150926" + }, + { + "label": "察哈尔右翼中旗", + "value": "150927" + }, + { + "label": "察哈尔右翼后旗", + "value": "150928" + }, + { + "label": "四子王旗", + "value": "150929" + }, + { + "label": "丰镇市", + "value": "150981" + } + ], + [{ + "label": "乌兰浩特市", + "value": "152201" + }, + { + "label": "阿尔山市", + "value": "152202" + }, + { + "label": "科尔沁右翼前旗", + "value": "152221" + }, + { + "label": "科尔沁右翼中旗", + "value": "152222" + }, + { + "label": "扎赉特旗", + "value": "152223" + }, + { + "label": "突泉县", + "value": "152224" + } + ], + [{ + "label": "二连浩特市", + "value": "152501" + }, + { + "label": "锡林浩特市", + "value": "152502" + }, + { + "label": "阿巴嘎旗", + "value": "152522" + }, + { + "label": "苏尼特左旗", + "value": "152523" + }, + { + "label": "苏尼特右旗", + "value": "152524" + }, + { + "label": "东乌珠穆沁旗", + "value": "152525" + }, + { + "label": "西乌珠穆沁旗", + "value": "152526" + }, + { + "label": "太仆寺旗", + "value": "152527" + }, + { + "label": "镶黄旗", + "value": "152528" + }, + { + "label": "正镶白旗", + "value": "152529" + }, + { + "label": "正蓝旗", + "value": "152530" + }, + { + "label": "多伦县", + "value": "152531" + }, + { + "label": "乌拉盖管委会", + "value": "152571" + } + ], + [{ + "label": "阿拉善左旗", + "value": "152921" + }, + { + "label": "阿拉善右旗", + "value": "152922" + }, + { + "label": "额济纳旗", + "value": "152923" + }, + { + "label": "内蒙古阿拉善经济开发区", + "value": "152971" + } + ] + ], + [ + [{ + "label": "和平区", + "value": "210102" + }, + { + "label": "沈河区", + "value": "210103" + }, + { + "label": "大东区", + "value": "210104" + }, + { + "label": "皇姑区", + "value": "210105" + }, + { + "label": "铁西区", + "value": "210106" + }, + { + "label": "苏家屯区", + "value": "210111" + }, + { + "label": "浑南区", + "value": "210112" + }, + { + "label": "沈北新区", + "value": "210113" + }, + { + "label": "于洪区", + "value": "210114" + }, + { + "label": "辽中区", + "value": "210115" + }, + { + "label": "康平县", + "value": "210123" + }, + { + "label": "法库县", + "value": "210124" + }, + { + "label": "新民市", + "value": "210181" + } + ], + [{ + "label": "中山区", + "value": "210202" + }, + { + "label": "西岗区", + "value": "210203" + }, + { + "label": "沙河口区", + "value": "210204" + }, + { + "label": "甘井子区", + "value": "210211" + }, + { + "label": "旅顺口区", + "value": "210212" + }, + { + "label": "金州区", + "value": "210213" + }, + { + "label": "普兰店区", + "value": "210214" + }, + { + "label": "长海县", + "value": "210224" + }, + { + "label": "瓦房店市", + "value": "210281" + }, + { + "label": "庄河市", + "value": "210283" + } + ], + [{ + "label": "铁东区", + "value": "210302" + }, + { + "label": "铁西区", + "value": "210303" + }, + { + "label": "立山区", + "value": "210304" + }, + { + "label": "千山区", + "value": "210311" + }, + { + "label": "台安县", + "value": "210321" + }, + { + "label": "岫岩满族自治县", + "value": "210323" + }, + { + "label": "海城市", + "value": "210381" + } + ], + [{ + "label": "新抚区", + "value": "210402" + }, + { + "label": "东洲区", + "value": "210403" + }, + { + "label": "望花区", + "value": "210404" + }, + { + "label": "顺城区", + "value": "210411" + }, + { + "label": "抚顺县", + "value": "210421" + }, + { + "label": "新宾满族自治县", + "value": "210422" + }, + { + "label": "清原满族自治县", + "value": "210423" + } + ], + [{ + "label": "平山区", + "value": "210502" + }, + { + "label": "溪湖区", + "value": "210503" + }, + { + "label": "明山区", + "value": "210504" + }, + { + "label": "南芬区", + "value": "210505" + }, + { + "label": "本溪满族自治县", + "value": "210521" + }, + { + "label": "桓仁满族自治县", + "value": "210522" + } + ], + [{ + "label": "元宝区", + "value": "210602" + }, + { + "label": "振兴区", + "value": "210603" + }, + { + "label": "振安区", + "value": "210604" + }, + { + "label": "宽甸满族自治县", + "value": "210624" + }, + { + "label": "东港市", + "value": "210681" + }, + { + "label": "凤城市", + "value": "210682" + } + ], + [{ + "label": "古塔区", + "value": "210702" + }, + { + "label": "凌河区", + "value": "210703" + }, + { + "label": "太和区", + "value": "210711" + }, + { + "label": "黑山县", + "value": "210726" + }, + { + "label": "义县", + "value": "210727" + }, + { + "label": "凌海市", + "value": "210781" + }, + { + "label": "北镇市", + "value": "210782" + } + ], + [{ + "label": "站前区", + "value": "210802" + }, + { + "label": "西市区", + "value": "210803" + }, + { + "label": "鲅鱼圈区", + "value": "210804" + }, + { + "label": "老边区", + "value": "210811" + }, + { + "label": "盖州市", + "value": "210881" + }, + { + "label": "大石桥市", + "value": "210882" + } + ], + [{ + "label": "海州区", + "value": "210902" + }, + { + "label": "新邱区", + "value": "210903" + }, + { + "label": "太平区", + "value": "210904" + }, + { + "label": "清河门区", + "value": "210905" + }, + { + "label": "细河区", + "value": "210911" + }, + { + "label": "阜新蒙古族自治县", + "value": "210921" + }, + { + "label": "彰武县", + "value": "210922" + } + ], + [{ + "label": "白塔区", + "value": "211002" + }, + { + "label": "文圣区", + "value": "211003" + }, + { + "label": "宏伟区", + "value": "211004" + }, + { + "label": "弓长岭区", + "value": "211005" + }, + { + "label": "太子河区", + "value": "211011" + }, + { + "label": "辽阳县", + "value": "211021" + }, + { + "label": "灯塔市", + "value": "211081" + } + ], + [{ + "label": "双台子区", + "value": "211102" + }, + { + "label": "兴隆台区", + "value": "211103" + }, + { + "label": "大洼区", + "value": "211104" + }, + { + "label": "盘山县", + "value": "211122" + } + ], + [{ + "label": "银州区", + "value": "211202" + }, + { + "label": "清河区", + "value": "211204" + }, + { + "label": "铁岭县", + "value": "211221" + }, + { + "label": "西丰县", + "value": "211223" + }, + { + "label": "昌图县", + "value": "211224" + }, + { + "label": "调兵山市", + "value": "211281" + }, + { + "label": "开原市", + "value": "211282" + } + ], + [{ + "label": "双塔区", + "value": "211302" + }, + { + "label": "龙城区", + "value": "211303" + }, + { + "label": "朝阳县", + "value": "211321" + }, + { + "label": "建平县", + "value": "211322" + }, + { + "label": "喀喇沁左翼蒙古族自治县", + "value": "211324" + }, + { + "label": "北票市", + "value": "211381" + }, + { + "label": "凌源市", + "value": "211382" + } + ], + [{ + "label": "连山区", + "value": "211402" + }, + { + "label": "龙港区", + "value": "211403" + }, + { + "label": "南票区", + "value": "211404" + }, + { + "label": "绥中县", + "value": "211421" + }, + { + "label": "建昌县", + "value": "211422" + }, + { + "label": "兴城市", + "value": "211481" + } + ] + ], + [ + [{ + "label": "南关区", + "value": "220102" + }, + { + "label": "宽城区", + "value": "220103" + }, + { + "label": "朝阳区", + "value": "220104" + }, + { + "label": "二道区", + "value": "220105" + }, + { + "label": "绿园区", + "value": "220106" + }, + { + "label": "双阳区", + "value": "220112" + }, + { + "label": "九台区", + "value": "220113" + }, + { + "label": "农安县", + "value": "220122" + }, + { + "label": "长春经济技术开发区", + "value": "220171" + }, + { + "label": "长春净月高新技术产业开发区", + "value": "220172" + }, + { + "label": "长春高新技术产业开发区", + "value": "220173" + }, + { + "label": "长春汽车经济技术开发区", + "value": "220174" + }, + { + "label": "榆树市", + "value": "220182" + }, + { + "label": "德惠市", + "value": "220183" + } + ], + [{ + "label": "昌邑区", + "value": "220202" + }, + { + "label": "龙潭区", + "value": "220203" + }, + { + "label": "船营区", + "value": "220204" + }, + { + "label": "丰满区", + "value": "220211" + }, + { + "label": "永吉县", + "value": "220221" + }, + { + "label": "吉林经济开发区", + "value": "220271" + }, + { + "label": "吉林高新技术产业开发区", + "value": "220272" + }, + { + "label": "吉林中国新加坡食品区", + "value": "220273" + }, + { + "label": "蛟河市", + "value": "220281" + }, + { + "label": "桦甸市", + "value": "220282" + }, + { + "label": "舒兰市", + "value": "220283" + }, + { + "label": "磐石市", + "value": "220284" + } + ], + [{ + "label": "铁西区", + "value": "220302" + }, + { + "label": "铁东区", + "value": "220303" + }, + { + "label": "梨树县", + "value": "220322" + }, + { + "label": "伊通满族自治县", + "value": "220323" + }, + { + "label": "公主岭市", + "value": "220381" + }, + { + "label": "双辽市", + "value": "220382" + } + ], + [{ + "label": "龙山区", + "value": "220402" + }, + { + "label": "西安区", + "value": "220403" + }, + { + "label": "东丰县", + "value": "220421" + }, + { + "label": "东辽县", + "value": "220422" + } + ], + [{ + "label": "东昌区", + "value": "220502" + }, + { + "label": "二道江区", + "value": "220503" + }, + { + "label": "通化县", + "value": "220521" + }, + { + "label": "辉南县", + "value": "220523" + }, + { + "label": "柳河县", + "value": "220524" + }, + { + "label": "梅河口市", + "value": "220581" + }, + { + "label": "集安市", + "value": "220582" + } + ], + [{ + "label": "浑江区", + "value": "220602" + }, + { + "label": "江源区", + "value": "220605" + }, + { + "label": "抚松县", + "value": "220621" + }, + { + "label": "靖宇县", + "value": "220622" + }, + { + "label": "长白朝鲜族自治县", + "value": "220623" + }, + { + "label": "临江市", + "value": "220681" + } + ], + [{ + "label": "宁江区", + "value": "220702" + }, + { + "label": "前郭尔罗斯蒙古族自治县", + "value": "220721" + }, + { + "label": "长岭县", + "value": "220722" + }, + { + "label": "乾安县", + "value": "220723" + }, + { + "label": "吉林松原经济开发区", + "value": "220771" + }, + { + "label": "扶余市", + "value": "220781" + } + ], + [{ + "label": "洮北区", + "value": "220802" + }, + { + "label": "镇赉县", + "value": "220821" + }, + { + "label": "通榆县", + "value": "220822" + }, + { + "label": "吉林白城经济开发区", + "value": "220871" + }, + { + "label": "洮南市", + "value": "220881" + }, + { + "label": "大安市", + "value": "220882" + } + ], + [{ + "label": "延吉市", + "value": "222401" + }, + { + "label": "图们市", + "value": "222402" + }, + { + "label": "敦化市", + "value": "222403" + }, + { + "label": "珲春市", + "value": "222404" + }, + { + "label": "龙井市", + "value": "222405" + }, + { + "label": "和龙市", + "value": "222406" + }, + { + "label": "汪清县", + "value": "222424" + }, + { + "label": "安图县", + "value": "222426" + } + ] + ], + [ + [{ + "label": "道里区", + "value": "230102" + }, + { + "label": "南岗区", + "value": "230103" + }, + { + "label": "道外区", + "value": "230104" + }, + { + "label": "平房区", + "value": "230108" + }, + { + "label": "松北区", + "value": "230109" + }, + { + "label": "香坊区", + "value": "230110" + }, + { + "label": "呼兰区", + "value": "230111" + }, + { + "label": "阿城区", + "value": "230112" + }, + { + "label": "双城区", + "value": "230113" + }, + { + "label": "依兰县", + "value": "230123" + }, + { + "label": "方正县", + "value": "230124" + }, + { + "label": "宾县", + "value": "230125" + }, + { + "label": "巴彦县", + "value": "230126" + }, + { + "label": "木兰县", + "value": "230127" + }, + { + "label": "通河县", + "value": "230128" + }, + { + "label": "延寿县", + "value": "230129" + }, + { + "label": "尚志市", + "value": "230183" + }, + { + "label": "五常市", + "value": "230184" + } + ], + [{ + "label": "龙沙区", + "value": "230202" + }, + { + "label": "建华区", + "value": "230203" + }, + { + "label": "铁锋区", + "value": "230204" + }, + { + "label": "昂昂溪区", + "value": "230205" + }, + { + "label": "富拉尔基区", + "value": "230206" + }, + { + "label": "碾子山区", + "value": "230207" + }, + { + "label": "梅里斯达斡尔族区", + "value": "230208" + }, + { + "label": "龙江县", + "value": "230221" + }, + { + "label": "依安县", + "value": "230223" + }, + { + "label": "泰来县", + "value": "230224" + }, + { + "label": "甘南县", + "value": "230225" + }, + { + "label": "富裕县", + "value": "230227" + }, + { + "label": "克山县", + "value": "230229" + }, + { + "label": "克东县", + "value": "230230" + }, + { + "label": "拜泉县", + "value": "230231" + }, + { + "label": "讷河市", + "value": "230281" + } + ], + [{ + "label": "鸡冠区", + "value": "230302" + }, + { + "label": "恒山区", + "value": "230303" + }, + { + "label": "滴道区", + "value": "230304" + }, + { + "label": "梨树区", + "value": "230305" + }, + { + "label": "城子河区", + "value": "230306" + }, + { + "label": "麻山区", + "value": "230307" + }, + { + "label": "鸡东县", + "value": "230321" + }, + { + "label": "虎林市", + "value": "230381" + }, + { + "label": "密山市", + "value": "230382" + } + ], + [{ + "label": "向阳区", + "value": "230402" + }, + { + "label": "工农区", + "value": "230403" + }, + { + "label": "南山区", + "value": "230404" + }, + { + "label": "兴安区", + "value": "230405" + }, + { + "label": "东山区", + "value": "230406" + }, + { + "label": "兴山区", + "value": "230407" + }, + { + "label": "萝北县", + "value": "230421" + }, + { + "label": "绥滨县", + "value": "230422" + } + ], + [{ + "label": "尖山区", + "value": "230502" + }, + { + "label": "岭东区", + "value": "230503" + }, + { + "label": "四方台区", + "value": "230505" + }, + { + "label": "宝山区", + "value": "230506" + }, + { + "label": "集贤县", + "value": "230521" + }, + { + "label": "友谊县", + "value": "230522" + }, + { + "label": "宝清县", + "value": "230523" + }, + { + "label": "饶河县", + "value": "230524" + } + ], + [{ + "label": "萨尔图区", + "value": "230602" + }, + { + "label": "龙凤区", + "value": "230603" + }, + { + "label": "让胡路区", + "value": "230604" + }, + { + "label": "红岗区", + "value": "230605" + }, + { + "label": "大同区", + "value": "230606" + }, + { + "label": "肇州县", + "value": "230621" + }, + { + "label": "肇源县", + "value": "230622" + }, + { + "label": "林甸县", + "value": "230623" + }, + { + "label": "杜尔伯特蒙古族自治县", + "value": "230624" + }, + { + "label": "大庆高新技术产业开发区", + "value": "230671" + } + ], + [{ + "label": "伊春区", + "value": "230702" + }, + { + "label": "南岔区", + "value": "230703" + }, + { + "label": "友好区", + "value": "230704" + }, + { + "label": "西林区", + "value": "230705" + }, + { + "label": "翠峦区", + "value": "230706" + }, + { + "label": "新青区", + "value": "230707" + }, + { + "label": "美溪区", + "value": "230708" + }, + { + "label": "金山屯区", + "value": "230709" + }, + { + "label": "五营区", + "value": "230710" + }, + { + "label": "乌马河区", + "value": "230711" + }, + { + "label": "汤旺河区", + "value": "230712" + }, + { + "label": "带岭区", + "value": "230713" + }, + { + "label": "乌伊岭区", + "value": "230714" + }, + { + "label": "红星区", + "value": "230715" + }, + { + "label": "上甘岭区", + "value": "230716" + }, + { + "label": "嘉荫县", + "value": "230722" + }, + { + "label": "铁力市", + "value": "230781" + } + ], + [{ + "label": "向阳区", + "value": "230803" + }, + { + "label": "前进区", + "value": "230804" + }, + { + "label": "东风区", + "value": "230805" + }, + { + "label": "郊区", + "value": "230811" + }, + { + "label": "桦南县", + "value": "230822" + }, + { + "label": "桦川县", + "value": "230826" + }, + { + "label": "汤原县", + "value": "230828" + }, + { + "label": "同江市", + "value": "230881" + }, + { + "label": "富锦市", + "value": "230882" + }, + { + "label": "抚远市", + "value": "230883" + } + ], + [{ + "label": "新兴区", + "value": "230902" + }, + { + "label": "桃山区", + "value": "230903" + }, + { + "label": "茄子河区", + "value": "230904" + }, + { + "label": "勃利县", + "value": "230921" + } + ], + [{ + "label": "东安区", + "value": "231002" + }, + { + "label": "阳明区", + "value": "231003" + }, + { + "label": "爱民区", + "value": "231004" + }, + { + "label": "西安区", + "value": "231005" + }, + { + "label": "林口县", + "value": "231025" + }, + { + "label": "牡丹江经济技术开发区", + "value": "231071" + }, + { + "label": "绥芬河市", + "value": "231081" + }, + { + "label": "海林市", + "value": "231083" + }, + { + "label": "宁安市", + "value": "231084" + }, + { + "label": "穆棱市", + "value": "231085" + }, + { + "label": "东宁市", + "value": "231086" + } + ], + [{ + "label": "爱辉区", + "value": "231102" + }, + { + "label": "嫩江县", + "value": "231121" + }, + { + "label": "逊克县", + "value": "231123" + }, + { + "label": "孙吴县", + "value": "231124" + }, + { + "label": "北安市", + "value": "231181" + }, + { + "label": "五大连池市", + "value": "231182" + } + ], + [{ + "label": "北林区", + "value": "231202" + }, + { + "label": "望奎县", + "value": "231221" + }, + { + "label": "兰西县", + "value": "231222" + }, + { + "label": "青冈县", + "value": "231223" + }, + { + "label": "庆安县", + "value": "231224" + }, + { + "label": "明水县", + "value": "231225" + }, + { + "label": "绥棱县", + "value": "231226" + }, + { + "label": "安达市", + "value": "231281" + }, + { + "label": "肇东市", + "value": "231282" + }, + { + "label": "海伦市", + "value": "231283" + } + ], + [{ + "label": "加格达奇区", + "value": "232701" + }, + { + "label": "松岭区", + "value": "232702" + }, + { + "label": "新林区", + "value": "232703" + }, + { + "label": "呼中区", + "value": "232704" + }, + { + "label": "呼玛县", + "value": "232721" + }, + { + "label": "塔河县", + "value": "232722" + }, + { + "label": "漠河县", + "value": "232723" + } + ] + ], + [ + [{ + "label": "黄浦区", + "value": "310101" + }, + { + "label": "徐汇区", + "value": "310104" + }, + { + "label": "长宁区", + "value": "310105" + }, + { + "label": "静安区", + "value": "310106" + }, + { + "label": "普陀区", + "value": "310107" + }, + { + "label": "虹口区", + "value": "310109" + }, + { + "label": "杨浦区", + "value": "310110" + }, + { + "label": "闵行区", + "value": "310112" + }, + { + "label": "宝山区", + "value": "310113" + }, + { + "label": "嘉定区", + "value": "310114" + }, + { + "label": "浦东新区", + "value": "310115" + }, + { + "label": "金山区", + "value": "310116" + }, + { + "label": "松江区", + "value": "310117" + }, + { + "label": "青浦区", + "value": "310118" + }, + { + "label": "奉贤区", + "value": "310120" + }, + { + "label": "崇明区", + "value": "310151" + } + ] + ], + [ + [{ + "label": "玄武区", + "value": "320102" + }, + { + "label": "秦淮区", + "value": "320104" + }, + { + "label": "建邺区", + "value": "320105" + }, + { + "label": "鼓楼区", + "value": "320106" + }, + { + "label": "浦口区", + "value": "320111" + }, + { + "label": "栖霞区", + "value": "320113" + }, + { + "label": "雨花台区", + "value": "320114" + }, + { + "label": "江宁区", + "value": "320115" + }, + { + "label": "六合区", + "value": "320116" + }, + { + "label": "溧水区", + "value": "320117" + }, + { + "label": "高淳区", + "value": "320118" + } + ], + [{ + "label": "锡山区", + "value": "320205" + }, + { + "label": "惠山区", + "value": "320206" + }, + { + "label": "滨湖区", + "value": "320211" + }, + { + "label": "梁溪区", + "value": "320213" + }, + { + "label": "新吴区", + "value": "320214" + }, + { + "label": "江阴市", + "value": "320281" + }, + { + "label": "宜兴市", + "value": "320282" + } + ], + [{ + "label": "鼓楼区", + "value": "320302" + }, + { + "label": "云龙区", + "value": "320303" + }, + { + "label": "贾汪区", + "value": "320305" + }, + { + "label": "泉山区", + "value": "320311" + }, + { + "label": "铜山区", + "value": "320312" + }, + { + "label": "丰县", + "value": "320321" + }, + { + "label": "沛县", + "value": "320322" + }, + { + "label": "睢宁县", + "value": "320324" + }, + { + "label": "徐州经济技术开发区", + "value": "320371" + }, + { + "label": "新沂市", + "value": "320381" + }, + { + "label": "邳州市", + "value": "320382" + } + ], + [{ + "label": "天宁区", + "value": "320402" + }, + { + "label": "钟楼区", + "value": "320404" + }, + { + "label": "新北区", + "value": "320411" + }, + { + "label": "武进区", + "value": "320412" + }, + { + "label": "金坛区", + "value": "320413" + }, + { + "label": "溧阳市", + "value": "320481" + } + ], + [{ + "label": "虎丘区", + "value": "320505" + }, + { + "label": "吴中区", + "value": "320506" + }, + { + "label": "相城区", + "value": "320507" + }, + { + "label": "姑苏区", + "value": "320508" + }, + { + "label": "吴江区", + "value": "320509" + }, + { + "label": "苏州工业园区", + "value": "320571" + }, + { + "label": "常熟市", + "value": "320581" + }, + { + "label": "张家港市", + "value": "320582" + }, + { + "label": "昆山市", + "value": "320583" + }, + { + "label": "太仓市", + "value": "320585" + } + ], + [{ + "label": "崇川区", + "value": "320602" + }, + { + "label": "港闸区", + "value": "320611" + }, + { + "label": "通州区", + "value": "320612" + }, + { + "label": "海安县", + "value": "320621" + }, + { + "label": "如东县", + "value": "320623" + }, + { + "label": "南通经济技术开发区", + "value": "320671" + }, + { + "label": "启东市", + "value": "320681" + }, + { + "label": "如皋市", + "value": "320682" + }, + { + "label": "海门市", + "value": "320684" + } + ], + [{ + "label": "连云区", + "value": "320703" + }, + { + "label": "海州区", + "value": "320706" + }, + { + "label": "赣榆区", + "value": "320707" + }, + { + "label": "东海县", + "value": "320722" + }, + { + "label": "灌云县", + "value": "320723" + }, + { + "label": "灌南县", + "value": "320724" + }, + { + "label": "连云港经济技术开发区", + "value": "320771" + }, + { + "label": "连云港高新技术产业开发区", + "value": "320772" + } + ], + [{ + "label": "淮安区", + "value": "320803" + }, + { + "label": "淮阴区", + "value": "320804" + }, + { + "label": "清江浦区", + "value": "320812" + }, + { + "label": "洪泽区", + "value": "320813" + }, + { + "label": "涟水县", + "value": "320826" + }, + { + "label": "盱眙县", + "value": "320830" + }, + { + "label": "金湖县", + "value": "320831" + }, + { + "label": "淮安经济技术开发区", + "value": "320871" + } + ], + [{ + "label": "亭湖区", + "value": "320902" + }, + { + "label": "盐都区", + "value": "320903" + }, + { + "label": "大丰区", + "value": "320904" + }, + { + "label": "响水县", + "value": "320921" + }, + { + "label": "滨海县", + "value": "320922" + }, + { + "label": "阜宁县", + "value": "320923" + }, + { + "label": "射阳县", + "value": "320924" + }, + { + "label": "建湖县", + "value": "320925" + }, + { + "label": "盐城经济技术开发区", + "value": "320971" + }, + { + "label": "东台市", + "value": "320981" + } + ], + [{ + "label": "广陵区", + "value": "321002" + }, + { + "label": "邗江区", + "value": "321003" + }, + { + "label": "江都区", + "value": "321012" + }, + { + "label": "宝应县", + "value": "321023" + }, + { + "label": "扬州经济技术开发区", + "value": "321071" + }, + { + "label": "仪征市", + "value": "321081" + }, + { + "label": "高邮市", + "value": "321084" + } + ], + [{ + "label": "京口区", + "value": "321102" + }, + { + "label": "润州区", + "value": "321111" + }, + { + "label": "丹徒区", + "value": "321112" + }, + { + "label": "镇江新区", + "value": "321171" + }, + { + "label": "丹阳市", + "value": "321181" + }, + { + "label": "扬中市", + "value": "321182" + }, + { + "label": "句容市", + "value": "321183" + } + ], + [{ + "label": "海陵区", + "value": "321202" + }, + { + "label": "高港区", + "value": "321203" + }, + { + "label": "姜堰区", + "value": "321204" + }, + { + "label": "泰州医药高新技术产业开发区", + "value": "321271" + }, + { + "label": "兴化市", + "value": "321281" + }, + { + "label": "靖江市", + "value": "321282" + }, + { + "label": "泰兴市", + "value": "321283" + } + ], + [{ + "label": "宿城区", + "value": "321302" + }, + { + "label": "宿豫区", + "value": "321311" + }, + { + "label": "沭阳县", + "value": "321322" + }, + { + "label": "泗阳县", + "value": "321323" + }, + { + "label": "泗洪县", + "value": "321324" + }, + { + "label": "宿迁经济技术开发区", + "value": "321371" + } + ] + ], + [ + [{ + "label": "上城区", + "value": "330102" + }, + { + "label": "下城区", + "value": "330103" + }, + { + "label": "江干区", + "value": "330104" + }, + { + "label": "拱墅区", + "value": "330105" + }, + { + "label": "西湖区", + "value": "330106" + }, + { + "label": "滨江区", + "value": "330108" + }, + { + "label": "萧山区", + "value": "330109" + }, + { + "label": "余杭区", + "value": "330110" + }, + { + "label": "富阳区", + "value": "330111" + }, + { + "label": "临安区", + "value": "330112" + }, + { + "label": "桐庐县", + "value": "330122" + }, + { + "label": "淳安县", + "value": "330127" + }, + { + "label": "建德市", + "value": "330182" + } + ], + [{ + "label": "海曙区", + "value": "330203" + }, + { + "label": "江北区", + "value": "330205" + }, + { + "label": "北仑区", + "value": "330206" + }, + { + "label": "镇海区", + "value": "330211" + }, + { + "label": "鄞州区", + "value": "330212" + }, + { + "label": "奉化区", + "value": "330213" + }, + { + "label": "象山县", + "value": "330225" + }, + { + "label": "宁海县", + "value": "330226" + }, + { + "label": "余姚市", + "value": "330281" + }, + { + "label": "慈溪市", + "value": "330282" + } + ], + [{ + "label": "鹿城区", + "value": "330302" + }, + { + "label": "龙湾区", + "value": "330303" + }, + { + "label": "瓯海区", + "value": "330304" + }, + { + "label": "洞头区", + "value": "330305" + }, + { + "label": "永嘉县", + "value": "330324" + }, + { + "label": "平阳县", + "value": "330326" + }, + { + "label": "苍南县", + "value": "330327" + }, + { + "label": "文成县", + "value": "330328" + }, + { + "label": "泰顺县", + "value": "330329" + }, + { + "label": "温州经济技术开发区", + "value": "330371" + }, + { + "label": "瑞安市", + "value": "330381" + }, + { + "label": "乐清市", + "value": "330382" + } + ], + [{ + "label": "南湖区", + "value": "330402" + }, + { + "label": "秀洲区", + "value": "330411" + }, + { + "label": "嘉善县", + "value": "330421" + }, + { + "label": "海盐县", + "value": "330424" + }, + { + "label": "海宁市", + "value": "330481" + }, + { + "label": "平湖市", + "value": "330482" + }, + { + "label": "桐乡市", + "value": "330483" + } + ], + [{ + "label": "吴兴区", + "value": "330502" + }, + { + "label": "南浔区", + "value": "330503" + }, + { + "label": "德清县", + "value": "330521" + }, + { + "label": "长兴县", + "value": "330522" + }, + { + "label": "安吉县", + "value": "330523" + } + ], + [{ + "label": "越城区", + "value": "330602" + }, + { + "label": "柯桥区", + "value": "330603" + }, + { + "label": "上虞区", + "value": "330604" + }, + { + "label": "新昌县", + "value": "330624" + }, + { + "label": "诸暨市", + "value": "330681" + }, + { + "label": "嵊州市", + "value": "330683" + } + ], + [{ + "label": "婺城区", + "value": "330702" + }, + { + "label": "金东区", + "value": "330703" + }, + { + "label": "武义县", + "value": "330723" + }, + { + "label": "浦江县", + "value": "330726" + }, + { + "label": "磐安县", + "value": "330727" + }, + { + "label": "兰溪市", + "value": "330781" + }, + { + "label": "义乌市", + "value": "330782" + }, + { + "label": "东阳市", + "value": "330783" + }, + { + "label": "永康市", + "value": "330784" + } + ], + [{ + "label": "柯城区", + "value": "330802" + }, + { + "label": "衢江区", + "value": "330803" + }, + { + "label": "常山县", + "value": "330822" + }, + { + "label": "开化县", + "value": "330824" + }, + { + "label": "龙游县", + "value": "330825" + }, + { + "label": "江山市", + "value": "330881" + } + ], + [{ + "label": "定海区", + "value": "330902" + }, + { + "label": "普陀区", + "value": "330903" + }, + { + "label": "岱山县", + "value": "330921" + }, + { + "label": "嵊泗县", + "value": "330922" + } + ], + [{ + "label": "椒江区", + "value": "331002" + }, + { + "label": "黄岩区", + "value": "331003" + }, + { + "label": "路桥区", + "value": "331004" + }, + { + "label": "三门县", + "value": "331022" + }, + { + "label": "天台县", + "value": "331023" + }, + { + "label": "仙居县", + "value": "331024" + }, + { + "label": "温岭市", + "value": "331081" + }, + { + "label": "临海市", + "value": "331082" + }, + { + "label": "玉环市", + "value": "331083" + } + ], + [{ + "label": "莲都区", + "value": "331102" + }, + { + "label": "青田县", + "value": "331121" + }, + { + "label": "缙云县", + "value": "331122" + }, + { + "label": "遂昌县", + "value": "331123" + }, + { + "label": "松阳县", + "value": "331124" + }, + { + "label": "云和县", + "value": "331125" + }, + { + "label": "庆元县", + "value": "331126" + }, + { + "label": "景宁畲族自治县", + "value": "331127" + }, + { + "label": "龙泉市", + "value": "331181" + } + ] + ], + [ + [{ + "label": "瑶海区", + "value": "340102" + }, + { + "label": "庐阳区", + "value": "340103" + }, + { + "label": "蜀山区", + "value": "340104" + }, + { + "label": "包河区", + "value": "340111" + }, + { + "label": "长丰县", + "value": "340121" + }, + { + "label": "肥东县", + "value": "340122" + }, + { + "label": "肥西县", + "value": "340123" + }, + { + "label": "庐江县", + "value": "340124" + }, + { + "label": "合肥高新技术产业开发区", + "value": "340171" + }, + { + "label": "合肥经济技术开发区", + "value": "340172" + }, + { + "label": "合肥新站高新技术产业开发区", + "value": "340173" + }, + { + "label": "巢湖市", + "value": "340181" + } + ], + [{ + "label": "镜湖区", + "value": "340202" + }, + { + "label": "弋江区", + "value": "340203" + }, + { + "label": "鸠江区", + "value": "340207" + }, + { + "label": "三山区", + "value": "340208" + }, + { + "label": "芜湖县", + "value": "340221" + }, + { + "label": "繁昌县", + "value": "340222" + }, + { + "label": "南陵县", + "value": "340223" + }, + { + "label": "无为县", + "value": "340225" + }, + { + "label": "芜湖经济技术开发区", + "value": "340271" + }, + { + "label": "安徽芜湖长江大桥经济开发区", + "value": "340272" + } + ], + [{ + "label": "龙子湖区", + "value": "340302" + }, + { + "label": "蚌山区", + "value": "340303" + }, + { + "label": "禹会区", + "value": "340304" + }, + { + "label": "淮上区", + "value": "340311" + }, + { + "label": "怀远县", + "value": "340321" + }, + { + "label": "五河县", + "value": "340322" + }, + { + "label": "固镇县", + "value": "340323" + }, + { + "label": "蚌埠市高新技术开发区", + "value": "340371" + }, + { + "label": "蚌埠市经济开发区", + "value": "340372" + } + ], + [{ + "label": "大通区", + "value": "340402" + }, + { + "label": "田家庵区", + "value": "340403" + }, + { + "label": "谢家集区", + "value": "340404" + }, + { + "label": "八公山区", + "value": "340405" + }, + { + "label": "潘集区", + "value": "340406" + }, + { + "label": "凤台县", + "value": "340421" + }, + { + "label": "寿县", + "value": "340422" + } + ], + [{ + "label": "花山区", + "value": "340503" + }, + { + "label": "雨山区", + "value": "340504" + }, + { + "label": "博望区", + "value": "340506" + }, + { + "label": "当涂县", + "value": "340521" + }, + { + "label": "含山县", + "value": "340522" + }, + { + "label": "和县", + "value": "340523" + } + ], + [{ + "label": "杜集区", + "value": "340602" + }, + { + "label": "相山区", + "value": "340603" + }, + { + "label": "烈山区", + "value": "340604" + }, + { + "label": "濉溪县", + "value": "340621" + } + ], + [{ + "label": "铜官区", + "value": "340705" + }, + { + "label": "义安区", + "value": "340706" + }, + { + "label": "郊区", + "value": "340711" + }, + { + "label": "枞阳县", + "value": "340722" + } + ], + [{ + "label": "迎江区", + "value": "340802" + }, + { + "label": "大观区", + "value": "340803" + }, + { + "label": "宜秀区", + "value": "340811" + }, + { + "label": "怀宁县", + "value": "340822" + }, + { + "label": "潜山县", + "value": "340824" + }, + { + "label": "太湖县", + "value": "340825" + }, + { + "label": "宿松县", + "value": "340826" + }, + { + "label": "望江县", + "value": "340827" + }, + { + "label": "岳西县", + "value": "340828" + }, + { + "label": "安徽安庆经济开发区", + "value": "340871" + }, + { + "label": "桐城市", + "value": "340881" + } + ], + [{ + "label": "屯溪区", + "value": "341002" + }, + { + "label": "黄山区", + "value": "341003" + }, + { + "label": "徽州区", + "value": "341004" + }, + { + "label": "歙县", + "value": "341021" + }, + { + "label": "休宁县", + "value": "341022" + }, + { + "label": "黟县", + "value": "341023" + }, + { + "label": "祁门县", + "value": "341024" + } + ], + [{ + "label": "琅琊区", + "value": "341102" + }, + { + "label": "南谯区", + "value": "341103" + }, + { + "label": "来安县", + "value": "341122" + }, + { + "label": "全椒县", + "value": "341124" + }, + { + "label": "定远县", + "value": "341125" + }, + { + "label": "凤阳县", + "value": "341126" + }, + { + "label": "苏滁现代产业园", + "value": "341171" + }, + { + "label": "滁州经济技术开发区", + "value": "341172" + }, + { + "label": "天长市", + "value": "341181" + }, + { + "label": "明光市", + "value": "341182" + } + ], + [{ + "label": "颍州区", + "value": "341202" + }, + { + "label": "颍东区", + "value": "341203" + }, + { + "label": "颍泉区", + "value": "341204" + }, + { + "label": "临泉县", + "value": "341221" + }, + { + "label": "太和县", + "value": "341222" + }, + { + "label": "阜南县", + "value": "341225" + }, + { + "label": "颍上县", + "value": "341226" + }, + { + "label": "阜阳合肥现代产业园区", + "value": "341271" + }, + { + "label": "阜阳经济技术开发区", + "value": "341272" + }, + { + "label": "界首市", + "value": "341282" + } + ], + [{ + "label": "埇桥区", + "value": "341302" + }, + { + "label": "砀山县", + "value": "341321" + }, + { + "label": "萧县", + "value": "341322" + }, + { + "label": "灵璧县", + "value": "341323" + }, + { + "label": "泗县", + "value": "341324" + }, + { + "label": "宿州马鞍山现代产业园区", + "value": "341371" + }, + { + "label": "宿州经济技术开发区", + "value": "341372" + } + ], + [{ + "label": "金安区", + "value": "341502" + }, + { + "label": "裕安区", + "value": "341503" + }, + { + "label": "叶集区", + "value": "341504" + }, + { + "label": "霍邱县", + "value": "341522" + }, + { + "label": "舒城县", + "value": "341523" + }, + { + "label": "金寨县", + "value": "341524" + }, + { + "label": "霍山县", + "value": "341525" + } + ], + [{ + "label": "谯城区", + "value": "341602" + }, + { + "label": "涡阳县", + "value": "341621" + }, + { + "label": "蒙城县", + "value": "341622" + }, + { + "label": "利辛县", + "value": "341623" + } + ], + [{ + "label": "贵池区", + "value": "341702" + }, + { + "label": "东至县", + "value": "341721" + }, + { + "label": "石台县", + "value": "341722" + }, + { + "label": "青阳县", + "value": "341723" + } + ], + [{ + "label": "宣州区", + "value": "341802" + }, + { + "label": "郎溪县", + "value": "341821" + }, + { + "label": "广德县", + "value": "341822" + }, + { + "label": "泾县", + "value": "341823" + }, + { + "label": "绩溪县", + "value": "341824" + }, + { + "label": "旌德县", + "value": "341825" + }, + { + "label": "宣城市经济开发区", + "value": "341871" + }, + { + "label": "宁国市", + "value": "341881" + } + ] + ], + [ + [{ + "label": "鼓楼区", + "value": "350102" + }, + { + "label": "台江区", + "value": "350103" + }, + { + "label": "仓山区", + "value": "350104" + }, + { + "label": "马尾区", + "value": "350105" + }, + { + "label": "晋安区", + "value": "350111" + }, + { + "label": "闽侯县", + "value": "350121" + }, + { + "label": "连江县", + "value": "350122" + }, + { + "label": "罗源县", + "value": "350123" + }, + { + "label": "闽清县", + "value": "350124" + }, + { + "label": "永泰县", + "value": "350125" + }, + { + "label": "平潭县", + "value": "350128" + }, + { + "label": "福清市", + "value": "350181" + }, + { + "label": "长乐市", + "value": "350182" + } + ], + [{ + "label": "思明区", + "value": "350203" + }, + { + "label": "海沧区", + "value": "350205" + }, + { + "label": "湖里区", + "value": "350206" + }, + { + "label": "集美区", + "value": "350211" + }, + { + "label": "同安区", + "value": "350212" + }, + { + "label": "翔安区", + "value": "350213" + } + ], + [{ + "label": "城厢区", + "value": "350302" + }, + { + "label": "涵江区", + "value": "350303" + }, + { + "label": "荔城区", + "value": "350304" + }, + { + "label": "秀屿区", + "value": "350305" + }, + { + "label": "仙游县", + "value": "350322" + } + ], + [{ + "label": "梅列区", + "value": "350402" + }, + { + "label": "三元区", + "value": "350403" + }, + { + "label": "明溪县", + "value": "350421" + }, + { + "label": "清流县", + "value": "350423" + }, + { + "label": "宁化县", + "value": "350424" + }, + { + "label": "大田县", + "value": "350425" + }, + { + "label": "尤溪县", + "value": "350426" + }, + { + "label": "沙县", + "value": "350427" + }, + { + "label": "将乐县", + "value": "350428" + }, + { + "label": "泰宁县", + "value": "350429" + }, + { + "label": "建宁县", + "value": "350430" + }, + { + "label": "永安市", + "value": "350481" + } + ], + [{ + "label": "鲤城区", + "value": "350502" + }, + { + "label": "丰泽区", + "value": "350503" + }, + { + "label": "洛江区", + "value": "350504" + }, + { + "label": "泉港区", + "value": "350505" + }, + { + "label": "惠安县", + "value": "350521" + }, + { + "label": "安溪县", + "value": "350524" + }, + { + "label": "永春县", + "value": "350525" + }, + { + "label": "德化县", + "value": "350526" + }, + { + "label": "金门县", + "value": "350527" + }, + { + "label": "石狮市", + "value": "350581" + }, + { + "label": "晋江市", + "value": "350582" + }, + { + "label": "南安市", + "value": "350583" + } + ], + [{ + "label": "芗城区", + "value": "350602" + }, + { + "label": "龙文区", + "value": "350603" + }, + { + "label": "云霄县", + "value": "350622" + }, + { + "label": "漳浦县", + "value": "350623" + }, + { + "label": "诏安县", + "value": "350624" + }, + { + "label": "长泰县", + "value": "350625" + }, + { + "label": "东山县", + "value": "350626" + }, + { + "label": "南靖县", + "value": "350627" + }, + { + "label": "平和县", + "value": "350628" + }, + { + "label": "华安县", + "value": "350629" + }, + { + "label": "龙海市", + "value": "350681" + } + ], + [{ + "label": "延平区", + "value": "350702" + }, + { + "label": "建阳区", + "value": "350703" + }, + { + "label": "顺昌县", + "value": "350721" + }, + { + "label": "浦城县", + "value": "350722" + }, + { + "label": "光泽县", + "value": "350723" + }, + { + "label": "松溪县", + "value": "350724" + }, + { + "label": "政和县", + "value": "350725" + }, + { + "label": "邵武市", + "value": "350781" + }, + { + "label": "武夷山市", + "value": "350782" + }, + { + "label": "建瓯市", + "value": "350783" + } + ], + [{ + "label": "新罗区", + "value": "350802" + }, + { + "label": "永定区", + "value": "350803" + }, + { + "label": "长汀县", + "value": "350821" + }, + { + "label": "上杭县", + "value": "350823" + }, + { + "label": "武平县", + "value": "350824" + }, + { + "label": "连城县", + "value": "350825" + }, + { + "label": "漳平市", + "value": "350881" + } + ], + [{ + "label": "蕉城区", + "value": "350902" + }, + { + "label": "霞浦县", + "value": "350921" + }, + { + "label": "古田县", + "value": "350922" + }, + { + "label": "屏南县", + "value": "350923" + }, + { + "label": "寿宁县", + "value": "350924" + }, + { + "label": "周宁县", + "value": "350925" + }, + { + "label": "柘荣县", + "value": "350926" + }, + { + "label": "福安市", + "value": "350981" + }, + { + "label": "福鼎市", + "value": "350982" + } + ] + ], + [ + [{ + "label": "东湖区", + "value": "360102" + }, + { + "label": "西湖区", + "value": "360103" + }, + { + "label": "青云谱区", + "value": "360104" + }, + { + "label": "湾里区", + "value": "360105" + }, + { + "label": "青山湖区", + "value": "360111" + }, + { + "label": "新建区", + "value": "360112" + }, + { + "label": "南昌县", + "value": "360121" + }, + { + "label": "安义县", + "value": "360123" + }, + { + "label": "进贤县", + "value": "360124" + } + ], + [{ + "label": "昌江区", + "value": "360202" + }, + { + "label": "珠山区", + "value": "360203" + }, + { + "label": "浮梁县", + "value": "360222" + }, + { + "label": "乐平市", + "value": "360281" + } + ], + [{ + "label": "安源区", + "value": "360302" + }, + { + "label": "湘东区", + "value": "360313" + }, + { + "label": "莲花县", + "value": "360321" + }, + { + "label": "上栗县", + "value": "360322" + }, + { + "label": "芦溪县", + "value": "360323" + } + ], + [{ + "label": "濂溪区", + "value": "360402" + }, + { + "label": "浔阳区", + "value": "360403" + }, + { + "label": "柴桑区", + "value": "360404" + }, + { + "label": "武宁县", + "value": "360423" + }, + { + "label": "修水县", + "value": "360424" + }, + { + "label": "永修县", + "value": "360425" + }, + { + "label": "德安县", + "value": "360426" + }, + { + "label": "都昌县", + "value": "360428" + }, + { + "label": "湖口县", + "value": "360429" + }, + { + "label": "彭泽县", + "value": "360430" + }, + { + "label": "瑞昌市", + "value": "360481" + }, + { + "label": "共青城市", + "value": "360482" + }, + { + "label": "庐山市", + "value": "360483" + } + ], + [{ + "label": "渝水区", + "value": "360502" + }, + { + "label": "分宜县", + "value": "360521" + } + ], + [{ + "label": "月湖区", + "value": "360602" + }, + { + "label": "余江县", + "value": "360622" + }, + { + "label": "贵溪市", + "value": "360681" + } + ], + [{ + "label": "章贡区", + "value": "360702" + }, + { + "label": "南康区", + "value": "360703" + }, + { + "label": "赣县区", + "value": "360704" + }, + { + "label": "信丰县", + "value": "360722" + }, + { + "label": "大余县", + "value": "360723" + }, + { + "label": "上犹县", + "value": "360724" + }, + { + "label": "崇义县", + "value": "360725" + }, + { + "label": "安远县", + "value": "360726" + }, + { + "label": "龙南县", + "value": "360727" + }, + { + "label": "定南县", + "value": "360728" + }, + { + "label": "全南县", + "value": "360729" + }, + { + "label": "宁都县", + "value": "360730" + }, + { + "label": "于都县", + "value": "360731" + }, + { + "label": "兴国县", + "value": "360732" + }, + { + "label": "会昌县", + "value": "360733" + }, + { + "label": "寻乌县", + "value": "360734" + }, + { + "label": "石城县", + "value": "360735" + }, + { + "label": "瑞金市", + "value": "360781" + } + ], + [{ + "label": "吉州区", + "value": "360802" + }, + { + "label": "青原区", + "value": "360803" + }, + { + "label": "吉安县", + "value": "360821" + }, + { + "label": "吉水县", + "value": "360822" + }, + { + "label": "峡江县", + "value": "360823" + }, + { + "label": "新干县", + "value": "360824" + }, + { + "label": "永丰县", + "value": "360825" + }, + { + "label": "泰和县", + "value": "360826" + }, + { + "label": "遂川县", + "value": "360827" + }, + { + "label": "万安县", + "value": "360828" + }, + { + "label": "安福县", + "value": "360829" + }, + { + "label": "永新县", + "value": "360830" + }, + { + "label": "井冈山市", + "value": "360881" + } + ], + [{ + "label": "袁州区", + "value": "360902" + }, + { + "label": "奉新县", + "value": "360921" + }, + { + "label": "万载县", + "value": "360922" + }, + { + "label": "上高县", + "value": "360923" + }, + { + "label": "宜丰县", + "value": "360924" + }, + { + "label": "靖安县", + "value": "360925" + }, + { + "label": "铜鼓县", + "value": "360926" + }, + { + "label": "丰城市", + "value": "360981" + }, + { + "label": "樟树市", + "value": "360982" + }, + { + "label": "高安市", + "value": "360983" + } + ], + [{ + "label": "临川区", + "value": "361002" + }, + { + "label": "东乡区", + "value": "361003" + }, + { + "label": "南城县", + "value": "361021" + }, + { + "label": "黎川县", + "value": "361022" + }, + { + "label": "南丰县", + "value": "361023" + }, + { + "label": "崇仁县", + "value": "361024" + }, + { + "label": "乐安县", + "value": "361025" + }, + { + "label": "宜黄县", + "value": "361026" + }, + { + "label": "金溪县", + "value": "361027" + }, + { + "label": "资溪县", + "value": "361028" + }, + { + "label": "广昌县", + "value": "361030" + } + ], + [{ + "label": "信州区", + "value": "361102" + }, + { + "label": "广丰区", + "value": "361103" + }, + { + "label": "上饶县", + "value": "361121" + }, + { + "label": "玉山县", + "value": "361123" + }, + { + "label": "铅山县", + "value": "361124" + }, + { + "label": "横峰县", + "value": "361125" + }, + { + "label": "弋阳县", + "value": "361126" + }, + { + "label": "余干县", + "value": "361127" + }, + { + "label": "鄱阳县", + "value": "361128" + }, + { + "label": "万年县", + "value": "361129" + }, + { + "label": "婺源县", + "value": "361130" + }, + { + "label": "德兴市", + "value": "361181" + } + ] + ], + [ + [{ + "label": "历下区", + "value": "370102" + }, + { + "label": "市中区", + "value": "370103" + }, + { + "label": "槐荫区", + "value": "370104" + }, + { + "label": "天桥区", + "value": "370105" + }, + { + "label": "历城区", + "value": "370112" + }, + { + "label": "长清区", + "value": "370113" + }, + { + "label": "章丘区", + "value": "370114" + }, + { + "label": "平阴县", + "value": "370124" + }, + { + "label": "济阳县", + "value": "370125" + }, + { + "label": "商河县", + "value": "370126" + }, + { + "label": "济南高新技术产业开发区", + "value": "370171" + } + ], + [{ + "label": "市南区", + "value": "370202" + }, + { + "label": "市北区", + "value": "370203" + }, + { + "label": "黄岛区", + "value": "370211" + }, + { + "label": "崂山区", + "value": "370212" + }, + { + "label": "李沧区", + "value": "370213" + }, + { + "label": "城阳区", + "value": "370214" + }, + { + "label": "即墨区", + "value": "370215" + }, + { + "label": "青岛高新技术产业开发区", + "value": "370271" + }, + { + "label": "胶州市", + "value": "370281" + }, + { + "label": "平度市", + "value": "370283" + }, + { + "label": "莱西市", + "value": "370285" + } + ], + [{ + "label": "淄川区", + "value": "370302" + }, + { + "label": "张店区", + "value": "370303" + }, + { + "label": "博山区", + "value": "370304" + }, + { + "label": "临淄区", + "value": "370305" + }, + { + "label": "周村区", + "value": "370306" + }, + { + "label": "桓台县", + "value": "370321" + }, + { + "label": "高青县", + "value": "370322" + }, + { + "label": "沂源县", + "value": "370323" + } + ], + [{ + "label": "市中区", + "value": "370402" + }, + { + "label": "薛城区", + "value": "370403" + }, + { + "label": "峄城区", + "value": "370404" + }, + { + "label": "台儿庄区", + "value": "370405" + }, + { + "label": "山亭区", + "value": "370406" + }, + { + "label": "滕州市", + "value": "370481" + } + ], + [{ + "label": "东营区", + "value": "370502" + }, + { + "label": "河口区", + "value": "370503" + }, + { + "label": "垦利区", + "value": "370505" + }, + { + "label": "利津县", + "value": "370522" + }, + { + "label": "广饶县", + "value": "370523" + }, + { + "label": "东营经济技术开发区", + "value": "370571" + }, + { + "label": "东营港经济开发区", + "value": "370572" + } + ], + [{ + "label": "芝罘区", + "value": "370602" + }, + { + "label": "福山区", + "value": "370611" + }, + { + "label": "牟平区", + "value": "370612" + }, + { + "label": "莱山区", + "value": "370613" + }, + { + "label": "长岛县", + "value": "370634" + }, + { + "label": "烟台高新技术产业开发区", + "value": "370671" + }, + { + "label": "烟台经济技术开发区", + "value": "370672" + }, + { + "label": "龙口市", + "value": "370681" + }, + { + "label": "莱阳市", + "value": "370682" + }, + { + "label": "莱州市", + "value": "370683" + }, + { + "label": "蓬莱市", + "value": "370684" + }, + { + "label": "招远市", + "value": "370685" + }, + { + "label": "栖霞市", + "value": "370686" + }, + { + "label": "海阳市", + "value": "370687" + } + ], + [{ + "label": "潍城区", + "value": "370702" + }, + { + "label": "寒亭区", + "value": "370703" + }, + { + "label": "坊子区", + "value": "370704" + }, + { + "label": "奎文区", + "value": "370705" + }, + { + "label": "临朐县", + "value": "370724" + }, + { + "label": "昌乐县", + "value": "370725" + }, + { + "label": "潍坊滨海经济技术开发区", + "value": "370772" + }, + { + "label": "青州市", + "value": "370781" + }, + { + "label": "诸城市", + "value": "370782" + }, + { + "label": "寿光市", + "value": "370783" + }, + { + "label": "安丘市", + "value": "370784" + }, + { + "label": "高密市", + "value": "370785" + }, + { + "label": "昌邑市", + "value": "370786" + } + ], + [{ + "label": "任城区", + "value": "370811" + }, + { + "label": "兖州区", + "value": "370812" + }, + { + "label": "微山县", + "value": "370826" + }, + { + "label": "鱼台县", + "value": "370827" + }, + { + "label": "金乡县", + "value": "370828" + }, + { + "label": "嘉祥县", + "value": "370829" + }, + { + "label": "汶上县", + "value": "370830" + }, + { + "label": "泗水县", + "value": "370831" + }, + { + "label": "梁山县", + "value": "370832" + }, + { + "label": "济宁高新技术产业开发区", + "value": "370871" + }, + { + "label": "曲阜市", + "value": "370881" + }, + { + "label": "邹城市", + "value": "370883" + } + ], + [{ + "label": "泰山区", + "value": "370902" + }, + { + "label": "岱岳区", + "value": "370911" + }, + { + "label": "宁阳县", + "value": "370921" + }, + { + "label": "东平县", + "value": "370923" + }, + { + "label": "新泰市", + "value": "370982" + }, + { + "label": "肥城市", + "value": "370983" + } + ], + [{ + "label": "环翠区", + "value": "371002" + }, + { + "label": "文登区", + "value": "371003" + }, + { + "label": "威海火炬高技术产业开发区", + "value": "371071" + }, + { + "label": "威海经济技术开发区", + "value": "371072" + }, + { + "label": "威海临港经济技术开发区", + "value": "371073" + }, + { + "label": "荣成市", + "value": "371082" + }, + { + "label": "乳山市", + "value": "371083" + } + ], + [{ + "label": "东港区", + "value": "371102" + }, + { + "label": "岚山区", + "value": "371103" + }, + { + "label": "五莲县", + "value": "371121" + }, + { + "label": "莒县", + "value": "371122" + }, + { + "label": "日照经济技术开发区", + "value": "371171" + }, + { + "label": "日照国际海洋城", + "value": "371172" + } + ], + [{ + "label": "莱城区", + "value": "371202" + }, + { + "label": "钢城区", + "value": "371203" + } + ], + [{ + "label": "兰山区", + "value": "371302" + }, + { + "label": "罗庄区", + "value": "371311" + }, + { + "label": "河东区", + "value": "371312" + }, + { + "label": "沂南县", + "value": "371321" + }, + { + "label": "郯城县", + "value": "371322" + }, + { + "label": "沂水县", + "value": "371323" + }, + { + "label": "兰陵县", + "value": "371324" + }, + { + "label": "费县", + "value": "371325" + }, + { + "label": "平邑县", + "value": "371326" + }, + { + "label": "莒南县", + "value": "371327" + }, + { + "label": "蒙阴县", + "value": "371328" + }, + { + "label": "临沭县", + "value": "371329" + }, + { + "label": "临沂高新技术产业开发区", + "value": "371371" + }, + { + "label": "临沂经济技术开发区", + "value": "371372" + }, + { + "label": "临沂临港经济开发区", + "value": "371373" + } + ], + [{ + "label": "德城区", + "value": "371402" + }, + { + "label": "陵城区", + "value": "371403" + }, + { + "label": "宁津县", + "value": "371422" + }, + { + "label": "庆云县", + "value": "371423" + }, + { + "label": "临邑县", + "value": "371424" + }, + { + "label": "齐河县", + "value": "371425" + }, + { + "label": "平原县", + "value": "371426" + }, + { + "label": "夏津县", + "value": "371427" + }, + { + "label": "武城县", + "value": "371428" + }, + { + "label": "德州经济技术开发区", + "value": "371471" + }, + { + "label": "德州运河经济开发区", + "value": "371472" + }, + { + "label": "乐陵市", + "value": "371481" + }, + { + "label": "禹城市", + "value": "371482" + } + ], + [{ + "label": "东昌府区", + "value": "371502" + }, + { + "label": "阳谷县", + "value": "371521" + }, + { + "label": "莘县", + "value": "371522" + }, + { + "label": "茌平县", + "value": "371523" + }, + { + "label": "东阿县", + "value": "371524" + }, + { + "label": "冠县", + "value": "371525" + }, + { + "label": "高唐县", + "value": "371526" + }, + { + "label": "临清市", + "value": "371581" + } + ], + [{ + "label": "滨城区", + "value": "371602" + }, + { + "label": "沾化区", + "value": "371603" + }, + { + "label": "惠民县", + "value": "371621" + }, + { + "label": "阳信县", + "value": "371622" + }, + { + "label": "无棣县", + "value": "371623" + }, + { + "label": "博兴县", + "value": "371625" + }, + { + "label": "邹平县", + "value": "371626" + } + ], + [{ + "label": "牡丹区", + "value": "371702" + }, + { + "label": "定陶区", + "value": "371703" + }, + { + "label": "曹县", + "value": "371721" + }, + { + "label": "单县", + "value": "371722" + }, + { + "label": "成武县", + "value": "371723" + }, + { + "label": "巨野县", + "value": "371724" + }, + { + "label": "郓城县", + "value": "371725" + }, + { + "label": "鄄城县", + "value": "371726" + }, + { + "label": "东明县", + "value": "371728" + }, + { + "label": "菏泽经济技术开发区", + "value": "371771" + }, + { + "label": "菏泽高新技术开发区", + "value": "371772" + } + ] + ], + [ + [{ + "label": "中原区", + "value": "410102" + }, + { + "label": "二七区", + "value": "410103" + }, + { + "label": "管城回族区", + "value": "410104" + }, + { + "label": "金水区", + "value": "410105" + }, + { + "label": "上街区", + "value": "410106" + }, + { + "label": "惠济区", + "value": "410108" + }, + { + "label": "中牟县", + "value": "410122" + }, + { + "label": "郑州经济技术开发区", + "value": "410171" + }, + { + "label": "郑州高新技术产业开发区", + "value": "410172" + }, + { + "label": "郑州航空港经济综合实验区", + "value": "410173" + }, + { + "label": "巩义市", + "value": "410181" + }, + { + "label": "荥阳市", + "value": "410182" + }, + { + "label": "新密市", + "value": "410183" + }, + { + "label": "新郑市", + "value": "410184" + }, + { + "label": "登封市", + "value": "410185" + } + ], + [{ + "label": "龙亭区", + "value": "410202" + }, + { + "label": "顺河回族区", + "value": "410203" + }, + { + "label": "鼓楼区", + "value": "410204" + }, + { + "label": "禹王台区", + "value": "410205" + }, + { + "label": "祥符区", + "value": "410212" + }, + { + "label": "杞县", + "value": "410221" + }, + { + "label": "通许县", + "value": "410222" + }, + { + "label": "尉氏县", + "value": "410223" + }, + { + "label": "兰考县", + "value": "410225" + } + ], + [{ + "label": "老城区", + "value": "410302" + }, + { + "label": "西工区", + "value": "410303" + }, + { + "label": "瀍河回族区", + "value": "410304" + }, + { + "label": "涧西区", + "value": "410305" + }, + { + "label": "吉利区", + "value": "410306" + }, + { + "label": "洛龙区", + "value": "410311" + }, + { + "label": "孟津县", + "value": "410322" + }, + { + "label": "新安县", + "value": "410323" + }, + { + "label": "栾川县", + "value": "410324" + }, + { + "label": "嵩县", + "value": "410325" + }, + { + "label": "汝阳县", + "value": "410326" + }, + { + "label": "宜阳县", + "value": "410327" + }, + { + "label": "洛宁县", + "value": "410328" + }, + { + "label": "伊川县", + "value": "410329" + }, + { + "label": "洛阳高新技术产业开发区", + "value": "410371" + }, + { + "label": "偃师市", + "value": "410381" + } + ], + [{ + "label": "新华区", + "value": "410402" + }, + { + "label": "卫东区", + "value": "410403" + }, + { + "label": "石龙区", + "value": "410404" + }, + { + "label": "湛河区", + "value": "410411" + }, + { + "label": "宝丰县", + "value": "410421" + }, + { + "label": "叶县", + "value": "410422" + }, + { + "label": "鲁山县", + "value": "410423" + }, + { + "label": "郏县", + "value": "410425" + }, + { + "label": "平顶山高新技术产业开发区", + "value": "410471" + }, + { + "label": "平顶山市新城区", + "value": "410472" + }, + { + "label": "舞钢市", + "value": "410481" + }, + { + "label": "汝州市", + "value": "410482" + } + ], + [{ + "label": "文峰区", + "value": "410502" + }, + { + "label": "北关区", + "value": "410503" + }, + { + "label": "殷都区", + "value": "410505" + }, + { + "label": "龙安区", + "value": "410506" + }, + { + "label": "安阳县", + "value": "410522" + }, + { + "label": "汤阴县", + "value": "410523" + }, + { + "label": "滑县", + "value": "410526" + }, + { + "label": "内黄县", + "value": "410527" + }, + { + "label": "安阳高新技术产业开发区", + "value": "410571" + }, + { + "label": "林州市", + "value": "410581" + } + ], + [{ + "label": "鹤山区", + "value": "410602" + }, + { + "label": "山城区", + "value": "410603" + }, + { + "label": "淇滨区", + "value": "410611" + }, + { + "label": "浚县", + "value": "410621" + }, + { + "label": "淇县", + "value": "410622" + }, + { + "label": "鹤壁经济技术开发区", + "value": "410671" + } + ], + [{ + "label": "红旗区", + "value": "410702" + }, + { + "label": "卫滨区", + "value": "410703" + }, + { + "label": "凤泉区", + "value": "410704" + }, + { + "label": "牧野区", + "value": "410711" + }, + { + "label": "新乡县", + "value": "410721" + }, + { + "label": "获嘉县", + "value": "410724" + }, + { + "label": "原阳县", + "value": "410725" + }, + { + "label": "延津县", + "value": "410726" + }, + { + "label": "封丘县", + "value": "410727" + }, + { + "label": "长垣县", + "value": "410728" + }, + { + "label": "新乡高新技术产业开发区", + "value": "410771" + }, + { + "label": "新乡经济技术开发区", + "value": "410772" + }, + { + "label": "新乡市平原城乡一体化示范区", + "value": "410773" + }, + { + "label": "卫辉市", + "value": "410781" + }, + { + "label": "辉县市", + "value": "410782" + } + ], + [{ + "label": "解放区", + "value": "410802" + }, + { + "label": "中站区", + "value": "410803" + }, + { + "label": "马村区", + "value": "410804" + }, + { + "label": "山阳区", + "value": "410811" + }, + { + "label": "修武县", + "value": "410821" + }, + { + "label": "博爱县", + "value": "410822" + }, + { + "label": "武陟县", + "value": "410823" + }, + { + "label": "温县", + "value": "410825" + }, + { + "label": "焦作城乡一体化示范区", + "value": "410871" + }, + { + "label": "沁阳市", + "value": "410882" + }, + { + "label": "孟州市", + "value": "410883" + } + ], + [{ + "label": "华龙区", + "value": "410902" + }, + { + "label": "清丰县", + "value": "410922" + }, + { + "label": "南乐县", + "value": "410923" + }, + { + "label": "范县", + "value": "410926" + }, + { + "label": "台前县", + "value": "410927" + }, + { + "label": "濮阳县", + "value": "410928" + }, + { + "label": "河南濮阳工业园区", + "value": "410971" + }, + { + "label": "濮阳经济技术开发区", + "value": "410972" + } + ], + [{ + "label": "魏都区", + "value": "411002" + }, + { + "label": "建安区", + "value": "411003" + }, + { + "label": "鄢陵县", + "value": "411024" + }, + { + "label": "襄城县", + "value": "411025" + }, + { + "label": "许昌经济技术开发区", + "value": "411071" + }, + { + "label": "禹州市", + "value": "411081" + }, + { + "label": "长葛市", + "value": "411082" + } + ], + [{ + "label": "源汇区", + "value": "411102" + }, + { + "label": "郾城区", + "value": "411103" + }, + { + "label": "召陵区", + "value": "411104" + }, + { + "label": "舞阳县", + "value": "411121" + }, + { + "label": "临颍县", + "value": "411122" + }, + { + "label": "漯河经济技术开发区", + "value": "411171" + } + ], + [{ + "label": "湖滨区", + "value": "411202" + }, + { + "label": "陕州区", + "value": "411203" + }, + { + "label": "渑池县", + "value": "411221" + }, + { + "label": "卢氏县", + "value": "411224" + }, + { + "label": "河南三门峡经济开发区", + "value": "411271" + }, + { + "label": "义马市", + "value": "411281" + }, + { + "label": "灵宝市", + "value": "411282" + } + ], + [{ + "label": "宛城区", + "value": "411302" + }, + { + "label": "卧龙区", + "value": "411303" + }, + { + "label": "南召县", + "value": "411321" + }, + { + "label": "方城县", + "value": "411322" + }, + { + "label": "西峡县", + "value": "411323" + }, + { + "label": "镇平县", + "value": "411324" + }, + { + "label": "内乡县", + "value": "411325" + }, + { + "label": "淅川县", + "value": "411326" + }, + { + "label": "社旗县", + "value": "411327" + }, + { + "label": "唐河县", + "value": "411328" + }, + { + "label": "新野县", + "value": "411329" + }, + { + "label": "桐柏县", + "value": "411330" + }, + { + "label": "南阳高新技术产业开发区", + "value": "411371" + }, + { + "label": "南阳市城乡一体化示范区", + "value": "411372" + }, + { + "label": "邓州市", + "value": "411381" + } + ], + [{ + "label": "梁园区", + "value": "411402" + }, + { + "label": "睢阳区", + "value": "411403" + }, + { + "label": "民权县", + "value": "411421" + }, + { + "label": "睢县", + "value": "411422" + }, + { + "label": "宁陵县", + "value": "411423" + }, + { + "label": "柘城县", + "value": "411424" + }, + { + "label": "虞城县", + "value": "411425" + }, + { + "label": "夏邑县", + "value": "411426" + }, + { + "label": "豫东综合物流产业聚集区", + "value": "411471" + }, + { + "label": "河南商丘经济开发区", + "value": "411472" + }, + { + "label": "永城市", + "value": "411481" + } + ], + [{ + "label": "浉河区", + "value": "411502" + }, + { + "label": "平桥区", + "value": "411503" + }, + { + "label": "罗山县", + "value": "411521" + }, + { + "label": "光山县", + "value": "411522" + }, + { + "label": "新县", + "value": "411523" + }, + { + "label": "商城县", + "value": "411524" + }, + { + "label": "固始县", + "value": "411525" + }, + { + "label": "潢川县", + "value": "411526" + }, + { + "label": "淮滨县", + "value": "411527" + }, + { + "label": "息县", + "value": "411528" + }, + { + "label": "信阳高新技术产业开发区", + "value": "411571" + } + ], + [{ + "label": "川汇区", + "value": "411602" + }, + { + "label": "扶沟县", + "value": "411621" + }, + { + "label": "西华县", + "value": "411622" + }, + { + "label": "商水县", + "value": "411623" + }, + { + "label": "沈丘县", + "value": "411624" + }, + { + "label": "郸城县", + "value": "411625" + }, + { + "label": "淮阳县", + "value": "411626" + }, + { + "label": "太康县", + "value": "411627" + }, + { + "label": "鹿邑县", + "value": "411628" + }, + { + "label": "河南周口经济开发区", + "value": "411671" + }, + { + "label": "项城市", + "value": "411681" + } + ], + [{ + "label": "驿城区", + "value": "411702" + }, + { + "label": "西平县", + "value": "411721" + }, + { + "label": "上蔡县", + "value": "411722" + }, + { + "label": "平舆县", + "value": "411723" + }, + { + "label": "正阳县", + "value": "411724" + }, + { + "label": "确山县", + "value": "411725" + }, + { + "label": "泌阳县", + "value": "411726" + }, + { + "label": "汝南县", + "value": "411727" + }, + { + "label": "遂平县", + "value": "411728" + }, + { + "label": "新蔡县", + "value": "411729" + }, + { + "label": "河南驻马店经济开发区", + "value": "411771" + } + ], + [{ + "label": "济源市", + "value": "419001" + }] + ], + [ + [{ + "label": "江岸区", + "value": "420102" + }, + { + "label": "江汉区", + "value": "420103" + }, + { + "label": "硚口区", + "value": "420104" + }, + { + "label": "汉阳区", + "value": "420105" + }, + { + "label": "武昌区", + "value": "420106" + }, + { + "label": "青山区", + "value": "420107" + }, + { + "label": "洪山区", + "value": "420111" + }, + { + "label": "东西湖区", + "value": "420112" + }, + { + "label": "汉南区", + "value": "420113" + }, + { + "label": "蔡甸区", + "value": "420114" + }, + { + "label": "江夏区", + "value": "420115" + }, + { + "label": "黄陂区", + "value": "420116" + }, + { + "label": "新洲区", + "value": "420117" + } + ], + [{ + "label": "黄石港区", + "value": "420202" + }, + { + "label": "西塞山区", + "value": "420203" + }, + { + "label": "下陆区", + "value": "420204" + }, + { + "label": "铁山区", + "value": "420205" + }, + { + "label": "阳新县", + "value": "420222" + }, + { + "label": "大冶市", + "value": "420281" + } + ], + [{ + "label": "茅箭区", + "value": "420302" + }, + { + "label": "张湾区", + "value": "420303" + }, + { + "label": "郧阳区", + "value": "420304" + }, + { + "label": "郧西县", + "value": "420322" + }, + { + "label": "竹山县", + "value": "420323" + }, + { + "label": "竹溪县", + "value": "420324" + }, + { + "label": "房县", + "value": "420325" + }, + { + "label": "丹江口市", + "value": "420381" + } + ], + [{ + "label": "西陵区", + "value": "420502" + }, + { + "label": "伍家岗区", + "value": "420503" + }, + { + "label": "点军区", + "value": "420504" + }, + { + "label": "猇亭区", + "value": "420505" + }, + { + "label": "夷陵区", + "value": "420506" + }, + { + "label": "远安县", + "value": "420525" + }, + { + "label": "兴山县", + "value": "420526" + }, + { + "label": "秭归县", + "value": "420527" + }, + { + "label": "长阳土家族自治县", + "value": "420528" + }, + { + "label": "五峰土家族自治县", + "value": "420529" + }, + { + "label": "宜都市", + "value": "420581" + }, + { + "label": "当阳市", + "value": "420582" + }, + { + "label": "枝江市", + "value": "420583" + } + ], + [{ + "label": "襄城区", + "value": "420602" + }, + { + "label": "樊城区", + "value": "420606" + }, + { + "label": "襄州区", + "value": "420607" + }, + { + "label": "南漳县", + "value": "420624" + }, + { + "label": "谷城县", + "value": "420625" + }, + { + "label": "保康县", + "value": "420626" + }, + { + "label": "老河口市", + "value": "420682" + }, + { + "label": "枣阳市", + "value": "420683" + }, + { + "label": "宜城市", + "value": "420684" + } + ], + [{ + "label": "梁子湖区", + "value": "420702" + }, + { + "label": "华容区", + "value": "420703" + }, + { + "label": "鄂城区", + "value": "420704" + } + ], + [{ + "label": "东宝区", + "value": "420802" + }, + { + "label": "掇刀区", + "value": "420804" + }, + { + "label": "京山县", + "value": "420821" + }, + { + "label": "沙洋县", + "value": "420822" + }, + { + "label": "钟祥市", + "value": "420881" + } + ], + [{ + "label": "孝南区", + "value": "420902" + }, + { + "label": "孝昌县", + "value": "420921" + }, + { + "label": "大悟县", + "value": "420922" + }, + { + "label": "云梦县", + "value": "420923" + }, + { + "label": "应城市", + "value": "420981" + }, + { + "label": "安陆市", + "value": "420982" + }, + { + "label": "汉川市", + "value": "420984" + } + ], + [{ + "label": "沙市区", + "value": "421002" + }, + { + "label": "荆州区", + "value": "421003" + }, + { + "label": "公安县", + "value": "421022" + }, + { + "label": "监利县", + "value": "421023" + }, + { + "label": "江陵县", + "value": "421024" + }, + { + "label": "荆州经济技术开发区", + "value": "421071" + }, + { + "label": "石首市", + "value": "421081" + }, + { + "label": "洪湖市", + "value": "421083" + }, + { + "label": "松滋市", + "value": "421087" + } + ], + [{ + "label": "黄州区", + "value": "421102" + }, + { + "label": "团风县", + "value": "421121" + }, + { + "label": "红安县", + "value": "421122" + }, + { + "label": "罗田县", + "value": "421123" + }, + { + "label": "英山县", + "value": "421124" + }, + { + "label": "浠水县", + "value": "421125" + }, + { + "label": "蕲春县", + "value": "421126" + }, + { + "label": "黄梅县", + "value": "421127" + }, + { + "label": "龙感湖管理区", + "value": "421171" + }, + { + "label": "麻城市", + "value": "421181" + }, + { + "label": "武穴市", + "value": "421182" + } + ], + [{ + "label": "咸安区", + "value": "421202" + }, + { + "label": "嘉鱼县", + "value": "421221" + }, + { + "label": "通城县", + "value": "421222" + }, + { + "label": "崇阳县", + "value": "421223" + }, + { + "label": "通山县", + "value": "421224" + }, + { + "label": "赤壁市", + "value": "421281" + } + ], + [{ + "label": "曾都区", + "value": "421303" + }, + { + "label": "随县", + "value": "421321" + }, + { + "label": "广水市", + "value": "421381" + } + ], + [{ + "label": "恩施市", + "value": "422801" + }, + { + "label": "利川市", + "value": "422802" + }, + { + "label": "建始县", + "value": "422822" + }, + { + "label": "巴东县", + "value": "422823" + }, + { + "label": "宣恩县", + "value": "422825" + }, + { + "label": "咸丰县", + "value": "422826" + }, + { + "label": "来凤县", + "value": "422827" + }, + { + "label": "鹤峰县", + "value": "422828" + } + ], + [{ + "label": "仙桃市", + "value": "429004" + }, + { + "label": "潜江市", + "value": "429005" + }, + { + "label": "天门市", + "value": "429006" + }, + { + "label": "神农架林区", + "value": "429021" + } + ] + ], + [ + [{ + "label": "芙蓉区", + "value": "430102" + }, + { + "label": "天心区", + "value": "430103" + }, + { + "label": "岳麓区", + "value": "430104" + }, + { + "label": "开福区", + "value": "430105" + }, + { + "label": "雨花区", + "value": "430111" + }, + { + "label": "望城区", + "value": "430112" + }, + { + "label": "长沙县", + "value": "430121" + }, + { + "label": "浏阳市", + "value": "430181" + }, + { + "label": "宁乡市", + "value": "430182" + } + ], + [{ + "label": "荷塘区", + "value": "430202" + }, + { + "label": "芦淞区", + "value": "430203" + }, + { + "label": "石峰区", + "value": "430204" + }, + { + "label": "天元区", + "value": "430211" + }, + { + "label": "株洲县", + "value": "430221" + }, + { + "label": "攸县", + "value": "430223" + }, + { + "label": "茶陵县", + "value": "430224" + }, + { + "label": "炎陵县", + "value": "430225" + }, + { + "label": "云龙示范区", + "value": "430271" + }, + { + "label": "醴陵市", + "value": "430281" + } + ], + [{ + "label": "雨湖区", + "value": "430302" + }, + { + "label": "岳塘区", + "value": "430304" + }, + { + "label": "湘潭县", + "value": "430321" + }, + { + "label": "湖南湘潭高新技术产业园区", + "value": "430371" + }, + { + "label": "湘潭昭山示范区", + "value": "430372" + }, + { + "label": "湘潭九华示范区", + "value": "430373" + }, + { + "label": "湘乡市", + "value": "430381" + }, + { + "label": "韶山市", + "value": "430382" + } + ], + [{ + "label": "珠晖区", + "value": "430405" + }, + { + "label": "雁峰区", + "value": "430406" + }, + { + "label": "石鼓区", + "value": "430407" + }, + { + "label": "蒸湘区", + "value": "430408" + }, + { + "label": "南岳区", + "value": "430412" + }, + { + "label": "衡阳县", + "value": "430421" + }, + { + "label": "衡南县", + "value": "430422" + }, + { + "label": "衡山县", + "value": "430423" + }, + { + "label": "衡东县", + "value": "430424" + }, + { + "label": "祁东县", + "value": "430426" + }, + { + "label": "衡阳综合保税区", + "value": "430471" + }, + { + "label": "湖南衡阳高新技术产业园区", + "value": "430472" + }, + { + "label": "湖南衡阳松木经济开发区", + "value": "430473" + }, + { + "label": "耒阳市", + "value": "430481" + }, + { + "label": "常宁市", + "value": "430482" + } + ], + [{ + "label": "双清区", + "value": "430502" + }, + { + "label": "大祥区", + "value": "430503" + }, + { + "label": "北塔区", + "value": "430511" + }, + { + "label": "邵东县", + "value": "430521" + }, + { + "label": "新邵县", + "value": "430522" + }, + { + "label": "邵阳县", + "value": "430523" + }, + { + "label": "隆回县", + "value": "430524" + }, + { + "label": "洞口县", + "value": "430525" + }, + { + "label": "绥宁县", + "value": "430527" + }, + { + "label": "新宁县", + "value": "430528" + }, + { + "label": "城步苗族自治县", + "value": "430529" + }, + { + "label": "武冈市", + "value": "430581" + } + ], + [{ + "label": "岳阳楼区", + "value": "430602" + }, + { + "label": "云溪区", + "value": "430603" + }, + { + "label": "君山区", + "value": "430611" + }, + { + "label": "岳阳县", + "value": "430621" + }, + { + "label": "华容县", + "value": "430623" + }, + { + "label": "湘阴县", + "value": "430624" + }, + { + "label": "平江县", + "value": "430626" + }, + { + "label": "岳阳市屈原管理区", + "value": "430671" + }, + { + "label": "汨罗市", + "value": "430681" + }, + { + "label": "临湘市", + "value": "430682" + } + ], + [{ + "label": "武陵区", + "value": "430702" + }, + { + "label": "鼎城区", + "value": "430703" + }, + { + "label": "安乡县", + "value": "430721" + }, + { + "label": "汉寿县", + "value": "430722" + }, + { + "label": "澧县", + "value": "430723" + }, + { + "label": "临澧县", + "value": "430724" + }, + { + "label": "桃源县", + "value": "430725" + }, + { + "label": "石门县", + "value": "430726" + }, + { + "label": "常德市西洞庭管理区", + "value": "430771" + }, + { + "label": "津市市", + "value": "430781" + } + ], + [{ + "label": "永定区", + "value": "430802" + }, + { + "label": "武陵源区", + "value": "430811" + }, + { + "label": "慈利县", + "value": "430821" + }, + { + "label": "桑植县", + "value": "430822" + } + ], + [{ + "label": "资阳区", + "value": "430902" + }, + { + "label": "赫山区", + "value": "430903" + }, + { + "label": "南县", + "value": "430921" + }, + { + "label": "桃江县", + "value": "430922" + }, + { + "label": "安化县", + "value": "430923" + }, + { + "label": "益阳市大通湖管理区", + "value": "430971" + }, + { + "label": "湖南益阳高新技术产业园区", + "value": "430972" + }, + { + "label": "沅江市", + "value": "430981" + } + ], + [{ + "label": "北湖区", + "value": "431002" + }, + { + "label": "苏仙区", + "value": "431003" + }, + { + "label": "桂阳县", + "value": "431021" + }, + { + "label": "宜章县", + "value": "431022" + }, + { + "label": "永兴县", + "value": "431023" + }, + { + "label": "嘉禾县", + "value": "431024" + }, + { + "label": "临武县", + "value": "431025" + }, + { + "label": "汝城县", + "value": "431026" + }, + { + "label": "桂东县", + "value": "431027" + }, + { + "label": "安仁县", + "value": "431028" + }, + { + "label": "资兴市", + "value": "431081" + } + ], + [{ + "label": "零陵区", + "value": "431102" + }, + { + "label": "冷水滩区", + "value": "431103" + }, + { + "label": "祁阳县", + "value": "431121" + }, + { + "label": "东安县", + "value": "431122" + }, + { + "label": "双牌县", + "value": "431123" + }, + { + "label": "道县", + "value": "431124" + }, + { + "label": "江永县", + "value": "431125" + }, + { + "label": "宁远县", + "value": "431126" + }, + { + "label": "蓝山县", + "value": "431127" + }, + { + "label": "新田县", + "value": "431128" + }, + { + "label": "江华瑶族自治县", + "value": "431129" + }, + { + "label": "永州经济技术开发区", + "value": "431171" + }, + { + "label": "永州市金洞管理区", + "value": "431172" + }, + { + "label": "永州市回龙圩管理区", + "value": "431173" + } + ], + [{ + "label": "鹤城区", + "value": "431202" + }, + { + "label": "中方县", + "value": "431221" + }, + { + "label": "沅陵县", + "value": "431222" + }, + { + "label": "辰溪县", + "value": "431223" + }, + { + "label": "溆浦县", + "value": "431224" + }, + { + "label": "会同县", + "value": "431225" + }, + { + "label": "麻阳苗族自治县", + "value": "431226" + }, + { + "label": "新晃侗族自治县", + "value": "431227" + }, + { + "label": "芷江侗族自治县", + "value": "431228" + }, + { + "label": "靖州苗族侗族自治县", + "value": "431229" + }, + { + "label": "通道侗族自治县", + "value": "431230" + }, + { + "label": "怀化市洪江管理区", + "value": "431271" + }, + { + "label": "洪江市", + "value": "431281" + } + ], + [{ + "label": "娄星区", + "value": "431302" + }, + { + "label": "双峰县", + "value": "431321" + }, + { + "label": "新化县", + "value": "431322" + }, + { + "label": "冷水江市", + "value": "431381" + }, + { + "label": "涟源市", + "value": "431382" + } + ], + [{ + "label": "吉首市", + "value": "433101" + }, + { + "label": "泸溪县", + "value": "433122" + }, + { + "label": "凤凰县", + "value": "433123" + }, + { + "label": "花垣县", + "value": "433124" + }, + { + "label": "保靖县", + "value": "433125" + }, + { + "label": "古丈县", + "value": "433126" + }, + { + "label": "永顺县", + "value": "433127" + }, + { + "label": "龙山县", + "value": "433130" + }, + { + "label": "湖南吉首经济开发区", + "value": "433172" + }, + { + "label": "湖南永顺经济开发区", + "value": "433173" + } + ] + ], + [ + [{ + "label": "荔湾区", + "value": "440103" + }, + { + "label": "越秀区", + "value": "440104" + }, + { + "label": "海珠区", + "value": "440105" + }, + { + "label": "天河区", + "value": "440106" + }, + { + "label": "白云区", + "value": "440111" + }, + { + "label": "黄埔区", + "value": "440112" + }, + { + "label": "番禺区", + "value": "440113" + }, + { + "label": "花都区", + "value": "440114" + }, + { + "label": "南沙区", + "value": "440115" + }, + { + "label": "从化区", + "value": "440117" + }, + { + "label": "增城区", + "value": "440118" + } + ], + [{ + "label": "武江区", + "value": "440203" + }, + { + "label": "浈江区", + "value": "440204" + }, + { + "label": "曲江区", + "value": "440205" + }, + { + "label": "始兴县", + "value": "440222" + }, + { + "label": "仁化县", + "value": "440224" + }, + { + "label": "翁源县", + "value": "440229" + }, + { + "label": "乳源瑶族自治县", + "value": "440232" + }, + { + "label": "新丰县", + "value": "440233" + }, + { + "label": "乐昌市", + "value": "440281" + }, + { + "label": "南雄市", + "value": "440282" + } + ], + [{ + "label": "罗湖区", + "value": "440303" + }, + { + "label": "福田区", + "value": "440304" + }, + { + "label": "南山区", + "value": "440305" + }, + { + "label": "宝安区", + "value": "440306" + }, + { + "label": "龙岗区", + "value": "440307" + }, + { + "label": "盐田区", + "value": "440308" + }, + { + "label": "龙华区", + "value": "440309" + }, + { + "label": "坪山区", + "value": "440310" + } + ], + [{ + "label": "香洲区", + "value": "440402" + }, + { + "label": "斗门区", + "value": "440403" + }, + { + "label": "金湾区", + "value": "440404" + } + ], + [{ + "label": "龙湖区", + "value": "440507" + }, + { + "label": "金平区", + "value": "440511" + }, + { + "label": "濠江区", + "value": "440512" + }, + { + "label": "潮阳区", + "value": "440513" + }, + { + "label": "潮南区", + "value": "440514" + }, + { + "label": "澄海区", + "value": "440515" + }, + { + "label": "南澳县", + "value": "440523" + } + ], + [{ + "label": "禅城区", + "value": "440604" + }, + { + "label": "南海区", + "value": "440605" + }, + { + "label": "顺德区", + "value": "440606" + }, + { + "label": "三水区", + "value": "440607" + }, + { + "label": "高明区", + "value": "440608" + } + ], + [{ + "label": "蓬江区", + "value": "440703" + }, + { + "label": "江海区", + "value": "440704" + }, + { + "label": "新会区", + "value": "440705" + }, + { + "label": "台山市", + "value": "440781" + }, + { + "label": "开平市", + "value": "440783" + }, + { + "label": "鹤山市", + "value": "440784" + }, + { + "label": "恩平市", + "value": "440785" + } + ], + [{ + "label": "赤坎区", + "value": "440802" + }, + { + "label": "霞山区", + "value": "440803" + }, + { + "label": "坡头区", + "value": "440804" + }, + { + "label": "麻章区", + "value": "440811" + }, + { + "label": "遂溪县", + "value": "440823" + }, + { + "label": "徐闻县", + "value": "440825" + }, + { + "label": "廉江市", + "value": "440881" + }, + { + "label": "雷州市", + "value": "440882" + }, + { + "label": "吴川市", + "value": "440883" + } + ], + [{ + "label": "茂南区", + "value": "440902" + }, + { + "label": "电白区", + "value": "440904" + }, + { + "label": "高州市", + "value": "440981" + }, + { + "label": "化州市", + "value": "440982" + }, + { + "label": "信宜市", + "value": "440983" + } + ], + [{ + "label": "端州区", + "value": "441202" + }, + { + "label": "鼎湖区", + "value": "441203" + }, + { + "label": "高要区", + "value": "441204" + }, + { + "label": "广宁县", + "value": "441223" + }, + { + "label": "怀集县", + "value": "441224" + }, + { + "label": "封开县", + "value": "441225" + }, + { + "label": "德庆县", + "value": "441226" + }, + { + "label": "四会市", + "value": "441284" + } + ], + [{ + "label": "惠城区", + "value": "441302" + }, + { + "label": "惠阳区", + "value": "441303" + }, + { + "label": "博罗县", + "value": "441322" + }, + { + "label": "惠东县", + "value": "441323" + }, + { + "label": "龙门县", + "value": "441324" + } + ], + [{ + "label": "梅江区", + "value": "441402" + }, + { + "label": "梅县区", + "value": "441403" + }, + { + "label": "大埔县", + "value": "441422" + }, + { + "label": "丰顺县", + "value": "441423" + }, + { + "label": "五华县", + "value": "441424" + }, + { + "label": "平远县", + "value": "441426" + }, + { + "label": "蕉岭县", + "value": "441427" + }, + { + "label": "兴宁市", + "value": "441481" + } + ], + [{ + "label": "城区", + "value": "441502" + }, + { + "label": "海丰县", + "value": "441521" + }, + { + "label": "陆河县", + "value": "441523" + }, + { + "label": "陆丰市", + "value": "441581" + } + ], + [{ + "label": "源城区", + "value": "441602" + }, + { + "label": "紫金县", + "value": "441621" + }, + { + "label": "龙川县", + "value": "441622" + }, + { + "label": "连平县", + "value": "441623" + }, + { + "label": "和平县", + "value": "441624" + }, + { + "label": "东源县", + "value": "441625" + } + ], + [{ + "label": "江城区", + "value": "441702" + }, + { + "label": "阳东区", + "value": "441704" + }, + { + "label": "阳西县", + "value": "441721" + }, + { + "label": "阳春市", + "value": "441781" + } + ], + [{ + "label": "清城区", + "value": "441802" + }, + { + "label": "清新区", + "value": "441803" + }, + { + "label": "佛冈县", + "value": "441821" + }, + { + "label": "阳山县", + "value": "441823" + }, + { + "label": "连山壮族瑶族自治县", + "value": "441825" + }, + { + "label": "连南瑶族自治县", + "value": "441826" + }, + { + "label": "英德市", + "value": "441881" + }, + { + "label": "连州市", + "value": "441882" + } + ], + [{ + "label": "东莞市", + "value": "441900" + }], + [{ + "label": "中山市", + "value": "442000" + }], + [{ + "label": "湘桥区", + "value": "445102" + }, + { + "label": "潮安区", + "value": "445103" + }, + { + "label": "饶平县", + "value": "445122" + } + ], + [{ + "label": "榕城区", + "value": "445202" + }, + { + "label": "揭东区", + "value": "445203" + }, + { + "label": "揭西县", + "value": "445222" + }, + { + "label": "惠来县", + "value": "445224" + }, + { + "label": "普宁市", + "value": "445281" + } + ], + [{ + "label": "云城区", + "value": "445302" + }, + { + "label": "云安区", + "value": "445303" + }, + { + "label": "新兴县", + "value": "445321" + }, + { + "label": "郁南县", + "value": "445322" + }, + { + "label": "罗定市", + "value": "445381" + } + ] + ], + [ + [{ + "label": "兴宁区", + "value": "450102" + }, + { + "label": "青秀区", + "value": "450103" + }, + { + "label": "江南区", + "value": "450105" + }, + { + "label": "西乡塘区", + "value": "450107" + }, + { + "label": "良庆区", + "value": "450108" + }, + { + "label": "邕宁区", + "value": "450109" + }, + { + "label": "武鸣区", + "value": "450110" + }, + { + "label": "隆安县", + "value": "450123" + }, + { + "label": "马山县", + "value": "450124" + }, + { + "label": "上林县", + "value": "450125" + }, + { + "label": "宾阳县", + "value": "450126" + }, + { + "label": "横县", + "value": "450127" + } + ], + [{ + "label": "城中区", + "value": "450202" + }, + { + "label": "鱼峰区", + "value": "450203" + }, + { + "label": "柳南区", + "value": "450204" + }, + { + "label": "柳北区", + "value": "450205" + }, + { + "label": "柳江区", + "value": "450206" + }, + { + "label": "柳城县", + "value": "450222" + }, + { + "label": "鹿寨县", + "value": "450223" + }, + { + "label": "融安县", + "value": "450224" + }, + { + "label": "融水苗族自治县", + "value": "450225" + }, + { + "label": "三江侗族自治县", + "value": "450226" + } + ], + [{ + "label": "秀峰区", + "value": "450302" + }, + { + "label": "叠彩区", + "value": "450303" + }, + { + "label": "象山区", + "value": "450304" + }, + { + "label": "七星区", + "value": "450305" + }, + { + "label": "雁山区", + "value": "450311" + }, + { + "label": "临桂区", + "value": "450312" + }, + { + "label": "阳朔县", + "value": "450321" + }, + { + "label": "灵川县", + "value": "450323" + }, + { + "label": "全州县", + "value": "450324" + }, + { + "label": "兴安县", + "value": "450325" + }, + { + "label": "永福县", + "value": "450326" + }, + { + "label": "灌阳县", + "value": "450327" + }, + { + "label": "龙胜各族自治县", + "value": "450328" + }, + { + "label": "资源县", + "value": "450329" + }, + { + "label": "平乐县", + "value": "450330" + }, + { + "label": "荔浦县", + "value": "450331" + }, + { + "label": "恭城瑶族自治县", + "value": "450332" + } + ], + [{ + "label": "万秀区", + "value": "450403" + }, + { + "label": "长洲区", + "value": "450405" + }, + { + "label": "龙圩区", + "value": "450406" + }, + { + "label": "苍梧县", + "value": "450421" + }, + { + "label": "藤县", + "value": "450422" + }, + { + "label": "蒙山县", + "value": "450423" + }, + { + "label": "岑溪市", + "value": "450481" + } + ], + [{ + "label": "海城区", + "value": "450502" + }, + { + "label": "银海区", + "value": "450503" + }, + { + "label": "铁山港区", + "value": "450512" + }, + { + "label": "合浦县", + "value": "450521" + } + ], + [{ + "label": "港口区", + "value": "450602" + }, + { + "label": "防城区", + "value": "450603" + }, + { + "label": "上思县", + "value": "450621" + }, + { + "label": "东兴市", + "value": "450681" + } + ], + [{ + "label": "钦南区", + "value": "450702" + }, + { + "label": "钦北区", + "value": "450703" + }, + { + "label": "灵山县", + "value": "450721" + }, + { + "label": "浦北县", + "value": "450722" + } + ], + [{ + "label": "港北区", + "value": "450802" + }, + { + "label": "港南区", + "value": "450803" + }, + { + "label": "覃塘区", + "value": "450804" + }, + { + "label": "平南县", + "value": "450821" + }, + { + "label": "桂平市", + "value": "450881" + } + ], + [{ + "label": "玉州区", + "value": "450902" + }, + { + "label": "福绵区", + "value": "450903" + }, + { + "label": "容县", + "value": "450921" + }, + { + "label": "陆川县", + "value": "450922" + }, + { + "label": "博白县", + "value": "450923" + }, + { + "label": "兴业县", + "value": "450924" + }, + { + "label": "北流市", + "value": "450981" + } + ], + [{ + "label": "右江区", + "value": "451002" + }, + { + "label": "田阳县", + "value": "451021" + }, + { + "label": "田东县", + "value": "451022" + }, + { + "label": "平果县", + "value": "451023" + }, + { + "label": "德保县", + "value": "451024" + }, + { + "label": "那坡县", + "value": "451026" + }, + { + "label": "凌云县", + "value": "451027" + }, + { + "label": "乐业县", + "value": "451028" + }, + { + "label": "田林县", + "value": "451029" + }, + { + "label": "西林县", + "value": "451030" + }, + { + "label": "隆林各族自治县", + "value": "451031" + }, + { + "label": "靖西市", + "value": "451081" + } + ], + [{ + "label": "八步区", + "value": "451102" + }, + { + "label": "平桂区", + "value": "451103" + }, + { + "label": "昭平县", + "value": "451121" + }, + { + "label": "钟山县", + "value": "451122" + }, + { + "label": "富川瑶族自治县", + "value": "451123" + } + ], + [{ + "label": "金城江区", + "value": "451202" + }, + { + "label": "宜州区", + "value": "451203" + }, + { + "label": "南丹县", + "value": "451221" + }, + { + "label": "天峨县", + "value": "451222" + }, + { + "label": "凤山县", + "value": "451223" + }, + { + "label": "东兰县", + "value": "451224" + }, + { + "label": "罗城仫佬族自治县", + "value": "451225" + }, + { + "label": "环江毛南族自治县", + "value": "451226" + }, + { + "label": "巴马瑶族自治县", + "value": "451227" + }, + { + "label": "都安瑶族自治县", + "value": "451228" + }, + { + "label": "大化瑶族自治县", + "value": "451229" + } + ], + [{ + "label": "兴宾区", + "value": "451302" + }, + { + "label": "忻城县", + "value": "451321" + }, + { + "label": "象州县", + "value": "451322" + }, + { + "label": "武宣县", + "value": "451323" + }, + { + "label": "金秀瑶族自治县", + "value": "451324" + }, + { + "label": "合山市", + "value": "451381" + } + ], + [{ + "label": "江州区", + "value": "451402" + }, + { + "label": "扶绥县", + "value": "451421" + }, + { + "label": "宁明县", + "value": "451422" + }, + { + "label": "龙州县", + "value": "451423" + }, + { + "label": "大新县", + "value": "451424" + }, + { + "label": "天等县", + "value": "451425" + }, + { + "label": "凭祥市", + "value": "451481" + } + ] + ], + [ + [{ + "label": "秀英区", + "value": "460105" + }, + { + "label": "龙华区", + "value": "460106" + }, + { + "label": "琼山区", + "value": "460107" + }, + { + "label": "美兰区", + "value": "460108" + } + ], + [{ + "label": "海棠区", + "value": "460202" + }, + { + "label": "吉阳区", + "value": "460203" + }, + { + "label": "天涯区", + "value": "460204" + }, + { + "label": "崖州区", + "value": "460205" + } + ], + [{ + "label": "西沙群岛", + "value": "460321" + }, + { + "label": "南沙群岛", + "value": "460322" + }, + { + "label": "中沙群岛的岛礁及其海域", + "value": "460323" + } + ], + [{ + "label": "儋州市", + "value": "460400" + }], + [{ + "label": "五指山市", + "value": "469001" + }, + { + "label": "琼海市", + "value": "469002" + }, + { + "label": "文昌市", + "value": "469005" + }, + { + "label": "万宁市", + "value": "469006" + }, + { + "label": "东方市", + "value": "469007" + }, + { + "label": "定安县", + "value": "469021" + }, + { + "label": "屯昌县", + "value": "469022" + }, + { + "label": "澄迈县", + "value": "469023" + }, + { + "label": "临高县", + "value": "469024" + }, + { + "label": "白沙黎族自治县", + "value": "469025" + }, + { + "label": "昌江黎族自治县", + "value": "469026" + }, + { + "label": "乐东黎族自治县", + "value": "469027" + }, + { + "label": "陵水黎族自治县", + "value": "469028" + }, + { + "label": "保亭黎族苗族自治县", + "value": "469029" + }, + { + "label": "琼中黎族苗族自治县", + "value": "469030" + } + ] + ], + [ + [{ + "label": "万州区", + "value": "500101" + }, + { + "label": "涪陵区", + "value": "500102" + }, + { + "label": "渝中区", + "value": "500103" + }, + { + "label": "大渡口区", + "value": "500104" + }, + { + "label": "江北区", + "value": "500105" + }, + { + "label": "沙坪坝区", + "value": "500106" + }, + { + "label": "九龙坡区", + "value": "500107" + }, + { + "label": "南岸区", + "value": "500108" + }, + { + "label": "北碚区", + "value": "500109" + }, + { + "label": "綦江区", + "value": "500110" + }, + { + "label": "大足区", + "value": "500111" + }, + { + "label": "渝北区", + "value": "500112" + }, + { + "label": "巴南区", + "value": "500113" + }, + { + "label": "黔江区", + "value": "500114" + }, + { + "label": "长寿区", + "value": "500115" + }, + { + "label": "江津区", + "value": "500116" + }, + { + "label": "合川区", + "value": "500117" + }, + { + "label": "永川区", + "value": "500118" + }, + { + "label": "南川区", + "value": "500119" + }, + { + "label": "璧山区", + "value": "500120" + }, + { + "label": "铜梁区", + "value": "500151" + }, + { + "label": "潼南区", + "value": "500152" + }, + { + "label": "荣昌区", + "value": "500153" + }, + { + "label": "开州区", + "value": "500154" + }, + { + "label": "梁平区", + "value": "500155" + }, + { + "label": "武隆区", + "value": "500156" + } + ], + [{ + "label": "城口县", + "value": "500229" + }, + { + "label": "丰都县", + "value": "500230" + }, + { + "label": "垫江县", + "value": "500231" + }, + { + "label": "忠县", + "value": "500233" + }, + { + "label": "云阳县", + "value": "500235" + }, + { + "label": "奉节县", + "value": "500236" + }, + { + "label": "巫山县", + "value": "500237" + }, + { + "label": "巫溪县", + "value": "500238" + }, + { + "label": "石柱土家族自治县", + "value": "500240" + }, + { + "label": "秀山土家族苗族自治县", + "value": "500241" + }, + { + "label": "酉阳土家族苗族自治县", + "value": "500242" + }, + { + "label": "彭水苗族土家族自治县", + "value": "500243" + } + ] + ], + [ + [{ + "label": "锦江区", + "value": "510104" + }, + { + "label": "青羊区", + "value": "510105" + }, + { + "label": "金牛区", + "value": "510106" + }, + { + "label": "武侯区", + "value": "510107" + }, + { + "label": "成华区", + "value": "510108" + }, + { + "label": "龙泉驿区", + "value": "510112" + }, + { + "label": "青白江区", + "value": "510113" + }, + { + "label": "新都区", + "value": "510114" + }, + { + "label": "温江区", + "value": "510115" + }, + { + "label": "双流区", + "value": "510116" + }, + { + "label": "郫都区", + "value": "510117" + }, + { + "label": "金堂县", + "value": "510121" + }, + { + "label": "大邑县", + "value": "510129" + }, + { + "label": "蒲江县", + "value": "510131" + }, + { + "label": "新津县", + "value": "510132" + }, + { + "label": "都江堰市", + "value": "510181" + }, + { + "label": "彭州市", + "value": "510182" + }, + { + "label": "邛崃市", + "value": "510183" + }, + { + "label": "崇州市", + "value": "510184" + }, + { + "label": "简阳市", + "value": "510185" + } + ], + [{ + "label": "自流井区", + "value": "510302" + }, + { + "label": "贡井区", + "value": "510303" + }, + { + "label": "大安区", + "value": "510304" + }, + { + "label": "沿滩区", + "value": "510311" + }, + { + "label": "荣县", + "value": "510321" + }, + { + "label": "富顺县", + "value": "510322" + } + ], + [{ + "label": "东区", + "value": "510402" + }, + { + "label": "西区", + "value": "510403" + }, + { + "label": "仁和区", + "value": "510411" + }, + { + "label": "米易县", + "value": "510421" + }, + { + "label": "盐边县", + "value": "510422" + } + ], + [{ + "label": "江阳区", + "value": "510502" + }, + { + "label": "纳溪区", + "value": "510503" + }, + { + "label": "龙马潭区", + "value": "510504" + }, + { + "label": "泸县", + "value": "510521" + }, + { + "label": "合江县", + "value": "510522" + }, + { + "label": "叙永县", + "value": "510524" + }, + { + "label": "古蔺县", + "value": "510525" + } + ], + [{ + "label": "旌阳区", + "value": "510603" + }, + { + "label": "罗江区", + "value": "510604" + }, + { + "label": "中江县", + "value": "510623" + }, + { + "label": "广汉市", + "value": "510681" + }, + { + "label": "什邡市", + "value": "510682" + }, + { + "label": "绵竹市", + "value": "510683" + } + ], + [{ + "label": "涪城区", + "value": "510703" + }, + { + "label": "游仙区", + "value": "510704" + }, + { + "label": "安州区", + "value": "510705" + }, + { + "label": "三台县", + "value": "510722" + }, + { + "label": "盐亭县", + "value": "510723" + }, + { + "label": "梓潼县", + "value": "510725" + }, + { + "label": "北川羌族自治县", + "value": "510726" + }, + { + "label": "平武县", + "value": "510727" + }, + { + "label": "江油市", + "value": "510781" + } + ], + [{ + "label": "利州区", + "value": "510802" + }, + { + "label": "昭化区", + "value": "510811" + }, + { + "label": "朝天区", + "value": "510812" + }, + { + "label": "旺苍县", + "value": "510821" + }, + { + "label": "青川县", + "value": "510822" + }, + { + "label": "剑阁县", + "value": "510823" + }, + { + "label": "苍溪县", + "value": "510824" + } + ], + [{ + "label": "船山区", + "value": "510903" + }, + { + "label": "安居区", + "value": "510904" + }, + { + "label": "蓬溪县", + "value": "510921" + }, + { + "label": "射洪县", + "value": "510922" + }, + { + "label": "大英县", + "value": "510923" + } + ], + [{ + "label": "市中区", + "value": "511002" + }, + { + "label": "东兴区", + "value": "511011" + }, + { + "label": "威远县", + "value": "511024" + }, + { + "label": "资中县", + "value": "511025" + }, + { + "label": "内江经济开发区", + "value": "511071" + }, + { + "label": "隆昌市", + "value": "511083" + } + ], + [{ + "label": "市中区", + "value": "511102" + }, + { + "label": "沙湾区", + "value": "511111" + }, + { + "label": "五通桥区", + "value": "511112" + }, + { + "label": "金口河区", + "value": "511113" + }, + { + "label": "犍为县", + "value": "511123" + }, + { + "label": "井研县", + "value": "511124" + }, + { + "label": "夹江县", + "value": "511126" + }, + { + "label": "沐川县", + "value": "511129" + }, + { + "label": "峨边彝族自治县", + "value": "511132" + }, + { + "label": "马边彝族自治县", + "value": "511133" + }, + { + "label": "峨眉山市", + "value": "511181" + } + ], + [{ + "label": "顺庆区", + "value": "511302" + }, + { + "label": "高坪区", + "value": "511303" + }, + { + "label": "嘉陵区", + "value": "511304" + }, + { + "label": "南部县", + "value": "511321" + }, + { + "label": "营山县", + "value": "511322" + }, + { + "label": "蓬安县", + "value": "511323" + }, + { + "label": "仪陇县", + "value": "511324" + }, + { + "label": "西充县", + "value": "511325" + }, + { + "label": "阆中市", + "value": "511381" + } + ], + [{ + "label": "东坡区", + "value": "511402" + }, + { + "label": "彭山区", + "value": "511403" + }, + { + "label": "仁寿县", + "value": "511421" + }, + { + "label": "洪雅县", + "value": "511423" + }, + { + "label": "丹棱县", + "value": "511424" + }, + { + "label": "青神县", + "value": "511425" + } + ], + [{ + "label": "翠屏区", + "value": "511502" + }, + { + "label": "南溪区", + "value": "511503" + }, + { + "label": "宜宾县", + "value": "511521" + }, + { + "label": "江安县", + "value": "511523" + }, + { + "label": "长宁县", + "value": "511524" + }, + { + "label": "高县", + "value": "511525" + }, + { + "label": "珙县", + "value": "511526" + }, + { + "label": "筠连县", + "value": "511527" + }, + { + "label": "兴文县", + "value": "511528" + }, + { + "label": "屏山县", + "value": "511529" + } + ], + [{ + "label": "广安区", + "value": "511602" + }, + { + "label": "前锋区", + "value": "511603" + }, + { + "label": "岳池县", + "value": "511621" + }, + { + "label": "武胜县", + "value": "511622" + }, + { + "label": "邻水县", + "value": "511623" + }, + { + "label": "华蓥市", + "value": "511681" + } + ], + [{ + "label": "通川区", + "value": "511702" + }, + { + "label": "达川区", + "value": "511703" + }, + { + "label": "宣汉县", + "value": "511722" + }, + { + "label": "开江县", + "value": "511723" + }, + { + "label": "大竹县", + "value": "511724" + }, + { + "label": "渠县", + "value": "511725" + }, + { + "label": "达州经济开发区", + "value": "511771" + }, + { + "label": "万源市", + "value": "511781" + } + ], + [{ + "label": "雨城区", + "value": "511802" + }, + { + "label": "名山区", + "value": "511803" + }, + { + "label": "荥经县", + "value": "511822" + }, + { + "label": "汉源县", + "value": "511823" + }, + { + "label": "石棉县", + "value": "511824" + }, + { + "label": "天全县", + "value": "511825" + }, + { + "label": "芦山县", + "value": "511826" + }, + { + "label": "宝兴县", + "value": "511827" + } + ], + [{ + "label": "巴州区", + "value": "511902" + }, + { + "label": "恩阳区", + "value": "511903" + }, + { + "label": "通江县", + "value": "511921" + }, + { + "label": "南江县", + "value": "511922" + }, + { + "label": "平昌县", + "value": "511923" + }, + { + "label": "巴中经济开发区", + "value": "511971" + } + ], + [{ + "label": "雁江区", + "value": "512002" + }, + { + "label": "安岳县", + "value": "512021" + }, + { + "label": "乐至县", + "value": "512022" + } + ], + [{ + "label": "马尔康市", + "value": "513201" + }, + { + "label": "汶川县", + "value": "513221" + }, + { + "label": "理县", + "value": "513222" + }, + { + "label": "茂县", + "value": "513223" + }, + { + "label": "松潘县", + "value": "513224" + }, + { + "label": "九寨沟县", + "value": "513225" + }, + { + "label": "金川县", + "value": "513226" + }, + { + "label": "小金县", + "value": "513227" + }, + { + "label": "黑水县", + "value": "513228" + }, + { + "label": "壤塘县", + "value": "513230" + }, + { + "label": "阿坝县", + "value": "513231" + }, + { + "label": "若尔盖县", + "value": "513232" + }, + { + "label": "红原县", + "value": "513233" + } + ], + [{ + "label": "康定市", + "value": "513301" + }, + { + "label": "泸定县", + "value": "513322" + }, + { + "label": "丹巴县", + "value": "513323" + }, + { + "label": "九龙县", + "value": "513324" + }, + { + "label": "雅江县", + "value": "513325" + }, + { + "label": "道孚县", + "value": "513326" + }, + { + "label": "炉霍县", + "value": "513327" + }, + { + "label": "甘孜县", + "value": "513328" + }, + { + "label": "新龙县", + "value": "513329" + }, + { + "label": "德格县", + "value": "513330" + }, + { + "label": "白玉县", + "value": "513331" + }, + { + "label": "石渠县", + "value": "513332" + }, + { + "label": "色达县", + "value": "513333" + }, + { + "label": "理塘县", + "value": "513334" + }, + { + "label": "巴塘县", + "value": "513335" + }, + { + "label": "乡城县", + "value": "513336" + }, + { + "label": "稻城县", + "value": "513337" + }, + { + "label": "得荣县", + "value": "513338" + } + ], + [{ + "label": "西昌市", + "value": "513401" + }, + { + "label": "木里藏族自治县", + "value": "513422" + }, + { + "label": "盐源县", + "value": "513423" + }, + { + "label": "德昌县", + "value": "513424" + }, + { + "label": "会理县", + "value": "513425" + }, + { + "label": "会东县", + "value": "513426" + }, + { + "label": "宁南县", + "value": "513427" + }, + { + "label": "普格县", + "value": "513428" + }, + { + "label": "布拖县", + "value": "513429" + }, + { + "label": "金阳县", + "value": "513430" + }, + { + "label": "昭觉县", + "value": "513431" + }, + { + "label": "喜德县", + "value": "513432" + }, + { + "label": "冕宁县", + "value": "513433" + }, + { + "label": "越西县", + "value": "513434" + }, + { + "label": "甘洛县", + "value": "513435" + }, + { + "label": "美姑县", + "value": "513436" + }, + { + "label": "雷波县", + "value": "513437" + } + ] + ], + [ + [{ + "label": "南明区", + "value": "520102" + }, + { + "label": "云岩区", + "value": "520103" + }, + { + "label": "花溪区", + "value": "520111" + }, + { + "label": "乌当区", + "value": "520112" + }, + { + "label": "白云区", + "value": "520113" + }, + { + "label": "观山湖区", + "value": "520115" + }, + { + "label": "开阳县", + "value": "520121" + }, + { + "label": "息烽县", + "value": "520122" + }, + { + "label": "修文县", + "value": "520123" + }, + { + "label": "清镇市", + "value": "520181" + } + ], + [{ + "label": "钟山区", + "value": "520201" + }, + { + "label": "六枝特区", + "value": "520203" + }, + { + "label": "水城县", + "value": "520221" + }, + { + "label": "盘州市", + "value": "520281" + } + ], + [{ + "label": "红花岗区", + "value": "520302" + }, + { + "label": "汇川区", + "value": "520303" + }, + { + "label": "播州区", + "value": "520304" + }, + { + "label": "桐梓县", + "value": "520322" + }, + { + "label": "绥阳县", + "value": "520323" + }, + { + "label": "正安县", + "value": "520324" + }, + { + "label": "道真仡佬族苗族自治县", + "value": "520325" + }, + { + "label": "务川仡佬族苗族自治县", + "value": "520326" + }, + { + "label": "凤冈县", + "value": "520327" + }, + { + "label": "湄潭县", + "value": "520328" + }, + { + "label": "余庆县", + "value": "520329" + }, + { + "label": "习水县", + "value": "520330" + }, + { + "label": "赤水市", + "value": "520381" + }, + { + "label": "仁怀市", + "value": "520382" + } + ], + [{ + "label": "西秀区", + "value": "520402" + }, + { + "label": "平坝区", + "value": "520403" + }, + { + "label": "普定县", + "value": "520422" + }, + { + "label": "镇宁布依族苗族自治县", + "value": "520423" + }, + { + "label": "关岭布依族苗族自治县", + "value": "520424" + }, + { + "label": "紫云苗族布依族自治县", + "value": "520425" + } + ], + [{ + "label": "七星关区", + "value": "520502" + }, + { + "label": "大方县", + "value": "520521" + }, + { + "label": "黔西县", + "value": "520522" + }, + { + "label": "金沙县", + "value": "520523" + }, + { + "label": "织金县", + "value": "520524" + }, + { + "label": "纳雍县", + "value": "520525" + }, + { + "label": "威宁彝族回族苗族自治县", + "value": "520526" + }, + { + "label": "赫章县", + "value": "520527" + } + ], + [{ + "label": "碧江区", + "value": "520602" + }, + { + "label": "万山区", + "value": "520603" + }, + { + "label": "江口县", + "value": "520621" + }, + { + "label": "玉屏侗族自治县", + "value": "520622" + }, + { + "label": "石阡县", + "value": "520623" + }, + { + "label": "思南县", + "value": "520624" + }, + { + "label": "印江土家族苗族自治县", + "value": "520625" + }, + { + "label": "德江县", + "value": "520626" + }, + { + "label": "沿河土家族自治县", + "value": "520627" + }, + { + "label": "松桃苗族自治县", + "value": "520628" + } + ], + [{ + "label": "兴义市", + "value": "522301" + }, + { + "label": "兴仁县", + "value": "522322" + }, + { + "label": "普安县", + "value": "522323" + }, + { + "label": "晴隆县", + "value": "522324" + }, + { + "label": "贞丰县", + "value": "522325" + }, + { + "label": "望谟县", + "value": "522326" + }, + { + "label": "册亨县", + "value": "522327" + }, + { + "label": "安龙县", + "value": "522328" + } + ], + [{ + "label": "凯里市", + "value": "522601" + }, + { + "label": "黄平县", + "value": "522622" + }, + { + "label": "施秉县", + "value": "522623" + }, + { + "label": "三穗县", + "value": "522624" + }, + { + "label": "镇远县", + "value": "522625" + }, + { + "label": "岑巩县", + "value": "522626" + }, + { + "label": "天柱县", + "value": "522627" + }, + { + "label": "锦屏县", + "value": "522628" + }, + { + "label": "剑河县", + "value": "522629" + }, + { + "label": "台江县", + "value": "522630" + }, + { + "label": "黎平县", + "value": "522631" + }, + { + "label": "榕江县", + "value": "522632" + }, + { + "label": "从江县", + "value": "522633" + }, + { + "label": "雷山县", + "value": "522634" + }, + { + "label": "麻江县", + "value": "522635" + }, + { + "label": "丹寨县", + "value": "522636" + } + ], + [{ + "label": "都匀市", + "value": "522701" + }, + { + "label": "福泉市", + "value": "522702" + }, + { + "label": "荔波县", + "value": "522722" + }, + { + "label": "贵定县", + "value": "522723" + }, + { + "label": "瓮安县", + "value": "522725" + }, + { + "label": "独山县", + "value": "522726" + }, + { + "label": "平塘县", + "value": "522727" + }, + { + "label": "罗甸县", + "value": "522728" + }, + { + "label": "长顺县", + "value": "522729" + }, + { + "label": "龙里县", + "value": "522730" + }, + { + "label": "惠水县", + "value": "522731" + }, + { + "label": "三都水族自治县", + "value": "522732" + } + ] + ], + [ + [{ + "label": "五华区", + "value": "530102" + }, + { + "label": "盘龙区", + "value": "530103" + }, + { + "label": "官渡区", + "value": "530111" + }, + { + "label": "西山区", + "value": "530112" + }, + { + "label": "东川区", + "value": "530113" + }, + { + "label": "呈贡区", + "value": "530114" + }, + { + "label": "晋宁区", + "value": "530115" + }, + { + "label": "富民县", + "value": "530124" + }, + { + "label": "宜良县", + "value": "530125" + }, + { + "label": "石林彝族自治县", + "value": "530126" + }, + { + "label": "嵩明县", + "value": "530127" + }, + { + "label": "禄劝彝族苗族自治县", + "value": "530128" + }, + { + "label": "寻甸回族彝族自治县", + "value": "530129" + }, + { + "label": "安宁市", + "value": "530181" + } + ], + [{ + "label": "麒麟区", + "value": "530302" + }, + { + "label": "沾益区", + "value": "530303" + }, + { + "label": "马龙县", + "value": "530321" + }, + { + "label": "陆良县", + "value": "530322" + }, + { + "label": "师宗县", + "value": "530323" + }, + { + "label": "罗平县", + "value": "530324" + }, + { + "label": "富源县", + "value": "530325" + }, + { + "label": "会泽县", + "value": "530326" + }, + { + "label": "宣威市", + "value": "530381" + } + ], + [{ + "label": "红塔区", + "value": "530402" + }, + { + "label": "江川区", + "value": "530403" + }, + { + "label": "澄江县", + "value": "530422" + }, + { + "label": "通海县", + "value": "530423" + }, + { + "label": "华宁县", + "value": "530424" + }, + { + "label": "易门县", + "value": "530425" + }, + { + "label": "峨山彝族自治县", + "value": "530426" + }, + { + "label": "新平彝族傣族自治县", + "value": "530427" + }, + { + "label": "元江哈尼族彝族傣族自治县", + "value": "530428" + } + ], + [{ + "label": "隆阳区", + "value": "530502" + }, + { + "label": "施甸县", + "value": "530521" + }, + { + "label": "龙陵县", + "value": "530523" + }, + { + "label": "昌宁县", + "value": "530524" + }, + { + "label": "腾冲市", + "value": "530581" + } + ], + [{ + "label": "昭阳区", + "value": "530602" + }, + { + "label": "鲁甸县", + "value": "530621" + }, + { + "label": "巧家县", + "value": "530622" + }, + { + "label": "盐津县", + "value": "530623" + }, + { + "label": "大关县", + "value": "530624" + }, + { + "label": "永善县", + "value": "530625" + }, + { + "label": "绥江县", + "value": "530626" + }, + { + "label": "镇雄县", + "value": "530627" + }, + { + "label": "彝良县", + "value": "530628" + }, + { + "label": "威信县", + "value": "530629" + }, + { + "label": "水富县", + "value": "530630" + } + ], + [{ + "label": "古城区", + "value": "530702" + }, + { + "label": "玉龙纳西族自治县", + "value": "530721" + }, + { + "label": "永胜县", + "value": "530722" + }, + { + "label": "华坪县", + "value": "530723" + }, + { + "label": "宁蒗彝族自治县", + "value": "530724" + } + ], + [{ + "label": "思茅区", + "value": "530802" + }, + { + "label": "宁洱哈尼族彝族自治县", + "value": "530821" + }, + { + "label": "墨江哈尼族自治县", + "value": "530822" + }, + { + "label": "景东彝族自治县", + "value": "530823" + }, + { + "label": "景谷傣族彝族自治县", + "value": "530824" + }, + { + "label": "镇沅彝族哈尼族拉祜族自治县", + "value": "530825" + }, + { + "label": "江城哈尼族彝族自治县", + "value": "530826" + }, + { + "label": "孟连傣族拉祜族佤族自治县", + "value": "530827" + }, + { + "label": "澜沧拉祜族自治县", + "value": "530828" + }, + { + "label": "西盟佤族自治县", + "value": "530829" + } + ], + [{ + "label": "临翔区", + "value": "530902" + }, + { + "label": "凤庆县", + "value": "530921" + }, + { + "label": "云县", + "value": "530922" + }, + { + "label": "永德县", + "value": "530923" + }, + { + "label": "镇康县", + "value": "530924" + }, + { + "label": "双江拉祜族佤族布朗族傣族自治县", + "value": "530925" + }, + { + "label": "耿马傣族佤族自治县", + "value": "530926" + }, + { + "label": "沧源佤族自治县", + "value": "530927" + } + ], + [{ + "label": "楚雄市", + "value": "532301" + }, + { + "label": "双柏县", + "value": "532322" + }, + { + "label": "牟定县", + "value": "532323" + }, + { + "label": "南华县", + "value": "532324" + }, + { + "label": "姚安县", + "value": "532325" + }, + { + "label": "大姚县", + "value": "532326" + }, + { + "label": "永仁县", + "value": "532327" + }, + { + "label": "元谋县", + "value": "532328" + }, + { + "label": "武定县", + "value": "532329" + }, + { + "label": "禄丰县", + "value": "532331" + } + ], + [{ + "label": "个旧市", + "value": "532501" + }, + { + "label": "开远市", + "value": "532502" + }, + { + "label": "蒙自市", + "value": "532503" + }, + { + "label": "弥勒市", + "value": "532504" + }, + { + "label": "屏边苗族自治县", + "value": "532523" + }, + { + "label": "建水县", + "value": "532524" + }, + { + "label": "石屏县", + "value": "532525" + }, + { + "label": "泸西县", + "value": "532527" + }, + { + "label": "元阳县", + "value": "532528" + }, + { + "label": "红河县", + "value": "532529" + }, + { + "label": "金平苗族瑶族傣族自治县", + "value": "532530" + }, + { + "label": "绿春县", + "value": "532531" + }, + { + "label": "河口瑶族自治县", + "value": "532532" + } + ], + [{ + "label": "文山市", + "value": "532601" + }, + { + "label": "砚山县", + "value": "532622" + }, + { + "label": "西畴县", + "value": "532623" + }, + { + "label": "麻栗坡县", + "value": "532624" + }, + { + "label": "马关县", + "value": "532625" + }, + { + "label": "丘北县", + "value": "532626" + }, + { + "label": "广南县", + "value": "532627" + }, + { + "label": "富宁县", + "value": "532628" + } + ], + [{ + "label": "景洪市", + "value": "532801" + }, + { + "label": "勐海县", + "value": "532822" + }, + { + "label": "勐腊县", + "value": "532823" + } + ], + [{ + "label": "大理市", + "value": "532901" + }, + { + "label": "漾濞彝族自治县", + "value": "532922" + }, + { + "label": "祥云县", + "value": "532923" + }, + { + "label": "宾川县", + "value": "532924" + }, + { + "label": "弥渡县", + "value": "532925" + }, + { + "label": "南涧彝族自治县", + "value": "532926" + }, + { + "label": "巍山彝族回族自治县", + "value": "532927" + }, + { + "label": "永平县", + "value": "532928" + }, + { + "label": "云龙县", + "value": "532929" + }, + { + "label": "洱源县", + "value": "532930" + }, + { + "label": "剑川县", + "value": "532931" + }, + { + "label": "鹤庆县", + "value": "532932" + } + ], + [{ + "label": "瑞丽市", + "value": "533102" + }, + { + "label": "芒市", + "value": "533103" + }, + { + "label": "梁河县", + "value": "533122" + }, + { + "label": "盈江县", + "value": "533123" + }, + { + "label": "陇川县", + "value": "533124" + } + ], + [{ + "label": "泸水市", + "value": "533301" + }, + { + "label": "福贡县", + "value": "533323" + }, + { + "label": "贡山独龙族怒族自治县", + "value": "533324" + }, + { + "label": "兰坪白族普米族自治县", + "value": "533325" + } + ], + [{ + "label": "香格里拉市", + "value": "533401" + }, + { + "label": "德钦县", + "value": "533422" + }, + { + "label": "维西傈僳族自治县", + "value": "533423" + } + ] + ], + [ + [{ + "label": "城关区", + "value": "540102" + }, + { + "label": "堆龙德庆区", + "value": "540103" + }, + { + "label": "林周县", + "value": "540121" + }, + { + "label": "当雄县", + "value": "540122" + }, + { + "label": "尼木县", + "value": "540123" + }, + { + "label": "曲水县", + "value": "540124" + }, + { + "label": "达孜县", + "value": "540126" + }, + { + "label": "墨竹工卡县", + "value": "540127" + }, + { + "label": "格尔木藏青工业园区", + "value": "540171" + }, + { + "label": "拉萨经济技术开发区", + "value": "540172" + }, + { + "label": "西藏文化旅游创意园区", + "value": "540173" + }, + { + "label": "达孜工业园区", + "value": "540174" + } + ], + [{ + "label": "桑珠孜区", + "value": "540202" + }, + { + "label": "南木林县", + "value": "540221" + }, + { + "label": "江孜县", + "value": "540222" + }, + { + "label": "定日县", + "value": "540223" + }, + { + "label": "萨迦县", + "value": "540224" + }, + { + "label": "拉孜县", + "value": "540225" + }, + { + "label": "昂仁县", + "value": "540226" + }, + { + "label": "谢通门县", + "value": "540227" + }, + { + "label": "白朗县", + "value": "540228" + }, + { + "label": "仁布县", + "value": "540229" + }, + { + "label": "康马县", + "value": "540230" + }, + { + "label": "定结县", + "value": "540231" + }, + { + "label": "仲巴县", + "value": "540232" + }, + { + "label": "亚东县", + "value": "540233" + }, + { + "label": "吉隆县", + "value": "540234" + }, + { + "label": "聂拉木县", + "value": "540235" + }, + { + "label": "萨嘎县", + "value": "540236" + }, + { + "label": "岗巴县", + "value": "540237" + } + ], + [{ + "label": "卡若区", + "value": "540302" + }, + { + "label": "江达县", + "value": "540321" + }, + { + "label": "贡觉县", + "value": "540322" + }, + { + "label": "类乌齐县", + "value": "540323" + }, + { + "label": "丁青县", + "value": "540324" + }, + { + "label": "察雅县", + "value": "540325" + }, + { + "label": "八宿县", + "value": "540326" + }, + { + "label": "左贡县", + "value": "540327" + }, + { + "label": "芒康县", + "value": "540328" + }, + { + "label": "洛隆县", + "value": "540329" + }, + { + "label": "边坝县", + "value": "540330" + } + ], + [{ + "label": "巴宜区", + "value": "540402" + }, + { + "label": "工布江达县", + "value": "540421" + }, + { + "label": "米林县", + "value": "540422" + }, + { + "label": "墨脱县", + "value": "540423" + }, + { + "label": "波密县", + "value": "540424" + }, + { + "label": "察隅县", + "value": "540425" + }, + { + "label": "朗县", + "value": "540426" + } + ], + [{ + "label": "乃东区", + "value": "540502" + }, + { + "label": "扎囊县", + "value": "540521" + }, + { + "label": "贡嘎县", + "value": "540522" + }, + { + "label": "桑日县", + "value": "540523" + }, + { + "label": "琼结县", + "value": "540524" + }, + { + "label": "曲松县", + "value": "540525" + }, + { + "label": "措美县", + "value": "540526" + }, + { + "label": "洛扎县", + "value": "540527" + }, + { + "label": "加查县", + "value": "540528" + }, + { + "label": "隆子县", + "value": "540529" + }, + { + "label": "错那县", + "value": "540530" + }, + { + "label": "浪卡子县", + "value": "540531" + } + ], + [{ + "label": "那曲县", + "value": "542421" + }, + { + "label": "嘉黎县", + "value": "542422" + }, + { + "label": "比如县", + "value": "542423" + }, + { + "label": "聂荣县", + "value": "542424" + }, + { + "label": "安多县", + "value": "542425" + }, + { + "label": "申扎县", + "value": "542426" + }, + { + "label": "索县", + "value": "542427" + }, + { + "label": "班戈县", + "value": "542428" + }, + { + "label": "巴青县", + "value": "542429" + }, + { + "label": "尼玛县", + "value": "542430" + }, + { + "label": "双湖县", + "value": "542431" + } + ], + [{ + "label": "普兰县", + "value": "542521" + }, + { + "label": "札达县", + "value": "542522" + }, + { + "label": "噶尔县", + "value": "542523" + }, + { + "label": "日土县", + "value": "542524" + }, + { + "label": "革吉县", + "value": "542525" + }, + { + "label": "改则县", + "value": "542526" + }, + { + "label": "措勤县", + "value": "542527" + } + ] + ], + [ + [{ + "label": "新城区", + "value": "610102" + }, + { + "label": "碑林区", + "value": "610103" + }, + { + "label": "莲湖区", + "value": "610104" + }, + { + "label": "灞桥区", + "value": "610111" + }, + { + "label": "未央区", + "value": "610112" + }, + { + "label": "雁塔区", + "value": "610113" + }, + { + "label": "阎良区", + "value": "610114" + }, + { + "label": "临潼区", + "value": "610115" + }, + { + "label": "长安区", + "value": "610116" + }, + { + "label": "高陵区", + "value": "610117" + }, + { + "label": "鄠邑区", + "value": "610118" + }, + { + "label": "蓝田县", + "value": "610122" + }, + { + "label": "周至县", + "value": "610124" + } + ], + [{ + "label": "王益区", + "value": "610202" + }, + { + "label": "印台区", + "value": "610203" + }, + { + "label": "耀州区", + "value": "610204" + }, + { + "label": "宜君县", + "value": "610222" + } + ], + [{ + "label": "渭滨区", + "value": "610302" + }, + { + "label": "金台区", + "value": "610303" + }, + { + "label": "陈仓区", + "value": "610304" + }, + { + "label": "凤翔县", + "value": "610322" + }, + { + "label": "岐山县", + "value": "610323" + }, + { + "label": "扶风县", + "value": "610324" + }, + { + "label": "眉县", + "value": "610326" + }, + { + "label": "陇县", + "value": "610327" + }, + { + "label": "千阳县", + "value": "610328" + }, + { + "label": "麟游县", + "value": "610329" + }, + { + "label": "凤县", + "value": "610330" + }, + { + "label": "太白县", + "value": "610331" + } + ], + [{ + "label": "秦都区", + "value": "610402" + }, + { + "label": "杨陵区", + "value": "610403" + }, + { + "label": "渭城区", + "value": "610404" + }, + { + "label": "三原县", + "value": "610422" + }, + { + "label": "泾阳县", + "value": "610423" + }, + { + "label": "乾县", + "value": "610424" + }, + { + "label": "礼泉县", + "value": "610425" + }, + { + "label": "永寿县", + "value": "610426" + }, + { + "label": "彬县", + "value": "610427" + }, + { + "label": "长武县", + "value": "610428" + }, + { + "label": "旬邑县", + "value": "610429" + }, + { + "label": "淳化县", + "value": "610430" + }, + { + "label": "武功县", + "value": "610431" + }, + { + "label": "兴平市", + "value": "610481" + } + ], + [{ + "label": "临渭区", + "value": "610502" + }, + { + "label": "华州区", + "value": "610503" + }, + { + "label": "潼关县", + "value": "610522" + }, + { + "label": "大荔县", + "value": "610523" + }, + { + "label": "合阳县", + "value": "610524" + }, + { + "label": "澄城县", + "value": "610525" + }, + { + "label": "蒲城县", + "value": "610526" + }, + { + "label": "白水县", + "value": "610527" + }, + { + "label": "富平县", + "value": "610528" + }, + { + "label": "韩城市", + "value": "610581" + }, + { + "label": "华阴市", + "value": "610582" + } + ], + [{ + "label": "宝塔区", + "value": "610602" + }, + { + "label": "安塞区", + "value": "610603" + }, + { + "label": "延长县", + "value": "610621" + }, + { + "label": "延川县", + "value": "610622" + }, + { + "label": "子长县", + "value": "610623" + }, + { + "label": "志丹县", + "value": "610625" + }, + { + "label": "吴起县", + "value": "610626" + }, + { + "label": "甘泉县", + "value": "610627" + }, + { + "label": "富县", + "value": "610628" + }, + { + "label": "洛川县", + "value": "610629" + }, + { + "label": "宜川县", + "value": "610630" + }, + { + "label": "黄龙县", + "value": "610631" + }, + { + "label": "黄陵县", + "value": "610632" + } + ], + [{ + "label": "汉台区", + "value": "610702" + }, + { + "label": "南郑区", + "value": "610703" + }, + { + "label": "城固县", + "value": "610722" + }, + { + "label": "洋县", + "value": "610723" + }, + { + "label": "西乡县", + "value": "610724" + }, + { + "label": "勉县", + "value": "610725" + }, + { + "label": "宁强县", + "value": "610726" + }, + { + "label": "略阳县", + "value": "610727" + }, + { + "label": "镇巴县", + "value": "610728" + }, + { + "label": "留坝县", + "value": "610729" + }, + { + "label": "佛坪县", + "value": "610730" + } + ], + [{ + "label": "榆阳区", + "value": "610802" + }, + { + "label": "横山区", + "value": "610803" + }, + { + "label": "府谷县", + "value": "610822" + }, + { + "label": "靖边县", + "value": "610824" + }, + { + "label": "定边县", + "value": "610825" + }, + { + "label": "绥德县", + "value": "610826" + }, + { + "label": "米脂县", + "value": "610827" + }, + { + "label": "佳县", + "value": "610828" + }, + { + "label": "吴堡县", + "value": "610829" + }, + { + "label": "清涧县", + "value": "610830" + }, + { + "label": "子洲县", + "value": "610831" + }, + { + "label": "神木市", + "value": "610881" + } + ], + [{ + "label": "汉滨区", + "value": "610902" + }, + { + "label": "汉阴县", + "value": "610921" + }, + { + "label": "石泉县", + "value": "610922" + }, + { + "label": "宁陕县", + "value": "610923" + }, + { + "label": "紫阳县", + "value": "610924" + }, + { + "label": "岚皋县", + "value": "610925" + }, + { + "label": "平利县", + "value": "610926" + }, + { + "label": "镇坪县", + "value": "610927" + }, + { + "label": "旬阳县", + "value": "610928" + }, + { + "label": "白河县", + "value": "610929" + } + ], + [{ + "label": "商州区", + "value": "611002" + }, + { + "label": "洛南县", + "value": "611021" + }, + { + "label": "丹凤县", + "value": "611022" + }, + { + "label": "商南县", + "value": "611023" + }, + { + "label": "山阳县", + "value": "611024" + }, + { + "label": "镇安县", + "value": "611025" + }, + { + "label": "柞水县", + "value": "611026" + } + ] + ], + [ + [{ + "label": "城关区", + "value": "620102" + }, + { + "label": "七里河区", + "value": "620103" + }, + { + "label": "西固区", + "value": "620104" + }, + { + "label": "安宁区", + "value": "620105" + }, + { + "label": "红古区", + "value": "620111" + }, + { + "label": "永登县", + "value": "620121" + }, + { + "label": "皋兰县", + "value": "620122" + }, + { + "label": "榆中县", + "value": "620123" + }, + { + "label": "兰州新区", + "value": "620171" + } + ], + [{ + "label": "嘉峪关市", + "value": "620201" + }], + [{ + "label": "金川区", + "value": "620302" + }, + { + "label": "永昌县", + "value": "620321" + } + ], + [{ + "label": "白银区", + "value": "620402" + }, + { + "label": "平川区", + "value": "620403" + }, + { + "label": "靖远县", + "value": "620421" + }, + { + "label": "会宁县", + "value": "620422" + }, + { + "label": "景泰县", + "value": "620423" + } + ], + [{ + "label": "秦州区", + "value": "620502" + }, + { + "label": "麦积区", + "value": "620503" + }, + { + "label": "清水县", + "value": "620521" + }, + { + "label": "秦安县", + "value": "620522" + }, + { + "label": "甘谷县", + "value": "620523" + }, + { + "label": "武山县", + "value": "620524" + }, + { + "label": "张家川回族自治县", + "value": "620525" + } + ], + [{ + "label": "凉州区", + "value": "620602" + }, + { + "label": "民勤县", + "value": "620621" + }, + { + "label": "古浪县", + "value": "620622" + }, + { + "label": "天祝藏族自治县", + "value": "620623" + } + ], + [{ + "label": "甘州区", + "value": "620702" + }, + { + "label": "肃南裕固族自治县", + "value": "620721" + }, + { + "label": "民乐县", + "value": "620722" + }, + { + "label": "临泽县", + "value": "620723" + }, + { + "label": "高台县", + "value": "620724" + }, + { + "label": "山丹县", + "value": "620725" + } + ], + [{ + "label": "崆峒区", + "value": "620802" + }, + { + "label": "泾川县", + "value": "620821" + }, + { + "label": "灵台县", + "value": "620822" + }, + { + "label": "崇信县", + "value": "620823" + }, + { + "label": "华亭县", + "value": "620824" + }, + { + "label": "庄浪县", + "value": "620825" + }, + { + "label": "静宁县", + "value": "620826" + }, + { + "label": "平凉工业园区", + "value": "620871" + } + ], + [{ + "label": "肃州区", + "value": "620902" + }, + { + "label": "金塔县", + "value": "620921" + }, + { + "label": "瓜州县", + "value": "620922" + }, + { + "label": "肃北蒙古族自治县", + "value": "620923" + }, + { + "label": "阿克塞哈萨克族自治县", + "value": "620924" + }, + { + "label": "玉门市", + "value": "620981" + }, + { + "label": "敦煌市", + "value": "620982" + } + ], + [{ + "label": "西峰区", + "value": "621002" + }, + { + "label": "庆城县", + "value": "621021" + }, + { + "label": "环县", + "value": "621022" + }, + { + "label": "华池县", + "value": "621023" + }, + { + "label": "合水县", + "value": "621024" + }, + { + "label": "正宁县", + "value": "621025" + }, + { + "label": "宁县", + "value": "621026" + }, + { + "label": "镇原县", + "value": "621027" + } + ], + [{ + "label": "安定区", + "value": "621102" + }, + { + "label": "通渭县", + "value": "621121" + }, + { + "label": "陇西县", + "value": "621122" + }, + { + "label": "渭源县", + "value": "621123" + }, + { + "label": "临洮县", + "value": "621124" + }, + { + "label": "漳县", + "value": "621125" + }, + { + "label": "岷县", + "value": "621126" + } + ], + [{ + "label": "武都区", + "value": "621202" + }, + { + "label": "成县", + "value": "621221" + }, + { + "label": "文县", + "value": "621222" + }, + { + "label": "宕昌县", + "value": "621223" + }, + { + "label": "康县", + "value": "621224" + }, + { + "label": "西和县", + "value": "621225" + }, + { + "label": "礼县", + "value": "621226" + }, + { + "label": "徽县", + "value": "621227" + }, + { + "label": "两当县", + "value": "621228" + } + ], + [{ + "label": "临夏市", + "value": "622901" + }, + { + "label": "临夏县", + "value": "622921" + }, + { + "label": "康乐县", + "value": "622922" + }, + { + "label": "永靖县", + "value": "622923" + }, + { + "label": "广河县", + "value": "622924" + }, + { + "label": "和政县", + "value": "622925" + }, + { + "label": "东乡族自治县", + "value": "622926" + }, + { + "label": "积石山保安族东乡族撒拉族自治县", + "value": "622927" + } + ], + [{ + "label": "合作市", + "value": "623001" + }, + { + "label": "临潭县", + "value": "623021" + }, + { + "label": "卓尼县", + "value": "623022" + }, + { + "label": "舟曲县", + "value": "623023" + }, + { + "label": "迭部县", + "value": "623024" + }, + { + "label": "玛曲县", + "value": "623025" + }, + { + "label": "碌曲县", + "value": "623026" + }, + { + "label": "夏河县", + "value": "623027" + } + ] + ], + [ + [{ + "label": "城东区", + "value": "630102" + }, + { + "label": "城中区", + "value": "630103" + }, + { + "label": "城西区", + "value": "630104" + }, + { + "label": "城北区", + "value": "630105" + }, + { + "label": "大通回族土族自治县", + "value": "630121" + }, + { + "label": "湟中县", + "value": "630122" + }, + { + "label": "湟源县", + "value": "630123" + } + ], + [{ + "label": "乐都区", + "value": "630202" + }, + { + "label": "平安区", + "value": "630203" + }, + { + "label": "民和回族土族自治县", + "value": "630222" + }, + { + "label": "互助土族自治县", + "value": "630223" + }, + { + "label": "化隆回族自治县", + "value": "630224" + }, + { + "label": "循化撒拉族自治县", + "value": "630225" + } + ], + [{ + "label": "门源回族自治县", + "value": "632221" + }, + { + "label": "祁连县", + "value": "632222" + }, + { + "label": "海晏县", + "value": "632223" + }, + { + "label": "刚察县", + "value": "632224" + } + ], + [{ + "label": "同仁县", + "value": "632321" + }, + { + "label": "尖扎县", + "value": "632322" + }, + { + "label": "泽库县", + "value": "632323" + }, + { + "label": "河南蒙古族自治县", + "value": "632324" + } + ], + [{ + "label": "共和县", + "value": "632521" + }, + { + "label": "同德县", + "value": "632522" + }, + { + "label": "贵德县", + "value": "632523" + }, + { + "label": "兴海县", + "value": "632524" + }, + { + "label": "贵南县", + "value": "632525" + } + ], + [{ + "label": "玛沁县", + "value": "632621" + }, + { + "label": "班玛县", + "value": "632622" + }, + { + "label": "甘德县", + "value": "632623" + }, + { + "label": "达日县", + "value": "632624" + }, + { + "label": "久治县", + "value": "632625" + }, + { + "label": "玛多县", + "value": "632626" + } + ], + [{ + "label": "玉树市", + "value": "632701" + }, + { + "label": "杂多县", + "value": "632722" + }, + { + "label": "称多县", + "value": "632723" + }, + { + "label": "治多县", + "value": "632724" + }, + { + "label": "囊谦县", + "value": "632725" + }, + { + "label": "曲麻莱县", + "value": "632726" + } + ], + [{ + "label": "格尔木市", + "value": "632801" + }, + { + "label": "德令哈市", + "value": "632802" + }, + { + "label": "乌兰县", + "value": "632821" + }, + { + "label": "都兰县", + "value": "632822" + }, + { + "label": "天峻县", + "value": "632823" + }, + { + "label": "大柴旦行政委员会", + "value": "632857" + }, + { + "label": "冷湖行政委员会", + "value": "632858" + }, + { + "label": "茫崖行政委员会", + "value": "632859" + } + ] + ], + [ + [{ + "label": "兴庆区", + "value": "640104" + }, + { + "label": "西夏区", + "value": "640105" + }, + { + "label": "金凤区", + "value": "640106" + }, + { + "label": "永宁县", + "value": "640121" + }, + { + "label": "贺兰县", + "value": "640122" + }, + { + "label": "灵武市", + "value": "640181" + } + ], + [{ + "label": "大武口区", + "value": "640202" + }, + { + "label": "惠农区", + "value": "640205" + }, + { + "label": "平罗县", + "value": "640221" + } + ], + [{ + "label": "利通区", + "value": "640302" + }, + { + "label": "红寺堡区", + "value": "640303" + }, + { + "label": "盐池县", + "value": "640323" + }, + { + "label": "同心县", + "value": "640324" + }, + { + "label": "青铜峡市", + "value": "640381" + } + ], + [{ + "label": "原州区", + "value": "640402" + }, + { + "label": "西吉县", + "value": "640422" + }, + { + "label": "隆德县", + "value": "640423" + }, + { + "label": "泾源县", + "value": "640424" + }, + { + "label": "彭阳县", + "value": "640425" + } + ], + [{ + "label": "沙坡头区", + "value": "640502" + }, + { + "label": "中宁县", + "value": "640521" + }, + { + "label": "海原县", + "value": "640522" + } + ] + ], + [ + [{ + "label": "天山区", + "value": "650102" + }, + { + "label": "沙依巴克区", + "value": "650103" + }, + { + "label": "新市区", + "value": "650104" + }, + { + "label": "水磨沟区", + "value": "650105" + }, + { + "label": "头屯河区", + "value": "650106" + }, + { + "label": "达坂城区", + "value": "650107" + }, + { + "label": "米东区", + "value": "650109" + }, + { + "label": "乌鲁木齐县", + "value": "650121" + }, + { + "label": "乌鲁木齐经济技术开发区", + "value": "650171" + }, + { + "label": "乌鲁木齐高新技术产业开发区", + "value": "650172" + } + ], + [{ + "label": "独山子区", + "value": "650202" + }, + { + "label": "克拉玛依区", + "value": "650203" + }, + { + "label": "白碱滩区", + "value": "650204" + }, + { + "label": "乌尔禾区", + "value": "650205" + } + ], + [{ + "label": "高昌区", + "value": "650402" + }, + { + "label": "鄯善县", + "value": "650421" + }, + { + "label": "托克逊县", + "value": "650422" + } + ], + [{ + "label": "伊州区", + "value": "650502" + }, + { + "label": "巴里坤哈萨克自治县", + "value": "650521" + }, + { + "label": "伊吾县", + "value": "650522" + } + ], + [{ + "label": "昌吉市", + "value": "652301" + }, + { + "label": "阜康市", + "value": "652302" + }, + { + "label": "呼图壁县", + "value": "652323" + }, + { + "label": "玛纳斯县", + "value": "652324" + }, + { + "label": "奇台县", + "value": "652325" + }, + { + "label": "吉木萨尔县", + "value": "652327" + }, + { + "label": "木垒哈萨克自治县", + "value": "652328" + } + ], + [{ + "label": "博乐市", + "value": "652701" + }, + { + "label": "阿拉山口市", + "value": "652702" + }, + { + "label": "精河县", + "value": "652722" + }, + { + "label": "温泉县", + "value": "652723" + } + ], + [{ + "label": "库尔勒市", + "value": "652801" + }, + { + "label": "轮台县", + "value": "652822" + }, + { + "label": "尉犁县", + "value": "652823" + }, + { + "label": "若羌县", + "value": "652824" + }, + { + "label": "且末县", + "value": "652825" + }, + { + "label": "焉耆回族自治县", + "value": "652826" + }, + { + "label": "和静县", + "value": "652827" + }, + { + "label": "和硕县", + "value": "652828" + }, + { + "label": "博湖县", + "value": "652829" + }, + { + "label": "库尔勒经济技术开发区", + "value": "652871" + } + ], + [{ + "label": "阿克苏市", + "value": "652901" + }, + { + "label": "温宿县", + "value": "652922" + }, + { + "label": "库车县", + "value": "652923" + }, + { + "label": "沙雅县", + "value": "652924" + }, + { + "label": "新和县", + "value": "652925" + }, + { + "label": "拜城县", + "value": "652926" + }, + { + "label": "乌什县", + "value": "652927" + }, + { + "label": "阿瓦提县", + "value": "652928" + }, + { + "label": "柯坪县", + "value": "652929" + } + ], + [{ + "label": "阿图什市", + "value": "653001" + }, + { + "label": "阿克陶县", + "value": "653022" + }, + { + "label": "阿合奇县", + "value": "653023" + }, + { + "label": "乌恰县", + "value": "653024" + } + ], + [{ + "label": "喀什市", + "value": "653101" + }, + { + "label": "疏附县", + "value": "653121" + }, + { + "label": "疏勒县", + "value": "653122" + }, + { + "label": "英吉沙县", + "value": "653123" + }, + { + "label": "泽普县", + "value": "653124" + }, + { + "label": "莎车县", + "value": "653125" + }, + { + "label": "叶城县", + "value": "653126" + }, + { + "label": "麦盖提县", + "value": "653127" + }, + { + "label": "岳普湖县", + "value": "653128" + }, + { + "label": "伽师县", + "value": "653129" + }, + { + "label": "巴楚县", + "value": "653130" + }, + { + "label": "塔什库尔干塔吉克自治县", + "value": "653131" + } + ], + [{ + "label": "和田市", + "value": "653201" + }, + { + "label": "和田县", + "value": "653221" + }, + { + "label": "墨玉县", + "value": "653222" + }, + { + "label": "皮山县", + "value": "653223" + }, + { + "label": "洛浦县", + "value": "653224" + }, + { + "label": "策勒县", + "value": "653225" + }, + { + "label": "于田县", + "value": "653226" + }, + { + "label": "民丰县", + "value": "653227" + } + ], + [{ + "label": "伊宁市", + "value": "654002" + }, + { + "label": "奎屯市", + "value": "654003" + }, + { + "label": "霍尔果斯市", + "value": "654004" + }, + { + "label": "伊宁县", + "value": "654021" + }, + { + "label": "察布查尔锡伯自治县", + "value": "654022" + }, + { + "label": "霍城县", + "value": "654023" + }, + { + "label": "巩留县", + "value": "654024" + }, + { + "label": "新源县", + "value": "654025" + }, + { + "label": "昭苏县", + "value": "654026" + }, + { + "label": "特克斯县", + "value": "654027" + }, + { + "label": "尼勒克县", + "value": "654028" + } + ], + [{ + "label": "塔城市", + "value": "654201" + }, + { + "label": "乌苏市", + "value": "654202" + }, + { + "label": "额敏县", + "value": "654221" + }, + { + "label": "沙湾县", + "value": "654223" + }, + { + "label": "托里县", + "value": "654224" + }, + { + "label": "裕民县", + "value": "654225" + }, + { + "label": "和布克赛尔蒙古自治县", + "value": "654226" + } + ], + [{ + "label": "阿勒泰市", + "value": "654301" + }, + { + "label": "布尔津县", + "value": "654321" + }, + { + "label": "富蕴县", + "value": "654322" + }, + { + "label": "福海县", + "value": "654323" + }, + { + "label": "哈巴河县", + "value": "654324" + }, + { + "label": "青河县", + "value": "654325" + }, + { + "label": "吉木乃县", + "value": "654326" + } + ], + [{ + "label": "石河子市", + "value": "659001" + }, + { + "label": "阿拉尔市", + "value": "659002" + }, + { + "label": "图木舒克市", + "value": "659003" + }, + { + "label": "五家渠市", + "value": "659004" + }, + { + "label": "铁门关市", + "value": "659006" + } + ] + ], + [ + [{ + "label": "台北", + "value": "660101" + }], + [{ + "label": "高雄", + "value": "660201" + }], + [{ + "label": "基隆", + "value": "660301" + }], + [{ + "label": "台中", + "value": "660401" + }], + [{ + "label": "台南", + "value": "660501" + }], + [{ + "label": "新竹", + "value": "660601" + }], + [{ + "label": "嘉义", + "value": "660701" + }], + [{ + "label": "宜兰", + "value": "660801" + }], + [{ + "label": "桃园", + "value": "660901" + }], + [{ + "label": "苗栗", + "value": "661001" + }], + [{ + "label": "彰化", + "value": "661101" + }], + [{ + "label": "南投", + "value": "661201" + }], + [{ + "label": "云林", + "value": "661301" + }], + [{ + "label": "屏东", + "value": "661401" + }], + [{ + "label": "台东", + "value": "661501" + }], + [{ + "label": "花莲", + "value": "661601" + }], + [{ + "label": "澎湖", + "value": "661701" + }] + ], + [ + [{ + "label": "香港岛", + "value": "670101" + }], + [{ + "label": "九龙", + "value": "670201" + }], + [{ + "label": "新界", + "value": "670301" + }] + ], + [ + [{ + "label": "澳门半岛", + "value": "680101" + }], + [{ + "label": "氹仔岛", + "value": "680201" + }], + [{ + "label": "路环岛", + "value": "680301" + }], + [{ + "label": "路氹城", + "value": "680401" + }] + ] +] +export default areaData; diff --git a/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/city.js b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/city.js new file mode 100644 index 0000000..8c1dc26 --- /dev/null +++ b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/city.js @@ -0,0 +1,1503 @@ +/* eslint-disable */ +var cityData = [ + [{ + "label": "市辖区", + "value": "1101" + }], + [{ + "label": "市辖区", + "value": "1201" + }], + [{ + "label": "石家庄市", + "value": "1301" + }, + { + "label": "唐山市", + "value": "1302" + }, + { + "label": "秦皇岛市", + "value": "1303" + }, + { + "label": "邯郸市", + "value": "1304" + }, + { + "label": "邢台市", + "value": "1305" + }, + { + "label": "保定市", + "value": "1306" + }, + { + "label": "张家口市", + "value": "1307" + }, + { + "label": "承德市", + "value": "1308" + }, + { + "label": "沧州市", + "value": "1309" + }, + { + "label": "廊坊市", + "value": "1310" + }, + { + "label": "衡水市", + "value": "1311" + } + ], + [{ + "label": "太原市", + "value": "1401" + }, + { + "label": "大同市", + "value": "1402" + }, + { + "label": "阳泉市", + "value": "1403" + }, + { + "label": "长治市", + "value": "1404" + }, + { + "label": "晋城市", + "value": "1405" + }, + { + "label": "朔州市", + "value": "1406" + }, + { + "label": "晋中市", + "value": "1407" + }, + { + "label": "运城市", + "value": "1408" + }, + { + "label": "忻州市", + "value": "1409" + }, + { + "label": "临汾市", + "value": "1410" + }, + { + "label": "吕梁市", + "value": "1411" + } + ], + [{ + "label": "呼和浩特市", + "value": "1501" + }, + { + "label": "包头市", + "value": "1502" + }, + { + "label": "乌海市", + "value": "1503" + }, + { + "label": "赤峰市", + "value": "1504" + }, + { + "label": "通辽市", + "value": "1505" + }, + { + "label": "鄂尔多斯市", + "value": "1506" + }, + { + "label": "呼伦贝尔市", + "value": "1507" + }, + { + "label": "巴彦淖尔市", + "value": "1508" + }, + { + "label": "乌兰察布市", + "value": "1509" + }, + { + "label": "兴安盟", + "value": "1522" + }, + { + "label": "锡林郭勒盟", + "value": "1525" + }, + { + "label": "阿拉善盟", + "value": "1529" + } + ], + [{ + "label": "沈阳市", + "value": "2101" + }, + { + "label": "大连市", + "value": "2102" + }, + { + "label": "鞍山市", + "value": "2103" + }, + { + "label": "抚顺市", + "value": "2104" + }, + { + "label": "本溪市", + "value": "2105" + }, + { + "label": "丹东市", + "value": "2106" + }, + { + "label": "锦州市", + "value": "2107" + }, + { + "label": "营口市", + "value": "2108" + }, + { + "label": "阜新市", + "value": "2109" + }, + { + "label": "辽阳市", + "value": "2110" + }, + { + "label": "盘锦市", + "value": "2111" + }, + { + "label": "铁岭市", + "value": "2112" + }, + { + "label": "朝阳市", + "value": "2113" + }, + { + "label": "葫芦岛市", + "value": "2114" + } + ], + [{ + "label": "长春市", + "value": "2201" + }, + { + "label": "吉林市", + "value": "2202" + }, + { + "label": "四平市", + "value": "2203" + }, + { + "label": "辽源市", + "value": "2204" + }, + { + "label": "通化市", + "value": "2205" + }, + { + "label": "白山市", + "value": "2206" + }, + { + "label": "松原市", + "value": "2207" + }, + { + "label": "白城市", + "value": "2208" + }, + { + "label": "延边朝鲜族自治州", + "value": "2224" + } + ], + [{ + "label": "哈尔滨市", + "value": "2301" + }, + { + "label": "齐齐哈尔市", + "value": "2302" + }, + { + "label": "鸡西市", + "value": "2303" + }, + { + "label": "鹤岗市", + "value": "2304" + }, + { + "label": "双鸭山市", + "value": "2305" + }, + { + "label": "大庆市", + "value": "2306" + }, + { + "label": "伊春市", + "value": "2307" + }, + { + "label": "佳木斯市", + "value": "2308" + }, + { + "label": "七台河市", + "value": "2309" + }, + { + "label": "牡丹江市", + "value": "2310" + }, + { + "label": "黑河市", + "value": "2311" + }, + { + "label": "绥化市", + "value": "2312" + }, + { + "label": "大兴安岭地区", + "value": "2327" + } + ], + [{ + "label": "市辖区", + "value": "3101" + }], + [{ + "label": "南京市", + "value": "3201" + }, + { + "label": "无锡市", + "value": "3202" + }, + { + "label": "徐州市", + "value": "3203" + }, + { + "label": "常州市", + "value": "3204" + }, + { + "label": "苏州市", + "value": "3205" + }, + { + "label": "南通市", + "value": "3206" + }, + { + "label": "连云港市", + "value": "3207" + }, + { + "label": "淮安市", + "value": "3208" + }, + { + "label": "盐城市", + "value": "3209" + }, + { + "label": "扬州市", + "value": "3210" + }, + { + "label": "镇江市", + "value": "3211" + }, + { + "label": "泰州市", + "value": "3212" + }, + { + "label": "宿迁市", + "value": "3213" + } + ], + [{ + "label": "杭州市", + "value": "3301" + }, + { + "label": "宁波市", + "value": "3302" + }, + { + "label": "温州市", + "value": "3303" + }, + { + "label": "嘉兴市", + "value": "3304" + }, + { + "label": "湖州市", + "value": "3305" + }, + { + "label": "绍兴市", + "value": "3306" + }, + { + "label": "金华市", + "value": "3307" + }, + { + "label": "衢州市", + "value": "3308" + }, + { + "label": "舟山市", + "value": "3309" + }, + { + "label": "台州市", + "value": "3310" + }, + { + "label": "丽水市", + "value": "3311" + } + ], + [{ + "label": "合肥市", + "value": "3401" + }, + { + "label": "芜湖市", + "value": "3402" + }, + { + "label": "蚌埠市", + "value": "3403" + }, + { + "label": "淮南市", + "value": "3404" + }, + { + "label": "马鞍山市", + "value": "3405" + }, + { + "label": "淮北市", + "value": "3406" + }, + { + "label": "铜陵市", + "value": "3407" + }, + { + "label": "安庆市", + "value": "3408" + }, + { + "label": "黄山市", + "value": "3410" + }, + { + "label": "滁州市", + "value": "3411" + }, + { + "label": "阜阳市", + "value": "3412" + }, + { + "label": "宿州市", + "value": "3413" + }, + { + "label": "六安市", + "value": "3415" + }, + { + "label": "亳州市", + "value": "3416" + }, + { + "label": "池州市", + "value": "3417" + }, + { + "label": "宣城市", + "value": "3418" + } + ], + [{ + "label": "福州市", + "value": "3501" + }, + { + "label": "厦门市", + "value": "3502" + }, + { + "label": "莆田市", + "value": "3503" + }, + { + "label": "三明市", + "value": "3504" + }, + { + "label": "泉州市", + "value": "3505" + }, + { + "label": "漳州市", + "value": "3506" + }, + { + "label": "南平市", + "value": "3507" + }, + { + "label": "龙岩市", + "value": "3508" + }, + { + "label": "宁德市", + "value": "3509" + } + ], + [{ + "label": "南昌市", + "value": "3601" + }, + { + "label": "景德镇市", + "value": "3602" + }, + { + "label": "萍乡市", + "value": "3603" + }, + { + "label": "九江市", + "value": "3604" + }, + { + "label": "新余市", + "value": "3605" + }, + { + "label": "鹰潭市", + "value": "3606" + }, + { + "label": "赣州市", + "value": "3607" + }, + { + "label": "吉安市", + "value": "3608" + }, + { + "label": "宜春市", + "value": "3609" + }, + { + "label": "抚州市", + "value": "3610" + }, + { + "label": "上饶市", + "value": "3611" + } + ], + [{ + "label": "济南市", + "value": "3701" + }, + { + "label": "青岛市", + "value": "3702" + }, + { + "label": "淄博市", + "value": "3703" + }, + { + "label": "枣庄市", + "value": "3704" + }, + { + "label": "东营市", + "value": "3705" + }, + { + "label": "烟台市", + "value": "3706" + }, + { + "label": "潍坊市", + "value": "3707" + }, + { + "label": "济宁市", + "value": "3708" + }, + { + "label": "泰安市", + "value": "3709" + }, + { + "label": "威海市", + "value": "3710" + }, + { + "label": "日照市", + "value": "3711" + }, + { + "label": "莱芜市", + "value": "3712" + }, + { + "label": "临沂市", + "value": "3713" + }, + { + "label": "德州市", + "value": "3714" + }, + { + "label": "聊城市", + "value": "3715" + }, + { + "label": "滨州市", + "value": "3716" + }, + { + "label": "菏泽市", + "value": "3717" + } + ], + [{ + "label": "郑州市", + "value": "4101" + }, + { + "label": "开封市", + "value": "4102" + }, + { + "label": "洛阳市", + "value": "4103" + }, + { + "label": "平顶山市", + "value": "4104" + }, + { + "label": "安阳市", + "value": "4105" + }, + { + "label": "鹤壁市", + "value": "4106" + }, + { + "label": "新乡市", + "value": "4107" + }, + { + "label": "焦作市", + "value": "4108" + }, + { + "label": "濮阳市", + "value": "4109" + }, + { + "label": "许昌市", + "value": "4110" + }, + { + "label": "漯河市", + "value": "4111" + }, + { + "label": "三门峡市", + "value": "4112" + }, + { + "label": "南阳市", + "value": "4113" + }, + { + "label": "商丘市", + "value": "4114" + }, + { + "label": "信阳市", + "value": "4115" + }, + { + "label": "周口市", + "value": "4116" + }, + { + "label": "驻马店市", + "value": "4117" + }, + { + "label": "省直辖县级行政区划", + "value": "4190" + } + ], + [{ + "label": "武汉市", + "value": "4201" + }, + { + "label": "黄石市", + "value": "4202" + }, + { + "label": "十堰市", + "value": "4203" + }, + { + "label": "宜昌市", + "value": "4205" + }, + { + "label": "襄阳市", + "value": "4206" + }, + { + "label": "鄂州市", + "value": "4207" + }, + { + "label": "荆门市", + "value": "4208" + }, + { + "label": "孝感市", + "value": "4209" + }, + { + "label": "荆州市", + "value": "4210" + }, + { + "label": "黄冈市", + "value": "4211" + }, + { + "label": "咸宁市", + "value": "4212" + }, + { + "label": "随州市", + "value": "4213" + }, + { + "label": "恩施土家族苗族自治州", + "value": "4228" + }, + { + "label": "省直辖县级行政区划", + "value": "4290" + } + ], + [{ + "label": "长沙市", + "value": "4301" + }, + { + "label": "株洲市", + "value": "4302" + }, + { + "label": "湘潭市", + "value": "4303" + }, + { + "label": "衡阳市", + "value": "4304" + }, + { + "label": "邵阳市", + "value": "4305" + }, + { + "label": "岳阳市", + "value": "4306" + }, + { + "label": "常德市", + "value": "4307" + }, + { + "label": "张家界市", + "value": "4308" + }, + { + "label": "益阳市", + "value": "4309" + }, + { + "label": "郴州市", + "value": "4310" + }, + { + "label": "永州市", + "value": "4311" + }, + { + "label": "怀化市", + "value": "4312" + }, + { + "label": "娄底市", + "value": "4313" + }, + { + "label": "湘西土家族苗族自治州", + "value": "4331" + } + ], + [{ + "label": "广州市", + "value": "4401" + }, + { + "label": "韶关市", + "value": "4402" + }, + { + "label": "深圳市", + "value": "4403" + }, + { + "label": "珠海市", + "value": "4404" + }, + { + "label": "汕头市", + "value": "4405" + }, + { + "label": "佛山市", + "value": "4406" + }, + { + "label": "江门市", + "value": "4407" + }, + { + "label": "湛江市", + "value": "4408" + }, + { + "label": "茂名市", + "value": "4409" + }, + { + "label": "肇庆市", + "value": "4412" + }, + { + "label": "惠州市", + "value": "4413" + }, + { + "label": "梅州市", + "value": "4414" + }, + { + "label": "汕尾市", + "value": "4415" + }, + { + "label": "河源市", + "value": "4416" + }, + { + "label": "阳江市", + "value": "4417" + }, + { + "label": "清远市", + "value": "4418" + }, + { + "label": "东莞市", + "value": "4419" + }, + { + "label": "中山市", + "value": "4420" + }, + { + "label": "潮州市", + "value": "4451" + }, + { + "label": "揭阳市", + "value": "4452" + }, + { + "label": "云浮市", + "value": "4453" + } + ], + [{ + "label": "南宁市", + "value": "4501" + }, + { + "label": "柳州市", + "value": "4502" + }, + { + "label": "桂林市", + "value": "4503" + }, + { + "label": "梧州市", + "value": "4504" + }, + { + "label": "北海市", + "value": "4505" + }, + { + "label": "防城港市", + "value": "4506" + }, + { + "label": "钦州市", + "value": "4507" + }, + { + "label": "贵港市", + "value": "4508" + }, + { + "label": "玉林市", + "value": "4509" + }, + { + "label": "百色市", + "value": "4510" + }, + { + "label": "贺州市", + "value": "4511" + }, + { + "label": "河池市", + "value": "4512" + }, + { + "label": "来宾市", + "value": "4513" + }, + { + "label": "崇左市", + "value": "4514" + } + ], + [{ + "label": "海口市", + "value": "4601" + }, + { + "label": "三亚市", + "value": "4602" + }, + { + "label": "三沙市", + "value": "4603" + }, + { + "label": "儋州市", + "value": "4604" + }, + { + "label": "省直辖县级行政区划", + "value": "4690" + } + ], + [{ + "label": "市辖区", + "value": "5001" + }, + { + "label": "县", + "value": "5002" + } + ], + [{ + "label": "成都市", + "value": "5101" + }, + { + "label": "自贡市", + "value": "5103" + }, + { + "label": "攀枝花市", + "value": "5104" + }, + { + "label": "泸州市", + "value": "5105" + }, + { + "label": "德阳市", + "value": "5106" + }, + { + "label": "绵阳市", + "value": "5107" + }, + { + "label": "广元市", + "value": "5108" + }, + { + "label": "遂宁市", + "value": "5109" + }, + { + "label": "内江市", + "value": "5110" + }, + { + "label": "乐山市", + "value": "5111" + }, + { + "label": "南充市", + "value": "5113" + }, + { + "label": "眉山市", + "value": "5114" + }, + { + "label": "宜宾市", + "value": "5115" + }, + { + "label": "广安市", + "value": "5116" + }, + { + "label": "达州市", + "value": "5117" + }, + { + "label": "雅安市", + "value": "5118" + }, + { + "label": "巴中市", + "value": "5119" + }, + { + "label": "资阳市", + "value": "5120" + }, + { + "label": "阿坝藏族羌族自治州", + "value": "5132" + }, + { + "label": "甘孜藏族自治州", + "value": "5133" + }, + { + "label": "凉山彝族自治州", + "value": "5134" + } + ], + [{ + "label": "贵阳市", + "value": "5201" + }, + { + "label": "六盘水市", + "value": "5202" + }, + { + "label": "遵义市", + "value": "5203" + }, + { + "label": "安顺市", + "value": "5204" + }, + { + "label": "毕节市", + "value": "5205" + }, + { + "label": "铜仁市", + "value": "5206" + }, + { + "label": "黔西南布依族苗族自治州", + "value": "5223" + }, + { + "label": "黔东南苗族侗族自治州", + "value": "5226" + }, + { + "label": "黔南布依族苗族自治州", + "value": "5227" + } + ], + [{ + "label": "昆明市", + "value": "5301" + }, + { + "label": "曲靖市", + "value": "5303" + }, + { + "label": "玉溪市", + "value": "5304" + }, + { + "label": "保山市", + "value": "5305" + }, + { + "label": "昭通市", + "value": "5306" + }, + { + "label": "丽江市", + "value": "5307" + }, + { + "label": "普洱市", + "value": "5308" + }, + { + "label": "临沧市", + "value": "5309" + }, + { + "label": "楚雄彝族自治州", + "value": "5323" + }, + { + "label": "红河哈尼族彝族自治州", + "value": "5325" + }, + { + "label": "文山壮族苗族自治州", + "value": "5326" + }, + { + "label": "西双版纳傣族自治州", + "value": "5328" + }, + { + "label": "大理白族自治州", + "value": "5329" + }, + { + "label": "德宏傣族景颇族自治州", + "value": "5331" + }, + { + "label": "怒江傈僳族自治州", + "value": "5333" + }, + { + "label": "迪庆藏族自治州", + "value": "5334" + } + ], + [{ + "label": "拉萨市", + "value": "5401" + }, + { + "label": "日喀则市", + "value": "5402" + }, + { + "label": "昌都市", + "value": "5403" + }, + { + "label": "林芝市", + "value": "5404" + }, + { + "label": "山南市", + "value": "5405" + }, + { + "label": "那曲地区", + "value": "5424" + }, + { + "label": "阿里地区", + "value": "5425" + } + ], + [{ + "label": "西安市", + "value": "6101" + }, + { + "label": "铜川市", + "value": "6102" + }, + { + "label": "宝鸡市", + "value": "6103" + }, + { + "label": "咸阳市", + "value": "6104" + }, + { + "label": "渭南市", + "value": "6105" + }, + { + "label": "延安市", + "value": "6106" + }, + { + "label": "汉中市", + "value": "6107" + }, + { + "label": "榆林市", + "value": "6108" + }, + { + "label": "安康市", + "value": "6109" + }, + { + "label": "商洛市", + "value": "6110" + } + ], + [{ + "label": "兰州市", + "value": "6201" + }, + { + "label": "嘉峪关市", + "value": "6202" + }, + { + "label": "金昌市", + "value": "6203" + }, + { + "label": "白银市", + "value": "6204" + }, + { + "label": "天水市", + "value": "6205" + }, + { + "label": "武威市", + "value": "6206" + }, + { + "label": "张掖市", + "value": "6207" + }, + { + "label": "平凉市", + "value": "6208" + }, + { + "label": "酒泉市", + "value": "6209" + }, + { + "label": "庆阳市", + "value": "6210" + }, + { + "label": "定西市", + "value": "6211" + }, + { + "label": "陇南市", + "value": "6212" + }, + { + "label": "临夏回族自治州", + "value": "6229" + }, + { + "label": "甘南藏族自治州", + "value": "6230" + } + ], + [{ + "label": "西宁市", + "value": "6301" + }, + { + "label": "海东市", + "value": "6302" + }, + { + "label": "海北藏族自治州", + "value": "6322" + }, + { + "label": "黄南藏族自治州", + "value": "6323" + }, + { + "label": "海南藏族自治州", + "value": "6325" + }, + { + "label": "果洛藏族自治州", + "value": "6326" + }, + { + "label": "玉树藏族自治州", + "value": "6327" + }, + { + "label": "海西蒙古族藏族自治州", + "value": "6328" + } + ], + [{ + "label": "银川市", + "value": "6401" + }, + { + "label": "石嘴山市", + "value": "6402" + }, + { + "label": "吴忠市", + "value": "6403" + }, + { + "label": "固原市", + "value": "6404" + }, + { + "label": "中卫市", + "value": "6405" + } + ], + [{ + "label": "乌鲁木齐市", + "value": "6501" + }, + { + "label": "克拉玛依市", + "value": "6502" + }, + { + "label": "吐鲁番市", + "value": "6504" + }, + { + "label": "哈密市", + "value": "6505" + }, + { + "label": "昌吉回族自治州", + "value": "6523" + }, + { + "label": "博尔塔拉蒙古自治州", + "value": "6527" + }, + { + "label": "巴音郭楞蒙古自治州", + "value": "6528" + }, + { + "label": "阿克苏地区", + "value": "6529" + }, + { + "label": "克孜勒苏柯尔克孜自治州", + "value": "6530" + }, + { + "label": "喀什地区", + "value": "6531" + }, + { + "label": "和田地区", + "value": "6532" + }, + { + "label": "伊犁哈萨克自治州", + "value": "6540" + }, + { + "label": "塔城地区", + "value": "6542" + }, + { + "label": "阿勒泰地区", + "value": "6543" + }, + { + "label": "自治区直辖县级行政区划", + "value": "6590" + } + ], + [{ + "label": "台北", + "value": "6601" + }, + { + "label": "高雄", + "value": "6602" + }, + { + "label": "基隆", + "value": "6603" + }, + { + "label": "台中", + "value": "6604" + }, + { + "label": "台南", + "value": "6605" + }, + { + "label": "新竹", + "value": "6606" + }, + { + "label": "嘉义", + "value": "6607" + }, + { + "label": "宜兰", + "value": "6608" + }, + { + "label": "桃园", + "value": "6609" + }, + { + "label": "苗栗", + "value": "6610" + }, + { + "label": "彰化", + "value": "6611" + }, + { + "label": "南投", + "value": "6612" + }, + { + "label": "云林", + "value": "6613" + }, + { + "label": "屏东", + "value": "6614" + }, + { + "label": "台东", + "value": "6615" + }, + { + "label": "花莲", + "value": "6616" + }, + { + "label": "澎湖", + "value": "6617" + } + ], + [{ + "label": "香港岛", + "value": "6701" + }, + { + "label": "九龙", + "value": "6702" + }, + { + "label": "新界", + "value": "6703" + } + ], + [{ + "label": "澳门半岛", + "value": "6801" + }, + { + "label": "氹仔岛", + "value": "6802" + }, + { + "label": "路环岛", + "value": "6803" + }, + { + "label": "路氹城", + "value": "6804" + } + ] +] +export default cityData; diff --git a/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/province.js b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/province.js new file mode 100644 index 0000000..1bd680e --- /dev/null +++ b/mallplusui-uniapp-app2/components/mpvue-citypicker/city-data/province.js @@ -0,0 +1,139 @@ +/* eslint-disable */ +var provinceData = [{ + "label": "北京市", + "value": "11" + }, + { + "label": "天津市", + "value": "12" + }, + { + "label": "河北省", + "value": "13" + }, + { + "label": "山西省", + "value": "14" + }, + { + "label": "内蒙古自治区", + "value": "15" + }, + { + "label": "辽宁省", + "value": "21" + }, + { + "label": "吉林省", + "value": "22" + }, + { + "label": "黑龙江省", + "value": "23" + }, + { + "label": "上海市", + "value": "31" + }, + { + "label": "江苏省", + "value": "32" + }, + { + "label": "浙江省", + "value": "33" + }, + { + "label": "安徽省", + "value": "34" + }, + { + "label": "福建省", + "value": "35" + }, + { + "label": "江西省", + "value": "36" + }, + { + "label": "山东省", + "value": "37" + }, + { + "label": "河南省", + "value": "41" + }, + { + "label": "湖北省", + "value": "42" + }, + { + "label": "湖南省", + "value": "43" + }, + { + "label": "广东省", + "value": "44" + }, + { + "label": "广西壮族自治区", + "value": "45" + }, + { + "label": "海南省", + "value": "46" + }, + { + "label": "重庆市", + "value": "50" + }, + { + "label": "四川省", + "value": "51" + }, + { + "label": "贵州省", + "value": "52" + }, + { + "label": "云南省", + "value": "53" + }, + { + "label": "西藏自治区", + "value": "54" + }, + { + "label": "陕西省", + "value": "61" + }, + { + "label": "甘肃省", + "value": "62" + }, + { + "label": "青海省", + "value": "63" + }, + { + "label": "宁夏回族自治区", + "value": "64" + }, + { + "label": "新疆维吾尔自治区", + "value": "65" + }, + { + "label": "台湾", + "value": "66" + }, + { + "label": "香港", + "value": "67" + }, + { + "label": "澳门", + "value": "68" + } +] +export default provinceData; diff --git a/mallplusui-uniapp-app2/components/mpvue-citypicker/mpvueCityPicker.vue b/mallplusui-uniapp-app2/components/mpvue-citypicker/mpvueCityPicker.vue new file mode 100644 index 0000000..2a0416c --- /dev/null +++ b/mallplusui-uniapp-app2/components/mpvue-citypicker/mpvueCityPicker.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/mpvue-picker/mpvuePicker.vue b/mallplusui-uniapp-app2/components/mpvue-picker/mpvuePicker.vue new file mode 100644 index 0000000..dbd2009 --- /dev/null +++ b/mallplusui-uniapp-app2/components/mpvue-picker/mpvuePicker.vue @@ -0,0 +1,463 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/neil-modal.vue b/mallplusui-uniapp-app2/components/neil-modal.vue new file mode 100644 index 0000000..d84f9c8 --- /dev/null +++ b/mallplusui-uniapp-app2/components/neil-modal.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/payments/paymentsByAli.vue b/mallplusui-uniapp-app2/components/payments/paymentsByAli.vue new file mode 100644 index 0000000..c55d11f --- /dev/null +++ b/mallplusui-uniapp-app2/components/payments/paymentsByAli.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/payments/paymentsByApp.vue b/mallplusui-uniapp-app2/components/payments/paymentsByApp.vue new file mode 100644 index 0000000..ce53a88 --- /dev/null +++ b/mallplusui-uniapp-app2/components/payments/paymentsByApp.vue @@ -0,0 +1,287 @@ + + + + diff --git a/mallplusui-uniapp-app2/components/payments/paymentsByH5.vue b/mallplusui-uniapp-app2/components/payments/paymentsByH5.vue new file mode 100644 index 0000000..74ac3c2 --- /dev/null +++ b/mallplusui-uniapp-app2/components/payments/paymentsByH5.vue @@ -0,0 +1,412 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/payments/paymentsByWx.vue b/mallplusui-uniapp-app2/components/payments/paymentsByWx.vue new file mode 100644 index 0000000..0ef409a --- /dev/null +++ b/mallplusui-uniapp-app2/components/payments/paymentsByWx.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/raffle-wheel/raffle-wheel.vue b/mallplusui-uniapp-app2/components/raffle-wheel/raffle-wheel.vue new file mode 100644 index 0000000..e69de29 diff --git a/mallplusui-uniapp-app2/components/red-bag/index.vue b/mallplusui-uniapp-app2/components/red-bag/index.vue new file mode 100644 index 0000000..66ed499 --- /dev/null +++ b/mallplusui-uniapp-app2/components/red-bag/index.vue @@ -0,0 +1,79 @@ + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/reserve-date/reserve-date.vue b/mallplusui-uniapp-app2/components/reserve-date/reserve-date.vue new file mode 100644 index 0000000..1c3e934 --- /dev/null +++ b/mallplusui-uniapp-app2/components/reserve-date/reserve-date.vue @@ -0,0 +1,496 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/reserve-date/uni-icon.vue b/mallplusui-uniapp-app2/components/reserve-date/uni-icon.vue new file mode 100644 index 0000000..5955046 --- /dev/null +++ b/mallplusui-uniapp-app2/components/reserve-date/uni-icon.vue @@ -0,0 +1,419 @@ + + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/share.vue b/mallplusui-uniapp-app2/components/share.vue new file mode 100644 index 0000000..e9b2634 --- /dev/null +++ b/mallplusui-uniapp-app2/components/share.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/time-filter/time-filter.vue b/mallplusui-uniapp-app2/components/time-filter/time-filter.vue new file mode 100644 index 0000000..6691974 --- /dev/null +++ b/mallplusui-uniapp-app2/components/time-filter/time-filter.vue @@ -0,0 +1,205 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/u-charts/component.vue b/mallplusui-uniapp-app2/components/u-charts/component.vue new file mode 100644 index 0000000..413c360 --- /dev/null +++ b/mallplusui-uniapp-app2/components/u-charts/component.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/u-charts/u-charts.js b/mallplusui-uniapp-app2/components/u-charts/u-charts.js new file mode 100644 index 0000000..1785ec4 --- /dev/null +++ b/mallplusui-uniapp-app2/components/u-charts/u-charts.js @@ -0,0 +1,5633 @@ +/* + * uCharts v1.9.3.20190922 + * uni-app平台高性能跨全端图表,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360) + * Copyright (c) 2019 QIUN秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * + * uCharts官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ + +'use strict'; + +var config = { + yAxisWidth: 15, + yAxisSplit: 5, + xAxisHeight: 15, + xAxisLineHeight: 15, + legendHeight: 15, + yAxisTitleWidth: 15, + padding: [10, 10, 10, 10], + pixelRatio: 1, + rotate: false, + columePadding: 3, + fontSize: 13, + //dataPointShape: ['diamond', 'circle', 'triangle', 'rect'], + dataPointShape: ['circle', 'circle', 'circle', 'circle'], + colors: ['#1890ff', '#2fc25b', '#facc14', '#f04864', '#8543e0', '#90ed7d'], + pieChartLinePadding: 15, + pieChartTextPadding: 5, + xAxisTextPadding: 3, + titleColor: '#333333', + titleFontSize: 20, + subtitleColor: '#999999', + subtitleFontSize: 15, + toolTipPadding: 3, + toolTipBackground: '#000000', + toolTipOpacity: 0.7, + toolTipLineHeight: 20, + radarLabelTextMargin: 15, + gaugeLabelTextMargin: 15 +}; + +let assign = function (target, ...varArgs) { + if (target == null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + if (!varArgs || varArgs.length <= 0) { + return target; + } + // 深度合并对象 + function deepAssign(obj1, obj2) { + for (let key in obj2) { + obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ? + deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key]; + } + return obj1; + } + + varArgs.forEach(val => { + target = deepAssign(target, val); + }); + return target; +}; + +var util = { + toFixed: function toFixed(num, limit) { + limit = limit || 2; + if (this.isFloat(num)) { + num = num.toFixed(limit); + } + return num; + }, + isFloat: function isFloat(num) { + return num % 1 !== 0; + }, + approximatelyEqual: function approximatelyEqual(num1, num2) { + return Math.abs(num1 - num2) < 1e-10; + }, + isSameSign: function isSameSign(num1, num2) { + return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2; + }, + isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) { + return this.isSameSign(p1.x, p2.x); + }, + isCollision: function isCollision(obj1, obj2) { + obj1.end = {}; + obj1.end.x = obj1.start.x + obj1.width; + obj1.end.y = obj1.start.y - obj1.height; + obj2.end = {}; + obj2.end.x = obj2.start.x + obj2.width; + obj2.end.y = obj2.start.y - obj2.height; + var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y; + return !flag; + } +}; + +//兼容H5点击事件 +function getH5Offset(e) { + e.mp = { + changedTouches: [] + }; + e.mp.changedTouches.push({ + x: e.offsetX, + y: e.offsetY + }); + return e; +} + +// hex 转 rgba +function hexToRgb(hexValue, opc) { + var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + var hex = hexValue.replace(rgx, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + var r = parseInt(rgb[1], 16); + var g = parseInt(rgb[2], 16); + var b = parseInt(rgb[3], 16); + return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')'; +} + +function findRange(num, type, limit) { + if (isNaN(num)) { + throw new Error('[uCharts] unvalid series data!'); + } + limit = limit || 10; + type = type ? type : 'upper'; + var multiple = 1; + while (limit < 1) { + limit *= 10; + multiple *= 10; + } + if (type === 'upper') { + num = Math.ceil(num * multiple); + } else { + num = Math.floor(num * multiple); + } + while (num % limit !== 0) { + if (type === 'upper') { + num++; + } else { + num--; + } + } + return num / multiple; +} + +function calCandleMA(dayArr, nameArr, colorArr, kdata) { + let seriesTemp = []; + for (let k = 0; k < dayArr.length; k++) { + let seriesItem = { + data: [], + name: nameArr[k], + color: colorArr[k] + }; + for (let i = 0, len = kdata.length; i < len; i++) { + if (i < dayArr[k]) { + seriesItem.data.push(null); + continue; + } + let sum = 0; + for (let j = 0; j < dayArr[k]; j++) { + sum += kdata[i - j][1]; + } + seriesItem.data.push(+(sum / dayArr[k]).toFixed(3)); + } + seriesTemp.push(seriesItem); + } + return seriesTemp; +} + +function calValidDistance(self,distance, chartData, config, opts) { + var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3]; + var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length-1); + var validDistance = distance; + if (distance >= 0) { + validDistance = 0; + self.event.trigger('scrollLeft'); + } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) { + validDistance = dataChartAreaWidth - dataChartWidth; + self.event.trigger('scrollRight'); + } + return validDistance; +} + +function isInAngleRange(angle, startAngle, endAngle) { + function adjust(angle) { + while (angle < 0) { + angle += 2 * Math.PI; + } + while (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + } + angle = adjust(angle); + startAngle = adjust(startAngle); + endAngle = adjust(endAngle); + if (startAngle > endAngle) { + endAngle += 2 * Math.PI; + if (angle < startAngle) { + angle += 2 * Math.PI; + } + } + return angle >= startAngle && angle <= endAngle; +} + +function calRotateTranslate(x, y, h) { + var xv = x; + var yv = h - y; + var transX = xv + (h - yv - xv) / Math.sqrt(2); + transX *= -1; + var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2); + return { + transX: transX, + transY: transY + }; +} + +function createCurveControlPoints(points, i) { + + function isNotMiddlePoint(points, i) { + if (points[i - 1] && points[i + 1]) { + return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, + points[ + i + 1].y); + } else { + return false; + } + } + var a = 0.2; + var b = 0.2; + var pAx = null; + var pAy = null; + var pBx = null; + var pBy = null; + if (i < 1) { + pAx = points[0].x + (points[1].x - points[0].x) * a; + pAy = points[0].y + (points[1].y - points[0].y) * a; + } else { + pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a; + pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a; + } + + if (i > points.length - 3) { + var last = points.length - 1; + pBx = points[last].x - (points[last].x - points[last - 1].x) * b; + pBy = points[last].y - (points[last].y - points[last - 1].y) * b; + } else { + pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b; + pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b; + } + if (isNotMiddlePoint(points, i + 1)) { + pBy = points[i + 1].y; + } + if (isNotMiddlePoint(points, i)) { + pAy = points[i].y; + } + if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) { + pAy = points[i].y; + } + if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) { + pBy = points[i + 1].y; + } + return { + ctrA: { + x: pAx, + y: pAy + }, + ctrB: { + x: pBx, + y: pBy + } + }; +} + +function convertCoordinateOrigin(x, y, center) { + return { + x: center.x + x, + y: center.y - y + }; +} + +function avoidCollision(obj, target) { + if (target) { + // is collision test + while (util.isCollision(obj, target)) { + if (obj.start.x > 0) { + obj.start.y--; + } else if (obj.start.x < 0) { + obj.start.y++; + } else { + if (obj.start.y > 0) { + obj.start.y++; + } else { + obj.start.y--; + } + } + } + } + return obj; +} + +function fillSeries(series, opts, config) { + var index = 0; + return series.map(function(item) { + if (!item.color) { + item.color = config.colors[index]; + index = (index + 1) % config.colors.length; + } + if (!item.index) { + item.index = 0; + } + if (!item.type) { + item.type = opts.type; + } + if (typeof item.show == "undefined") { + item.show = true; + } + if (!item.type) { + item.type = opts.type; + } + if (!item.pointShape) { + item.pointShape = "circle"; + } + if (!item.legendShape) { + switch (item.type) { + case 'line': + item.legendShape = "line"; + break; + case 'column': + item.legendShape = "rect"; + break; + case 'area': + item.legendShape = "triangle"; + break; + default: + item.legendShape = "circle"; + } + } + return item; + }); +} + +function getDataRange(minData, maxData) { + var limit = 0; + var range = maxData - minData; + if (range >= 10000) { + limit = 1000; + } else if (range >= 1000) { + limit = 100; + } else if (range >= 100) { + limit = 10; + } else if (range >= 10) { + limit = 5; + } else if (range >= 1) { + limit = 1; + } else if (range >= 0.1) { + limit = 0.1; + } else if (range >= 0.01) { + limit = 0.01; + } else if (range >= 0.001) { + limit = 0.001; + } else if (range >= 0.0001) { + limit = 0.0001; + } else if (range >= 0.00001) { + limit = 0.00001; + } else { + limit = 0.000001; + } + return { + minRange: findRange(minData, 'lower', limit), + maxRange: findRange(maxData, 'upper', limit) + }; +} + +function measureText(text) { + var fontSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : config.fontSize; + text = String(text); + var text = text.split(''); + var width = 0; + for (let i = 0; i < text.length; i++) { + let item = text[i]; + if (/[a-zA-Z]/.test(item)) { + width += 7; + } else if (/[0-9]/.test(item)) { + width += 5.5; + } else if (/\./.test(item)) { + width += 2.7; + } else if (/-/.test(item)) { + width += 3.25; + } else if (/[\u4e00-\u9fa5]/.test(item)) { + width += 10; + } else if (/\(|\)/.test(item)) { + width += 3.73; + } else if (/\s/.test(item)) { + width += 2.5; + } else if (/%/.test(item)) { + width += 8; + } else { + width += 10; + } + } + return width * fontSize / 10; +} + +function dataCombine(series) { + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data); + }, []); +} + +function dataCombineStack(series, len) { + var sum = new Array(len); + for (var j = 0; j < sum.length; j++) { + sum[j] = 0; + } + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < sum.length; j++) { + sum[j] += series[i].data[j]; + } + } + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data).concat(sum); + }, []); +} + +function getTouches(touches, opts, e) { + let x, y; + if (touches.clientX) { + if (opts.rotate) { + y = opts.height - touches.clientX * opts.pixelRatio; + x = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pixelRatio / 2) * (opts.pixelRatio - 1)) * + opts.pixelRatio; + } else { + x = touches.clientX * opts.pixelRatio; + y = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pixelRatio / 2) * (opts.pixelRatio - 1)) * + opts.pixelRatio; + } + } else { + if (opts.rotate) { + y = opts.height - touches.x * opts.pixelRatio; + x = touches.y * opts.pixelRatio; + } else { + x = touches.x * opts.pixelRatio; + y = touches.y * opts.pixelRatio; + } + } + return { + x: x, + y: y + } +} + +function getSeriesDataItem(series, index) { + var data = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + if (item.data[index] !== null && typeof item.data[index] !== 'undefined' && item.show) { + let seriesItem = {}; + seriesItem.color = item.color; + seriesItem.type = item.type; + seriesItem.style = item.style; + seriesItem.pointShape = item.pointShape; + seriesItem.disableLegend = item.disableLegend; + seriesItem.name = item.name; + seriesItem.show = item.show; + seriesItem.data = item.format ? item.format(item.data[index]) : item.data[index]; + data.push(seriesItem); + } + } + return data; +} + +function getMaxTextListLength(list) { + var lengthList = list.map(function(item) { + return measureText(item); + }); + return Math.max.apply(null, lengthList); +} + +function getRadarCoordinateSeries(length) { + var eachAngle = 2 * Math.PI / length; + var CoordinateSeries = []; + for (var i = 0; i < length; i++) { + CoordinateSeries.push(eachAngle * i); + } + + return CoordinateSeries.map(function(item) { + return -1 * item + Math.PI / 2; + }); +} + +function getToolTipData(seriesData, calPoints, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + + var textList = seriesData.map(function(item) { + let titleText=[]; + if(categories){ + titleText=categories; + }else{ + titleText=item.data; + } + return { + text: option.format ? option.format(item, titleText[index]) : item.name + ': ' + item.data, + color: item.color + }; + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + for (let i = 0; i < validCalPoints.length; i++) { + let item = validCalPoints[i]; + offset.x = Math.round(item.x); + offset.y += item.y; + } + offset.y /= validCalPoints.length; + return { + textList: textList, + offset: offset + }; +} + +function getMixToolTipData(seriesData, calPoints, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + var textList = seriesData.map(function(item) { + return { + text: option.format ? option.format(item, categories[index]) : item.name + ': ' + item.data, + color: item.color, + disableLegend: item.disableLegend ? true : false + }; + }); + textList = textList.filter(function(item) { + if (item.disableLegend !== true) { + return item; + } + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + for (let i = 0; i < validCalPoints.length; i++) { + let item = validCalPoints[i]; + offset.x = Math.round(item.x); + offset.y += item.y; + } + offset.y /= validCalPoints.length; + return { + textList: textList, + offset: offset + }; +} + +function getCandleToolTipData(series, seriesData, calPoints, index, categories, extra) { + var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {}; + let upColor = extra.color.upFill; + let downColor = extra.color.downFill; + //颜色顺序为开盘,收盘,最低,最高 + let color = [upColor, upColor, downColor, upColor]; + var textList = []; + let text0 = { + text: categories[index], + color: null + }; + textList.push(text0); + seriesData.map(function(item) { + if (index == 0 && item.data[1] - item.data[0] < 0) { + color[1] = downColor; + } else { + if (item.data[0] < series[index - 1][1]) { + color[0] = downColor; + } + if (item.data[1] < item.data[0]) { + color[1] = downColor; + } + if (item.data[2] > series[index - 1][1]) { + color[2] = upColor; + } + if (item.data[3] < series[index - 1][1]) { + color[3] = downColor; + } + } + let text1 = { + text: '开盘:' + item.data[0], + color: color[0] + }; + let text2 = { + text: '收盘:' + item.data[1], + color: color[1] + }; + let text3 = { + text: '最低:' + item.data[2], + color: color[2] + }; + let text4 = { + text: '最高:' + item.data[3], + color: color[3] + }; + textList.push(text1, text2, text3, text4); + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + offset.x = Math.round(validCalPoints[0][0].x); + return { + textList: textList, + offset: offset + }; +} + +function filterSeries(series) { + let tempSeries = []; + for (let i = 0; i < series.length; i++) { + if (series[i].show == true) { + tempSeries.push(series[i]) + } + } + return tempSeries; +} + +function findCurrentIndex(currentPoints, calPoints, opts, config) { + var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var currentIndex = -1; + var spacing = 0; + let xAxisPoints=[]; + for(let i=0;i item) { + currentIndex = index; + } + }); + } + return currentIndex; +} + +function findLegendIndex(currentPoints, legendData, opts) { + let currentIndex = -1; + if (isInExactLegendArea(currentPoints, legendData.area)) { + let points = legendData.points; + let index = -1; + for (let i = 0, len = points.length; i < len; i++) { + let item = points[i]; + for (let j = 0; j < item.length; j++) { + index += 1; + let area = item[j]['area']; + if (currentPoints.x > area[0] && currentPoints.x < area[2] && currentPoints.y > area[1] && currentPoints.y < area[3]) { + currentIndex = index; + break; + } + } + } + return currentIndex; + } + return currentIndex; +} + +function isInExactLegendArea(currentPoints, area) { + return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && + currentPoints.y < area.end.y; +} + +function isInExactChartArea(currentPoints, opts, config) { + return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] -10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2]; +} + +function findRadarChartCurrentIndex(currentPoints, radarData, count) { + var eachAngleArea = 2 * Math.PI / count; + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) { + var fixAngle = function fixAngle(angle) { + if (angle < 0) { + angle += 2 * Math.PI; + } + if (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + }; + + var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x); + angle = -1 * angle; + if (angle < 0) { + angle += 2 * Math.PI; + } + + var angleList = radarData.angleList.map(function(item) { + item = fixAngle(-1 * item); + + return item; + }); + + angleList.forEach(function(item, index) { + var rangeStart = fixAngle(item - eachAngleArea / 2); + var rangeEnd = fixAngle(item + eachAngleArea / 2); + if (rangeEnd < rangeStart) { + rangeEnd += 2 * Math.PI; + } + if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= + rangeEnd) { + currentIndex = index; + } + }); + } + + return currentIndex; +} + +function findFunnelChartCurrentIndex(currentPoints, funnelData) { + var currentIndex = -1; + for (var i = 0, len = funnelData.series.length; i < len; i++) { + var item = funnelData.series[i]; + if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findWordChartCurrentIndex(currentPoints, wordData) { + var currentIndex = -1; + for (var i = 0, len = wordData.length; i < len; i++) { + var item = wordData[i]; + if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findMapChartCurrentIndex(currentPoints, opts) { + var currentIndex = -1; + var cData=opts.chartData.mapData; + var data=opts.series; + var tmp=pointToCoordinate(currentPoints.y, currentPoints.x,cData.bounds,cData.scale,cData.xoffset,cData.yoffset); + var poi=[tmp.x, tmp.y]; + for (var i = 0, len = data.length; i < len; i++) { + var item = data[i].geometry.coordinates; + if(isPoiWithinPoly(poi,item)){ + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findPieChartCurrentIndex(currentPoints, pieData) { + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) { + var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x); + angle = -angle; + for (var i = 0, len = pieData.series.length; i < len; i++) { + var item = pieData.series[i]; + if (isInAngleRange(angle, item._start_, item._start_ + item._proportion_ * 2 * Math.PI)) { + currentIndex = i; + break; + } + } + } + + return currentIndex; +} + +function isInExactPieChartArea(currentPoints, center, radius) { + return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2); +} + +function splitPoints(points) { + var newPoints = []; + var items = []; + points.forEach(function(item, index) { + if (item !== null) { + items.push(item); + } else { + if (items.length) { + newPoints.push(items); + } + items = []; + } + }); + if (items.length) { + newPoints.push(items); + } + + return newPoints; +} + +function calLegendData(series, opts, config, chartData) { + let legendData = { + area: { + start: { + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 + }, + width: 0, + height: 0, + wholeWidth: 0, + wholeHeight: 0 + }, + points: [], + widthArr: [], + heightArr: [] + }; + if (opts.legend.show === false) { + chartData.legendData = legendData; + return legendData; + } + + let padding = opts.legend.padding; + let margin = opts.legend.margin; + let fontSize = opts.legend.fontSize; + let shapeWidth = 15 * opts.pixelRatio; + let shapeRight = 5 * opts.pixelRatio; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pixelRatio, fontSize); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + let legendList = []; + let widthCount = 0; + let widthCountArr = []; + let currentRow = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let itemWidth = shapeWidth + shapeRight + measureText(item.name || 'undefined', fontSize) + opts.legend.itemGap; + if (widthCount + itemWidth > opts.width - opts.padding[1] - opts.padding[3]) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap); + widthCount = itemWidth; + currentRow = [item]; + } else { + widthCount += itemWidth; + currentRow.push(item); + } + } + if (currentRow.length) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap); + legendData.widthArr = widthCountArr; + let legendWidth = Math.max.apply(null, widthCountArr); + switch (opts.legend.float) { + case 'left': + legendData.area.start.x = opts.padding[3]; + legendData.area.end.x = opts.padding[3] + 2 * padding; + break; + case 'right': + legendData.area.start.x = opts.width - opts.padding[1] - legendWidth - 2 * padding; + legendData.area.end.x = opts.width - opts.padding[1]; + break; + default: + legendData.area.start.x = (opts.width - legendWidth) / 2 - padding; + legendData.area.end.x = (opts.width + legendWidth) / 2 + padding; + } + legendData.area.width = legendWidth + 2 * padding; + legendData.area.wholeWidth = legendWidth + 2 * padding; + legendData.area.height = legendList.length * lineHeight + 2 * padding; + legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin; + legendData.points = legendList; + } + } else { + let len = series.length; + let maxHeight = opts.height - opts.padding[0] - opts.padding[2] - 2 * margin - 2 * padding; + let maxLength = Math.min(Math.floor(maxHeight / lineHeight), len); + legendData.area.height = maxLength * lineHeight + padding * 2; + legendData.area.wholeHeight = maxLength * lineHeight + padding * 2; + switch (opts.legend.float) { + case 'top': + legendData.area.start.y = opts.padding[0] + margin; + legendData.area.end.y = opts.padding[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.padding[2] - margin - legendData.area.height; + legendData.area.end.y = opts.height - opts.padding[2] - margin; + break; + default: + legendData.area.start.y = (opts.height - legendData.area.height) / 2; + legendData.area.end.y = (opts.height + legendData.area.height) / 2; + } + let lineNum = len % maxLength === 0 ? len / maxLength : Math.floor((len / maxLength) + 1); + let currentRow = []; + for (let i = 0; i < lineNum; i++) { + let temp = series.slice(i * maxLength, i * maxLength + maxLength); + currentRow.push(temp); + } + + legendData.points = currentRow; + + if (currentRow.length) { + for (let i = 0; i < currentRow.length; i++) { + let item = currentRow[i]; + let maxWidth = 0; + for (let j = 0; j < item.length; j++) { + let itemWidth = shapeWidth + shapeRight + measureText(item[j].name || 'undefined', fontSize) + opts.legend.itemGap; + if (itemWidth > maxWidth) { + maxWidth = itemWidth; + } + } + legendData.widthArr.push(maxWidth); + legendData.heightArr.push(item.length * lineHeight + padding * 2); + } + let legendWidth = 0 + for (let i = 0; i < legendData.widthArr.length; i++) { + legendWidth += legendData.widthArr[i]; + } + legendData.area.width = legendWidth - opts.legend.itemGap + 2 * padding; + legendData.area.wholeWidth = legendData.area.width + padding; + } + } + + switch (opts.legend.position) { + case 'top': + legendData.area.start.y = opts.padding[0] + margin; + legendData.area.end.y = opts.padding[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.padding[2] - legendData.area.height - margin; + legendData.area.end.y = opts.height - opts.padding[2] - margin; + break; + case 'left': + legendData.area.start.x = opts.padding[3]; + legendData.area.end.x = opts.padding[3] + legendData.area.width; + break; + case 'right': + legendData.area.start.x = opts.width - opts.padding[1] - legendData.area.width; + legendData.area.end.x = opts.width - opts.padding[1]; + break; + } + chartData.legendData = legendData; + return legendData; +} + +function calCategoriesData(categories, opts, config, eachSpacing) { + var result = { + angle: 0, + xAxisHeight: config.xAxisHeight + }; + var categoriesTextLenth = categories.map(function(item) { + return measureText(item,opts.xAxis.fontSize||config.fontSize); + }); + var maxTextLength = Math.max.apply(this, categoriesTextLenth); + + if (opts.xAxis.rotateLabel == true && maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) { + result.angle = 45 * Math.PI / 180; + result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle); + } + return result; +} + +function getXAxisTextList(series, opts, config) { + var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; + var data = dataCombine(series); + var sorted = []; + // remove null from data + data = data.filter(function(item) { + //return item !== null; + if (typeof item === 'object' && item !== null) { + if (item.constructor == Array) { + return item !== null; + } else { + return item.value !== null; + } + } else { + return item !== null; + } + }); + data.map(function(item) { + if (typeof item === 'object') { + if (item.constructor == Array) { + if(opts.type=='candle'){ + item.map(function(subitem) { + sorted.push(subitem); + }) + }else{ + sorted.push(item[0]); + } + } else { + sorted.push(item.value); + } + } else { + sorted.push(item); + } + }) + + var minData = 0; + var maxData = 0; + if (sorted.length > 0) { + minData = Math.min.apply(this, sorted); + maxData = Math.max.apply(this, sorted); + } + //为了兼容v1.9.0之前的项目 + if(index>-1){ + if (typeof opts.xAxis.data[index].min === 'number') { + minData = Math.min(opts.xAxis.data[index].min, minData); + } + if (typeof opts.xAxis.data[index].max === 'number') { + maxData = Math.max(opts.xAxis.data[index].max, maxData); + } + }else{ + if (typeof opts.xAxis.min === 'number') { + minData = Math.min(opts.xAxis.min, minData); + } + if (typeof opts.xAxis.max === 'number') { + maxData = Math.max(opts.xAxis.max, maxData); + } + } + + + if (minData === maxData) { + var rangeSpan = maxData || 10; + maxData += rangeSpan; + } + + var dataRange = getDataRange(minData, maxData); + var minRange = dataRange.minRange; + var maxRange = dataRange.maxRange; + + var range = []; + var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber; + + for (var i = 0; i <= opts.xAxis.splitNumber; i++) { + range.push(minRange + eachRange * i); + } + return range; +} + +function calXAxisData(series, opts, config){ + var result = { + angle: 0, + xAxisHeight: config.xAxisHeight + }; + + result.ranges = getXAxisTextList(series, opts, config); + result.rangesFormat = result.ranges.map(function(item){ + item = opts.xAxis.format? opts.xAxis.format(item):util.toFixed(item, 2); + return item; + }); + var xAxisScaleValues = result.ranges.map(function (item) { + // 如果刻度值是浮点数,则保留两位小数 + item = util.toFixed(item, 2); + // 若有自定义格式则调用自定义的格式化函数 + item = opts.xAxis.format ? opts.xAxis.format(Number(item)) : item; + return item; + }); + + result = Object.assign(result,getXAxisPoints(xAxisScaleValues, opts, config)); + // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\结束点以及总长 + var eachSpacing = result.eachSpacing; + + var textLength = xAxisScaleValues.map(function (item) { + return measureText(item); + }); + + // get max length of categories text + var maxTextLength = Math.max.apply(this, textLength); + + // 如果刻度值文本内容过长,则将其逆时针旋转45° + if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) { + result.angle = 45 * Math.PI / 180; + result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle); + } + + if (opts.xAxis.disabled === true) { + result.xAxisHeight = 0; + } + + return result; +} + +function getRadarDataPoints(angleList, center, radius, series, opts) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + + var radarOption = opts.extra.radar || {}; + radarOption.max = radarOption.max || 0; + var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series))); + + var data = []; + for (let i = 0; i < series.length; i++) { + let each = series[i]; + let listItem = {}; + listItem.color = each.color; + listItem.legendShape = each.legendShape; + listItem.pointShape = each.pointShape; + listItem.data = []; + each.data.forEach(function(item, index) { + let tmp = {}; + tmp.angle = angleList[index]; + + tmp.proportion = item / maxData; + tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * + process * Math.sin(tmp.angle), center); + listItem.data.push(tmp); + }); + + data.push(listItem); + } + + return data; +} + +function getPieDataPoints(series, radius) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + + var count = 0; + var _start_ = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0) { + item._proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + } + item._radius_ = radius; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._proportion_ * Math.PI; + } + + return series; +} + +function getFunnelDataPoints(series, radius) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + series = series.sort(function(a,b){return parseInt(b.data)-parseInt(a.data);}); + for (let i = 0; i < series.length; i++) { + series[i].radius = series[i].data/series[0].data*radius*process; + series[i]._proportion_ = series[i].data/series[0].data; + } + return series.reverse(); +} + +function getRoseDataPoints(series, type, minRadius, radius) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var count = 0; + var _start_ = 0; + + var dataArr = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + dataArr.push(item.data); + } + + var minData = Math.min.apply(null, dataArr); + var maxData = Math.max.apply(null, dataArr); + var radiusLength = radius - minRadius; + + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0 || type == 'area') { + item._proportion_ = item.data / count * process; + item._rose_proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + item._rose_proportion_ = item.data / count * process; + } + item._radius_ = minRadius + radiusLength * ((item.data - minData) / (maxData - minData)); + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._rose_proportion_ * Math.PI; + } + + return series; +} + +function getArcbarDataPoints(series, arcbarOption) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + if (process == 1) { + process = 0.999999; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + let totalAngle; + if (arcbarOption.type == 'circle') { + totalAngle = 2; + } else { + if (arcbarOption.endAngle < arcbarOption.startAngle) { + totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle; + } else{ + totalAngle = arcbarOption.startAngle - arcbarOption.endAngle; + } + } + item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle; + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getGaugeAxisPoints(categories, startAngle, endAngle) { + let totalAngle = startAngle - endAngle + 1; + let tempStartAngle = startAngle; + for (let i = 0; i < categories.length; i++) { + categories[i].value = categories[i].value === null ? 0 : categories[i].value; + categories[i]._startAngle_ = tempStartAngle; + categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle; + if (categories[i]._endAngle_ >= 2) { + categories[i]._endAngle_ = categories[i]._endAngle_ % 2; + } + tempStartAngle = categories[i]._endAngle_; + } + return categories; +} + +function getGaugeDataPoints(series, categories, gaugeOption) { + let process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (gaugeOption.pointer.color == 'auto') { + for (let i = 0; i < categories.length; i++) { + if (item.data <= categories[i].value) { + item.color = categories[i].color; + break; + } + } + } else { + item.color = gaugeOption.pointer.color; + } + let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle; + item._oldAngle_ = gaugeOption.oldAngle; + if (gaugeOption.oldAngle < gaugeOption.endAngle) { + item._oldAngle_ += 2; + } + if (item.data >= gaugeOption.oldData) { + item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle; + } else { + item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process; + } + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getPieTextMaxLength(series) { + series = getPieDataPoints(series); + let maxLength = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%'; + maxLength = Math.max(maxLength, measureText(text)); + } + + return maxLength; +} + +function fixColumeData(points, eachSpacing, columnLen, index, config, opts) { + return points.map(function(item) { + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / columnLen); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + if (item.width <= 0) { + item.width = 1; + } + item.x += (index + 0.5 - columnLen / 2) * item.width; + return item; + }); +} + +function fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) { + return points.map(function(item) { + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / 2); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + + if (index > 0) { + item.width -= 2 * border; + } + return item; + }); +} + +function fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) { + + return points.map(function(item, indexn) { + + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / 2); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + return item; + }); +} + +function getXAxisPoints(categories, opts, config) { + var spacingValid = opts.width - opts.area[1] - opts.area[3]; + var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length; + if((opts.type=='line' || opts.type=='area') && dataCount>1 && opts.xAxis.boundaryGap=='justify'){ + dataCount -=1; + } + var eachSpacing = spacingValid / dataCount; + + var xAxisPoints = []; + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + categories.forEach(function(item, index) { + xAxisPoints.push(startX + index * eachSpacing); + }); + if(opts.xAxis.boundaryGap !=='justify'){ + if (opts.enableScroll === true) { + xAxisPoints.push(startX + categories.length * eachSpacing); + } else { + xAxisPoints.push(endX); + } + } + return { + xAxisPoints: xAxisPoints, + startX: startX, + endX: endX, + eachSpacing: eachSpacing + }; +} + +function getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var cPoints = []; + item.forEach(function(items, indexs) { + var point = {}; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + var value = items.value || items; + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + cPoints.push(point); + }); + points.push(cPoints); + } + }); + + return points; +} + +function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var boundaryGap='center'; + if (opts.type == 'line'||opts.type == 'area'){ + boundaryGap=opts.xAxis.boundaryGap; + } + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + var validWidth = opts.width - opts.area[1] - opts.area[3]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index]; + var value = item; + if (typeof item === 'object' && item !== null) { + if (item.constructor == Array) { + let xranges,xminRange,xmaxRange; + xranges = [].concat(opts.chartData.xAxisData.ranges); + + xminRange = xranges.shift(); + xmaxRange = xranges.pop(); + value = item[1]; + point.x = opts.area[3]+ validWidth * (item[0] - xminRange) / (xmaxRange - xminRange); + } else { + value = item.value; + } + } + if(boundaryGap=='center'){ + point.x += Math.round(eachSpacing / 2); + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + points.push(point); + } + }); + + return points; +} + +function getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) { + var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + + if (seriesIndex > 0) { + var value = 0; + for (let i = 0; i <= seriesIndex; i++) { + value += stackSeries[i].data[index]; + } + var value0 = value - item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = validHeight * (value0 - minRange) / (maxRange - minRange); + } else { + var value = item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = 0; + } + var heightc = height0; + height *= process; + heightc *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + point.y0 = opts.height - Math.round(heightc) - opts.area[2]; + points.push(point); + } + }); + + return points; +} + +function getYAxisTextList(series, opts, config, stack) { + var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; + var data; + if (stack == 'stack') { + data = dataCombineStack(series, opts.categories.length); + } else { + data = dataCombine(series); + } + var sorted = []; + // remove null from data + data = data.filter(function(item) { + //return item !== null; + if (typeof item === 'object' && item !== null) { + if (item.constructor == Array) { + return item !== null; + } else { + return item.value !== null; + } + } else { + return item !== null; + } + }); + data.map(function(item) { + if (typeof item === 'object') { + if (item.constructor == Array) { + if(opts.type=='candle'){ + item.map(function(subitem) { + sorted.push(subitem); + }) + }else{ + sorted.push(item[1]); + } + } else { + sorted.push(item.value); + } + } else { + sorted.push(item); + } + }) + + var minData = 0; + var maxData = 0; + if (sorted.length > 0) { + minData = Math.min.apply(this, sorted); + maxData = Math.max.apply(this, sorted); + } + //为了兼容v1.9.0之前的项目 + if(index>-1){ + if (typeof opts.yAxis.data[index].min === 'number') { + minData = Math.min(opts.yAxis.data[index].min, minData); + } + if (typeof opts.yAxis.data[index].max === 'number') { + maxData = Math.max(opts.yAxis.data[index].max, maxData); + } + }else{ + if (typeof opts.yAxis.min === 'number') { + minData = Math.min(opts.yAxis.min, minData); + } + if (typeof opts.yAxis.max === 'number') { + maxData = Math.max(opts.yAxis.max, maxData); + } + } + + + if (minData === maxData) { + var rangeSpan = maxData || 10; + maxData += rangeSpan; + } + + var dataRange = getDataRange(minData, maxData); + var minRange = dataRange.minRange; + var maxRange = dataRange.maxRange; + + var range = []; + var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber; + + for (var i = 0; i <= opts.yAxis.splitNumber; i++) { + range.push(minRange + eachRange * i); + } + return range.reverse(); +} + +function calYAxisData(series, opts, config) { + //堆叠图重算Y轴 + var columnstyle = assign({}, { + type: "" + }, opts.extra.column); + //如果是多Y轴,重新计算 + var YLength = opts.yAxis.data.length; + var newSeries=new Array(YLength); + if(YLength>0){ + for(let i=0;i= 2) { + nowAngle = nowAngle % 2; + } + nowNumber += splitNumber; + } + +} + +function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) { + var radarOption = opts.extra.radar || {}; + radius += config.radarLabelTextMargin; + + angleList.forEach(function(angle, index) { + var pos = { + x: radius * Math.cos(angle), + y: radius * Math.sin(angle) + }; + var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition); + var startX = posRelativeCanvas.x; + var startY = posRelativeCanvas.y; + if (util.approximatelyEqual(pos.x, 0)) { + startX -= measureText(opts.categories[index] || '') / 2; + } else if (pos.x < 0) { + startX -= measureText(opts.categories[index] || ''); + } + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(radarOption.labelColor || '#666666'); + context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2); + context.closePath(); + context.stroke(); + }); + +} + +function drawPieText(series, opts, config, context, radius, center) { + var lineRadius = config.pieChartLinePadding; + var textObjectCollection = []; + var lastTextObject = null; + + var seriesConvert = series.map(function(item) { + var text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_.toFixed(4) * 100) +'%'; + if(item._rose_proportion_) item._proportion_=item._rose_proportion_; + var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2); + var color = item.color; + var radius = item._radius_; + return { + arc: arc, + text: text, + color: color, + radius: radius, + textColor: item.textColor, + textSize: item.textSize, + }; + }); + for (let i = 0; i < seriesConvert.length; i++) { + let item = seriesConvert[i]; + // line end + let orginX1 = Math.cos(item.arc) * (item.radius + lineRadius); + let orginY1 = Math.sin(item.arc) * (item.radius + lineRadius); + + // line start + let orginX2 = Math.cos(item.arc) * item.radius; + let orginY2 = Math.sin(item.arc) * item.radius; + + // text start + let orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding; + let orginY3 = orginY1; + let textWidth = measureText(item.text,item.textSize||config.fontSize); + let startY = orginY3; + + if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, { + x: orginX3 + })) { + if (orginX3 > 0) { + startY = Math.min(orginY3, lastTextObject.start.y); + } else if (orginX1 < 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + if (orginY3 > 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + startY = Math.min(orginY3, lastTextObject.start.y); + } + } + } + if (orginX3 < 0) { + orginX3 -= textWidth; + } + + let textObject = { + lineStart: { + x: orginX2, + y: orginY2 + }, + lineEnd: { + x: orginX1, + y: orginY1 + }, + start: { + x: orginX3, + y: startY + }, + width: textWidth, + height: config.fontSize, + text: item.text, + color: item.color, + textColor: item.textColor, + textSize: item.textSize + }; + lastTextObject = avoidCollision(textObject, lastTextObject); + textObjectCollection.push(lastTextObject); + } + + for (let i = 0; i < textObjectCollection.length; i++) { + let item = textObjectCollection[i]; + let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center); + let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center); + let textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center); + context.setLineWidth(1 * opts.pixelRatio); + context.setFontSize(config.fontSize); + context.beginPath(); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + let curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x; + let textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5; + context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(textPosition.x + item.width, textPosition.y); + context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFontSize(item.textSize || config.fontSize); + context.setFillStyle(item.textColor || '#666666'); + context.fillText(item.text, textStartX, textPosition.y + 3); + context.closePath(); + context.stroke(); + context.closePath(); + } +} + +function drawToolTipSplitLine(offsetX, opts, config, context) { + var toolTipOption = opts.extra.tooltip || {}; + toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType; + toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength; + var startY = opts.area[0]; + var endY = opts.height - opts.area[2]; + + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(offsetX, startY); + context.lineTo(offsetX, endY); + context.stroke(); + context.setLineDash([]); + + if (toolTipOption.xAxisLabel) { + let labelText = opts.categories[opts.tooltip.index]; + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize); + + let textX = offsetX - 0.5 * textWidth; + let textY = endY; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity)); + context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground); + context.setLineWidth(1 * opts.pixelRatio); + context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding); + context.closePath(); + context.stroke(); + context.fill(); + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.labelFontColor || config.fontColor); + context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize); + context.closePath(); + context.stroke(); + } +} + +function drawMarkLine(opts, config, context) { + let markLineOption = assign({}, { + type: 'solid', + dashLength: 4, + data: [] + }, opts.extra.markLine); + let startX = opts.area[3]; + let endX = opts.width - opts.area[1]; + let points = calMarkLineData(markLineOption.data, opts); + + for (let i = 0; i < points.length; i++) { + let item = assign({}, { + lineColor: '#DE4A42', + showLabel: false, + labelFontColor: '#666666', + labelBgColor: '#DFE8FF', + labelBgOpacity: 0.8, + yAxisIndex: 0 + }, points[i]); + + if (markLineOption.type == 'dash') { + context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]); + } + context.setStrokeStyle(item.lineColor); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(startX, item.y); + context.lineTo(endX, item.y); + context.stroke(); + context.setLineDash([]); + if (item.showLabel) { + let labelText = opts.yAxis.format ? opts.yAxis.format(Number(item.value)) : item.value; + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize); + let bgStartX = opts.padding[3] + config.yAxisTitleWidth - config.toolTipPadding; + let bgEndX = Math.max(opts.area[3], textWidth + config.toolTipPadding * 2); + let bgWidth = bgEndX - bgStartX; + + let textX = bgStartX + (bgWidth - textWidth) / 2; + let textY = item.y; + context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity)); + context.setStrokeStyle(item.labelBgColor); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding); + context.closePath(); + context.stroke(); + context.fill(); + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(item.labelFontColor); + context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize); + context.stroke(); + } + } +} + +function drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) { + var toolTipOption = assign({}, { + gridType: 'solid', + dashLength: 4 + }, opts.extra.tooltip); + + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(startX, opts.tooltip.offset.y); + context.lineTo(endX, opts.tooltip.offset.y); + context.stroke(); + context.setLineDash([]); + + if (toolTipOption.yAxisLabel) { + let labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing); + let widthArr = opts.chartData.yAxisData.yAxisWidth; + let tStartLeft=opts.area[3]; + let tStartRight=opts.width-opts.area[1]; + for(let i=0;i opts.width) { + isOverRightBorder = true; + } + if (toolTipHeight + offset.y > opts.height) { + offset.y = opts.height - toolTipHeight; + } + // draw background rect + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity)); + if (isOverRightBorder) { + context.moveTo(offset.x, offset.y + 10 * opts.pixelRatio); + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pixelRatio - 5 * opts.pixelRatio); + context.lineTo(offset.x - arrowWidth, offset.y); + context.lineTo(offset.x - arrowWidth - Math.round(toolTipWidth), offset.y); + context.lineTo(offset.x - arrowWidth - Math.round(toolTipWidth), offset.y + toolTipHeight); + context.lineTo(offset.x - arrowWidth, offset.y + toolTipHeight); + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pixelRatio + 5 * opts.pixelRatio); + context.lineTo(offset.x, offset.y + 10 * opts.pixelRatio); + } else { + context.moveTo(offset.x, offset.y + 10 * opts.pixelRatio); + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pixelRatio - 5 * opts.pixelRatio); + context.lineTo(offset.x + arrowWidth, offset.y); + context.lineTo(offset.x + arrowWidth + Math.round(toolTipWidth), offset.y); + context.lineTo(offset.x + arrowWidth + Math.round(toolTipWidth), offset.y + toolTipHeight); + context.lineTo(offset.x + arrowWidth, offset.y + toolTipHeight); + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pixelRatio + 5 * opts.pixelRatio); + context.lineTo(offset.x, offset.y + 10 * opts.pixelRatio); + } + + context.closePath(); + context.fill(); + + // draw legend + textList.forEach(function(item, index) { + if (item.color !== null) { + context.beginPath(); + context.setFillStyle(item.color); + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding; + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + + config.toolTipPadding + 1; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding; + } + context.fillRect(startX, startY, legendWidth, config.fontSize); + context.closePath(); + } + }); + + // draw text list + + textList.forEach(function(item, index) { + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight; + } + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + + config.toolTipPadding; + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.fontColor); + context.fillText(item.text, startX, startY + config.fontSize); + context.closePath(); + context.stroke(); + }); +} + +function drawYAxisTitle(title, opts, config, context) { + var startX = config.xAxisHeight + (opts.height - config.xAxisHeight - measureText(title)) / 2; + context.save(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.yAxis.titleFontColor || '#333333'); + context.translate(0, opts.height); + context.rotate(-90 * Math.PI / 180); + context.fillText(title, startX, opts.padding[3] + 0.5 * config.fontSize); + context.closePath(); + context.stroke(); + context.restore(); +} + +function drawColumnDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let columnOption = assign({}, { + type: 'group', + width: eachSpacing / 2, + meter: { + border: 4, + fillColor: '#FFFFFF' + } + }, opts.extra.column); + + let calPoints = []; + context.save(); + + let leftNum=-2; + let rightNum=xAxisPoints.length+2; + + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum=Math.floor(-opts._scrollDistance_/eachSpacing)-2; + rightNum=leftNum+opts.xAxis.itemCount+4; + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing); + } + + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(tooltipPoints); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + for(let i=0;ileftNum && ileftNum && i 0) { + height -= height0; + } + context.moveTo(startX, item.y); + context.fillRect(startX, item.y, item.width - 2, height); + context.closePath(); + context.fill(); + } + }; + break; + case 'meter': + // 绘制温度计数据图 + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meter.border); + if (seriesIndex == 0) { + for(let i=0;ileftNum && i 0) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(columnOption.meter.border * opts.pixelRatio); + context.moveTo(startX + columnOption.meter.border * 0.5, item.y + height); + context.lineTo(startX + columnOption.meter.border * 0.5, item.y + columnOption.meter.border * 0.5); + context.lineTo(startX + item.width - columnOption.meter.border * 0.5, item.y + columnOption.meter.border * 0.5); + context.lineTo(startX + item.width - columnOption.meter.border * 0.5, item.y + height); + context.stroke(); + } + } + }; + } else { + for(let i=0;ileftNum && i 5 && arguments[5] !== undefined ? arguments[5] : 1; + var candleOption = assign({}, { + color: {}, + average: {} + }, opts.extra.candle); + candleOption.color = assign({}, { + upLine: '#f04864', + upFill: '#f04864', + downLine: '#2fc25b', + downFill: '#2fc25b' + }, candleOption.color); + candleOption.average = assign({}, { + show: false, + name: [], + day: [], + color: config.colors + }, candleOption.average); + opts.extra.candle = candleOption; + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let calPoints = []; + + context.save(); + + let leftNum=-2; + let rightNum=xAxisPoints.length+2; + let leftSpace=0; + let rightSpace=opts.width+eachSpacing; + + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum=Math.floor(-opts._scrollDistance_/eachSpacing)-2; + rightNum=leftNum+opts.xAxis.itemCount+4; + leftSpace=-opts._scrollDistance_-eachSpacing+opts.area[3]; + rightSpace=leftSpace+(opts.xAxis.itemCount+4)*eachSpacing; + } + + //画均线 + if (candleOption.average.show) { + seriesMA.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + var splitPointList = splitPoints(points); + + for(let i=0;i leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x, item.y); + } + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + } + }); + } + //画K线 + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points); + + for(let i=0;ileftNum && i 0) { + context.setStrokeStyle(candleOption.color.upLine); + context.setFillStyle(candleOption.color.upFill); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(item[3].x, item[3].y); //顶点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点 + context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[2].x, item[2].y); //底点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点 + context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.moveTo(item[3].x, item[3].y); //顶点 + } else { + context.setStrokeStyle(candleOption.color.downLine); + context.setFillStyle(candleOption.color.downFill); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(item[3].x, item[3].y); //顶点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点 + context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[2].x, item[2].y); //底点 + context.lineTo(item[1].x, item[1].y); //收盘中间点 + context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点 + context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点 + context.lineTo(item[0].x, item[0].y); //开盘中间点 + context.moveTo(item[3].x, item[3].y); //顶点 + } + context.closePath(); + context.fill(); + context.stroke(); + } + } + }); + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawAreaDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var areaOption = assign({},{ + type: 'straight', + opacity: 0.2, + addLine: false, + width: 2, + gradient:false + },opts.extra.area); + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let endY = opts.height - opts.area[2]; + let calPoints = []; + + context.save(); + let leftSpace=0; + let rightSpace=opts.width+eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace=-opts._scrollDistance_-eachSpacing+opts.area[3]; + rightSpace=leftSpace+(opts.xAxis.itemCount+4)*eachSpacing; + } + + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + let data = eachSeries.data; + let points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + + let splitPointList = splitPoints(points); + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + // 绘制区域数 + context.beginPath(); + context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + if(areaOption.gradient){ + let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height-opts.area[2]); + gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity)); + gradient.addColorStop('1.0',hexToRgb("#FFFFFF", 0.1)); + context.setFillStyle(gradient); + }else{ + context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + } + context.setLineWidth(areaOption.width * opts.pixelRatio); + if (points.length > 1) { + let firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + context.moveTo(firstPoint.x, firstPoint.y); + let startPoint=0; + if (areaOption.type === 'curve') { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + let ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x, item.y); + } + }; + } else { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, endY); + context.lineTo(item.x - eachSpacing / 2, endY); + context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + + //画连线 + if (areaOption.addLine) { + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength?eachSeries.dashLength:8; + dashLength *= opts.pixelRatio; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(areaOption.width * opts.pixelRatio); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint=0; + if (areaOption.type === 'curve') { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + let ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x,item.y); + } + }; + } else { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + context.moveTo(points[0].x, points[0].y); + } + context.stroke(); + context.setLineDash([]); + } + } + + //画点 + if (opts.dataPointShape !== false) { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawLineDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var lineOption = assign({},{ + type: 'straight', + width: 2 + },opts.extra.line); + lineOption.width *=opts.pixelRatio; + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + var calPoints = []; + + context.save(); + let leftSpace=0; + let rightSpace=opts.width+eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftSpace=-opts._scrollDistance_-eachSpacing+opts.area[3]; + rightSpace=leftSpace+(opts.xAxis.itemCount+4)*eachSpacing; + } + + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points); + + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength?eachSeries.dashLength:8; + dashLength *= opts.pixelRatio; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(lineOption.width); + + splitPointList.forEach(function(points, index) { + + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint=0; + if (lineOption.type === 'curve') { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x, item.y); + } + }; + } else { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + context.moveTo(points[0].x, points[0].y); + } + + }); + + context.stroke(); + context.setLineDash([]); + + if (opts.dataPointShape !== false) { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing + }; +} + +function drawMixDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let endY = opts.height - opts.area[2]; + let calPoints = []; + + var columnIndex = 0; + var columnLength = 0; + series.forEach(function(eachSeries, seriesIndex) { + if (eachSeries.type == 'column') { + columnLength += 1; + } + }); + context.save(); + let leftNum=-2; + let rightNum=xAxisPoints.length+2; + let leftSpace=0; + let rightSpace=opts.width+eachSpacing; + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + leftNum=Math.floor(-opts._scrollDistance_/eachSpacing)-2; + rightNum=leftNum+opts.xAxis.itemCount+4; + leftSpace=-opts._scrollDistance_-eachSpacing+opts.area[3]; + rightSpace=leftSpace+(opts.xAxis.itemCount+4)*eachSpacing; + } + + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + + // 绘制柱状数据图 + if (eachSeries.type == 'column') { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + for(let i=0;ileftNum && i 1) { + var firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + context.moveTo(firstPoint.x, firstPoint.y); + let startPoint=0; + if (eachSeries.style === 'curve') { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }; + } else { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + }; + } + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, endY); + context.lineTo(item.x - eachSpacing / 2, endY); + context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + } + } + + // 绘制折线数据图 + if (eachSeries.type == 'line') { + var splitPointList = splitPoints(points); + splitPointList.forEach(function(points, index) { + if (eachSeries.lineType == 'dash') { + let dashLength = eachSeries.dashLength?eachSeries.dashLength:8; + dashLength *= opts.pixelRatio; + context.setLineDash([dashLength, dashLength]); + } + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(2 * opts.pixelRatio); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + let startPoint=0; + if (eachSeries.style == 'curve') { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + var ctrlPoint = createCurveControlPoints(points, j - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x,item.y); + } + } + } else { + for(let j=0;j leftSpace){ + context.moveTo(item.x, item.y); + startPoint=1; + } + if (j > 0 && item.x > leftSpace && item.x < rightSpace) { + context.lineTo(item.x, item.y); + } + } + } + context.moveTo(points[0].x, points[0].y); + } + context.stroke(); + context.setLineDash([]); + }); + } + + // 绘制点数据图 + if (eachSeries.type == 'point') { + eachSeries.addPoint = true; + } + + if (eachSeries.addPoint == true && eachSeries.type !== 'column' ) { + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + }); + if (opts.dataLabel !== false && process === 1) { + var columnIndex = 0; + series.forEach(function(eachSeries, seriesIndex) { + let ranges,minRange,maxRange; + + ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]); + minRange = ranges.pop(); + maxRange = ranges.shift(); + + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + if (eachSeries.type !== 'column') { + drawPointText(points, eachSeries, config, context); + } else { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + drawPointText(points, eachSeries, config, context); + columnIndex += 1; + } + + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + } +} + +function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) { + var toolTipOption = opts.extra.tooltip || {}; + if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'candle' || opts.type == 'mix')) { + drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) + } + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints); + } + context.restore(); + +} + +function drawXAxis(categories, opts, config, context) { + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + startX = xAxisData.startX, + endX = xAxisData.endX, + eachSpacing = xAxisData.eachSpacing; + var boundaryGap='center'; + if (opts.type == 'line'||opts.type == 'area'){ + boundaryGap=opts.xAxis.boundaryGap; + } + var startY = opts.height - opts.area[2]; + var endY = opts.area[0]; + + //绘制滚动条 + if (opts.enableScroll && opts.xAxis.scrollShow) { + var scrollY = opts.height - opts.area[2] + config.xAxisHeight; + var scrollScreenWidth = endX - startX; + var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1); + var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth; + var scrollLeft = 0; + if (opts._scrollDistance_) { + scrollLeft = -opts._scrollDistance_ * (scrollScreenWidth) / scrollTotalWidth; + } + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pixelRatio); + context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || "#EFEBEF"); + context.moveTo(startX, scrollY); + context.lineTo(endX, scrollY); + context.stroke(); + context.closePath(); + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pixelRatio); + context.setStrokeStyle(opts.xAxis.scrollColor || "#A6A6A6"); + context.moveTo(startX + scrollLeft, scrollY); + context.lineTo(startX + scrollLeft + scrollWidth, scrollY); + context.stroke(); + context.closePath(); + context.setLineCap('butt'); + } + + context.save(); + + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + + //绘制X轴刻度线 + if (opts.xAxis.calibration === true) { + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + context.setLineCap('butt'); + context.setLineWidth(1 * opts.pixelRatio); + xAxisPoints.forEach(function(item, index) { + if (index > 0) { + context.beginPath(); + context.moveTo(item - eachSpacing / 2, startY); + context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pixelRatio); + context.closePath(); + context.stroke(); + } + }); + } + //绘制X轴网格 + if (opts.xAxis.disableGrid !== true) { + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + context.setLineCap('butt'); + context.setLineWidth(1 * opts.pixelRatio); + if (opts.xAxis.gridType == 'dash') { + context.setLineDash([opts.xAxis.dashLength, opts.xAxis.dashLength]); + } + opts.xAxis.gridEval = opts.xAxis.gridEval || 1; + xAxisPoints.forEach(function(item, index) { + if (index % opts.xAxis.gridEval == 0) { + context.beginPath(); + context.moveTo(item, startY); + context.lineTo(item, endY); + context.stroke(); + } + }); + context.setLineDash([]); + } + + + //绘制X轴文案 + if (opts.xAxis.disabled !== true) { + // 对X轴列表做抽稀处理 + //默认全部显示X轴标签 + let maxXAxisListLength = categories.length; + //如果设置了X轴单屏数量 + if (opts.xAxis.labelCount) { + //如果设置X轴密度 + if (opts.xAxis.itemCount) { + maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount); + } else { + maxXAxisListLength = opts.xAxis.labelCount; + } + maxXAxisListLength -= 1; + } + + let ratio = Math.ceil(categories.length / maxXAxisListLength); + + let newCategories = []; + let cgLength = categories.length; + for (let i = 0; i < cgLength; i++) { + if (i % ratio !== 0) { + newCategories.push(""); + } else { + newCategories.push(categories[i]); + } + } + newCategories[cgLength - 1] = categories[cgLength - 1]; + + var xAxisFontSize = opts.xAxis.fontSize || config.fontSize; + if (config._xAxisTextAngle_ === 0) { + newCategories.forEach(function(item, index) { + var offset = - measureText(String(item), xAxisFontSize) / 2; + if(boundaryGap == 'center'){ + offset+=eachSpacing / 2; + } + var scrollHeight=0; + if(opts.xAxis.scrollShow){ + scrollHeight=6*opts.pixelRatio; + } + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + context.fillText(String(item), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2); + context.closePath(); + context.stroke(); + }); + + } else { + newCategories.forEach(function(item, index) { + context.save(); + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + var textWidth = measureText(String(item),xAxisFontSize); + var offset = - textWidth; + if(boundaryGap == 'center'){ + offset+=eachSpacing / 2; + } + var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height), + transX = _calRotateTranslate.transX, + transY = _calRotateTranslate.transY; + + context.rotate(-1 * config._xAxisTextAngle_); + context.translate(transX, transY); + context.fillText(String(item), xAxisPoints[index] + offset, startY + xAxisFontSize + 5); + context.closePath(); + context.stroke(); + context.restore(); + }); + } + } + context.restore(); + + //绘制X轴轴线 + if(opts.xAxis.axisLine){ + context.beginPath(); + context.setStrokeStyle(opts.xAxis.axisLineColor); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(startX,opts.height-opts.area[2]); + context.lineTo(endX,opts.height-opts.area[2]); + context.stroke(); + } +} + +function drawYAxisGrid(categories, opts, config, context) { + if (opts.yAxis.disableGrid === true) { + return; + } + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let eachSpacing = spacingValid / opts.yAxis.splitNumber; + let startX = opts.area[3]; + let xAxisPoints = opts.chartData.xAxisData.xAxisPoints, + xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing; + let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1); + let endX = startX + TotalWidth; + + let points = []; + for (let i = 0; i < opts.yAxis.splitNumber + 1; i++) { + points.push(opts.height - opts.area[2] - eachSpacing * i); + } + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + + if (opts.yAxis.gridType == 'dash') { + context.setLineDash([opts.yAxis.dashLength, opts.yAxis.dashLength]); + } + context.setStrokeStyle(opts.yAxis.gridColor); + context.setLineWidth(1 * opts.pixelRatio); + points.forEach(function(item, index) { + context.beginPath(); + context.moveTo(startX, item); + context.lineTo(endX, item); + context.stroke(); + }); + context.setLineDash([]); + + context.restore(); +} + +function drawYAxis(series, opts, config, context) { + if (opts.yAxis.disabled === true) { + return; + } + var spacingValid = opts.height - opts.area[0] - opts.area[2]; + var eachSpacing = spacingValid / opts.yAxis.splitNumber; + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + var endY = opts.height - opts.area[2]; + var fillEndY = endY + config.xAxisHeight; + if (opts.xAxis.scrollShow) { + fillEndY -= 3 * opts.pixelRatio; + } + if (opts.xAxis.rotateLabel){ + fillEndY = opts.height - opts.area[2]+3; + } + // set YAxis background + context.beginPath(); + context.setFillStyle(opts.background || '#ffffff'); + if (opts._scrollDistance_ < 0) { + context.fillRect(0, 0, startX, fillEndY); + } + if(opts.enableScroll == true){ + context.fillRect(endX, 0, opts.width, fillEndY); + } + context.closePath(); + context.stroke(); + + var points = []; + for (let i = 0; i <= opts.yAxis.splitNumber; i++) { + points.push(opts.area[0] + eachSpacing * i); + } + + let tStartLeft=opts.area[3]; + let tStartRight=opts.width-opts.area[1]; + + for (let i = 0; i < opts.yAxis.data.length; i++) { + let yData = opts.yAxis.data[i]; + if(yData.disabled !== true){ + let rangesFormat = opts.chartData.yAxisData.rangesFormat[i]; + let yAxisFontSize = yData.fontSize || config.fontSize; + let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i]; + //画Y轴刻度及文案 + rangesFormat.forEach(function(item, index) { + var pos = points[index] ? points[index] : endY; + context.beginPath(); + context.setFontSize(yAxisFontSize); + context.setLineWidth(1*opts.pixelRatio); + context.setStrokeStyle(yData.axisLineColor||'#cccccc'); + context.setFillStyle(yData.fontColor|| '#666666'); + if(yAxisWidth.position=='left'){ + context.fillText(String(item), tStartLeft - yAxisWidth.width , pos + yAxisFontSize / 2); + //画刻度线 + if(yData.calibration==true){ + context.moveTo(tStartLeft,pos); + context.lineTo(tStartLeft - 3*opts.pixelRatio,pos); + } + }else{ + context.fillText(String(item), tStartRight + 4*opts.pixelRatio, pos + yAxisFontSize / 2); + //画刻度线 + if(yData.calibration==true){ + context.moveTo(tStartRight,pos); + context.lineTo(tStartRight + 3*opts.pixelRatio,pos); + } + } + context.closePath(); + context.stroke(); + }); + //画Y轴轴线 + if (yData.axisLine!==false) { + context.beginPath(); + context.setStrokeStyle(yData.axisLineColor||'#cccccc'); + context.setLineWidth(1 * opts.pixelRatio); + if(yAxisWidth.position=='left'){ + context.moveTo(tStartLeft,opts.height-opts.area[2]); + context.lineTo(tStartLeft,opts.area[0]); + }else{ + context.moveTo(tStartRight,opts.height-opts.area[2]); + context.lineTo(tStartRight,opts.area[0]); + } + context.stroke(); + } + + //画Y轴标题 + if (opts.yAxis.showTitle) { + + let titleFontSize = yData.titleFontSize || config.fontSize; + let title = yData.title; + context.beginPath(); + context.setFontSize(titleFontSize); + context.setFillStyle(yData.titleFontColor || '#666666'); + if(yAxisWidth.position=='left'){ + context.fillText(title, tStartLeft - measureText(title,titleFontSize)/2, opts.area[0]-10*opts.pixelRatio); + }else{ + context.fillText(title,tStartRight - measureText(title,titleFontSize)/2, opts.area[0]-10*opts.pixelRatio); + } + context.closePath(); + context.stroke(); + } + if(yAxisWidth.position=='left'){ + tStartLeft -=(yAxisWidth.width + opts.yAxis.padding); + }else{ + tStartRight +=yAxisWidth.width+ opts.yAxis.padding; + } + } + } +} + +function drawLegend(series, opts, config, context, chartData) { + if (opts.legend.show === false) { + return; + } + let legendData = chartData.legendData; + let legendList = legendData.points; + let legendArea = legendData.area; + let padding = opts.legend.padding; + let fontSize = opts.legend.fontSize; + let shapeWidth = 15 * opts.pixelRatio; + let shapeRight = 5 * opts.pixelRatio; + let itemGap = opts.legend.itemGap; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pixelRatio, fontSize); + + //画背景及边框 + context.beginPath(); + context.setLineWidth(opts.legend.borderWidth); + context.setStrokeStyle(opts.legend.borderColor); + context.setFillStyle(opts.legend.backgroundColor); + context.moveTo(legendArea.start.x, legendArea.start.y); + context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height); + context.closePath(); + context.fill(); + context.stroke(); + + legendList.forEach(function(itemList, listIndex) { + let width = 0; + let height = 0; + width = legendData.widthArr[listIndex]; + height = legendData.heightArr[listIndex]; + let startX = 0; + let startY = 0; + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + startX = legendArea.start.x + (legendArea.width - width) / 2; + startY = legendArea.start.y + padding + listIndex * lineHeight; + } else { + if (listIndex == 0) { + width = 0; + } else { + width = legendData.widthArr[listIndex - 1]; + } + startX = legendArea.start.x + padding + width; + startY = legendArea.start.y + padding + (legendArea.height - height) / 2; + } + + context.setFontSize(config.fontSize); + for (let i = 0; i < itemList.length; i++) { + let item = itemList[i]; + item.area = [0, 0, 0, 0]; + item.area[0] = startX; + item.area[1] = startY; + item.area[3] = startY + lineHeight; + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor); + context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor); + switch (item.legendShape) { + case 'line': + context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pixelRatio, 15 * opts.pixelRatio, 4 * opts.pixelRatio); + break; + case 'triangle': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.lineTo(startX + 2.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 12.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + break; + case 'diamond': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.lineTo(startX + 2.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 12.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + break; + case 'circle': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.arc(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight, 5 * opts.pixelRatio, 0, 2 * Math.PI); + break; + case 'rect': + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio, 15 * opts.pixelRatio, 10 * opts.pixelRatio); + break; + default: + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio, 15 * opts.pixelRatio, 10 * opts.pixelRatio); + } + context.closePath(); + context.fill(); + context.stroke(); + + startX += shapeWidth + shapeRight; + let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2; + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor); + context.fillText(item.name, startX, startY + fontTrans); + context.closePath(); + context.stroke(); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + startX += measureText(item.name, fontSize) + itemGap; + item.area[2] = startX; + } else { + item.area[2] = startX + measureText(item.name, fontSize) + itemGap;; + startX -= shapeWidth + shapeRight; + startY += lineHeight; + } + } + }); +} + +function drawPieDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var pieOption = assign({}, { + activeOpacity: 0.5, + activeRadius: 10 * opts.pixelRatio, + offsetAngle: 0, + labelWidth: 15 * opts.pixelRatio, + ringWidth: 0, + border:false, + borderWidth:2, + borderColor:'#FFFFFF' + }, opts.extra.pie); + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = pieOption.activeRadius; + } + + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + + series = getPieDataPoints(series, radius, process); + + var activeRadius = pieOption.activeRadius; + + series = series.map(function(eachSeries) { + eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180; + return eachSeries; + }); + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, opts.extra.pie.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, + eachSeries._start_ + 2 * + eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(pieOption.borderWidth * opts.pixelRatio); + context.lineJoin = "round"; + context.setStrokeStyle(pieOption.borderColor); + context.setFillStyle(eachSeries.color); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (pieOption.border == true) { + context.stroke(); + } + }); + + if (opts.type === 'ring') { + var innerPieWidth = radius * 0.6; + if (typeof opts.extra.pie.ringWidth === 'number' && opts.extra.pie.ringWidth > 0) { + innerPieWidth = Math.max(0, radius - opts.extra.pie.ringWidth); + } + context.beginPath(); + context.setFillStyle(opts.background || '#ffffff'); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + } + + if (opts.dataLabel !== false && process === 1) { + var valid = false; + for (var i = 0, len = series.length; i < len; i++) { + if (series[i].data > 0) { + valid = true; + break; + } + } + + if (valid) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + } + + if (process === 1 && opts.type === 'ring') { + drawRingTitle(opts, config, context, centerPosition); + } + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawRoseDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var roseOption = assign({}, { + type: 'area', + activeOpacity: 0.5, + activeRadius: 10 * opts.pixelRatio, + offsetAngle: 0, + labelWidth: 15 * opts.pixelRatio, + border:false, + borderWidth:2, + borderColor:'#FFFFFF' + }, opts.extra.rose); + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = roseOption.activeRadius; + } + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + var minRadius = roseOption.minRadius || radius * 0.5; + + series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process); + + var activeRadius = roseOption.activeRadius; + + series = series.map(function(eachSeries) { + eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180; + return eachSeries; + }); + + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, + eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(roseOption.borderWidth * opts.pixelRatio); + context.lineJoin = "round"; + context.setStrokeStyle(roseOption.borderColor); + context.setFillStyle(eachSeries.color); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * + eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (roseOption.border == true) { + context.stroke(); + } + }); + + if (opts.dataLabel !== false && process === 1) { + var valid = false; + for (var i = 0, len = series.length; i < len; i++) { + if (series[i].data > 0) { + valid = true; + break; + } + } + + if (valid) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + } + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawArcbarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var arcbarOption = assign({}, { + startAngle: 0.75, + endAngle: 0.25, + type: 'default', + width: 12 * opts.pixelRatio, + gap:2 * opts.pixelRatio + }, opts.extra.arcbar); + + series = getArcbarDataPoints(series, arcbarOption, process); + + var centerPosition; + if(arcbarOption.center){ + centerPosition=arcbarOption.center; + }else{ + centerPosition= { + x: opts.width / 2, + y: opts.height / 2 + }; + } + + var radius; + if(arcbarOption.radius){ + radius=arcbarOption.radius; + }else{ + radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pixelRatio; + radius -= arcbarOption.width / 2; + } + + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + //背景颜色 + context.setLineWidth(arcbarOption.width); + context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9'); + context.setLineCap('round'); + context.beginPath(); + if (arcbarOption.type == 'default') { + context.arc(centerPosition.x, centerPosition.y, radius-(arcbarOption.width+arcbarOption.gap)*i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false); + } else { + context.arc(centerPosition.x, centerPosition.y, radius-(arcbarOption.width+arcbarOption.gap)*i, 0, 2 * Math.PI, false); + } + context.stroke(); + //进度条 + context.setLineWidth(arcbarOption.width); + context.setStrokeStyle(eachSeries.color); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, radius-(arcbarOption.width+arcbarOption.gap)*i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false); + context.stroke(); + } + + drawRingTitle(opts, config, context, centerPosition); + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawGaugeDataPoints(categories, series, opts, config, context) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var gaugeOption = assign({}, { + type:'default', + startAngle: 0.75, + endAngle: 0.25, + width: 15, + splitLine: { + fixRadius: 0, + splitNumber: 10, + width: 15, + color: '#FFFFFF', + childNumber: 5, + childWidth: 5 + }, + pointer: { + width: 15, + color: 'auto' + } + }, opts.extra.gauge); + + if (gaugeOption.oldAngle == undefined) { + gaugeOption.oldAngle = gaugeOption.startAngle; + } + if (gaugeOption.oldData == undefined) { + gaugeOption.oldData = 0; + } + categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle); + + var centerPosition = { + x: opts.width / 2, + y: opts.height / 2 + }; + var radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pixelRatio; + radius -= gaugeOption.width / 2; + var innerRadius = radius - gaugeOption.width; + var totalAngle=0; + + //判断仪表盘的样式:default百度样式,progress新样式 + if(gaugeOption.type == 'progress'){ + + //## 第一步画中心圆形背景和进度条背景 + //中心圆形背景 + var pieRadius = radius - gaugeOption.width*3; + context.beginPath(); + let gradient = context.createLinearGradient(centerPosition.x, centerPosition.y-pieRadius, centerPosition.x , centerPosition.y+pieRadius); + //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径) + gradient.addColorStop('0', hexToRgb(series[0].color, 0.3)); + gradient.addColorStop('1.0',hexToRgb("#FFFFFF", 0.1)); + context.setFillStyle(gradient); + context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2*Math.PI, false); + context.fill(); + //画进度条背景 + context.setLineWidth(gaugeOption.width); + context.setStrokeStyle(hexToRgb(series[0].color, 0.3)); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, innerRadius , gaugeOption.startAngle * Math.PI, gaugeOption.endAngle *Math.PI, false); + context.stroke(); + + //## 第二步画刻度线 + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber; + let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius; + let endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + let len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; + let proc = series[0].data * process; + for (let i = 0; i < len; i++) { + context.beginPath(); + //刻度线随进度变色 + if(proc>(i/len)){ + context.setStrokeStyle(hexToRgb(series[0].color, 1)); + }else{ + context.setStrokeStyle(hexToRgb(series[0].color, 0.3)); + } + context.setLineWidth(3 * opts.pixelRatio); + context.moveTo(startX, 0); + context.lineTo(endX, 0); + context.stroke(); + context.rotate(childAngle * Math.PI); + } + context.restore(); + + //## 第三步画进度条 + series = getArcbarDataPoints(series, gaugeOption, process); + context.setLineWidth(gaugeOption.width); + context.setStrokeStyle(series[0].color); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, innerRadius , gaugeOption.startAngle * Math.PI, series[0]._proportion_ *Math.PI, false); + context.stroke(); + + //## 第四步画指针 + let pointerRadius = radius - gaugeOption.width*2.5; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((series[0]._proportion_ - 1) * Math.PI); + context.beginPath(); + context.setLineWidth(gaugeOption.width/3); + let gradient3 = context.createLinearGradient(0, -pointerRadius*0.6, 0 , pointerRadius*0.6); + gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0)); + gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1)); + gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0)); + context.setStrokeStyle(gradient3); + context.arc(0, 0, pointerRadius , 0.85* Math.PI, 1.15 * Math.PI, false); + context.stroke(); + context.beginPath(); + context.setLineWidth(1); + context.setStrokeStyle(series[0].color); + context.setFillStyle(series[0].color); + context.moveTo(-pointerRadius-gaugeOption.width/3/2,-4); + context.lineTo(-pointerRadius-gaugeOption.width/3/2-4,0); + context.lineTo(-pointerRadius-gaugeOption.width/3/2,4); + context.lineTo(-pointerRadius-gaugeOption.width/3/2,-4); + context.stroke(); + context.fill(); + context.restore(); + + //default百度样式 + }else{ + //画背景 + context.setLineWidth(gaugeOption.width); + context.setLineCap('butt'); + for (let i = 0; i < categories.length; i++) { + let eachCategories = categories[i]; + context.beginPath(); + context.setStrokeStyle(eachCategories.color); + context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ *Math.PI, false); + context.stroke(); + } + context.save(); + + //画刻度线 + totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber; + let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius; + let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width; + let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth; + + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + + for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(2 * opts.pixelRatio); + context.moveTo(startX, 0); + context.lineTo(endX, 0); + context.stroke(); + context.rotate(splitAngle * Math.PI); + } + context.restore(); + + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + + for (let i = 0; i < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(startX, 0); + context.lineTo(childendX, 0); + context.stroke(); + context.rotate(childAngle * Math.PI); + } + context.restore(); + + //画指针 + series = getGaugeDataPoints(series, categories, gaugeOption, process); + + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((eachSeries._proportion_ - 1) * Math.PI); + context.beginPath(); + context.setFillStyle(eachSeries.color); + context.moveTo(gaugeOption.pointer.width, 0); + context.lineTo(0, -gaugeOption.pointer.width / 2); + context.lineTo(-innerRadius, 0); + context.lineTo(0, gaugeOption.pointer.width / 2); + context.lineTo(gaugeOption.pointer.width, 0); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFillStyle('#FFFFFF'); + context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false); + context.fill(); + context.restore(); + } + + if (opts.dataLabel !== false) { + drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context); + } + } + + //画仪表盘标题,副标题 + drawRingTitle(opts, config, context, centerPosition); + + if (process === 1 && opts.type === 'gauge') { + opts.extra.gauge.oldAngle = series[0]._proportion_; + opts.extra.gauge.oldData = series[0].data; + } + return { + center: centerPosition, + radius: radius, + innerRadius: innerRadius, + categories: categories, + totalAngle: totalAngle + }; +} + +function drawRadarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var radarOption = assign({},{ + gridColor: '#cccccc', + labelColor: '#666666', + opacity: 0.2, + gridCount:3 + },opts.extra.radar); + + var coordinateAngle = getRadarCoordinateSeries(opts.categories.length); + + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + + var radius = Math.min(centerPosition.x - (getMaxTextListLength(opts.categories) + config.radarLabelTextMargin), + centerPosition.y - config.radarLabelTextMargin); + //TODO逻辑不对 + radius -= opts.padding[1]; + + // draw grid + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(radarOption.gridColor); + coordinateAngle.forEach(function(angle) { + var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition); + context.moveTo(centerPosition.x, centerPosition.y); + context.lineTo(pos.x, pos.y); + }); + context.stroke(); + context.closePath(); + // draw split line grid + + var _loop = function _loop(i) { + var startPos = {}; + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(radarOption.gridColor); + coordinateAngle.forEach(function(angle, index) { + var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius / radarOption.gridCount * i * Math.sin(angle), centerPosition); + if (index === 0) { + startPos = pos; + context.moveTo(pos.x, pos.y); + } else { + context.lineTo(pos.x, pos.y); + } + }); + context.lineTo(startPos.x, startPos.y); + context.stroke(); + context.closePath(); + }; + + for (var i = 1; i <= radarOption.gridCount; i++) { + _loop(i); + } + + var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process); + + radarDataPoints.forEach(function(eachSeries, seriesIndex) { + // 绘制区域数据 + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity)); + eachSeries.data.forEach(function(item, index) { + if (index === 0) { + context.moveTo(item.position.x, item.position.y); + } else { + context.lineTo(item.position.x, item.position.y); + } + }); + context.closePath(); + context.fill(); + + if (opts.dataPointShape !== false) { + var points = eachSeries.data.map(function(item) { + return item.position; + }); + drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts); + } + }); + // draw label text + drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context); + + return { + center: centerPosition, + radius: radius, + angleList: coordinateAngle + }; +} + +function normalInt(min, max, iter) { + iter = iter==0?1:iter; + var arr = []; + for (var i = 0; i < iter; i++) { + arr[i] = Math.random(); + }; + return Math.floor(arr.reduce(function(i,j){return i+j})/iter*(max-min))+min; +}; + +function collisionNew(area,points,width,height){ + var isIn=false; + for(let i=0;ipoints[i].area[2]||area[1]>points[i].area[3]||area[2]width || area[3]>height){ + isIn=true; + break; + }else{ + isIn=false; + } + }else{ + isIn=true; + break; + } + } + } + return isIn; +}; + +function getBoundingBox(data) { + var bounds = {}, coords; + bounds.xMin = 180; + bounds.xMax = 0; + bounds.yMin = 90; + bounds.yMax = 0 + for (var i = 0; i < data.length; i++) { + var coorda = data[i].geometry.coordinates + for (var k = 0; k < coorda.length; k++) { + coords = coorda[k]; + if (coords.length == 1) { + coords = coords[0] + } + for (var j = 0; j < coords.length; j++) { + var longitude = coords[j][0]; + var latitude = coords[j][1]; + var point = { + x: longitude, + y: latitude + } + bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x; + bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x; + bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y; + bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y; + } + } + } + return bounds; +} + +function coordinateToPoint(latitude, longitude,bounds,scale,xoffset,yoffset) { + return { + x: (longitude - bounds.xMin) * scale+xoffset, + y: (bounds.yMax - latitude) * scale+yoffset + }; +} + +function pointToCoordinate(pointY, pointX,bounds,scale,xoffset,yoffset) { + return { + x: (pointX-xoffset)/scale+bounds.xMin, + y: bounds.yMax - (pointY-yoffset)/scale + }; +} + +function isRayIntersectsSegment(poi,s_poi,e_poi){ + if (s_poi[1]==e_poi[1]){return false;} + if (s_poi[1]>poi[1] && e_poi[1]>poi[1]){return false;} + if (s_poi[1]poi[1]){return false;} + if (e_poi[1]==poi[1] && s_poi[1]>poi[1]){return false;} + if (s_poi[0]0.7) { + return true; + }else {return false}; + }; + for (let i = 0; i < points.length; i++) { + let text = points[i].name; + let tHeight = points[i].textSize; + let tWidth = measureText(text,tHeight); + let isSpin = Spin(); + let x,y,area,areav; + let breaknum=0; + while(true) { + breaknum++; + let isCollision; + if (isSpin) { + x = normalInt(-opts.width/2, opts.width/2,5) - tWidth/2; + y = normalInt(-opts.height/2, opts.height/2,5)+tHeight/2; + area=[y-5-tWidth+opts.width/2,(-x-5+opts.height/2),y+5+opts.width/2,(-x+tHeight+5+opts.height/2)]; + areav=[opts.width-(opts.width/2-opts.height/2)-(-x+tHeight+5+opts.height/2)-5,(opts.height/2-opts.width/2)+(y-5-tWidth+opts.width/2)-5,opts.width-(opts.width/2-opts.height/2)-(-x+tHeight+5+opts.height/2)+tHeight,(opts.height/2-opts.width/2)+(y-5-tWidth+opts.width/2)+tWidth+5]; + isCollision = collisionNew(areav,points,opts.height,opts.width); + }else{ + x = normalInt(-opts.width/2, opts.width/2,5) - tWidth/2; + y = normalInt(-opts.height/2, opts.height/2,5)+tHeight/2; + area=[x-5+opts.width/2,y-5-tHeight+opts.height/2,x+tWidth+5+opts.width/2,y+5+opts.height/2]; + isCollision = collisionNew(area,points,opts.width,opts.height); + } + if (!isCollision) break; + if (breaknum==1000){ + area=[-1000,-1000,-1000,-1000]; + break; + } + }; + if (isSpin) { + points[i].area=areav; + points[i].areav=area; + }else{ + points[i].area=area; + } + points[i].rotate=isSpin; + }; + break; + } + return points; +} + + +function drawWordCloudDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let wordOption = assign({},{ + type: 'normal', + autoColors: true + },opts.extra.word); + + context.beginPath(); + context.setFillStyle(opts.background||'#FFFFFF'); + context.rect(0,0,opts.width,opts.height); + context.fill(); + context.save(); + let points = opts.chartData.wordCloudData; + context.translate(opts.width/2,opts.height/2); + + for(let i=0;i0){ + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + }else{ + context.fillText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + } + }else{ + context.fillText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + } + } + }else{ + if(points[i].area[0]>0){ + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + }else{ + context.fillText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + } + }else{ + context.fillText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + } + + } + } + + context.stroke(); + context.restore(); + } + context.restore(); +} + +function drawFunnelDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let funnelOption = assign({},{ + activeWidth:10, + activeOpacity:0.3, + border:false, + borderWidth:2, + borderColor:'#FFFFFF', + fillOpacity:1, + labelAlign:'right' + },opts.extra.funnel); + let eachSpacing = (opts.height - opts.area[0] - opts.area[2])/series.length; + let centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.height-opts.area[2] + }; + let activeWidth = funnelOption.activeWidth; + let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth); + series = getFunnelDataPoints(series, radius, process); + context.save(); + context.translate(centerPosition.x,centerPosition.y); + for(let i=0;i0){ + opts.area[3] += yAxisWidth[i].width + opts.yAxis.padding; + }else{ + opts.area[3] += yAxisWidth[i].width; + } + leftIndex +=1; + }else{ + if(rightIndex>0){ + opts.area[1] += yAxisWidth[i].width + opts.yAxis.padding; + }else{ + opts.area[1] += yAxisWidth[i].width; + } + rightIndex +=1; + } + } + }else{ + config.yAxisWidth = yAxisWidth; + } + opts.chartData.yAxisData = _calYAxisData; + + if (opts.categories && opts.categories.length) { + opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config); + let _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing), + xAxisHeight = _calCategoriesData.xAxisHeight, + angle = _calCategoriesData.angle; + config.xAxisHeight = xAxisHeight; + config._xAxisTextAngle_ = angle; + opts.area[2] += xAxisHeight; + opts.chartData.categoriesData = _calCategoriesData; + }else{ + if (opts.type === 'line' || opts.type === 'area' || opts.type === 'points') { + opts.chartData.xAxisData = calXAxisData(series, opts, config); + categories=opts.chartData.xAxisData.rangesFormat; + let _calCategoriesData = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing), + xAxisHeight = _calCategoriesData.xAxisHeight, + angle = _calCategoriesData.angle; + config.xAxisHeight = xAxisHeight; + config._xAxisTextAngle_ = angle; + opts.area[2] += xAxisHeight; + opts.chartData.categoriesData = _calCategoriesData; + }else{ + opts.chartData.xAxisData={ + xAxisPoints: [] + }; + } + } + //计算右对齐偏移距离 + if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) { + let offsetLeft = 0, + xAxisPoints = opts.chartData.xAxisData.xAxisPoints, + startX = opts.chartData.xAxisData.startX, + endX = opts.chartData.xAxisData.endX, + eachSpacing = opts.chartData.xAxisData.eachSpacing; + let totalWidth = eachSpacing * (xAxisPoints.length - 1); + let screenWidth = endX - startX; + offsetLeft = screenWidth - totalWidth; + _this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + opts._scrollDistance_ = offsetLeft; + } + + if (type === 'pie' || type === 'ring' || type === 'rose') { + config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA); + } + + switch (type) { + case 'word': + let wordOption = assign({},{ + type: 'normal', + autoColors: true + },opts.extra.word); + if(opts.updateData==true || opts.updateData==undefined){ + opts.chartData.wordCloudData=getWordCloudPoint(opts,wordOption.type); + } + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawWordCloudDataPoints(series, opts, config, context,process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'map': + context.clearRect(0, 0, opts.width, opts.height); + drawMapDataPoints(series, opts, config, context); + break; + case 'funnel': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'line': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process), + xAxisPoints = _drawLineDataPoints.xAxisPoints, + calPoints = _drawLineDataPoints.calPoints, + eachSpacing = _drawLineDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'mix': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process), + xAxisPoints = _drawMixDataPoints.xAxisPoints, + calPoints = _drawMixDataPoints.calPoints, + eachSpacing = _drawMixDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'column': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process), + xAxisPoints = _drawColumnDataPoints.xAxisPoints, + calPoints = _drawColumnDataPoints.calPoints, + eachSpacing = _drawColumnDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'area': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process), + xAxisPoints = _drawAreaDataPoints.xAxisPoints, + calPoints = _drawAreaDataPoints.calPoints, + eachSpacing = _drawAreaDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'ring': + case 'pie': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'rose': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'radar': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process); + drawLegend(opts.series, opts, config, context, opts.chartData); + drawToolTipBridge(opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'arcbar': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'gauge': + this.animationInstance = new Animation({ + timing: 'easeInOut', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + case 'candle': + this.animationInstance = new Animation({ + timing: 'easeIn', + duration: duration, + onProcess: function onProcess(process) { + context.clearRect(0, 0, opts.width, opts.height); + if (opts.rotate) { + contextRotate(context, opts); + } + drawYAxisGrid(categories, opts, config, context); + drawXAxis(categories, opts, config, context); + var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process), + xAxisPoints = _drawCandleDataPoints.xAxisPoints, + calPoints = _drawCandleDataPoints.calPoints, + eachSpacing = _drawCandleDataPoints.eachSpacing; + opts.chartData.xAxisPoints = xAxisPoints; + opts.chartData.calPoints = calPoints; + opts.chartData.eachSpacing = eachSpacing; + drawYAxis(series, opts, config, context); + if (opts.enableMarkLine !== false && process === 1) { + drawMarkLine(opts, config, context); + } + if (seriesMA) { + drawLegend(seriesMA, opts, config, context, opts.chartData); + } else { + drawLegend(opts.series, opts, config, context, opts.chartData); + } + drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints); + drawCanvas(opts, context); + }, + onAnimationFinish: function onAnimationFinish() { + _this.event.trigger('renderComplete'); + } + }); + break; + } +} + +// simple event implement + +function Event() { + this.events = {}; +} + +Event.prototype.addEventListener = function(type, listener) { + this.events[type] = this.events[type] || []; + this.events[type].push(listener); +}; + +Event.prototype.trigger = function() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var type = args[0]; + var params = args.slice(1); + if (!!this.events[type]) { + this.events[type].forEach(function(listener) { + try { + listener.apply(null, params); + } catch (e) { + console.error(e); + } + }); + } +}; + +var Charts = function Charts(opts) { + opts.pixelRatio = opts.pixelRatio ? opts.pixelRatio : 1; + opts.fontSize = opts.fontSize ? opts.fontSize * opts.pixelRatio : 13 * opts.pixelRatio; + opts.title = assign({}, opts.title); + opts.subtitle = assign({}, opts.subtitle); + opts.duration = opts.duration ? opts.duration : 1000; + opts.yAxis = assign({}, { + data:[], + showTitle:false, + disabled:false, + disableGrid:false, + splitNumber:5, + gridType: 'solid', + dashLength: 4 * opts.pixelRatio, + gridColor:'#cccccc', + padding:10, + fontColor:'#666666' + }, opts.yAxis); + opts.yAxis.dashLength *= opts.pixelRatio; + opts.yAxis.padding *= opts.pixelRatio; + opts.xAxis = assign({}, { + rotateLabel: false, + type: 'calibration', + gridType: 'solid', + dashLength: 4, + scrollAlign: 'left', + boundaryGap:'center', + axisLine:true, + axisLineColor:'#cccccc' + }, opts.xAxis); + opts.xAxis.dashLength *= opts.pixelRatio; + opts.legend = assign({}, { + show: true, + position: 'bottom', + float: 'center', + backgroundColor: 'rgba(0,0,0,0)', + borderColor: 'rgba(0,0,0,0)', + borderWidth: 0, + padding: 5, + margin: 5, + itemGap: 10, + fontSize: opts.fontSize, + lineHeight: opts.fontSize, + fontColor: '#333333', + format: {}, + hiddenColor: '#CECECE' + }, opts.legend); + opts.legend.borderWidth = opts.legend.borderWidth * opts.pixelRatio; + opts.legend.itemGap = opts.legend.itemGap * opts.pixelRatio; + opts.legend.padding = opts.legend.padding * opts.pixelRatio; + opts.legend.margin = opts.legend.margin * opts.pixelRatio; + opts.extra = assign({}, opts.extra); + opts.rotate = opts.rotate ? true : false; + opts.animation = opts.animation ? true : false; + opts.rotate = opts.rotate ? true : false; + + let config$$1 = JSON.parse(JSON.stringify(config)); + config$$1.colors = opts.colors ? opts.colors : config$$1.colors; + config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0; + if (opts.type == 'pie' || opts.type == 'ring') { + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pixelRatio || config$$1.pieChartLinePadding * opts.pixelRatio; + } + if (opts.type == 'rose') { + config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pixelRatio || config$$1.pieChartLinePadding * opts.pixelRatio; + } + config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pixelRatio; + config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit; + + //屏幕旋转 + config$$1.rotate = opts.rotate; + if (opts.rotate) { + let tempWidth = opts.width; + let tempHeight = opts.height; + opts.width = tempHeight; + opts.height = tempWidth; + } + + //适配高分屏 + opts.padding = opts.padding ? opts.padding : config$$1.padding; + for (let i = 0; i < 4; i++) { + opts.padding[i] *= opts.pixelRatio; + } + config$$1.yAxisWidth = config.yAxisWidth * opts.pixelRatio; + config$$1.xAxisHeight = config.xAxisHeight * opts.pixelRatio; + if (opts.enableScroll && opts.xAxis.scrollShow) { + config$$1.xAxisHeight += 6 * opts.pixelRatio; + } + config$$1.xAxisLineHeight = config.xAxisLineHeight * opts.pixelRatio; + config$$1.fontSize = opts.fontSize; + config$$1.titleFontSize = config.titleFontSize * opts.pixelRatio; + config$$1.subtitleFontSize = config.subtitleFontSize * opts.pixelRatio; + config$$1.toolTipPadding = config.toolTipPadding * opts.pixelRatio; + config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pixelRatio; + config$$1.columePadding = config.columePadding * opts.pixelRatio; + opts.$this = opts.$this ? opts.$this : this; + + this.context = uni.createCanvasContext(opts.canvasId, opts.$this); + /* 兼容原生H5 + this.context = document.getElementById(opts.canvasId).getContext("2d"); + this.context.setStrokeStyle = function(e){ return this.strokeStyle=e; } + this.context.setLineWidth = function(e){ return this.lineWidth=e; } + this.context.setLineCap = function(e){ return this.lineCap=e; } + this.context.setFontSize = function(e){ return this.font=e+"px sans-serif"; } + this.context.setFillStyle = function(e){ return this.fillStyle=e; } + this.context.draw = function(){ } + */ + + opts.chartData = {}; + this.event = new Event(); + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + + this.opts = opts; + this.config = config$$1; + + drawCharts.call(this, opts.type, opts, config$$1, this.context); +}; + +Charts.prototype.updateData = function() { + let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + this.opts = assign({}, this.opts, data); + this.opts.updateData = true; + let scrollPosition = data.scrollPosition || 'current'; + switch (scrollPosition) { + case 'current': + this.opts._scrollDistance_ = this.scrollOption.currentOffset; + break; + case 'left': + this.opts._scrollDistance_ = 0; + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + break; + case 'right': + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config), + yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let totalWidth = eachSpacing * (xAxisPoints.length - 1); + let screenWidth = endX - startX; + offsetLeft = screenWidth - totalWidth; + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + this.opts._scrollDistance_ = offsetLeft; + break; + } + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +Charts.prototype.zoom = function() { + var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount; + if (this.opts.enableScroll !== true) { + console.log('请启用滚动条后使用!') + return; + } + //当前屏幕中间点 + let centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round( + this.opts.xAxis.itemCount / 2); + this.opts.animation = false; + this.opts.xAxis.itemCount = val.itemCount; + //重新计算x轴偏移距离 + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config), + yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let centerLeft = eachSpacing * centerPoint; + let screenWidth = endX - startX; + let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1); + offsetLeft = screenWidth / 2 - centerLeft; + if (offsetLeft > 0) { + offsetLeft = 0; + } + if (offsetLeft < MaxLeft) { + offsetLeft = MaxLeft; + } + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + this.opts._scrollDistance_ = offsetLeft; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +Charts.prototype.stopAnimation = function() { + this.animationInstance && this.animationInstance.stop(); +}; + +Charts.prototype.addEventListener = function(type, listener) { + this.event.addEventListener(type, listener); +}; + +Charts.prototype.getCurrentDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose') { + return findPieChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.pieData); + } else if (this.opts.type === 'radar') { + return findRadarChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.radarData, this.opts.categories.length); + } else if (this.opts.type === 'funnel') { + return findFunnelChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.funnelData); + } else if (this.opts.type === 'map') { + return findMapChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts); + }else if (this.opts.type === 'word') { + return findWordChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.wordCloudData); + } else { + return findCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset)); + } + } + return -1; +}; + +Charts.prototype.getLegendDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + return findLegendIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.legendData); + } + return -1; +}; + +Charts.prototype.touchLegend = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + var _touches$ = getTouches(touches, this.opts, e); + var index = this.getLegendDataIndex(e); + if (index >= 0) { + this.opts.series[index].show = !this.opts.series[index].show; + this.opts.animation = option.animation ? true : false; + this.opts._scrollDistance_= this.scrollOption.currentOffset; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); + } + } + +}; + +Charts.prototype.showToolTip = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (!touches) { + console.log("touchError"); + } + var _touches$ = getTouches(touches, this.opts, e); + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getToolTipData = getToolTipData(seriesData, this.opts.chartData.calPoints, index, this.opts.categories,option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'mix') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getMixToolTipData = getMixToolTipData(seriesData, this.opts.chartData.calPoints, index, this.opts.categories,option), + textList = _getMixToolTipData.textList, + offset = _getMixToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'candle') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts.chartData.calPoints, + index, this.opts.categories, this.opts.extra.candle, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose'||this.opts.type === 'funnel' ) { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = this.opts._series_[index]; + var textList = [{ + text: option.format ? option.format(seriesData) : seriesData.name + ': ' + seriesData.data, + color: seriesData.color + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'map'||this.opts.type === 'word') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = this.opts._series_[index]; + var textList = [{ + text: option.format ? option.format(seriesData) : seriesData.properties.name , + color: seriesData.color + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + opts.updateData = false; + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'radar') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var textList = seriesData.map(function(item) { + return { + text: option.format ? option.format(item) : item.name + ': ' + item.data, + color: item.color + }; + }); + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } +}; + +Charts.prototype.translate = function(distance) { + this.scrollOption = { + currentOffset: distance, + startTouchX: distance, + distance: 0, + lastMoveTime: 0 + }; + let opts = assign({}, this.opts, { + _scrollDistance_: distance, + animation: false + }); + drawCharts.call(this, this.opts.type, opts, this.config, this.context); +}; + +Charts.prototype.scrollStart = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + var _touches$ = getTouches(touches, this.opts, e); + if (touches && this.opts.enableScroll === true) { + this.scrollOption.startTouchX = _touches$.x; + } +}; + +Charts.prototype.scroll = function(e) { + if (this.scrollOption.lastMoveTime === 0) { + this.scrollOption.lastMoveTime = Date.now(); + } + let Limit = this.opts.extra.touchMoveLimit || 20; + let currMoveTime = Date.now(); + let duration = currMoveTime - this.scrollOption.lastMoveTime; + if (duration < Math.floor(1000 / Limit)) return; + this.scrollOption.lastMoveTime = currMoveTime; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches && this.opts.enableScroll === true) { + var _touches$ = getTouches(touches, this.opts, e); + var _distance; + _distance = _touches$.x - this.scrollOption.startTouchX; + var currentOffset = this.scrollOption.currentOffset; + var validDistance = calValidDistance(this,currentOffset + _distance, this.opts.chartData, this.config, this.opts); + this.scrollOption.distance = _distance = validDistance - currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset + _distance, + animation: false + }); + drawCharts.call(this, opts.type, opts, this.config, this.context); + return currentOffset + _distance; + } +}; + +Charts.prototype.scrollEnd = function(e) { + if (this.opts.enableScroll === true) { + var _scrollOption = this.scrollOption, + currentOffset = _scrollOption.currentOffset, + distance = _scrollOption.distance; + this.scrollOption.currentOffset = currentOffset + distance; + this.scrollOption.distance = 0; + } +}; +if (typeof module === "object" && typeof module.exports === "object") { + module.exports = Charts; + //export default Charts;//建议使用nodejs的module导出方式,如报错请使用export方式导出 +} diff --git a/mallplusui-uniapp-app2/components/u-charts/u-charts.min.js b/mallplusui-uniapp-app2/components/u-charts/u-charts.min.js new file mode 100644 index 0000000..ba10de5 --- /dev/null +++ b/mallplusui-uniapp-app2/components/u-charts/u-charts.min.js @@ -0,0 +1 @@ +'use strict';var config={yAxisWidth:15,yAxisSplit:5,xAxisHeight:15,xAxisLineHeight:15,legendHeight:15,yAxisTitleWidth:15,padding:[10,10,10,10],pixelRatio:1,rotate:!1,columePadding:3,fontSize:13,dataPointShape:["circle","circle","circle","circle"],colors:["#1890ff","#2fc25b","#facc14","#f04864","#8543e0","#90ed7d"],pieChartLinePadding:15,pieChartTextPadding:5,xAxisTextPadding:3,titleColor:"#333333",titleFontSize:20,subtitleColor:"#999999",subtitleFontSize:15,toolTipPadding:3,toolTipBackground:"#000000",toolTipOpacity:.7,toolTipLineHeight:20,radarLabelTextMargin:15,gaugeLabelTextMargin:15};let assign=function(e,...t){function i(e,t){for(let a in t)e[a]=e[a]&&"[object Object]"===e[a].toString()?i(e[a],t[a]):e[a]=t[a];return e}if(null==e)throw new TypeError("Cannot convert undefined or null to object");return!t||0>=t.length?e:(t.forEach(t=>{e=i(e,t)}),e)};var util={toFixed:function(e,t){return t=t||2,this.isFloat(e)&&(e=e.toFixed(t)),e},isFloat:function(e){return 0!=e%1},approximatelyEqual:function(e,t){return 1e-10>Math.abs(e-t)},isSameSign:function(e,t){var i=Math.abs;return i(e)===e&&i(t)===t||i(e)!==e&&i(t)!==t},isSameXCoordinateArea:function(e,t){return this.isSameSign(e.x,t.x)},isCollision:function(e,t){e.end={},e.end.x=e.start.x+e.width,e.end.y=e.start.y-e.height,t.end={},t.end.x=t.start.x+t.width,t.end.y=t.start.y-t.height;var i=t.start.x>e.end.x||t.end.xe.start.y||t.start.yi;)i*=10,a*=10;for(e="upper"===t?Math.ceil(e*a):Math.floor(e*a);0!=e%i;)"upper"===t?e++:e--;return e/a}function calCandleMA(e,t,i,a){let o=[];for(let n,l=0;l=l-n&&(r=n-l,e.event.trigger("scrollRight")),r}function isInAngleRange(e,t,i){function a(e){for(;0>e;)e+=2*o;for(;e>2*o;)e-=2*o;return e}var o=Math.PI;return e=a(e),t=a(t),i=a(i),t>i&&(i+=2*o,e=t&&e<=i}function calRotateTranslate(e,t,i){var a=e,o=i-t,n=a+(i-o-a)/1.4142135623730951;n*=-1;return{transX:n,transY:(i-o)*(1.4142135623730951-1)-(i-o-a)/1.4142135623730951}}function createCurveControlPoints(e,t){function i(e,t){return!!(e[t-1]&&e[t+1])&&(e[t].y>=n(e[t-1].y,e[t+1].y)||e[t].y<=o(e[t-1].y,e[t+1].y))}var o=Math.min,n=Math.max,l=.2,a=.2,r=null,s=null,d=null,h=null;if(1>t?(r=e[0].x+(e[1].x-e[0].x)*l,s=e[0].y+(e[1].y-e[0].y)*l):(r=e[t].x+(e[t+1].x-e[t-1].x)*l,s=e[t].y+(e[t+1].y-e[t-1].y)*l),t>e.length-3){var x=e.length-1;d=e[x].x-(e[x].x-e[x-1].x)*a,h=e[x].y-(e[x].y-e[x-1].y)*a}else d=e[t+1].x-(e[t+2].x-e[t].x)*a,h=e[t+1].y-(e[t+2].y-e[t].y)*a;return i(e,t+1)&&(h=e[t+1].y),i(e,t)&&(s=e[t].y),(s>=n(e[t].y,e[t+1].y)||s<=o(e[t].y,e[t+1].y))&&(s=e[t].y),(h>=n(e[t].y,e[t+1].y)||h<=o(e[t].y,e[t+1].y))&&(h=e[t+1].y),{ctrA:{x:r,y:s},ctrB:{x:d,y:h}}}function convertCoordinateOrigin(e,t,i){return{x:i.x+e,y:i.y-t}}function avoidCollision(e,t){if(t)for(;util.isCollision(e,t);)0e.start.x?e.start.y++:0t.data[1]-t.data[0]?s[1]=r:(t.data[0]e[o-1][1]&&(s[2]=l),t.data[3]t&&(n=i)}),n}function findLegendIndex(e,t){let i=-1;if(isInExactLegendArea(e,t.area)){let a=t.points,o=-1;for(let t,n=0,l=a.length;nn[0]&&e.xn[1]&&e.yt.start.x&&e.xt.start.y&&e.y=t.area[3]-10&&e.y>=t.area[0]&&e.y<=t.height-t.area[2]}function findRadarChartCurrentIndex(e,t,i){var a=Math.PI,o=2*a/i,n=-1;if(isInExactPieChartArea(e,t.center,t.radius)){var l=function(e){return 0>e&&(e+=2*a),e>2*a&&(e-=2*a),e},r=Math.atan2(t.center.y-e.y,e.x-t.center.x);r=-1*r,0>r&&(r+=2*a);var s=t.angleList.map(function(e){return e=l(-1*e),e});s.forEach(function(e,t){var i=l(e-o/2),s=l(e+o/2);s=i&&r<=s||r+2*a>=i&&r+2*a<=s)&&(n=t)})}return n}function findFunnelChartCurrentIndex(e,t){for(var a,o=-1,n=0,l=t.series.length;na.funnelArea[0]&&e.xa.funnelArea[1]&&e.ya.area[0]&&e.xa.area[1]&&e.yt.width-t.padding[1]-t.padding[3]?(a.push(g),p.push(n-t.legend.itemGap),n=l,g=[i]):(n+=l,g.push(i))}if(g.length){a.push(g),p.push(n-t.legend.itemGap),l.widthArr=p;let e=o.apply(null,p);switch(t.legend.float){case"left":l.area.start.x=t.padding[3],l.area.end.x=t.padding[3]+2*r;break;case"right":l.area.start.x=t.width-t.padding[1]-e-2*r,l.area.end.x=t.width-t.padding[1];break;default:l.area.start.x=(t.width-e)/2-r,l.area.end.x=(t.width+e)/2+r;}l.area.width=e+2*r,l.area.wholeWidth=e+2*r,l.area.height=a.length*c+2*r,l.area.wholeHeight=a.length*c+2*r+2*s,l.points=a}}else{let i=e.length,a=t.height-t.padding[0]-t.padding[2]-2*s-2*r,o=Math.min(n(a/c),i);switch(l.area.height=o*c+2*r,l.area.wholeHeight=o*c+2*r,t.legend.float){case"top":l.area.start.y=t.padding[0]+s,l.area.end.y=t.padding[0]+s+l.area.height;break;case"bottom":l.area.start.y=t.height-t.padding[2]-s-l.area.height,l.area.end.y=t.height-t.padding[2]-s;break;default:l.area.start.y=(t.height-l.area.height)/2,l.area.end.y=(t.height+l.area.height)/2;}let p=0==i%o?i/o:n(i/o+1),g=[];for(let t,a=0;aa&&(a=e);l.widthArr.push(a),l.heightArr.push(i.length*c+2*r)}let e=0;for(let t=0;ta&&(o.angle=45*Math.PI/180,o.xAxisHeight=2*i.xAxisTextPadding+l*Math.sin(o.angle)),o}function getXAxisTextList(e,t){var a=Math.min,o=Math.max,n=4n&&(a.angle=45*Math.PI/180,a.xAxisHeight=2*i.xAxisTextPadding+r*Math.sin(a.angle)),!0===t.xAxis.disabled&&(a.xAxisHeight=0),a}function getRadarDataPoints(e,t,i,a,o){var n=Math.max,l=5=a.oldData?(n._endAngle_-n._oldAngle_)*o+a.oldAngle:n._oldAngle_-(n._oldAngle_-n._endAngle_)*o,2<=n._proportion_&&(n._proportion_%=2)}return e}function getPieTextMaxLength(e){e=getPieDataPoints(e);let t=0;for(let a=0;a=e.width&&(e.width=1),e.x+=(a+.5-i/2)*e.width,e)})}function fixColumeMeterData(e,t,i,a,o,n,l){return e.map(function(e){return null===e?null:(e.width=Math.ceil((t-2*o.columePadding)/2),n.extra.column&&n.extra.column.width&&0<+n.extra.column.width&&(e.width=Math.min(e.width,+n.extra.column.width)),0s.x&&(h-=measureText(a.categories[r]||"")),n.beginPath(),n.setFontSize(o.fontSize),n.setFillStyle(l.labelColor||"#666666"),n.fillText(a.categories[r]||"",h,x+o.fontSize/2),n.closePath(),n.stroke()})}function drawPieText(e,t,a,o,i,n){var l=Math.cos,r=Math.sin,s=Math.min,d=Math.max,h=Math.PI,x=a.pieChartLinePadding,c=[],p=null,g=e.map(function(e){var t=e.format?e.format(+e._proportion_.toFixed(2)):util.toFixed(100*e._proportion_.toFixed(4))+"%";e._rose_proportion_&&(e._proportion_=e._rose_proportion_);var i=2*h-(e._start_+2*h*e._proportion_/2),a=e.color,o=e._radius_;return{arc:i,text:t,color:a,radius:o,textColor:e.textColor,textSize:e.textSize}});for(let h=0;ht?m=d(f,p.start.y):0y&&(y-=u);let S={lineStart:{x:o,y:n},lineEnd:{x:t,y:i},start:{x:y,y:m},width:u,height:a.fontSize,text:e.text,color:e.color,textColor:e.textColor,textSize:e.textSize};p=avoidCollision(S,p),c.push(p)}for(let l=0;le.start.x?s.x+e.width:s.x,x=0>e.start.x?s.x-5:s.x+5;o.quadraticCurveTo(r.x,r.y,d,s.y),o.moveTo(i.x,i.y),o.stroke(),o.closePath(),o.beginPath(),o.moveTo(s.x+e.width,s.y),o.arc(d,s.y,2,0,2*h),o.closePath(),o.fill(),o.beginPath(),o.setFontSize(e.textSize||a.fontSize),o.setFillStyle(e.textColor||"#666666"),o.fillText(e.text,x,s.y+3),o.closePath(),o.stroke(),o.closePath()}}function drawToolTipSplitLine(e,t,i,a){var o=t.extra.tooltip||{};o.gridType=null==o.gridType?"solid":o.gridType,o.dashLength=null==o.dashLength?4:o.dashLength;var n=t.area[0],l=t.height-t.area[2];if("dash"==o.gridType&&a.setLineDash([o.dashLength,o.dashLength]),a.setStrokeStyle(o.gridColor||"#cccccc"),a.setLineWidth(1*t.pixelRatio),a.beginPath(),a.moveTo(e,n),a.lineTo(e,l),a.stroke(),a.setLineDash([]),o.xAxisLabel){let n=t.categories[t.tooltip.index];a.setFontSize(i.fontSize);let r=measureText(n,i.fontSize),s=e-.5*r,d=l;a.beginPath(),a.setFillStyle(hexToRgb(o.labelBgColor||i.toolTipBackground,o.labelBgOpacity||i.toolTipOpacity)),a.setStrokeStyle(o.labelBgColor||i.toolTipBackground),a.setLineWidth(1*t.pixelRatio),a.rect(s-i.toolTipPadding,d,r+2*i.toolTipPadding,i.fontSize+2*i.toolTipPadding),a.closePath(),a.stroke(),a.fill(),a.beginPath(),a.setFontSize(i.fontSize),a.setFillStyle(o.labelFontColor||i.fontColor),a.fillText(n+"",s,d+i.toolTipPadding+i.fontSize),a.closePath(),a.stroke()}}function drawMarkLine(e,t,a){let o=assign({},{type:"solid",dashLength:4,data:[]},e.extra.markLine),n=e.area[3],l=e.width-e.area[1],r=calMarkLineData(o.data,e);for(let s,d=0;di.width&&(h=!0),p+t.y>i.height&&(t.y=i.height-p),o.beginPath(),o.setFillStyle(hexToRgb(l.bgColor||a.toolTipBackground,l.bgOpacity||a.toolTipOpacity)),h?(o.moveTo(t.x,t.y+10*i.pixelRatio),o.lineTo(t.x-d,t.y+10*i.pixelRatio-5*i.pixelRatio),o.lineTo(t.x-d,t.y),o.lineTo(t.x-d-n(c),t.y),o.lineTo(t.x-d-n(c),t.y+p),o.lineTo(t.x-d,t.y+p),o.lineTo(t.x-d,t.y+10*i.pixelRatio+5*i.pixelRatio),o.lineTo(t.x,t.y+10*i.pixelRatio)):(o.moveTo(t.x,t.y+10*i.pixelRatio),o.lineTo(t.x+d,t.y+10*i.pixelRatio-5*i.pixelRatio),o.lineTo(t.x+d,t.y),o.lineTo(t.x+d+n(c),t.y),o.lineTo(t.x+d+n(c),t.y+p),o.lineTo(t.x+d,t.y+p),o.lineTo(t.x+d,t.y+10*i.pixelRatio+5*i.pixelRatio),o.lineTo(t.x,t.y+10*i.pixelRatio)),o.closePath(),o.fill(),e.forEach(function(e,i){if(null!==e.color){o.beginPath(),o.setFillStyle(e.color);var n=t.x+d+2*a.toolTipPadding,l=t.y+(a.toolTipLineHeight-a.fontSize)/2+a.toolTipLineHeight*i+a.toolTipPadding+1;h&&(n=t.x-c-d+2*a.toolTipPadding),o.fillRect(n,l,r,a.fontSize),o.closePath()}}),e.forEach(function(e,i){var n=t.x+d+2*a.toolTipPadding+r+s;h&&(n=t.x-c-d+2*a.toolTipPadding+ +r+s);var x=t.y+(a.toolTipLineHeight-a.fontSize)/2+a.toolTipLineHeight*i+a.toolTipPadding;o.beginPath(),o.setFontSize(a.fontSize),o.setFillStyle(l.fontColor),o.fillText(e.text,n,x+a.fontSize),o.closePath(),o.stroke()}))}function drawYAxisTitle(e,t,i,a){var o=i.xAxisHeight+(t.height-i.xAxisHeight-measureText(e))/2;a.save(),a.beginPath(),a.setFontSize(i.fontSize),a.setFillStyle(t.yAxis.titleFontColor||"#333333"),a.translate(0,t.height),a.rotate(-90*Math.PI/180),a.fillText(e,o,t.padding[3]+.5*i.fontSize),a.closePath(),a.stroke(),a.restore()}function drawColumnDataPoints(e,t,i,a){let o=4h&&oh&&oh&&oh&&op&&(o.moveTo(i.x,i.y),e=1),0p&&i.xx&&tx&&(a.moveTo(e.x,e.y),i=1),0x&&e.xx&&(a.moveTo(e.x,e.y),i=1),0x&&e.xx&&(a.moveTo(t.x,t.y),e=1),0x&&t.xx&&(a.moveTo(t.x,t.y),e=1),0x&&t.xh&&(a.moveTo(o.x,o.y),i=1),0h&&o.xh&&(a.moveTo(t.x,t.y),i=1),0h&&t.xc&&ng&&(a.moveTo(e.x,e.y),i=1),0g&&e.xg&&(a.moveTo(e.x,e.y),i=1),0g&&e.xg&&(a.moveTo(e.x,e.y),t=1),0g&&e.xg&&(a.moveTo(e.x,e.y),t=1),0g&&e.xt._scrollDistance_&&o.fillRect(0,0,l,d),!0==t.enableScroll&&o.fillRect(r,0,t.width,d),o.closePath(),o.stroke();var h=[];for(let l=0;l<=t.yAxis.splitNumber;l++)h.push(t.area[0]+n*l);let x=t.area[3],c=t.width-t.area[1];for(let n,l=0;le/f?o.setStrokeStyle(hexToRgb(t[0].color,1)):o.setStrokeStyle(hexToRgb(t[0].color,.3)),o.setLineWidth(3*a.pixelRatio),o.moveTo(g,0),o.lineTo(y,0),o.stroke(),o.rotate(p*n);o.restore(),t=getArcbarDataPoints(t,r,l),o.setLineWidth(r.width),o.setStrokeStyle(t[0].color),o.setLineCap("round"),o.beginPath(),o.arc(s.x,s.y,h,r.startAngle*n,t[0]._proportion_*n,!1),o.stroke();let m=d-2.5*r.width;o.save(),o.translate(s.x,s.y),o.rotate((t[0]._proportion_-1)*n),o.beginPath(),o.setLineWidth(r.width/3);let S=o.createLinearGradient(0,.6*-m,0,.6*m);S.addColorStop("0",hexToRgb("#FFFFFF",0)),S.addColorStop("0.5",hexToRgb(t[0].color,1)),S.addColorStop("1.0",hexToRgb("#FFFFFF",0)),o.setStrokeStyle(S),o.arc(0,0,m,.85*n,1.15*n,!1),o.stroke(),o.beginPath(),o.setLineWidth(1),o.setStrokeStyle(t[0].color),o.setFillStyle(t[0].color),o.moveTo(-m-r.width/3/2,-4),o.lineTo(-m-r.width/3/2-4,0),o.lineTo(-m-r.width/3/2,4),o.lineTo(-m-r.width/3/2,-4),o.stroke(),o.fill(),o.restore()}else{o.setLineWidth(r.width),o.setLineCap("butt");for(let t,a=0;at[l].area[2]||e[1]>t[l].area[3]||e[2]e[0]||0>e[1]||e[2]>a||e[3]>o){n=!0;break}else n=!1;return n}function getBoundingBox(e){var t,a={};a.xMin=180,a.xMax=0,a.yMin=90,a.yMax=0;for(var o,n=0;nh.x?a.xMax:h.x,a.yMin=a.yMinh.y?a.yMax:h.y}}}return a}function coordinateToPoint(e,t,i,a,o,n){return{x:(t-i.xMin)*a+o,y:(i.yMax-e)*a+n}}function pointToCoordinate(e,t,i,a,o,n){return{x:(t-o)/a+i.xMin,y:i.yMax-(e-n)/a}}function isRayIntersectsSegment(e,t,i){if(t[1]==i[1])return!1;if(t[1]>e[1]&&i[1]>e[1])return!1;if(t[1]e[1])return!1;if(i[1]==e[1]&&t[1]>e[1])return!1;if(t[0](e/=.5)?.5*t(e,3):.5*(t(e-2,3)+2)},linear:function(e){return e}};function Animation(e){this.isStop=!1,e.duration="undefined"==typeof e.duration?1e3:e.duration,e.timing=e.timing||"linear";var t=function(){return"undefined"==typeof setTimeout?"undefined"==typeof requestAnimationFrame?function(e){e(null)}:requestAnimationFrame:function(e,t){setTimeout(function(){var t=+new Date;e(t)},t)}}(),i=null,a=function(o){if(null===o||!0===this.isStop)return e.onProcess&&e.onProcess(1),void(e.onAnimationFinish&&e.onAnimationFinish());if(null===i&&(i=o),o-io;o++)t.area[o]=t.padding[o];var d=calLegendData(s,t,a,t.chartData),h=d.area.wholeHeight,x=d.area.wholeWidth;switch(t.legend.position){case"top":t.area[0]+=h;break;case"bottom":t.area[2]+=h;break;case"left":t.area[3]+=x;break;case"right":t.area[1]+=x;}let c={},p=0;if("line"===t.type||"column"===t.type||"area"===t.type||"mix"===t.type||"candle"===t.type){if(c=calYAxisData(n,t,a),p=c.yAxisWidth,t.yAxis.showTitle){let e=0;for(let o=0;ot;t++)e.padding[t]*=e.pixelRatio;t.yAxisWidth=config.yAxisWidth*e.pixelRatio,t.xAxisHeight=config.xAxisHeight*e.pixelRatio,e.enableScroll&&e.xAxis.scrollShow&&(t.xAxisHeight+=6*e.pixelRatio),t.xAxisLineHeight=config.xAxisLineHeight*e.pixelRatio,t.fontSize=e.fontSize,t.titleFontSize=config.titleFontSize*e.pixelRatio,t.subtitleFontSize=config.subtitleFontSize*e.pixelRatio,t.toolTipPadding=config.toolTipPadding*e.pixelRatio,t.toolTipLineHeight=config.toolTipLineHeight*e.pixelRatio,t.columePadding=config.columePadding*e.pixelRatio,e.$this=e.$this?e.$this:this,this.context=uni.createCanvasContext(e.canvasId,e.$this),e.chartData={},this.event=new Event,this.scrollOption={currentOffset:0,startTouchX:0,distance:0,lastMoveTime:0},this.opts=e,this.config=t,drawCharts.call(this,e.type,e,t,this.context)};Charts.prototype.updateData=function(){let e=0 + {{ text }} + + + + + diff --git a/mallplusui-uniapp-app2/components/uni-countdown/readme.md b/mallplusui-uniapp-app2/components/uni-countdown/readme.md new file mode 100644 index 0000000..b879097 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-countdown/readme.md @@ -0,0 +1,73 @@ +### CountDown 倒计时 + +倒计时组件,组件名:``uni-countdown``,代码块: uCountDown。 + +**使用方式:** + +在 ``script`` 中引用组件 + +```javascript +import uniCountdown from "@/components/uni-countdown/uni-countdown.vue" +export default { + components: {uniCountdown} +} +``` + +一般用法 + +```html + + +``` + +不显示天数 + +```html + + +``` + +修改颜色 + +```html + + +``` + +实际效果参考:[https://github.com/dcloudio/uni-ui](https://github.com/dcloudio/uni-ui) + +**uniCountDown 属性说明:** + +|属性名|类型|默认值 |说明| +|---|----|---|---| +|background-color|String|#FFFFFF|背景色| +|border-color|String|#000000|边框颜色| +|color |String |#000000|文字颜色| +|splitor-color|String|#000000|割符号颜色| +|day|Number|0|天数| +|hour|Number|0|小时| +|minute|Number|0|分钟| +|second|Number|0|秒| +|show-day|Boolean|true|是否显示天数| +|show-colon|Boolean|true|是否以冒号为分隔符| + +**uniCountDown 事件说明:** + +|事件称名|说明|返回参数| +|---|----|---| +|timeup|倒计时时间到触发事件|-| diff --git a/mallplusui-uniapp-app2/components/uni-countdown/uni-countdown.vue b/mallplusui-uniapp-app2/components/uni-countdown/uni-countdown.vue new file mode 100644 index 0000000..d2ce202 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,156 @@ + + + diff --git a/mallplusui-uniapp-app2/components/uni-grid-item/uni-grid-item.vue b/mallplusui-uniapp-app2/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 0000000..a705055 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/uni-grid/uni-grid.vue b/mallplusui-uniapp-app2/components/uni-grid/uni-grid.vue new file mode 100644 index 0000000..7f7fa55 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-grid/uni-grid.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/uni-icon/readme.md b/mallplusui-uniapp-app2/components/uni-icon/readme.md new file mode 100644 index 0000000..2ae276a --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-icon/readme.md @@ -0,0 +1,127 @@ +### Icon 图标 + +用于展示 icon,组件名:``uni-icon``,代码块: uIcon。 + +**使用方式:** + +在 ``script`` 中引用组件 + +```javascript +import uniIcon from "@/components/uni-icon/uni-icon.vue" +export default { + components: {uniIcon} +} +``` + +在 ``template`` 中使用组件 + +```html + +``` + +实际效果参考:[https://github.com/dcloudio/uni-ui](https://github.com/dcloudio/uni-ui) + +**Icon 属性说明:** + +|属性名 |类型|默认值 |说明| +|---|----|---|---| +|type |String |-|图标图案,参考下表| +|color |String |-|图标颜色 | +|size |Number |24|图标大小| +|@click |EventHandle|-|点击 Icon 触发事件| + +**type 类型:** + +
+ +
    +
  • contact
  • +
  • person
  • +
  • personadd
  • +
  • contact-filled
  • +
  • person-filled
  • +
  • personadd-filled
  • +
  • phone
  • +
  • email
  • +
  • chatbubble
  • +
  • chatboxes
  • +
  • phone-filled
  • +
  • email-filled
  • +
  • chatbubble-filled
  • +
  • chatboxes-filled
  • +
  • weibo
  • +
  • weixin
  • +
  • pengyouquan
  • +
  • chat
  • +
  • qq
  • +
  • videocam
  • +
  • camera
  • +
  • mic
  • +
  • location
  • +
  • mic-filled
  • +
  • location-filled
  • +
  • micoff
  • +
  • image
  • +
  • map
  • +
  • compose
  • +
  • trash
  • +
  • upload
  • +
  • download
  • +
  • close
  • +
  • redo
  • +
  • undo
  • +
  • refresh
  • +
  • star
  • +
  • plus
  • +
  • minus
  • +
  • circle
  • +
  • clear
  • +
  • refresh-filled
  • +
  • star-filled
  • +
  • plus-filled
  • +
  • minus-filled
  • +
  • circle-filled
  • +
  • checkbox-filled
  • +
  • closeempty
  • +
  • refreshempty
  • +
  • reload
  • +
  • starhalf
  • +
  • spinner
  • +
  • spinner-cycle
  • +
  • search
  • +
  • plusempty
  • +
  • forward
  • +
  • back
  • +
  • checkmarkempty
  • +
  • home
  • +
  • navigate
  • +
  • gear
  • +
  • paperplane
  • +
  • info
  • +
  • help
  • +
  • locked
  • +
  • more
  • +
  • flag
  • +
  • home-filled
  • +
  • gear-filled
  • +
  • info-filled
  • +
  • help-filled
  • +
  • more-filled
  • +
  • settings
  • +
  • list
  • +
  • bars
  • +
  • loop
  • +
  • paperclip
  • +
  • eye
  • +
  • arrowup
  • +
  • arrowdown
  • +
  • arrowleft
  • +
  • arrowright
  • +
  • arrowthinup
  • +
  • arrowthindown
  • +
  • arrowthinleft
  • +
  • arrowthinright
  • +
  • pulldown
  • +
  • scan
  • +
+
diff --git a/mallplusui-uniapp-app2/components/uni-icon/uni-icon.vue b/mallplusui-uniapp-app2/components/uni-icon/uni-icon.vue new file mode 100644 index 0000000..53883c4 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-icon/uni-icon.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/uni-load-more/uni-load-more.vue b/mallplusui-uniapp-app2/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..6c43365 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/uni-number-box.vue b/mallplusui-uniapp-app2/components/uni-number-box.vue new file mode 100644 index 0000000..8f626ac --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-number-box.vue @@ -0,0 +1,199 @@ + + + diff --git a/mallplusui-uniapp-app2/components/uni-rate/readme.md b/mallplusui-uniapp-app2/components/uni-rate/readme.md new file mode 100644 index 0000000..e0138b3 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-rate/readme.md @@ -0,0 +1,59 @@ +### Rate 评分 + +评分组件,组件名:``uni-rate``,代码块: uRate。 + +**使用方式:** + +在 ``script`` 中引用组件 + +```javascript +import uniRate from "@/components/uni-rate/uni-rate.vue" +export default { + components: {uniRate} +} +``` + +基本用法 + +```html + +``` + +自定义星星大小 + +```html + +``` + +设置评分数 + +```html + +``` + +不可点击状态 + +```html + +``` + +实际效果参考:[https://github.com/dcloudio/uni-ui](https://github.com/dcloudio/uni-ui) + +**属性说明:** + +|属性名|类型|默认值 |说明| +|---|----|---|---| +|value|Number|0|当前评分| +|max|Number|5|最大的评分| +|size|Number|24|星星的大小| +|margin|Number|0|星星的间距| +|color|String|#ececec|星星的颜色| +|active-color|String|#ffca3e|选中状态的星星的颜色| +|is-fill|Boolean|true|星星的类型,是否为实心类型| +|disabled|Boolean|false|是否为不可点击状态| + +**事件说明:** + +|事件称名|说明|返回参数| +|---|----|---| +|change|Rate 的 value 改变时触发事件,返回参数为Rate的value|{value:Number}| diff --git a/mallplusui-uniapp-app2/components/uni-rate/uni-rate.vue b/mallplusui-uniapp-app2/components/uni-rate/uni-rate.vue new file mode 100644 index 0000000..5a12b63 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-rate/uni-rate.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/uni-section/uni-section.vue b/mallplusui-uniapp-app2/components/uni-section/uni-section.vue new file mode 100644 index 0000000..7591bd1 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-section/uni-section.vue @@ -0,0 +1,135 @@ + + + + diff --git a/mallplusui-uniapp-app2/components/uni-tag/uni-tag.vue b/mallplusui-uniapp-app2/components/uni-tag/uni-tag.vue new file mode 100644 index 0000000..a9e7087 --- /dev/null +++ b/mallplusui-uniapp-app2/components/uni-tag/uni-tag.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/upload-images.vue b/mallplusui-uniapp-app2/components/upload-images.vue new file mode 100644 index 0000000..71bb4a3 --- /dev/null +++ b/mallplusui-uniapp-app2/components/upload-images.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/xiujun-evaluate/Readme.md b/mallplusui-uniapp-app2/components/xiujun-evaluate/Readme.md new file mode 100644 index 0000000..cb5f559 --- /dev/null +++ b/mallplusui-uniapp-app2/components/xiujun-evaluate/Readme.md @@ -0,0 +1,40 @@ +### 评价 列表 + +评价列表组件,组件名:``uni-evaluate``,可预览图片 + +**使用方式:** + +下载组件,在 ``script`` 中引用组件 + +```javascript +import uniEvaluate from '../../components/xiujun-evaluate/uni-evaluate.vue'; +export default { + components: {uniEvaluate} +} +``` + +用法 + +```html + +``` + +**组件属性说明:** + +|属性名|类型|默认值 |说明| +|---|----|---|---| +|listData|Array|-|评价列表数据| +|rate|Number|-|总评分| +|isShowTotal|Boolean|true|是否显示总评价数量| +|isShowIcon|Boolean|true|是否显示评价头图标| + +**listData属性说明:** + +|属性名|类型|默认值|说明| +|---|----|---|---| +|header_img|String|-|用户头像| +|user_name|String| - |用户名| +|rate|Number|-|评分| +|create_time|String|-|发表评论时间| +|content|String|-|评价内容文本| +|imgs|Array|-|评价内容图片格式['图片地址1','图片地址2']| diff --git a/mallplusui-uniapp-app2/components/xiujun-evaluate/iconfont.css b/mallplusui-uniapp-app2/components/xiujun-evaluate/iconfont.css new file mode 100644 index 0000000..c373fd4 --- /dev/null +++ b/mallplusui-uniapp-app2/components/xiujun-evaluate/iconfont.css @@ -0,0 +1,26 @@ +@font-face { + font-family: 'iconfont'; /* project id 1237225 */ + src: url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.eot'); + src: url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.eot?#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.woff2') format('woff2'), + url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.woff') format('woff'), + url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.ttf') format('truetype'), + url('https://at.alicdn.com/t/font_1237225_y90nldmnpij.svg#iconfont') format('svg'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-pingjia-copy:before { + content: "\e640"; +} + +.icon-xingxing:before { + content: "\e870"; +} + diff --git a/mallplusui-uniapp-app2/components/xiujun-evaluate/list.js b/mallplusui-uniapp-app2/components/xiujun-evaluate/list.js new file mode 100644 index 0000000..584e604 --- /dev/null +++ b/mallplusui-uniapp-app2/components/xiujun-evaluate/list.js @@ -0,0 +1,62 @@ +//测试数据 +const listData = [{ + header_img: "http://cs.zhangkaixing.com/face/face_2.jpg", + user_name: "测试1", + rate:5, + create_time: "2019-04-12", + content: "好评", + imgs:[ + '/com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + 'http://cs.zhangkaixing.com/face/face_14.jpg', + 'http://cs.zhangkaixing.com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + ] +}, +{ + content: "中评", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_12.jpg", + user_name: "测试2", + rate:4, + // imgs:[] +}, +{ + content: "", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_15.jpg", + user_name: "测试3", + rate:2, + // imgs:[] +},{ + content: "好评", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_2.jpg", + user_name: "测试1", + rate:5, + imgs:[ + 'http://cs.zhangkaixing.com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + 'http://cs.zhangkaixing.com/face/face_14.jpg', + 'http://cs.zhangkaixing.com/face/face.jpg', + 'http://cs.zhangkaixing.com/face/p10.jpg', + ] +}, +{ + content: "中评", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_12.jpg", + user_name: "测试2", + rate:3.5, + // imgs:[] +}, +{ + content: "", + create_time: "2019-04-12", + header_img: "http://cs.zhangkaixing.com/face/face_15.jpg", + user_name: "测试3", + rate:2.3, + // imgs:[] +}] + +export default listData \ No newline at end of file diff --git a/mallplusui-uniapp-app2/components/xiujun-evaluate/uni-evaluate.vue b/mallplusui-uniapp-app2/components/xiujun-evaluate/uni-evaluate.vue new file mode 100644 index 0000000..fe778e3 --- /dev/null +++ b/mallplusui-uniapp-app2/components/xiujun-evaluate/uni-evaluate.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/mallplusui-uniapp-app2/components/zhouWei-navBar/index.vue b/mallplusui-uniapp-app2/components/zhouWei-navBar/index.vue new file mode 100644 index 0000000..c5a2638 --- /dev/null +++ b/mallplusui-uniapp-app2/components/zhouWei-navBar/index.vue @@ -0,0 +1,430 @@ + + + diff --git a/mallplusui-uniapp-app2/components/zhouWei-navBar/zhouWei-navBar.md b/mallplusui-uniapp-app2/components/zhouWei-navBar/zhouWei-navBar.md new file mode 100644 index 0000000..68f5886 --- /dev/null +++ b/mallplusui-uniapp-app2/components/zhouWei-navBar/zhouWei-navBar.md @@ -0,0 +1,132 @@ +# zhouWei-navBar 适用于 uni-app 项目的头部导航组件 + +导航栏组件,主要用于头部导航,组件名:zhouWei-navBar + +本组件目前兼容微信小程序、H5、5+APP。其他平台没试过 + +本组件支持模式: +1. 普通固定顶部导航 +2. 透明导航 +3. 透明固定顶部导航 +4. 不固定普通导航 +5. 颜色渐变导航 + +本组件内置特殊功能: +1. fontColor字体颜色为白色的时候手机状态栏会自动显示白色,否则显示灰色 +2. 页面为第一个页面时左上角自动显示返回主页的图标(具体看组件:zhouWei-navBar/index.vue =>页面script) + +### 本组件全局配置(位置:zhouWei-navBar/index.vue =>页面script) +1. 主页页面的页面路径 +2. 首页页面路径 + +``` +// 主页页面的页面路径 +// 关联功能:打开的页面只有一个的时候右上角自动显示返回首页按钮,下面这个数组是排除显示返回首页的页面。 +// 主页使用场景:小程序分享出去的页面,用户点击开是分享页面,很多情况下是没有返回首页按钮的 +const mainPagePath = ["pages/navList"]; +//返回首页的地址 +const homePath = "/pages/navList"; +``` + +### 在main.js引入组件,并注册全局组件 +``` +import zhouWeiNavBar from "@/components/zhouWei-navBar"; +Vue.component("nav-bar", zhouWeiNavBar); +``` + +### 或者在页面script中引入组件,并注册组件 +``` +import navBar from "@/components/zhouWei-navBar"; +export default { + components: {navBar} +} +``` + +### 案例一 +默认特性:左上角有返回箭头,nav-bar导航固定在顶部、标题居中 +``` +我的 +``` + +### 案例二 +特性:无返回箭头、字体色为白色、标题左对齐、nav-bar导航透明并不固定在顶部、右边插槽有按钮 +``` + + 设置 + +``` + +### 案例三:颜色渐变导航 +特性:颜色渐变导航 +``` + +``` + +### 案例四:颜色渐变导航 +特性:颜色渐变导航 +``` + + +bgColorList:[ + {color:"#f37402",scale:"0%"}, + {color:"#0f0",scale:"20%"}, + {color:"#f00",scale:"80%"}, + {color:"#00f",scale:"100%"} +] +``` + +### 案例五:滑动透明导航 +特性:有返回箭头、nav-bar导航透明并固定在顶部、透明状态字体为白色、页面想下滑动nav-bar导航条逐渐变白色、右边插槽有按钮 +``` + + 预览 //透明状态下的按钮 + 预览 //不状态下的按钮 + +``` + +### 案例六:搜索框|地区选择 +特性:无返回箭头、nav-bar导航固定在顶部、地区选择、搜索框 +``` + + 深圳市 + + + 搜索目的地/职位等 + + +``` + +### 属性 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ------------- | ---------------------------------------------------| +| backState | String | 1000 | 返回上一页面按钮,1000 显示返回按钮,2000 不显示返回按钮,3000自定义返回按钮方法,点击返回箭头后会发送一个backClick事件| +| home | Boolean | true | 返回首页按钮(首页地址在源文件里配置) | +| bgColor | String|Array | #FFF | 导航背景颜色,值为数组的时候显示渐变颜色(只支持2个颜色渐变),bgColor="themeBgColor"的时候会调用全局class="themeBgColor"的样式| +| bgColorAngle | String|Number | 90 | 导航背景颜色渐变角度(bgColor为数组生效) | +| fontColor | String | #000 | 导航字体颜色,(当颜色为白色的时候导航状态栏和图片为白色的)| +| titleCenter | Boolean | true | 标题title居中 | +| title | String | -- | 标题title值 | +| transparentFixedFontColor | String | #000 | 导航type类型为transparentFixed时透明状态下的字体颜色 | +| type | String | fixed | 导航类型,可选:1.fixed固定导航 2.ordinary不固定导航 3.transparent透明不固定导航 4.transparentFixed透明固定导航| + +### bgColor数组值为JSON的参数 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ------------- | ---------------------------------------------------| +| color | String | -- | 渐变颜色值 | +| scale | String | -- | 渐变比例(百分比%) | + +### 插槽 +| 名称 | 描述 | +| ----------------------|-------------------------------------------------------------------| +| left | 左插槽 | +| default | 中间标题插槽(type类型为transparentFixed时插槽只会穿透到实色背景下) | +| right | 右插槽 | +| transparentFixed | 导航type类型为transparentFixed时透明状态下中间插槽 | +| transparentFixedRight | 导航type类型为transparentFixed时透明状态下右插槽 | +| transparentFixedRight | 导航type类型为transparentFixed时透明状态下右插槽 | + +### 事件(type类型为transparentFixed时可用) +| 名称 | 参数 | 描述 | +| -----------------|------------------| --------------------------| +| scroll | 滚动条到顶部距离 | 代替页面的onPageScroll函数 | +| backClick | 返回上一页按钮方法 | backState=3000时生效 | diff --git a/mallplusui-uniapp-app2/config/api.js b/mallplusui-uniapp-app2/config/api.js new file mode 100644 index 0000000..04081d4 --- /dev/null +++ b/mallplusui-uniapp-app2/config/api.js @@ -0,0 +1,408 @@ +import { + apiBaseUrl +} from './config.js'; +import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue'; +import Api from '@/common/api'; +import * as common from './common.js' //引入common +import * as db from './db.js' //引入common +// 需要登陆的,都写到这里,否则就是不需要登陆的接口 +const methodsToken = [ + 'user.info', + 'user.editinfo', + 'user.changeavatar', + 'user.logout', + 'user.addgoodsbrowsing', + 'user.delgoodsbrowsing', + 'user.goodsbrowsing', + 'user.goodscollection', + 'user.goodscollectionlist', + 'user.vuesaveusership', + 'user.saveusership', + 'user.getshipdetail', + 'user.setdefship', + 'user.editship', + 'user.removeship', + 'user.getusership', + 'user.pay', + 'user.orderevaluate', + 'user.getuserdefaultship', + 'user.issign', + 'user.sign', + 'user.mypoint', + 'user.userpointlog', + 'user.getbankcardlist', + 'user.getdefaultbankcard', + 'user.addbankcard', + 'user.removebankcard', + 'user.setdefaultbankcard', + 'user.getbankcardinfo', + 'user.editpwd', + 'user.forgotpwd', + 'user.recommend', + 'user.balancelist', + 'user.sharecode', + 'user.cash', + 'user.cashlist', + 'user.myinvite', + 'user.activationinvite', + 'coupon.getcoupon', + 'coupon.usercoupon', + 'cart.add', + 'cart.del', + 'cart.getlist', + 'cart.setnums', + 'cart.getnumber', + 'order.cancel', + 'order.del', + 'order.details', + 'order.confirm', + 'order.getlist', + 'order.create', + 'order.getship', + 'order.getorderlist', + 'order.getorderstatusnum', + 'order.aftersaleslist', + 'order.aftersalesinfo', + 'order.aftersalesstatus', + 'order.addaftersales', + 'order.sendreship', + 'order.iscomment', + 'payments.getinfo', + 'user.getuserpoint', + 'coupon.getcouponkey', + 'store.isclerk', + 'store.storeladinglist', + 'store.ladinginfo', + 'store.lading', + 'store.ladingdel', + 'distribution_center-api-info', + 'distribution_center-api-applydistribution', + 'distribution_center-api-setstore', + 'distribution_center-api-myorder', + 'pintuan.pintuanteam', + 'lottery-api-getLotteryConfig', + 'lottery-api-lottery', + 'lottery-api-lotteryLog' +]; + +const post = (method, data, callback) => { + uni.showLoading({ + title: '加载中' + }); + + // 判断token是否存在 + if (methodsToken.indexOf(method) >= 0) { + // 获取用户token + let userToken = db.get("userToken"); + if (!userToken) { + common.jumpToLogin(); + return false; + } else { + data.token = userToken; + } + } + + data.method = method; + + uni.request({ + url: apiBaseUrl + 'api.html', + data: data, + header: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + // 'Content-Type': 'application/x-www-form-urlencoded', //自定义请求头信息 + }, + method: 'POST', + success: (response) => { + uni.hideLoading(); + const result = response.data + if (!result.status) { + // 登录信息过期或者未登录 + if (result.data === 14007 || result.data === 14006) { + db.del("userToken"); + uni.showToast({ + title: result.msg, + icon: 'none', + duration: 1000, + complete: function() { + setTimeout(function() { + uni.hideToast(); + // #ifdef H5 || APP-PLUS + uni.navigateTo({ + url: '/pages/login/login/index1' + }) + // #endif + // #ifdef MP-WEIXIN || MP-ALIPAY + uni.navigateTo({ + url: '/pages/login/choose/index', + animationType: 'pop-in', + animationDuration: 200 + }); + // #endif + }, 1000) + } + }); + } + } + callback(result); + }, + complete: () => { + uni.hideLoading(); + }, + fail: (error) => { + uni.hideLoading(); + if (error && error.response) { + showError(error.response); + } + }, + }); + +} + +//插件post +const pluginsPost = (method, data, callback) => { + uni.showLoading({ + title: '加载中' + }); + + // 判断token是否存在 + if (methodsToken.indexOf(method) >= 0) { + // 获取用户token + let userToken = db.get("userToken"); + if (!userToken) { + common.jumpToLogin(); + return false; + } else { + data.token = userToken; + } + } + uni.request({ + url: apiBaseUrl + 'plugins/' + method + '.html', + data: data, + header: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + // 'Content-Type': 'application/x-www-form-urlencoded', //自定义请求头信息 + }, + method: 'POST', + success: (response) => { + uni.hideLoading(); + const result = response.data + if (!result.status) { + // 登录信息过期或者未登录 + if (result.data === 14007 || result.data === 14006) { + db.del("userToken"); + uni.showToast({ + title: result.msg, + icon: 'none', + duration: 1000, + complete: function() { + setTimeout(function() { + uni.hideToast(); + // #ifdef H5 || APP-PLUS + uni.navigateTo({ + url: '/pages/login/login/index1' + }) + // #endif + // #ifdef MP-WEIXIN || MP-ALIPAY + uni.navigateTo({ + url: '/pages/login/choose/index', + animationType: 'pop-in', + animationDuration: 200 + }); + // #endif + }, 1000); + } + }); + } + } + callback(result); + }, + fail: (error) => { + uni.hideLoading(); + if (error && error.response) { + showError(error.response); + } + }, + complete: () => { + setTimeout(function() { + uni.hideLoading(); + }, 250); + } + }); + +} + +const get = (url, callback) => { + uni.showLoading({ + title: '加载中' + }); + uni.request({ + url: url, + header: { + 'Accept': 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', //自定义请求头信息 + }, + method: 'GET', + success: (response) => { + uni.hideLoading(); + callback(response.data); + }, + fail: (error) => { + uni.hideLoading(); + if (error && error.response) { + showError(error.response); + } + }, + complete: () => { + setTimeout(function() { + uni.hideLoading(); + }, 250); + } + }); +} + +const showError = error => { + let errorMsg = '' + switch (error.status) { + case 400: + errorMsg = '请求参数错误' + break + case 401: + errorMsg = '未授权,请登录' + break + case 403: + errorMsg = '跨域拒绝访问' + break + case 404: + errorMsg = `请求地址出错: ${error.config.url}` + break + case 408: + errorMsg = '请求超时' + break + case 500: + errorMsg = '服务器内部错误' + break + case 501: + errorMsg = '服务未实现' + break + case 502: + errorMsg = '网关错误' + break + case 503: + errorMsg = '服务不可用' + break + case 504: + errorMsg = '网关超时' + break + case 505: + errorMsg = 'HTTP版本不受支持' + break + default: + errorMsg = error.msg + break + } + + uni.showToast({ + title: errorMsg, + icon: 'none', + duration: 1000, + complete: function() { + setTimeout(function() { + uni.hideToast(); + }, 1000); + } + }); +} + +// 文件上传 +export const uploadFiles = (callback) => { + uni.chooseImage({ + success: (chooseImageRes) => { + uni.showLoading({ + title: '上传中...' + }); + const tempFilePaths = chooseImageRes.tempFilePaths; + const uploadTask = uni.uploadFile({ + url: Api.BASEURI +'upload', //仅为示例,非真实的接口地址 + filePath: tempFilePaths[0], + fileType: 'image', + name: 'file', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'multipart/form-data', + }, + formData: { + 'method': 'images.upload', + 'upfile': tempFilePaths[0] + }, + success: (uploadFileRes) => { + callback(JSON.parse(uploadFileRes.data)); + }, + fail: (error) => { + if (error && error.response) { + showError(error.response); + } + }, + complete: () => { + setTimeout(function() { + uni.hideLoading(); + }, 250); + } + }); + // uploadTask.onProgressUpdate((res) => { + // console.log('上传进度' + res.progress); + // console.log('已经上传的数据长度' + res.totalBytesSent); + // console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend); + // + // // 测试条件,取消上传任务。 + // if (res.progress > 50) { + // uploadTask.abort(); + // } + // }); + } + }); +} + +// 上传图片 +export const uploadImage = (num, callback) => { + uni.chooseImage({ + count: num, + success: (res) => { + uni.showLoading({ + title: '上传中...' + }); + let tempFilePaths = res.tempFilePaths + for (var i = 0; i < tempFilePaths.length; i++) { + uni.uploadFile({ + url: apiBaseUrl + 'api.html', + filePath: tempFilePaths[i], + fileType: 'image', + name: 'file', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'multipart/form-data', + }, + formData: { + 'method': 'images.upload', + 'upfile': tempFilePaths[i] + }, + success: (uploadFileRes) => { + callback(JSON.parse(uploadFileRes.data)); + }, + fail: (error) => { + if (error && error.response) { + showError(error.response); + } + }, + complete: () => { + setTimeout(function() { + uni.hideLoading(); + }, 250); + }, + }); + } + } + }); +} + diff --git a/mallplusui-uniapp-app2/config/baseUrl.js b/mallplusui-uniapp-app2/config/baseUrl.js new file mode 100644 index 0000000..45a2dda --- /dev/null +++ b/mallplusui-uniapp-app2/config/baseUrl.js @@ -0,0 +1,51 @@ +let baseUrl = ""; +let socketUrl = ""; +if (process.env.NODE_ENV === 'development') { + // 开发环境 + // baseUrl = "http://localhost:7001/"; + // socketUrl = "ws://localhost:8001/"; + // baseUrl = "http://26077a35f5.wicp.vip:43609/"; + baseUrl = "http://www.yyundong.com:8083/"; + socketUrl = "ws://8192.168.43.195:8083/"; +} else if (process.env.NODE_ENV === 'production') { + // 生产环境 + baseUrl = "http://www.yyundong.com:8083/"; + // baseUrl = "http://192.168.43.195:8083/"; + socketUrl = "ws://192.168.43.195:8083/"; +} +const courtConfig = { + //微信公众号APPID + publicAppId: "", + //请求接口 + baseUrl: baseUrl, + //webSocket地址 + socketUrl: socketUrl, + //平台名称 + platformName: "uniApp-案例", + //项目logo + logoUrl: "https://qn.kemean.cn/upload/201906/19/3f3b4751f3ed4a97be804450c3ec4c79", + //页面分享配置 + share: { + title: 'uniApp-案例', + // #ifdef MP-WEIXIN + path: '/pages/home/home', //小程序分享路径 + // #endif + // #ifdef H5 || APP-PLUS + //公众号||APP分享 + desc: "uniApp-案例", // 分享描述 + link: "https://www.kemean.com/sameCity/18031201/index.html", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: "http://qn.kemean.cn/upload/201901/28/23bedfc34597482292ecd6dc107f6342", // 分享图标 + // #endif + } +}; +//手机号验证正则表达式 +const phoneRegular = /^1\d{10}$/; +//邮箱验证正则表达式 +const mailRegular = /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/; +//密码验证正则表达式 +const passwordRegular = /^[a-zA-Z0-9]{4,10}$/; +export default Object.assign({ + phoneRegular, + mailRegular, + passwordRegular +}, courtConfig); diff --git a/mallplusui-uniapp-app2/config/common.js b/mallplusui-uniapp-app2/config/common.js new file mode 100644 index 0000000..751fe66 --- /dev/null +++ b/mallplusui-uniapp-app2/config/common.js @@ -0,0 +1,485 @@ +import * as db from './db.js' //引入common +import store from './../store' +//把obj对象里的值覆盖到newobj里面 +function deepCopy(newobj, obj) { + if (typeof obj != 'object') { + return obj + } + for (var attr in obj) { + var a = {} + if (newobj[attr]) { + a = newobj[attr] + } + newobj[attr] = deepCopy(a, obj[attr]) + } + return newobj +} + +//跳转到登陆页面 +function jumpToLogin(method) { + var now_time = Date.parse(new Date()) + var value = db.get('jump_to_login') + if (!value) { + value = 0 + } + if (now_time - value > 3000) { + //db.set('jump_to_login',now_time); //暂时屏蔽登录时间查询 + // 将当前页面route存vuex中 登录注册后跳转 + let pages = getCurrentPages() + let page = pages[pages.length - 1] + // 获取页面参数信息 + let pagePath = '' + // #ifdef H5 || MP-WEIXIN || APP-PLUS || APP-PLUS-NVUE + if (page.route.indexOf('pages/goods/index/index') !== -1) { + //商品详情页 + if(page.goodsId) { + pagePath = '/' + page.route + '?id=' + page.goodsId; + }else{ + pagePath = '/pages/index/index'; + } + } + if (page.route.indexOf('pages/goods/index/group') !== -1) { + //团购秒杀详情页 + if(page.goodsId && page.groupId) { + pagePath = '/' + page.route + '?id=' + page.goodsId + '&group_id' + page.groupId; + }else{ + pagePath = '/pages/index/index'; + } + } + // #endif + + // #ifdef MP-ALIPAY + if (page.__proto__.route.indexOf('pages/goods/index/index') !== -1) + { + //商品详情页 + if(page.rootVM.goodsId) { + pagePath = '/' + page.__proto__.route + '?id=' + page.rootVM.goodsId; + }else{ + pagePath = '/pages/index/index'; + } + } + if (page.__proto__.route.indexOf('pages/goods/index/group') !== -1) { + //团购秒杀详情页 + if(page.rootVM.goodsId && page.rootVM.groupId) { + pagePath = '/' + page.__proto__.route + '?id=' + page.rootVM.goodsId + '&group_id' + page.rootVM.groupId; + }else{ + pagePath = '/pages/index/index'; + } + } + // #endif + if(pagePath){ + store.commit({ + type: 'redirect', + page: pagePath + }) + } + uni.showToast({ + title: '请先登录!', + icon: 'none', + duration: 1000, + success: function(res) { + // #ifdef H5 || APP-PLUS + setTimeout(() => { + uni.hideToast(); + uni.navigateTo({ + url: '/pages/public/index1' + }) + }, 1000) + // #endif + // #ifdef MP-WEIXIN || MP-ALIPAY + setTimeout(() => { + uni.hideToast(); + uni.navigateTo({ + url: '/pages/public/choose/index', + animationType: 'pop-in', + animationDuration: 200 + }) + }, 500) + // #endif + } + }) + } +} + +//当出错的时候,显示错误信息,并且跳转 弃用 +/* function errorToBack(msg = '出错了,请重试',delta=1){ + uni.showToast({ + title: msg, + icon: 'none', + duration: 2000, + }); + if(delta > 0){ + setTimeout(function () { + uni.navigateBack({ + delta: delta + }) + }, 1000); + } +} */ +//操作成功后,的提示信息 +function successToShow(msg = '保存成功', callback = function() {}) { + uni.showToast({ + title: msg, + icon: 'success', + duration: 1000 + }) + setTimeout(function() { + callback() + }, 500) +} + +//操作失败的提示信息 +function errorToShow(msg = '操作失败', callback = function() {}) { + uni.showToast({ + title: msg, + icon: 'none', + duration: 1500 + }) + setTimeout(function() { + callback() + }, 1500) +} + +//加载显示 +function loadToShow(msg = '加载中') { + uni.showToast({ + title: msg, + icon: 'loading' + }) +} + +//加载隐藏 +function loadToHide() { + uni.hideToast() +} + +// 提示框 +function modelShow( + title = '提示', + content = '确认执行此操作吗?', + callback = () => {}, + showCancel = true, + cancelText = '取消', + confirmText = '确定' +) { + uni.showModal({ + title: title, + content: content, + showCancel: showCancel, + cancelText: cancelText, + confirmText: confirmText, + cancelText: cancelText, + success: function(res) { + if (res.confirm) { + // 用户点击确定操作 + setTimeout(() => { + callback() + }, 500) + } else if (res.cancel) { + // 用户取消操作 + } + } + }) +} + +//时间戳转时间格式 +function timeToDate(date, flag = false) { + var date = new Date(date * 1000) //如果date为13位不需要乘1000 + var Y = date.getFullYear() + '-' + var M = + (date.getMonth() + 1 < 10 + ? '0' + (date.getMonth() + 1) + : date.getMonth() + 1) + '-' + var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ' + var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':' + var m = + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':' + var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() + if(flag) + { + return Y + M + D + } + else + { + return Y + M + D + h + m + s + } +} + +function time2date(micro_second) { + var time = {} + // 总秒数 + var second = Math.floor(micro_second) + // 天数 + time.day = PrefixInteger(Math.floor(second / 3600 / 24), 2) + // 小时 + time.hour = PrefixInteger(Math.floor((second / 3600) % 24), 2) + // 分钟 + time.minute = PrefixInteger(Math.floor((second / 60) % 60), 2) + // 秒 + time.second = PrefixInteger(Math.floor(second % 60), 2) + + var newtime = '' + if (time.day > 0) { + newtime = + time.day + + '天' + + time.hour + + '小时' + + time.minute + + '分' + + time.second + + '秒' + } else { + if (time.hour != 0) { + newtime = time.hour + '小时' + time.minute + '分' + time.second + '秒' + } else { + newtime = time.minute + '分' + time.second + '秒' + } + } + return newtime +} + +function timeToDateObj(micro_second) { + var time = {} + // 总秒数 + var second = Math.floor(micro_second) + // 天数 + time.day = Math.floor(second / 3600 / 24) + // 小时 + time.hour = Math.floor((second / 3600) % 24) + // 分钟 + time.minute = Math.floor((second / 60) % 60) + // 秒 + time.second = Math.floor(second % 60) + + return time + +} + +//货币格式化 +function formatMoney(number, places, symbol, thousand, decimal) { + number = number || 0 + places = !isNaN((places = Math.abs(places))) ? places : 2 + symbol = symbol !== undefined ? symbol : '¥' + thousand = thousand || ',' + decimal = decimal || '.' + var negative = number < 0 ? '-' : '', + i = parseInt((number = Math.abs(+number || 0).toFixed(places)), 10) + '', + j = (j = i.length) > 3 ? j % 3 : 0 + return ( + symbol + + negative + + (j ? i.substr(0, j) + thousand : '') + + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand) + + (places + ? decimal + + Math.abs(number - i) + .toFixed(places) + .slice(2) + : '') + ) +} +function throttle(fn, context, delay) { + clearTimeout(fn.timeoutId) + fn.timeoutId = setTimeout(function() { + fn.call(context) + }, delay) +} + +// 时间格式化输出,如11:03 25:19 每1s都会调用一次 +function dateformat(micro_second) { + var time = {} + // 总秒数 + var second = Math.floor(micro_second / 1000) // 天数 + time.day = PrefixInteger(Math.floor(second / 3600 / 24), 2) // 小时 + time.hour = PrefixInteger(Math.floor((second / 3600) % 24), 2) // 分钟 + time.minute = PrefixInteger(Math.floor((second / 60) % 60), 2) // 秒 + time.second = PrefixInteger(Math.floor(second % 60), 2) + return time +} + +//不足位数前面补0 +function PrefixInteger(num, length) { + return (Array(length).join('0') + num).slice(-length) +} + +//验证是否是手机号 +function isPhoneNumber(str) { + var myreg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/ + if (!myreg.test(str)) { + return false + } else { + return true + } +} + +/** + * + * 对象参数转为url参数 + * + */ +function builderUrlParams(url, data) { + if (typeof url == 'undefined' || url == null || url == '') { + return '' + } + if (typeof data == 'undefined' || data == null || typeof data != 'object') { + return '' + } + url += url.indexOf('?') != -1 ? '' : '?' + for (var k in data) { + url += (url.indexOf('=') != -1 ? '&' : '') + k + '=' + encodeURI(data[k]) + } + return url +} + +/** + * 使用循环的方式判断一个元素是否存在于一个数组中 + * @param {Object} arr 数组 + * @param {Object} value 元素值 + */ +function isInArray(arr, value) { + for (var i = 0; i < arr.length; i++) { + if (value === arr[i]) { + return true + } + } + return false +} +/** + * 统一跳转 + */ +function navigateTo(url) { + uni.navigateTo({ + url: url, + animationType: 'pop-in', + animationDuration: 300 + }) +} + +/** + * 关闭当前页面并跳转 + */ +function redirectTo(url) { + uni.redirectTo({ + url: url, + animationType: 'pop-in', + animationDuration: 300 + }) +} + +/** + * 获取url参数 + * + * @param {*} name + * @param {*} [url=window.location.serach] + * @returns + */ +function getQueryString(name, url) { + var url = url || window.location.href + var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i') + var r = url.substr(1).match(reg) + if (r != null) { + return r[2] + } + return null +} + +/** + * + * 判断是否在微信浏览器 true是 + */ +function isWeiXinBrowser() { + // #ifdef H5 + // window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型 + let ua = window.navigator.userAgent.toLowerCase() + // 通过正则表达式匹配ua中是否含有MicroMessenger字符串 + if (ua.match(/MicroMessenger/i) == 'micromessenger') { + return true + } else { + return false + } + // #endif + + return false +} + +/** + * 金额相加 + * @param {Object} value1 + * @param {Object} value2 + */ +function moneySum(value1,value2){ + return (parseFloat(value1)+parseFloat(value2)).toFixed(2); +} +/** + * 金额相减 + * @param {Object} value1 + * @param {Object} value2 + */ +function moneySub(value1,value2){ + let res = (parseFloat(value1)-parseFloat(value2)).toFixed(2); + return res>0?res:0; +} + + +/** + * 分享URL解压缩 + * @param {Object} url + */ +function shareParameterEncode(url){ + let urlArray = url.split('-'); + let newUrl = 'type=' + urlArray[0] + '&invite=' + urlArray[1] + '&id=' + urlArray[2] + '&team_id=' + urlArray[3] + '&id_type=' + urlArray[4] + '&page_code=' + urlArray[5] + '&group_id=' + urlArray[6]; + return newUrl; +} + + +/** + * 分享URL压缩 + * @param {Object} url + */ +function shareParameterDecode(url){ + var urlArray = url.split('&'); + var allParameter = { + 'type': '', + 'invite': '', + 'id': '', + 'team_id': '', + 'id_type': '', + 'page_code': '', + 'group_id': '', + }; + for(var i = 0; i < urlArray.length; i++) { + var parameter = urlArray[i].split('='); + allParameter[parameter[0]] = parameter[1]; + } + var newUrl = allParameter.type + '-' + allParameter.invite + '-' + allParameter.id + '-' + allParameter.team_id + '-' + allParameter.id_type + '-' + allParameter.page_code + '-' + allParameter.group_id; + return newUrl; +} + +export { + deepCopy, + jumpToLogin, + timeToDate, + formatMoney, + /* errorToBack, */ + successToShow, + throttle, + errorToShow, + time2date, + isPhoneNumber, + isInArray, + loadToShow, + loadToHide, + navigateTo, + redirectTo, + modelShow, + builderUrlParams, + isWeiXinBrowser, + dateformat, + getQueryString, + timeToDateObj, + moneySum, + moneySub, + shareParameterEncode, + shareParameterDecode +} diff --git a/mallplusui-uniapp-app2/config/config.js b/mallplusui-uniapp-app2/config/config.js new file mode 100644 index 0000000..91b81d5 --- /dev/null +++ b/mallplusui-uniapp-app2/config/config.js @@ -0,0 +1,14 @@ +// // export const apiBaseUrl = 'http://www.b2c.com/' +// export const apiBaseUrl = 'http://192.168.43.195:8081/' +export const apiBaseUrl = 'http://www.yyundong.com:8081/' +//export const apiBaseUrl = 'https://demo.jihainet.com/' +// #ifdef H5 +export const baseUrl=process.env.NODE_ENV === 'development'?window.location.origin+'/':apiBaseUrl +// #endif +export const paymentType = { + //支付单类型 + order: 1, //订单 + recharge: 2, //充值 + form_order: 5, //表单付款码 + form_pay: 6 //表单订单 +} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/config/db.js b/mallplusui-uniapp-app2/config/db.js new file mode 100644 index 0000000..4a74ea7 --- /dev/null +++ b/mallplusui-uniapp-app2/config/db.js @@ -0,0 +1,84 @@ +import * as common from './common.js' //引入common + +//取值 +function get(key,sync = true) { + try { + if(sync){ + return uni.getStorageSync(key); + }else{ + let data = ''; + uni.getStorage({ + key:key, + success: function (res) { + data = res.data; + } + }); + return data; + } + } catch (e) { + return false; + } +} + +//赋值 +function set(key, value, sync = true) { + try { + if (sync) { + return uni.setStorageSync(key, value); + } else { + uni.setStorage({ + key: key, + data: value + }); + } + } catch (e) { + + } +} + +//移除 +function del(key, sync = true){ + try { + if (sync) { + return uni.removeStorageSync(key); + } else { + uni.removeStorage({ + key: key + }); + } + } catch (e) { + return false; + } +} + +//清空 +function clear(sync = true){ + try { + if (sync) { + return uni.clearStorageSync(); + } else { + uni.clearStorage(); + } + } catch (e) { + return false; + } +} + +//获取用户token,如果缓存有,直接返回,如果没有,就先微信登陆,然后服务器登陆,最后返回token +function userToken(callback) { + var token = get('userToken'); + if (token){ + callback(token); + }else{ + //如果没有登陆,就去登陆 + common.jumpToLogin(); + } +} + +export { + get, + set, + del, + clear, + userToken +} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/config/mixins.js b/mallplusui-uniapp-app2/config/mixins.js new file mode 100644 index 0000000..4f1bca0 --- /dev/null +++ b/mallplusui-uniapp-app2/config/mixins.js @@ -0,0 +1,176 @@ +export const orders = { + mounted() {}, + methods: { + // 查看订单详情 + orderDetail(orderId) { + this.$common.navigateTo( + '/pages/member/order/orderdetail?order_id=' + orderId + ) + }, + // 取消订单 + + // 去支付 + toPay(orderId) { + this.$common.navigateTo( + '/pages/order/payment/index?order_id=' + orderId + '&type=1' + ) + }, + // 确认收货 + + // 去评价 + toEvaluate(orderId) { + this.$common.navigateTo( + '/pages/member/order/evaluate?order_id=' + orderId + ) + }, + // 申请售后 + + // 查看物流信息 + showExpress(code, no, address = '') { + let params = encodeURIComponent( + 'code=' + code + '&no=' + no + '&add=' + address + ) + + this.$common.navigateTo( + '/pages/member/order/express_delivery?params=' + params + ) + } + } +} + +/** + * 商品接口信息 + * + */ +export const goods = { + mounted() {}, + methods: { + // 查看商品详情 + goodsDetail(goodsId) { + this.$common.navigateTo('/pages/goods/index/index?id=' + goodsId) + }, + // 跳转商品列表页 + goodsList(obj = {}) { + let url = '/pages/classify/index' + if (Object.keys(obj).length) { + url = this.$common.builderUrlParams(url, obj) + } + this.$common.navigateTo(url) + }, + // 团购秒杀详情 + groupDetail(id, group_id) { + this.$common.navigateTo( + '/pages/goods/index/group?id=' + id + '&group_id=' + group_id + ) + }, + //拼团详情页 + pintuanDetail(id, team_id) { + if (team_id) { + this.$common.navigateTo( + '/pages/goods/index/pintuan?id=' + id + '&team_id=' + team_id + ) + } else { + this.$common.navigateTo('/pages/goods/index/pintuan?id=' + id) + } + } + } +} + +/** + * + * 返回操作处理 + * + */ +export const goBack = { + onBackPress(options) { + if (options.from === 'navigateBack') { + return false + } + let loginPages = ['/pages/cart/index/index', '/pages/member/index/index'] + let backPage = this.$store.state.redirectPage + if (loginPages.indexOf(backPage) > -1) { + this.$store.commit({ + type: 'redirect', + page: '' + }) + uni.switchTab({ + url: '/pages/index/index' + }) + return true + } + } +} + +/* Function Info + * Author: zhf + * CreateTime: 2019/7/12 下午12:10:00 + * LastEditor: zhf + * ModifyTime: 2019/7/12 下午12:10:00 + * Description: 登录成功统一跳转处理 + */ + +export const jumpBackPage = { + methods: { + handleBack() { + let redirect = this.$store.state.redirectPage + this.$store.commit({ + type: 'redirect', + page: '' + }) + let switchTabs = ['/pages/index/index', '/pages/member/index/index'] + if (switchTabs.indexOf(redirect) > -1) { + uni.switchTab({ + url: redirect + }) + } else if (redirect) { + uni.redirectTo({ + url: redirect + }) + } else { + uni.switchTab({ + url: '/pages/index/index' + }) + } + } + } +} + +/* Function Info + * Author: zhf + * CreateTime: 2019/7/12 下午12:10:28 + * LastEditor: zhf + * ModifyTime: 2019/7/12 下午12:10:28 + * Description: 操作判断登录处理 + */ + +export const checkLogin = { + methods: { + checkIsLogin() { + uni.showToast({ + title: '请先登录!', + icon: 'none', + duration: 800, + success: function(res) { + // #ifdef H5 || APP-PLUS + setTimeout(() => { + uni.hideToast() + uni.navigateTo({ + url: '/pages/public/index1' + }) + }, 800) + // #endif + // #ifdef MP-WEIXIN || MP-ALIPAY + setTimeout(() => { + uni.hideToast() + uni.navigateTo({ + url: '/pages/public/choose/index', + animationType: 'pop-in', + animationDuration: 200 + }) + }, 500) + // #endif + } + }) + } + } +} diff --git a/mallplusui-uniapp-app2/config/requestConfig.js b/mallplusui-uniapp-app2/config/requestConfig.js new file mode 100644 index 0000000..8271668 --- /dev/null +++ b/mallplusui-uniapp-app2/config/requestConfig.js @@ -0,0 +1,211 @@ +import request from "@/plugins/request"; +import store from '@/config/store'; +import base from '@/config/baseUrl'; +// #ifdef H5 +import { + h5Login +} from '@/config/html5Utils'; +// #endif +// #ifdef MP-WEIXIN +import { + onLogin +} from '@/config/login'; +// #endif +let version_code = ''; +// #ifdef APP-PLUS +import { getCurrentNo } from '@/plugins/APPUpdate'; +setTimeout(() => { + getCurrentNo(function(res){ + console.log("版本号",res); + version_code = res.versionCode; + }); +},200); +// #endif + +//可以new多个request来支持多个域名请求 +let $http = new request({ + //接口请求地址 + baseUrl: base.baseUrl, + //服务器本地上传文件地址 + fileUrl: base.baseUrl, + //设置请求头(如果使用报错跨域问题,可能是content-type请求类型和后台那边设置的不一致) + header: { + 'Content-Type': 'application/json;charset=UTF-8', + 'project_token': base.projectToken, //项目token(可删除) + } +}); +// 添加获取七牛云token的方法 +$http.getQnToken = function(callback){ + //该地址需要开发者自行配置(每个后台的接口风格都不一样) + $http.get("api/common/v1/qn_upload").then(data => { + /* + *接口返回参数: + *visitPrefix:访问文件的域名 + *token:七牛云上传token + *folderPath:上传的文件夹 + *region: 地区 默认为:SCN + */ + callback({ + visitPrefix: data.visitPrefix, + token: data.token, + folderPath: data.folderPath + }); + }); +} +//请求开始拦截器 +$http.requestStart = function(options) { + console.log("请求开始", options); + if (options.load) { + //打开加载动画 + store.commit("setLoadingShow", true); + } + // 图片上传大小限制 + if (options.method == "FILE" && options.maxSize) { + // 文件最大字节: options.maxSize 可以在调用方法的时候加入参数 + maxSize = options.maxSize; + for (let item of options.files) { + if (item.size > maxSize) { + setTimeout(() => { + uni.showToast({ + title: "图片过大,请重新上传", + icon: "none" + }); + }, 500); + return false; + } + } + } + // #ifdef APP-PLUS + // 添加当前版本号 + if(version_code){ + options.header['version_code'] = version_code; + } + // #endif + //请求前加入token + if (store.state.userInfo.token) { + options.header['user_token'] = store.state.userInfo.token; + }; + return options; +} +//请求结束 +$http.requestEnd = function(options, resolve) { + //判断当前接口是否需要加载动画 + if (options.load) { + // 关闭加载动画 + store.commit("setLoadingShow", false); + } + if (resolve.errMsg && resolve.statusCode && resolve.statusCode > 300) { + setTimeout(() => { + uni.showToast({ + title: "网络错误,请检查一下网络", + icon: "none" + }); + }, 500); + } +} +let loginPopupNum = 0; +//所有接口数据处理(此方法需要开发者根据各自的接口返回类型修改,以下只是模板) +$http.dataFactory = function(res) { + console.log("接口请求数据", { + url: res.url, + resolve: res.response, + header: res.header, + data: res.data, + method: res.method, + }); + if (res.response.statusCode && res.response.statusCode == 200) { + let httpData = res.response.data; + + /*********以下只是模板(及共参考),需要开发者根据各自的接口返回类型修改*********/ + + //判断数据是否请求成功 + if (httpData.success || httpData.code == 200) { + // 返回正确的结果(then接受数据) + res.resolve(httpData.data); + } else if (httpData.code == "1000" || httpData.code == "1001" || httpData.code == 1100) { + // 失败重发 + // $http.request({ + // url: res.url, + // data: res.data, + // method: res.method, + // header: res.header, + // isPrompt: res.isPrompt,//(默认 true 说明:本接口抛出的错误是否提示) + // load: res.load,//(默认 true 说明:本接口是否提示加载动画) + // isFactory: res.isFactory, //(默认 true 说明:本接口是否调用公共的数据处理方法,设置false后isPrompt参数将失去作用) + // }).then(data => { + // res.resolve(data); + // }); + store.commit("emptyUserInfo"); + // #ifdef MP-WEIXIN + onLogin(); + // #endif + // #ifdef H5 + h5Login("force"); + // #endif + // #ifdef APP-PLUS + var content = '此时此刻需要您登录喔~'; + if (httpData.code == "1000") { + content = '此时此刻需要您登录喔'; + } + if (loginPopupNum <= 0) { + loginPopupNum++; + uni.showModal({ + title: '温馨提示', + content: content, + confirmText: "去登录", + cancelText: "再逛会", + success: function(res) { + loginPopupNum--; + if (res.confirm) { + uni.navigateTo({ + url: "/pages/user/login" + }); + } + } + }); + } + // #endif + // 返回错误的结果(catch接受数据) + res.reject(res.response); + } else if (httpData.code == "1004") { + if (loginPopupNum <= 0) { + loginPopupNum++; + uni.showModal({ + title: "提示", + content: "您还未绑定手机号,请先绑定~", + confirmText: "去绑定", + cancelText: "再逛会", + success: (res) => { + loginPopupNum--; + if (res.confirm) { + uni.navigateTo({ + url: '/pages/user/bindPhone' + }); + } + } + }); + } + // 返回错误的结果(catch接受数据) + res.reject(res.response); + } else { //其他错误提示 + if (res.isPrompt) { + setTimeout(function() { + uni.showToast({ + title: httpData.info || httpData.msg, + icon: "none", + duration: 3000 + }); + }, 500); + } + // 返回错误的结果(catch接受数据) + res.reject(res.response); + } + + /*********以上只是模板(及共参考),需要开发者根据各自的接口返回类型修改*********/ + + } else { + // 返回错误的结果(catch接受数据) + res.reject(res.response); + } +}; +export default $http; diff --git a/mallplusui-uniapp-app2/config/store.js b/mallplusui-uniapp-app2/config/store.js new file mode 100644 index 0000000..e549b60 --- /dev/null +++ b/mallplusui-uniapp-app2/config/store.js @@ -0,0 +1,124 @@ +import Vue from 'vue' +import Vuex from 'vuex' +Vue.use(Vuex); +//变量 +const state = { + //用户数据 + userInfo: {}, + //webView地址 + webViewUrl: "", + loadingShow: false, + //微信场景参数 + chatScenesInfo: {}, + //登录弹窗状态 + loginPopupShow: false, + //当前位置 + currentAddress: { + areaName: "请选择", + areaId: '' + }, +}; +//缓存浏览器的数据名称 +const cacheNameList = ["userInfo"]; +let clearTime; +const mutations = { + //取出缓存数据(打开APP就取出) + setCacheData(state) { + for (let name of cacheNameList) { + // #ifndef H5 + let data = uni.getStorageSync(name); + // #endif + // #ifdef H5 + let data = sessionStorage.getItem(name) || localStorage.getItem(name); + // #endif + if (data) { + // #ifdef H5 + try { + data = JSON.parse(data); + } catch (e) { + } + // #endif + state[name] = data; + } + } + }, + //储存用户信息 + setUserInfo(state, data) { + if (data) { + state.userInfo = Object.assign(state.userInfo,data); + // #ifdef H5 + window.sessionStorage.setItem('userInfo', JSON.stringify(state.userInfo)); + // #endif + // #ifndef H5 + uni.setStorageSync('userInfo', state.userInfo); + // #endif + } + }, + // 退出APP + emptyUserInfo(state) { + state.userInfo = {}; + // #ifdef H5 + window.sessionStorage.removeItem("userInfo"); + // #endif + // #ifndef H5 + uni.removeStorageSync("userInfo"); + // #endif + }, + //WebView地址 + setWebViewUrl(state, data) { + if (data) { + state.webViewUrl = data; + // #ifdef H5 + window.sessionStorage.setItem('webViewUrl', data); + // #endif + } + }, + //数据加载状态 + setLoadingShow(state, data) { + if(state.loadingShow){ + clearTime && clearTimeout(clearTime); + clearTime = setTimeout(function(){ + state.loadingShow = data; + },300); + } else { + state.loadingShow = data; + } + }, + //微信场景参数 + setChatScenesInfo(state, data) { + if (data) { + state.chatScenesInfo = data; + } + }, + //登录弹窗状态 + setLoginPopupShow(state, data) { + state.loginPopupShow = data; + }, + //当前地址 + setCurrentAddress(state, data) { + if (data) { + state.currentAddress = Object.assign(state.currentAddress, data); + let addressInfo = { + "provinceId": state.currentAddress.provinceId, + "provinceName": state.currentAddress.provinceName, + "cityId": state.currentAddress.cityId, + "cityName": state.currentAddress.cityName, + "areaId": state.currentAddress.areaId, + "areaName": state.currentAddress.areaName, + }; + // #ifdef H5 + window.sessionStorage.setItem('currentAddress', JSON.stringify(addressInfo)); + // #endif + // #ifndef H5 + uni.setStorageSync('currentAddress', addressInfo); + // #endif + } + } +}; +//异步处理 +const actions = {}; +export default new Vuex.Store({ + state, + mutations, + actions +}); diff --git a/mallplusui-uniapp-app2/main.js b/mallplusui-uniapp-app2/main.js new file mode 100644 index 0000000..d85e0d5 --- /dev/null +++ b/mallplusui-uniapp-app2/main.js @@ -0,0 +1,62 @@ +import Vue from 'vue' +import store from './store' +import App from './App' +import * as otherApi from './config/api.js' + + +import * as Common from './config/common.js' +import * as Db from './config/db.js' +import * as Config from './config/config.js' +import Json from './Json' //测试用数据 +/** + * 因工具函数属于公司资产, 所以直接在Vue实例挂载几个常用的函数 + * 所有测试用数据均存放于根目录json.js + * + * css部分使用了App.vue下的全局样式和iconfont图标,有需要图标库的可以留言。 + * 示例使用了uni.scss下的变量, 除变量外已尽量移除特有语法,可直接替换为其他预处理器使用 + */ +const msg = (title, duration=1500, mask=false, icon='none')=>{ + //统一提示方便全局修改 + if(Boolean(title) === false){ + return; + } + uni.showToast({ + title, + duration, + mask, + icon + }); +} +const json = type=>{ + //模拟异步请求数据 + return new Promise(resolve=>{ + setTimeout(()=>{ + resolve(Json[type]); + }, 500) + }) +} + +const prePage = ()=>{ + let pages = getCurrentPages(); + let prePage = pages[pages.length - 2]; + // #ifdef H5 + return prePage; + // #endif + + return prePage.$vm; +} +Vue.prototype.$otherApi = otherApi; +Vue.prototype.$common = Common; +Vue.prototype.$db = Db; +Vue.prototype.$config = Config; +Vue.config.productionTip = false +Vue.prototype.$fire = new Vue(); +Vue.prototype.$store = store; +Vue.prototype.$api = {msg, json, prePage}; + +App.mpType = 'app' + +const app = new Vue({ + ...App +}) +app.$mount() diff --git a/mallplusui-uniapp-app2/mallplus.keystore b/mallplusui-uniapp-app2/mallplus.keystore new file mode 100644 index 0000000000000000000000000000000000000000..70098af8c54766fcad494e53b131e4e4da70f73d GIT binary patch literal 2603 zcmY+Ec{CJ^8pdasAwviegDAyVhZr+s8$(Ss_GOX@Df=GT31b;q#xBXel_h)G_feLt z8B2VnvWC>yvZU+YbMN<^d*1V$_nhZ>-uKTRoCFbP05ZZ!Eb~k(l2O;A_D%ztfq5jB zF%XGm=)~@alfbV37lAE7B(V93O*oMe6YGDk*dRcLJQC;-P6F-0VN8(!*(cATAf7y) zHhQN~zVmP~0wwWXr6;54f-nOkpvM420`<|EjbaeY(2o6dvzWkU!bq!95Uy5Jv85$k zi-PFJVm7}qAo~J#y+T9Px<%YP%$xnF`--ylo3edX` zgB4Lo&K}3Lau*#T5&n+Q^X7(2nMRY!&z-^Rn$=D;#?P4Xh%P385HtS7UK<@DJJQm*kfn8sh>T9pj<$z(?o-G$r-5L^x4|GBxEuiSP4bFYXza2v=!H}|yUc=V}1;i*D)_JybJ;2Hd> zXU-)rZDIsO)A250dojXf7O54dD~np_pOFM%{lK%`f{^QA)TNKBRWnmtW->X^uvw5k z-i`WbJX>QAQ7w?Uh&zWF4uS-W&{KS!e0(-T=iUmU z%TzI@O_=vQ*NzT3ClODOdKPniZbGgbvj^ua&0emGMf@0v!4O0pR=ZkBaA27_VL zVb4!_2Q(~=rgmtuYLq8qH`ro}|AR=M>d4a&-mfzpexW5-f!A&ywwVZnBMJE8#+K+$tixx-}pWW9Vo}AHthtx zuc_rwr4?Ri{L3K(pQi-^64GF@q|d!|~(W^j;QA2|A=a)`!V zUDNM)Xcyy>?1{VB3hh<7MSsu`9F8x5&>#BEmW{uSeBhAU3^iL)yym*i_oOQ%a50w5 zwW#B(X0I50DF9Xe@mx=aom@6>eJ%{AGr%`ewjlea8$lM1cXxmX@g9hGwqLbYx}_s> z)c@t+wN2q*cmk1fwdU^Sc;&S@?#P?MDb~Vc#++>y4sEPzX}{r?*R%F|wPlA`Mql+S zwEW7iy8W5oDUr$%H>?YJzB$M|>6B*EA)I@c#y*=m&A-Rgem0Q4S!kdHOmP?qoM5X! zR|jr^LDwHL+>_GoV4jZ2j|G7Bpt?6M;%-xb=lv7t`k16re|2wHQLasIXvW#3Z?;xt zmRk`0Is0pi%>8r?yGHXav{0Mf8n3Z-pRsRlNzN?F)S)I7DZfkiyH#EG*q6+{EU_c6 z4L|=kDp`2sxr8|Zt^jL*%gK10$Q$4V7yYMjR-OmMW#Z^+D5%yh!kt0$Hw0}ybs(ElXB|D!C^zbRYU=p)ZjUMXyT6<@3mSN+_FPX=m*v( zkJ4S;i>yll-PD-{Mw5Ndo*Gor?=fLWW)WU~;t`#&bXu*l(VX}@o*x#7ZU9U6wZXo zo zTl2T1_#5tKZ>TTfN4U!Uh6URMW}_b{aEgh9+m{yK*H_J;%NK{)2rgsA9Gm>k#ru2u z*l!iHNp~?*5;M#;tJrhyYIq&Fe@%2q|3hI)>=s2|=YH|(?9o+S%Bpo^;a4pSiPpyS zXkDQZ1pja&plYNhmRWqcy@6*SMg(S3GrE6WkIQoC5^m=TlhqBkqZK3T1MMW(MN#!~ zBR%P&-f=3I(o9Ow%P;r>e`R%P6_;yDXEd;hlky?ud;af?a#f>rFeUz!()*Bir>Ud@7xmwiODWB);C0AvLRlx5DoMxa^g9!@+v{A*TqgYk_ zPe4&}-4yhUqqoBOTM7fNs;{L#h4VOn;9zu9Cu%gsD6qWl`n~^paxgYw-U0s8DkJSvWBZ*U#b7T9eqS`BrK&sItb4Ft%cNwL)~B2SvkrVyr(nz4 zPV*B;k%zOY`nI+hW#he5_#~^N-OHyufXt7{O=oIL>ZO5C{AxV2y=~ky^?Ks6I%Aeniu6G|RN?4D-j3#8D~Q(`wmcD5Lt`yrU<5|x{R{s1v$g;L literal 0 HcmV?d00001 diff --git a/mallplusui-uniapp-app2/manifest.json b/mallplusui-uniapp-app2/manifest.json new file mode 100644 index 0000000..7a98152 --- /dev/null +++ b/mallplusui-uniapp-app2/manifest.json @@ -0,0 +1,172 @@ +{ + "name" : "汇融云链2", + "appid" : "__UNI__557CCCF", + "description" : "", + "versionName" : "4.0.0.0", + "versionCode" : 4000, + "transformPx" : false, + "app-plus" : { + "usingComponents" : true, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : false, + "autoclose" : true, + "delay" : 0 + }, + "modules" : { + "OAuth" : {}, + "Payment" : {}, + "Share" : {}, + "Contacts" : {}, + "iBeacon" : {}, + "Maps" : {} + }, + "distribute" : { + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios" : { + "dSYMs" : false + }, + "sdkConfigs" : { + "oauth" : { + "weixin" : { + "appid" : "wx04b09a8148e4875c", + "appsecret" : "3526ec2107c123f59b5c1cb7ff23a252", + "UniversalLinks" : "" + }, + "qq" : { + "appid" : "101390373" + } + }, + "payment" : { + "weixin" : { + "appid" : "wx04b09a8148e4875c", + "UniversalLinks" : "", + "__platform__" : [ "android" ] + }, + "alipay" : {} + }, + "push" : {}, + "maps" : { + "amap" : { + "appkey_ios" : "8f3a475e0c7c2136efe071f94efb1cae", + "appkey_android" : "6c0a5f6f649f14b4ec575612761f867c" + } + }, + "ad" : {}, + "share" : { + "weixin" : { + "appid" : "wx04b09a8148e4875c", + "UniversalLinks" : "" + }, + "qq" : { + "appid" : "101390373" + } + } + }, + "icons" : { + "ios" : { + "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" + }, + "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" + } + }, + "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" + } + }, + "splashscreen" : { + "android" : { + "hdpi" : "", + "xhdpi" : "", + "xxhdpi" : "" + } + } + } + }, + "quickapp" : {}, + "mp-weixin" : { + "usingComponents" : true, + "appid" : "wx15d4269d3210863d", + "setting" : { + "urlCheck" : false + }, + "permission" : {} + }, + "h5" : { + "title" : "宇运动商城", + "domain" : "https://www.yyundong.com:8088/h5", + "router" : { + "base" : "" + }, + "devServer" : { + "https" : false, + "port" : 8088 + }, + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "RLHBZ-WMPRP-Q3JDS-V2IQA-JNRFH-EJBHL" + } + } + } + }, + "mp-qq" : { + "appid" : "1109850600" + }, + "quickapp-webview" : { + "icon" : "static/logo.png" + } +} diff --git a/mallplusui-uniapp-app2/node_modules/jweixin-module/README.md b/mallplusui-uniapp-app2/node_modules/jweixin-module/README.md new file mode 100644 index 0000000..7c91d7b --- /dev/null +++ b/mallplusui-uniapp-app2/node_modules/jweixin-module/README.md @@ -0,0 +1,30 @@ +# jweixin-module + +微信JS-SDK + +## 安装 + +### NPM + +```shell +npm install jweixin-module --save +``` + +### UMD + +```http +https://unpkg.com/jweixin-module/out/index.js +``` + +## 使用 + +```js +var jweixin = require('jweixin-module') +jweixin.ready(function(){ + // TODO +}); +``` + +## 完整API + +>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115) diff --git a/mallplusui-uniapp-app2/node_modules/jweixin-module/lib/index.js b/mallplusui-uniapp-app2/node_modules/jweixin-module/lib/index.js new file mode 100644 index 0000000..1b5014b --- /dev/null +++ b/mallplusui-uniapp-app2/node_modules/jweixin-module/lib/index.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return n(e)}):n(e,!0)}(window,function(o,e){if(!o.jWeixin){var n,c={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var e={};for(var n in c)e[c[n]]=n;return e}(),i=o.document,t=i.title,r=navigator.userAgent.toLowerCase(),s=navigator.platform.toLowerCase(),d=!(!s.match("mac")&&!s.match("win")),u=-1!=r.indexOf("wxdebugger"),l=-1!=r.indexOf("micromessenger"),p=-1!=r.indexOf("android"),f=-1!=r.indexOf("iphone")||-1!=r.indexOf("ipad"),m=(n=r.match(/micromessenger\/(\d+\.\d+\.\d+)/)||r.match(/micromessenger\/(\d+\.\d+)/))?n[1]:"",g={initStartTime:L(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},h={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:f?1:p?2:-1,clientVersion:m,url:encodeURIComponent(location.href)},v={},S={_completes:[]},y={state:0,data:{}};O(function(){g.initEndTime=L()});var I=!1,_=[],w={config:function(e){B("config",v=e);var t=!1!==v.check;O(function(){if(t)M(c.config,{verifyJsApiList:C(v.jsApiList),verifyOpenTagList:C(v.openTagList)},function(){S._complete=function(e){g.preVerifyEndTime=L(),y.state=1,y.data=e},S.success=function(e){h.isPreVerifyOk=0},S.fail=function(e){S._fail?S._fail(e):y.state=-1};var t=S._completes;return t.push(function(){!function(){if(!(d||u||v.debug||m<"6.0.2"||h.systemType<0)){var i=new Image;h.appId=v.appId,h.initTime=g.initEndTime-g.initStartTime,h.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,w.getNetworkType({isInnerInvoke:!0,success:function(e){h.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+h.version+"&o="+h.isPreVerifyOk+"&s="+h.systemType+"&c="+h.clientVersion+"&a="+h.appId+"&n="+h.networkType+"&i="+h.initTime+"&p="+h.preVerifyTime+"&u="+h.url;i.src=n}})}}()}),S.complete=function(e){for(var n=0,i=t.length;n 0) { + var n = e.split("?")[0], + i = e.split("?")[1]; + return n += ".html", + void 0 !== i ? n + "?" + i: n + } + } + if (!e.jWeixin) { + var h = { + config: "preVerifyJSAPI", + onMenuShareTimeline: "menu:share:timeline", + onMenuShareAppMessage: "menu:share:appmessage", + onMenuShareQQ: "menu:share:qq", + onMenuShareWeibo: "menu:share:weiboApp", + onMenuShareQZone: "menu:share:QZone", + previewImage: "imagePreview", + getLocation: "geoLocation", + openProductSpecificView: "openProductViewWithPid", + addCard: "batchAddCard", + openCard: "batchViewCard", + chooseWXPay: "getBrandWCPayRequest", + openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", + startSearchBeacons: "startMonitoringBeacons", + stopSearchBeacons: "stopMonitoringBeacons", + onSearchBeacons: "onBeaconsInRange", + consumeAndShareCard: "consumedShareCard", + openAddress: "editAddress" + }, + v = function() { + var e = {}; + for (var n in h) e[h[n]] = n; + return e + } (), + S = e.document, + I = S.title, + y = navigator.userAgent.toLowerCase(), + _ = navigator.platform.toLowerCase(), + k = !(!_.match("mac") && !_.match("win")), + w = -1 != y.indexOf("wxdebugger"), + T = -1 != y.indexOf("micromessenger"), + M = -1 != y.indexOf("android"), + P = -1 != y.indexOf("iphone") || -1 != y.indexOf("ipad"), + x = function() { + var e = y.match(/micromessenger\/(\d+\.\d+\.\d+)/) || y.match(/micromessenger\/(\d+\.\d+)/); + return e ? e[1] : "" + } (), + A = { + initStartTime: p(), + initEndTime: 0, + preVerifyStartTime: 0, + preVerifyEndTime: 0 + }, + V = { + version: 1, + appId: "", + initTime: 0, + preVerifyTime: 0, + networkType: "", + isPreVerifyOk: 1, + systemType: P ? 1 : M ? 2 : -1, + clientVersion: x, + url: encodeURIComponent(location.href) + }, + C = {}, + L = { + _completes: [] + }, + B = { + state: 0, + data: {} + }; + f(function() { + A.initEndTime = p() + }); + var O = !1, + E = [], + N = { + config: function(e) { + C = e, + u("config", e); + var n = !1 !== C.check; + f(function() { + if (n) i(h.config, { + verifyJsApiList: d(C.jsApiList) + }, + function() { + L._complete = function(e) { + A.preVerifyEndTime = p(), + B.state = 1, + B.data = e + }, + L.success = function(e) { + V.isPreVerifyOk = 0 + }, + L.fail = function(e) { + L._fail ? L._fail(e) : B.state = -1 + }; + var e = L._completes; + return e.push(function() { + l() + }), + L.complete = function(n) { + for (var i = 0, + t = e.length; i < t; ++i) e[i](); + L._completes = [] + }, + L + } ()), + A.preVerifyStartTime = p(); + else { + B.state = 1; + for (var e = L._completes, + t = 0, + o = e.length; t < o; ++t) e[t](); + L._completes = [] + } + }), + m() + }, + ready: function(e) { + 0 != B.state ? e() : (L._completes.push(e), !T && C.debug && e()) + }, + error: function(e) { + x < "6.0.2" || ( - 1 == B.state ? e(B.data) : L._fail = e) + }, + checkJsApi: function(e) { + var n = function(e) { + var n = e.checkResult; + for (var i in n) { + var t = v[i]; + t && (n[t] = n[i], delete n[i]) + } + return e + }; + i("checkJsApi", { + jsApiList: d(e.jsApiList) + }, + (e._complete = function(e) { + if (M) { + var i = e.checkResult; + i && (e.checkResult = JSON.parse(i)) + } + e = n(e) + }, + e)) + }, + onMenuShareTimeline: function(e) { + t(h.onMenuShareTimeline, { + complete: function() { + i("shareTimeline", { + title: e.title || I, + desc: e.title || I, + img_url: e.imgUrl || "", + link: e.link || location.href, + type: e.type || "link", + data_url: e.dataUrl || "" + }, + e) + } + }, + e) + }, + onMenuShareAppMessage: function(e) { + t(h.onMenuShareAppMessage, { + complete: function(n) { + "favorite" === n.scene ? i("sendAppMessage", { + title: e.title || I, + desc: e.desc || "", + link: e.link || location.href, + img_url: e.imgUrl || "", + type: e.type || "link", + data_url: e.dataUrl || "" + }) : i("sendAppMessage", { + title: e.title || I, + desc: e.desc || "", + link: e.link || location.href, + img_url: e.imgUrl || "", + type: e.type || "link", + data_url: e.dataUrl || "" + }, + e) + } + }, + e) + }, + onMenuShareQQ: function(e) { + t(h.onMenuShareQQ, { + complete: function() { + i("shareQQ", { + title: e.title || I, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href + }, + e) + } + }, + e) + }, + onMenuShareWeibo: function(e) { + t(h.onMenuShareWeibo, { + complete: function() { + i("shareWeiboApp", { + title: e.title || I, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href + }, + e) + } + }, + e) + }, + onMenuShareQZone: function(e) { + t(h.onMenuShareQZone, { + complete: function() { + i("shareQZone", { + title: e.title || I, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href + }, + e) + } + }, + e) + }, + updateTimelineShareData: function(e) { + i("updateTimelineShareData", { + title: e.title, + link: e.link, + imgUrl: e.imgUrl + }, + e) + }, + updateAppMessageShareData: function(e) { + i("updateAppMessageShareData", { + title: e.title, + desc: e.desc, + link: e.link, + imgUrl: e.imgUrl + }, + e) + }, + startRecord: function(e) { + i("startRecord", {}, + e) + }, + stopRecord: function(e) { + i("stopRecord", {}, + e) + }, + onVoiceRecordEnd: function(e) { + t("onVoiceRecordEnd", e) + }, + playVoice: function(e) { + i("playVoice", { + localId: e.localId + }, + e) + }, + pauseVoice: function(e) { + i("pauseVoice", { + localId: e.localId + }, + e) + }, + stopVoice: function(e) { + i("stopVoice", { + localId: e.localId + }, + e) + }, + onVoicePlayEnd: function(e) { + t("onVoicePlayEnd", e) + }, + uploadVoice: function(e) { + i("uploadVoice", { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 + }, + e) + }, + downloadVoice: function(e) { + i("downloadVoice", { + serverId: e.serverId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 + }, + e) + }, + translateVoice: function(e) { + i("translateVoice", { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 + }, + e) + }, + chooseImage: function(e) { + i("chooseImage", { + scene: "1|2", + count: e.count || 9, + sizeType: e.sizeType || ["original", "compressed"], + sourceType: e.sourceType || ["album", "camera"] + }, + (e._complete = function(e) { + if (M) { + var n = e.localIds; + try { + n && (e.localIds = JSON.parse(n)) + } catch(e) {} + } + }, + e)) + }, + getLocation: function(e) {}, + previewImage: function(e) { + i(h.previewImage, { + current: e.current, + urls: e.urls + }, + e) + }, + uploadImage: function(e) { + i("uploadImage", { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 + }, + e) + }, + downloadImage: function(e) { + i("downloadImage", { + serverId: e.serverId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 + }, + e) + }, + getLocalImgData: function(e) { ! 1 === O ? (O = !0, i("getLocalImgData", { + localId: e.localId + }, + (e._complete = function(e) { + if (O = !1, E.length > 0) { + var n = E.shift(); + wx.getLocalImgData(n) + } + }, + e))) : E.push(e) + }, + getNetworkType: function(e) { + var n = function(e) { + var n = e.errMsg; + e.errMsg = "getNetworkType:ok"; + var i = e.subtype; + if (delete e.subtype, i) e.networkType = i; + else { + var t = n.indexOf(":"), + o = n.substring(t + 1); + switch (o) { + case "wifi": + case "edge": + case "wwan": + e.networkType = o; + break; + default: + e.errMsg = "getNetworkType:fail" + } + } + return e + }; + i("getNetworkType", {}, + (e._complete = function(e) { + e = n(e) + }, + e)) + }, + openLocation: function(e) { + i("openLocation", { + latitude: e.latitude, + longitude: e.longitude, + name: e.name || "", + address: e.address || "", + scale: e.scale || 28, + infoUrl: e.infoUrl || "" + }, + e) + }, + getLocation: function(e) { + e = e || {}, + i(h.getLocation, { + type: e.type || "wgs84" + }, + (e._complete = function(e) { + delete e.type + }, + e)) + }, + hideOptionMenu: function(e) { + i("hideOptionMenu", {}, + e) + }, + showOptionMenu: function(e) { + i("showOptionMenu", {}, + e) + }, + closeWindow: function(e) { + i("closeWindow", {}, + e = e || {}) + }, + hideMenuItems: function(e) { + i("hideMenuItems", { + menuList: e.menuList + }, + e) + }, + showMenuItems: function(e) { + i("showMenuItems", { + menuList: e.menuList + }, + e) + }, + hideAllNonBaseMenuItem: function(e) { + i("hideAllNonBaseMenuItem", {}, + e) + }, + showAllNonBaseMenuItem: function(e) { + i("showAllNonBaseMenuItem", {}, + e) + }, + scanQRCode: function(e) { + i("scanQRCode", { + needResult: (e = e || {}).needResult || 0, + scanType: e.scanType || ["qrCode", "barCode"] + }, + (e._complete = function(e) { + if (P) { + var n = e.resultStr; + if (n) { + var i = JSON.parse(n); + e.resultStr = i && i.scan_code && i.scan_code.scan_result + } + } + }, + e)) + }, + openAddress: function(e) { + i(h.openAddress, {}, + (e._complete = function(e) { + e = a(e) + }, + e)) + }, + openProductSpecificView: function(e) { + i(h.openProductSpecificView, { + pid: e.productId, + view_type: e.viewType || 0, + ext_info: e.extInfo + }, + e) + }, + addCard: function(e) { + for (var n = e.cardList, + t = [], o = 0, r = n.length; o < r; ++o) { + var a = n[o], + c = { + card_id: a.cardId, + card_ext: a.cardExt + }; + t.push(c) + } + i(h.addCard, { + card_list: t + }, + (e._complete = function(e) { + var n = e.card_list; + if (n) { + for (var i = 0, + t = (n = JSON.parse(n)).length; i < t; ++i) { + var o = n[i]; + o.cardId = o.card_id, + o.cardExt = o.card_ext, + o.isSuccess = !!o.is_succ, + delete o.card_id, + delete o.card_ext, + delete o.is_succ + } + e.cardList = n, + delete e.card_list + } + }, + e)) + }, + chooseCard: function(e) { + i("chooseCard", { + app_id: C.appId, + location_id: e.shopId || "", + sign_type: e.signType || "SHA1", + card_id: e.cardId || "", + card_type: e.cardType || "", + card_sign: e.cardSign, + time_stamp: e.timestamp + "", + nonce_str: e.nonceStr + }, + (e._complete = function(e) { + e.cardList = e.choose_card_info, + delete e.choose_card_info + }, + e)) + }, + openCard: function(e) { + for (var n = e.cardList, + t = [], o = 0, r = n.length; o < r; ++o) { + var a = n[o], + c = { + card_id: a.cardId, + code: a.code + }; + t.push(c) + } + i(h.openCard, { + card_list: t + }, + e) + }, + consumeAndShareCard: function(e) { + i(h.consumeAndShareCard, { + consumedCardId: e.cardId, + consumedCode: e.code + }, + e) + }, + chooseWXPay: function(e) { + i(h.chooseWXPay, r(e), e) + }, + openEnterpriseRedPacket: function(e) { + i(h.openEnterpriseRedPacket, r(e), e) + }, + startSearchBeacons: function(e) { + i(h.startSearchBeacons, { + ticket: e.ticket + }, + e) + }, + stopSearchBeacons: function(e) { + i(h.stopSearchBeacons, {}, + e) + }, + onSearchBeacons: function(e) { + t(h.onSearchBeacons, e) + }, + openEnterpriseChat: function(e) { + i("openEnterpriseChat", { + useridlist: e.userIds, + chatname: e.groupName + }, + e) + }, + launchMiniProgram: function(e) { + i("launchMiniProgram", { + targetAppId: e.targetAppId, + path: g(e.path), + envVersion: e.envVersion + }, + e) + }, + miniProgram: { + navigateBack: function(e) { + e = e || {}, + f(function() { + i("invokeMiniProgramAPI", { + name: "navigateBack", + arg: { + delta: e.delta || 1 + } + }, + e) + }) + }, + navigateTo: function(e) { + f(function() { + i("invokeMiniProgramAPI", { + name: "navigateTo", + arg: { + url: e.url + } + }, + e) + }) + }, + redirectTo: function(e) { + f(function() { + i("invokeMiniProgramAPI", { + name: "redirectTo", + arg: { + url: e.url + } + }, + e) + }) + }, + switchTab: function(e) { + f(function() { + i("invokeMiniProgramAPI", { + name: "switchTab", + arg: { + url: e.url + } + }, + e) + }) + }, + reLaunch: function(e) { + f(function() { + i("invokeMiniProgramAPI", { + name: "reLaunch", + arg: { + url: e.url + } + }, + e) + }) + }, + postMessage: function(e) { + f(function() { + i("invokeMiniProgramAPI", { + name: "postMessage", + arg: e.data || {} + }, + e) + }) + }, + getEnv: function(n) { + f(function() { + n({ + miniprogram: "miniprogram" === e.__wxjs_environment + }) + }) + } + } + }, + b = 1, + R = {}; + return S.addEventListener("error", + function(e) { + if (!M) { + var n = e.target, + i = n.tagName, + t = n.src; + if (("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) && -1 != t.indexOf("wxlocalresource://")) { + e.preventDefault(), + e.stopPropagation(); + var o = n["wx-id"]; + if (o || (o = b++, n["wx-id"] = o), R[o]) return; + R[o] = !0, + wx.ready(function() { + wx.getLocalImgData({ + localId: t, + success: function(e) { + n.src = e.localData + } + }) + }) + } + } + }, + !0), + S.addEventListener("load", + function(e) { + if (!M) { + var n = e.target, + i = n.tagName; + n.src; + if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) { + var t = n["wx-id"]; + t && (R[t] = !1) + } + } + }, + !0), + n && (e.wx = e.jWeixin = N), + N + } +}); \ No newline at end of file diff --git a/mallplusui-uniapp-app2/node_modules/weixin-js-sdk/index.original.js b/mallplusui-uniapp-app2/node_modules/weixin-js-sdk/index.original.js new file mode 100644 index 0000000..9d66191 --- /dev/null +++ b/mallplusui-uniapp-app2/node_modules/weixin-js-sdk/index.original.js @@ -0,0 +1,2 @@ +// from http://res.wx.qq.com/open/js/jweixin-1.4.0.js +!function(e,n){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return n(e)}):n(e,!0)}(this,function(e,n){function i(n,i,t){e.WeixinJSBridge?WeixinJSBridge.invoke(n,o(i),function(e){c(n,e,t)}):u(n,t)}function t(n,i,t){e.WeixinJSBridge?WeixinJSBridge.on(n,function(e){t&&t.trigger&&t.trigger(e),c(n,e,i)}):t?u(n,t):u(n,i)}function o(e){return e=e||{},e.appId=C.appId,e.verifyAppId=C.appId,e.verifySignType="sha1",e.verifyTimestamp=C.timestamp+"",e.verifyNonceStr=C.nonceStr,e.verifySignature=C.signature,e}function r(e){return{timeStamp:e.timestamp+"",nonceStr:e.nonceStr,package:e.package,paySign:e.paySign,signType:e.signType||"SHA1"}}function a(e){return e.postalCode=e.addressPostalCode,delete e.addressPostalCode,e.provinceName=e.proviceFirstStageName,delete e.proviceFirstStageName,e.cityName=e.addressCitySecondStageName,delete e.addressCitySecondStageName,e.countryName=e.addressCountiesThirdStageName,delete e.addressCountiesThirdStageName,e.detailInfo=e.addressDetailInfo,delete e.addressDetailInfo,e}function c(e,n,i){"openEnterpriseChat"==e&&(n.errCode=n.err_code),delete n.err_code,delete n.err_desc,delete n.err_detail;var t=n.errMsg;t||(t=n.err_msg,delete n.err_msg,t=s(e,t),n.errMsg=t),(i=i||{})._complete&&(i._complete(n),delete i._complete),t=n.errMsg||"",C.debug&&!i.isInnerInvoke&&alert(JSON.stringify(n));var o=t.indexOf(":");switch(t.substring(o+1)){case"ok":i.success&&i.success(n);break;case"cancel":i.cancel&&i.cancel(n);break;default:i.fail&&i.fail(n)}i.complete&&i.complete(n)}function s(e,n){var i=e,t=v[i];t&&(i=t);var o="ok";if(n){var r=n.indexOf(":");"confirm"==(o=n.substring(r+1))&&(o="ok"),"failed"==o&&(o="fail"),-1!=o.indexOf("failed_")&&(o=o.substring(7)),-1!=o.indexOf("fail_")&&(o=o.substring(5)),"access denied"!=(o=(o=o.replace(/_/g," ")).toLowerCase())&&"no permission to execute"!=o||(o="permission denied"),"config"==i&&"function not exist"==o&&(o="ok"),""==o&&(o="fail")}return n=i+":"+o}function d(e){if(e){for(var n=0,i=e.length;n0){var n=e.split("?")[0],i=e.split("?")[1];return n+=".html",void 0!==i?n+"?"+i:n}}if(!e.jWeixin){var h={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},v=function(){var e={};for(var n in h)e[h[n]]=n;return e}(),S=e.document,I=S.title,y=navigator.userAgent.toLowerCase(),_=navigator.platform.toLowerCase(),k=!(!_.match("mac")&&!_.match("win")),w=-1!=y.indexOf("wxdebugger"),T=-1!=y.indexOf("micromessenger"),M=-1!=y.indexOf("android"),P=-1!=y.indexOf("iphone")||-1!=y.indexOf("ipad"),x=function(){var e=y.match(/micromessenger\/(\d+\.\d+\.\d+)/)||y.match(/micromessenger\/(\d+\.\d+)/);return e?e[1]:""}(),A={initStartTime:p(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},V={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:P?1:M?2:-1,clientVersion:x,url:encodeURIComponent(location.href)},C={},L={_completes:[]},B={state:0,data:{}};f(function(){A.initEndTime=p()});var O=!1,E=[],N={config:function(e){C=e,u("config",e);var n=!1!==C.check;f(function(){if(n)i(h.config,{verifyJsApiList:d(C.jsApiList)},function(){L._complete=function(e){A.preVerifyEndTime=p(),B.state=1,B.data=e},L.success=function(e){V.isPreVerifyOk=0},L.fail=function(e){L._fail?L._fail(e):B.state=-1};var e=L._completes;return e.push(function(){l()}),L.complete=function(n){for(var i=0,t=e.length;i0){var n=E.shift();wx.getLocalImgData(n)}},e))):E.push(e)},getNetworkType:function(e){var n=function(e){var n=e.errMsg;e.errMsg="getNetworkType:ok";var i=e.subtype;if(delete e.subtype,i)e.networkType=i;else{var t=n.indexOf(":"),o=n.substring(t+1);switch(o){case"wifi":case"edge":case"wwan":e.networkType=o;break;default:e.errMsg="getNetworkType:fail"}}return e};i("getNetworkType",{},(e._complete=function(e){e=n(e)},e))},openLocation:function(e){i("openLocation",{latitude:e.latitude,longitude:e.longitude,name:e.name||"",address:e.address||"",scale:e.scale||28,infoUrl:e.infoUrl||""},e)},getLocation:function(e){e=e||{},i(h.getLocation,{type:e.type||"wgs84"},(e._complete=function(e){delete e.type},e))},hideOptionMenu:function(e){i("hideOptionMenu",{},e)},showOptionMenu:function(e){i("showOptionMenu",{},e)},closeWindow:function(e){i("closeWindow",{},e=e||{})},hideMenuItems:function(e){i("hideMenuItems",{menuList:e.menuList},e)},showMenuItems:function(e){i("showMenuItems",{menuList:e.menuList},e)},hideAllNonBaseMenuItem:function(e){i("hideAllNonBaseMenuItem",{},e)},showAllNonBaseMenuItem:function(e){i("showAllNonBaseMenuItem",{},e)},scanQRCode:function(e){i("scanQRCode",{needResult:(e=e||{}).needResult||0,scanType:e.scanType||["qrCode","barCode"]},(e._complete=function(e){if(P){var n=e.resultStr;if(n){var i=JSON.parse(n);e.resultStr=i&&i.scan_code&&i.scan_code.scan_result}}},e))},openAddress:function(e){i(h.openAddress,{},(e._complete=function(e){e=a(e)},e))},openProductSpecificView:function(e){i(h.openProductSpecificView,{pid:e.productId,view_type:e.viewType||0,ext_info:e.extInfo},e)},addCard:function(e){for(var n=e.cardList,t=[],o=0,r=n.length;o + + + 购物车 + + + + + + 空空如也 + 随便逛逛> + + + + 空空如也 + 去登陆> + + + + + + + + + + + + + {{ item.productName }} + {{ item.productAttr }} + ¥{{ item.price }} + + + + + + + + + + + + 清空 + + + ¥{{ total }} + + 已优惠 + {{ promoteAmount }} + 元 + + + + + + + + + + + + diff --git a/mallplusui-uniapp-app2/pages/category/areaGoods.vue b/mallplusui-uniapp-app2/pages/category/areaGoods.vue new file mode 100644 index 0000000..ea8616e --- /dev/null +++ b/mallplusui-uniapp-app2/pages/category/areaGoods.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/category/category.vue b/mallplusui-uniapp-app2/pages/category/category.vue new file mode 100644 index 0000000..2056265 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/category/category.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/index/index.vue b/mallplusui-uniapp-app2/pages/index/index.vue new file mode 100644 index 0000000..7faee05 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/index/index.vue @@ -0,0 +1,1424 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/index/lease.vue b/mallplusui-uniapp-app2/pages/index/lease.vue new file mode 100644 index 0000000..33a6994 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/index/lease.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/index/nearbyBusiness.vue b/mallplusui-uniapp-app2/pages/index/nearbyBusiness.vue new file mode 100644 index 0000000..c6abf5f --- /dev/null +++ b/mallplusui-uniapp-app2/pages/index/nearbyBusiness.vue @@ -0,0 +1,561 @@ + + + + + + diff --git a/mallplusui-uniapp-app2/pages/index/secskill.vue b/mallplusui-uniapp-app2/pages/index/secskill.vue new file mode 100644 index 0000000..33cdfdf --- /dev/null +++ b/mallplusui-uniapp-app2/pages/index/secskill.vue @@ -0,0 +1,581 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/index/user.vue b/mallplusui-uniapp-app2/pages/index/user.vue new file mode 100644 index 0000000..b1709b6 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/index/user.vue @@ -0,0 +1,770 @@ + + + diff --git a/mallplusui-uniapp-app2/pages/integral/home/home.css b/mallplusui-uniapp-app2/pages/integral/home/home.css new file mode 100644 index 0000000..7b028b4 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/integral/home/home.css @@ -0,0 +1,115 @@ +.top {} + +.top-integral { + font-size: 60upx; +} + +.top-bot { + height: 100upx; + margin-top: 40upx; + background: rgba(255,255,255,0.12); +} + +.top-warn{ + width: 50upx; + height: 50upx; + position: relative; + left: 400upx; + bottom: 100upx; +} + +.level{ + border: 1px solid #FFCC00; + border-radius: 20upx; +} + +.bill { + width: 33%; + height: 100upx; +} + +.content-title{ + width: 100%; + height: 100upx; +} + + +.hot-goods-content { + width: 100%; + /* padding: 0 1.5% 25upx 1.5%; */ + padding: 0 1.5%; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + padding-bottom: 20upx; + /* justify-content: center; */ +} + +.hot-goods-item { + margin: 20upx 2% 0 2%; + padding: 5upx 0; + width: 46%; + /* height: 430upx; */ + display: flex; + flex-direction: column; + box-sizing: border-box; + background: #ffffff; + border-bottom-right-radius: 8upx; + border-bottom-left-radius: 8upx; + box-shadow: 0upx 0px 15upx #FFEFDB; +} + +.hot-goods-item2 { + margin: 20upx 2% 0 2%; + width: 46%; + padding: 5upx 0; + /* height: 430upx; */ + height: 500upx; + display: flex; + flex-direction: column; + box-sizing: border-box; + background: #ffffff; + border-bottom-right-radius: 8upx; + border-bottom-left-radius: 8upx; + /* box-shadow: 0upx 0px 15upx #FFEFDB; */ +} + +.hot-goods-item:nth-child(2n-1) { + margin-right: auto; + +} + +.hot-goods-image { + width: 290upx; + height: 290upx; + margin-top: 3upx; +} + +.hot-goods-image-more { + width: 150upx; + height: 150upx; +} + +.hot-goods-name { + margin-top: 10upx; + font-size: 30upx; + width: 94%; + text-align: left; + /* height: 100upx; */ +} + +.hot-goods-more { + margin-top: 5upx; + margin-left: 10upx; + font-size: 30upx; + width: 94%; + text-align: center; +} + +.hot-goods-price { + margin: 20upx 10upx 0 0; + font-size: 30upx; + width: 100%; + text-align: left; +} \ No newline at end of file diff --git a/mallplusui-uniapp-app2/pages/integral/home/home.vue b/mallplusui-uniapp-app2/pages/integral/home/home.vue new file mode 100644 index 0000000..3c39b18 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/integral/home/home.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/money/pay.vue b/mallplusui-uniapp-app2/pages/money/pay.vue new file mode 100644 index 0000000..f0cd4a5 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/money/pay.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/money/paySuccess.vue b/mallplusui-uniapp-app2/pages/money/paySuccess.vue new file mode 100644 index 0000000..d93d14e --- /dev/null +++ b/mallplusui-uniapp-app2/pages/money/paySuccess.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/order/createOrder.vue b/mallplusui-uniapp-app2/pages/order/createOrder.vue new file mode 100644 index 0000000..818a963 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/order/createOrder.vue @@ -0,0 +1,870 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/order/createOrder1.vue b/mallplusui-uniapp-app2/pages/order/createOrder1.vue new file mode 100644 index 0000000..53222e1 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/order/createOrder1.vue @@ -0,0 +1,771 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/order/createStoreOrder.vue b/mallplusui-uniapp-app2/pages/order/createStoreOrder.vue new file mode 100644 index 0000000..c5adb30 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/order/createStoreOrder.vue @@ -0,0 +1,806 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/order/createStoreOrder1.vue b/mallplusui-uniapp-app2/pages/order/createStoreOrder1.vue new file mode 100644 index 0000000..0c1c1f8 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/order/createStoreOrder1.vue @@ -0,0 +1,761 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/order/evaluate.vue b/mallplusui-uniapp-app2/pages/order/evaluate.vue new file mode 100644 index 0000000..f352358 --- /dev/null +++ b/mallplusui-uniapp-app2/pages/order/evaluate.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pages/set/set.vue b/mallplusui-uniapp-app2/pages/set/set.vue new file mode 100644 index 0000000..9ff541e --- /dev/null +++ b/mallplusui-uniapp-app2/pages/set/set.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/after_sale/detail.vue b/mallplusui-uniapp-app2/pagesA/after_sale/detail.vue new file mode 100644 index 0000000..87cd0ec --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/after_sale/detail.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/after_sale/index.vue b/mallplusui-uniapp-app2/pagesA/after_sale/index.vue new file mode 100644 index 0000000..22e31df --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/after_sale/index.vue @@ -0,0 +1,382 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/categoryAttr.vue b/mallplusui-uniapp-app2/pagesA/product/categoryAttr.vue new file mode 100644 index 0000000..a1cd8bd --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/categoryAttr.vue @@ -0,0 +1,352 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/discountList.vue b/mallplusui-uniapp-app2/pagesA/product/discountList.vue new file mode 100644 index 0000000..b552d5a --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/discountList.vue @@ -0,0 +1,408 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/giftList.vue b/mallplusui-uniapp-app2/pagesA/product/giftList.vue new file mode 100644 index 0000000..2c616d3 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/giftList.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/giftProduct.vue b/mallplusui-uniapp-app2/pagesA/product/giftProduct.vue new file mode 100644 index 0000000..2ce992f --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/giftProduct.vue @@ -0,0 +1,706 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/groupActivityDetail.vue b/mallplusui-uniapp-app2/pagesA/product/groupActivityDetail.vue new file mode 100644 index 0000000..7af0f83 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/groupActivityDetail.vue @@ -0,0 +1,1219 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/groupActivityList.vue b/mallplusui-uniapp-app2/pagesA/product/groupActivityList.vue new file mode 100644 index 0000000..24e9680 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/groupActivityList.vue @@ -0,0 +1,381 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/groupList.vue b/mallplusui-uniapp-app2/pagesA/product/groupList.vue new file mode 100644 index 0000000..e71e738 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/groupList.vue @@ -0,0 +1,407 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/groupProduct.vue b/mallplusui-uniapp-app2/pagesA/product/groupProduct.vue new file mode 100644 index 0000000..689f520 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/groupProduct.vue @@ -0,0 +1,1097 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/list.vue b/mallplusui-uniapp-app2/pagesA/product/list.vue new file mode 100644 index 0000000..6909105 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/list.vue @@ -0,0 +1,528 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/paiMaiDetail.vue b/mallplusui-uniapp-app2/pagesA/product/paiMaiDetail.vue new file mode 100644 index 0000000..e291d60 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/paiMaiDetail.vue @@ -0,0 +1,726 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/paiMaiList.vue b/mallplusui-uniapp-app2/pagesA/product/paiMaiList.vue new file mode 100644 index 0000000..d9afddf --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/paiMaiList.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/product.vue b/mallplusui-uniapp-app2/pagesA/product/product.vue new file mode 100644 index 0000000..5e46963 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/product.vue @@ -0,0 +1,1283 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue b/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue new file mode 100644 index 0000000..29d7d7c --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue @@ -0,0 +1,1030 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesA/product/tag.vue b/mallplusui-uniapp-app2/pagesA/product/tag.vue new file mode 100644 index 0000000..7b1a853 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/tag.vue @@ -0,0 +1,205 @@ + + + + + \ No newline at end of file diff --git a/mallplusui-uniapp-app2/pagesA/product/tagGoodslist.vue b/mallplusui-uniapp-app2/pagesA/product/tagGoodslist.vue new file mode 100644 index 0000000..1ef8f7e --- /dev/null +++ b/mallplusui-uniapp-app2/pagesA/product/tagGoodslist.vue @@ -0,0 +1,483 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesC/seller/caldar.vue b/mallplusui-uniapp-app2/pagesC/seller/caldar.vue new file mode 100644 index 0000000..beb9ffe --- /dev/null +++ b/mallplusui-uniapp-app2/pagesC/seller/caldar.vue @@ -0,0 +1,114 @@ + + + diff --git a/mallplusui-uniapp-app2/pagesC/seller/dayStatisc.vue b/mallplusui-uniapp-app2/pagesC/seller/dayStatisc.vue new file mode 100644 index 0000000..0f83336 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesC/seller/dayStatisc.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/mallplusui-uniapp-app2/pagesC/seller/evaluate.vue b/mallplusui-uniapp-app2/pagesC/seller/evaluate.vue new file mode 100644 index 0000000..a2fa628 --- /dev/null +++ b/mallplusui-uniapp-app2/pagesC/seller/evaluate.vue @@ -0,0 +1,302 @@ +