From c9ceac9f3737c7ab349eb50d7777f834c031be07 Mon Sep 17 00:00:00 2001 From: lifizer <913626195@qq.com> Date: Wed, 20 Sep 2023 21:49:33 +0800 Subject: [PATCH] Init project --- .gitignore | 15 + .hbuilderx/launch.json | 16 + App.vue | 26 + api/activity.js | 153 + api/admin.js | 73 + api/goods.js | 92 + api/inn.js | 200 + api/join.js | 50 + api/luck.js | 59 + api/order.js | 163 + api/product.js | 43 + api/public.js | 202 + api/shop.js | 72 + api/store.js | 191 + api/user.js | 525 + api/wenwan.js | 21 + assets/css/base.less | 293 + assets/css/goods.less | 173 + assets/css/pkg_join.less | 142 + assets/css/product.less | 131 + assets/css/reset.less | 43 + assets/css/store.less | 39 + assets/css/style.less | 8193 ++++++++++ assets/iconfont/iconfont.css | 661 + assets/script/global.js | 54 + components/AddressWindow.vue | 77 + components/CitySelect.vue | 335 + components/CountDown.vue | 98 + components/CouponListWindow.vue | 122 + components/CouponPop.vue | 75 + components/CouponWindow.vue | 88 + components/DataFormat.vue | 24 + components/DataFormatT.vue | 24 + components/GoodList.vue | 54 + components/Loading.vue | 27 + components/OrderGoods.vue | 88 + components/Payment.vue | 174 + components/PriceChange.vue | 133 + components/ProductConSwiper.vue | 87 + components/ProductWindow.vue | 122 + components/PromotionGood.vue | 36 + components/Recommend.vue | 89 + components/ShareInfo.vue | 45 + components/StorePoster.vue | 165 + components/UserEvaluation.vue | 56 + components/WriteOff.vue | 128 + components/blPaymentPasswordInput.vue | 435 + components/chose-city/chose-city.vue | 368 + components/drag-button/drag-button.vue | 142 + components/drop-down/drop-down.vue | 116 + components/easy-upload/easy-upload.vue | 343 + components/easy-upload/readme.md | 51 + components/hx-navbar/README.md | 240 + components/hx-navbar/hx-navbar.vue | 650 + components/imageTypeSet/imagebox.vue | 160 + components/ls-swiper/index.md | 40 + components/ls-swiper/index.vue | 180 + .../maramlee-waterfalls-flow.vue | 173 + .../mescroll-uni/components/mescroll-down.css | 55 + .../mescroll-uni/components/mescroll-down.vue | 47 + .../components/mescroll-empty.vue | 91 + .../mescroll-uni/components/mescroll-top.vue | 81 + .../mescroll-uni/components/mescroll-up.css | 46 + .../mescroll-uni/components/mescroll-up.vue | 39 + components/mescroll-uni/mescroll-body.css | 10 + components/mescroll-uni/mescroll-body.vue | 292 + components/mescroll-uni/mescroll-mixins.js | 60 + .../mescroll-uni/mescroll-uni-option.js | 36 + components/mescroll-uni/mescroll-uni.css | 29 + components/mescroll-uni/mescroll-uni.js | 862 ++ components/mescroll-uni/mescroll-uni.vue | 364 + .../mescroll-uni/mixins/mescroll-comp.js | 23 + .../mescroll-uni/mixins/mescroll-more-item.js | 48 + .../mescroll-uni/mixins/mescroll-more.js | 56 + components/simple-address/city-data/area.js | 12548 ++++++++++++++++ components/simple-address/city-data/city.js | 1507 ++ .../simple-address/city-data/province.js | 143 + components/simple-address/simple-address.nvue | 381 + components/uni-popup/message.js | 22 + components/uni-popup/popup.js | 25 + components/uni-popup/uni-popup-dialog.vue | 243 + components/uni-popup/uni-popup-message.vue | 116 + components/uni-popup/uni-popup-share.vue | 165 + components/uni-popup/uni-popup.vue | 294 + .../uni-segmented-control.vue | 134 + components/uni-transition/uni-transition.vue | 279 + components/v-tabs/readme.md | 182 + components/v-tabs/v-tabs.vue | 358 + .../yzc-paykeyboard/yzc-paykeyboard.vue | 287 + config/index.js | 13 + libs/chat.js | 51 + libs/order.js | 161 + libs/wechat.js | 397 + main.js | 187 + manifest.json | 172 + mixins/SendVerifyCode.js | 27 + mixins/mescroll-mixins.js | 46 + mixins/share-mixins.js | 34 + package.json | 123 + pages.json | 894 ++ pages/LiveAndShortVideo/LiveAndShortVideo.vue | 266 + pages/LiveBroadcastList/LiveBroadcastList.vue | 246 + pages/Loading/index.vue | 144 + pages/NotDefined/index.vue | 60 + .../VideoPlayBackList/VideoPlayBackDetail.vue | 47 + pages/VideoPlayBackList/VideoPlayBackList.vue | 175 + pages/activity/BargainRecord/index.vue | 131 + pages/activity/DargainDetails/index.vue | 617 + pages/activity/GoodsBargain/index.vue | 84 + pages/activity/GoodsGroup/index.vue | 91 + pages/activity/GoodsSeckill/index.vue | 261 + pages/activity/GroupDetails/index.vue | 375 + pages/activity/GroupRule/index.vue | 248 + pages/activity/Poster/index.vue | 79 + pages/activity/SeckillDetails/index.vue | 235 + pages/authorization/index.vue | 408 + pages/authorization/index_bak.vue | 310 + pages/authorization/pass.vue | 346 + pages/cloud/cloud.vue | 376 + pages/cloud/haveFun.vue | 341 + pages/foodInfomation/foodInfomation.vue | 973 ++ pages/foodInfomation/foodInfomationDetail.vue | 210 + pages/foodInfomation/information.vue | 163 + pages/home/index.vue | 2046 +++ pages/map/index.vue | 57 + pages/order/GoodsReturn/index.vue | 140 + pages/order/Logistics/index.vue | 398 + pages/order/MyOrder/index.vue | 506 + pages/order/OrderDetails/index.vue | 771 + pages/order/OrderSubmission/index.vue | 925 ++ pages/order/PaymentStatus/index.vue | 34 + pages/order/ReturnList/index.vue | 104 + pages/orderAdmin/AdminOrder/index.vue | 354 + pages/orderAdmin/AdminOrderList/index.vue | 330 + pages/orderAdmin/GoodsDeliver/index.vue | 231 + pages/orderAdmin/OrderCancellation/index.vue | 184 + pages/orderAdmin/OrderIndex/index.vue | 167 + pages/orderAdmin/Statistics/index.vue | 446 + pages/shop/EvaluateList/index.vue | 115 + pages/shop/GoodSearch/index.vue | 131 + pages/shop/GoodsClass/index.vue | 578 + pages/shop/GoodsCollection/index.vue | 102 + pages/shop/GoodsCon/index.vue | 1892 +++ pages/shop/GoodsEvaluate/index.vue | 198 + pages/shop/GoodsList/index.vue | 384 + pages/shop/GoodsPromotion/index.vue | 78 + pages/shop/HotNewGoods/index.vue | 99 + pages/shop/ShoppingCart/index.vue | 721 + pages/shop/StoreList/index.vue | 196 + pages/user/CustomerList/index.vue | 73 + pages/user/Login/index.vue | 332 + .../MemberUpgradeIntro/MemberUpgradeIntro.vue | 39 + pages/user/Message/Message.vue | 164 + pages/user/MessageDetail/MessageDetail.vue | 90 + .../ModifyPayPassword/ModifyPayPassword.vue | 217 + pages/user/Recharge/index.vue | 335 + pages/user/RetrievePassword/index.vue | 153 + .../UpgradeElectronicProtocol.vue | 368 + .../UpgradeProtocolDetail.vue | 211 + pages/user/User/index.vue | 1115 ++ pages/user/UserAccount/index.vue | 111 + pages/user/UserBill/index.vue | 114 + pages/user/UserFavorite/UserFavorite.vue | 316 + pages/user/UserVip/index.vue | 209 + pages/user/address/AddAddress/index.vue | 375 + .../user/address/AddressManagement/index.vue | 273 + pages/user/coupon/GetCoupon/index.vue | 107 + pages/user/coupon/UserCoupon/index.vue | 79 + pages/user/promotion/CashAudit/index.vue | 33 + pages/user/promotion/CashRecord/index.vue | 162 + .../promotion/CommissionDetails/index.vue | 113 + pages/user/promotion/Poster/index.vue | 160 + pages/user/promotion/PromoterList/index.vue | 356 + pages/user/promotion/PromoterOrder/index.vue | 123 + pages/user/promotion/UserCash/index.vue | 212 + pages/user/promotion/UserPromotion/index.vue | 241 + pages/user/signIn/Integral/index.vue | 151 + pages/user/signIn/Sign/index.vue | 186 + pages/user/signIn/SignRecord/index.vue | 65 + pagesInn/components/tm-upload/tm-upload.vue | 484 + pagesInn/inn/innApply.vue | 782 + pagesInn/inn/innHome.vue | 1114 ++ pagesInn/inn/innInfoDetail.vue | 387 + pagesInn/inn/innInfoPublish.vue | 198 + pagesInn/inn/innPartnerAgreement.vue | 48 + pagesInn/inn/innProfileEdit.vue | 433 + pkg_common/views/pdf.vue | 17 + pkg_common/views/room.vue | 374 + pkg_common/views/roomLogs.vue | 109 + pkg_discard/components/Footer.vue | 65 + pkg_discard/components/Home.vue | 59 + pkg_discard/components/Mask.vue | 74 + pkg_discard/components/SwitchWindow.vue | 155 + pkg_discard/views/launch/index.vue | 88 + pkg_join/views/index.vue | 154 + pkg_join/views/shop.vue | 497 + pkg_join/views/supplier.vue | 780 + pkg_orders/views/refund.vue | 264 + pkg_product/components/CountDownUnit.vue | 110 + pkg_product/views/famousHot.vue | 185 + pkg_product/views/famousList.vue | 212 + pkg_product/views/famousStory.vue | 60 + pkg_product/views/findJoy.vue | 13 + pkg_product/views/giftList.vue | 156 + pkg_product/views/healthList.vue | 246 + pkg_product/views/nativeList.vue | 177 + pkg_product/views/nativeList_bak.vue | 191 + pkg_product/views/scenicSpot.vue | 157 + pkg_product/views/seckill.vue | 515 + pkg_product/views/sharpList.vue | 152 + .../invinbg-image-cropper.vue | 759 + pkg_user/views/addBankCard.vue | 209 + pkg_user/views/bankCardList.vue | 274 + pkg_user/views/bindPhone.vue | 222 + pkg_user/views/payPassword.vue | 285 + pkg_user/views/personalData.vue | 366 + pkg_user/views/withdrawal.vue | 467 + static/images/down.png | Bin 0 -> 1247 bytes static/images/enter.png | Bin 0 -> 1218 bytes static/images/horn.png | Bin 0 -> 1245 bytes static/images/img_nodata.png | Bin 0 -> 4349 bytes static/images/num_minus_icon.png | Bin 0 -> 1384 bytes static/images/num_plus_icon.png | Bin 0 -> 1452 bytes static/images/orderdetail-finish-icon.png | Bin 0 -> 4366 bytes .../images/orderdetail-waitdelivery-icon.png | Bin 0 -> 3598 bytes static/images/orderdetail-waitpay-icon.png | Bin 0 -> 5159 bytes static/images/orderdetail-waitreceive.png | Bin 0 -> 3896 bytes static/images/poster-close.png | Bin 0 -> 2130 bytes static/images/start.png | Bin 0 -> 2970 bytes static/images/up.png | Bin 0 -> 1248 bytes static/images/v6/btn_active_left.png | Bin 0 -> 2927 bytes static/images/v6/btn_active_right.png | Bin 0 -> 3083 bytes static/images/v6/btn_left.png | Bin 0 -> 2795 bytes static/images/v6/btn_right.png | Bin 0 -> 2877 bytes static/images/waitcomment-order-icon.png | Bin 0 -> 1818 bytes static/images/waitdelivery-order-icon.png | Bin 0 -> 553 bytes static/images/waitpay-order-icon.png | Bin 0 -> 2465 bytes static/images/waitreceive-order-icon.png | Bin 0 -> 1841 bytes static/tabbar/icon-cart-hot.png | Bin 0 -> 2292 bytes static/tabbar/icon-cart.png | Bin 0 -> 2811 bytes static/tabbar/icon-class-hot.png | Bin 0 -> 2581 bytes static/tabbar/icon-class.png | Bin 0 -> 3338 bytes static/tabbar/icon-cloud-hot.png | Bin 0 -> 1691 bytes static/tabbar/icon-cloud.png | Bin 0 -> 3042 bytes static/tabbar/icon-home-hot.png | Bin 0 -> 3540 bytes static/tabbar/icon-home.png | Bin 0 -> 3212 bytes static/tabbar/icon-user-hot.png | Bin 0 -> 1781 bytes static/tabbar/icon-user.png | Bin 0 -> 2516 bytes store/index.js | 162 + store/modules/switchCity.js | 239 + store/mutation-types.js | 19 + uni.scss | 78 + .../custom-waterfalls-flow/changelog.md | 15 + .../custom-waterfalls-flow.vue | 309 + .../custom-waterfalls-flow/package.json | 81 + uni_modules/custom-waterfalls-flow/readme.md | 445 + uni_modules/d-swiper-type/changelog.md | 25 + .../d-swiper-type/d-swiper-type.vue | 478 + .../d-swiper-type/pages/home/hometype.vue | 478 + .../d-swiper-type/pages/home/readme.md | 10 + .../pages/static/icon_img/bing.png | Bin 0 -> 373442 bytes .../pages/static/icon_img/del.png | Bin 0 -> 1269 bytes .../pages/static/icon_img/del2.png | Bin 0 -> 765 bytes .../pages/static/icon_img/mangguo.png | Bin 0 -> 407525 bytes .../pages/static/icon_img/search.png | Bin 0 -> 4067 bytes .../pages/static/icon_img/xigua.png | Bin 0 -> 641219 bytes .../pages/static/icon_img/yan_close.png | Bin 0 -> 1039 bytes .../pages/static/icon_img/yan_open.png | Bin 0 -> 1300 bytes uni_modules/d-swiper-type/package.json | 89 + uni_modules/d-swiper-type/readme.md | 30 + uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 ++ .../components/uni-icons/uni-icons.vue | 96 + .../components/uni-icons/uniicons.css | 663 + .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes uni_modules/uni-icons/package.json | 86 + uni_modules/uni-icons/readme.md | 8 + uni_modules/uni-scss/changelog.md | 8 + uni_modules/uni-scss/index.scss | 1 + uni_modules/uni-scss/package.json | 82 + uni_modules/uni-scss/readme.md | 4 + uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + uni_modules/uni-scss/theme.scss | 31 + uni_modules/uni-scss/variables.scss | 62 + uni_modules/uni-search-bar/changelog.md | 27 + .../components/uni-search-bar/i18n/en.json | 4 + .../components/uni-search-bar/i18n/index.js | 8 + .../uni-search-bar/i18n/zh-Hans.json | 4 + .../uni-search-bar/i18n/zh-Hant.json | 4 + .../uni-search-bar/uni-search-bar.vue | 287 + uni_modules/uni-search-bar/package.json | 89 + uni_modules/uni-search-bar/readme.md | 14 + uni_modules/uview-ui/LICENSE | 21 + uni_modules/uview-ui/README.md | 66 + uni_modules/uview-ui/changelog.md | 357 + .../uview-ui/components/u--form/u--form.vue | 78 + .../uview-ui/components/u--image/u--image.vue | 47 + .../uview-ui/components/u--input/u--input.vue | 73 + .../uview-ui/components/u--text/u--text.vue | 44 + .../components/u--textarea/u--textarea.vue | 48 + .../components/u-action-sheet/props.js | 54 + .../u-action-sheet/u-action-sheet.vue | 278 + .../uview-ui/components/u-album/props.js | 59 + .../uview-ui/components/u-album/u-album.vue | 259 + .../uview-ui/components/u-alert/props.js | 44 + .../uview-ui/components/u-alert/u-alert.vue | 243 + .../components/u-avatar-group/props.js | 52 + .../u-avatar-group/u-avatar-group.vue | 103 + .../uview-ui/components/u-avatar/props.js | 78 + .../uview-ui/components/u-avatar/u-avatar.vue | 172 + .../uview-ui/components/u-back-top/props.js | 54 + .../components/u-back-top/u-back-top.vue | 129 + .../uview-ui/components/u-badge/props.js | 72 + .../uview-ui/components/u-badge/u-badge.vue | 171 + .../uview-ui/components/u-button/nvue.scss | 46 + .../uview-ui/components/u-button/props.js | 161 + .../uview-ui/components/u-button/u-button.vue | 490 + .../uview-ui/components/u-button/vue.scss | 80 + .../uview-ui/components/u-calendar/header.vue | 99 + .../uview-ui/components/u-calendar/month.vue | 621 + .../uview-ui/components/u-calendar/props.js | 144 + .../components/u-calendar/u-calendar.vue | 385 + .../uview-ui/components/u-calendar/util.js | 85 + .../components/u-car-keyboard/props.js | 14 + .../u-car-keyboard/u-car-keyboard.vue | 311 + .../uview-ui/components/u-cell-group/props.js | 14 + .../components/u-cell-group/u-cell-group.vue | 61 + .../uview-ui/components/u-cell/props.js | 110 + .../uview-ui/components/u-cell/u-cell.vue | 229 + .../components/u-checkbox-group/props.js | 82 + .../u-checkbox-group/u-checkbox-group.vue | 103 + .../uview-ui/components/u-checkbox/props.js | 69 + .../components/u-checkbox/u-checkbox.vue | 344 + .../components/u-circle-progress/props.js | 8 + .../u-circle-progress/u-circle-progress.vue | 198 + .../uview-ui/components/u-code-input/props.js | 79 + .../components/u-code-input/u-code-input.vue | 252 + .../uview-ui/components/u-code/props.js | 34 + .../uview-ui/components/u-code/u-code.vue | 129 + .../uview-ui/components/u-col/props.js | 29 + .../uview-ui/components/u-col/u-col.vue | 162 + .../components/u-collapse-item/props.js | 59 + .../u-collapse-item/u-collapse-item.vue | 225 + .../uview-ui/components/u-collapse/props.js | 19 + .../components/u-collapse/u-collapse.vue | 90 + .../components/u-column-notice/props.js | 55 + .../u-column-notice/u-column-notice.vue | 160 + .../uview-ui/components/u-count-down/props.js | 24 + .../components/u-count-down/u-count-down.vue | 163 + .../uview-ui/components/u-count-down/utils.js | 62 + .../uview-ui/components/u-count-to/props.js | 59 + .../components/u-count-to/u-count-to.vue | 184 + .../components/u-datetime-picker/props.js | 116 + .../u-datetime-picker/u-datetime-picker.vue | 360 + .../uview-ui/components/u-divider/props.js | 44 + .../components/u-divider/u-divider.vue | 116 + .../components/u-dropdown-item/props.js | 36 + .../u-dropdown-item/u-dropdown-item.vue | 127 + .../uview-ui/components/u-dropdown/props.js | 65 + .../components/u-dropdown/u-dropdown.vue | 127 + .../uview-ui/components/u-empty/props.js | 59 + .../uview-ui/components/u-empty/u-empty.vue | 128 + .../uview-ui/components/u-form-item/props.js | 48 + .../components/u-form-item/u-form-item.vue | 235 + .../uview-ui/components/u-form/props.js | 45 + .../uview-ui/components/u-form/u-form.vue | 214 + .../uview-ui/components/u-gap/props.js | 24 + .../uview-ui/components/u-gap/u-gap.vue | 38 + .../uview-ui/components/u-grid-item/props.js | 14 + .../components/u-grid-item/u-grid-item.vue | 209 + .../uview-ui/components/u-grid/props.js | 19 + .../uview-ui/components/u-grid/u-grid.vue | 97 + .../uview-ui/components/u-icon/icons.js | 214 + .../uview-ui/components/u-icon/props.js | 89 + .../uview-ui/components/u-icon/u-icon.vue | 234 + .../uview-ui/components/u-image/props.js | 84 + .../uview-ui/components/u-image/u-image.vue | 232 + .../components/u-index-anchor/props.js | 29 + .../u-index-anchor/u-index-anchor.vue | 91 + .../uview-ui/components/u-index-item/props.js | 5 + .../components/u-index-item/u-index-item.vue | 87 + .../uview-ui/components/u-index-list/props.js | 29 + .../components/u-index-list/u-index-list.vue | 440 + .../uview-ui/components/u-input/props.js | 187 + .../uview-ui/components/u-input/u-input.vue | 354 + .../uview-ui/components/u-keyboard/props.js | 84 + .../components/u-keyboard/u-keyboard.vue | 164 + .../components/u-line-progress/props.js | 28 + .../u-line-progress/u-line-progress.vue | 144 + .../uview-ui/components/u-line/props.js | 33 + .../uview-ui/components/u-line/u-line.vue | 62 + .../uview-ui/components/u-link/props.js | 39 + .../uview-ui/components/u-link/u-link.vue | 83 + .../uview-ui/components/u-list-item/props.js | 9 + .../components/u-list-item/u-list-item.vue | 116 + .../uview-ui/components/u-list/props.js | 76 + .../uview-ui/components/u-list/u-list.vue | 157 + .../components/u-loading-icon/props.js | 59 + .../u-loading-icon/u-loading-icon.vue | 343 + .../components/u-loading-page/props.js | 49 + .../u-loading-page/u-loading-page.vue | 115 + .../uview-ui/components/u-loadmore/props.js | 94 + .../components/u-loadmore/u-loadmore.vue | 150 + .../uview-ui/components/u-modal/props.js | 84 + .../uview-ui/components/u-modal/u-modal.vue | 227 + .../uview-ui/components/u-navbar/props.js | 91 + .../uview-ui/components/u-navbar/u-navbar.vue | 191 + .../uview-ui/components/u-no-network/props.js | 19 + .../components/u-no-network/u-no-network.vue | 220 + .../uview-ui/components/u-notice-bar/props.js | 70 + .../components/u-notice-bar/u-notice-bar.vue | 101 + .../uview-ui/components/u-notify/props.js | 49 + .../uview-ui/components/u-notify/u-notify.vue | 211 + .../uview-ui/components/u-number-box/props.js | 109 + .../components/u-number-box/u-number-box.vue | 416 + .../components/u-number-keyboard/props.js | 19 + .../u-number-keyboard/u-number-keyboard.vue | 196 + .../uview-ui/components/u-overlay/props.js | 24 + .../components/u-overlay/u-overlay.vue | 68 + .../uview-ui/components/u-parse/node/node.vue | 499 + .../uview-ui/components/u-parse/parser.js | 1075 ++ .../uview-ui/components/u-parse/props.js | 45 + .../uview-ui/components/u-parse/u-parse.vue | 366 + .../components/u-picker-column/props.js | 5 + .../u-picker-column/u-picker-column.vue | 27 + .../uview-ui/components/u-picker/props.js | 79 + .../uview-ui/components/u-picker/u-picker.vue | 283 + .../uview-ui/components/u-popup/props.js | 79 + .../uview-ui/components/u-popup/u-popup.vue | 304 + .../components/u-radio-group/props.js | 85 + .../u-radio-group/u-radio-group.vue | 108 + .../uview-ui/components/u-radio/props.js | 64 + .../uview-ui/components/u-radio/u-radio.vue | 339 + .../uview-ui/components/u-rate/props.js | 69 + .../uview-ui/components/u-rate/u-rate.vue | 306 + .../uview-ui/components/u-read-more/props.js | 61 + .../components/u-read-more/u-read-more.vue | 157 + .../uview-ui/components/u-row-notice/props.js | 39 + .../components/u-row-notice/u-row-notice.vue | 330 + .../uview-ui/components/u-row/props.js | 19 + .../uview-ui/components/u-row/u-row.vue | 93 + .../components/u-safe-bottom/props.js | 5 + .../u-safe-bottom/u-safe-bottom.vue | 56 + .../uview-ui/components/u-scroll-list/nvue.js | 28 + .../components/u-scroll-list/other.js | 0 .../components/u-scroll-list/props.js | 34 + .../components/u-scroll-list/scrollWxs.wxs | 50 + .../u-scroll-list/u-scroll-list.vue | 224 + .../uview-ui/components/u-search/props.js | 118 + .../uview-ui/components/u-search/u-search.vue | 303 + .../uview-ui/components/u-skeleton/props.js | 59 + .../components/u-skeleton/u-skeleton.vue | 244 + .../uview-ui/components/u-slider/mpother.js | 113 + .../uview-ui/components/u-slider/mpwxs.js | 42 + .../uview-ui/components/u-slider/mpwxs.wxs | 121 + .../components/u-slider/nvue - 副本.js | 180 + .../uview-ui/components/u-slider/nvue.js | 193 + .../uview-ui/components/u-slider/props.js | 54 + .../uview-ui/components/u-slider/u-slider.vue | 55 + .../uview-ui/components/u-status-bar/props.js | 8 + .../components/u-status-bar/u-status-bar.vue | 46 + .../uview-ui/components/u-steps-item/props.js | 24 + .../components/u-steps-item/u-steps-item.vue | 316 + .../uview-ui/components/u-steps/props.js | 39 + .../uview-ui/components/u-steps/u-steps.vue | 80 + .../uview-ui/components/u-sticky/props.js | 40 + .../uview-ui/components/u-sticky/u-sticky.vue | 212 + .../uview-ui/components/u-subsection/props.js | 49 + .../components/u-subsection/u-subsection.vue | 299 + .../u-swipe-action-item/index - backup.wxs | 256 + .../components/u-swipe-action-item/index.wxs | 225 + .../u-swipe-action-item/nvue - backup.js | 270 + .../components/u-swipe-action-item/nvue.js | 174 + .../components/u-swipe-action-item/props.js | 41 + .../u-swipe-action-item.vue | 190 + .../components/u-swipe-action-item/wxs.js | 15 + .../components/u-swipe-action/props.js | 9 + .../u-swipe-action/u-swipe-action.vue | 67 + .../components/u-swiper-indicator/props.js | 29 + .../u-swiper-indicator/u-swiper-indicator.vue | 110 + .../uview-ui/components/u-swiper/props.js | 125 + .../uview-ui/components/u-swiper/u-swiper.vue | 255 + .../uview-ui/components/u-switch/props.js | 54 + .../uview-ui/components/u-switch/u-switch.vue | 177 + .../components/u-tabbar-item/props.js | 39 + .../u-tabbar-item/u-tabbar-item.vue | 142 + .../uview-ui/components/u-tabbar/props.js | 44 + .../uview-ui/components/u-tabbar/u-tabbar.vue | 141 + .../uview-ui/components/u-table/props.js | 5 + .../uview-ui/components/u-table/u-table.vue | 29 + .../uview-ui/components/u-tabs-item/props.js | 5 + .../components/u-tabs-item/u-tabs-item.vue | 29 + .../uview-ui/components/u-tabs/props.js | 64 + .../uview-ui/components/u-tabs/u-tabs.vue | 354 + .../uview-ui/components/u-tag/props.js | 84 + .../uview-ui/components/u-tag/u-tag.vue | 358 + uni_modules/uview-ui/components/u-td/props.js | 5 + uni_modules/uview-ui/components/u-td/u-td.vue | 31 + .../uview-ui/components/u-text/props.js | 110 + .../uview-ui/components/u-text/u-text.vue | 223 + .../uview-ui/components/u-text/value.js | 85 + .../uview-ui/components/u-textarea/props.js | 119 + .../components/u-textarea/u-textarea.vue | 239 + .../uview-ui/components/u-toast/u-toast.vue | 291 + .../uview-ui/components/u-toolbar/props.js | 34 + .../components/u-toolbar/u-toolbar.vue | 102 + .../components/u-tooltip/clipboard.min.js | 58 + .../uview-ui/components/u-tooltip/props.js | 59 + .../components/u-tooltip/u-tooltip.vue | 365 + uni_modules/uview-ui/components/u-tr/props.js | 5 + uni_modules/uview-ui/components/u-tr/u-tr.vue | 31 + .../components/u-transition/nvue.ani-map.js | 68 + .../uview-ui/components/u-transition/props.js | 24 + .../components/u-transition/transition.js | 157 + .../components/u-transition/u-transition.vue | 92 + .../u-transition/vue.ani-style.scss | 113 + .../uview-ui/components/u-upload/mixin.js | 21 + .../uview-ui/components/u-upload/props.js | 124 + .../uview-ui/components/u-upload/u-upload.vue | 558 + .../uview-ui/components/u-upload/utils.js | 151 + .../uview-ui/components/uview-ui/uview-ui.vue | 15 + uni_modules/uview-ui/index.js | 79 + uni_modules/uview-ui/index.scss | 23 + uni_modules/uview-ui/libs/config/color.js | 17 + uni_modules/uview-ui/libs/config/config.js | 34 + uni_modules/uview-ui/libs/config/props.js | 190 + .../uview-ui/libs/config/props/actionSheet.js | 25 + .../uview-ui/libs/config/props/album.js | 25 + .../uview-ui/libs/config/props/alert.js | 22 + .../uview-ui/libs/config/props/avatar.js | 28 + .../uview-ui/libs/config/props/avatarGroup.js | 23 + .../uview-ui/libs/config/props/backtop.js | 27 + .../uview-ui/libs/config/props/badge.js | 27 + .../uview-ui/libs/config/props/button.js | 42 + .../uview-ui/libs/config/props/calendar.js | 42 + .../uview-ui/libs/config/props/carKeyboard.js | 15 + .../uview-ui/libs/config/props/cell.js | 35 + .../uview-ui/libs/config/props/cellGroup.js | 17 + .../uview-ui/libs/config/props/checkbox.js | 27 + .../libs/config/props/checkboxGroup.js | 29 + .../libs/config/props/circleProgress.js | 15 + .../uview-ui/libs/config/props/code.js | 21 + .../uview-ui/libs/config/props/codeInput.js | 29 + uni_modules/uview-ui/libs/config/props/col.js | 19 + .../uview-ui/libs/config/props/collapse.js | 17 + .../libs/config/props/collapseItem.js | 25 + .../libs/config/props/columnNotice.js | 24 + .../uview-ui/libs/config/props/countDown.js | 18 + .../uview-ui/libs/config/props/countTo.js | 25 + .../libs/config/props/datetimePicker.js | 36 + .../uview-ui/libs/config/props/divider.js | 23 + .../uview-ui/libs/config/props/empty.js | 26 + .../uview-ui/libs/config/props/form.js | 22 + .../uview-ui/libs/config/props/formItem.js | 23 + uni_modules/uview-ui/libs/config/props/gap.js | 19 + .../uview-ui/libs/config/props/grid.js | 17 + .../uview-ui/libs/config/props/gridItem.js | 16 + .../uview-ui/libs/config/props/icon.js | 36 + .../uview-ui/libs/config/props/image.js | 30 + .../uview-ui/libs/config/props/indexAnchor.js | 19 + .../uview-ui/libs/config/props/indexList.js | 19 + .../uview-ui/libs/config/props/input.js | 48 + .../uview-ui/libs/config/props/keyboard.js | 30 + .../uview-ui/libs/config/props/line.js | 20 + .../libs/config/props/lineProgress.js | 19 + .../uview-ui/libs/config/props/link.js | 26 + .../uview-ui/libs/config/props/list.js | 28 + .../uview-ui/libs/config/props/listItem.js | 15 + .../uview-ui/libs/config/props/loadingIcon.js | 30 + .../uview-ui/libs/config/props/loadingPage.js | 23 + .../uview-ui/libs/config/props/loadmore.js | 32 + .../uview-ui/libs/config/props/modal.js | 30 + .../uview-ui/libs/config/props/navbar.js | 32 + .../uview-ui/libs/config/props/noNetwork.js | 18 + .../uview-ui/libs/config/props/noticeBar.js | 27 + .../uview-ui/libs/config/props/notify.js | 22 + .../uview-ui/libs/config/props/numberBox.js | 35 + .../libs/config/props/numberKeyboard.js | 17 + .../uview-ui/libs/config/props/overlay.js | 18 + .../uview-ui/libs/config/props/parse.js | 22 + .../uview-ui/libs/config/props/picker.js | 29 + .../uview-ui/libs/config/props/popup.js | 29 + .../uview-ui/libs/config/props/radio.js | 27 + .../uview-ui/libs/config/props/radioGroup.js | 30 + .../uview-ui/libs/config/props/rate.js | 26 + .../uview-ui/libs/config/props/readMore.js | 22 + uni_modules/uview-ui/libs/config/props/row.js | 17 + .../uview-ui/libs/config/props/rowNotice.js | 21 + .../uview-ui/libs/config/props/scrollList.js | 20 + .../uview-ui/libs/config/props/search.js | 37 + .../uview-ui/libs/config/props/section.js | 24 + .../uview-ui/libs/config/props/skeleton.js | 25 + .../uview-ui/libs/config/props/slider.js | 25 + .../uview-ui/libs/config/props/statusBar.js | 15 + .../uview-ui/libs/config/props/steps.js | 21 + .../uview-ui/libs/config/props/stepsItem.js | 18 + .../uview-ui/libs/config/props/sticky.js | 20 + .../uview-ui/libs/config/props/subsection.js | 23 + .../uview-ui/libs/config/props/swipeAction.js | 15 + .../libs/config/props/swipeActionItem.js | 21 + .../uview-ui/libs/config/props/swiper.js | 39 + .../libs/config/props/swipterIndicator.js | 19 + .../uview-ui/libs/config/props/switch.js | 24 + .../uview-ui/libs/config/props/tabbar.js | 22 + .../uview-ui/libs/config/props/tabbarItem.js | 20 + .../uview-ui/libs/config/props/tabs.js | 32 + uni_modules/uview-ui/libs/config/props/tag.js | 29 + .../uview-ui/libs/config/props/text.js | 38 + .../uview-ui/libs/config/props/textarea.js | 36 + .../uview-ui/libs/config/props/toast.js | 30 + .../uview-ui/libs/config/props/toolbar.js | 21 + .../uview-ui/libs/config/props/tooltip.js | 25 + .../uview-ui/libs/config/props/transition.js | 18 + .../uview-ui/libs/config/props/upload.js | 36 + uni_modules/uview-ui/libs/config/zIndex.js | 20 + uni_modules/uview-ui/libs/css/color.scss | 155 + uni_modules/uview-ui/libs/css/common.scss | 97 + uni_modules/uview-ui/libs/css/components.scss | 15 + uni_modules/uview-ui/libs/css/flex.scss | 257 + uni_modules/uview-ui/libs/css/h5.scss | 0 uni_modules/uview-ui/libs/css/mixin.scss | 8 + uni_modules/uview-ui/libs/css/mp.scss | 0 uni_modules/uview-ui/libs/css/nvue.scss | 0 uni_modules/uview-ui/libs/css/vue.scss | 27 + .../uview-ui/libs/function/colorGradient.js | 134 + .../uview-ui/libs/function/debounce.js | 29 + uni_modules/uview-ui/libs/function/digit.js | 167 + uni_modules/uview-ui/libs/function/index.js | 705 + .../uview-ui/libs/function/platform.js | 75 + uni_modules/uview-ui/libs/function/test.js | 288 + .../uview-ui/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 97 + .../luch-request/core/InterceptorManager.js | 50 + .../libs/luch-request/core/Request.js | 198 + .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 29 + .../libs/luch-request/core/dispatchRequest.js | 3 + .../libs/luch-request/core/mergeConfig.js | 103 + .../uview-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uview-ui/libs/luch-request/index.d.ts | 116 + .../uview-ui/libs/luch-request/index.js | 3 + .../uview-ui/libs/luch-request/utils.js | 131 + .../uview-ui/libs/luch-request/utils/clone.js | 264 + uni_modules/uview-ui/libs/mixin/button.js | 13 + uni_modules/uview-ui/libs/mixin/mixin.js | 160 + uni_modules/uview-ui/libs/mixin/mpMixin.js | 8 + uni_modules/uview-ui/libs/mixin/mpShare.js | 13 + uni_modules/uview-ui/libs/mixin/openType.js | 25 + uni_modules/uview-ui/libs/mixin/style.js | 228 + uni_modules/uview-ui/libs/mixin/touch.js | 59 + .../uview-ui/libs/util/async-validator.js | 1343 ++ uni_modules/uview-ui/libs/util/calendar.js | 546 + uni_modules/uview-ui/libs/util/dayjs.js | 308 + uni_modules/uview-ui/libs/util/emitter.js | 51 + uni_modules/uview-ui/libs/util/route.js | 124 + uni_modules/uview-ui/package.json | 84 + uni_modules/uview-ui/theme.scss | 44 + utils/bc.js | 115 + utils/common.js | 23 + utils/dialog.js | 92 + utils/index.js | 1115 ++ utils/mapConfig.js | 7 + utils/querystring.js | 63 + utils/request.js | 112 + utils/store/cookie.js | 62 + utils/store/index.js | 7 + utils/store/localStorage.js | 42 + utils/validate.js | 177 + utils/vue-jsonp.umd.js | 187 + v4/components/@lucky-canvas/uni/LICENSE | 201 + v4/components/@lucky-canvas/uni/README.md | 138 + .../@lucky-canvas/uni/lucky-grid.vue | 317 + .../@lucky-canvas/uni/lucky-wheel.vue | 255 + v4/components/@lucky-canvas/uni/package.json | 53 + .../@lucky-canvas/uni/slot-machine.vue | 214 + v4/components/@lucky-canvas/uni/utils.js | 82 + v4/components/lucky-canvas/LICENSE | 201 + v4/components/lucky-canvas/README.md | 42 + v4/components/lucky-canvas/index.js | 1 + v4/components/lucky-canvas/package.json | 96 + v4/components/lucky-canvas/types/index.d.ts | 761 + v4/components/select-city.vue | 213 + v4/views/attract/attract.vue | 360 + v4/views/attract/project.vue | 129 + v4/views/attract/projectList.vue | 166 + v4/views/live/live.vue | 104 + v4/views/luck/logs.vue | 117 + v4/views/luck/luck.vue | 379 + v4/views/luck/receive.vue | 159 + v4/views/offer/offer.vue | 249 + v4/views/preSale/preSale.vue | 178 + v4/views/seckill/seckill.vue | 349 + v4/views/shop/detail.vue | 241 + v4/views/shop/shop.vue | 129 + v4/views/specialty/specialty.vue | 265 + v4/views/trial/trial.vue | 146 + wenwan/views/goodsClass.vue | 476 + wenwan/views/store.vue | 1075 ++ wenwan/views/storeList.vue | 216 + 710 files changed, 125705 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 App.vue create mode 100644 api/activity.js create mode 100644 api/admin.js create mode 100644 api/goods.js create mode 100644 api/inn.js create mode 100644 api/join.js create mode 100644 api/luck.js create mode 100644 api/order.js create mode 100644 api/product.js create mode 100644 api/public.js create mode 100644 api/shop.js create mode 100644 api/store.js create mode 100644 api/user.js create mode 100644 api/wenwan.js create mode 100644 assets/css/base.less create mode 100644 assets/css/goods.less create mode 100644 assets/css/pkg_join.less create mode 100644 assets/css/product.less create mode 100644 assets/css/reset.less create mode 100644 assets/css/store.less create mode 100644 assets/css/style.less create mode 100644 assets/iconfont/iconfont.css create mode 100644 assets/script/global.js create mode 100644 components/AddressWindow.vue create mode 100644 components/CitySelect.vue create mode 100644 components/CountDown.vue create mode 100644 components/CouponListWindow.vue create mode 100644 components/CouponPop.vue create mode 100644 components/CouponWindow.vue create mode 100644 components/DataFormat.vue create mode 100644 components/DataFormatT.vue create mode 100644 components/GoodList.vue create mode 100644 components/Loading.vue create mode 100644 components/OrderGoods.vue create mode 100644 components/Payment.vue create mode 100644 components/PriceChange.vue create mode 100644 components/ProductConSwiper.vue create mode 100644 components/ProductWindow.vue create mode 100644 components/PromotionGood.vue create mode 100644 components/Recommend.vue create mode 100644 components/ShareInfo.vue create mode 100644 components/StorePoster.vue create mode 100644 components/UserEvaluation.vue create mode 100644 components/WriteOff.vue create mode 100644 components/blPaymentPasswordInput.vue create mode 100644 components/chose-city/chose-city.vue create mode 100644 components/drag-button/drag-button.vue create mode 100644 components/drop-down/drop-down.vue create mode 100644 components/easy-upload/easy-upload.vue create mode 100644 components/easy-upload/readme.md create mode 100644 components/hx-navbar/README.md create mode 100644 components/hx-navbar/hx-navbar.vue create mode 100644 components/imageTypeSet/imagebox.vue create mode 100644 components/ls-swiper/index.md create mode 100644 components/ls-swiper/index.vue create mode 100644 components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue create mode 100644 components/mescroll-uni/components/mescroll-down.css create mode 100644 components/mescroll-uni/components/mescroll-down.vue create mode 100644 components/mescroll-uni/components/mescroll-empty.vue create mode 100644 components/mescroll-uni/components/mescroll-top.vue create mode 100644 components/mescroll-uni/components/mescroll-up.css create mode 100644 components/mescroll-uni/components/mescroll-up.vue create mode 100644 components/mescroll-uni/mescroll-body.css create mode 100644 components/mescroll-uni/mescroll-body.vue create mode 100644 components/mescroll-uni/mescroll-mixins.js create mode 100644 components/mescroll-uni/mescroll-uni-option.js create mode 100644 components/mescroll-uni/mescroll-uni.css create mode 100644 components/mescroll-uni/mescroll-uni.js create mode 100644 components/mescroll-uni/mescroll-uni.vue create mode 100644 components/mescroll-uni/mixins/mescroll-comp.js create mode 100644 components/mescroll-uni/mixins/mescroll-more-item.js create mode 100644 components/mescroll-uni/mixins/mescroll-more.js create mode 100644 components/simple-address/city-data/area.js create mode 100644 components/simple-address/city-data/city.js create mode 100644 components/simple-address/city-data/province.js create mode 100644 components/simple-address/simple-address.nvue create mode 100644 components/uni-popup/message.js create mode 100644 components/uni-popup/popup.js create mode 100644 components/uni-popup/uni-popup-dialog.vue create mode 100644 components/uni-popup/uni-popup-message.vue create mode 100644 components/uni-popup/uni-popup-share.vue create mode 100644 components/uni-popup/uni-popup.vue create mode 100644 components/uni-segmented-control/uni-segmented-control.vue create mode 100644 components/uni-transition/uni-transition.vue create mode 100644 components/v-tabs/readme.md create mode 100644 components/v-tabs/v-tabs.vue create mode 100644 components/yzc-paykeyboard/yzc-paykeyboard.vue create mode 100644 config/index.js create mode 100644 libs/chat.js create mode 100644 libs/order.js create mode 100644 libs/wechat.js create mode 100644 main.js create mode 100644 manifest.json create mode 100644 mixins/SendVerifyCode.js create mode 100644 mixins/mescroll-mixins.js create mode 100644 mixins/share-mixins.js create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/LiveAndShortVideo/LiveAndShortVideo.vue create mode 100644 pages/LiveBroadcastList/LiveBroadcastList.vue create mode 100644 pages/Loading/index.vue create mode 100644 pages/NotDefined/index.vue create mode 100644 pages/VideoPlayBackList/VideoPlayBackDetail.vue create mode 100644 pages/VideoPlayBackList/VideoPlayBackList.vue create mode 100644 pages/activity/BargainRecord/index.vue create mode 100644 pages/activity/DargainDetails/index.vue create mode 100644 pages/activity/GoodsBargain/index.vue create mode 100644 pages/activity/GoodsGroup/index.vue create mode 100644 pages/activity/GoodsSeckill/index.vue create mode 100644 pages/activity/GroupDetails/index.vue create mode 100644 pages/activity/GroupRule/index.vue create mode 100644 pages/activity/Poster/index.vue create mode 100644 pages/activity/SeckillDetails/index.vue create mode 100644 pages/authorization/index.vue create mode 100644 pages/authorization/index_bak.vue create mode 100644 pages/authorization/pass.vue create mode 100644 pages/cloud/cloud.vue create mode 100644 pages/cloud/haveFun.vue create mode 100644 pages/foodInfomation/foodInfomation.vue create mode 100644 pages/foodInfomation/foodInfomationDetail.vue create mode 100644 pages/foodInfomation/information.vue create mode 100644 pages/home/index.vue create mode 100644 pages/map/index.vue create mode 100644 pages/order/GoodsReturn/index.vue create mode 100644 pages/order/Logistics/index.vue create mode 100644 pages/order/MyOrder/index.vue create mode 100644 pages/order/OrderDetails/index.vue create mode 100644 pages/order/OrderSubmission/index.vue create mode 100644 pages/order/PaymentStatus/index.vue create mode 100644 pages/order/ReturnList/index.vue create mode 100644 pages/orderAdmin/AdminOrder/index.vue create mode 100644 pages/orderAdmin/AdminOrderList/index.vue create mode 100644 pages/orderAdmin/GoodsDeliver/index.vue create mode 100644 pages/orderAdmin/OrderCancellation/index.vue create mode 100644 pages/orderAdmin/OrderIndex/index.vue create mode 100644 pages/orderAdmin/Statistics/index.vue create mode 100644 pages/shop/EvaluateList/index.vue create mode 100644 pages/shop/GoodSearch/index.vue create mode 100644 pages/shop/GoodsClass/index.vue create mode 100644 pages/shop/GoodsCollection/index.vue create mode 100644 pages/shop/GoodsCon/index.vue create mode 100644 pages/shop/GoodsEvaluate/index.vue create mode 100644 pages/shop/GoodsList/index.vue create mode 100644 pages/shop/GoodsPromotion/index.vue create mode 100644 pages/shop/HotNewGoods/index.vue create mode 100644 pages/shop/ShoppingCart/index.vue create mode 100644 pages/shop/StoreList/index.vue create mode 100644 pages/user/CustomerList/index.vue create mode 100644 pages/user/Login/index.vue create mode 100644 pages/user/MemberUpgradeIntro/MemberUpgradeIntro.vue create mode 100644 pages/user/Message/Message.vue create mode 100644 pages/user/MessageDetail/MessageDetail.vue create mode 100644 pages/user/ModifyPayPassword/ModifyPayPassword.vue create mode 100644 pages/user/Recharge/index.vue create mode 100644 pages/user/RetrievePassword/index.vue create mode 100644 pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol.vue create mode 100644 pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail.vue create mode 100644 pages/user/User/index.vue create mode 100644 pages/user/UserAccount/index.vue create mode 100644 pages/user/UserBill/index.vue create mode 100644 pages/user/UserFavorite/UserFavorite.vue create mode 100644 pages/user/UserVip/index.vue create mode 100644 pages/user/address/AddAddress/index.vue create mode 100644 pages/user/address/AddressManagement/index.vue create mode 100644 pages/user/coupon/GetCoupon/index.vue create mode 100644 pages/user/coupon/UserCoupon/index.vue create mode 100644 pages/user/promotion/CashAudit/index.vue create mode 100644 pages/user/promotion/CashRecord/index.vue create mode 100644 pages/user/promotion/CommissionDetails/index.vue create mode 100644 pages/user/promotion/Poster/index.vue create mode 100644 pages/user/promotion/PromoterList/index.vue create mode 100644 pages/user/promotion/PromoterOrder/index.vue create mode 100644 pages/user/promotion/UserCash/index.vue create mode 100644 pages/user/promotion/UserPromotion/index.vue create mode 100644 pages/user/signIn/Integral/index.vue create mode 100644 pages/user/signIn/Sign/index.vue create mode 100644 pages/user/signIn/SignRecord/index.vue create mode 100644 pagesInn/components/tm-upload/tm-upload.vue create mode 100644 pagesInn/inn/innApply.vue create mode 100644 pagesInn/inn/innHome.vue create mode 100644 pagesInn/inn/innInfoDetail.vue create mode 100644 pagesInn/inn/innInfoPublish.vue create mode 100644 pagesInn/inn/innPartnerAgreement.vue create mode 100644 pagesInn/inn/innProfileEdit.vue create mode 100644 pkg_common/views/pdf.vue create mode 100644 pkg_common/views/room.vue create mode 100644 pkg_common/views/roomLogs.vue create mode 100644 pkg_discard/components/Footer.vue create mode 100644 pkg_discard/components/Home.vue create mode 100644 pkg_discard/components/Mask.vue create mode 100644 pkg_discard/components/SwitchWindow.vue create mode 100644 pkg_discard/views/launch/index.vue create mode 100644 pkg_join/views/index.vue create mode 100644 pkg_join/views/shop.vue create mode 100644 pkg_join/views/supplier.vue create mode 100644 pkg_orders/views/refund.vue create mode 100644 pkg_product/components/CountDownUnit.vue create mode 100644 pkg_product/views/famousHot.vue create mode 100644 pkg_product/views/famousList.vue create mode 100644 pkg_product/views/famousStory.vue create mode 100644 pkg_product/views/findJoy.vue create mode 100644 pkg_product/views/giftList.vue create mode 100644 pkg_product/views/healthList.vue create mode 100644 pkg_product/views/nativeList.vue create mode 100644 pkg_product/views/nativeList_bak.vue create mode 100644 pkg_product/views/scenicSpot.vue create mode 100644 pkg_product/views/seckill.vue create mode 100644 pkg_product/views/sharpList.vue create mode 100644 pkg_user/components/invinbg-image-cropper/invinbg-image-cropper.vue create mode 100644 pkg_user/views/addBankCard.vue create mode 100644 pkg_user/views/bankCardList.vue create mode 100644 pkg_user/views/bindPhone.vue create mode 100644 pkg_user/views/payPassword.vue create mode 100644 pkg_user/views/personalData.vue create mode 100644 pkg_user/views/withdrawal.vue create mode 100644 static/images/down.png create mode 100644 static/images/enter.png create mode 100644 static/images/horn.png create mode 100644 static/images/img_nodata.png create mode 100644 static/images/num_minus_icon.png create mode 100644 static/images/num_plus_icon.png create mode 100644 static/images/orderdetail-finish-icon.png create mode 100644 static/images/orderdetail-waitdelivery-icon.png create mode 100644 static/images/orderdetail-waitpay-icon.png create mode 100644 static/images/orderdetail-waitreceive.png create mode 100644 static/images/poster-close.png create mode 100644 static/images/start.png create mode 100644 static/images/up.png create mode 100644 static/images/v6/btn_active_left.png create mode 100644 static/images/v6/btn_active_right.png create mode 100644 static/images/v6/btn_left.png create mode 100644 static/images/v6/btn_right.png create mode 100644 static/images/waitcomment-order-icon.png create mode 100644 static/images/waitdelivery-order-icon.png create mode 100644 static/images/waitpay-order-icon.png create mode 100644 static/images/waitreceive-order-icon.png create mode 100644 static/tabbar/icon-cart-hot.png create mode 100644 static/tabbar/icon-cart.png create mode 100644 static/tabbar/icon-class-hot.png create mode 100644 static/tabbar/icon-class.png create mode 100644 static/tabbar/icon-cloud-hot.png create mode 100644 static/tabbar/icon-cloud.png create mode 100644 static/tabbar/icon-home-hot.png create mode 100644 static/tabbar/icon-home.png create mode 100644 static/tabbar/icon-user-hot.png create mode 100644 static/tabbar/icon-user.png create mode 100644 store/index.js create mode 100644 store/modules/switchCity.js create mode 100644 store/mutation-types.js create mode 100644 uni.scss create mode 100644 uni_modules/custom-waterfalls-flow/changelog.md create mode 100644 uni_modules/custom-waterfalls-flow/components/custom-waterfalls-flow/custom-waterfalls-flow.vue create mode 100644 uni_modules/custom-waterfalls-flow/package.json create mode 100644 uni_modules/custom-waterfalls-flow/readme.md create mode 100644 uni_modules/d-swiper-type/changelog.md create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/d-swiper-type.vue create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/home/hometype.vue create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/home/readme.md create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/bing.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/del.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/del2.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/mangguo.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/search.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/xigua.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/yan_close.png create mode 100644 uni_modules/d-swiper-type/components/d-swiper-type/pages/static/icon_img/yan_open.png create mode 100644 uni_modules/d-swiper-type/package.json create mode 100644 uni_modules/d-swiper-type/readme.md create mode 100644 uni_modules/uni-icons/changelog.md create mode 100644 uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 uni_modules/uni-icons/package.json create mode 100644 uni_modules/uni-icons/readme.md create mode 100644 uni_modules/uni-scss/changelog.md create mode 100644 uni_modules/uni-scss/index.scss create mode 100644 uni_modules/uni-scss/package.json create mode 100644 uni_modules/uni-scss/readme.md create mode 100644 uni_modules/uni-scss/styles/index.scss create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 uni_modules/uni-scss/theme.scss create mode 100644 uni_modules/uni-scss/variables.scss create mode 100644 uni_modules/uni-search-bar/changelog.md create mode 100644 uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json create mode 100644 uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js create mode 100644 uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json create mode 100644 uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json create mode 100644 uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue create mode 100644 uni_modules/uni-search-bar/package.json create mode 100644 uni_modules/uni-search-bar/readme.md create mode 100644 uni_modules/uview-ui/LICENSE create mode 100644 uni_modules/uview-ui/README.md create mode 100644 uni_modules/uview-ui/changelog.md create mode 100644 uni_modules/uview-ui/components/u--form/u--form.vue create mode 100644 uni_modules/uview-ui/components/u--image/u--image.vue create mode 100644 uni_modules/uview-ui/components/u--input/u--input.vue create mode 100644 uni_modules/uview-ui/components/u--text/u--text.vue create mode 100644 uni_modules/uview-ui/components/u--textarea/u--textarea.vue create mode 100644 uni_modules/uview-ui/components/u-action-sheet/props.js create mode 100644 uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 uni_modules/uview-ui/components/u-album/props.js create mode 100644 uni_modules/uview-ui/components/u-album/u-album.vue create mode 100644 uni_modules/uview-ui/components/u-alert/props.js create mode 100644 uni_modules/uview-ui/components/u-alert/u-alert.vue create mode 100644 uni_modules/uview-ui/components/u-avatar-group/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue create mode 100644 uni_modules/uview-ui/components/u-avatar/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar/u-avatar.vue create mode 100644 uni_modules/uview-ui/components/u-back-top/props.js create mode 100644 uni_modules/uview-ui/components/u-back-top/u-back-top.vue create mode 100644 uni_modules/uview-ui/components/u-badge/props.js create mode 100644 uni_modules/uview-ui/components/u-badge/u-badge.vue create mode 100644 uni_modules/uview-ui/components/u-button/nvue.scss create mode 100644 uni_modules/uview-ui/components/u-button/props.js create mode 100644 uni_modules/uview-ui/components/u-button/u-button.vue create mode 100644 uni_modules/uview-ui/components/u-button/vue.scss create mode 100644 uni_modules/uview-ui/components/u-calendar/header.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/month.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/props.js create mode 100644 uni_modules/uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/util.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-cell-group/props.js create mode 100644 uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 uni_modules/uview-ui/components/u-cell/props.js create mode 100644 uni_modules/uview-ui/components/u-cell/u-cell.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uni_modules/uview-ui/components/u-circle-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 uni_modules/uview-ui/components/u-code-input/props.js create mode 100644 uni_modules/uview-ui/components/u-code-input/u-code-input.vue create mode 100644 uni_modules/uview-ui/components/u-code/props.js create mode 100644 uni_modules/uview-ui/components/u-code/u-code.vue create mode 100644 uni_modules/uview-ui/components/u-col/props.js create mode 100644 uni_modules/uview-ui/components/u-col/u-col.vue create mode 100644 uni_modules/uview-ui/components/u-collapse-item/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uni_modules/uview-ui/components/u-collapse/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uni_modules/uview-ui/components/u-column-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/props.js create mode 100644 uni_modules/uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/utils.js create mode 100644 uni_modules/uview-ui/components/u-count-to/props.js create mode 100644 uni_modules/uview-ui/components/u-count-to/u-count-to.vue create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue create mode 100644 uni_modules/uview-ui/components/u-divider/props.js create mode 100644 uni_modules/uview-ui/components/u-divider/u-divider.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uni_modules/uview-ui/components/u-empty/props.js create mode 100644 uni_modules/uview-ui/components/u-empty/u-empty.vue create mode 100644 uni_modules/uview-ui/components/u-form-item/props.js create mode 100644 uni_modules/uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uni_modules/uview-ui/components/u-form/props.js create mode 100644 uni_modules/uview-ui/components/u-form/u-form.vue create mode 100644 uni_modules/uview-ui/components/u-gap/props.js create mode 100644 uni_modules/uview-ui/components/u-gap/u-gap.vue create mode 100644 uni_modules/uview-ui/components/u-grid-item/props.js create mode 100644 uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 uni_modules/uview-ui/components/u-grid/props.js create mode 100644 uni_modules/uview-ui/components/u-grid/u-grid.vue create mode 100644 uni_modules/uview-ui/components/u-icon/icons.js create mode 100644 uni_modules/uview-ui/components/u-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-icon/u-icon.vue create mode 100644 uni_modules/uview-ui/components/u-image/props.js create mode 100644 uni_modules/uview-ui/components/u-image/u-image.vue create mode 100644 uni_modules/uview-ui/components/u-index-anchor/props.js create mode 100644 uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 uni_modules/uview-ui/components/u-index-item/props.js create mode 100644 uni_modules/uview-ui/components/u-index-item/u-index-item.vue create mode 100644 uni_modules/uview-ui/components/u-index-list/props.js create mode 100644 uni_modules/uview-ui/components/u-index-list/u-index-list.vue create mode 100644 uni_modules/uview-ui/components/u-input/props.js create mode 100644 uni_modules/uview-ui/components/u-input/u-input.vue create mode 100644 uni_modules/uview-ui/components/u-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-line-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uni_modules/uview-ui/components/u-line/props.js create mode 100644 uni_modules/uview-ui/components/u-line/u-line.vue create mode 100644 uni_modules/uview-ui/components/u-link/props.js create mode 100644 uni_modules/uview-ui/components/u-link/u-link.vue create mode 100644 uni_modules/uview-ui/components/u-list-item/props.js create mode 100644 uni_modules/uview-ui/components/u-list-item/u-list-item.vue create mode 100644 uni_modules/uview-ui/components/u-list/props.js create mode 100644 uni_modules/uview-ui/components/u-list/u-list.vue create mode 100644 uni_modules/uview-ui/components/u-loading-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue create mode 100644 uni_modules/uview-ui/components/u-loading-page/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 uni_modules/uview-ui/components/u-loadmore/props.js create mode 100644 uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uni_modules/uview-ui/components/u-modal/props.js create mode 100644 uni_modules/uview-ui/components/u-modal/u-modal.vue create mode 100644 uni_modules/uview-ui/components/u-navbar/props.js create mode 100644 uni_modules/uview-ui/components/u-navbar/u-navbar.vue create mode 100644 uni_modules/uview-ui/components/u-no-network/props.js create mode 100644 uni_modules/uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uni_modules/uview-ui/components/u-notice-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uni_modules/uview-ui/components/u-notify/props.js create mode 100644 uni_modules/uview-ui/components/u-notify/u-notify.vue create mode 100644 uni_modules/uview-ui/components/u-number-box/props.js create mode 100644 uni_modules/uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-overlay/props.js create mode 100644 uni_modules/uview-ui/components/u-overlay/u-overlay.vue create mode 100644 uni_modules/uview-ui/components/u-parse/node/node.vue create mode 100644 uni_modules/uview-ui/components/u-parse/parser.js create mode 100644 uni_modules/uview-ui/components/u-parse/props.js create mode 100644 uni_modules/uview-ui/components/u-parse/u-parse.vue create mode 100644 uni_modules/uview-ui/components/u-picker-column/props.js create mode 100644 uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue create mode 100644 uni_modules/uview-ui/components/u-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-picker/u-picker.vue create mode 100644 uni_modules/uview-ui/components/u-popup/props.js create mode 100644 uni_modules/uview-ui/components/u-popup/u-popup.vue create mode 100644 uni_modules/uview-ui/components/u-radio-group/props.js create mode 100644 uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uni_modules/uview-ui/components/u-radio/props.js create mode 100644 uni_modules/uview-ui/components/u-radio/u-radio.vue create mode 100644 uni_modules/uview-ui/components/u-rate/props.js create mode 100644 uni_modules/uview-ui/components/u-rate/u-rate.vue create mode 100644 uni_modules/uview-ui/components/u-read-more/props.js create mode 100644 uni_modules/uview-ui/components/u-read-more/u-read-more.vue create mode 100644 uni_modules/uview-ui/components/u-row-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uni_modules/uview-ui/components/u-row/props.js create mode 100644 uni_modules/uview-ui/components/u-row/u-row.vue create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/props.js create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue create mode 100644 uni_modules/uview-ui/components/u-scroll-list/nvue.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/other.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/props.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs create mode 100644 uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue create mode 100644 uni_modules/uview-ui/components/u-search/props.js create mode 100644 uni_modules/uview-ui/components/u-search/u-search.vue create mode 100644 uni_modules/uview-ui/components/u-skeleton/props.js create mode 100644 uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 uni_modules/uview-ui/components/u-slider/mpother.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.wxs create mode 100644 uni_modules/uview-ui/components/u-slider/nvue - 副本.js create mode 100644 uni_modules/uview-ui/components/u-slider/nvue.js create mode 100644 uni_modules/uview-ui/components/u-slider/props.js create mode 100644 uni_modules/uview-ui/components/u-slider/u-slider.vue create mode 100644 uni_modules/uview-ui/components/u-status-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue create mode 100644 uni_modules/uview-ui/components/u-steps-item/props.js create mode 100644 uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue create mode 100644 uni_modules/uview-ui/components/u-steps/props.js create mode 100644 uni_modules/uview-ui/components/u-steps/u-steps.vue create mode 100644 uni_modules/uview-ui/components/u-sticky/props.js create mode 100644 uni_modules/uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uni_modules/uview-ui/components/u-subsection/props.js create mode 100644 uni_modules/uview-ui/components/u-subsection/u-subsection.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/wxs.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue create mode 100644 uni_modules/uview-ui/components/u-swiper/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uni_modules/uview-ui/components/u-switch/props.js create mode 100644 uni_modules/uview-ui/components/u-switch/u-switch.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 uni_modules/uview-ui/components/u-table/props.js create mode 100644 uni_modules/uview-ui/components/u-table/u-table.vue create mode 100644 uni_modules/uview-ui/components/u-tabs-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabs/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs/u-tabs.vue create mode 100644 uni_modules/uview-ui/components/u-tag/props.js create mode 100644 uni_modules/uview-ui/components/u-tag/u-tag.vue create mode 100644 uni_modules/uview-ui/components/u-td/props.js create mode 100644 uni_modules/uview-ui/components/u-td/u-td.vue create mode 100644 uni_modules/uview-ui/components/u-text/props.js create mode 100644 uni_modules/uview-ui/components/u-text/u-text.vue create mode 100644 uni_modules/uview-ui/components/u-text/value.js create mode 100644 uni_modules/uview-ui/components/u-textarea/props.js create mode 100644 uni_modules/uview-ui/components/u-textarea/u-textarea.vue create mode 100644 uni_modules/uview-ui/components/u-toast/u-toast.vue create mode 100644 uni_modules/uview-ui/components/u-toolbar/props.js create mode 100644 uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue create mode 100644 uni_modules/uview-ui/components/u-tooltip/clipboard.min.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/props.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue create mode 100644 uni_modules/uview-ui/components/u-tr/props.js create mode 100644 uni_modules/uview-ui/components/u-tr/u-tr.vue create mode 100644 uni_modules/uview-ui/components/u-transition/nvue.ani-map.js create mode 100644 uni_modules/uview-ui/components/u-transition/props.js create mode 100644 uni_modules/uview-ui/components/u-transition/transition.js create mode 100644 uni_modules/uview-ui/components/u-transition/u-transition.vue create mode 100644 uni_modules/uview-ui/components/u-transition/vue.ani-style.scss create mode 100644 uni_modules/uview-ui/components/u-upload/mixin.js create mode 100644 uni_modules/uview-ui/components/u-upload/props.js create mode 100644 uni_modules/uview-ui/components/u-upload/u-upload.vue create mode 100644 uni_modules/uview-ui/components/u-upload/utils.js create mode 100644 uni_modules/uview-ui/components/uview-ui/uview-ui.vue create mode 100644 uni_modules/uview-ui/index.js create mode 100644 uni_modules/uview-ui/index.scss create mode 100644 uni_modules/uview-ui/libs/config/color.js create mode 100644 uni_modules/uview-ui/libs/config/config.js create mode 100644 uni_modules/uview-ui/libs/config/props.js create mode 100644 uni_modules/uview-ui/libs/config/props/actionSheet.js create mode 100644 uni_modules/uview-ui/libs/config/props/album.js create mode 100644 uni_modules/uview-ui/libs/config/props/alert.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatar.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatarGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/backtop.js create mode 100644 uni_modules/uview-ui/libs/config/props/badge.js create mode 100644 uni_modules/uview-ui/libs/config/props/button.js create mode 100644 uni_modules/uview-ui/libs/config/props/calendar.js create mode 100644 uni_modules/uview-ui/libs/config/props/carKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/cell.js create mode 100644 uni_modules/uview-ui/libs/config/props/cellGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkbox.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkboxGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/circleProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/code.js create mode 100644 uni_modules/uview-ui/libs/config/props/codeInput.js create mode 100644 uni_modules/uview-ui/libs/config/props/col.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapse.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapseItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/columnNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/countDown.js create mode 100644 uni_modules/uview-ui/libs/config/props/countTo.js create mode 100644 uni_modules/uview-ui/libs/config/props/datetimePicker.js create mode 100644 uni_modules/uview-ui/libs/config/props/divider.js create mode 100644 uni_modules/uview-ui/libs/config/props/empty.js create mode 100644 uni_modules/uview-ui/libs/config/props/form.js create mode 100644 uni_modules/uview-ui/libs/config/props/formItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/gap.js create mode 100644 uni_modules/uview-ui/libs/config/props/grid.js create mode 100644 uni_modules/uview-ui/libs/config/props/gridItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/icon.js create mode 100644 uni_modules/uview-ui/libs/config/props/image.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexAnchor.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexList.js create mode 100644 uni_modules/uview-ui/libs/config/props/input.js create mode 100644 uni_modules/uview-ui/libs/config/props/keyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/line.js create mode 100644 uni_modules/uview-ui/libs/config/props/lineProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/link.js create mode 100644 uni_modules/uview-ui/libs/config/props/list.js create mode 100644 uni_modules/uview-ui/libs/config/props/listItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingIcon.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingPage.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadmore.js create mode 100644 uni_modules/uview-ui/libs/config/props/modal.js create mode 100644 uni_modules/uview-ui/libs/config/props/navbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/noNetwork.js create mode 100644 uni_modules/uview-ui/libs/config/props/noticeBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/notify.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberBox.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/overlay.js create mode 100644 uni_modules/uview-ui/libs/config/props/parse.js create mode 100644 uni_modules/uview-ui/libs/config/props/picker.js create mode 100644 uni_modules/uview-ui/libs/config/props/popup.js create mode 100644 uni_modules/uview-ui/libs/config/props/radio.js create mode 100644 uni_modules/uview-ui/libs/config/props/radioGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/rate.js create mode 100644 uni_modules/uview-ui/libs/config/props/readMore.js create mode 100644 uni_modules/uview-ui/libs/config/props/row.js create mode 100644 uni_modules/uview-ui/libs/config/props/rowNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/scrollList.js create mode 100644 uni_modules/uview-ui/libs/config/props/search.js create mode 100644 uni_modules/uview-ui/libs/config/props/section.js create mode 100644 uni_modules/uview-ui/libs/config/props/skeleton.js create mode 100644 uni_modules/uview-ui/libs/config/props/slider.js create mode 100644 uni_modules/uview-ui/libs/config/props/statusBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/steps.js create mode 100644 uni_modules/uview-ui/libs/config/props/stepsItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/sticky.js create mode 100644 uni_modules/uview-ui/libs/config/props/subsection.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeAction.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeActionItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/swiper.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipterIndicator.js create mode 100644 uni_modules/uview-ui/libs/config/props/switch.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbarItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabs.js create mode 100644 uni_modules/uview-ui/libs/config/props/tag.js create mode 100644 uni_modules/uview-ui/libs/config/props/text.js create mode 100644 uni_modules/uview-ui/libs/config/props/textarea.js create mode 100644 uni_modules/uview-ui/libs/config/props/toast.js create mode 100644 uni_modules/uview-ui/libs/config/props/toolbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tooltip.js create mode 100644 uni_modules/uview-ui/libs/config/props/transition.js create mode 100644 uni_modules/uview-ui/libs/config/props/upload.js create mode 100644 uni_modules/uview-ui/libs/config/zIndex.js create mode 100644 uni_modules/uview-ui/libs/css/color.scss create mode 100644 uni_modules/uview-ui/libs/css/common.scss create mode 100644 uni_modules/uview-ui/libs/css/components.scss create mode 100644 uni_modules/uview-ui/libs/css/flex.scss create mode 100644 uni_modules/uview-ui/libs/css/h5.scss create mode 100644 uni_modules/uview-ui/libs/css/mixin.scss create mode 100644 uni_modules/uview-ui/libs/css/mp.scss create mode 100644 uni_modules/uview-ui/libs/css/nvue.scss create mode 100644 uni_modules/uview-ui/libs/css/vue.scss create mode 100644 uni_modules/uview-ui/libs/function/colorGradient.js create mode 100644 uni_modules/uview-ui/libs/function/debounce.js create mode 100644 uni_modules/uview-ui/libs/function/digit.js create mode 100644 uni_modules/uview-ui/libs/function/index.js create mode 100644 uni_modules/uview-ui/libs/function/platform.js create mode 100644 uni_modules/uview-ui/libs/function/test.js create mode 100644 uni_modules/uview-ui/libs/function/throttle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/adapters/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/Request.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/defaults.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/settle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/index.d.ts create mode 100644 uni_modules/uview-ui/libs/luch-request/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils/clone.js create mode 100644 uni_modules/uview-ui/libs/mixin/button.js create mode 100644 uni_modules/uview-ui/libs/mixin/mixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpMixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpShare.js create mode 100644 uni_modules/uview-ui/libs/mixin/openType.js create mode 100644 uni_modules/uview-ui/libs/mixin/style.js create mode 100644 uni_modules/uview-ui/libs/mixin/touch.js create mode 100644 uni_modules/uview-ui/libs/util/async-validator.js create mode 100644 uni_modules/uview-ui/libs/util/calendar.js create mode 100644 uni_modules/uview-ui/libs/util/dayjs.js create mode 100644 uni_modules/uview-ui/libs/util/emitter.js create mode 100644 uni_modules/uview-ui/libs/util/route.js create mode 100644 uni_modules/uview-ui/package.json create mode 100644 uni_modules/uview-ui/theme.scss create mode 100644 utils/bc.js create mode 100644 utils/common.js create mode 100644 utils/dialog.js create mode 100644 utils/index.js create mode 100644 utils/mapConfig.js create mode 100644 utils/querystring.js create mode 100644 utils/request.js create mode 100644 utils/store/cookie.js create mode 100644 utils/store/index.js create mode 100644 utils/store/localStorage.js create mode 100644 utils/validate.js create mode 100644 utils/vue-jsonp.umd.js create mode 100644 v4/components/@lucky-canvas/uni/LICENSE create mode 100644 v4/components/@lucky-canvas/uni/README.md create mode 100644 v4/components/@lucky-canvas/uni/lucky-grid.vue create mode 100644 v4/components/@lucky-canvas/uni/lucky-wheel.vue create mode 100644 v4/components/@lucky-canvas/uni/package.json create mode 100644 v4/components/@lucky-canvas/uni/slot-machine.vue create mode 100644 v4/components/@lucky-canvas/uni/utils.js create mode 100644 v4/components/lucky-canvas/LICENSE create mode 100644 v4/components/lucky-canvas/README.md create mode 100644 v4/components/lucky-canvas/index.js create mode 100644 v4/components/lucky-canvas/package.json create mode 100644 v4/components/lucky-canvas/types/index.d.ts create mode 100644 v4/components/select-city.vue create mode 100644 v4/views/attract/attract.vue create mode 100644 v4/views/attract/project.vue create mode 100644 v4/views/attract/projectList.vue create mode 100644 v4/views/live/live.vue create mode 100644 v4/views/luck/logs.vue create mode 100644 v4/views/luck/luck.vue create mode 100644 v4/views/luck/receive.vue create mode 100644 v4/views/offer/offer.vue create mode 100644 v4/views/preSale/preSale.vue create mode 100644 v4/views/seckill/seckill.vue create mode 100644 v4/views/shop/detail.vue create mode 100644 v4/views/shop/shop.vue create mode 100644 v4/views/specialty/specialty.vue create mode 100644 v4/views/trial/trial.vue create mode 100644 wenwan/views/goodsClass.vue create mode 100644 wenwan/views/store.vue create mode 100644 wenwan/views/storeList.vue diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..510dac0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.DS_Store +node_modules/ +/dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +unpackage/ + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..81f13f4 --- /dev/null +++ b/.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": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..248b708 --- /dev/null +++ b/App.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/api/activity.js b/api/activity.js new file mode 100644 index 0000000..949e487 --- /dev/null +++ b/api/activity.js @@ -0,0 +1,153 @@ +import request from "@/utils/request"; + +/** + * 拼团列表 + */ +export function getCombinationList(data) { + return request.get("/combination/list", data, { login: false }); +} + +/** + * 拼团产品详情 + * @param {*} id + */ +export function getCombinationDetail(id) { + return request.get("/combination/detail/" + id, {}, { login: true }); +} + +/** + * 拼团 开团 + * @param {*} id + */ +export function getCombinationPink(id) { + return request.get("/combination/pink/" + id); +} + +/** + * 拼团 取消开团 + */ +export function getCombinationRemove(data) { + return request.post("/combination/remove", data); +} + +/** + * 拼团海报 + * @param {*} id + */ +export function getCombinationPoster(data) { + return request.post("/combination/poster", data); +} + +/** + * 秒杀列表配置 + */ +export function getSeckillConfig() { + return request.get("/seckill/index", {}, { login: false }); +} + +/** + * 秒杀列表 + */ +export function getSeckillList(time, data) { + return request.get("/seckill/list/" + time, data, { login: false }); +} + +/** + * 秒杀产品详情 + */ +export function getSeckillDetail(id) { + return request.get("/seckill/detail/" + id, {}, { login: false }); +} + +/** + * 砍价列表 + * @param {*} data + */ +export function getBargainList(data) { + return request.get("/bargain/list", data, { login: false }); +} + +/** + * 砍价产品详情 + */ +export function getBargainDetail(id) { + return request.get("/bargain/detail/" + id); +} + +/** + * 砍价 观看/分享/参与次数 + */ +export function getBargainShare(data) { + return request.post("/bargain/share", data); +} + +/** + * 砍价开启 + * @param {*} data + */ +export function getBargainStart(data) { + return request.post("/bargain/start", data); +} + +/** + * 砍价 帮助好友砍价 + * @param {*} data + */ +export function getBargainHelp(data) { + return request.post("/bargain/help", data); +} + +/** + * 砍价 砍掉金额 + * @param {*} data + */ +export function getBargainHelpPrice(data) { + return request.post("/bargain/help/price", data); +} + +/** + * 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格 + * @param {*} data + */ +export function getBargainHelpCount(data) { + return request.post("/bargain/help/count", data); +} + +/** + * 砍价 开启砍价用户信息 + * @param {*} data + */ +export function getBargainStartUser(data) { + return request.post("/bargain/start/user", data); +} + +/** + * 砍价 砍价帮 + * @param {*} data + */ +export function getBargainHelpList(data) { + return request.post("/bargain/help/list", data); +} + +/** + * 砍价海报 + * @param {*} data + */ +export function getBargainPoster(data) { + return request.post("/bargain/poster", data); +} + +/** + * 砍价列表(已参与) + * @param {*} data + */ +export function getBargainUserList(data) { + return request.get("/bargain/user/list", data); +} + +/** + * 砍价取消 + */ +export function getBargainUserCancel(data) { + return request.post("/bargain/user/cancel", data); +} diff --git a/api/admin.js b/api/admin.js new file mode 100644 index 0000000..52f52eb --- /dev/null +++ b/api/admin.js @@ -0,0 +1,73 @@ +import request from "@/utils/request"; + +/** + * 统计数据 + */ +export function getStatisticsInfo() { + return request.get("/admin/order/statistics", {}, { login: true }); +} +/** + * 订单月统计 + */ +export function getStatisticsMonth(where) { + return request.get("/admin/order/data", where, { login: true }); +} +/** + * 订单月统计 + */ +export function getAdminOrderList(where) { + return request.get("/admin/order/list", where, { login: true }); +} +/** + * 订单改价 + */ +export function setAdminOrderPrice(data) { + return request.post("/admin/order/price", data, { login: true }); +} +/** + * 订单备注 + */ +export function setAdminOrderRemark(data) { + return request.post("/admin/order/remark", data, { login: true }); +} +/** + * 订单详情 + */ +export function getAdminOrderDetail(orderId) { + return request.get("/admin/order/detail/" + orderId, {}, { login: true }); +} +/** + * 订单发货信息获取 + */ +export function getAdminOrderDelivery(orderId) { + return request.get( + "/admin/order/detail/" + orderId, + {}, + { login: true } + ); +} + +/** + * 订单发货保存 + */ +export function setAdminOrderDelivery(data) { + return request.post("/admin/order/delivery/keep", data, { login: true }); +} +/** + * 订单统计图 + */ +export function getStatisticsTime(data) { + return request.get("/admin/order/time", data, { login: true }); +} +/** + * 线下付款订单确认付款 + */ +export function setOfflinePay(data) { + return request.post("/admin/order/offline", data, { login: true }); +} +/** + * 订单确认退款 + */ +export function setOrderRefund(data) { + return request.post("/admin/order/refund", data, { login: true }); +} diff --git a/api/goods.js b/api/goods.js new file mode 100644 index 0000000..0052399 --- /dev/null +++ b/api/goods.js @@ -0,0 +1,92 @@ +import request from "@/utils/request"; + +// 预售商品列表 +export function getPreSaleList(page, limit) { + return request.get( + "/preSale/list", { + page, + limit + }, { + login: true + } + ); +} + +// 每日特价列表 +export function getDailyGoodsList(page, limit) { + return request.get( + "/dailyGoods/list", { + page, + limit + }, { + login: true + } + ); +} + +// 秒杀产品时间区间 +export function getYxStoreSeckillIndex() { + return request.get("/seckill/index", {}, { + login: true + }); +} + +// 秒杀产品列表 +export function getSeckillTopList(page, limit) { + return request.get("/seckill/limitTime", {page, limit}, {login: true}) +} + +// 秒杀产品列表 +export function getYxStoreSeckillPageList(page, limit, timeId) { + return request.get("/seckill/list", { + page, + limit, + timeId + }, { + login: true + }) +} + +// 秒杀活动规则 +export function getSeckillRule() { + return request.get("/seckill/rule", {}, {login: false}) +} + +// 预售商品详情 +export function getPreSale(id) { + return request.get(`/preSale/detail/${id}`, {}, { + login: true + }) +} + +// 每日特价详情 +export function getDailyGoods(id) { + return request.get(`/dailyGoods/detail/${id}`, {}, { + login: true + }) +} + +// 秒杀产品详情 +export function getYxStoreSeckill(id) { + return request.get(`/seckill/detail/${id}`, {}, { + login: true + }) +} + +// 尖货推荐横幅 +export function sharpBannar() { + return request.get("/productRecommend/index", {}, { + login: false + }) +} + +// 尖货推荐-商品列表 +export function getSharpList(keyword) { + let param = ""; + if (keyword.trim().length > 0) { + param = `?keyword=${keyword}`; + } + return request.get("/product/hot" + param, {}, { + login: false + }) +} diff --git a/api/inn.js b/api/inn.js new file mode 100644 index 0000000..dbd61a4 --- /dev/null +++ b/api/inn.js @@ -0,0 +1,200 @@ +/* + * 客栈接口 + * */ +import request from "@/utils/request"; + + +/** + * 客栈申请 + * @param data + * @returns {*} + */ +export function postHotelApply(data) { + return request.post("/api/hotelMain/apply", data, { + login: true + }); +} + +/** + * 客栈重新申请 + * @param data + * @returns {*} + */ +export function postHotelReApply(data) { + return request.post("/api/hotelMain/reApply", data, { + login: true + }); +} + +/** + * 客栈点赞/取消 + * @param data + * @returns {*} + */ +export function getHotelZan(innId) { + return request.get("/api/hotelMain/zan/" + innId, {}, { + login: true + }); +} + +/** + * 客栈信息修改 + * @param data + * @returns {*} + */ +export function postHotelInfoEdit(data) { + return request.post("/api/hotelMain/edit", data, { + login: true + }); +} + +/** + * 客栈详情 + * @param innId 客栈id + * @returns {*} + */ +export function getHotelDetail(innId) { + return request.get("/api/hotelMain/info/" + innId, {}, { + login: true + }); +} + +/** + * 客栈列表 + * @param data + * @returns {*} + */ +export function getHotelList(data) { + return request.get("/api/hotelMain/list", data, { + login: true + }); +} + +/** + * 客栈商品列表 + * @param data + */ +export function goodsList(data) { + return request.get("/api/hotelMain/goodsList", data, { + login: false + }); +} + +/** + * 首页客栈列表(不需要登录) + * @param data + * @returns {*} + */ +export function getHomeHotelList(data) { + return request.get("/api/hotelMain/listIndex", data, { + login: false + }); +} + +/** + * 首页客栈详情(不需要登录) + * @param innId 客栈id + * @returns {*} + */ +export function getHomeHotelDetail(innId) { + return request.get("/api/hotelMain/infoIndex/" + innId, {}, { + login: false + }); +} + + +/** + * 客栈新增资讯 + * @param data + * @returns {*} + */ +export function postHotelNewsAdd(data) { + return request.post("/api/hotelNews/add", data, { + login: true + }); +} + +/** + * 客栈删除资讯 + * @param data + * @returns {*} + */ +export function postHotelNewsDel(data) { + return request.post("/api/hotelNews/del", data, { + login: true + }); +} + +/** + * 客栈资讯列表 + * @param data + * @returns {*} + */ +export function getHotelNewsList(data) { + return request.get("/api/hotelNews/list", data, { + login: false + }); +} + +/** + * 客栈资讯详情 + * @param data + * @returns {*} + */ +export function getHotelNewsDetail(id) { + return request.get("/api/hotelNews/info/" + id, {}, { + login: true + }); +} + +/** + * 客栈资讯点赞/取消 + * @param id + * @returns {*} + */ +export function getHotelNewsZan(id) { + return request.get("/api/hotelNews/zan/" + id, {}, { + login: true + }); +} + +/** + * 我的喜欢列表 + * @param id + * @returns {*} + */ +export function getHotelNewsZanList(data) { + return request.get("/api/hotelNews/zan/list", data, { + login: true + }); +} + +/** + * 获取有客栈的入驻的城市列表 + * @param id + * @returns {*} + */ +export function getHotelCityList() { + return request.get("/api/hotelMain/listCity", {}, { + login: true + }); +} + +/** + * 获取客栈类型列表 + * @param null + * @returns {*} + */ +export function getHotelTypeList() { + return request.get("/api/hotelMain/listType", {}, { + login: false + }); +} + +/** + * 店铺详情海报 + * @param id 店铺ID int + * */ +export function getPoster(id) { + return request.get("/api/hotelMain/poster/" + id, {}, {login: true}) +} \ No newline at end of file diff --git a/api/join.js b/api/join.js new file mode 100644 index 0000000..4da2e56 --- /dev/null +++ b/api/join.js @@ -0,0 +1,50 @@ +import request from "@/utils/request"; + +// 商户申请人数统计 +export function getCount() { + return request.get("/merchantApply/count", {}, {login: true}) +} + +// 商户申请入口页图片 +export function getImages() { + return request.get("/merchantApply/images", {}, {login: true}) +} + +// 商户申请页面数据 +export function getShopData(partnerId) { + let param = {}; + if (partnerId) param.partnerId = partnerId; + return request.get("/merchantApply/index", param, {login: true}) +} + +// 查看商户申请 +// 1-特产供应商 2-店铺 3-文玩供应商 +export function getShopInfo() { + return request.get("/merchantApply/info", {}, {login: true}) +} + +// 提交店铺入驻申请 +export function saveShop(hotelInfo, partnerId) { + let param = {hotelInfo}; + if (partnerId && partnerId.length > 0) param.partnerId = partnerId; + return request.post("/merchantApply/hotel/submit", param, {login: true}) +} + +// 提交特产供应商入驻申请 +export function saveSupplier(hotelInfo, supplierInfo, partnerId) { + let param = {hotelInfo, supplierInfo}; + if (partnerId && partnerId.length > 0) param.partnerId = partnerId; + return request.post("/merchantApply/goodSupplier/submit", param, {login: true}) +} + +// 提交文玩供应商入驻申请 +export function saveWenwanSupplier(hotelInfo, supplierInfo, partnerId) { + let param = {hotelInfo, supplierInfo}; + if (partnerId && partnerId.length > 0) param.partnerId = partnerId; + return request.post("/merchantApply/wenwanSupplier/submit", param, {login: true}) +} + +// 撤销入驻申请 +export function removeApply() { + return request.post("/merchantApply/revoke") +} \ No newline at end of file diff --git a/api/luck.js b/api/luck.js new file mode 100644 index 0000000..4e7ad86 --- /dev/null +++ b/api/luck.js @@ -0,0 +1,59 @@ +import request from "@/utils/request"; + +/** + * NIGHT V4 API + */ + +// 获取抽奖活动详情 +export function getLotteryInfo() { + return request.get("/lottery/detail", {}, { + login: true + }) +} + +// 抽奖 +export function draw(id) { + return request.post("/lottery/draw", { + lotteryId: id + }, { + login: true + }) +} + +// 加入抽奖活动 +export function join(id) { + return request.post("/lottery/join", { + lotteryId: id + }, { + login: true + }) +} + +// 获取我的抽奖记录 +export function getLotteryRecordsMy(id, page) { + return request.get("/lottery/records/my", { + lotteryId: id, + page + }, { + login: true + }) +} + +// 获取最新抽奖记录 +export function getLotteryRecordsNew(id) { + return request.get("/lottery/records/new", { + lotteryId: id + }, { + login: true + }) +} + +// 领奖 +export function takePrize(lotteryRecordId, addressId) { + return request.post("/lottery/takePrize", { + addressId, + lotteryRecordId + }, { + login: true + }) +} diff --git a/api/order.js b/api/order.js new file mode 100644 index 0000000..8684475 --- /dev/null +++ b/api/order.js @@ -0,0 +1,163 @@ +/* + * 订单确认 + * */ +import request from "@/utils/request"; + +/** + * 通过购物车 id 获取订单信息 + * @param cartId + * @returns {*} + */ +export function postOrderConfirm(cartId) { + return request.post("/order/confirm", { + cartId + }); +} + +/** + * 计算订单金额 + * @param key + * @param data + * @returns {*} + */ +export function postOrderComputed(key, data) { + return request.post("/order/computed/" + key, data); +} + +/** + * 获取指定金额可用优惠券 + * @param price + * @returns {*} + */ +export function getOrderCoupon(cartId) { + return request.get("/coupons/order/" + cartId); +} + +/** + * 生成订单 + * @param key + * @param data + * @returns {*} + */ +export function createOrder(key, data) { + return request.post("/order/create/" + key, data || {}); +} + +/** + * 订单统计数据 + * @returns {*} + */ +export function getOrderData() { + return request.get("/order/data"); +} + +/** + * 订单列表 + * @param data.type 0 全部,1 待付款,2 待发货,3 待发货,4 待评价,5 已完成,-1 退款中,-2 已退款,-3 退款(退款中+已退款+已驳回),-4 已驳回 + * @return _status._type 0 待付款,1 待发货,2 待收货,3 待评价,4 已完成,-1 退款中,-2 已退款,-3 已驳回 + */ +export function getOrderList(data) { + return request.get("/order/list", data); +} + +/** + * 取消订单 + * @returns {*} + */ +export function cancelOrder(id) { + return request.post("/order/cancel", { + id + }); +} + +/** + * 订单详情 + * @returns {*} + */ +export function orderDetail(id) { + return request.get("/order/detail/" + id); +} + +/** + * 退款理由 + * @returns {*} + */ +export function getRefundReason() { + return request.get("/order/refund/reason"); +} + +/** + * 提交退款 + * @returns {*} + */ +export function postOrderRefund(data) { + return request.post("/order/refund/verify", data); +} + +/** + * 确认收货 + * @returns {*} + */ +export function takeOrder(uni) { + return request.post("/order/take", { + uni + }); +} + +/** + * 删除订单 + * @returns {*} + */ +export function delOrder(uni) { + return request.post("/order/del", { + uni + }); +} + +/** + * 订单查询物流信息 + * @returns {*} + */ +export function express(params) { + return request.post("order/express", params); +} + +/** + * 订单支付 + * @returns {*} + */ +export function payOrder(uni, paytype, from) { + return request.post("order/pay", { + uni, + paytype, + from + }); +} + +/** + * 订单支付(余额) + * @returns {*} + */ +export function yuePayOrder(uni, paytype, from, passwordPay) { + return request.post("order/pay", { + uni, + paytype, + from, + passwordPay + }); +} + + +/** + * 订单核销 + * @returns {*} + */ + +export function orderVerific(verifyCode, isConfirm) { + return request.post("order/order_verific", {verifyCode, isConfirm}); +} + +// 延迟收货 +export function orderDelay(uni) { + return request.post("/order/extendedDelivery", {uni}) +} \ No newline at end of file diff --git a/api/product.js b/api/product.js new file mode 100644 index 0000000..69efb6a --- /dev/null +++ b/api/product.js @@ -0,0 +1,43 @@ +import request from "@/utils/request"; + +/** + * 康养食材首页 + * */ +export function wellnessFood() { + return request.get("/wellnessFood/index", {}, {login: true}) +} + +/** + * 养生圣地列表 + * */ +export function wellnessPlaceList(param) { + return request.get("/api/hotelMain/wellnessPlaceList", param, {login: true}) +} + +/** + * 定制礼品首页 + * */ +export function customizedGift() { + return request.get("/customizedGift/index", {}, {login: true}) +} + +/** + * 千县名品首页 + * */ +export function countyFamous() { + return request.get("/countyFamous/index", {}, {login: true}) +} + +/** + * 名品故事列表 + * */ +export function getStoryList(page) { + return request.get("/countyFamous/content/list?page=" + page, {}, {login: true}) +} + +/** + * 故事详情 + * */ +export function getStoryDetail(id) { + return request.get("/countyFamous/content/" + id, {}, {login: true}) +} diff --git a/api/public.js b/api/public.js new file mode 100644 index 0000000..11b5338 --- /dev/null +++ b/api/public.js @@ -0,0 +1,202 @@ +import request from "@/utils/request"; + +/** + * 首页 + * @returns {*} + */ +export function getHomeData() { + return request.get("index", {}, { + login: false + }); +} + +// 用户协议与隐私政策 +export function getAgree() { + return request.get("/agreement", {}, {login: false}) +} + +/** + * 获取视频分类 + * @returns {*} + */ +export function getStoreVideoType() { + return request.get("/dict/getStoreVideoType", {}, { + login: false + }); +} + +/** + * 获取客栈资讯分类 + * @returns {*} + */ +export function getHotelNewsCategory() { + return request.get("/dict/getHotelNewsCategory", {}, { + login: false + }); +} + + +/** + * 同步直播数据 + * @returns {*} + */ +export function wxLiveSynchro() { + return request.get("/synchro", {}, { + login: false + }); +} + +/** + * 查询直播间 + * @returns {*} + */ +export function getWxLiveList(q) { + return request.get("/yxWechatLive", q, { + login: false + }); +} + +/** + * 查询直播间回放列表 + * @returns {*} + */ +export function getWxLiveReplayList(id) { + return request.get("/yxWechatLive/getLiveReplay/", id, { + login: false + }); +} + +/** + * 文章 轮播列表 + * @returns {*} + */ +export function getArticleBanner() { + return request.get("/article/banner/list", {}, { + login: false + }); +} + +/** + * 文章分类列表 + * @returns {*} + */ +export function getArticleCategory() { + return request.get("/article/category/list", {}, { + login: false + }); +} + +/** + * 文章 热门列表 + * @returns {*} + */ +export function getArticleHotList() { + return request.get("/article/hot/list", {}, { + login: false + }); +} + +/** + * 文章列表 + * @returns {*} + */ +export function getArticleList(q) { + return request.get("/article/list/", q, { + login: false + }); +} + +/** + * 分享 + * @returns {*} + */ +export function getShare() { + return request.get("/share", {}, { + login: false + }); +} + +/** + * 文章详情 + * @returns {*} + */ +export function getArticleDetails(id) { + return request.get("/article/details/" + id, {}, { + login: false + }); +} + +/** + * 获取微信sdk配置 + * @returns {*} + */ +export function getWechatConfig() { + // return request.get( + // "/wechat/config", + // { url: document.location.href }, + // { login: false } + // ); +} + +/** + * 获取微信sdk配置 + * @returns {*} + */ +export function wechatAuth(code, spread, login_type) { + return request.get( + "/wechat/auth", { + code, + spread, + login_type + }, { + login: false + } + ); +} + +/** + * 获取快递公司 + * @returns {*} + */ +export function getLogistics() { + return request.get("/logistics", {}, { + login: false + }); +} + +/** + * 获取图片base64 + * @retins {*} + * */ +export function imageBase64(image, code) { + return request.post( + "/image_base64", { + image: image, + code: code + }, { + login: false + } + ); +} + +/** + * 数据字典 + * @param code 编码 + */ +export function queryByType(code) { + return request.get("/dict/queryByType/" + code, {}, { + login: true + }) +} + +// 获取用户UnionId +export function userUnionId() { + return request.get("/userUnionId", {}, { + login: true + }) +} + +// 获取分享图片 +export function getShareImage() { + return request.get("/shareImage", {}, {login: false}) +} \ No newline at end of file diff --git a/api/shop.js b/api/shop.js new file mode 100644 index 0000000..ce364c6 --- /dev/null +++ b/api/shop.js @@ -0,0 +1,72 @@ +import request from "@/utils/request"; + +/** + * NIGHT V4 API + */ + +// 店铺列表 +export function fetchShop(merchantName) { + return request.post("/merchant/products", { + merchantName + }, { + login: false + }) +} + +// 店铺内商品列表 +export function fetchGoods(merId, orderBy) { + return request.post("/merchant/productList", { + merId, + orderBy + }, { + login: false + }) +} + +// 特产列表 +export function fetchSpecialty(page, cityName) { + return request.get("/products/normal", { + isGood: 1, + page, + cityName, + limit: 20 + }, { + login: true + }) +} + +// 获取特产商品城市列表 +export function fetchCity() { + return request.post("/yxStoreProductGoods/list", {}, { + login: true + }) +} + +// 招商信息 +export function getAttract() { + return request.get("/api/businessApply/index", {}, { + login: false + }) +} + +// 提交招商信息 +export function saveAttract(data) { + return request.post("/api/businessApply/apply", data, { + login: true + }) +} + +// 招商项目入口页 +export function investment() { + return request.get("/investment/index", {}, {login: true}) +} + +// 招商项目列表 +export function investmentList(page, keyword) { + return request.get("/investment/list", {page, keyword}, {login: true}) +} + +// 招商项目详情 +export function investmentInfo(id) { + return request.get("/investment/info/" + id, {}, {login: true}) +} \ No newline at end of file diff --git a/api/store.js b/api/store.js new file mode 100644 index 0000000..ab0fe2f --- /dev/null +++ b/api/store.js @@ -0,0 +1,191 @@ +import request from "@/utils/request"; + +/** + * 商品分类 + * @param pid 35、文玩 + * @param excludePid 排除ID + * */ +export function getCategory(pid, excludePid, cityId, isGood) { + let param = {}; + if (pid) param.pid = pid; + if (excludePid) param.excludePid = excludePid; + if (cityId) param.cityId = cityId; + if (isGood) param.isGood = 1; + return request.get("/category", param, { + login: false + }); +} + +/* + * 商品详情 + * */ +export function getProductDetail(id, data) { + return request.get("/product/detail/" + id, data, { + login: true + }); +} + +/* + * 商品分销二维码 + * */ +export function getProductCode(id) { + return request.get("/product/code/" + id, {}, { + login: true + }); +} + +// 商品列表 +export function getProducts(q) { + return request.get("/products", q, { + login: false + }); +} + +// 普通商品 +export function fetchNormal(q) { + return request.get("/products/normal", q, {login: false}) +} + +// 文玩商品 +export function fetchWenwan(q) { + return request.get("/products/wenwan", q, {login: false}) +} + +/* + * 购物车数量 + * */ +export function getCartNum() { + return request.get("/cart/count"); +} + +/* + * 添加收藏 + * */ +export function toCollect(id, category) { + return request.get("/collect/add/" + id + "/" + category); +} + +/* + * 为你推荐 + * */ +export function getHostProducts(page, limit) { + return request.get( + "/product/hot", { + page: page, + limit: limit + }, { + login: false + } + ); +} + +/* + * 精品、热门、首发列表 + * */ +export function getGroomList(type) { + return request.get("/groom/list/" + type, {}, { + login: true + }); +} + +/* + * 获取商品海报 + * */ +export function getProductPoster(id) { + return request.get("/product/poster/" + id, {}, { + login: true + }); +} + +/* + * 购物车 添加 + * */ +export function postCartAdd(data) { + return request.post("/cart/add", data); +} + +/* + * 购物车列表 + * */ +export function getCartList() { + return request.get("/cart/list"); +} + +/* + * 购物车 删除 + * */ +export function postCartDel(ids) { + return request.post("/cart/del", { + ids + }); +} + +/* + * 购物车 获取数量 + * */ +export function getCartCount(data) { + return request.get("/cart/count", data); +} + +/* + * 购物车 修改商品数量 + * */ +export function changeCartNum(id, number) { + return request.post("/cart/num", { + id, + number + }); +} + +/** + * 搜索推荐关键字 + */ +export function getSearchKeyword() { + return request.get("/search/keyword", {}, { + login: false + }); +} + +/** + * 产品评论列表 + */ +export function getReplyList(id, q) { + return request.get("/reply/list/" + id, q, { + login: true + }); +} + +/** + * 产品评价数量和好评度 + */ +export function getReplyConfig(id) { + return request.get("/reply/config/" + id, {}, { + login: true + }); +} + +/** + * 评价页面获取单个产品详情 + */ +export function postOrderProduct(unique) { + return request.post("/order/product", { + unique + }, { + login: true + }); +} + +/** + * 提交评价页面; + */ +export function postOrderComment(data) { + return request.post("/order/comment", data, { + login: true + }); +} + +export function storeListApi(data) { + return request.get("store_list", data, { + login: false + }); +} diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..13b9bb9 --- /dev/null +++ b/api/user.js @@ -0,0 +1,525 @@ +import request from "@/utils/request"; + +/** + * 省市区 + */ +export function getCity(data) { + return request.get("/city_list", data, { + login: false + }); +} + +export function district(data) { + // return request.get("/city_list", data, { + return request.get("/citys", data, { + login: false + }); +} + +/** + * 用户登录 + * @param data object 用户账号密码 + */ +export function login(data) { + return request.post("/login", data, { + login: false + }); +} + +/** + * 用户手机号登录 + * @param data object 用户手机号 也只能 + */ +export function loginMobile(data) { + return request.post("/login/mobile", data, { + login: false + }); +} + +/** + * 用户发送验证码 + * @param data object 用户手机号 + */ +export function registerVerify(data) { + return request.post("/register/verify", data, { + login: false + }); +} + +/** + * 用户手机号注册 + * @param data object 用户手机号 验证码 密码 + */ +export function register(data) { + return request.post("/register", data, { + login: false + }); +} + +/** + * 用户手机号修改密码 + * @param data object 用户手机号 验证码 密码 + */ +export function registerReset(data) { + return request.post("/register/reset", data, { + login: false + }); +} + +/** + * 用户绑定上级 + * @param nil + */ +export function userBindParent(data) { + return request.post("/user/spread", data); +} + +/** + * 获取用户等级信息 + * @param nil + */ +export function getUserLevelInfo() { + return request.get("/user/levelInfo"); +} + +/** + * 用户升级协议保存 + * @param nil + */ +export function saveUserProtocol(data) { + return request.post("/user/saveGd", data); +} + + +/* + * 视频回放列表 + * */ +export function getVideoList(q) { + return request.get("/video_list", q, { + login: false + }); +} + + + +/* + * 领取优惠券列表 + * */ +export function getCoupon(q) { + return request.get("/coupons", q, { + login: true + }); +} + + +/* + * 点击领取优惠券 + * */ +export function getCouponReceive(id) { + return request.post("/coupon/receive", { + couponId: id + }, { + login: true + }); +} + +/* + * 批量领取优惠券 + * */ +export function couponReceiveBatch(couponId) { + return request.post("/coupon/receive/batch", { + couponId + }); +} + +/* + * 我的优惠券 + * */ +export function getCouponsUser(type) { + return request.get("/coupons/user/" + type); +} + +/* + * 个人中心 + * */ +export function getUser() { + return request.get("/user"); +} + +/* + * 用户信息 + * */ +export function getUserInfo() { + return request.get("/userinfo", { + login: true + }); +} + +/* + * 小程序检查授权 + * */ +export function wxappCheckAuth(data) { + return request.post("/wxapp/checkAuthCode", data, { + login: false + }); +} + +/* + * 小程序登陆 + * */ +export function wxappAuth(data) { + return request.post("/wxapp/auth", data, { + login: false + }); +} + +/* + * 个人中心(功能列表) + * */ +export function getMenuUser() { + return request.get("/menu/user"); +} + +/* + * 用户设置支付密码 + * */ +export function setUserPayPwd(data) { + return request.post("/user/savePayPass", data); +} + +/* + * 通知消息列表 + * */ +export function noticeList(data) { + return request.get("/platNoticeSend/list", data, { login: true }); +} + +/* + * 通知消息详情 + * */ +export function noticeDetail(data) { + return request.post("/platNoticeSend/read", data, { login: true }); +} + +/* + * 用户修改支付密码 + * */ +export function modifyUserPayPwd(data) { + return request.post("/user/updatePayPass", data); +} + +export function bankList(data) { + return request.get("/api/yxBank/bank/list", data, { login: true }); +} + +export function bankCardList(data) { + return request.get("/api/yxBankCard/bankCard/list", data, { login: true }); +} + +export function addBankCard(data) { + return request.post("/api/yxBankCard/bankCard/add", data, { login: true }); +} + +export function deleteBankCard(data) { + return request.post("/api/yxBankCard/bankCard/del", data, { login: true }); +} + +/* + * 地址列表 + * */ +export function getAddressList(data) { + return request.get("/address/list", data || {}); +} + +/* + * 删除地址 + * */ +export function getAddressRemove(id) { + return request.post("/address/del", { + id: id + }); +} + +/* + * 设置默认地址 + * */ +export function getAddressDefaultSet(id) { + return request.post("/address/default/set", { + id: id + }); +} + +/* + * 获取默认地址 + * */ +export function getAddressDefault() { + return request.get("/address/default"); +} + +/* + * 获取单个地址 + * */ +export function getAddress(id) { + return request.get("/address/detail/" + id); +} + +/* + * 修改 添加地址 + * */ +export function postAddress(data) { + return request.post("/address/edit", data); +} + +/* + * 获取收藏产品 + * */ +export function getCollectUser(page, limit) { + return request.get("/collect/user", { + page: page, + limit: limit + }); +} + +/* + * 删除收藏产品 + * */ +export function getCollectDel(id, category) { + return request.post("/collect/del", { + id: id, + category: category + }); +} + +/* + * 批量收藏产品 + * */ +export function postCollectAll(data) { + return request.post("/collect/all", data); +} + +/* + * 添加收藏产品 + * */ +export function getCollectAdd(id, category) { + return request.post("collect/add", { + id: id, + category: category + }); +} + +/* + * 签到配置 + * */ +export function getSignConfig() { + return request.get("/sign/config"); +} + +/* + * 签到里的签到列表 + * */ +export function getSignList(page, limit) { + return request.get("/sign/list", { + page: page, + limit: limit + }); +} + +/* + * 签到列表 + * */ +export function getSignMonth(page, limit) { + return request.get("/sign/month", { + page: page, + limit: limit + }); +} + +/* + * 签到用户信息 + * */ +export function postSignUser(sign) { + return request.post("/sign/user", sign); +} + +/* + * 签到 + * */ +export function postSignIntegral(sign) { + return request.post("/sign/integral", sign); +} + +/* + * 推广数据 + * */ +export function getSpreadInfo() { + return request.get("/commission"); +} + +/* + * 推广人列表 + * */ +export function getSpreadUser(screen) { + return request.post("/spread/people", screen); +} + +/* + * 推广人订单 + * */ +export function getSpreadOrder(where) { + return request.post("/spread/order", where); +} + +/* + * 资金明细(types|0=全部,1=消费,2=充值,3=返佣,4=提现) + * */ +export function getCommissionInfo(q, types) { + return request.get("/spread/commission/" + types, q); +} + +/* + * 积分记录 + * */ +export function getIntegralList(q) { + return request.get("/integral/list", q); +} + +/* + * 提现记录 + * */ +export function getWithdrawalRecordList(q) { + return request.get("/list", q); +} + +/* + * 提现银行 + * */ +export function getBank() { + return request.get("/extract/bank"); +} + +/* + * 提现申请 + * */ +export function postCashInfo(cash) { + return request.post("/extract/cash", cash); +} + +/* + * 会员中心 + * */ +export function getVipInfo() { + return request.get("/user/level/grade"); +} + +/* + * 会员等级任务 + * */ +export function getVipTask(id) { + return request.get("/user/level/task/" + id); +} + +/* + * 资金统计 + * */ +export function getBalance() { + return request.get("/user/balance"); +} + +/* + * 活动状态 + * */ +export function getActivityStatus() { + return request.get("/user/activity", {}, { + login: false + }); +} + +/* + * 活动状态 + * */ +export function getSpreadImg(data) { + + return request.get("/spread/banner", data); +} + +/* + * 用户修改信息 + * */ +export function postUserEdit(data) { + return request.post("/user/edit", data); +} + +/* + * 用户修改信息 + * */ +export function getChatRecord(to_uid, data) { + return request.get("user/service/record/" + to_uid, data); +} + +/* + * 用户修改信息 + * */ +export function serviceList() { + return request.get("user/service/list"); +} + +/* + * 公众号充值 + * */ +export function rechargeWechat(data) { + return request.post("/recharge/wechat", data); +} + +/* + * 退出登录 + * */ +export function getLogout() { + return request.post("/auth/logout"); +} + +/* + * 绑定手机号(小程序方式) + * */ +export function bindingPhone(data) { + return request.post("wxapp/binding", data); +} + +/* + * 绑定手机号(手机号,验证码方式) + * */ +export function bindingPhoneByInput(data) { + return request.post("/binding", data); +} + +/* + * h5切换公众号登陆 + * */ +export function switchH5Login() { + return request.post("switch_h5", { + from: "wechat" + }); +} +/* + * 获取推广人排行 + * */ +export function getRankList(q) { + return request.get("rank", q); +} +/* + * 获取佣金排名 + * */ +export function getBrokerageRank(q) { + return request.get("brokerage_rank", q); +} + +/** + * 检测会员等级 + */ +export function setDetection() { + return request.get("user/level/detection"); +} + + +export function getRechargeApi() { + return request.get("recharge/index"); +} diff --git a/api/wenwan.js b/api/wenwan.js new file mode 100644 index 0000000..f2a57af --- /dev/null +++ b/api/wenwan.js @@ -0,0 +1,21 @@ +import request from "@/utils/request"; + +// 文玩店铺列表 +export function fetchStore(page, cityName, name) { + return request.get("/api/hotelMain/wenwanList", { + limit: 10, + page, + cityName, + name + }, {login: true}) +} + +/** + * 获取商品城市列表 + * @param type 类型:0、特产;1、文玩;2、七彩云上;3、定制礼品;4、康养食材;5、千县名品;6、景点门票 + * */ +export function fetchCity(type) { + return request.get(`/wenwan/cityList/${type}`, {}, { + login: true + }) +} \ No newline at end of file diff --git a/assets/css/base.less b/assets/css/base.less new file mode 100644 index 0000000..78111a7 --- /dev/null +++ b/assets/css/base.less @@ -0,0 +1,293 @@ +@charset "UTF-8"; +/** + *相关初始化 +*/ + +/*重置uni-checkbox样式开始*/ +uni-checkbox .uni-checkbox-input{ + border-radius: 50% !important; +} + +uni-checkbox .uni-checkbox-input:hover { + border-color: #FE5261 !important; +} + +uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{ + background-color: #FE5261 !important; + border: 1px solid #FE5261 !important; + color: #fff !important; +} + + +checkbox .wx-checkbox-input { + border-radius: 50% !important; +} + +checkbox .wx-checkbox-input:hover { + border-color: #FE5261 !important; +} + +checkbox .wx-checkbox-input.wx-checkbox-input-checked { + background-color: #FE5261 !important; + border: 1px solid #FE5261 !important; + color: #fff !important; +} + +/*重置uni-checkbox样式结束*/ +.font-color-lightred{ + color:#FE5261 !important; +} + +.font-color-white{ + color: #fff !important; +} +.font-color-red { + color: #FE5261 !important; +} +.font-color-green{ + color: #00c17b !important; +} + +.bg-color-lightred{ + background-color:#FE5261 !important; +} +.bg-color-green{ + background-color: #00c17b !important; +} +.bg-color-red { + background-color: #FE5261 !important; +} +.nav-bg-color-red{ + background-color: #FE5261 !important; +} +.icon-color { + color: #FE5261; +} +.cart-color { + color: #FE5261 !important; + border: 1px solid #FE5261 !important; +} +/* padding20 */ +.padding20 { + padding: 0.2*100rpx; +} +/* pad20 */ +.pad20 { + padding: 0 0.2*100rpx; +} +/* padding30 */ +.padding30 { + padding: 0.3*100rpx; +} +/*pad30 */ +.pad30 { + padding: 0 0.3*100rpx; +} +/* layout */ +.acea-row { + display: flex; + flex-wrap: wrap; + /* 辅助类 */ +} +.acea-row.row-middle { + align-items: center; +} +.acea-row.row-top { + align-items: flex-start; +} +.acea-row.row-bottom { + align-items: flex-end; +} +.acea-row.row-center { + justify-content: center; +} +.acea-row.row-right { + justify-content: flex-end; +} +.acea-row.row-left { + justify-content: flex-start; +} +.acea-row.row-between { + justify-content: space-between; +} +.acea-row.row-around { + justify-content: space-around; +} +.acea-row.row-column-around { + flex-direction: column; + justify-content: space-around; +} +.acea-row.row-column { + flex-direction: column; +} +.acea-row.row-column-between { + flex-direction: column; + justify-content: space-between; +} +/* 上下左右垂直居中 */ +.acea-row.row-center-wrapper { + align-items: center; + justify-content: center; +} +/* 上下两边居中对齐 */ +.acea-row.row-between-wrapper { + align-items: center; + justify-content: space-between; +} + +/* 轮播图 */ +.slider-banner { + position: relative; + width: 100%; + /* height:750rpx; */ + overflow: hidden; +} +.slider-banner{ + +} +.slider-banner .swiper-container { + height: 100%; +} +.slider-banner image{ + display: block; + width: 100%; + height: 100%; +} +.start { + width: 1.22*100rpx; + height: 0.3*100rpx; + background-image: url("~@/static/images/start.png"); + background-repeat: no-repeat; + background-size: 1.22*100rpx auto; +} +.start.star5 { + background-position: 0 0.03*100rpx; +} +.start.star4 { + background-position: 0 -0.3*100rpx; +} +.start.star3 { + background-position: 0 -0.7*100rpx; +} +.start.star2 { + background-position: 0 -1.05*100rpx; +} +.start.star1 { + background-position: 0 -1.4*100rpx; +} +.start.star0 { + background-position: 0 -1.75*100rpx; +} +/* 单选框和多选框 */ +.checkbox-wrapper { + position: relative; +} +.checkbox-wrapper input { + display: none; +} +.checkbox-wrapper .icon { + position: absolute; + left: 0; + top: 50%; + display: inline-block; + width: 18px; + height: 18px; + border: 1px solid #cccccc; + border-radius: 50%; + transform: translate(0, -50%); +} +.checkbox-wrapper input:checked + .icon { + background-color: #e93323; + border-color: #e93323; + background-image: url("/static/images/enter.png"); + background-size: 0.21*100rpx 0.15*100rpx; + background-repeat: no-repeat; + background-position: center center; +} +.Loads { + height: 0.8*100rpx; + font-size: 0.25*100rpx; + color: #000; +} +.Loads .iconfont { + font-size: 0.3*100rpx; + margin-right: 0.1*100rpx; + height: 0.32*100rpx; + line-height: 0.32*100rpx; +} +/*加载动画*/ +@keyframes load { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +.loadingpic { + animation: load 3s linear 1s infinite; +} +.loading { + animation: load linear 1s infinite; +} + +.page-v4{ + background: #F5F5FA; +} + +.bold{ + font-weight: bold; +} + +.tc{ + text-align: center; +} + +// flex布局 +.flex { + display: flex; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.flex-col { + flex-direction: column; +} + +.flex-0 { + flex-shrink: 0; +} + +.jc-start { + justify-content: flex-start; +} + +.jc-end { + justify-content: flex-end; +} + +.jc-center { + justify-content: center; +} + +.jc-around { + justify-content: space-around; +} + +.jc-between { + justify-content: space-between; +} + +.ai-start { + align-items: flex-start; +} + +.ai-end { + align-items: flex-end; +} + +.ai-center { + align-items: center; +} \ No newline at end of file diff --git a/assets/css/goods.less b/assets/css/goods.less new file mode 100644 index 0000000..c25509c --- /dev/null +++ b/assets/css/goods.less @@ -0,0 +1,173 @@ +.change-section { + margin: 24rpx; + padding: 20rpx 24rpx; + border-radius: 20rpx; + + .introduce { + font-size: 34rpx; + } + + .subInfo { + margin-top: 20rpx; + font-size: 26rpx; + color: #8B8F99; + } + + .share { + margin-top: 20rpx; + + .money { + .num { + font-size: 32rpx; + } + } + } +} + +.goods-section { + margin: 24rpx; + padding: 30rpx 24rpx; + border-radius: 20rpx; + background: #fff; +} + +.service-section { + .cell { + margin-bottom: 30rpx; + font-size: 26rpx; + line-height: 1; + + .after-title { + width: 120rpx; + color: #ADADAD; + } + + .title { + color: #333333; + } + + .sub-title { + position: relative; + margin-top: 20rpx; + color: #9D9D9D; + font-size: 22rpx; + } + + .value { + color: #9D9D9D; + font-size: 24rpx; + } + + .red { + color: #FF564A; + } + + .icon-time { + position: relative; + top: 6rpx; + width: 32rpx; + height: 32rpx; + vertical-align: middle; + } + } + + .cell:last-child { + margin-bottom: 0; + } +} + +.store-section { + .logo { + width: 70rpx; + height: 70rpx; + margin-right: 10rpx; + border-radius: 50%; + vertical-align: middle; + } + + .title { + width: 500rpx; + color: #333; + font-size: 30rpx; + } + + .value { + color: #666; + font-size: 22rpx; + line-height: 40rpx; + } + + .product-list { + margin-top: 30rpx; + + .item { + width: 198rpx; + height: 318rpx; + margin-right: 30rpx; + + .cover-box { + position: relative; + width: 198rpx; + height: 198rpx; + overflow: hidden; + + .tag{ + position: absolute; + top: 0; + left: 0; + width: 92rpx; + height: 40rpx; + } + .cover{ + width: 100%; + height: 100%; + border-radius: 12rpx; + } + + image { + vertical-align: middle; + } + } + + .more-t { + margin-top: 10rpx; + color: #333; + font-size: 24rpx; + } + + .price { + margin-top: 10rpx; + color: #DA0000; + font-size: 26rpx; + } + } + } +} + +.param-section { + color: #333; + font-size: 26rpx; + + .table { + margin-top: 30rpx; + border: 2rpx solid #D2D2D2; + + .row { + border-bottom: 2rpx solid #D2D2D2; + + .title { + width: 160rpx; + padding: 16rpx; + border-right: 2rpx solid #D2D2D2; + color: #ADADAD; + } + } + .row:last-child{ + border-bottom: none; + } + .value { + width: 100%; + padding: 16rpx; + } + } +} diff --git a/assets/css/pkg_join.less b/assets/css/pkg_join.less new file mode 100644 index 0000000..9c468fc --- /dev/null +++ b/assets/css/pkg_join.less @@ -0,0 +1,142 @@ +.u-form { + margin-top: 8rpx; + + .u-form-item__body { + padding: 0 !important; + } +} + +.u-cell-group { + margin-bottom: 16rpx; + padding: 40rpx 0; + background: #FFFFFF; + + .u-cell-group__title { + padding-top: 0; + + .u-cell-group__title__text { + font-weight: bold; + font-size: 40rpx; + line-height: 58rpx; + color: #333333; + } + } +} + +.u-cell { + .u-cell__body__content { + flex: 0 !important; + } + + .u-cell__title { + width: 216rpx !important; + + .u-cell__title-text { + color: #666666; + } + } + + .u-text__value { + width: 398rpx !important; + } +} + +.required { + color: #EF1C1C; + font-size: 28rpx; +} + +.content-section { + .line { + width: 690rpx; + } + + .u-textarea { + padding-left: 0 !important; + padding-right: 0 !important; + } +} + +.area-item { + .uni-input { + color: #c0c4cc; + } +} + +.btn-submit { + position: fixed; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + width: 750rpx; + height: 80rpx; + background: #FF564A; + color: #FFFFFF; + font-size: 36rpx; + z-index: 10; +} + +.btn-disabled { + background: #DDDDDD; +} + +.btn-remove{ + background: #FF9696; +} + +.btn-upload { + display: flex; + justify-content: center; + align-items: center; + width: 176rpx; + height: 64rpx; + border: 2rpx solid #1F77EE; + border-radius: 32rpx; + background: rgba(245, 245, 245, 0.39); + color: #1F77EE; + font-size: 32rpx; +} + +.box-upload { + //margin-top: 12rpx; + + .img-preview { + width: 160rpx; + height: 160rpx; + border-radius: 8rpx; + margin: 0 20rpx 20rpx 0; + } + + .pics-box { + width: 690rpx; + } +} + +.u-upload__wrap{ + width: 690rpx; +} + +.popup-body { + width: 80vw; + height: 80vh; + padding: 30rpx; + overflow: hidden; + + .content { + height: 52vh; + overflow-y: auto; + margin: 30rpx 0; + } + + .agree-box { + margin: 60rpx 0; + font-size: 28rpx; + color: #666; + } +} + +.box-state { + padding: 16rpx 32rpx 0; + background: #FFFFFF; +} \ No newline at end of file diff --git a/assets/css/product.less b/assets/css/product.less new file mode 100644 index 0000000..f76037e --- /dev/null +++ b/assets/css/product.less @@ -0,0 +1,131 @@ +.pkg-product-list { + image { + vertical-align: middle; + } + + .swiper-box { + width: 686rpx; + height: 360rpx; + margin: 0 auto; + border-radius: 16rpx; + + image { + width: 100%; + height: 100%; + border-radius: 16rpx; + } + } + + .search-box { + width: 686rpx; + height: 60rpx; + margin: 0 auto; + padding: 0 24rpx 0 32rpx; + box-sizing: border-box; + background: #F7F7F7; + border-radius: 30rpx; + + input { + width: 560rpx; + font-size: 24rpx; + } + + .icon { + width: 32rpx; + height: 32rpx; + } + } + + .body-box { + width: 100%; + display: flex; + position: relative; + border-top: 2rpx solid #D2D2D2; + + ::-webkit-scrollbar { + width: 0 !important + } + + .aside-box { + position: relative; + left: 0; + width: 194rpx; + box-sizing: border-box; + border-right: 2rpx solid #D2D2D2; + overflow-y: auto; + + .item { + height: 94rpx; + box-sizing: border-box; + border-bottom: 2rpx solid #D2D2D2; + color: #033333; + + text { + font-size: 28rpx; + } + } + + .active { + border-left: 6rpx solid #FD574B; + color: #FD574B; + font-weight: bold; + } + } + + .article-box { + position: relative; + width: calc(100vw - 194rpx); + overflow-y: auto; + + .empty { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + + image { + width: 280rpx; + height: 280rpx; + } + + view { + color: gray; + font-size: 24rpx; + } + } + + .item { + position: relative; + width: 242rpx; + height: 376rpx; + box-sizing: border-box; + margin: 20rpx 0 0 20rpx; + + .cover { + width: 242rpx; + height: 242rpx; + margin-bottom: 8rpx; + border-radius: 8rpx; + } + + .name { + color: #333; + font-size: 26rpx; + line-height: 36rpx; + } + + .price { + position: absolute; + bottom: 4rpx; + color: #DA0000; + font-size: 28rpx; + line-height: 36rpx; + } + } + .item-store{ + height: 336rpx; + } + } + } + +} diff --git a/assets/css/reset.less b/assets/css/reset.less new file mode 100644 index 0000000..d15c36f --- /dev/null +++ b/assets/css/reset.less @@ -0,0 +1,43 @@ +input{line-height: normal; box-sizing:border-box;} +@font-face { + font-family: 'GuildfordProBook 5'; + src: url('https://h5.yixiang.co/static/iconfont/GuildfordProBook5.otf'); +} +[v-cloak] { + display: none; +} +.iconfont{ + font-size: .36*100rpx; +} +/* 一像素边框 */ +@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5) { + .border-1px::after { + transform: scaleY(0.7); + } + .border-1px::before { + transform: scaleY(0.7); + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) { + .border-1px::after { + transform: scaleY(0.5); + } + .border-1px::before { + transform: scaleY(0.5); + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) { + .border-1px::after { + transform: scaleY(0.33); + } + .border-1px::before { + transform: scaleY(0.33); + } +} +.line1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width: 100%;} +.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;} +.mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background-color:rgba(0,0,0,0.5);} + + + + diff --git a/assets/css/store.less b/assets/css/store.less new file mode 100644 index 0000000..cf22ce0 --- /dev/null +++ b/assets/css/store.less @@ -0,0 +1,39 @@ +.fixed-share { + position: fixed; + right: 0; + bottom: 200rpx; + width: 184rpx; + height: 62rpx; + vertical-align: middle; + z-index: 100; +} + +.box-share { + .box-img { + position: relative; + width: 500rpx; + height: 632rpx; + border-radius: 40rpx; + overflow: hidden; + } + + .icon { + position: absolute; + top: 22rpx; + right: 22rpx; + width: 32.5rpx; + height: 32.5rpx; + } + + .main-img { + width: 500rpx; + height: 632rpx; + border-radius: 40rpx; + } + + .btn { + width: 500rpx; + height: 100rpx; + margin-top: 20rpx; + } +} \ No newline at end of file diff --git a/assets/css/style.less b/assets/css/style.less new file mode 100644 index 0000000..054e923 --- /dev/null +++ b/assets/css/style.less @@ -0,0 +1,8193 @@ +page { + background: #f5f5f5; +} + +// ios底部安全距离-padding +.savepadding{ + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); + box-sizing: content-box; +} + +// ios底部安全距离-bottom +.savebottom{ + bottom: constant(safe-area-inset-bottom); + bottom: env(safe-area-inset-bottom); +} + +.newsList .newsSwitch .van-hairline--top-bottom::after { + border: 0; +} + +.newsList .newsSwitch .van-tab { + font-size: 0.32*100rpx; + padding: 0; + flex-basis: unset !important; + margin-right: 0.46*100rpx; +} + +.newsList .newsSwitch .van-tabs__wrap { + padding: 0 0.3*100rpx; +} + +.newsList .newsSwitch.van-tabs--line { + padding-top: 0.9*100rpx; +} + +#footer { + position: fixed; + width: 100%; + height: 100rpx; + bottom: 0; + left: 0; + background-color: #fff; + border-top: 1px solid #eee; + z-index: 9999; +} + +#footer.iphonex-footer { + height: 100rpx; + padding-bottom: 68rpx; +} + +.footer-bg { + height: 100rpx; +} + +.iphonex-footer-bg { + height: 168rpx; +} + +#footer .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.2*100rpx; + color: #282828; +} + +#footer .item.on { + color: #eb3729; +} + +#footer .item .iconfont { + font-size: 0.45*100rpx; + height: 0.55*100rpx; + line-height: 0.55*100rpx; +} + +.goodList .item { + position: relative; + padding-left: 0.3*100rpx; + background-color: #fff; +} + +.goodList .item .pictrue { + width: 1.8*100rpx; + height: 1.8*100rpx; + position: relative; +} + +.goodList .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.goodList .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.goodList .item .underline { + padding: 0.3*100rpx 0.3*100rpx 0.3*100rpx 0; + border-bottom: 1px solid #f5f5f5; +} + +.goodList .item:nth-last-child(1) .underline { + border-bottom: 0; +} + +.goodList .item .text { + font-size: 0.3*100rpx; + color: #222; + width: 4.89*100rpx; + text-align: left; +} + +.goodList .item .text .money .num { + font-size: 0.34*100rpx; +} + +.goodList .item .text .vip-money { + font-size: 0.24*100rpx; + color: #282828; + font-weight: bold; + margin-top: 0.1*100rpx; +} + +.goodList .item .text .vip-money .vip { + margin-right: 0.22*100rpx; + text-decoration: line-through; +} + +.goodList .item .text .vip-money .image { + width: 0.46*100rpx; + height: 0.21*100rpx; + margin-left: 0.05*100rpx; +} + +.goodList .item .text .vip-money .num { + font-size: 0.22*100rpx; + color: #aaa; + font-weight: normal; + margin: -0.02*100rpx 0 0 0; +} + +.goodList .item .iconfont { + position: absolute; + right: 0.3*100rpx; + width: 0.5*100rpx; + height: 0.5*100rpx; + border-radius: 50%; + font-size: 0.3*100rpx; + bottom: 0.38*100rpx; +} + +.promotionGood { + padding: 0 0.3*100rpx; + background-color: #fff; +} + +.promotionGood .item { + border-bottom: 1px solid #eee; + height: 2.5*100rpx; +} + +.promotionGood .item .pictrue { + width: 1.88*100rpx; + height: 1.88*100rpx; +} + +.promotionGood .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.08*100rpx; +} + +.promotionGood .item .text { + font-size: 0.24*100rpx; + color: #999; + width: 4.72*100rpx; + text-align: left; +} + +.promotionGood .item .text .name { + font-size: 0.3*100rpx; + color: #333; +} + +.promotionGood .item .text .sp-money { + margin: 0.34*100rpx 0 0.2*100rpx 0; +} + +.promotionGood .item .text .sp-money .moneyCon { + padding: 0 0.18*100rpx; + background-color: #eb3729; + height: 0.46*100rpx; + line-height: 0.46*100rpx; + background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); + font-size: 0.2*100rpx; + color: #fff; + background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); + border-radius: 0.24*100rpx 0.03*100rpx 0.24*100rpx 0.03*100rpx; +} + +.promotionGood .item .text .sp-money .moneyCon .num { + font-size: 0.24*100rpx; +} + +.promotionGood .item .text .money { + text-decoration: line-through; +} + +.recommend { + background-color: #fff; +} + +.recommend .title { + height: 1.35*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.recommend .title .name { + margin: 0 0.28*100rpx; +} + +.recommend .title .iconfont { + font-size: 1.7*100rpx; + color: #454545; + height: 0.5*100rpx; + line-height: 0.5*100rpx; +} + +.recommend .title .iconfont.lefticon { + transform: rotate(180deg); +} + +.recommend .recommendList { + padding: 0 0.3*100rpx; +} + +.recommend .recommendList .item { + width: 3.35*100rpx; + margin-bottom: 0.3*100rpx; +} + +.recommend .recommendList .item .pictrue { + width: 100%; + height: 3.35*100rpx; +} + +.recommend .recommendList .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.recommend .recommendList .item .name { + font-size: 0.28*100rpx; + color: #282828; + margin-top: 0.2*100rpx; +} + +.recommend .recommendList .item .money { + font-size: 0.2*100rpx; + margin-top: 0.03*100rpx; +} + +.recommend .recommendList .item .money .num { + font-size: 0.28*100rpx; +} + +.noCommodity { + padding-top: 0.75*100rpx; +} + +.noCommodity .noPictrue { + width: 4.14*100rpx; + height: 3.36*100rpx; + margin: 0 auto 0.3*100rpx auto; +} + +.noCommodity .noPictrue .image { + width: 100%; + height: 100%; +} + +/*产品详情轮播*/ +.product-bg { + height: 7.5*100rpx; +} + +.product-bg swiper { + height: 7.5*100rpx; + +} + +.product-bg .slide-image { + width: 100%; + height: 100%; +} + +.product-bg .pages { + position: absolute; + background-color: #fff; + height: 0.34*100rpx; + padding: 0 0.1*100rpx; + border-radius: 0.03*100rpx; + right: 0.3*100rpx; + bottom: 0.3*100rpx; + line-height: 0.34*100rpx; + font-size: 0.24*100rpx; + color: #050505; + z-index: 9; +} + +/*评价列表公共*/ +.evaluateWtapper .evaluateItem { + background-color: #fff; + padding-bottom: 0.25*100rpx; +} + +.evaluateWtapper .evaluateItem~.evaluateItem { + border-top: 1px solid #f5f5f5; +} + +.evaluateWtapper .evaluateItem .pic-text { + font-size: 0.26*100rpx; + color: #282828; + height: 0.95*100rpx; + padding: 0 0.3*100rpx; +} + +.evaluateWtapper .evaluateItem .pic-text .pictrue { + width: 0.56*100rpx; + height: 0.56*100rpx; + margin-right: 0.2*100rpx; +} + +.evaluateWtapper .evaluateItem .pic-text .pictrue .image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.evaluateWtapper .evaluateItem .pic-text .name { + max-width: 4.5*100rpx; + margin-right: 0.15*100rpx; +} + +.evaluateWtapper .evaluateItem .time { + font-size: 0.24*100rpx; + color: #82848f; + padding: 0 0.3*100rpx; +} + +.evaluateWtapper .evaluateItem .evaluate-infor { + font-size: 0.28*100rpx; + color: #282828; + margin-top: 0.19*100rpx; + padding: 0 0.3*100rpx; +} + +.evaluateWtapper .evaluateItem .imgList { + padding: 0 0.3*100rpx 0 0.15*100rpx; + margin-top: 0.25*100rpx; +} + +.evaluateWtapper .evaluateItem .imgList .pictrue { + width: 1.56*100rpx; + height: 1.56*100rpx; + margin: 0 0 0.15*100rpx 0.15*100rpx; +} + +.evaluateWtapper .evaluateItem .imgList .pictrue .image { + width: 100%; + height: 100%; +} + +.evaluateWtapper .evaluateItem .reply { + font-size: 0.26*100rpx; + color: #454545; + background-color: #f7f7f7; + border-radius: 0.05*100rpx; + margin: 0.2*100rpx 0.3*100rpx 0 0.3*100rpx; + padding: 0.3*100rpx; + position: relative; +} + +.evaluateWtapper .evaluateItem .reply::before { + content: ""; + width: 0; + height: 0; + border-left: 0.1*100rpx solid transparent; + border-right: 0.1*100rpx solid transparent; + border-bottom: 0.2*100rpx solid #f7f7f7; + position: absolute; + top: -0.2*100rpx; + left: 1*100rpx; +} + +/*优惠券列表公共*/ + +.coupon-list { + padding: 0 0.3*100rpx; + margin-top: 0.25*100rpx; + box-sizing: border-box; +} + +.coupon-list .item { + width: 100%; + height: 1.7*100rpx; + margin-bottom: 0.16*100rpx; +} + +.coupon-list .item .money { + background-image: url('https://h5.yixiang.co/static/images/coupon1.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 2.4*100rpx; + height: 100%; + color: #fff; + font-size: 0.36*100rpx; + font-weight: bold; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.coupon-list .item .money.moneyGray { + background-image: url('https://h5.yixiang.co/static/images/coupon2.png'); +} + +.coupon-list .item .money .num { + font-size: 0.6*100rpx; +} + +.coupon-list .item .text { + width: 4.5*100rpx; + padding: 0 0.17*100rpx 0 0.24*100rpx; + background-color: #fff; + box-sizing: border-box; +} + +.coupon-list .item .text .condition { + font-size: 0.3*100rpx; + color: #282828; + height: 0.93*100rpx; + line-height: 0.93*100rpx; + border-bottom: 1px solid #f0f0f0; +} + +.coupon-list .item .text .data { + font-size: 0.2*100rpx; + color: #999; + height: 0.76*100rpx; +} + +.coupon-list .item .text .data .bnt { + width: 1.36*100rpx; + height: 0.44*100rpx; + border-radius: 0.22*100rpx; + font-size: 0.22*100rpx; + color: #fff; + text-align: center; + line-height: 0.44*100rpx; +} + +.coupon-list .item .text .data .bnt.gray { + background-color: #ccc; +} + +.condition .line-title { + width: 0.9*100rpx; + height: 0.3*100rpx; + line-height: 0.3*100rpx; + padding: 0 0.1*100rpx; + box-sizing: border-box; + background: rgba(255, 247, 247, 1); + border: 1rpx solid rgba(232, 51, 35, 1); + opacity: 1; + border-radius: 0.22*100rpx; + font-size: 0.2*100rpx !important; + color: #e83323; + margin-right: 0.12*100rpx; +} + +.coupon-list .pic-num { + color: #ffffff !important; + font-size: 0.24*100rpx !important; +} + +/*优惠券列表弹窗*/ +.coupon-list-window { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + background-color: #f5f5f5; + border-radius: 0.16*100rpx 0.16*100rpx 0 0; + z-index: 111; + transition: all .3s cubic-bezier(.25, .5, .5, .9); + -webkit-transition: all .3s cubic-bezier(.25, .5, .5, .9); + -moz-transition: all .3s cubic-bezier(.25, .5, .5, .9); + -o-transition: all .3s cubic-bezier(.25, .5, .5, .9); + transform: translate3d(0, 100%, 0); + -webkit-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + -moz-transform: translate3d(0, 100%, 0); + -o-transform: translate3d(0, 100%, 0); +} + +.coupon-list-window.on { + transform: translate3d(0, 0, 0); + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); +} + +.coupon-list-window .title { + height: 1.24*100rpx; + width: 100%; + text-align: center; + line-height: 1.24*100rpx; + font-size: 0.32*100rpx; + font-weight: bold; + position: relative; + color: #333; +} + +.coupon-list-window .title .iconfont { + position: absolute; + right: 0.3*100rpx; + top: 50%; + transform: translateY(-50%); + font-size: 0.35*100rpx; + color: #8a8a8a; + font-weight: normal; +} + +.coupon-list-window .coupon-list { + margin: 0 0 0.5*100rpx 0; + height: 5.5*100rpx; + overflow: auto; +} + +.coupon-list-window .pictrue { + width: 4.14*100rpx; + height: 3.36*100rpx; + margin: 0 auto 0.5*100rpx auto; +} + +.coupon-list-window .pictrue .image { + width: 100%; + height: 100%; +} + +/*详情首页弹窗*/ +.product-window { + position: fixed; + bottom: 0; + width: 100%; + left: 0; + background-color: #fff; + z-index: 88; + border-radius: 0.16*100rpx 0.16*100rpx 0 0; + padding-bottom: 1.4*100rpx; + transform: translate3d(0, 100%, 0); + transition: all .3s cubic-bezier(.25, .5, .5, .9); +} + +.product-window.on { + transform: translate3d(0, 0, 0); +} + +.product-window .textpic { + padding: 0 1.3*100rpx 0 0.3*100rpx; + margin-top: 0.29*100rpx; + position: relative; +} + +.product-window .textpic .pictrue { + width: 1.5*100rpx; + height: 1.5*100rpx; +} + +.product-window .textpic .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.1*100rpx; +} + +.product-window .textpic .text { + width: 4.1*100rpx; + font-size: 0.32*100rpx; + color: #202020; +} + +.product-window .textpic .text .money { + font-size: 0.24*100rpx; + margin-top: 0.4*100rpx; +} + +.product-window .textpic .text .money .num { + font-size: 0.36*100rpx; +} + +.product-window .textpic .text .money .stock { + color: #999; + margin-left: 0.18*100rpx; +} + +.product-window .textpic .iconfont { + position: absolute; + right: 0.3*100rpx; + top: -0.05*100rpx; + font-size: 0.35*100rpx; + color: #8a8a8a; +} + +.product-window .productWinList { + max-height: 3.95*100rpx; + overflow: auto; + margin-top: 0.36*100rpx; +} + +.product-window .productWinList .item~.item { + margin-top: 0.36*100rpx; +} + +.product-window .productWinList .item .title { + font-size: 0.3*100rpx; + color: #999; + padding: 0 0.3*100rpx; +} + +.product-window .productWinList .item .listn { + padding: 0 0.3*100rpx 0 0.16*100rpx; +} + +.product-window .productWinList .item .listn .itemn { + border: 1px solid #bbb; + font-size: 0.26*100rpx; + color: #282828; + padding: 0.07*100rpx 0.33*100rpx; + border-radius: 0.06*100rpx; + margin: 0.14*100rpx 0 0 0.14*100rpx; +} + +.product-window .productWinList .item .listn .itemn.on { + color: #fff; + background-color: #eb3729; + border-color: #eb3729; +} + +.product-window .cart { + margin-top: 0.36*100rpx; + padding: 0 0.3*100rpx; +} + +.product-window .cart .title { + font-size: 0.3*100rpx; + color: #999; +} + +.product-window .cart .carnum { + height: 0.54*100rpx; + margin-top: 0.24*100rpx; +} + +.product-window .cart .carnum .item { + border: 1px solid #a4a4a4; + width: 0.84*100rpx; + text-align: center; + height: 100%; + line-height: 0.54*100rpx; + color: #a4a4a4; + font-size: 0.45*100rpx; +} + +.product-window .cart .carnum .reduce { + border-right: 0; + border-radius: 0.06*100rpx 0 0 0.06*100rpx; + line-height: 0.48*100rpx; +} + +.product-window .cart .carnum .reduce.on { + border-color: #e3e3e3; + color: #dedede; +} + +.product-window .cart .carnum .plus { + border-left: 0; + border-radius: 0 0.06*100rpx 0.06*100rpx 0; + line-height: 0.46*100rpx; +} + +.product-window .cart .carnum .plus.on { + border-color: #e3e3e3; + color: #dedede; +} + +.product-window .cart .carnum .num { + color: #282828; + font-size: 0.28*100rpx; +} + +/*产品详情的分享红包*/ +.sharing-packets { + position: fixed; + left: 0.3*100rpx; + bottom: 1.5*100rpx; + z-index: 5; + transition: all 0.3s ease-in-out 0s; + opacity: 1; + transform: scale(1); +} + +.sharing-packets.on { + transform: scale(0); + opacity: 0; +} + +.sharing-packets .iconfont { + width: 0.44*100rpx; + height: 0.44*100rpx; + border-radius: 50%; + background-color: #999; + font-size: 0.2*100rpx; + color: #fff; + margin: 0 auto; + padding-left: 0.01*100rpx; +} + +.sharing-packets .line { + width: 0.02*100rpx; + height: 0.4*100rpx; + background-color: #999; + margin: 0 auto; +} + +.sharing-packets .sharing-con { + width: 1.87*100rpx; + height: 2.1*100rpx; + position: relative; +} + +.sharing-packets .sharing-con .image { + width: 100%; + height: 100%; +} + +.sharing-packets .sharing-con .text { + position: absolute; + top: 0.2*100rpx; + font-size: 0.2*100rpx; + width: 100%; + text-align: center; +} + +.sharing-packets .sharing-con .text .money { + font-size: 0.32*100rpx; + font-weight: bold; +} + +.sharing-packets .sharing-con .text .money .label { + font-size: 0.2*100rpx; +} + +.sharing-packets .sharing-con .text .tip { + font-size: 0.18*100rpx; + color: #999; +} + +.sharing-packets .sharing-con .text .shareBut { + font-size: 0.22*100rpx; + color: #fff; + margin-top: 0.27*100rpx; + height: 0.5*100rpx; + line-height: 0.5*100rpx; +} + +/*订单产品*/ +.orderGoods { + background-color: #fff; + margin-top: 0.12*100rpx; +} + +.orderGoods .total { + box-sizing: border-box; + + width: 100%; + height: 0.86*100rpx; + padding: 0 0.3*100rpx; + border-bottom: 0.01*100rpx solid #eee; + font-size: 0.3*100rpx; + color: #282828; + line-height: 0.86*100rpx; +} + +.goodWrapper .item { + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; + border-bottom: 0.02*100rpx solid #f0f0f0; + height: 1.8*100rpx; +} + +.goodWrapper .item .pictrue { + width: 1.3*100rpx; + height: 1.3*100rpx; +} + +.goodWrapper .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.goodWrapper .item .text { + width: 5.37*100rpx; + position: relative; +} + +.goodWrapper .item .text .name { + font-size: 0.28*100rpx; + color: #282828; + width: 4.53*100rpx; +} + +.goodWrapper .item .text .num { + font-size: 0.26*100rpx; + color: #868686; +} + +.goodWrapper .item .text .attr { + font-size: 0.2*100rpx; + color: #868686; + margin-top: 0.07*100rpx; +} + +.goodWrapper .item .text .money { + font-size: 0.26*100rpx; + margin-top: 0.17*100rpx; +} + +.goodWrapper .item .text .evaluate { + position: absolute; + width: 1.14*100rpx; + height: 0.46*100rpx; + border: 1px solid #e93323; + color: #e93323; + border-radius: 0.04*100rpx; + text-align: center; + line-height: 0.46*100rpx; + right: 0; + bottom: -.1*100rpx; +} + +.goodWrapper .item .text .evaluate.userEvaluated { + font-size: 0.26*100rpx; + color: #aaa; + background-color: #f7f7f7; + border-color: #f7f7f7; +} + +/*地址弹窗*/ +.address-window { + background-color: #fff; + position: fixed; + bottom: 0; + left: 0; + width: 100%; + z-index: 99; + transform: translate3d(0, 100%, 0); + transition: all .3s cubic-bezier(.25, .5, .5, .9); +} + +.address-window.on { + transform: translate3d(0, 0, 0); +} + +.address-window .title { + font-size: 0.32*100rpx; + font-weight: bold; + text-align: center; + height: 1.23*100rpx; + line-height: 1.23*100rpx; + position: relative; + color: #333; +} + +.address-window .title .iconfont { + position: absolute; + right: 0.3*100rpx; + color: #8a8a8a; + font-size: 0.35*100rpx; +} + +.address-window .list { + max-height: 6*100rpx; + overflow-y: auto; + overflow-x: hidden; +} + +.address-window .list .item { + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; + border-bottom: 1px solid #eee; + height: 1.29*100rpx; + font-size: 0.25*100rpx; + color: #333; +} + +.address-window .list .item .iconfont { + font-size: 0.37*100rpx; + color: #2c2c2c; +} + +.address-window .list .item .iconfont.icon-complete { + font-size: 0.3*100rpx; + color: #fff; +} + +.address-window .list .item .addressTxt { + width: 5.6*100rpx; +} + +.address-window .list .item .addressTxt .name { + font-size: 0.28*100rpx; + font-weight: bold; + color: #282828; + margin-bottom: 0.04*100rpx; +} + +.address-window .list .item .addressTxt .name .phone { + margin-left: 0.18*100rpx; +} + +.address-window .addressBnt { + font-size: 0.3*100rpx; + font-weight: bold; + color: #fff; + width: 6.9*100rpx; + height: 0.86*100rpx; + border-radius: 0.43*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0.85*100rpx auto; +} + +.address-window .pictrue { + width: 4.14*100rpx; + height: 3.36*100rpx; + margin: 0.8*100rpx auto; +} + +.address-window .pictrue .image { + width: 100%; + height: 100%; +} + +/*轮播图*/ +.swiper { + height: 2.82*100rpx; +} + +.swiper .slide-image { + width: 100%; + height: 100%; +} + +.swiper .swiper-pagination { + text-align: right; + padding-right: 0.4*100rpx; + bottom: 0.1*100rpx; + width: 100%; +} + +.swiper .swiper-pagination-bullet { + width: 0.12*100rpx; + height: 0.12*100rpx; + border: 0.02*100rpx solid #fff; + border-radius: 50%; + background-color: rgba(0, 0, 0, 0); + opacity: 1; +} + +.swiper .swiper-pagination-bullet~.swiper-pagination-bullet { + margin-left: 0.12*100rpx; +} + +.swiper .swiper-pagination-bullet-active { + border-color: #e93323; + background-color: #e93323; +} + +/**/ +.goodsStyle { + background-color: #fff; + padding: 0.22*100rpx 0.3*100rpx; +} + +.goodsStyle .pictrue { + width: 1.2*100rpx; + height: 1.2*100rpx; +} + +.goodsStyle .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.goodsStyle .text { + width: 5.45*100rpx; + font-size: 0.28*100rpx; + color: #999; +} + +.goodsStyle .text .name { + width: 3.6*100rpx; + color: #282828; +} + +.goodsStyle .text .money { + text-align: right; +} + +.goodsStyle .text .money .num { + margin-top: 0.07*100rpx; +} + +/*所有推广头部样式*/ +.promoterHeader { + width: 100%; + height: 2.2*100rpx; +} + +.promoterHeader .headerCon { + width: 100%; + height: 100%; + padding: 0 0.88*100rpx 0 0.55*100rpx; + font-size: 0.28*100rpx; + color: #fff; + background-image: url('https://h5.yixiang.co/static/images/transparent.png'); + background-repeat: no-repeat; + background-size: 100% 100%; +} + +.promoterHeader .headerCon .name { + margin-bottom: 0.02*100rpx; +} + +.promoterHeader .headerCon .num { + font-size: 0.5*100rpx; +} + +.promoterHeader .headerCon .iconfont { + font-size: 1.25*100rpx; +} + +/*首页优惠券弹窗*/ +.coupon-window { + background-image: url('http://admin-api.xdd618.com/file/pic/20210203151924111404.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.3*100rpx; + height: 6.49*100rpx; + position: fixed; + top: 20%; + z-index: 99; + left: 50%; + margin-left: -3.05*100rpx; + transform: translate3d(0, -200%, 0); + transition: all .3s cubic-bezier(.25, .5, .5, .9); +} + +.coupon-window.on { + transform: translate3d(0, 0, 0); +} + +.coupon-window .couponWinList { + width: 4.8*100rpx; + margin: 1.57*100rpx 0 0 0.6*100rpx; + height: 4.15*100rpx; + overflow: auto; +} + +.coupon-window .couponWinList .item { + width: 100%; + height: 1.2*100rpx; + background-color: #fff; + position: relative; + margin-bottom: 0.17*100rpx; +} + +.coupon-window .couponWinList .item::after { + content: ''; + position: absolute; + width: 0.18*100rpx; + height: 0.18*100rpx; + border-radius: 50%; + background-color: #eb3729; + left: 25.5%; + bottom: 0; + margin-bottom: -0.09*100rpx; +} + +.coupon-window .couponWinList .item::before { + content: ''; + position: absolute; + width: 0.18*100rpx; + height: 0.18*100rpx; + border-radius: 50%; + background-color: #eb3729; + left: 25.5%; + top: 0; + margin-top: -0.09*100rpx; +} + +.coupon-window .couponWinList .item .money { + width: 1.3*100rpx; + border-right: 1px dashed #ddd; + height: 100%; + text-align: center; + line-height: 1.2*100rpx; + font-size: 0.26*100rpx; + font-weight: bold; +} + +.coupon-window .couponWinList .item .money .num { + font-size: 0.4*100rpx; +} + +.coupon-window .couponWinList .item .text { + width: 3.49*100rpx; + font-size: 0.22*100rpx; + color: #999; + padding: 0 0.29*100rpx; +} + +.coupon-window .couponWinList .item .text .name { + font-size: 0.26*100rpx; + color: #282828; + font-weight: bold; + margin-bottom: 0.09*100rpx; +} + +.coupon-window .lid { + background-image: url('https://h5.yixiang.co/static/images/coupon-window2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.73*100rpx; + height: 2.24*100rpx; + position: fixed; + left: 50%; + top: 20%; + margin: 4.24*100rpx 0 0 -2.96*100rpx; +} + +.coupon-window .lid .bnt { + font-size: 0.29*100rpx; + width: 4.4*100rpx; + height: 0.8*100rpx; + border-radius: 0.4*100rpx; + background-color: #f9f1d3; + text-align: center; + line-height: 0.8*100rpx; + font-weight: bold; + margin: 0.98*100rpx auto 0 auto; +} + +.coupon-window .lid .iconfont { + color: #fff; + font-size: 0.6*100rpx; + text-align: center; + margin-top: 0.87*100rpx; +} + +/*首页*/ +.index .header { + // height: 0.98*100rpx; + // width: 100%; + padding: 0 30rpx; + height: 364rpx; + box-sizing: border-box; + background-color: #FE5560; + position: relative; + // background-image: url('~@/static/images/paper-cuts-img.png'); + // background-position: center; + // background-repeat: no-repeat; + +} + +.index .header .logo { + width: 1.27*100rpx; + height: 0.45*100rpx; + margin-right: 0.25*100rpx; +} + +.index .header .logo image { + width: 100%; + height: 100%; + display: block; +} + +.index .header .search { + // width: 100%; + flex: 1; + box-sizing: border-box; + height: 0.64*100rpx; + background-color: rgba(255,255,255,0.2); + // border-radius: 0.5*100rpx; + padding: 0 0.28*100rpx; + font-size: 0.28*100rpx; + color: #fff; + + border:1px solid rgba(255,255,255,1); + border-radius:10*2rpx; +} + +.index .header .qr { + width: 0.34*150rpx; + height: 0.34*150rpx; + font-size: 0.34*100rpx; + margin-left: 0.16*100rpx; + margin-right: 0.16*100rpx; +} + +.index .header .qr image { + width: 0.34*150rpx; + height: 0.34*150rpx; +} + + +.index .header .search .iconfont { + font-size: 0.34*100rpx; + margin-right: 0.16*100rpx; +} + +.index .banner { + height: 3.75*100rpx; + +} + +.index .banner swiper { + height: 3.75*100rpx; + +} + +.index .banner image { + width: 100%; + height: 3.75*100rpx; + +} + +.index .banner .swiper-pagination { + bottom: 0.07*100rpx; +} + +.index .banner .swiper-pagination-bullet { + width: 0.2*100rpx; + height: 0.04*100rpx; + border-radius: 0.03*100rpx; + background-color: #fff; + opacity: 0.6; +} + +.index .banner .swiper-pagination-bullet-active { + opacity: 1; +} + +.index .nav { + padding-top: 0.26*100rpx; +} + +.index .nav .item { + width: 25%; + text-align: center; + font-size: 0.26*100rpx; + margin-bottom: 0.35*100rpx; +} + +.index .nav .item .pictrue { + width: 0.9*100rpx; + height: 0.9*100rpx; + margin: 0 auto 0.15*100rpx auto; +} + +.index .nav .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.index .news { + height: 0.8*100rpx; + border-top: 1px solid #f4f4f4; + padding: 0 0.3*100rpx; + margin: 30rpx; + box-shadow: 0 0.1*100rpx 0.3*100rpx #f5f5f5; + -moz-box-shadow: 0 0.1*100rpx 0.3*100rpx #f5f5f5; + -o-box-shadow: 0 0.1*100rpx 0.3*100rpx #f5f5f5; + background:rgba(255,86,74,0.1); + border-radius:0px 20*2rpx 20*2rpx 20*2rpx; +} + +.index .news .pictrue { + width: 1.24*100rpx; + height: 0.28*100rpx; + border-right: 1px solid #ddd; + padding-right: 0.23*100rpx; + box-sizing: content-box; + -moz-box-sizing: content-box; +} + +.index .news .pictrue image { + width: 100%; + height: 100%; + display: block; +} + +.index .news .new-banner { + // width: 5.23*100rpx; + flex: 1; + overflow: hidden; + height: 0.8*100rpx; +} + +.index .news .new-banner .swiper-wrapper { + height: 0.8*100rpx; + width: 100%; +} + +.index .news .new-banner .swiper-slide { + height: 0.8*100rpx; + width: 100%; +} + +.index .news .new-banner .swiper-slide .swiper-item { + height: 0.8*100rpx; + width: 100%; +} + +.index .news .new-banner .text { + width: 4.8*100rpx; + height: 0.8*100rpx; +} + +.index .news .new-banner .text .label { + font-size: 0.2*100rpx; + color: #eb3729; + width: 0.68*100rpx; + height: 0.34*100rpx; + border-radius: 0.2*100rpx; + text-align: center; + line-height: 0.34*100rpx; + border: 0.02*100rpx solid #eb3729; +} + +.index .news .new-banner .text .newsTitle { + // width: 3.97*100rpx; + font-size: 0.28*100rpx; + color: #FF2E66; +} + +.index .news .new-banner .iconfont { + font-size: 0.28*100rpx; + color: #888; +} + +.index .specialArea { + padding: 0.3*100rpx; +} + +.index .specialArea .assemble { + width: 2.6*100rpx; + height: 2.6*100rpx; + position: relative; +} + +.index .specialArea .assemble image { + width: 100%; + height: 100%; + border-radius: 0.05*100rpx; +} + +.index .specialArea .assemble .text { + position: absolute; + top: 0.37*100rpx; + left: 0.22*100rpx; +} + +.index .specialArea .name { + font-size: 0.3*100rpx; + color: #fff; +} + +.index .specialArea .infor { + font-size: 0.22*100rpx; + color: rgba(255, 255, 255, 0.8); + margin-top: 0.05*100rpx; +} + +.index .specialArea .list { + height: 2.6*100rpx; + width: 4.16*100rpx; +} + +.index .specialArea .item { + width: 100%; + height: 1.24*100rpx; + position: relative; +} + +.index .specialArea .item image { + width: 100%; + height: 100%; +} + +.index .specialArea .item .text { + position: absolute; + top: 0.23*100rpx; + left: 0.28*100rpx; +} + +.index .wrapper .title { + border-top: 1px solid #eee; + padding-top: 0.34*100rpx; + margin: 0 0.3*100rpx; + + &.no-border { + border: 0; + } +} + +.index .wrapper.hot+.wrapper { + border-top: 0; +} + +.index .wrapper .goodList { + margin-bottom: 0.34*100rpx; +} + +.index .wrapper .title .text { + font-size: 0.24*100rpx; + color: #999; + width: 5.3*100rpx; + text-align: left; +} + +.index .wrapper .title .text .name { + color: #282828; + font-size: 0.3*100rpx; + font-weight: bold; + margin-bottom: 0.05*100rpx; + position: relative; +} + +.index .wrapper .title .text .name .new { + position: absolute; + top: 0.02*100rpx; + left: 1.3*100rpx; + font-size: 0.16*100rpx; + font-weight: bold; +} + +.index .wrapper .title .more { + font-size: 0.26*100rpx; + color: #333; +} + +.index .wrapper .title .more .iconfont { + margin-left: 0.02*100rpx; + font-size: 0.26*100rpx; +} + +.index .wrapper .scroll-product { + white-space: nowrap; + margin-top: 0.38*100rpx; + padding: 0 0.3*100rpx 0.37*100rpx 0.3*100rpx; + overflow: hidden; +} + +.index .wrapper .scroll-product .swiper-slide { + width: 1.8*100rpx; + display: inline-block; + margin-right: 0.19*100rpx; + border-bottom: 0.04*100rpx solid #47b479; + box-shadow: 0 0.15*100rpx 0.15*100rpx -0.1*100rpx #eee; + -moz-box-shadow: 0 0.15*100rpx 0.15*100rpx -0.1*100rpx #eee; + -o-box-shadow: 0 0.15*100rpx 0.15*100rpx -0.1*100rpx #eee; +} + +.index .wrapper .scroll-product .swiper-slide:nth-of-type(3n) { + border-bottom: 0.04*100rpx solid #ff6960; +} + +.index .wrapper .scroll-product .swiper-slide:nth-of-type(3n-1) { + border-bottom: 0.04*100rpx solid #579afe; +} + +.index .wrapper .scroll-product .swiper-slide:nth-last-child(1) { + margin-right: 0; +} + +.index .wrapper .scroll-product .swiper-slide .img-box { + width: 100%; + height: 1.8*100rpx; +} + +.index .wrapper .scroll-product .swiper-slide .img-box image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx 0.06*100rpx 0 0; +} + +.index .wrapper .scroll-product .swiper-slide .pro-info { + font-size: 0.24*100rpx; + color: #282828; + text-align: center; + height: 0.6*100rpx; + line-height: 0.6*100rpx; + border: 1px solid #f5f5f5; + border-bottom: 0; + border-top: 0; + padding: 0 0.1*100rpx; +} + +.index .wrapper .boutique { + width: 6.9*100rpx; + height: 2.9*100rpx; + margin: 0.28*100rpx auto 0 auto; +} + +.index .wrapper .boutique { + width: 6.9*100rpx; + height: 2.9*100rpx; + margin: 0.28*100rpx auto 0 auto; +} + +.index .wrapper .boutique image { + width: 100%; + height: 2.6*100rpx; +} + +.index .wrapper .boutique .swiper-pagination { + bottom: -0.08*100rpx; + width: 100%; +} + +.index .wrapper .boutique .swiper-pagination-bullet { + width: 0.07*100rpx; + height: 0.07*100rpx; + border-radius: 50%; + background-color: #fc4141; + opacity: 0.3; +} + +.index .wrapper .boutique .swiper-pagination-bullet~.swiper-pagination-bullet { + margin-left: 0.1*100rpx; +} + +.index .wrapper .boutique .swiper-pagination-bullet-active { + width: 0.2*100rpx; + height: 0.07*100rpx; + border-radius: 0.035*100rpx; + opacity: 1 +} + +.index .hotList .hot-bg { + width: 100%; + height: 2.15*100rpx; + background-image: url('https://h5.yixiang.co/static/images/index-bg.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + padding: 0 0.3*100rpx; + font-size: 0.24*100rpx; + color: #fff; + margin-top: 0.15*100rpx; +} + +.index .hotList .hot-bg .title { + height: 0.87*100rpx; +} + +.index .hotList .hot-bg .title .text { + width: 5.75*100rpx; +} + +.index .hotList .hot-bg .title .text .label { + font-size: 0.3*100rpx; + font-weight: bold; + margin-right: 0.2*100rpx; +} + +.index .hotList .hot-bg .title .more { + font-size: 0.26*100rpx; + color: #fff; +} + +.index .hotList .hot-bg .title .more .iconfont { + font-size: 0.25*100rpx; + vertical-align: 0.02*100rpx; + margin-left: 0.1*100rpx; +} + +.index .hotList .list { + width: 6.9*100rpx; + height: 3.3*100rpx; + border-radius: 0.2*100rpx; + background-color: #fff; + margin: -1.28*100rpx auto 0 auto; + padding: 0 0.22*100rpx; + box-shadow: 0 0 0.2*100rpx -0.1*100rpx #aaa; + -moz-box-shadow: 0 0 0.2*100rpx -0.1*100rpx #aaa; + -o-box-shadow: 0 0 0.2*100rpx -0.1*100rpx #aaa; +} + +.index .hotList .list .item { + width: 2*100rpx; + text-align: left; +} + +.index .hotList .list .item~.item { + margin-left: 0.23*100rpx; +} + +.index .hotList .list .item .pictrue { + width: 100%; + height: 2*100rpx; + position: relative; +} + +.index .hotList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1*100rpx; +} + +.index .hotList .list .item .pictrue .numPic { + width: 0.5*100rpx; + height: 0.5*100rpx; + border-radius: 50%; + position: absolute; + top: 0.07*100rpx; + left: 0.07*100rpx; +} + +.index .hotList .list .item .name { + font-size: 0.26*100rpx; + color: #282828; + margin-top: 0.12*100rpx; +} + +.index .hotList .list .item .money { + font-size: 0.2*100rpx; + font-weight: bold; + margin-top: 0.02*100rpx; +} + +.index .hotList .list .item .money .num { + font-size: 0.28*100rpx; +} + +.index .adver { + width: 100%; + height: 1.8*100rpx; + margin-top: 0.37*100rpx; +} + +.index .adver image { + width: 100%; + height: 100%; + display: block; +} + +.index .hot { + position: relative; + background: none; +} + +.index .hot .title { + position: relative; + z-index: 9; +} + +.index .hot .title .text .name { + color: #fff; +} + +.index .hot .title .more { + color: #fff; +} + +.index .hot .title .more .iconfont { + color: #fff; +} + +.index .hot .bg { + width: 100%; + position: absolute; + left: 0; + top: 0; + right: 0; +} + +.index .wrapper.hot .newProducts .newProductsItem { + border: 0; +} + +.index .wrapper.hot .newProducts { + white-space: nowrap; + padding: 0 0.3*100rpx; + margin: 0.35*100rpx; + overflow: hidden; + background-color: #fff; + padding: .3*100rpx; + z-index: 99; + position: relative; + margin-bottom: 0; + border-radius: .2*100rpx; + box-shadow: 0 0 .2*100rpx -.1*100rpx #aaa; +} + +.index .wrapper .newProducts { + white-space: nowrap; + padding: 0 0.3*100rpx; + margin: 0.35*100rpx 0 0.42*100rpx 0; + overflow: hidden; +} + +.index .wrapper .newProducts .swiper-wrapper { + height: 350rpx; +} + +.index .wrapper .newProducts {} + +.index .wrapper.hot .newProducts .newProductsItem { + width: 2.4*100rpx; + min-width: 2.4*100rpx; + margin-right: 0.2*100rpx; + flex: 0 2.4*100rpx; +} + +.index .wrapper .newProducts .newProductsScroll { + display: flex; + flex-direction: row; +} + +.index .wrapper.hot .newProducts .newProductsItem image { + width: 2.4*100rpx; + height: 2.4*100rpx; +} + +.index .wrapper .newProducts .newProductsItem { + border: 1rpx solid #eee; + width: 2.4*100rpx; + min-width: 2.4*100rpx; + border-radius: 0.12*100rpx; + overflow: hidden; + margin-right: .2*100rpx; + flex: 0 2.4*100rpx; +} + +.index .wrapper .newProducts:nth-last-child(1) {} + +.index .wrapper .newProducts .img-box { + width: 100%; + height: 2.4*100rpx; +} + +.index .wrapper.hot .newProducts .img-box { + width: 2.4*100rpx; +} + +.index .wrapper .newProducts .img-box image { + width: 100%; + height: 100%; + border-radius: 0.12*100rpx 0.12*100rpx 0 0; +} + +.index .wrapper.hot .newProducts .img-box image { + border-radius: 0.12*100rpx; +} + +.index .wrapper .newProducts .pro-info { + font-size: 0.28*100rpx; + color: #333; + text-align: center; + padding: 0.15*100rpx 0.1*100rpx 0 0.1*100rpx; +} + +.index .wrapper .newProducts .money { + padding: 0 0.1*100rpx 0.18*100rpx 0.1*100rpx; + text-align: center; + font-size: 0.26*100rpx; + font-weight: bold; +} + +.index .wrapper.hot .newProducts .pro-info { + text-align: left; +} + +.index .wrapper.hot .newProducts .money { + text-align: left; +} + +/*商品列表*/ +.productList .search { + width: 100%; + height: 0.86*100rpx; + padding-left: 0.23*100rpx; + padding-right: 0.23*100rpx; + position: fixed; + left: 0; + top: 0; + z-index: 5; + box-sizing: border-box; +} + +.productList .search .input { + flex: 1; + height: 0.6*100rpx; + background-color: #fff; + border-radius: 0.5*100rpx; + padding: 0 0.2*100rpx; + margin-right: 0.23*100rpx; +} + +.productList .search .input input { + width: 5.48*100rpx; + height: 100%; + font-size: 0.26*100rpx; +} + +.productList .search .input input::placeholder { + color: #999; +} + +.productList .search .input .iconfont { + font-size: 0.35*100rpx; + color: #555; +} + +.productList .search .icon-pailie, +.productList .search .icon-tupianpailie { + margin: 0 auto; + color: #fff; + width: 0.4*100rpx; + font-size: 0.4*100rpx; + height: 0.86*100rpx; + line-height: 0.86*100rpx; +} + +.productList .nav { + height: 0.86*100rpx; + color: #454545; + position: fixed; + left: 0; + width: 100%; + font-size: 0.28*100rpx; + background-color: #fff; + top: 0.86*100rpx; + z-index: 5; +} + +.productList .nav .item { + width: 25%; + text-align: center; +} + +.productList .nav .item.font-color { + font-weight: bold; +} + +.productList .nav .item image { + width: 0.15*100rpx; + height: 0.19*100rpx; + margin-left: 0.1*100rpx; +} + +.productList .list { + padding: 0 0.2*100rpx; + margin-top: 1.72*100rpx; +} + +.productList .list.on { + background-color: #fff; + border-top: 1px solid #f6f6f6; +} + +.productList .list .item { + width: 3.45*100rpx; + margin-top: 0.2*100rpx; + background-color: #fff; + border-radius: 0.1*100rpx; +} + +.productList .list .item.on { + width: 100%; + display: flex; + border-bottom: 1px solid #f6f6f6; + padding: 0.3*100rpx 0; + margin: 0; +} + +.productList .list .item .pictrue { + width: 100%; + height: 3.45*100rpx; +} + +.productList .list .item .pictrue.on { + width: 1.8*100rpx; + height: 1.8*100rpx; +} + +.productList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1*100rpx 0.1*100rpx 0 0; +} + +.productList .list .item .pictrue img.on { + border-radius: 0.06*100rpx; +} + +.productList .list .item .text { + padding: 0.2*100rpx 0.17*100rpx 0.26*100rpx 0.17*100rpx; + font-size: 0.3*100rpx; + color: #222; + text-align: left; +} + +.productList .list .item .text.on { + width: 5.08*100rpx; + padding: 0 0 0 0.22*100rpx; +} + +.productList .list .item .text .money { + font-size: 0.26*100rpx; + font-weight: bold; + margin-top: 0.08*100rpx; +} + +.productList .list .item .text .money.on { + margin-top: 0.4*100rpx; +} + +.productList .list .item .text .money .num { + font-size: 0.34*100rpx; +} + +.productList .list .item .text .vip { + font-size: 0.22*100rpx; + color: #aaa; + margin-top: 0.07*100rpx; +} + +.productList .list .item .text .vip.on { + margin-top: 0.11*100rpx; +} + +.productList .list .item .text .vip .vip-money { + font-size: 0.24*100rpx; + color: #282828; + font-weight: bold; + text-decoration: line-through; +} + +.productList .list .item .text .vip .vip-money image { + width: 0.46*100rpx; + height: 0.21*100rpx; + margin-left: 0.04*100rpx; +} + +/*购物车*/ +.shoppingCart .labelNav { + box-sizing: border-box; + height: 0.76*100rpx; + padding: 0 0.3*100rpx; + font-size: 0.22*100rpx; + color: #8c8c8c; + position: fixed; + left: 0; + width: 100%; + background-color: #f5f5f5; + z-index: 5; + top: 0; +} + +.shoppingCart .labelNav .item .iconfont { + font-size: 0.25*100rpx; + margin-right: 0.1*100rpx; +} + +.shoppingCart .nav { + box-sizing: border-box; + width: 100%; + height: 0.8*100rpx; + background-color: #fff; + padding: 0 0.3*100rpx; + font-size: 0.28*100rpx; + color: #282828; + position: fixed; + left: 0; + z-index: 5; + //top: 0.88*100rpx; + // top: 1.28*100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.shoppingCart .nav .administrate { + font-size: 0.26*100rpx; + color: #282828; + width: 1.1*100rpx; + height: 0.46*100rpx; + // border-radius: 0.06*100rpx; + // border: 1px solid #868686; +} + +.shoppingCart .noCart { + //margin-top: 1.71*100rpx; + margin-top: 0.88*100rpx; + background-color: #fff; + padding: 0.78*100rpx 0 0.56*100rpx 0; +} + +.shoppingCart .noCart .pictrue { + width: 4.14*100rpx; + height: 3.36*100rpx; + margin: 0 auto; +} + +.shoppingCart .noCart .pictrue image { + width: 100%; + height: 100%; +} + +.shoppingCart .list { + // margin-top: 1.71*100rpx; + //padding-top: 0.8*100rpx; +} + +.shoppingCart .list .item { + padding: 0.25*100rpx 0.3*100rpx; + background-color: #fff; + margin-bottom: 0.15*100rpx; +} + +.shoppingCart .list .item .picTxt { + width: 6.27*100rpx; + position: relative; +} + +.shoppingCart .list .item .picTxt .pictrue { + width: 1.6*100rpx; + height: 1.6*100rpx; +} + +.shoppingCart .list .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.shoppingCart .list .item .picTxt .text { + width: 4.44*100rpx; + font-size: 0.28*100rpx; + color: #282828; + text-align: left; +} + +.shoppingCart .list .item .picTxt .text .infor { + font-size: 0.24*100rpx; + color: #868686; + margin-top: 0.16*100rpx; +} + +.shoppingCart .list .item .picTxt .text .money { + font-size: 0.32*100rpx; + color: #282828; + margin-top: 0.26*100rpx; +} + +.shoppingCart .list .item .picTxt .carnum { + height: 0.44*100rpx; + position: absolute; + bottom: 0.05*100rpx; + right: 0; +} + +.shoppingCart .list .item .picTxt .carnum view { + // border: 1px solid #a4a4a4; + width: 0.66*100rpx; + text-align: center; + height: 100%; + line-height: 0.44*100rpx; + font-size: 0.28*100rpx; + color: #a4a4a4; +} + +.shoppingCart .list .item .picTxt .carnum .reduce { + border-right: 0; + border-radius: 0.03*100rpx 0 0 0.03*100rpx; + line-height: 0.39*100rpx; +} + +.shoppingCart .list .item .picTxt .carnum .reduce.on { + border-color: #e3e3e3; + color: #dedede; +} + +.shoppingCart .list .item .picTxt .carnum .plus { + border-left: 0; + border-radius: 0 0.03*100rpx 0.03*100rpx 0; + line-height: 0.38*100rpx; +} + +.shoppingCart .list .item .picTxt .carnum .num { + color: #282828; +} + +.shoppingCart .invalidGoods { + background-color: #fff; +} + +.shoppingCart .invalidGoods .goodsNav { + box-sizing: border-box; + width: 100%; + height: 0.66*100rpx; + padding: 0 0.3*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.shoppingCart .invalidGoods .goodsNav .iconfont { + color: #424242; + font-size: 0.28*100rpx; + margin-right: 0.17*100rpx; +} + +.shoppingCart .invalidGoods .goodsNav .del { + font-size: 0.26*100rpx; + color: #999; +} + +.shoppingCart .invalidGoods .goodsNav .del .icon-shanchu1 { + color: #999; + font-size: 0.33*100rpx; + vertical-align: -0.02*100rpx; + margin-right: 0.08*100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item { + padding: 0.2*100rpx 0.3*100rpx; + border-top: 1px solid #f5f5f5; +} + +.shoppingCart .invalidGoods .goodsList .item .invalid { + font-size: 0.22*100rpx; + color: #fff; + width: 0.7*100rpx; + height: 0.36*100rpx; + background-color: #aaa; + border-radius: 0.03*100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .pictrue { + width: 1.4*100rpx; + height: 1.4*100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .text { + width: 4.33*100rpx; + font-size: 0.28*100rpx; + color: #999; + height: 1.4*100rpx; + text-align: left; +} + +.shoppingCart .invalidGoods .goodsList .item .text .infor { + font-size: 0.24*100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .text .end { + font-size: 0.26*100rpx; + color: #bbb; +} + +.shoppingCart .footer { + box-sizing: border-box; + width: 100%; + height: 1.26*100rpx; + // background-color: #fafafa; + position: fixed; + bottom: 0; + /* #ifdef H5 */ + bottom: var(--window-bottom); + /* #endif */ + + +} + +.shoppingCart .footer-content{ + padding: 0 0.3*100rpx; + margin-left: 0.3*100rpx; + margin-right: 0.3*100rpx; + height: 0.96*100rpx; + box-sizing: border-box; + + background:linear-gradient(139deg,rgba(255,149,141,1) 0%,rgba(255,92,138,1) 100%); + border-radius:0.48*100rpx; + +} + +.shoppingCart .iphonex-footer { + bottom: 168rpx; + +} + +.shoppingCart .footer .checkAll { + font-size: 0.28*100rpx; + color: #fff; + margin-left: 0.1*100rpx; +} + +.shoppingCart .footer .money { + font-size: 0.3*100rpx; +} + +.shoppingCart .footer .placeOrder { + color: #fff; + font-size: 0.3*100rpx; + // width: 2.26*100rpx; + // height: 0.7*100rpx; + // border-radius: 0.5*100rpx; + // text-align: center; + // line-height: 0.7*100rpx; + // margin-left: 0.22*100rpx; +} + +.shoppingCart .footer .button .bnt { + font-size: 0.28*100rpx; + color: #fff; + // border-radius: 0.5*100rpx; + // border: 1px solid #999; + // width: 1.6*100rpx; + // height: 0.6*100rpx; + // line-height: 0.6*100rpx; + text-align: center; +} + +.shoppingCart .footer .button .bnt~.bnt { + margin-left: 0.17*100rpx; +} + +/*个人中心*/ +.user .header { + padding: 0 0.3*100rpx; + // height: 1.9*100rpx; + position: relative; +} + +// .user .header:after { +// position: absolute; +// left: 0; +// right: 0; +// bottom: -0.98*100rpx; +// z-index: -1; +// content: ''; +// height: 1*100rpx; +// width: 100%; +// border-radius: 0 0 50% 50%; +// background-color: #eb3729; +// } + +.user .header .picTxt .pictrue { + width: 1.2*100rpx; + height: 1.2*100rpx; +} + +.user .header .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03*100rpx solid #f5f5f5; +} + +.user .header .picTxt .text { + width: 4.34*100rpx; + color: rgba(255, 255, 255, 1); + margin-left: 0.35*100rpx; + text-align: left; +} + +.user .header .picTxt .text .name { + font-size: 0.32*100rpx; + max-width: 2.6*100rpx; + width: unset; +} + +.user .header .picTxt .text .member { + padding: 0 0.1*100rpx; + height: 0.36*100rpx; + background-color: rgba(0, 0, 0, 0.2); + font-size: 0.2*100rpx; + border-radius: 0.3*100rpx; + margin-left: 0.17*100rpx; +} + +.user .header .picTxt .text .member image { + width: 0.28*100rpx; + height: 0.28*100rpx; + font-size: 0.2*100rpx; + margin-right: 0.08*100rpx; +} + +.user .header .picTxt .text .id { + color: rgba(255, 255, 255, 0.6); + font-size: 0.26*100rpx; + margin-top: 0.15*100rpx; +} + +.user .header .picTxt .text .id .iconfont { + font-size: 0.3*100rpx; + margin-left: 0.12*100rpx; +} + +.user .header .icon-shezhi { + font-size: 0.36*100rpx; + color: #fff; + margin-top: -0.52*100rpx; +} + +.user .wrapper { + padding: 0 0.2*100rpx; +} + +.user .wrapper .nav { + background-color: #fff; + border-radius: 0.06*100rpx; + height: 1.4*100rpx; +} + +.user .wrapper .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.26*100rpx; + color: #aaa; + position: relative; + +} + +.user .wrapper .nav .item text { + display: block; + +} + +.user .wrapper .nav .item~.item:after { + position: absolute; + content: ''; + left: 0; + width: 1px; + height: 0.7*100rpx; + background-color: #eee; + top: 50%; + margin-top: -0.35*100rpx; +} + +.user .wrapper .nav .item .num { + margin-top: 0.1*100rpx; + font-size: 0.36*100rpx; + color: #282828; +} + +.user .wrapper .myOrder { + background-color: #fff; + border-radius: 0.1*100rpx; + margin-top: 0.15*100rpx; +} + +.user .wrapper .myOrder .title, +.user .wrapper .myService .title { + height: 0.88*100rpx; + padding: 0 0.3*100rpx; + border-bottom: 1px dashed #eee; + font-size: 0.3*100rpx; + color: #282828; +} + +.user .wrapper .myOrder .title .allOrder { + font-size: 0.26*100rpx; + color: #666; +} + +.user .wrapper .myOrder .title .allOrder .iconfont { + font-size: 0.25*100rpx; + margin-left: 0.07*100rpx; +} + +.user .wrapper .myOrder .orderState { + height: 1.6*100rpx; +} + +.user .wrapper .myOrder .orderState .item { + font-size: 0.26*100rpx; + color: #454545; + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; +} + +.user .wrapper .myOrder .orderState .item .pictrue { + width: 0.49*100rpx; + height: 0.42*100rpx; + margin: 0 auto 0.18*100rpx auto; +} + +.user .wrapper .myOrder .orderState .item .pictrue image { + width: 100%; + height: 100%; +} + +.user .wrapper .myService { + background-color: #fff; + margin-top: 0.15*100rpx; + border-radius: 0.1*100rpx; +} + +.user .wrapper .myService .serviceList { + padding: 0.08*100rpx 0 0.27*100rpx 0; +} + +.user .wrapper .myService .serviceList .item { + width: 100%; + text-align: left; + font-size: 0.26*100rpx; + color: #333; + display: flex; + align-items: center; + padding: 0.2*100rpx 0.3*100rpx; + position: relative; + + .iconfont { + font-size: .26*100rpx; + color: #666; + } + + &::after { + content: ""; + display: block; + position: absolute; + left: 0.3*100rpx; + right: 0; + bottom: 0; + border-bottom: 1rpx solid #f5f5f5; + z-index: 999; + height: 1rpx; + + } +} + +.user .wrapper .myService .serviceList .item .pictrue { + width: 0.52*100rpx; + height: 0.52*100rpx; + margin-right: 0.16*100rpx; +} + +.user .wrapper .myService .serviceList .item .cell { + flex: 1 +} + +.user .wrapper .myService .serviceList .item .pictrue image { + width: 100%; + height: 100%; +} + +.user .support { + width: 2.19*100rpx; + height: 0.74*100rpx; + margin: 0.54*100rpx auto; + display: block; +} + +/*所有产品的详情公用部分*/ +.product-con .wrapper { + background-color: #fff; +} + +//.product-con .wrapper .share { +// margin: 0 0.3*100rpx; +// padding-top: 0.25*100rpx; +//} + +.product-con .wrapper .share .money { + font-size: 0.28*100rpx; + font-weight: bold; +} + +//.product-con .wrapper .share .money .num { +// font-size: 0.48*100rpx; +//} + +.product-con .wrapper .share .money .vip-money { + color: #282828; + margin-left: 0.13*100rpx; +} + +.product-con .wrapper .share .money .image { + width: 0.46*100rpx; + height: 0.21*100rpx; + margin-left: 0.07*100rpx; +} + +.product-con .wrapper .share .money .vip-money { + color: #282828; + margin-left: 0.13*100rpx; +} + +.product-con .wrapper .share .iconfont { + color: #515151; + font-size: 0.4*100rpx; + margin-bottom: 0.1*100rpx; +} + +//.product-con .wrapper .introduce { +// font-size: 0.32*100rpx; +// font-weight: bold; +// margin: 0.1*100rpx 0.3*100rpx 0 0.3*100rpx; +//} + +.product-con .wrapper .label { + margin: 0.22*100rpx 0.3*100rpx 0 0.3*100rpx; + font-size: 0.24*100rpx; + color: #82848f; + padding-bottom: 0.25*100rpx; +} + +.product-con .wrapper .coupon { + padding: 0 0.3*100rpx; + border-top: 1px solid #f5f5f5; + height: 0.8*100rpx; + font-size: 0.26*100rpx; + color: #82848f; +} + +.product-con .wrapper .coupon .hide { + width: 5.4*100rpx; + height: 0.8*100rpx; + line-height: 0.8*100rpx; +} + +.product-con .wrapper .coupon .activity { + height: 0.4*100rpx; + padding: 0 0.2*100rpx; + border: 1px solid #f2857b; + color: #e93323; + font-size: 0.24*100rpx; + line-height: 0.4*100rpx; + position: relative; + margin: 0.19*100rpx 0 0.19*100rpx 0.15*100rpx; +} + +.product-con .wrapper .coupon .activity:before { + content: ' '; + position: absolute; + width: 0.07*100rpx; + height: 0.1*100rpx; + border-radius: 0 0.07*100rpx 0.07*100rpx 0; + border: 1px solid #f2857b; + background-color: #fff; + bottom: 50%; + left: -0.02*100rpx; + margin-bottom: -0.07*100rpx; + border-left-color: #fff; +} + +.product-con .wrapper .coupon .activity:after { + content: ' '; + position: absolute; + width: 0.07*100rpx; + height: 0.1*100rpx; + border-radius: 0.07*100rpx 0 0 0.07*100rpx; + border: 1px solid #f2857b; + background-color: #fff; + right: -0.02*100rpx; + bottom: 50%; + margin-bottom: -0.05*100rpx; + border-right-color: #fff; +} + +.product-con .wrapper .coupon .iconfont { + color: #7a7a7a; + font-size: 0.28*100rpx; +} + +.product-con .attribute { + background-color: #fff; + padding: 0 0.3*100rpx; + font-size: 0.26*100rpx; + color: #82848f; + margin-top: 0.2*100rpx; + height: 0.8*100rpx; +} + +.product-con .attribute .atterTxt { + font-size: 0.28*100rpx; + color: #282828; +} + +.product-con .attribute .iconfont { + font-size: 0.28*100rpx; + color: #7a7a7a; +} + +.product-con .userEvaluation { + margin-top: 0.2*100rpx; + background-color: #fff; +} + +.product-con .userEvaluation .title { + height: 0.86*100rpx; + border-bottom: 1px solid #eee; + font-size: 0.28*100rpx; + color: #282828; + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; +} + +.product-con .userEvaluation .title .praise { + font-size: 0.28*100rpx; + color: #808080; +} + +.product-con .userEvaluation .title .praise .iconfont { + color: #7a7a7a; + font-size: 0.28*100rpx; + vertical-align: 0.01*100rpx; + margin-left: 0.08*100rpx; +} + +.product-con .product-intro { + margin-top: 0.2*100rpx; +} + +.product-con .product-intro .title { + font-size: 0.3*100rpx; + color: #282828; + height: 0.86*100rpx; + width: 100%; + background-color: #fff; + text-align: center; + line-height: 0.86*100rpx; +} + +.product-con .product-intro .conter { + width: 100%; +} + +.product-con .product-intro .conter * { + width: 100% !important; + display: block !important; +} + +/*产品详情*/ +.product-con .footer { + box-sizing: border-box; + padding: 0 0.2*100rpx 0 0.3*100rpx; + position: fixed; + bottom: 0; + width: 100%; + height: 1*100rpx; + background-color: #fff; + z-index: 99; + border-top: 1px solid #f0f0f0; +} + +.product-con .footer .item { + font-size: 0.18*100rpx; + color: #666; + margin-top: 0.07*100rpx; +} + +.product-con .footer .item .iconfont { + text-align: center; + font-size: 0.4*100rpx; + height: 0.4*100rpx; + line-height: 0.4*100rpx; +} + +.product-con .footer .item .iconfont.icon-gouwuche1 { + position: relative; +} + +.product-con .footer .item .iconfont.icon-gouwuche1 .num { + color: #fff; + position: absolute; + font-size: 0.18*100rpx; + border-radius: 2*100rpx; + top: -0.1*100rpx; + right: 0; + height: 0.3*100rpx; + line-height: 0.3*100rpx; + padding: 0 0.08*100rpx; + min-width: 0.3*100rpx; +} + +.product-con .footer .bnt { + width: 4.44*100rpx; + height: 0.76*100rpx; + color: #fff; + font-size: 0.28*100rpx; +} + +.product-con .footer .bnt>view { + width: 2.22*100rpx; + text-align: center; + line-height: 0.76*100rpx; +} + +//.product-con .footer .bnt .joinCart { + // border-radius: 0.5*100rpx 0 0 0.5*100rpx; + // background-image: linear-gradient(to right, #fea10f 0%, #fea10f 100%); + // background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); +//} + +//.product-con .footer .bnt .buy { + // border-radius: 0 0.5*100rpx 0.5*100rpx 0; + // background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); + // background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); +//} + +/*订单提交*/ +.order-submission .line { + width: 100%; + height: 0.03*100rpx; +} + +.order-submission .line image { + width: 100%; + height: 100%; + display: block; +} + +.order-submission .address { + padding: 0.28*100rpx 0.3*100rpx; + background-color: #fff; +} + +.order-submission .address .addressCon { + width: 6.1*100rpx; + font-size: 0.26*100rpx; + color: #666; +} + +.order-submission .address .addressCon .name { + font-size: 0.3*100rpx; + color: #282828; + font-weight: bold; + margin-bottom: 0.1*100rpx; +} + +.order-submission .address .addressCon .name .phone { + margin-left: 0.5*100rpx; +} + +.order-submission .address .addressCon .default { + margin-right: 0.12*100rpx; +} + +.order-submission .address .addressCon .setaddress { + color: #333; + font-size: 0.28*100rpx; +} + +.order-submission .address .iconfont { + font-size: 0.35*100rpx; + color: #707070; +} + +.order-submission .wrapper { + background-color: #fff; + margin-top: 0.13*100rpx; +} + +.order-submission .wrapper .item { + padding: 0.27*100rpx 0.3*100rpx; + font-size: 0.3*100rpx; + color: #282828; + border-bottom: 1px solid #f0f0f0; +} + +.order-submission .wrapper .item .discount { + font-size: 0.3*100rpx; + color: #999; + width: 5*100rpx; + text-align: right; +} + +.order-submission .wrapper .item .discount .integral { + margin-right: 0.4*100rpx; +} + +.order-submission .wrapper .item .discount .checkbox-wrapper .icon { + right: 0; + left: unset; +} + +.order-submission .wrapper .item .discount .iconfont { + color: #515151; + font-size: 0.3*100rpx; + margin-left: 0.15*100rpx; +} + +.order-submission .wrapper .item .discount .num { + font-size: 0.32*100rpx; + margin-right: 0.2*100rpx; +} + +.order-submission .wrapper .item textarea { + box-sizing: border-box; + background-color: #f9f9f9; + width: 100%; + height: 1.4*100rpx; + border-radius: 0.03*100rpx; + margin-top: 0.3*100rpx; + padding: 0.25*100rpx 0.28*100rpx; +} + +.order-submission .wrapper .item textarea::placeholder { + color: #ccc; +} + +.order-submission .wrapper .item .list { + margin-top: 0.35*100rpx; +} + +.order-submission .wrapper .item .list .payItem { + border: 1px solid #eee; + border-radius: 0.06*100rpx; + height: 0.86*100rpx; + width: 100%; + margin-top: 0.2*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.order-submission .wrapper .item .list .payItem.on { + border-color: #fc5445; + color: #e93323; +} + +.order-submission .wrapper .item .list .payItem .name { + width: 50%; + text-align: center; + border-right: 1px solid #eee; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont { + width: 0.44*100rpx; + height: 0.44*100rpx; + border-radius: 50%; + text-align: center; + line-height: 0.44*100rpx; + background-color: #fe960f; + color: #fff; + font-size: 0.3*100rpx; + margin-right: 0.15*100rpx; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 { + background-color: #41b035; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont.icon-yinhangqia { + background-color: #eb3729; +} + +.order-submission .wrapper .item .list .payItem .tip { + width: 49%; + text-align: center; + font-size: 0.26*100rpx; + color: #aaa; +} + +.order-submission .moneyList { + margin-top: 0.12*100rpx; + background-color: #fff; + padding: 0.3*100rpx; +} + +.order-submission .moneyList .item { + font-size: 0.28*100rpx; + color: #282828; +} + +.order-submission .moneyList .item~.item { + margin-top: 0.2*100rpx; +} + +.order-submission .moneyList .item .money { + color: #868686; +} + +.order-submission .footer { + box-sizing: border-box; + width: 100%; + height: 1*100rpx; + background-color: #fff; + padding: 0 0.3*100rpx; + font-size: 0.28*100rpx; + color: #333; + position: fixed; + bottom: 0; + left: 0; +} + +.order-submission .footer .settlement { + font-size: 0.3*100rpx; + color: #fff; + width: 2.4*100rpx; + height: 0.7*100rpx; + background-color: #e93323; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.7*100rpx; +} + +/*地址管理*/ +.address-management .line { + width: 100%; + height: 0.03*100rpx; +} + +.address-management .line image { + width: 100%; + height: 100%; + display: block; +} + +.address-management .item { + background-color: #fff; + padding: 0 0.3*100rpx; + margin-bottom: 0.12*100rpx; +} + +.address-management .item .address { + padding: 0.3*100rpx 0; + border-bottom: 1px solid #eee; + font-size: 0.28*100rpx; + color: #282828; +} + +.address-management .item .address .consignee { + font-size: 0.28*100rpx; + font-weight: bold; + margin-bottom: 0.08*100rpx; +} + +.address-management .item .address .consignee .phone { + margin-left: 0.25*100rpx; +} + +.address-management .item .operation { + height: 0.83*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.address-management .item .operation .default { + margin-left: 0.1*100rpx; +} + +.address-management .item .operation .iconfont { + color: #2c2c2c; + font-size: 0.3*100rpx; + vertical-align: -0.02*100rpx; + margin-right: 0.1*100rpx; +} + +.address-management .item .operation .iconfont.icon-shanchu { + margin-left: 0.4*100rpx; + font-size: 0.33*100rpx; +} + +.address-management .footer { + box-sizing: border-box; + position: fixed; + width: 100%; + background-color: #fff; + bottom: 0; + height: 1.06*100rpx; + padding: 0 0.3*100rpx; +} + +.address-management .footer .addressBnt { + width: 3.3*100rpx; + height: 0.76*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.76*100rpx; + font-size: 0.3*100rpx; + color: #fff; +} + +.address-management .footer .addressBnt.on { + width: 6.9*100rpx; + margin: 0 auto; +} + +.address-management .footer .addressBnt .iconfont { + font-size: 0.35*100rpx; + margin-right: 0.08*100rpx; + vertical-align: -0.01*100rpx; +} + +.address-management .footer .addressBnt.wxbnt { + background-color: #eb3729; +} + +/*添加地址*/ +.addAddress .list { + background-color: #fff; +} + +.addAddress .list .item { + padding: 0 0.3*100rpx; + min-height: 0.9*100rpx; + border-top: 0.01*100rpx solid #eee; + font-size: 0.3*100rpx; +} + +.addAddress .list .item .name { + width: 1.95*100rpx; + color: #333; +} + +.addAddress .list .item input { + width: 4.75*100rpx; + font-size: 0.3*100rpx; +} + +.addAddress .list .item input::placeholder { + color: #ccc; +} + +.addAddress .list .item .picker { + width: 4.75*100rpx; +} + +.addAddress .list .item .address { + width: 4.1*100rpx; +} + +.addAddress .list .item .picker .iconfont { + font-size: 0.43*100rpx; +} + +.addAddress .default { + padding: 0 0.3*100rpx; + height: 0.9*100rpx; + background-color: #fff; + margin-top: 0.23*100rpx; +} + +.addAddress .default .def { + margin-left: 0.1*100rpx; + height: 0.83*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.addAddress .keepBnt { + width: 6.9*100rpx; + height: 0.86*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0.5*100rpx auto 0.3*100rpx auto; + font-size: 0.32*100rpx; + color: #fff; +} + +.addAddress .wechatAddress { + width: 6.9*100rpx; + height: 0.86*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0 auto; + font-size: 0.32*100rpx; + color: #eb3729; + border: 1px solid #eb3729; +} + +/*我的订单*/ +.my-order .header { + height: 2.6*100rpx; + padding: 0 0.3*100rpx; +} + +.my-order .header .picTxt { + height: 1.9*100rpx; +} + +.my-order .header .picTxt .text { + color: rgba(255, 255, 255, 0.8); + font-size: 0.26*100rpx; + font-family: 'GuildfordProBook 5'; +} + +.my-order .header .picTxt .text .name { + font-size: 0.34*100rpx; + font-weight: bold; + color: #fff; + margin-bottom: 0.2*100rpx; +} + +.my-order .header .picTxt .pictrue { + width: 1.22*100rpx; + height: 1.09*100rpx; +} + +.my-order .header .picTxt .pictrue image { + width: 100%; + height: 100%; +} + +.my-order .nav { + background-color: #fff; + width: 6.9*100rpx; + height: 1.4*100rpx; + border-radius: 0.06*100rpx; + margin: -0.73*100rpx auto 0 auto; +} + +.my-order .nav .item { + text-align: center; + font-size: 0.26*100rpx; + color: #282828; + padding: 0.29*100rpx 0 0.2*100rpx 0; +} + +.my-order .nav .item.on { + font-weight: bold; + border-bottom: 0.05*100rpx solid #eb3729; +} + +.my-order .nav .item .num { + margin-top: 0.1*100rpx; +} + +.my-order .list { + width: 6.9*100rpx; + margin: 0.14*100rpx auto 0 auto; +} + +.my-order .list .item { + background-color: #fff; + border-radius: 0.06*100rpx; + margin-bottom: 0.14*100rpx; +} + +.my-order .list .item .title { + height: 0.84*100rpx; + padding: 0 0.3*100rpx; + border-bottom: 0.01*100rpx solid #eee; + font-size: 0.28*100rpx; + color: #282828; +} + +.my-order .list .item .title .sign { + font-size: 0.24*100rpx; + padding: 0 0.07*100rpx; + height: 0.36*100rpx; + margin-right: 0.15*100rpx; +} + +.my-order .list .item .item-info { + padding: 0 0.3*100rpx; + margin-top: 0.22*100rpx; +} + +.my-order .list .item .item-info .pictrue { + width: 1.2*100rpx; + height: 1.2*100rpx; +} + +.my-order .list .item .item-info .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.my-order .list .item .item-info .text { + width: 4.86*100rpx; + font-size: 0.28*100rpx; + color: #999; + margin-top: 0.06*100rpx; +} + +.my-order .list .item .item-info .text .name { + width: 3.06*100rpx; + color: #282828; +} + +.my-order .list .item .item-info .text .money { + text-align: right; +} + +.my-order .list .item .totalPrice { + font-size: 0.26*100rpx; + color: #282828; + text-align: right; + margin: 0.27*100rpx 0 0 0.3*100rpx; + padding: 0 0.3*100rpx 0.3*100rpx 0; + border-bottom: 0.01*100rpx solid #eee; +} + +.my-order .list .item .totalPrice .money { + font-size: 0.28*100rpx; + font-weight: bold; +} + +.my-order .list .item .bottom { + height: 1.07*100rpx; + padding: 0 0.3*100rpx; +} + +.my-order .list .item .bottom .bnt { + width: 1.76*100rpx; + height: 0.6*100rpx; + text-align: center; + line-height: 0.6*100rpx; + color: #fff; + border-radius: 0.5*100rpx; + font-size: 0.27*100rpx; +} + +.my-order .list .item .bottom .bnt.cancelBnt { + border: 1px solid #ddd; + color: #aaa; +} + +.my-order .list .item .bottom .bnt.default { + color: #444; + border: 1px solid #444; +} + +.my-order .list .item .bottom .bnt~.bnt { + margin-left: 0.17*100rpx; +} + +/*订单详情*/ +.order-details .header { + padding: 0 0.3*100rpx; + height: 1.5*100rpx; +} + +.order-details .header.on { + background-color: #666 !important; +} + +.order-details .header .pictrue { + width: 1.1*100rpx; + height: 1.1*100rpx; +} + +.order-details .header .pictrue image { + width: 100%; + height: 100%; +} + +.order-details .header .data { + color: rgba(255, 255, 255, 0.8); + font-size: 0.24*100rpx; + margin-left: 0.27*100rpx; +} + +.order-details .header.on .data { + margin-left: 0; +} + +.order-details .header .data .state { + font-size: 0.3*100rpx; + font-weight: bold; + color: #fff; + margin-bottom: 0.07*100rpx; +} + +.order-details .header .data .time { + margin-left: 0.2*100rpx; +} + +.order-details .nav { + background-color: #fff; + font-size: 0.26*100rpx; + color: #282828; + padding: 0.25*100rpx 0; +} + +.order-details .nav .navCon { + padding: 0 0.4*100rpx; +} + +.order-details .nav .navCon .on { + font-weight: bold; + color: #eb3729; +} + +.order-details .nav .progress { + padding: 0 0.65*100rpx; + margin-top: 0.1*100rpx; +} + +.order-details .nav .progress .line { + width: 1*100rpx; + height: 0.02*100rpx; + background-color: #939390; +} + +.order-details .nav .progress .iconfont { + font-size: 0.25*100rpx; + color: #939390; + margin-top: -0.02*100rpx; + width: 0.3*100rpx; + height: 0.3*100rpx; + line-height: 0.33*100rpx; + text-align: center; +} + +.order-details .address { + font-size: 0.26*100rpx; + color: #868686; + background-color: #fff; + padding: 0.25*100rpx 0.3*100rpx 0.3*100rpx 0.3*100rpx; +} + +.order-details .address .name { + font-size: 0.3*100rpx; + color: #282828; + margin-bottom: 0.1*100rpx; +} + +.order-details .address .name .phone { + margin-left: 0.4*100rpx; +} + +.order-details .line { + width: 100%; + height: 0.03*100rpx; +} + +.order-details .line image { + width: 100%; + height: 100%; + display: block; +} + +.order-details .wrapper { + background-color: #fff; + margin-top: 0.12*100rpx; + padding: 0.3*100rpx; +} + +.order-details .wrapper .item { + font-size: 0.28*100rpx; + color: #282828; +} + +.order-details .wrapper .item~.item { + margin-top: 0.2*100rpx; +} + +.order-details .wrapper .item .conter { + color: #868686; + width: 5*100rpx; + text-align: right; +} + +.order-details .wrapper .item .conter .copy { + font-size: 0.2*100rpx; + color: #333; + border-radius: 0.03*100rpx; + border: 1px solid #666; + padding: 0.03*100rpx 0.15*100rpx; + margin-left: 0.24*100rpx; +} + +.order-details .wrapper .actualPay { + border-top: 0.01*100rpx solid #eee; + margin-top: 0.3*100rpx; + padding-top: 0.3*100rpx; +} + +.order-details .wrapper .actualPay .money { + font-weight: bold; + font-size: 0.3*100rpx; +} + +.order-details .footer { + box-sizing: border-box; + width: 100%; + height: 1*100rpx; + position: fixed; + bottom: 0; + left: 0; + background-color: #fff; + padding: 0 0.3*100rpx; + border-top: 1px solid #eee; +} + +.order-details .footer .bnt { + width: 1.76*100rpx; + height: 0.6*100rpx; + text-align: center; + line-height: 0.6*100rpx; + border-radius: 0.5*100rpx; + color: #fff; + font-size: 0.27*100rpx; +} + +.order-details .footer .bnt.cancel { + color: #aaa; + border: 1px solid #ddd; +} + +.order-details .footer .bnt.default { + color: #444; + border: 1px solid #444; +} + +.order-details .footer .bnt~.bnt { + margin-left: 0.18*100rpx; +} + +/*物流信息*/ +.logistics .header { + padding: 0.23*100rpx 0.3*100rpx; + background-color: #fff; + height: 1.66*100rpx; +} + +.logistics .header .pictrue { + width: 1.2*100rpx; + height: 1.2*100rpx; +} + +.logistics .header .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.logistics .header .text { + width: 5.4*100rpx; + font-size: 0.28*100rpx; + color: #999; + margin-top: 0.06*100rpx; +} + +.logistics .header .text .name { + width: 3.65*100rpx; + color: #282828; +} + +.logistics .header .text .money { + text-align: right; +} + +.logistics .logisticsCon { + background-color: #fff; + margin: 0.12*100rpx 0; +} + +.logistics .logisticsCon .company { + height: 1.2*100rpx; + margin: 0 0 0.45*100rpx 0.3*100rpx; + padding-right: 0.3*100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.logistics .logisticsCon .company .picTxt { + width: 5.2*100rpx; +} + +.logistics .logisticsCon .company .picTxt .iconfont { + width: 0.5*100rpx; + height: 0.5*100rpx; + background-color: #666; + text-align: center; + line-height: 0.5*100rpx; + color: #fff; + font-size: 0.35*100rpx; +} + +.logistics .logisticsCon .company .picTxt .text { + width: 4.5*100rpx; + font-size: 0.26*100rpx; + color: #282828; +} + +.logistics .logisticsCon .company .picTxt .text .name { + color: #999; +} + +.logistics .logisticsCon .company .picTxt .text .express { + margin-top: 0.05*100rpx; +} + +.logistics .logisticsCon .company .copy { + font-size: 0.2*100rpx; + width: 1.06*100rpx; + height: 0.4*100rpx; + border-radius: 0.03*100rpx; + border: 1px solid #999; +} + +.logistics .logisticsCon .item { + padding: 0 0.4*100rpx; + position: relative; +} + +.logistics .logisticsCon .item .circular { + width: 0.2*100rpx; + height: 0.2*100rpx; + border-radius: 50%; + position: absolute; + top: -0.01*100rpx; + left: 0.315*100rpx; + background-color: #ddd; +} + +.logistics .logisticsCon .item .circular.on { + background-color: #eb3729; +} + +.logistics .logisticsCon .item .text { + font-size: 0.26*100rpx; + color: #666; + width: 6.15*100rpx; + border-left: 1px solid #e6e6e6; + padding: 0 0 0.6*100rpx 0.38*100rpx; +} + +.logistics .logisticsCon .item .text.on { + border-left-color: #f8c1bd; +} + +.logistics .logisticsCon .item .text .data { + font-size: 0.24*100rpx; + color: #999; + margin-top: 0.1*100rpx; +} + +.logistics .logisticsCon .item .text .data .time { + margin-left: 0.15*100rpx; +} + +/*支付状态*/ +.payment-status { + background-color: #fff; + margin: 1.95*100rpx auto 0 auto; + border-radius: 0.1*100rpx; + padding: 0.01*100rpx 0 0.28*100rpx 0; + width: 6.9*100rpx; + left: 50%; + margin-left: -3.45*100rpx; +} + +.payment-status .iconfont { + font-size: 0.7*100rpx; + width: 1.4*100rpx; + height: 1.4*100rpx; + border-radius: 50%; + color: #fff; + text-align: center; + line-height: 1.3*100rpx; + text-shadow: 0 4px 0 #eb3729; + border: 0.06*100rpx solid #f5f5f5; + margin: -0.76*100rpx auto 0 auto; + background-color: #999; +} + +.payment-status .iconfont.fail { + text-shadow: 0 4px 0 #7a7a7a; +} + +.payment-status .status { + font-size: 0.32*100rpx; + font-weight: bold; + text-align: center; + margin: 0.25*100rpx 0 0.37*100rpx 0; +} + +.payment-status .wrapper { + border: 1px solid #eee; + margin: 0 0.3*100rpx 0.47*100rpx 0.3*100rpx; + padding: 0.35*100rpx 0; + border-left: 0; + border-right: 0; +} + +.payment-status .wrapper .item { + font-size: 0.28*100rpx; + color: #282828; +} + +.payment-status .wrapper .item~.item { + margin-top: 0.2*100rpx; +} + +.payment-status .wrapper .item .itemCom { + color: #666; +} + +.payment-status .returnBnt { + width: 6.3*100rpx; + height: 0.86*100rpx; + border-radius: 0.5*100rpx; + color: #fff; + font-size: 0.3*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0 auto 0.2*100rpx auto; +} + +/*拼团海报*/ +.poster-poster .tip { + height: 0.8*100rpx; + font-size: 0.26*100rpx; + color: #e8c787; + text-align: center; + line-height: 0.8*100rpx; +} + +.poster-poster .tip .iconfont { + font-size: 0.36*100rpx; + vertical-align: -0.04*100rpx; + margin-right: 0.18*100rpx; +} + +.poster-poster .poster { + width: 6.9*100rpx; + height: 100%; + margin: 0 auto; +} + +.poster-poster .poster image { + width: 100%; + height: 100%; + display: block; +} + +/*分销海报*/ +.distribution-posters .slider-banner { + width: 100%; + box-sizing: border-box; + height: 100%; + padding: .4*100rpx; + position: relative; +} + +.distribution-posters .slider-banner .swiper-slide { + width: 6*100rpx !important; + height: 100%; +} + +.distribution-posters .slide-image { + width: 100%; + height: 100%; + border-radius: 0.15*100rpx; +} + +.distribution-posters .keep { + font-size: 0.3*100rpx; + color: #fff; + width: 6*100rpx; + height: 0.8*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.8*100rpx; + margin: 0.38*100rpx auto; +} + +/*积分详情*/ +.integral-details .header { + background-image: url('https://h5.yixiang.co/static/images/integralbg.jpg'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 3.6*100rpx; + font-size: 0.72*100rpx; + color: #fff; + padding: 0.31*100rpx 0 0.45*100rpx 0; + text-align: center; + font-family: 'GuildfordProBook 5'; +} + +.integral-details .header .currentScore { + font-size: 0.26*100rpx; + color: rgba(255, 255, 255, 0.8); + text-align: center; + margin-bottom: 0.05*100rpx; +} + +.integral-details .header .line { + width: 0.6*100rpx; + height: 0.03*100rpx; + background-color: #fff; + margin: 0.2*100rpx auto 0 auto; +} + +.integral-details .header .nav { + font-size: 0.22*100rpx; + color: rgba(255, 255, 255, 0.8); + flex: 1; + -o-flex: 1; + -ms-flex: 1; + margin-top: 0.35*100rpx; +} + +.integral-details .header .nav .item { + width: 33.33%; + text-align: center; +} + +.integral-details .header .nav .item .num { + color: #fff; + font-size: 0.4*100rpx; +} + +.integral-details .wrapper .nav { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + width: 6.9*100rpx; + border-radius: 0.2*100rpx 0.2*100rpx 0 0; + margin: -0.96*100rpx auto 0 auto; + background-color: #f7f7f7; + height: 0.96*100rpx; + font-size: 0.3*100rpx; + color: #bbb; +} + +.integral-details .wrapper .nav .item { + text-align: center; + width: 100%; +} + +/*.integral-details .wrapper .nav .item{text-align:center;width:50%;}*/ +.integral-details .wrapper .nav .item.on { + background-color: #fff; + color: #eb3729; + font-weight: bold; + border-radius: 0.2*100rpx .2*100rpx 0 0; +} + +.integral-details .wrapper .nav .item .iconfont { + font-size: 0.38*100rpx; + margin-right: 0.1*100rpx; +} + +.integral-details .wrapper .list { + background-color: #fff; + padding: 0.24*100rpx 0.3*100rpx; +} + +.integral-details .wrapper .list .tip { + font-size: 0.25*100rpx; + width: 6.9*100rpx; + height: 0.6*100rpx; + border-radius: 0.5*100rpx; + background-color: #fff5e2; + border: 1px solid #ffeac1; + color: #c8a86b; + padding: 0 0.2*100rpx; + margin-bottom: 0.24*100rpx; +} + +.integral-details .wrapper .list .tip .iconfont { + font-size: 0.35*100rpx; + margin-right: 0.15*100rpx; +} + +.integral-details .wrapper .list .item { + height: 1.24*100rpx; + border-bottom: 1px solid #eee; + font-size: 0.24*100rpx; + color: #999; +} + +.integral-details .wrapper .list .item .state { + font-size: 0.28*100rpx; + color: #282828; + margin-bottom: 0.08*100rpx; +} + +.integral-details .wrapper .list .item .num { + font-size: 0.36*100rpx; + font-family: 'GuildfordProBook 5'; + color: #16ac57; +} + +.integral-details .wrapper .list2 { + background-color: #fff; + padding: 0.24*100rpx 0; +} + +.integral-details .wrapper .list2 .item { + background-image: linear-gradient(to right, #fff7e7 0%, #fffdf9 100%); + background-image: -moz-linear-gradient(to right, #fff7e7 0%, #fffdf9 100%); + width: 6.9*100rpx; + height: 1.8*100rpx; + position: relative; + border-radius: 0.1*100rpx; + margin: 0 auto 0.2*100rpx auto; + padding: 0 0.25*100rpx 0 1.8*100rpx; +} + +.integral-details .wrapper .list2 .item .pictrue { + width: 0.9*100rpx; + height: 1.5*100rpx; + position: absolute; + bottom: 0; + left: 0.45*100rpx; +} + +.integral-details .wrapper .list2 .item .pictrue image { + width: 100%; + height: 100%; +} + +.integral-details .wrapper .list2 .item .name { + width: 2.85*100rpx; + font-size: 0.3*100rpx; + font-weight: bold; + color: #c8a86b; +} + +.integral-details .wrapper .list2 .item .earn { + font-size: 0.26*100rpx; + color: #c8a86b; + border: 0.02*100rpx solid #c8a86b; + text-align: center; + line-height: 0.52*100rpx; + height: 0.52*100rpx; + width: 1.6*100rpx; + border-radius: 0.5*100rpx; +} + +/*金品推荐*/ +.quality-recommend .title { + height: 1.2*100rpx; + font-size: 0.32*100rpx; + color: #282828; + background-color: #f5f5f5; +} + +.quality-recommend .title .line { + width: 2.3*100rpx; + height: 0.02*100rpx; + background-color: #e9e9e9; +} + +.quality-recommend .title .name { + margin: 0 0.2*100rpx; +} + +.quality-recommend .title .name .iconfont { + margin-right: 0.13*100rpx; + font-size: 0.38*100rpx; + vertical-align: -0.04*100rpx; +} + +/*砍价列表*/ +.bargain-list .icon-xiangzuo { + font-size: 0.4*100rpx; + color: #fff; + position: fixed; + top: 0.51*100rpx; + left: 0.3*100rpx; + z-index: 99; +} + +.bargain-list .header { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 7.5*100rpx; + height: 7.13*100rpx; +} + +.bargain-list .list { + border-radius: 0.3*100rpx; + margin: .3*100rpx 0.3*100rpx 0.66*100rpx 0.3*100rpx; +} + +.bargain-list .list .item { + border-bottom: 1px solid #eee; + position: relative; + height: 2.23*100rpx; + background-color: #fff; + padding: 0 .24*100rpx; + margin: 0 auto .2*100rpx auto; +} + +.bargain-list .list .item .pictrue { + width: 1.6*100rpx; + height: 1.6*100rpx; +} + +.bargain-list .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.bargain-list .list .item .text { + width: 4.5*100rpx; + font-size: 0.3*100rpx; + color: #282828; + height: 1.6*100rpx; +} + +.bargain-list .list .item .text .num { + font-size: 0.26*100rpx; + color: #999; +} + +.bargain-list .list .item .text .num .iconfont { + font-size: 0.35*100rpx; + margin-right: 0.07*100rpx; +} + +.bargain-list .list .item .text .money { + font-size: 0.24*100rpx; + font-weight: bold; +} + +.bargain-list .list .item .text .money .price { + font-size: 0.32*100rpx; +} + +.bargain-list .list .item .cutBnt { + position: absolute; + width: 1.8*100rpx; + height: 0.5*100rpx; + border-radius: 0.5*100rpx; + font-size: 0.24*100rpx; + color: #fff; + text-align: center; + line-height: 0.46*100rpx; + right: 0.24*100rpx; + bottom: 0.28*100rpx; + box-shadow: 0 0.07*100rpx 0 #f8c1bd; + -moz-box-shadow: 0 0.07*100rpx 0 #f8c1bd; + -o-box-shadow: 0 0.07*100rpx 0 #f8c1bd; +} + +.bargain-list .list .item .cutBnt .iconfont { + margin-right: 0.08*100rpx; + font-size: 0.3*100rpx; +} + +.bargain-list .list .load { + font-size: 0.24*100rpx; + height: 0.85*100rpx; + text-align: center; + line-height: 0.85*100rpx; +} + +/*砍价*/ +.bargain .icon-xiangzuo { + font-size: 0.4*100rpx; + color: #fff; + position: fixed; + top: 0.51*100rpx; + left: 0.3*100rpx; + z-index: 99; +} + +.bargain .header { + /* background-image: url('https://h5.yixiang.co/static/images/cut1.png'); */ + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.98*100rpx; + height: 372rpx; + margin: 0 auto; + padding-top: 0.001*100rpx; + margin-top: 0.4*100rpx +} + +.bargain .header.on { + background-image: url('https://h5.yixiang.co/static/images/cut2.png'); +} + +.bargain .header .pictxt { + margin: 2.6*100rpx auto 0 auto; + font-size: 0.26*100rpx; + color: #fff; +} + +.bargain .header .pictxt .pictrue { + width: 0.56*100rpx; + height: 0.56*100rpx; + margin-right: 0.3*100rpx; +} + +.bargain .header .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02*100rpx solid #fff; +} + +.bargain .header .pictxt .text text { + margin-left: 0.2*100rpx; +} + +.bargain .header .time { + background-image: url('https://h5.yixiang.co/static/images/time.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 4.4*100rpx; + height: 1.66*100rpx; + margin: .8*100rpx auto 0 auto; + font-size: 0.22*100rpx; + text-align: center; + padding-top: 0.09*100rpx; + color: #fc4141; +} + +.bargain .header .people { + text-align: center; + color: #fff; + font-size: 0.2*100rpx; + margin-top: 0.2*100rpx; +} + +.bargain .header .time .styleAll { + color: #333; +} + +.bargain .wrapper, +.bargain .bargainGang, +.bargain .goodsDetails { + width: 6.6*100rpx; + border: 0.06*100rpx solid #eb3729; + background-color: #fff; + border-radius: 0.2*100rpx; + margin: -1.62*100rpx auto 0 auto; + padding: 0 0.24*100rpx 0.47*100rpx 0.24*100rpx; + position: relative; +} + +.bargain .wrapper .pictxt { + margin: 0.26*100rpx 0 0.37*100rpx 0; +} + +.bargain .wrapper .pictxt .pictrue { + width: 1.8*100rpx; + height: 1.8*100rpx; + position: relative; + +} + +.bargain .wrapper .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.bargain .wrapper .pictxt .text { + width: 3.95*100rpx; + font-size: 0.28*100rpx; + color: #282828; + height: 1.8*100rpx; +} + +.bargain .wrapper .pictxt .text .money { + font-weight: bold; + font-size: 0.24*100rpx; +} + +.bargain .wrapper .pictxt .text .money .num { + font-size: 0.36*100rpx; +} + +.bargain .wrapper .pictxt .text .successNum { + font-size: 0.22*100rpx; + color: #999; + margin-right: 0.15*100rpx; +} + +.bargain .wrapper .cu-progress { + overflow: hidden; + height: 0.12*100rpx; + background-color: #eee; + width: 100%; + border-radius: 0.2*100rpx; +} + +.bargain .wrapper .cu-progress .bg-red { + width: 0; + height: 100%; + transition: width 0.6s ease; + border-radius: 0.2*100rpx; + background-image: linear-gradient(to right, #ffa363 0%, #e93323 100%); + background-image: -moz-linear-gradient(to right, #ffa363 0%, #e93323 100%); +} + +.bargain .wrapper .balance { + font-size: 0.22*100rpx; + color: #999; + margin-top: 0.15*100rpx; +} + +.bargain .wrapper .bargainSuccess { + font-size: 0.26*100rpx; + color: #282828; + text-align: center; +} + +.bargain .wrapper .bargainSuccess .iconfont { + font-size: 0.45*100rpx; + color: #54c762; + padding-right: 0.18*100rpx; + vertical-align: -0.05*100rpx; +} + +.bargain .wrapper .bargainBnt { + font-size: 0.3*100rpx; + font-weight: bold; + color: #fff; + width: 100%; + height: 0.8*100rpx; + border-radius: 0.4*100rpx; + background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%); + text-align: center; + line-height: 0.8*100rpx; + margin-top: 0.32*100rpx; +} + +.bargain .wrapper .bargainBnt.on { + border: 0.02*100rpx solid #eb3729; + color: #eb3729; + background-image: linear-gradient(to right, #fff 0%, #fff 100%); + background-image: -moz-linear-gradient(to right, #fff 0%, #fff 100%); + width: 100%; + height: 0.76*100rpx; +} + +.bargain .wrapper .tip { + font-size: 0.22*100rpx; + color: #999; + text-align: center; + margin-top: 0.2*100rpx; +} + +.bargain .wrapper .lock, +.bargain .bargainGang .lock, +.bargain .goodsDetails .lock { + background-image: url('https://h5.yixiang.co/static/images/lock.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.48*100rpx; + height: 0.66*100rpx; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -0.43*100rpx; + z-index: 5; +} + +.bargain .bargainGang { + margin: 0.13*100rpx auto 0 auto; +} + +.bargain .bargainGang .title, +.bargain .goodsDetails .title { + font-size: 0.32*100rpx; + font-weight: bold; + height: 0.8*100rpx; + margin-top: 0.3*100rpx; +} + +.bargain .bargainGang .title .pictrue, +.bargain .goodsDetails .title .pictrue { + width: 0.46*100rpx; + height: 0.24*100rpx; +} + +.bargain .bargainGang .title .pictrue.on, +.bargain .goodsDetails .title .pictrue.on { + transform: rotate(180deg); +} + +.bargain .bargainGang .title .pictrue image, +.bargain .goodsDetails .title .pictrue image { + width: 100%; + height: 100%; + display: block; +} + +.bargain .bargainGang .title .titleCon, +.bargain .goodsDetails .title .titleCon { + margin: 0 0.2*100rpx; +} + +.bargain .bargainGang .list .item { + border-bottom: 1px dashed #ddd; + height: 1.12*100rpx; +} + +.bargain .bargainGang .list .item .pictxt { + width: 3.1*100rpx; +} + +.bargain .bargainGang .list .item .pictxt .pictrue { + width: 0.7*100rpx; + height: 0.7*100rpx; +} + +.bargain .bargainGang .list .item .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02px solid #eb3729; +} + +.bargain .bargainGang .list .item .pictxt .text { + width: 2.25*100rpx; + font-size: 0.2*100rpx; + color: #999; +} + +.bargain .bargainGang .list .item .pictxt .text .name { + font-size: 0.25*100rpx; + color: #282828; + margin-bottom: 0.07*100rpx; +} + +.bargain .bargainGang .list .item .money { + font-size: 0.25*100rpx; +} + +.bargain .bargainGang .list .item .money .iconfont { + font-size: 0.35*100rpx; + vertical-align: middle; + margin-right: 0.1*100rpx; +} + +.bargain .bargainGang .load { + font-size: 0.24*100rpx; + text-align: center; + line-height: 0.8*100rpx; + height: 0.8*100rpx; +} + +.bargain .goodsDetails { + margin: 0.13*100rpx auto 0 auto; +} + +.bargain .goodsDetails~.goodsDetails { + margin-bottom: 0.5*100rpx; +} + +.bargain .goodsDetails .conter { + margin-top: 0.2*100rpx; +} + +.bargain .goodsDetails .conter image { + width: 100% !important; + display: block; +} + +.bargain .bargainTip { + position: fixed; + top: 50%; + left: 50%; + width: 5.6*100rpx; + margin-left: -2.8*100rpx; + z-index: 99; + border-radius: 0.2*100rpx; + background-color: #fff; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); + padding-bottom: 0.6*100rpx; + margin-top: -3.3*100rpx; +} + +.bargain .bargainTip.on { + opacity: 1; + transform: scale(1); +} + +.bargain .bargainTip .pictrue { + width: 100%; + height: 3.21*100rpx; + position: relative; +} + +.bargain .bargainTip .pictrue .iconfont { + position: absolute; + right: 0.18*100rpx; + top: 0.18*100rpx; + color: #fff; + font-size: 0.36*100rpx; + width: 0.5*100rpx; + height: 0.5*100rpx; + text-align: center; + line-height: 0.5*100rpx; +} + +.bargain .bargainTip .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.2*100rpx 0.2*100rpx 0 0; +} + +.bargain .bargainTip .cutOff { + font-size: 0.3*100rpx; + color: #666; + padding: 0 0.29*100rpx; + text-align: center; + margin-top: 0.5*100rpx; +} + +.bargain .bargainTip .cutOff.on { + margin-top: 0.26*100rpx; +} + +.bargain .bargainTip .help { + font-size: 0.32*100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.4*100rpx; +} + +.bargain .bargainTip .tipBnt { + font-size: 0.32*100rpx; + color: #fff; + width: 3.6*100rpx; + height: 0.82*100rpx; + border-radius: 0.41*100rpx; + background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%); + background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%); + text-align: center; + line-height: 0.82*100rpx; + margin: 0.5*100rpx auto 0 auto; +} + +/*砍价记录*/ +.bargain-record .item { + background-color: #fff; + margin-bottom: 0.12*100rpx; +} + +.bargain-record .item .picTxt { + height: 2.1*100rpx; + border-bottom: 1px solid #f0f0f0; + padding: 0 0.3*100rpx; +} + +.bargain-record .item .picTxt .pictrue { + width: 1.5*100rpx; + height: 1.5*100rpx; +} + +.bargain-record .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.bargain-record .item .picTxt .text { + width: 5.15*100rpx; + font-size: 0.3*100rpx; + color: #282828; + height: 1.5*100rpx; +} + +.bargain-record .item .picTxt .text .time { + font-size: 0.24*100rpx; + color: #868686; +} + +.bargain-record .item .picTxt .text .time .styleAll { + color: #fc4141; +} + +.bargain-record .item .picTxt .text .money { + font-size: 0.24*100rpx; +} + +.bargain-record .item .picTxt .text .money .num { + font-size: 0.32*100rpx; + font-weight: bold; +} + +.bargain-record .item .picTxt .text .money .symbol { + font-weight: bold; +} + +.bargain-record .item .bottom { + height: 1*100rpx; + padding: 0 0.3*100rpx; + font-size: 0.27*100rpx; +} + +.bargain-record .item .bottom .purple { + color: #f78513; +} + +.bargain-record .item .bottom .end { + color: #999; +} + +.bargain-record .item .bottom .success { + color: #e93323; +} + +.bargain-record .item .bottom .bnt { + font-size: 0.27*100rpx; + color: #fff; + width: 1.76*100rpx; + height: 0.6*100rpx; + border-radius: 0.06*100rpx; + text-align: center; + line-height: 0.6*100rpx; +} + +.bargain-record .item .bottom .bnt.cancel { + color: #aaa; + border: 1px solid #ddd; +} + +.bargain-record .item .bottom .bnt~.bnt { + margin-left: 0.18*100rpx; +} + +/*拼团列表*/ +.group-list .header { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 4.5*100rpx; +} + +.group-list .header image { + width: 100%; + height: 4.5*100rpx; +} + +.group-list .list { + /* margin-top: -1.20*100rpx; */ +} + +.group-list .list .item { + width: 6.9*100rpx; + height: 2.08*100rpx; + background-color: #fff; + border-radius: 0.06*100rpx; + padding: 0 0.24*100rpx; + margin: 0 auto 0.2*100rpx auto; +} + +.group-list .list .item .pictrue { + width: 1.6*100rpx; + height: 1.6*100rpx; +} + +.group-list .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.group-list .list .item .text { + width: 4.58*100rpx; + font-size: 0.3*100rpx; + color: #282828; +} + +.group-list .list .item .text .team { + height: 0.4*100rpx; + border-radius: 0.04*100rpx; + font-size: 0.22*100rpx; + margin-top: 0.2*100rpx; +} + +.group-list .list .item .text .team .iconfont { + width: 0.54*100rpx; + background-color: #c6f3e8; + text-align: center; + color: #eb3729; + height: 100%; + line-height: 0.38*100rpx; +} + +.group-list .list .item .text .team .num { + text-align: center; + padding: 0 0.1*100rpx; +} + +.group-list .list .item .text .bottom { + margin-top: 0.07*100rpx; +} + +.group-list .list .item .text .bottom .money { + font-size: 0.24*100rpx; + font-weight: bold; + color: #282828; +} + +.group-list .list .item .text .bottom .money .num { + font-size: 0.32*100rpx; +} + +.group-list .list .item .text .bottom .money .y-money { + font-size: 0.24*100rpx; + color: #999; + font-weight: normal; + text-decoration: line-through; + margin-left: 0.1*100rpx; +} + +.group-list .list .item .text .bottom .groupBnt { + font-size: 0.26*100rpx; + color: #fff; + width: 1.46*100rpx; + height: 0.54*100rpx; + text-align: center; + line-height: 0.54*100rpx; + border-radius: 0.04*100rpx; +} + +.group-list .list .item .text .bottom .groupBnt .iconfont { + font-size: 0.25*100rpx; + margin-left: 0.1*100rpx; +} + +/*拼团商品详情*/ +.product-con .wrapper .share .money .y-money { + color: #82848f; + margin-left: 0.13*100rpx; + text-decoration: line-through; + font-weight: normal; +} + +.product-con .notice { + width: 100%; + height: 0.62*100rpx; + background-color: #ffedeb; + margin-top: 0.2*100rpx; + padding: 0 0.3*100rpx; + box-sizing: border-box; +} + +.product-con .notice .num { + font-size: 0.24*100rpx; +} + +.product-con .notice .num .iconfont { + font-size: 0.3*100rpx; + vertical-align: -0.03*100rpx; + margin-right: 0.2*100rpx; +} + +.product-con .notice .num .line { + color: #282828; + margin-left: 0.15*100rpx; +} + +.product-con .notice .swiper { + height: 100%; + width: 4.7*100rpx; + line-height: 0.62*100rpx; + overflow: hidden; + margin-left: 0.14*100rpx; +} + +.product-con .notice .swiper swiper { + height: 100%; +} + +.product-con .notice .swiper .swiper-slide { + height: 100%; +} + +.product-con .notice .swiper .line1 { + height: 100%; + overflow: hidden; + font-size: 0.2*100rpx; + color: #282828; +} + +.product-con .assemble { + background-color: #fff; +} + +.product-con .assemble .item { + padding-right: 0.3*100rpx; + margin-left: 0.3*100rpx; + border-bottom: 1px solid #f0f0f0; + height: 1.32*100rpx; +} + +.product-con .assemble .item .pictxt { + width: 2.95*100rpx; +} + +.product-con .assemble .item .pictxt .text { + width: 1.94*100rpx; +} + +.product-con .assemble .item .pictxt .pictrue { + width: 0.8*100rpx; + height: 0.8*100rpx; +} + +.product-con .assemble .item .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.product-con .assemble .item .right .lack { + font-size: 0.24*100rpx; + color: #333333; + text-align: right; +} + +.product-con .assemble .item .right .time { + font-size: 0.22*100rpx; + color: #82848f; + margin-top: 0.05*100rpx; +} + +.product-con .assemble .item .right .spellBnt { + font-size: 0.24*100rpx; + color: #fff; + width: 1.4*100rpx; + height: 0.5*100rpx; + border-radius: 0.5*100rpx; + background-image: linear-gradient(to right, #ff2358 0%, #ff0000 100%); + background-image: -moz-linear-gradient(to right, #ff2358 0%, #ff0000 100%); + text-align: center; + line-height: 0.5*100rpx; + margin-left: 0.3*100rpx; +} + +.product-con .assemble .item .right .spellBnt .iconfont { + font-size: 0.2*100rpx; + margin-left: 0.05*100rpx; +} + +.product-con .assemble .more { + font-size: 0.24*100rpx; + color: #282828; + text-align: center; + height: 0.9*100rpx; + line-height: 0.9*100rpx; +} + +.product-con .assemble .more .iconfont { + margin-left: 0.13*100rpx; + font-size: 0.25*100rpx; +} + +.product-con .playWay { + background-color: #fff; + padding: 0 0.3*100rpx; + margin-top: 0.2*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.product-con .playWay .title { + height: 0.86*100rpx; + border-bottom: 1px solid #eee; +} + +.product-con .playWay .title .iconfont { + margin-left: 0.13*100rpx; + font-size: 0.28*100rpx; + color: #717171; +} + +.product-con .playWay .way { + min-height: 1.1*100rpx; + font-size: 0.26*100rpx; + color: #282828; +} + +.product-con .playWay .way .iconfont { + color: #cdcdcd; + font-size: 0.4*100rpx; + margin: 0 0.35*100rpx; +} + +.product-con .playWay .way .item .num { + font-size: 0.3*100rpx; + margin-right: 0.06*100rpx; +} + +.product-con .playWay .way .item .tip { + font-size: 0.22*100rpx; + color: #a5a5a5; +} + +.product-con .footer-group { + position: fixed; + bottom: 0; + width: 100%; + height: 1*100rpx; + background-color: #fff; + font-size: 0.18*100rpx; + color: #666; + z-index: 99; +} + +.product-con .footer-group .customerSer { + width: 14%; + font-size: 0.2*100rpx; + color: #666; +} + +.product-con .footer-group .customerSer .iconfont { + font-size: 0.35*100rpx; +} + +.product-con .footer-group .bnt { + width: 86%; + text-align: center; + line-height: 1*100rpx; + height: 100%; + color: #fff; + font-size: 0.3*100rpx; +} + +.product-con .superior .slider-banner .swiper-pagination-bullet { + background-color: #999; +} + +.product-con .superior .slider-banner .swiper-pagination-bullet-active { + background-color: #e93323; +} + +.product-con .superior .slider-banner .swiper-container-horizontal>.swiper-pagination-bullets { + bottom: 0; +} + +/*开团*/ +.group-con .header { + width: 100%; + height: 1.86*100rpx; + background-color: #fff; + border-top: 1px solid #f5f5f5; + padding: 0 0.3*100rpx; + position: relative; +} + +.group-con .header .iconfont { + font-size: 1*100rpx; + position: absolute; + color: #ccc; + right: 0.33*100rpx; + bottom: 0.2*100rpx; +} + +.group-con .header .pictrue { + width: 1.4*100rpx; + height: 1.4*100rpx; +} + +.group-con .header .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.group-con .header .text { + width: 5.25*100rpx; + font-size: 0.3*100rpx; + color: #222; +} + +.group-con .header .text .money { + font-size: 0.24*100rpx; + font-weight: bold; + margin-top: 0.15*100rpx; +} + +.group-con .header .text .money .num { + font-size: 0.32*100rpx; +} + +.group-con .header .text .money .team { + padding: 0.01*100rpx 0.1*100rpx; + font-weight: normal; + border-radius: 0.5*100rpx; + font-size: 0.2*100rpx; + vertical-align: 0.04*100rpx; + margin-left: 0.15*100rpx; +} + +.group-con .wrapper { + background-color: #fff; + margin-top: 0.2*100rpx; + padding: 0.02*100rpx 0 0.35*100rpx 0; +} + +.group-con .wrapper .title { + margin-top: 0.3*100rpx; +} + +.group-con .wrapper .title .line { + width: 1.36*100rpx; + height: 1px; + background-color: #ddd; +} + +.group-con .wrapper .title .name { + margin: 0 0.45*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.group-con .wrapper .title .name .time { + margin: 0 0.14*100rpx; +} + +.group-con .wrapper .title .name .timeTxt { + color: #fc4141; +} + +.group-con .wrapper .title .name .time .styleAll { + background-color: #ffcfcb; + text-align: center; + border-radius: 0.03*100rpx; + font-size: 0.28*100rpx; + font-weight: bold; + display: inline-block; + vertical-align: middle; + color: #fc4141; + padding: 0.02*100rpx 0.05*100rpx; +} + +.group-con .wrapper .tips { + font-size: 0.3*100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.3*100rpx; + color: #999; +} + +.group-con .wrapper .list { + padding: 0 0.3*100rpx; + margin-top: 0.45*100rpx; +} + +.group-con .wrapper .list.result { + max-height: 2.4*100rpx; + overflow: hidden; +} + +.group-con .wrapper .list.result.on { + max-height: 20*100rpx; +} + +.group-con .wrapper .list .pictrue { + width: 0.94*100rpx; + height: 0.94*100rpx; + margin: 0 0 0.29*100rpx 0.35*100rpx; +} + +.group-con .wrapper .list .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02*100rpx solid #e93323; +} + +.group-con .wrapper .list .pictrue img.img-none { + border: none; +} + +.group-con .wrapper .lookAll { + font-size: 0.24*100rpx; + color: #282828; + padding-top: 0.1*100rpx; +} + +.group-con .wrapper .lookAll .iconfont { + font-size: 0.25*100rpx; + margin: 0.02*100rpx 0 0 0.1*100rpx; +} + +.group-con .wrapper .teamBnt { + font-size: 0.3*100rpx; + width: 6.2*100rpx; + height: 0.86*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.86*100rpx; + color: #fff; + margin: 0.21*100rpx auto 0 auto; +} + +.group-con .wrapper .cancel, +.group-con .wrapper .lookOrder { + text-align: center; + font-size: 0.24*100rpx; + color: #282828; + padding-top: 0.3*100rpx; +} + +.group-con .wrapper .cancel .iconfont { + font-size: 0.35*100rpx; + color: #2c2c2c; + vertical-align: -0.04*100rpx; + margin-right: 0.09*100rpx; +} + +.group-con .wrapper .lookOrder .iconfont { + font-size: 0.25*100rpx; + color: #2c2c2c; + margin-left: 0.1*100rpx; +} + +.group-con .group-recommend { + background-color: #fff; + margin-top: 0.25*100rpx; +} + +.group-con .group-recommend .title { + padding-right: 0.3*100rpx; + margin-left: 0.3*100rpx; + height: 0.85*100rpx; + border-bottom: 1px solid #eee; + font-size: 0.28*100rpx; + color: #282828; +} + +.group-con .group-recommend .title .more { + color: #808080; +} + +.group-con .group-recommend .title .more .iconfont { + margin-left: 0.13*100rpx; + font-size: 0.28*100rpx; +} + +.group-con .group-recommend .list { + margin-top: 0.3*100rpx; +} + +.group-con .group-recommend .list .item { + width: 2.1*100rpx; + margin: 0 0 0.25*100rpx 0.3*100rpx; +} + +.group-con .group-recommend .list .item .pictrue { + width: 100%; + height: 2.1*100rpx; + position: relative; +} + +.group-con .group-recommend .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1*100rpx; +} + +.group-con .group-recommend .list .item .pictrue .team { + position: absolute; + top: 0.28*100rpx; + left: -0.05*100rpx; + min-width: 1*100rpx; + height: 0.36*100rpx; + line-height: 0.36*100rpx; + text-align: center; + border-radius: 0 0.18*100rpx 0.18*100rpx 0; + font-size: 0.2*100rpx; + color: #fff; + background-image: linear-gradient(to right, #fb5445 0%, #e93323 100%); + background-image: -moz-linear-gradient(to right, #fb5445 0%, #e93323 100%); +} + +.group-con .group-recommend .list .item .name { + font-size: 0.28*100rpx; + color: #333; + margin-top: 0.18*100rpx; +} + +.group-con .group-recommend .list .item .money { + font-weight: bold; + font-size: 0.26*100rpx; +} + +/*商品评分*/ +.evaluate-list .generalComment { + height: 0.94*100rpx; + padding: 0 0.3*100rpx; + background-color: #fff; + font-size: 0.28*100rpx; + color: #808080; +} + +.evaluate-list .generalComment .evaluate { + margin-right: 0.07*100rpx; +} + +.evaluate-list .nav { + font-size: 0.24*100rpx; + color: #282828; + padding: 0 0.3*100rpx 0.15*100rpx 0.3*100rpx; + background-color: #fff; + border-bottom: 1px solid #f5f5f5; +} + +.evaluate-list .nav .item { + font-size: 0.24*100rpx; + color: #282828; + border-radius: 0.06*100rpx; + height: 0.54*100rpx; + padding: 0 0.2*100rpx; + background-color: #f4f4f4; + line-height: 0.54*100rpx; + margin: 0 0.17*100rpx 0.17*100rpx 0; +} + +.evaluate-list .nav .item.bg-color-red { + color: #fff; +} + +/*商品评价*/ +.evaluate-con .score { + background-color: #fff; + border-top: 1px solid #f5f5f5; + font-size: 0.28*100rpx; + color: #282828; + padding: 0.48*100rpx 0.3*100rpx 0.65*100rpx 0.3*100rpx; +} + +.evaluate-con .score .item~.item { + margin-top: 0.25*100rpx; +} + +.evaluate-con .score .item .starsList { + padding: 0 0.35*100rpx 0 0.4*100rpx; +} + +.evaluate-con .score .item .starsList .iconfont { + font-size: 0.4*100rpx; + color: #aaa; +} + +.evaluate-con .score .item .starsList .iconfont~.iconfont { + margin-left: 0.2*100rpx; +} + +.evaluate-con .score .item .evaluate { + color: #aaa; + font-size: 0.24*100rpx; +} + +.evaluate-con .score .textarea { + width: 6.9*100rpx; + background-color: #fafafa; + border-radius: 0.1*100rpx; + margin-top: 0.48*100rpx; +} + +.evaluate-con .score .textarea textarea { + font-size: 0.28*100rpx; + padding: 0.38*100rpx 0.3*100rpx 0 0.3*100rpx; + width: 100%; + height: 1.6*100rpx; +} + +.evaluate-con .score .textarea textarea::placeholder { + color: #bbb; +} + +.evaluate-con .score .textarea .list { + margin-top: 0.25*100rpx; + padding-left: 0.05*100rpx; +} + +.evaluate-con .score .textarea .list .pictrue { + width: 1.4*100rpx; + height: 1.4*100rpx; + margin: 0 0 0.35*100rpx 0.25*100rpx; + position: relative; + font-size: 0.22*100rpx; + color: #bbb; +} + +.evaluate-con .score .textarea .list .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.03*100rpx; +} + +.evaluate-con .score .textarea .list .pictrue .icon-guanbi1 { + font-size: 0.45*100rpx; + position: absolute; + top: -0.2*100rpx; + right: -0.2*100rpx; +} + +.evaluate-con .score .textarea .list .pictrue .icon-icon25201 { + color: #bfbfbf; + font-size: 0.5*100rpx; +} + +.evaluate-con .score .evaluateBnt { + font-size: 0.3*100rpx; + color: #fff; + width: 6.9*100rpx; + height: 0.86*100rpx; + border-radius: 0.43*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin-top: 0.45*100rpx; +} + +/*签到*/ +.sign .header { + width: 100%; + height: 3.1*100rpx; +} + +.sign .header .headerCon { + padding: 0 0 0 0.3*100rpx; + height: 2.34*100rpx; +} + +.sign .header .headerCon .left { + width: 5.3*100rpx; + font-size: 0.32*100rpx; + color: #fff; + font-weight: bold; +} + +.sign .header .headerCon .left .integral text { + font-size: 0.24*100rpx; + margin-top: 0.19*100rpx; + background-color: #ff9000; + text-align: center; + border-radius: 0.06*100rpx; + font-weight: normal; + padding: 0.06*100rpx 0.15*100rpx; +} + +.sign .header .headerCon .text { + width: 4.1*100rpx; +} + +.sign .header .headerCon .left .pictrue { + width: 0.86*100rpx; + height: 0.86*100rpx; + border-radius: 50%; + border: 0.04*100rpx solid #ecddbc; +} + +.sign .header .headerCon .left .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.sign .header .headerCon .right { + width: 1.42*100rpx; + height: 0.66*100rpx; + background-color: #fff; + border-radius: 0.5*100rpx 0 0 0.5*100rpx; + font-size: 0.24*100rpx; + color: #ff9000; +} + +.sign .header .headerCon .right .iconfont { + font-size: 0.33*100rpx; + padding: 0 0.1*100rpx 0 0.3*100rpx; + height: 0.35*100rpx; + line-height: 0.35*100rpx; +} + +.sign .wrapper { + background-color: #fff; + margin: -0.8*100rpx 0.2*100rpx 0 0.2*100rpx; + border-radius: 0.15*100rpx; + padding-bottom: 0.8*100rpx; + position: relative; +} + +.sign .wrapper .list { + padding: 0 0.3*100rpx; + height: 2.4*100rpx; +} + +.sign .wrapper .list .item { + font-size: 0.22*100rpx; + color: #8a8886; + text-align: center; +} + +.sign .wrapper .list .item .rewardTxt { + width: 0.74*100rpx; + height: 0.32*100rpx; + background-color: #f4b409; + border-radius: 0.16*100rpx; + font-size: 0.2*100rpx; + color: #a57d3f; + line-height: 0.32*100rpx; +} + +.sign .wrapper .list .item .num { + font-size: 0.3*100rpx; + color: #999; +} + +.sign .wrapper .list .item .num.on { + color: #ff9000; +} + +.sign .wrapper .list .item .venus { + background-image: url('https://h5.yixiang.co/static/images/stars2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 0.56*100rpx; + height: 0.56*100rpx; + margin: 0.1*100rpx 0; +} + +.sign .wrapper .list .item .venus.venusSelect { + background-image: url('https://h5.yixiang.co/static/images/stars1.png'); +} + +.sign .wrapper .list .item .venus.reward { + background-image: url('https://h5.yixiang.co/static/images/stars3.png'); + width: 0.75*100rpx; + height: 0.56*100rpx; +} + +.sign .wrapper .but { + width: 4*100rpx; + height: 0.76*100rpx; + font-size: 0.3*100rpx; + line-height: 0.76*100rpx; + color: #fff; + border-radius: 0.5*100rpx; + text-align: center; + margin: 0 auto; +} + +.sign .wrapper .but.on { + background-color: #999 !important; +} + +.sign .wrapper .lock { + background-image: url('https://h5.yixiang.co/static/images/lock2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.58*100rpx; + height: 0.68*100rpx; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -0.41*100rpx; + z-index: 9; +} + +.sign .wrapper2 { + margin-top: 0.15*100rpx; + padding: 0.73*100rpx 0 0 0; +} + +.sign .wrapper2 .tip { + font-size: 0.3*100rpx; + color: #666; + text-align: center; +} + +.sign .wrapper2 .list2 { + margin: 0.45*100rpx 0 0.49*100rpx 0; +} + +.sign .wrapper2 .list2 .item { + width: 0.8*100rpx; + height: 1.16*100rpx; + background-repeat: no-repeat; + background-size: 100% 100%; + color: #fff; + font-size: 0.72*100rpx; + text-align: center; + line-height: 1.16*100rpx; + margin-right: 0.19*100rpx; + background-image: url('https://h5.yixiang.co/static/images/redBg.png'); +} + +.sign .wrapper2 .list2 .data { + font-size: 0.30*100rpx; + color: #232323; +} + +.sign .wrapper2 .tip2 { + font-size: 0.3*100rpx; + color: #999999; + padding: 0 0.55*100rpx; + text-align: center; + line-height: 1.5; +} + +.sign .list3 { + margin: 0.45*100rpx 0.37*100rpx 0 0.37*100rpx; + border-top: 1px dashed #eee; +} + +.sign .list3 .item { + border-bottom: 1px solid #eee; + height: 1.3*100rpx; +} + +.sign .list3 .item .name { + color: #232323; + font-size: 0.3*100rpx; + width: 4*100rpx; +} + +.sign .list3 .item .data { + font-size: 0.24*100rpx; + color: #bbbbbb; + margin-top: 0.09*100rpx; +} + +.sign .list3 .item .num { + font-size: 0.36*100rpx; + font-family: 'GuildfordProBook 5'; +} + +.sign .signTip { + width: 6.44*100rpx; + height: 6.45*100rpx; + position: fixed; + top: 50%; + left: 50%; + margin-left: -3.22*100rpx; + margin-top: -3.225*100rpx; + z-index: 99; + text-align: center; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); +} + +.sign .signTip .signTipLight { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 100%; +} + +.sign .signTip.on { + opacity: 1; + transform: scale(1); +} + +.sign .signTip .signTipCon { + background-image: url('https://h5.yixiang.co/static/images/register.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 4.2*100rpx; + height: 4.2*100rpx; + margin-top: -7*100rpx; + position: relative; +} + +.sign .signTip .signTipCon .state { + font-size: 0.34*100rpx; + color: #fff; + margin-top: 1.5*100rpx; +} + +.sign .signTip .signTipCon .integral { + font-size: 0.3*100rpx; + color: rgba(255, 255, 255, 0.6); + margin-top: 0.09*100rpx; +} + +.sign .signTip .signTipCon .signTipBnt { + font-size: 0.3*100rpx; + color: #eb4331; + width: 2.6*100rpx; + height: 0.76*100rpx; + background-color: #f8d168; + border-radius: 0.38*100rpx; + line-height: 0.76*100rpx; + margin: 0.48*100rpx auto 0 auto; +} + +/*签到记录、账单明细列表*/ +.sign-record .list .item .data { + height: 0.8*100rpx; + line-height: 0.8*100rpx; + padding: 0 0.3*100rpx; + font-size: 0.24*100rpx; + color: #666; +} + +.sign-record .list .item .listn { + background-color: #fff; + font-size: 0.24*100rpx; + color: #999; +} + +.sign-record .list .item .listn .itemn { + height: 1.2*100rpx; + border-bottom: 1px solid #eee; + padding-right: 0.3*100rpx; + margin-left: 0.3*100rpx; +} + +.sign-record .list .item .listn .itemn .name { + width: 3.9*100rpx; + font-size: 0.28*100rpx; + color: #282828; + margin-bottom: 0.06*100rpx; +} + +.sign-record .list .item .listn .itemn .num { + font-size: 0.36*100rpx; + font-family: 'GuildfordProBook 5'; + color: #16ac57; +} + +/*申请退货*/ +.apply-return .list { + background-color: #fff; + margin-top: 0.18*100rpx; +} + +.apply-return .list .item { + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; + min-height: 0.9*100rpx; + border-bottom: 1px solid #eee; + font-size: 0.3*100rpx; + color: #333; +} + +.apply-return .list .item .num { + color: #282828; + flex: 1; + text-align: right; + position: relative; +} + +.apply-return .list .item .num .picker { + text-align: right; +} + +.apply-return .list .item .num .iconfont { + color: #666; + font-size: 0.3*100rpx; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} + +.apply-return .list .item.textarea { + padding: 0.3*100rpx 0.3*100rpx 0.3*100rpx 0; +} + +.apply-return .list .item textarea { + height: 1*100rpx; + font-size: 0.3*100rpx; +} + +.apply-return .list .item textarea::placeholder { + color: #bbb; +} + +.apply-return .list .item .title { + height: 0.95*100rpx; + width: 100%; +} + +.apply-return .list .item .title .tip { + font-size: 0.3*100rpx; + color: #bbb; +} + +.apply-return .list .item .upload { + padding-bottom: 0.36*100rpx; +} + +.apply-return .list .item .upload .pictrue { + margin: 0.22*100rpx 0.23*100rpx 0 0; + width: 1.56*100rpx; + height: 1.56*100rpx; + position: relative; + font-size: 0.24*100rpx; + color: #bbb; + border: 1px solid #bbb; +} + +.apply-return .list .item .upload .pictrue:nth-of-type(4n) { + margin-right: 0; +} + +.apply-return .list .item .upload .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.03*100rpx; +} + +.apply-return .list .item .upload .pictrue .icon-guanbi1 { + position: absolute; + font-size: 0.45*100rpx; + top: -0.1*100rpx; + right: -0.1*100rpx; + width: 0.45*100rpx; + height: 0.45*100rpx; + line-height: 0.45*100rpx; +} + +.apply-return .list .item .upload .pictrue .icon-icon25201 { + color: #bfbfbf; + font-size: 0.5*100rpx; + width: 0.5*100rpx; + height: 0.6*100rpx; + line-height: 0.6*100rpx; +} + +.apply-return .list .item .upload .pictrue:nth-last-child(1) { + border: 1px solid #ddd; +} + +.apply-return .returnBnt { + font-size: 0.32*100rpx; + color: #fff; + width: 6.9*100rpx; + height: 0.86*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0.43*100rpx auto; +} + +/*退货列表*/ +.return-list .goodWrapper { + background-color: #fff; + margin-bottom: 0.13*100rpx; + position: relative; +} + +.return-list .goodWrapper .orderNum { + padding: 0 0.3*100rpx; + border-bottom: 1px solid #eee; + height: 0.87*100rpx; + line-height: 0.87*100rpx; + font-size: 0.3*100rpx; + color: #282828; +} + +.return-list .goodWrapper .item { + border-bottom: 0; +} + +.return-list .goodWrapper .totalSum { + padding: 0 0.3*100rpx 0.32*100rpx 0.3*100rpx; + text-align: right; + font-size: 0.26*100rpx; + color: #282828; +} + +.return-list .goodWrapper .totalSum .price { + font-size: 0.28*100rpx; + font-weight: bold; +} + +.return-list .goodWrapper .iconfont { + position: absolute; + font-size: 1.09*100rpx; + top: 0.07*100rpx; + right: 0.3*100rpx; + color: #ccc; + width: 1.09*100rpx; + height: 1.09*100rpx; + line-height: 1.09*100rpx; +} + +.return-list .goodWrapper .iconfont.powder { + color: #f8c1bd; +} + +/*收藏商品*/ +.collectionGoods { + background-color: #fff; + border-top: 1px solid #eee; +} + +.collectionGoods .item { + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; + border-bottom: 1px solid #eee; + height: 1.8*100rpx; +} + +.collectionGoods .item .pictrue { + width: 1.3*100rpx; + height: 1.3*100rpx; +} + +.collectionGoods .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.collectionGoods .item .text { + width: 5.35*100rpx; + height: 1.3*100rpx; + font-size: 0.28*100rpx; + color: #282828; +} + +.collectionGoods .item .text .infor { + width: 100%; +} + +.collectionGoods .item .text .money { + font-size: 0.26*100rpx; +} + +.collectionGoods .item .text .delete { + font-size: 0.26*100rpx; + color: #282828; + width: 1.14*100rpx; + height: 0.46*100rpx; + border: 1px solid #bbb; + border-radius: 0.04*100rpx; + text-align: center; + line-height: 0.46*100rpx; +} + +/*搜索商品*/ +.searchGood .search { + padding-left: 0.3*100rpx; +} + +.searchGood .search { + margin-top: 0.2*100rpx; +} + +.searchGood .search .input { + flex: 1; + box-sizing: border-box; + background-color: #f7f7f7; + border-radius: 0.33*100rpx; + padding: 0 0.35*100rpx; + height: 0.66*100rpx; +} + +.searchGood .search .input input { + flex: 1; + font-size: 0.28*100rpx; + margin-left: 15rpx; +} + +.searchGood .search .input input::placeholder { + color: #bbb; +} + +.searchGood .search .input .iconfont { + color: #000; + font-size: 0.35*100rpx; +} + +.searchGood .search .bnt { + width: 1.2*100rpx; + text-align: center; + height: 0.66*100rpx; + line-height: 0.66*100rpx; + font-size: 0.3*100rpx; + color: #282828; +} + +.searchGood .title { + font-size: 0.28*100rpx; + color: #999; + margin: 0.5*100rpx 0.3*100rpx 0.25*100rpx 0.3*100rpx; +} + +.searchGood .list { + padding-left: 0.1*100rpx; +} + +.searchGood .list .item { + font-size: 0.26*100rpx; + color: #454545; + padding: 0 0.21*100rpx; + height: 0.6*100rpx; + border-radius: 0.03*100rpx; + line-height: 0.6*100rpx; + border: 1px solid #aaa; + margin: 0 0 0.2*100rpx 0.2*100rpx; +} + +.searchGood .line { + border-bottom: 1px solid #eee; + margin: 0.2*100rpx 0.3*100rpx 0 0.3*100rpx; +} + +/*银行卡提现*/ +.cash-withdrawal .nav { + height: 1.3*100rpx; + box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; + -moz-box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; + -o-box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; +} + +.cash-withdrawal .nav .item { + font-size: 0.26*100rpx; + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; +} + +.cash-withdrawal .nav .item~.item { + border-left: 1px solid #f0f0f0; +} + +.cash-withdrawal .nav .item .iconfont { + width: 0.4*100rpx; + height: 0.4*100rpx; + border-radius: 50%; + border: 0.02*100rpx solid #e93323; + text-align: center; + line-height: 0.37*100rpx; + margin: 0 auto 0.06*100rpx auto; + font-size: 0.22*100rpx; +} + +.cash-withdrawal .nav .item .iconfont.on { + background-color: #e93323; + color: #fff; + border-color: #e93323; +} + +.cash-withdrawal .nav .item .line { + width: 0.02*100rpx; + height: 0.2*100rpx; + margin: 0 auto; + transition: height 0.3s; +} + +.cash-withdrawal .nav .item .line.on { + height: 0.39*100rpx; +} + +.cash-withdrawal .wrapper .list { + padding: 0 0.3*100rpx; +} + +.cash-withdrawal .wrapper .list .item { + border-bottom: 1px solid #eee; + height: 1.07*100rpx; + font-size: 0.3*100rpx; + color: #333; +} + +.cash-withdrawal .wrapper .list .item .name { + width: 1.3*100rpx; +} + +.cash-withdrawal .wrapper .list .item .input { + width: 5.05*100rpx; +} + +.cash-withdrawal .wrapper .list .item .input input::placeholder { + color: #bbb; +} + +.cash-withdrawal .wrapper .list .tip { + font-size: 0.26*100rpx; + color: #999; + margin-top: 0.25*100rpx; +} + +.cash-withdrawal .wrapper .list .bnt { + font-size: 0.32*100rpx; + color: #fff; + width: 6.9*100rpx; + height: 0.9*100rpx; + text-align: center; + border-radius: 0.5*100rpx; + line-height: 0.9*100rpx; + margin: 0.64*100rpx auto; +} + +.cash-withdrawal .wrapper .list .tip2 { + font-size: 0.26*100rpx; + color: #999; + text-align: center; + margin: 0.44*100rpx 0 0.2*100rpx 0; +} + +.cash-withdrawal .wrapper .list .value { + height: 1.35*100rpx; + line-height: 1.35*100rpx; + border-bottom: 1px solid #eee; + width: 6.9*100rpx; + margin: 0 auto; +} + +.cash-withdrawal .wrapper .list .value input { + font-size: 0.8*100rpx; + color: #282828; + height: 1.35*100rpx; + text-align: center; + width: 100%; +} + +.cash-withdrawal .wrapper .list .value input::placeholder { + color: #bbb; +} + +/*提现审核*/ +.cash-audit { + // width: 7.1*100rpx; + background-color: #fff; + border-radius: 0.06*100rpx; + margin: 0.25*100rpx 10rpx 0 10rpx; + padding: 0.53*100rpx 0 0.58*100rpx 0; + // left: 50%; + // margin-left: -3.55*100rpx; +} + +.cash-audit .pictrue { + width: 2.14*100rpx; + height: 1.79*100rpx; + margin: 0 auto; +} + +.cash-audit .pictrue image { + width: 100%; + height: 100%; +} + +.cash-audit .tip { + font-size: 0.32*100rpx; + color: #282828; + margin-top: 0.4*100rpx; + text-align: center; + padding: 0 0.4*100rpx; +} + +.cash-audit .time { + font-size: 0.26*100rpx; + color: #999; + text-align: center; + margin-top: 0.15*100rpx; +} + +.cash-audit .bnt { + font-size: 0.32*100rpx; + color: #fff; + width: 5*100rpx; + height: 0.86*100rpx; + border-radius: 0.43*100rpx; + text-align: center; + line-height: 0.86*100rpx; + margin: 0.5*100rpx auto 0 auto; +} + +/*推广人订单*/ +.promoter-order .list .item .title { + height: 1.33*100rpx; + padding: 0 0.3*100rpx; + font-size: 0.26*100rpx; + color: #999; +} + +.promoter-order .list .item .title .data { + font-size: 0.28*100rpx; + color: #282828; + margin-bottom: 0.05*100rpx; +} + +.promoter-order .list .item .listn .itenm { + background-color: #fff; +} + +.promoter-order .list .item .listn .itenm~.itenm { + margin-top: 0.12*100rpx; +} + +.promoter-order .list .item .listn .itenm .top { + margin-left: 0.3*100rpx; + padding-right: 0.3*100rpx; + border-bottom: 1px solid #eee; + height: 1*100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt { + width: 3.2*100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .text { + width: 2.3*100rpx; + font-size: 0.3*100rpx; + color: #282828; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .pictrue { + width: 0.66*100rpx; + height: 0.66*100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03*100rpx solid #fff; + box-shadow: 0 0 0.1*100rpx #aaa; + -moz-box-shadow: 0 0 0.1*100rpx #aaa; + -o-box-shadow: 0 0 0.1*100rpx #aaa; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.promoter-order .list .item .listn .itenm .top .money { + font-size: 0.28*100rpx; +} + +.promoter-order .list .item .listn .itenm .bottom { + padding: 0.2*100rpx 0.3*100rpx; + font-size: 0.28*100rpx; + color: #666; + line-height: 1.6; +} + +.promoter-order .list .item .listn .itenm .bottom .name { + color: #999; +} + +/*推广人列表*/ +.promoter-list .header { + padding-bottom: 0.12*100rpx; +} + +.promoter-list .nav { + background-color: #fff; + height: 0.86*100rpx; + line-height: 0.86*100rpx; + font-size: 0.28*100rpx; + color: #282828; + border-bottom: 1px solid #eee; +} + +.promoter-list .nav .item { + height: 100%; +} + +.promoter-list .nav .item.on { + color: #eb3729; + border-bottom: 0.05*100rpx solid #eb3729; +} + +.promoter-list .search { + box-sizing: border-box; + + width: 100%; + background-color: #fff; + height: 0.86*100rpx; + padding: 0 0.3*100rpx; +} + +.promoter-list .search .input { + width: 6.3*100rpx; + height: 0.6*100rpx; + border-radius: 0.5*100rpx; + background-color: #f5f5f5; + text-align: center; + position: relative; +} + +.promoter-list .search .input input { + height: 100%; + font-size: 0.26*100rpx; + width: 6.2*100rpx; + text-align: center; +} + +.promoter-list .search .input input::placeholder { + color: #bbb; +} + +.promoter-list .search .input .iconfont { + position: absolute; + right: 0.28*100rpx; + color: #999; + font-size: 0.28*100rpx; + top: 50%; + transform: translateY(-50%); +} + +.promoter-list .search .iconfont { + font-size: 0.4*100rpx; + color: #515151; +} + +.promoter-list .list .sortNav { + background-color: #fff; + height: 0.76*100rpx; + border-bottom: 1px solid #eee; + color: #333; + font-size: 0.28*100rpx; +} + +.promoter-list .list .sortNav.on { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 5; +} + +.promoter-list .list .sortNav .sortItem { + text-align: center; + flex: 1; + -o-flex: 1; + -ms-flex: 1; +} + +.promoter-list .list .sortNav .sortItem image { + width: 0.24*100rpx; + height: 0.24*100rpx; + margin-left: 0.06*100rpx; + vertical-align: -0.03*100rpx; +} + +.promoter-list .list .sortList { + margin-top: 0.76*100rpx; +} + +.promoter-list .list .item { + background-color: #fff; + border-bottom: 1px solid #eee; + height: 1.52*100rpx; + padding: 0 0.3*100rpx 0 0.2*100rpx; + font-size: 0.24*100rpx; + color: #666; +} + +.promoter-list .list .item .picTxt { + width: 4.4*100rpx; +} + +.promoter-list .list .item .picTxt .pictrue { + width: 1.06*100rpx; + height: 1.06*100rpx; + border-radius: 50%; +} + +.promoter-list .list .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03*100rpx solid #fff; + box-shadow: 0 0 0.07*100rpx #aaa; + -moz-box-shadow: 0 0 0.07*100rpx #aaa; + -o-box-shadow: 0 0 0.07*100rpx #aaa; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.promoter-list .list .item .picTxt .text { + width: 3.04*100rpx; + font-size: 0.24*100rpx; + color: #666; +} + +.promoter-list .list .item .picTxt .text .name { + font-size: 0.28*100rpx; + color: #333; + margin-bottom: 0.13*100rpx; +} + +.promoter-list .list .item .right { + width: 2.4*100rpx; + text-align: right; + font-size: 0.22*100rpx; + color: #333; +} + +/*我的推广*/ +.my-promotion .header { + background-image: url("http://admin-api.xdd618.com/file/pic/20210203152923682218.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 3.75*100rpx; +} + +.my-promotion .header .name { + font-size: 0.3*100rpx; + color: #fff; + padding-top: 0.57*100rpx; + position: relative; +} + +.my-promotion .header .name .record { + font-size: 0.26*100rpx; + color: rgba(255, 255, 255, 0.8); + position: absolute; + right: 0.2*100rpx; +} + +.my-promotion .header .name .record .iconfont { + font-size: 0.25*100rpx; + margin-left: 0.1*100rpx; +} + +.my-promotion .header .num { + text-align: center; + color: #fff; + // margin-top: 0.25*100rpx; + font-size: 0.9*100rpx; + font-family: 'GuildfordProBook 5'; +} + +.my-promotion .header .profit { + padding: 0 0.2*100rpx; + margin-top: 0.33*100rpx; + font-size: 0.24*100rpx; + color: rgba(255, 255, 255, 0.8); +} + +.my-promotion .header .profit .item { + min-width: 2*100rpx; + text-align: center; +} + +.my-promotion .header .profit .item .money { + font-size: 0.34*100rpx; + color: #fff; +} + +.my-promotion .bnt { + font-size: 0.28*100rpx; + color: #fff; + width: 2.58*100rpx; + height: 0.68*100rpx; + border-radius: 0.5*100rpx; + text-align: center; + line-height: 0.68*100rpx; + margin: -0.32*100rpx auto 0 auto; +} + +.my-promotion .list { + padding: 0 0.2*100rpx; + margin-top: 0.1*100rpx; +} + +.my-promotion .list .item { + width: 3.45*100rpx; + height: 2.4*100rpx; + border-radius: 0.2*100rpx; + background-color: #fff; + margin-top: 0.2*100rpx; + font-size: 0.3*100rpx; + color: #666; +} + +.my-promotion .list .item .iconfont { + font-size: 0.7*100rpx; + /* background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); */ + /* background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); */ + margin-bottom: 0.2*100rpx; + color: #eb3729 +} + +/*我的账户*/ +.my-account .wrapper { + background-color: #fff; + padding: 0.32*100rpx 0 0.34*100rpx 0; + margin-bottom: 0.14*100rpx; +} + +.my-account .wrapper .header { + width: 6.9*100rpx; + height: 3.3*100rpx; + background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); + background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); + border-radius: 0.16*100rpx; + margin: 0 auto; + color: rgba(255, 255, 255, 0.6); + font-size: 0.24*100rpx; +} + +.my-account .wrapper .header .headerCon { + height: 100%; + width: 100%; + padding: 0.36*100rpx 0 0.29*100rpx 0; +} + +.my-account .wrapper .header .headerCon .account { + padding: 0 0.35*100rpx; +} + +.my-account .wrapper .header .headerCon .account .assets .money { + font-size: 0.72*100rpx; + color: #fff; + font-family: 'GuildfordProBook 5'; + margin-top: 0.1*100rpx; + height: 0.75*100rpx; + line-height: 0.75*100rpx; +} + +.my-account .wrapper .header .headerCon .account .recharge { + font-size: 0.28*100rpx; + width: 1.5*100rpx; + height: 0.54*100rpx; + border-radius: 0.27*100rpx; + background-color: #fff9f8; + text-align: center; + line-height: 0.54*100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative { + margin-top: 0.46*100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + padding-left: 0.35*100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative .item .money { + font-size: 0.48*100rpx; + font-family: 'GuildfordProBook 5'; + color: #fff; + margin-top: 0.06*100rpx; +} + +.my-account .wrapper .nav { + height: 1.55*100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.my-account .wrapper .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.26*100rpx; + color: #999; +} + +.my-account .wrapper .nav .item .pictrue { + width: 0.44*100rpx; + height: 0.44*100rpx; + margin: 0 auto; + margin-bottom: 0.2*100rpx; +} + +.my-account .wrapper .nav .item .pictrue image { + width: 100%; + height: 100%; +} + +.my-account .wrapper .advert { + padding: 0 0.3*100rpx; + margin-top: 0.3*100rpx; +} + +.my-account .wrapper .advert .item { + background-color: #fff6d1; + width: 3.32*100rpx; + height: 1.18*100rpx; + border-radius: 0.1*100rpx; + padding: 0 0.27*100rpx 0 0.25*100rpx; + font-size: 0.24*100rpx; + color: #e44609; +} + +.my-account .wrapper .advert .item.on { + background-color: #fff3f3; + color: #e96868; +} + +.my-account .wrapper .advert .item .pictrue { + width: 0.78*100rpx; + height: 0.78*100rpx; +} + +.my-account .wrapper .advert .item .pictrue image { + width: 100%; + height: 100%; +} + +.my-account .wrapper .advert .item .text .name { + font-size: 0.3*100rpx; + font-weight: bold; + color: #f33c2b; + margin-bottom: 0.07*100rpx; +} + +.my-account .wrapper .advert .item.on .text .name { + color: #f64051; +} + +.my-account .wrapper .list { + padding: 0 0.3*100rpx; +} + +.my-account .wrapper .list .item { + margin-top: 0.44*100rpx; +} + +.my-account .wrapper .list .item .picTxt .iconfont { + width: 0.82*100rpx; + height: 0.82*100rpx; + border-radius: 50%; + background-image: linear-gradient(to right, #ff9389 0%, #f9776b 100%); + background-image: -moz-linear-gradient(to right, #ff9389 0%, #f9776b 100%); + text-align: center; + line-height: 0.82*100rpx; + color: #fff; + font-size: 0.4*100rpx; +} + +.my-account .wrapper .list .item .picTxt .iconfont.yellow { + background-image: linear-gradient(to right, #ffccaa 0%, #fea060 100%); + background-image: -moz-linear-gradient(to right, #ffccaa 0%, #fea060 100%); +} + +.my-account .wrapper .list .item .picTxt .iconfont.green { + background-image: linear-gradient(to right, #a1d67c 0%, #9dd074 100%); + background-image: -moz-linear-gradient(to right, #a1d67c 0%, #9dd074 100%); +} + +.my-account .wrapper .list .item .picTxt { + width: 4.28*100rpx; + font-size: 0.3*100rpx; + color: #282828; +} + +.my-account .wrapper .list .item .picTxt .text { + width: 3.17*100rpx; +} + +.my-account .wrapper .list .item .picTxt .text .infor { + font-size: 0.24*100rpx; + color: #999; + margin-top: 0.05*100rpx; +} + +.my-account .wrapper .list .item .bnt { + font-size: 0.26*100rpx; + color: #282828; + width: 1.56*100rpx; + height: 0.52*100rpx; + border: 1px solid #ddd; + border-radius: 0.26*100rpx; + text-align: center; + line-height: 0.5*100rpx; +} + +.my-account .wrapper .list .item .bnt.end { + font-size: 0.26*100rpx; + color: #aaa; + background-color: #f2f2f2; + border-color: #f2f2f2; +} + +/*账单明细*/ +.bill-details .nav { + background-color: #fff; + height: 0.9*100rpx; + width: 100%; + line-height: 0.9*100rpx; +} + +.bill-details .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.3*100rpx; + color: #282828; + height: 100%; +} + +.bill-details .nav .item.on { + color: #e93323; + border-bottom: 0.03*100rpx solid #e93323; +} + +/*限时抢购*/ +.flash-sale .header { + width: 100%; + height: 2.4*100rpx; +} + +.flash-sale .header image { + width: 100%; + height: 100%; +} + +.flash-sale .whiteFixed { + position: fixed; + top: 0; + background-color: #fff; + left: 0; + width: 100%; + z-index: 5; +} + +.flash-sale .timeLsit { + width: 100%; + white-space: nowrap; + overflow: hidden; + height: 1.1*100rpx; +} + +.flash-sale .timeLsit .rush-time { + overflow-y: hidden; + overflow-x: auto; + width: 100%; + height: 1.5*100rpx; +} + +.flash-sale .timeLsit .item { + display: inline-block; + font-size: 0.22*100rpx; + color: #282828; + width: 2*100rpx; + text-align: center; + padding: 0.11*100rpx 0; + height: 0.96*100rpx; + background-color: #efc58f; +} + +.flash-sale .timeLsit .item~.item { + border-left: 1px solid #e3b06e; +} + +.flash-sale .timeLsit .item .time { + font-size: 0.32*100rpx; + font-weight: bold; + height: 0.37*100rpx; + line-height: 0.37*100rpx; +} + +.flash-sale .timeLsit .item.on { + background-color: #e93323; + color: #fff; + position: relative; +} + +.flash-sale .timeLsit .item.on::before { + content: ""; + width: 0; + height: 0; + border-left: 0.08*100rpx solid transparent; + border-right: 0.08*100rpx solid transparent; + border-top: 0.1*100rpx solid #e93323; + position: absolute; + bottom: -0.09*100rpx; + z-index: 99; + left: 50%; + transform: translateX(-50%); +} + +.flash-sale .countDown { + height: 0.92*100rpx; + border-bottom: 1px solid #f0f0f0; + font-size: 0.28*100rpx; + color: #282828; +} + +.flash-sale .countDown .timeTxt { + color: #fc4141; +} + +.flash-sale .countDown .time { + font-size: 0.28*100rpx; + color: #282828 +} + +.flash-sale .countDown .styleAll { + font-size: 0.28*100rpx; + font-weight: bold; + background-color: #ffcfcb; + padding: 0.04*100rpx 0.07*100rpx; + border-radius: 0.03*100rpx; + color: #fc4141; +} + +.flash-sale .countDown .text {} + +.flash-sale .list.on { + margin-top: 2.02*100rpx; +} + +.flash-sale .list .item { + padding: 0 0.3*100rpx; + border-bottom: 1px solid #f0f0f0; + height: 2.27*100rpx; + position: relative; +} + +.flash-sale .list .item .pictrue { + width: 1.66*100rpx; + height: 1.66*100rpx; +} + +.flash-sale .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.flash-sale .list .item .text { + width: 5*100rpx; + font-size: 0.3*100rpx; + color: #333; + height: 1.66*100rpx; +} + +.flash-sale .list .item .text .money { + font-size: 0.24*100rpx; + color: #282828; + margin-top: -0.13*100rpx; +} + +.flash-sale .list .item .text .money .num { + font-size: 0.34*100rpx; + font-weight: bold; +} + +.flash-sale .list .item .text .progress { + overflow: hidden; + background-color: #fff; + width: 2.6*100rpx; + border-radius: 0.2*100rpx; + height: 0.34*100rpx; + position: relative; +} + +.flash-sale .list .item .text .progress .bg-red { + width: 0; + height: 100%; + transition: width 0.6s ease; + background-color: #ffe3e1; +} + +.flash-sale .list .item .text .progress .piece { + position: absolute; + left: 0; + right: 0; + transform: translate(0, -50%); + top: 49%; + font-size: 0.22*100rpx; + word-wrap: normal; + text-align: center; +} + +.flash-sale .list .item .grab { + font-size: 0.28*100rpx; + color: #fff; + width: 1.4*100rpx; + height: 0.54*100rpx; + border-radius: 0.04*100rpx; + text-align: center; + line-height: 0.54*100rpx; + position: absolute; + right: 0.3*100rpx; + bottom: 0.3*100rpx; +} + +/*抢购详情页*/ +.product-con .nav { + box-sizing: border-box; + background-image: url('https://h5.yixiang.co/static/images/rushBuy.jpg'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 1*100rpx; + padding: 0 0.3*100rpx; +} + +.product-con .nav .money { + font-size: 0.28*100rpx; + color: #fff; +} + +.product-con .nav .money .num { + font-size: 0.48*100rpx; +} + +.product-con .nav .money .y-money { + font-size: 0.26*100rpx; + margin-left: 0.1*100rpx; + text-decoration: line-through; +} + +.product-con .nav .times { + font-size: 0.2*100rpx; + color: #fff; + text-align: center; + margin-bottom: 0.04*100rpx; +} + +.product-con .nav .times .time { + margin-top: 0.07*100rpx; +} + +.product-con .nav .times .time .styleAll { + padding: 0 0.07*100rpx; + font-size: 0.22*100rpx; + color: #ff3d3d; + background-color: #fff; + border-radius: 0.02*100rpx; +} + +.product-con .nav .iconfont { + color: #fff; + font-size: 0.3*100rpx; + margin-left: 0.2*100rpx; +} + +.product-con .wrapperRush { + padding: 0.32*100rpx 0.3*100rpx; + background-color: #fff; +} + +.product-con .wrapperRush .introduce .infor { + width: 5.7*100rpx; + font-size: 0.32*100rpx; + font-weight: bold; +} + +.product-con .wrapperRush .introduce .iconfont { + font-size: 0.37*100rpx; + color: #515151; +} + +.product-con .wrapperRush .label { + margin: 0.18*100rpx 0 0 0; + font-size: 0.24*100rpx; + color: #82848f; +} + +.product-con .wrapperRush .label .stock { + width: 2.55*100rpx; + margin-right: 0.28*100rpx; +} + +.product-con .footerRush { + position: fixed; + bottom: 0; + width: 100%; + height: 1*100rpx; + background-color: #fff; + font-size: 0.18*100rpx; + color: #666; + z-index: 99; +} + +.product-con .footerRush .customerSer { + width: 14%; + font-size: 0.2*100rpx; + color: #666; +} + +.product-con .footerRush .bnt { + width: 100%; + text-align: center; + line-height: 1*100rpx; + height: 100%; + color: #fff; + font-size: 0.3*100rpx; +} + +/*新闻*/ +.newsList .swiperNews { + width: 6.9*100rpx; + height: 3.67*100rpx; + margin: 0.3*100rpx auto 0 auto; +} + +.newsList .swiperNews .swiper-slide { + width: 100%; + height: 3.3*100rpx; +} + +.newsList .swiperNews .slide-image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.newsList .swiperNews .swiper-pagination-bullet { + width: 0.12*100rpx; + height: 0.12*100rpx; + border-radius: 0; + transform: rotate(-45deg); + transform-origin: 0 100%; + -ms-transform-origin: 0 100%; + -o-transform-origin: 0 100%; + background-color: #d1d1d1; + opacity: 1; + margin: 0 0.1*100rpx; +} + +.newsList .swiperNews .swiper-pagination-bullet-active { + background-color: #666666; + border: 0; +} + +.newsList .swiperNews .swiper-pagination { + bottom: -0.07*100rpx; + width: 100%; +} + +.newsList .nav { + padding: 0 0.3*100rpx; + width: 100%; + height: 1.05*100rpx; + overflow: hidden; + background-color: #fff; +} + +.newsList .nav.on { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 5; +} + +.newsList .nav .scrollNav { + white-space: nowrap; + overflow-y: hidden; + overflow-x: auto; + width: 100%; +} + +.newsList .nav .item { + display: inline-block; + font-size: 0.32*100rpx; + color: #999; + margin-top: 0.4*100rpx; +} + +.newsList .nav .item.on { + color: #282828; +} + +.newsList .nav .item~.item { + margin-left: 0.46*100rpx; +} + +.newsList .nav .item .line { + width: 0.24*100rpx; + height: 0.04*100rpx; + border-radius: 0.02*100rpx; + margin: 0.1*100rpx auto 0 auto; +} + +.newsList .list.on { + margin-top: 1.05*100rpx; +} + +.newsList .list .item { + margin: 0 0.3*100rpx; + border-bottom: 1px solid #f0f0f0; + padding: 0.35*100rpx 0; +} + +.newsList .list .item .pictrue { + width: 2.5*100rpx; + height: 1.56*100rpx; +} + +.newsList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.newsList .list .item .text { + width: 4.2*100rpx; + height: 1.56*100rpx; + font-size: 0.24*100rpx; + color: #999; +} + +.newsList .list .item .text .name { + font-size: 0.3*100rpx; + color: #282828; +} + +.newsList .list .item .picList .pictrue { + width: 3.35*100rpx; + height: 2.1*100rpx; + margin-top: 0.3*100rpx; +} + +.newsList .list .item .picList.on .pictrue { + width: 2.17*100rpx; + height: 1.36*100rpx; +} + +.newsList .list .item .picList .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.newsList .list .item .time { + text-align: right; + font-size: 0.24*100rpx; + color: #999; + margin-top: 0.22*100rpx; +} + +.newsList .van-tabs__wrap { + top: 0 !important; +} + +/*新闻详情*/ +.newsDetail .title { + padding: 0 0.3*100rpx; + font-size: 0.34*100rpx; + color: #282828; + font-weight: bold; + margin: 0.45*100rpx 0 0.23*100rpx 0; + line-height: 1.5; +} + +.newsDetail .list { + margin: 0 0.3*100rpx; + border-bottom: 1px solid #eee; + padding-bottom: 0.25*100rpx; +} + +.newsDetail .list .label { + font-size: 0.24*100rpx; + height: 0.38*100rpx; + border-radius: 0.03*100rpx; + text-align: center; + line-height: 0.36*100rpx; + padding: 0 0.1*100rpx; + max-width: 1.9*100rpx; + width: unset; +} + +.newsDetail .list .item { + margin-left: 0.27*100rpx; + font-size: 0.24*100rpx; + color: #999; +} + +.newsDetail .list .item .iconfont { + font-size: 0.28*100rpx; + margin-right: 0.1*100rpx; +} + +.newsDetail .list .item .iconfont.icon-shenhezhong { + font-size: 0.26*100rpx; +} + +.newsDetail .conter { + padding: 0 0.3*100rpx; + font-size: 0.3*100rpx; + color: #333; + line-height: 1.8; + padding-top: 0.35*100rpx; +} + +.newsDetail .conter image { + width: 100%; + display: block; +} + +/*佣金明细*/ +.commission-details .promoterHeader .headerCon .money { + font-size: 0.36*100rpx; +} + +.commission-details .promoterHeader .headerCon .money .num { + font-family: 'GuildfordProBook 5'; +} + +/*立即注册*/ +.register { + background-image: linear-gradient(to bottom, #eb3729 0%, #eb3729 100%); + background-image: -moz-linear-gradient(to bottom, #eb3729 0%, #eb3729 100%); + width: 100%; + height: 100vh; +} + +.register .shading { + background-image: url("https://h5.yixiang.co/static/images/registerw.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 2.86*100rpx; + padding-top: 0.7*100rpx; +} + +.register .shading .pictrue { + width: 1.72*100rpx; + height: 1.72*100rpx; + border-radius: 50%; + background-color: rgba(255, 255, 255, 0.8); + margin: 0 auto; +} + +.register .shading .pictrue image { + width: 1.64*100rpx; + height: 1.64*100rpx; + border-radius: 50%; + display: block; +} + +.register .whiteBg { + width: 6.2*100rpx; + border-radius: 0.16*100rpx; + background-color: #fff; + margin: 0.3*100rpx auto 0 auto; + padding: 0.45*100rpx 0.3*100rpx 0 0.3*100rpx; +} + +.register .whiteBg .title { + font-size: 0.36*100rpx; + color: #282828; + text-align: center; + font-weight: bold; +} + +.register .whiteBg .title .item~.item { + margin-left: 0.85*100rpx; +} + +.register .whiteBg .title .item { + color: #999999; + border-bottom: 0.05*100rpx solid #fff; + padding-bottom: 0.1*100rpx; +} + +.register .whiteBg .title .item.on { + color: #282828; + border-bottom-color: #f35749; +} + +.register .whiteBg .list .item { + border-bottom: 1px solid #ededed; + padding: 0.47*100rpx 0 0.13*100rpx 0; + position: relative; +} + +.register .whiteBg .list .item .name { + font-size: 0.26*100rpx; + color: #2d3342; + margin-bottom: 0.27*100rpx; + text-align: left; +} + +.register .whiteBg .list .item .icon { + font-size: 0.35*100rpx; + margin-right: 0.32*100rpx; +} + +.register .whiteBg .list .item input { + font-size: 0.33*100rpx; + width: 4.9*100rpx; +} + +.register .whiteBg .list .item input::placeholder { + color: #cccccc; +} + +.register .whiteBg .list .item .codeIput { + width: 2.5*100rpx; +} + +.register .whiteBg .list .item .code { + position: absolute; + width: 1.5*100rpx; + height: 0.5*100rpx; + background-color: #f35446; + border-radius: 0.3*100rpx; + color: #fff; + line-height: 0.5*100rpx; + text-align: center; + bottom: 0.17*100rpx; + right: 0; + font-size: 0.25*100rpx; +} + +.register .whiteBg .list .item .code.on { + background-color: #bbbbbb; +} + +.register .whiteBg .list .forgetPwd { + text-align: right; + font-size: 0.28*100rpx; + color: #cccccc; + margin-top: 0.2*100rpx; +} + +.register .whiteBg .list .forgetPwd .iconfont { + font-size: 0.3*100rpx; + margin-right: 0.1*100rpx; + vertical-align: middle; +} + +.register .whiteBg .logon { + font-size: 0.34*100rpx; + color: #fff; + font-weight: bold; + height: 0.86*100rpx; + border-radius: 0.43*100rpx; + background: linear-gradient(to right, #f35447 0%, #ff8e3c 100%); + background: -moz-linear-gradient(to right, #f35447 0%, #ff8e3c 100%); + text-align: center; + line-height: 0.86*100rpx; + margin-top: 0.47*100rpx; +} + +.register .whiteBg .tip { + height: 1.1*100rpx; + text-align: center; + line-height: 1.05*100rpx; + font-size: 0.3*100rpx; + color: #cccccc; +} + +.register .bottom { + background-image: url("https://h5.yixiang.co/static/images/registerB.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.2*100rpx; + height: 0.36*100rpx; + margin: 0 auto; +} + +/*返回主页按钮*/ +.home { + position: fixed; + top: 7.8*100rpx; + color: white; + text-align: center; + z-index: 33; + right: 0.1*100rpx; +} + +.home .homeCon { + overflow: hidden; + width: 0.86*100rpx; + border-radius: 0.5*100rpx; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); + height: 0; + color: #e93323; +} + +.home .homeCon.on { + opacity: 1; + transform: scale(1); + height: 3*100rpx; + padding: 0.34*100rpx 0; + margin-bottom: 0.2*100rpx; +} + +.home .homeCon .iconfont { + font-size: 0.48*100rpx; + color: #fff; + display: inline-block; + height: 0.9*100rpx; + margin: 0 auto; +} + +.home .pictrue { + width: 0.86*100rpx; + height: 0.86*100rpx; + border-radius: 50%; +} + +.home .pictrue .image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +/*商户管理公共样式*/ +.pos-order-goods { + padding: 0 0.3*100rpx; + background-color: #fff; +} + +.pos-order-goods .goods { + height: 1.85*100rpx; +} + +.pos-order-goods .goods~.goods { + border-top: 1px dashed #e5e5e5; +} + +.pos-order-goods .goods .picTxt { + width: 5.15*100rpx; +} + +.pos-order-goods .goods .picTxt .pictrue { + width: 1.3*100rpx; + height: 1.3*100rpx; +} + +.pos-order-goods .goods .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06*100rpx; +} + +.pos-order-goods .goods .picTxt .text { + width: 3.65*100rpx; + height: 1.3*100rpx; +} + +.pos-order-goods .goods .picTxt .text .info { + font-size: 0.28*100rpx; + color: #282828; +} + +.pos-order-goods .goods .picTxt .text .attr { + font-size: 0.2*100rpx; + color: #999; +} + +.pos-order-goods .goods .money { + width: 1.64*100rpx; + text-align: right; + font-size: 0.28*100rpx; +} + +.pos-order-goods .goods .money .x-money { + color: #282828; +} + +.pos-order-goods .goods .money .num { + color: #ff9600; + margin: 0.05*100rpx 0; +} + +.pos-order-goods .goods .money .y-money { + color: #999; + text-decoration: line-through; +} + +.public-total { + font-size: 0.28*100rpx; + color: #282828; + border-top: 1px solid #eee; + height: 0.92*100rpx; + line-height: 0.92*100rpx; + text-align: right; + padding: 0 0.3*100rpx; + background-color: #fff; +} + +.public-total .money { + color: #ff4c3c; +} + +.priceChange { + position: fixed; + width: 5.8*100rpx; + height: 6.7*100rpx; + background-color: #fff; + border-radius: 0.1*100rpx; + top: 50%; + left: 50%; + margin-left: -2.9*100rpx; + margin-top: -3.35*100rpx; + z-index: 99; + transition: all 0.3s ease-in-out 0s; + transform: scale(0); + opacity: 0; +} + +.priceChange.on { + opacity: 1; + transform: scale(1); +} + +.priceChange .priceTitle { + background: url("https://www.xdd618.com/api/file/pic/pricetitle.jpg") no-repeat; + background-size: 100% 100%; + width: 100%; + height: 1.6*100rpx; + border-radius: 0.1*100rpx 0.1*100rpx 0 0; + text-align: center; + font-size: 0.4*100rpx; + color: #fff; + line-height: 1.6*100rpx; + position: relative; +} + +.priceChange .priceTitle .iconfont { + position: absolute; + font-size: 0.4*100rpx; + right: 0.26*100rpx; + top: 0.23*100rpx; + width: 0.4*100rpx; + height: 0.4*100rpx; + line-height: 0.4*100rpx; +} + +.priceChange .listChange { + padding: 0 0.4*100rpx; +} + +.priceChange .listChange .item { + height: 1.03*100rpx; + border-bottom: 1px solid #e3e3e3; + font-size: 0.32*100rpx; + color: #333; +} + +.priceChange .listChange .item .money { + color: #666; + width: 3*100rpx; + text-align: right; +} + +.priceChange .listChange .item .money .iconfont { + font-size: 0.32*100rpx; + margin-left: 0.2*100rpx; +} + +.priceChange .listChange .item .money input { + width: 100%; + height: 100%; + text-align: right; + color: #ccc; +} + +.priceChange .listChange .item .money input.on { + color: #666; +} + +.priceChange .modify { + font-size: 0.32*100rpx; + color: #fff; + width: 4.9*100rpx; + height: 0.9*100rpx; + text-align: center; + line-height: 0.9*100rpx; + border-radius: 0.45*100rpx; + background-color: #2291f8; + margin: 0.53*100rpx auto 0 auto; +} + +.priceChange .modify1 { + font-size: 0.32*100rpx; + color: #312b2b; + width: 4.9*100rpx; + height: 0.9*100rpx; + text-align: center; + line-height: 0.9*100rpx; + border-radius: 0.45*100rpx; + background-color: #eee; + margin: 0.3*100rpx auto 0 auto; +} + +.public-wrapper .title { + font-size: 0.3*100rpx; + color: #282828; + padding: 0 0.3*100rpx; + margin-bottom: 0.2*100rpx; +} + +.public-wrapper .title .iconfont { + color: #2291f8; + font-size: 0.4*100rpx; + margin-right: 0.13*100rpx; + vertical-align: middle; +} + +.public-wrapper { + margin: 0.18*100rpx auto 0 auto; + width: 6.9*100rpx; + background-color: #fff; + border-radius: 0.1*100rpx; + padding-top: 0.25*100rpx; +} + +.public-wrapper .nav { + padding: 0 0.3*100rpx; + height: 0.7*100rpx; + line-height: 0.7*100rpx; + font-size: 0.24*100rpx; + color: #999; +} + +.public-wrapper .data { + width: 2.1*100rpx; + text-align: left; +} + +.public-wrapper .browse { + width: 1.92*100rpx; + text-align: right; +} + +.public-wrapper .turnover { + width: 2.27*100rpx; + text-align: right; +} + +.public-wrapper .conter { + padding: 0 0.3*100rpx; +} + +.public-wrapper .conter .item { + border-bottom: 1px solid #f7f7f7; + height: 0.7*100rpx; + font-size: 0.24*100rpx; +} + +.public-wrapper .conter .item .turnover { + color: #d84242; +} + +/*商户管理订单列表*/ +.pos-order-list .nav { + width: 100%; + height: 0.96*100rpx; + background-color: #fff; + font-size: 0.3*100rpx; + color: #282828; + position: fixed; + top: 0; + left: 0; +} + +.pos-order-list .nav .item.on { + color: #2291f8; +} + +.pos-order-list .list { + margin-top: 1.2*100rpx; +} + +.pos-order-list .list .item { + background-color: #fff; + width: 100%; +} + +.pos-order-list .list .item~.item { + margin-top: 0.24*100rpx; +} + +.pos-order-list .list .item .order-num { + border-bottom: 1px solid #eee; + font-size: 0.26*100rpx; + font-weight: bold; + color: #282828; + padding: .2*100rpx 0.3*100rpx; + display: flex; + align-items: center; + justify-content: space-between; +} + +.pos-order-list .list .item .order-num .time { + font-size: 0.26*100rpx; + font-weight: normal; + color: #999; + display: flex; + align-items: center; +} + +.pos-order-list .list .item .operation { + padding: 0.2*100rpx 0.3*100rpx; + margin-top: 0.03*100rpx; +} + +.pos-order-list .list .item .operation .more { + position: relative; +} + +.pos-order-list .list .item .operation .icon-gengduo { + font-size: 0.5*100rpx; + color: #aaa; +} + +.pos-order-list .list .item .operation .order .arrow { + width: 0; + height: 0; + border-left: 0.11*100rpx solid transparent; + border-right: 0.11*100rpx solid transparent; + border-top: 0.2*100rpx solid #e5e5e5; + position: absolute; + left: 0.15*100rpx; + bottom: -0.18*100rpx; +} + +.pos-order-list .list .item .operation .order .arrow:before { + content: ''; + width: 0; + height: 0; + border-left: 0.07*100rpx solid transparent; + border-right: 0.07*100rpx solid transparent; + border-top: 0.2*100rpx solid #fff; + position: absolute; + left: -0.07*100rpx; + bottom: 0; +} + +.pos-order-list .list .item .operation .order { + width: 2*100rpx; + background-color: #fff; + border: 1px solid #eee; + border-radius: 0.1*100rpx; + position: absolute; + top: -1*100rpx; + z-index: 9; +} + +.pos-order-list .list .item .operation .order .items { + height: 0.77*100rpx; + line-height: 0.77*100rpx; + text-align: center; +} + +.pos-order-list .list .item .operation .order .items~.items { + border-top: 1px solid #f5f5f5; +} + +.pos-order-list .list .item .operation .bnt { + font-size: 0.28*100rpx; + color: #5c5c5c; + width: 1.7*100rpx; + height: 0.6*100rpx; + border-radius: 0.3*100rpx; + border: 1px solid #bbb; + text-align: center; + line-height: 0.6*100rpx; +} + +.pos-order-list .list .item .operation .bnt~.bnt { + margin-left: 0.14*100rpx; +} + +/*商户管理订单详情*/ +.pos-order-details .header { + background: linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); + background: -moz-linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); +} + +.pos-order-details .header .state { + font-size: 0.36*100rpx; + color: #fff; +} + +.pos-order-details .header .data { + margin-left: 0.35*100rpx; + font-size: 0.28*100rpx; +} + +.pos-order-details .header .data .order-num { + font-size: 0.3*100rpx; + margin-bottom: 0.08*100rpx; +} + +.pos-order-details .remarks { + width: 100%; + height: 0.86*100rpx; + background-color: #fff; + padding: 0 0.3*100rpx; +} + +.pos-order-details .remarks .iconfont { + font-size: 0.4*100rpx; + color: #2a7efb; +} + +.pos-order-details .remarks input { + width: 6.3*100rpx; + height: 100%; + font-size: 0.3*100rpx; +} + +.pos-order-details .remarks input::placeholder { + color: #666; +} + +.pos-order-details .orderingUser { + font-size: 0.26*100rpx; + color: #282828; + padding: 0 0.3*100rpx; + height: 0*100rpx; + background-color: #fff; + margin-top: 0.16*100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.pos-order-details .orderingUser .iconfont { + font-size: 0.4*100rpx; + color: #2a7efb; + margin-right: 0.15*100rpx; +} + +.pos-order-details .address { + margin-top: 0; +} + +.pos-order-details .pos-order-goods { + margin-top: 0.17*100rpx; +} + +.pos-order-details .footer .more { + font-size: 0.27*100rpx; + color: #aaa; + width: 1*100rpx; + height: 0.64*100rpx; + text-align: center; + line-height: 0.64*100rpx; + margin-right: 0.25*100rpx; + position: relative; +} + +.pos-order-details .footer .delivery { + background: linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); + background: -moz-linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); +} + +.pos-order-details .footer .more .order .arrow { + width: 0; + height: 0; + border-left: 0.11*100rpx solid transparent; + border-right: 0.11*100rpx solid transparent; + border-top: 0.2*100rpx solid #e5e5e5; + position: absolute; + left: 0.15*100rpx; + bottom: -0.18*100rpx; +} + +.pos-order-details .footer .more .order .arrow:before { + content: ''; + width: 0; + height: 0; + border-left: 0.09*100rpx solid transparent; + border-right: 0.09*100rpx solid transparent; + border-top: 0.19*100rpx solid #fff; + position: absolute; + left: -0.1*100rpx; + bottom: 0; +} + +.pos-order-details .footer .more .order { + width: 2*100rpx; + background-color: #fff; + border: 1px solid #eee; + border-radius: 0.1*100rpx; + position: absolute; + top: -2*100rpx; + z-index: 9; +} + +.pos-order-details .footer .more .order .item { + height: 0.77*100rpx; + line-height: 0.77*100rpx; +} + +.pos-order-details .footer .more .order .item~.item { + border-top: 1px solid #f5f5f5; +} + +.pos-order-details .footer .more .moreName { + width: 100%; + height: 100%; +} + +/*发货*/ +.deliver-goods header { + width: 100%; + background-color: #fff; + margin-top: 0.1*100rpx; +} + +.deliver-goods header .order-num { + padding: 0 0.3*100rpx; + border-bottom: 1px solid #f5f5f5; + height: 0.67*100rpx; +} + +.deliver-goods header .order-num .num { + width: 4.3*100rpx; + font-size: 0.26*100rpx; + color: #282828; + position: relative; +} + +.deliver-goods header .order-num .num:after { + position: absolute; + content: ''; + width: 1px; + height: 0.3*100rpx; + background-color: #ddd; + top: 50%; + margin-top: -0.15*100rpx; + right: 0; +} + +.deliver-goods header .order-num .name { + width: 2.6*100rpx; + font-size: 0.26*100rpx; + color: #282828; + text-align: center; +} + +.deliver-goods header .order-num .name .iconfont { + font-size: 0.35*100rpx; + color: #477ef3; + vertical-align: middle; + margin-right: 0.1*100rpx; +} + +.deliver-goods header .address { + font-size: 0.26*100rpx; + color: #868686; + background-color: #fff; + padding: 0.3*100rpx; +} + +.deliver-goods header .address .name { + font-size: 0.3*100rpx; + color: #282828; + margin-bottom: 0.1*100rpx; +} + +.deliver-goods header .address .name .phone { + margin-left: 0.4*100rpx; +} + +.deliver-goods header .line { + width: 100%; + height: 0.03*100rpx; +} + +.deliver-goods header .line image { + width: 100%; + height: 100%; + display: block; +} + +.deliver-goods .wrapper { + width: 100%; + background-color: #fff; +} + +.deliver-goods .wrapper .item { + border-bottom: 1px solid #f0f0f0; + padding: 0 0.3*100rpx; + height: 0.96*100rpx; + font-size: 0.32*100rpx; + color: #282828; + position: relative; +} + +.deliver-goods .wrapper .item .mode { + width: 4.6*100rpx; + height: 100%; + text-align: right; +} + +.deliver-goods .wrapper .item .mode .iconfont { + font-size: 0.3*100rpx; + margin-left: 0.13*100rpx; +} + +.deliver-goods .wrapper .item .mode .goods~.goods { + margin-left: 0.3*100rpx; +} + +.deliver-goods .wrapper .item .mode .goods { + color: #bbb; +} + +.deliver-goods .wrapper .item .mode .goods.on { + color: #477ef3; +} + +.deliver-goods .wrapper .item .icon-up { + position: absolute; + font-size: 0.35*100rpx; + color: #2c2c2c; + right: 0.3*100rpx; +} + +.deliver-goods .wrapper .item select { + direction: rtl; + padding-right: 0.6*100rpx; + position: relative; + z-index: 2; +} + +.deliver-goods .wrapper .item input::placeholder { + color: #bbb; +} + +.deliver-goods .confirm { + font-size: 0.32*100rpx; + color: #fff; + width: 100%; + height: 1*100rpx; + background-color: #477ef3; + text-align: center; + line-height: 1*100rpx; + position: fixed; + bottom: 0; +} + +/*订单首页*/ +.order-index .header { + box-sizing: border-box; + background-size: 100% 100%; + width: 100%; + height: 3.02*100rpx; + padding: 0.45*100rpx 0.3*100rpx 0 0.3*100rpx; + position: relative; + // background-color: #eb3729; + +} + +.order-index .image { + position: absolute; + width: 100%; + left: 0; + right: 0; + top: 0; + z-index: 0; +} + + +.order-index .header:after { + position: absolute; + left: 0; + right: 0; + bottom: -0.98*100rpx; + z-index: -1; + content: ''; + height: 1*100rpx; + width: 100%; + border-radius: 0 0 50% 50%; + // background-color: #eb3729; +} + +.order-index .header .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.24*100rpx; + color: #fff; +} + +.order-index .header .item .num { + font-size: 0.4*100rpx; + margin-bottom: 0.07*100rpx; +} + +.order-index .wrapper { + position: relative; + width: 6.9*100rpx; + background-color: #fff; + border-radius: 0.1*100rpx; + margin: -1.15*100rpx auto 0 auto; + padding-top: 0.25*100rpx; + z-index: 99; +} + +.order-index .wrapper .title { + font-size: 0.3*100rpx; + color: #282828; + padding: 0 0.3*100rpx; + margin-bottom: 0.4*100rpx; +} + +.order-index .wrapper .title .iconfont { + color: #2291f8; + font-size: 0.4*100rpx; + margin-right: 0.13*100rpx; + vertical-align: middle; +} + +.order-index .wrapper .list .item { + width: 33.33%; + text-align: center; + font-size: 0.24*100rpx; + color: #999; + margin-bottom: 0.45*100rpx; +} + +.order-index .wrapper .list .item .num { + font-size: 0.4*100rpx; + color: #333; +} + +/*交易额统计*/ +.statistical-page .navs { + width: 100%; + height: 0.96*100rpx; + background-color: #fff; + overflow: hidden; + line-height: 0.96*100rpx; + position: fixed; + top: 0; + left: 0; + z-index: 9; +} + +.statistical-page .navs .list { + overflow-y: hidden; + overflow-x: auto; + white-space: nowrap; + width: 100%; +} + +.statistical-page .navs .item { + font-size: 0.32*100rpx; + color: #282828; + margin-left: 0.78*100rpx; + display: inline-block; +} + +.statistical-page .navs .item.on { + color: #2291f8; +} + +.statistical-page .navs .item .iconfont { + font-size: 0.25*100rpx; + margin-left: 0.13*100rpx; +} + +.statistical-page .wrapper { + box-sizing: border-box; + width: 100%; + background-color: #fff; + border-radius: 0.1*100rpx; + margin: 1.19*100rpx auto 0 auto; + padding: 0.3*100rpx 0.6*100rpx; +} + +.statistical-page .wrapper .title { + font-size: 0.3*100rpx; + color: #999; + text-align: center; +} + +.statistical-page .wrapper .money { + font-size: 0.72*100rpx; + color: #fba02a; + text-align: center; + margin-top: 0.1*100rpx; +} + +.statistical-page .wrapper .increase { + font-size: 0.28*100rpx; + color: #999; + margin-top: 0.2*100rpx; +} + +.statistical-page .wrapper .increase .red { + color: #ff6969; +} + +.statistical-page .wrapper .increase .green { + color: #1abb1d; +} + +.statistical-page .wrapper .increase .iconfont { + font-size: 0.23*100rpx; + margin-left: 0.15*100rpx; +} + +.statistical-page .chart { + width: 6.9*100rpx; + height: 4.8*100rpx; + background-color: #fff; + border-radius: 0.1*100rpx; + margin: 0.23*100rpx auto 0 auto; + padding: 0.25*100rpx 0.22*100rpx 0 0.22*100rpx; +} + +.statistical-page .chart .company { + font-size: 0.26*100rpx; + color: #999; +} + +.statistical-page .mc-body { + padding-bottom: 0; +} + +.statistical-page .mc-body tr { + background-color: #edf8fe; + border-top: 1px solid #fff; + width: 100%; +} + + +.statistical-page .mc-head-box view { + font-size: 14px; +} + + +.statistical-page .mc-range-mode .selected .mc-range-bg { + background-color: #a0dcf9; +} + + +.yd-confirm { + background-color: #fff; + font-size: unset; + width: 5.4*100rpx; + height: 2.5*100rpx; + border-radius: 0.4*100rpx; +} + +.yd-confirm-hd { + text-align: center; +} + +.yd-confirm-title { + color: #030303; + font-weight: bold; + font-size: 0.36*100rpx; +} + +.yd-confirm-bd { + text-align: center; + font-size: 0.28*100rpx; + color: #333333; +} + +.yd-confirm-ft { + line-height: 0.9*100rpx; + margin-top: 14px; + border-top: 0.01*100rpx solid #eee; +} + +.yd-confirm-ft>a { + color: #e93323; +} + +.yd-confirm-ft>a.primary { + border-left: 0.01*100rpx solid #eee; + color: #e93323; +} + +/*修改密码*/ +.ChangePassword .phone { + font-size: 0.32*100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.55*100rpx; +} + +.ChangePassword .list { + width: 5.8*100rpx; + margin: 0.53*100rpx auto 0 auto; +} + +.ChangePassword .list .item { + width: 100%; + height: 1.1*100rpx; + border-bottom: 0.02*100rpx solid #f0f0f0; +} + +.ChangePassword .list .item input { + width: 100%; + height: 100%; + font-size: 0.32*100rpx; +} + +.ChangePassword .list .item input::placeholder { + color: #b9b9bc; +} + +.ChangePassword .list .item input.codeIput { + width: 3.4*100rpx; +} + +.ChangePassword .list .item .code { + font-size: 0.32*100rpx; +} + +.ChangePassword .list .item .code.on { + color: #b9b9bc !important; +} + +.ChangePassword .confirmBnt { + font-size: 0.32*100rpx; + width: 5.8*100rpx; + height: 0.9*100rpx; + border-radius: 0.45*100rpx; + color: #fff; + + margin: 0.92*100rpx auto 0 auto; + text-align: center; + line-height: 0.9*100rpx; +} + +.swiper-wrapper {} + +.posterCanvasWarp { + position: relative; + width: 0; + height: 0; + overflow: hidden; + + .posterCanvas { + position: absolute; + left: 0; + top: 0; + width: 747px !important; + height: 1326px !important; + } +} + +.text .name .icon-jingpintuijian, +.text .name .icon-xinpin { + color: #00f !important; +} + +.text .name .icon-shoucang { + color: #ea3526 !important; +} + +rich-text { + width: 100%; + display: block; + + img, + image { + display: block; + width: 100%; + } +} + +/*单行文本溢出省略号*/ +.one-t { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + transition: all linear 0.2s; +} + +/*多行文本溢出省略号*/ +.more-t { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + transition: all linear 0.2s; +} +/* ================== + flex布局(colorui里面也有相关基础样式) + ==================== */ +/* x水平排列*/ +.x-f { + display: flex; + align-items: center; +} + +/*x两端且水平居中*/ +.x-bc { + display: flex; + justify-content: space-between; + align-items: center; +} + +/*x平分且水平居中*/ +.x-ac { + display: flex; + justify-content: space-around; + align-items: center; +} + +/*x水平靠上对齐*/ +.x-start { + display: flex; + align-items: flex-start; +} + +/*x水平靠下对齐*/ +.x-end { + display: flex; + align-items: flex-end; +} + +/*上下左右居中*/ +.x-c { + display: flex; + justify-content: center; + align-items: center; +} + +/*y竖直靠左*/ +.y-start { + display: flex; + flex-direction: column; + align-items: flex-start; +} + +/*y竖直靠右*/ +.y-end { + display: flex; + flex-direction: column; + align-items: flex-end; +} + +/*y竖直居中*/ +.y-f { + display: flex; + flex-direction: column; + align-items: center; +} + +// y竖直两端 +.y-b { + display: flex; + flex-direction: column; + justify-content: space-between; +} + +/*y竖直两端居中*/ +.y-bc { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +// v4 custom +.v4-nodata{ + display: flex; + flex-direction: column; + align-items: center; + margin-top: 60rpx; + image{ + width: 200rpx; + height:188rpx; + margin-bottom: 20rpx; + } + .text{ + color:#999; + font-size: 28rpx; + } +} diff --git a/assets/iconfont/iconfont.css b/assets/iconfont/iconfont.css new file mode 100644 index 0000000..01e5991 --- /dev/null +++ b/assets/iconfont/iconfont.css @@ -0,0 +1,661 @@ +@font-face {font-family: "iconfont"; + src: /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') + } + + .iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + .icon-jingpintuijian:before { + content: "\e60d"; + } + + .icon-xiaolian:before { + content: "\e60f"; + } + + .icon-yuandianxiao:before { + content: "\e82f"; + } + + .icon-xiazai5:before { + content: "\e605"; + } + + .icon-icon34:before { + content: "\e62b"; + } + + .icon-dadianhua01:before { + content: "\e623"; + } + + .icon-webicon318:before { + content: "\e6c2"; + } + + .icon-iconfontguanbi:before { + content: "\e643"; + } + + .icon-icon25201:before { + content: "\e70d"; + } + + .icon-cuxiaoguanli:before { + content: "\e60e"; + } + + .icon-miaosha:before { + content: "\e6c3"; + } + + .icon-huiyuan:before { + content: "\e60b"; + } + + .icon-caigou-xianxing:before { + content: "\e887"; + } + + .icon-caigou:before { + content: "\e888"; + } + + .icon-yingyongchengxu-xianxing:before { + content: "\e8a1"; + } + + .icon-yingyongchengxu:before { + content: "\e8a2"; + } + + .icon-ziyuan-xianxing:before { + content: "\e8a4"; + } + + .icon-shouye-xianxing:before { + content: "\e8ba"; + } + + .icon-shouye:before { + content: "\e8b9"; + } + + .icon-yonghu-xianxing:before { + content: "\e8c8"; + } + + .icon-yonghu:before { + content: "\e8c9"; + } + + .icon-ditu:before { + content: "\e906"; + } + + .icon-sousuo2:before { + content: "\e757"; + } + + .icon-2:before { + content: "\e684"; + } + + .icon-dizhi:before { + content: "\e608"; + } + + .icon-huangguan:before { + content: "\e624"; + } + + .icon-huangguan1:before { + content: "\e625"; + } + + .icon-huangguan2:before { + content: "\e626"; + } + + .icon-wuliu:before { + content: "\e6f2"; + } + + .icon-xuanzhong:before { + content: "\e615"; + } + + .icon-xinpin:before { + content: "\e610"; + } + + .icon-arrow:before { + content: "\e627"; + } + + .icon-yuezhifu:before { + content: "\e65e"; + } + + .icon-bianji:before { + content: "\e6cc"; + } + + .icon-wenti:before { + content: "\e758"; + } + + .icon-qiandai:before { + content: "\e6b1"; + } + + .icon-xiangyou:before { + content: "\e679"; + } + + .icon-paihang:before { + content: "\e73e"; + } + + .icon-weizhi:before { + content: "\e62d"; + } + + .icon-remen:before { + content: "\e67c"; + } + + .icon-tuandui:before { + content: "\e685"; + } + + .icon-yuezhifu1:before { + content: "\e61a"; + } + + .icon-yonghu2:before { + content: "\e60a"; + } + + .icon-hebingxingzhuang:before { + content: "\e656"; + } + + .icon-gouwuche1:before { + content: "\e642"; + } + + .icon-liulan:before { + content: "\e629"; + } + + .icon-jinbi1:before { + content: "\e655"; + } + + .icon-guanbi2:before { + content: "\e61c"; + } + + .icon-sousuo:before { + content: "\e67d"; + } + + .icon-weixin:before { + content: "\e600"; + } + + .icon-weixin3:before { + content: "\e618"; + } + + .icon-paihang1:before { + content: "\e633"; + } + + .icon-tongji:before { + content: "\e687"; + } + + .icon-caidan:before { + content: "\e62a"; + } + + .icon-erweima:before { + content: "\e607"; + } + + .icon-shoucang:before { + content: "\e606"; + } + + .icon-jian:before { + content: "\e621"; + } + + .icon-jia:before { + content: "\e7e0"; + } + + .icon-guanbi:before { + content: "\e62f"; + } + + .icon-xiangshang1:before { + content: "\e622"; + } + + .icon-shuoming:before { + content: "\e630"; + } + + .icon-xiala:before { + content: "\e67f"; + } + + .icon-pailie:before { + content: "\e61b"; + } + + .icon-fenxiang:before { + content: "\e603"; + } + + .icon-yinhangqia:before { + content: "\e72c"; + } + + .icon-sousuo1:before { + content: "\e64c"; + } + + .icon-duihao:before { + content: "\e64e"; + } + + .icon-dingdan:before { + content: "\e61e"; + } + + .icon-tupianpailie:before { + content: "\e620"; + } + + .icon-chongzhi:before { + content: "\e602"; + } + + .icon-shezhi:before { + content: "\e619"; + } + + .icon-shuoming1:before { + content: "\e673"; + } + + .icon-duihao2:before { + content: "\e601"; + } + + .icon-complete:before { + content: "\e646"; + } + + .icon-weixin1:before { + content: "\e66e"; + } + + .icon-xianxiazhifu:before { + content: "\e6e1"; + } + + .icon-tianjiadizhi:before { + content: "\e640"; + } + + .icon-weixin2:before { + content: "\e604"; + } + + .icon-gouwuche:before { + content: "\e669"; + } + + .icon-jiazai:before { + content: "\e62c"; + } + + .icon-huabanfuben:before { + content: "\e654"; + } + + .icon-kefu_o:before { + content: "\eb63"; + } + + .icon-liwu_o:before { + content: "\eb65"; + } + + .icon-anniu_jiantouzhankai_o:before { + content: "\eb89"; + } + + .icon-jiantou_xiayiye_o:before { + content: "\eb8f"; + } + + .icon-jiantou_shangxiaqiehuan_o:before { + content: "\eb90"; + } + + .icon-shangxiazhankai_o:before { + content: "\eb9a"; + } + + .icon-huobiliu_o:before { + content: "\eb9f"; + } + + .icon-jinbi_o:before { + content: "\eba1"; + } + + .icon-gerentouxiang_o:before { + content: "\ebac"; + } + + .icon-qunzu_o:before { + content: "\ebad"; + } + + .icon-dianhua_o:before { + content: "\ebaf"; + } + + .icon-shoucang_o:before { + content: "\ebae"; + } + + .icon-yunshangchuan_o:before { + content: "\ebb3"; + } + + .icon-bingtu_o:before { + content: "\ebb4"; + } + + .icon-baoguo_huanbaohe_o:before { + content: "\ebb6"; + } + + .icon-baoguo_quxiaoshouhuo_o:before { + content: "\ebb7"; + } + + .icon-baoguo_shouhuo_o:before { + content: "\ebb8"; + } + + .icon-baoguo_lingjian_o:before { + content: "\ebb9"; + } + + .icon-baoguo_shouna_o:before { + content: "\ebbe"; + } + + .icon-didiandingwei_o:before { + content: "\ebba"; + } + + .icon-zhekou:before { + content: "\e790"; + } + + .icon-laba:before { + content: "\e612"; + } + + .icon-quanxianguanlisuozi:before { + content: "\e6d2"; + } + + .icon-youjian:before { + content: "\e677"; + } + + .icon-xiala1:before { + content: "\e609"; + } + + .icon-weixinzhifu:before { + content: "\e632"; + } + + .icon-jingyanzhi:before { + content: "\e62e"; + } + + .icon-up:before { + content: "\e617"; + } + + .icon-kefu:before { + content: "\e6b2"; + } + + .icon-shenhezhong:before { + content: "\e6ce"; + } + + .icon-kanjia1:before { + content: "\e613"; + } + + .icon-shanchu1:before { + content: "\e611"; + } + + .icon-zhifubao:before { + content: "\e61d"; + } + + .icon-yonghu1:before { + content: "\e644"; + } + + .icon-suozi:before { + content: "\e631"; + } + + .icon-jiantou:before { + content: "\e641"; + } + + .icon-kanjia:before { + content: "\e69b"; + } + + .icon-pintuan:before { + content: "\e60c"; + } + + .icon-bianji1:before { + content: "\e614"; + } + + .icon-youhuiquan:before { + content: "\e6e4"; + } + + .icon-xiangxia:before { + content: "\e8ca"; + } + + .icon-shanchu:before { + content: "\e628"; + } + + .icon-guanbi3:before { + content: "\e6c5"; + } + + + .icon-weixuanzhong:before { + content: "\e6f0"; + } + + .icon-xuanzhong1:before { + content: "\e6ef"; + } + + .icon-zhuangshixian:before { + content: "\e6f1"; + } + + .icon-jishuzhichi:before { + content: "\e6f3"; + } + + .icon-biankuang:before { + content: "\e6f4"; + } + + .icon-guanbi1:before { + content: "\e6f5"; + } + + .icon-xiangshang:before { + content: "\ebbb"; + } + + .icon-icon-test:before { + content: "\e6f6"; + } + + .icon-mingxi:before { + content: "\e6f7"; + } + + .icon-tishengfenzhi:before { + content: "\e6f8"; + } + + .icon-pintuanchenggong:before { + content: "\e6f9"; + } + + .icon-pintuanshibai:before { + content: "\e6fa"; + } + + .icon-kongxinxing:before { + content: "\e6fc"; + } + + .icon-shitixing:before { + content: "\e6fb"; + } + + .icon-yituikuan:before { + content: "\e6fd"; + } + + .icon-tuikuanzhong:before { + content: "\e6fe"; + } + + .icon-lingxing:before { + content: "\e6ff"; + } + + .icon-xiangzuo:before { + content: "\ebbc"; + } + + .icon-icon_im_face:before { + content: "\eb96"; + } + + .icon-icon_im_keyboard:before { + content: "\eb97"; + } + + .icon-shoucang1:before { + content: "\e714"; + } + + .icon-dianhau:before { + content: "\e634"; + } + + .icon-zhinengkefu-:before { + content: "\e616"; + } + + .icon-code_:before { + content: "\e723"; + } + + .icon-code_1:before { + content: "\e724"; + } + + .icon-phone_:before { + content: "\e725"; + } + + .icon-shijian:before { + content: "\e635"; + } + + .icon-xiangxia2:before { + content: "\ebbd"; + } + + .icon-xuanzhong2:before { + content: "\e731"; + } + + .icon-shujutongji:before { + content: "\e732"; + } + + .icon-xiangxishuju:before { + content: "\e733"; + } + + .icon-gengduo:before { + content: "\e734"; + } + + + + .icon-haibao:before { + content: "\e73b"; + } + + .icon-tupian-:before { + content: "\e73f"; + } + + .icon-xiugai:before { + content: "\e61f"; + } + + .icon-pintuan-copy:before { + content: "\ebbf"; + } + + .icon-tonghua:before { + content: "\e740"; + } + + \ No newline at end of file diff --git a/assets/script/global.js b/assets/script/global.js new file mode 100644 index 0000000..1d3cc3a --- /dev/null +++ b/assets/script/global.js @@ -0,0 +1,54 @@ +export default { + // 通用导航 + commonJump: (uniapp_url) => { + let query = uniapp_url.indexOf("?name="); + if (query > -1) { + let start = query + 6; + let name = uniapp_url.substring(start) + uni.setStorageSync("name", name) + uni.switchTab({ + url: uniapp_url + }) + } + + switch (uniapp_url) { + case "": + uni.showToast({ + title: "开发中,敬请期待", + icon: 'none' + }) + break; + case "/pages/shop/GoodsClass/index": + uni.switchTab({ + url: uniapp_url + }) + break; + case "/pages/cloud/haveFun": + uni.switchTab({ + url: uniapp_url + }) + break; + default: + uni.navigateTo({ + url: uniapp_url + }) + break; + } + }, + + navToGoods: (id) => { + uni.navigateTo({ + url: "/pages/shop/GoodsCon/index?id=" + id + }) + }, + + diffSSS: (date) => { + if (typeof date !== "string") return 0; + date = date.substring(0, 19); + date = date.replace(/-/g, '/'); + let timestamp = new Date(date).getTime(); + let now = new Date().getTime(); + return timestamp - now; + } + +} diff --git a/components/AddressWindow.vue b/components/AddressWindow.vue new file mode 100644 index 0000000..4b4b484 --- /dev/null +++ b/components/AddressWindow.vue @@ -0,0 +1,77 @@ + + + + + 选择地址 + + + + + + + + {{ item.realName }} + {{ item.phone }} + + + {{ item.province }}{{ item.city }}{{ item.district + }}{{ item.detail }} + + + + + + + + + 新加地址 + + + + + diff --git a/components/CitySelect.vue b/components/CitySelect.vue new file mode 100644 index 0000000..f7e84eb --- /dev/null +++ b/components/CitySelect.vue @@ -0,0 +1,335 @@ + + + {{ value }} + + + + + 请选择地址 + + + + {{ provinceActive.n }} + + + {{ cityActive.n }} + + + {{ districtActive.n }} + + + 请选择 + + + + + + + + + + + {{ item.n }} + + + + + + + + + + + {{ item.n }} + + + + + + + + + + + {{ item.n }} + + + + + + + + + + + + + + + diff --git a/components/CountDown.vue b/components/CountDown.vue new file mode 100644 index 0000000..fd553fa --- /dev/null +++ b/components/CountDown.vue @@ -0,0 +1,98 @@ + + + {{ rtipText }} + {{ day }} + {{ rdayText }} + {{ hour }} + {{ rhourText }} + {{ minute }} + {{ rminuteText }} + {{ second }} + {{ rsecondText }} + + + diff --git a/components/CouponListWindow.vue b/components/CouponListWindow.vue new file mode 100644 index 0000000..68854f0 --- /dev/null +++ b/components/CouponListWindow.vue @@ -0,0 +1,122 @@ + + + + + 优惠券 + + + + + + + + ¥{{ coupon.couponPrice }} + + 满{{ coupon.useMinPrice }}元可用 + + + {{ coupon.couponTitle }} + + 不限时 + 截止:{{ coupon.endTime }} + + + + + + + 不使用优惠券 + + + + + + + + + + + + diff --git a/components/CouponPop.vue b/components/CouponPop.vue new file mode 100644 index 0000000..e975caf --- /dev/null +++ b/components/CouponPop.vue @@ -0,0 +1,75 @@ + + + + + 优惠券 + + + + + + ¥ + {{ item.coupon_price }} + + + 购物满{{ item.use_min_price }}元可用 + + 不限时 + {{ item.start_time }}-{{ item.end_time }} + {{ !item.is_use ? "立即领取" : "已领取" }} + + + + + + + + + + + + + diff --git a/components/CouponWindow.vue b/components/CouponWindow.vue new file mode 100644 index 0000000..77096db --- /dev/null +++ b/components/CouponWindow.vue @@ -0,0 +1,88 @@ + + + + + + + ¥{{ item.coupon_price }} + + + + 购物买{{ item.use_min_price }}减{{ item.coupon_price }} + + + {{ item.start_time }}-{{ item.end_time }} + + + + + + + 立即领取 + + + + + + + diff --git a/components/DataFormat.vue b/components/DataFormat.vue new file mode 100644 index 0000000..d4a3c92 --- /dev/null +++ b/components/DataFormat.vue @@ -0,0 +1,24 @@ + + {{time}} + + diff --git a/components/DataFormatT.vue b/components/DataFormatT.vue new file mode 100644 index 0000000..f4379a0 --- /dev/null +++ b/components/DataFormatT.vue @@ -0,0 +1,24 @@ + + {{time}} + + diff --git a/components/GoodList.vue b/components/GoodList.vue new file mode 100644 index 0000000..257b620 --- /dev/null +++ b/components/GoodList.vue @@ -0,0 +1,54 @@ + + + + + + + + + {{ item.storeName }} + + ¥ + + {{force2Decimal(item.vipPrice)}} + {{ force2Decimal(item.price) }} + + + ¥{{ item.otPrice?force2Decimal(item.otPrice) : 0.00 }} + 已售{{ item.sales }}{{ item.unitName }} + + + + + + + + diff --git a/components/Loading.vue b/components/Loading.vue new file mode 100644 index 0000000..1a643bc --- /dev/null +++ b/components/Loading.vue @@ -0,0 +1,27 @@ + + + + + 正在加载中 + + + 上拉加载更多 + + + + + diff --git a/components/OrderGoods.vue b/components/OrderGoods.vue new file mode 100644 index 0000000..aa7d37b --- /dev/null +++ b/components/OrderGoods.vue @@ -0,0 +1,88 @@ + + + + + + {{title}} + + + + 共{{ cartInfo.length }}件商品 + + + + + + + + {{ cart.productInfo.storeName }} + + + + + 属性:{{ cart.productInfo.attrInfo.sku }} + 评价 + + + ¥{{ cart.truePrice }} + x{{ cart.cartNum }} + + + + + + + + diff --git a/components/Payment.vue b/components/Payment.vue new file mode 100644 index 0000000..e75bf69 --- /dev/null +++ b/components/Payment.vue @@ -0,0 +1,174 @@ + + + + + 选择付款方式 + + + + + + 微信支付 + 使用微信快捷支付 + + + + + + + + + 余额支付 + + 当前可用余额:{{ balance }} + + + + + + + + + + + diff --git a/components/PriceChange.vue b/components/PriceChange.vue new file mode 100644 index 0000000..7babb01 --- /dev/null +++ b/components/PriceChange.vue @@ -0,0 +1,133 @@ + + + + + + 立即退款 + 一键改价 + + 订单备注 + + + + + 商品总价(¥) + + {{ orderInfo.totalPrice }} + + + + + 原始邮费(¥) + + {{ orderInfo.payPostage }} + + + + + 实际支付(¥) + + + + + + 实际支付(¥) + + {{ orderInfo.payPrice }} + + + + + 退款金额(¥) + + + + + + + + + {{ orderInfo.refundStatus === 0 ? "立即修改" : "确认退款" }} + 拒绝退款 + + + + + + diff --git a/components/ProductConSwiper.vue b/components/ProductConSwiper.vue new file mode 100644 index 0000000..bcb0fe9 --- /dev/null +++ b/components/ProductConSwiper.vue @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + diff --git a/components/ProductWindow.vue b/components/ProductWindow.vue new file mode 100644 index 0000000..7dfadc2 --- /dev/null +++ b/components/ProductWindow.vue @@ -0,0 +1,122 @@ + + + + + + + + + {{ attr.productSelect.store_name }} + + ¥ + {{ attr.productSelect.price }} + 库存: {{ attr.productSelect.stock }} + + + + + + + {{ item.attrName }} 438 + + {{ itemn.attr }} + + + + + 数量 + + - + {{ cartNum }} + + + + + + + + + diff --git a/components/PromotionGood.vue b/components/PromotionGood.vue new file mode 100644 index 0000000..f8685bc --- /dev/null +++ b/components/PromotionGood.vue @@ -0,0 +1,36 @@ + + + + + + {{ item.storeName }} + + + 促销价: ¥ + {{ item.price }} + + + + 日常价:¥{{ item.otPrice }} + 仅剩:{{ item.stock }}{{ item.unitName }} + + + + + + diff --git a/components/Recommend.vue b/components/Recommend.vue new file mode 100644 index 0000000..995d0c5 --- /dev/null +++ b/components/Recommend.vue @@ -0,0 +1,89 @@ + + + + + 为你推荐 + + + + + + {{ item.storeName }} + + ¥ + {{ force2Decimal(item.vipPrice) }} + {{ force2Decimal(item.price) }} + + + + + + + diff --git a/components/ShareInfo.vue b/components/ShareInfo.vue new file mode 100644 index 0000000..b833eb8 --- /dev/null +++ b/components/ShareInfo.vue @@ -0,0 +1,45 @@ + + + + + + + + + diff --git a/components/StorePoster.vue b/components/StorePoster.vue new file mode 100644 index 0000000..4302dac --- /dev/null +++ b/components/StorePoster.vue @@ -0,0 +1,165 @@ + + + + + + + + + 长按图片可以保存到手机 + + + + + + + + diff --git a/components/UserEvaluation.vue b/components/UserEvaluation.vue new file mode 100644 index 0000000..7e6195b --- /dev/null +++ b/components/UserEvaluation.vue @@ -0,0 +1,56 @@ + + + + + + + + + {{ item.nickname }} + + + + {{ item.createTime }} {{ item.sku||'' }} + {{ item.comment }} + + + + + + + 店小二 + :{{item.merchantReplyContent}} + + + + + diff --git a/components/WriteOff.vue b/components/WriteOff.vue new file mode 100644 index 0000000..33b429e --- /dev/null +++ b/components/WriteOff.vue @@ -0,0 +1,128 @@ + + + + + + {{ orderInfo.order_id }} + + 确定要核销此订单吗? + 确定核销 + 取消 + + + + + + diff --git a/components/blPaymentPasswordInput.vue b/components/blPaymentPasswordInput.vue new file mode 100644 index 0000000..032d3a1 --- /dev/null +++ b/components/blPaymentPasswordInput.vue @@ -0,0 +1,435 @@ + + + + + + + + + + + + + + + + + + + + + + {{ item }} + + + + + + + + + + + + + + + + + diff --git a/components/chose-city/chose-city.vue b/components/chose-city/chose-city.vue new file mode 100644 index 0000000..d58c20b --- /dev/null +++ b/components/chose-city/chose-city.vue @@ -0,0 +1,368 @@ + + + + + + + + + + + + {{ item.label }} + + + + + + + + + + 当前定位:{{ location }} + + + + + + 特别推荐 + + + 暂无特产 + 暂无店铺 + + {{ item.cityName }} + + + + + + {{ provinceName }} + + + 暂无特产 + 暂无店铺 + 暂无景点 + + {{ item.cityName }} + + + + + + + + + + diff --git a/components/drag-button/drag-button.vue b/components/drag-button/drag-button.vue new file mode 100644 index 0000000..eb5d78d --- /dev/null +++ b/components/drag-button/drag-button.vue @@ -0,0 +1,142 @@ + + + + + + + + + + + diff --git a/components/drop-down/drop-down.vue b/components/drop-down/drop-down.vue new file mode 100644 index 0000000..092ff55 --- /dev/null +++ b/components/drop-down/drop-down.vue @@ -0,0 +1,116 @@ + + + + + + {{item.name}} + + + + + + + + \ No newline at end of file diff --git a/components/easy-upload/easy-upload.vue b/components/easy-upload/easy-upload.vue new file mode 100644 index 0000000..5ff8f44 --- /dev/null +++ b/components/easy-upload/easy-upload.vue @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/easy-upload/readme.md b/components/easy-upload/readme.md new file mode 100644 index 0000000..cef5dde --- /dev/null +++ b/components/easy-upload/readme.md @@ -0,0 +1,51 @@ +### easy-upload 组件 + +使用方法 +```js + + + //使用 hbuilderX (easycom) 可以直接使用 或 + import easyUpload from '@/components/easy-upload/easy-upload.vue' + export default { + //用easycom 则省略注册组件 + components:{ + easyUpload + }, + data() { + return { + dataList: [], + types: 'image' + } + } + } +``` + +| 参数 | 类型 | 是否必填 | 参数描述 +| ---- | ---- | ---- | ---- +| types | String | 否 | 上传类型 image/video +| autoUpload | Boolean | 否 | 自动上传 默认false +| dataList | Array | 否 | 图片/视频数据展示 +| clearIcon | String | 否 | 删除图标(可以换成自己的图片) +| uploadIcon | String | 否 | 上传图标(可以换成自己的图片) +| uploadUrl | String | 否 | 上传的接口 +| deleteUrl | String | 否 | 删除的接口 +| uploadCount | Number | 否 | 上传图片最大个数(默认为一张) +| upload_max | Number | 否 | 上传大小(默认为3M) +| upload_max | Number | 否 | 上传大小(默认为3M) +| upload_max | Number | 否 | 上传大小(默认为3M) + +| 事件 | 是否必填 | 参数描述 +| ---- | ---- | ---- +| successImage | 否 | 上传图片成功事件 +| successVideo | 否 | 上传视频成功回调 + +示例项目中有简单的服务端代码 /server (node.js) +如果本地测试可以先运行一下服务端的代码 + diff --git a/components/hx-navbar/README.md b/components/hx-navbar/README.md new file mode 100644 index 0000000..214dba5 --- /dev/null +++ b/components/hx-navbar/README.md @@ -0,0 +1,240 @@ +# hx-navbar 适用于 uni-app 项目的头部导航组件 + +导航栏组件,主要用于头部导航,组件名:hx-navbar + +本组件目前兼容微信小程序、H5、5+APP。 + +### 本组件支持模式: +1. 普通固定顶部导航 +2. 透明导航 +3. 透明固定顶部导航 +4. 不固定普通导航 +5. 背景颜色线性渐变 +6. 滑动显示背景 +7. 左、中、右3个插槽;可关闭左右插槽使中间插槽铺满导航,实现高度自定义的导航需求 + +### 使用前提 + +需要先安装·uniapp·官方的```uni-icons``` 图标组件,```uni-icons```官方组件下载地址:[https://ext.dcloud.net.cn/plugin?id=28](https://ext.dcloud.net.cn/plugin?id=28) + +### 使用方式 +页面使用需在 ``` script ``` 中引用组件 +``` javascript +import hxNavbar from "@/components/hx-navbar/hx-navbar.vue" +export default { + components: {hxNavbar} +} +``` + +全局使用需在 ``` main.js ``` 中注册组件 +``` javascript +import hxNavbar from "./components/hx-navbar/hx-navbar.vue" +Vue.component('hx-navbar',hxNavbar) + +``` + + +### 属性 +#### 基本属性 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ---------------------- | ---------------------------------------------------| +| back | Boolean | true | 返回上一页,(设置后,```leftIcon```属性,和```click-left```事件将失效| +| height | String | 44px | 导航栏高度(不包含状态栏高度)| +| barPlaceholder | String | auto | 导航栏占位符 显示(show),隐藏(hidden),自动(auto:如果头部为固定fixed ,则显示占位符) | +| title | String | - | 导航标题(当设置了标题,中间插槽将失效) | +| fixed | Boolean | false | 固定头部 | +| color | String | #000000 | 导航文字颜色(如果需要屏幕滑动后变色,参数则为数组,例子:`['#000000','#ffffff']`) | +| backgroundColor | Array | [255, 255, 255] | 导航背景颜色为RGB 编号(单色背景数组为```[255,255,255]```,线性渐变背景```[[236, 0, 140],[103, 57, 182],...]```) | +| pageScroll | Object | {} | 屏幕滑动距离顶部的对象```滑动渐变必要参数``` | +| backgroundColorLinearDeg | String | 45 | 导航背景线性渐变角度 | +| backgroundImg | String | - | 导航背景图片(背景图片优先级高于背景颜色) | +| transparent | String | show | 背景透明(show 不透明,hidden 透明,auto 自动:滑动逐渐显示背景颜色,当头部固定时生效) 兼容性:头条小程序必须在页面上加 onPageScroll(e){} ,才能滑动显示背景,可参考dome7| +| shadow | Boolean | false | 导航栏阴影 | +| border | Boolean | false | 导航栏边框 | + +#### 关于状态栏的属性 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ---------------------- | ---------------------------------------------------| +| statusBar | Boolean | true | 包含状态栏 | +| statusBarFontColor | Array,String | #000000 | 状态栏字体颜色,只支持```#000000 ```和```#FFFFFF```(如果需要屏幕滑动变色,参数则为数组,例子:```['#000000','#ffffff']```)| +| statusBarBackground | String | - | 状态栏背景颜色,如果你想单独设置状态栏颜色,该属性是个不错的选择 + +#### 关于插槽的属性 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ---------------------- | ---------------------------------------------------| +| leftIcon | String | - | 左插槽图标,必须为 ```uni-icons``` 图标 | +| rightIcon | String | - | 右插槽图标,必须为 ```uni-icons``` 图标 | +| leftSlot | Boolean | true | 开启左插槽 | +| rightSlot | Boolean | true | 开启右插槽 | +| leftSlidiSwitch | Boolean | false | 屏幕滑动后 `left`插槽切换为`leftAfter`插槽 | +| centerSlidiSwitch | Boolean | false | 屏幕滑动后 `default`插槽切换为`centerAfter`插槽 | +| rightSlidiSwitch | Boolean | false | 屏幕滑动后 `right`插槽切换为`rightAfter`插槽 | + + +#### 返回上一页为空时的处理属性 +| 名称 | 类型 | 默认值 | 描述 | +| ----------------------------|--------------- | ---------------------- | ---------------------------------------------------| +| backTabbarUrl | String | /pages/index/index | 返回至指定的tabber页面(返回首页),当上一页为空时生效;全局使用推荐进组件修改`backTabbarUrl`的默认值| +| defaultBackUrl | String | - | 返回至指定的普通页面,当上一页为空时生效;`defaultBackUrl`优先级高于`backTabbarUrl`;主要应用在返回失效时| + +``` html + + +``` + + +### 插槽 +| 名称 | 描述 | +| ----------------------|-------------------------------------------------------------------| +| left | 左插槽 (可关闭该插槽 ```leftSlot``` 属性) | +| default | 中间插槽(当设置了标题,中间插槽将失效) | +| right | 右插槽 (可关闭该插槽 ```rightSlot``` 属性) | +| leftAfter | 屏幕滑动后的左插槽 (需要开启`leftSlidiSwitch`属性才生效) | +| centerAfter | 屏幕滑动后的中插槽 (需要开启`centerSlidiSwitch`属性才生效) | +| rightAfter | 屏幕滑动后的右插槽 (需要开启`rightSlidiSwitch`属性才生效) | + + +``` html + + 标题栏(中间插槽) + left(左插槽) + right(右插槽) + +``` + + +### 事件 +| 名称 | 参数 | 描述 | +| -----------------|------------------| --------------------------| +| click-left | - | 左侧按钮点击时触发,此事件将覆盖 `返回` | +| click-right | - | 右侧按钮点击时触发 | +| scroll | - | 监听滚动条,回调参数为滚动距离;固定头部时生效;应用场景:如滚动到多少时触发某些事件 | + +## 使用例子 + +### 简单使用 +``` html + +``` + +### 背景颜色线性渐变、头部固定 +``` html + + +``` + +### 滑动显示背景 +``` html + + + + +``` +``` javascript +data() { + return { + scrollData: {}, + } +}, +//必须在页面加 onPageScroll(e){} ,才能滑动显示背景 +onPageScroll(e){ + this.scrollData = e; +}, +``` + +### 左中插槽演示 +``` html + + + + 新疆 + + + + + + + + + + +/*css 用于演示插槽自定义样式*/ + +``` + +### 关闭左右插槽演示 +``` html + + + + 新疆 + + + + + + + + + +/*css 用于演示插槽自定义样式*/ + +``` + +### 屏幕滑动切换显示插槽 +``` html + + + + 帮助反馈 + + + 咨询 + + + + + + + + +``` \ No newline at end of file diff --git a/components/hx-navbar/hx-navbar.vue b/components/hx-navbar/hx-navbar.vue new file mode 100644 index 0000000..30619c1 --- /dev/null +++ b/components/hx-navbar/hx-navbar.vue @@ -0,0 +1,650 @@ + + + + + + + + + + + + + + + + + {{ leftText }} + + + + + + + + + + + + {{ title }} + + + + + + + + + + + + + + + + + {{ rightText }} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/imageTypeSet/imagebox.vue b/components/imageTypeSet/imagebox.vue new file mode 100644 index 0000000..6cec1d2 --- /dev/null +++ b/components/imageTypeSet/imagebox.vue @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + diff --git a/components/ls-swiper/index.md b/components/ls-swiper/index.md new file mode 100644 index 0000000..42bb102 --- /dev/null +++ b/components/ls-swiper/index.md @@ -0,0 +1,40 @@ +# 轮播组件 + +# 基础式 + + +# 链式 + + +# 卡片式 + + +# props +参数名 | 说明 | 类型 | 默认值 +-----------------|-------------------------------------------------- -|-------------|------------ +list | 轮播数据 | Array | 必输 +imgKey | 轮播数据key(图片url属性) | String | 必输 (自定义模式,非必输) +autoplay | 是否自动播放 | Boolean | false +loop | 是否循环 | Boolean | false +autoplay | 是否自动播放 | Boolean | false +dots | 是否显示轮播点 | Boolean | false +crown | 卡片特效 (中间突出,两边缩放特效) | Boolean | false +interval | 播放时间间隔 | Number | 2000 +duration | 滑动速度 | Number | 1500 +bottom | 轮播点下边距 | Number | 10 (单位:px,设计图建议以375px为准) +height | 高度 | Number | 200 (单位:px,设计图建议以375px为准) +previousMargin | 图片前边距 | Number | 0 (单位:px,设计图建议以375px为准) +nextMargin | 图片后间距 | Number | 0 (单位:px,设计图建议以375px为准) +imgRadius | 图片圆角 | Number | 0 (单位:px,设计图建议以375px为准) +imgWidth | 图片宽度 | String | 100% +@clickItem | 点击事件 | Function | +@change | 切换事件 | Function | + +# 自定义 + + + xxx + + + +如有其他需求,可在插槽内编写自定义内容, 自动覆盖原图片样式。 \ No newline at end of file diff --git a/components/ls-swiper/index.vue b/components/ls-swiper/index.vue new file mode 100644 index 0000000..c4aebff --- /dev/null +++ b/components/ls-swiper/index.vue @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue b/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue new file mode 100644 index 0000000..eb6d438 --- /dev/null +++ b/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + diff --git a/components/mescroll-uni/components/mescroll-down.css b/components/mescroll-uni/components/mescroll-down.css new file mode 100644 index 0000000..72bf106 --- /dev/null +++ b/components/mescroll-uni/components/mescroll-down.css @@ -0,0 +1,55 @@ +/* 下拉刷新区域 */ +.mescroll-downwarp { + position: absolute; + top: -100%; + left: 0; + width: 100%; + height: 100%; + text-align: center; +} + +/* 下拉刷新--内容区,定位于区域底部 */ +.mescroll-downwarp .downwarp-content { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + min-height: 60rpx; + padding: 20rpx 0; + text-align: center; +} + +/* 下拉刷新--提示文本 */ +.mescroll-downwarp .downwarp-tip { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + margin-left: 16rpx; + /* color: gray; 已在style设置color,此处删去*/ +} + +/* 下拉刷新--旋转进度条 */ +.mescroll-downwarp .downwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-downwarp .mescroll-rotate { + animation: mescrollDownRotate 0.6s linear infinite; +} + +@keyframes mescrollDownRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/components/mescroll-uni/components/mescroll-down.vue b/components/mescroll-uni/components/mescroll-down.vue new file mode 100644 index 0000000..4b8d785 --- /dev/null +++ b/components/mescroll-uni/components/mescroll-down.vue @@ -0,0 +1,47 @@ + + + + + + {{downText}} + + + + + + + diff --git a/components/mescroll-uni/components/mescroll-empty.vue b/components/mescroll-uni/components/mescroll-empty.vue new file mode 100644 index 0000000..1cb84c8 --- /dev/null +++ b/components/mescroll-uni/components/mescroll-empty.vue @@ -0,0 +1,91 @@ + + + + + {{ tip }} + {{ option.btnText }} + + + + + + diff --git a/components/mescroll-uni/components/mescroll-top.vue b/components/mescroll-uni/components/mescroll-top.vue new file mode 100644 index 0000000..79e415b --- /dev/null +++ b/components/mescroll-uni/components/mescroll-top.vue @@ -0,0 +1,81 @@ + + + + + + + + diff --git a/components/mescroll-uni/components/mescroll-up.css b/components/mescroll-uni/components/mescroll-up.css new file mode 100644 index 0000000..dea37a6 --- /dev/null +++ b/components/mescroll-uni/components/mescroll-up.css @@ -0,0 +1,46 @@ +/* 上拉加载区域 */ +.mescroll-upwarp { + min-height: 60rpx; + padding: 30rpx 0; + text-align: center; + clear: both; +} + +/*提示文本 */ +.mescroll-upwarp .upwarp-tip, +.mescroll-upwarp .upwarp-nodata { + display: inline-block; + font-size: 28rpx; + vertical-align: middle; + /* color: gray; 已在style设置color,此处删去*/ +} + +.mescroll-upwarp .upwarp-tip { + margin-left: 16rpx; +} + +/*旋转进度条 */ +.mescroll-upwarp .upwarp-progress { + display: inline-block; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + border: 2rpx solid gray; + border-bottom-color: transparent !important; /*已在style设置border-color,此处需加 !important*/ + vertical-align: middle; +} + +/* 旋转动画 */ +.mescroll-upwarp .mescroll-rotate { + animation: mescrollUpRotate 0.6s linear infinite; +} + +@keyframes mescrollUpRotate { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/components/mescroll-uni/components/mescroll-up.vue b/components/mescroll-uni/components/mescroll-up.vue new file mode 100644 index 0000000..69dc558 --- /dev/null +++ b/components/mescroll-uni/components/mescroll-up.vue @@ -0,0 +1,39 @@ + + + + + + + {{ mOption.textLoading }} + + + {{ mOption.textNoMore }} + + + + + + diff --git a/components/mescroll-uni/mescroll-body.css b/components/mescroll-uni/mescroll-body.css new file mode 100644 index 0000000..93102ed --- /dev/null +++ b/components/mescroll-uni/mescroll-body.css @@ -0,0 +1,10 @@ +page { + -webkit-overflow-scrolling: touch; /* 使iOS滚动流畅 */ +} + +.mescroll-body { + position: relative; /* 下拉刷新区域相对自身定位 */ + height: auto; /* 不可固定高度,否则overflow: hidden, 可通过设置最小高度使列表不满屏仍可下拉*/ + overflow: hidden; /* 遮住顶部下拉刷新区域 */ + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} \ No newline at end of file diff --git a/components/mescroll-uni/mescroll-body.vue b/components/mescroll-uni/mescroll-body.vue new file mode 100644 index 0000000..684efa8 --- /dev/null +++ b/components/mescroll-uni/mescroll-body.vue @@ -0,0 +1,292 @@ + + + + + + + + + {{downText}} + + + + + + + + + + + + + + + + {{ mescroll.optUp.textLoading }} + + + {{ mescroll.optUp.textNoMore }} + + + + + + + + + + + diff --git a/components/mescroll-uni/mescroll-mixins.js b/components/mescroll-uni/mescroll-mixins.js new file mode 100644 index 0000000..fac53d8 --- /dev/null +++ b/components/mescroll-uni/mescroll-mixins.js @@ -0,0 +1,60 @@ +// mescroll-body 和 mescroll-uni 通用 + +// import MescrollUni from "./mescroll-uni.vue"; +// import MescrollBody from "./mescroll-body.vue"; + +const MescrollMixin = { + // components: { // 非H5端无法通过mixin注册组件, 只能在main.js中注册全局组件或具体界面中注册 + // MescrollUni, + // MescrollBody + // }, + data() { + return { + mescroll: null //mescroll实例对象 + } + }, + // 注册系统自带的下拉刷新 (配置down.native为true时生效, 还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + onPullDownRefresh(){ + this.mescroll && this.mescroll.onPullDownRefresh(); + }, + // 注册列表滚动事件,用于判定在顶部可下拉刷新,在指定位置可显示隐藏回到顶部按钮 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onPageScroll(e) { + this.mescroll && this.mescroll.onPageScroll(e); + }, + // 注册滚动到底部的事件,用于上拉加载 (此方法为页面生命周期,无法在子组件中触发, 仅在mescroll-body生效) + onReachBottom() { + this.mescroll && this.mescroll.onReachBottom(); + }, + methods: { + // mescroll组件初始化的回调,可获取到mescroll对象 + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef(); // 兼容字节跳动小程序 + }, + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序: http://www.mescroll.com/qa.html?v=20200107#q26) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + let mescrollRef = this.$refs.mescrollRef; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + // 下拉刷新的回调 + downCallback() { + // mixin默认resetUpScroll + this.mescroll.resetUpScroll() + }, + // 上拉加载的回调 + upCallback() { + // mixin默认延时500自动结束加载 + setTimeout(()=>{ + this.mescroll.endErr(); + }, 500) + } + }, + mounted() { + this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 + } + +} + +export default MescrollMixin; diff --git a/components/mescroll-uni/mescroll-uni-option.js b/components/mescroll-uni/mescroll-uni-option.js new file mode 100644 index 0000000..d4bd478 --- /dev/null +++ b/components/mescroll-uni/mescroll-uni-option.js @@ -0,0 +1,36 @@ +// 全局配置 +// mescroll-body 和 mescroll-uni 通用 +const GlobalOption = { + down: { + // 其他down的配置参数也可以写,这里只展示了常用的配置: + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + native: false // 是否使用系统自带的下拉刷新; 默认false; 仅在mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + }, + up: { + // 其他up的配置参数也可以写,这里只展示了常用的配置: + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- 没有更多了 --', // 没有更多数据的提示文本 + offset: 80, // 距底部多远时,触发upCallback + isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25 + toTop: { + // 回到顶部按钮,需配置src才显示 + // 图片路径 (建议放入static目录, 如 /static/img/mescroll-totop.png ) + src: "https://www.xdd618.com/api/file/pic/20230304101324538100.png", + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000px + right: 20, // 到右边的距离, 默认20 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + width: 72 // 回到顶部图标的宽度, 默认72 (支持"20rpx", "20px", "20%"格式的值, 纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + // 图标路径 (建议放入static目录, 如 /static/img/mescroll-empty.png ) + icon: "/static/images/img_nodata.png", + tip: '~ 暂无相关数据 ~' // 提示 + } + } +} + +export default GlobalOption diff --git a/components/mescroll-uni/mescroll-uni.css b/components/mescroll-uni/mescroll-uni.css new file mode 100644 index 0000000..9b9a1e7 --- /dev/null +++ b/components/mescroll-uni/mescroll-uni.css @@ -0,0 +1,29 @@ +page { + height: 100%; + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +.mescroll-uni-warp{ + height: 100%; +} + +.mescroll-uni { + position: relative; + width: 100%; + height: 100%; + min-height: 200rpx; + overflow-y: auto; + box-sizing: border-box; /* 避免设置padding出现双滚动条的问题 */ +} + +/* 定位的方式固定高度 */ +.mescroll-uni-fixed{ + z-index: 1; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: auto; /* 使right生效 */ + height: auto; /* 使bottom生效 */ +} diff --git a/components/mescroll-uni/mescroll-uni.js b/components/mescroll-uni/mescroll-uni.js new file mode 100644 index 0000000..f0ef5d7 --- /dev/null +++ b/components/mescroll-uni/mescroll-uni.js @@ -0,0 +1,862 @@ +/* mescroll + * version 1.2.5 + * 2020-03-15 wenju + * http://www.mescroll.com + */ + +export default function MeScroll(options, isScrollBody) { + let me = this; + me.version = '1.2.5'; // mescroll版本号 + me.options = options || {}; // 配置 + me.isScrollBody = isScrollBody || false; // 滚动区域是否为原生页面滚动; 默认为scroll-view + + me.isDownScrolling = false; // 是否在执行下拉刷新的回调 + me.isUpScrolling = false; // 是否在执行上拉加载的回调 + let hasDownCallback = me.options.down && me.options.down.callback; // 是否配置了down的callback + + // 初始化下拉刷新 + me.initDownScroll(); + // 初始化上拉加载,则初始化 + me.initUpScroll(); + + // 自动加载 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + // 自动触发下拉刷新 (只有配置了down的callback才自动触发下拉刷新) + if (me.optDown.use && me.optDown.auto && hasDownCallback) { + if (me.optDown.autoShowLoading) { + me.triggerDownScroll(); // 显示下拉进度,执行下拉回调 + } else { + me.optDown.callback && me.optDown.callback(me); // 不显示下拉进度,直接执行下拉回调 + } + } + // 自动触发上拉加载 + setTimeout(function(){ // 延时确保先执行down的callback,再执行up的callback,因为部分小程序emit是异步,会导致isUpAutoLoad判断有误 + me.optUp.use && me.optUp.auto && !me.isUpAutoLoad && me.triggerUpScroll(); + },100) + }, 30); // 需让me.optDown.inited和me.optUp.inited先执行 +} + +/* 配置参数:下拉刷新 */ +MeScroll.prototype.extendDownScroll = function(optDown) { + // 下拉刷新的配置 + MeScroll.extend(optDown, { + use: true, // 是否启用下拉刷新; 默认true + auto: true, // 是否在初始化完毕之后自动执行下拉刷新的回调; 默认true + native: false, // 是否使用系统自带的下拉刷新; 默认false; 仅mescroll-body生效 (值为true时,还需在pages配置enablePullDownRefresh:true;详请参考mescroll-native的案例) + autoShowLoading: false, // 如果设置auto=true(在初始化完毕之后自动执行下拉刷新的回调),那么是否显示下拉刷新的进度; 默认false + isLock: false, // 是否锁定下拉刷新,默认false; + offset: 80, // 在列表顶部,下拉大于80px,松手即可触发下拉刷新的回调 + startTop: 100, // scroll-view滚动到顶部时,此时的scroll-top不一定为0, 此值用于控制最大的误差 + fps: 80, // 下拉节流 (值越大每秒刷新频率越高) + inOffsetRate: 1, // 在列表顶部,下拉的距离小于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + outOffsetRate: 0.2, // 在列表顶部,下拉的距离大于offset时,改变下拉区域高度比例;值小于1且越接近0,高度变化越小,表现为越往下越难拉 + bottomOffset: 20, // 当手指touchmove位置在距离body底部20px范围内的时候结束上拉刷新,避免Webview嵌套导致touchend事件不执行 + minAngle: 45, // 向下滑动最少偏移的角度,取值区间 [0,90];默认45度,即向下滑动的角度大于45度则触发下拉;而小于45度,将不触发下拉,避免与左右滑动的轮播等组件冲突; + textInOffset: '下拉刷新', // 下拉的距离在offset范围内的提示文本 + textOutOffset: '释放更新', // 下拉的距离大于offset范围的提示文本 + textLoading: '加载中 ...', // 加载中的提示文本 + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorTop) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 下拉刷新初始化完毕的回调 + inOffset: null, // 下拉的距离进入offset范围内那一刻的回调 + outOffset: null, // 下拉的距离大于offset那一刻的回调 + onMoving: null, // 下拉过程中的回调,滑动过程一直在执行; rate下拉区域当前高度与指定距离的比值(inOffset: rate<1; outOffset: rate>=1); downHight当前下拉区域的高度 + beforeLoading: null, // 准备触发下拉刷新的回调: 如果return true,将不触发showLoading和callback回调; 常用来完全自定义下拉刷新, 参考案例【淘宝 v6.8.0】 + showLoading: null, // 显示下拉刷新进度的回调 + afterLoading: null, // 准备结束下拉的回调. 返回结束下拉的延时执行时间,默认0ms; 常用于结束下拉之前再显示另外一小段动画,才去隐藏下拉刷新的场景, 参考案例【dotJump】 + endDownScroll: null, // 结束下拉刷新的回调 + callback: function(mescroll) { + // 下拉刷新的回调;默认重置上拉加载列表为第一页 + mescroll.resetUpScroll(); + } + }) +} + +/* 配置参数:上拉加载 */ +MeScroll.prototype.extendUpScroll = function(optUp) { + // 上拉加载的配置 + MeScroll.extend(optUp, { + use: true, // 是否启用上拉加载; 默认true + auto: true, // 是否在初始化完毕之后自动执行上拉加载的回调; 默认true + isLock: false, // 是否锁定上拉加载,默认false; + isBoth: true, // 上拉加载时,如果滑动到列表顶部是否可以同时触发下拉刷新;默认true,两者可同时触发; + isBounce: false, // 默认禁止橡皮筋的回弹效果, 必读事项: http://www.mescroll.com/qa.html?v=190725#q25 + callback: null, // 上拉加载的回调;function(page,mescroll){ } + page: { + num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始 + size: 10, // 每页数据的数量 + time: null // 加载第一页数据服务器返回的时间; 防止用户翻页时,后台新增了数据从而导致下一页数据重复; + }, + noMoreSize: 5, // 如果列表已无数据,可设置列表的总数量要大于等于5条才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看 + offset: 80, // 距底部多远时,触发upCallback + textLoading: '加载中 ...', // 加载中的提示文本 + textNoMore: '-- END --', // 没有更多数据的提示文本 + bgColor: "transparent", // 背景颜色 (建议在pages.json中再设置一下backgroundColorBottom) + textColor: "gray", // 文本颜色 (当bgColor配置了颜色,而textColor未配置时,则textColor会默认为白色) + inited: null, // 初始化完毕的回调 + showLoading: null, // 显示加载中的回调 + showNoMore: null, // 显示无更多数据的回调 + hideUpScroll: null, // 隐藏上拉加载的回调 + errDistance: 60, // endErr的时候需往上滑动一段距离,使其往下滑动时再次触发onReachBottom,仅mescroll-body生效 + toTop: { + // 回到顶部按钮,需配置src才显示 + src: null, // 图片路径,默认null (绝对路径或网络图) + offset: 1000, // 列表滚动多少距离才显示回到顶部按钮,默认1000 + duration: 300, // 回到顶部的动画时长,默认300ms (当值为0或300则使用系统自带回到顶部,更流畅; 其他值则通过step模拟,部分机型可能不够流畅,所以非特殊情况不建议修改此项) + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + zIndex: 9990, // fixed定位z-index值 + left: null, // 到左边的距离, 默认null. 此项有值时,right不生效. (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + right: 20, // 到右边的距离, 默认20 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + bottom: 120, // 到底部的距离, 默认120 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + safearea: false, // bottom的偏移量是否加上底部安全区的距离, 默认false, 需要适配iPhoneX时使用 (具体的界面如果不配置此项,则取本vue的safearea值) + width: 72, // 回到顶部图标的宽度, 默认72 (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + radius: "50%" // 圆角, 默认"50%" (支持20, "20rpx", "20px", "20%"格式的值, 其中纯数字则默认单位rpx) + }, + empty: { + use: true, // 是否显示空布局 + icon: null, // 图标路径 + tip: '~ 暂无相关数据 ~', // 提示 + btnText: '', // 按钮 + btnClick: null, // 点击按钮的回调 + onShow: null, // 是否显示的回调 + fixed: false, // 是否使用fixed定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,最终会降级为absolute) + top: "100rpx", // fixed定位的top值 (完整的单位值,如 "10%"; "100rpx") + zIndex: 99 // fixed定位z-index值 + }, + onScroll: false // 是否监听滚动事件 + }) +} + +/* 配置参数 */ +MeScroll.extend = function(userOption, defaultOption) { + if (!userOption) return defaultOption; + for (let key in defaultOption) { + if (userOption[key] == null) { + let def = defaultOption[key]; + if (def != null && typeof def === 'object') { + userOption[key] = MeScroll.extend({}, def); // 深度匹配 + } else { + userOption[key] = def; + } + } else if (typeof userOption[key] === 'object') { + MeScroll.extend(userOption[key], defaultOption[key]); // 深度匹配 + } + } + return userOption; +} + +/* 简单判断是否配置了颜色 (非透明,非白色) */ +MeScroll.prototype.hasColor = function(color) { + if(!color) return false; + let c = color.toLowerCase(); + return c != "#fff" && c != "#ffffff" && c != "transparent" && c != "white" +} + +/* -------初始化下拉刷新------- */ +MeScroll.prototype.initDownScroll = function() { + let me = this; + // 配置参数 + me.optDown = me.options.down || {}; + if(!me.optDown.textColor && me.hasColor(me.optDown.bgColor)) me.optDown.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendDownScroll(me.optDown); + + // 如果是mescroll-body且配置了native,则禁止自定义的下拉刷新 + if(me.isScrollBody && me.optDown.native){ + me.optDown.use = false + }else{ + me.optDown.native = false // 仅mescroll-body支持,mescroll-uni不支持 + } + + me.downHight = 0; // 下拉区域的高度 + + // 在页面中加入下拉布局 + if (me.optDown.use && me.optDown.inited) { + // 初始化完毕的回调 + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optDown.inited(me); + }, 0) + } +} + +/* 列表touchstart事件 */ +MeScroll.prototype.touchstartEvent = function(e) { + if (!this.optDown.use) return; + + this.startPoint = this.getPoint(e); // 记录起点 + this.startTop = this.getScrollTop(); // 记录此时的滚动条位置 + this.lastPoint = this.startPoint; // 重置上次move的点 + this.maxTouchmoveY = this.getBodyHeight() - this.optDown.bottomOffset; // 手指触摸的最大范围(写在touchstart避免body获取高度为0的情况) + this.inTouchend = false; // 标记不是touchend +} + +/* 列表touchmove事件 */ +MeScroll.prototype.touchmoveEvent = function(e) { + // #ifdef H5 + window.isPreventDefault = false // 标记不需要阻止window事件 + // #endif + + if (!this.optDown.use) return; + if (!this.startPoint) return; + let me = this; + + // 节流 + let t = new Date().getTime(); + if (me.moveTime && t - me.moveTime < me.moveTimeDiff) { // 小于节流时间,则不处理 + return; + } else { + me.moveTime = t + if(!me.moveTimeDiff) me.moveTimeDiff = 1000 / me.optDown.fps + } + + let scrollTop = me.getScrollTop(); // 当前滚动条的距离 + let curPoint = me.getPoint(e); // 当前点 + + let moveY = curPoint.y - me.startPoint.y; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + + // 向下拉 && 在顶部 + // mescroll-body,直接判定在顶部即可 + // scroll-view在滚动时不会触发touchmove,当触顶/底/左/右时,才会触发touchmove + // scroll-view滚动到顶部时,scrollTop不一定为0; 在iOS的APP中scrollTop可能为负数,不一定和startTop相等 + if (moveY > 0 && ( + (me.isScrollBody && scrollTop <= 0) + || + (!me.isScrollBody && (scrollTop <= 0 || (scrollTop <= me.optDown.startTop && scrollTop === me.startTop)) ) + )) { + // 可下拉的条件 + if (!me.inTouchend && !me.isDownScrolling && !me.optDown.isLock && (!me.isUpScrolling || (me.isUpScrolling && + me.optUp.isBoth))) { + + // 下拉的角度是否在配置的范围内 + let angle = me.getAngle(me.lastPoint, curPoint); // 两点之间的角度,区间 [0,90] + if (angle < me.optDown.minAngle) return; // 如果小于配置的角度,则不往下执行下拉刷新 + + // 如果手指的位置超过配置的距离,则提前结束下拉,避免Webview嵌套导致touchend无法触发 + if (me.maxTouchmoveY > 0 && curPoint.y >= me.maxTouchmoveY) { + me.inTouchend = true; // 标记执行touchend + me.touchendEvent(); // 提前触发touchend + return; + } + + // #ifdef H5 + window.isPreventDefault = true // 标记阻止window事件 + // #endif + me.preventDefault(e); // 阻止默认事件 + + let diff = curPoint.y - me.lastPoint.y; // 和上次比,移动的距离 (大于0向下,小于0向上) + + // 下拉距离 < 指定距离 + if (me.downHight < me.optDown.offset) { + if (me.movetype !== 1) { + me.movetype = 1; // 加入标记,保证只执行一次 + me.optDown.inOffset && me.optDown.inOffset(me); // 进入指定距离范围内那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + me.downHight += diff * me.optDown.inOffsetRate; // 越往下,高度变化越小 + + // 指定距离 <= 下拉距离 + } else { + if (me.movetype !== 2) { + me.movetype = 2; // 加入标记,保证只执行一次 + me.optDown.outOffset && me.optDown.outOffset(me); // 下拉超过指定距离那一刻的回调,只执行一次 + me.isMoveDown = true; // 标记下拉区域高度改变,在touchend重置回来 + } + if (diff > 0) { // 向下拉 + me.downHight += Math.round(diff * me.optDown.outOffsetRate); // 越往下,高度变化越小 + } else { // 向上收 + me.downHight += diff; // 向上收回高度,则向上滑多少收多少高度 + } + } + + let rate = me.downHight / me.optDown.offset; // 下拉区域当前高度与指定距离的比值 + me.optDown.onMoving && me.optDown.onMoving(me, rate, me.downHight); // 下拉过程中的回调,一直在执行 + } + } + + me.lastPoint = curPoint; // 记录本次移动的点 +} + +/* 列表touchend事件 */ +MeScroll.prototype.touchendEvent = function(e) { + if (!this.optDown.use) return; + // 如果下拉区域高度已改变,则需重置回来 + if (this.isMoveDown) { + if (this.downHight >= this.optDown.offset) { + // 符合触发刷新的条件 + this.triggerDownScroll(); + } else { + // 不符合的话 则重置 + this.downHight = 0; + this.optDown.endDownScroll && this.optDown.endDownScroll(this); + } + this.movetype = 0; + this.isMoveDown = false; + } else if (!this.isScrollBody && this.getScrollTop() === this.startTop) { // scroll-view到顶/左/右/底的滑动事件 + let isScrollUp = this.getPoint(e).y - this.startPoint.y < 0; // 和起点比,移动的距离,大于0向下拉,小于0向上拉 + // 上滑 + if (isScrollUp) { + // 需检查滑动的角度 + let angle = this.getAngle(this.getPoint(e), this.startPoint); // 两点之间的角度,区间 [0,90] + if (angle > 80) { + // 检查并触发上拉 + this.triggerUpScroll(true); + } + } + } +} + +/* 根据点击滑动事件获取第一个手指的坐标 */ +MeScroll.prototype.getPoint = function(e) { + if (!e) { + return { + x: 0, + y: 0 + } + } + if (e.touches && e.touches[0]) { + return { + x: e.touches[0].pageX, + y: e.touches[0].pageY + } + } else if (e.changedTouches && e.changedTouches[0]) { + return { + x: e.changedTouches[0].pageX, + y: e.changedTouches[0].pageY + } + } else { + return { + x: e.clientX, + y: e.clientY + } + } +} + +/* 计算两点之间的角度: 区间 [0,90]*/ +MeScroll.prototype.getAngle = function(p1, p2) { + let x = Math.abs(p1.x - p2.x); + let y = Math.abs(p1.y - p2.y); + let z = Math.sqrt(x * x + y * y); + let angle = 0; + if (z !== 0) { + angle = Math.asin(y / z) / Math.PI * 180; + } + return angle +} + +/* 触发下拉刷新 */ +MeScroll.prototype.triggerDownScroll = function() { + if (this.optDown.beforeLoading && this.optDown.beforeLoading(this)) { + //return true则处于完全自定义状态 + } else { + this.showDownScroll(); // 下拉刷新中... + this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示下拉进度布局 */ +MeScroll.prototype.showDownScroll = function() { + this.isDownScrolling = true; // 标记下拉中 + if (this.optDown.native) { + uni.startPullDownRefresh(); // 系统自带的下拉刷新 + this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到 + } else{ + this.downHight = this.optDown.offset; // 更新下拉区域高度 + this.optDown.showLoading && this.optDown.showLoading(this, this.downHight); // 下拉刷新中... + } +} + +/* 显示系统自带的下拉刷新时需要处理的业务 */ +MeScroll.prototype.onPullDownRefresh = function() { + this.isDownScrolling = true; // 标记下拉中 + this.optDown.showLoading && this.optDown.showLoading(this, 0); // 仍触发showLoading,因为上拉加载用到 + this.optDown.callback && this.optDown.callback(this); // 执行回调,联网加载数据 +} + +/* 结束下拉刷新 */ +MeScroll.prototype.endDownScroll = function() { + if (this.optDown.native) { // 结束原生下拉刷新 + this.isDownScrolling = false; + this.optDown.endDownScroll && this.optDown.endDownScroll(this); + uni.stopPullDownRefresh(); + return + } + let me = this; + // 结束下拉刷新的方法 + let endScroll = function() { + me.downHight = 0; + me.isDownScrolling = false; + me.optDown.endDownScroll && me.optDown.endDownScroll(me); + !me.isScrollBody && me.setScrollHeight(0) // scroll-view重置滚动区域,使数据不满屏时仍可检查触发翻页 + } + // 结束下拉刷新时的回调 + let delay = 0; + if (me.optDown.afterLoading) delay = me.optDown.afterLoading(me); // 结束下拉刷新的延时,单位ms + if (typeof delay === 'number' && delay > 0) { + setTimeout(endScroll, delay); + } else { + endScroll(); + } +} + +/* 锁定下拉刷新:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockDownScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optDown.isLock = isLock; +} + +/* 锁定上拉加载:isLock=ture,null锁定;isLock=false解锁 */ +MeScroll.prototype.lockUpScroll = function(isLock) { + if (isLock == null) isLock = true; + this.optUp.isLock = isLock; +} + +/* -------初始化上拉加载------- */ +MeScroll.prototype.initUpScroll = function() { + let me = this; + // 配置参数 + me.optUp = me.options.up || {use: false} + if(!me.optUp.textColor && me.hasColor(me.optUp.bgColor)) me.optUp.textColor = "#fff"; // 当bgColor有值且textColor未设置,则textColor默认白色 + me.extendUpScroll(me.optUp); + + if (!me.optUp.isBounce) me.setBounce(false); // 不允许bounce时,需禁止window的touchmove事件 + + if (me.optUp.use === false) return; // 配置不使用上拉加载时,则不初始化上拉布局 + me.optUp.hasNext = true; // 如果使用上拉,则默认有下一页 + me.startNum = me.optUp.page.num + 1; // 记录page开始的页码 + + // 初始化完毕的回调 + if (me.optUp.inited) { + setTimeout(function() { // 待主线程执行完毕再执行,避免new MeScroll未初始化,在回调获取不到mescroll的实例 + me.optUp.inited(me); + }, 0) + } +} + +/*滚动到底部的事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onReachBottom = function() { + if (this.isScrollBody && !this.isUpScrolling) { // 只能支持下拉刷新的时候同时可以触发上拉加载,否则滚动到底部就需要上滑一点才能触发onReachBottom + if (!this.optUp.isLock && this.optUp.hasNext) { + this.triggerUpScroll(); + } + } +} + +/*列表滚动事件 (仅mescroll-body生效)*/ +MeScroll.prototype.onPageScroll = function(e) { + if (!this.isScrollBody) return; + + // 更新滚动条的位置 (主要用于判断下拉刷新时,滚动条是否在顶部) + this.setScrollTop(e.scrollTop); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } +} + +/*列表滚动事件*/ +MeScroll.prototype.scroll = function(e, onScroll) { + // 更新滚动条的位置 + this.setScrollTop(e.scrollTop); + // 更新滚动内容高度 + this.setScrollHeight(e.scrollHeight); + + // 向上滑还是向下滑动 + if (this.preScrollY == null) this.preScrollY = 0; + this.isScrollUp = e.scrollTop - this.preScrollY > 0; + this.preScrollY = e.scrollTop; + + // 上滑 && 检查并触发上拉 + this.isScrollUp && this.triggerUpScroll(true); + + // 顶部按钮的显示隐藏 + if (e.scrollTop >= this.optUp.toTop.offset) { + this.showTopBtn(); + } else { + this.hideTopBtn(); + } + + // 滑动监听 + this.optUp.onScroll && onScroll && onScroll() +} + +/* 触发上拉加载 */ +MeScroll.prototype.triggerUpScroll = function(isCheck) { + if (!this.isUpScrolling && this.optUp.use && this.optUp.callback) { + // 是否校验在底部; 默认不校验 + if (isCheck === true) { + let canUp = false; + // 还有下一页 && 没有锁定 && 不在下拉中 + if (this.optUp.hasNext && !this.optUp.isLock && !this.isDownScrolling) { + if (this.getScrollBottom() <= this.optUp.offset) { // 到底部 + canUp = true; // 标记可上拉 + } + } + if (canUp === false) return; + } + this.showUpScroll(); // 上拉加载中... + this.optUp.page.num++; // 预先加一页,如果失败则减回 + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = this.optUp.page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = this.optUp.page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = this.optUp.page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback(this); // 执行回调,联网加载数据 + } +} + +/* 显示上拉加载中 */ +MeScroll.prototype.showUpScroll = function() { + this.isUpScrolling = true; // 标记上拉加载中 + this.optUp.showLoading && this.optUp.showLoading(this); // 回调 +} + +/* 显示上拉无更多数据 */ +MeScroll.prototype.showNoMore = function() { + this.optUp.hasNext = false; // 标记无更多数据 + this.optUp.showNoMore && this.optUp.showNoMore(this); // 回调 +} + +/* 隐藏上拉区域**/ +MeScroll.prototype.hideUpScroll = function() { + this.optUp.hideUpScroll && this.optUp.hideUpScroll(this); // 回调 +} + +/* 结束上拉加载 */ +MeScroll.prototype.endUpScroll = function(isShowNoMore) { + if (isShowNoMore != null) { // isShowNoMore=null,不处理下拉状态,下拉刷新的时候调用 + if (isShowNoMore) { + this.showNoMore(); // isShowNoMore=true,显示无更多数据 + } else { + this.hideUpScroll(); // isShowNoMore=false,隐藏上拉加载 + } + } + this.isUpScrolling = false; // 标记结束上拉加载 +} + +/* 重置上拉加载列表为第一页 + *isShowLoading 是否显示进度布局; + * 1.默认null,不传参,则显示上拉加载的进度布局 + * 2.传参true, 则显示下拉刷新的进度布局 + * 3.传参false,则不显示上拉和下拉的进度 (常用于静默更新列表数据) + */ +MeScroll.prototype.resetUpScroll = function(isShowLoading) { + if (this.optUp && this.optUp.use) { + let page = this.optUp.page; + this.prePageNum = page.num; // 缓存重置前的页码,加载失败可退回 + this.prePageTime = page.time; // 缓存重置前的时间,加载失败可退回 + page.num = this.startNum; // 重置为第一页 + page.time = null; // 重置时间为空 + if (!this.isDownScrolling && isShowLoading !== false) { // 如果不是下拉刷新触发的resetUpScroll并且不配置列表静默更新,则显示进度; + if (isShowLoading == null) { + this.removeEmpty(); // 移除空布局 + this.showUpScroll(); // 不传参,默认显示上拉加载的进度布局 + } else { + this.showDownScroll(); // 传true,显示下拉刷新的进度布局,不清空列表 + } + } + this.isUpAutoLoad = true; // 标记上拉已经自动执行过,避免初始化时多次触发上拉回调 + this.num = page.num; // 把最新的页数赋值在mescroll上,避免对page的影响 + this.size = page.size; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.time = page.time; // 把最新的页码赋值在mescroll上,避免对page的影响 + this.optUp.callback && this.optUp.callback(this); // 执行上拉回调 + } +} + +/* 设置page.num的值 */ +MeScroll.prototype.setPageNum = function(num) { + this.optUp.page.num = num - 1; +} + +/* 设置page.size的值 */ +MeScroll.prototype.setPageSize = function(size) { + this.optUp.page.size = size; +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalPage: 总页数(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endByPage = function(dataSize, totalPage, systime) { + let hasNext; + if (this.optUp.use && totalPage != null) hasNext = this.optUp.page.num < totalPage; // 是否还有下一页 + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据量(必传) + * totalSize: 列表所有数据总数量(必传) + * systime: 服务器时间 (可空) + */ +MeScroll.prototype.endBySize = function(dataSize, totalSize, systime) { + let hasNext; + if (this.optUp.use && totalSize != null) { + let loadSize = (this.optUp.page.num - 1) * this.optUp.page.size + dataSize; // 已加载的数据总数 + hasNext = loadSize < totalSize; // 是否还有下一页 + } + this.endSuccess(dataSize, hasNext, systime); +} + +/* 联网回调成功,结束下拉刷新和上拉加载 + * dataSize: 当前页的数据个数(不是所有页的数据总和),用于上拉加载判断是否还有下一页.如果不传,则会判断还有下一页 + * hasNext: 是否还有下一页,布尔类型;用来解决这个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据dataSize判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据. + * systime: 服务器时间(可空);用来解决这个小问题:当准备翻下一页时,数据库新增了几条记录,此时翻下一页,前面的几条数据会和上一页的重复;这里传入了systime,那么upCallback的page.time就会有值,把page.time传给服务器,让后台过滤新加入的那几条记录 + */ +MeScroll.prototype.endSuccess = function(dataSize, hasNext, systime) { + let me = this; + // 结束下拉刷新 + if (me.isDownScrolling) me.endDownScroll(); + + // 结束上拉加载 + if (me.optUp.use) { + let isShowNoMore; // 是否已无更多数据 + if (dataSize != null) { + let pageNum = me.optUp.page.num; // 当前页码 + let pageSize = me.optUp.page.size; // 每页长度 + // 如果是第一页 + if (pageNum === 1) { + if (systime) me.optUp.page.time = systime; // 设置加载列表数据第一页的时间 + } + if (dataSize < pageSize || hasNext === false) { + // 返回的数据不满一页时,则说明已无更多数据 + me.optUp.hasNext = false; + if (dataSize === 0 && pageNum === 1) { + // 如果第一页无任何数据且配置了空布局 + isShowNoMore = false; + me.showEmpty(); + } else { + // 总列表数少于配置的数量,则不显示无更多数据 + let allDataSize = (pageNum - 1) * pageSize + dataSize; + if (allDataSize < me.optUp.noMoreSize) { + isShowNoMore = false; + } else { + isShowNoMore = true; + } + me.removeEmpty(); // 移除空布局 + } + } else { + // 还有下一页 + isShowNoMore = false; + me.optUp.hasNext = true; + me.removeEmpty(); // 移除空布局 + } + } + + // 隐藏上拉 + me.endUpScroll(isShowNoMore); + } +} + +/* 回调失败,结束下拉刷新和上拉加载 */ +MeScroll.prototype.endErr = function(errDistance) { + // 结束下拉,回调失败重置回原来的页码和时间 + if (this.isDownScrolling) { + let page = this.optUp.page; + if (page && this.prePageNum) { + page.num = this.prePageNum; + page.time = this.prePageTime; + } + this.endDownScroll(); + } + // 结束上拉,回调失败重置回原来的页码 + if (this.isUpScrolling) { + this.optUp.page.num--; + this.endUpScroll(false); + // 如果是mescroll-body,则需往回滚一定距离 + if(this.isScrollBody && errDistance !== 0){ // 不处理0 + if(!errDistance) errDistance = this.optUp.errDistance; // 不传,则取默认 + this.scrollTo(this.getScrollTop() - errDistance, 0) // 往上回滚的距离 + } + } +} + +/* 显示空布局 */ +MeScroll.prototype.showEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(true) +} + +/* 移除空布局 */ +MeScroll.prototype.removeEmpty = function() { + this.optUp.empty.use && this.optUp.empty.onShow && this.optUp.empty.onShow(false) +} + +/* 显示回到顶部的按钮 */ +MeScroll.prototype.showTopBtn = function() { + if (!this.topBtnShow) { + this.topBtnShow = true; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(true); + } +} + +/* 隐藏回到顶部的按钮 */ +MeScroll.prototype.hideTopBtn = function() { + if (this.topBtnShow) { + this.topBtnShow = false; + this.optUp.toTop.onShow && this.optUp.toTop.onShow(false); + } +} + +/* 获取滚动条的位置 */ +MeScroll.prototype.getScrollTop = function() { + return this.scrollTop || 0 +} + +/* 记录滚动条的位置 */ +MeScroll.prototype.setScrollTop = function(y) { + this.scrollTop = y; +} + +/* 滚动到指定位置 */ +MeScroll.prototype.scrollTo = function(y, t) { + this.myScrollTo && this.myScrollTo(y, t) // scrollview需自定义回到顶部方法 +} + +/* 自定义scrollTo */ +MeScroll.prototype.resetScrollTo = function(myScrollTo) { + this.myScrollTo = myScrollTo +} + +/* 滚动条到底部的距离 */ +MeScroll.prototype.getScrollBottom = function() { + return this.getScrollHeight() - this.getClientHeight() - this.getScrollTop() +} + +/* 计步器 + star: 开始值 + end: 结束值 + callback(step,timer): 回调step值,计步器timer,可自行通过window.clearInterval(timer)结束计步器; + t: 计步时长,传0则直接回调end值;不传则默认300ms + rate: 周期;不传则默认30ms计步一次 + * */ +MeScroll.prototype.getStep = function(star, end, callback, t, rate) { + let diff = end - star; // 差值 + if (t === 0 || diff === 0) { + callback && callback(end); + return; + } + t = t || 300; // 时长 300ms + rate = rate || 30; // 周期 30ms + let count = t / rate; // 次数 + let step = diff / count; // 步长 + let i = 0; // 计数 + let timer = setInterval(function() { + if (i < count - 1) { + star += step; + callback && callback(star, timer); + i++; + } else { + callback && callback(end, timer); // 最后一次直接设置end,避免计算误差 + clearInterval(timer); + } + }, rate); +} + +/* 滚动容器的高度 */ +MeScroll.prototype.getClientHeight = function(isReal) { + let h = this.clientHeight || 0 + if (h === 0 && isReal !== true) { // 未获取到容器的高度,可临时取body的高度 (可能会有误差) + h = this.getBodyHeight() + } + return h +} +MeScroll.prototype.setClientHeight = function(h) { + this.clientHeight = h; +} + +/* 滚动内容的高度 */ +MeScroll.prototype.getScrollHeight = function() { + return this.scrollHeight || 0; +} +MeScroll.prototype.setScrollHeight = function(h) { + this.scrollHeight = h; +} + +/* body的高度 */ +MeScroll.prototype.getBodyHeight = function() { + return this.bodyHeight || 0; +} +MeScroll.prototype.setBodyHeight = function(h) { + this.bodyHeight = h; +} + +/* 阻止浏览器默认滚动事件 */ +MeScroll.prototype.preventDefault = function(e) { + // 小程序不支持e.preventDefault + // app的bounce只能通过配置pages.json的style.app-plus.bounce为"none"来禁止 + // cancelable:是否可以被禁用; defaultPrevented:是否已经被禁用 + if (e && e.cancelable && !e.defaultPrevented) e.preventDefault() +} + +/* 是否允许下拉回弹(橡皮筋效果); true或null为允许; false禁止bounce */ +MeScroll.prototype.setBounce = function(isBounce) { + // #ifdef H5 + if (isBounce === false) { + this.optUp.isBounce = false; // 禁止 + // 标记当前页使用了mescroll (需延时,确保page已切换) + setTimeout(function() { + let uniPageDom = document.getElementsByTagName('uni-page')[0]; + uniPageDom && uniPageDom.setAttribute('use_mescroll', true) + }, 30); + // 避免重复添加事件 + if (window.isSetBounce) return; + window.isSetBounce = true; + // 需禁止window的touchmove事件才能有效的阻止bounce + window.bounceTouchmove = function(e) { + if(!window.isPreventDefault) return; // 根据标记判断是否阻止 + + let el = e.target; + // 当前touch的元素及父元素是否要拦截touchmove事件 + let isPrevent = true; + while (el !== document.body && el !== document) { + if (el.tagName === 'UNI-PAGE') { // 只扫描当前页 + if (!el.getAttribute('use_mescroll')) { + isPrevent = false; // 如果当前页没有使用mescroll,则不阻止 + } + break; + } + let cls = el.classList; + if (cls) { + if (cls.contains('mescroll-touch')) { // 采用scroll-view 此处不能过滤mescroll-uni,否则下拉仍然有回弹 + isPrevent = false; // mescroll-touch无需拦截touchmove事件 + break; + } else if (cls.contains('mescroll-touch-x') || cls.contains('mescroll-touch-y')) { + // 如果配置了水平或者垂直滑动 + let curX = e.touches ? e.touches[0].pageX : e.clientX; // 当前第一个手指距离列表顶部的距离x + let curY = e.touches ? e.touches[0].pageY : e.clientY; // 当前第一个手指距离列表顶部的距离y + if (!this.preWinX) this.preWinX = curX; // 设置上次移动的距离x + if (!this.preWinY) this.preWinY = curY; // 设置上次移动的距离y + // 计算两点之间的角度 + let x = Math.abs(this.preWinX - curX); + let y = Math.abs(this.preWinY - curY); + let z = Math.sqrt(x * x + y * y); + this.preWinX = curX; // 记录本次curX的值 + this.preWinY = curY; // 记录本次curY的值 + if (z !== 0) { + let angle = Math.asin(y / z) / Math.PI * 180; // 角度区间 [0,90] + if ((angle <= 45 && cls.contains('mescroll-touch-x')) || (angle > 45 && cls.contains('mescroll-touch-y'))) { + isPrevent = false; // 水平滑动或者垂直滑动,不拦截touchmove事件 + break; + } + } + } + } + el = el.parentNode; // 继续检查其父元素 + } + // 拦截touchmove事件:是否可以被禁用&&是否已经被禁用 (这里不使用me.preventDefault(e)的方法,因为某些情况下会报找不到方法的异常) + if (isPrevent && e.cancelable && !e.defaultPrevented && typeof e.preventDefault === "function") e.preventDefault(); + } + window.addEventListener('touchmove', window.bounceTouchmove, { + passive: false + }); + } else { + this.optUp.isBounce = true; // 允许 + if (window.bounceTouchmove) { + window.removeEventListener('touchmove', window.bounceTouchmove); + window.bounceTouchmove = null; + window.isSetBounce = false; + } + } + // #endif +} diff --git a/components/mescroll-uni/mescroll-uni.vue b/components/mescroll-uni/mescroll-uni.vue new file mode 100644 index 0000000..02bda08 --- /dev/null +++ b/components/mescroll-uni/mescroll-uni.vue @@ -0,0 +1,364 @@ + + + + + + + + + + {{downText}} + + + + + + + + + + + + + + + + {{ mescroll.optUp.textLoading }} + + + {{ mescroll.optUp.textNoMore }} + + + + + + + + + + + + diff --git a/components/mescroll-uni/mixins/mescroll-comp.js b/components/mescroll-uni/mixins/mescroll-comp.js new file mode 100644 index 0000000..f376379 --- /dev/null +++ b/components/mescroll-uni/mixins/mescroll-comp.js @@ -0,0 +1,23 @@ +/** + * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: + * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) + * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) + */ +const MescrollCompMixin = { + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e) { + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPageScroll(e); + }, + onReachBottom() { + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onReachBottom(); + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + let item = this.$refs["mescrollItem"]; + if(item && item.mescroll) item.mescroll.onPullDownRefresh(); + } +} + +export default MescrollCompMixin; diff --git a/components/mescroll-uni/mixins/mescroll-more-item.js b/components/mescroll-uni/mixins/mescroll-more-item.js new file mode 100644 index 0000000..81bc45c --- /dev/null +++ b/components/mescroll-uni/mixins/mescroll-more-item.js @@ -0,0 +1,48 @@ +/** + * mescroll-more-item的mixins, 仅在多个 mescroll-body 写在子组件时使用 (参考 mescroll-more 案例) + */ +const MescrollMoreItemMixin = { + props:{ + i: Number, // 每个tab页的专属下标 + index: { // 当前tab的下标 + type: Number, + default(){ + return 0 + } + } + }, + data() { + return { + downOption:{ + auto:false // 不自动加载 + }, + upOption:{ + auto:false // 不自动加载 + }, + isInit: false // 当前tab是否已初始化 + } + }, + watch:{ + // 监听下标的变化 + index(val){ + if (this.i === val && !this.isInit) { + this.isInit = true; // 标记为true + this.mescroll && this.mescroll.triggerDownScroll(); + } + } + }, + methods: { + // mescroll组件初始化的回调,可获取到mescroll对象 + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef && this.mescrollInitByRef(); // 兼容字节跳动小程序 (mescroll-mixins.js) + // 自动加载当前tab的数据 + if(this.i === this.index){ + this.isInit = true; // 标记为true + this.mescroll.triggerDownScroll(); + } + }, + } +} + +export default MescrollMoreItemMixin; diff --git a/components/mescroll-uni/mixins/mescroll-more.js b/components/mescroll-uni/mixins/mescroll-more.js new file mode 100644 index 0000000..142aa75 --- /dev/null +++ b/components/mescroll-uni/mixins/mescroll-more.js @@ -0,0 +1,56 @@ +/** + * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期: + * 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例) + * 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例) + */ +const MescrollMoreMixin = { + data() { + return { + tabIndex: 0 // 当前tab下标 + } + }, + // 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 + onPageScroll(e) { + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPageScroll(e); + }, + onReachBottom() { + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onReachBottom(); + }, + // 当down的native: true时, 还需传递此方法进到子组件 + onPullDownRefresh(){ + let mescroll = this.getMescroll(this.tabIndex); + mescroll && mescroll.onPullDownRefresh(); + }, + methods:{ + // 根据下标获取对应子组件的mescroll + getMescroll(i){ + if(!this.mescrollItems) this.mescrollItems = []; + if(!this.mescrollItems[i]) { + // v-for中的refs + let vForItem = this.$refs["mescrollItem"]; + if(vForItem){ + this.mescrollItems[i] = vForItem[i] + }else{ + // 普通的refs,不可重复 + this.mescrollItems[i] = this.$refs["mescrollItem"+i]; + } + } + let item = this.mescrollItems[i] + return item ? item.mescroll : null + }, + // 切换tab,恢复滚动条位置 + tabChange(i){ + let mescroll = this.getMescroll(i); + if(mescroll){ + // 延时(比$nextTick靠谱一些),确保元素已渲染 + setTimeout(()=>{ + mescroll.scrollTo(mescroll.getScrollTop(),0) + },30) + } + } + } +} + +export default MescrollMoreMixin; diff --git a/components/simple-address/city-data/area.js b/components/simple-address/city-data/area.js new file mode 100644 index 0000000..73056a4 --- /dev/null +++ b/components/simple-address/city-data/area.js @@ -0,0 +1,12548 @@ +/* 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" + }] + ], + [ + [{ + "label": "钓鱼岛全岛", + "value": "690101" + }] + ] +] +export default areaData; diff --git a/components/simple-address/city-data/city.js b/components/simple-address/city-data/city.js new file mode 100644 index 0000000..703f432 --- /dev/null +++ b/components/simple-address/city-data/city.js @@ -0,0 +1,1507 @@ +/* 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" + } + ], + [{ + "label": "钓鱼岛", + "value": "6901" + }, ] +] +export default cityData; diff --git a/components/simple-address/city-data/province.js b/components/simple-address/city-data/province.js new file mode 100644 index 0000000..c3ad911 --- /dev/null +++ b/components/simple-address/city-data/province.js @@ -0,0 +1,143 @@ +/* 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" + }, + { + "label": "钓鱼岛", + "value": "69" + } +] +export default provinceData; diff --git a/components/simple-address/simple-address.nvue b/components/simple-address/simple-address.nvue new file mode 100644 index 0000000..feb78de --- /dev/null +++ b/components/simple-address/simple-address.nvue @@ -0,0 +1,381 @@ + + + + + + + + 取消 + 确定 + + + + + + {{ item.label }} + + + {{ item.label }} + + + + + {{ item.label }} + + + {{ item.label }} + + + + + {{ item.label }} + + + {{ item.label }} + + + + + + + + + + + diff --git a/components/uni-popup/message.js b/components/uni-popup/message.js new file mode 100644 index 0000000..0ff9a02 --- /dev/null +++ b/components/uni-popup/message.js @@ -0,0 +1,22 @@ +export default { + created() { + if (this.type === 'message') { + // 不显示遮罩 + this.maskShow = false + // 获取子组件对象 + this.childrenMsg = null + } + }, + methods: { + customOpen() { + if (this.childrenMsg) { + this.childrenMsg.open() + } + }, + customClose() { + if (this.childrenMsg) { + this.childrenMsg.close() + } + } + } +} diff --git a/components/uni-popup/popup.js b/components/uni-popup/popup.js new file mode 100644 index 0000000..2a7f22f --- /dev/null +++ b/components/uni-popup/popup.js @@ -0,0 +1,25 @@ +import message from './message.js'; +// 定义 type 类型:弹出类型:top/bottom/center +const config = { + // 顶部弹出 + top:'top', + // 底部弹出 + bottom:'bottom', + // 居中弹出 + center:'center', + // 消息提示 + message:'top', + // 对话框 + dialog:'center', + // 分享 + share:'bottom', +} + +export default { + data(){ + return { + config:config + } + }, + mixins: [message], +} diff --git a/components/uni-popup/uni-popup-dialog.vue b/components/uni-popup/uni-popup-dialog.vue new file mode 100644 index 0000000..c91123c --- /dev/null +++ b/components/uni-popup/uni-popup-dialog.vue @@ -0,0 +1,243 @@ + + + + {{title}} + + + {{content}} + + + + + 取消 + + + 确定 + + + + + + + + + diff --git a/components/uni-popup/uni-popup-message.vue b/components/uni-popup/uni-popup-message.vue new file mode 100644 index 0000000..a32bd00 --- /dev/null +++ b/components/uni-popup/uni-popup-message.vue @@ -0,0 +1,116 @@ + + + {{message}} + + + + + diff --git a/components/uni-popup/uni-popup-share.vue b/components/uni-popup/uni-popup-share.vue new file mode 100644 index 0000000..4c11a13 --- /dev/null +++ b/components/uni-popup/uni-popup-share.vue @@ -0,0 +1,165 @@ + + + {{title}} + + + + + {{item.text}} + + + + + + 取消 + + + + + + diff --git a/components/uni-popup/uni-popup.vue b/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..2d15d5f --- /dev/null +++ b/components/uni-popup/uni-popup.vue @@ -0,0 +1,294 @@ + + + + + + + + + + + + + diff --git a/components/uni-segmented-control/uni-segmented-control.vue b/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 0000000..c3f7764 --- /dev/null +++ b/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,134 @@ + + + + {{ item }} + + + + + + + \ No newline at end of file diff --git a/components/uni-transition/uni-transition.vue b/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..908a939 --- /dev/null +++ b/components/uni-transition/uni-transition.vue @@ -0,0 +1,279 @@ + + + + + + + + + diff --git a/components/v-tabs/readme.md b/components/v-tabs/readme.md new file mode 100644 index 0000000..0f6f9af --- /dev/null +++ b/components/v-tabs/readme.md @@ -0,0 +1,182 @@ +## 插件说明 + +> 这是 `v-tabs` 插件的升级版本,参数上有很大变动,支持 `H5` `小程序` `手机端`,如果是在之前的插件上升级的话,请注意参数的变更,触发的事件没有变更。 + +## 使用说明 + +### 1、最基本用法 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +export default { + data() { + return { + current: 0, + tabs: ['军事', '国内', '新闻新闻', '军事', '国内', '新闻', '军事', '国内', '新闻'] + } + }, + methods: { + changeTab(index) { + console.log('当前选中的项:' + index) + } + } +} +``` + +### 2、平铺整个屏幕 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +export default { + data() { + return { + activeTab: 0 + } + } +} +``` + +### 3、胶囊用法 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +data() { + return { + current: 2, + tabs: [ + '军事', + '国内', + '新闻新闻', + '军事', + '国内', + '新闻', + '军事', + '国内', + '新闻', + ], + }, + methods: { + changeTab(index) { + console.log('当前选中索引:' + index) + } + } +} +``` + +## 文档说明 + +### 1、属性说明 + +| 参数 | 类型 | 默认值 | 说明 | +| :---------------: | :-----: | :-------: | :----------------------------------------: | +| value | Number | 0 | 必传(双向绑定的值) | +| color | String | '#333' | 默认文字颜色 | +| activeColor | String | '#2979ff' | 选中文字的颜色 | +| fontSize | String | '28rpx' | 默认文字大小(rpx 或 px) | +| bold | Boolean | true | 是否加粗选中项 | +| scroll | Boolean | true | 是否显示滚动条,平铺设置 false | +| height | String | '70rpx' | tab 高度(rpx 或 px) | +| lineHeight | String | '10rpx' | 滑块高度(rpx 或 px) | +| lineColor | String | '#2979ff' | 滑块的颜色 | +| lineScale | Number | 0.5 | 滑块宽度缩放值 | +| lineRadius | String | '10rpx' | 滑块圆角宽度(rpx 或 px) | +| pills | Boolean | false | 是否开启胶囊 | +| pillsColor | String | '#2979ff' | 胶囊背景颜色(rpx 或 px) | +| pillsBorderRadius | String | '10rpx' | 胶囊圆角宽度(rpx 或 px) | +| field | String | '' | 如果 tabs 子项是对象,输入需要展示的键名 | +| bgColor | String | '#fff' | 背景色,支持 linear-gradient 渐变 | +| padding | String | '0' | 整个 tab padding 属性 | +| fixed | Boolean | false | 是否固定在顶部 | +| paddingItem | String | '0 22rpx' | 选项的边距(设置上下不生效,需要设置高度) | + +### 2、事件说明 + +| 名称 | 参数 | 说明 | +| :----: | :---: | :--------------------------------: | +| change | index | 改变选中项触发, index 选中项的下标 | + +## 更新日志 + +### 2020-09-24 + +1. 修复 `v-tabs` 第一次可能出现第一个标签显示不完整的情况 +2. 修改了 `pages/tabs/order` 示例文件 + +### 2020-09-21 + +1. 修复添加 `fixed` 属性后,滚动条无效 +2. 修复选项很少的情况下,下划线计算计算错误 +3. 新增 `paddingItem` 属性,设置选项左右边距(上下边距需要设置 `height` 属性,或者设置 `padding` 属性) + +**写在最后:** +欢迎各位老铁反馈 bug ,本人后端 PHP 一枚,只是应为感兴趣前端,自己琢磨,自己搞。如果你在使用的过程中有什么不合理,需要优化的,都可以在下面评论(或加我 QQ: 1207791534),本人看见后回复、修正,感谢。 + +### 2020-09-17 + +1. 紧急修复 bug,横向滑动不了的情况 + +### 2020-09-16 + +1. 新增 `fixed` 属性,是否固定在顶部,示例地址:`pages/tabs/tabs-static` +2. 优化之前的页面结构 + +**注意:** + +1. 使用 `padding` 属性的时候,尽量不要左右边距,会导致下划线位置不对 +2. 如果不绑定 `v-model` 会导致 `change` 事件改变的时候,下划线不跟随问题 + +### 2020-09-09 + +1. 修复 `width` 错误,dom 加载的时候没有及时获取到 `data` 属性导致的。 + +### 2020-08-29 + +1. 优化异步改变 `tabs` 后,下划线不初始化问题 +2. `github` 地址上有图 2 的源码,需要的自行下载,页面路径:`pages/tabs/order` + +### 2020-08-20 + +1. 优化 `节点查询` 和 `选中渲染` +2. 优化支付宝中 `createSelectorQuery()` 的影响 + +### 2020-08-19 + +1. 优化 `change` 事件触发机制 + +### 2020-08-16 + +1. 修改默认高度为 `70rpx` +2. 新增属性 `bgColor`,可设置背景颜色,默认 `#fff` +3. 新增整个 `tab` 的 `padding` 属性,默认 `0` + +### 2020-08-13 + +1. 全新的 `v-tabs 2.0` +2. 支持 `H5` `小程序` `APP` +3. 属性高度可配置 + +## 预览 + + + diff --git a/components/v-tabs/v-tabs.vue b/components/v-tabs/v-tabs.vue new file mode 100644 index 0000000..a4de780 --- /dev/null +++ b/components/v-tabs/v-tabs.vue @@ -0,0 +1,358 @@ + + + + + + {{ field ? v[field] : v }} + + + + + + + + + + + + diff --git a/components/yzc-paykeyboard/yzc-paykeyboard.vue b/components/yzc-paykeyboard/yzc-paykeyboard.vue new file mode 100644 index 0000000..0995954 --- /dev/null +++ b/components/yzc-paykeyboard/yzc-paykeyboard.vue @@ -0,0 +1,287 @@ + + + + + + + + + 请输入支付密码 + + + + + 金额 + ¥ {{force2Decimal(money)}} + + + 支付方式 + 余额 + + + + + + {{ (password[index] && '●') || '' }} + + + + + + + + + {{index + 1}} + + + 0 + + + + + + + + + diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..42c9cfd --- /dev/null +++ b/config/index.js @@ -0,0 +1,13 @@ +export const VUE_APP_API_URL = "https://shop.xdd618.com/api"; +// export const VUE_APP_API_URL = "https://www.xdd618.com/api"; + +export const SERVICE_API_URL = "https://service-test.xdd618.com/api"; +// export const SERVICE_API_URL = "https://service.xdd618.com/api"; + +export const SOCKET_URL = "wss://service-test.xdd618.com/ws"; +// export const SOCKET_URL = "wss://service.xdd618.com/ws"; + +export const VUE_APP_RESOURCES_URL = "https://www.xdd618.com/api/file/pic"; +export const STATIC_RESOURCE_URL = "https://resource.xdd618.com/image" + +export const WX_LIVE_APPID = "wx2b03c6e691cd7370"; diff --git a/libs/chat.js b/libs/chat.js new file mode 100644 index 0000000..b48e5d1 --- /dev/null +++ b/libs/chat.js @@ -0,0 +1,51 @@ +import $store from "@//store"; +import { VUE_APP_WS_URL } from "@/utils"; + +const Socket = function() { + this.ws = new WebSocket(VUE_APP_WS_URL); + this.ws.onopen = this.onOpen.bind(this); + this.ws.onerror = this.onError.bind(this); + this.ws.onmessage = this.onMessage.bind(this); + this.ws.onclose = this.onClose.bind(this); +}; + +Socket.prototype = { + vm(vm) { + this.vm = vm; + }, + close() { + clearInterval(this.timer); + this.ws.close(); + }, + onOpen: function() { + this.init(); + this.send({ + type: "login", + data: $store.state.token + }); + this.vm.$emit("socket_open"); + }, + init: function() { + var that = this; + this.timer = setInterval(function() { + that.send({ type: "ping" }); + }, 10000); + }, + send: function(data) { + return this.ws.send(JSON.stringify(data)); + }, + onMessage: function(res) { + const { type, data = {} } = JSON.parse(res.data); + this.vm.$emit(type, data); + }, + onClose: function() { + clearInterval(this.timer); + }, + onError: function(e) { + this.vm.$emit("socket_error", e); + } +}; + +Socket.prototype.constructor = Socket; + +export default Socket; diff --git a/libs/order.js b/libs/order.js new file mode 100644 index 0000000..0091705 --- /dev/null +++ b/libs/order.js @@ -0,0 +1,161 @@ +import { cancelOrder, takeOrder, delOrder, payOrder, yuePayOrder } from "@/api/order"; +import dialog from "@/utils/dialog"; +import { weappPay } from "@/libs/wechat"; + +export function cancelOrderHandle(orderId) { + return new Promise((resolve, reject) => { + uni.showModal({ + title: '提示', + content: '确认取消该订单?', + success(res) { + if (res.confirm) { + cancelOrder(orderId) + .then(res => { + uni.showToast({ + title: '取消成功', icon: 'success', duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '取消失败', icon: 'none', duration: 2000 + }); + reject(err); + }); + } else if (res.cancel) { + } + } + }) + }); +} + +export function takeOrderHandle(orderId) { + return new Promise((resolve, reject) => { + takeOrder(orderId) + .then(res => { + uni.showToast({ + title: '收货成功', icon: 'success', duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '收货失败', icon: 'none', duration: 2000 + }); + reject(err); + }); + }); +} + +export function delOrderHandle(orderId) { + return new Promise((resolve, reject) => { + dialog.confirm({ + mes: "确认删除该订单?", + opts() { + delOrder(orderId) + .then(res => { + uni.showToast({ + title: '删除成功', icon: 'success', duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '删除失败', icon: 'none', duration: 2000 + }); + reject(err); + }); + } + }); + }); +} + +export function payOrderHandle(orderId, type, from) { + console.log(orderId, type, from, '支付') + return new Promise((resolve, reject) => { + uni.showLoading({ title: '加载中' }) + payOrder(orderId, type, from) + .then(res => { + const data = res.data; + uni.hideLoading() + switch (data.status) { + case "WECHAT_H5_PAY": + location.replace(data.result.jsConfig.mweb_url); + reject(data); + break; + case "ORDER_EXIST": + case "EXTEND_ORDER": + case "PAY_ERROR": + case "PAY_DEFICIENCY": + uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); + reject(data); + break; + case "SUCCESS": + uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); + resolve(data); + break; + case "WECHAT_PAY": + weappPay(data.result.jsConfig).then(res => { + resolve(data); + }); + break; + case "WECHAT_APP_PAY": + weappPay(data.result.jsConfig).then(res => { + resolve(data); + }); + break; + } + }) + .catch(err => { + uni.hideLoading() + uni.showToast({ + title: '订单支付失败', icon: 'none', duration: 2000 + }); + }); + }); +} + +export function yuePayOrderHandle(orderId, type, from, passwordPay) { + console.log(orderId, type, from, '支付') + return new Promise((resolve, reject) => { + uni.showLoading({ title: '加载中' }) + yuePayOrder(orderId, type, from, passwordPay) + .then(res => { + const data = res.data; + uni.hideLoading() + switch (data.status) { + case "WECHAT_H5_PAY": + location.replace(data.result.jsConfig.mweb_url); + reject(data); + break; + case "ORDER_EXIST": + case "EXTEND_ORDER": + case "PAY_ERROR": + case "PAY_DEFICIENCY": + uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); + reject(data); + break; + case "SUCCESS": + uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }); + resolve(data); + break; + case "WECHAT_PAY": + weappPay(data.result.jsConfig).then(res => { + resolve(data); + }); + break; + case "WECHAT_APP_PAY": + weappPay(data.result.jsConfig).then(res => { + resolve(data); + }); + break; + } + }) + .catch(err => { + uni.hideLoading() + uni.showToast({ + title: err.msg||'订单支付失败', icon: 'none', duration: 2000 + }); + }); + }); +} diff --git a/libs/wechat.js b/libs/wechat.js new file mode 100644 index 0000000..b95b507 --- /dev/null +++ b/libs/wechat.js @@ -0,0 +1,397 @@ +import { subscribeMessage } from '@/libs/order' +import { getProvider } from '@/utils' +import WechatJSSDK from 'wechat-jssdk/dist/client.umd' +import { getWechatConfig, wechatAuth } from '@/api/public' +import { parseQuery } from '@/utils' +import cookie from '@/utils/store/cookie' +import store from '@/store' +import dayjs from 'dayjs' + +// 支付模块 +export const weappPay = option => { + return new Promise((resolve, reject) => { + if (store.state.$deviceType == 'weixinh5') { + setTimeout(() => { + location.href = option.mweb_url + }, 100) + resolve() + return + } + if (store.state.$deviceType == 'weixin') { + pay(option) + .then(() => { + uni.showToast({ + title: '支付成功', + icon: 'success', + duration: 5000, + }) + resolve() + }) + .finally(res => { + //if(typeof(res) == "undefined") return + }) + .catch(function() { + uni.showToast({ title: '支付失败', icon: 'none', duration: 5000 }) + reject() + }) + return + } + // 吊起微信支付 + // getProvider('payment').then(provider => { + let orderInfo = { + appid: option.appid, + noncestr: option.noncestr, + package: option.package, + partnerid: option.partnerid, + prepayid: option.prepayid, + sign: option.sign, + timestamp: option.timestamp + '', + } + // 调用只接口 + uni.requestPayment({ + provider: 'wxpay', + ...option, + timestamp: orderInfo.timestamp, + orderInfo, + success: success => { + console.log(success) + uni.showToast({ + title: '支付成功', + icon: 'success', + duration: 5000, + }) + let time = setTimeout(() => { + clearTimeout(time) + resolve(success) + }, 3000) + // #ifdef MP-WEIXIN + subscribeMessage() + // #endif + }, + fail: error => { + console.log(error) + if (error.errMsg == 'requestPayment:fail cancel') { + uni.showToast({ title: '已取消支付', icon: 'none', duration: 5000 }) + } else { + uni.showToast({ title: error || error.msg, icon: 'none', duration: 5000 }) + } + reject(error) + }, + }) + // }) + }) +} + +const STATE_KEY = 'wx_authorize_state' +const WX_AUTH = 'wx_auth' +const BACK_URL = 'login_back_url' +const LOGINTYPE = 'loginType' +let instance +let wechatObj +let appId +let wechatLoading = false + +export function wechat() { + console.log('初始化微信配置') + wechatLoading = false + return new Promise((resolve, reject) => { + if (instance) return resolve(instance) + getWechatConfig() + .then(res => { + console.log(res.data) + const _wx = WechatJSSDK(res.data) + console.log(_wx) + appId = res.data.appId + wechatObj = _wx + _wx + .initialize() + .then(() => { + instance = _wx.wx + instance.initConfig = res.data + resolve(instance) + }) + .catch(error => { + console.log(error) + uni.showToast({ + title: error, + icon: 'none', + duration: 2000, + }) + reject() + }) + }) + .catch(err => { + console.log(err) + reject() + }) + }) +} + +export function clearAuthStatus() { + cookie.remove(WX_AUTH) + cookie.remove(STATE_KEY) +} + +export async function oAuth() { + console.log('处理微信授权') + console.log(store) + console.log(store.state) + return new Promise((resolve, reject) => { + // if (cookie.has(WX_AUTH)) { + if (cookie.has(WX_AUTH) && store.state.token) { + reject() + return + } + const { code } = parseQuery() + if (!code) { + toAuth() + return + } else { + auth(code) + } + resolve() + }).catch(error => { + console.log(error) + }) +} + +export async function auth(code) { + console.log('获取微信授权') + return new Promise((resolve, reject) => { + let loginType = cookie.get(LOGINTYPE) + let spread = cookie.get('spread') + console.log('微信授权登录前获取spread', spread) + wechatAuth(code, spread, loginType) + .then(({ data }) => { + console.log(data) + const expires_time = dayjs(data.expires_time) + const newTime = Math.round(new Date() / 1000) + store.commit('login', data.token, expires_time - newTime) + cookie.set(WX_AUTH, code, expires_time) + cookie.remove(STATE_KEY) + loginType && cookie.remove(LOGINTYPE) + console.log('微信公众号授权登录,获取用户信息') + store.dispatch('getUser').finally(() => { + resolve() + }) + }) + .catch(reject) + }).catch(error => { + console.log(error) + }) +} + +export async function toAuth() { + if (wechatLoading) { + return + } + wechatLoading = true + wechat().then(wx => { + location.href = getAuthUrl(appId) + }) +} + +function getAuthUrl(appId) { + // const redirect_uri = encodeURIComponent(window.location.href); + // const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index`); + + // #ifdef H5 + // #endif + cookie.set('redirect', window.location.href) + const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index`) + // const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index?path=${encodeURIComponent(window.location.href)}`); + // const redirect_uri = encodeURIComponent(`${window.location.origin}${window.location.pathname}`) + // const redirect_uri = encodeURIComponent(`${location.origin}`) + cookie.remove(BACK_URL) + const state = 'STATE' + // const state = encodeURIComponent(("" + Math.random()).split(".")[1] + "authorizestate"); + cookie.set(STATE_KEY, state) + return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect` +} + +function toPromise(fn, config = {}) { + return new Promise((resolve, reject) => { + fn({ + ...config, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + }, + complete(err) { + reject(err) + }, + cancel(err) { + reject(err) + }, + }) + }) +} + +export function pay(config) { + console.log(instance) + return toPromise(instance.chooseWXPay, config) +} + +export function openAddress() { + return new Promise((resolve, reject) => { + wechatEvevt('openAddress', {}) + .then(res => { + resolve(res) + }) + .catch(res => { + if (res.is_ready) { + res.wx.openAddress({ + fail(res) { + reject(res) + }, + success(res) { + resolve(res) + }, + }) + } else { + reject(res) + } + }) + }) +} + +export function openShareAll(config) { + config || {} + config.type = config.type == undefined ? 'link' : config.type + return new Promise(resolve => { + getWechatConfig().then(res => { + wechatObj.signSignature({ + nonceStr: res.data.nonceStr, + signature: res.data.signature, + timestamp: res.data.timestamp, + }) + instance = wechatObj.getOriginalWx() + instance.ready(() => { + instance.updateAppMessageShareData(config) + instance.updateTimelineShareData(config) + resolve() + }) + }) + }) +} + +export function openShareAppMessage(config) { + instance.updateAppMessageShareData(config) + instance.onMenuShareAppMessage && instance.onMenuShareAppMessage(config) +} + +export function openShareTimeline(config) { + instance.updateTimelineShareData(config) + instance.onMenuShareTimeline && instance.onMenuShareTimeline(config) +} + +export function wechatEvevt(name, config) { + return new Promise((resolve, reject) => { + let wx + let configDefault = { + fail(res) { + if (wx) return reject({ is_ready: true, wx: wx }) + getWechatConfig().then(res => { + wechatObj.signSignature({ + nonceStr: res.data.nonceStr, + signature: res.data.signature, + timestamp: res.data.timestamp, + }) + wx = wechatObj.getOriginalWx() + reject({ is_ready: true, wx: wx }) + }) + }, + success(res) { + resolve(res) + }, + } + Object.assign(configDefault, config) + if (typeof instance !== 'undefined') { + instance.ready(() => { + if (typeof name === 'object') { + name.forEach(item => { + instance[item] && instance[item](configDefault) + }) + } else instance[name] && instance[name](configDefault) + }) + } else { + getWechatConfig().then(res => { + const _wx = WechatJSSDK(res.data) + _wx.initialize().then(() => { + instance = _wx.getOriginalWx() + instance.ready(() => { + if (typeof name === 'object') { + name.forEach(item => { + instance[item] && instance[item](configDefault) + }) + } else instance[name] && instance[name](configDefault) + }) + }) + }) + } + }) +} + +export function ready() { + return new Promise(resolve => { + if (typeof instance !== 'undefined') { + instance.ready(() => { + resolve(instance) + }) + } else { + getWechatConfig().then(res => { + const _wx = WechatJSSDK(res.data) + _wx.initialize().then(() => { + instance = _wx.wx + instance.ready(() => { + resolve(instance) + }) + }) + }) + } + }) +} + +export function wxShowLocation() { + return new Promise(() => { + wechatEvevt('getLocation', { type: 'wgs84' }) + .then(res => { + let latitude = res.latitude // 纬度 + let longitude = res.longitude // 经度 + cookie.set(LATITUDE, latitude) + cookie.set(LONGITUDE, longitude) + }) + .catch(res => { + if (res.is_ready) { + res.wx.getLocation({ + success(res) { + let latitude = res.latitude // 纬度 + let longitude = res.longitude // 经度 + cookie.set(LATITUDE, latitude) + cookie.set(LONGITUDE, longitude) + }, + cancel() { + cookie.remove(LATITUDE) + cookie.remove(LONGITUDE) + uni.showToast({ + title: '取消获取位置', + icon: 'none', + duration: 2000, + }) + }, + fail() { + cookie.remove(LATITUDE) + cookie.remove(LONGITUDE) + uni.showToast({ + title: '授权失败', + icon: 'none', + duration: 2000, + }) + }, + }) + } + }) + }) +} diff --git a/main.js b/main.js new file mode 100644 index 0000000..491f3c2 --- /dev/null +++ b/main.js @@ -0,0 +1,187 @@ +import Vue from 'vue' +import App from './App' +import global from "./assets/script/global"; +import store from "./store"; +import schema from "async-validator"; +import dialog from "./utils/dialog"; +import mixin from '@/mixins/share-mixins.js' +import {_router, parseRoute} from "@/utils"; +import { + SERVICE_API_URL, + SOCKET_URL, + STATIC_RESOURCE_URL, + VUE_APP_API_URL, + VUE_APP_RESOURCES_URL, + WX_LIVE_APPID +} from "@/config"; +import uView from '@/uni_modules/uview-ui' + +Vue.use(uView); +Vue.mixin(mixin) +uni.$u.setConfig({ + // 修改$u.config对象的属性 + config: { + // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx' + unit: 'rpx' + }, + // 修改$u.props对象的属性 + props: { + // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30 + radio: { + size: 30, + labelSize: 30, + iconSize: 25 + }, + icon: { + size: 40, + fontSize: 30 + }, + picker: { + fontSize: 30 + }, + button: { + fontSize: 30, + iconSize: 30 + }, + navbar: { + leftIconSize: 40, + titleStyle: { + fontSize: '30rpx' + } + }, + tabbar: { + size: 30 + }, + tabs: { + lineWidth: 40 + }, + search: { + searchIconSize: 40 + }, + codeInput: { + size: 60 + }, + calendar: { + rowHeight: 112 + }, + empty: { + textSize: 28 + }, + checkbox: { + fontSize: 30, + size: 30, + labelSize: 24, + iconSize: 30 + } + // 其他组件属性配置 + // ...... + } +}) + +// 注册全局组件 + +Vue.config.productionTip = false; +Vue.config.devtools = process.env.NODE_ENV !== "production"; + +Vue.prototype.$SERVICE_API_URL = SERVICE_API_URL +Vue.prototype.$SOCKET_URL = SOCKET_URL +Vue.prototype.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL +Vue.prototype.$STATIC_RESOURCE_URL = STATIC_RESOURCE_URL +Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL +Vue.prototype.$WX_LIVE_APPID = WX_LIVE_APPID +Vue.prototype.$global = global; + +Vue.prototype.$validator = function (rule) { + return new schema(rule); +}; + +// const CACHE_KEY = "clear_0.0.1"; + +// if (!cookie.has(CACHE_KEY)) { +// cookie.clearAll(); +// cookie.set(CACHE_KEY, 1); +// } +//强制转为几位小数,不足的补0 +var forceToDecimal = function changeToDecimal(x, len, ignore = false) { + var f_x = parseFloat(x); + if (isNaN(f_x)) { + return 0; + } + var f = Math.round(f_x * 100) / 100; + if (ignore) { + f = Math.floor(f_x * 100) / 100; + } + var s = f.toString(); + var rs = s.indexOf('.'); + if (rs < 0) { + rs = s.length; + s += '.'; + } + while (s.length <= rs + len) { + s += '0'; + } + return s; +} + +//强制转为2位小数,不足的补0 +var force2Decimal = function change2Decimal(x, ignore = false) { + return forceToDecimal(x, 2, false); +} + +Vue.prototype.$force2Decimal = force2Decimal +Vue.prototype.$forceToDecimal = forceToDecimal + +Vue.config.productionTip = false +App.mpType = 'app' +Vue.prototype.$store = store +Vue.prototype.$dialog = dialog; + + +const app = new Vue(App) + +Vue.mixin({ + onLoad() { + const { + $mp + } = this.$root + this._route = parseRoute($mp) + this._data.$VUE_APP_RESOURCES_URL = VUE_APP_RESOURCES_URL; + }, + onShow() { + _router.app = this + _router.currentRoute = this._route + } +}) + +Object.defineProperty(Vue.prototype, '$yrouter', { + get() { + return _router + } +}) + +Object.defineProperty(Vue.prototype, '$yroute', { + get() { + return this._route + } +}) + +// #ifdef H5 +// H5编译的代码 +Vue.prototype.$deviceType = 'h5' +store.commit('updateDevicetype', 'h5') +// #endif + +// #ifdef APP-PLUS +// App平台编译的代码 +Vue.prototype.$deviceType = 'app' +store.commit('updateDevicetype', 'app') +Vue.prototype.$platform = uni.getSystemInfoSync().platform +// #endif + +// #ifdef MP-WEIXIN +// 微信小程序编译的代码 +Vue.prototype.$deviceType = 'routine' +store.commit('updateDevicetype', 'routine') +// #endif + +app.$mount() diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..b8bb4fc --- /dev/null +++ b/manifest.json @@ -0,0 +1,172 @@ +{ + "name": "云南香道滇官方商城", + "appid": "__UNI__C7A519E", + "description": "", + "versionName": "4.0.0", + "versionCode": 4, + "transformPx": false, + /* 5+App特有相关 */ + "app-plus": { + "usingComponents": true, + "nvueCompiler": "uni-app", + "compilerVersion": 3, + "splashscreen": { + "alwaysShowBeforeRender": false, + "waiting": false, + "autoclose": true, + "delay": 0 + }, + /* 模块配置 */ + "modules": { + "OAuth": {}, + "Payment": {}, + "Share": {} + }, + /* 应用发布信息 */ + "distribute": { + /* android打包配置 */ + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios": {}, + /* SDK配置 */ + "sdkConfigs": { + "oauth": { + "weixin": { + "appid": "wx7c84ede33062d1e4", + "appsecret": "c47ef66d3311194da44e60387d5c1abd", + "UniversalLinks": "" + } + }, + "payment": { + "weixin": { + "appid": "wx7c84ede33062d1e4", + "UniversalLinks": "" + } + }, + "share": { + "weixin": { + "appid": "wx7c84ede33062d1e4", + "UniversalLinks": "" + } + }, + "ad": {} + }, + "splashscreen": { + "ios": { + "iphone": { + "portrait-896h@3x": "unpackage/res/splash/1242+2688.png", + "portrait-896h@2x": "unpackage/res/splash/828+1792.png", + "iphonex": "unpackage/res/splash/1125+2436.png", + "retina55": "unpackage/res/splash/1142+2208.png", + "retina47": "unpackage/res/splash/750+1334.png", + "retina40": "unpackage/res/splash/640+1136.png", + "retina35": "unpackage/res/splash/640+960.png" + } + }, + "android": { + "hdpi": "unpackage/res/splash/480+762.png", + "xhdpi": "unpackage/res/splash/720+1242.png", + "xxhdpi": "unpackage/res/splash/1080+1882.png" + } + }, + "icons": { + "android": { + "hdpi": "unpackage/res/icons/72x72.png", + "xhdpi": "unpackage/res/icons/96x96.png", + "xxhdpi": "unpackage/res/icons/144x144.png", + "xxxhdpi": "unpackage/res/icons/192x192.png" + }, + "ios": { + "appstore": "unpackage/res/icons/1024x1024.png", + "ipad": { + "app": "unpackage/res/icons/76x76.png", + "app@2x": "unpackage/res/icons/152x152.png", + "notification": "unpackage/res/icons/20x20.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "proapp@2x": "unpackage/res/icons/167x167.png", + "settings": "unpackage/res/icons/29x29.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "spotlight": "unpackage/res/icons/40x40.png", + "spotlight@2x": "unpackage/res/icons/80x80.png" + }, + "iphone": { + "app@2x": "unpackage/res/icons/120x120.png", + "app@3x": "unpackage/res/icons/180x180.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "notification@3x": "unpackage/res/icons/60x60.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "settings@3x": "unpackage/res/icons/87x87.png", + "spotlight@2x": "unpackage/res/icons/80x80.png", + "spotlight@3x": "unpackage/res/icons/120x120.png" + } + } + } + } + }, + /* 快应用特有相关 */ + "quickapp": {}, + /* 小程序特有相关 */ + "mp-weixin": { + "appid": "wx9417047e1a0c340b", + "setting": { + "urlCheck": false + }, + "usingComponents": true, + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "requiredPrivateInfos": [ + "getLocation", + "chooseLocation" + ], + "plugins": { + "live-player-plugin": { + "version": "1.3.5", + //最新直播组件版本号 + "provider": "wx2b03c6e691cd7370" + //直播appid + } + }, + "optimization": { + "subPackages": true + } + }, + "mp-alipay": { + "usingComponents": true, + "appid": "" + }, + "mp-baidu": { + "usingComponents": true + }, + "mp-toutiao": { + "usingComponents": true + }, + "vueVersion": "2" +} diff --git a/mixins/SendVerifyCode.js b/mixins/SendVerifyCode.js new file mode 100644 index 0000000..d2133b0 --- /dev/null +++ b/mixins/SendVerifyCode.js @@ -0,0 +1,27 @@ +export default { + data() { + return { + disabled: false, + text: "获取验证码" + }; + }, + methods: { + sendCode() { + if (this.disabled) return; + this.disabled = true; + let n = 60; + this.text = "剩余 " + n + "s"; + const run = setInterval(() => { + n = n - 1; + if (n < 0) { + clearInterval(run); + } + this.text = "剩余 " + n + "s"; + if (this.text < "剩余 " + 0 + "s") { + this.disabled = false; + this.text = "重新获取"; + } + }, 1000); + } + } +}; diff --git a/mixins/mescroll-mixins.js b/mixins/mescroll-mixins.js new file mode 100644 index 0000000..2f6835d --- /dev/null +++ b/mixins/mescroll-mixins.js @@ -0,0 +1,46 @@ +//封装下拉刷新混入对象 +export default ({ getPageData}) => { + return { + data() { + return { + mescroll: null, //mescroll实例对象 + }; + }, + //注册滚动到底部的事件,用于上拉加载 + onReachBottom() { + this.mescroll && this.mescroll.onReachBottom(); + }, + //注册列表滚动事件,用于下拉刷新 + onPageScroll(e) { + this.mescroll && this.mescroll.onPageScroll(e); + }, + methods: { + + // mescroll组件初始化的回调,可获取到mescroll对象 + mescrollInit(mescroll) { + this.mescroll = mescroll; + this.mescrollInitByRef(); // 兼容字节跳动小程序 + }, + // 以ref的方式初始化mescroll对象 (兼容字节跳动小程序: http://www.mescroll.com/qa.html?v=20200107#q26) + mescrollInitByRef() { + if(!this.mescroll || !this.mescroll.resetUpScroll){ + let mescrollRef = this.$refs.mescrollRef; + if(mescrollRef) this.mescroll = mescrollRef.mescroll + } + }, + + /*下拉刷新的回调, 有三种处理方式: */ + downCallback(mescroll){ + // 第2种: 下拉刷新和上拉加载调同样的接口, 那以上请求可删, 直接用mescroll.resetUpScroll()代替 + mescroll.resetUpScroll(); // 重置列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 ) + }, + /*上拉加载的回调*/ + upCallback(mescroll) { + getPageData.call(this,mescroll) + } + }, + mounted() { + this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况 + } + }; +}; diff --git a/mixins/share-mixins.js b/mixins/share-mixins.js new file mode 100644 index 0000000..769f6b1 --- /dev/null +++ b/mixins/share-mixins.js @@ -0,0 +1,34 @@ +export default{ + data(){ + return { + //设置默认的分享参数 + share:{ + title:'云南香道滇官方商城', + path:'/pages/Loading/index', + imageUrl:'http://admin-api.xdd618.com/file/pic/20210617211221217375.jpg', + desc:'', + content:'' + } + } + }, + onShareAppMessage(res) { + return { + title:this.share.title, + path:this.share.path, + imageUrl:this.share.imageUrl, + desc:this.share.desc, + content:this.share.content, + success(res){ + uni.showToast({ + title:'分享成功' + }) + }, + fail(res){ + uni.showToast({ + title:'分享失败', + icon:'none' + }) + } + } + } +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..34e955a --- /dev/null +++ b/package.json @@ -0,0 +1,123 @@ +{ + "name": "xdd_mp", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "npm run dev:h5", + "build": "npm run build:h5", + "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build", + "build:custom": "cross-env NODE_ENV=production uniapp-cli custom", + "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build", + "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build", + "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build", + "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build", + "build:mp-jd": "cross-env NODE_ENV=production UNI_PLATFORM=mp-jd vue-cli-service uni-build", + "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build", + "build:mp-lark": "cross-env NODE_ENV=production UNI_PLATFORM=mp-lark vue-cli-service uni-build", + "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build", + "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build", + "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build", + "build:mp-xhs": "cross-env NODE_ENV=production UNI_PLATFORM=mp-xhs vue-cli-service uni-build", + "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build", + "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build", + "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build", + "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build", + "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch", + "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom", + "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve", + "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch", + "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch", + "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch", + "dev:mp-jd": "cross-env NODE_ENV=development UNI_PLATFORM=mp-jd vue-cli-service uni-build --watch", + "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch", + "dev:mp-lark": "cross-env NODE_ENV=development UNI_PLATFORM=mp-lark vue-cli-service uni-build --watch", + "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch", + "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch", + "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize", + "dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch", + "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch", + "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch", + "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch", + "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch", + "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js", + "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js", + "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i", + "test:h5": "cross-env UNI_PLATFORM=h5 jest -i", + "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i", + "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i", + "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i" + }, + "dependencies": { + "@dcloudio/uni-app-plus": "^2.0.1-35320220729002", + "@dcloudio/uni-h5": "^2.0.1-35320220729002", + "@dcloudio/uni-helper-json": "*", + "@dcloudio/uni-i18n": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-360": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-alipay": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-baidu": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-jd": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-kuaishou": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-lark": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-qq": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-toutiao": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-vue": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-weixin": "^2.0.1-35320220729002", + "@dcloudio/uni-mp-xhs": "^2.0.1-35320220729002", + "@dcloudio/uni-quickapp-native": "^2.0.1-35320220729002", + "@dcloudio/uni-quickapp-webview": "^2.0.1-35320220729002", + "@dcloudio/uni-stacktracey": "^2.0.1-35320220729002", + "@dcloudio/uni-stat": "^2.0.1-35320220729002", + "@vue/shared": "^3.0.0", + "animate.css": "^3.7.2", + "async-validator": "^3.2.4", + "core-js": "^3.6.5", + "dayjs": "^1.11.2", + "flyio": "^0.6.2", + "jweixin-module": "^1.6.0", + "miniapp-color-thief": "^1.0.5", + "number-precision": "^1.5.2", + "regenerator-runtime": "^0.12.1", + "uview-ui": "2.0.31", + "vconsole": "^3.14.6", + "vue": "^2.6.11", + "vue-ydui": "^1.2.6", + "vuex": "^3.2.0", + "wechat-jssdk": "^5.0.4" + }, + "devDependencies": { + "@babel/runtime": "~7.17.9", + "@dcloudio/types": "^3.0.4", + "@dcloudio/uni-automator": "^2.0.1-35320220729002", + "@dcloudio/uni-cli-i18n": "^2.0.1-35320220729002", + "@dcloudio/uni-cli-shared": "^2.0.1-35320220729002", + "@dcloudio/uni-migration": "^2.0.1-35320220729002", + "@dcloudio/uni-template-compiler": "^2.0.1-35320220729002", + "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.1-35320220729002", + "@dcloudio/vue-cli-plugin-uni": "^2.0.1-35320220729002", + "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.1-35320220729002", + "@dcloudio/webpack-uni-mp-loader": "^2.0.1-35320220729002", + "@dcloudio/webpack-uni-pages-loader": "^2.0.1-35320220729002", + "@vue/cli-plugin-babel": "~4.5.19", + "@vue/cli-service": "~4.5.19", + "babel-plugin-import": "^1.11.0", + "cross-env": "^7.0.2", + "jest": "^25.4.0", + "less": "^4.1.0", + "less-loader": "^4.1.0", + "mini-types": "*", + "miniprogram-api-typings": "*", + "postcss-comment": "^2.0.0", + "sass": "^1.5.0", + "vue-template-compiler": "^2.6.11" + }, + "browserslist": [ + "Android >= 4.4", + "ios >= 9" + ], + "resolutions": { + "@babel/runtime": "~7.17.9" + }, + "uni-app": { + "scripts": {} + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..edb8feb --- /dev/null +++ b/pages.json @@ -0,0 +1,894 @@ +{ + "easycom": { + "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [ + { + "path": "pages/Loading/index", + "style": { + "navigationBarTitleText": "香道滇", + "navigationStyle": "custom" + } + }, + { + "path": "pages/authorization/index", + "style": { + "navigationBarTitleText": "微信授权" + } + }, + { + "path": "pages/user/Login/index", + "style": { + "navigationBarTitleText": "登录" + } + }, + { + "path": "pages/user/RetrievePassword/index", + "style": { + "navigationBarTitleText": "重置密码" + } + }, + { + "path": "pages/home/index", + "style": { + "navigationBarTitleText": "香道滇", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "components/chose-city/chose-city", + "style": { + "navigationBarTitleText": "选择城市" + } + }, + { + "path": "pages/foodInfomation/information", + "style": { + "navigationBarTitleText": "彩云资讯" + } + }, + { + "path": "pages/foodInfomation/foodInfomation", + "style": { + "navigationBarTitleText": "美食攻略", + "navigationStyle": "custom", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/foodInfomation/foodInfomationDetail", + "style": { + "navigationBarTitleText": "资讯详情", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/shop/GoodSearch/index", + "style": { + "navigationBarTitleText": "搜索商品" + } + }, + { + "path": "pages/shop/GoodsClass/index", + "style": { + "navigationBarTitleText": "分类", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/shop/ShoppingCart/index", + "style": { + "navigationBarTitleText": "购物车", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/shop/StoreList/index", + "style": { + "navigationBarTitleText": "商家列表" + } + }, + { + "path": "pages/shop/GoodsList/index", + "style": { + "navigationBarTitleText": "商品列表" + } + }, + { + "path": "pages/NotDefined/index", + "style": { + "navigationBarTitleText": "404" + } + }, +// { +// "path": "pages/cloud/cloud", +// "style": { +// "navigationBarTitleText": "七彩云上" +// } +// }, + { + "path": "pages/cloud/haveFun", + "style": { + "navigationBarTitleText": "寻趣味", + "navigationStyle": "custom" + } + }, + { + "path": "pages/user/User/index", + "style": { + "navigationBarTitleText": "我的", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/shop/GoodsCollection/index", + "style": { + "navigationBarTitleText": "商品收藏" + } + }, + { + "path": "pages/shop/EvaluateList/index", + "style": { + "navigationBarTitleText": "评价列表" + } + }, + { + "path": "pages/shop/GoodsEvaluate/index", + "style": { + "navigationBarTitleText": "商品评价" + } + }, + { + "path": "pages/shop/GoodsPromotion/index", + "style": { + "navigationBarTitleText": "促销商品" + } + }, + { + "path": "pages/shop/HotNewGoods/index", + "style": { + "navigationBarTitleText": "热门商品" + } + }, + { + "path": "pages/shop/GoodsCon/index", + "style": { + "navigationBarTitleText": "商品详情", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/user/address/AddAddress/index", + "style": { + "navigationBarTitleText": "新增收货地址" + } + }, + { + "path": "pages/user/UserAccount/index", + "style": { + "navigationBarTitleText": "账户余额" + } + }, + { + "path": "pages/user/address/AddressManagement/index", + "style": { + "navigationBarTitleText": "收货地址" + } + }, + { + "path": "pages/user/promotion/Poster/index", + "style": { + "navigationBarTitleText": "推广名片" + } + }, + { + "path": "pages/user/signIn/Sign/index", + "style": { + "navigationBarTitleText": "签到" + } + }, + { + "path": "pages/user/signIn/SignRecord/index", + "style": { + "navigationBarTitleText": "签到记录" + } + }, + { + "path": "pages/user/promotion/CashAudit/index", + "style": { + "navigationBarTitleText": "提现结果" + } + }, + { + "path": "pages/user/promotion/PromoterOrder/index", + "style": { + "navigationBarTitleText": "分销详情" + } + }, + { + "path": "pages/user/promotion/PromoterList/index", + "style": { + "navigationBarTitleText": "分销列表", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/promotion/UserPromotion/index", + "style": { + "navigationBarTitleText": "团队管理", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/UserBill/index", + "style": { + "navigationBarTitleText": "账单记录" + } + }, + { + "path": "pages/user/promotion/CashRecord/index", + "style": { + "navigationBarTitleText": "提现记录" + } + }, + { + "path": "pages/user/promotion/CommissionDetails/index", + "style": { + "navigationBarTitleText": "佣金明细" + } + }, + { + "path": "pages/user/signIn/Integral/index", + "style": { + "navigationBarTitleText": "我的积分" + } + }, + { + "path": "pages/user/UserVip/index", + "style": { + "navigationBarTitleText": "用户vip" + } + }, + { + "path": "pages/user/coupon/UserCoupon/index", + "style": { + "navigationBarTitleText": "优惠券" + } + }, + { + "path": "pages/user/coupon/GetCoupon/index", + "style": { + "navigationBarTitleText": "领取优惠券" + } + }, + { + "path": "pages/user/promotion/UserCash/index", + "style": { + "navigationBarTitleText": "提现" + } + }, + { + "path": "pages/user/CustomerList/index", + "style": { + "navigationBarTitleText": "客服列表" + } + }, + { + "path": "pages/user/Recharge/index", + "style": { + "navigationBarTitleText": "充值" + } + }, + { + "path": "pages/order/MyOrder/index", + "style": { + "navigationBarTitleText": "我的订单", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "pages/order/Logistics/index", + "style": { + "navigationBarTitleText": "查看物流" + } + }, + { + "path": "pages/order/OrderDetails/index", + "style": { + "navigationBarTitleText": "订单详情" + } + }, + { + "path": "pages/order/OrderSubmission/index", + "style": { + "navigationBarTitleText": "提交订单", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "pages/order/PaymentStatus/index", + "style": { + "navigationBarTitleText": "支付状态" + } + }, + { + "path": "pages/order/GoodsReturn/index", + "style": { + "navigationBarTitleText": "商品退货" + } + }, + { + "path": "pages/order/ReturnList/index", + "style": { + "navigationBarTitleText": "退货列表" + } + }, + { + "path": "pages/orderAdmin/OrderIndex/index", + "style": { + "navigationBarTitleText": "商家订单统计" + } + }, + { + "path": "pages/orderAdmin/AdminOrderList/index", + "style": { + "navigationBarTitleText": "订单" + } + }, + { + "path": "pages/orderAdmin/GoodsDeliver/index", + "style": { + "navigationBarTitleText": "发货" + } + }, + { + "path": "pages/orderAdmin/AdminOrder/index", + "style": { + "navigationBarTitleText": "商家订单列表" + } + }, + { + "path": "pages/orderAdmin/Statistics/index", + "style": { + "navigationBarTitleText": "商家统计数据" + } + }, + { + "path": "pages/orderAdmin/OrderCancellation/index", + "style": { + "navigationBarTitleText": "商家取消订单" + } + }, + { + "path": "pages/activity/Poster/index", + "style": { + "navigationBarTitleText": "推广海报" + } + }, + { + "path": "pages/activity/DargainDetails/index", + "style": { + "navigationBarTitleText": "帮砍价" + } + }, + { + "path": "pages/activity/GoodsBargain/index", + "style": { + "navigationBarTitleText": "砍价列表" + } + }, + { + "path": "pages/activity/BargainRecord/index", + "style": { + "navigationBarTitleText": "砍价记录" + } + }, + { + "path": "pages/activity/GoodsGroup/index", + "style": { + "navigationBarTitleText": "团购商品列表" + } + }, + { + "path": "pages/activity/GroupDetails/index", + "style": { + "navigationBarTitleText": "团购商品详情" + } + }, + { + "path": "pages/activity/GroupRule/index", + "style": { + "navigationBarTitleText": "团购规则" + } + }, + { + "path": "pages/activity/GoodsSeckill/index", + "style": { + "navigationBarTitleText": "秒杀" + } + }, + { + "path": "pages/activity/SeckillDetails/index", + "style": { + "navigationBarTitleText": "秒杀详情" + } + }, + { + "path": "pages/map/index", + "style": { + "navigationBarTitleText": "地图" + } + }, + { + "path": "pages/user/Message/Message", + "style": { + "navigationBarTitleText": "消息", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/MessageDetail/MessageDetail", + "style": { + "navigationBarTitleText": "消息详情", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/MemberUpgradeIntro/MemberUpgradeIntro", + "style": { + "navigationBarTitleText": "升级说明", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/VideoPlayBackList/VideoPlayBackList", + "style": { + "navigationBarTitleText": "寻看点", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/VideoPlayBackList/VideoPlayBackDetail", + "style": { + "navigationBarTitleText": "视频详情", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol", + "style": { + "navigationBarTitleText": "升级", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail", + "style": { + "navigationBarTitleText": "共享股东协议" + } + }, + { + "path": "pages/LiveAndShortVideo/LiveAndShortVideo", + "style": { + "navigationBarTitleText": "直播/视频" + } + }, + { + "path": "pages/LiveBroadcastList/LiveBroadcastList", + "style": { + "navigationBarTitleText": "直播列表" + } + }, + { + "path": "pages/user/UserFavorite/UserFavorite", + "style": { + "navigationBarTitleText": "我的喜欢" + } + } + ], + "subPackages": [ + { + "root": "pagesInn", + "pages": [ + { + "path": "inn/innHome", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "inn/innApply", + "style": { + "navigationBarTitleText": "店铺申请" + } + }, + { + "path": "inn/innInfoPublish", + "style": { + "navigationBarTitleText": "发布店铺动态" + } + }, + { + "path": "inn/innProfileEdit", + "style": { + "navigationBarTitleText": "修改店铺资料" + } + }, + { + "path": "inn/innInfoDetail", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "inn/innPartnerAgreement", + "style": { + "navigationBarTitleText": "店主合伙人条款协议" + } + } + ] + }, + { + "root": "pkg_common", + "pages": [ + { + "path": "views/pdf", + "style": { + "navigationBarTitleText": "详情" + } + }, + { + "path": "views/room", + "style": { + "navigationBarTitleText": "客服" + } + }, + { + "path": "views/roomLogs", + "style": { + "navigationBarTitleText": "历史会话" + } + } + ] + }, + { + "root": "pkg_join", + "pages": [ + { + "path": "views/index", + "style": { + "navigationBarTitleText": "商户入驻" + } + }, + { + "path": "views/shop", + "style": { + "navigationBarTitleText": "店铺入驻" + } + }, + { + "path": "views/supplier", + "style": { + "navigationBarTitleText": "供应商入驻" + } + } + ] + }, + { + "root": "pkg_orders", + "pages": [ + { + "path": "views/refund", + "style": { + "navigationBarTitleText": "申请退款" + } + } + ] + }, + { + "root": "pkg_product", + "pages": [ + { + "path": "views/healthList", + "style": { + "navigationBarTitleText": "康养 · 食材" + } + }, + { + "path": "views/giftList", + "style": { + "navigationBarTitleText": "定制礼品", + "onReachBottomDistance": 100 + } + }, + { + "path": "views/famousList", + "style": { + "navigationBarTitleText": "千县名品" + } + }, + { + "path": "views/famousStory", + "style": { + "navigationBarTitleText": "名品故事" + } + }, + { + "path": "views/famousHot", + "style": { + "navigationBarTitleText": "爆款主推" + } + }, + { + "path": "views/scenicSpot", + "style": { + "navigationBarTitleText": "景点门票" + } + }, + { + "path": "views/seckill", + "style": { + "navigationBarTitleText": "天天秒杀" + } + }, + { + "path": "views/sharpList", + "style": { + "navigationBarTitleText": "尖货推荐" + } + }, + { + "path": "views/nativeList", + "style": { + "navigationBarTitleText": "特产", + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#FF564A" + } + } + ] + }, + { + "root": "pkg_user", + "pages": [ + { + "path": "views/bankCardList", + "style": { + "navigationBarTitleText": "银行卡列表", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "views/addBankCard", + "style": { + "navigationBarTitleText": "添加银行卡", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "views/withdrawal", + "style": { + "navigationBarTitleText": "提现", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, + { + "path": "views/personalData", + "style": { + "navigationBarTitleText": "个人资料" + } + }, + { + "path": "views/bindPhone", + "style": { + "navigationBarTitleText": "绑定手机号" + } + }, + { + "path": "views/payPassword", + "style": { + "navigationBarTitleText": "修改支付密码" + } + } + ] + }, + { + "root": "v4", + "pages": [ + { + "path": "views/preSale/preSale", + "style": { + "navigationBarTitleText": "预售" + } + }, + { + "path": "views/seckill/seckill", + "style": { + "navigationBarTitleText": "限时秒杀" + } + }, + { + "path": "views/offer/offer", + "style": { + "navigationBarTitleText": "每天特价" + } + }, + { + "path": "components/select-city", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "views/specialty/specialty", + "style": { + "navigationBarTitleText": "特产", + "enablePullDownRefresh": true + } + }, + { + "path": "views/shop/shop", + "style": { + "navigationBarTitleText": "店铺" + } + }, + { + "path": "views/shop/detail", + "style": { + "navigationBarTitleText": "店铺详情" + } + }, + { + "path": "views/trial/trial", + "style": { + "navigationBarTitleText": "体验店" + } + }, + { + "path": "views/live/live", + "style": { + "navigationBarTitleText": "直播" + } + }, + { + "path": "views/attract/attract", + "style": { + "navigationBarTitleText": "招商" + } + }, + { + "path": "views/attract/project", + "style": { + "navigationBarTitleText": "招商项目" + } + }, + { + "path": "views/attract/projectList", + "style": { + "navigationBarTitleText": "招商项目" + } + }, + { + "path": "views/luck/luck", + "style": { + "navigationBarTitleText": "幸运抽奖" + } + }, + { + "path": "views/luck/logs", + "style": { + "navigationBarTitleText": "抽奖记录" + } + }, + { + "path": "views/luck/receive", + "style": { + "navigationBarTitleText": "选择收货地址" + } + } + ] + }, + { + "root": "wenwan", + "pages": [ + { + "path": "views/goodsClass", + "style": { + "navigationBarTitleText": "文玩" + } + }, + { + "path": "views/store", + "style": { + "navigationBarTitleText": "文玩店铺详情", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "views/storeList", + "style": { + "navigationBarTitleText": "文玩" + } + } + ] + } + ], + "preloadRule": { + "pages/user/User/index": { + "network": "all", + "packages": [ + "pagesInn" + ] + } + }, + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "tabBar": { + "color": "#8B8F99", + "selectedColor": "#FF564A", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/home/index", + "iconPath": "static/tabbar/icon-home.png", + "selectedIconPath": "static/tabbar/icon-home-hot.png", + "text": "首页" + }, + { + "pagePath": "pages/shop/ShoppingCart/index", + "iconPath": "static/tabbar/icon-cart.png", + "selectedIconPath": "static/tabbar/icon-cart-hot.png", + "text": "购物车" + }, + { + "pagePath": "pages/cloud/haveFun", + "iconPath": "static/tabbar/icon-cloud.png", + "selectedIconPath": "static/tabbar/icon-cloud-hot.png", + "text": "寻趣味" + }, + { + "pagePath": "pages/user/User/index", + "iconPath": "static/tabbar/icon-user.png", + "selectedIconPath": "static/tabbar/icon-user-hot.png", + "text": "我的" + } + ] + }, + "condition": { + "current": 0, + "list": [ + { + "name": "文玩店铺", + "path": "wenwan/views/store", + "query": "scene=id%3D74%26partnerId%3D5659" + }, + { + "name": "普通店铺", + "path": "pagesInn/inn/innHome", + "query": "scene=id%3D74%26partnerId%3D5659" + }, + { + "name": "商品详情", + "path": "pages/shop/GoodsCon/index", + "query": "scene=id%3D289%26partnerId%3D5675" + }, + { + "name": "DEBUG", + "path": "pkg_product/views/giftList", + "query": "" + } + ] + } +} diff --git a/pages/LiveAndShortVideo/LiveAndShortVideo.vue b/pages/LiveAndShortVideo/LiveAndShortVideo.vue new file mode 100644 index 0000000..85aae75 --- /dev/null +++ b/pages/LiveAndShortVideo/LiveAndShortVideo.vue @@ -0,0 +1,266 @@ + + + + + 直播 + 更多>> + + + + + + + + {{liveStatusText(video.liveStatus)}} + + + + {{video.name}} + + + + + + 香道滇官方商城 + + + + + + + + 视频 + 更多>> + + + + + + + + + {{video.title}} + + + + + {{video.storeName}} + + + + + + + + + + + + + + + + + diff --git a/pages/LiveBroadcastList/LiveBroadcastList.vue b/pages/LiveBroadcastList/LiveBroadcastList.vue new file mode 100644 index 0000000..60b28ec --- /dev/null +++ b/pages/LiveBroadcastList/LiveBroadcastList.vue @@ -0,0 +1,246 @@ + + + + + + + + + + {{liveStatusText(video.liveStatus)}} + + + + {{video.name}} + + + + + + 香道滇官方商城 + + + + + + + + + + + + + + + + diff --git a/pages/Loading/index.vue b/pages/Loading/index.vue new file mode 100644 index 0000000..65d2b1d --- /dev/null +++ b/pages/Loading/index.vue @@ -0,0 +1,144 @@ + + + + + + + + + diff --git a/pages/NotDefined/index.vue b/pages/NotDefined/index.vue new file mode 100644 index 0000000..25e65c6 --- /dev/null +++ b/pages/NotDefined/index.vue @@ -0,0 +1,60 @@ + + + + + 页面未找到 + 抱歉!您访问的页面不存在,请返回上一级或点击下方按钮返回首页... + + + 返回首页 + + + + + + + diff --git a/pages/VideoPlayBackList/VideoPlayBackDetail.vue b/pages/VideoPlayBackList/VideoPlayBackDetail.vue new file mode 100644 index 0000000..4b8549c --- /dev/null +++ b/pages/VideoPlayBackList/VideoPlayBackDetail.vue @@ -0,0 +1,47 @@ + + + + + + + + diff --git a/pages/VideoPlayBackList/VideoPlayBackList.vue b/pages/VideoPlayBackList/VideoPlayBackList.vue new file mode 100644 index 0000000..d7339f0 --- /dev/null +++ b/pages/VideoPlayBackList/VideoPlayBackList.vue @@ -0,0 +1,175 @@ + + + + {{ item.label }} + + + + + + + + + {{ item.title }} + + + + {{ item.storeName }} + + + + + + + + + + + 暂无数据 + + + + + + + \ No newline at end of file diff --git a/pages/activity/BargainRecord/index.vue b/pages/activity/BargainRecord/index.vue new file mode 100644 index 0000000..d90ece3 --- /dev/null +++ b/pages/activity/BargainRecord/index.vue @@ -0,0 +1,131 @@ + + + + + + + + + {{ item.title }} + + + 已砍至 + ¥ + {{ item.residuePrice }} + + + + + 活动进行中 + 砍价成功 + 活动已结束 + + 取消活动 + 继续砍价 + 重开一个 + + + + + + + diff --git a/pages/activity/DargainDetails/index.vue b/pages/activity/DargainDetails/index.vue new file mode 100644 index 0000000..65f6343 --- /dev/null +++ b/pages/activity/DargainDetails/index.vue @@ -0,0 +1,617 @@ + + + + + {{ lookCount }}人查看 丨 {{ shareCount }}人分享 丨 {{ userCount }}人参与 + + + + + + + {{ bargainUserInfo.nickname }} + 邀请您帮忙砍价 + + + + + + + + + + 查看商品 + + + + + + + 已砍至: ¥ + + + + + + + + + + + + + + 砍价成功 + + + + + 已成功帮助好友砍价 + + + + 恭喜您砍价成功,快去支付吧~ + + 立即参与砍价 + 邀请好友帮砍价 + 帮好友砍一刀 + 我也要参与 + 立即支付 + 抢更多商品 + + 已有 + + 位好友成功帮您砍价 + + + + + + + + + 砍价帮 + + + + + + + + + + + + + + + + + + 砍掉{{ item.price }}元 + + + + 点击加载更多 + + + + + + + + 商品详情 + + + + + + + + + + + + + 活动规则 + + + + + + + + + + 您已砍掉 + 元,听说分享次数越多砍价成功的机会越大哦! + + + ,您也可以砍价低价拿哦,快去挑选心仪的商品吧~ + + 邀请好友帮砍价 + 我也要参与 + + + + + + + diff --git a/pages/activity/GoodsBargain/index.vue b/pages/activity/GoodsBargain/index.vue new file mode 100644 index 0000000..8a7bf1c --- /dev/null +++ b/pages/activity/GoodsBargain/index.vue @@ -0,0 +1,84 @@ + + + + + + + + + + + + + {{ item.people }}人正在参与 + + + 可砍至: ¥ + {{item.minPrice}} + + + + 参与砍价 + + + 点击加载更多 + + + + + + diff --git a/pages/activity/GoodsGroup/index.vue b/pages/activity/GoodsGroup/index.vue new file mode 100644 index 0000000..191b4ea --- /dev/null +++ b/pages/activity/GoodsGroup/index.vue @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + ¥ + + + + + 去拼团 + + + + + + + + + + + + + + + diff --git a/pages/activity/GoodsSeckill/index.vue b/pages/activity/GoodsSeckill/index.vue new file mode 100644 index 0000000..beb0950 --- /dev/null +++ b/pages/activity/GoodsSeckill/index.vue @@ -0,0 +1,261 @@ + + + + + + + + + + {{ item.time }} + {{ item.state }} + + + {{ item.time }} + {{ item.state }} + + + + + + + + 活动已结束 + + 活动即将开始 + + + + + + + + + + 限时价 + + + + + + + + 马上抢 + + 已售磬 + 即将开始 + 已结束 + + + + + + + + + + + + + diff --git a/pages/activity/GroupDetails/index.vue b/pages/activity/GroupDetails/index.vue new file mode 100644 index 0000000..03e9788 --- /dev/null +++ b/pages/activity/GroupDetails/index.vue @@ -0,0 +1,375 @@ + + + + + + + ¥ + + + + + + + + + + + + + + + 已拼{{ storeInfo.sales + }}{{ storeInfo.unitName }} + | + + + + + + {{ item }} + + + + + + + + + + + + + + + + + + 还差 + + 人成团 + + + + + 去拼单 + + + + + + + 查看更多 + + + + + + 拼团玩法 + + + + ①开团/参团 + + + + ②邀请好友 + + + + + ③满员发货 + + + + + + + + + 好评率 + + + + + + + 产品介绍 + + + + + + + + + 收藏 + + 单独购买 + 立即开团 + + + + + + + + diff --git a/pages/activity/GroupRule/index.vue b/pages/activity/GroupRule/index.vue new file mode 100644 index 0000000..58ddb8f --- /dev/null +++ b/pages/activity/GroupRule/index.vue @@ -0,0 +1,248 @@ + + + + + + + + + + ¥ + + + + + + + + + + + + 剩余 + + 结束 + + + + + 恭喜您拼团成功 + 还差{{ count }}人,拼团失败 + 拼团中,还差{{ count }}人拼团成功 + + + + + + + + + + + + + + + + {{ iShidden ? "收起" : "查看全部" }} + + + 邀请好友参团 + 我要参团 + 再次开团 + + + 取消开团 + + + 查看订单信息 + + + + + + + + diff --git a/pages/activity/Poster/index.vue b/pages/activity/Poster/index.vue new file mode 100644 index 0000000..d1e01cb --- /dev/null +++ b/pages/activity/Poster/index.vue @@ -0,0 +1,79 @@ + + + + 提示:长按图片保存至手机相册 + + + + + + + + + diff --git a/pages/activity/SeckillDetails/index.vue b/pages/activity/SeckillDetails/index.vue new file mode 100644 index 0000000..10e84f4 --- /dev/null +++ b/pages/activity/SeckillDetails/index.vue @@ -0,0 +1,235 @@ + + + + + + ¥ + + + + + + 距秒杀结束仅剩 + + + + + + + + + + + + + + + + + 产品介绍 + + + + + + 立即购买 + + + + + + + + diff --git a/pages/authorization/index.vue b/pages/authorization/index.vue new file mode 100644 index 0000000..bea1e33 --- /dev/null +++ b/pages/authorization/index.vue @@ -0,0 +1,408 @@ + + + 为了提供更优质的服务,需要获取 + 您的头像、昵称 + + + + + + 微信用户 + 微信个人信息 + + + + + + + + + + + 我已阅读并同意 + 《用户服务协议及隐私政策》 + + + + + + + + + 《用户协议及隐私政策》 + + + 关闭 + + + + + + + + 请完善您的头像和昵称 + + + + + 确认 + + + + + 同意 + 拒绝 + + + + + + + diff --git a/pages/authorization/index_bak.vue b/pages/authorization/index_bak.vue new file mode 100644 index 0000000..2467899 --- /dev/null +++ b/pages/authorization/index_bak.vue @@ -0,0 +1,310 @@ + + + 为了提供更优质的服务,需要获取 + 您的头像、昵称 + + + + + + + 微信个人信息 + + + + + + + + + + + 我已阅读并同意 + 《用户服务协议及隐私政策》 + + + + + + + + + 《用户协议及隐私政策》 + + + 关闭 + + + + + + + 同意 + 同意 + 拒绝 + + + + + + + diff --git a/pages/authorization/pass.vue b/pages/authorization/pass.vue new file mode 100644 index 0000000..41a085a --- /dev/null +++ b/pages/authorization/pass.vue @@ -0,0 +1,346 @@ + + + 为了提供更优质的服务 + 请完善您的头像和昵称 + + + + + + + + + + + + + + 我已阅读并同意 + 《用户服务协议及隐私政策》 + + + + + + + + + 《用户协议及隐私政策》 + + + 关闭 + + + + + + + 同意 + + 拒绝 + + + + + + + diff --git a/pages/cloud/cloud.vue b/pages/cloud/cloud.vue new file mode 100644 index 0000000..a483cb1 --- /dev/null +++ b/pages/cloud/cloud.vue @@ -0,0 +1,376 @@ + + + + + + + + + + {{item.name}} + + + + + + {{typeList[type]['name']}} + + + + {{cityName}} + + + + + + + + + + {{item.cityName}} + + + {{item.content}} + + + {{item.name}} + + + + + + + + 暂无数据 + + + + + + + + + diff --git a/pages/cloud/haveFun.vue b/pages/cloud/haveFun.vue new file mode 100644 index 0000000..794fd43 --- /dev/null +++ b/pages/cloud/haveFun.vue @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + {{ item.name }} + + + + + + + + + {{ cityName }} + + + + + + + + + + + {{ item.cityName }} + + + {{ item.content }} + + + + {{ item.name }} + + + + + + + + 暂无数据 + + + + + + \ No newline at end of file diff --git a/pages/foodInfomation/foodInfomation.vue b/pages/foodInfomation/foodInfomation.vue new file mode 100644 index 0000000..e0a31f4 --- /dev/null +++ b/pages/foodInfomation/foodInfomation.vue @@ -0,0 +1,973 @@ + + + + + + + {{cityName}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #住在云上 + + + + + + + #逛在云上 + + + + + + + #吃在云上 + + + + + + + + #彩云资讯 + + + + + + + + + + + + + + + + + + + + + + + + + + + {{item.cityName}} + + + {{ item.content }} + + + + + + + + {{item.name}} + {{ innOpenDateString(item.createdTime,'yyyy/MM/dd') }} + + + + + + + + + + + + + + + + + + + + + + + + {{item.cityName}} + + + {{ item.content }} + + + + + + + + + + + + {{item.name}} + + + + + + + + + + + + + + + + + + + + + {{item.name}} + + + + {{item.content}} + + + + + + + + + + + + + + + + {{item.address}} + + + + + + + + + + + + + + + {{ item.title }} + {{ item.synopsis }} + + + + + {{item.visit||0}} + + + {{ shortDateString(item.addTime) }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/foodInfomation/foodInfomationDetail.vue b/pages/foodInfomation/foodInfomationDetail.vue new file mode 100644 index 0000000..0cf806f --- /dev/null +++ b/pages/foodInfomation/foodInfomationDetail.vue @@ -0,0 +1,210 @@ + + + {{ articleInfo.title }} + + 来源:{{articleInfo.author||"未知"}} + + + {{ articleInfo.addTime }} + + + + {{articleInfo.visit||0}} + + + + + + + + diff --git a/pages/foodInfomation/information.vue b/pages/foodInfomation/information.vue new file mode 100644 index 0000000..fb553a5 --- /dev/null +++ b/pages/foodInfomation/information.vue @@ -0,0 +1,163 @@ + + + + + + + + + + + + {{item.title}} + {{item.synopsis}} + + + + {{item.visit}} + + {{item.addTime.substring(0,10)}} + + + + + + + + + 暂无数据 + + + + + + + diff --git a/pages/home/index.vue b/pages/home/index.vue new file mode 100644 index 0000000..284a3a0 --- /dev/null +++ b/pages/home/index.vue @@ -0,0 +1,2046 @@ + + + + + + + + + + + + + + + + + + + 客服 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 恭喜{{ item.nickname }} 抽中奖品{{ item.prizeName }} + + + + + + + + + + + + + + + + + 搜索商品 + + + + + + + + {{ item.name }} + + + + + + + + + + + + + + + + + + + 最新 + {{ item.info }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.title }} + ¥{{ item.price }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 每天特价 + + + + {{ date }} + DAY + + {{ month }}月 + + + + 查看更多 + + + + + + + + + + {{ item.title }} + + ¥{{ item.price }} + ¥{{ item.productPrice }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.storeName }} + + ¥{{ item.price }} + ¥{{ item.productPrice }} + + + + + + + + + + + + + + + {{ unReadMessageInfo.noticeTitle }} + + + + 我知道了 + + + + + + + + + + + + + + + + diff --git a/pages/map/index.vue b/pages/map/index.vue new file mode 100644 index 0000000..d0a1a4b --- /dev/null +++ b/pages/map/index.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/order/GoodsReturn/index.vue b/pages/order/GoodsReturn/index.vue new file mode 100644 index 0000000..5735fea --- /dev/null +++ b/pages/order/GoodsReturn/index.vue @@ -0,0 +1,140 @@ + + + + + + + + {{ cart.productInfo.storeName }} + + + ¥{{ + cart.productInfo.attrInfo + ? cart.productInfo.attrInfo.price + : cart.productInfo.price + }} + + x{{ cart.cartNum }} + + + + + + 退货件数 + {{ orderInfo.totalNum }} + + + 退款金额 + ¥{{ orderInfo.payPrice }} + + + + 退款原因 + {{reason}} + + + + + 备注说明 + + + + 申请退款 + + + + diff --git a/pages/order/Logistics/index.vue b/pages/order/Logistics/index.vue new file mode 100644 index 0000000..2be23ea --- /dev/null +++ b/pages/order/Logistics/index.vue @@ -0,0 +1,398 @@ + + + + + + + + {{ cart.productInfo.store_name }} + + ¥{{ cart.truePrice }} + x{{ cart.cart_num }} + + + + + + + + + + 物流公司: + {{ orderInfo.deliveryName }} + + + 快递单号: + {{ orderInfo.deliveryId }} + + + + 复制单号 + + + + + {{ express.status }} + {{ express.time }} + + + + + + + + + + + 物流跟踪 + + + + + + + + + + + {{item.acceptStation}} + {{item.acceptTime}} + + + + {{item.acceptStation}} + {{item.acceptTime}} + + + + + {{item.acceptStation}} + {{item.acceptTime}} + + + + + + + + + + + + + + + + + + + diff --git a/pages/order/MyOrder/index.vue b/pages/order/MyOrder/index.vue new file mode 100644 index 0000000..a5576ce --- /dev/null +++ b/pages/order/MyOrder/index.vue @@ -0,0 +1,506 @@ + + + + + + + + + + + {{ order.merName }} + + + + {{ order.merCityName }} + + + + + + 拼团 + 秒杀 + 砍价 + 门店 + 订单号:{{ order.orderId }} + + + 待核销 + + {{ getStatus(order) }} + + + + + + + + + + + + {{ cart.productInfo.storeName }} + + 属性:{{ cart.productInfo.attrInfo.sku }} + + + + ¥{{ force2Decimal(cart.truePrice) }} + x{{ cart.cartNum }} + + + + + + {{ order.createTime }} + 共{{ order.totalNum || 0 }}件商品,总金额 + ¥{{ force2Decimal(order.payPrice) }} + + + + + 更多 + + 联系客服 + + 申请退款 + + + + 联系客服 + + + + + + 取消订单 + 立即付款 + + + 查看详情 + + + 立即核销 + + + 延长收货 + + 查看物流 + 确认收货 + + + 去评价 + + + 查看订单 + + + + + + + + + + + + + + + + + + + + diff --git a/pages/order/OrderDetails/index.vue b/pages/order/OrderDetails/index.vue new file mode 100644 index 0000000..92a1101 --- /dev/null +++ b/pages/order/OrderDetails/index.vue @@ -0,0 +1,771 @@ + + + + + + + + + 待核销 + {{ getStatus(orderInfo) }} + {{ orderInfo._status._msg }} + + 请在 + + 内支付,逾期订单将自动取消 + + + + + 驳回原因:{{ orderInfo.refundRejectReason }} + + + + + + + + 核销信息 + + + + + + + + + {{ orderInfo.verifyCode }} + + + + 核销时间 + + + 每日: + {{ system_store.dayTime }} + + + + + 使用说明 + + 可将二维码出示给店员扫描或提供数字核销码 + + + + + 自提地址信息 + + 查看位置 + + + + + + + + + + {{ orderInfo.realName }} + {{ orderInfo.userPhone }} + + + + + + {{ orderInfo.userAddress }} + + + + + {{ system_store.name }} + {{ system_store.phone }} + + + {{ system_store.address }} + + + + + + + + + + + + 订单信息 + + + 订单编号: + + {{ orderInfo.orderId }} + + + + + 下单时间: + + {{ orderInfo.createTime }} + + + + 订单类型: + {{ orderTypeName }} + + + 支付状态: + {{ orderInfo.paid ? "已支付" : "未支付" }} + + + 支付方式: + {{ orderInfo._status._payType }} + + + 买家留言: + {{ orderInfo.mark }} + + + + + + + 配送方式: + 发货 + + + 快递公司: + {{ orderInfo.deliveryName || "" }} + + + 快递号: + {{ orderInfo.deliveryId || "" }} + + + + + + 配送方式: + 送货 + + + 配送人: + {{ orderInfo.deliveryName || "" }} + + + 配送电话: + + {{ orderInfo.deliveryId || "" }} + 拨打 + + + + + + + + 收货人: + {{ orderInfo.realName }} + + + 联系电话: + {{ orderInfo.userPhone }} + + + 收货地址: + {{ orderInfo.userAddress }} + + + + + + + 支付金额: + + ¥{{ force2Decimal(orderInfo.totalPrice) }} + + + 优惠券抵扣: + -¥{{ force2Decimal(orderInfo.couponPrice) }} + + + 积分抵扣: + -¥{{ force2Decimal(orderInfo.deductionPrice) }} + + + 运费: + ¥{{ force2Decimal(orderInfo.payPostage) }} + + + 实付款: + ¥{{ force2Decimal(orderInfo.payPrice) }} + + + + + + 取消订单 + 立即付款 + + + 申请退款 + + + 查看物流 + + 确认收货 + + + 查看物流 + + + + 删除订单 + 查看物流 + + + + 查看拼团 + + + + + + + + + + + + + + diff --git a/pages/order/OrderSubmission/index.vue b/pages/order/OrderSubmission/index.vue new file mode 100644 index 0000000..606777d --- /dev/null +++ b/pages/order/OrderSubmission/index.vue @@ -0,0 +1,925 @@ + + + + + + + + + + + + + {{ addressInfo.realName }} + {{ addressInfo.phone }} + + + + {{ addressInfo.province }}{{ addressInfo.city }}{{ addressInfo.district }}{{ addressInfo.detail }} + + + + 设置收货地址 + + + + + + + + + + + {{ isNullOrEmpty(storeItems) ? systemStore.name : storeItems.name }} + {{ isNullOrEmpty(storeItems) ? systemStore.phone : storeItems.phone }} + + {{ isNullOrEmpty(storeItems) ? systemStore.address : storeItems.address }} + + + + + + + + + + + + + + + + + + + + + + + + 快递费用 + + + + {{ orderPrice.payPostage > 0 ? force2Decimal(orderPrice.payPostage) : "免运费" }} + + + + + 联系人 + + + + + + 联系电话 + + + + + + + + + 备注信息(150字以内 + + + + + + + + + + + 支付方式 + + + + + + + + 微信支付 + + 微信快捷支付 + + + + + + + + + 微信支付 + + + + + + + + + + + + 余额支付 + + 可用余额:{{ userInfo.nowMoney ? force2Decimal(userInfo.nowMoney) : 0.00 }} + + + + + + + + + + + + 商品总价: + ¥{{ force2Decimal(orderPrice.totalPrice) }} + + + 运费: + ¥{{ force2Decimal(orderPrice.payPostage) }} + + + 优惠券抵扣: + -¥{{ force2Decimal(orderPrice.couponPrice) }} + + + 积分抵扣: + -¥{{ force2Decimal(orderPrice.deductionPrice) }} + + + + + + 合计: + ¥{{ + force2Decimal(orderPrice.payPrice) + }} + + + 立即结算 + + + + + + + + + + diff --git a/pages/order/PaymentStatus/index.vue b/pages/order/PaymentStatus/index.vue new file mode 100644 index 0000000..bb9e43b --- /dev/null +++ b/pages/order/PaymentStatus/index.vue @@ -0,0 +1,34 @@ + + + + + + 订单支付成功 + + + 订单编号 + wx3265361456134568 + + + 下单时间 + 2019-01-09 18:05 + + + 支付方式 + 微信支付 + + + 支付金额 + 2222.00 + + + + + + + + + 返回查看订单 + 返回首页 + + diff --git a/pages/order/ReturnList/index.vue b/pages/order/ReturnList/index.vue new file mode 100644 index 0000000..99ab0fa --- /dev/null +++ b/pages/order/ReturnList/index.vue @@ -0,0 +1,104 @@ + + + + + + 订单号:{{ order.orderId }} + + + + + + + + {{ cart.productInfo.storeName }} + x {{ cart.cartNum }} + + {{ cart.productInfo.attrInfo.sku }} + {{ cart.productInfo.storeName }} + ¥{{ cart.productInfo.price }} + + + + 共{{ order.cartInfo.length || 0 }}件商品,总金额 + ¥{{ order.payPrice }} + + + + + + + + + + + + diff --git a/pages/orderAdmin/AdminOrder/index.vue b/pages/orderAdmin/AdminOrder/index.vue new file mode 100644 index 0000000..f0f2c0d --- /dev/null +++ b/pages/orderAdmin/AdminOrder/index.vue @@ -0,0 +1,354 @@ + + + + {{ title }} + + 订单:{{ orderInfo.orderId }} + + + + + + + + {{ orderInfo.nickname }} + + + {{ orderInfo.realName}} + {{ orderInfo.userPhone }} + + {{ orderInfo.userAddress }} + + + + + + + + + + + + {{ item.productInfo.storeName }} + {{ item.productInfo.sku }} + + + + ¥{{ item.productInfo.price }} + x{{ item.cartNum }} + ¥{{ item.productInfo.otPrice ? item.productInfo.otPrice : 0 }} + + + + + 共{{ orderInfo.totalNum }}件商品,应支付 + ¥{{ orderInfo.payPrice }} + ( 邮费 ¥{{ + orderInfo.payPostage + }} + ) + + + + 订单编号: + + {{ orderInfo.orderId + }} + 复制 + + + + 下单时间: + + + + + + 支付状态: + {{ orderInfo.paid == 1 ? "已支付" : "未支付" }} + + + 支付方式: + {{ payType }} + + + 买家留言: + {{ orderInfo.mark }} + + + + + 支付金额: + ¥{{ orderInfo.totalPrice }} + + + 优惠券抵扣: + -¥{{ orderInfo.couponPrice }} + + + 实付款: + ¥{{ orderInfo.payPrice }} + + + + + 配送方式: + 快递 + 送货 + + + 快递公司: + 送货人: + {{ orderInfo.delivery_name }} + + + 快递单号: + 送货人电话: + + {{ orderInfo.delivery_id + }} + 复制 + + + + + + + 一键改价 + 立即退款 + 确认付款 + 去发货 + + + + + diff --git a/pages/orderAdmin/AdminOrderList/index.vue b/pages/orderAdmin/AdminOrderList/index.vue new file mode 100644 index 0000000..f069b1a --- /dev/null +++ b/pages/orderAdmin/AdminOrderList/index.vue @@ -0,0 +1,330 @@ + + + + 待付款 + 待发货 + 待收货 + 待评价 + 已完成 + 退款 + + + + + 订单号:{{ item.orderId }} + + 下单时间: + + + + + + + + + + + {{ val.productInfo.storeName }} + {{ val.productInfo.sku }} + + + + ¥{{ val.productInfo.price }} + x{{ val.cartNum }} + ¥{{ val.productInfo.otPrice }} + + + + + 共{{ item.totalNum }}件商品,应支付 + ¥{{ item.payPrice }} + ( 邮费 ¥{{ + item.totalPostage + }} + ) + + + + + + + + + + + + + 一键改价 + 立即退款 + 确认付款 + 去发货 + + + + + + + + + + + diff --git a/pages/orderAdmin/GoodsDeliver/index.vue b/pages/orderAdmin/GoodsDeliver/index.vue new file mode 100644 index 0000000..8b65932 --- /dev/null +++ b/pages/orderAdmin/GoodsDeliver/index.vue @@ -0,0 +1,231 @@ + + + + + 订单号:{{ delivery.orderId }} + {{ delivery.nickname }} + + + + {{ delivery.realName }} + {{ delivery.userPhone }} + + {{ delivery.userAddress }} + + + + + + + + 发货方式 + + + {{ item.title }} + + + + + + + + 快递公司 + + + + + + 快递单号 + + + + + + 送货人 + + + + 送货电话 + + + + + + 确认提交 + + + diff --git a/pages/orderAdmin/OrderCancellation/index.vue b/pages/orderAdmin/OrderCancellation/index.vue new file mode 100644 index 0000000..5cd553e --- /dev/null +++ b/pages/orderAdmin/OrderCancellation/index.vue @@ -0,0 +1,184 @@ + + + + + + + + + + 立即核销 + + + + + + + + + + + diff --git a/pages/orderAdmin/OrderIndex/index.vue b/pages/orderAdmin/OrderIndex/index.vue new file mode 100644 index 0000000..be5faaa --- /dev/null +++ b/pages/orderAdmin/OrderIndex/index.vue @@ -0,0 +1,167 @@ + + + + + + {{ census.orderCount.unpaidCount }} + 待付款 + + + {{ census.orderCount.unshippedCount }} + 待发货 + + + {{ census.orderCount.receivedCount }} + 待收货 + + + {{ census.orderCount.evaluatedCount }} + 待评价 + + + {{ census.orderCount.refundCount }} + 退款 + + + + + 数据统计 + + + + {{ census.orderTimeCount.todayPrice }} + 今日成交额 + + + {{ census.orderTimeCount.proPrice }} + 昨日成交额 + + + {{ census.orderTimeCount.monthPrice }} + 本月成交额 + + + {{ census.orderTimeCount.todayCount }} + 今日订单数 + + + {{ census.orderTimeCount.proCount }} + 昨日订单数 + + + {{ census.orderTimeCount.monthCount }} + 本月订单数 + + + + + + 详细数据 + + + 日期 + 订单数 + 成交额 + + + + {{ item.time }} + {{ item.count }} + {{ item.price }} + + + + + + + diff --git a/pages/orderAdmin/Statistics/index.vue b/pages/orderAdmin/Statistics/index.vue new file mode 100644 index 0000000..c51f9fe --- /dev/null +++ b/pages/orderAdmin/Statistics/index.vue @@ -0,0 +1,446 @@ + + + + + 今天 + 昨天 + 最近7天 + 本月 + + + + {{ title }}{{ this.where.type == 1 ? "营业额(元)" : "订单量(份)" }} + {{ time_price }} + + + + + 详细数据 + + + 日期 + 订单量 + 成交额 + + + + {{ item.time }} + {{ item.count }} + {{ item.price }} + + + + + + + + + + diff --git a/pages/shop/EvaluateList/index.vue b/pages/shop/EvaluateList/index.vue new file mode 100644 index 0000000..4f36d8a --- /dev/null +++ b/pages/shop/EvaluateList/index.vue @@ -0,0 +1,115 @@ + + + + + + 评分 + + + + {{ replyData.replyChance || 0 }}% + 好评率 + + + + + + {{ item.evaluate }}({{ item.num }}) + + + + + + + + + + diff --git a/pages/shop/GoodSearch/index.vue b/pages/shop/GoodSearch/index.vue new file mode 100644 index 0000000..a2d8f34 --- /dev/null +++ b/pages/shop/GoodSearch/index.vue @@ -0,0 +1,131 @@ + + + + + + + + 搜索 + + + + + + 热门搜索 + + {{ keywordsKey }} + + + + + + + + + + \ No newline at end of file diff --git a/pages/shop/GoodsClass/index.vue b/pages/shop/GoodsClass/index.vue new file mode 100644 index 0000000..854dddc --- /dev/null +++ b/pages/shop/GoodsClass/index.vue @@ -0,0 +1,578 @@ + + + + + + 分类 + + + + + + + + + + + 搜索商品 + + + + + + + {{ item.cateName }} + + + + + + + + + + {{curCategoryName}} + + + + + + + + + + + + + + + {{ item.storeName }} + + + + ¥{{item.vipPrice}} + ¥{{ item.price }} + + + + + + + + + + + + + diff --git a/pages/shop/GoodsCollection/index.vue b/pages/shop/GoodsCollection/index.vue new file mode 100644 index 0000000..485c6fb --- /dev/null +++ b/pages/shop/GoodsCollection/index.vue @@ -0,0 +1,102 @@ + + + + + + + + + {{ item.storeName }} + + ¥{{ item.price }} + 删除 + + + + + + + + + + + + + + diff --git a/pages/shop/GoodsCon/index.vue b/pages/shop/GoodsCon/index.vue new file mode 100644 index 0000000..b0d1bf5 --- /dev/null +++ b/pages/shop/GoodsCon/index.vue @@ -0,0 +1,1892 @@ + + + + + + + + + + + + + + + + {{ storeInfo.storeName }} + {{ storeInfo.storeInfo }} + + + ¥{{ attr.productSelect.price }} + ¥ + + {{ attr.productSelect.otPrice }} + + + + + + + + + + + + + + + + + + + + + + + + + 已享受会员价格 + + + + + + + + 产地:{{ storeInfo.origin }} + 单位:{{ storeInfo.unitName }} + 规格:{{ storeInfo.storeInfo }} + + + + + + + + {{ storeInfo.storeName }} + + + + + + ¥{{ attr.productSelect.price }} + ¥ + + {{ attr.productSelect.otPrice }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ storeInfo.origin }} + + + + + + + + + + + + + + 还剩 + + {{ preInfo.surplus }} + 天 + + + {{ preInfo.title }} + + + + + + ¥{{ force2Decimal(preInfo.price) }} + + {{ preInfo.postTime.substring(0, 10) }}发货 + {{ preInfo.stopTime.substring(0, 10) }}结束 + + + + + + + + + + + + + {{ killInfo.storeInfo.title }} + + + + ¥{{ force2Decimal(killInfo.storeInfo.price) }} + + ¥{{ force2Decimal(killInfo.storeInfo.otPrice) }} + + + + 倒计时: + + + + + + + + + + + + + + + {{ dayInfo.title }} + + + + ¥{{ force2Decimal(dayInfo.price) }} + ¥{{ force2Decimal(dayInfo.productPrice) }} + + + + 倒计时: + + + + + + + + + + + + 库存:{{ dayInfo.stock }}{{ dayInfo.unitName }} + {{ tempName }} + 销量:{{ dayInfo.sales }}{{ dayInfo.unitName }} + + + + + + + + + + + + + + + + + + + + + + + 规格 + {{ attrValue }} + + 库存:{{ storeInfo.stock }} + + + + + + + 送至 + {{ postAddress }} + + + + {{ storeInfo.isFastPost == 1 ? "预计48小时内发货" : "预计发货时间:" + storeInfo.postTime }} + + + + 无法获取定位信息,点击重新授权定位 + + + + + + 快递 + {{ storeInfo.postage === 0 ? "免运费" : `¥${storeInfo.postage}` }} + + 销量:{{ storeInfo.sales }} + + + + + 保障 + {{ storeInfo.guarantee }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ systemStore.name }} + + 进店逛逛 + + + + + + + + + + + + + + {{ item.storeName }} + + ¥{{ item.price }} + + + + + + + + 产品参数 + + + {{ item.key }} + {{ item.value }} + + + + 点击{{ exSliceEnd === 3 ? '展开查看' : '折叠' }}更多参数 + + + + + + + + + 用户评价({{ replyCount }}) + + {{ replyChance }}% + 好评率 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 客服 + + + + + + + {{ CartCount }} + + 购物车 + + + + {{ CartCount }} + + 购物车 + + + + + + 首页 + + + + + + 加入购物车 + + 立即购买 + + + + + + + + + + + 生成海报 + + + + + + 生成海报 + + + + + + + + + + + + + + diff --git a/pages/shop/GoodsEvaluate/index.vue b/pages/shop/GoodsEvaluate/index.vue new file mode 100644 index 0000000..99c7fef --- /dev/null +++ b/pages/shop/GoodsEvaluate/index.vue @@ -0,0 +1,198 @@ + + + + + + + + {{ orderCon.productInfo.storeName }} + + ¥{{ orderCon.productInfo.price }} + x{{ orderCon.cartNum }} + + + + + + {{ item.name }} + + + + {{ item.index === -1 ? "" : item.index + 1 + "分" }} + + + + + + + + + + + 上传图片 + + + + 立即评价 + + + + + diff --git a/pages/shop/GoodsList/index.vue b/pages/shop/GoodsList/index.vue new file mode 100644 index 0000000..ce6af5a --- /dev/null +++ b/pages/shop/GoodsList/index.vue @@ -0,0 +1,384 @@ + + + + + + + + + + + + + {{ title ? title : "默认" }} + + + 价格 + + + + + + 销量 + + + + + + 新品 + + + + + + + + {{ item.storeName }} + + + + + ¥ + {{ force2Decimal(item.vipPrice) }} + {{ force2Decimal(item.price) }} + + ¥{{ force2Decimal(item.otPrice) }} + + 已售{{ item.sales }}件 + + + + + + + + + + + + + + + + + diff --git a/pages/shop/GoodsPromotion/index.vue b/pages/shop/GoodsPromotion/index.vue new file mode 100644 index 0000000..8cc7da9 --- /dev/null +++ b/pages/shop/GoodsPromotion/index.vue @@ -0,0 +1,78 @@ + + + + + + + 促销单品 + + + + + + + diff --git a/pages/shop/HotNewGoods/index.vue b/pages/shop/HotNewGoods/index.vue new file mode 100644 index 0000000..67e0467 --- /dev/null +++ b/pages/shop/HotNewGoods/index.vue @@ -0,0 +1,99 @@ + + + + + + + {{ name }} + + + + + + + diff --git a/pages/shop/ShoppingCart/index.vue b/pages/shop/ShoppingCart/index.vue new file mode 100644 index 0000000..b22817e --- /dev/null +++ b/pages/shop/ShoppingCart/index.vue @@ -0,0 +1,721 @@ + + + + + + + + + + + + + 共{{ count }}件商品 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.productInfo.storeName }} + + + 规格:{{ item.productInfo.attrInfo.sku }} + + + ¥{{ force2Decimal(item.truePrice) }} + + + + {{ item.cartNum }} + + + + + + + + + + + + 失效商品 + + + + 清空 + + + + + + 失效 + + + + + + {{ item.productInfo.storeName }} + 属性:{{ item.productInfo.attrInfo.sku }} + + + 该商品已下架 + + + + + + + + + + + + + + + + + + + + + + + + + + + 全选 ({{ cartCount }}) + + + + + + + 合计: + ¥ + {{ force2Decimal(countmoney) }} + + + + + + 结算 + + + + + + + + + + + diff --git a/pages/shop/StoreList/index.vue b/pages/shop/StoreList/index.vue new file mode 100644 index 0000000..658c172 --- /dev/null +++ b/pages/shop/StoreList/index.vue @@ -0,0 +1,196 @@ + + + + + + + + + {{ item.name }} + {{ item.address }} + + + + + + + + + 距离{{ item.distance }}千米 + 查看地图 + + + + + + + + + + + + diff --git a/pages/user/CustomerList/index.vue b/pages/user/CustomerList/index.vue new file mode 100644 index 0000000..d838a58 --- /dev/null +++ b/pages/user/CustomerList/index.vue @@ -0,0 +1,73 @@ + + + + + + + {{ item.nickname }} + + + + + diff --git a/pages/user/Login/index.vue b/pages/user/Login/index.vue new file mode 100644 index 0000000..71b18d4 --- /dev/null +++ b/pages/user/Login/index.vue @@ -0,0 +1,332 @@ + + + + + + + + + + {{ item }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ text }} + + + + 登录 + 登录 + + 没有账号? + 立即注册 + + + + 注册账号 + + + + + + + + + + + + {{ text }} + + + + + + + + + + + + + + + + 注册 + + 已有账号? + 立即登录 + + + + + + diff --git a/pages/user/MemberUpgradeIntro/MemberUpgradeIntro.vue b/pages/user/MemberUpgradeIntro/MemberUpgradeIntro.vue new file mode 100644 index 0000000..6656c6f --- /dev/null +++ b/pages/user/MemberUpgradeIntro/MemberUpgradeIntro.vue @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/pages/user/Message/Message.vue b/pages/user/Message/Message.vue new file mode 100644 index 0000000..e8acf9c --- /dev/null +++ b/pages/user/Message/Message.vue @@ -0,0 +1,164 @@ + + + + + + + {{msg.noticeTitle}} + + {{dataFormat(msg.noticeTime/1000,true)}} + + + + + + + + + + + + + + diff --git a/pages/user/MessageDetail/MessageDetail.vue b/pages/user/MessageDetail/MessageDetail.vue new file mode 100644 index 0000000..3a73650 --- /dev/null +++ b/pages/user/MessageDetail/MessageDetail.vue @@ -0,0 +1,90 @@ + + + + {{messageInfo.noticeTitle}} + {{dataFormat(messageInfo.noticeTime/1000,true)}} + + + + + + + + diff --git a/pages/user/ModifyPayPassword/ModifyPayPassword.vue b/pages/user/ModifyPayPassword/ModifyPayPassword.vue new file mode 100644 index 0000000..2a7a887 --- /dev/null +++ b/pages/user/ModifyPayPassword/ModifyPayPassword.vue @@ -0,0 +1,217 @@ + + + + + + + + + {{ text }} + + + + 保存 + + + + + + + + diff --git a/pages/user/Recharge/index.vue b/pages/user/Recharge/index.vue new file mode 100644 index 0000000..32384e9 --- /dev/null +++ b/pages/user/Recharge/index.vue @@ -0,0 +1,335 @@ + + + + 我的余额 + + + ¥ + {{ now_money || 0 }} + + + + + + 账户充值 + + + + + + + {{ item.value.price }} + 元 + + + 赠送:{{ item.value.give_price }} 元 + + + + 提示:充值后帐户的金额不能提现 + 立即充值 + + + + + + + diff --git a/pages/user/RetrievePassword/index.vue b/pages/user/RetrievePassword/index.vue new file mode 100644 index 0000000..86780ce --- /dev/null +++ b/pages/user/RetrievePassword/index.vue @@ -0,0 +1,153 @@ + + + + + + + + + 找回密码 + + + + + + + + + + + + + + + + {{ text }} + + + + + + + + + + + + 确认 + + 立即登录 + + + + + + + diff --git a/pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol.vue b/pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol.vue new file mode 100644 index 0000000..c5072c8 --- /dev/null +++ b/pages/user/UpgradeElectronicProtocol/UpgradeElectronicProtocol.vue @@ -0,0 +1,368 @@ + + + + + + + + {{ getCheckState(userLevelInfo) }} + + 原因:{{ userLevelInfo.checkRemark }} + + + + + + + + + + + 我已同意 + 《香道滇股东协议》 + + + + + + + + + + + + + + + 上传身份证正面照 + + + + + + + + + + + + 上传身份证反面照 + + 保存 + + + + + + + + + + diff --git a/pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail.vue b/pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail.vue new file mode 100644 index 0000000..924aba6 --- /dev/null +++ b/pages/user/UpgradeProtocolDetail/UpgradeProtocolDetail.vue @@ -0,0 +1,211 @@ + + + + + + + + + + 欢迎阅读香道滇官方商城服务条款 + + ( + 下称“本条款” + ) + + 。本条款阐述之条款和条件适用于您在香道滇官方商城平台无偿或有偿使用香道滇产品。 + + + + + 1. + + 接受条款 + + + + + + + 以任何方式使用香道滇产品即表示您同意自己已经与香道滇公司就香道滇官方商城平台服务事项(下称香道滇商城服务)订立本条款,且您将受本条款的条件约束。 + + + + 您应在第一次提出申请前仔细阅读本条款,并有权选择停止或继续使用香道滇商城服务;一旦您继续使用香道滇商城服务,则表示您已接受本条款,当您与香道滇商城发生争议时,应以本条款作为约束双方的条款。 + + + + + 2. + + 谁可成为 + + + 香道滇官方商城 + 平台的共享股东 + + + + + + 必需是注册成为香道滇官方商城会员后,对香道滇产品产生一定兴趣和拥有一定资源的合作伙伴: + + + + + + 升级成为群主——针对个人要求拥有吃货宣传带动力; + + + + + + 升级成为团长——针对个人要求具备一定的线上或线下实战带货力; + + + + + + 升级成为特约合作方——针对第三方合作要求具备一定实力的带货公司 + + / + + 平台。 + + + + + + 请您先与商城管理员进行信息交流,让我们了解下您的资源情况,同时也把相应匹配的共享股东的具体权益让您也具体了解,待双方都明确的情况下在由您提出申请并提交相应资料信息后,即可完成对应升级。 + + + + + 3. + + 您的资料与隐私 + + + + + + 需要到您提交个人或平台方的资料仅作为香道滇官方商城合作备案,同时香道滇官方商城也保证不会泄露您的信息给第三方。 + + + + + 4. + + 香道滇官方商城 + 平台产品责任 + + + + + + ( + + 1 + )所有从本商城发货出去的产品均有品质保证,如因产品本身出现的质量问题均由本商城负责处理及承担相应责任; + + + + ( + 2 + + )您作为香道滇官方商城产品的推广方用户,需按照本商城给予的指导售价、产品实际宣传内容以及有针对性的目标群体进行宣传推广, + + 不得进行虚假宣传或者促使消费者误解的方式进行宣传, + 如此造成目标客户群体的影响则由其自行承担相应责任。 + + + + 5. + + 不可抗力 + + + + + + 由于自然灾害、暴动、战争行为、政府行为、通电信网络、黑客攻击、尚无有效防御措施的计算机病毒的发作及其他各方不能预见并且对其发生和后果不能防止并避免的不可抗力原因,致使凡香道滇官方商城延迟或未能履约的,香道滇公司不对您承担任何责任。 + + + + + + + + + + export default { + data() { + return { + + } + }, + methods: { + + } + } + + + diff --git a/pages/user/User/index.vue b/pages/user/User/index.vue new file mode 100644 index 0000000..ae95520 --- /dev/null +++ b/pages/user/User/index.vue @@ -0,0 +1,1115 @@ + + + + + + + + + + 店铺主页 + + + + + + + + + + {{ userInfo.nickname }} + + + + {{ userInfo.vipName }} + + + + + + + {{ userInfo.levelName }} + + + + {{ protocolCheckState(userLevelInfo.checkState) }} + + + + + + + + + + + + + + + + 扫一扫 + + + + + 收藏 + + + + + 消息 + + + + + + 设置 + + + + + + + 我的账户 + + + + + + + + + + 余额 + + {{ userInfo.nowMoney ? force2Decimal(userInfo.nowMoney) : 0.00 }} + + + + + + 提现 + 账户明细 + + + + + + + + + + + 恭喜你成为了{{ userInfo.levelName }} + + + 当前等级:{{ userInfo.level }} + + + + + 权益说明 + + + + + + + + + + + + 我的订单 + + + 全部订单 + + + + + + + + {{ orderStatusNum.unpaidCount }} + + + 待付款 + + + + + {{ orderStatusNum.unshippedCount }} + + + 待发货 + + + + + {{ orderStatusNum.receivedCount }} + + + 待收货/核销 + + + + + {{ orderStatusNum.evaluatedCount }} + + + 待评价 + + + + + {{ orderStatusNum.refundCount }} + + + 售后/退款 + + + + + + + + + 所有功能 + + + + + + + + 团队管理 + + + + + + + + 物流地址管理 + + + + + + + + 银行卡管理 + + + + + + + + + 申请我的店铺 + + + {{ checkStateStr(userInfo.hotel.checkState) }} + + + + 驳回原因:{{ userInfo.hotel.checkMsg }} + + + + + + + + + + + + + 修改店铺信息 + + + + + + + + + 客服历史会话 + + + + + + + + + + + + + + + + + + + + + {{ userInfo.nickname }} + + + + + + + + + + diff --git a/pages/user/UserAccount/index.vue b/pages/user/UserAccount/index.vue new file mode 100644 index 0000000..6d93303 --- /dev/null +++ b/pages/user/UserAccount/index.vue @@ -0,0 +1,111 @@ + + + + + + + + 总资产(元) + {{ now_money }} + + + + + + 累计消费(元) + {{ orderStatusSum }} + + + + + + + + + + 账单记录 + + + + + + 消费记录 + + + + + + + + diff --git a/pages/user/UserBill/index.vue b/pages/user/UserBill/index.vue new file mode 100644 index 0000000..99dfdcb --- /dev/null +++ b/pages/user/UserBill/index.vue @@ -0,0 +1,114 @@ + + + + 全部 + 消费 + 充值 + + + + + {{ item.time }} + + + + {{ val.title }} + {{ val.addTime }} + + {{ val.pm == 0 ? "-" : "+" }}{{ force2Decimal(val.number) }} + + + + + + + + + diff --git a/pages/user/UserFavorite/UserFavorite.vue b/pages/user/UserFavorite/UserFavorite.vue new file mode 100644 index 0000000..d92e7c5 --- /dev/null +++ b/pages/user/UserFavorite/UserFavorite.vue @@ -0,0 +1,316 @@ + + + + + + + + + {{ item.name }} + {{ shortDateString(item.createdTime) }} + + + + + + {{item.pv||0}} + + + + {{item.zan||0}} + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/user/UserVip/index.vue b/pages/user/UserVip/index.vue new file mode 100644 index 0000000..b42e453 --- /dev/null +++ b/pages/user/UserVip/index.vue @@ -0,0 +1,209 @@ + + + + + + + + + + {{ item.name }} + + 可享受商品折扣: {{ item.discount / 10 }}折 + + + + + {{ val.newNumber }} + {{ val.realName }} + + + + 该会员等级尚未解锁 + + + 已解锁更高等级 + + + + + + + + + + + 会员升级要求 + + + {{ taskCount }} + /{{ vipRequire.length }} + + + + + + + {{ item.name}} + + + {{ item.finish ? "已满足条件" : "未满足条件" }} + + + + + + {{ item.taskTypeTitle }} + + {{ item.newNumber }} + /{{ item.number }} + + + + + + + + + + + + {{ illustrate }} + + + + + + + diff --git a/pages/user/address/AddAddress/index.vue b/pages/user/address/AddAddress/index.vue new file mode 100644 index 0000000..0d9c7bf --- /dev/null +++ b/pages/user/address/AddAddress/index.vue @@ -0,0 +1,375 @@ + + + + + 姓名 + + + + 联系电话 + + + + 所在地区 + + + + + + + + + 详细地址 + + + + + + + + + + + 设置为默认地址 + + + + + + + 立即保存 + 导入微信地址 + + + + + + diff --git a/pages/user/address/AddressManagement/index.vue b/pages/user/address/AddressManagement/index.vue new file mode 100644 index 0000000..99261d2 --- /dev/null +++ b/pages/user/address/AddressManagement/index.vue @@ -0,0 +1,273 @@ + + + + + + + + + + + + 收货人:{{ item.realName }} + {{ item.phone }} + + + 收货地址:{{ item.province }}{{ item.city }}{{ + item.district + }}{{ item.detail }} + + + + + + + + + 设为默认 + + + + + + + + 修改 + + + + 删除 + + + + + + + + + + + + + + + 添加新地址 + + + + 添加新地址 + + + + + + + + + + + diff --git a/pages/user/coupon/GetCoupon/index.vue b/pages/user/coupon/GetCoupon/index.vue new file mode 100644 index 0000000..2432c18 --- /dev/null +++ b/pages/user/coupon/GetCoupon/index.vue @@ -0,0 +1,107 @@ + + + + + + + ¥ + {{ item.couponPrice }} + + 满{{ item.useMinPrice }}元可用 + + + + 通用劵 + 商品券 + 未知 + {{ item.cname }} + + + {{ item.startTime }}-{{ item.endTime }} + 不限时 + 已领取 + 已领完 + 立即领取 + + + + + + + + + + + + + + + diff --git a/pages/user/coupon/UserCoupon/index.vue b/pages/user/coupon/UserCoupon/index.vue new file mode 100644 index 0000000..95254b4 --- /dev/null +++ b/pages/user/coupon/UserCoupon/index.vue @@ -0,0 +1,79 @@ + + + + + + + ¥{{ item.couponPrice }} + + 满{{ item.useMinPrice }}元可用 + + + + {{ item.couponTitle }} + + + 不限时 + {{ item.createTime }}-{{ item.endTime }} + {{ item._msg }} + {{ item._msg }} + + + + + + + + + + + + + diff --git a/pages/user/promotion/CashAudit/index.vue b/pages/user/promotion/CashAudit/index.vue new file mode 100644 index 0000000..671445f --- /dev/null +++ b/pages/user/promotion/CashAudit/index.vue @@ -0,0 +1,33 @@ + + + + + + 提现申请已提交,等待人工审核 + {{ time }} + 好的 + + + diff --git a/pages/user/promotion/CashRecord/index.vue b/pages/user/promotion/CashRecord/index.vue new file mode 100644 index 0000000..11d9ea3 --- /dev/null +++ b/pages/user/promotion/CashRecord/index.vue @@ -0,0 +1,162 @@ + + + + + + 提现记录 + + ¥ + {{ force2Decimal(commission) }} + + + + + + + + + + + + 提现金额:{{ force2Decimal(item.extractPrice) }} + 手续费:{{ force2Decimal(item.extractSxf) }} + + 失败原因:{{item.failMsg}} + + {{item.createTime}} + {{item.statusText}} + + + + + + + + + + + + + diff --git a/pages/user/promotion/CommissionDetails/index.vue b/pages/user/promotion/CommissionDetails/index.vue new file mode 100644 index 0000000..f7539c2 --- /dev/null +++ b/pages/user/promotion/CommissionDetails/index.vue @@ -0,0 +1,113 @@ + + + + + + 佣金明细 + + ¥{{ force2Decimal(commission) }} + + + + + + + + {{ item.time }} + + + + {{ val.title }} + {{ val.addTime }} + + + {{val.status==0?"待收货确定":(val.status==1?"有效":"无效")}} + + +{{ force2Decimal(val.number) }} + + -{{ force2Decimal(val.number) }} + + + + + + + + + + + + + diff --git a/pages/user/promotion/Poster/index.vue b/pages/user/promotion/Poster/index.vue new file mode 100644 index 0000000..533d6ad --- /dev/null +++ b/pages/user/promotion/Poster/index.vue @@ -0,0 +1,160 @@ + + + + + + + + + + + + 保存海报 + + + + + diff --git a/pages/user/promotion/PromoterList/index.vue b/pages/user/promotion/PromoterList/index.vue new file mode 100644 index 0000000..4ac4868 --- /dev/null +++ b/pages/user/promotion/PromoterList/index.vue @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + {{ first + second || '0' }} + + 推广人数(人) + + + + + {{ screen.grade == 0 ? '一级' : '二级' }} + + + + + + + + + + + + + + + 团队排序 + + + + + + 金额排序 + + + + + + 订单排序 + + + + + + 等级排序 + + + + + + + + + + {{ spreadListIndex + 1 }} + + + + + + {{ val.nickname }} + {{ val.levelName }} + + 加入时间: {{ val.time }} + + + + + {{ val.childCount }} + 人 + + {{ val.orderCount }}单 + + {{ val.numberCount ? val.numberCount : 0 }} + 元 + + + + + + + + + + + + diff --git a/pages/user/promotion/PromoterOrder/index.vue b/pages/user/promotion/PromoterOrder/index.vue new file mode 100644 index 0000000..17cbf40 --- /dev/null +++ b/pages/user/promotion/PromoterOrder/index.vue @@ -0,0 +1,123 @@ + + + + + + 累计推广订单 + + {{ count||'0' }} + 单 + + + + 返佣说明:1.下线客户下单成功后,平台设置为默认7天收货成功,佣金便自动计算添加到上线的返佣;2.如过程中下单客户有退货退款,则此订单返佣无效,会自动取消或相应扣除。 + + + + + + + {{ item.time }} + 本月累计推广订单:{{ item.count ? item.count : 0 }}单 + + + + + + + + + {{ val.nickname }} + + + 返佣: + ¥{{ val.number ? val.number : 0 }} + + + + + + + 订单金额: + ¥{{ val.payPrice || 0 }}(¥{{ val.totalPrice || 0 }}+¥{{ val.totalPostage || 0 }}运费) + + {{val.billStatus==0?"待收货确定":(val.billStatus==1?"有效":"无效")}} + + + 订单号: + {{ val.orderId }} + + + 下单时间: + {{ val.time }} + + + + + + + + + + + \ No newline at end of file diff --git a/pages/user/promotion/UserCash/index.vue b/pages/user/promotion/UserCash/index.vue new file mode 100644 index 0000000..870d4a4 --- /dev/null +++ b/pages/user/promotion/UserCash/index.vue @@ -0,0 +1,212 @@ + + + + + + + {{ item.name }} + + + + + + 微信号 + + + + + + 提现 + + + + + 当前可提现金额: {{ commissionCount }} + 提现 + + + + 用户名 + + + + + + 账号 + + + + + + 提现 + + + + + 当前可提现金额: {{ commissionCount }} + 提现 + + + + + diff --git a/pages/user/promotion/UserPromotion/index.vue b/pages/user/promotion/UserPromotion/index.vue new file mode 100644 index 0000000..fe5116f --- /dev/null +++ b/pages/user/promotion/UserPromotion/index.vue @@ -0,0 +1,241 @@ + + + + + + {{ force2Decimal(Info.commissionCount) }} + 当前佣金 + + + + {{ force2Decimal(Info.lastDayCount) }} + 今日收益 + + + + {{ force2Decimal(Info.extractCount) }} + 累计已提 + + + + + + + 提现记录 + + + + + + + 推广统计 + + + + + 佣金明细 + + + + + 推广人订单 + + + + + 立即提现 + + + + + + + + + + + + + + + diff --git a/pages/user/signIn/Integral/index.vue b/pages/user/signIn/Integral/index.vue new file mode 100644 index 0000000..1aafad2 --- /dev/null +++ b/pages/user/signIn/Integral/index.vue @@ -0,0 +1,151 @@ + + + + 当前积分 + {{ info.integral }} + + + + + + + + + + + + + + + + + + + + + {{ item.name }} + + + + + + + + + + {{ item.title }} + + + + + +{{ item.number }} + -{{ item.number }} + + + + + + + + diff --git a/pages/user/signIn/Sign/index.vue b/pages/user/signIn/Sign/index.vue new file mode 100644 index 0000000..6989fb1 --- /dev/null +++ b/pages/user/signIn/Sign/index.vue @@ -0,0 +1,186 @@ + + + + + + + + + + {{ userInfo.nickname }} + + 积分: {{ userInfo.integral }} + + + + + + 明细 + + + + + + + {{ item.day }} + + +{{ item.sign_num }} + + + + {{ userInfo.isDaySign ? "已签到" : "立即签到" }} + + + + 已累计签到 + + {{ item || 0 }} + 天 + + 据说连续签到第{{ day }}天可获得超额积分,一定要坚持签到哦~~~ + + + + {{ item.title }} + {{ item.addTime }} + + +{{ item.number }} + + + 点击加载更多 + + + + + + + + + + 签到成功 + 获得{{ integral }}积分 + 好的 + + + + + + + diff --git a/pages/user/signIn/SignRecord/index.vue b/pages/user/signIn/SignRecord/index.vue new file mode 100644 index 0000000..a153642 --- /dev/null +++ b/pages/user/signIn/SignRecord/index.vue @@ -0,0 +1,65 @@ + + + + + {{ item.time }} + + + + {{ itemn.title }} + {{ itemn.addTime }} + + +{{ itemn.number }} + + + + + + + + diff --git a/pagesInn/components/tm-upload/tm-upload.vue b/pagesInn/components/tm-upload/tm-upload.vue new file mode 100644 index 0000000..22b1c05 --- /dev/null +++ b/pagesInn/components/tm-upload/tm-upload.vue @@ -0,0 +1,484 @@ + + + + + + + + x + {{item.upload_percent}}% + + + + + + + + + + + + diff --git a/pagesInn/inn/innApply.vue b/pagesInn/inn/innApply.vue new file mode 100644 index 0000000..af35022 --- /dev/null +++ b/pagesInn/inn/innApply.vue @@ -0,0 +1,782 @@ + + + + 基本信息 + + + + + + 店铺名称 + + + + + + + + + + + + + 店铺类型 + + + + + {{ typeList[typeIndex].name }} + + 请选择店铺类型 + + + + + + + + + + + + 店铺省市区 + + + + + + + + + + + + + 详细地址 + + + + + + + + + + + + 联系电话 + + + + + + + + + + + + 地图定位选择 + + {{ innApplyInfo.position }} + + + + + + + + + + 详细信息 + + + 店铺LOGO + + + + + + + + + + 封面照片 + + + + + + + + + + + 店主微信二维码 + (注意:不是商城二维码,是个人微信二维码) + + + + + + + + + + + 店主名字 + + + + + + + + + 一句话介绍 + + + + + + + + + + + + + + + + + + 店铺简介 + + + + + + + + + + + + + + + + + + + + + + + 阅读并同意遵守 + + + + 《店主合伙人协议条款》 + + + + + 提交申请 + + + + + + + + + diff --git a/pagesInn/inn/innHome.vue b/pagesInn/inn/innHome.vue new file mode 100644 index 0000000..3762bf4 --- /dev/null +++ b/pagesInn/inn/innHome.vue @@ -0,0 +1,1114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ inn.name }} + + + + {{ inn.cityName }} + + + + + + + {{ inn.ownerName }}/店主 + + + + + + + 保证金:{{ inn.guaranteeValue }}元 + + + + {{ inn.zan }} + + + + {{ inn.zan }} + + + + + + + + + + + + + + {{ inn.content }} + + + + + + + + + + + + + + + + + {{ inn.address }} + + + + + + 联系客服 + + + + + 进入地图 + + + + + + + 企业文化 + + + + + 最新资讯 + + + + + 商家资质 + + + + + 商品 + + + + + + + + + + + + + + + + + + + + + + + + {{ info.monthDay }} + {{ info.year }} + + + + + + + + + + {{ info.name }} + + + + + + + + + + + + + + + + + + + {{ info.pv }} + + + + {{ info.zan }} + + + {{ info.time }} + + + + + + + + + + + + + + + + {{ item.storeName }} + + + ¥{{ item.price }} + + + + + {{ item.sales }}人已购买 + + + + + + 发布动态 + 修改资料 + + + + + + + + + + + diff --git a/pagesInn/inn/innInfoDetail.vue b/pagesInn/inn/innInfoDetail.vue new file mode 100644 index 0000000..bdc084a --- /dev/null +++ b/pagesInn/inn/innInfoDetail.vue @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + {{innInfo.name}} + + + + + + + + + + + + + + + + + {{innInfo.hotelName}} + {{formattedDateStr(innInfo.createdTime)}} + + + 进入主页 + + + + + + + + + + + {{innInfo.pv}} + + + + + + + + + {{innInfo.zan}} + + + + + + + + + + + + diff --git a/pagesInn/inn/innInfoPublish.vue b/pagesInn/inn/innInfoPublish.vue new file mode 100644 index 0000000..0681d14 --- /dev/null +++ b/pagesInn/inn/innInfoPublish.vue @@ -0,0 +1,198 @@ + + + + {{item.label}} + + + + + 标题: + + + + + + + + + + + + + 发布 + + + + + + + + + + diff --git a/pagesInn/inn/innPartnerAgreement.vue b/pagesInn/inn/innPartnerAgreement.vue new file mode 100644 index 0000000..48f91a7 --- /dev/null +++ b/pagesInn/inn/innPartnerAgreement.vue @@ -0,0 +1,48 @@ + + + + + + + + + + + diff --git a/pagesInn/inn/innProfileEdit.vue b/pagesInn/inn/innProfileEdit.vue new file mode 100644 index 0000000..26a424c --- /dev/null +++ b/pagesInn/inn/innProfileEdit.vue @@ -0,0 +1,433 @@ + + + + + + + + 店铺LOGO + + + + + + + + + + 店铺类型 + + + + {{ typeList[typeIndex].name }} + + 请选择店铺类型 + + + + + + + + + 封面照片 + + + + + + + + + + 微信二维码 + + + + + + + + + + 店主名字 + + + + + + + + + + + + + + + + + + 一句话介绍 + + + + + + + + + 店铺简介 + + + + + + + + + + + + + + + 确定修改 + + + + + + + diff --git a/pkg_common/views/pdf.vue b/pkg_common/views/pdf.vue new file mode 100644 index 0000000..1021466 --- /dev/null +++ b/pkg_common/views/pdf.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/pkg_common/views/room.vue b/pkg_common/views/room.vue new file mode 100644 index 0000000..bbe6532 --- /dev/null +++ b/pkg_common/views/room.vue @@ -0,0 +1,374 @@ + + + + + + {{ item.created_at }} + + + + + {{ item.username }} + {{ item.msg_content }} + + + + + + + + + {{ item.username }} + {{ item.msg_content }} + + + + + + + + + + + + + + + 发送 + + + + + + + \ No newline at end of file diff --git a/pkg_common/views/roomLogs.vue b/pkg_common/views/roomLogs.vue new file mode 100644 index 0000000..4345112 --- /dev/null +++ b/pkg_common/views/roomLogs.vue @@ -0,0 +1,109 @@ + + + + + + + {{ item.store_name }} + {{ item.last_msg.created_at }} + + {{ item.last_msg.msg_type===0?item.last_msg.msg_content:'[图片]' }} + + + + + + 暂无数据 + + + + + + + \ No newline at end of file diff --git a/pkg_discard/components/Footer.vue b/pkg_discard/components/Footer.vue new file mode 100644 index 0000000..10b839a --- /dev/null +++ b/pkg_discard/components/Footer.vue @@ -0,0 +1,65 @@ + + + + + + + {{ item.name }} + + + + + diff --git a/pkg_discard/components/Home.vue b/pkg_discard/components/Home.vue new file mode 100644 index 0000000..a6063d6 --- /dev/null +++ b/pkg_discard/components/Home.vue @@ -0,0 +1,59 @@ + + + + + + + + + + + diff --git a/pkg_discard/components/Mask.vue b/pkg_discard/components/Mask.vue new file mode 100644 index 0000000..ebcc5b8 --- /dev/null +++ b/pkg_discard/components/Mask.vue @@ -0,0 +1,74 @@ + + + + + + + + + diff --git a/pkg_discard/components/SwitchWindow.vue b/pkg_discard/components/SwitchWindow.vue new file mode 100644 index 0000000..cdf6de5 --- /dev/null +++ b/pkg_discard/components/SwitchWindow.vue @@ -0,0 +1,155 @@ + + + + + + + + + 是否选择切换到 + 微信账号 + 手机用户 + ? + + + 切换 + + + 取消 + + + + + + + diff --git a/pkg_discard/views/launch/index.vue b/pkg_discard/views/launch/index.vue new file mode 100644 index 0000000..d79513f --- /dev/null +++ b/pkg_discard/views/launch/index.vue @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg_join/views/index.vue b/pkg_join/views/index.vue new file mode 100644 index 0000000..a9d735d --- /dev/null +++ b/pkg_join/views/index.vue @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pkg_join/views/shop.vue b/pkg_join/views/shop.vue new file mode 100644 index 0000000..8e6a274 --- /dev/null +++ b/pkg_join/views/shop.vue @@ -0,0 +1,497 @@ + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + 上传图片 + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + 撤销申请 + 提交申请 + + + + + + 入驻申请须知 + + + + + + + 我已仔细阅读并同意 + + + + + + + + + + + \ No newline at end of file diff --git a/pkg_join/views/supplier.vue b/pkg_join/views/supplier.vue new file mode 100644 index 0000000..4c0263b --- /dev/null +++ b/pkg_join/views/supplier.vue @@ -0,0 +1,780 @@ + + + + + + + + + + + + + * + + + + + + + + + + + + 上传图片 + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + * + + + + + + + + 上传图片 + + + + + + + + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + 上传图片 + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + + * + + + + + + + + + + + * + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + 撤销申请 + + 提交申请 + + + + + + + 入驻申请须知 + + + + + + + 我已仔细阅读并同意 + + + + + + + + + + + \ No newline at end of file diff --git a/pkg_orders/views/refund.vue b/pkg_orders/views/refund.vue new file mode 100644 index 0000000..9d402a3 --- /dev/null +++ b/pkg_orders/views/refund.vue @@ -0,0 +1,264 @@ + + + + + + 上传图片 + + + + + 请上传图片 + 最多可上传9张图 + + + + 可再加{{ 9 - pics.length }}张 + + + + + + + + + 退款理由 + + + + + + + + 收货状态 + + + 未收到货 + + 已收到货 + + + + + 处理方式 + + + 不退货,仅退款 + + 退货退款 + + + + + + 申请退款 + + + + + + + \ No newline at end of file diff --git a/pkg_product/components/CountDownUnit.vue b/pkg_product/components/CountDownUnit.vue new file mode 100644 index 0000000..833ed17 --- /dev/null +++ b/pkg_product/components/CountDownUnit.vue @@ -0,0 +1,110 @@ + + + {{ rtipText }} + + {{ day }} + {{ rdayText }} + + + {{ Math.floor(Number(hour) / 10) }} + {{ Number(hour) % 10 }} + + {{ rhourText }} + + {{ Math.floor(Number(minute) / 10) }} + {{ Number(minute) % 10 }} + + {{ rminuteText }} + + {{ Math.floor(Number(second) / 10) }} + {{ Number(second) % 10 }} + + {{ rsecondText }} + + + + diff --git a/pkg_product/views/famousHot.vue b/pkg_product/views/famousHot.vue new file mode 100644 index 0000000..e399cf9 --- /dev/null +++ b/pkg_product/views/famousHot.vue @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + {{ item.storeName }} + + + {{ tag }} + + + + ¥{{ item.price }} + + + + + + + + + + + + + diff --git a/pkg_product/views/famousList.vue b/pkg_product/views/famousList.vue new file mode 100644 index 0000000..831d81b --- /dev/null +++ b/pkg_product/views/famousList.vue @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + {{ item.value }} + + + + 千县名品榜单 + + + + + + {{ item.storeName }} + ¥ + {{ item.price }} + + + + + + + + + diff --git a/pkg_product/views/famousStory.vue b/pkg_product/views/famousStory.vue new file mode 100644 index 0000000..dba90f4 --- /dev/null +++ b/pkg_product/views/famousStory.vue @@ -0,0 +1,60 @@ + + + + + + + + + diff --git a/pkg_product/views/findJoy.vue b/pkg_product/views/findJoy.vue new file mode 100644 index 0000000..9589220 --- /dev/null +++ b/pkg_product/views/findJoy.vue @@ -0,0 +1,13 @@ + + find joy + + + + + \ No newline at end of file diff --git a/pkg_product/views/giftList.vue b/pkg_product/views/giftList.vue new file mode 100644 index 0000000..e9aa55e --- /dev/null +++ b/pkg_product/views/giftList.vue @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + {{ item.label }} + + + + + + + + + + {{ item.storeName }} + ¥{{ item.price }} + + + + + + + + + + + + diff --git a/pkg_product/views/healthList.vue b/pkg_product/views/healthList.vue new file mode 100644 index 0000000..ec2114a --- /dev/null +++ b/pkg_product/views/healthList.vue @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + 暂无内容 + + + + + + + + + + + + + + + + {{ item.label }} + + + + + + + + + + {{ item.content }} + + + {{ item.name }} + + + + + + {{ item.storeName }} + ¥{{ item.price }} + + + + + + + + + + + + diff --git a/pkg_product/views/nativeList.vue b/pkg_product/views/nativeList.vue new file mode 100644 index 0000000..f09ef77 --- /dev/null +++ b/pkg_product/views/nativeList.vue @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + {{ item.cateName }} + + + + + + + 当前城市:{{ cityName }} + + + + + + {{ item.storeName }} + ¥{{ item.price }} + + + + + + + + + + \ No newline at end of file diff --git a/pkg_product/views/nativeList_bak.vue b/pkg_product/views/nativeList_bak.vue new file mode 100644 index 0000000..9cdc9b6 --- /dev/null +++ b/pkg_product/views/nativeList_bak.vue @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + {{ item.cateName }} + + + + + + + 当前城市:{{ cityName }} + + + + + + + + {{ item.storeName }} + ¥{{ item.price }} + + + + + + + + + + + + \ No newline at end of file diff --git a/pkg_product/views/scenicSpot.vue b/pkg_product/views/scenicSpot.vue new file mode 100644 index 0000000..822e11e --- /dev/null +++ b/pkg_product/views/scenicSpot.vue @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + {{item.storeName}} + + ¥{{item.price}} + + + + + + + + + + + diff --git a/pkg_product/views/seckill.vue b/pkg_product/views/seckill.vue new file mode 100644 index 0000000..a9430cc --- /dev/null +++ b/pkg_product/views/seckill.vue @@ -0,0 +1,515 @@ + + + + + + + + + + + + + + + + + + + + + + + + {{ ruleContent }} + + + + + + + + + + 倒计时: + + + + + + + + {{ item.title }} + + ¥{{ item.price }} + 立即抢 + + + + + + + + + + + + + {{ item.time }} + {{ item.state }} + + + + + + + + + + + {{ item.title }} + {{ item.unitName }} + + + + + 秒杀价 + ¥{{ item.price }} + + 即将开始 + + + + 已抢{{ item.sales }}件 + 立即抢购 + + + + + + + + + + + + diff --git a/pkg_product/views/sharpList.vue b/pkg_product/views/sharpList.vue new file mode 100644 index 0000000..49ac2b4 --- /dev/null +++ b/pkg_product/views/sharpList.vue @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + {{ item.storeName }} + ¥{{ item.price }} + + + + + + + + + + + + + + + + 暂无数据 + + + + + + + diff --git a/pkg_user/components/invinbg-image-cropper/invinbg-image-cropper.vue b/pkg_user/components/invinbg-image-cropper/invinbg-image-cropper.vue new file mode 100644 index 0000000..7e2a75e --- /dev/null +++ b/pkg_user/components/invinbg-image-cropper/invinbg-image-cropper.vue @@ -0,0 +1,759 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + + + \ No newline at end of file diff --git a/pkg_user/views/addBankCard.vue b/pkg_user/views/addBankCard.vue new file mode 100644 index 0000000..7f58bdb --- /dev/null +++ b/pkg_user/views/addBankCard.vue @@ -0,0 +1,209 @@ + + + + + + + 持卡人: + + + + + + 卡号: + + + + + + 银行: + + + + {{ banks[index] }} + + + + + + + + 确认添加 + + + + + + + + + \ No newline at end of file diff --git a/pkg_user/views/bankCardList.vue b/pkg_user/views/bankCardList.vue new file mode 100644 index 0000000..2de47fd --- /dev/null +++ b/pkg_user/views/bankCardList.vue @@ -0,0 +1,274 @@ + + + + + + + + + {{ card.bankName }} + 解除绑定 + + + + + + + + + + + + + + + + + + + + + + {{ last4CardNo(card.cardNo) }} + + + {{ card.name }} + + + + + + 添加银行卡 + + + + + + + + + + + + + + diff --git a/pkg_user/views/bindPhone.vue b/pkg_user/views/bindPhone.vue new file mode 100644 index 0000000..9d25d4c --- /dev/null +++ b/pkg_user/views/bindPhone.vue @@ -0,0 +1,222 @@ + + + + + + + + + + + + + {{ text }} + + + + 确认绑定 + + + + + + \ No newline at end of file diff --git a/pkg_user/views/payPassword.vue b/pkg_user/views/payPassword.vue new file mode 100644 index 0000000..9f321cc --- /dev/null +++ b/pkg_user/views/payPassword.vue @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ text }} + + + + + + + + 保存 + + + + + + + \ No newline at end of file diff --git a/pkg_user/views/personalData.vue b/pkg_user/views/personalData.vue new file mode 100644 index 0000000..f73259a --- /dev/null +++ b/pkg_user/views/personalData.vue @@ -0,0 +1,366 @@ + + + + + + + + + + + {{ userInfo.nickname }} + 绑定手机号:{{ userInfo.phone || '未绑定' }} + + + + + + + + + 昵称 + + + + + + + + + + + + ID号 + {{ userInfo.uid }} + + + + + + + + + 手机号 + {{ userInfo.phone || '未绑定' }} + + + + + + + + + 支付密码 + + + + + + + + + + 保存修改 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 退出登录 + + + + + + + \ No newline at end of file diff --git a/pkg_user/views/withdrawal.vue b/pkg_user/views/withdrawal.vue new file mode 100644 index 0000000..ee87cbc --- /dev/null +++ b/pkg_user/views/withdrawal.vue @@ -0,0 +1,467 @@ + + + + 提现到 + + + + + {{ selectedBank.bankName }} + {{ selectedBank.cardNo }}/{{ selectedBank.name }} + + + + + 请选择银行卡 + + + + + 提现金额: + + ¥ + + + + 全部提现 + + + + 可提现金额:{{ commissionCount }} + 手续费: + {{ totalFee }} + + + + + + 提现 + 提现记录 + + + + + + + 请输入支付密码 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/down.png b/static/images/down.png new file mode 100644 index 0000000000000000000000000000000000000000..34412396877b48cf9fe25f178e08cfd0fe59abed GIT binary patch literal 1247 zcmbVMPiWg#7+34gPFu2+c42KUeN%?lLiFd!lIR_kF+bpFSBMeY5*O-vNrEy7Q-%B3XOLd!#E&zGFX3UM9;iKRe}5IAy=4x|kX^ z91VlKrB34_R*i+ZJ9v^P(@4>iQh_g2Gq_@&UUc!q;%G@HmRw?ILJ6I1`-=*bSMfSfmj&lksuBLfrkl>PjE2C@KEOCatwj?LlbYV zQI?BJuI-ELQgp@lt1`#cYBjbNV;y&zg9ssx7dSy+hz8>=*uGk4Y_Gp#LBXExnpNL) zY!FyfHD}&W(S+%C2v)UF*fDH-?L?83adoxIL6+w%D~M}L+w+U~UmCk=d!>ac=8D*J z=3SlCquk#Clia=7QJ_fJ$YZWailWXcjy`W;+s`X0n%uC4X~>Y*MF}MY24X{J5=cah zrlS}m2^!)tFC=0Rb?oehM{p#rpv;H>`7DH4gpwkkfjNnX*{q@{xehjOd%kMxxZ~R- zzT4R07h>g%i&fuoOO7+!>4Nc!<2zo(se()xEdObq&JpRz zK-?Jxve_9XY?BFc$*9Q7x4t4{_B^i)m+HT07mybXy$rfHy>rR^&9C)|??24+4;^wM zS`WCl|BoYUD+ik!d)C>{d%oF7|M=+ra;Vjtp8Y6lhcx_sr^!_CJ>o1vG|@9xpAQghKm8}NKM{b1-?I&)^F;s5pOrKhij zR?a--)!=_K8cs zA6#F%`uyjI8^@M!7t$BH-d>jUXM0;+;MAwl4_;~ZH=ZO`2cC8}Q;jDAA%0`ErSyi6 kuZAB|TJ6N~5Vh|p72%kBf8YJ>e(=l5XGfJQBkwK!1AQErK>z>% literal 0 HcmV?d00001 diff --git a/static/images/enter.png b/static/images/enter.png new file mode 100644 index 0000000000000000000000000000000000000000..8806e8a0b0302cdccfbb61a46922dbf1369dc4e6 GIT binary patch literal 1218 zcmbVMTWAzl7#>^{jb;(W7HwKiM{Nyst~)cE9kQm$&Te+GvkjYt1p1(JIh!4lnKPX^ zaW|pT8e2?!iN#WApV~$OrRu{HsHKI{RxBY1Dn7I-eW|qKiwgQ;E9seJH|<04p~K9a z%Y5JW|L4EV%s{cfy=_k$MN#dAyjCJ(2YGgG-bCIf-g0}%up4KG@gS<;nh`*%*G47; z1=kpXC1}_aZ!f}bii!nJc^D7tZ>Sb>StG)*b=N0sit6sE`-U|NF)-nX;zi)Cwa)JoZO&q2^#SBZcNu>tDtm=~(`G`*s$l6kbv(O?CF zN7MAGQ^WcI$e;iMnN2VjF9<+USV58%MR*N}ydZKsxfMo`R9R8QBxqhVu@=}BwWQ^m zw#X_?S26Zgj;qybY%Rf}V1yG=sZ^vPiVQ(8;e>~cI^%_VTM8Nst-$fIgFFx^8YUXY zX_|PtdIZ=3tf8AIY9hN72$dzD-#siDwqq4U} zCb4_Ap$JI4QQr(4k`!Z1L)N$pJzUVzH2K2Xj;)$fC6SVCkx?YeVoWFrj9C$qjGeN1 zi%$r$lvG+e>+v&kPE`2597%vE2-&VKUdi++$)qf%aE~ejHYXCKo)C_ z1U=F{0cn%tZt)&zu|Eo0Z@GTc{Cj!1C-&m&Ted$>J?!3e`UB~5`|^j>dFHF9vu*QN zuQw{vQsuq5+2Y6g$;E3wHeQjI=3ibKywy1Rs4FuRqqlv&gDuA|cm8tY_;gSH)H{m{ z=eAyH%v`)NHT|@D>O_9w+za}<$%Bu<)W+%AIj3#k^~Oumv19K)0%80MC%*r)i4C7V ziJKiWtiSEb=_4I`{>pF3_5HdbUHs|Vomb};zdp0$&x`xwbGz@g@4DZ=6YZC?zn{5% z(tdCl{8s!DUiwJ7`@`0le&@OEmk!+QXO{AvhlXMg4}lA37rxuLnWyG|9{A>yq{T*m Nl|r_tUFbV9^$)cumbw4{ literal 0 HcmV?d00001 diff --git a/static/images/horn.png b/static/images/horn.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ca022f824cc3e984d7f6ee17be2df3a2251442 GIT binary patch literal 1245 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 YOn2Nd4dd=&|NP`|Rb7=DC1k{Z0PB|L82|tP literal 0 HcmV?d00001 diff --git a/static/images/num_minus_icon.png b/static/images/num_minus_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..827f90e00c582c1c07e37245357cc0ba21cfec02 GIT binary patch literal 1384 zcmV-u1(*7XP)&4i5WNEepeU|B$$!L?NdAmnLF5XobP!cwrGm&6M5!R@ zAW8+6E3oouSvg<>wn>7Eun?0o*a&a~AdwRJzCZ$aZ|>|12y0k|VYKXt@>(GrF!Qm$ zC8Gtxi}3mygsxl@(Ur&O=q2x;cDwEW_mD;Rec3RK1IJTdgZTtNKy>kS1)@t$@xgS8 zzYY`zAl!C67CnUuC zo+co^Uf4(-VSX6nLjs z$ykvB@bQyzPDH;&8#Ef5*ZC|-Net=t&8amozkPn#j)Q0nz~}yij7W7h>20!zp1nWg zokW$|krZM8N$!iEZ#9}l&)Mkn-F`2Q6P%EO4OOQ$-$wdjJ2r;H zQ9v8>`=i75F@?taHKMrHd^)$8#Wjfy-Ci%LM$agjGDy&BHX2#`Jn4Oj3)57bPbukr z_R3{cDwQWCFzfK~c#J#C3blyeQd0lxwHj1a&D!Hh@4K!Gb1;bQpfCU_Tx!)l=z8%Y zW)*VFvN0ImLG*mpS^%K)AR%*{D~c>zk31WjQbhp_f^LB9&S&uIc8s6GML1 znk#kZw)ys(%|&S8{^u|KOcnjwopxik3;^)?%hXLSLy`jU@z&@N=sS6M*Hnm^|Gk$H z*K1PHt0>rrSg9JK|AXQ9K1MuEBX-k`-WnGGy%F|oQw^|8T=Rh}(K?Y%np9!iyreo4 zR~kmL)7?+zc0QdJ0I7mTRUyW_jZ1PMNhM^Z3YwiSDFsows8`V1vbvxv{h_cWKUdTX zfS@u%2OvM$*(R5oZmV!lE8$?StuiYG`Mpz(tw;*Ciz_1fF)$QDvmt%a$7$-$Iu2>_ z_WIJP4iaX`eV!k-gTZ0AmNa*99jTH8x4Pe%&YXp;)o}^Yra4Fkt(5941>nbpU@8;0 z*8>pMN0Wqb-ZX~^;sNAsuSdw{2OQ)}A{yMSmEDQWBux;`r%TI%1CC`N0`Ihsvc8$d zmu1@+jgloLOLcR0uMtxW!dE9;MK<9Zx1yk0sjRJk8Vvcyv7Zml<{nBoe$bFF0wIyw zc5xYbr|5ra!N|ZbC~k@wxj$xgT!@d4(t~JU@iw}O<2*y}+^72AL%292!dX%p(V=1+ zdRdSAN`faf=nh*4Lac4sX#*0hwoJ5`NyzfpK&hJUVrK;dE&s2WV{)Hv5Xp=CHI$_2Eg=pN zgVGTMMiBZLLYF*%lGv7w(Zf1j=jvg}4=h=j74DZnzW1Je-VYHTU|E*cb|=~!jj+qi z2kJ;h8-$n9^Cbv9c_yOsfYCK8!QY)uNBytNqIEZ0mbL2z+8Zz*0tksNzRp2(W@rjb zxA=CTFaY7UA82ox`DC37m+c{<6I}~_FDjMX08)e>18C0@qG=jT!+>EJ>J@2(idIq2 zlVAc4SUr252iNlu1i>OKJt8_S0wfmzr7k}GmFRSIwO*;9x>bdt8=~8V1j5Yld=Ji@ z1Aj8f?qysWI{%nQtybQ8WmzvVp?7Jn3wP_a?S$KfC|~enk;-U%n@B18Ne>l%z2E6v z-go}J0IsgBp8)zJeZcm14OO#Rmga@~9oNC_?Re%LAMJnF`E#l5EPF9ayl6bejU5nao1!~&E^~l^J0Enyfe0mpq8&R89v-Rl2CyK)X`h&q#okH*Q zIvp!A06u)QPKfB2_<&|}^E$suQW8T31AA%>%)h?a>m)%m0id`)AuCp$GTugF!cM&g z)6~_)uIpns8bj1#oi*c~M3p+R6cPYw?u(yqH(Tr6rS>!$+o+mhM2?r^da&)=wa@Gg z`bnJNloS+z$Z&=GYVFkPrGnJ+uf%S$vmZ2Y;0^oWs zMx#g#nJ@PDItLUP@8_7}cB{PG+!O$D0=@oJibjQ>Q95Oipw((NOL1Q|Zwi2%EpcI* zit`brz0X#)idwDqMFSX*$GCGGMWc8lO6z}PX9v0-`tCAolM?WKANFtfcZd{YMn?YO{%c6 zYm)$^IulnKMY5x(pUer8C!J0UfJ{N7>yVtN%-WO+Ne(1lNLHqxdGaNtAj%f?8rmi5 zg3T2518~%mpDXGGKv;k%ed6dwpF-qRIoeOR+*K8{QaaFTd@>eALm5$eP}3z zR#W<-kJHqhbsW;MRAI;zBr;N!sfni29>RLO5^RqZIJ~^0wDwWb*?KQj&-VcMr<$)M1h)2dOoCe9;XNKx#De19S3=a z-nnm8-$VE~Cc<%A8u6uK8)nr^`bvT)Gw6<52STjtxLE^D#KC=LoTdjDt86VdfRr>M zAk#_Cs!Q^`m-N8Yahiwg_r`%dm&tELt^5Fo9N;kSZ0FrOWjJ4uhBIBmS)Qr8PjqSM*~w) z(F{Q|k;YpWASJ;I3b^tzIpt){v|NogXba78R7kOs#9LlaMosa8ii*6m{@>o;=lRar z=R14vv-f__Ip2QPI_p~t_I@wV``^#=yzl#5j1DE|+)lulir)xe6JT(}?+u{(_d2i& z_!F=~f6YvPJC3XqX5^gvIIs^e4%jVR_`IejP}~RH4lFUVNAl{ZsCL^91kO2)Szoyp zy?f!eDT-kc{rn$rhX5g9w4=0W8xT0>B+8Ejjsf=exaf_#z7x0xxWUZUHhQ=f{=cO` z5PtRg+O_b9hdR9#_!egj0>F(SAnq_T7w07(&$J{6oO1(#3BWf2>HBu4mB4J^$7c3U zt4*e*K;WE{<$fYC4Uje8X{6o89AJ@|Y4_0*)Dj?Y&TRoq0Zs)z)DoP@cMvZEmjRcU z*-QC$)wp%9AaKqN08RnE3vAYSxE=SzE5Nsb`DV7k*X+E3z&W=oa8ltMw^oYQIEe*)VUImtHb>nUxA z&1`8=<1PdQ;eLNAFbmN3ucW>?@HTK}XgKD6zK}ZzoO7G&^b9z#T=~QtxEVOg%+@4+ zGr;y=NP)IKWp@KrO@{X{O58wi|pN9cqMcz-Sb3nU>>r=noto81kJ2*TBF1LZrtU`0|YWw&l zGrK8mGpQwkb53qww*VWZ?Yw+1GY+hir*+!b*JH!}`)NJH{^9&2XL zC7n-V5QLXOw*mVl?W}x0cMjaDJDQ|Ut!Y4T9&m2%(3&G%wu;;4m&APC*UWe3O}XfJx>b-4RZxN`}tekT3c zH~AoZ?Bj6AmtmV>@V@t@Z>!ih?=iDI8g&^51QID%G-{|N|Npv0@ZZ0JcQT6n8nGRm z_zn0gr9EgH`kI+ZmDi;{LExO*5_kyMs%@s+JG9J4u5V zfbIK=kZuG5e`f;D!Mp2W!v@&k`u0)!K*Y)Qy?4Q!?_~#o?v{4i1_``Bo{Vcq^2Bg=!#CaXh zYw7FB@@B81#~y~WBmTYFnS6RrnDQ+cSmimt>~2`HxIUY;_!|#~&4$3pQ80Q(`0&tX zM-%sbZ52nEnZn*`s4ox{D+ToBFJA^fyB?l>2Hsj1NP$N5(T~Bbd9_dJ%RJ{y5E!ze zjW-Td!M+CsUv?!ez8S7kjA;xSEHG>i`|J+~9|}>DEJia4AE_%1B0=Cq3Ow{6%=s?7 znlJ)u^DW@=YvBD6x7klW2{I1#_Z=Oir6h^(jRpq`cHluUAYym$^Pj-K%eguMsogz4 z1IL{Vl4$u-U1?Ac1jR}Lef1Zd4Ua09Lkc=?HjLRh`o*Lh^v$& zV{76h*lS$0s7~2ztk-0`UUpGn%r-;gC&FQ0X{Lp^@7A0fM1erwLZ6GnVB3+=HbN84*Sz}rT6o|-xaB5TnL&=r9Y(|V<*=PQ{o2evUsn=1 z=X5CaY@w0EGT5e{78q~Mk_;`0RskYUL(6S|mtKOkuYv4=ENIKEVcw!5RGRkNBh2ji z?qTddvDUcE|z*g;G7!^6rVGv1VOMg#ezV`ucOWEF?C%D zg5p(yMo@yl2ME+>k4mTnfpQ6bv2Zb2g1{FDeraZh_DF)zjr=cO5=oXI@C5>$Y;7&~ z^e#!@%^oP#!Fz(YSeu}`-(AgYc{d3B*aIa9e1o9NF6ahXrPA)1b*`kwX-Dn;HGf&aj^3)fgi)OtKgai z=`O?kfncgY;5WvwT|uDRzDZvXd;}|0>v8ot3B8*Ads`i z(Z|BL{cHUf6@GUAGMN8Ekndp{@&|&I0)et#`O8Aq4j_;UICgSi1V+UXF8>|;Xg)kA zR;DC>Ab3t7kPrF?QVzZO*RlkGtaQcv>C2RO&Vn}C1ip3>?7eR-02C(o=SN}YIq=$R z&GqIF1g{7L8F4Em53&NmM~1_v_6Pz#b!elg(Z;=3yz>tVsnNc}ySys%?NC6>x64T|hm&_ya+g zP0;?k1A$=L*+Kk&B`L4L?YF^o3*oJp8A~Jqv<>{b{p#!jmcqhI;FZWw|MVik9|*d3 z2kn1OFk}ljc`A%mlC>&Yzdo=J6gAvPH3$I5p8|XAU0($(ycC{qVi(YQlA!CHpfgSk z6*hjxzrgSjwFx97!teM^kgK5HK3*zd!Xy~?*;)X|2weFP%=u39yMWdMLDz|4=iD6# z2>OzhSExFZh*ZOEp^Z?j8YBUZoCy0J7_kf30QcP+90k89hwPllpE~HeJLs%i#GxO7 zub%;;> z5Po`HkPPdH32?v{B2>TzcvvbxDReS60;9m-4+PUY*RyErZQz7c;S*zPRf7(Z{%1)b z`u7}H=OAb)Ty=T=5}+Fp{y@;>S+pb2WQK?)^kh~ihEYS1L{NIWda6P1MBN2Q1za*a zUmKu$y#7EiMj%jTMV+s9rnj+-MdckFwSBEbs9p%!3@iQ+*Z|Gm1tk40{D45-#)JAt z+<_#*F(*c=hVI1@0JICZc2Pd(0F6N52Lvn4Y{&i+fut04Q>Vj6cZgn~*=N=VpHr z*l6+n+628Kkord~qOz20`&g+ObP%-Sk1%&uws!$>7vC=kdc`983qZ-!FpOFV-8kxU zX!kup38+*LLEFVV4}#(V!jC%W6_qTtpgU2ewl9{727zX$J;;gLdAvD9e z;z1xMh^>0^6KL$tIX{ufK0wgSV&(O2@gV4(sU!q}AG@FgK>(}bK@gdm8IJC>jJun%Pe) zjlL*Jpkh2qcfV;N)?o>PB0-=)$)RTUdY>Q&r9p8ukW?>V#ZgBF!I;jhh1hk(gJpf{Xz#q1Pb zcpesA3d;Vad;b1FN~oa%+)9F>a=-adWL4D4uKJV&AqZ3>{sBO)>G{&DFT*`|!7p!w z7oN+vFQ2X30N8FM9Q4J&!%69I@*&k7-o?!N%+}Em1R)SqOtFa)rU_>#PoF0q3nGA2 zdRE|QYw2JxXdtNS`q1G)U1#b4s3PA9S=He2FPNEPP5Y!+AP9lr$MdMs49fqn$AOwV zf_e`o0f91{DVM>}lJ70g0qIhyfu1U;eT_Ia2tsMFKX7Zyv!EQ{er6^Ip;(j%1R)TL zJ4uW+h4P^)4%9svY+4<3H{hHb2>jM-KIC%U>v3Qyu$P%7+G8h{1fet-1^iK&{>t@e z84kP*j5V{w<>ym@AOylc0>3EaZlPuP+_D4Fmw%|4{VL4}Q-dG`f^IyN@&t}Sjlgw;EGc7g^f)EJB+%GgU)6RUi;k`hdX=eh0 z5D1q6r^M;Bd?phPB;E>Uwngk~_|CZtfip6hV%bPv9GGinQ?p`GW|E+LK+d_-0f8a& zwzHaa8@HnvLIsk}%W@96ER=KZ2;j%%_A$$)>MChF-pp>ywADPnR_ENozzyYrQYK5L zva4T?b1j^vw_GGag=*M2JWv{)W^m;@T^x7}IK<3WRXF1(Z9&dQWkE^ zZlo;%f(of1*R=`2bfs9!ZkjFAlEnRNZJEtXxr17QS_%XeU{LLa@xTl~wnMv!iB%NQ4C>kB#~z82|tP07*qo IM6N<$g5p{>_y7O^ literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitdelivery-icon.png b/static/images/orderdetail-waitdelivery-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec92b399ddd59e20450d3133e582aca9fd3d033a GIT binary patch literal 3598 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 UfaTfo7ytkO07*qoM6N<$g8q)EssI20 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitpay-icon.png b/static/images/orderdetail-waitpay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9c3441bbdc52b6086a3d5b1b7ed13a71cbf44 GIT binary patch literal 5159 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 V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 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 Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 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
P)_)^0ds+ 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 YOn2Nd4dd=&|NP`|Rb7=DC1k{Z0PB|L82|tP literal 0 HcmV?d00001 diff --git a/static/images/num_minus_icon.png b/static/images/num_minus_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..827f90e00c582c1c07e37245357cc0ba21cfec02 GIT binary patch literal 1384 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 IM6N<$g5p{>_y7O^ literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitdelivery-icon.png b/static/images/orderdetail-waitdelivery-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec92b399ddd59e20450d3133e582aca9fd3d033a GIT binary patch literal 3598 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 UfaTfo7ytkO07*qoM6N<$g8q)EssI20 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitpay-icon.png b/static/images/orderdetail-waitpay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9c3441bbdc52b6086a3d5b1b7ed13a71cbf44 GIT binary patch literal 5159 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 V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 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 Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 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
=pN 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 IM6N<$g5p{>_y7O^ literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitdelivery-icon.png b/static/images/orderdetail-waitdelivery-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec92b399ddd59e20450d3133e582aca9fd3d033a GIT binary patch literal 3598 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 UfaTfo7ytkO07*qoM6N<$g8q)EssI20 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitpay-icon.png b/static/images/orderdetail-waitpay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9c3441bbdc52b6086a3d5b1b7ed13a71cbf44 GIT binary patch literal 5159 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 V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 zcmV-856AF{P))dnCx#xR--#PbN zGiNfHyZ73Aul4`deyz2((WK;@+Xfg?_S*>P4Xj?}w;ZVaEdv$<3xVhLubJuJrXy>H z5jp3!0(Jww4ea14KB=Jz6i)$jfrrfO#iSZai*Lh$z&WQr>noSiTNU3wErC^O=S|>Y z0YboNL~GG7AaKsfl#c<91$N0$>Ghg^1o$m5%gjEmS2z!U&ov0VuU=of6hF$F)AJxV zKYb7Y?(hKdu$ehOm9i+4OAt8cRsoI%&IUB!H##i>rUJK^*=KnhOs+uSoYTtvMBq$7 ztNCUl?KUn4W|*0FAGx4hfWSGo4ln^Y4Oll9l1a7`?*dl?)6ML?WSgqbJyQ@k=ehx> z0v7>m*6(i9l~@X#2V84rUuHGB%s}9r8wUK!+t+6`{=BrSbBA$e_H-5s48O#FNyaS%A?*4F76uuq}+z!JC*ILgf44_q@qg+xK%oYV2{?+WuD zKqDQCYI^vAndyEa5lRdM&biS#Ap?3O((|sx^mAaWnaQHYPKkiPIX4ct0Z4>@>{4h9 zhFTk(U}oA@$4ap)$vLOPkDtcc%Ys?C1SXl8j-F$qSV7>N)7L*fw%!$tYDwTSGt=c- zEEF3EoO4%t=l`*EtYA`C0#}*Y8FfqfC=d$>oO9;@m-uL}C=#y(&NVZgy+oqOAaKqd z>1_ieb)={qS_0ZN+#0%e)YZFlZa?oBxY!0p(L%Jk+CCm?X7_|;6WS6u=j8VFXP{Tu z#*2EfNnnLMt;60ogaUzcZhheIK$c#N4{iIS)*U%%(>3&g}?1>4#xa zCN~oJ0vPURTBr*G&n;Z*0IdfKYAgvnZf4)C*JVE-kV(0&9;4##xs||iW~QmUCUpt| z=iGY03qar84zcK1Jqf%6Y}#3bbUhFhX9D#^+!%lViJ3{4RjDQjye;8>0C@`+)YuZx zR&lVIDeSESbq0dM3N*IjD|=tl8dL>AVFj8?``&13T7z03NY@H1c^jVp2Yjxp@to4S z>%q_+pj$(SPgcEG=m3J$t-vSCVe;wl?h#>^e`=!k8tQOvPz?m~78;pa&*nb@S2T!^>U#a) z+D^}1QWIN*hUS>rcWYV#=bR3OUQac0xBx)}eTJ&4#914e+1stP+gSqVoc!3Y2*o;V zr2+(DB^RaML^D&INDEbhK>h;TMd2Q}ZUKV8B8#CyyNjhZ5IEs*-!52EtVj&^*|#|2bWy~Z@&dAKJh2+HP?cE{b7|{=Ia_}X3w;O zApNajs|Xv(5|}r820h;H*%Nl%1NJ=#25syQJn58bSr@c|Ae;3-qgjHeirI8?IPGlM zAUC;o!1U*-U z$>*2AkUhyQeI0=yn?s^TToc5hG_5Q4*$<8$2R(AJSR5u0Xs>u@9ODbcqpMj032Ea^ z;EZ$fvNkwGAjme~P&0u*UPmokL4z;8fX{2Zbkn^@X@U5yT|<30F;|)>5M&!;*eoEB zncrq8j6NEA_lBqc26x;F@|>zhI}e95r^Kw!Q0%T32-0;TsqAO7fIwE@z)>*9i`iZL z8eIM}cwNsPRiR$JVCvN{U|=ZC#aL;MKrkQJIYy?zSTz#}4nDkO2}Dx<Pr6C!P*F4bMsiO9g^#BR;x1 z2&DRv`@`7dL2HEcX=Pyv;u5;Hh(UJ;t!?*PA1?YitgVM)Q>PXX6l;Pwp1>N2>1Lpj(eTj_* z!KKq-mDHz%mfb;dPLL)DWEJkc3vT{($5t=A47M5)M{k1gXgMb+P7H&HtX5fB0$mXw zS0{C#KycUXFze=yoQ@d}`?fd$r%5d*hQ-}MTq4(YZ|E?Pb7?JFz8s!e03TL)4mq2H zqn5ja;ubM35JcsZ4G3ly{sd7K7iax!KyYs1Srn%dqw>lI1TCILTLTND_CIv}W;rno zEr7C$*??e(K%h)a%8_4q8^@u@C_K^!fxL}-7I6nrloog0^g*!5%(gBfkm6Qk6n^Q0 zpj`w~5sMf_d2!WE9|Y}U5wiV1X+QgeWnr*1lg<$3J_!kf~q--HUnOa`iOSmxx^0$25t!JtXrM6yyISY zE}Oi_-MhnvgJ9JfE}C*4QC5?3r;^SDG~pZ=J|eIPLsXD!%VuV#r}H}GF??*x7#IQkgn4yIfKefw4C_3Tq{!*tNiVLejp!Npg=8f(@o z8OPt}n%VBHj4G2^rvK>GQwv~f&6ioAPain-EZAYE+Jpb`Bv_Qe$+yzqPrC+mg&@bZiBh4<)%zMOkz zgMvCm12zEp;8g>`vSpc?n)q zCLnFT`@+ZrU~MnR#JZJ0Gz$Z~;IV7l6?6uIbl*FuHc(lBn}1XC#S23EsxH1V z*=U{*-iPVa;JIgm^bB^{9mbyutF0caUi_uUnAvURY^zyLObzLjQzs;UmY0WU^*mMFo6f-b;7TkOHSL=gXW6%!bkkO?mqiWMxx|pc? zB3iA7urzV$@r%{c?PHbJUVNc62S2@_`hHtN-v1C7v1d8}XzikaF#pk#=WsQUYLU0~ zHYEUTJ2ZLgR9{g_!8)+o+lZaLi>OBtCe-JhQi*>pgn5509SnW)3G^RO3gR5G2dv&Z zrA}07MvKMy^Wd?0@aF5KX-Qd2Wtq0yvGo6Z&{bxpQ{fKO83>d|Ma%OZ`4~gdiwF|X zwrh}?Ddf;U2)wmHw(jT=MqN~GCxMw}rd?lEs`p^FlJLHiY5syjn^7g8Bp%#Yam7H_RaHd=anI_#U zbnZ(6a<0%c(Dn*yURO$m@doz1A z=$J!+zyrbo!0h5~A*jd`DX%a8U^Dwu81A7#-~r(%;3h!f?FD5c0VPR1s?u91NLM0( zzyrc5z%@Y{Ey~6!fs@Sa`Y0SDgTMnqK0J}4NTM<8*1Z?-GptxZ-~r)kAoFKD{0zED z$^_mD#n-M?jjvP}1foBzp>7l+>6F2{rT}TxK9uO3kd!ZNIR0Ots zr4c1P(AN4AGxHgRTOUz=N~8{gvgtwZyy%p1Pd^=P@-hzsD9NIr>I%QXnfNAH|dOyo!p z5C;NUN92t(zu)62{=RxKfO+YB!+@Xy5ITxhiqpM;?*Q9mC{Ug0-|q$GJY;4{4%JZ9 zkRYg(uyanKajk&R+YK87oxD&PT1QI(xpXTWPmx&n*UJ78x`hlXHU$W($;~+@YoQ&6 z0HL4K?7pn{k!Cdwa!T%yWCjA{LRf(!qze`VattIuG9eitBCfEY9O6Tv zKCTKVg0NUY8y8Va6>vpG7UZj=^9o0{jJ`s3f89&b3(dyCL)P52)CT2qTa%I1Wh@Yak3)21_7(fKnU}g+gN4 z-sE=33xipcst`pW5kY~V6jqYN1`J83RHJMR#>+>i7E2Q$1TTT&6)FzlMN=~YuaI#F z;T}PhAT=M7EBwq1-Pv3^1R0jpUQ>@aiBnnL#StnMLsU!+nsWim(2CYRx zpp=MDyAq6rXiMY`|DPlU@wTO$bfSW`nnA=;=wrAd`-Nv-u*t3=^$+!66ww*gQff46qe`w#JDO4nAA6g zbuD?))9zjSqi@y2#`1!qWxRz6ut={pDsu1mvTxv+O?7wh!f^`?*J*U)nR{Vsizwrf z$sIRLh831x>&i@hl&|M(tg{M_&$I0}XBBZ`E4QEj-O1x54!`fF{2z zSkiGgEZ_RW!}bqS-TJ3TzB6yT4Qm#|D^8pBNL!pQ?BnUXf=REBq(+|5?~$E#10(Sd zA|0nlJq!?b>5(^|7P-Rx_OIJ~SvA|Endc}@vjZiQ2_ww)BTA3F8jJCd?yf=HmpiX4 z$=lMb9w(MPaa;QM_Dkjuquie_1qkK*EykX^cqjcM&V@AuPu2b{dn~-;*30PioIf%D zB5ym~m#7bX)RDhc^rIv0>&b>|IhK#Z_4TUC=rjMYbFS%#62^b~Dv3mzx??kz^si~r z#U{@gYJBvkNMlJZTvD|7hdYIXv4?mMt-%O=;|FKV>uj%|>MOjU>Nt4e*^qH5d=vGpQvtMxI1Fbx&sDEa6vLz?RWN|FxO8f9wTiIi~!vk3F z$m~~@Ro;saw>}Ei3hN#{{nl;wNs~Sa#mviUd3$Tf9!{@SROWJ7{zWtt%(YpIhGn5ij~FTZ(KeM?(^S@#TdxhX9!T<-t6C`}WZX8V?8+wXSx3|5F#63SYKKQ_S^rab)y(b4G{U@!xtr15n|aCb Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 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
! z#XUhXN$d;E0oE^7s`z(r8dwGl5RrwI=2#U32?&P+52SXsP-#ut_w)AUA1NYL-I-H0 z1PKTy1GfX_-X0~42G#;6H?)A+1Y4V)z+x3nh3Rzr}0kk0u+ zYiia$-Yt19P>vd$K#+iNJutMKOye_7G*IzU(Ag5PrQ)mVL|}xID#k=w(!ez$GTfDl zob?3t1ya@X0E5AK+O8^H!|9k0p*fOHc3Fp18cJ2|+V4B#^3i2eVL_%&5E18=IH^F8 z%n|G!+_kdEL=@)sX>r{@a<$nX}f9)7vITg;7#BN5pfhgy}4FXg&+aJ zJesBf$HqpjSOaFmaY|EGxgwC$FbU`rLIHvET$F77+#j+W!68V7h|Yjb94|DVxsVF+l(#j$ z?W#@@5xb!_sAK|yyk5af*G>gST8Oovnn@>f>+UDml37G7c2FiHQxN3AV0SOrjZzl_ zHg~9XvAZY71Jgys(bXvKRFX*u@?fy?*?o7X0LKB{+*LjGls*N_zkIqG=2{Hl)N`yd zgG@t^U#G+;@}LBWBLJI6WKC>*pOG~D%u+spSt)$YK+psT+lscxt3Lz|1e`hVRnaiE zr~i23l=GB`)SP2wO+wJLp;Xme0hToRnIGTcq|q&G&w^U~%FBW6|0%yL UfaTfo7ytkO07*qoM6N<$g8q)EssI20 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitpay-icon.png b/static/images/orderdetail-waitpay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9c3441bbdc52b6086a3d5b1b7ed13a71cbf44 GIT binary patch literal 5159 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 V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 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 Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 zcmchZ=|7Z<1I3@`nVD!TT^eg)QrVjU2p6DRca^p=;GOG-*+W@es0f3B^q z?c(C1tE;=Vwq|5xw7I#-rxukW{S z-^Rzs+uGV{YHBhwGuKkf!~V>7D9Fb09I%02(-|M6O{++Xgxf4Nrv}O9x~;I^b-cWl z6X$sPX<6}|o5$_md<3fz=`u5?;3?ZY-6_i=^dRQ$EpIaK9{Y+a-!FY;Ip!##I=u6rIIY*a+l(k?c{$uoNVmQywoI=u~r1D~s-VZ+#Y~ zB&P_}?G?uL2&Z32f7hoCJHZ0Fhv95dmgR2O66Di!&~QZUmFkvw$W5~2%4~#fySepf zrF_EVZkmB>aODZ=v&E~+JLszlwihdo^bh;){{9P+KAGOS<0l!dhMo5W%@hTQdSt?f zF6e=!_`RT7xG)8EDEoiVn>v7(^t!aY0Dgb#1jajueEr(4)3lj%!3bs~ZtkK|u{(+2 zYoOJEK=&_||8u5+mg}V7;5$Wj3kdpqu%N6gm_4KNPftO5!YOb|3Z}<2u6h9G3G2K9 zLhgFJ#f{?y1ya(Boe}`0uS%3p$tMBz)+ z$*dhsC4lHuZ|?vY2vg&rTn32h)mdXs;S;;a+#KfofaZk880DfZw1?g$-ssZAe3Y7K5svliQDo z1W2Fk#aGDritY0!m8U5nDO_Hm7PhaX;C|`BG@g*e=!d+&$gDKIDp&%zTXE`)EqEjI zbxJAyP+v|Kus;pikD|t0SM@Eo8*hSjhZb<~`XN=vSsHhK7o719b;cYjC!%CddwdAU?S8#^P0J;G+iWA z99nW8n-BPeRO-S(Iqru|P?9RZc;1GcIA4x-QxzA^7-hb9YRQWB&zwBOC*_4l^i74O zjzP}XajYVbM#JAP1ioA}QUDn4_8h5Ky(6X=!lNq?^;pagIj-gyz)@Q`^s}K^$eQ;# zyabplLz7wa7eywXTR4qrBq_rxjlyp)uO}vD>%81DRJ@OVnQtl1p1b4X)}y+ z1QIia{CxXJMn8yakzlO03pNiEPG-e_dUH1wA{6TJC#GGe)CGU=cT%F}MAu2^}oz@pl zNDh>}hgk`2mtj9bGyXN}FACe$%Y)iSpO&0_;TRl5F7-f8k&kOhr?Xbj*s)2BOeOD_ zGDoXWN`>t>uf8`g()Z$3&)@#who{9>A3~cyvI^{?v=~o9NLF3EwZb;eA-@pRz4zvZ ztu^=uzA2C)!g)b_z5Tvh@XPQ1;Bnb4Y0aqbyB^ldbgO8t9vuFT{&MLHF_jj01~ds! z2oc+H1X8*295*z7*@QLSV4y{GzfzHlRXOJRrKM*-&`*97Or@2I;b>&d>Paz{-Z_|t zE!t9A*Aep`8fvY}0I-dGqupwElcd1g4)7DYl9L(e5)&j;Ular-iCoCEx4(f6=-_$w z6$d8j?EklTDqt{ju`B;>3_@dQV2*Yt3X$dj_?3@6Psgl?8Be?ofL83oJ^PSe4E~Bh z2lOz?9@^cEQYTiKvu0FTmt(DNr$ALp*;l?ILJn{y1nbGVXI&}I1bic$_k9DQX$Cr+ z4p{aWJ(qiXAD+teKOt4RX7Lf(J0ym+CsILeZ*>vX{v+75Q1xR5<}t5d>{^}bmzpqm zAt1ls4&B;|@e%JGhI6}8!*lxWRe2RRCd9D;n{;Io0AlyNf2v}i?+DlTl=MAbs&EAx zaLHlH^kx$4urM-Ln7s+bz~iiY5sp-Pm!ZBZ9_5*qEbWUxC5{G`yZ7MGCJlg6!>AbU zAy!5WE3jCrpK4A2Yw0(IGwO18va33m4^17INuDU0=oAOEGhu^nodc}^w&1q1{3U(< zYg-V}!DJ`_xejjp0u(ex_)VICi?OBS40(t+@D#f2WoI=-i6%K5g@dl_spAY@J+cek zXPuMQqS2zfe+F_L^J$Sg9~XkaRRd*X6WIMutWdd=0_j}ljigNvGDO_=nC@<}`0VYH z<1)+@Cut{nOpPxI$ydXQIW9+7FSl-n#Ge9Zkv>L#;pafl#ISH50=z0g61mBMlE%x= zw94{%kbsWM2xcR&o}w~-C8k>y4!$$IKu9!h1H46BP(#uzX>+u?&tYilJOznXGRsR-O8}~OVJvaH#VnT zxD)|0R5-#%O~%7+LCAVqa;RMSt;X{{$N~zWTuv-aQ3%OD2b@`u%-=@Wh)zK8*JH-V zHqq);wm_5y{;}SWdY<(#p~AQspyI4wlqRsyM_JRjL8N(;Bm--nJz1U*Ik;tUI78S) zq{QKXYj&4cUCnh)LOoUD9zPNN^ELCu^fAF0YYfwjq0=7f3aa>YBDVt9+w_%)PvSIB zW!G$Tu_pTrdr?%(UT_+&{u8boybzcKMWM`g>%=a6U1T^Dgf;?Mtxp4qKDY_rd_v zb8B(w+ja*3XWekH?k3Eyh=^phzfqPiz#2Lp5Y%NUR$&jm>Uwiib^_o@$nbKAJ&P4+EY$cqfp$FJW%;Cp^J*SW9zzOU
GxgwC$FbU`rLIHvET$F77+#j+W!68V7h|Yjb94|DVxsVF+l(#j$ z?W#@@5xb!_sAK|yyk5af*G>gST8Oovnn@>f>+UDml37G7c2FiHQxN3AV0SOrjZzl_ zHg~9XvAZY71Jgys(bXvKRFX*u@?fy?*?o7X0LKB{+*LjGls*N_zkIqG=2{Hl)N`yd zgG@t^U#G+;@}LBWBLJI6WKC>*pOG~D%u+spSt)$YK+psT+lscxt3Lz|1e`hVRnaiE zr~i23l=GB`)SP2wO+wJLp;Xme0hToRnIGTcq|q&G&w^U~%FBW6|0%yL UfaTfo7ytkO07*qoM6N<$g8q)EssI20 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitpay-icon.png b/static/images/orderdetail-waitpay-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72a9c3441bbdc52b6086a3d5b1b7ed13a71cbf44 GIT binary patch literal 5159 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 V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 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 Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 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 literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 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
;Jnj8N4aK6U$8QlMbiF%|GVTZ zDC${JMeA;m{GH@aDqChvGpid57k5{(zi@O#*o+^O%v76vvdup^?uxFAm$mN~H#X;1 zR?o^XI&l=pG<@yk;CB*|j3-->55do-B)^_cVt1F_LD@SxbE^bQ5>g<@w+{fF#g$vwc^#f2jbuU8-@~LVr0cGR z2WF-(trUgt^9(s6i-=aXIpim{4%>G+2WCfbYRNJQp2s**sGXs8oOKZwv zJ%&gL-1opBBFS$a;`kieHNJQz}^$^Q3)C3WP}xnTyYXcNH;J zhs1Q*{A)$Nz^5FAM;{7aQgpC_P3mPn31pLh3_3luLplbYbc(N2KzL+bd<0R$ZUzLZ zaHd)Ym8i;gIMLwUS6&K4u!>NI?f6O(kpxg8heT;DNwh0x;Hf7-PMS_q5U3PCed+Z` zd%sQtQc_iVPBH(|)N3=8^{(s)f4DaY3VG$_pfXxq$tUR_N_W?mv-P&1yhA^Bfbi^8 zv{Bo@{98~PtyW?Xs1fI!t}XSSrKw=ed+vg}rw2(I8*d8x4+(UDMpxuX63n<09(^#d z`pH|UAdj_m-L4X?B1nrbX>iva@ZLMH+g?HRkPJ%oNLz%i(-UC-{6yeyP~R$7BTy)8 zyicDX3R!MpIjRH%`4)U#@mD?0UCc}YLW!s;5LAHR*OHiM*yTeFI1p(WYD&J{>1FGD8NNu!G6Yp1t zoHz4gNJmfr|KwKQE#FCn11Ff-)OK2GOA>^D;LpF%&g^>ryRm+OBrHe;1eL8}5>S)T zkz@$vGc9tU>7!t3N5n=0cFz3>Xpm{y;&jW`YB_L)nT<+|EvZR@(AJ>T9)ThCw$qw) zH*QBcgi0j6GR--7St#e+5a6cr_?YHWA&1CNGfO>5(F+JFI)bV%-C7!yQUQXhTzxl* zTey|pyn&zsgiR_2B`?vFtxUKZz9ZlDK4#{vzOGjgRDht2rt5%Q%5`?bMGp^IF&u~1 zW(=i0C+{E#DU3%0Kk=H-k~VkpYfp(HBg|}C7DLDk1m*UScsad`|Jspc3W5p{lwPB% zQOa)elh~4&--UYc)5_6$oS8+GJM}Z(%s~*^9tHujGVbbUYTc^Udx2xktP=H_?bvez zK?n>7026_=vYmP%dQ*K{8GnAA=V)>VL1l~3rN~ko&rr@>o(##TZ!Ny8s?*G@g`~%H zM_C9EgrtH(*A55HQi-*6r&@^CB<{!S$ZTc_6BYfByHFqqfk83lLxItNbcgOvs(P(r z2sfKqO1F2X$C5&VAOr@DPd8K@3LFG@$=FPfomDNV$gwI?-mJh})e!d7PutBF8U*3l zIp>rUxkm*M`vB4-ibmSs@2D*N^tc?rq71&GE_EwRijW+ z&V6QXwg-+=lSmVl_vq?{{sf} V`;S0V5DfqT002ovPDHLkV1l*Uy+;55 literal 0 HcmV?d00001 diff --git a/static/images/orderdetail-waitreceive.png b/static/images/orderdetail-waitreceive.png new file mode 100644 index 0000000000000000000000000000000000000000..71612bb5ca14f542db364057dff103fa20a39096 GIT binary patch literal 3896 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 Omk$sI3oh_t|NI|U!e2Q6 literal 0 HcmV?d00001 diff --git a/static/images/start.png b/static/images/start.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fd8f15d4d3a2c8c7b078c9ec6aa338407cb6c4 GIT binary patch literal 2970 zcmaJ@3s{op7uPh)ykvIqx*{^m6>w{YExWi{idL3ot;|c>%y8M}(q?2?EHvE*YOCkjGoA;&^PS(h{LXvMc^~!!2l`pe zv7cjLU|_*qOAmpc>G1dG*(UIB-JMIh@WW2x8zBi5#7Lx|2r{5@1#AexOax=05D4U^ zB{f4H1_nl%ys!vKM8J9qN08_W>TFz76NRw1fq{otsu1KPKoSHSiskV=k?Pt8B!b8F zM6!qhm;fOSisP+K7eS%vfnl8V1P;JOdaXftq*CAjiI4L5$KSZBjO1qJOLk}iwLp>$r4W_%yhDZL}5U{$H08?)Iq^VhE4^AXsjy+otUVr zOK&Zfgh2n$_*ZLjSeg(*hd^RMvWNrsBWBsOGkkXcok(X0v!MiucyLp|ujv9#aw5c+ zFzKF17;)wDxD*=3jX?A&_vs44T_?jDPdRyAc5zkxsy4 z7-ZNN00;ycKnDl_gG$5#RK~O~lP{Kld=507mj~ya^2PtBFNG$8K#4#UCJ=l*JpsXS z0*OEzClDfNG=0YrD_J}~S0EL;=vp*cF&z@|QXnovBuGT)&zQpd7Yk5)D&C>&E7jF`8Dvv#Aq5E(QGZajhUeyh|c@X&h^IzBMqI zRn4SR!&1Bd{N6vuG2Aw*s=)c#s=a&d7alz6zH}3J*T@DP;uM9Sw}_8A-}^2#b8!tAPG+92+i4 z3cdZvhB#8G`3d1CX=x~G=P4c=scT^WmrD1Txs;&BUyPdgtSyQwg1GisHAANvEOCZF zti8uN|6qJ%O?Rz(|HLm9S6px9iL&DV$Z1fAoMEONEB8{`6kQQ)REDtk0*dr&XDsnQ zUVxJv--ivD+m(F9H|?FC+4)gd)2p55#@c<%TFI}I8L zQqN>P!6mKGXmF&*6+`1+UikhZ9Hwu{+0KpI>H_8IE%Ptlw+Xf9+fs(rukUK>JL78k zhbL~dm8kZ8(b}a5e0NE{F|vH%I_fE_D&v*hD>4~sR(8U$neq1GCB5%fjDHw+d|e)e zsata~a>FKVyR6B^c^9SisM*L2cfZxPmI;qe4?MdtM^FftRJlEmQLrKd^nrUYkGgCp z!+8H}`*{Q;+?0PL9dzRLPJ1gqbzpmY`>Jr8!r|SiR);1+6@H822eVUycQxewhA()3 zm($WUw7h~kx=Jk=k#@ZpH(fem=RZ*-(`>HPuKhjG;!?ztR;#ZyGk&u-@(&%sU>G zo%*0u6=rPCW$^!?u~x+BxnKa|Srel<_(Adh_2lu|g3)ns_rP;0jMy%^=R z%u}kU7R4qhR^%#=vd!h)UW0(uT>D40J7wOD<%(Mi2LJC^HH=cAFAjAkjq8yaGFsyn z#n2p)@4DMB*WDRX*o-bcv^AM#aq?Ewwe96k`41CZiapO>34NR~fAHDDj?DD2CpTa9 zR(Ombjj9fxaI_$nu8}uTN(RuE!!%VSbC3GiU;U5V@gsC(YR8`3x~!a|`D*_X?H6&U zUe<~=xF;zuzA5&Z3458yX9B;!Ns5xzpGv=ux*Wzo@a|$1&por}RCh{JPU$F1B?!4^ ziDFn*kzVu@7v87oO0Dm1F+TLy%&s6KGa^}b`pt!`QFj09)%cuQ7Hx>8O@0F+=|$~B zY4-v7f$U9*8ovp_vId8x&r@`CH3(;0je& z<7X(o3~p+3hzN)XpK&K5-Kfg6YMr;8zaW}u7>&z_KVz;p53QE^mzq}}VUKqziwz;` zXyW@1HVUa(Y3?a$x0#mwbENP?V3Xu|MeY7wr}I1ng;^6m?_Snleemk^pq;Wg>RZ$6 zky>rpU@NtAZRhCXZa80-ie?0@R_=HhruMX*q(CfMpKoleXK|`i_ECHwi!047Cs!Yd zSI(LVqm3Asm7y>j`>^n_gP&EcoBEtm)2aFY2;n-Mv-gB9w47~TP<{U0C2nrSXd|Y1 znSWDGjhA@=`~0NB1u>=gKD5M+bEA7ncJp)c&0Hh)(A>tdqK4&q6*J^JkbTYY+`HXi zNIqzNWD+f#Mw2$-7^gq%N{c=3-X!!+8AX${;(J)joV+U&>$Wl3gC*uk-ebt7$e^(u z^12qo_m{c0h2z)iRvZQMoqo)nmms%w1{&fp96du9=P5!R^4s6(6B&mu@>)JwDKG2K4DJW5B7D0=_-B|?=;J)U*&KM!^7!?o0#GF)jFxT36nG_C4fa`>x1_9XWr+00dUE)uz#Do#on}m0fo*d-fYyi`6yw_3S>K$&h(LksEBHT9D0L;P_pU?Cepn zO`c(GsE>LT!^~f+gSWajIyvhikavLA7COxD*oobRe>lwdiY>dnJw?T`&L375TQr@c zj7Vc^ePu(r6N(xa)rPm0jb+RGD(RnJV7j|4;L}^~@a%YR_jI(3ektGHO03S>#m5s7 z{i?f;t!K(jV48G{-bK+4fdx>a<0i&~fo& zOZolO%km9BF5dFP)9{Ct%^o%q{8rg9F??H?KL4VR>VG3> i&*aVAvHk=4s==RSH-niD2W@o!mYKeR^dEepcm55sS@V1V literal 0 HcmV?d00001 diff --git a/static/images/up.png b/static/images/up.png new file mode 100644 index 0000000000000000000000000000000000000000..567db181a064db2c9975472b3e3793b672e4ce90 GIT binary patch literal 1248 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 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 GF6w`T=#zi| literal 0 HcmV?d00001 diff --git a/static/images/v6/btn_left.png b/static/images/v6/btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..daddb34226b280b346afe8fda822c21b16ffd4c2 GIT binary patch literal 2795 zcmchZ=|7Z<1I3@`nVD!TT^eg)QrVjU2p6DRca^p=;GOG-*+W@es0f3B^q z?c(C1tE;=Vwq|5xw7I#-rxukW{S z-^Rzs+uGV{YHBhwGuKkf!~V>7D9Fb09I%02(-|M6O{++Xgxf4Nrv}O9x~;I^b-cWl z6X$sPX<6}|o5$_md<3fz=`u5?;3?ZY-6_i=^dRQ$EpIaK9{Y+a-!FY;Ip!##I=u6rIIY*a+l(k?c{$uoNVmQywoI=u~r1D~s-VZ+#Y~ zB&P_}?G?uL2&Z32f7hoCJHZ0Fhv95dmgR2O66Di!&~QZUmFkvw$W5~2%4~#fySepf zrF_EVZkmB>aODZ=v&E~+JLszlwihdo^bh;){{9P+KAGOS<0l!dhMo5W%@hTQdSt?f zF6e=!_`RT7xG)8EDEoiVn>v7(^t!aY0Dgb#1jajueEr(4)3lj%!3bs~ZtkK|u{(+2 zYoOJEK=&_||8u5+mg}V7;5$Wj3kdpqu%N6gm_4KNPftO5!YOb|3Z}<2u6h9G3G2K9 zLhgFJ#f{?y1ya(Boe}`0uS%3p$tMBz)+ z$*dhsC4lHuZ|?vY2vg&rTn32h)mdXs;S;;a+#KfofaZk880DfZw1?g$-ssZAe3Y7K5svliQDo z1W2Fk#aGDritY0!m8U5nDO_Hm7PhaX;C|`BG@g*e=!d+&$gDKIDp&%zTXE`)EqEjI zbxJAyP+v|Kus;pikD|t0SM@Eo8*hSjhZb<~`XN=vSsHhK7o719b;cYjC!%CddwdAU?S8#^P0J;G+iWA z99nW8n-BPeRO-S(Iqru|P?9RZc;1GcIA4x-QxzA^7-hb9YRQWB&zwBOC*_4l^i74O zjzP}XajYVbM#JAP1ioA}QUDn4_8h5Ky(6X=!lNq?^;pagIj-gyz)@Q`^s}K^$eQ;# zyabplLz7wa7eywXTR4qrBq_rxjlyp)uO}vD>%81DRJ@OVnQtl1p1b4X)}y+ z1QIia{CxXJMn8yakzlO03pNiEPG-e_dUH1wA{6TJC#GGe)CGU=cT%F}MAu2^}oz@pl zNDh>}hgk`2mtj9bGyXN}FACe$%Y)iSpO&0_;TRl5F7-f8k&kOhr?Xbj*s)2BOeOD_ zGDoXWN`>t>uf8`g()Z$3&)@#who{9>A3~cyvI^{?v=~o9NLF3EwZb;eA-@pRz4zvZ ztu^=uzA2C)!g)b_z5Tvh@XPQ1;Bnb4Y0aqbyB^ldbgO8t9vuFT{&MLHF_jj01~ds! z2oc+H1X8*295*z7*@QLSV4y{GzfzHlRXOJRrKM*-&`*97Or@2I;b>&d>Paz{-Z_|t zE!t9A*Aep`8fvY}0I-dGqupwElcd1g4)7DYl9L(e5)&j;Ular-iCoCEx4(f6=-_$w z6$d8j?EklTDqt{ju`B;>3_@dQV2*Yt3X$dj_?3@6Psgl?8Be?ofL83oJ^PSe4E~Bh z2lOz?9@^cEQYTiKvu0FTmt(DNr$ALp*;l?ILJn{y1nbGVXI&}I1bic$_k9DQX$Cr+ z4p{aWJ(qiXAD+teKOt4RX7Lf(J0ym+CsILeZ*>vX{v+75Q1xR5<}t5d>{^}bmzpqm zAt1ls4&B;|@e%JGhI6}8!*lxWRe2RRCd9D;n{;Io0AlyNf2v}i?+DlTl=MAbs&EAx zaLHlH^kx$4urM-Ln7s+bz~iiY5sp-Pm!ZBZ9_5*qEbWUxC5{G`yZ7MGCJlg6!>AbU zAy!5WE3jCrpK4A2Yw0(IGwO18va33m4^17INuDU0=oAOEGhu^nodc}^w&1q1{3U(< zYg-V}!DJ`_xejjp0u(ex_)VICi?OBS40(t+@D#f2WoI=-i6%K5g@dl_spAY@J+cek zXPuMQqS2zfe+F_L^J$Sg9~XkaRRd*X6WIMutWdd=0_j}ljigNvGDO_=nC@<}`0VYH z<1)+@Cut{nOpPxI$ydXQIW9+7FSl-n#Ge9Zkv>L#;pafl#ISH50=z0g61mBMlE%x= zw94{%kbsWM2xcR&o}w~-C8k>y4!$$IKu9!h1H46BP(#uzX>+u?&tYilJOznXGRsR-O8}~OVJvaH#VnT zxD)|0R5-#%O~%7+LCAVqa;RMSt;X{{$N~zWTuv-aQ3%OD2b@`u%-=@Wh)zK8*JH-V zHqq);wm_5y{;}SWdY<(#p~AQspyI4wlqRsyM_JRjL8N(;Bm--nJz1U*Ik;tUI78S) zq{QKXYj&4cUCnh)LOoUD9zPNN^ELCu^fAF0YYfwjq0=7f3aa>YBDVt9+w_%)PvSIB zW!G$Tu_pTrdr?%(UT_+&{u8boybzcKMWM`g>%=a6U1T^Dgf;?Mtxp4qKDY_rd_v zb8B(w+ja*3XWekH?k3Eyh=^phzfqPiz#2Lp5Y%NUR$&jm>Uwiib^_o@$nbKAJ&P4+EY$cqfp$FJW%;Cp^J*SW9zzOU