@alu008/test_yuanqikaixiang 1.0.0

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 (110) hide show
  1. package/App.vue +294 -0
  2. package/Local/en.json +3 -0
  3. package/Local/indian.json +3 -0
  4. package/Local/zh-Hans.json +3 -0
  5. package/Local/zh-Hant.json +3 -0
  6. package/README.md +1 -0
  7. package/androidPrivacy.json +28 -0
  8. package/components/ball/ball.vue +230 -0
  9. package/components/cardDetails/cardDetails.vue +273 -0
  10. package/components/confirmModal/confirmModal.vue +125 -0
  11. package/components/fillInfo/fillInfo.vue +255 -0
  12. package/components/header/header.vue +92 -0
  13. package/components/selectAddress/selectAddress.vue +156 -0
  14. package/components/signDetail/signDetail.vue +33 -0
  15. package/components/skeleton/skeleton.vue +62 -0
  16. package/index.html +20 -0
  17. package/index.template.html +35 -0
  18. package/jsconfig.json +9 -0
  19. package/main.js +48 -0
  20. package/manifest.json +159 -0
  21. package/package.json +14 -0
  22. package/pages/index/index.vue +5421 -0
  23. package/pages.json +173 -0
  24. package/project.config.json +25 -0
  25. package/project.private.config.json +14 -0
  26. package/static/fonts/Alibaba-PuHuiTi-Bold.ttf +0 -0
  27. package/static/fonts/Alibaba-PuHuiTi-Medium.ttf +0 -0
  28. package/static/fonts/Alibaba-PuHuiTi-Regular.ttf +0 -0
  29. package/static/fonts/fxlh.ttf +0 -0
  30. package/static/img/R.png +0 -0
  31. package/static/img/SR.png +0 -0
  32. package/static/img/SSR.png +0 -0
  33. package/static/img/bottomBgc1.png +0 -0
  34. package/static/img/centerBgc.png +0 -0
  35. package/static/img/goldBgc.png +0 -0
  36. package/static/img/goldText.png +0 -0
  37. package/static/img/home/calendar/bgc0.png +0 -0
  38. package/static/img/home/calendar/bgc1.png +0 -0
  39. package/static/img/home/calendar/bgc2.png +0 -0
  40. package/static/img/home/calendar/bgc3.png +0 -0
  41. package/static/img/home/calendar/progress0.png +0 -0
  42. package/static/img/home/calendar/progress1.png +0 -0
  43. package/static/img/home/calendar/progress2.png +0 -0
  44. package/static/img/home/calendar/progress3.png +0 -0
  45. package/static/img/kuang.gif +0 -0
  46. package/static/img/luckyBgc.png +0 -0
  47. package/static/img/lucyText.png +0 -0
  48. package/static/img/top_Bgc.png +0 -0
  49. package/subpackages/article/article.vue +64 -0
  50. package/subpackages/confirmSendLogistics/confirmSendLogistics.vue +1035 -0
  51. package/subpackages/coupon/coupon.vue +276 -0
  52. package/subpackages/fragment/fragment.vue +1592 -0
  53. package/subpackages/myAddress/myAddress.vue +656 -0
  54. package/subpackages/myCards/myCards.vue +1250 -0
  55. package/subpackages/myOrder/myOrder.vue +779 -0
  56. package/subpackages/myOrderDetail/myOrderDetail.vue +659 -0
  57. package/subpackages/poster/poster.vue +130 -0
  58. package/subpackages/selectCoupon/selectCoupon.vue +251 -0
  59. package/subpackages/sendLogistics/sendLogistics.vue +1097 -0
  60. package/subpackages/vote/vote.vue +877 -0
  61. package/uni.promisify.adaptor.js +10 -0
  62. package/uni.scss +114 -0
  63. package/uni_modules/qf-image-cropper/changelog.md +72 -0
  64. package/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.render.js +855 -0
  65. package/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue +749 -0
  66. package/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxs +727 -0
  67. package/uni_modules/qf-image-cropper/package.json +81 -0
  68. package/uni_modules/qf-image-cropper/readme.md +97 -0
  69. package/uni_modules/uni-data-select/changelog.md +51 -0
  70. package/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue +837 -0
  71. package/uni_modules/uni-data-select/package.json +106 -0
  72. package/uni_modules/uni-data-select/readme.md +8 -0
  73. package/uni_modules/uni-icons/changelog.md +44 -0
  74. package/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue +91 -0
  75. package/uni_modules/uni-icons/components/uni-icons/uni-icons.vue +110 -0
  76. package/uni_modules/uni-icons/components/uni-icons/uniicons.css +664 -0
  77. package/uni_modules/uni-icons/components/uni-icons/uniicons.ttf +0 -0
  78. package/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts +664 -0
  79. package/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js +649 -0
  80. package/uni_modules/uni-icons/package.json +111 -0
  81. package/uni_modules/uni-icons/readme.md +8 -0
  82. package/uni_modules/uni-load-more/changelog.md +23 -0
  83. package/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json +5 -0
  84. package/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js +8 -0
  85. package/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json +5 -0
  86. package/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json +5 -0
  87. package/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue +404 -0
  88. package/uni_modules/uni-load-more/package.json +105 -0
  89. package/uni_modules/uni-load-more/readme.md +14 -0
  90. package/uni_modules/uni-scss/changelog.md +8 -0
  91. package/uni_modules/uni-scss/index.scss +1 -0
  92. package/uni_modules/uni-scss/package.json +82 -0
  93. package/uni_modules/uni-scss/readme.md +4 -0
  94. package/uni_modules/uni-scss/styles/index.scss +7 -0
  95. package/uni_modules/uni-scss/styles/setting/_border.scss +3 -0
  96. package/uni_modules/uni-scss/styles/setting/_color.scss +66 -0
  97. package/uni_modules/uni-scss/styles/setting/_radius.scss +55 -0
  98. package/uni_modules/uni-scss/styles/setting/_space.scss +56 -0
  99. package/uni_modules/uni-scss/styles/setting/_styles.scss +167 -0
  100. package/uni_modules/uni-scss/styles/setting/_text.scss +24 -0
  101. package/uni_modules/uni-scss/styles/setting/_variables.scss +146 -0
  102. package/uni_modules/uni-scss/styles/tools/functions.scss +19 -0
  103. package/uni_modules/uni-scss/theme.scss +31 -0
  104. package/uni_modules/uni-scss/variables.scss +62 -0
  105. package/utils/addressData.js +6042 -0
  106. package/utils/api.js +160 -0
  107. package/utils/fetch.js +548 -0
  108. package/utils/index.js +994 -0
  109. package/utils/navigator.js +17 -0
  110. package/utils/request.js +162 -0
@@ -0,0 +1,1097 @@
1
+ <template>
2
+ <view class="sendLogisticsContent">
3
+ <view class="topBgc"></view>
4
+
5
+ <u-sticky bgColor="#fff">
6
+ <Header title="邮寄"></Header>
7
+ <view style="padding: 6px; display: flex; align-items: center">
8
+ <u-tabs
9
+ :list="tabsList"
10
+ :activeStyle="{
11
+ color: '#000000',
12
+ fontWeight: 'bold',
13
+ fontSize: '32rpx',
14
+ }"
15
+ :inactiveStyle="{
16
+ color: 'rgba(0, 0, 0, 0.5)',
17
+ fontWeight: 'bold',
18
+ fontSize: '28rpx',
19
+ }"
20
+ @change="changeStatus"
21
+ lineColor="linear-gradient( 90deg, #0BD690 0%, #00B0E0 100%);"
22
+ :current="current"
23
+ ></u-tabs>
24
+
25
+ <view @click="toMyAddress" class="addressManager">
26
+ <image
27
+ src="https://img.shinemang.com/static/img/addressIcon.png"
28
+ mode="scaleToFill"
29
+ />
30
+ <text>地址管理</text>
31
+ </view>
32
+ </view>
33
+ </u-sticky>
34
+
35
+ <!-- <scroll-view
36
+ style="height: calc(100vh - 68px);"
37
+ scroll-y="true"
38
+ :scroll-top="scrollTop"
39
+ refresher-enabled="true"
40
+ :refresher-triggered="triggered"
41
+ @scrolltolower="scrollToLower"
42
+ @refresherrefresh="refresherrefresh"
43
+ > -->
44
+ <view class="cardsList">
45
+ <view
46
+ @click="check(value, !value.isChecked)"
47
+ v-for="value in list"
48
+ :key="value.id"
49
+ class="item"
50
+ >
51
+ <view class="cardBg">
52
+ <view
53
+ :style="{
54
+ backgroundImage:
55
+ 'url(' + formateUrl(value.item.itemCoverThumb) + ')',
56
+ }"
57
+ class="boxImg bgcCenter"
58
+ >
59
+ <view class="count">x{{ value.num }}</view>
60
+ </view>
61
+
62
+ <image
63
+ v-if="value.isChecked"
64
+ class="check"
65
+ src="https://img.shinemang.com/static/rednote/check.png"
66
+ mode="scaleToFill"
67
+ />
68
+ <image
69
+ v-else
70
+ class="check"
71
+ src="https://img.shinemang.com/static/rednote/notCheck.png"
72
+ mode="scaleToFill"
73
+ />
74
+
75
+ <view v-if="value.isChecked" class="chooseCount">
76
+ <view @click.stop class="actions">
77
+ <view @click="reduce(value)" class="reduce">
78
+ <image
79
+ v-if="value.selectCount == 1"
80
+ style="width: 40rpx; height: 40rpx"
81
+ src="https://img.shinemang.com/static/img/reduce.png"
82
+ mode="scaleToFill"
83
+ />
84
+ <image
85
+ v-else
86
+ style="width: 40rpx; height: 40rpx"
87
+ src="https://img.shinemang.com/static/img/reduce1.png"
88
+ mode="scaleToFill"
89
+ />
90
+ </view>
91
+ <!-- disabled -->
92
+ <!-- @input="1" -->
93
+ <!-- @blur="countChangeBlur(value, $event.detail.value)" -->
94
+ <view class="amount"
95
+ ><input
96
+ type="number"
97
+ :disabled="value.item.option.length > 0"
98
+ style="text-align: center; color: #fff; font-size: 32rpx"
99
+ v-model="value.selectCount"
100
+ @input="countChange(value, $event.detail.value, 'input')"
101
+ @blur="countChange(value, $event.detail.value)"
102
+ /></view>
103
+ <view @click="add(value)" class="add">
104
+ <image
105
+ v-if="value.selectCount < value.num"
106
+ style="width: 40rpx; height: 40rpx"
107
+ src="https://img.shinemang.com/static/img/add1.png"
108
+ mode="scaleToFill"
109
+ />
110
+ <image
111
+ v-else
112
+ style="width: 40rpx; height: 40rpx"
113
+ src="https://img.shinemang.com/static/img/add.png"
114
+ mode="scaleToFill"
115
+ />
116
+ </view>
117
+ </view>
118
+ </view>
119
+ </view>
120
+ <view class="title over"> {{ value.item.itemName }} </view>
121
+ </view>
122
+
123
+ <view v-if="!isFirstLoading && list.length == 0" class="noData">
124
+ <image
125
+ src="https://img.shinemang.com/static/noData.png"
126
+ mode="scaleToFill"
127
+ />
128
+ <view>暂无可发货物品</view>
129
+ </view>
130
+ </view>
131
+
132
+ <view class="confirmBtn">
133
+ <view>
134
+ <view
135
+ >已选 <text style="color: #e73e3d">{{ chooseCount }}</text
136
+ >张</view
137
+ >
138
+ <view
139
+ @click="confirm"
140
+ :class="['btn', chooseCount > 0 ? 'active' : '']"
141
+ hover-class="hoverActive"
142
+ >邮寄</view
143
+ >
144
+ </view>
145
+ </view>
146
+
147
+ <u-popup
148
+ @close="showSelectTypesPoupon = false"
149
+ :show="showSelectTypesPoupon"
150
+ mode="bottom"
151
+ :round="32"
152
+ :safeAreaInsetBottom="false"
153
+ >
154
+ <view
155
+ v-if="showSelectTypesPoupon && selectTypeValue"
156
+ @touchmove.stop.prevent
157
+ class="records"
158
+ >
159
+ <view class="title">
160
+ <view>选择类型</view>
161
+ <image
162
+ @click="showSelectTypesPoupon = false"
163
+ src="https://img.shinemang.com/static/img/closeIcon.png"
164
+ mode="scaleToFill"
165
+ />
166
+ </view>
167
+
168
+ <scroll-view class="details" scroll-y>
169
+ <view v-if="selectTypeList.length > 0" class="list">
170
+ <view v-for="value in selectTypeList" :key="value.id" class="item">
171
+ <!-- <view class="image">
172
+ <image :src="formateUrl(value.thumb)" mode="scaleToFill" />
173
+ </view> -->
174
+ <view class="content">
175
+ <view class="title over">{{ value.name }}</view>
176
+ <!-- <view class="msg over"
177
+ >兑换需要:
178
+ <text style="color: #EB6E2A">{{ value.point }} </text>好运值</view
179
+ > -->
180
+ <view class="amount"
181
+ >库存:{{ value.stock == -1 ? "不限" : value.stock }}</view
182
+ >
183
+ </view>
184
+
185
+ <view class="rightContent">
186
+ <view class="editCount">
187
+ <view @click="exchangeReduce(value)" class="reduce">
188
+ <image
189
+ v-if="value.selectCount == 0 || value.stock == 0"
190
+ src="https://img.shinemang.com/static/img/exchangeReduce.png"
191
+ mode="scaleToFill"
192
+ style="width: 48rpx; height: 48rpx"
193
+ />
194
+ <image
195
+ v-else
196
+ src="https://img.shinemang.com/static/img/exchangeReduce1.png"
197
+ mode="scaleToFill"
198
+ style="width: 48rpx; height: 48rpx"
199
+ />
200
+ </view>
201
+ <view
202
+ ><input
203
+ @input="
204
+ exchangeCountChange(value, $event.detail.value, 'input')
205
+ "
206
+ @blur="exchangeCountChange(value, $event.detail.value)"
207
+ type="number"
208
+ v-model="value.selectCount"
209
+ /></view>
210
+
211
+ <view @click="exchangeAdd(value)" class="add">
212
+ <image
213
+ v-if="
214
+ (value.stock != -1 &&
215
+ value.selectCount < value.stock) ||
216
+ value.selectCount < selectTypeValue.stockId.length
217
+ "
218
+ src="https://img.shinemang.com/static/img/exchangeAdd1.png"
219
+ mode="scaleToFill"
220
+ style="width: 48rpx; height: 48rpx"
221
+ />
222
+ <image
223
+ v-else
224
+ src="https://img.shinemang.com/static/img/exchangeAdd.png"
225
+ mode="scaleToFill"
226
+ style="width: 48rpx; height: 48rpx"
227
+ />
228
+ </view>
229
+ </view>
230
+ </view>
231
+ </view>
232
+ </view>
233
+ </scroll-view>
234
+
235
+ <view class="confirmBtn">
236
+ <view @click="confirmSelectTypes">确定</view>
237
+ </view>
238
+ </view>
239
+ </u-popup>
240
+ </view>
241
+ </template>
242
+ <script>
243
+ import { fetchMyCardsList, fetchMyBackPack } from "@/utils/fetch";
244
+ import {
245
+ formateServerUrl,
246
+ isPositiveInteger,
247
+ navigateTo,
248
+ reportMessage,
249
+ subBigNumer,
250
+ } from "@/utils";
251
+ import Header from "@/components/header/header.vue";
252
+ export default {
253
+ data() {
254
+ return {
255
+ tabsList: [
256
+ {
257
+ name: "付邮申领",
258
+ status: "carriage_start",
259
+ },
260
+ {
261
+ name: "官方免邮",
262
+ status: "",
263
+ },
264
+ ],
265
+ scrollTop: 0,
266
+ triggered: false,
267
+ show: false,
268
+ cardDetail: null,
269
+ cardItem: "",
270
+ pageSize: -1,
271
+ pageNo: 1,
272
+ hasMore: false,
273
+ isFirstLoading: true,
274
+ list: [],
275
+ current: 0,
276
+ is_free_shipping: false, //true
277
+ showSelectTypesPoupon: false,
278
+ selectTypeList: [],
279
+ selectTypeValue: null,
280
+ };
281
+ },
282
+ components: { Header },
283
+ onLoad(option) {
284
+ if(option.current){
285
+ this.current = option.current
286
+ }
287
+ },
288
+
289
+ computed: {
290
+ chooseCount() {
291
+ const data = this.list.filter((item) => item.isChecked);
292
+ return data.reduce(
293
+ (total, item) =>
294
+ Number(total) +
295
+ (isPositiveInteger(item.selectCount) ? Number(item.selectCount) : 0),
296
+ 0,
297
+ );
298
+ },
299
+ },
300
+ methods: {
301
+ exchangeCountChange(value, count, type) {
302
+ const index = this.selectTypeList.findIndex(
303
+ (item) => item.id === value.id,
304
+ );
305
+ let totalSelect = this.selectTypeList.reduce(
306
+ (total, item) =>
307
+ Number(total) +
308
+ (isPositiveInteger(item.selectCount) ? Number(item.selectCount) : 0),
309
+ 0,
310
+ );
311
+
312
+ let otherSelect = this.selectTypeList.reduce(
313
+ (total, item) =>
314
+ Number(total) +
315
+ (item.id !== value.id && isPositiveInteger(item.selectCount)
316
+ ? Number(item.selectCount)
317
+ : 0),
318
+ 0,
319
+ );
320
+ if (type) {
321
+ if (value.stock == 0) {
322
+ this.$nextTick(() => {
323
+ this.selectTypeList[index].selectCount = 0;
324
+ });
325
+ return;
326
+ }
327
+ if (!count || !isPositiveInteger(count)) {
328
+ } else {
329
+ if(value.stock == -1){
330
+ if (totalSelect > this.selectTypeValue.num) {
331
+ this.$nextTick(() => {
332
+ this.selectTypeList[index].selectCount = Number(
333
+ subBigNumer(
334
+ this.selectTypeValue.num,
335
+ otherSelect,
336
+ ).toFixed(),
337
+ );
338
+ });
339
+ }
340
+ }else{
341
+ if (totalSelect > this.selectTypeValue.num) {
342
+ if (
343
+ Number(subBigNumer(this.selectTypeValue.num, otherSelect).toFixed()) >value.stock
344
+ ) {
345
+ this.$nextTick(() => {
346
+ this.selectTypeList[index].selectCount = Number(value.stock);
347
+ });
348
+ } else {
349
+ this.$nextTick(() => {
350
+ this.selectTypeList[index].selectCount = Number(
351
+ subBigNumer(
352
+ this.selectTypeValue.num,
353
+ otherSelect,
354
+ ).toFixed(),
355
+ );
356
+ });
357
+ }
358
+ }
359
+ }
360
+ }
361
+ return;
362
+ }
363
+ if (!count || !isPositiveInteger(count)) {
364
+ this.$nextTick(() => {
365
+ this.selectTypeList[index].selectCount = 0;
366
+ });
367
+ } else {
368
+
369
+ if(Number(count) < 0){
370
+ this.$nextTick(() => {
371
+ this.selectTypeList[index].selectCount = 0;
372
+ });
373
+ }else{
374
+ if(value.stock == -1){
375
+ if (totalSelect > this.selectTypeValue.num) {
376
+ this.$nextTick(() => {
377
+ this.selectTypeList[index].selectCount = Number(
378
+ subBigNumer(this.selectTypeValue.num, otherSelect).toFixed(),
379
+ );
380
+ });
381
+ } else {
382
+ this.$nextTick(() => {
383
+ this.selectTypeList[index].selectCount = Number(count);
384
+ });
385
+ }
386
+ }else{
387
+ if (totalSelect > this.selectTypeValue.num) {
388
+ if(Number(subBigNumer(this.selectTypeValue.num, otherSelect).toFixed()) >value.stock){
389
+ this.$nextTick(() => {
390
+ this.selectTypeList[index].selectCount = Number(value.stock);
391
+ });
392
+ }else{
393
+ this.$nextTick(() => {
394
+ this.selectTypeList[index].selectCount = Number(
395
+ subBigNumer(this.selectTypeValue.num, otherSelect).toFixed(),
396
+ );
397
+ });
398
+ }
399
+
400
+ }else{
401
+ this.$nextTick(() => {
402
+ this.selectTypeList[index].selectCount = Number(count);
403
+ });
404
+ }
405
+ }
406
+ }
407
+
408
+ }
409
+ },
410
+ //点击选中的确认
411
+ confirmSelectTypes() {
412
+ this.selectTypeValue.item.option = this.selectTypeList;
413
+ const index = this.list.findIndex(
414
+ (item) => item.item.itemId === this.selectTypeValue.item.itemId,
415
+ );
416
+
417
+
418
+ const totalSelect = this.selectTypeList.reduce(
419
+ (total, item) =>
420
+ Number(total) +
421
+ (isPositiveInteger(item.selectCount) ? Number(item.selectCount) : 0),
422
+ 0,
423
+ );
424
+ if (totalSelect > 0) {
425
+ this.list[index].isChecked = true;
426
+ this.list[index].selectCount = totalSelect;
427
+ this.list[index].item.option = this.selectTypeList;
428
+ }
429
+
430
+ this.showSelectTypesPoupon = false;
431
+ },
432
+ // 点击加
433
+ exchangeAdd(value) {
434
+ const index = this.selectTypeList.findIndex(
435
+ (item) => item.id === value.id,
436
+ );
437
+ const totalSelect = this.selectTypeList.reduce(
438
+ (total, item) =>
439
+ Number(total) +
440
+ (isPositiveInteger(item.selectCount) ? Number(item.selectCount) : 0),
441
+ 0,
442
+ );
443
+
444
+ if (totalSelect < Number(this.selectTypeValue.num)) {
445
+ if (
446
+ value.stock == -1 ||
447
+ (value.stock != -1 && value.selectCount < value.stock)
448
+ ) {
449
+ this.selectTypeList[index].selectCount++;
450
+ }
451
+ }
452
+ },
453
+ // 点击减
454
+ exchangeReduce(value) {
455
+ const index = this.selectTypeList.findIndex(
456
+ (item) => item.id === value.id,
457
+ );
458
+ if (this.selectTypeList[index].selectCount > 0) {
459
+ this.selectTypeList[index].selectCount--;
460
+ }
461
+ },
462
+ toMyAddress() {
463
+ reportMessage("集好运-邮寄界面-地址管理");
464
+ navigateTo("/subpackages/myAddress/myAddress");
465
+ },
466
+ changeStatus(e) {
467
+ this.current = e.index;
468
+ this.is_free_shipping = !Boolean(e.index);
469
+ this.getCardsList();
470
+ },
471
+ confirm() {
472
+ reportMessage("集好运-邮寄界面-确认邮寄");
473
+ if (this.chooseCount == 0) return;
474
+ const data = this.list.filter((item) => item.isChecked);
475
+ uni.setStorageSync("confirmSendLogistics", data);
476
+ // ${this.current}
477
+
478
+ this.list.forEach(
479
+ (item) => ((item.isChecked = false), (item.selectCount = 1)),
480
+ );
481
+ uni.navigateTo({
482
+ url: `/subpackages/confirmSendLogistics/confirmSendLogistics?current=${this.current == 0 ? 1 : 0}`,
483
+ });
484
+ },
485
+
486
+ // countChangeBlur(){
487
+ // },
488
+ countChange(value, count, type) {
489
+ const index = this.list.findIndex(
490
+ (item) => item.item.itemId === value.item.itemId,
491
+ );
492
+ if (type) {
493
+ if (!count || !isPositiveInteger(count)) {
494
+ } else {
495
+ if (Number(count) > Number(value.num)) {
496
+ this.$nextTick(() => {
497
+ this.list[index].selectCount = Number(value.num);
498
+ });
499
+ }
500
+ }
501
+
502
+ return;
503
+ }
504
+ if (!count || !isPositiveInteger(count)) {
505
+ this.$nextTick(() => {
506
+ this.list[index].selectCount = 1;
507
+ });
508
+ } else {
509
+ if (Number(count) > Number(value.num)) {
510
+ this.$nextTick(() => {
511
+ this.list[index].selectCount = Number(value.num);
512
+ });
513
+ } else if (Number(count) < 1) {
514
+ this.$nextTick(() => {
515
+ this.list[index].selectCount = 1;
516
+ });
517
+ } else {
518
+ this.$nextTick(() => {
519
+ this.list[index].selectCount = Number(count);
520
+ });
521
+ }
522
+ }
523
+ },
524
+ check(value, isChecked) {
525
+ if (isChecked && value.item.option.length > 0) {
526
+ let data = JSON.parse(JSON.stringify(value.item.option));
527
+
528
+ data.forEach((item) => {
529
+ item.selectCount =item.selectCount?item.selectCount: 0;
530
+ });
531
+ this.selectTypeValue = value;
532
+ this.selectTypeList = data;
533
+
534
+ this.showSelectTypesPoupon = true;
535
+ return;
536
+ }
537
+ const index = this.list.findIndex(
538
+ (item) => item.item.itemId === value.item.itemId,
539
+ );
540
+
541
+ this.list[index].isChecked = isChecked;
542
+ },
543
+ add(value) {
544
+ if(value.item.option.length > 0){
545
+ let data = JSON.parse(JSON.stringify(value.item.option));
546
+ data.forEach((item) => {
547
+ item.selectCount =item.selectCount?item.selectCount: 0;
548
+ });
549
+ this.selectTypeValue = value;
550
+ this.selectTypeList = data;
551
+ this.showSelectTypesPoupon = true;
552
+ return
553
+ }
554
+ const index = this.list.findIndex(
555
+ (item) => item.item.itemId === value.item.itemId,
556
+ );
557
+
558
+ if (this.list[index].selectCount < Number(this.list[index].num)) {
559
+ this.list[index].selectCount++;
560
+ }
561
+ },
562
+ reduce(value) {
563
+ if(value.item.option.length > 0){
564
+ let data = JSON.parse(JSON.stringify(value.item.option));
565
+ data.forEach((item) => {
566
+ item.selectCount =item.selectCount?item.selectCount: 0;
567
+ });
568
+ this.selectTypeValue = value;
569
+ this.selectTypeList = data;
570
+ this.showSelectTypesPoupon = true;
571
+ return
572
+ }
573
+ const index = this.list.findIndex(
574
+ (item) => item.item.itemId === value.item.itemId,
575
+ );
576
+
577
+ if (this.list[index].selectCount > 1) {
578
+ this.list[index].selectCount--;
579
+ }
580
+ },
581
+ formateUrl(url) {
582
+ return formateServerUrl(url);
583
+ },
584
+ toGachaDetail() {},
585
+ // 获取小卡详情
586
+ getGoodsDetail() {
587
+ // fetchCardDetail({
588
+ // id: value.id,
589
+ // }).then((res) => {
590
+ // this.cardDetail = res.data;
591
+ // this.show = true;
592
+ // });
593
+ },
594
+ // this.current == 0
595
+ // ? "DeliveryType_Can_Free"
596
+ // :
597
+ getCardsList() {
598
+ fetchMyBackPack({
599
+ page: this.pageNo,
600
+ page_size: 10000,
601
+ delivery_type:
602
+ this.current == 0
603
+ ? "DeliveryType_Can_Charge"
604
+ : "DeliveryType_Can_Free",
605
+ goods_state: "GoodsState_Spots",
606
+ }).then((res) => {
607
+ res.list.forEach((item) => {
608
+ item.isChecked = false;
609
+ item.selectCount = 1;
610
+ });
611
+ this.list = res.list;
612
+ this.isFirstLoading = false;
613
+ });
614
+ },
615
+ toDetail(value) {
616
+ // 顺便打开对应的那个
617
+ uni.navigateTo({
618
+ url: "/subpackages/gachaDetail/gachaDetail?series_id=" + value.seriesId,
619
+ });
620
+ },
621
+ toSend() {
622
+ uni.navigateTo({
623
+ url: "/subpackages/sendLogistics/sendLogistics",
624
+ });
625
+ },
626
+ refresherrefresh({ done }) {
627
+ console.log("refresherrefresh");
628
+ if (!this.triggered) {
629
+ this.triggered = true;
630
+ setTimeout(() => {
631
+ this.triggered = false;
632
+ }, 5000);
633
+ }
634
+ },
635
+ scrollToLower() {
636
+ console.log("scrollToLower");
637
+ },
638
+ toLogistics() {
639
+ },
640
+
641
+ onReachBottom() {},
642
+ },
643
+ onShow() { this.getCardsList()},
644
+ onShareAppMessage() {},
645
+ onShareTimeline() {},
646
+ };
647
+ </script>
648
+
649
+ <style lang="less" scoped>
650
+ page {
651
+ // height: 100%;
652
+ background-color: #f6f6f6;
653
+ min-height: 100vh;
654
+ // background: linear-gradient( 0deg, #FFE0B3 0%, #FFF7E7 100%) !important;
655
+ }
656
+ /deep/.u-tabs__wrapper__nav__line {
657
+ width: 30rpx;
658
+ height: 4rpx;
659
+ background: linear-gradient(90deg, #0bd690 0%, #00b0e0 100%);
660
+ border-radius: 338rpx 338rpx 338rpx 338rpx;
661
+ }
662
+ .sendLogisticsContent {
663
+ padding-bottom: 150rpx;
664
+ .addressManager {
665
+ display: flex;
666
+ align-items: center;
667
+ justify-content: center;
668
+ position: absolute;
669
+ right: 32rpx;
670
+ font-size: 28rpx;
671
+ font-weight: bold;
672
+ image {
673
+ width: 40rpx;
674
+ height: 40rpx;
675
+ margin-right: 5rpx;
676
+ }
677
+ }
678
+ .topBgc {
679
+ position: fixed;
680
+ top: 0;
681
+ left: 50%;
682
+ transform: translateX(-50%);
683
+ background-color: transparent;
684
+ width: 100%;
685
+ height: 420rpx;
686
+ }
687
+ .noData {
688
+ text-align: center;
689
+ margin-top: 166rpx;
690
+ color: #999999;
691
+ font-size: 28rpx;
692
+ width: 100%;
693
+ image {
694
+ width: 370rpx;
695
+ height: 368rpx;
696
+ }
697
+ view {
698
+ margin-top: -10rpx;
699
+ }
700
+
701
+ .toShop {
702
+ width: 322rpx;
703
+ height: 80rpx;
704
+ background: #7c66ff;
705
+ border-radius: 864rpx 864rpx 864rpx 864rpx;
706
+ display: flex;
707
+ align-items: center;
708
+ justify-content: center;
709
+ color: #fff;
710
+ font-size: 32rpx;
711
+ margin: auto;
712
+ margin-top: 40rpx;
713
+ }
714
+ }
715
+
716
+ .cardsList {
717
+ padding: 0 32rpx;
718
+ // gap: 24rpx;
719
+ display: flex;
720
+ padding-top: 32rpx;
721
+ flex-wrap: wrap;
722
+ padding-bottom: 16rpx;
723
+ padding-right: 0;
724
+ .item {
725
+ width: 218rpx;
726
+ height: 278rpx;
727
+ position: relative;
728
+ background: #fff;
729
+ border-radius: 24rpx;
730
+ // border: 2rpx solid #E73E3D;
731
+ margin-bottom: 16rpx;
732
+ margin-right: 16rpx;
733
+ &:nth-child(3n) {
734
+ margin-right: 0;
735
+ }
736
+ .boxImg {
737
+ width: 214rpx;
738
+ height: 214rpx;
739
+ border-radius: 24rpx 24rpx 0rpx 0rpx;
740
+ position: relative;
741
+ background-color: transparent;
742
+ }
743
+ .cardBg {
744
+ // width: 213rpx;
745
+ // height: 281rpx;
746
+ // border-radius: 16rpx;
747
+ // position: relative;
748
+ .count {
749
+ position: absolute;
750
+ right: 8rpx;
751
+ bottom: 8rpx;
752
+ background: rgba(0, 0, 0, 0.5);
753
+ border-radius: 16rpx;
754
+ // padding: 0 14rpx;
755
+ width: 48rpx;
756
+ height: 32rpx;
757
+ color: #fff;
758
+ font-size: 24rpx;
759
+ line-height: 32rpx;
760
+ display: flex;
761
+ align-items: center;
762
+ justify-content: center;
763
+ }
764
+ image.level {
765
+ width: 100%;
766
+ height: 100%;
767
+ }
768
+
769
+ image.check {
770
+ position: absolute;
771
+ top: 8rpx;
772
+ left: 8rpx;
773
+ width: 40rpx;
774
+ height: 40rpx;
775
+ z-index: 88;
776
+ }
777
+ .chooseCount {
778
+ z-index: 85;
779
+ position: absolute;
780
+ width: 100%;
781
+ height: 100%;
782
+ background: rgba(0, 0, 0, 0.5);
783
+ border-radius: 16rpx;
784
+ top: 0;
785
+ left: 0;
786
+
787
+ .actions {
788
+ display: flex;
789
+ align-items: center;
790
+ width: 146rpx;
791
+ height: 48rpx;
792
+ position: absolute;
793
+ justify-content: center;
794
+ top: 50%;
795
+ left: 50%;
796
+ background-color: rgba(0, 0, 0, 0.3);
797
+ overflow: hidden;
798
+ transform: translate(-50%, -50%);
799
+ border: 1px solid #fff;
800
+ border-radius: 8rpx;
801
+ > view {
802
+ display: flex;
803
+ align-items: center;
804
+ justify-content: center;
805
+ font-size: 32rpx;
806
+ width: 48rpx;
807
+ height: 48rpx;
808
+ line-height: 48rpx;
809
+ // border-top: 1px solid #fff;
810
+ // border-bottom: 1px solid #fff;
811
+ // border-left: 1px solid #fff;
812
+ // border-right: 1px solid #fff;
813
+ // box-sizing: border-box;
814
+ }
815
+ .reduce {
816
+ font-size: 50rpx;
817
+ color: #fff;
818
+ display: flex;
819
+ align-items: center;
820
+ justify-content: center;
821
+ border-right: 0;
822
+ // border-radius: 12rpx 0 0 12rpx;
823
+ line-height: 48rpx;
824
+ border-right: 1px solid #fff;
825
+ view {
826
+ width: 20rpx;
827
+ height: 4rpx;
828
+ background: #b6b6b6;
829
+ }
830
+ }
831
+ .add {
832
+ // font-size: 43rpx;
833
+ // color: #b6b6b6;
834
+ line-height: 48rpx;
835
+ border-left: 1px solid #fff;
836
+ // border-radius: 0 12rpx 12rpx 0;
837
+ }
838
+ }
839
+ }
840
+ }
841
+ .title {
842
+ font-size: 24rpx;
843
+ color: #000;
844
+ padding-left: 16rpx;
845
+ margin-top: 14rpx;
846
+ }
847
+ .time {
848
+ font-size: 20rpx;
849
+ color: #999999;
850
+ line-height: 36rpx;
851
+ text-align: center;
852
+ }
853
+ }
854
+ }
855
+ .confirmBtn {
856
+ position: fixed;
857
+ bottom: 0;
858
+ left: 50%;
859
+ transform: translateX(-50%);
860
+ width: 100%;
861
+ height: 140rpx;
862
+ background: #ffffff;
863
+ padding-left: 32rpx;
864
+ padding-right: 32rpx;
865
+ z-index: 999;
866
+
867
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
868
+ padding-top: 16rpx;
869
+ font-size: 28rpx;
870
+
871
+ > view {
872
+ height: 80rpx;
873
+ display: flex;
874
+ line-height: 80rpx;
875
+ align-items: center;
876
+ justify-content: space-between;
877
+ > view {
878
+ display: flex;
879
+ align-items: center;
880
+ justify-content: center;
881
+ }
882
+ }
883
+
884
+ .btn {
885
+ width: 280rpx;
886
+ height: 80rpx;
887
+ background: linear-gradient(90deg, #0bd690 0%, #00b0e0 100%);
888
+ border-radius: 40rpx;
889
+ display: flex;
890
+ align-items: center;
891
+ justify-content: center;
892
+ font-weight: bold;
893
+ font-size: 28rpx;
894
+ color: #fff;
895
+ opacity: 0.5;
896
+ &.active {
897
+ opacity: 1;
898
+ }
899
+ }
900
+ }
901
+ }
902
+ .noData {
903
+ text-align: center;
904
+ margin-top: 166rpx;
905
+ color: #999999;
906
+ font-size: 28rpx;
907
+ image {
908
+ width: 370rpx;
909
+ height: 368rpx;
910
+ }
911
+ view {
912
+ margin-top: -10rpx;
913
+ }
914
+
915
+ .toShop {
916
+ width: 322rpx;
917
+ height: 80rpx;
918
+ background: #7c66ff;
919
+ border-radius: 864rpx 864rpx 864rpx 864rpx;
920
+ display: flex;
921
+ align-items: center;
922
+ justify-content: center;
923
+ color: #fff;
924
+ font-size: 32rpx;
925
+ margin: auto;
926
+ margin-top: 40rpx;
927
+ }
928
+ }
929
+ .records {
930
+ background: #f6f6f6;
931
+ border-radius: 32rpx 32rpx 0 0;
932
+ height: 1296rpx;
933
+ position: relative;
934
+ > .title {
935
+ width: 100%;
936
+ height: 100rpx;
937
+ background: #ffffff;
938
+ display: flex;
939
+ align-items: center;
940
+ position: relative;
941
+ justify-content: center;
942
+ border-radius: 32rpx 32rpx 0 0;
943
+ font-size: 36rpx;
944
+ font-weight: 600;
945
+
946
+ image {
947
+ width: 48rpx;
948
+ height: 48rpx;
949
+ position: absolute;
950
+ top: 26rpx;
951
+ left: 32rpx;
952
+ }
953
+ }
954
+ .details {
955
+ margin-top: 16rpx;
956
+ height: calc(100% - 264rpx);
957
+ .list {
958
+ .item {
959
+ width: 686rpx;
960
+ height: 200rpx;
961
+ margin-left: 32rpx;
962
+ background: #fff;
963
+ border-radius: 24rpx 24rpx 24rpx 24rpx;
964
+ // border: 2rpx solid #e73e3d;
965
+ display: flex;
966
+
967
+ align-items: center;
968
+ padding: 40rpx 24rpx;
969
+ border-radius: 16rpx;
970
+ // grid-template-columns: 114rpx 350rpx 152rpx;
971
+ margin-bottom: 24rpx;
972
+
973
+ .image {
974
+ width: 120rpx;
975
+ height: 120rpx;
976
+ // margin-right: 20rpx;
977
+ border-radius: 16rpx;
978
+ position: relative;
979
+ view {
980
+ position: absolute;
981
+ width: 100%;
982
+ height: 100%;
983
+ border-radius: 16rpx;
984
+ background: rgba(0, 0, 0, 0.32);
985
+ background-color: rgba(216, 216, 216, 0.6);
986
+ backdrop-filter: blur(6rpx);
987
+ z-index: 99;
988
+ }
989
+ image {
990
+ width: 114rpx;
991
+ height: 114rpx;
992
+ border-radius: 16rpx;
993
+ }
994
+ }
995
+
996
+ .btn {
997
+ width: 144rpx;
998
+ height: 60rpx;
999
+ background: linear-gradient(90deg, #0bd690 0%, #00b0e0 100%);
1000
+ border-radius: 30rpx 30rpx 30rpx 30rpx;
1001
+ color: #fff;
1002
+ display: flex;
1003
+ font-size: 24rpx;
1004
+ font-weight: bold;
1005
+ align-items: center;
1006
+ justify-content: center;
1007
+ line-height: 60rpx;
1008
+ &.disabled {
1009
+ opacity: 0.5;
1010
+ }
1011
+ }
1012
+ .rightContent {
1013
+ display: flex;
1014
+ flex: 1;
1015
+ flex-direction: column;
1016
+ align-items: flex-end;
1017
+ justify-content: flex-end;
1018
+ .editCount {
1019
+ display: flex;
1020
+ align-items: center;
1021
+ justify-content: center;
1022
+ margin-bottom: 28rpx;
1023
+ view {
1024
+ background-color: #f4f6f8;
1025
+ width: 48rpx;
1026
+ height: 48rpx;
1027
+ }
1028
+ input {
1029
+ width: 48rpx;
1030
+ height: 48rpx;
1031
+
1032
+ margin: 0 2rpx;
1033
+ font-size: 24rpx;
1034
+ text-align: center;
1035
+ }
1036
+ }
1037
+ }
1038
+ .content {
1039
+ width: 470rpx;
1040
+ // margin-left: 24rpx;
1041
+ // margin-right: 32rpx;
1042
+ font-size: 24rpx;
1043
+ color: #505050;
1044
+ > .title {
1045
+ // font-size: 28rpx;
1046
+ font-weight: bold;
1047
+ color: #000;
1048
+ margin-bottom: 24rpx;
1049
+ }
1050
+ .msg {
1051
+ // line-height: 36rpx;
1052
+ // margin-top: 4rpx;
1053
+ margin: 12rpx 0;
1054
+ display: flex;
1055
+ align-items: center;
1056
+ }
1057
+ // .amount {
1058
+ // }
1059
+ }
1060
+ }
1061
+ }
1062
+ }
1063
+ .confirmBtn {
1064
+ position: absolute;
1065
+ bottom: 0;
1066
+ left: 50%;
1067
+ transform: translateX(-50%);
1068
+ width: 100%;
1069
+ height: 140rpx;
1070
+ background: #ffffff;
1071
+ padding-left: 32rpx;
1072
+ z-index: 999;
1073
+
1074
+ // border-top: 1px solid rgba(0, 0, 0, 0.1);
1075
+ padding-top: 16rpx;
1076
+ > view {
1077
+ width: 686rpx;
1078
+ height: 80rpx;
1079
+ background: linear-gradient(90deg, #0bd690 0%, #00b0e0 100%);
1080
+ border-radius: 44rpx;
1081
+ display: flex;
1082
+ align-items: center;
1083
+ justify-content: center;
1084
+ font-size: 32rpx;
1085
+ color: #fff;
1086
+ font-weight: 600;
1087
+ view {
1088
+ display: flex;
1089
+ align-items: center;
1090
+ justify-content: center;
1091
+ height: 100%;
1092
+ line-height: 80rpx;
1093
+ }
1094
+ }
1095
+ }
1096
+ }
1097
+ </style>