Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	unpackage/dist/dev/mp-weixin/app.js
#	unpackage/dist/dev/mp-weixin/pages/activity/bargain/detail.js
#	unpackage/dist/dev/mp-weixin/pages/activity/bargain/list.js
#	unpackage/dist/dev/mp-weixin/pages/activity/groupon/detail.js
#	unpackage/dist/dev/mp-weixin/pages/activity/groupon/list.js
#	unpackage/dist/dev/mp-weixin/pages/activity/groupon/order.js
#	unpackage/dist/dev/mp-weixin/pages/activity/index.js
#	unpackage/dist/dev/mp-weixin/pages/activity/seckill/list.js
#	unpackage/dist/dev/mp-weixin/pages/app/sign.js
#	unpackage/dist/dev/mp-weixin/pages/app/sign.wxml
#	unpackage/dist/dev/mp-weixin/pages/app/sign.wxss
#	unpackage/dist/dev/mp-weixin/pages/chat/components/goods.js
#	unpackage/dist/dev/mp-weixin/pages/chat/components/order.js
#	unpackage/dist/dev/mp-weixin/pages/chat/components/select-popup.js
#	unpackage/dist/dev/mp-weixin/pages/chat/index.js
#	unpackage/dist/dev/mp-weixin/pages/commission/commission-ranking.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/account-info.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/account-type-select.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/commission-auth.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/commission-info.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/commission-log.js
#	unpackage/dist/dev/mp-weixin/pages/commission/components/commission-menu.js
#	unpackage/dist/dev/mp-weixin/pages/commission/goods.js
#	unpackage/dist/dev/mp-weixin/pages/commission/index.js
#	unpackage/dist/dev/mp-weixin/pages/commission/order.js
#	unpackage/dist/dev/mp-weixin/pages/commission/promoter.js
#	unpackage/dist/dev/mp-weixin/pages/commission/team.js
#	unpackage/dist/dev/mp-weixin/pages/commission/wallet.js
#	unpackage/dist/dev/mp-weixin/pages/commission/withdraw.js
#	unpackage/dist/dev/mp-weixin/pages/coupon/detail.js
#	unpackage/dist/dev/mp-weixin/pages/coupon/list.js
#	unpackage/dist/dev/mp-weixin/pages/goods/comment/add.js
#	unpackage/dist/dev/mp-weixin/pages/goods/comment/list.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/comment-item.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-activity-tip.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-cell-sku.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-cell-sku.wxml
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-cell.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-comment-card.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-content-card.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-navbar.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-progress.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-skeleton.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/detail/detail-tabbar.js
#	unpackage/dist/dev/mp-weixin/pages/goods/components/groupon/groupon-card-list.js
#	unpackage/dist/dev/mp-weixin/pages/goods/groupon.js
#	unpackage/dist/dev/mp-weixin/pages/goods/index.js
#	unpackage/dist/dev/mp-weixin/pages/goods/list.js
#	unpackage/dist/dev/mp-weixin/pages/goods/seckill.js
#	unpackage/dist/dev/mp-weixin/pages/index/cart.js
#	unpackage/dist/dev/mp-weixin/pages/index/category.js
#	unpackage/dist/dev/mp-weixin/pages/index/components/first-one.js
#	unpackage/dist/dev/mp-weixin/pages/index/components/first-two.js
#	unpackage/dist/dev/mp-weixin/pages/index/components/second-one.js
#	unpackage/dist/dev/mp-weixin/pages/index/index.js
#	unpackage/dist/dev/mp-weixin/pages/index/index.wxml
#	unpackage/dist/dev/mp-weixin/pages/index/login.js
#	unpackage/dist/dev/mp-weixin/pages/index/page.js
#	unpackage/dist/dev/mp-weixin/pages/index/page.wxml
#	unpackage/dist/dev/mp-weixin/pages/index/search.js
#	unpackage/dist/dev/mp-weixin/pages/index/user.js
#	unpackage/dist/dev/mp-weixin/pages/index/user.wxml
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/apply.js
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/detail.js
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/list.js
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/log-item.js
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/log.js
#	unpackage/dist/dev/mp-weixin/pages/order/aftersale/return-delivery.js
#	unpackage/dist/dev/mp-weixin/pages/order/confirm.js
#	unpackage/dist/dev/mp-weixin/pages/order/detail.js
#	unpackage/dist/dev/mp-weixin/pages/order/express/log.js
#	unpackage/dist/dev/mp-weixin/pages/order/list.js
#	unpackage/dist/dev/mp-weixin/pages/pay/index.js
#	unpackage/dist/dev/mp-weixin/pages/pay/recharge-log.js
#	unpackage/dist/dev/mp-weixin/pages/pay/recharge.js
#	unpackage/dist/dev/mp-weixin/pages/pay/result.js
#	unpackage/dist/dev/mp-weixin/pages/public/error.js
#	unpackage/dist/dev/mp-weixin/pages/public/faq.js
#	unpackage/dist/dev/mp-weixin/pages/public/richtext.js
#	unpackage/dist/dev/mp-weixin/pages/public/setting.js
#	unpackage/dist/dev/mp-weixin/pages/public/webview.js
#	unpackage/dist/dev/mp-weixin/pages/user/address/edit.js
#	unpackage/dist/dev/mp-weixin/pages/user/address/list.js
#	unpackage/dist/dev/mp-weixin/pages/user/goods-collect.js
#	unpackage/dist/dev/mp-weixin/pages/user/goods-log.js
#	unpackage/dist/dev/mp-weixin/pages/user/info.js
#	unpackage/dist/dev/mp-weixin/pages/user/wallet/money.js
#	unpackage/dist/dev/mp-weixin/pages/user/wallet/score.js
#	unpackage/dist/dev/mp-weixin/project.config.json
#	unpackage/dist/dev/mp-weixin/project.private.config.json
#	unpackage/dist/dev/mp-weixin/sheep/api/member/signin.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-activity-pop/s-activity-pop.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-address-item/s-address-item.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/account-login.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/account-login.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/account-login.wxss
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/change-mobile.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/change-password.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/mp-authorization.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/reset-password.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/sms-login.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/sms-login.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/components/sms-login.wxss
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/s-auth-modal.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/s-auth-modal.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-auth-modal/s-auth-modal.wxss
#	unpackage/dist/dev/mp-weixin/sheep/components/s-block-item/s-block-item.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-block-item/s-block-item.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-block/s-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-count-down/s-count-down.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-coupon-block/s-coupon-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-coupon-card/s-coupon-card.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-coupon-get/s-coupon-get.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-coupon-list/s-coupon-list.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-coupon-select/s-coupon-select.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-custom-navbar/components/navbar-item.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-custom-navbar/components/navbar.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-custom-navbar/s-custom-navbar.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-discount-list/s-discount-list.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-empty/s-empty.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-float-menu/s-float-menu.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-goods-card/s-goods-card.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-goods-column/s-goods-column.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-goods-item/s-goods-item.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-goods-shelves/s-goods-shelves.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-groupon-block/s-groupon-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-hotzone-block/s-hotzone-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-image-banner/s-image-banner.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-image-banner/s-image-banner.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-image-block/s-image-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-image-block/s-image-block.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-image-cube/s-image-cube.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-layout/s-layout.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-line-block/s-line-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-line-block/s-line-block.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-live-block/s-live-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-live-card/s-live-card.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-menu-button/s-menu-button.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-menu-grid/s-menu-grid.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-menu-list/s-menu-list.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-menu-list/s-menu-list.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-menu-tools/s-menu-tools.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-notice-block/s-notice-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-order-card/s-order-card.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-popup-image/s-popup-image.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-richtext-block/s-richtext-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-richtext-block/s-richtext-block.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-search-block/s-search-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-seckill-block/s-seckill-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-select-groupon-sku/s-select-groupon-sku.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-select-seckill-sku/s-select-seckill-sku.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-select-sku/s-select-sku.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-share-modal/canvas-poster/index.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-share-modal/canvas-poster/useCanvas.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-share-modal/s-share-modal.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-tabbar/s-tabbar.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-tabbar/s-tabbar.wxml
#	unpackage/dist/dev/mp-weixin/sheep/components/s-title-block/s-title-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-uploader/s-uploader.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-uploader/upload-file.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-uploader/upload-image.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-user-card/s-user-card.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-video-block/s-video-block.js
#	unpackage/dist/dev/mp-weixin/sheep/components/s-wallet-card/s-wallet-card.js
#	unpackage/dist/dev/mp-weixin/sheep/hooks/useModal.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-coupon/su-coupon.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-fixed/su-fixed.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-image/su-image.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-inner-navbar/su-inner-navbar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-navbar/su-navbar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-notice-bar/su-notice-bar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-number-box/su-number-box.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-popup/su-popup.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-popup/su-popup.wxml
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-progress/su-progress.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-radio/su-radio.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-region-picker/su-region-picker.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-status-bar/su-status-bar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-sticky/su-sticky.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-subline/su-subline.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-swiper/su-swiper.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-switch/su-switch.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-tabbar-item/su-tabbar-item.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-tabbar/su-tabbar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-tabs/su-tabs.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-toolbar/su-toolbar.js
#	unpackage/dist/dev/mp-weixin/sheep/ui/su-video/su-video.js
#	unpackage/dist/dev/mp-weixin/uni_modules/mp-html/components/mp-html/mp-html.js
#	unpackage/dist/dev/mp-weixin/uni_modules/mp-html/components/mp-html/mp-html.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/mp-html/components/mp-html/node/node.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-badge/components/uni-badge/uni-badge.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-fab/components/uni-fab/uni-fab.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-fab/components/uni-fab/uni-fab.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-grid/components/uni-grid/uni-grid.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-rate/components/uni-rate/uni-rate.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.wxml
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-tag/components/uni-tag/uni-tag.js
#	unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js
Harper 1 rok pred
rodič
commit
d0237e6452
100 zmenil súbory, kde vykonal 2169 pridanie a 1944 odobranie
  1. 4 0
      manifest.json
  2. 0 401
      pages/app/sign.vue
  3. 405 0
      pages/app/signold.vue
  4. 292 250
      pages/user/address/edit.vue
  5. 151 142
      pages/user/address/list.vue
  6. 47 36
      sheep/api/member/signin.js
  7. 152 107
      sheep/components/s-auth-modal/components/account-login.vue
  8. 166 119
      sheep/components/s-auth-modal/components/sms-login.vue
  9. 289 239
      sheep/components/s-auth-modal/s-auth-modal.vue
  10. 150 161
      sheep/components/s-share-modal/canvas-poster/index.vue
  11. 99 87
      sheep/components/s-share-modal/canvas-poster/useCanvas.js
  12. 189 195
      sheep/components/s-share-modal/s-share-modal.vue
  13. 2 1
      sheep/hooks/useModal.js
  14. 199 182
      sheep/libs/sdk-h5-weixin.js
  15. 1 1
      unpackage/dist/build/h5/assets/address.9572190e.js
  16. 1 1
      unpackage/dist/build/h5/assets/afterSale.ab78629d.js
  17. 1 1
      unpackage/dist/build/h5/assets/article.f1244fe8.js
  18. 0 0
      unpackage/dist/build/h5/assets/bargain.ed67d9d9.js
  19. 1 1
      unpackage/dist/build/h5/assets/brokerage.b00dbac4.js
  20. 1 1
      unpackage/dist/build/h5/assets/category.09073035.js
  21. 1 1
      unpackage/dist/build/h5/assets/combination.ca664672.js
  22. 0 0
      unpackage/dist/build/h5/assets/comment-item.a5a28b84.js
  23. 1 1
      unpackage/dist/build/h5/assets/config.c7aa66c8.js
  24. 1 1
      unpackage/dist/build/h5/assets/const.d769a2a6.js
  25. 0 0
      unpackage/dist/build/h5/assets/detail-content-card.1b0eafaa.js
  26. 0 0
      unpackage/dist/build/h5/assets/edit-0e90b836.css
  27. 1 1
      unpackage/dist/build/h5/assets/favorite.26281ffa.js
  28. 1 1
      unpackage/dist/build/h5/assets/history.918701de.js
  29. 0 0
      unpackage/dist/build/h5/assets/index-770048bf.js
  30. 1 1
      unpackage/dist/build/h5/assets/index.e24558d7.js
  31. 1 1
      unpackage/dist/build/h5/assets/list-e281987e.css
  32. 0 0
      unpackage/dist/build/h5/assets/mp-html.f52adbcf.js
  33. 0 0
      unpackage/dist/build/h5/assets/pages-activity-bargain-detail.30d78dd6.js
  34. 0 0
      unpackage/dist/build/h5/assets/pages-activity-bargain-list.ef7f59e6.js
  35. 0 0
      unpackage/dist/build/h5/assets/pages-activity-groupon-detail.405590b2.js
  36. 0 0
      unpackage/dist/build/h5/assets/pages-activity-groupon-list.730ec4ec.js
  37. 0 0
      unpackage/dist/build/h5/assets/pages-activity-groupon-order.ec8ece87.js
  38. 0 0
      unpackage/dist/build/h5/assets/pages-activity-index.3a507cf5.js
  39. 0 0
      unpackage/dist/build/h5/assets/pages-activity-seckill-list.66eb79d9.js
  40. 0 0
      unpackage/dist/build/h5/assets/pages-app-sign.c5a7ce6a.js
  41. 0 0
      unpackage/dist/build/h5/assets/pages-app-sign.ca7dfeac.js
  42. 0 0
      unpackage/dist/build/h5/assets/pages-chat-index.753335d0.js
  43. 0 0
      unpackage/dist/build/h5/assets/pages-commission-commission-ranking.ec4a1ecc.js
  44. 0 0
      unpackage/dist/build/h5/assets/pages-commission-goods.f097da0b.js
  45. 0 0
      unpackage/dist/build/h5/assets/pages-commission-index.55866950.js
  46. 0 0
      unpackage/dist/build/h5/assets/pages-commission-order.b58e5cc9.js
  47. 0 0
      unpackage/dist/build/h5/assets/pages-commission-promoter.099a50db.js
  48. 0 0
      unpackage/dist/build/h5/assets/pages-commission-team.8223d198.js
  49. 0 0
      unpackage/dist/build/h5/assets/pages-commission-wallet.b0134930.js
  50. 0 0
      unpackage/dist/build/h5/assets/pages-commission-withdraw.babdae66.js
  51. 0 0
      unpackage/dist/build/h5/assets/pages-coupon-detail.a33fe9ac.js
  52. 0 0
      unpackage/dist/build/h5/assets/pages-coupon-list.97725d5d.js
  53. 0 0
      unpackage/dist/build/h5/assets/pages-goods-comment-add.817b8971.js
  54. 0 0
      unpackage/dist/build/h5/assets/pages-goods-comment-list.db8ea1e5.js
  55. 0 0
      unpackage/dist/build/h5/assets/pages-goods-groupon.017a8dd0.js
  56. 0 0
      unpackage/dist/build/h5/assets/pages-goods-index.227a37cd.js
  57. 0 0
      unpackage/dist/build/h5/assets/pages-goods-list.aaa1c778.js
  58. 0 0
      unpackage/dist/build/h5/assets/pages-goods-seckill.b0b4b8ef.js
  59. 0 0
      unpackage/dist/build/h5/assets/pages-index-cart.438f0194.js
  60. 0 0
      unpackage/dist/build/h5/assets/pages-index-category.6e375c2c.js
  61. 1 1
      unpackage/dist/build/h5/assets/pages-index-index.15d84314.js
  62. 1 1
      unpackage/dist/build/h5/assets/pages-index-login.4376e3ce.js
  63. 1 1
      unpackage/dist/build/h5/assets/pages-index-page.e2a19884.js
  64. 1 1
      unpackage/dist/build/h5/assets/pages-index-search.8f7beac7.js
  65. 1 1
      unpackage/dist/build/h5/assets/pages-index-user.23498c2c.js
  66. 0 0
      unpackage/dist/build/h5/assets/pages-order-aftersale-apply.24303e5c.js
  67. 0 0
      unpackage/dist/build/h5/assets/pages-order-aftersale-detail.c8c346a4.js
  68. 0 0
      unpackage/dist/build/h5/assets/pages-order-aftersale-list.c9531aa3.js
  69. 1 1
      unpackage/dist/build/h5/assets/pages-order-aftersale-log.df042322.js
  70. 0 0
      unpackage/dist/build/h5/assets/pages-order-aftersale-return-delivery.f546e0ea.js
  71. 0 0
      unpackage/dist/build/h5/assets/pages-order-confirm.e6b44eea.js
  72. 0 0
      unpackage/dist/build/h5/assets/pages-order-detail.ec7b6b38.js
  73. 0 0
      unpackage/dist/build/h5/assets/pages-order-express-log.4d92ac2b.js
  74. 0 0
      unpackage/dist/build/h5/assets/pages-order-list.283d35a0.js
  75. 0 0
      unpackage/dist/build/h5/assets/pages-pay-index.d83f64cc.js
  76. 0 0
      unpackage/dist/build/h5/assets/pages-pay-recharge-log.022b9061.js
  77. 0 0
      unpackage/dist/build/h5/assets/pages-pay-recharge.bb846d66.js
  78. 0 0
      unpackage/dist/build/h5/assets/pages-pay-result.d6bdb233.js
  79. 1 1
      unpackage/dist/build/h5/assets/pages-public-error.fc552f18.js
  80. 1 1
      unpackage/dist/build/h5/assets/pages-public-faq.690d5802.js
  81. 1 1
      unpackage/dist/build/h5/assets/pages-public-richtext.e21a3336.js
  82. 0 0
      unpackage/dist/build/h5/assets/pages-public-setting.422d7695.js
  83. 1 1
      unpackage/dist/build/h5/assets/pages-public-webview.73d4a591.js
  84. 0 0
      unpackage/dist/build/h5/assets/pages-user-address-edit.76f152f7.js
  85. 0 0
      unpackage/dist/build/h5/assets/pages-user-address-edit.c0e607ca.js
  86. 0 0
      unpackage/dist/build/h5/assets/pages-user-address-list.feb402df.js
  87. 0 0
      unpackage/dist/build/h5/assets/pages-user-goods-collect.48367e6e.js
  88. 0 0
      unpackage/dist/build/h5/assets/pages-user-goods-log.fbef6b9a.js
  89. 0 0
      unpackage/dist/build/h5/assets/pages-user-info.0f31505f.js
  90. 0 0
      unpackage/dist/build/h5/assets/pages-user-wallet-money.0e537f14.js
  91. 0 0
      unpackage/dist/build/h5/assets/pages-user-wallet-score.4b3461ba.js
  92. 1 1
      unpackage/dist/build/h5/assets/rewardActivity.5bdb76e3.js
  93. 0 0
      unpackage/dist/build/h5/assets/s-address-item.07743b16.js
  94. 0 0
      unpackage/dist/build/h5/assets/s-block.f5d9b937.js
  95. 0 0
      unpackage/dist/build/h5/assets/s-coupon-list.f8608d5d.js
  96. 1 1
      unpackage/dist/build/h5/assets/s-empty.ec77cee3.js
  97. 0 0
      unpackage/dist/build/h5/assets/s-goods-column.b69314d8.js
  98. 0 0
      unpackage/dist/build/h5/assets/s-goods-item.913c690c.js
  99. 0 0
      unpackage/dist/build/h5/assets/s-layout-6c86ec08.css
  100. 0 0
      unpackage/dist/build/h5/assets/s-layout.409bca6d.js

+ 4 - 0
manifest.json

@@ -205,6 +205,10 @@
             "mode" : "hash",
             "mode" : "hash",
             "base" : "./"
             "base" : "./"
         },
         },
+        "devServer" : {
+            "port" : 80,
+            "disableHostCheck" : true
+        },
         "sdkConfigs" : {
         "sdkConfigs" : {
             "maps" : {}
             "maps" : {}
         },
         },

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 401
pages/app/sign.vue


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 405 - 0
pages/app/signold.vue


+ 292 - 250
pages/user/address/edit.vue

@@ -1,251 +1,293 @@
-<!-- 收货地址的新增/编辑 -->
-<template>
-	<s-layout :title="state.model.id ? '编辑地址' : '新增地址'">
-		<uni-forms ref="addressFormRef" v-model="state.model" :rules="rules" validateTrigger="bind"
-			labelWidth="160" labelAlign="left" border :labelStyle="{ fontWeight: 'bold' }">
-			<view class="bg-white form-box ss-p-x-30">
-				<uni-forms-item name="name" label="收货人" class="form-item">
-					<uni-easyinput v-model="state.model.name" placeholder="请填写收货人姓名" :inputBorder="false"
-						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal" />
-				</uni-forms-item>
-
-				<uni-forms-item name="mobile" label="手机号" class="form-item">
-					<uni-easyinput v-model="state.model.mobile" type="number" placeholder="请输入手机号" :inputBorder="false"
-						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal">
-					</uni-easyinput>
-				</uni-forms-item>
-				<uni-forms-item name="areaName" label="省市区" @tap="state.showRegion = true" class="form-item">
-					<uni-easyinput v-model="state.model.areaName" disabled :inputBorder="false"
-						:styles="{ disableColor: '#fff', color: '#333' }"
-						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-						placeholder="请选择省市区">
-						<template v-slot:right>
-							<uni-icons type="right" />
-						</template>
-					</uni-easyinput>
-				</uni-forms-item>
-				<uni-forms-item name="detailAddress" label="详细地址" :formItemStyle="{ alignItems: 'flex-start' }"
-					:labelStyle="{ lineHeight: '5em' }" class="textarea-item">
-					<uni-easyinput :inputBorder="false" type="textarea" v-model="state.model.detailAddress"
-						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-						placeholder="请输入详细地址" clearable />
-				</uni-forms-item>
-			</view>
-			<view class="ss-m-y-20 bg-white ss-p-x-30 ss-flex ss-row-between ss-col-center default-box">
-				<view class="default-box-title"> 设为默认地址 </view>
-				<su-switch style="transform: scale(0.8)" v-model="state.model.defaultStatus" />
-			</view>
-		</uni-forms>
-		<su-fixed bottom :opacity="false" bg="" placeholder :noFixed="false" :index="10">
-			<view class="footer-box ss-flex-col ss-row-between ss-p-20">
-				<view class="ss-m-b-20">
-          <button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">保存</button>
-        </view>
-				<button v-if="state.model.id" class="ss-reset-button cancel-btn" @tap="onDelete">
-					删除
-				</button>
-			</view>
-		</su-fixed>
-
-		<!-- 省市区弹窗 -->
-		<su-region-picker :show="state.showRegion" @cancel="state.showRegion = false" @confirm="onRegionConfirm" />
-	</s-layout>
-</template>
-
-<script setup>
-	import { ref, reactive, unref } from 'vue';
-	import sheep from '@/sheep';
-	import { onLoad } from '@dcloudio/uni-app';
-	import _ from 'lodash';
-	import { mobile } from '@/sheep/validate/form';
-  import AreaApi from '@/sheep/api/system/area';
-  import AddressApi from '@/sheep/api/member/address';
-
-	const addressFormRef = ref(null);
-	const state = reactive({
-		showRegion: false,
-		model: {
-			name: '',
-			mobile: '',
-      detailAddress: '',
-			defaultStatus: false,
-      areaName: '',
-		},
-    rules: {},
-	});
-
-  const rules = {
-    name: {
-      rules: [
-        {
-          required: true,
-          errorMessage: '请输入收货人姓名',
-        },
-      ],
-    },
-    mobile,
-    detailAddress: {
-      rules: [{
-        required: true,
-        errorMessage: '请输入详细地址',
-      }]
-    },
-    areaName: {
-      rules: [{
-        required: true,
-        errorMessage: '请选择您的位置'
-      }]
-    },
-  };
-
-  // 确认选择地区
-	const onRegionConfirm = (e) => {
-    state.model.areaName = `${e.province_name} ${e.city_name} ${e.district_name}`
-    state.model.areaId = e.district_id;
-		state.showRegion = false;
-	};
-
-  // 获得地区数据
-	const getAreaData = () => {
-		if (_.isEmpty(uni.getStorageSync('areaData'))) {
-      AreaApi.getAreaTree().then((res) => {
-        if (res.code === 0) {
-          uni.setStorageSync('areaData', res.data);
-        }
-      });
-		}
-	};
-
-  // 保存收货地址
-	const onSave = async () => {
-    // 参数校验
-		const validate = await unref(addressFormRef)
-			.validate()
-			.catch((error) => {
-				console.log('error: ', error);
-			});
-		if (!validate) {
-      return;
-    }
-
-    // 提交请求
-    const formData = {
-      ...state.model
-    }
-    const {code } = state.model.id > 0 ? await AddressApi.updateAddress(formData)
-      : await AddressApi.createAddress(formData);
-		if (code === 0) {
-			sheep.$router.back();
-		}
-	};
-
-  // 删除收货地址
-	const onDelete = () => {
-		uni.showModal({
-			title: '提示',
-			content: '确认删除此收货地址吗?',
-			success: async function(res) {
-				if (!res.confirm) {
-					return;
-				}
-        const { code } = await AddressApi.deleteAddress(state.model.id);
-        if (code === 0) {
-          sheep.$router.back();
-        }
-			},
-		});
-	};
-
-	onLoad(async (options) => {
-    // 获得地区数据
-		getAreaData();
-    // 情况一:基于 id 获得收件地址
-		if (options.id) {
-			let { code, data} = await AddressApi.getAddress(options.id);
-      if (code !== 0) {
-        return;
-      }
-      state.model = data;
-		}
-    // 情况二:微信导入 TODO 芋艿:待接入
-		if (options.data) {
-			let data = JSON.parse(options.data);
-			const areaData = uni.getStorageSync('areaData');
-			let provinceArr = areaData.filter(item => item.name == data.province_name);
-			data.province_id = provinceArr[0].id;
-			let provinceArr2 = provinceArr[0].children.filter(item => item.name == data.city_name);
-			data.city_id = provinceArr2[0].id;
-			let provinceArr3 = provinceArr2[0].children.filter(item => item.name == data.district_name);
-			data.district_id = provinceArr3[0].id;
-			state.model = {
-				...state.model,
-				...data,
-			};
-		}
-	});
-</script>
-
-<style lang="scss" scoped>
-	:deep() {
-		.uni-forms-item__label .label-text {
-			font-size: 28rpx !important;
-			color: #333333 !important;
-			line-height: normal !important;
-		}
-
-		.uni-easyinput__content-input {
-			font-size: 28rpx !important;
-			color: #333333 !important;
-			line-height: normal !important;
-			padding-left: 0 !important;
-		}
-
-		.uni-easyinput__content-textarea {
-			font-size: 28rpx !important;
-			color: #333333 !important;
-			line-height: normal !important;
-			margin-top: 8rpx !important;
-		}
-
-		.uni-icons {
-			font-size: 40rpx !important;
-		}
-
-		.is-textarea-icon {
-			margin-top: 22rpx;
-		}
-
-		.is-disabled {
-			color: #333333;
-		}
-	}
-
-	.default-box {
-		width: 100%;
-		box-sizing: border-box;
-		height: 100rpx;
-
-		.default-box-title {
-			font-size: 28rpx;
-			color: #333333;
-			line-height: normal;
-		}
-	}
-
-	.footer-box {
-		.save-btn {
-			width: 710rpx;
-			height: 80rpx;
-			border-radius: 40rpx;
-			background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
-			color: $white;
-		}
-
-		.cancel-btn {
-			width: 710rpx;
-			height: 80rpx;
-			border-radius: 40rpx;
-			background: var(--ui-BG);
-		}
-	}
+<!-- 收货地址的新增/编辑 -->
+<template>
+	<!-- {{ru}} -->
+	<s-layout :title="state.model.id ? '编辑地址' : '新增地址'">
+		<uni-forms ref="addressFormRef" v-model="state.model" :rules="rules" validateTrigger="bind" labelWidth="160"
+			labelAlign="left" border :labelStyle="{ fontWeight: 'bold' }">
+			<view class="bg-white form-box ss-p-x-30">
+				<uni-forms-item name="name" label="收货人" class="form-item">
+					<uni-easyinput v-model="state.model.name" placeholder="请填写收货人姓名" :inputBorder="false"
+						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal" />
+				</uni-forms-item>
+
+				<uni-forms-item name="mobile" label="手机号" class="form-item">
+					<uni-easyinput v-model="state.model.mobile" type="number" placeholder="请输入手机号" :inputBorder="false"
+						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal">
+					</uni-easyinput>
+				</uni-forms-item>
+				<uni-forms-item name="areaName" label="省市区" @tap="state.showRegion = true" class="form-item">
+					<uni-easyinput v-model="state.model.areaName" disabled :inputBorder="false"
+						:styles="{ disableColor: '#fff', color: '#333' }"
+						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
+						placeholder="请选择省市区">
+						<template v-slot:right>
+							<uni-icons type="right" />
+						</template>
+					</uni-easyinput>
+				</uni-forms-item>
+				<uni-forms-item name="detailAddress" label="详细地址" :formItemStyle="{ alignItems: 'flex-start' }"
+					:labelStyle="{ lineHeight: '5em' }" class="textarea-item">
+					<uni-easyinput :inputBorder="false" type="textarea" v-model="state.model.detailAddress"
+						placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
+						placeholder="请输入详细地址" clearable />
+				</uni-forms-item>
+			</view>
+			<view class="ss-m-y-20 bg-white ss-p-x-30 ss-flex ss-row-between ss-col-center default-box">
+				<view class="default-box-title"> 设为默认地址 </view>
+				<su-switch style="transform: scale(0.8)" v-model="state.model.defaultStatus" />
+			</view>
+		</uni-forms>
+		<su-fixed bottom :opacity="false" bg="" placeholder :noFixed="false" :index="10">
+			<view class="footer-box ss-flex-col ss-row-between ss-p-20">
+				<view class="ss-m-b-20">
+					<button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">保存</button>
+				</view>
+				<button v-if="state.model.id" class="ss-reset-button cancel-btn" @tap="onDelete">
+					删除
+				</button>
+			</view>
+		</su-fixed>
+
+		<!-- 省市区弹窗 -->
+		<su-region-picker :show="state.showRegion" @cancel="state.showRegion = false" @confirm="onRegionConfirm" />
+	</s-layout>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive,
+		unref
+	} from 'vue';
+	import sheep from '@/sheep';
+	import {
+		onLoad
+	} from '@dcloudio/uni-app';
+	import _ from 'lodash';
+	import {
+		mobile
+	} from '@/sheep/validate/form';
+	import AreaApi from '@/sheep/api/system/area';
+	import AddressApi from '@/sheep/api/member/address';
+	import $helper from '@/sheep/helper';
+	const addressFormRef = ref(null);
+	const state = reactive({
+		showRegion: false,
+		model: {
+			name: '',
+			mobile: '',
+			detailAddress: '',
+			defaultStatus: false,
+			areaName: '',
+		},
+		rules: {},
+	});
+	// let ru = ref({})
+	const rules = {
+		name: {
+			rules: [{
+				required: true,
+				errorMessage: '请输入收货人姓名',
+			}, ],
+		},
+		mobile,
+		detailAddress: {
+			rules: [{
+				required: true,
+				errorMessage: '请输入详细地址',
+			}]
+		},
+		areaName: {
+			rules: [{
+				required: true,
+				errorMessage: '请选择您的位置'
+			}]
+		},
+	};
+
+	// 确认选择地区
+	const onRegionConfirm = (e) => {
+		state.model.areaName = `${e.province_name} ${e.city_name} ${e.district_name}`
+		state.model.areaId = e.district_id;
+		state.showRegion = false;
+	};
+
+	// 获得地区数据
+	const getAreaData = () => {
+		if (_.isEmpty(uni.getStorageSync('areaData'))) {
+			AreaApi.getAreaTree().then((res) => {
+				if (res.code === 0) {
+					uni.setStorageSync('areaData', res.data);
+				}
+			});
+		}
+	};
+
+	// 保存收货地址
+	const onSave = async () => {
+		console.log(state)
+		// 参数校验
+		const validate = await unref(addressFormRef)
+			.validate()
+			.catch((error) => {
+				console.log('error: ', error);
+			});
+		if (!validate) {
+			return;
+		}
+
+		// 提交请求
+		const formData = {
+			...state.model
+		}
+		const {
+			code
+		} = state.model.id > 0 ? await AddressApi.updateAddress(formData) :
+			await AddressApi.createAddress(formData);
+		if (code === 0) {
+			sheep.$router.back();
+		}
+	};
+
+	// 删除收货地址
+	const onDelete = () => {
+		uni.showModal({
+			title: '提示',
+			content: '确认删除此收货地址吗?',
+			success: async function(res) {
+				if (!res.confirm) {
+					return;
+				}
+				const {
+					code
+				} = await AddressApi.deleteAddress(state.model.id);
+				if (code === 0) {
+					sheep.$router.back();
+				}
+			},
+		});
+	};
+
+	onLoad(async (options) => {
+
+		// ru.value = {
+		// 	'consignee': 'aa',
+		// 	'mobile': '1595505005050',
+		// 	'province_name': '广东省',
+		// 	'city_name': '湛江市',
+		// 	'district_name': '廉江市',
+		// 	'address': 'yyyyyyyyy',
+		// 	'region': '',
+		// 	'is_default': 'false',
+		// }
+
+		// 获得地区数据
+		getAreaData();
+		// 情况一:基于 id 获得收件地址
+		if (options.id) {
+			let {
+				code,
+				data
+			} = await AddressApi.getAddress(options.id);
+			if (code !== 0) {
+				return;
+			}
+			// console.log(data)
+			state.model = data;
+		}
+		// 情况二:微信导入 TODO 芋艿:待接入
+		if (options.data) {
+			let data = JSON.parse(options.data);
+			// ru.value = data
+			const areaData = uni.getStorageSync('areaData');
+			let provinceArr = areaData.filter(item => item.name == data.province_name);
+			data.province_id = provinceArr[0].id;
+			let provinceArr2 = provinceArr[0].children.filter(item => item.name == data.city_name);
+			data.city_id = provinceArr2[0].id;
+			let provinceArr3 = provinceArr2[0].children.filter(item => item.name == data.district_name);
+			data.district_id = provinceArr3[0].id;
+
+			state.model = {
+				name: data.consignee,
+				mobile: data.mobile,
+				detailAddress: data.address,
+				defaultStatus: data.is_default,
+				areaName: data.province_name + ' ' + data.city_name + ' ' + data.district_name,
+				areaId: data.district_id
+			}
+
+
+
+
+			// state.model = {
+			// 	...state.model,
+			// 	...data,
+			// };
+		}
+	});
+</script>
+
+<style lang="scss" scoped>
+	:deep() {
+		.uni-forms-item__label .label-text {
+			font-size: 28rpx !important;
+			color: #333333 !important;
+			line-height: normal !important;
+		}
+
+		.uni-easyinput__content-input {
+			font-size: 28rpx !important;
+			color: #333333 !important;
+			line-height: normal !important;
+			padding-left: 0 !important;
+		}
+
+		.uni-easyinput__content-textarea {
+			font-size: 28rpx !important;
+			color: #333333 !important;
+			line-height: normal !important;
+			margin-top: 8rpx !important;
+		}
+
+		.uni-icons {
+			font-size: 40rpx !important;
+		}
+
+		.is-textarea-icon {
+			margin-top: 22rpx;
+		}
+
+		.is-disabled {
+			color: #333333;
+		}
+	}
+
+	.default-box {
+		width: 100%;
+		box-sizing: border-box;
+		height: 100rpx;
+
+		.default-box-title {
+			font-size: 28rpx;
+			color: #333333;
+			line-height: normal;
+		}
+	}
+
+	.footer-box {
+		.save-btn {
+			width: 710rpx;
+			height: 80rpx;
+			border-radius: 40rpx;
+			background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
+			color: $white;
+		}
+
+		.cancel-btn {
+			width: 710rpx;
+			height: 80rpx;
+			border-radius: 40rpx;
+			background: var(--ui-BG);
+		}
+	}
 </style>
 </style>

+ 151 - 142
pages/user/address/list.vue

@@ -1,143 +1,152 @@
-<!-- 收件地址列表 -->
-<template>
-	<s-layout title="收货地址" :bgStyle="{ color: '#FFF' }">
-		<view v-if="state.list.length">
-			<s-address-item hasBorderBottom v-for="item in state.list" :key="item.id" :item="item"
-                      @tap="onSelect(item)" />
-		</view>
-
-		<su-fixed bottom placeholder>
-			<view class="footer-box ss-flex ss-row-between ss-p-20">
-				<!-- 微信小程序和微信H5 -->
-				<button v-if="['WechatMiniProgram', 'WechatOfficialAccount'].includes(sheep.$platform.name)"
-					@tap="importWechatAddress"
-					class="border ss-reset-button sync-wxaddress ss-m-20 ss-flex ss-row-center ss-col-center">
-					<text class="cicon-weixin ss-p-r-10" style="color: #09bb07; font-size: 40rpx"></text>
-					导入微信地址
-				</button>
-				<button class="add-btn ss-reset-button ui-Shadow-Main"
-					@tap="sheep.$router.go('/pages/user/address/edit')">
-					新增收货地址
-				</button>
-			</view>
-		</su-fixed>
-		<s-empty v-if="state.list.length === 0 && !state.loading" text="暂无收货地址" icon="/static/data-empty.png" />
-	</s-layout>
-</template>
-
-<script setup>
-	import { reactive, onBeforeMount } from 'vue';
-	import { onShow } from '@dcloudio/uni-app';
-	import sheep from '@/sheep';
-	import { isEmpty } from 'lodash';
-  import AreaApi from '@/sheep/api/system/area';
-  import AddressApi from '@/sheep/api/member/address';
-
-	const state = reactive({
-		list: [], // 地址列表
-		loading: true,
-	});
-
-	// 选择收货地址
-	const onSelect = (addressInfo) => {
-		uni.$emit('SELECT_ADDRESS', {
-			addressInfo,
-		});
-		sheep.$router.back();
-	};
-
-	// 导入微信地址
-  // TODO 芋艿:未测试
-	function importWechatAddress() {
-		let wechatAddress = {};
-		// #ifdef MP
-		uni.chooseAddress({
-			success: (res) => {
-				wechatAddress = {
-					consignee: res.userName,
-					mobile: res.telNumber,
-					province_name: res.provinceName,
-					city_name: res.cityName,
-					district_name: res.countyName,
-					address: res.detailInfo,
-					region: '',
-					is_default: false,
-				};
-				if (!isEmpty(wechatAddress)) {
-					sheep.$router.go('/pages/user/address/edit', {
-						data: JSON.stringify(wechatAddress),
-					});
-				}
-			},
-			fail: (err) => {
-				console.log('%cuni.chooseAddress,调用失败', 'color:green;background:yellow');
-			},
-		});
-		// #endif
-		// #ifdef H5
-		sheep.$platform.useProvider('wechat').jssdk.openAddress({
-			success: (res) => {
-				wechatAddress = {
-					consignee: res.userName,
-					mobile: res.telNumber,
-					province_name: res.provinceName,
-					city_name: res.cityName,
-					district_name: res.countryName,
-					address: res.detailInfo,
-					region: '',
-					is_default: false,
-				};
-				if (!isEmpty(wechatAddress)) {
-					sheep.$router.go('/pages/user/address/edit', {
-						data: JSON.stringify(wechatAddress),
-					});
-				}
-			},
-		});
-		// #endif
-	}
-
-	onShow(async () => {
-		state.list = (await AddressApi.getAddressList()).data;
-		state.loading = false;
-	});
-
-	onBeforeMount(() => {
-		if (!!uni.getStorageSync('areaData')) {
-			return;
-		}
-		// 提前加载省市区数据
-    AreaApi.getAreaTree().then((res) => {
-			if (res.code === 0) {
-				uni.setStorageSync('areaData', res.data);
-			}
-		});
-	});
-</script>
-
-<style lang="scss" scoped>
-	.footer-box {
-		.add-btn {
-			flex: 1;
-			background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
-			border-radius: 80rpx;
-			font-size: 30rpx;
-			font-weight: 500;
-			line-height: 80rpx;
-			color: $white;
-			position: relative;
-			z-index: 1;
-		}
-
-		.sync-wxaddress {
-			flex: 1;
-			line-height: 80rpx;
-			background: $white;
-			border-radius: 80rpx;
-			font-size: 30rpx;
-			font-weight: 500;
-			color: $dark-6;
-			margin-right: 18rpx;
-		}
-	}
+<!-- 收件地址列表 -->
+<template>
+	<s-layout title="收货地址" :bgStyle="{ color: '#FFF' }">
+		<view v-if="state.list.length">
+			<s-address-item hasBorderBottom v-for="item in state.list" :key="item.id" :item="item"
+				@tap="onSelect(item)" />
+		</view>
+
+		<su-fixed bottom placeholder>
+			<view class="footer-box ss-flex ss-row-between ss-p-20">
+				<!-- 微信小程序和微信H5 -->
+				<button v-if="['WechatMiniProgram', 'WechatOfficialAccount'].includes(sheep.$platform.name)"
+					@tap="importWechatAddress"
+					class="border ss-reset-button sync-wxaddress ss-m-20 ss-flex ss-row-center ss-col-center">
+					<text class="cicon-weixin ss-p-r-10" style="color: #09bb07; font-size: 40rpx"></text>
+					导入微信地址
+				</button>
+				<button class="add-btn ss-reset-button ui-Shadow-Main"
+					@tap="sheep.$router.go('/pages/user/address/edit')">
+					新增收货地址
+				</button>
+			</view>
+		</su-fixed>
+		<s-empty v-if="state.list.length === 0 && !state.loading" text="暂无收货地址" icon="/static/data-empty.png" />
+	</s-layout>
+</template>
+
+<script setup>
+	import {
+		reactive,
+		onBeforeMount
+	} from 'vue';
+	import {
+		onShow
+	} from '@dcloudio/uni-app';
+	import sheep from '@/sheep';
+	import {
+		isEmpty
+	} from 'lodash';
+	import AreaApi from '@/sheep/api/system/area';
+	import AddressApi from '@/sheep/api/member/address';
+	import $helper from '@/sheep/helper';
+	const state = reactive({
+		list: [], // 地址列表
+		loading: true,
+	});
+
+	// 选择收货地址
+	const onSelect = (addressInfo) => {
+		uni.$emit('SELECT_ADDRESS', {
+			addressInfo,
+		});
+		sheep.$router.back();
+	};
+
+	// 导入微信地址
+	// TODO 芋艿:未测试
+	function importWechatAddress() {
+		let wechatAddress = {};
+		// #ifdef MP
+		uni.chooseAddress({
+			success: (res) => {
+				wechatAddress = {
+					consignee: res.userName,
+					mobile: res.telNumber,
+					province_name: res.provinceName,
+					city_name: res.cityName,
+					district_name: res.countyName,
+					address: res.detailInfo,
+					region: '',
+					is_default: false,
+				};
+				if (!isEmpty(wechatAddress)) {
+					sheep.$router.go('/pages/user/address/edit', {
+						data: JSON.stringify(wechatAddress),
+					});
+				}
+			},
+			fail: (err) => {
+				console.log("uni.chooseAddress调用失败,问题是:", err);
+			},
+		});
+		// #endif
+		// #ifdef H5
+		sheep.$platform.useProvider('wechat').jssdk.openAddress({
+			success: (res) => {
+				wechatAddress = {
+					consignee: res.userName,
+					mobile: res.telNumber,
+					province_name: res.provinceName,
+					city_name: res.cityName,
+					district_name: res.countryName,
+					address: res.detailInfo,
+					region: '',
+					is_default: false,
+				};
+				if (!isEmpty(wechatAddress)) {
+					sheep.$router.go('/pages/user/address/edit', {
+						data: JSON.stringify(wechatAddress),
+					});
+				}
+			},
+		});
+		// #endif
+
+
+	}
+
+	onShow(async () => {
+		state.list = (await AddressApi.getAddressList()).data;
+		state.loading = false;
+	});
+
+	onBeforeMount(() => {
+		if (!!uni.getStorageSync('areaData')) {
+			return;
+		}
+		// 提前加载省市区数据
+		AreaApi.getAreaTree().then((res) => {
+			if (res.code === 0) {
+				uni.setStorageSync('areaData', res.data);
+			}
+		});
+	});
+</script>
+
+<style lang="scss" scoped>
+	.footer-box {
+		.add-btn {
+			flex: 1;
+			background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
+			border-radius: 80rpx;
+			font-size: 30rpx;
+			font-weight: 500;
+			line-height: 80rpx;
+			color: $white;
+			position: relative;
+			z-index: 1;
+		}
+
+		.sync-wxaddress {
+			flex: 1;
+			line-height: 80rpx;
+			background: $white;
+			border-radius: 80rpx;
+			font-size: 30rpx;
+			font-weight: 500;
+			color: $dark-6;
+			margin-right: 18rpx;
+		}
+	}
 </style>
 </style>

+ 47 - 36
sheep/api/member/signin.js

@@ -1,37 +1,48 @@
-import request from '@/sheep/request';
-
-const SignInApi = {
-  // 获得签到规则列表
-  getSignInConfigList: () => {
-    return request({
-      url: '/member/sign-in/config/list',
-      method: 'GET',
-    });
-  },
-  // 获得个人签到统计
-  getSignInRecordSummary: () => {
-    return request({
-      url: '/member/sign-in/record/get-summary',
-      method: 'GET',
-    });
-  },
-  // 签到
-  createSignInRecord: () => {
-    return request({
-      url: '/member/sign-in/record/create',
-      method: 'POST',
-    });
-  },
-  // 获得签到记录分页
-  getSignRecordPage: (params) => {
-    const queryString = Object.keys(params)
-      .map((key) => encodeURIComponent(key) + '=' + params[key])
-      .join('&');
-    return request({
-      url: `/member/sign-in/record/page?${queryString}`,
-      method: 'GET',
-    });
-  },
-};
-
+import request from '@/sheep/request';
+
+const SignInApi = {
+	// 获得签到规则列表
+	getSignInConfigList: () => {
+		return request({
+			url: '/member/sign-in/config/list',
+			method: 'GET',
+		});
+	},
+
+	// 获得个人签到统计
+	getSignInRecordSummary: () => {
+		return request({
+			url: '/member/sign-in/record/get-summary',
+			method: 'GET',
+		});
+	},
+	// 获得
+	getOwnSignInMoon: (params) => {
+		return request({
+			url: '/member/sign-in/record/get-own-signInMoon',
+			method: 'GET',
+			params
+		});
+	},
+
+	// 签到
+	createSignInRecord: () => {
+		return request({
+			url: '/member/sign-in/record/create',
+			method: 'POST',
+		});
+	},
+	// 获得签到记录分页
+	getSignRecordPage: (params) => {
+		console.log(params)
+		const queryString = Object.keys(params)
+			.map((key) => encodeURIComponent(key) + '=' + params[key])
+			.join('&');
+		return request({
+			url: `/member/sign-in/record/page?${queryString}`,
+			method: 'GET',
+		});
+	},
+};
+
 export default SignInApi;
 export default SignInApi;

+ 152 - 107
sheep/components/s-auth-modal/components/account-login.vue

@@ -1,107 +1,152 @@
-<!-- 账号密码登录 accountLogin  -->
-<template>
-  <view>
-    <!-- 标题栏 -->
-    <view class="head-box ss-m-b-60 ss-flex-col">
-      <view class="ss-flex ss-m-b-20">
-        <view class="head-title-active head-title-line" @tap="showAuthModal('smsLogin')">
-          短信登录
-        </view>
-        <view class="head-title ss-m-r-40 head-title-animation">账号登录</view>
-      </view>
-      <view class="head-subtitle">如果未设置过密码,请点击忘记密码</view>
-    </view>
-
-    <!-- 表单项 -->
-    <uni-forms
-      ref="accountLoginRef"
-      v-model="state.model"
-      :rules="state.rules"
-      validateTrigger="bind"
-      labelWidth="140"
-      labelAlign="center"
-    >
-      <uni-forms-item name="mobile" label="账号">
-        <uni-easyinput placeholder="请输入账号" v-model="state.model.mobile" :inputBorder="false">
-          <template v-slot:right>
-            <button class="ss-reset-button forgot-btn" @tap="showAuthModal('resetPassword')">
-              忘记密码
-            </button>
-          </template>
-        </uni-easyinput>
-      </uni-forms-item>
-
-      <uni-forms-item name="password" label="密码">
-        <uni-easyinput
-          type="password"
-          placeholder="请输入密码"
-          v-model="state.model.password"
-          :inputBorder="false"
-        >
-          <template v-slot:right>
-            <button class="ss-reset-button login-btn-start" @tap="accountLoginSubmit">登录</button>
-          </template>
-        </uni-easyinput>
-      </uni-forms-item>
-    </uni-forms>
-  </view>
-</template>
-
-<script setup>
-  import { ref, reactive, unref } from 'vue';
-  import sheep from '@/sheep';
-  import { mobile, password } from '@/sheep/validate/form';
-  import { showAuthModal, closeAuthModal } from '@/sheep/hooks/useModal';
-  import AuthUtil from '@/sheep/api/member/auth';
-
-  const accountLoginRef = ref(null);
-
-  const emits = defineEmits(['onConfirm']);
-
-  const props = defineProps({
-    agreeStatus: {
-      type: Boolean,
-      default: false,
-    },
-  });
-
-  // 数据
-  const state = reactive({
-    model: {
-      mobile: '', // 账号
-      password: '', // 密码
-    },
-    rules: {
-      mobile,
-      password,
-    },
-  });
-
-  // 账号登录
-  async function accountLoginSubmit() {
-    // 表单验证
-    const validate = await unref(accountLoginRef)
-      .validate()
-      .catch((error) => {
-        console.log('error: ', error);
-      });
-    if (!validate) return;
-
-    // 同意协议
-    if (!props.agreeStatus) {
-      emits('onConfirm', true)
-      sheep.$helper.toast('请勾选同意');
-      return;
-    }
-
-    // 提交数据
-    const { code, data } = await AuthUtil.login(state.model);
-    if (code === 0) {
-      closeAuthModal();
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  @import '../index.scss';
-</style>
+<!-- 账号密码登录 accountLogin  -->
+<template>
+	<view>
+		<!-- 标题栏 -->
+		<!-- <view class="head-box  ss-flex-col">
+      <view class="ss-flex ss-m-b-20">
+        
+        <view class="head-title ss-m-r-40 head-title-animation">账号登录</view>
+		<view class="head-title-active head-title-line" @tap="showAuthModal('smsLogin')">
+		  短信登录
+		</view>
+      </view>
+      <view class="head-subtitle">如果未设置过密码,请点击忘记密码</view>
+    </view> -->
+
+		<!-- 表单项 -->
+		<uni-forms ref="accountLoginRef" v-model="state.model" :rules="state.rules" validateTrigger="bind"
+			labelWidth="140" labelAlign="center" class="loginUniForm">
+			<uni-forms-item name="mobile" label="账号" class="loginUniFormItem">
+				<uni-easyinput placeholder="请输入账号" v-model="state.model.mobile" :inputBorder="false">
+					<!-- <template v-slot:right>
+            <button class="ss-reset-button forgot-btn" @tap="showAuthModal('resetPassword')">
+              忘记密码
+            </button>
+          </template> -->
+				</uni-easyinput>
+			</uni-forms-item>
+
+			<uni-forms-item name="password" label="密码" class="loginUniFormItem">
+				<uni-easyinput type="password" placeholder="请输入密码" v-model="state.model.password" :inputBorder="false">
+					<!-- <template v-slot:right>
+            <button class="ss-reset-button login-btn-start" @tap="accountLoginSubmit">登录</button>
+          </template> -->
+				</uni-easyinput>
+			</uni-forms-item>
+		</uni-forms>
+		<view style="display: flex;justify-content: space-between;margin-top: 20rpx;">
+			<button class="ss-reset-button forgot-btn" @tap="showAuthModal('resetPassword')">
+				忘记密码
+			</button>
+			<button class="ss-reset-button login-btn-start" @tap="accountLoginSubmit">登录</button>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive,
+		unref,
+		computed
+	} from 'vue';
+	import sheep from '@/sheep';
+	import {
+		mobile,
+		password
+	} from '@/sheep/validate/form';
+	import {
+		showAuthModal,
+		closeAuthModal
+	} from '@/sheep/hooks/useModal';
+	import AuthUtil from '@/sheep/api/member/auth';
+
+	const accountLoginRef = ref(null);
+
+	const emits = defineEmits(['onConfirm']);
+
+	const props = defineProps({
+		agreeStatus: {
+			type: Boolean,
+			default: false,
+		},
+	});
+
+	// 数据
+	const state = reactive({
+		model: {
+			mobile: '', // 账号
+			password: '', // 密码
+		},
+		rules: {
+			mobile,
+			password,
+		},
+	});
+
+	// 账号登录
+	async function accountLoginSubmit() {
+		// 表单验证
+		const validate = await unref(accountLoginRef)
+			.validate()
+			.catch((error) => {
+				console.log('error: ', error);
+			});
+		if (!validate) return;
+
+		// 同意协议
+		if (!props.agreeStatus) {
+			emits('onConfirm', true)
+			// onConfirm(true)
+			// console.log("没勾选",protocol)
+			sheep.$helper.toast('请勾选同意');
+			return;
+		}
+
+		// 提交数据
+		const {
+			code,
+			data
+		} = await AuthUtil.login(state.model);
+		if (code === 0) {
+			closeAuthModal();
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '../index.scss';
+
+
+
+	.login-btn-start {
+		background: #55b774;
+		width: 60%;
+		height: 80rpx;
+		font-size: 32rpx;
+	}
+
+	.loginUniForm {
+		border: 1rpx solid #d6d6d6;
+		padding: 10rpx 15rpx;
+		border-radius: 10rpx;
+	}
+
+	.loginUniFormItem:first-child {
+		border-bottom: 1rpx solid #d6d6d6;
+		padding-bottom: 10rpx;
+	}
+
+	.loginUniFormItem:last-child {
+		// border-bottom: 1rpx solid #d6d6d6;
+		padding-top: 10rpx;
+	}
+
+	::v-deep .loginUniFormItem .uni-forms-item__inner {
+		padding-bottom: 0;
+	}
+
+	::v-deep .loginUniFormItem .uni-error-message {
+		bottom: -20rpx;
+	}
+</style>

+ 166 - 119
sheep/components/s-auth-modal/components/sms-login.vue

@@ -1,119 +1,166 @@
-<!-- 短信登录 - smsLogin  -->
-<template>
-  <view>
-    <!-- 标题栏 -->
-    <view class="head-box ss-m-b-60">
-      <view class="ss-flex ss-m-b-20">
-        <view class="head-title head-title-line head-title-animation">短信登录</view>
-        <view class="head-title-active ss-m-r-40" @tap="showAuthModal('accountLogin')">
-          账号登录
-        </view>
-      </view>
-      <view class="head-subtitle">未注册的手机号,验证后自动注册账号</view>
-    </view>
-
-    <!-- 表单项 -->
-    <uni-forms
-      ref="smsLoginRef"
-      v-model="state.model"
-      :rules="state.rules"
-      validateTrigger="bind"
-      labelWidth="140"
-      labelAlign="center"
-    >
-      <uni-forms-item name="mobile" label="手机号">
-        <uni-easyinput
-          placeholder="请输入手机号"
-          v-model="state.model.mobile"
-          :inputBorder="false"
-          type="number"
-        >
-          <template v-slot:right>
-            <button
-              class="ss-reset-button code-btn code-btn-start"
-              :disabled="state.isMobileEnd"
-              :class="{ 'code-btn-end': state.isMobileEnd }"
-              @tap="getSmsCode('smsLogin', state.model.mobile)"
-            >
-              {{ getSmsTimer('smsLogin') }}
-            </button>
-          </template>
-        </uni-easyinput>
-      </uni-forms-item>
-
-      <uni-forms-item name="code" label="验证码">
-        <uni-easyinput
-          placeholder="请输入验证码"
-          v-model="state.model.code"
-          :inputBorder="false"
-          type="number"
-          maxlength="4"
-        >
-          <template v-slot:right>
-            <button class="ss-reset-button login-btn-start" @tap="smsLoginSubmit"> 登录 </button>
-          </template>
-        </uni-easyinput>
-      </uni-forms-item>
-    </uni-forms>
-  </view>
-</template>
-
-<script setup>
-  import { ref, reactive, unref } from 'vue';
-  import sheep from '@/sheep';
-  import { code, mobile } from '@/sheep/validate/form';
-  import { showAuthModal, closeAuthModal, getSmsCode, getSmsTimer } from '@/sheep/hooks/useModal';
-  import AuthUtil from '@/sheep/api/member/auth';
-
-  const smsLoginRef = ref(null);
-
-  const emits = defineEmits(['onConfirm']);
-
-  const props = defineProps({
-    agreeStatus: {
-      type: Boolean,
-      default: false,
-    },
-  });
-
-  // 数据
-  const state = reactive({
-    isMobileEnd: false, // 手机号输入完毕
-    codeText: '获取验证码',
-    model: {
-      mobile: '', // 手机号
-      code: '', // 验证码
-    },
-    rules: {
-      code,
-      mobile,
-    },
-  });
-
-  // 短信登录
-  async function smsLoginSubmit() {
-    // 参数校验
-    const validate = await unref(smsLoginRef)
-      .validate()
-      .catch((error) => {
-        console.log('error: ', error);
-      });
-    if (!validate) {
-      return;
-    }
-    if (!props.agreeStatus) {
-      emits('onConfirm', true)
-      sheep.$helper.toast('请勾选同意');
-      return;
-    }
-    // 提交数据
-    const { code } = await AuthUtil.smsLogin(state.model);
-    if (code === 0) {
-      closeAuthModal();
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-  @import '../index.scss';
-</style>
+<!-- 短信登录 - smsLogin  -->
+<template>
+	<view>
+		<!-- 标题栏 -->
+		<!-- <view class="head-box ss-m-b-60">
+      <view class="ss-flex ss-m-b-20">
+		  <view class="head-title-active ss-m-r-40" @tap="showAuthModal('accountLogin')">
+		    账号登录
+		  </view>
+        <view class="head-title head-title-line head-title-animation">短信登录</view>
+        
+      </view>
+      <view class="head-subtitle">未注册的手机号,验证后自动注册账号</view>
+    </view> -->
+
+
+		<!-- 表单项 -->
+		<uni-forms ref="smsLoginRef" v-model="state.model" :rules="state.rules" validateTrigger="bind" labelWidth="140"
+			labelAlign="center" class="loginUniForm">
+			<uni-forms-item name="mobile" label="手机号" class="loginUniFormItem">
+				<uni-easyinput placeholder="请输入手机号" v-model="state.model.mobile" :inputBorder="false" type="number">
+					<template v-slot:right>
+						<button class="ss-reset-button code-btn code-btn-start" :disabled="state.isMobileEnd"
+							:class="{ 'code-btn-end': state.isMobileEnd }"
+							@tap="getSmsCode('smsLogin', state.model.mobile)">
+							{{ getSmsTimer('smsLogin') }}
+						</button>
+					</template>
+				</uni-easyinput>
+			</uni-forms-item>
+
+			<uni-forms-item name="code" label="验证码" class="loginUniFormItem">
+				<uni-easyinput placeholder="请输入验证码" v-model="state.model.code" :inputBorder="false" type="number"
+					maxlength="4">
+					<!-- <template v-slot:right>
+            <button class="ss-reset-button login-btn-start" @tap="smsLoginSubmit"> 登录 </button>
+          </template> -->
+				</uni-easyinput>
+			</uni-forms-item>
+		</uni-forms>
+		<view style="display: flex;justify-content: space-between;margin-top: 20rpx;">
+			<!-- <button class="ss-reset-button forgot-btn" @tap="showAuthModal('resetPassword')">
+		  忘记密码
+		</button> -->
+			<button class="ss-reset-button login-btn-start" @tap="smsLoginSubmit"> 登录 </button>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive,
+		unref,
+		computed
+	} from 'vue';
+	import sheep from '@/sheep';
+	import {
+		code,
+		mobile
+	} from '@/sheep/validate/form';
+	import {
+		showAuthModal,
+		closeAuthModal,
+		getSmsCode,
+		getSmsTimer
+	} from '@/sheep/hooks/useModal';
+	import AuthUtil from '@/sheep/api/member/auth';
+
+	const smsLoginRef = ref(null);
+
+	const emits = defineEmits(['onConfirm']);
+
+	const props = defineProps({
+		agreeStatus: {
+			type: Boolean,
+			default: false,
+		},
+	});
+
+	// 数据
+	const state = reactive({
+		isMobileEnd: false, // 手机号输入完毕
+		codeText: '获取验证码',
+		model: {
+			mobile: '', // 手机号
+			code: '', // 验证码
+		},
+		rules: {
+			code,
+			mobile,
+		},
+	});
+
+	// 短信登录
+	async function smsLoginSubmit() {
+		// 参数校验
+		const validate = await unref(smsLoginRef)
+			.validate()
+			.catch((error) => {
+				console.log('error: ', error);
+			});
+		if (!validate) {
+			return;
+		}
+		if (!!props.agreeStatus) {
+			emits('onConfirm', true)
+			//onConfirm(true)
+			sheep.$helper.toast('请勾选同意');
+			return;
+		}
+		// 提交数据
+		const {
+			code
+		} = await AuthUtil.smsLogin(state.model);
+		if (code === 0) {
+			closeAuthModal();
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '../index.scss';
+
+	.code-btn-start {
+		color: #55b774;
+		border: 1px solid #55b774;
+	}
+
+
+
+	.agreement-box {
+		margin: 20rpx 0;
+	}
+
+	.login-btn-start {
+		background: rgb(14, 147, 46);
+		width: 100%;
+		height: 80rpx;
+		font-size: 32rpx;
+	}
+
+	.loginUniForm {
+		border: 1rpx solid #d6d6d6;
+		padding: 10rpx 15rpx;
+		border-radius: 10rpx;
+	}
+
+	.loginUniFormItem:first-child {
+		border-bottom: 1rpx solid #d6d6d6;
+		padding-bottom: 10rpx;
+	}
+
+	.loginUniFormItem:last-child {
+		// border-bottom: 1rpx solid #d6d6d6;
+		padding-top: 10rpx;
+	}
+
+	::v-deep .loginUniFormItem .uni-forms-item__inner {
+		padding-bottom: 0;
+	}
+
+	::v-deep .loginUniFormItem .uni-error-message {
+		bottom: -20rpx;
+	}
+</style>

+ 289 - 239
sheep/components/s-auth-modal/s-auth-modal.vue

@@ -1,239 +1,289 @@
-<template>
-  <!-- 规格弹窗 -->
-  <su-popup :show="authType !== ''" round="10" :showClose="true" @close="closeAuthModal">
-    <view class="login-wrap">
-      <!-- 1. 账号密码登录 accountLogin -->
-      <account-login
-        v-if="authType === 'accountLogin'"
-        :agreeStatus="state.protocol"
-        @onConfirm="onConfirm"
-      />
-
-      <!-- 2. 短信登录  smsLogin -->
-      <sms-login v-if="authType === 'smsLogin'" :agreeStatus="state.protocol" @onConfirm="onConfirm" />
-
-      <!-- 3. 忘记密码 resetPassword-->
-      <reset-password v-if="authType === 'resetPassword'" />
-
-      <!-- 4. 绑定手机号 changeMobile -->
-      <change-mobile v-if="authType === 'changeMobile'" />
-
-      <!-- 5. 修改密码 changePassword-->
-      <changePassword v-if="authType === 'changePassword'" />
-
-      <!-- 6. 微信小程序授权 -->
-      <mp-authorization v-if="authType === 'mpAuthorization'" />
-
-      <!-- 7. 第三方登录 -->
-      <view
-        v-if="['accountLogin', 'smsLogin'].includes(authType)"
-        class="auto-login-box ss-flex ss-flex-col ss-row-center ss-col-center"
-      >
-        <!-- 7.1 微信小程序的快捷登录 -->
-        <view v-if="sheep.$platform.name === 'WechatMiniProgram'" class="ss-flex register-box">
-          <view class="register-title">还没有账号?</view>
-          <button class="ss-reset-button login-btn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
-            快捷登录
-          </button>
-          <view class="circle" />
-        </view>
-
-        <!-- 7.2 微信的公众号、App、小程序的登录,基于 openid + code -->
-        <button
-          v-if="
-            ['WechatOfficialAccount', 'WechatMiniProgram', 'App'].includes(sheep.$platform.name) &&
-            sheep.$platform.isWechatInstalled
-          "
-          @tap="thirdLogin('wechat')"
-          class="ss-reset-button auto-login-btn"
-        >
-          <image
-            class="auto-login-img"
-            :src="sheep.$url.static('/static/img/shop/platform/wechat.png')"
-          />
-        </button>
-
-        <!-- 7.3 iOS 登录 TODO 芋艿:等后面搞 App 再弄 -->
-        <button
-          v-if="sheep.$platform.os === 'ios' && sheep.$platform.name === 'App'"
-          @tap="thirdLogin('apple')"
-          class="ss-reset-button auto-login-btn"
-        >
-          <image
-            class="auto-login-img"
-            :src="sheep.$url.static('/static/img/shop/platform/apple.png')"
-          />
-        </button>
-      </view>
-
-      <!-- 用户协议的勾选 -->
-      <view
-        v-if="['accountLogin', 'smsLogin'].includes(authType)"
-        class="agreement-box ss-flex ss-row-center"
-        :class="{ shake: currentProtocol }"
-      >
-        <label class="radio ss-flex ss-col-center" @tap="onChange">
-          <radio
-            :checked="state.protocol"
-            color="var(--ui-BG-Main)"
-            style="transform: scale(0.8)"
-            @tap.stop="onChange"
-          />
-          <view class="agreement-text ss-flex ss-col-center ss-m-l-8">
-            我已阅读并遵守
-            <view class="tcp-text" @tap.stop="onProtocol('用户协议')">
-              《用户协议》
-            </view>
-            <view class="agreement-text">与</view>
-            <view class="tcp-text" @tap.stop="onProtocol('隐私协议')">
-              《隐私协议》
-            </view>
-          </view>
-        </label>
-      </view>
-      <view class="safe-box"/>
-    </view>
-  </su-popup>
-</template>
-
-<script setup>
-  import { computed, reactive, ref } from 'vue';
-  import sheep from '@/sheep';
-  import accountLogin from './components/account-login.vue';
-  import smsLogin from './components/sms-login.vue';
-  import resetPassword from './components/reset-password.vue';
-  import changeMobile from './components/change-mobile.vue';
-  import changePassword from './components/change-password.vue';
-  import mpAuthorization from './components/mp-authorization.vue';
-  import { closeAuthModal, showAuthModal } from '@/sheep/hooks/useModal';
-
-  const appInfo = computed(() => sheep.$store('app').info);
-
-  const modalStore = sheep.$store('modal');
-  // 授权弹窗类型
-  const authType = computed(() => modalStore.auth);
-
-  const state = reactive({
-    protocol: false,
-  });
-
-  const currentProtocol = ref(false);
-
-  // 勾选协议
-  function onChange() {
-    state.protocol = !state.protocol;
-  }
-
-  // 查看协议
-  function onProtocol(title) {
-    closeAuthModal();
-    sheep.$router.go('/pages/public/richtext', {
-      title,
-    });
-  }
-
-  // 点击登录 / 注册事件
-  function onConfirm(e) {
-    currentProtocol.value = e;
-    setTimeout(() => {
-      currentProtocol.value = false;
-    }, 1000);
-  }
-
-  // 第三方授权登陆(微信小程序、Apple)
-  const thirdLogin = async (provider) => {
-    if (!state.protocol) {
-      currentProtocol.value = true;
-      setTimeout(() => {
-        currentProtocol.value = false;
-      }, 1000);
-      sheep.$helper.toast('请勾选同意');
-      return;
-    }
-    const loginRes = await sheep.$platform.useProvider(provider).login();
-    if (loginRes) {
-      closeAuthModal();
-      // 触发小程序授权信息弹框
-      // #ifdef MP-WEIXIN
-      showAuthModal('mpAuthorization');
-      // #endif
-    }
-  };
-
-  // 微信小程序的“手机号快速验证”:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
-  const getPhoneNumber = async (e) => {
-    if (e.detail.errMsg !== 'getPhoneNumber:ok') {
-      sheep.$helper.toast('快捷登录失败');
-      return;
-    }
-    let result = await sheep.$platform.useProvider().mobileLogin(e.detail);
-    if (result) {
-      closeAuthModal();
-    }
-  };
-</script>
-
-<style lang="scss" scoped>
-  @import './index.scss';
-
-  .shake {
-    animation: shake 0.05s linear 4 alternate;
-  }
-
-  @keyframes shake {
-    from {
-      transform: translateX(-10rpx);
-    }
-    to {
-      transform: translateX(10rpx);
-    }
-  }
-
-  .register-box {
-    position: relative;
-    justify-content: center;
-    .register-btn {
-      color: #999999;
-      font-size: 30rpx;
-      font-weight: 500;
-    }
-    .register-title {
-      color: #999999;
-      font-size: 30rpx;
-      font-weight: 400;
-      margin-right: 24rpx;
-    }
-    .or-title {
-      margin: 0 16rpx;
-      color: #999999;
-      font-size: 30rpx;
-      font-weight: 400;
-    }
-    .login-btn {
-      color: var(--ui-BG-Main);
-      font-size: 30rpx;
-      font-weight: 500;
-    }
-    .circle {
-      position: absolute;
-      right: 0rpx;
-      top: 18rpx;
-      width: 8rpx;
-      height: 8rpx;
-      border-radius: 8rpx;
-      background: var(--ui-BG-Main);
-    }
-  }
-  .safe-box {
-    height: calc(constant(safe-area-inset-bottom) / 5 * 3);
-    height: calc(env(safe-area-inset-bottom) / 5 * 3);
-  }
-
-  .tcp-text {
-    color: var(--ui-BG-Main);
-  }
-
-  .agreement-text {
-    color: $dark-9;
-  }
-</style>
+<template>
+	<!-- 规格弹窗 -->
+	<su-popup :show="authType !== ''" round="10" :showClose="true" @close="closeAuthModal">
+
+		<view class="login-wrap">
+			<!-- 标题栏 -->
+			<view class="head-box " v-if="['accountLogin', 'smsLogin'].includes(authType)">
+				<view class="ss-flex ss-m-b-20">
+
+					<view
+						:class="[isActive=='accountLogin'?`head-title ss-m-r-40 head-title-animation`:`head-title-active ss-m-r-40`]"
+						@tap="isActive='accountLogin';showAuthModal('accountLogin')">
+						账号登录
+					</view>
+					<view
+						:class="[isActive=='smsLogin'?`head-title head-title-line head-title-animation`:`head-title-active head-title-line`]"
+						@tap="isActive='smsLogin';showAuthModal('smsLogin')">
+						短信登录
+					</view>
+
+				</view>
+			</view>
+			<!-- 用户协议的勾选 -->
+			<view v-if="['accountLogin', 'smsLogin'].includes(authType)" class="agreement-box ss-flex ss-row-center"
+				:class="{ shake: currentProtocol }">
+				<label class="radio ss-flex ss-col-center" @tap="onChange">
+					<radio :checked="state.protocol" color="var(--ui-BG-Main)" style="transform: scale(0.8)"
+						@tap.stop="onChange" />
+					<view class="agreement-text ss-flex ss-col-center ss-m-l-8">
+						我已阅读并遵守
+						<view class="tcp-text" @tap.stop="onProtocol('用户协议')">
+							《用户协议》
+						</view>
+						<view class="agreement-text">与</view>
+						<view class="tcp-text" @tap.stop="onProtocol('隐私协议')">
+							《隐私协议》
+						</view>
+					</view>
+				</label>
+			</view>
+			<!-- 微信公众号授权登陆 -->
+			<view v-if="['accountLogin', 'smsLogin'].includes(authType)"
+				class="auto-login-box ss-flex ss-flex-col ss-row-center ss-col-center">
+				<view class="wx-login-btn " @tap="thirdLogin('wechat')" v-if=" ['WechatOfficialAccount', 'WechatMiniProgram', 'App'].includes(sheep.$platform.name) && sheep.$platform.isWechatInstalled
+				">
+
+					<image class=" auto-login-img" :src="sheep.$url.static('/static/img/shop/platform/wechat.png')" />
+
+					<text>微信授权登录</text>
+				</view>
+			</view>
+			<!-- 1. 账号密码登录 accountLogin -->
+			<account-login v-if="authType === 'accountLogin'" :agreeStatus="state.protocol" @onConfirm="onConfirm" />
+
+			<!-- 2. 短信登录  smsLogin -->
+			<sms-login v-if="authType === 'smsLogin'" :agreeStatus="state.protocol" @onConfirm="onConfirm" />
+
+			<!-- 3. 忘记密码 resetPassword-->
+			<reset-password v-if="authType === 'resetPassword'" />
+
+			<!-- 4. 绑定手机号 changeMobile -->
+			<change-mobile v-if="authType === 'changeMobile'" />
+
+			<!-- 5. 修改密码 changePassword-->
+			<changePassword v-if="authType === 'changePassword'" />
+
+			<!-- 6. 微信小程序授权 -->
+			<mp-authorization v-if="authType === 'mpAuthorization'" />
+
+			<!-- 7. 第三方登录 -->
+			<view v-if="['accountLogin', 'smsLogin'].includes(authType)"
+				class="auto-login-box ss-flex ss-flex-col ss-row-center ss-col-center">
+				<!-- 7.1 微信小程序的快捷登录 -->
+				<view v-if="sheep.$platform.name === 'WechatMiniProgram'" class="ss-flex register-box">
+					<view class="register-title">还没有账号?</view>
+					<button class="ss-reset-button login-btn" open-type="getPhoneNumber"
+						@getphonenumber="getPhoneNumber">
+						快捷登录
+					</button>
+					<view class="circle" />
+				</view>
+
+				<!-- 7.2 微信的公众号、App、小程序的登录,基于 openid + code -->
+				<!-- <button
+          v-if="
+            ['WechatOfficialAccount', 'WechatMiniProgram', 'App'].includes(sheep.$platform.name) &&
+            sheep.$platform.isWechatInstalled
+          "
+          @tap="thirdLogin('wechat')"
+          class="ss-reset-button auto-login-btn"
+        >
+          <image
+            class="auto-login-img"
+            :src="sheep.$url.static('/static/img/shop/platform/wechat.png')"
+          />
+        </button> -->
+
+
+
+				<!-- 7.3 iOS 登录 TODO 芋艿:等后面搞 App 再弄 -->
+				<button v-if="sheep.$platform.os === 'ios' && sheep.$platform.name === 'App'" @tap="thirdLogin('apple')"
+					class="ss-reset-button auto-login-btn">
+					<image class="auto-login-img" :src="sheep.$url.static('/static/img/shop/platform/apple.png')" />
+				</button>
+			</view>
+
+
+			<view class="safe-box" />
+		</view>
+	</su-popup>
+</template>
+
+<script setup>
+	import {
+		computed,
+		reactive,
+		ref
+	} from 'vue';
+	import sheep from '@/sheep';
+	import accountLogin from './components/account-login.vue';
+	import smsLogin from './components/sms-login.vue';
+	import resetPassword from './components/reset-password.vue';
+	import changeMobile from './components/change-mobile.vue';
+	import changePassword from './components/change-password.vue';
+	import mpAuthorization from './components/mp-authorization.vue';
+	import {
+		closeAuthModal,
+		showAuthModal
+	} from '@/sheep/hooks/useModal';
+
+	const appInfo = computed(() => sheep.$store('app').info);
+
+	const modalStore = sheep.$store('modal');
+	// 授权弹窗类型
+	const authType = computed(() => modalStore.auth);
+
+	const state = reactive({
+		protocol: false,
+	});
+	const isActive = ref("accountLogin")
+	const currentProtocol = ref(false);
+
+	// 勾选协议
+	function onChange() {
+		state.protocol = !state.protocol;
+	}
+
+	// 查看协议
+	function onProtocol(title) {
+		closeAuthModal();
+		sheep.$router.go('/pages/public/richtext', {
+			title,
+		});
+	}
+
+	// 点击登录 / 注册事件
+	function onConfirm(e) {
+		currentProtocol.value = e;
+		setTimeout(() => {
+			currentProtocol.value = false;
+		}, 1000);
+	}
+
+	// 第三方授权登陆(微信小程序、Apple)
+	const thirdLogin = async (provider) => {
+		if (!state.protocol) {
+			currentProtocol.value = true;
+			setTimeout(() => {
+				currentProtocol.value = false;
+			}, 1000);
+			sheep.$helper.toast('请勾选同意');
+			return;
+		}
+		const loginRes = await sheep.$platform.useProvider(provider).login();
+		if (loginRes) {
+			closeAuthModal();
+			// 触发小程序授权信息弹框
+			// #ifdef MP-WEIXIN
+			showAuthModal('mpAuthorization');
+			// #endif
+		}
+	};
+
+	// 微信小程序的“手机号快速验证”:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
+	const getPhoneNumber = async (e) => {
+		if (e.detail.errMsg !== 'getPhoneNumber:ok') {
+			sheep.$helper.toast('快捷登录失败');
+			return;
+		}
+		let result = await sheep.$platform.useProvider().mobileLogin(e.detail);
+		if (result) {
+			closeAuthModal();
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	@import './index.scss';
+
+	.shake {
+		animation: shake 0.05s linear 4 alternate;
+	}
+
+	@keyframes shake {
+		from {
+			transform: translateX(-10rpx);
+		}
+
+		to {
+			transform: translateX(10rpx);
+		}
+	}
+
+	.register-box {
+		position: relative;
+		justify-content: center;
+
+		.register-btn {
+			color: #999999;
+			font-size: 30rpx;
+			font-weight: 500;
+		}
+
+		.register-title {
+			color: #999999;
+			font-size: 30rpx;
+			font-weight: 400;
+			margin-right: 24rpx;
+		}
+
+		.or-title {
+			margin: 0 16rpx;
+			color: #999999;
+			font-size: 30rpx;
+			font-weight: 400;
+		}
+
+		.login-btn {
+			color: var(--ui-BG-Main);
+			font-size: 30rpx;
+			font-weight: 500;
+		}
+
+		.circle {
+			position: absolute;
+			right: 0rpx;
+			top: 18rpx;
+			width: 8rpx;
+			height: 8rpx;
+			border-radius: 8rpx;
+			background: var(--ui-BG-Main);
+		}
+	}
+
+	.safe-box {
+		height: calc(constant(safe-area-inset-bottom) / 5 * 3);
+		height: calc(env(safe-area-inset-bottom) / 5 * 3);
+	}
+
+	.tcp-text {
+		color: var(--ui-BG-Main);
+	}
+
+	.agreement-text {
+		color: $dark-9;
+	}
+
+	.wx-login-btn {
+		width: 100%;
+		border: 1rpx solid #55b774;
+		border-radius: 10rpx;
+		padding: 10rpx 0;
+		color: #333333;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-size: 32rpx;
+		margin: 0 0 0.625rem 0;
+		box-sizing: border-box;
+
+		text {
+			margin-left: 20rpx
+		}
+	}
+
+	.agreement-box {
+		margin: 40rpx;
+	}
+</style>

+ 150 - 161
sheep/components/s-share-modal/canvas-poster/index.vue

@@ -1,161 +1,150 @@
-<!-- 海报弹窗 -->
-<template>
-  <su-popup :show="show" round="10" @close="onClosePoster" type="center" class="popup-box">
-    <view class="ss-flex-col ss-col-center ss-row-center">
-      <view
-        v-if="poster.src === ''"
-        class="poster-title ss-flex ss-row-center"
-        :style="{
-          height: poster.height + 'px',
-          width: poster.width + 'px',
-        }"
-      >
-        海报加载中...
-      </view>
-      <image
-        v-else
-        class="poster-img"
-        :src="poster.src"
-        :style="{
-          height: poster.height + 'px',
-          width: poster.width + 'px',
-        }"
-        :show-menu-by-longpress="true"
-      />
-      <canvas
-        class="hideCanvas"
-        :canvas-id="poster.canvasId"
-        :id="poster.canvasId"
-        :style="{
-          height: poster.height + 'px',
-          width: poster.width + 'px',
-        }"
-      />
-      <view
-        class="poster-btn-box ss-m-t-20 ss-flex ss-row-between ss-col-center"
-        v-if="poster.src !== ''"
-      >
-        <button class="cancel-btn ss-reset-button" @tap="onClosePoster">取消</button>
-        <button class="save-btn ss-reset-button ui-BG-Main" @tap="onSavePoster">
-          {{
-            ['wechatOfficialAccount', 'H5'].includes(sheep.$platform.name)
-              ? '长按图片保存'
-              : '保存图片'
-          }}
-        </button>
-      </view>
-    </view>
-  </su-popup>
-</template>
-
-<script setup>
-  import { reactive, getCurrentInstance } from 'vue';
-  import sheep from '@/sheep';
-  import useCanvas from './useCanvas';
-
-  const props = defineProps({
-    show: {
-      type: Boolean,
-      default: false,
-    },
-    shareInfo: {
-      type: Object,
-      default() {},
-    },
-  });
-
-  const poster = reactive({
-    canvasId: 'canvasId',
-    width: sheep.$platform.device.windowWidth * 0.9,
-    height: 600,
-    src: '',
-  });
-
-  const emits = defineEmits(['success', 'close']);
-  const vm = getCurrentInstance();
-
-  const onClosePoster = () => {
-    emits('close');
-  };
-
-  // 保存海报图片
-  const onSavePoster = () => {
-    if (['WechatOfficialAccount', 'H5'].includes(sheep.$platform.name)) {
-      sheep.$helper.toast('请长按图片保存');
-      return;
-    }
-
-    uni.saveImageToPhotosAlbum({
-      filePath: poster.src,
-      success: (res) => {
-        onClosePoster();
-        sheep.$helper.toast('保存成功');
-      },
-      fail: (err) => {
-        sheep.$helper.toast('保存失败');
-        console.log('图片保存失败:', err);
-      },
-    });
-  };
-
-  // 使用 canvas 生成海报
-  async function getPoster(params) {
-    poster.src = '';
-
-    poster.shareInfo = props.shareInfo;
-    // #ifdef APP-PLUS
-    poster.canvasId = 'canvasId-' + new Date().getTime();
-    // #endif
-    const canvas = await useCanvas(poster, vm);
-    return canvas;
-  }
-
-  defineExpose({
-    getPoster,
-  });
-</script>
-
-<style lang="scss" scoped>
-  .popup-box {
-    position: relative;
-  }
-  .poster-title {
-    color: #999;
-  }
-  // 分享海报
-  .poster-btn-box {
-    width: 600rpx;
-    position: absolute;
-    left: 50%;
-    transform: translateX(-50%);
-    bottom: -80rpx;
-    .cancel-btn {
-      width: 240rpx;
-      height: 70rpx;
-      line-height: 70rpx;
-      background: $white;
-      border-radius: 35rpx;
-      font-size: 28rpx;
-      font-weight: 500;
-      color: $dark-9;
-    }
-    .save-btn {
-      width: 240rpx;
-      height: 70rpx;
-      line-height: 70rpx;
-      border-radius: 35rpx;
-      font-size: 28rpx;
-      font-weight: 500;
-    }
-  }
-
-  .poster-img {
-    border-radius: 20rpx;
-  }
-  .hideCanvas {
-    position: fixed;
-    top: -99999rpx;
-    left: -99999rpx;
-    z-index: -99999;
-  }
-</style>
+<!-- 海报弹窗 -->
+<template>
+	<su-popup :show="show" round="10" @close="onClosePoster" type="center" class="popup-box">
+		<view class="ss-flex-col ss-col-center ss-row-center">
+			<view v-if="poster.src === ''" class="poster-title ss-flex ss-row-center" :style="{
+          height: poster.height + 'px',
+          width: poster.width + 'px',
+        }">
+				海报加载中...
+			</view>
+			<image v-else class="poster-img" :src="poster.src" :style="{
+          height: poster.height + 'px',
+          width: poster.width + 'px',
+        }" :show-menu-by-longpress="true" />
+			<canvas class="hideCanvas" :canvas-id="poster.canvasId" :id="poster.canvasId" :style="{
+          height: poster.height + 'px',
+          width: poster.width + 'px',
+        }" />
+			<view class="poster-btn-box ss-m-t-20 ss-flex ss-row-between ss-col-center" v-if="poster.src !== ''">
+				<button class="cancel-btn ss-reset-button" @tap="onClosePoster">取消</button>
+				<button class="save-btn ss-reset-button ui-BG-Main" @tap="onSavePoster">
+					{{
+            ['wechatOfficialAccount', 'H5'].includes(sheep.$platform.name)
+              ? '长按图片保存'
+              : '保存图片'
+          }}
+				</button>
+			</view>
+		</view>
+	</su-popup>
+</template>
+
+<script setup>
+	import {
+		reactive,
+		getCurrentInstance
+	} from 'vue';
+	import sheep from '@/sheep';
+	import useCanvas from './useCanvas';
+
+	const props = defineProps({
+		show: {
+			type: Boolean,
+			default: false,
+		},
+		shareInfo: {
+			type: Object,
+			default () {},
+		},
+	});
+
+	const poster = reactive({
+		canvasId: 'canvasId',
+		width: sheep.$platform.device.windowWidth * 0.9,
+		height: 600,
+		src: '',
+	});
+
+	const emits = defineEmits(['success', 'close']);
+	const vm = getCurrentInstance();
+	const onClosePoster = () => {
+		emits('close');
+	};
+
+	// 保存海报图片
+	const onSavePoster = () => {
+		if (['WechatOfficialAccount', 'H5'].includes(sheep.$platform.name)) {
+			sheep.$helper.toast('请长按图片保存');
+			return;
+		}
+
+		uni.saveImageToPhotosAlbum({
+			filePath: poster.src,
+			success: (res) => {
+				onClosePoster();
+				sheep.$helper.toast('保存成功');
+			},
+			fail: (err) => {
+				sheep.$helper.toast('保存失败');
+				console.log('图片保存失败:', err);
+			},
+		});
+	};
+
+	// 使用 canvas 生成海报
+	async function getPoster(params) {
+		poster.src = '';
+
+		poster.shareInfo = props.shareInfo;
+		// #ifdef APP-PLUS
+		poster.canvasId = 'canvasId-' + new Date().getTime();
+		// #endif
+		const canvas = await useCanvas(poster, vm);
+		return canvas;
+	}
+
+	defineExpose({
+		getPoster,
+	});
+</script>
+
+<style lang="scss" scoped>
+	.popup-box {
+		position: relative;
+	}
+
+	.poster-title {
+		color: #999;
+	}
+
+	// 分享海报
+	.poster-btn-box {
+		width: 600rpx;
+		position: absolute;
+		left: 50%;
+		transform: translateX(-50%);
+		bottom: -80rpx;
+
+		.cancel-btn {
+			width: 240rpx;
+			height: 70rpx;
+			line-height: 70rpx;
+			background: $white;
+			border-radius: 35rpx;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: $dark-9;
+		}
+
+		.save-btn {
+			width: 240rpx;
+			height: 70rpx;
+			line-height: 70rpx;
+			border-radius: 35rpx;
+			font-size: 28rpx;
+			font-weight: 500;
+		}
+	}
+
+	.poster-img {
+		border-radius: 20rpx;
+	}
+
+	.hideCanvas {
+		position: fixed;
+		top: -99999rpx;
+		left: -99999rpx;
+		z-index: -99999;
+	}
+</style>

+ 99 - 87
sheep/components/s-share-modal/canvas-poster/useCanvas.js

@@ -1,87 +1,99 @@
-/**
- * Shopro + qs-canvas 绘制海报
- * @version 1.0.0
- * @author lidongtony
- * @param {Object} options - 海报参数
- * @param {Object} vm - 自定义组件实例
- */
-import QSCanvas from 'qs-canvas';
-import { getPosterData } from './poster';
-
-export default async function useCanvas(options, vm) {
-  const width = options.width;
-  const qsc = new QSCanvas(
-    {
-      canvasId: options.canvasId,
-      width: options.width,
-      height: options.height,
-      setCanvasWH: (canvas) => {
-        options.height = canvas.height;
-      },
-    },
-    vm,
-  );
-
-  let drawer = getPosterData(options);
-
-  // 绘制背景图
-  const background = await qsc.drawImg({
-    type: 'image',
-    val: drawer.background,
-    x: 0,
-    y: 0,
-    width,
-    mode: 'widthFix',
-    zIndex: 0,
-  });
-  await qsc.updateCanvasWH({
-    width: background.width,
-    height: background.bottom,
-  });
-
-  let list = drawer.list;
-
-  for (let i = 0; i < list.length; i++) {
-    let item = list[i];
-    // 绘制文字
-    if (item.type === 'text') {
-      await qsc.drawText(item);
-    }
-    // 绘制图片
-    if (item.type === 'image') {
-      if (item.d) {
-        qsc.setCircle({
-          x: item.x,
-          y: item.y,
-          d: item.d,
-          clip: true,
-        });
-      }
-
-      if (item.r) {
-        qsc.setRect({
-          x: item.x,
-          y: item.y,
-          height: item.height,
-          width: item.width,
-          r: item.r,
-          clip: true,
-        });
-      }
-      await qsc.drawImg(item);
-      qsc.restore();
-    }
-
-    // 绘制二维码
-    if (item.type === 'qrcode') {
-      await qsc.drawQrCode(item);
-    }
-  }
-
-  await qsc.draw();
-  // 延迟执行, 防止不稳定
-  setTimeout(async () => {
-    options.src = await qsc.toImage();
-  }, 100);
-  return options;
-}
+/**
+ * Shopro + qs-canvas 绘制海报
+ * @version 1.0.0
+ * @author lidongtony
+ * @param {Object} options - 海报参数
+ * @param {Object} vm - 自定义组件实例
+ */
+import QSCanvas from 'qs-canvas';
+import {
+	getPosterData
+} from './poster';
+
+export default async function useCanvas(options, vm) {
+
+	const width = options.width;
+	const qsc = new QSCanvas({
+			canvasId: options.canvasId,
+			width: options.width,
+			height: options.height,
+			setCanvasWH: (canvas) => {
+				options.height = canvas.height;
+			},
+		},
+		vm,
+	);
+
+	let drawer = getPosterData(options);
+
+	// 绘制背景图
+
+	const background = await qsc.drawImg({
+		type: 'image',
+		val: drawer.background,
+		x: 0,
+		y: 0,
+		width,
+		mode: 'widthFix',
+		zIndex: 0,
+	});
+
+	console.log(background)
+	await qsc.updateCanvasWH({
+		width: background.width,
+		height: background.bottom,
+	});
+
+	let list = drawer.list;
+
+	for (let i = 0; i < list.length; i++) {
+		let item = list[i];
+		// 绘制文字
+		if (item.type === 'text') {
+
+			await qsc.drawText(item);
+		}
+		// 绘制图片
+		if (item.type === 'image') {
+			if (item.d) {
+				qsc.setCircle({
+					x: item.x,
+					y: item.y,
+					d: item.d,
+					clip: true,
+				});
+			}
+
+			if (item.r) {
+				qsc.setRect({
+					x: item.x,
+					y: item.y,
+					height: item.height,
+					width: item.width,
+					r: item.r,
+					clip: true,
+				});
+			}
+			console.log(item)
+			try {
+				await qsc.drawImg(item);
+			} catch (error) {
+				console.log(error)
+			}
+
+			qsc.restore();
+		}
+
+		// 绘制二维码
+		if (item.type === 'qrcode') {
+			await qsc.drawQrCode(item);
+		}
+	}
+
+	await qsc.draw();
+	// 延迟执行, 防止不稳定
+	setTimeout(async () => {
+		options.src = await qsc.toImage();
+	}, 100);
+	return options;
+}

+ 189 - 195
sheep/components/s-share-modal/s-share-modal.vue

@@ -1,195 +1,189 @@
-<!-- 全局分享弹框 -->
-<template>
-  <view>
-    <su-popup :show="state.showShareGuide" :showClose="false" @close="onCloseGuide" />
-    <view v-if="state.showShareGuide" class="guide-wrap">
-      <image class="guide-image" :src="sheep.$url.static('/static/img/shop/share/share_guide.png')" />
-    </view>
-
-    <su-popup :show="show" round="10" :showClose="false" @close="closeShareModal">
-      <!-- 分享 tools -->
-      <view class="share-box">
-        <view class="share-list-box ss-flex">
-          <!-- 操作 ①:发送给微信好友 -->
-          <button
-            v-if="shareConfig.methods.includes('forward')"
-            class="share-item share-btn ss-flex-col ss-col-center"
-            open-type="share"
-            @tap="onShareByForward"
-          >
-            <image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_wx.png')" mode="" />
-            <text class="share-title">微信好友</text>
-          </button>
-
-          <!-- 操作 ②:生成海报图片 -->
-          <button
-            v-if="shareConfig.methods.includes('poster')"
-            class="share-item share-btn ss-flex-col ss-col-center"
-            @tap="onShareByPoster"
-          >
-            <image
-              class="share-img"
-              :src="sheep.$url.static('/static/img/shop/share/share_poster.png')"
-              mode=""
-            />
-            <text class="share-title">生成海报</text>
-          </button>
-
-          <!-- 操作 ③:生成链接 -->
-          <button
-            v-if="shareConfig.methods.includes('link')"
-            class="share-item share-btn ss-flex-col ss-col-center"
-            @tap="onShareByCopyLink"
-          >
-            <image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_link.png')" mode="" />
-            <text class="share-title">复制链接</text>
-          </button>
-        </view>
-        <view class="share-foot ss-flex ss-row-center ss-col-center" @tap="closeShareModal">
-          取消
-        </view>
-      </view>
-    </su-popup>
-
-    <!-- 分享海报,对应操作 ② -->
-    <canvas-poster
-      ref="SharePosterRef"
-      :show="state.showPosterModal"
-      :shareInfo="shareInfo"
-      @close="state.showPosterModal = false"
-    />
-  </view>
-</template>
-<script setup>
-  /**
-   * 分享弹窗
-   */
-  import { ref, unref, reactive, computed } from 'vue';
-  import sheep from '@/sheep';
-  import canvasPoster from './canvas-poster/index.vue';
-  import { closeShareModal, showAuthModal } from '@/sheep/hooks/useModal';
-
-  const show = computed(() => sheep.$store('modal').share);
-  const shareConfig = computed(() => sheep.$store('app').platform.share);
-  const SharePosterRef = ref('');
-
-  const props = defineProps({
-    shareInfo: {
-      type: Object,
-      default() {},
-    },
-  });
-
-  const state = reactive({
-    showShareGuide: false, // H5 的指引
-    showPosterModal: false, // 海报弹窗
-  });
-
-  // 操作 ②:生成海报分享
-  const onShareByPoster = () => {
-    closeShareModal();
-    if (!sheep.$store('user').isLogin) {
-      showAuthModal();
-      return;
-    }
-    unref(SharePosterRef).getPoster();
-    state.showPosterModal = true;
-  };
-
-  // 操作 ①:直接转发分享
-  const onShareByForward = () => {
-    closeShareModal();
-
-    // #ifdef H5
-    if (['WechatOfficialAccount', 'H5'].includes(sheep.$platform.name)) {
-      state.showShareGuide = true;
-      return;
-    }
-    // #endif
-
-    // #ifdef APP-PLUS
-    uni.share({
-      provider: 'weixin',
-      scene: 'WXSceneSession',
-      type: 0,
-      href: props.shareInfo.link,
-      title: props.shareInfo.title,
-      summary: props.shareInfo.desc,
-      imageUrl: props.shareInfo.image,
-      success: (res) => {
-        console.log('success:' + JSON.stringify(res));
-      },
-      fail: (err) => {
-        console.log('fail:' + JSON.stringify(err));
-      },
-    });
-    // #endif
-  };
-
-  // 操作 ③:复制链接分享
-  const onShareByCopyLink = () => {
-    sheep.$helper.copyText(props.shareInfo.link);
-    closeShareModal();
-  };
-
-  function onCloseGuide() {
-    state.showShareGuide = false;
-  }
-</script>
-
-<style lang="scss" scoped>
-  .guide-image {
-    right: 30rpx;
-    top: 0;
-    position: fixed;
-    width: 580rpx;
-    height: 430rpx;
-    z-index: 10080;
-  }
-
-  // 分享tool
-  .share-box {
-    background: $white;
-    width: 750rpx;
-    border-radius: 30rpx 30rpx 0 0;
-    padding-top: 30rpx;
-
-    .share-foot {
-      font-size: 24rpx;
-      color: $gray-b;
-      height: 80rpx;
-      border-top: 1rpx solid $gray-e;
-    }
-
-    .share-list-box {
-      .share-btn {
-        background: none;
-        border: none;
-        line-height: 1;
-        padding: 0;
-
-        &::after {
-          border: none;
-        }
-      }
-
-      .share-item {
-        flex: 1;
-        padding-bottom: 20rpx;
-
-        .share-img {
-          width: 70rpx;
-          height: 70rpx;
-          background: $gray-f;
-          border-radius: 50%;
-          margin-bottom: 20rpx;
-        }
-
-        .share-title {
-          font-size: 24rpx;
-          color: $dark-6;
-        }
-      }
-    }
-  }
-</style>
+<!-- 全局分享弹框 -->
+<template>
+	<view>
+		<su-popup :show="state.showShareGuide" :showClose="false" @close="onCloseGuide" />
+		<view v-if="state.showShareGuide" class="guide-wrap">
+			<image class="guide-image" :src="sheep.$url.static('/static/img/shop/share/share_guide.png')" />
+		</view>
+
+		<su-popup :show="show" round="10" :showClose="false" @close="closeShareModal">
+			<!-- 分享 tools -->
+			<view class="share-box">
+				<view class="share-list-box ss-flex">
+					<!-- 操作 ①:发送给微信好友 -->
+					<button v-if="shareConfig.methods.includes('forward')"
+						class="share-item share-btn ss-flex-col ss-col-center" open-type="share"
+						@tap="onShareByForward">
+						<image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_wx.png')"
+							mode="" />
+						<text class="share-title">微信好友</text>
+					</button>
+
+					<!-- 操作 ②:生成海报图片 -->
+					<button v-if="shareConfig.methods.includes('poster')"
+						class="share-item share-btn ss-flex-col ss-col-center" @tap="onShareByPoster">
+						<image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_poster.png')"
+							mode="" />
+						<text class="share-title">生成海报</text>
+					</button>
+
+					<!-- 操作 ③:生成链接 -->
+					<button v-if="shareConfig.methods.includes('link')"
+						class="share-item share-btn ss-flex-col ss-col-center" @tap="onShareByCopyLink">
+						<image class="share-img" :src="sheep.$url.static('/static/img/shop/share/share_link.png')"
+							mode="" />
+						<text class="share-title">复制链接</text>
+					</button>
+				</view>
+				<view class="share-foot ss-flex ss-row-center ss-col-center" @tap="closeShareModal">
+					取消
+				</view>
+			</view>
+		</su-popup>
+
+		<!-- 分享海报,对应操作 ② -->
+		<canvas-poster ref="SharePosterRef" :show="state.showPosterModal" :shareInfo="shareInfo"
+			@close="state.showPosterModal = false" />
+	</view>
+</template>
+<script setup>
+	/**
+	 * 分享弹窗
+	 */
+	import {
+		ref,
+		unref,
+		reactive,
+		computed
+	} from 'vue';
+	import sheep from '@/sheep';
+	import canvasPoster from './canvas-poster/index.vue';
+	import {
+		closeShareModal,
+		showAuthModal
+	} from '@/sheep/hooks/useModal';
+
+	const show = computed(() => sheep.$store('modal').share);
+	const shareConfig = computed(() => sheep.$store('app').platform.share);
+	const SharePosterRef = ref('');
+
+	const props = defineProps({
+		shareInfo: {
+			type: Object,
+			default () {},
+		},
+	});
+
+	const state = reactive({
+		showShareGuide: false, // H5 的指引
+		showPosterModal: false, // 海报弹窗
+	});
+
+	// 操作 ②:生成海报分享
+	const onShareByPoster = () => {
+		closeShareModal();
+		if (!sheep.$store('user').isLogin) {
+			showAuthModal();
+			return;
+		}
+		unref(SharePosterRef).getPoster();
+		state.showPosterModal = true;
+	};
+
+	// 操作 ①:直接转发分享
+	const onShareByForward = () => {
+		closeShareModal();
+
+		// #ifdef H5
+		if (['WechatOfficialAccount', 'H5'].includes(sheep.$platform.name)) {
+			state.showShareGuide = true;
+			return;
+		}
+		// #endif
+
+		// #ifdef APP-PLUS
+		uni.share({
+			provider: 'weixin',
+			scene: 'WXSceneSession',
+			type: 0,
+			href: props.shareInfo.link,
+			title: props.shareInfo.title,
+			summary: props.shareInfo.desc,
+			imageUrl: props.shareInfo.image,
+			success: (res) => {
+				console.log('success:' + JSON.stringify(res));
+			},
+			fail: (err) => {
+				console.log('fail:' + JSON.stringify(err));
+			},
+		});
+		// #endif
+	};
+
+	// 操作 ③:复制链接分享
+	const onShareByCopyLink = () => {
+		sheep.$helper.copyText(props.shareInfo.link);
+		closeShareModal();
+	};
+
+	function onCloseGuide() {
+		state.showShareGuide = false;
+	}
+</script>
+
+<style lang="scss" scoped>
+	.guide-image {
+		right: 30rpx;
+		top: 0;
+		position: fixed;
+		width: 580rpx;
+		height: 430rpx;
+		z-index: 10080;
+	}
+
+	// 分享tool
+	.share-box {
+		background: $white;
+		width: 750rpx;
+		border-radius: 30rpx 30rpx 0 0;
+		padding-top: 30rpx;
+
+		.share-foot {
+			font-size: 24rpx;
+			color: $gray-b;
+			height: 80rpx;
+			border-top: 1rpx solid $gray-e;
+		}
+
+		.share-list-box {
+			.share-btn {
+				background: none;
+				border: none;
+				line-height: 1;
+				padding: 0;
+
+				&::after {
+					border: none;
+				}
+			}
+
+			.share-item {
+				flex: 1;
+				padding-bottom: 20rpx;
+
+				.share-img {
+					width: 70rpx;
+					height: 70rpx;
+					background: $gray-f;
+					border-radius: 50%;
+					margin-bottom: 20rpx;
+				}
+
+				.share-title {
+					font-size: 24rpx;
+					color: $dark-6;
+				}
+			}
+		}
+	}
+</style>

+ 2 - 1
sheep/hooks/useModal.js

@@ -6,8 +6,9 @@ import test from '@/sheep/helper/test.js';
 import AuthUtil from '@/sheep/api/member/auth';
 import AuthUtil from '@/sheep/api/member/auth';
 
 
 // 打开授权弹框
 // 打开授权弹框
-export function showAuthModal(type = 'smsLogin') {
+export function showAuthModal(type = 'accountLogin') {
   const modal = $store('modal');
   const modal = $store('modal');
+  console.log(modal)
   if (modal.auth !== '') {
   if (modal.auth !== '') {
     closeAuthModal();
     closeAuthModal();
     setTimeout(() => {
     setTimeout(() => {

+ 199 - 182
sheep/libs/sdk-h5-weixin.js

@@ -1,182 +1,199 @@
-/**
- * 本模块封装微信浏览器下的一些方法。
- * 更多微信网页开发sdk方法,详见:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
- */
-
-import jweixin, { ready } from 'weixin-js-sdk';
-import $helper from '@/sheep/helper';
-import AuthUtil from '@/sheep/api/member/auth';
-
-let configSuccess = false;
-
-export default {
-  // 判断是否在微信中
-  isWechat() {
-    const ua = window.navigator.userAgent.toLowerCase();
-    // noinspection EqualityComparisonWithCoercionJS
-    return ua.match(/micromessenger/i) == 'micromessenger';
-  },
-
-  isReady(api) {
-    jweixin.ready(api);
-  },
-
-  // 初始化 JSSDK
-  async init(callback) {
-    if (!this.isWechat()) {
-      $helper.toast('请使用微信网页浏览器打开');
-      return;
-    }
-
-    // 调用后端接口,获得 JSSDK 初始化所需的签名
-    const url = location.href.split('#')[0];
-    const { code, data } = await AuthUtil.createWeixinMpJsapiSignature(url);
-    if (code === 0) {
-      jweixin.config({
-        debug: false,
-        appId: data.appId,
-        timestamp: data.timestamp,
-        nonceStr: data.nonceStr,
-        signature: data.signature,
-        jsApiList: ['chooseWXPay'], // TODO 芋艿:后续可以设置更多权限;
-        openTagList: data.openTagList
-      });
-    }
-
-    // 监听结果
-    configSuccess = true;
-    jweixin.error((err) => {
-      configSuccess = false;
-      console.error('微信 JSSDK 初始化失败', err);
-      // $helper.toast('微信JSSDK:' + err.errMsg);
-    });
-    jweixin.ready(() => {
-      if (configSuccess) {
-        console.log('微信 JSSDK 初始化成功');
-      }
-    })
-
-    // 回调
-    if (callback) {
-      callback(data);
-    }
-  },
-
-  //在需要定位页面调用 TODO 芋艿:未测试
-  getLocation(callback) {
-    this.isReady(() => {
-      jweixin.getLocation({
-        type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
-        success: function (res) {
-          callback(res);
-        },
-        fail: function (res) {
-          console.log('%c微信H5sdk,getLocation失败:', 'color:green;background:yellow');
-        },
-      });
-    });
-  },
-
-  //获取微信收货地址 TODO 芋艿:未测试
-  openAddress(callback) {
-    this.isReady(() => {
-      jweixin.openAddress({
-        success: function (res) {
-          callback.success && callback.success(res);
-        },
-        fail: function (err) {
-          callback.error && callback.error(err);
-          console.log('%c微信H5sdk,openAddress失败:', 'color:green;background:yellow');
-        },
-        complete: function (res) {},
-      });
-    });
-  },
-
-  // 微信扫码 TODO 芋艿:未测试
-  scanQRCode(callback) {
-    this.isReady(() => {
-      jweixin.scanQRCode({
-        needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
-        scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
-        success: function (res) {
-          callback(res);
-        },
-        fail: function (res) {
-          console.log('%c微信H5sdk,scanQRCode失败:', 'color:green;background:yellow');
-        },
-      });
-    });
-  },
-
-  // 更新微信分享信息 TODO 芋艿:未测试
-  updateShareInfo(data, callback = null) {
-    this.isReady(() => {
-      const shareData = {
-        title: data.title,
-        desc: data.desc,
-        link: data.link,
-        imgUrl: data.image,
-        success: function (res) {
-          if (callback) {
-            callback(res);
-          }
-          // 分享后的一些操作,比如分享统计等等
-        },
-        cancel: function (res) {},
-      };
-
-      // 新版 分享聊天api
-      jweixin.updateAppMessageShareData(shareData);
-      // 新版 分享到朋友圈api
-      jweixin.updateTimelineShareData(shareData);
-    });
-  },
-
-  // 打开坐标位置 TODO 芋艿:未测试
-  openLocation(data, callback) {
-    this.isReady(() => {
-      jweixin.openLocation({
-        //根据传入的坐标打开地图
-        latitude: data.latitude,
-        longitude: data.longitude,
-      });
-    });
-  },
-
-  // 选择图片 TODO 芋艿:未测试
-  chooseImage(callback) {
-    this.isReady(() => {
-      jweixin.chooseImage({
-        count: 1,
-        sizeType: ['compressed'],
-        sourceType: ['album'],
-        success: function (rs) {
-          callback(rs);
-        },
-      });
-    });
-  },
-
-  // 微信支付
-  wxpay(data, callback) {
-    this.isReady(() => {
-      jweixin.chooseWXPay({
-        timestamp: data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
-        nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
-        package: data.packageValue, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
-        signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
-        paySign: data.paySign, // 支付签名
-        success: function (res) {
-          callback.success && callback.success(res);
-        },
-        fail: function (err) {
-          callback.fail && callback.fail(err);
-        },
-        cancel: function (err) {
-          callback.cancel && callback.cancel(err);
-        },
-      });
-    });
-  },
-};
+/**
+ * 本模块封装微信浏览器下的一些方法。
+ * 更多微信网页开发sdk方法,详见:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
+ */
+
+import jweixin, {
+	ready
+} from 'weixin-js-sdk';
+import $helper from '@/sheep/helper';
+import AuthUtil from '@/sheep/api/member/auth';
+
+let configSuccess = false;
+
+export default {
+	// 判断是否在微信中
+	isWechat() {
+		const ua = window.navigator.userAgent.toLowerCase();
+		// noinspection EqualityComparisonWithCoercionJS
+		return ua.match(/micromessenger/i) == 'micromessenger';
+	},
+
+	isReady(api) {
+		jweixin.ready(api);
+	},
+
+	// 初始化 JSSDK
+	async init(callback) {
+		if (!this.isWechat()) {
+			$helper.toast('请使用微信网页浏览器打开');
+			return;
+		}
+
+		// 调用后端接口,获得 JSSDK 初始化所需的签名
+		const url = location.href.split('#')[0];
+		const {
+			code,
+			data
+		} = await AuthUtil.createWeixinMpJsapiSignature(url);
+		if (code === 0) {
+			jweixin.config({
+				debug: false,
+				appId: data.appId,
+				timestamp: data.timestamp,
+				nonceStr: data.nonceStr,
+				signature: data.signature,
+				jsApiList: ['chooseWXPay', 'openAddress', 'checkJsApi',
+				'scanQRCode'], // TODO 芋艿:后续可以设置更多权限;
+				openTagList: data.openTagList
+			});
+		}
+		console.log('appdata:', data)
+		// 监听结果
+		configSuccess = true;
+		jweixin.error((err) => {
+			configSuccess = false;
+			console.error('微信 JSSDK 初始化失败', err);
+			// $helper.toast('微信JSSDK:' + err.errMsg);
+		});
+		jweixin.ready(() => {
+			if (configSuccess) {
+				console.log('微信 JSSDK 初始化成功');
+			}
+		})
+		jweixin.checkJsApi({
+			jsApiList: ['openAddress'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
+			success: function(res) {
+				// 以键值对的形式返回,可用的api值true,不可用为false
+				// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
+				console.log(res)
+			}
+		});
+		// 回调
+		if (callback) {
+			callback(data);
+		}
+	},
+
+	//在需要定位页面调用 TODO 芋艿:未测试
+	getLocation(callback) {
+		this.isReady(() => {
+			jweixin.getLocation({
+				type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
+				success: function(res) {
+					callback(res);
+				},
+				fail: function(res) {
+					console.log('%c微信H5sdk,getLocation失败:', 'color:green;background:yellow');
+				},
+			});
+		});
+	},
+
+	//获取微信收货地址 TODO 芋艿:未测试
+	openAddress(callback) {
+		this.isReady(() => {
+			console.log("ready? go!")
+			jweixin.openAddress({
+				success: function(res) {
+					// $helper.toast('res', res);
+					callback.success && callback.success(res);
+				},
+				fail: function(err) {
+					// $helper.toast('res', err);
+					callback.error && callback.error(err);
+					console.log('微信H5sdk,openAddress失败,原因是:', err);
+				},
+				complete: function(res) {},
+			});
+		});
+	},
+
+	// 微信扫码 TODO 芋艿:未测试
+	scanQRCode(callback) {
+		this.isReady(() => {
+			jweixin.scanQRCode({
+				needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+				scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
+				success: function(res) {
+					callback(res);
+				},
+				fail: function(res) {
+					console.log('%c微信H5sdk,scanQRCode失败:', 'color:green;background:yellow');
+				},
+			});
+		});
+	},
+
+	// 更新微信分享信息 TODO 芋艿:未测试
+	updateShareInfo(data, callback = null) {
+		this.isReady(() => {
+			const shareData = {
+				title: data.title,
+				desc: data.desc,
+				link: data.link,
+				imgUrl: data.image,
+				success: function(res) {
+					if (callback) {
+						callback(res);
+					}
+					// 分享后的一些操作,比如分享统计等等
+				},
+				cancel: function(res) {},
+			};
+
+			// 新版 分享聊天api
+			jweixin.updateAppMessageShareData(shareData);
+			// 新版 分享到朋友圈api
+			jweixin.updateTimelineShareData(shareData);
+		});
+	},
+
+	// 打开坐标位置 TODO 芋艿:未测试
+	openLocation(data, callback) {
+		this.isReady(() => {
+			jweixin.openLocation({
+				//根据传入的坐标打开地图
+				latitude: data.latitude,
+				longitude: data.longitude,
+			});
+		});
+	},
+
+	// 选择图片 TODO 芋艿:未测试
+	chooseImage(callback) {
+		this.isReady(() => {
+			jweixin.chooseImage({
+				count: 1,
+				sizeType: ['compressed'],
+				sourceType: ['album'],
+				success: function(rs) {
+					callback(rs);
+				},
+			});
+		});
+	},
+
+	// 微信支付
+	wxpay(data, callback) {
+		this.isReady(() => {
+			jweixin.chooseWXPay({
+				timestamp: data
+					.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
+				nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
+				package: data.packageValue, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
+				signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
+				paySign: data.paySign, // 支付签名
+				success: function(res) {
+					callback.success && callback.success(res);
+				},
+				fail: function(err) {
+					callback.fail && callback.fail(err);
+				},
+				cancel: function(err) {
+					callback.cancel && callback.cancel(err);
+				},
+			});
+		});
+	},
+};

+ 1 - 1
unpackage/dist/build/h5/assets/address.e3bed584.js → unpackage/dist/build/h5/assets/address.9572190e.js

@@ -1 +1 @@
-import{a7 as e}from"./index-60685c89.js";const s={getAreaTree:()=>e({url:"/system/area/tree",method:"GET"})},d={getAddressList:()=>e({url:"/member/address/list",method:"GET"}),createAddress:s=>e({url:"/member/address/create",method:"POST",data:s,custom:{showSuccess:!0,successMsg:"保存成功"}}),updateAddress:s=>e({url:"/member/address/update",method:"PUT",data:s,custom:{showSuccess:!0,successMsg:"更新成功"}}),getAddress:s=>e({url:"/member/address/get",method:"GET",params:{id:s}}),deleteAddress:s=>e({url:"/member/address/delete",method:"DELETE",params:{id:s}})};export{d as A,s as a};
+import{a7 as e}from"./index-770048bf.js";const s={getAreaTree:()=>e({url:"/system/area/tree",method:"GET"})},d={getAddressList:()=>e({url:"/member/address/list",method:"GET"}),createAddress:s=>e({url:"/member/address/create",method:"POST",data:s,custom:{showSuccess:!0,successMsg:"保存成功"}}),updateAddress:s=>e({url:"/member/address/update",method:"PUT",data:s,custom:{showSuccess:!0,successMsg:"更新成功"}}),getAddress:s=>e({url:"/member/address/get",method:"GET",params:{id:s}}),deleteAddress:s=>e({url:"/member/address/delete",method:"DELETE",params:{id:s}})};export{d as A,s as a};

+ 1 - 1
unpackage/dist/build/h5/assets/afterSale.176f8db0.js → unpackage/dist/build/h5/assets/afterSale.ab78629d.js

@@ -1 +1 @@
-import{a7 as e}from"./index-60685c89.js";const a={getAfterSalePage:a=>e({url:"/trade/after-sale/page",method:"GET",params:a,custom:{showLoading:!1}}),createAfterSale:a=>e({url:"/trade/after-sale/create",method:"POST",data:a}),getAfterSale:a=>e({url:"/trade/after-sale/get",method:"GET",params:{id:a}}),cancelAfterSale:a=>e({url:"/trade/after-sale/cancel",method:"DELETE",params:{id:a}}),getAfterSaleLogList:a=>e({url:"/trade/after-sale-log/list",method:"GET",params:{afterSaleId:a}}),deliveryAfterSale:a=>e({url:"/trade/after-sale/delivery",method:"PUT",data:a})};export{a as A};
+import{a7 as e}from"./index-770048bf.js";const a={getAfterSalePage:a=>e({url:"/trade/after-sale/page",method:"GET",params:a,custom:{showLoading:!1}}),createAfterSale:a=>e({url:"/trade/after-sale/create",method:"POST",data:a}),getAfterSale:a=>e({url:"/trade/after-sale/get",method:"GET",params:{id:a}}),cancelAfterSale:a=>e({url:"/trade/after-sale/cancel",method:"DELETE",params:{id:a}}),getAfterSaleLogList:a=>e({url:"/trade/after-sale-log/list",method:"GET",params:{afterSaleId:a}}),deliveryAfterSale:a=>e({url:"/trade/after-sale/delivery",method:"PUT",data:a})};export{a as A};

+ 1 - 1
unpackage/dist/build/h5/assets/article.690f6e9b.js → unpackage/dist/build/h5/assets/article.f1244fe8.js

@@ -1 +1 @@
-import{a7 as t}from"./index-60685c89.js";const e={getArticle:(e,o)=>t({url:"/promotion/article/get",method:"GET",params:{id:e,title:o}})};export{e as A};
+import{a7 as t}from"./index-770048bf.js";const e={getArticle:(e,o)=>t({url:"/promotion/article/get",method:"GET",params:{id:e,title:o}})};export{e as A};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/bargain.ed67d9d9.js


+ 1 - 1
unpackage/dist/build/h5/assets/brokerage.44ff73aa.js → unpackage/dist/build/h5/assets/brokerage.b00dbac4.js

@@ -1 +1 @@
-import{a7 as e}from"./index-60685c89.js";const r={getBrokerageUser:()=>e({url:"/trade/brokerage-user/get",method:"GET"}),getBrokerageUserSummary:()=>e({url:"/trade/brokerage-user/get-summary",method:"GET"}),getBrokerageRecordPage:r=>{void 0===r.status&&delete r.status;const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-record/page?${t}`,method:"GET"})},createBrokerageWithdraw:r=>e({url:"/trade/brokerage-withdraw/create",method:"POST",data:r}),getProductBrokeragePrice:r=>e({url:"/trade/brokerage-record/get-product-brokerage-price",method:"GET",params:{spuId:r}}),getRankByPrice:r=>{const t=`times=${r.times[0]}&times=${r.times[1]}`;return e({url:`/trade/brokerage-user/get-rank-by-price?${t}`,method:"GET"})},getBrokerageUserChildSummaryPageByPrice:r=>{const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-user/rank-page-by-price?${t}`,method:"GET"})},getBrokerageUserRankPageByUserCount:r=>{const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-user/rank-page-by-user-count?${t}`,method:"GET"})},getBrokerageUserChildSummaryPage:r=>e({url:"/trade/brokerage-user/child-summary-page",method:"GET",params:r})};export{r as B};
+import{a7 as e}from"./index-770048bf.js";const r={getBrokerageUser:()=>e({url:"/trade/brokerage-user/get",method:"GET"}),getBrokerageUserSummary:()=>e({url:"/trade/brokerage-user/get-summary",method:"GET"}),getBrokerageRecordPage:r=>{void 0===r.status&&delete r.status;const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-record/page?${t}`,method:"GET"})},createBrokerageWithdraw:r=>e({url:"/trade/brokerage-withdraw/create",method:"POST",data:r}),getProductBrokeragePrice:r=>e({url:"/trade/brokerage-record/get-product-brokerage-price",method:"GET",params:{spuId:r}}),getRankByPrice:r=>{const t=`times=${r.times[0]}&times=${r.times[1]}`;return e({url:`/trade/brokerage-user/get-rank-by-price?${t}`,method:"GET"})},getBrokerageUserChildSummaryPageByPrice:r=>{const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-user/rank-page-by-price?${t}`,method:"GET"})},getBrokerageUserRankPageByUserCount:r=>{const t=Object.keys(r).map((e=>encodeURIComponent(e)+"="+r[e])).join("&");return e({url:`/trade/brokerage-user/rank-page-by-user-count?${t}`,method:"GET"})},getBrokerageUserChildSummaryPage:r=>e({url:"/trade/brokerage-user/child-summary-page",method:"GET",params:r})};export{r as B};

+ 1 - 1
unpackage/dist/build/h5/assets/category.5e88d26a.js → unpackage/dist/build/h5/assets/category.09073035.js

@@ -1 +1 @@
-import{a7 as t}from"./index-60685c89.js";const o={getCategoryList:()=>t({url:"/product/category/list",method:"GET"}),getCategoryListByIds:o=>t({url:"/product/category/list-by-ids",method:"GET",params:{ids:o}})};export{o as C};
+import{a7 as t}from"./index-770048bf.js";const o={getCategoryList:()=>t({url:"/product/category/list",method:"GET"}),getCategoryListByIds:o=>t({url:"/product/category/list-by-ids",method:"GET",params:{ids:o}})};export{o as C};

+ 1 - 1
unpackage/dist/build/h5/assets/combination.ea1635f5.js → unpackage/dist/build/h5/assets/combination.ca664672.js

@@ -1 +1 @@
-import{a7 as o}from"./index-60685c89.js";const t={getCombinationActivityList:t=>o({url:"/promotion/combination-activity/list",method:"GET",params:{count:t}}),getCombinationActivityPage:t=>o({url:"/promotion/combination-activity/page",method:"GET",params:t}),getCombinationActivity:t=>o({url:"/promotion/combination-activity/get-detail",method:"GET",params:{id:t}}),getHeadCombinationRecordList:(t,i,a)=>o({url:"/promotion/combination-record/get-head-list",method:"GET",params:{activityId:t,status:i,count:a}}),getCombinationRecordPage:t=>o({url:"/promotion/combination-record/page",method:"GET",params:t}),getCombinationRecordDetail:t=>o({url:"/promotion/combination-record/get-detail",method:"GET",params:{id:t}}),getCombinationRecordSummary:()=>o({url:"/promotion/combination-record/get-summary",method:"GET"})};export{t as C};
+import{a7 as o}from"./index-770048bf.js";const t={getCombinationActivityList:t=>o({url:"/promotion/combination-activity/list",method:"GET",params:{count:t}}),getCombinationActivityPage:t=>o({url:"/promotion/combination-activity/page",method:"GET",params:t}),getCombinationActivity:t=>o({url:"/promotion/combination-activity/get-detail",method:"GET",params:{id:t}}),getHeadCombinationRecordList:(t,i,a)=>o({url:"/promotion/combination-record/get-head-list",method:"GET",params:{activityId:t,status:i,count:a}}),getCombinationRecordPage:t=>o({url:"/promotion/combination-record/page",method:"GET",params:t}),getCombinationRecordDetail:t=>o({url:"/promotion/combination-record/get-detail",method:"GET",params:{id:t}}),getCombinationRecordSummary:()=>o({url:"/promotion/combination-record/get-summary",method:"GET"})};export{t as C};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/comment-item.a5a28b84.js


+ 1 - 1
unpackage/dist/build/h5/assets/config.37510e7b.js → unpackage/dist/build/h5/assets/config.c7aa66c8.js

@@ -1 +1 @@
-import{a7 as e}from"./index-60685c89.js";const o={getTradeConfig:()=>e({url:"/trade/config/get",method:"GET"})};export{o as T};
+import{a7 as e}from"./index-770048bf.js";const o={getTradeConfig:()=>e({url:"/trade/config/get",method:"GET"})};export{o as T};

+ 1 - 1
unpackage/dist/build/h5/assets/const.79ca8edd.js → unpackage/dist/build/h5/assets/const.d769a2a6.js

@@ -1 +1 @@
-import{a7 as t,aw as e}from"./index-60685c89.js";const i={getSeckillConfigList:()=>t({url:"promotion/seckill-config/list",method:"GET"}),getNowSeckillActivity:()=>t({url:"promotion/seckill-activity/get-now",method:"GET"}),getSeckillActivityPage:e=>t({url:"promotion/seckill-activity/page",method:"GET",params:e}),getSeckillActivity:e=>t({url:"promotion/seckill-activity/get-detail",method:"GET",params:{id:e}})},o={PRICE:{type:1,name:"满减"},PERCENT:{type:2,name:"折扣"}},a={DATE:{type:1,name:"固定日期可用"},TERM:{type:2,name:"领取之后可用"}},l={WAIT_START:"即将开始",STARTED:"进行中",END:"已结束"},s=(t,i)=>{const o=e();return o.isBefore(t)?l.WAIT_START:o.isAfter(i)?l.END:l.STARTED};export{a as C,o as P,i as S,l as T,s as g};
+import{a7 as t,aw as e}from"./index-770048bf.js";const i={getSeckillConfigList:()=>t({url:"promotion/seckill-config/list",method:"GET"}),getNowSeckillActivity:()=>t({url:"promotion/seckill-activity/get-now",method:"GET"}),getSeckillActivityPage:e=>t({url:"promotion/seckill-activity/page",method:"GET",params:e}),getSeckillActivity:e=>t({url:"promotion/seckill-activity/get-detail",method:"GET",params:{id:e}})},o={PRICE:{type:1,name:"满减"},PERCENT:{type:2,name:"折扣"}},a={DATE:{type:1,name:"固定日期可用"},TERM:{type:2,name:"领取之后可用"}},l={WAIT_START:"即将开始",STARTED:"进行中",END:"已结束"},s=(t,i)=>{const o=e();return o.isBefore(t)?l.WAIT_START:o.isAfter(i)?l.END:l.STARTED};export{a as C,o as P,i as S,l as T,s as g};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/detail-content-card.1b0eafaa.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/edit-0e90b836.css


+ 1 - 1
unpackage/dist/build/h5/assets/favorite.c6a88b73.js → unpackage/dist/build/h5/assets/favorite.26281ffa.js

@@ -1 +1 @@
-import{a7 as e}from"./index-60685c89.js";const t={getFavoritePage:t=>e({url:"/product/favorite/page",method:"GET",params:t}),isFavoriteExists:t=>e({url:"/product/favorite/exits",method:"GET",params:{spuId:t}}),createFavorite:t=>e({url:"/product/favorite/create",method:"POST",data:{spuId:t},custom:{auth:!0,showSuccess:!0,successMsg:"收藏成功"}}),deleteFavorite:t=>e({url:"/product/favorite/delete",method:"DELETE",data:{spuId:t},custom:{auth:!0,showSuccess:!0,successMsg:"取消成功"}})};export{t as F};
+import{a7 as e}from"./index-770048bf.js";const t={getFavoritePage:t=>e({url:"/product/favorite/page",method:"GET",params:t}),isFavoriteExists:t=>e({url:"/product/favorite/exits",method:"GET",params:{spuId:t}}),createFavorite:t=>e({url:"/product/favorite/create",method:"POST",data:{spuId:t},custom:{auth:!0,showSuccess:!0,successMsg:"收藏成功"}}),deleteFavorite:t=>e({url:"/product/favorite/delete",method:"DELETE",data:{spuId:t},custom:{auth:!0,showSuccess:!0,successMsg:"取消成功"}})};export{t as F};

+ 1 - 1
unpackage/dist/build/h5/assets/history.3cc50dcb.js → unpackage/dist/build/h5/assets/history.918701de.js

@@ -1 +1 @@
-import{a7 as s}from"./index-60685c89.js";const o={deleteBrowseHistory:o=>s({url:"/product/browse-history/delete",method:"DELETE",data:{spuIds:o},custom:{showSuccess:!0,successMsg:"删除成功"}}),cleanBrowseHistory:()=>s({url:"/product/browse-history/clean",method:"DELETE",custom:{showSuccess:!0,successMsg:"清空成功"}}),getBrowseHistoryPage:o=>s({url:"/product/browse-history/page",method:"GET",data:o,custom:{showLoading:!1}})};export{o as S};
+import{a7 as s}from"./index-770048bf.js";const o={deleteBrowseHistory:o=>s({url:"/product/browse-history/delete",method:"DELETE",data:{spuIds:o},custom:{showSuccess:!0,successMsg:"删除成功"}}),cleanBrowseHistory:()=>s({url:"/product/browse-history/clean",method:"DELETE",custom:{showSuccess:!0,successMsg:"清空成功"}}),getBrowseHistoryPage:o=>s({url:"/product/browse-history/page",method:"GET",data:o,custom:{showLoading:!1}})};export{o as S};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/index-770048bf.js


+ 1 - 1
unpackage/dist/build/h5/assets/index.ba4bcb2e.js → unpackage/dist/build/h5/assets/index.e24558d7.js

@@ -1 +1 @@
-import{aw as t}from"./index-60685c89.js";const r=t=>{let r="0.00";if(void 0===t)return r;const e=(t=>{if(void 0===t)return 0;const r="string"==typeof t?parseFloat(t):t;return parseFloat((r/100).toFixed(2))})(t),n=e.toString().split(".")[1];switch(n?n.length:0){case 0:r=e.toString()+".00";break;case 1:r=e.toString()+".0";break;case 2:r=e.toString()}return r};function e(r,e){return r?(void 0===e&&(e="YYYY-MM-DD HH:mm:ss"),t(r).format(e)):""}function n(t,r="id",e="parentId",n="children",i=0){const o=JSON.parse(JSON.stringify(t)),s=o.filter((t=>{let n=o.filter((n=>t[r]===n[e]));return n.length>0&&(t.children=n),t[e]===i}));return""!==s?s:t}function i(t){t.list=[],t.total=0,t.pageNo=1}export{e as a,r as f,n as h,i as r};
+import{aw as t}from"./index-770048bf.js";const r=t=>{let r="0.00";if(void 0===t)return r;const e=(t=>{if(void 0===t)return 0;const r="string"==typeof t?parseFloat(t):t;return parseFloat((r/100).toFixed(2))})(t),n=e.toString().split(".")[1];switch(n?n.length:0){case 0:r=e.toString()+".00";break;case 1:r=e.toString()+".0";break;case 2:r=e.toString()}return r};function e(r,e){return r?(void 0===e&&(e="YYYY-MM-DD HH:mm:ss"),t(r).format(e)):""}function n(t,r="id",e="parentId",n="children",i=0){const o=JSON.parse(JSON.stringify(t)),s=o.filter((t=>{let n=o.filter((n=>t[r]===n[e]));return n.length>0&&(t.children=n),t[e]===i}));return""!==s?s:t}function i(t){t.list=[],t.total=0,t.pageNo=1}export{e as a,r as f,n as h,i as r};

+ 1 - 1
unpackage/dist/build/h5/assets/list-25942d43.css → unpackage/dist/build/h5/assets/list-e281987e.css

@@ -1 +1 @@
-.footer-box .add-btn[data-v-f4108472]{flex:1;background:linear-gradient(90deg,var(--ui-BG-Main),var(--ui-BG-Main-gradient));border-radius:2.5rem;font-size:.9375rem;font-weight:500;line-height:2.5rem;color:#fff;position:relative;z-index:1}.footer-box .sync-wxaddress[data-v-f4108472]{flex:1;line-height:2.5rem;background:#ffffff;border-radius:2.5rem;font-size:.9375rem;font-weight:500;color:#666;margin-right:.5625rem}
+.footer-box .add-btn[data-v-931ea326]{flex:1;background:linear-gradient(90deg,var(--ui-BG-Main),var(--ui-BG-Main-gradient));border-radius:2.5rem;font-size:.9375rem;font-weight:500;line-height:2.5rem;color:#fff;position:relative;z-index:1}.footer-box .sync-wxaddress[data-v-931ea326]{flex:1;line-height:2.5rem;background:#ffffff;border-radius:2.5rem;font-size:.9375rem;font-weight:500;color:#666;margin-right:.5625rem}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/mp-html.f52adbcf.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-bargain-detail.30d78dd6.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-bargain-list.ef7f59e6.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-groupon-detail.405590b2.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-groupon-list.730ec4ec.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-groupon-order.ec8ece87.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-index.3a507cf5.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-activity-seckill-list.66eb79d9.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-app-sign.c5a7ce6a.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-app-sign.ca7dfeac.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-chat-index.753335d0.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-commission-ranking.ec4a1ecc.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-goods.f097da0b.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-index.55866950.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-order.b58e5cc9.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-promoter.099a50db.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-team.8223d198.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-wallet.b0134930.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-commission-withdraw.babdae66.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-coupon-detail.a33fe9ac.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-coupon-list.97725d5d.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-comment-add.817b8971.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-comment-list.db8ea1e5.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-groupon.017a8dd0.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-index.227a37cd.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-list.aaa1c778.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-goods-seckill.b0b4b8ef.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-index-cart.438f0194.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-index-category.6e375c2c.js


+ 1 - 1
unpackage/dist/build/h5/assets/pages-index-index.54d662ba.js → unpackage/dist/build/h5/assets/pages-index-index.15d84314.js

@@ -1 +1 @@
-import{h as s,c as e,o as t,s as o,$ as a,a as p,b as r,d as i,u as l,e as m,f as n,w as u,g as _,i as d,j as y,k as c,r as j,F as g,l as b,m as v}from"./index-60685c89.js";import{_ as f,a as x}from"./s-block.fbe3fe12.js";import{_ as k}from"./s-layout.d651d8a8.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.19d2eccf.js";import"./su-image.aac213b7.js";import"./su-swiper.7b39ec5a.js";import"./s-goods-column.3ad4ef20.js";import"./useGoods.6798bab4.js";import"./index.ba4bcb2e.js";/* empty css                                                                     */import"./uni-load-more.b451710d.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.b94560b7.js";import"./combination.ea1635f5.js";import"./const.79ca8edd.js";import"./mp-html.61c82722.js";import"./article.690f6e9b.js";const S={__name:"index",setup(S){s();const $=e((()=>{var s;return null==(s=o.$store("app").template)?void 0:s.home}));return t((s=>{s.templateId&&o.$store("app").init(s.templateId),s.spm&&a.decryptSpm(s.spm),s.page&&o.$router.go(decodeURIComponent(s.page))})),p((()=>{o.$store("app").init(),setTimeout((function(){r()}),800)})),i((()=>{})),(s,e)=>{const t=b(v("s-block-item"),f),o=b(v("s-block"),x),a=b(v("s-layout"),k),p=d;return l($)?(m(),n(p,{key:0},{default:u((()=>{var s;return[y(a,{title:"首页",navbar:"custom",tabbar:"/pages/index/index",bgStyle:l($).page,navbarStyle:null==(s=l($).style)?void 0:s.navbar,onShareAppMessage:""},{default:u((()=>[(m(!0),c(g,null,j(l($).components,((s,e)=>(m(),n(o,{key:e,styles:s.property.style},{default:u((()=>[y(t,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])]})),_:1})):_("",!0)}}};export{S as default};
+import{h as s,c as e,o as t,s as o,$ as a,a as p,b as r,d as i,u as l,e as m,f as n,w as u,g as _,i as d,j as y,k as c,r as j,F as g,l as b,m as v}from"./index-770048bf.js";import{_ as f,a as x}from"./s-block.f5d9b937.js";import{_ as k}from"./s-layout.409bca6d.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.e2e6a1e9.js";import"./su-image.9d27d3ec.js";import"./su-swiper.e826f124.js";import"./s-goods-column.b69314d8.js";import"./useGoods.6e74beef.js";import"./index.e24558d7.js";/* empty css                                                                     */import"./uni-load-more.31dd5d44.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.eab83874.js";import"./combination.ca664672.js";import"./const.d769a2a6.js";import"./mp-html.f52adbcf.js";import"./article.f1244fe8.js";const S={__name:"index",setup(S){s();const $=e((()=>{var s;return null==(s=o.$store("app").template)?void 0:s.home}));return t((s=>{s.templateId&&o.$store("app").init(s.templateId),s.spm&&a.decryptSpm(s.spm),s.page&&o.$router.go(decodeURIComponent(s.page))})),p((()=>{o.$store("app").init(),setTimeout((function(){r()}),800)})),i((()=>{})),(s,e)=>{const t=b(v("s-block-item"),f),o=b(v("s-block"),x),a=b(v("s-layout"),k),p=d;return l($)?(m(),n(p,{key:0},{default:u((()=>{var s;return[y(a,{title:"首页",navbar:"custom",tabbar:"/pages/index/index",bgStyle:l($).page,navbarStyle:null==(s=l($).style)?void 0:s.navbar,onShareAppMessage:""},{default:u((()=>[(m(!0),c(g,null,j(l($).components,((s,e)=>(m(),n(o,{key:e,styles:s.property.style},{default:u((()=>[y(t,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])]})),_:1})):_("",!0)}}};export{S as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-index-login.ffb88c7a.js → unpackage/dist/build/h5/assets/pages-index-login.4376e3ce.js

@@ -1 +1 @@
-import{o as a,s as e,I as r,J as s,K as o,e as t,f as n,i}from"./index-60685c89.js";const l={__name:"login",setup:l=>(a((async a=>{new URLSearchParams(location.search).forEach(((e,r)=>{a[r]=e}));const t=a.event,n=a.code,i=a.state;"login"===t?await e.$platform.useProvider().login(n,i):"bind"===t&&e.$platform.useProvider().bind(n,i);let l=r("returnUrl");l?(s("returnUrl"),location.replace(l)):o({url:"/"})})),(a,e)=>{const r=i;return t(),n(r)})};export{l as default};
+import{o as a,s as e,I as r,J as s,K as o,e as t,f as n,i}from"./index-770048bf.js";const l={__name:"login",setup:l=>(a((async a=>{new URLSearchParams(location.search).forEach(((e,r)=>{a[r]=e}));const t=a.event,n=a.code,i=a.state;"login"===t?await e.$platform.useProvider().login(n,i):"bind"===t&&e.$platform.useProvider().bind(n,i);let l=r("returnUrl");l?(s("returnUrl"),location.replace(l)):o({url:"/"})})),(a,e)=>{const r=i;return t(),n(r)})};export{l as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-index-page.f5930c85.js → unpackage/dist/build/h5/assets/pages-index-page.e2a19884.js

@@ -1 +1 @@
-import{_ as t,a as e}from"./s-block.fbe3fe12.js";import{v as s,o,O as a,d as p,e as r,f as n,w as i,l,k as m,r as _,F as u,m as y,j as d}from"./index-60685c89.js";import{_ as c}from"./s-layout.d651d8a8.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.19d2eccf.js";import"./su-image.aac213b7.js";import"./su-swiper.7b39ec5a.js";import"./s-goods-column.3ad4ef20.js";import"./useGoods.6798bab4.js";import"./index.ba4bcb2e.js";/* empty css                                                                     */import"./uni-load-more.b451710d.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.b94560b7.js";import"./combination.ea1635f5.js";import"./const.79ca8edd.js";import"./mp-html.61c82722.js";import"./article.690f6e9b.js";const g={__name:"page",setup(g){const j=s({name:"",components:[],navigationBar:{},page:{}});return o((async t=>{var e,s,o;let p=t.id;const{code:r,data:n}=await a.getDiyPage(p);0===r&&(j.name=n.name,j.components=null==(e=n.property)?void 0:e.components,j.navigationBar=null==(s=n.property)?void 0:s.navigationBar,j.page=null==(o=n.property)?void 0:o.page)})),p((()=>{})),(s,o)=>{const a=l(y("s-block-item"),t),p=l(y("s-block"),e),g=l(y("s-layout"),c);return r(),n(g,{title:j.name,navbar:"custom",bgStyle:j.page,navbarStyle:j.navigationBar,onShareAppMessage:"",showLeftButton:""},{default:i((()=>[(r(!0),m(u,null,_(j.components,((t,e)=>(r(),n(p,{key:e,styles:t.property.style},{default:i((()=>[d(a,{type:t.id,data:t.property,styles:t.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["title","bgStyle","navbarStyle"])}}};export{g as default};
+import{_ as t,a as e}from"./s-block.f5d9b937.js";import{v as s,o,O as a,d as p,e as r,f as n,w as i,l,k as m,r as _,F as u,m as y,j as d}from"./index-770048bf.js";import{_ as c}from"./s-layout.409bca6d.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.e2e6a1e9.js";import"./su-image.9d27d3ec.js";import"./su-swiper.e826f124.js";import"./s-goods-column.b69314d8.js";import"./useGoods.6e74beef.js";import"./index.e24558d7.js";/* empty css                                                                     */import"./uni-load-more.31dd5d44.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.eab83874.js";import"./combination.ca664672.js";import"./const.d769a2a6.js";import"./mp-html.f52adbcf.js";import"./article.f1244fe8.js";const g={__name:"page",setup(g){const j=s({name:"",components:[],navigationBar:{},page:{}});return o((async t=>{var e,s,o;let p=t.id;const{code:r,data:n}=await a.getDiyPage(p);0===r&&(j.name=n.name,j.components=null==(e=n.property)?void 0:e.components,j.navigationBar=null==(s=n.property)?void 0:s.navigationBar,j.page=null==(o=n.property)?void 0:o.page)})),p((()=>{})),(s,o)=>{const a=l(y("s-block-item"),t),p=l(y("s-block"),e),g=l(y("s-layout"),c);return r(),n(g,{title:j.name,navbar:"custom",bgStyle:j.page,navbarStyle:j.navigationBar,onShareAppMessage:"",showLeftButton:""},{default:i((()=>[(r(!0),m(u,null,_(j.components,((t,e)=>(r(),n(p,{key:e,styles:t.property.style},{default:i((()=>[d(a,{type:t.id,data:t.property,styles:t.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["title","bgStyle","navbarStyle"])}}};export{g as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-index-search.f11aecda.js → unpackage/dist/build/h5/assets/pages-index-search.8f7beac7.js

@@ -1 +1 @@
-import{v as s,o as t,I as e,e as a,f as o,w as r,l as i,j as l,p as c,k as n,r as u,F as f,s as h,L as y,M as d,N as p,m as _,i as L,D as m,t as x}from"./index-60685c89.js";import{b as g,_ as b}from"./s-layout.d651d8a8.js";import{_ as w}from"./_plugin-vue_export-helper.1b428a4d.js";const k=w({__name:"search",setup(w){const k=s({historyList:[]});function j(s){s&&(!function(s){k.historyList.includes(s)&&k.historyList.splice(k.historyList.indexOf(s),1);k.historyList.unshift(s),k.historyList.length>=10&&(k.historyList.length=10);y("searchHistory",k.historyList)}(s),h.$router.go("/pages/goods/list",{keyword:s}))}function v(){d({title:"提示",content:"确认清除搜索历史吗?",success:function(s){s.confirm&&(k.historyTag=[],p("searchHistory"))}})}return t((()=>{k.historyList=e("searchHistory")||[]})),(s,t)=>{const e=i(_("uni-search-bar"),g),h=L,y=m,d=i(_("s-layout"),b);return a(),o(d,{class:"set-wrap",title:"搜索",bgStyle:{color:"#FFF"}},{default:r((()=>[l(h,{class:"ss-p-x-24"},{default:r((()=>[l(h,{class:"ss-flex ss-col-center"},{default:r((()=>[l(e,{class:"ss-flex-1",radius:"33",placeholder:"请输入关键字",cancelButton:"none",focus:!0,onConfirm:t[0]||(t[0]=s=>j(s.value))})])),_:1}),l(h,{class:"ss-flex ss-row-between ss-col-center"},{default:r((()=>[l(h,{class:"serach-history"},{default:r((()=>[c("搜索历史")])),_:1}),l(y,{class:"clean-history ss-reset-button",onClick:v},{default:r((()=>[c(" 清除搜索历史 ")])),_:1})])),_:1}),l(h,{class:"ss-flex ss-col-center ss-row-left ss-flex-wrap"},{default:r((()=>[(a(!0),n(f,null,u(k.historyList,((s,t)=>(a(),o(y,{class:"history-btn ss-reset-button",onClick:t=>j(s),key:t},{default:r((()=>[c(x(s),1)])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-268850fd"]]);export{k as default};
+import{v as s,o as t,I as e,e as a,f as o,w as r,l as i,j as l,p as c,k as n,r as u,F as f,s as h,L as y,M as d,N as p,m as _,i as L,D as m,t as x}from"./index-770048bf.js";import{b as g,_ as b}from"./s-layout.409bca6d.js";import{_ as w}from"./_plugin-vue_export-helper.1b428a4d.js";const k=w({__name:"search",setup(w){const k=s({historyList:[]});function j(s){s&&(!function(s){k.historyList.includes(s)&&k.historyList.splice(k.historyList.indexOf(s),1);k.historyList.unshift(s),k.historyList.length>=10&&(k.historyList.length=10);y("searchHistory",k.historyList)}(s),h.$router.go("/pages/goods/list",{keyword:s}))}function v(){d({title:"提示",content:"确认清除搜索历史吗?",success:function(s){s.confirm&&(k.historyTag=[],p("searchHistory"))}})}return t((()=>{k.historyList=e("searchHistory")||[]})),(s,t)=>{const e=i(_("uni-search-bar"),g),h=L,y=m,d=i(_("s-layout"),b);return a(),o(d,{class:"set-wrap",title:"搜索",bgStyle:{color:"#FFF"}},{default:r((()=>[l(h,{class:"ss-p-x-24"},{default:r((()=>[l(h,{class:"ss-flex ss-col-center"},{default:r((()=>[l(e,{class:"ss-flex-1",radius:"33",placeholder:"请输入关键字",cancelButton:"none",focus:!0,onConfirm:t[0]||(t[0]=s=>j(s.value))})])),_:1}),l(h,{class:"ss-flex ss-row-between ss-col-center"},{default:r((()=>[l(h,{class:"serach-history"},{default:r((()=>[c("搜索历史")])),_:1}),l(y,{class:"clean-history ss-reset-button",onClick:v},{default:r((()=>[c(" 清除搜索历史 ")])),_:1})])),_:1}),l(h,{class:"ss-flex ss-col-center ss-row-left ss-flex-wrap"},{default:r((()=>[(a(!0),n(f,null,u(k.historyList,((s,t)=>(a(),o(y,{class:"history-btn ss-reset-button",onClick:t=>j(s),key:t},{default:r((()=>[c(x(s),1)])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-268850fd"]]);export{k as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-index-user.171cc70d.js → unpackage/dist/build/h5/assets/pages-index-user.23498c2c.js

@@ -1 +1 @@
-import{h as s,c as e,n as t,s as o,a,b as r,d as p,e as i,f as l,w as u,u as m,l as n,k as _,r as d,F as y,m as c,j}from"./index-60685c89.js";import{_ as b,a as g}from"./s-block.fbe3fe12.js";import{_ as v}from"./s-layout.d651d8a8.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.19d2eccf.js";import"./su-image.aac213b7.js";import"./su-swiper.7b39ec5a.js";import"./s-goods-column.3ad4ef20.js";import"./useGoods.6798bab4.js";import"./index.ba4bcb2e.js";/* empty css                                                                     */import"./uni-load-more.b451710d.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.b94560b7.js";import"./combination.ea1635f5.js";import"./const.79ca8edd.js";import"./mp-html.61c82722.js";import"./article.690f6e9b.js";const f={__name:"user",setup(f){s();const x=e((()=>o.$store("app").template.user));return e((()=>o.$store("user").isLogin)),t((()=>{o.$store("user").updateUserData()})),a((()=>{o.$store("user").updateUserData(),setTimeout((function(){r()}),800)})),p((()=>{})),(s,e)=>{var t;const o=n(c("s-block-item"),b),a=n(c("s-block"),g),r=n(c("s-layout"),v);return i(),l(r,{title:"我的",tabbar:"/pages/index/user",navbar:"custom",bgStyle:m(x).page,navbarStyle:null==(t=m(x).style)?void 0:t.navbar,onShareAppMessage:""},{default:u((()=>[(i(!0),_(y,null,d(m(x).components,((s,e)=>(i(),l(a,{key:e,styles:s.property.style},{default:u((()=>[j(o,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])}}};export{f as default};
+import{h as s,c as e,n as t,s as o,a,b as r,d as p,e as i,f as l,w as u,u as m,l as n,k as _,r as d,F as y,m as c,j}from"./index-770048bf.js";import{_ as b,a as g}from"./s-block.f5d9b937.js";import{_ as v}from"./s-layout.409bca6d.js";import"./_plugin-vue_export-helper.1b428a4d.js";import"./uni-list.e2e6a1e9.js";import"./su-image.9d27d3ec.js";import"./su-swiper.e826f124.js";import"./s-goods-column.b69314d8.js";import"./useGoods.6e74beef.js";import"./index.e24558d7.js";/* empty css                                                                     */import"./uni-load-more.31dd5d44.js";/* empty css                                                                *//* empty css                                                                      */import"./spu.eab83874.js";import"./combination.ca664672.js";import"./const.d769a2a6.js";import"./mp-html.f52adbcf.js";import"./article.f1244fe8.js";const f={__name:"user",setup(f){s();const x=e((()=>o.$store("app").template.user));return e((()=>o.$store("user").isLogin)),t((()=>{o.$store("user").updateUserData()})),a((()=>{o.$store("user").updateUserData(),setTimeout((function(){r()}),800)})),p((()=>{})),(s,e)=>{var t;const o=n(c("s-block-item"),b),a=n(c("s-block"),g),r=n(c("s-layout"),v);return i(),l(r,{title:"我的",tabbar:"/pages/index/user",navbar:"custom",bgStyle:m(x).page,navbarStyle:null==(t=m(x).style)?void 0:t.navbar,onShareAppMessage:""},{default:u((()=>[(i(!0),_(y,null,d(m(x).components,((s,e)=>(i(),l(a,{key:e,styles:s.property.style},{default:u((()=>[j(o,{type:s.id,data:s.property,styles:s.property.style},null,8,["type","data","styles"])])),_:2},1032,["styles"])))),128))])),_:1},8,["bgStyle","navbarStyle"])}}};export{f as default};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-aftersale-apply.24303e5c.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-aftersale-detail.c8c346a4.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-aftersale-list.c9531aa3.js


+ 1 - 1
unpackage/dist/build/h5/assets/pages-order-aftersale-log.848ebe2b.js → unpackage/dist/build/h5/assets/pages-order-aftersale-log.df042322.js

@@ -1 +1 @@
-import{e as t,f as a,w as s,j as e,z as l,g as i,p as o,t as d,u as c,s as n,C as r,i as u,v as m,o as f,l as _,k as p,r as y,F as x,m as g}from"./index-60685c89.js";import{_ as j}from"./s-layout.d651d8a8.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";import{A as h}from"./afterSale.176f8db0.js";const v=b({__name:"log-item",props:{item:{type:Object,default(){}},index:{type:Number,default:0},data:{type:Object,default(){}}},setup:m=>(f,_)=>{const p=r,y=u;return t(),a(y,{class:"log-item ss-flex"},{default:s((()=>[e(y,{class:"log-icon ss-flex-col ss-col-center ss-m-r-20"},{default:s((()=>[e(p,{class:l(["cicon-title",0===m.index?"activity-color":""])},null,8,["class"]),m.data.length-1!==m.index?(t(),a(y,{key:0,class:"line"})):i("",!0)])),_:1}),e(y,null,{default:s((()=>[e(y,{class:"text"},{default:s((()=>[o(d(m.item.content),1)])),_:1}),e(y,{class:"date"},{default:s((()=>[o(d(c(n).$helper.timeFormat(m.item.createTime,"yyyy-mm-dd hh:MM:ss")),1)])),_:1})])),_:1})])),_:1})}},[["__scopeId","data-v-bc3922ca"]]),k=b({__name:"log",setup(l){const i=m({list:[]});return f((t=>{i.aftersaleId=t.id,async function(t){const{data:a}=await h.getAfterSaleLogList(t);i.list=a}(t.id)})),(l,o)=>{const d=u,c=_(g("s-layout"),j);return t(),a(c,{title:"售后进度"},{default:s((()=>[e(d,{class:"log-box"},{default:s((()=>[(t(!0),p(x,null,y(i.list,((l,o)=>(t(),a(d,{key:l.id},{default:s((()=>[e(v,{item:l,index:o,data:i.list},null,8,["item","index","data"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-9849747c"]]);export{k as default};
+import{e as t,f as a,w as s,j as e,z as l,g as i,p as o,t as d,u as c,s as n,C as r,i as u,v as m,o as f,l as _,k as p,r as y,F as x,m as g}from"./index-770048bf.js";import{_ as j}from"./s-layout.409bca6d.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";import{A as h}from"./afterSale.ab78629d.js";const v=b({__name:"log-item",props:{item:{type:Object,default(){}},index:{type:Number,default:0},data:{type:Object,default(){}}},setup:m=>(f,_)=>{const p=r,y=u;return t(),a(y,{class:"log-item ss-flex"},{default:s((()=>[e(y,{class:"log-icon ss-flex-col ss-col-center ss-m-r-20"},{default:s((()=>[e(p,{class:l(["cicon-title",0===m.index?"activity-color":""])},null,8,["class"]),m.data.length-1!==m.index?(t(),a(y,{key:0,class:"line"})):i("",!0)])),_:1}),e(y,null,{default:s((()=>[e(y,{class:"text"},{default:s((()=>[o(d(m.item.content),1)])),_:1}),e(y,{class:"date"},{default:s((()=>[o(d(c(n).$helper.timeFormat(m.item.createTime,"yyyy-mm-dd hh:MM:ss")),1)])),_:1})])),_:1})])),_:1})}},[["__scopeId","data-v-bc3922ca"]]),k=b({__name:"log",setup(l){const i=m({list:[]});return f((t=>{i.aftersaleId=t.id,async function(t){const{data:a}=await h.getAfterSaleLogList(t);i.list=a}(t.id)})),(l,o)=>{const d=u,c=_(g("s-layout"),j);return t(),a(c,{title:"售后进度"},{default:s((()=>[e(d,{class:"log-box"},{default:s((()=>[(t(!0),p(x,null,y(i.list,((l,o)=>(t(),a(d,{key:l.id},{default:s((()=>[e(v,{item:l,index:o,data:i.list},null,8,["item","index","data"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-9849747c"]]);export{k as default};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-aftersale-return-delivery.f546e0ea.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-confirm.e6b44eea.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-detail.ec7b6b38.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-express-log.4d92ac2b.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-order-list.283d35a0.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-pay-index.d83f64cc.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-pay-recharge-log.022b9061.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-pay-recharge.bb846d66.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-pay-result.d6bdb233.js


+ 1 - 1
unpackage/dist/build/h5/assets/pages-public-error.4e229dc5.js → unpackage/dist/build/h5/assets/pages-public-error.fc552f18.js

@@ -1 +1 @@
-import{U as t,o as e,e as o,f as n,w as a,i as s,g as r,b3 as i,bt as c,l,m as p}from"./index-60685c89.js";import{_ as u}from"./s-empty.6e57491a.js";import{_}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const m=_({__name:"error",setup(_){const m=t(""),f=t("");async function x(){i({url:"/pages/index/index"}),await c()}return e((t=>{m.value=t.errCode,f.value=t.errMsg})),(t,e)=>{const i=l(p("s-empty"),u),c=s;return o(),n(c,{class:"error-page"},{default:a((()=>["NetworkError"===m.value?(o(),n(i,{key:0,icon:"/static/internet-empty.png",text:"网络连接失败",showAction:"",actionText:"重新连接",onClickAction:x,buttonColor:"#ff3000"})):"TemplateError"===m.value?(o(),n(i,{key:1,icon:"/static/internet-empty.png",text:"未找到模板",showAction:"",actionText:"重新加载",onClickAction:x,buttonColor:"#ff3000"})):""!==m.value?(o(),n(i,{key:2,icon:"/static/internet-empty.png",text:f.value,showAction:"",actionText:"重新加载",onClickAction:x,buttonColor:"#ff3000"},null,8,["text"])):r("",!0)])),_:1})}}},[["__scopeId","data-v-0cb6e9ec"]]);export{m as default};
+import{U as t,o as e,e as o,f as n,w as a,i as s,g as r,b3 as i,bt as c,l,m as p}from"./index-770048bf.js";import{_ as u}from"./s-empty.ec77cee3.js";import{_}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const m=_({__name:"error",setup(_){const m=t(""),f=t("");async function x(){i({url:"/pages/index/index"}),await c()}return e((t=>{m.value=t.errCode,f.value=t.errMsg})),(t,e)=>{const i=l(p("s-empty"),u),c=s;return o(),n(c,{class:"error-page"},{default:a((()=>["NetworkError"===m.value?(o(),n(i,{key:0,icon:"/static/internet-empty.png",text:"网络连接失败",showAction:"",actionText:"重新连接",onClickAction:x,buttonColor:"#ff3000"})):"TemplateError"===m.value?(o(),n(i,{key:1,icon:"/static/internet-empty.png",text:"未找到模板",showAction:"",actionText:"重新加载",onClickAction:x,buttonColor:"#ff3000"})):""!==m.value?(o(),n(i,{key:2,icon:"/static/internet-empty.png",text:f.value,showAction:"",actionText:"重新加载",onClickAction:x,buttonColor:"#ff3000"},null,8,["text"])):r("",!0)])),_:1})}}},[["__scopeId","data-v-0cb6e9ec"]]);export{m as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-public-faq.f5ea65dc.js → unpackage/dist/build/h5/assets/pages-public-faq.690d5802.js

@@ -1 +1 @@
-import{v as s,o as t,s as e,e as a,f as l,w as o,l as c,j as r,k as n,r as i,F as p,g as u,m as _,p as m,t as d,i as f,C as g}from"./index-60685c89.js";import{_ as y,a as x}from"./uni-collapse.0d5f7a63.js";import{_ as j}from"./s-empty.6e57491a.js";import{_ as b}from"./s-layout.d651d8a8.js";import{_ as v}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const h=v({__name:"faq",setup(v){const h=s({list:[],loading:!0});return t((()=>{e.$router.go("/pages/public/richtext",{title:"常见问题"})})),(s,t)=>{const e=f,v=g,F=c(_("uni-collapse-item"),y),k=c(_("uni-collapse"),x),w=c(_("s-empty"),j),q=c(_("s-layout"),b);return a(),l(q,{class:"set-wrap",title:"常见问题",bgStyle:{color:"#FFF"}},{default:o((()=>[r(k,null,{default:o((()=>[(a(!0),n(p,null,i(h.list,((s,t)=>(a(),l(F,{key:s},{title:o((()=>[r(e,{class:"ss-flex ss-col-center header"},{default:o((()=>[r(e,{class:"ss-m-l-20 ss-m-r-20 icon"},{default:o((()=>[r(e,{class:"rectangle"},{default:o((()=>[r(e,{class:"num ss-flex ss-row-center ss-col-center"},{default:o((()=>[m(d(t+1<10?"0"+(t+1):t+1),1)])),_:2},1024)])),_:2},1024),r(e,{class:"triangle"})])),_:2},1024),r(e,{class:"title ss-m-t-36 ss-m-b-36"},{default:o((()=>[m(d(s.title),1)])),_:2},1024)])),_:2},1024)])),default:o((()=>[r(e,{class:"content ss-p-l-78 ss-p-r-40 ss-p-b-50 ss-p-t-20"},{default:o((()=>[r(v,{class:"text"},{default:o((()=>[m(d(s.content),1)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),0!==h.list.length||h.loading?u("",!0):(a(),l(w,{key:0,text:"暂无常见问题",icon:"/static/collect-empty.png"}))])),_:1})}}},[["__scopeId","data-v-b566618e"]]);export{h as default};
+import{v as s,o as t,s as e,e as a,f as l,w as o,l as c,j as r,k as n,r as i,F as p,g as u,m as _,p as m,t as d,i as f,C as g}from"./index-770048bf.js";import{_ as y,a as x}from"./uni-collapse.7ff4d1a6.js";import{_ as j}from"./s-empty.ec77cee3.js";import{_ as b}from"./s-layout.409bca6d.js";import{_ as v}from"./_plugin-vue_export-helper.1b428a4d.js";/* empty css                                                                */const h=v({__name:"faq",setup(v){const h=s({list:[],loading:!0});return t((()=>{e.$router.go("/pages/public/richtext",{title:"常见问题"})})),(s,t)=>{const e=f,v=g,F=c(_("uni-collapse-item"),y),k=c(_("uni-collapse"),x),w=c(_("s-empty"),j),q=c(_("s-layout"),b);return a(),l(q,{class:"set-wrap",title:"常见问题",bgStyle:{color:"#FFF"}},{default:o((()=>[r(k,null,{default:o((()=>[(a(!0),n(p,null,i(h.list,((s,t)=>(a(),l(F,{key:s},{title:o((()=>[r(e,{class:"ss-flex ss-col-center header"},{default:o((()=>[r(e,{class:"ss-m-l-20 ss-m-r-20 icon"},{default:o((()=>[r(e,{class:"rectangle"},{default:o((()=>[r(e,{class:"num ss-flex ss-row-center ss-col-center"},{default:o((()=>[m(d(t+1<10?"0"+(t+1):t+1),1)])),_:2},1024)])),_:2},1024),r(e,{class:"triangle"})])),_:2},1024),r(e,{class:"title ss-m-t-36 ss-m-b-36"},{default:o((()=>[m(d(s.title),1)])),_:2},1024)])),_:2},1024)])),default:o((()=>[r(e,{class:"content ss-p-l-78 ss-p-r-40 ss-p-b-50 ss-p-t-20"},{default:o((()=>[r(v,{class:"text"},{default:o((()=>[m(d(s.content),1)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),0!==h.list.length||h.loading?u("",!0):(a(),l(w,{key:0,text:"暂无常见问题",icon:"/static/collect-empty.png"}))])),_:1})}}},[["__scopeId","data-v-b566618e"]]);export{h as default};

+ 1 - 1
unpackage/dist/build/h5/assets/pages-public-richtext.58efd113.js → unpackage/dist/build/h5/assets/pages-public-richtext.e21a3336.js

@@ -1 +1 @@
-import{v as t,o as e,b8 as s,e as l,f as a,w as i,l as o,j as n,m as c,i as r}from"./index-60685c89.js";import{_ as m}from"./mp-html.61c82722.js";import{_ as p}from"./s-layout.d651d8a8.js";import{A as u}from"./article.690f6e9b.js";import{_ as d}from"./_plugin-vue_export-helper.1b428a4d.js";const _=d({__name:"richtext",setup(d){const _=t({title:"",content:""});return e((t=>{t.title&&(_.title=t.title,s({title:_.title})),async function(t,e){const{code:l,data:a}=await u.getArticle(t,e);0===l&&(_.content=a.content,_.title!==a.title&&(_.title=a.title,s({title:_.title})))}(t.id,t.title)})),(t,e)=>{const s=o(c("mp-html"),m),u=r,d=o(c("s-layout"),p);return l(),a(d,{class:"set-wrap",title:_.title,bgStyle:{color:"#FFF"}},{default:i((()=>[n(u,{class:"ss-p-30"},{default:i((()=>[n(s,{class:"richtext",content:_.content},null,8,["content"])])),_:1})])),_:1},8,["title"])}}},[["__scopeId","data-v-d4cdeb0e"]]);export{_ as default};
+import{v as t,o as e,b8 as s,e as l,f as a,w as i,l as o,j as n,m as c,i as r}from"./index-770048bf.js";import{_ as m}from"./mp-html.f52adbcf.js";import{_ as p}from"./s-layout.409bca6d.js";import{A as u}from"./article.f1244fe8.js";import{_ as d}from"./_plugin-vue_export-helper.1b428a4d.js";const _=d({__name:"richtext",setup(d){const _=t({title:"",content:""});return e((t=>{t.title&&(_.title=t.title,s({title:_.title})),async function(t,e){const{code:l,data:a}=await u.getArticle(t,e);0===l&&(_.content=a.content,_.title!==a.title&&(_.title=a.title,s({title:_.title})))}(t.id,t.title)})),(t,e)=>{const s=o(c("mp-html"),m),u=r,d=o(c("s-layout"),p);return l(),a(d,{class:"set-wrap",title:_.title,bgStyle:{color:"#FFF"}},{default:i((()=>[n(u,{class:"ss-p-30"},{default:i((()=>[n(s,{class:"richtext",content:_.content},null,8,["content"])])),_:1})])),_:1},8,["title"])}}},[["__scopeId","data-v-d4cdeb0e"]]);export{_ as default};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-public-setting.422d7695.js


+ 1 - 1
unpackage/dist/build/h5/assets/pages-public-webview.535053ed.js → unpackage/dist/build/h5/assets/pages-public-webview.73d4a591.js

@@ -1 +1 @@
-import{U as e,o as s,e as a,f as n,w as t,i as u,j as o,bu as r}from"./index-60685c89.js";const l={__name:"webview",setup(l){const c=e("");return s((e=>{c.value=decodeURIComponent(e.url)})),(e,s)=>{const l=r,d=u;return a(),n(d,null,{default:t((()=>[o(l,{src:c.value},null,8,["src"])])),_:1})}}};export{l as default};
+import{U as e,o as s,e as a,f as n,w as t,i as u,j as o,bu as r}from"./index-770048bf.js";const l={__name:"webview",setup(l){const c=e("");return s((e=>{c.value=decodeURIComponent(e.url)})),(e,s)=>{const l=r,d=u;return a(),n(d,null,{default:t((()=>[o(l,{src:c.value},null,8,["src"])])),_:1})}}};export{l as default};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-address-edit.76f152f7.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-address-edit.c0e607ca.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-address-list.feb402df.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-goods-collect.48367e6e.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-goods-log.fbef6b9a.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-info.0f31505f.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-wallet-money.0e537f14.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/pages-user-wallet-score.4b3461ba.js


+ 1 - 1
unpackage/dist/build/h5/assets/rewardActivity.b41e3baa.js → unpackage/dist/build/h5/assets/rewardActivity.5bdb76e3.js

@@ -1 +1 @@
-import{a7 as t}from"./index-60685c89.js";const r={getRewardActivity:r=>t({url:"/promotion/reward-activity/get",method:"GET",params:{id:r}})};export{r as R};
+import{a7 as t}from"./index-770048bf.js";const r={getRewardActivity:r=>t({url:"/promotion/reward-activity/get",method:"GET",params:{id:r}})};export{r as R};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-address-item.07743b16.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-block.f5d9b937.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-coupon-list.f8608d5d.js


+ 1 - 1
unpackage/dist/build/h5/assets/s-empty.6e57491a.js → unpackage/dist/build/h5/assets/s-empty.ec77cee3.js

@@ -1 +1 @@
-import{B as t,e,f as s,w as a,j as o,p as n,t as i,g as c,y as l,s as p,q as r,i as d,C as u,D as _}from"./index-60685c89.js";/* empty css                                                                */import{_ as y}from"./_plugin-vue_export-helper.1b428a4d.js";const f=y({__name:"s-empty",props:{icon:{type:String,default:""},text:{type:String,default:""},showAction:{type:Boolean,default:!1},actionText:{type:String,default:""},actionUrl:{type:String,default:""},paddingTop:{type:String,default:"260"},buttonColor:{type:String,default:"var(--ui-BG-Main)"}},emits:["clickAction"],setup(y,{emit:f}){const m=y;function x(){""!==m.actionUrl&&p.$router.go(m.actionUrl),f("clickAction")}return t((t=>({"4e03fdca":y.buttonColor}))),(t,p)=>{const f=r,m=d,g=u,b=_;return e(),s(m,{class:"ss-flex-col ss-col-center ss-row-center empty-box",style:l([{paddingTop:y.paddingTop+"rpx"}])},{default:a((()=>[o(m,{class:""},{default:a((()=>[o(f,{class:"empty-icon",src:y.icon,mode:"widthFix"},null,8,["src"])])),_:1}),o(m,{class:"empty-text ss-m-t-28 ss-m-b-40"},{default:a((()=>[""!==y.text?(e(),s(g,{key:0},{default:a((()=>[n(i(y.text),1)])),_:1})):c("",!0)])),_:1}),y.showAction?(e(),s(b,{key:0,class:"ss-reset-button empty-btn",onClick:x},{default:a((()=>[n(i(y.actionText),1)])),_:1})):c("",!0)])),_:1},8,["style"])}}},[["__scopeId","data-v-6b0d31c6"]]);export{f as _};
+import{B as t,e,f as s,w as a,j as o,p as n,t as i,g as c,y as l,s as p,q as r,i as d,C as u,D as _}from"./index-770048bf.js";/* empty css                                                                */import{_ as y}from"./_plugin-vue_export-helper.1b428a4d.js";const f=y({__name:"s-empty",props:{icon:{type:String,default:""},text:{type:String,default:""},showAction:{type:Boolean,default:!1},actionText:{type:String,default:""},actionUrl:{type:String,default:""},paddingTop:{type:String,default:"260"},buttonColor:{type:String,default:"var(--ui-BG-Main)"}},emits:["clickAction"],setup(y,{emit:f}){const m=y;function x(){""!==m.actionUrl&&p.$router.go(m.actionUrl),f("clickAction")}return t((t=>({"4e03fdca":y.buttonColor}))),(t,p)=>{const f=r,m=d,g=u,b=_;return e(),s(m,{class:"ss-flex-col ss-col-center ss-row-center empty-box",style:l([{paddingTop:y.paddingTop+"rpx"}])},{default:a((()=>[o(m,{class:""},{default:a((()=>[o(f,{class:"empty-icon",src:y.icon,mode:"widthFix"},null,8,["src"])])),_:1}),o(m,{class:"empty-text ss-m-t-28 ss-m-b-40"},{default:a((()=>[""!==y.text?(e(),s(g,{key:0},{default:a((()=>[n(i(y.text),1)])),_:1})):c("",!0)])),_:1}),y.showAction?(e(),s(b,{key:0,class:"ss-reset-button empty-btn",onClick:x},{default:a((()=>[n(i(y.actionText),1)])),_:1})):c("",!0)])),_:1},8,["style"])}}},[["__scopeId","data-v-6b0d31c6"]]);export{f as _};

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-goods-column.b69314d8.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-goods-item.913c690c.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-layout-6c86ec08.css


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
unpackage/dist/build/h5/assets/s-layout.409bca6d.js


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov