From d9e2784c1b47acae6a9c4baaa30b5c12bfebf5d3 Mon Sep 17 00:00:00 2001 From: RIceWqy <1840169763@qq.com> Date: Thu, 14 Dec 2023 21:15:04 +0800 Subject: [PATCH] init --- .gitignore | 4 + .hbuilderx/launch.json | 16 + App.vue | 15 + README.md | 236 + androidPrivacy.json | 3 + .../shopro-auth-modal/shopro-auth-modal.vue | 992 +++++ components/shopro-canvas/shopro-canvas.vue | 123 + components/shopro-coupon/shopro-coupon.vue | 176 + components/shopro-empty/shopro-empty.vue | 77 + .../shopro-float-btn/shopro-float-btn.vue | 184 + .../shopro-goods-card/shopro-goods-card.vue | 348 ++ .../shopro-live-card/shopro-live-card.vue | 361 ++ .../shopro-mini-card/shopro-mini-card.vue | 130 + components/shopro-navbar/shopro-navbar.vue | 130 + .../shopro-notice-modal.vue | 71 + components/shopro-share/shopro-share.vue | 571 +++ components/shopro-sku/shopro-sku.vue | 589 +++ components/shopro-tabbar/shopro-tabbar.vue | 142 + env.js | 18 + main.js | 33 + manifest.json | 233 + package-lock.json | 138 + package.json | 24 + pages.json | 921 ++++ pages/activity/discounts/list.vue | 227 + pages/activity/groupon/detail.vue | 371 ++ pages/activity/groupon/list.vue | 246 ++ pages/activity/groupon/my-groupon.vue | 247 ++ pages/activity/seckill/list.vue | 248 ++ pages/activity/sign/index.vue | 361 ++ pages/app/commission/apply.vue | 269 ++ pages/app/commission/commission-log.vue | 393 ++ pages/app/commission/goods.vue | 167 + pages/app/commission/index.vue | 855 ++++ pages/app/commission/order.vue | 497 +++ pages/app/commission/rankings.vue | 148 + pages/app/commission/share-log.vue | 255 ++ pages/app/commission/team.vue | 344 ++ pages/app/components/sh-collapse-item.vue | 151 + pages/app/coupon/detail.vue | 247 ++ pages/app/coupon/list.vue | 176 + pages/app/live/list.vue | 216 + pages/app/merchant/apply.vue | 598 +++ pages/app/merchant/detail.vue | 227 + pages/app/merchant/index.vue | 618 +++ pages/app/merchant/info.vue | 115 + pages/app/merchant/list.vue | 116 + pages/app/score/list.vue | 105 + pages/goods/comment/add-comment.vue | 210 + pages/goods/comment/comment-list.vue | 126 + pages/goods/components/sh-activity.vue | 157 + pages/goods/components/sh-comment.vue | 100 + pages/goods/components/sh-coupon.vue | 75 + pages/goods/components/sh-filter.vue | 168 + pages/goods/components/sh-groupon.vue | 220 + pages/goods/components/sh-price-card.vue | 377 ++ pages/goods/components/sh-serve.vue | 140 + pages/goods/detail.vue | 772 ++++ pages/goods/list.vue | 224 + pages/index/cart.vue | 371 ++ pages/index/category.vue | 73 + pages/index/category/one-catgory.vue | 265 ++ pages/index/category/takeout-catgory.vue | 603 +++ pages/index/category/three-catgory.vue | 209 + pages/index/category/two-catgory.vue | 213 + pages/index/components/sh-adv.vue | 174 + pages/index/components/sh-banner.vue | 69 + pages/index/components/sh-category-tabs.vue | 348 ++ pages/index/components/sh-cell.vue | 56 + pages/index/components/sh-coupon.vue | 276 ++ pages/index/components/sh-goods-card.vue | 356 ++ pages/index/components/sh-grid-swiper.vue | 134 + pages/index/components/sh-grid.vue | 60 + pages/index/components/sh-groupon.vue | 319 ++ pages/index/components/sh-hot-goods.vue | 227 + pages/index/components/sh-live.vue | 108 + pages/index/components/sh-order-card.vue | 150 + pages/index/components/sh-richtext.vue | 46 + pages/index/components/sh-search.vue | 46 + pages/index/components/sh-seckill.vue | 300 ++ pages/index/components/sh-title-card.vue | 64 + pages/index/components/sh-wallet.vue | 106 + pages/index/index.vue | 215 + pages/index/index/home-head.vue | 244 + pages/index/index/privacy-modal.vue | 155 + pages/index/user.vue | 143 + pages/index/user/userinfo-card.vue | 342 ++ pages/index/view.vue | 182 + pages/order/after-sale/detail.vue | 329 ++ pages/order/after-sale/list.vue | 329 ++ pages/order/after-sale/log.vue | 96 + pages/order/after-sale/refund.vue | 432 ++ pages/order/components/sh-select-coupon.vue | 116 + pages/order/confirm.vue | 2059 +++++++++ pages/order/detail.vue | 742 ++++ pages/order/express/distribution-detail.vue | 407 ++ pages/order/express/express-detail.vue | 217 + pages/order/express/express-list.vue | 114 + pages/order/express/store-address.vue | 351 ++ pages/order/list.vue | 407 ++ pages/order/payment/method.vue | 255 ++ pages/order/payment/result.vue | 287 ++ pages/public/404.vue | 8 + pages/public/chat/index.vue | 55 + pages/public/chat/shopro/chat.js | 161 + pages/public/chat/shopro/chat.scss | 185 + pages/public/chat/shopro/index.vue | 1115 +++++ pages/public/chat/wm/config.js | 131 + pages/public/chat/wm/index.vue | 1622 +++++++ pages/public/faq.vue | 65 + pages/public/feedback.vue | 218 + pages/public/loading.vue | 39 + pages/public/richtext.vue | 43 + pages/public/search.vue | 113 + pages/public/webview.vue | 19 + pages/user/address/edit.vue | 344 ++ pages/user/address/list.vue | 166 + pages/user/favorite.vue | 190 + pages/user/info.vue | 473 ++ pages/user/set.vue | 171 + pages/user/view-log.vue | 192 + pages/user/wallet/index.vue | 345 ++ pages/user/wallet/score-balance.vue | 175 + pages/user/wallet/top-up-log.vue | 127 + pages/user/wallet/top-up.vue | 284 ++ pages/user/wallet/withdraw-log.vue | 141 + pages/user/wallet/withdraw.vue | 537 +++ shopro/apple/index.js | 76 + shopro/index.js | 60 + shopro/mixins/index.js | 121 + shopro/pay/index.js | 275 ++ shopro/permission/app.js | 284 ++ shopro/permission/h5.js | 37 + shopro/permission/index.js | 37 + shopro/permission/mp.js | 88 + shopro/platform/index.js | 81 + shopro/poster/QS-SharePoster/QRCodeAlg.js | 1009 +++++ .../poster/QS-SharePoster/QS-SharePoster.js | 1589 +++++++ shopro/poster/QS-SharePoster/app.js | 566 +++ shopro/poster/QS-SharePoster/image-tools.js | 147 + shopro/poster/tools.js | 193 + shopro/request/apis.js | 779 ++++ shopro/request/index.js | 73 + shopro/request/request.js | 133 + shopro/router/index.js | 70 + shopro/router/uni-simple-router.js | 1 + shopro/share/index.js | 112 + shopro/store/index.js | 17 + shopro/store/modules/cart.js | 182 + shopro/store/modules/shopro.js | 146 + shopro/store/modules/user.js | 241 + shopro/utils/sdk-h5.js | 585 +++ shopro/utils/tools.js | 140 + shopro/validate/form.js | 112 + shopro/wechat/sdk.js | 182 + shopro/wechat/wechat.js | 239 + static/common/js/touch-emulator.js | 363 ++ static/font/OPPOSANS-M-subfont.ttf | Bin 0 -> 9832 bytes static/font/shopro-icon.css | 106 + static/images/empty_network.png | Bin 0 -> 8727 bytes static/images/tabbar/tabbar_cart.png | Bin 0 -> 622 bytes static/images/tabbar/tabbar_cart1.png | Bin 0 -> 1172 bytes static/images/tabbar/tabbar_category.png | Bin 0 -> 682 bytes static/images/tabbar/tabbar_category1.png | Bin 0 -> 1640 bytes static/images/tabbar/tabbar_home.png | Bin 0 -> 358 bytes static/images/tabbar/tabbar_home1.png | Bin 0 -> 963 bytes static/images/tabbar/tabbar_personal.png | Bin 0 -> 424 bytes static/images/tabbar/tabbar_personal1.png | Bin 0 -> 1045 bytes static/style/colorui.css | 3924 +++++++++++++++++ static/style/index.scss | 30 + template.h5.html | 47 + uni.scss | 7 + uview-ui/LICENSE | 21 + uview-ui/README.md | 0 uview-ui/components/u-calendar/u-calendar.vue | 667 +++ .../u-checkbox-group/u-checkbox-group.vue | 122 + uview-ui/components/u-checkbox/u-checkbox.vue | 284 ++ .../u-collapse-item/u-collapse-item.vue | 204 + uview-ui/components/u-collapse/u-collapse.vue | 99 + .../u-column-notice/u-column-notice.vue | 237 + .../components/u-count-down/u-count-down.vue | 318 ++ .../u-dropdown-item/u-dropdown-item.vue | 150 + uview-ui/components/u-dropdown/u-dropdown.vue | 320 ++ uview-ui/components/u-empty/u-empty.vue | 193 + .../components/u-form-item/u-form-item.vue | 431 ++ uview-ui/components/u-form/u-form.vue | 134 + uview-ui/components/u-icon/u-icon.vue | 336 ++ uview-ui/components/u-input/u-input.vue | 390 ++ .../u-line-progress/u-line-progress.vue | 148 + uview-ui/components/u-line/u-line.vue | 84 + uview-ui/components/u-loadmore/u-loadmore.vue | 232 + uview-ui/components/u-mask/u-mask.vue | 133 + uview-ui/components/u-modal/u-modal.vue | 297 ++ .../components/u-no-network/u-no-network.vue | 231 + .../components/u-notice-bar/u-notice-bar.vue | 272 ++ .../components/u-number-box/u-number-box.vue | 386 ++ .../components/u-parse/libs/CssHandler.js | 100 + .../components/u-parse/libs/MpHtmlParser.js | 580 +++ uview-ui/components/u-parse/libs/config.js | 80 + uview-ui/components/u-parse/libs/handler.wxs | 22 + uview-ui/components/u-parse/libs/trees.vue | 505 +++ uview-ui/components/u-parse/u-parse.vue | 659 +++ uview-ui/components/u-picker/u-picker.vue | 676 +++ uview-ui/components/u-popup/u-popup.vue | 462 ++ .../u-radio-group/u-radio-group.vue | 128 + uview-ui/components/u-radio/u-radio.vue | 275 ++ uview-ui/components/u-rate/u-rate.vue | 275 ++ .../components/u-row-notice/u-row-notice.vue | 269 ++ uview-ui/components/u-search/u-search.vue | 342 ++ uview-ui/components/u-select/u-select.vue | 417 ++ uview-ui/components/u-steps/u-steps.vue | 200 + uview-ui/components/u-sticky/u-sticky.vue | 172 + uview-ui/components/u-swiper/u-swiper.vue | 365 ++ uview-ui/components/u-switch/u-switch.vue | 161 + .../u-time-line-item/u-time-line-item.vue | 83 + .../components/u-time-line/u-time-line.vue | 43 + uview-ui/components/u-upload/u-upload.vue | 665 +++ uview-ui/iconfont.css | 892 ++++ uview-ui/index.js | 78 + uview-ui/index.scss | 23 + uview-ui/libs/config/config.js | 15 + uview-ui/libs/config/zIndex.js | 20 + uview-ui/libs/css/color.scss | 155 + uview-ui/libs/css/common.scss | 240 + uview-ui/libs/css/style.components.scss | 7 + uview-ui/libs/css/style.h5.scss | 8 + uview-ui/libs/css/style.mp.scss | 72 + uview-ui/libs/css/style.nvue.scss | 3 + uview-ui/libs/css/style.vue.scss | 180 + uview-ui/libs/function/$parent.js | 18 + uview-ui/libs/function/addUnit.js | 8 + uview-ui/libs/function/debounce.js | 29 + uview-ui/libs/function/deepClone.js | 23 + uview-ui/libs/function/guid.js | 41 + uview-ui/libs/function/sys.js | 9 + uview-ui/libs/function/test.js | 232 + uview-ui/libs/function/throttle.js | 32 + uview-ui/libs/function/timeFormat.js | 51 + uview-ui/libs/function/timeFrom.js | 47 + uview-ui/libs/function/toast.js | 9 + uview-ui/libs/function/trim.js | 15 + uview-ui/libs/mixin/mixin.js | 77 + uview-ui/libs/util/async-validator.js | 1356 ++++++ uview-ui/libs/util/emitter.js | 51 + uview-ui/package.json | 39 + uview-ui/theme.scss | 38 + vue.config.js | 18 + 247 files changed, 62221 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 App.vue create mode 100644 README.md create mode 100644 androidPrivacy.json create mode 100644 components/shopro-auth-modal/shopro-auth-modal.vue create mode 100644 components/shopro-canvas/shopro-canvas.vue create mode 100644 components/shopro-coupon/shopro-coupon.vue create mode 100644 components/shopro-empty/shopro-empty.vue create mode 100644 components/shopro-float-btn/shopro-float-btn.vue create mode 100644 components/shopro-goods-card/shopro-goods-card.vue create mode 100644 components/shopro-live-card/shopro-live-card.vue create mode 100644 components/shopro-mini-card/shopro-mini-card.vue create mode 100644 components/shopro-navbar/shopro-navbar.vue create mode 100644 components/shopro-notice-modal/shopro-notice-modal.vue create mode 100644 components/shopro-share/shopro-share.vue create mode 100644 components/shopro-sku/shopro-sku.vue create mode 100644 components/shopro-tabbar/shopro-tabbar.vue create mode 100644 env.js create mode 100644 main.js create mode 100644 manifest.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/activity/discounts/list.vue create mode 100644 pages/activity/groupon/detail.vue create mode 100644 pages/activity/groupon/list.vue create mode 100644 pages/activity/groupon/my-groupon.vue create mode 100644 pages/activity/seckill/list.vue create mode 100644 pages/activity/sign/index.vue create mode 100644 pages/app/commission/apply.vue create mode 100644 pages/app/commission/commission-log.vue create mode 100644 pages/app/commission/goods.vue create mode 100644 pages/app/commission/index.vue create mode 100644 pages/app/commission/order.vue create mode 100644 pages/app/commission/rankings.vue create mode 100644 pages/app/commission/share-log.vue create mode 100644 pages/app/commission/team.vue create mode 100644 pages/app/components/sh-collapse-item.vue create mode 100644 pages/app/coupon/detail.vue create mode 100644 pages/app/coupon/list.vue create mode 100644 pages/app/live/list.vue create mode 100644 pages/app/merchant/apply.vue create mode 100644 pages/app/merchant/detail.vue create mode 100644 pages/app/merchant/index.vue create mode 100644 pages/app/merchant/info.vue create mode 100644 pages/app/merchant/list.vue create mode 100644 pages/app/score/list.vue create mode 100644 pages/goods/comment/add-comment.vue create mode 100644 pages/goods/comment/comment-list.vue create mode 100644 pages/goods/components/sh-activity.vue create mode 100644 pages/goods/components/sh-comment.vue create mode 100644 pages/goods/components/sh-coupon.vue create mode 100644 pages/goods/components/sh-filter.vue create mode 100644 pages/goods/components/sh-groupon.vue create mode 100644 pages/goods/components/sh-price-card.vue create mode 100644 pages/goods/components/sh-serve.vue create mode 100644 pages/goods/detail.vue create mode 100644 pages/goods/list.vue create mode 100644 pages/index/cart.vue create mode 100644 pages/index/category.vue create mode 100644 pages/index/category/one-catgory.vue create mode 100644 pages/index/category/takeout-catgory.vue create mode 100644 pages/index/category/three-catgory.vue create mode 100644 pages/index/category/two-catgory.vue create mode 100644 pages/index/components/sh-adv.vue create mode 100644 pages/index/components/sh-banner.vue create mode 100644 pages/index/components/sh-category-tabs.vue create mode 100644 pages/index/components/sh-cell.vue create mode 100644 pages/index/components/sh-coupon.vue create mode 100644 pages/index/components/sh-goods-card.vue create mode 100644 pages/index/components/sh-grid-swiper.vue create mode 100644 pages/index/components/sh-grid.vue create mode 100644 pages/index/components/sh-groupon.vue create mode 100644 pages/index/components/sh-hot-goods.vue create mode 100644 pages/index/components/sh-live.vue create mode 100644 pages/index/components/sh-order-card.vue create mode 100644 pages/index/components/sh-richtext.vue create mode 100644 pages/index/components/sh-search.vue create mode 100644 pages/index/components/sh-seckill.vue create mode 100644 pages/index/components/sh-title-card.vue create mode 100644 pages/index/components/sh-wallet.vue create mode 100644 pages/index/index.vue create mode 100644 pages/index/index/home-head.vue create mode 100644 pages/index/index/privacy-modal.vue create mode 100644 pages/index/user.vue create mode 100644 pages/index/user/userinfo-card.vue create mode 100644 pages/index/view.vue create mode 100644 pages/order/after-sale/detail.vue create mode 100644 pages/order/after-sale/list.vue create mode 100644 pages/order/after-sale/log.vue create mode 100644 pages/order/after-sale/refund.vue create mode 100644 pages/order/components/sh-select-coupon.vue create mode 100644 pages/order/confirm.vue create mode 100644 pages/order/detail.vue create mode 100644 pages/order/express/distribution-detail.vue create mode 100644 pages/order/express/express-detail.vue create mode 100644 pages/order/express/express-list.vue create mode 100644 pages/order/express/store-address.vue create mode 100644 pages/order/list.vue create mode 100644 pages/order/payment/method.vue create mode 100644 pages/order/payment/result.vue create mode 100644 pages/public/404.vue create mode 100644 pages/public/chat/index.vue create mode 100644 pages/public/chat/shopro/chat.js create mode 100644 pages/public/chat/shopro/chat.scss create mode 100644 pages/public/chat/shopro/index.vue create mode 100644 pages/public/chat/wm/config.js create mode 100644 pages/public/chat/wm/index.vue create mode 100644 pages/public/faq.vue create mode 100644 pages/public/feedback.vue create mode 100644 pages/public/loading.vue create mode 100644 pages/public/richtext.vue create mode 100644 pages/public/search.vue create mode 100644 pages/public/webview.vue create mode 100644 pages/user/address/edit.vue create mode 100644 pages/user/address/list.vue create mode 100644 pages/user/favorite.vue create mode 100644 pages/user/info.vue create mode 100644 pages/user/set.vue create mode 100644 pages/user/view-log.vue create mode 100644 pages/user/wallet/index.vue create mode 100644 pages/user/wallet/score-balance.vue create mode 100644 pages/user/wallet/top-up-log.vue create mode 100644 pages/user/wallet/top-up.vue create mode 100644 pages/user/wallet/withdraw-log.vue create mode 100644 pages/user/wallet/withdraw.vue create mode 100644 shopro/apple/index.js create mode 100644 shopro/index.js create mode 100644 shopro/mixins/index.js create mode 100644 shopro/pay/index.js create mode 100644 shopro/permission/app.js create mode 100644 shopro/permission/h5.js create mode 100644 shopro/permission/index.js create mode 100644 shopro/permission/mp.js create mode 100644 shopro/platform/index.js create mode 100644 shopro/poster/QS-SharePoster/QRCodeAlg.js create mode 100644 shopro/poster/QS-SharePoster/QS-SharePoster.js create mode 100644 shopro/poster/QS-SharePoster/app.js create mode 100644 shopro/poster/QS-SharePoster/image-tools.js create mode 100644 shopro/poster/tools.js create mode 100644 shopro/request/apis.js create mode 100644 shopro/request/index.js create mode 100644 shopro/request/request.js create mode 100644 shopro/router/index.js create mode 100644 shopro/router/uni-simple-router.js create mode 100644 shopro/share/index.js create mode 100644 shopro/store/index.js create mode 100644 shopro/store/modules/cart.js create mode 100644 shopro/store/modules/shopro.js create mode 100644 shopro/store/modules/user.js create mode 100644 shopro/utils/sdk-h5.js create mode 100644 shopro/utils/tools.js create mode 100644 shopro/validate/form.js create mode 100644 shopro/wechat/sdk.js create mode 100644 shopro/wechat/wechat.js create mode 100644 static/common/js/touch-emulator.js create mode 100644 static/font/OPPOSANS-M-subfont.ttf create mode 100644 static/font/shopro-icon.css create mode 100644 static/images/empty_network.png create mode 100644 static/images/tabbar/tabbar_cart.png create mode 100644 static/images/tabbar/tabbar_cart1.png create mode 100644 static/images/tabbar/tabbar_category.png create mode 100644 static/images/tabbar/tabbar_category1.png create mode 100644 static/images/tabbar/tabbar_home.png create mode 100644 static/images/tabbar/tabbar_home1.png create mode 100644 static/images/tabbar/tabbar_personal.png create mode 100644 static/images/tabbar/tabbar_personal1.png create mode 100644 static/style/colorui.css create mode 100644 static/style/index.scss create mode 100644 template.h5.html create mode 100644 uni.scss create mode 100644 uview-ui/LICENSE create mode 100644 uview-ui/README.md create mode 100644 uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uview-ui/components/u-empty/u-empty.vue create mode 100644 uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uview-ui/components/u-form/u-form.vue create mode 100644 uview-ui/components/u-icon/u-icon.vue create mode 100644 uview-ui/components/u-input/u-input.vue create mode 100644 uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uview-ui/components/u-line/u-line.vue create mode 100644 uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uview-ui/components/u-mask/u-mask.vue create mode 100644 uview-ui/components/u-modal/u-modal.vue create mode 100644 uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uview-ui/components/u-parse/libs/CssHandler.js create mode 100644 uview-ui/components/u-parse/libs/MpHtmlParser.js create mode 100644 uview-ui/components/u-parse/libs/config.js create mode 100644 uview-ui/components/u-parse/libs/handler.wxs create mode 100644 uview-ui/components/u-parse/libs/trees.vue create mode 100644 uview-ui/components/u-parse/u-parse.vue create mode 100644 uview-ui/components/u-picker/u-picker.vue create mode 100644 uview-ui/components/u-popup/u-popup.vue create mode 100644 uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uview-ui/components/u-radio/u-radio.vue create mode 100644 uview-ui/components/u-rate/u-rate.vue create mode 100644 uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uview-ui/components/u-search/u-search.vue create mode 100644 uview-ui/components/u-select/u-select.vue create mode 100644 uview-ui/components/u-steps/u-steps.vue create mode 100644 uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uview-ui/components/u-switch/u-switch.vue create mode 100644 uview-ui/components/u-time-line-item/u-time-line-item.vue create mode 100644 uview-ui/components/u-time-line/u-time-line.vue create mode 100644 uview-ui/components/u-upload/u-upload.vue create mode 100644 uview-ui/iconfont.css create mode 100644 uview-ui/index.js create mode 100644 uview-ui/index.scss create mode 100644 uview-ui/libs/config/config.js create mode 100644 uview-ui/libs/config/zIndex.js create mode 100644 uview-ui/libs/css/color.scss create mode 100644 uview-ui/libs/css/common.scss create mode 100644 uview-ui/libs/css/style.components.scss create mode 100644 uview-ui/libs/css/style.h5.scss create mode 100644 uview-ui/libs/css/style.mp.scss create mode 100644 uview-ui/libs/css/style.nvue.scss create mode 100644 uview-ui/libs/css/style.vue.scss create mode 100644 uview-ui/libs/function/$parent.js create mode 100644 uview-ui/libs/function/addUnit.js create mode 100644 uview-ui/libs/function/debounce.js create mode 100644 uview-ui/libs/function/deepClone.js create mode 100644 uview-ui/libs/function/guid.js create mode 100644 uview-ui/libs/function/sys.js create mode 100644 uview-ui/libs/function/test.js create mode 100644 uview-ui/libs/function/throttle.js create mode 100644 uview-ui/libs/function/timeFormat.js create mode 100644 uview-ui/libs/function/timeFrom.js create mode 100644 uview-ui/libs/function/toast.js create mode 100644 uview-ui/libs/function/trim.js create mode 100644 uview-ui/libs/mixin/mixin.js create mode 100644 uview-ui/libs/util/async-validator.js create mode 100644 uview-ui/libs/util/emitter.js create mode 100644 uview-ui/package.json create mode 100644 uview-ui/theme.scss create mode 100644 vue.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f19d0a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/node_modules/* +/unpackage/* +!/unpackage/res/* +/.idea/* \ No newline at end of file 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..8af619b --- /dev/null +++ b/App.vue @@ -0,0 +1,15 @@ + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..68bc927 --- /dev/null +++ b/README.md @@ -0,0 +1,236 @@ + + +vue3版本正式发布,持续更新中![官网: https://www.shopro.top](https://www.shopro.top) + +### :sparkles: 开源不易,给个star吧~ 问题反馈交流:648050824 + + + +[官方地址: https://www.shopro.top](https://www.shopro.top) + +[插件地址: https://ext.dcloud.net.cn/plugin?id=10180](https://ext.dcloud.net.cn/plugin?id=10180) + +[vue2码云仓库: https://gitee.com/itmonkey-cn/shopro.git](https://gitee.com/itmonkey-cn/shopro.git) + +[vue3码云仓库: https://gitee.com/sheepjs/shopro-uniapp](https://gitee.com/sheepjs/shopro-uniapp) + +[github仓库:https://github.com/ITmonkey-cn/shopro.git](https://github.com/ITmonkey-cn/shopro.git) + + +# 部分页面展示 +![1](https://images.gitee.com/uploads/images/2020/0710/162852_71fb79d2_2264724.jpeg "b1.jpg") + +# Shopro使用说明 + +1. 首次安装需要 npm i 加载相关依赖 + +2. 基于uni-app,需要下载hbuilderX进行编译 + +3. manifest.json中配置相关信息 + + + +# Shopro演示站 + +| ![微信小程序码](https://shopro-1253949872.cos.ap-beijing.myqcloud.com/dcloud/wx_code.jpg "微信小程序码") | ![H5](https://shopro-1253949872.cos.ap-beijing.myqcloud.com/dcloud/h5new.png "H5.png") | ![apk](https://shopro-1253949872.cos.ap-beijing.myqcloud.com/dcloud/apk_code.png "apk_code.png") | +|------------------------------------------------- | ---------------------------------------- | ---------------------------------- | +| 微信小程序 | H5二维码 | 安卓apk (普通浏览器扫描) | + + + + +# 更新日志 +## 更新vue3版本 +vue3版本正式上线!将持续更新+开源,欢迎下载使用,望点赞+收藏~ + +[官方地址: https://www.shopro.top](https://www.shopro.top) + +[插件地址: https://ext.dcloud.net.cn/plugin?id=10180](https://ext.dcloud.net.cn/plugin?id=10180) + +[vue2码云仓库: https://gitee.com/itmonkey-cn/shopro.git](https://gitee.com/itmonkey-cn/shopro.git) + +[vue3码云仓库: https://gitee.com/sheepjs/shopro-uniapp](https://gitee.com/sheepjs/shopro-uniapp) + +[github仓库:https://github.com/ITmonkey-cn/shopro.git](https://github.com/ITmonkey-cn/shopro.git) + +## V1.4.0(2023-02-24) +1. 修复积分记录上拉加载更多 +2. 修复小程序分类左侧数据过多,滚动问题 +3. 修复门店申请,选择地区,没有区级单位 +4. 修复日志取值 +5. 修复登录流程、优化自提时间不能选择当前时间之前 +6. 修复支付支持 v3 +7. 修复隐私协议框跳转问题 +8. 修复导航栏、状态栏 +9. 修复小程序上传报错 +10. 修复小程序消息通知偶发订阅报错问题 +11. 修复服务商拉起失败问题 +12. 修复扫码核销、核销总码 +13. 优化app登录\微信小程序登录 + +## V1.3.8(2022-01-08) +1. 新增商品购买输入数量 +2. 新增商品评价内容过滤 +3. 新增充值到余额 +4. 新增消费送积分 +5. 修复首页拼团组件标题取值错误问题 +6. 修复物流列表真机样式错乱问题 +7. 修复某些ios机型优惠券不显示 +8. 修复自定义底部导航分享后,返回首页底部导航不显示问题 +9. 修复商品评论图片预览问题 + +## V1.3.7(2021-10-18) +1. 新增 商品订单申请开具发票功能 +2. 修复 用户协议,隐私协议,门店申请协议,自提协议等富文本跳转 +3. 修复 小程序端弹窗图片,非https协议无法保存的问题 +4. 修复 用户信息页面刷新时数据丢失问题 +5. 修复 用户信息页面修改密码点击无效问题 +6. 修复 客服页面刷新,切换为默认客服问题 +7. 修复 客服中,商品和订单,多次打开时列表内容重复问题 +8. 修复 登录、注册、找回密码,获取验证码按钮未显示问题 +9. 修复 轮播图组件参数 +10. 优化 小程序端自提商品二维码不稳定问题 +11. 优化 商家中心,订单金额的统计规则 +12. 优化 钱包提现规则 +13. 优化 商品列表搜索内容,存入搜索历史记录 +14. 优化 商品详情优惠券 显示已领取状态 + + +## V1.3.6(2021-8-30) +1. 优化 小程序性能问题,更换router底层依赖版本,精简店铺装修组件 +2. 修复 登录卡片隐藏后,需要点击两次才能调起的问题 +3. 修复 微信小程序,进入直播内容页面,跳转商品详情后,无法返回上一级的问题 +4. 修复搜索页跳转商品列表,商品卡片偶尔重复问题 +5. 修复门店中心的订单详情,下单时间NaN问题 +6. 修复微信小程序真机测试时,自提商品核销码生成不稳定的问题 +7. 修复微信小程序,登录错误,显示The given payload报错的问题。 +8. 修复ios部分机型,首页装修优惠券背景空白问题 +9. 重构 入口文件和shopro启动流程 +10. 重构 vuex相关代码,拆分精简数据。 +11. 优化 优惠券相关逻辑和样式 +12. 修复 门店禁用后,前台还展示的问题 +13. 优化 购物车逻辑 +14. 优化 瀑布流排版不稳定(左右排列错误) +15. 优化 日历无法快速切换年份 +16. 优化 选择商品规格组件 +17. 优化 分享海报 + +## V1.3.2(2021-6-30) +1. 修复秒杀卡片百分比改为件数,统一百分比计算 +2. 修复门店地址信息过长会被遮盖 +3. 修复苹果6s小程序端,分销中心弹窗不出来 +4. 修复门店订单详情,单笔商品数量过多,底部发货按钮顶起 +5. 修复商品卡片,添加添加购物车库存无限制问题 +6. 修复小程序端秒杀卡片,跳转详情问题 +7. 优化小程序端,确认订单优惠金额样式异常问题 +8. 优化海报,首页banner裁剪方式 +9. 优化地址定位问题,改为选择位置 +10. 优化确认订单,配送自提点的默认手机号问题 +11. 优化购物车失效商品拦截, +12. 优化确认订单配送商品无经纬度等错误异常 +13. 优化门店申请,位置选择 +14. 优化瀑布流左右偶发不均问题 + + +## V1.3.1(2021-6-17) +1. 优化自提点协议勾选检测。 +2. 修复无自提门店,选择自提方式报错 +3. 修复商品规格滑动问题 +4. 修复一级分类,快速购买,持续loading问题 +5. 修复分销中心分享链接,无法复制问题 +6. 修复确认订单商品计数问题 +7. 优化app端底部安全区域问题 +8. 新增app端苹果登录 +9. 更多细节体验优化,可扫码体验~ + +## V1.3.0(2021-6-8) +1. 重构所有页面,重新设计了样式,全面使用uview替换color-ui,感谢uview团队! +2. 优化页面加载速度,重写初始化流程,兼容H5的hash模式与history模式 +3. 重写登录注册模块,自动登录注册、绑定/解绑 第三方授权登录信息,更新微信小程序最新的getUserProfile接口 +4. 重构分享逻辑,分享信息使用状态管理,解决重复冗余加载,使用spm参数构造,支持添加自定义参数,精确的分享链路追踪(分享人、分享方式、页面、分享平台、受邀请人平台)解决了因小程序码参数苏的位数限制导致无法支持长页面和大用户ID被截断的问题。(之前的海报和分享卡片将作废) +5. 添加多提现方式(包含支付宝、微信企业付款、银行卡) +6. 重写海报模块 +7. 更新了路由拦截和请求拦截器。 +8. 重构App权限请求和加载速度 +9. 默认使用原生底部导航,可修改代码实现自定义底部导航和后端对接 +10. 更多重构细节体验优化,可扫码体验~ + + +## V1.2.0(2021-1-12) +1. 新增官方客服 +2. 新增分销中心,搭配后台强大的分销功能 +3. 新增全局静态资源的服务地址 +4. 新增uView UI 部分组件(特别鸣谢) +5. 优化IOS APP的网络权限验证流程 +6. 优化海报的头像位置,适应小屏机型 +7. 优化多选项卡切换的数据抖动问题 +8. 优化H5微信支付的回调逻辑 +7. 修复IOS App的webview内核,防止被Appstore审核被拒 +8. 更多细节优化,可扫码体验~ +## 更新功能部分截图 +![V1.2.0功能](https://images.gitee.com/uploads/images/2021/0112/182440_a691a92b_2264724.png "some.png") + + +## V1.1.2(2020-10-15) +1. 新增:分享到朋友圈 +2. 优化:商品详情页体验 +3. 优化:分类页体验 +4. 修复:商品购买计数器相关bug +5. 修复:小程序分享后空白页(适配新规则) +6. 修复:小程序自动更新版本报错 +7. 其他:相关优化,问题修复。 + + +## V1.0.7(2020-09-29) +1. 新增:多配送方式(到店自提、商家配送、自动发货)和对应详情列表页面 +2. 新增:用户商家中心,门店切换,输码扫码核销,门店信息查看,发货,交易信息统计。 +3. 新增:物流信息,对接快递鸟物流查询,多包裹列表。 +4. 新增:商品售后,完善商品售后流程,服务单详情,售后进度查询和通知。 +5. 新增:全局优惠券,优化优惠券领取使用相关。 +6. 新增:部分页面下拉刷新,优化体验 +7. 新增:第三方客服,跟进购物闭环。 +8. 新增:微信,公众号地址导入。 +9. 新增:多分类灵活配置,支持立即购买(类外卖) +10. 新增:app端,隐私协议相关。 +11. 优化:海报升级体验 +12. 优化: 富文本相关 +14. 优化:小程序登录提示 +15. 优化:首页推荐商品加载更多 +16. 修复:低版本tabbar首次不渲染。 +17. 修复:iphonX底部安全区域问题。 +18. 修复:直播列表瀑布流排序问题 +## 更新功能部分截图 +![v1.0.7功能](https://images.gitee.com/uploads/images/2020/0929/161907_1de1deff_2264724.png "04.png") + + + +## V1.0.6(2020-07-16) +1. 新增:底部导航购物车角标 +2. 新增:单规格商品选择 +3. 新增: 分享海报权限控制,必须得登录 +4. 修复:自定义底部导航,带参报错 +5. 修复:拼团商品数量选择限制 +6. 修复:头部搜索为空查询。 +7. 优化:我的拼团下拉刷新 +8. 优化:商品下架,详情提醒 +9. 以及后台相关修改优化。 + + +## V1.0.5(2020-07-10) +1. 新增:自定义底部导航。后台返回底部导航数据,跳转任意页面,如果没有默认使用原生导航。 +2. 新增:悬浮工具按钮。后台控制按钮显示页面, 工具按钮可以是弹窗,也可跳转页面。 +3. 新增: 广告弹窗。后台控制弹窗显示页面,单次或者多次。 +4. 新增:小程序分包。优化了不能开发模式不能预览,相应速度。 +5. 新增: easycom组件引入。减少繁琐的组件引入(控制台提示的分包建议并不合理,可以忽略) +6. 修复:支付宝部分退款问题 +7. 修复:小程序用户登录,无感登录支付 +8. 修复:商品分类优化 +9. 修复:小程序端授权登录session_key时效问题 +10. 优化部分UI界面性能体验,更多后台新增功能可去官网体验~ + +## V1.0.4(2020-06-09) +1.首次开源发布 + + + + diff --git a/androidPrivacy.json b/androidPrivacy.json new file mode 100644 index 0000000..a78485c --- /dev/null +++ b/androidPrivacy.json @@ -0,0 +1,3 @@ +{ + "prompt" : "none" +} diff --git a/components/shopro-auth-modal/shopro-auth-modal.vue b/components/shopro-auth-modal/shopro-auth-modal.vue new file mode 100644 index 0000000..8499167 --- /dev/null +++ b/components/shopro-auth-modal/shopro-auth-modal.vue @@ -0,0 +1,992 @@ + + + + + diff --git a/components/shopro-canvas/shopro-canvas.vue b/components/shopro-canvas/shopro-canvas.vue new file mode 100644 index 0000000..004e139 --- /dev/null +++ b/components/shopro-canvas/shopro-canvas.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/components/shopro-coupon/shopro-coupon.vue b/components/shopro-coupon/shopro-coupon.vue new file mode 100644 index 0000000..16b3ed9 --- /dev/null +++ b/components/shopro-coupon/shopro-coupon.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/components/shopro-empty/shopro-empty.vue b/components/shopro-empty/shopro-empty.vue new file mode 100644 index 0000000..7ceb170 --- /dev/null +++ b/components/shopro-empty/shopro-empty.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/components/shopro-float-btn/shopro-float-btn.vue b/components/shopro-float-btn/shopro-float-btn.vue new file mode 100644 index 0000000..dc50a2e --- /dev/null +++ b/components/shopro-float-btn/shopro-float-btn.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/components/shopro-goods-card/shopro-goods-card.vue b/components/shopro-goods-card/shopro-goods-card.vue new file mode 100644 index 0000000..2aa27ca --- /dev/null +++ b/components/shopro-goods-card/shopro-goods-card.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/components/shopro-live-card/shopro-live-card.vue b/components/shopro-live-card/shopro-live-card.vue new file mode 100644 index 0000000..3ea10b3 --- /dev/null +++ b/components/shopro-live-card/shopro-live-card.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/components/shopro-mini-card/shopro-mini-card.vue b/components/shopro-mini-card/shopro-mini-card.vue new file mode 100644 index 0000000..ab6ba0b --- /dev/null +++ b/components/shopro-mini-card/shopro-mini-card.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/components/shopro-navbar/shopro-navbar.vue b/components/shopro-navbar/shopro-navbar.vue new file mode 100644 index 0000000..faa863c --- /dev/null +++ b/components/shopro-navbar/shopro-navbar.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/components/shopro-notice-modal/shopro-notice-modal.vue b/components/shopro-notice-modal/shopro-notice-modal.vue new file mode 100644 index 0000000..5fc954e --- /dev/null +++ b/components/shopro-notice-modal/shopro-notice-modal.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/components/shopro-share/shopro-share.vue b/components/shopro-share/shopro-share.vue new file mode 100644 index 0000000..c451b25 --- /dev/null +++ b/components/shopro-share/shopro-share.vue @@ -0,0 +1,571 @@ + + + + diff --git a/components/shopro-sku/shopro-sku.vue b/components/shopro-sku/shopro-sku.vue new file mode 100644 index 0000000..14044c9 --- /dev/null +++ b/components/shopro-sku/shopro-sku.vue @@ -0,0 +1,589 @@ + + + + + diff --git a/components/shopro-tabbar/shopro-tabbar.vue b/components/shopro-tabbar/shopro-tabbar.vue new file mode 100644 index 0000000..9998f08 --- /dev/null +++ b/components/shopro-tabbar/shopro-tabbar.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/env.js b/env.js new file mode 100644 index 0000000..8bb7f8f --- /dev/null +++ b/env.js @@ -0,0 +1,18 @@ +/** + * Shopro全局配置文件 v1.4.0 + */ + +// 接口根域名 https://demo.shopro.top +export const BASE_URL = 'https://demo.shopro.top' + +// 接口路径 +export const API_URL = `${BASE_URL}/addons/shopro/` + +// 全局网络图片地址变量,css背景图片地址变量在uni.scss中定义 +export const IMG_URL = 'https://file.shopro.top' + +//高德地图开发者Web服务key,逆坐标解析必须 +export const MAP_KEY = '2658492***4a9ac5839753dc' + +//后台是否开通直播权限,根据情况在manifest.json中引入直播插件,并在pages.json中打开直播页面 +export const HAS_LIVE = false diff --git a/main.js b/main.js new file mode 100644 index 0000000..3a3e9a8 --- /dev/null +++ b/main.js @@ -0,0 +1,33 @@ +import Vue from "vue"; +import App from "./App"; +import { + router, + RouterMount +} from "@/shopro/router"; +import store from "@/shopro/store"; +import uView from "uview-ui"; +import shopro from "@/shopro"; + + +async function bootstrap() { + App.mpType = "app"; + //引入路由 + Vue.use(router); + // 引入全局uView + Vue.use(uView); + // 加载shopro + Vue.use(shopro); + + const app = new Vue({ + store, + ...App + }); + // #ifdef H5 + RouterMount(app, router, "#app"); + // #endif + // #ifndef H5 + app.$mount(); + // #endif +} + +bootstrap(); diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..6d0a852 --- /dev/null +++ b/manifest.json @@ -0,0 +1,233 @@ +{ + "name" : "Shopro商城", + "appid" : "__UNI_*****06", + "description" : "Shopro商城", + "versionName" : "1.4.0", + "versionCode" : 140, + "transformPx" : false, + "app-plus" : { + "optimization" : { + "subPackages" : true + }, + "runmode" : "liberate", + "safearea" : { + "background" : "#fff", + "bottom" : { + "offset" : "auto" + } + }, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 200 + }, + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "compilerVersion" : 3, + "modules" : { + "Geolocation" : {}, + "Maps" : {}, + "OAuth" : {}, + "Payment" : {}, + "Share" : {}, + "VideoPlayer" : {} + }, + "distribute" : { + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ] + }, + "ios" : { + "capabilities" : { + "entitlements" : { + "com.apple.developer.associated-domains" : [ "applinks:m.*****.top" ] + } + }, + "privacyDescription" : { + "NSLocationAlwaysAndWhenInUseUsageDescription" : "需要同意获取您的位置信息才能展示附近信息", + "NSLocationAlwaysUsageDescription" : "需要同意获取您的位置信息才能展示附近信息", + "NSLocationWhenInUseUsageDescription" : "需要同意获取您的位置信息才能展示附近信息", + "NSPhotoLibraryAddUsageDescription" : "需要同意访问您的相册才能保存图片", + "NSPhotoLibraryUsageDescription" : "需要同意访问您的相册才能选取图片", + "NSCameraUsageDescription" : "需要同意访问您的摄像头才能拍摄照片", + "NSUserTrackingUsageDescription" : "请放心,开启权限不会获取您在其他站点的隐私信息,该权限仅用于标识设备并保障服务安全与提升浏览体验" + } + }, + "sdkConfigs" : { + "ad" : {}, + "payment" : { + "alipay" : { + "__platform__" : [ "ios", "android" ] + }, + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "wx522b*****ae", + "UniversalLinks" : "https://m.*****.top/uni-universallinks/__U*****" + } + }, + "geolocation" : { + "amap" : { + "__platform__" : [ "android" ], + "appkey_ios" : "949f86b55f*****de010206494", + "appkey_android" : "0d51d7*****ebf2bcbe264dac409" + } + }, + "maps" : { + "amap" : { + "appkey_ios" : "949f86b55f*****de010206494", + "appkey_android" : "0d51d7a*****f2bcbe264dac409" + } + }, + "oauth" : { + "weixin" : { + "appid" : "wx522b*****319ae", + "appsecret" : "531b39d953f9*****e83c7238fb4dc", + "UniversalLinks" : "https://m.*****.top/uni-universallinks/__UNI__EB95F06" + }, + "apple" : {} + }, + "share" : { + "weixin" : { + "appid" : "wx522*****319ae", + "UniversalLinks" : "https://m.*****.top/uni-universallinks/__UNI__EB95F06" + } + }, + "push" : {} + }, + "icons" : { + "android" : { + "hdpi" : "", + "xhdpi" : "", + "xxhdpi" : "", + "xxxhdpi" : "" + }, + "ios" : { + "appstore" : "", + "ipad" : { + "app" : "", + "app@2x" : "", + "notification" : "", + "notification@2x" : "", + "proapp@2x" : "", + "settings" : "", + "settings@2x" : "", + "spotlight" : "", + "spotlight@2x" : "" + }, + "iphone" : { + "app@2x" : "", + "app@3x" : "", + "notification@2x" : "", + "notification@3x" : "", + "settings@2x" : "", + "settings@3x" : "", + "spotlight@2x" : "", + "spotlight@3x" : "" + } + } + }, + "splashscreen" : { + "useOriginalMsgbox" : false + } + }, + "kernel" : { + "ios" : "WKWebview" + } + }, + "quickapp" : {}, + "mp-weixin" : { + "appid" : "wx3*****67dd0", + "setting" : { + "urlCheck" : false, + "es6" : true, //消除大多数样式警告 + "minified" : true, + "postcss" : true, + "checkSiteMap" : false // 关闭页面索引检测 + }, + "optimization" : { + "subPackages" : true + }, + "plugins" : {}, + //这段代码,需要放到plugins中。 + //只有后台开通小程序直播功能权限,才可以打开,不然报错,程序无法运行。 + // "live-player-plugin": { + // "version": "1.3.2", // 注意填写该直播组件最新版本号,微信开发者工具调试时可获取最新版本号 + // "provider": "wx2b03c6e691cd7370" // 必须填该直播组件appid,该示例值即为直播组件appid + // } + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "计算附近商家位置" + } + }, + "requiredPrivateInfos" : [ "getLocation", "chooseLocation", "chooseAddress" ] + }, + "mp-alipay" : { + "usingComponents" : true, + "component2" : true + }, + "mp-qq" : { + "appid" : "" + }, + "mp-baidu" : { + "usingComponents" : true, + "appid" : "" + }, + "mp-toutiao" : { + "usingComponents" : true, + "appid" : "" + }, + "h5" : { + "template" : "template.h5.html", + "router" : { + "mode" : "history", + "base" : "" + }, + "optimization" : { + "treeShaking" : { + "enable" : true + } + }, + "title" : "Shopro商城", + "devServer" : { + "https" : false, + "port" : "" + }, + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "4NRBZ-CM*****-ARYXH-DCFH3" + } + } + }, + "domain" : "*****" + }, + "_spaceID" : "f0536a*****8350-2aa7c3e11334" +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3238a99 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,138 @@ +{ + "name": "shopro-plus", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "shopro-plus", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "jweixin-module": "^1.6.0", + "uni-read-pages": "^1.0.5", + "uni-simple-router": "^2.0.6", + "vconsole": "^3.7.0" + }, + "devDependencies": {} + }, + "node_modules/@babel/runtime": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/core-js": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", + "hasInstallScript": true + }, + "node_modules/jweixin-module": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz", + "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==" + }, + "node_modules/mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/uni-read-pages": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz", + "integrity": "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==", + "hasInstallScript": true + }, + "node_modules/uni-simple-router": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.7.tgz", + "integrity": "sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA==" + }, + "node_modules/vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.23.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==" + }, + "core-js": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==" + }, + "jweixin-module": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz", + "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==" + }, + "mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "uni-read-pages": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz", + "integrity": "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==" + }, + "uni-simple-router": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.7.tgz", + "integrity": "sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA==" + }, + "vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", + "requires": { + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..752b733 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "shopro-plus", + "version": "1.0.0", + "main": "main.js", + "scripts": { + "test": "" + }, + "repository": { + "type": "git", + "url": "" + }, + "keywords": [], + "author": "", + "license": "ISC", + "homepage": "", + "dependencies": { + "jweixin-module": "^1.6.0", + "uni-read-pages": "^1.0.5", + "uni-simple-router": "^2.0.6", + "vconsole": "^3.7.0" + }, + "description": "", + "devDependencies": {} +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..42d88fb --- /dev/null +++ b/pages.json @@ -0,0 +1,921 @@ +{ + "easycom": { + "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue", + "^shopro-(.*)": "@/components/shopro-$1/shopro-$1.vue" + }, + + "pages": [{ + "path": "pages/index/index", + "aliasPath": "/", //对于h5端你必须在首页加上aliasPath并设置为/ + "style": { + "navigationBarTitleText": "首页", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true, + "navigationStyle": "custom", + "mp-alipay": { + "transparentTitle": "always", + "titlePenetrate": "YES", + "allowsBounceVertical": "NO" + } + }, + "meta": { + "auth": false, //需要登录 + "async": true, //是否同步 + "title": "首页", //标题 + "group": "商城" //分组 + } + }, + { + "path": "pages/index/category", + "style": { + "navigationBarTitleText": "分类" + }, + "meta": { + "auth": false, + "async": true, + "title": "分类", + "group": "商城" + } + }, + { + "path": "pages/index/cart", + "style": { + "navigationBarTitleText": "购物车" + }, + "meta": { + "auth": false, + "async": true, + "title": "购物车", + "group": "商城" + } + }, + { + "path": "pages/index/user", + "style": { + "navigationBarTitleText": "我的", + "navigationStyle": "custom", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true + }, + "meta": { + "auth": false, + "async": true, + "title": "我的", + "group": "商城" + } + }, + { + "path": "pages/index/view", + "name": "view", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": true + + }, + "meta": { + "auth": false, + "async": true, + "title": "自定义页面", + "group": "商城" + } + } + ], + "subPackages": [{ + "root": "pages/activity", + "pages": [{ + "path": "sign/index", + "style": { + "navigationBarTitleText": "签到中心" + }, + "meta": { + "auth": true, + "async": true, + "title": "签到中心", + "group": "应用" + } + }, + { + "path": "seckill/list", + "style": { + "navigationBarTitleText": "限时秒杀", + "enablePullDownRefresh": true + }, + "meta": { + "auth": false, + "async": true, + "title": "限时秒杀", + "group": "秒杀" + } + }, + { + "path": "groupon/list", + "style": { + "navigationBarTitleText": "今日必拼", + "enablePullDownRefresh": true + }, + "meta": { + "auth": false, + "async": true, + "title": "今日必拼", + "group": "拼团" + } + }, + { + "path": "groupon/detail", + "style": { + "navigationBarTitleText": "拼团详情", + "enablePullDownRefresh": true + }, + "meta": { + "auth": false, + "async": false, + "title": "拼团详情", + "group": "拼团" + } + }, + { + "path": "groupon/my-groupon", + "style": { + "navigationBarTitleText": "我的拼团", + "enablePullDownRefresh": true + }, + "meta": { + "auth": true, + "async": true, + "title": "我的拼团", + "group": "拼团" + } + }, + { + "path": "discounts/list", + "style": { + "navigationBarTitleText": "优惠活动商品" + }, + "meta": { + "auth": false, + "async": false, + "title": "优惠活动商品", + "group": "活动" + } + } + ] + }, + { + "root": "pages/app", + "pages": [ + // { + // "path": "live/list", + // "style": { + // "navigationBarTitleText": "直播列表" + // }, + // "meta": { + // "auth": false, + // "async": false, + // "title": "直播列表", + // "group": "直播" + // } + // }, + { + "path": "score/list", + "style": { + "navigationBarTitleText": "积分商品" + }, + "meta": { + "auth": false, + "async": true, + "title": "积分商品", + "group": "积分" + } + }, + { + "path": "coupon/list", + "style": { + "navigationBarTitleText": "优惠券中心", + "navigationStyle": "custom" + + + }, + "meta": { + "auth": true, + "async": true, + "title": "优惠券中心", + "group": "优惠券" + } + }, { + "path": "coupon/detail", + "style": { + "navigationBarTitleText": "优惠券详情", + "navigationStyle": "custom" + }, + "meta": { + "auth": true, + "async": true, + "title": "优惠券详情", + "group": "优惠券" + } + }, + { + "path": "merchant/index", + "style": { + "navigationBarTitleText": "门店中心", + "navigationStyle": "custom", + "enablePullDownRefresh": true, + "navigationBarTextStyle": "white" + + }, + "meta": { + "auth": true, + "async": false, + "title": "门店中心", + "group": "门店" + } + }, + { + "path": "merchant/apply", + "style": { + "navigationBarTitleText": "门店入驻", + "navigationStyle": "custom" + }, + "meta": { + "auth": true, + "async": true, + "title": "门店入驻", + "group": "门店" + } + }, + { + "path": "merchant/detail", + "style": { + "navigationBarTitleText": "订单详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "订单详情", + "group": "订单" + } + }, + { + "path": "merchant/info", + "style": { + "navigationBarTitleText": "门店详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "门店详情", + "group": "门店" + } + }, + { + "path": "merchant/list", + "style": { + "navigationBarTitleText": "我的门店" + }, + "meta": { + "auth": true, + "async": true, + "title": "我的门店", + "group": "门店" + } + }, + { + "path": "commission/index", + "style": { + "navigationBarTitleText": "分销中心", + "enablePullDownRefresh": true, + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + }, + "meta": { + "auth": true, + "async": true, + "title": "分销中心", + "group": "分销" + } + }, + { + "path": "commission/team", + "style": { + "navigationBarTitleText": "我的团队", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + }, + "meta": { + "auth": true, + "async": true, + "title": "我的团队", + "group": "分销" + } + }, + { + "path": "commission/commission-log", + "style": { + "navigationBarTitleText": "佣金明细", + "enablePullDownRefresh": true + }, + "meta": { + "auth": true, + "async": true, + "title": "佣金明细", + "group": "分销" + } + }, + { + "path": "commission/order", + "style": { + "navigationBarTitleText": "分销订单", + "navigationStyle": "custom", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true + }, + "meta": { + "auth": true, + "async": true, + "title": "分销订单", + "group": "分销" + } + }, + { + "path": "commission/goods", + "style": { + "navigationBarTitleText": "推广商品" + + + }, + "meta": { + "auth": true, + "async": true, + "title": "推广商品", + "group": "分销" + } + }, + { + "path": "commission/apply", + "style": { + "navigationBarTitleText": "申请分销商", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + + }, + "meta": { + "auth": true, + "async": true, + "title": "申请分销商", + "group": "分销" + } + }, + { + "path": "commission/rankings", + "style": { + "navigationBarTitleText": "分销排行", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + + }, + "meta": { + "auth": true, + "async": true, + "title": "分销排行", + "group": "分销" + } + }, + { + "path": "commission/share-log", + "style": { + "navigationBarTitleText": "分享记录", + "navigationStyle": "custom", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true + + }, + "meta": { + "auth": true, + "async": false, + "title": "分享记录", + "group": "分销" + } + } + + ] + }, + { + "root": "pages/goods", + "pages": [{ + "path": "list", + "style": { + "navigationBarTitleText": "商品列表", + "navigationStyle": "custom" + }, + "meta": { + "auth": false, + "async": true, + "title": "商品列表", + "group": "商品" + } + }, + { + "path": "detail", + "style": { + "navigationBarTitleText": "商品详情", + "navigationStyle": "custom" + }, + "meta": { + "auth": false, + "async": true, + "title": "商品详情", + "group": "商品" + } + }, + { + "path": "comment/add-comment", + "style": { + "navigationBarTitleText": "评价" + }, + "meta": { + "auth": false, + "async": false, + "title": "评价", + "group": "商品" + } + }, + { + "path": "comment/comment-list", + "style": { + "navigationBarTitleText": "评价列表" + }, + "meta": { + "auth": false, + "async": false, + "title": "评价列表", + "group": "商品" + } + } + ] + }, + { + "root": "pages/order", + "pages": [{ + "path": "confirm", + "style": { + "navigationBarTitleText": "确认订单" + }, + "meta": { + "auth": true, + "async": false, + "title": "确认订单", + "group": "订单" + } + }, + { + "path": "payment/method", + "style": { + "navigationBarTitleText": "收银台" + }, + "meta": { + "auth": true, + "async": false, + "title": "收银台", + "group": "订单" + } + }, + { + "path": "payment/result", + "style": { + "navigationBarTitleText": "支付结果" + }, + "meta": { + "auth": false, + "async": false, + "title": "支付结果", + "group": "订单" + } + }, + { + "path": "list", + "style": { + "navigationBarTitleText": "订单列表" + }, + "meta": { + "auth": true, + "async": true, + "title": "订单列表", + "group": "订单" + } + }, + { + "path": "detail", + "style": { + "navigationBarTitleText": "订单详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "订单详情", + "group": "订单" + } + }, + { + "path": "after-sale/detail", + "style": { + "navigationBarTitleText": "售后详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "售后详情", + "group": "订单" + } + }, + { + "path": "after-sale/list", + "style": { + "navigationBarTitleText": "售后列表" + }, + "meta": { + "auth": true, + "async": true, + "title": "售后列表", + "group": "订单" + } + }, + { + "path": "after-sale/log", + "style": { + "navigationBarTitleText": "售后记录" + }, + "meta": { + "auth": true, + "async": false, + "title": "售后记录", + "group": "订单" + } + }, + { + "path": "after-sale/refund", + "style": { + "navigationBarTitleText": "申请售后" + }, + "meta": { + "auth": true, + "async": false, + "title": "申请售后", + "group": "订单" + } + }, + { + "path": "express/distribution-detail", + "style": { + "navigationBarTitleText": "配送详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "配送详情", + "group": "订单" + } + }, + { + "path": "express/express-detail", + "style": { + "navigationBarTitleText": "物流详情" + }, + "meta": { + "auth": true, + "async": false, + "title": "物流详情", + "group": "订单" + } + }, + { + "path": "express/express-list", + "style": { + "navigationBarTitleText": "包裹列表" + }, + "meta": { + "auth": true, + "async": false, + "title": "包裹列表", + "group": "订单" + } + }, + + { + "path": "express/store-address", + "style": { + "navigationBarTitleText": "选择自提点", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + + }, + "meta": { + "auth": true, + "async": false, + "title": "选择自提点", + "group": "订单" + } + } + + ] + }, + { + "root": "pages/public", + "pages": [{ + "path": "faq", + "style": { + "navigationBarTitleText": "常见问题" + }, + "meta": { + "auth": false, + "async": true, + "title": "常见问题", + "group": "通用" + } + }, + { + "path": "feedback", + "style": { + "navigationBarTitleText": "问题反馈" + }, + "meta": { + "auth": true, + "async": true, + "title": "问题反馈", + "group": "通用" + } + }, + { + "path": "chat/index", + "style": { + "navigationBarTitleText": "客服", + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + + }, + "meta": { + "auth": true, + "async": true, + "title": "客服", + "group": "通用" + } + }, + { + "path": "search", + "style": { + "navigationBarTitleText": "搜索" + }, + "meta": { + "auth": false, + "async": true, + "title": "搜索", + "group": "通用" + } + }, + { + "path": "richtext", + "style": { + "navigationBarTitleText": "" + }, + "meta": { + "auth": false, + "async": true, + "title": "富文本", + "group": "通用" + } + }, + { + "path": "webview", + "style": { + "navigationBarTitleText": "" + }, + "meta": { + "auth": false, + "async": true, + "title": "外链", + "group": "通用" + } + }, + { + "path": "404", + "name": "404", + "style": { + "navigationBarTitleText": "页面不存在" + } + }, + { + "path": "loading", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom", + "enablePullDownRefresh": false + } + + } + ] + }, + { + "root": "pages/user", + "pages": [{ + "path": "info", + "style": { + "navigationBarTitleText": "个人信息" + }, + "meta": { + "auth": true, + "async": true, + "title": "个人信息", + "group": "用户" + } + }, + { + "path": "set", + "style": { + "navigationBarTitleText": "系统设置" + }, + "meta": { + "auth": false, + "async": true, + "title": "系统设置", + "group": "通用" + } + }, + { + "path": "view-log", + "style": { + "navigationBarTitleText": "浏览足迹" + }, + "meta": { + "auth": true, + "async": true, + "title": "浏览足迹", + "group": "用户" + } + }, + { + "path": "wallet/index", + "style": { + "navigationBarTitleText": "我的钱包" + + }, + "meta": { + "auth": true, + "async": true, + "title": "钱包", + "group": "用户" + } + }, + { + "path": "wallet/withdraw", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + + }, + "meta": { + "auth": true, + "async": true, + "title": "提现", + "group": "用户" + } + }, + { + "path": "wallet/withdraw-log", + "style": { + "navigationBarTitleText": "提现记录" + + }, + "meta": { + "auth": true, + "async": true, + "title": "提现记录", + "group": "用户" + } + }, + { + "path": "wallet/top-up", + "style": { + "navigationBarTitleText": "充值", + "navigationStyle": "custom" + + }, + "meta": { + "auth": true, + "async": true, + "title": "充值", + "group": "用户" + } + }, + { + "path": "wallet/top-up-log", + "style": { + "navigationBarTitleText": "充值记录" + + }, + "meta": { + "auth": true, + "async": true, + "title": "充值记录", + "group": "用户" + } + }, + { + "path": "wallet/score-balance", + "style": { + "navigationBarTitleText": "积分余额", + "navigationStyle": "custom" + + }, + "meta": { + "auth": true, + "async": true, + "title": "积分余额", + "group": "积分" + } + }, + { + "path": "address/list", + "style": { + "navigationBarTitleText": "收货地址" + + }, + "meta": { + "auth": true, + "async": true, + "title": "收货地址", + "group": "用户" + } + }, + { + "path": "address/edit", + "style": { + "navigationBarTitleText": "" + + }, + "meta": { + "auth": true, + "async": false, + "title": "修改地址", + "group": "用户" + } + }, + { + "path": "favorite", + "style": { + "navigationBarTitleText": "我的收藏" + }, + "meta": { + "auth": true, + "async": true, + "title": "我的收藏", + "group": "用户" + } + } + ] + } + ], + "preloadRule": { + "pages/index/index": { + "network": "all", + "packages": ["pages/activity", "pages/user", "pages/goods", "pages/app", "pages/public", + "pages/order" + ] + } + }, + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "shopro-plus", + "navigationBarBackgroundColor": "#FFFFFF", + "backgroundColor": "#FFFFFF" + }, + "tabBar": { + "color": "#333", + "selectedColor": "#a8700d", + "backgroundColor": "#ffffff", + "borderStyle": "black", + "list": [{ + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "static/images/tabbar/tabbar_home.png", + "selectedIconPath": "/static/images/tabbar/tabbar_home1.png" + }, + { + "pagePath": "pages/index/category", + "text": "分类", + "iconPath": "static/images/tabbar/tabbar_category.png", + "selectedIconPath": "/static/images/tabbar/tabbar_category1.png" + }, + { + "pagePath": "pages/index/cart", + "text": "购物车", + "iconPath": "static/images/tabbar/tabbar_cart.png", + "selectedIconPath": "/static/images/tabbar/tabbar_cart1.png" + }, + { + "pagePath": "pages/index/user", + "text": "我的", + "iconPath": "static/images/tabbar/tabbar_personal.png", + "selectedIconPath": "/static/images/tabbar/tabbar_personal1.png" + } + ] + } +} diff --git a/pages/activity/discounts/list.vue b/pages/activity/discounts/list.vue new file mode 100644 index 0000000..b2d2163 --- /dev/null +++ b/pages/activity/discounts/list.vue @@ -0,0 +1,227 @@ + + + + + + diff --git a/pages/activity/groupon/detail.vue b/pages/activity/groupon/detail.vue new file mode 100644 index 0000000..9e42faa --- /dev/null +++ b/pages/activity/groupon/detail.vue @@ -0,0 +1,371 @@ + + + + + + diff --git a/pages/activity/groupon/list.vue b/pages/activity/groupon/list.vue new file mode 100644 index 0000000..c02bb36 --- /dev/null +++ b/pages/activity/groupon/list.vue @@ -0,0 +1,246 @@ + + + + + + diff --git a/pages/activity/groupon/my-groupon.vue b/pages/activity/groupon/my-groupon.vue new file mode 100644 index 0000000..d11fcbf --- /dev/null +++ b/pages/activity/groupon/my-groupon.vue @@ -0,0 +1,247 @@ + + + + + + diff --git a/pages/activity/seckill/list.vue b/pages/activity/seckill/list.vue new file mode 100644 index 0000000..4e58205 --- /dev/null +++ b/pages/activity/seckill/list.vue @@ -0,0 +1,248 @@ + + + + + + diff --git a/pages/activity/sign/index.vue b/pages/activity/sign/index.vue new file mode 100644 index 0000000..bdced6e --- /dev/null +++ b/pages/activity/sign/index.vue @@ -0,0 +1,361 @@ + + + + + + diff --git a/pages/app/commission/apply.vue b/pages/app/commission/apply.vue new file mode 100644 index 0000000..9da398c --- /dev/null +++ b/pages/app/commission/apply.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/pages/app/commission/commission-log.vue b/pages/app/commission/commission-log.vue new file mode 100644 index 0000000..52c49a9 --- /dev/null +++ b/pages/app/commission/commission-log.vue @@ -0,0 +1,393 @@ + + + + + + diff --git a/pages/app/commission/goods.vue b/pages/app/commission/goods.vue new file mode 100644 index 0000000..d76f9d9 --- /dev/null +++ b/pages/app/commission/goods.vue @@ -0,0 +1,167 @@ + + + + + + diff --git a/pages/app/commission/index.vue b/pages/app/commission/index.vue new file mode 100644 index 0000000..bf12aa9 --- /dev/null +++ b/pages/app/commission/index.vue @@ -0,0 +1,855 @@ + + + + + + diff --git a/pages/app/commission/order.vue b/pages/app/commission/order.vue new file mode 100644 index 0000000..b7d332b --- /dev/null +++ b/pages/app/commission/order.vue @@ -0,0 +1,497 @@ + + + + + + diff --git a/pages/app/commission/rankings.vue b/pages/app/commission/rankings.vue new file mode 100644 index 0000000..809cf85 --- /dev/null +++ b/pages/app/commission/rankings.vue @@ -0,0 +1,148 @@ + + + + + + diff --git a/pages/app/commission/share-log.vue b/pages/app/commission/share-log.vue new file mode 100644 index 0000000..14b8e24 --- /dev/null +++ b/pages/app/commission/share-log.vue @@ -0,0 +1,255 @@ + + + + + + diff --git a/pages/app/commission/team.vue b/pages/app/commission/team.vue new file mode 100644 index 0000000..42b71d2 --- /dev/null +++ b/pages/app/commission/team.vue @@ -0,0 +1,344 @@ + + + + + + diff --git a/pages/app/components/sh-collapse-item.vue b/pages/app/components/sh-collapse-item.vue new file mode 100644 index 0000000..64eb503 --- /dev/null +++ b/pages/app/components/sh-collapse-item.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/pages/app/coupon/detail.vue b/pages/app/coupon/detail.vue new file mode 100644 index 0000000..314fe52 --- /dev/null +++ b/pages/app/coupon/detail.vue @@ -0,0 +1,247 @@ + + + + + + diff --git a/pages/app/coupon/list.vue b/pages/app/coupon/list.vue new file mode 100644 index 0000000..7147024 --- /dev/null +++ b/pages/app/coupon/list.vue @@ -0,0 +1,176 @@ + + + + + + diff --git a/pages/app/live/list.vue b/pages/app/live/list.vue new file mode 100644 index 0000000..3ee250e --- /dev/null +++ b/pages/app/live/list.vue @@ -0,0 +1,216 @@ + + + + + + diff --git a/pages/app/merchant/apply.vue b/pages/app/merchant/apply.vue new file mode 100644 index 0000000..b4416c5 --- /dev/null +++ b/pages/app/merchant/apply.vue @@ -0,0 +1,598 @@ + + + + + + diff --git a/pages/app/merchant/detail.vue b/pages/app/merchant/detail.vue new file mode 100644 index 0000000..efe07e6 --- /dev/null +++ b/pages/app/merchant/detail.vue @@ -0,0 +1,227 @@ + + + + + + diff --git a/pages/app/merchant/index.vue b/pages/app/merchant/index.vue new file mode 100644 index 0000000..1078028 --- /dev/null +++ b/pages/app/merchant/index.vue @@ -0,0 +1,618 @@ + + + + + + diff --git a/pages/app/merchant/info.vue b/pages/app/merchant/info.vue new file mode 100644 index 0000000..bafb536 --- /dev/null +++ b/pages/app/merchant/info.vue @@ -0,0 +1,115 @@ + + + + + + diff --git a/pages/app/merchant/list.vue b/pages/app/merchant/list.vue new file mode 100644 index 0000000..c7cef81 --- /dev/null +++ b/pages/app/merchant/list.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/pages/app/score/list.vue b/pages/app/score/list.vue new file mode 100644 index 0000000..7742af8 --- /dev/null +++ b/pages/app/score/list.vue @@ -0,0 +1,105 @@ + + + + + + diff --git a/pages/goods/comment/add-comment.vue b/pages/goods/comment/add-comment.vue new file mode 100644 index 0000000..77bad49 --- /dev/null +++ b/pages/goods/comment/add-comment.vue @@ -0,0 +1,210 @@ + + + + + + diff --git a/pages/order/components/sh-select-coupon.vue b/pages/order/components/sh-select-coupon.vue new file mode 100644 index 0000000..63977ad --- /dev/null +++ b/pages/order/components/sh-select-coupon.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/pages/order/confirm.vue b/pages/order/confirm.vue new file mode 100644 index 0000000..dc14bd5 --- /dev/null +++ b/pages/order/confirm.vue @@ -0,0 +1,2059 @@ + + + + + + diff --git a/pages/order/detail.vue b/pages/order/detail.vue new file mode 100644 index 0000000..5983d0d --- /dev/null +++ b/pages/order/detail.vue @@ -0,0 +1,742 @@ + + + + + + diff --git a/pages/order/express/distribution-detail.vue b/pages/order/express/distribution-detail.vue new file mode 100644 index 0000000..7262446 --- /dev/null +++ b/pages/order/express/distribution-detail.vue @@ -0,0 +1,407 @@ + + + + + + diff --git a/pages/order/express/express-detail.vue b/pages/order/express/express-detail.vue new file mode 100644 index 0000000..75bf2d3 --- /dev/null +++ b/pages/order/express/express-detail.vue @@ -0,0 +1,217 @@ + + + + + + diff --git a/pages/order/express/express-list.vue b/pages/order/express/express-list.vue new file mode 100644 index 0000000..98876e2 --- /dev/null +++ b/pages/order/express/express-list.vue @@ -0,0 +1,114 @@ + + + + + + diff --git a/pages/order/express/store-address.vue b/pages/order/express/store-address.vue new file mode 100644 index 0000000..c6ebc77 --- /dev/null +++ b/pages/order/express/store-address.vue @@ -0,0 +1,351 @@ + + + + + + diff --git a/pages/order/list.vue b/pages/order/list.vue new file mode 100644 index 0000000..5c1523f --- /dev/null +++ b/pages/order/list.vue @@ -0,0 +1,407 @@ + + + + + diff --git a/pages/order/payment/method.vue b/pages/order/payment/method.vue new file mode 100644 index 0000000..e8f5fe2 --- /dev/null +++ b/pages/order/payment/method.vue @@ -0,0 +1,255 @@ + + + + + + diff --git a/pages/order/payment/result.vue b/pages/order/payment/result.vue new file mode 100644 index 0000000..0e128b3 --- /dev/null +++ b/pages/order/payment/result.vue @@ -0,0 +1,287 @@ + + + + + + diff --git a/pages/public/404.vue b/pages/public/404.vue new file mode 100644 index 0000000..67a5cee --- /dev/null +++ b/pages/public/404.vue @@ -0,0 +1,8 @@ + + + + + diff --git a/pages/public/chat/index.vue b/pages/public/chat/index.vue new file mode 100644 index 0000000..f51291d --- /dev/null +++ b/pages/public/chat/index.vue @@ -0,0 +1,55 @@ + + + + + + diff --git a/pages/public/chat/shopro/chat.js b/pages/public/chat/shopro/chat.js new file mode 100644 index 0000000..679ea22 --- /dev/null +++ b/pages/public/chat/shopro/chat.js @@ -0,0 +1,161 @@ +/** + * shopro + * 聊天配置,socket服务相关,心跳检测和重连 + */ + +/** + * socket + * @param {Object} config - 初始化配置对象 + * @param {Number} wait = [10000] - 心跳频率 + */ + +import { + BASE_URL +} from '@/env.js' + +const service = BASE_URL.split('://')[1].split(':')[0]; + +export default class Socket { + constructor(initData, callback) { + let { + ping, + is_ssl, + gateway_port, + ssl_type + } = initData; + + let url = `${is_ssl?'wss':'ws'}://${service}:${gateway_port}/` + if (is_ssl && ssl_type === 'reverse_proxy') { + url = `wss://${service}/websocket/` + } + this.config = { + url: url, + session_id: uni.getStorageSync('chatSessionId'), + token: uni.getStorageSync('token'), + identify: 'user' + }; + this.callback = callback; //onmsg回调 + this.timeoutObj = null; //心跳检测定时器对象 + this.lockReconnect = false; //检测次数锁 + this.isClose = false; //链接断开 + this.timer = null; // 检测定时器 + this.limit = 0; //检测次数,默认最大12 + this.timout = ping; + uni.setStorageSync('isSocketOpen', false) + this.init() + } + + // 初始化 + async init() { + await this.connect(); + } + + // 连接 + async connect() { + if (!uni.getStorageSync('isSocketOpen')) { + let [error, res] = await uni.connectSocket({ + url: `${this.config.url}?identify=${this.config.identify}&token=${this.config.token}&session_id=${this.config.session_id}` + }); + if (res.errMsg === 'connectSocket:ok') { + this.initEventHandle(); + } + } + } + + // 发送消息 + async send(msg = "") { + if (uni.getStorageSync('isSocketOpen')) { + let [error, res] = await uni.sendSocketMessage({ + data: msg + }); + return Promise.resolve(res); + } + } + + // 监听消息 + onMsg() { + uni.onSocketMessage(res => { + if (res.code === 1 && res.type === 'init') { + this.config.session_id = res.data.session_id; + } + this.callback(res) + }); + } + + // 关闭连接 + close() { + uni.closeSocket(); + uni.removeStorage({ + key: 'isSocketOpen', + success: (res) => { + console.log('移除isSocketOpensuccess'); + } + }); + clearTimeout(this.timer); + clearTimeout(this.timeoutObj); + } + + //心跳检测 + start() { + clearTimeout(this.timeoutObj); + this.timeoutObj = setTimeout(() => { + let obj = { + type: 'ping' + }; + let objStr = JSON.stringify(obj) + uni.sendSocketMessage({ + data: objStr, + }); + this.start() + }, this.timout) + } + + // 监听事件集 + initEventHandle() { + // 监听打开 + uni.onSocketOpen(res => { + uni.setStorageSync('isSocketOpen', true) + console.log('连接成功!'); + this.lockReconnect = true; + this.isClose = false; + this.start() + }); + + // 监听消息 + this.onMsg() + + // 监听错误 + uni.onSocketError(err => { + console.log('连接错误', err); + uni.closeSocket(); + }); + + // 监听关闭 + uni.onSocketClose(res => { + console.log('关闭链接'); + this.isClose = true; + if (uni.getStorageSync('isSocketOpen')) { + this.lockReconnect = false + this.reconnect() + } + + + }); + } + + // 重连 + reconnect() { + if (this.lockReconnect) return; + clearTimeout(this.timer) + if (this.limit < 12) { + this.timer = setTimeout(() => { + console.log('重连中', this.limit); + this.init(); + this.reconnect() + }, 5000); + this.limit += 1 + } + } + + +} diff --git a/pages/public/chat/shopro/chat.scss b/pages/public/chat/shopro/chat.scss new file mode 100644 index 0000000..47aaec8 --- /dev/null +++ b/pages/public/chat/shopro/chat.scss @@ -0,0 +1,185 @@ +.bg-gradual-purple { + background-image: linear-gradient(45deg, #9000ff, #5e00ff); + color: #ffffff; +} + +.bg-white { + background-color: #ffffff; + color: #666666; +} + +.round { + border-radius: 5000upx; +} + +/* ================== + 聊天 + ==================== */ +.cu-avatar { + font-variant: small-caps; + margin: 0; + padding: 0; + display: inline-flex; + text-align: center; + justify-content: center; + align-items: center; + background-color: #ccc; + color: #ffffff; + white-space: nowrap; + position: relative; + width: 64upx; + height: 64upx; + background-size: cover; + background-position: center; + vertical-align: middle; + font-size: 1.5em; +} + +.cu-bar { + display: flex; + position: relative; + align-items: center; + min-height: 100upx; + justify-content: space-between; + background-color: #fff; +} + +.cu-bar .action { + display: flex; + align-items: center; + height: 100%; + justify-content: center; + max-width: 100%; +} + +.cu-bar.foot { + position: fixed; + width: 100%; + bottom: 0; + z-index: 1024; + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-chat { + display: flex; + flex-direction: column; +} + +.cu-chat .cu-item { + display: flex; + padding: 30upx 30upx 70upx; + position: relative; +} + +.cu-chat .cu-item > .cu-avatar { + width: 80upx; + height: 80upx; +} + +.cu-chat .cu-item > .main { + max-width: calc(100% - 260upx); + margin: 0 40upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item > image { + height: 320upx; +} + +.cu-chat .cu-item > .main .content { + padding: 20upx; + border-radius: 6upx; + display: inline-flex; + max-width: 100%; + align-items: center; + font-size: 30upx; + position: relative; + min-height: 80upx; + line-height: 40upx; + text-align: left; +} + +.cu-chat .cu-item > .main .content:not([class*='bg-']) { + background-color: #ffffff; + color: #333333; +} + +.cu-chat .cu-item .date { + position: absolute; + font-size: 24upx; + color: #8799a3; + width: calc(100% - 320upx); + bottom: 20upx; + left: 160upx; +} + +.cu-chat .cu-item .action { + padding: 0 30upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item > .main .content::after { + content: ''; + top: 27upx; + transform: rotate(45deg); + position: absolute; + z-index: 100; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; +} + +.cu-chat .cu-item.self > .main .content::after { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item > .main .content::before { + content: ''; + top: 30upx; + transform: rotate(45deg); + position: absolute; + z-index: -1; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; + filter: blur(5upx); + opacity: 0.3; +} + +.cu-chat .cu-item > .main .content:not([class*='bg-'])::before { + background-color: #333333; + opacity: 0.1; +} + +.cu-chat .cu-item.self > .main .content::before { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item.self { + justify-content: flex-end; + text-align: right; +} + +.cu-chat .cu-info { + display: inline-block; + margin: 20upx auto; + font-size: 24upx; + padding: 8upx 12upx; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 6upx; + color: #ffffff; + max-width: 400upx; + line-height: 1.4; +} diff --git a/pages/public/chat/shopro/index.vue b/pages/public/chat/shopro/index.vue new file mode 100644 index 0000000..090d517 --- /dev/null +++ b/pages/public/chat/shopro/index.vue @@ -0,0 +1,1115 @@ + + + + + + diff --git a/pages/public/chat/wm/config.js b/pages/public/chat/wm/config.js new file mode 100644 index 0000000..2689e76 --- /dev/null +++ b/pages/public/chat/wm/config.js @@ -0,0 +1,131 @@ +import { + BASE_URL +} from '@/env.js' +const expression = [{ + 'title': '[zy]', + 'src': '/emoji/1.png' + }, { + 'title': '[zm]', + 'src': '/emoji/2.png' + }, { + 'title': '[jy]', + 'src': '/emoji/3.png' + }, + { + 'title': '[jyb]', + 'src': '/emoji/4.png' + }, { + 'title': '[bx]', + 'src': '/emoji/5.png' + }, { + 'title': '[kzn]', + 'src': '/emoji/6.png' + }, + { + 'title': '[gg]', + 'src': '/emoji/7.png' + }, { + 'title': '[ll]', + 'src': '/emoji/8.png' + }, { + 'title': '[jyll]', + 'src': '/emoji/9.png' + }, + { + 'title': '[o]', + 'src': '/emoji/10.png' + }, { + 'title': '[yz]', + 'src': '/emoji/11.png' + }, { + 'title': '[wx]', + 'src': '/emoji/12.png' + }, + { + 'title': '[zyb]', + 'src': '/emoji/13.png' + }, { + 'title': '[tp]', + 'src': '/emoji/14.png' + }, { + 'title': '[wxb]', + 'src': '/emoji/15.png' + }, + { + 'title': '[zyc]', + 'src': '/emoji/16.png' + }, { + 'title': '[llb]', + 'src': '/emoji/17.png' + }, { + 'title': '[xm]', + 'src': '/emoji/18.png' + }, + { + 'title': '[qz]', + 'src': '/emoji/19.png' + }, { + 'title': '[zmb]', + 'src': '/emoji/20.png' + }, { + 'title': '[kx]', + 'src': '/emoji/21.png' + }, + { + 'title': '[mm]', + 'src': '/emoji/22.png' + }, { + 'title': '[bz]', + 'src': '/emoji/23.png' + }, { + 'title': '[bkx]', + 'src': '/emoji/24.png' + }, + { + 'title': '[mg]', + 'src': '/emoji/25.png' + }, { + 'title': '[pz]', + 'src': '/emoji/26.png' + }, { + 'title': '[pzb]', + 'src': '/emoji/27.png' + }, + { + 'title': '[wxc]', + 'src': '/emoji/28.png' + }, { + 'title': '[jyc]', + 'src': '/emoji/29.png' + }, { + 'title': '[jyd]', + 'src': '/emoji/30.png' + }, + { + 'title': '[dm]', + 'src': '/emoji/31.png' + }, { + 'title': '[tpb]', + 'src': '/emoji/32.png' + }, { + 'title': '[tpc]', + 'src': '/emoji/33.png' + }, + { + 'title': '[tpd]', + 'src': '/emoji/34.png' + }, { + 'title': '[ly]', + 'src': '/emoji/35.png' + }, { + 'title': '[zyd]', + 'src': '/emoji/36.png' + }, +]; + +let service = BASE_URL.split('://')[1].split(':')[0]; +export default { + baseURL: service, // dev.7wpp.com 启动workerman服务的域名,无需填写协议和端口 + https_switch: false, // 是否启用https协议(默认关,正式版必开,且需要参考文档创建wss服务) + expression +} diff --git a/pages/public/chat/wm/index.vue b/pages/public/chat/wm/index.vue new file mode 100644 index 0000000..08137cb --- /dev/null +++ b/pages/public/chat/wm/index.vue @@ -0,0 +1,1622 @@ + + + + + + + diff --git a/pages/public/faq.vue b/pages/public/faq.vue new file mode 100644 index 0000000..c003ba8 --- /dev/null +++ b/pages/public/faq.vue @@ -0,0 +1,65 @@ + + + + + + diff --git a/pages/public/feedback.vue b/pages/public/feedback.vue new file mode 100644 index 0000000..20ce1c8 --- /dev/null +++ b/pages/public/feedback.vue @@ -0,0 +1,218 @@ + +