jufubao-base 1.0.122 → 1.0.124

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 (33) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBasePay/JfbBasePay.vue +11 -5
  3. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +268 -238
  4. package/src/components/JfbBaseWallet/Api.js +60 -0
  5. package/src/components/JfbBaseWallet/Attr.js +101 -0
  6. package/src/components/JfbBaseWallet/JfbBaseWallet.vue +306 -0
  7. package/src/components/JfbBaseWallet/JfbBaseWalletLess.less +80 -0
  8. package/src/components/JfbBaseWallet/JfbBaseWalletMixin.js +30 -0
  9. package/src/components/JfbBaseWallet/Mock.js +6 -0
  10. package/src/components/JfbBaseWalletDetail/Api.js +26 -0
  11. package/src/components/JfbBaseWalletDetail/Attr.js +16 -0
  12. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetail.vue +175 -0
  13. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetailLess.less +80 -0
  14. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetailMixin.js +30 -0
  15. package/src/components/JfbBaseWalletDetail/Mock.js +6 -0
  16. package/src/components/JfbBaseWalletEffective/Api.js +27 -0
  17. package/src/components/JfbBaseWalletEffective/Attr.js +15 -0
  18. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffective.vue +176 -0
  19. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffectiveLess.less +80 -0
  20. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffectiveMixin.js +30 -0
  21. package/src/components/JfbBaseWalletEffective/Mock.js +21 -0
  22. package/src/components/JfbBaseWalletIndex/Api.js +48 -0
  23. package/src/components/JfbBaseWalletIndex/Attr.js +33 -0
  24. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndex.vue +824 -0
  25. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndexLess.less +80 -0
  26. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndexMixin.js +30 -0
  27. package/src/components/JfbBaseWalletIndex/Mock.js +7 -0
  28. package/src/components/JfbBaseWalletItem/Api.js +37 -0
  29. package/src/components/JfbBaseWalletItem/Attr.js +33 -0
  30. package/src/components/JfbBaseWalletItem/JfbBaseWalletItem.vue +501 -0
  31. package/src/components/JfbBaseWalletItem/JfbBaseWalletItemLess.less +80 -0
  32. package/src/components/JfbBaseWalletItem/JfbBaseWalletItemMixin.js +30 -0
  33. package/src/components/JfbBaseWalletItem/Mock.js +7 -0
@@ -0,0 +1,824 @@
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
+ if(this.showQrcode) {
527
+ this.getQrcode()
528
+ }
529
+ },
530
+ onJfbHide(options) {
531
+ if (this.timeer) {
532
+ clearInterval(this.timeer);
533
+ this.timeer = null;
534
+ }
535
+ this.timeStr = "00分00秒";
536
+ },
537
+ onJfbBack(options) {
538
+ if (this.timeer) {
539
+ clearInterval(this.timeer);
540
+ this.timeer = null;
541
+ }
542
+ this.timeStr = "00分00秒";
543
+ this.$xdUniHelper.navigateBack();
544
+ },
545
+ onJfbUnload() {
546
+ if (this.timeer) {
547
+ clearInterval(this.timeer);
548
+ this.timeer = null;
549
+ }
550
+ this.timeStr = "00分00秒";
551
+ },
552
+ onJfbUpdate(...data) {
553
+ console.log("event.onJfbUpdate", data);
554
+ },
555
+ onJfbCustomEvent(options) {
556
+ console.log("event.onJfbReachBottom", options);
557
+ },
558
+ },
559
+ };
560
+ </script>
561
+
562
+ <style scoped lang="less">
563
+ @import "./JfbBaseWalletIndexLess.less";
564
+
565
+ .jfb-base-wallet-index {
566
+ &__body {
567
+ &-wrap {
568
+ border-radius: 20rpx;
569
+ background: #ffffff;
570
+ border: 1rpx solid #eeeeee;
571
+ margin: 20rpx 20rpx 0 20rpx;
572
+ }
573
+ &-header {
574
+ display: flex;
575
+ justify-content: space-between;
576
+ font-size: 28rpx;
577
+ color: #333333;
578
+ border-bottom: 1px solid #eee;
579
+ padding-bottom: 28rpx;
580
+ &-total {
581
+ & > view:first-child {
582
+ display: flex;
583
+ align-items: center;
584
+ font-size: 24rpx;
585
+ & > text {
586
+ margin-left: 10rpx;
587
+ }
588
+ }
589
+ & > view:last-child {
590
+ font-size: 64rpx;
591
+ color: #333;
592
+ }
593
+ }
594
+ }
595
+ &-type {
596
+ padding-top: 28rpx;
597
+ display: flex;
598
+ flex-wrap: wrap;
599
+ &-item {
600
+ text-align: center;
601
+ margin-bottom: 20rpx;
602
+ & > view:first-child {
603
+ font-size: 36rpx;
604
+ }
605
+ & > view:last-child {
606
+ font-size: 24rpx;
607
+ margin-top: 20rpx;
608
+ }
609
+ }
610
+ }
611
+ &-title {
612
+ font-size: 28rpx;
613
+ padding: 40rpx 60rpx 20rpx 60rpx;
614
+ }
615
+ &-filter {
616
+ display: flex;
617
+ justify-content: space-around;
618
+ padding: 40rpx 0;
619
+ border-bottom: 2rpx solid #eee;
620
+ color: #666666;
621
+ font-size: 24rpx;
622
+ &-condition {
623
+ display: flex;
624
+ align-items: center;
625
+ font-size: 28rpx;
626
+ & > text {
627
+ margin-right: 10rpx;
628
+ }
629
+ }
630
+ }
631
+ &-list {
632
+ padding: 40rpx 40rpx 0 40rpx;
633
+ color: #333;
634
+ &-item {
635
+ display: flex;
636
+ justify-content: space-between;
637
+ padding-bottom: 40rpx;
638
+ & > view:first-child {
639
+ display: flex;
640
+ align-items: center;
641
+ text-align: left;
642
+ font-size: 28rpx;
643
+ }
644
+ & > view:nth-child(2) {
645
+ & > view:first-child {
646
+ color: #666;
647
+ font-size: 32rpx;
648
+ font-weight: 700;
649
+ text-align: right;
650
+ }
651
+ & > view:nth-child(2) {
652
+ color: #999;
653
+ font-size: 22rpx;
654
+ margin-top: 24rpx;
655
+ }
656
+ }
657
+ }
658
+ &-empty {
659
+ display: flex;
660
+ justify-content: center;
661
+ align-items: center;
662
+ padding-bottom: 40rpx;
663
+ color: #999;
664
+ font-size: 28rpx;
665
+ }
666
+ }
667
+ &-qrcode {
668
+ text-align: center;
669
+ font-size: @xd-font-size-base;
670
+ line-height: unit(36, rpx);
671
+ padding-top: 20rpx;
672
+
673
+ & > view {
674
+ // margin-bottom: unit(20, rpx);
675
+
676
+ & > view {
677
+ margin-bottom: 0;
678
+ }
679
+ }
680
+
681
+ & > view:nth-child(1) {
682
+ display: flex;
683
+ justify-content: center;
684
+ align-items: center;
685
+ box-sizing: border-box;
686
+ height: unit(140, rpx);
687
+ width: 100%;
688
+ margin-top: unit(20, rpx);
689
+
690
+ & > view {
691
+ width: 100%;
692
+ height: unit(140, rpx);
693
+ padding: unit(10, rpx);
694
+ display: flex;
695
+ justify-content: center;
696
+ align-items: center;
697
+
698
+ & > image {
699
+ max-width: 100%;
700
+ max-height: unit(140, rpx);
701
+ }
702
+ }
703
+ }
704
+
705
+ & > view:nth-child(2) {
706
+ display: flex;
707
+ justify-content: center;
708
+ align-items: center;
709
+ padding: unit(20, rpx);
710
+
711
+ & > view {
712
+ width: unit(450, rpx);
713
+ height: unit(450, rpx);
714
+ padding: unit(10, rpx);
715
+
716
+ & > image {
717
+ width: unit(450, rpx);
718
+ height: unit(450, rpx);
719
+ }
720
+ }
721
+ }
722
+ &-refresh {
723
+ border-radius: 50rpx;
724
+ border: 2rpx solid #999999;
725
+ display: flex;
726
+ justify-content: center;
727
+ align-items: center;
728
+ padding: 20rpx 0 20rpx 0;
729
+ color: #999;
730
+ width: 300rpx;
731
+ position: relative;
732
+ left: 50%;
733
+ transform: translateX(-50%);
734
+ margin-top: 30rpx;
735
+ & > text {
736
+ margin-left: 20rpx;
737
+ }
738
+ }
739
+ }
740
+ &-pay {
741
+ border-radius: 16rpx;
742
+ border: 2rpx solid #eeeeee;
743
+ display: flex;
744
+ flex-direction: column;
745
+ padding: 24rpx;
746
+ margin-top: 30rpx;
747
+ font-size: 28rpx;
748
+ &-type {
749
+ display: flex;
750
+ justify-content: space-between;
751
+ align-items: center;
752
+ font-size: 28rpx;
753
+ color: #666666;
754
+ & > view:nth-child(2) {
755
+ display: flex;
756
+ align-items: center;
757
+ }
758
+ }
759
+ &-id {
760
+ color: #333;
761
+ font-weight: 500;
762
+ text-align: right;
763
+ margin-top: 24rpx;
764
+ }
765
+ }
766
+ &-chose {
767
+ padding: 28rpx 40rpx;
768
+ &-select {
769
+ display: flex;
770
+ justify-content: space-between;
771
+ align-items: center;
772
+ border-bottom: 2rpx solid #eee;
773
+ padding-bottom: 24rpx;
774
+ &-left {
775
+ display: flex;
776
+ align-items: center;
777
+ flex-direction: column;
778
+ & > view:first-child {
779
+ display: flex;
780
+ align-items: center;
781
+ font-size: 24rpx;
782
+ color: #333;
783
+ & > text {
784
+ margin-left: 10rpx;
785
+ }
786
+ }
787
+ & > view:last-child {
788
+ font-size: 48rpx;
789
+ font-weight: 500;
790
+ color: #333;
791
+ margin-top: 12rpx;
792
+ }
793
+ }
794
+ }
795
+ &-bussiness {
796
+ padding-top: 24rpx;
797
+ font-size: 24rpx;
798
+ & > view:first-child {
799
+ color: #666;
800
+ }
801
+ & > view:last-child {
802
+ color: #999;
803
+ margin-top: 20rpx;
804
+ }
805
+ }
806
+ }
807
+ }
808
+ .bottom_btn {
809
+ position: fixed;
810
+ width: 100%;
811
+ padding: 24rpx 0;
812
+ background: #ffffff;
813
+ box-shadow: 0 0 0px 1px rgba(0, 0, 0, 0.1);
814
+ transition: 500ms all;
815
+ padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
816
+ padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
817
+ }
818
+ }
819
+ </style>
820
+ <style>
821
+ .cancel ::v-deep .uni-picker-action-cancel ::after {
822
+ content: "全部" !important;
823
+ }
824
+ </style>