create-weapp-vite 2.0.30 → 2.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-HT7GOIHP.js → chunk-IT75MAH3.js} +3 -2
  3. package/dist/cli.js +5 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -1
  6. package/package.json +2 -2
  7. package/templates/tailwindcss/package.json +1 -1
  8. package/templates/tdesign/package.json +1 -1
  9. package/templates/vant/package.json +1 -1
  10. package/templates/wevu-retail/.editorconfig +9 -0
  11. package/templates/wevu-retail/.vscode/settings.json +10 -0
  12. package/templates/wevu-retail/AGENTS.md +35 -0
  13. package/templates/wevu-retail/README.md +26 -0
  14. package/templates/wevu-retail/auto-import-components.json +1 -0
  15. package/templates/wevu-retail/gitignore +35 -0
  16. package/templates/wevu-retail/package.json +42 -0
  17. package/templates/wevu-retail/postcss.config.js +6 -0
  18. package/templates/wevu-retail/project.config.json +44 -0
  19. package/templates/wevu-retail/project.private.config.json +8 -0
  20. package/templates/wevu-retail/src/app.vue +104 -0
  21. package/templates/wevu-retail/src/common/updateManager.ts +29 -0
  22. package/templates/wevu-retail/src/components/filter/index.vue +134 -0
  23. package/templates/wevu-retail/src/components/filter-popup/index.vue +67 -0
  24. package/templates/wevu-retail/src/components/goods-card/index.vue +219 -0
  25. package/templates/wevu-retail/src/components/goods-list/index.vue +91 -0
  26. package/templates/wevu-retail/src/components/load-more/index.vue +99 -0
  27. package/templates/wevu-retail/src/components/loading-content/index.vue +48 -0
  28. package/templates/wevu-retail/src/components/price/index.vue +104 -0
  29. package/templates/wevu-retail/src/components/promotion/ui-coupon-card/index.vue +143 -0
  30. package/templates/wevu-retail/src/components/promotion/ui-coupon-card/tools.wxs +18 -0
  31. package/templates/wevu-retail/src/components/swipeout/index.vue +118 -0
  32. package/templates/wevu-retail/src/components/swipeout/swipe.wxs +151 -0
  33. package/templates/wevu-retail/src/components/webp-image/index.vue +105 -0
  34. package/templates/wevu-retail/src/components/webp-image/utils.wxs +140 -0
  35. package/templates/wevu-retail/src/config/index.ts +20437 -0
  36. package/templates/wevu-retail/src/custom-tab-bar/data.ts +22 -0
  37. package/templates/wevu-retail/src/custom-tab-bar/index.vue +62 -0
  38. package/templates/wevu-retail/src/model/activities.ts +7 -0
  39. package/templates/wevu-retail/src/model/activity.ts +18 -0
  40. package/templates/wevu-retail/src/model/address.ts +31 -0
  41. package/templates/wevu-retail/src/model/cart.ts +306 -0
  42. package/templates/wevu-retail/src/model/category.ts +175 -0
  43. package/templates/wevu-retail/src/model/comments/queryDetail.ts +50 -0
  44. package/templates/wevu-retail/src/model/comments.ts +298 -0
  45. package/templates/wevu-retail/src/model/coupon.ts +39 -0
  46. package/templates/wevu-retail/src/model/detailsComments.ts +30 -0
  47. package/templates/wevu-retail/src/model/good.ts +1904 -0
  48. package/templates/wevu-retail/src/model/goods.ts +7 -0
  49. package/templates/wevu-retail/src/model/order/applyService.ts +329 -0
  50. package/templates/wevu-retail/src/model/order/orderConfirm.ts +147 -0
  51. package/templates/wevu-retail/src/model/order/orderDetail.ts +1191 -0
  52. package/templates/wevu-retail/src/model/order/orderList.ts +1033 -0
  53. package/templates/wevu-retail/src/model/promotion.ts +20 -0
  54. package/templates/wevu-retail/src/model/search.ts +60 -0
  55. package/templates/wevu-retail/src/model/submitComment.ts +58 -0
  56. package/templates/wevu-retail/src/model/swiper.ts +39 -0
  57. package/templates/wevu-retail/src/model/usercenter.ts +52 -0
  58. package/templates/wevu-retail/src/pages/cart/components/cart-bar/index.vue +104 -0
  59. package/templates/wevu-retail/src/pages/cart/components/cart-empty/index.vue +41 -0
  60. package/templates/wevu-retail/src/pages/cart/components/cart-group/index.vue +333 -0
  61. package/templates/wevu-retail/src/pages/cart/components/cart-group/index.wxs +5 -0
  62. package/templates/wevu-retail/src/pages/cart/components/cart-group/utils.wxs +20 -0
  63. package/templates/wevu-retail/src/pages/cart/components/goods-card/index.vue +334 -0
  64. package/templates/wevu-retail/src/pages/cart/components/specs-popup/index.vue +100 -0
  65. package/templates/wevu-retail/src/pages/cart/index.vue +342 -0
  66. package/templates/wevu-retail/src/pages/category/components/goods-category/components/c-sidebar/README.md +95 -0
  67. package/templates/wevu-retail/src/pages/category/components/goods-category/components/c-sidebar/c-sidebar-item/index.vue +73 -0
  68. package/templates/wevu-retail/src/pages/category/components/goods-category/components/c-sidebar/index.vue +121 -0
  69. package/templates/wevu-retail/src/pages/category/components/goods-category/components/c-tabbar/c-tabbar-more/index.vue +74 -0
  70. package/templates/wevu-retail/src/pages/category/components/goods-category/components/c-tabbar/index.vue +102 -0
  71. package/templates/wevu-retail/src/pages/category/components/goods-category/index.vue +137 -0
  72. package/templates/wevu-retail/src/pages/category/index.vue +50 -0
  73. package/templates/wevu-retail/src/pages/coupon/components/coupon-card/index.vue +95 -0
  74. package/templates/wevu-retail/src/pages/coupon/components/floating-button/index.vue +44 -0
  75. package/templates/wevu-retail/src/pages/coupon/coupon-activity-goods/index.vue +135 -0
  76. package/templates/wevu-retail/src/pages/coupon/coupon-detail/index.vue +94 -0
  77. package/templates/wevu-retail/src/pages/coupon/coupon-list/index.vue +136 -0
  78. package/templates/wevu-retail/src/pages/goods/comments/components/comments-card/components/images-videos/assets/play.png +0 -0
  79. package/templates/wevu-retail/src/pages/goods/comments/components/comments-card/components/images-videos/index.vue +65 -0
  80. package/templates/wevu-retail/src/pages/goods/comments/components/comments-card/components/my-video/index.vue +92 -0
  81. package/templates/wevu-retail/src/pages/goods/comments/components/comments-card/index.vue +93 -0
  82. package/templates/wevu-retail/src/pages/goods/comments/create/index.vue +196 -0
  83. package/templates/wevu-retail/src/pages/goods/comments/index.vue +293 -0
  84. package/templates/wevu-retail/src/pages/goods/details/components/buy-bar/index.vue +117 -0
  85. package/templates/wevu-retail/src/pages/goods/details/components/goods-specs-popup/index.vue +440 -0
  86. package/templates/wevu-retail/src/pages/goods/details/components/promotion-popup/index.vue +83 -0
  87. package/templates/wevu-retail/src/pages/goods/details/index.vue +598 -0
  88. package/templates/wevu-retail/src/pages/goods/list/index.vue +299 -0
  89. package/templates/wevu-retail/src/pages/goods/result/index.vue +350 -0
  90. package/templates/wevu-retail/src/pages/goods/search/index.vue +196 -0
  91. package/templates/wevu-retail/src/pages/home/home.vue +215 -0
  92. package/templates/wevu-retail/src/pages/home/readme +8 -0
  93. package/templates/wevu-retail/src/pages/order/after-service-detail/api.ts +34 -0
  94. package/templates/wevu-retail/src/pages/order/after-service-detail/index.vue +430 -0
  95. package/templates/wevu-retail/src/pages/order/after-service-list/api.ts +1262 -0
  96. package/templates/wevu-retail/src/pages/order/after-service-list/index.vue +299 -0
  97. package/templates/wevu-retail/src/pages/order/apply-service/index.vue +665 -0
  98. package/templates/wevu-retail/src/pages/order/components/after-service-button-bar/index.vue +142 -0
  99. package/templates/wevu-retail/src/pages/order/components/customer-service/index.vue +75 -0
  100. package/templates/wevu-retail/src/pages/order/components/goods-card/index.vue +356 -0
  101. package/templates/wevu-retail/src/pages/order/components/noGoods/noGood.wxs +17 -0
  102. package/templates/wevu-retail/src/pages/order/components/noGoods/noGoods.vue +125 -0
  103. package/templates/wevu-retail/src/pages/order/components/order-button-bar/index.vue +262 -0
  104. package/templates/wevu-retail/src/pages/order/components/order-card/index.vue +126 -0
  105. package/templates/wevu-retail/src/pages/order/components/order-goods-card/index.vue +86 -0
  106. package/templates/wevu-retail/src/pages/order/components/reason-sheet/index.vue +161 -0
  107. package/templates/wevu-retail/src/pages/order/components/reason-sheet/reasonSheet.ts +25 -0
  108. package/templates/wevu-retail/src/pages/order/components/selectCoupons/mock.ts +22 -0
  109. package/templates/wevu-retail/src/pages/order/components/selectCoupons/selectCoupon.wxs +16 -0
  110. package/templates/wevu-retail/src/pages/order/components/selectCoupons/selectCoupons.vue +207 -0
  111. package/templates/wevu-retail/src/pages/order/components/specs-goods-card/index.vue +185 -0
  112. package/templates/wevu-retail/src/pages/order/config.ts +94 -0
  113. package/templates/wevu-retail/src/pages/order/delivery-detail/index.vue +145 -0
  114. package/templates/wevu-retail/src/pages/order/delivery-detail/isUrl.wxs +7 -0
  115. package/templates/wevu-retail/src/pages/order/fill-tracking-no/api.ts +71 -0
  116. package/templates/wevu-retail/src/pages/order/fill-tracking-no/index.vue +267 -0
  117. package/templates/wevu-retail/src/pages/order/invoice/index.vue +94 -0
  118. package/templates/wevu-retail/src/pages/order/order-confirm/components/address-card/index.vue +78 -0
  119. package/templates/wevu-retail/src/pages/order/order-confirm/getNotes.wxs +11 -0
  120. package/templates/wevu-retail/src/pages/order/order-confirm/handleInvoice.wxs +11 -0
  121. package/templates/wevu-retail/src/pages/order/order-confirm/index.vue +707 -0
  122. package/templates/wevu-retail/src/pages/order/order-confirm/order.wxs +8 -0
  123. package/templates/wevu-retail/src/pages/order/order-confirm/pay.ts +115 -0
  124. package/templates/wevu-retail/src/pages/order/order-detail/index.vue +456 -0
  125. package/templates/wevu-retail/src/pages/order/order-list/index.vue +288 -0
  126. package/templates/wevu-retail/src/pages/order/pay-result/index.vue +77 -0
  127. package/templates/wevu-retail/src/pages/order/receipt/index.vue +336 -0
  128. package/templates/wevu-retail/src/pages/promotion/promotion-detail/index.vue +145 -0
  129. package/templates/wevu-retail/src/pages/user/address/edit/index.vue +514 -0
  130. package/templates/wevu-retail/src/pages/user/address/list/index.vue +249 -0
  131. package/templates/wevu-retail/src/pages/user/components/t-location/index.vue +156 -0
  132. package/templates/wevu-retail/src/pages/user/components/ui-address-item/index.vue +92 -0
  133. package/templates/wevu-retail/src/pages/user/name-edit/index.vue +49 -0
  134. package/templates/wevu-retail/src/pages/user/person-info/index.vue +198 -0
  135. package/templates/wevu-retail/src/pages/usercenter/address/edit/util.ts +33 -0
  136. package/templates/wevu-retail/src/pages/usercenter/components/order-group/index.vue +90 -0
  137. package/templates/wevu-retail/src/pages/usercenter/components/ui-select-picker/index.vue +108 -0
  138. package/templates/wevu-retail/src/pages/usercenter/components/user-center-card/index.vue +82 -0
  139. package/templates/wevu-retail/src/pages/usercenter/index.vue +301 -0
  140. package/templates/wevu-retail/src/services/_utils/delay.ts +3 -0
  141. package/templates/wevu-retail/src/services/_utils/timeout.ts +3 -0
  142. package/templates/wevu-retail/src/services/activity/fetchActivity.ts +20 -0
  143. package/templates/wevu-retail/src/services/activity/fetchActivityList.ts +20 -0
  144. package/templates/wevu-retail/src/services/address/edit.ts +33 -0
  145. package/templates/wevu-retail/src/services/address/fetchAddress.ts +48 -0
  146. package/templates/wevu-retail/src/services/address/list.ts +31 -0
  147. package/templates/wevu-retail/src/services/cart/cart.ts +20 -0
  148. package/templates/wevu-retail/src/services/comments/fetchComments.ts +18 -0
  149. package/templates/wevu-retail/src/services/comments/fetchCommentsCount.ts +18 -0
  150. package/templates/wevu-retail/src/services/coupon/index.ts +65 -0
  151. package/templates/wevu-retail/src/services/good/comments/fetchCommentDetail.ts +20 -0
  152. package/templates/wevu-retail/src/services/good/fetchCategoryList.ts +18 -0
  153. package/templates/wevu-retail/src/services/good/fetchGood.ts +18 -0
  154. package/templates/wevu-retail/src/services/good/fetchGoods.ts +29 -0
  155. package/templates/wevu-retail/src/services/good/fetchGoodsDetailsComments.ts +37 -0
  156. package/templates/wevu-retail/src/services/good/fetchGoodsList.ts +39 -0
  157. package/templates/wevu-retail/src/services/good/fetchSearchHistory.ts +35 -0
  158. package/templates/wevu-retail/src/services/good/fetchSearchResult.ts +38 -0
  159. package/templates/wevu-retail/src/services/home/home.ts +53 -0
  160. package/templates/wevu-retail/src/services/order/applyService.ts +70 -0
  161. package/templates/wevu-retail/src/services/order/orderConfirm.ts +69 -0
  162. package/templates/wevu-retail/src/services/order/orderDetail.ts +39 -0
  163. package/templates/wevu-retail/src/services/order/orderList.ts +39 -0
  164. package/templates/wevu-retail/src/services/order/orderSubmitComment.ts +22 -0
  165. package/templates/wevu-retail/src/services/promotion/detail.ts +18 -0
  166. package/templates/wevu-retail/src/services/usercenter/fetchPerson.ts +28 -0
  167. package/templates/wevu-retail/src/services/usercenter/fetchUsercenter.ts +18 -0
  168. package/templates/wevu-retail/src/sitemap.json +7 -0
  169. package/templates/wevu-retail/src/utils/addressParse.ts +25 -0
  170. package/templates/wevu-retail/src/utils/getPermission.ts +45 -0
  171. package/templates/wevu-retail/src/utils/mock.ts +51 -0
  172. package/templates/wevu-retail/src/utils/util.ts +134 -0
  173. package/templates/wevu-retail/src/vite-env.d.ts +1 -0
  174. package/templates/wevu-retail/tailwind.config.ts +15 -0
  175. package/templates/wevu-retail/tsconfig.app.json +58 -0
  176. package/templates/wevu-retail/tsconfig.json +11 -0
  177. package/templates/wevu-retail/tsconfig.node.json +33 -0
  178. package/templates/wevu-retail/vite.config.ts +14 -0
  179. package/templates/wevu-tdesign/package.json +1 -1
@@ -0,0 +1,333 @@
1
+ <script lang="ts">
2
+ import Toast from 'tdesign-miniprogram/toast/index';
3
+
4
+ const shortageImg = 'https://tdesign.gtimg.com/miniprogram/template/retail/cart/shortage.png';
5
+
6
+ Component({
7
+ isSpecsTap: false, // 标记本次点击事件是否因为点击specs触发(由于底层goods-card组件没有catch specs点击事件,只能在此处加状态来避免点击specs时触发跳转商品详情)
8
+ externalClasses: ['wr-class'],
9
+ properties: {
10
+ storeGoods: {
11
+ type: Array,
12
+ observer(storeGoods) {
13
+ for (const store of storeGoods) {
14
+ for (const activity of store.promotionGoodsList) {
15
+ for (const goods of activity.goodsPromotionList) {
16
+ goods.specs = goods.specInfo.map((item) => item.specValue); // 目前仅展示商品已选规格的值
17
+ }
18
+ }
19
+ for (const goods of store.shortageGoodsList) {
20
+ goods.specs = goods.specInfo.map((item) => item.specValue); // 目前仅展示商品已选规格的值
21
+ }
22
+ }
23
+
24
+ this.setData({ _storeGoods: storeGoods });
25
+ },
26
+ },
27
+ invalidGoodItems: {
28
+ type: Array,
29
+ observer(invalidGoodItems) {
30
+ invalidGoodItems.forEach((goods) => {
31
+ goods.specs = goods.specInfo.map((item) => item.specValue); // 目前仅展示商品已选规格的值
32
+ });
33
+ this.setData({ _invalidGoodItems: invalidGoodItems });
34
+ },
35
+ },
36
+ thumbWidth: { type: null },
37
+ thumbHeight: { type: null },
38
+ },
39
+
40
+ data: {
41
+ shortageImg,
42
+ isShowSpecs: false,
43
+ currentGoods: {},
44
+ isShowToggle: false,
45
+ _storeGoods: [],
46
+ _invalidGoodItems: [],
47
+ },
48
+
49
+ methods: {
50
+ // 删除商品
51
+ deleteGoods(e) {
52
+ const { goods } = e.currentTarget.dataset;
53
+ this.triggerEvent('delete', { goods });
54
+ },
55
+
56
+ // 清空失效商品
57
+ clearInvalidGoods() {
58
+ this.triggerEvent('clearinvalidgoods');
59
+ },
60
+
61
+ // 选中商品
62
+ selectGoods(e) {
63
+ const { goods } = e.currentTarget.dataset;
64
+ this.triggerEvent('selectgoods', {
65
+ goods,
66
+ isSelected: !goods.isSelected,
67
+ });
68
+ },
69
+
70
+ changeQuantity(num, goods) {
71
+ this.triggerEvent('changequantity', {
72
+ goods,
73
+ quantity: num,
74
+ });
75
+ },
76
+ changeStepper(e) {
77
+ const { value } = e.detail;
78
+ const { goods } = e.currentTarget.dataset;
79
+ let num = value;
80
+ if (value > goods.stack) {
81
+ num = goods.stack;
82
+ }
83
+ this.changeQuantity(num, goods);
84
+ },
85
+
86
+ input(e) {
87
+ const { value } = e.detail;
88
+ const { goods } = e.currentTarget.dataset;
89
+ const num = value;
90
+ this.changeQuantity(num, goods);
91
+ },
92
+
93
+ overlimit(e) {
94
+ const text = e.detail.type === 'minus' ? '该商品数量不能减少了哦' : '同一商品最多购买999件';
95
+ Toast({
96
+ context: this,
97
+ selector: '#t-toast',
98
+ message: text,
99
+ });
100
+ },
101
+
102
+ // 去凑单/再逛逛
103
+ gotoBuyMore(e) {
104
+ const { promotion, storeId = '' } = e.currentTarget.dataset;
105
+ this.triggerEvent('gocollect', { promotion, storeId });
106
+ },
107
+
108
+ // 选中门店
109
+ selectStore(e) {
110
+ const { storeIndex } = e.currentTarget.dataset;
111
+ const store = this.data.storeGoods[storeIndex];
112
+ const isSelected = !store.isSelected;
113
+ if (store.storeStockShortage && isSelected) {
114
+ Toast({
115
+ context: this,
116
+ selector: '#t-toast',
117
+ message: '部分商品库存不足',
118
+ });
119
+ return;
120
+ }
121
+ this.triggerEvent('selectstore', {
122
+ store,
123
+ isSelected,
124
+ });
125
+ },
126
+
127
+ // 展开/收起切换
128
+ showToggle() {
129
+ this.setData({
130
+ isShowToggle: !this.data.isShowToggle,
131
+ });
132
+ },
133
+
134
+ // 展示规格popup
135
+ specsTap(e) {
136
+ this.isSpecsTap = true;
137
+ const { goods } = e.currentTarget.dataset;
138
+ this.setData({
139
+ isShowSpecs: true,
140
+ currentGoods: goods,
141
+ });
142
+ },
143
+
144
+ hideSpecsPopup() {
145
+ this.setData({
146
+ isShowSpecs: false,
147
+ });
148
+ },
149
+
150
+ goGoodsDetail(e) {
151
+ if (this.isSpecsTap) {
152
+ this.isSpecsTap = false;
153
+ return;
154
+ }
155
+ const { goods } = e.currentTarget.dataset;
156
+ this.triggerEvent('goodsclick', { goods });
157
+ },
158
+
159
+ gotoCoupons() {
160
+ wx.navigateTo({ url: '/pages/coupon/coupon-list/index' });
161
+ },
162
+ },
163
+ });
164
+ </script>
165
+
166
+ <template>
167
+ <wxs src="./index.wxs" module="handlePromotion" />
168
+
169
+ <wxs src="./utils.wxs" module="utils" />
170
+
171
+ <view class="cart-group [border-radius:8rpx] [&_.goods-wrap]:[margin-top:40rpx] [&_.goods-wrap]:[background-color:#fff] [&_.goods-wrap]:[border-radius:8rpx] [&_.goods-wrap]:[overflow:hidden] [&_.goods-wrap:first-of-type]:[margin-top:0] [&_.cart-store]:[height:96rpx] [&_.cart-store]:[background-color:#fff] [&_.cart-store]:[box-sizing:border-box] [&_.cart-store]:[display:flex] [&_.cart-store]:[align-items:center] [&_.cart-store]:[padding:0rpx_24rpx_0rpx_36rpx] [&_.cart-store_.cart-store__check]:[padding:28rpx_32rpx_28rpx_0rpx] [&_.cart-store__content]:[box-sizing:border-box] [&_.cart-store__content]:[flex:auto] [&_.cart-store__content]:[display:flex] [&_.cart-store__content]:[align-items:center] [&_.cart-store__content]:[justify-content:space-between] [&_.cart-store__content_.store-title]:[flex:auto] [&_.cart-store__content_.store-title]:[font-size:28rpx] [&_.cart-store__content_.store-title]:[line-height:40rpx] [&_.cart-store__content_.store-title]:[color:#333333] [&_.cart-store__content_.store-title]:[display:flex] [&_.cart-store__content_.store-title]:[align-items:center] [&_.cart-store__content_.store-title]:[font-weight:bold] [&_.cart-store__content_.store-title]:[overflow:hidden] [&_.cart-store__content_.store-title_.wr-store]:[font-size:32rpx] [&_.cart-store__content_.store-title_.store-name]:[overflow:hidden] [&_.cart-store__content_.store-title_.store-name]:[white-space:nowrap] [&_.cart-store__content_.store-title_.store-name]:[text-overflow:ellipsis] [&_.cart-store__content_.store-title_.store-name]:[margin-left:12rpx] [&_.cart-store__content_.get-coupon]:[width:112rpx] [&_.cart-store__content_.get-coupon]:[height:40rpx] [&_.cart-store__content_.get-coupon]:[border-radius:20rpx] [&_.cart-store__content_.get-coupon]:[background-color:#ffecf9] [&_.cart-store__content_.get-coupon]:[line-height:40rpx] [&_.cart-store__content_.get-coupon]:[text-align:center] [&_.cart-store__content_.get-coupon]:[font-size:26rpx] [&_.cart-store__content_.get-coupon]:[color:#fa4126] [&_.promotion-wrap]:[display:flex] [&_.promotion-wrap]:[justify-content:space-between] [&_.promotion-wrap]:[align-items:center] [&_.promotion-wrap]:[padding:0rpx_24rpx_32rpx_36rpx] [&_.promotion-wrap]:[background-color:#ffffff] [&_.promotion-wrap]:[font-size:24rpx] [&_.promotion-wrap]:[line-height:36rpx] [&_.promotion-wrap]:[color:#222427] [&_.promotion-wrap_.promotion-title]:[font-weight:bold] [&_.promotion-wrap_.promotion-title]:[flex:auto] [&_.promotion-wrap_.promotion-title]:[overflow:hidden] [&_.promotion-wrap_.promotion-title]:[margin-right:20rpx] [&_.promotion-wrap_.promotion-title]:[display:flex] [&_.promotion-wrap_.promotion-title]:[align-items:center] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[flex:none] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[font-weight:normal] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[display:inline-block] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[padding:0_8rpx] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[color:#ffffff] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[background:#fa4126] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[font-size:20rpx] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[height:32rpx] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[line-height:32rpx] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[margin-right:16rpx] [&_.promotion-wrap_.promotion-title_.promotion-icon]:[border-radius:16rpx] [&_.promotion-wrap_.promotion-title_.promotion-text]:[flex:auto] [&_.promotion-wrap_.promotion-title_.promotion-text]:[overflow:hidden] [&_.promotion-wrap_.promotion-title_.promotion-text]:[text-overflow:ellipsis] [&_.promotion-wrap_.promotion-title_.promotion-text]:[white-space:nowrap] [&_.promotion-wrap_.promotion-action]:[flex:none] [&_.promotion-wrap_.promotion-action]:[color:#333333] [&_.promotion-line-wrap]:[background-color:#fff] [&_.promotion-line-wrap]:[height:2rpx] [&_.promotion-line-wrap]:[display:flex] [&_.promotion-line-wrap]:[justify-content:flex-end] [&_.promotion-line-wrap_.promotion-line]:[width:684rpx] [&_.promotion-line-wrap_.promotion-line]:[height:2rpx] [&_.promotion-line-wrap_.promotion-line]:[background-color:#e6e6e6] [&_.goods-item-info]:[display:flex] [&_.goods-item-info]:[background-color:#fff] [&_.goods-item-info]:[align-items:flex-start] [&_.goods-item-info_.check-wrap]:[margin-top:56rpx] [&_.goods-item-info_.check-wrap]:[padding:20rpx_28rpx_20rpx_36rpx] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[box-sizing:border-box] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[width:36rpx] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[height:36rpx] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[border-radius:20rpx] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[background:#f5f5f5] [&_.goods-item-info_.check-wrap_.unCheck-icon]:[border:2rpx_solid_#bbbbbb] [&_.goods-item-info_.goods-sku-info]:[padding:0rpx_32rpx_40rpx_0] [&_.goods-item-info_.goods-sku-info]:[flex-grow:1] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[position:absolute] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[color:#fff] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[font-size:24rpx] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[bottom:0rpx] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[background-color:rgba(0,_0,_0,_0.5)] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[width:100%] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[height:40rpx] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[line-height:40rpx] [&_.goods-item-info_.goods-sku-info_.stock-mask]:[text-align:center] [&_.goods-item-info_.goods-sku-info_.goods-stepper]:[position:absolute] [&_.goods-item-info_.goods-sku-info_.goods-stepper]:[right:0] [&_.goods-item-info_.goods-sku-info_.goods-stepper]:[bottom:8rpx] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[position:absolute] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[top:-36rpx] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[right:0] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[height:28rpx] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[color:#ff2525] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[font-size:20rpx] [&_.goods-item-info_.goods-sku-info_.goods-stepper_.stepper-tip]:[line-height:28rpx] [&_.shortage-line]:[width:662rpx] [&_.shortage-line]:[height:2rpx] [&_.shortage-line]:[background-color:#e6e6e6] [&_.shortage-line]:[margin:0_auto] [&_.shortage-goods-wrap]:[background-color:#fff] [&_.shortage-goods-wrap_.shortage-tip-title]:[height:72rpx] [&_.shortage-goods-wrap_.shortage-tip-title]:[line-height:72rpx] [&_.shortage-goods-wrap_.shortage-tip-title]:[padding-left:28rpx] [&_.shortage-goods-wrap_.shortage-tip-title]:[font-size:24rpx] [&_.shortage-goods-wrap_.shortage-tip-title]:[color:#999]">
172
+ <view class="goods-wrap" wx:for="{{_storeGoods}}" wx:for-item="store" wx:for-index="si" wx:key="storeId">
173
+ <view class="cart-store">
174
+ <t-icon
175
+ size="40rpx"
176
+ color="{{store.isSelected ? '#FA4126' : '#BBBBBB'}}"
177
+ name="{{store.isSelected ? 'check-circle-filled' : 'circle'}}"
178
+ class="cart-store__check"
179
+ bindtap="selectStore"
180
+ data-store-index="{{si}}"
181
+ />
182
+ <view class="cart-store__content">
183
+ <view class="store-title">
184
+ <t-icon prefix="wr" size="40rpx" color="#333333" name="store" />
185
+ <view class="store-name">{{store.storeName}}</view>
186
+ </view>
187
+ <view class="get-coupon" catch:tap="gotoCoupons">优惠券</view>
188
+ </view>
189
+ </view>
190
+ <block wx:for="{{store.promotionGoodsList}}" wx:for-item="promotion" wx:for-index="promoindex" wx:key="promoindex">
191
+ <view
192
+ class="promotion-wrap"
193
+ wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode)}}"
194
+ bindtap="gotoBuyMore"
195
+ data-promotion="{{promotion}}"
196
+ data-store-id="{{store.storeId}}"
197
+ >
198
+ <view class="promotion-title">
199
+ <view class="promotion-icon">{{promotion.tag}}</view>
200
+ <view class="promotion-text">{{promotion.description}}</view>
201
+ </view>
202
+ <view class="promotion-action action-btn [display:flex] [align-items:center] [&_.action-btn-arrow]:[font-size:20rpx] [&_.action-btn-arrow]:[margin-left:8rpx]" hover-class="action-btn--active [opacity:0.5]">
203
+ <view class="promotion-action-label"> {{promotion.isNeedAddOnShop == 1 ? '去凑单' : '再逛逛'}} </view>
204
+ <t-icon name="chevron-right" size="32rpx" color="#BBBBBB" />
205
+ </view>
206
+ </view>
207
+ <view
208
+ class="goods-item"
209
+ wx:for="{{promotion.goodsPromotionList}}"
210
+ wx:for-item="goods"
211
+ wx:for-index="gi"
212
+ wx:key="extKey"
213
+ >
214
+ <swipeout right-width="{{ 72 }}">
215
+ <view class="goods-item-info">
216
+ <view class="check-wrap" catchtap="selectGoods" data-goods="{{goods}}">
217
+ <t-icon
218
+ size="40rpx"
219
+ color="{{goods.isSelected ? '#FA4126' : '#BBBBBB'}}"
220
+ name="{{goods.isSelected ? 'check-circle-filled' : 'circle'}}"
221
+ class="check"
222
+ />
223
+ </view>
224
+ <view class="goods-sku-info [&_.no-storage-mask]:[position:absolute] [&_.no-storage-mask]:[color:#fff] [&_.no-storage-mask]:[bottom:0rpx] [&_.no-storage-mask]:[left:0rpx] [&_.no-storage-mask]:[background-color:rgba(0,_0,_0,_0.1)] [&_.no-storage-mask]:[height:192rpx] [&_.no-storage-mask]:[width:192rpx] [&_.no-storage-mask]:[border-radius:8rpx] [&_.no-storage-mask]:[display:flex] [&_.no-storage-mask]:[justify-content:center] [&_.no-storage-mask]:[align-items:center]">
225
+ <goods-card
226
+ layout="horizontal-wrap"
227
+ thumb-width="{{thumbWidth}}"
228
+ thumb-height="{{thumbHeight}}"
229
+ centered="{{true}}"
230
+ data="{{goods}}"
231
+ data-goods="{{goods}}"
232
+ catchspecs="specsTap"
233
+ catchclick="goGoodsDetail"
234
+ >
235
+ <view slot="thumb-cover" class="stock-mask" wx:if="{{goods.shortageStock || goods.stockQuantity <= 3}}">
236
+ 仅剩{{goods.stockQuantity}}件
237
+ </view>
238
+ <view slot="append-body" class="goods-stepper [&_.stepper]:[border:none] [&_.stepper]:[border-radius:0] [&_.stepper]:[height:auto] [&_.stepper]:[width:168rpx] [&_.stepper]:[overflow:visible] [&_.stepper_.stepper__minus]:[width:44rpx] [&_.stepper_.stepper__minus]:[height:44rpx] [&_.stepper_.stepper__minus]:[background-color:#f5f5f5] [&_.stepper_.stepper__plus]:[width:44rpx] [&_.stepper_.stepper__plus]:[height:44rpx] [&_.stepper_.stepper__plus]:[background-color:#f5f5f5] [&_.stepper_.stepper__minus--hover]:[background-color:#f5f5f5] [&_.stepper_.stepper__plus--hover]:[background-color:#f5f5f5] [&_.stepper_.stepper__minus_.wr-icon]:[font-size:24rpx] [&_.stepper_.stepper__plus_.wr-icon]:[font-size:24rpx] [&_.stepper_.stepper__minus]:[position:relative] [&_.stepper_.stepper__plus]:[position:relative] [&_.stepper_.stepper__input]:[width:72rpx] [&_.stepper_.stepper__input]:[height:44rpx] [&_.stepper_.stepper__input]:[background-color:#f5f5f5] [&_.stepper_.stepper__input]:[font-size:24rpx] [&_.stepper_.stepper__input]:[color:#222427] [&_.stepper_.stepper__input]:[font-weight:600] [&_.stepper_.stepper__input]:[border-left:none] [&_.stepper_.stepper__input]:[border-right:none] [&_.stepper_.stepper__input]:[min-height:40rpx] [&_.stepper_.stepper__input]:[margin:0_4rpx] [&_.stepper_.stepper__input]:[display:flex] [&_.stepper_.stepper__input]:[align-items:center]">
239
+ <view class="stepper-tip" wx:if="{{goods.shortageStock}}">库存不足</view>
240
+ <t-stepper
241
+ classname="stepper-info"
242
+ value="{{goods.quantity}}"
243
+ min="{{1}}"
244
+ max="{{999}}"
245
+ data-goods="{{goods}}"
246
+ data-gi="{{gi}}"
247
+ data-si="{{si}}"
248
+ catchchange="changeStepper"
249
+ catchblur="input"
250
+ catchoverlimit="overlimit"
251
+ theme="filled"
252
+ />
253
+ </view>
254
+ </goods-card>
255
+ </view>
256
+ </view>
257
+ <view slot="right" class="swiper-right-del [height:calc(100%_-_40rpx)] [width:144rpx] [background-color:#fa4126] [font-size:28rpx] [color:white] [display:flex] [justify-content:center] [align-items:center]" bindtap="deleteGoods" data-goods="{{goods}}"> 删除 </view>
258
+ </swipeout>
259
+ </view>
260
+ <view
261
+ class="promotion-line-wrap"
262
+ wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode) && promoindex != (store.promotionGoodsList.length - 2)}}"
263
+ >
264
+ <view class="promotion-line" />
265
+ </view>
266
+ </block>
267
+ <block wx:if="{{store.shortageGoodsList.length>0}}">
268
+ <view
269
+ class="goods-item"
270
+ wx:for="{{store.shortageGoodsList}}"
271
+ wx:for-item="goods"
272
+ wx:for-index="gi"
273
+ wx:key="extKey"
274
+ >
275
+ <swipeout right-width="{{ 72 }}">
276
+ <view class="goods-item-info">
277
+ <view class="check-wrap">
278
+ <view class="unCheck-icon" />
279
+ </view>
280
+ <view class="goods-sku-info [&_.no-storage-mask]:[position:absolute] [&_.no-storage-mask]:[color:#fff] [&_.no-storage-mask]:[bottom:0rpx] [&_.no-storage-mask]:[left:0rpx] [&_.no-storage-mask]:[background-color:rgba(0,_0,_0,_0.1)] [&_.no-storage-mask]:[height:192rpx] [&_.no-storage-mask]:[width:192rpx] [&_.no-storage-mask]:[border-radius:8rpx] [&_.no-storage-mask]:[display:flex] [&_.no-storage-mask]:[justify-content:center] [&_.no-storage-mask]:[align-items:center]">
281
+ <goods-card
282
+ layout="horizontal-wrap"
283
+ thumb-width="{{thumbWidth}}"
284
+ thumb-height="{{thumbHeight}}"
285
+ centered="{{true}}"
286
+ data="{{goods}}"
287
+ data-goods="{{goods}}"
288
+ catchspecs="specsTap"
289
+ catchclick="goGoodsDetail"
290
+ >
291
+ <view slot="thumb-cover" class="no-storage-mask [&_.no-storage-content]:[width:128rpx] [&_.no-storage-content]:[height:128rpx] [&_.no-storage-content]:[border-radius:64rpx] [&_.no-storage-content]:[background-color:rgba(0,_0,_0,_0.4)] [&_.no-storage-content]:[text-align:center] [&_.no-storage-content]:[line-height:128rpx] [&_.no-storage-content]:[font-size:28rpx]" wx:if="{{goods.stockQuantity <=0}}">
292
+ <view class="no-storage-content">无货</view>
293
+ </view>
294
+ </goods-card>
295
+ </view>
296
+ </view>
297
+ <view slot="right" class="swiper-right-del [height:calc(100%_-_40rpx)] [width:144rpx] [background-color:#fa4126] [font-size:28rpx] [color:white] [display:flex] [justify-content:center] [align-items:center]" bindtap="deleteGoods" data-goods="{{goods}}"> 删除 </view>
298
+ </swipeout>
299
+ </view>
300
+ <view
301
+ class="promotion-line-wrap"
302
+ wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode) && promoindex != (store.promotionGoodsList.length - 2)}}"
303
+ >
304
+ <view class="promotion-line" />
305
+ </view>
306
+ </block>
307
+ </view>
308
+ </view>
309
+ <specs-popup
310
+ show="{{isShowSpecs}}"
311
+ title="{{currentGoods.title || ''}}"
312
+ price="{{currentGoods.price || ''}}"
313
+ thumb="{{utils.imgCut(currentGoods.thumb, 180, 180)}}"
314
+ specs="{{currentGoods.specs || []}}"
315
+ zIndex="{{11001}}"
316
+ bindclose="hideSpecsPopup"
317
+ />
318
+
319
+ <t-toast id="t-toast" />
320
+ </template>
321
+
322
+ <json>
323
+ {
324
+ "component": true,
325
+ "usingComponents": {
326
+ "t-toast": "tdesign-miniprogram/toast/toast",
327
+ "t-icon": "tdesign-miniprogram/icon/icon",
328
+ "t-stepper": "tdesign-miniprogram/stepper/stepper",
329
+ "swipeout": "/components/swipeout/index",
330
+ "goods-card": "../../components/goods-card/index",
331
+ "specs-popup": "../../components/specs-popup/index"
332
+ }
333
+ }</json>
@@ -0,0 +1,5 @@
1
+ var hasPromotion = function (code) {
2
+ return code && code !== 'EMPTY_PROMOTION';
3
+ };
4
+
5
+ module.exports.hasPromotion = hasPromotion;
@@ -0,0 +1,20 @@
1
+ module.exports.slice = function(arr) {
2
+ return arr.slice(0, 2);
3
+ };
4
+ module.exports.imgCut = function(url, width, height) {
5
+ if (url && (url.slice(0, 5) === 'http:' || url.slice(0, 6) === 'https:' || url.slice(0, 2) === '//')) {
6
+ var argsStr = 'imageMogr2/thumbnail/!' + width + 'x' + height + 'r';
7
+ if (url.indexOf('?') > -1) {
8
+ url = url + '&' + argsStr;
9
+ } else {
10
+ url = url + '?' + argsStr;
11
+ }
12
+ if (url.slice(0, 5) === 'http:') {
13
+ url = 'https://' + url.slice(5)
14
+ }
15
+ if (url.slice(0, 2) === '//') {
16
+ url = 'https:' + url
17
+ }
18
+ }
19
+ return url;
20
+ };