jufubao-base 1.0.121 → 1.0.123

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 (34) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseConPhone/JfbBaseConPhone.vue +5 -5
  3. package/src/components/JfbBasePay/JfbBasePay.vue +11 -5
  4. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +268 -238
  5. package/src/components/JfbBaseWallet/Api.js +60 -0
  6. package/src/components/JfbBaseWallet/Attr.js +101 -0
  7. package/src/components/JfbBaseWallet/JfbBaseWallet.vue +306 -0
  8. package/src/components/JfbBaseWallet/JfbBaseWalletLess.less +80 -0
  9. package/src/components/JfbBaseWallet/JfbBaseWalletMixin.js +30 -0
  10. package/src/components/JfbBaseWallet/Mock.js +6 -0
  11. package/src/components/JfbBaseWalletDetail/Api.js +26 -0
  12. package/src/components/JfbBaseWalletDetail/Attr.js +16 -0
  13. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetail.vue +175 -0
  14. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetailLess.less +80 -0
  15. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetailMixin.js +30 -0
  16. package/src/components/JfbBaseWalletDetail/Mock.js +6 -0
  17. package/src/components/JfbBaseWalletEffective/Api.js +27 -0
  18. package/src/components/JfbBaseWalletEffective/Attr.js +15 -0
  19. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffective.vue +176 -0
  20. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffectiveLess.less +80 -0
  21. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffectiveMixin.js +30 -0
  22. package/src/components/JfbBaseWalletEffective/Mock.js +21 -0
  23. package/src/components/JfbBaseWalletIndex/Api.js +48 -0
  24. package/src/components/JfbBaseWalletIndex/Attr.js +33 -0
  25. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndex.vue +822 -0
  26. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndexLess.less +80 -0
  27. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndexMixin.js +30 -0
  28. package/src/components/JfbBaseWalletIndex/Mock.js +7 -0
  29. package/src/components/JfbBaseWalletItem/Api.js +37 -0
  30. package/src/components/JfbBaseWalletItem/Attr.js +33 -0
  31. package/src/components/JfbBaseWalletItem/JfbBaseWalletItem.vue +501 -0
  32. package/src/components/JfbBaseWalletItem/JfbBaseWalletItemLess.less +80 -0
  33. package/src/components/JfbBaseWalletItem/JfbBaseWalletItemMixin.js +30 -0
  34. package/src/components/JfbBaseWalletItem/Mock.js +7 -0
@@ -0,0 +1,822 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-wallet-index"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx: isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-wallet-index__edit"
10
+ :class="{ editx: isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-wallet-index__edit-icon" @click="delEdit"
14
+ >删除</view
15
+ >
16
+ </view>
17
+ <!-- #endif -->
18
+ <view v-if="status" class="jfb-base-wallet-index__body">
19
+ <view
20
+ style="padding: 32rpx 40rpx"
21
+ class="jfb-base-wallet-index__body-wrap"
22
+ >
23
+ <view class="jfb-base-wallet-index__body-header">
24
+ <view class="jfb-base-wallet-index__body-header-total">
25
+ <view>
26
+ <XdFontIcon
27
+ :icon="type === 'wallet' ? 'iconyuanbao' : 'iconjifenjilu'"
28
+ ></XdFontIcon>
29
+ <text>{{ show_name }}</text>
30
+ </view>
31
+ <view>{{ total_amount }}</view>
32
+ </view>
33
+ <XdFontIcon
34
+ v-if="typeList.length"
35
+ @click="handleShowQrcode"
36
+ style="align-items: flex-start"
37
+ color="#999999"
38
+ size="60"
39
+ icon="iconerweima"
40
+ ></XdFontIcon>
41
+ </view>
42
+ <view
43
+ :style="{
44
+ justifyContent:
45
+ typeList.length === 2
46
+ ? 'space-between'
47
+ : typeList.length === 1
48
+ ? 'center'
49
+ : '',
50
+ }"
51
+ class="jfb-base-wallet-index__body-type"
52
+ >
53
+ <view
54
+ :style="{
55
+ width:
56
+ typeList.length === 2
57
+ ? '50%'
58
+ : typeList.length === 1
59
+ ? '100%'
60
+ : '33%',
61
+ }"
62
+ v-for="(item, index) in typeList"
63
+ :key="index"
64
+ class="jfb-base-wallet-index__body-type-item"
65
+ @click="handleToWalletDetail(item)"
66
+ >
67
+ <view>{{ dividePrice(item.amount) }}</view>
68
+ <view :style="{ color: mainColor }">{{ item.wallet_name }}</view>
69
+ </view>
70
+ </view>
71
+ </view>
72
+ <view class="jfb-base-wallet-index__body-title">收支明细</view>
73
+ <view class="jfb-base-wallet-index__body-wrap">
74
+ <view class="jfb-base-wallet-index__body-filter">
75
+ <picker
76
+ class="cancel"
77
+ fields="month"
78
+ mode="date"
79
+ :value="date"
80
+ @change="bindDateChange"
81
+ >
82
+ <view class="jfb-base-wallet-index__body-filter-condition">
83
+ <text>{{ date }}</text>
84
+ <XdFontIcon size="24" icon="iconxia_down"></XdFontIcon>
85
+ </view>
86
+ </picker>
87
+ <picker
88
+ mode="selector"
89
+ range-key="label"
90
+ :value="operate_type"
91
+ :range="buySale"
92
+ @change="bindOperateChange"
93
+ >
94
+ <view class="jfb-base-wallet-index__body-filter-condition">
95
+ <text>{{
96
+ operate_type
97
+ ? operate_type === "R"
98
+ ? "全部支出"
99
+ : "全部收入"
100
+ : "全部收支"
101
+ }}</text>
102
+ <XdFontIcon size="24" icon="iconxia_down"></XdFontIcon>
103
+ </view>
104
+ </picker>
105
+ </view>
106
+ <view class="jfb-base-wallet-index__body-list">
107
+ <view v-if="detailList.length">
108
+ <view
109
+ v-for="(item, index) in detailList"
110
+ :key="index"
111
+ class="jfb-base-wallet-index__body-list-item"
112
+ @click="handleToBillDetail(item)"
113
+ >
114
+ <view>
115
+ <XdFontIcon
116
+ :icon="
117
+ item.operate_type === 'A' ? 'iconshouru' : 'iconzhichu'
118
+ "
119
+ ></XdFontIcon>
120
+ <text style="margin-left: 10rpx">{{
121
+ item.trade_type_name
122
+ }}</text>
123
+ </view>
124
+ <view>
125
+ <view
126
+ >{{ item.operate_type === "A" ? "+" : "-" }}
127
+ {{ dividePrice(item.amount) }}</view
128
+ >
129
+ <view>{{ item.created_time }}</view>
130
+ </view>
131
+ </view>
132
+ </view>
133
+ <view class="jfb-base-wallet-index__body-list-empty" v-else
134
+ >暂无数据</view
135
+ >
136
+ </view>
137
+ </view>
138
+ <XdDailog
139
+ :show.sync="showQrcode"
140
+ :cancel="false"
141
+ :confirm="false"
142
+ @close="handleClose"
143
+ title=""
144
+ >
145
+ <view class="jfb-base-wallet-index__body-qrcode">
146
+ <view>
147
+ <view>
148
+ <image mode="aspectFit" :src="dynamic_barcode"></image>
149
+ </view>
150
+ </view>
151
+ <view>
152
+ <image
153
+ :style="{ width: '300rpx', height: '300rpx' }"
154
+ :src="dynamic_qrcode"
155
+ ></image>
156
+ </view>
157
+ <view v-if="timeStr"> {{ timeStr }}后自动刷新</view>
158
+ <view class="jfb-base-wallet-index__body-qrcode-refresh">
159
+ <XdFontIcon icon="iconmian-loading"></XdFontIcon>
160
+ <text @click="getQrcode">刷新二维码</text>
161
+ </view>
162
+ </view>
163
+ <view class="jfb-base-wallet-index__body-pay">
164
+ <view class="jfb-base-wallet-index__body-pay-type">
165
+ <view>付款方式</view>
166
+ <view @click="handleChangePayType">
167
+ <view> {{ qrcodeInfo.wallet_name }} </view>
168
+ <XdFontIcon
169
+ v-if="typeList.length"
170
+ size="20"
171
+ icon="iconxia_down"
172
+ ></XdFontIcon>
173
+ </view>
174
+ </view>
175
+ <view class="jfb-base-wallet-index__body-pay-id"
176
+ >ID:{{ qrcodeInfo.wallet_virtual_number }}</view
177
+ >
178
+ </view>
179
+ </XdDailog>
180
+ <XdDownDrawer @close="handleDrawerClose" :show.sync="showPayType">
181
+ <view style="max-height: 70vh; overflow-y: auto">
182
+ <view style="text-align: center; color: #666; padding: 24rpx 0"
183
+ >请选择付款方式</view
184
+ >
185
+ <view
186
+ v-for="(item, index) in typeList"
187
+ :key="index"
188
+ class="jfb-base-wallet-index__body-wrap jfb-base-wallet-index__body-chose"
189
+ >
190
+ <view class="jfb-base-wallet-index__body-chose-select">
191
+ <view class="jfb-base-wallet-index__body-chose-select-left">
192
+ <view>
193
+ <XdFontIcon
194
+ :icon="type === 'wallet' ? 'iconyuanbao' : 'iconjifenjilu'"
195
+ ></XdFontIcon>
196
+ <text>{{ item.wallet_name }}</text>
197
+ </view>
198
+ <view>{{ dividePrice(item.amount) }}</view>
199
+ </view>
200
+ <XdRadio
201
+ @change="(flat) => handlerChosePay(flat, item)"
202
+ :value="wallet_type == item.wallet_type"
203
+ size="mini"
204
+ ></XdRadio>
205
+ </view>
206
+ <view class="jfb-base-wallet-index__body-chose-bussiness">
207
+ <view>使用范围</view>
208
+ <view>{{ item.business_codes_name }}</view>
209
+ </view>
210
+ </view>
211
+ <view style="height: 150rpx"></view>
212
+ <view v-if="showPayType" class="bottom_btn" :style="alert_bottom">
213
+ <xd-button
214
+ :disabled="!wallet_type"
215
+ @click="handleUse"
216
+ width="360rpx"
217
+ type="primary"
218
+ radius="50rpx"
219
+ >确认使用</xd-button
220
+ >
221
+ </view>
222
+ </view>
223
+ </XdDownDrawer>
224
+ </view>
225
+ </view>
226
+ </template>
227
+
228
+ <script>
229
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
230
+ import { jfbRootExec } from "@/utils/xd.event";
231
+ import JfbBaseWalletIndexMixin from "./JfbBaseWalletIndexMixin";
232
+ import XdDailog from "@/components/XdDailog/XdDailog";
233
+ import XdDownDrawer from "@/components/XdDownDrawer/XdDownDrawer";
234
+ import XdButton from "@/components/XdButton/XdButton";
235
+ import XdRadio from "@/components/XdRadio/XdRadio";
236
+ import { getContainerPropsValue } from "@/utils/xd.base";
237
+ import componentsMixins from "@/mixins/componentsMixins";
238
+ import extsMixins from "@/mixins/extsMixins";
239
+ export default {
240
+ name: "JfbBaseWalletIndex",
241
+ components: {
242
+ XdFontIcon,
243
+ XdDailog,
244
+ XdDownDrawer,
245
+ XdRadio,
246
+ XdButton,
247
+ },
248
+ mixins: [componentsMixins, extsMixins, JfbBaseWalletIndexMixin],
249
+ data() {
250
+ return {
251
+ typeList: [],
252
+ detailList: [],
253
+ buySale: [
254
+ {
255
+ label: "全部",
256
+ value: "",
257
+ },
258
+ {
259
+ label: "支出",
260
+ value: "R",
261
+ },
262
+ {
263
+ label: "收入",
264
+ value: "A",
265
+ },
266
+ ],
267
+ qrcodeInfo: {},
268
+ date: "",
269
+ operate_type: "",
270
+ hasNext: true,
271
+ next_page_token: "",
272
+ page_size: 10,
273
+ page_token: 1,
274
+ billDetailPath: "",
275
+ walletDetailPath: "",
276
+ dynamic_qrcode: "",
277
+ dynamic_barcode: "",
278
+ timeStr: "",
279
+ timeer: null,
280
+ showQrcode: false,
281
+ showPayType: false,
282
+ wallet_type: null,
283
+ type: "",
284
+ total_amount: 0,
285
+ show_name: "",
286
+ status: false,
287
+ };
288
+ },
289
+ watch: {
290
+ container(value) {
291
+ this.init(value);
292
+ },
293
+ },
294
+ created() {
295
+ this.init(this.container);
296
+
297
+ //todo
298
+ },
299
+ computed: {
300
+ alert_bottom() {
301
+ return this.fixedStyle({ paddingBottom: 24, zIndex: 110 });
302
+ },
303
+ },
304
+ destroyed() {
305
+ if (this.timeer) {
306
+ clearTimeout(this.timeer);
307
+ this.timeStr = "00分00秒";
308
+ }
309
+ },
310
+ methods: {
311
+ async onJfbLoad(options) {
312
+ this.type = options.type;
313
+ this.date = `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, '0')}`;
314
+ await jfbRootExec("getWalletList", {
315
+ vm: this,
316
+ data: { support_method: this.type },
317
+ })
318
+ .then((res) => {
319
+ this.total_amount = this.dividePrice(res.total_amount);
320
+ this.show_name = res.show_name;
321
+ this.typeList = res.list.map((item) => {
322
+ if (item.business_codes_name) {
323
+ const codes = item.business_codes_name.split(",");
324
+ const newCodes = codes.map((code) => code.trim()).join("、");
325
+ item.business_codes_name = newCodes;
326
+ }
327
+ return item;
328
+ });
329
+ console.log(this.typeList, "pppppp");
330
+ })
331
+ .catch(this.$xdLog.catch);
332
+ await this.getList();
333
+ this.status = true;
334
+ },
335
+ handleChangePayType() {
336
+ this.showQrcode = false;
337
+ this.handleClose();
338
+ this.handleShowQrcode();
339
+ },
340
+ getList() {
341
+ console.log(this.data, this.operate_type, "operate_typeoperate_type");
342
+ jfbRootExec("getWalletRecordList", {
343
+ vm: this,
344
+ data: {
345
+ support_method: this.type,
346
+ month: this.date,
347
+ page_size: this.page_size,
348
+ page_token: this.page_token,
349
+ operate_type: this.operate_type,
350
+ },
351
+ })
352
+ .then((res) => {
353
+ try {
354
+ let list = res.list.map((item) => {
355
+ const timestamp = item.created_time * 1000;
356
+ const date = new Date(timestamp);
357
+ const year = date.getFullYear();
358
+ const month = ("0" + (date.getMonth() + 1)).slice(-2);
359
+ const day = ("0" + date.getDate()).slice(-2);
360
+ const hours = ("0" + date.getHours()).slice(-2);
361
+ const minutes = ("0" + date.getMinutes()).slice(-2);
362
+ const seconds = ("0" + date.getSeconds()).slice(-2);
363
+ const formattedDate =
364
+ year +
365
+ "-" +
366
+ month +
367
+ "-" +
368
+ day +
369
+ " " +
370
+ hours +
371
+ ":" +
372
+ minutes +
373
+ ":" +
374
+ seconds;
375
+ item.created_time = formattedDate;
376
+ return item;
377
+ });
378
+ if (this.page_token === 1) {
379
+ this.detailList = list;
380
+ } else {
381
+ this.detailList = this.detailList.concat(list);
382
+ }
383
+ this.hasNext = res.next_page_token !== "";
384
+ this.next_page_token = res.next_page_token;
385
+ } catch (error) {
386
+ console.log(error, "alaakakakak");
387
+ }
388
+ })
389
+ .catch(this.$xdLog.catch);
390
+ },
391
+ dividePrice(num) {
392
+ return this.$xdUniHelper.divisionFloatNumber(num, 100);
393
+ },
394
+ getQrcode() {
395
+ //todo
396
+ jfbRootExec("getWalletQrcode", {
397
+ vm: this,
398
+ data: {
399
+ wallet_type: this.wallet_type,
400
+ },
401
+ })
402
+ .then((res) => {
403
+ this.dynamic_qrcode = res.dynamic_qrcode;
404
+ this.dynamic_barcode = res.dynamic_barcode;
405
+ this.qrcodeInfo = res.wallet;
406
+ this.showQrcode = true;
407
+ if (this.timeer) {
408
+ clearInterval(this.timeer);
409
+ this.timeer = null;
410
+ }
411
+ this.setInval(res.dynamic_qrcode_expired);
412
+ })
413
+ .catch(this.$xdLog.catch);
414
+ },
415
+ setInval(time) {
416
+ console.log("pppppp", time);
417
+ this.timeer = setInterval(() => {
418
+ if (time === 0) {
419
+ this.timeStr = "00分00秒";
420
+ clearInterval(this.timeer);
421
+ this.getQrcode();
422
+ } else {
423
+ time--;
424
+ let f = Math.floor(time / 60);
425
+ f = f < 10 ? "0" + f : f;
426
+ let m = time % 60;
427
+ m = m < 10 ? "0" + m : m;
428
+ this.timeStr = `${f}分${m}秒`;
429
+ }
430
+ }, 1000);
431
+ },
432
+ bindDateChange(e) {
433
+ console.log(e, "mmmmmm");
434
+
435
+ //调用搜索
436
+ this.detailList = [];
437
+ this.page_token = 1;
438
+ this.hasNext = true;
439
+ this.date = e.detail.value;
440
+ this.getList();
441
+ },
442
+ bindOperateChange(e) {
443
+ //调用搜索
444
+ this.detailList = [];
445
+ this.page_token = 1;
446
+ this.hasNext = true;
447
+ this.operate_type = this.buySale[e.detail.value].value;
448
+ this.getList();
449
+ },
450
+ dividePrice(num) {
451
+ return this.$xdUniHelper.divisionFloatNumber(num, 100);
452
+ },
453
+ /**
454
+ * @description 监听事件变化
455
+ * @param container {object} 业务组件对象自己
456
+ */
457
+ init(container) {
458
+ this.billDetailPath = getContainerPropsValue(
459
+ container,
460
+ "content.billDetailPath",
461
+ {
462
+ value: "",
463
+ }
464
+ ).value;
465
+ this.walletDetailPath = getContainerPropsValue(
466
+ container,
467
+ "content.walletDetailPath",
468
+ {
469
+ value: "",
470
+ }
471
+ ).value;
472
+ },
473
+ handleToWalletDetail(item) {
474
+ this.$xdUniHelper.navigateTo({
475
+ url: `${this.walletDetailPath}?wallet_type=${item.wallet_type}&type=${this.type}`,
476
+ });
477
+ },
478
+ handleToBillDetail(item) {
479
+ this.$xdUniHelper.navigateTo({
480
+ url: `${this.billDetailPath}?trade_id=${item.trade_id}`,
481
+ });
482
+ },
483
+ handleShowQrcode() {
484
+ if (this.typeList.length === 1) {
485
+ this.wallet_type = this.typeList[0].wallet_type;
486
+ this.getQrcode();
487
+ } else {
488
+ this.showPayType = true;
489
+ }
490
+ },
491
+ handlerChosePay(flat, item) {
492
+ console.log(flat, item, "alalaalaal");
493
+ if (flat) {
494
+ this.wallet_type = item.wallet_type;
495
+ } else {
496
+ this.wallet_type = null;
497
+ }
498
+ },
499
+ handleUse() {
500
+ this.showPayType = false;
501
+ this.getQrcode();
502
+ },
503
+ handleClose() {
504
+ this.qrcodeInfo = {};
505
+ if (this.timeer) {
506
+ clearInterval(this.timeer);
507
+ this.timeer = null;
508
+ }
509
+ this.timeStr = "00分00秒";
510
+ },
511
+ handleDrawerClose() {
512
+ this.wallet_type = null;
513
+ },
514
+ onJfbScroll(options) {
515
+ console.log("event.onJfbScroll", options);
516
+ },
517
+ onJfbReachBottom(options) {
518
+ console.log("1111");
519
+ if (this.hasNext) {
520
+ this.page_token = this.next_page_token;
521
+ this.getList();
522
+ }
523
+ },
524
+ onJfbShow(options) {
525
+ console.log("event.onJfbShow", options);
526
+ this.getQrcode()
527
+ },
528
+ onJfbHide(options) {
529
+ if (this.timeer) {
530
+ clearInterval(this.timeer);
531
+ this.timeer = null;
532
+ }
533
+ this.timeStr = "00分00秒";
534
+ },
535
+ onJfbBack(options) {
536
+ if (this.timeer) {
537
+ clearInterval(this.timeer);
538
+ this.timeer = null;
539
+ }
540
+ this.timeStr = "00分00秒";
541
+ this.$xdUniHelper.navigateBack();
542
+ },
543
+ onJfbUnload() {
544
+ if (this.timeer) {
545
+ clearInterval(this.timeer);
546
+ this.timeer = null;
547
+ }
548
+ this.timeStr = "00分00秒";
549
+ },
550
+ onJfbUpdate(...data) {
551
+ console.log("event.onJfbUpdate", data);
552
+ },
553
+ onJfbCustomEvent(options) {
554
+ console.log("event.onJfbReachBottom", options);
555
+ },
556
+ },
557
+ };
558
+ </script>
559
+
560
+ <style scoped lang="less">
561
+ @import "./JfbBaseWalletIndexLess.less";
562
+
563
+ .jfb-base-wallet-index {
564
+ &__body {
565
+ &-wrap {
566
+ border-radius: 20rpx;
567
+ background: #ffffff;
568
+ border: 1rpx solid #eeeeee;
569
+ margin: 20rpx 20rpx 0 20rpx;
570
+ }
571
+ &-header {
572
+ display: flex;
573
+ justify-content: space-between;
574
+ font-size: 28rpx;
575
+ color: #333333;
576
+ border-bottom: 1px solid #eee;
577
+ padding-bottom: 28rpx;
578
+ &-total {
579
+ & > view:first-child {
580
+ display: flex;
581
+ align-items: center;
582
+ font-size: 24rpx;
583
+ & > text {
584
+ margin-left: 10rpx;
585
+ }
586
+ }
587
+ & > view:last-child {
588
+ font-size: 64rpx;
589
+ color: #333;
590
+ }
591
+ }
592
+ }
593
+ &-type {
594
+ padding-top: 28rpx;
595
+ display: flex;
596
+ flex-wrap: wrap;
597
+ &-item {
598
+ text-align: center;
599
+ margin-bottom: 20rpx;
600
+ & > view:first-child {
601
+ font-size: 36rpx;
602
+ }
603
+ & > view:last-child {
604
+ font-size: 24rpx;
605
+ margin-top: 20rpx;
606
+ }
607
+ }
608
+ }
609
+ &-title {
610
+ font-size: 28rpx;
611
+ padding: 40rpx 60rpx 20rpx 60rpx;
612
+ }
613
+ &-filter {
614
+ display: flex;
615
+ justify-content: space-around;
616
+ padding: 40rpx 0;
617
+ border-bottom: 2rpx solid #eee;
618
+ color: #666666;
619
+ font-size: 24rpx;
620
+ &-condition {
621
+ display: flex;
622
+ align-items: center;
623
+ font-size: 28rpx;
624
+ & > text {
625
+ margin-right: 10rpx;
626
+ }
627
+ }
628
+ }
629
+ &-list {
630
+ padding: 40rpx 40rpx 0 40rpx;
631
+ color: #333;
632
+ &-item {
633
+ display: flex;
634
+ justify-content: space-between;
635
+ padding-bottom: 40rpx;
636
+ & > view:first-child {
637
+ display: flex;
638
+ align-items: center;
639
+ text-align: left;
640
+ font-size: 28rpx;
641
+ }
642
+ & > view:nth-child(2) {
643
+ & > view:first-child {
644
+ color: #666;
645
+ font-size: 32rpx;
646
+ font-weight: 700;
647
+ text-align: right;
648
+ }
649
+ & > view:nth-child(2) {
650
+ color: #999;
651
+ font-size: 22rpx;
652
+ margin-top: 24rpx;
653
+ }
654
+ }
655
+ }
656
+ &-empty {
657
+ display: flex;
658
+ justify-content: center;
659
+ align-items: center;
660
+ padding-bottom: 40rpx;
661
+ color: #999;
662
+ font-size: 28rpx;
663
+ }
664
+ }
665
+ &-qrcode {
666
+ text-align: center;
667
+ font-size: @xd-font-size-base;
668
+ line-height: unit(36, rpx);
669
+ padding-top: 20rpx;
670
+
671
+ & > view {
672
+ // margin-bottom: unit(20, rpx);
673
+
674
+ & > view {
675
+ margin-bottom: 0;
676
+ }
677
+ }
678
+
679
+ & > view:nth-child(1) {
680
+ display: flex;
681
+ justify-content: center;
682
+ align-items: center;
683
+ box-sizing: border-box;
684
+ height: unit(140, rpx);
685
+ width: 100%;
686
+ margin-top: unit(20, rpx);
687
+
688
+ & > view {
689
+ width: 100%;
690
+ height: unit(140, rpx);
691
+ padding: unit(10, rpx);
692
+ display: flex;
693
+ justify-content: center;
694
+ align-items: center;
695
+
696
+ & > image {
697
+ max-width: 100%;
698
+ max-height: unit(140, rpx);
699
+ }
700
+ }
701
+ }
702
+
703
+ & > view:nth-child(2) {
704
+ display: flex;
705
+ justify-content: center;
706
+ align-items: center;
707
+ padding: unit(20, rpx);
708
+
709
+ & > view {
710
+ width: unit(450, rpx);
711
+ height: unit(450, rpx);
712
+ padding: unit(10, rpx);
713
+
714
+ & > image {
715
+ width: unit(450, rpx);
716
+ height: unit(450, rpx);
717
+ }
718
+ }
719
+ }
720
+ &-refresh {
721
+ border-radius: 50rpx;
722
+ border: 2rpx solid #999999;
723
+ display: flex;
724
+ justify-content: center;
725
+ align-items: center;
726
+ padding: 20rpx 0 20rpx 0;
727
+ color: #999;
728
+ width: 300rpx;
729
+ position: relative;
730
+ left: 50%;
731
+ transform: translateX(-50%);
732
+ margin-top: 30rpx;
733
+ & > text {
734
+ margin-left: 20rpx;
735
+ }
736
+ }
737
+ }
738
+ &-pay {
739
+ border-radius: 16rpx;
740
+ border: 2rpx solid #eeeeee;
741
+ display: flex;
742
+ flex-direction: column;
743
+ padding: 24rpx;
744
+ margin-top: 30rpx;
745
+ font-size: 28rpx;
746
+ &-type {
747
+ display: flex;
748
+ justify-content: space-between;
749
+ align-items: center;
750
+ font-size: 28rpx;
751
+ color: #666666;
752
+ & > view:nth-child(2) {
753
+ display: flex;
754
+ align-items: center;
755
+ }
756
+ }
757
+ &-id {
758
+ color: #333;
759
+ font-weight: 500;
760
+ text-align: right;
761
+ margin-top: 24rpx;
762
+ }
763
+ }
764
+ &-chose {
765
+ padding: 28rpx 40rpx;
766
+ &-select {
767
+ display: flex;
768
+ justify-content: space-between;
769
+ align-items: center;
770
+ border-bottom: 2rpx solid #eee;
771
+ padding-bottom: 24rpx;
772
+ &-left {
773
+ display: flex;
774
+ align-items: center;
775
+ flex-direction: column;
776
+ & > view:first-child {
777
+ display: flex;
778
+ align-items: center;
779
+ font-size: 24rpx;
780
+ color: #333;
781
+ & > text {
782
+ margin-left: 10rpx;
783
+ }
784
+ }
785
+ & > view:last-child {
786
+ font-size: 48rpx;
787
+ font-weight: 500;
788
+ color: #333;
789
+ margin-top: 12rpx;
790
+ }
791
+ }
792
+ }
793
+ &-bussiness {
794
+ padding-top: 24rpx;
795
+ font-size: 24rpx;
796
+ & > view:first-child {
797
+ color: #666;
798
+ }
799
+ & > view:last-child {
800
+ color: #999;
801
+ margin-top: 20rpx;
802
+ }
803
+ }
804
+ }
805
+ }
806
+ .bottom_btn {
807
+ position: fixed;
808
+ width: 100%;
809
+ padding: 24rpx 0;
810
+ background: #ffffff;
811
+ box-shadow: 0 0 0px 1px rgba(0, 0, 0, 0.1);
812
+ transition: 500ms all;
813
+ padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
814
+ padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
815
+ }
816
+ }
817
+ </style>
818
+ <style>
819
+ .cancel ::v-deep .uni-picker-action-cancel ::after {
820
+ content: "全部" !important;
821
+ }
822
+ </style>