jufubao-base 1.0.169-beta2 → 1.0.169-beta20

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 (42) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseHeader/JfbBaseHeader.vue +2 -2
  3. package/src/components/JfbBaseLogin/Attr.js +54 -16
  4. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +3 -1
  5. package/src/components/JfbBaseMapSearch/MapSearchMp.vue +1 -1
  6. package/src/components/JfbBaseNotice/JfbBaseNotice.vue +2 -2
  7. package/src/components/JfbBaseOrderDetail/Api.js +12 -7
  8. package/src/components/JfbBaseOrderDetail/Attr.js +28 -14
  9. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +68 -18
  10. package/src/components/JfbBaseOrderDetail/Mock.js +3 -1
  11. package/src/components/JfbBaseTfkCardBind/Api.js +49 -30
  12. package/src/components/JfbBaseTfkCardBind/Attr.js +139 -15
  13. package/src/components/JfbBaseTfkCardBind/JfbBaseTfkCardBind.vue +217 -19
  14. package/src/components/JfbBaseTfkCardBind/Mock.js +19 -9
  15. package/src/components/JfbBaseTfkCardDetail/Api.js +11 -0
  16. package/src/components/JfbBaseTfkCardDetail/Attr.js +158 -7
  17. package/src/components/JfbBaseTfkCardDetail/JfbBaseTfkCardDetail.vue +159 -17
  18. package/src/components/JfbBaseTfkCardLogin/Attr.js +490 -4
  19. package/src/components/JfbBaseTfkCardLogin/JfbBaseTfkCardLogin.vue +393 -106
  20. package/src/components/JfbBaseTfkCardLogin/Mock.js +6 -536
  21. package/src/components/JfbBaseTfkCardLogin/XdCouponItem.vue +75 -19
  22. package/src/components/JfbBaseTfkCardLogin/XdNotice.vue +550 -0
  23. package/src/components/JfbBaseTfkSearch/AllList.vue +350 -0
  24. package/src/components/JfbBaseTfkSearch/Api.js +11 -42
  25. package/src/components/JfbBaseTfkSearch/Attr.js +344 -32
  26. package/src/components/JfbBaseTfkSearch/ContentCinema.vue +157 -0
  27. package/src/components/JfbBaseTfkSearch/ContentFilm.vue +218 -0
  28. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +317 -0
  29. package/src/components/JfbBaseTfkSearch/ContentShop.vue +186 -0
  30. package/src/components/JfbBaseTfkSearch/CusAttr.js +213 -0
  31. package/src/components/JfbBaseTfkSearch/CustomList.vue +453 -0
  32. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +286 -35
  33. package/src/components/JfbBaseTfkSearch/Mock.js +242 -11
  34. package/src/components/JfbBaseTfkSearch/SkeletonCinema.vue +45 -0
  35. package/src/components/JfbBaseTfkSearch/SkeletonFilm.vue +109 -0
  36. package/src/components/JfbBaseTfkSearch/SkeletonProduct.vue +246 -0
  37. package/src/components/JfbBaseTfkSearch/SkeletonShop.vue +81 -0
  38. package/src/components/JfbBaseTfkSearch/handleKeyword.js +24 -0
  39. package/src/components/JfbBaseTfkSearch/listMixins.js +187 -0
  40. package/src/mixins/colorCardMixins.js +71 -9
  41. package/src/mixins/componentsMixins.js +376 -23
  42. package/src/mixins/posterMixins.js +122 -0
@@ -29,6 +29,7 @@ export default {
29
29
  { label: "隐藏业务线", value: "N" },
30
30
  { label: "展示业务线", value: "Y" }
31
31
  ],
32
+ hidden: data.previewCurrent !== 'main'
32
33
  },
33
34
  {
34
35
  label: '票券背景图:',
@@ -49,6 +50,7 @@ export default {
49
50
  action: 'action',
50
51
  sort: true,
51
52
  maxlen: 100,
53
+ hidden: data.previewCurrent !== 'main'
52
54
  },
53
55
  {
54
56
  label: "票券使用规则",
@@ -279,6 +281,7 @@ export default {
279
281
  ele: "title",
280
282
  size: "small",
281
283
  groupKey: 'style',
284
+ hidden: data.previewCurrent !== 'main'
282
285
  },
283
286
  {
284
287
  label: "字体颜色",
@@ -286,6 +289,7 @@ export default {
286
289
  valueKey: 'cardFontColor',
287
290
  value: data.cardFontColor || '#303133',
288
291
  groupKey:'style',
292
+ hidden: data.previewCurrent !== 'main'
289
293
  },
290
294
  {
291
295
  label: "外边距设置",
@@ -304,6 +308,7 @@ export default {
304
308
  placeholder: '请设置边距',
305
309
  inline: false,
306
310
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
311
+ hidden: data.previewCurrent !== 'main'
307
312
  },
308
313
  {
309
314
  label: "内边距设置",
@@ -322,15 +327,17 @@ export default {
322
327
  placeholder: '请设置内边距',
323
328
  inline: false,
324
329
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
330
+ hidden: data.previewCurrent !== 'main'
325
331
  },
326
332
  {
327
333
  label: "票券高度",
328
334
  ele: "el-input",
329
335
  valueKey: 'cardHeight',
330
- value: data.cardHeight || 260,
336
+ value: data.cardHeight || 340,
331
337
  type: 'number',
332
338
  groupKey:'style',
333
339
  placeholder: "请输入票券高度",
340
+ hidden: data.previewCurrent !== 'main'
334
341
  },
335
342
  {
336
343
  label: "票券圆角",
@@ -350,12 +357,14 @@ export default {
350
357
  console.error(error);
351
358
  });
352
359
  },
360
+ hidden: data.previewCurrent !== 'main'
353
361
  },
354
362
  {
355
363
  label: "业务板块样式配置",
356
364
  ele: 'title',
357
365
  size: 'small',
358
366
  groupKey: 'style',
367
+ hidden: data.previewCurrent !== 'main'
359
368
  },
360
369
  {
361
370
  label: "业务板块外边距",
@@ -374,6 +383,7 @@ export default {
374
383
  placeholder: '请设置内边距',
375
384
  inline: false,
376
385
  notice: '设置内边距,<span style="color: red">单位:像素</span>。',
386
+ hidden: data.previewCurrent !== 'main'
377
387
  },
378
388
  {
379
389
  label: "业务板块容器内边距",
@@ -392,13 +402,35 @@ export default {
392
402
  placeholder: '请设置内边距',
393
403
  inline: false,
394
404
  notice: '设置内边距,<span style="color: red">单位:像素</span>。',
405
+ hidden: data.previewCurrent !== 'main'
395
406
  },
396
407
  {
397
408
  label: "业务板块背景色",
398
409
  groupKey:'style',
399
410
  ele: 'xd-color',
400
411
  valueKey: 'bussTempBgColor',
401
- value: data.bussTempBgColor || '#ffffff',
412
+ value: data.bussTempBgColor || '',
413
+ hidden: data.previewCurrent !== 'main'
414
+ },
415
+ {
416
+ label: "业务板块圆角",
417
+ ele: 'xd-site-select-list',
418
+ valueKey: 'bussTempRadius',
419
+ value: data['bussTempRadius'] || 16,
420
+ groupKey:'style',
421
+ placeholder: '请选择内容圆角设置',
422
+ multiple: false,
423
+ className: 'input80',
424
+ handleCustom({ action, data }) {
425
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
426
+ .then(res => {
427
+ data.cb(res.list)
428
+ })
429
+ .catch(error => {
430
+ console.error(error);
431
+ });
432
+ },
433
+ hidden: data.previewCurrent !== 'main'
402
434
  },
403
435
  {
404
436
  label: "单项业务外边距",
@@ -417,6 +449,7 @@ export default {
417
449
  placeholder: '请设置外边距',
418
450
  inline: false,
419
451
  notice: '设置外边距,<span style="color: red">单位:像素</span>。',
452
+ hidden: data.previewCurrent !== 'main' || data.showBusinessList !== 'Y'
420
453
  },
421
454
  {
422
455
  label: "单项业务宽度",
@@ -427,12 +460,14 @@ export default {
427
460
  type: "number",
428
461
  className: 'input70',
429
462
  placeholder: "请输入单项业务宽度",
463
+ hidden: data.previewCurrent !== 'main' || data.showBusinessList !== 'Y'
430
464
  },
431
465
  {
432
466
  label: "使用规则、提货码样式配置",
433
467
  ele: 'title',
434
468
  size: 'small',
435
469
  groupKey:'style',
470
+ hidden: data.previewCurrent !== 'main'
436
471
  },
437
472
  {
438
473
  label: "外边距",
@@ -451,6 +486,7 @@ export default {
451
486
  placeholder: '请设置外边距',
452
487
  inline: false,
453
488
  notice: '设置外边距,<span style="color: red">单位:像素</span>。',
489
+ hidden: data.previewCurrent !== 'main'
454
490
  },
455
491
  {
456
492
  label: "单项内边距",
@@ -468,7 +504,8 @@ export default {
468
504
  },
469
505
  placeholder: '请设置内边距',
470
506
  inline: false,
471
- notice: '设置内边距,<span style="color: red">单位:像素</span>。'
507
+ notice: '设置内边距,<span style="color: red">单位:像素</span>。',
508
+ hidden: data.previewCurrent !== 'main'
472
509
  },
473
510
  {
474
511
  label: "单项间隔距离",
@@ -479,12 +516,42 @@ export default {
479
516
  type: "number",
480
517
  className: 'input70',
481
518
  placeholder: "请输入间隔距离",
519
+ hidden: data.previewCurrent !== 'main'
520
+ },
521
+ {
522
+ label: "单项背景色",
523
+ groupKey:'style',
524
+ ele: 'xd-color',
525
+ valueKey: 'listColBgColor',
526
+ value: data.listColBgColor || '#ffffff',
527
+ hidden: data.previewCurrent !== 'main'
528
+ },
529
+ {
530
+ label: "单项圆角",
531
+ ele: 'xd-site-select-list',
532
+ valueKey: 'listColRadius',
533
+ value: data['listColRadius'] || 16,
534
+ groupKey:'style',
535
+ placeholder: '请选择内容圆角设置',
536
+ multiple: false,
537
+ className: 'input80',
538
+ handleCustom({ action, data }) {
539
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
540
+ .then(res => {
541
+ data.cb(res.list)
542
+ })
543
+ .catch(error => {
544
+ console.error(error);
545
+ });
546
+ },
547
+ hidden: data.previewCurrent !== 'main'
482
548
  },
483
549
  {
484
550
  label: "提货码详情样式配置",
485
551
  ele: 'title',
486
552
  size: 'small',
487
553
  groupKey:'style',
554
+ hidden: data.previewCurrent !== 'pickup'
488
555
  },
489
556
  {
490
557
  label: "提货码详情外边距",
@@ -502,7 +569,8 @@ export default {
502
569
  },
503
570
  placeholder: '请设置外边距',
504
571
  inline: false,
505
- notice: '设置外边距,<span style="color: red">单位:像素</span>'
572
+ notice: '设置外边距,<span style="color: red">单位:像素</span>',
573
+ hidden: data.previewCurrent !== 'pickup'
506
574
  },
507
575
  {
508
576
  label: "提货码详情内边距",
@@ -520,7 +588,8 @@ export default {
520
588
  },
521
589
  placeholder: '请设置内边距',
522
590
  inline: false,
523
- notice: '设置外边距,<span style="color: red">单位:像素</span>'
591
+ notice: '设置外边距,<span style="color: red">单位:像素</span>',
592
+ hidden: data.previewCurrent !== 'pickup'
524
593
  },
525
594
  {
526
595
  label: "提货码详情背景色",
@@ -528,6 +597,53 @@ export default {
528
597
  ele: 'xd-color',
529
598
  valueKey: 'codeDetailBgColor',
530
599
  value: data.codeDetailBgColor || '#ffffff',
600
+ hidden: data.previewCurrent !== 'pickup'
601
+ },
602
+ {
603
+ label: "提货码详情圆角",
604
+ ele: 'xd-site-select-list',
605
+ valueKey: 'codeDetailRadius',
606
+ value: data['codeDetailRadius'] || 16,
607
+ groupKey:'style',
608
+ placeholder: '请选择内容圆角设置',
609
+ multiple: false,
610
+ className: 'input80',
611
+ handleCustom({ action, data }) {
612
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
613
+ .then(res => {
614
+ data.cb(res.list)
615
+ })
616
+ .catch(error => {
617
+ console.error(error);
618
+ });
619
+ },
620
+ hidden: data.previewCurrent !== 'pickup'
621
+ },
622
+ {
623
+ label: "提货码详情边框",
624
+ ele: "xd-border",
625
+ valueKey: 'codeDetailBorder',
626
+ value: data.codeDetailBorder || null,
627
+ groupKey:'style',
628
+ hidden: data.previewCurrent !== 'pickup'
629
+ },
630
+ {
631
+ label: "提货码详情边框阴影",
632
+ ele: "xd-shadow",
633
+ valueKey: 'codeDetailShadow',
634
+ value: data.codeDetailShadow || null,
635
+ groupKey:'style',
636
+ handleCustom({action, data}) {
637
+ XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_radius'})
638
+ .then(res => {
639
+ data.cb(res.list)
640
+ })
641
+ .catch(error => {
642
+ console.error(error);
643
+ data.cb([])
644
+ });
645
+ },
646
+ hidden: data.previewCurrent !== 'pickup'
531
647
  },
532
648
  {
533
649
  label: "二维码长宽设置",
@@ -538,6 +654,7 @@ export default {
538
654
  type: "number",
539
655
  className: 'input70',
540
656
  placeholder: "请输入二维码长宽",
657
+ hidden: data.previewCurrent !== 'pickup'
541
658
  },
542
659
  {
543
660
  label: "向商家付款前置图标配置",
@@ -548,6 +665,7 @@ export default {
548
665
  type: "text",
549
666
  className: 'input70',
550
667
  placeholder: "请输入图标代码",
668
+ hidden: data.previewCurrent !== 'pickup'
551
669
  },
552
670
  {
553
671
  label: "刷新二维码图标配置",
@@ -558,12 +676,14 @@ export default {
558
676
  type: "text",
559
677
  className: 'input70',
560
678
  placeholder: "请输入图标代码",
679
+ hidden: data.previewCurrent !== 'pickup'
561
680
  },
562
681
  {
563
682
  label: "规则详情样式配置",
564
683
  ele: 'title',
565
684
  size: 'small',
566
685
  groupKey:'style',
686
+ hidden: data.previewCurrent !== 'rule'
567
687
  },
568
688
  {
569
689
  label: "规则详情外边距",
@@ -581,7 +701,8 @@ export default {
581
701
  },
582
702
  placeholder: '请设置外边距',
583
703
  inline: false,
584
- notice: '设置外边距,<span style="color: red">单位:像素</span>'
704
+ notice: '设置外边距,<span style="color: red">单位:像素</span>',
705
+ hidden: data.previewCurrent !== 'rule'
585
706
  },
586
707
  {
587
708
  label: "规则详情内边距",
@@ -599,7 +720,8 @@ export default {
599
720
  },
600
721
  placeholder: '请设置内边距',
601
722
  inline: false,
602
- notice: '设置外边距,<span style="color: red">单位:像素</span>'
723
+ notice: '设置外边距,<span style="color: red">单位:像素</span>',
724
+ hidden: data.previewCurrent !== 'rule'
603
725
  },
604
726
  {
605
727
  label: "规则详情背景色",
@@ -607,6 +729,35 @@ export default {
607
729
  ele: 'xd-color',
608
730
  valueKey: 'ruleDetailBgColor',
609
731
  value: data.ruleDetailBgColor || '#ffffff',
732
+ hidden: data.previewCurrent !== 'rule'
733
+ },
734
+ {
735
+ label: "规则字体颜色",
736
+ groupKey:'style',
737
+ ele: 'xd-color',
738
+ valueKey: 'ruleDetailFontColor',
739
+ value: data.ruleDetailFontColor || '#303133',
740
+ hidden: data.previewCurrent !== 'rule'
741
+ },
742
+ {
743
+ label: "规则信息边框圆角",
744
+ ele: 'xd-site-select-list',
745
+ valueKey: 'ruleDetailRadius',
746
+ value: data.ruleDetailRadius || '0',
747
+ groupKey:'style',
748
+ placeholder: '请选择内容圆角设置',
749
+ multiple: false,
750
+ className: 'input80',
751
+ handleCustom({ action, data }) {
752
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
753
+ .then(res => {
754
+ data.cb(res.list)
755
+ })
756
+ .catch(error => {
757
+ console.error(error);
758
+ });
759
+ },
760
+ hidden: data.previewCurrent !== 'rule'
610
761
  }
611
762
  ].filter(i=>i)
612
763
  },
@@ -48,7 +48,9 @@
48
48
  <view class="bus_title">进入业务板块</view>
49
49
  <view class="bus_list">
50
50
  <view class="bus_item" v-for="(item, i) in businessList" :key="i"
51
- :style="businessItemBox">
51
+ :style="businessItemBox"
52
+ @click="handleBusinessLogin(item)"
53
+ >
52
54
  <view class="bus_img">
53
55
  <image :src="item.image_url" />
54
56
  </view>
@@ -57,17 +59,17 @@
57
59
  </view>
58
60
  </view>
59
61
  <view v-else>
60
- <xd-button type="primary">立即使用</xd-button>
62
+ <xd-button type="primary" @click="doCardLogin()">立即使用</xd-button>
61
63
  </view>
62
64
  </view>
63
65
  <view class="list_col_wrap" :style="listColWrapBoxStyle">
64
- <view class="list_item" :style="listColItemStyle">
66
+ <view class="list_item" :style="listColItemStyle" @click="switchModule('rule')">
65
67
  <view class="list_title">使用规则</view>
66
68
  <view class="list_icon">
67
69
  <xd-font-icon icon="iconxiangyou_xian" size="24"></xd-font-icon>
68
70
  </view>
69
71
  </view>
70
- <view class="list_item" :style="listColItemStyle">
72
+ <view class="list_item" :style="listColItemStyle" @click="switchModule('pickup')">
71
73
  <view class="list_title">提货码</view>
72
74
  <view class="list_icon">
73
75
  <xd-font-icon icon="iconxiangyou_xian" size="24"></xd-font-icon>
@@ -114,7 +116,9 @@
114
116
  import { getContainerPropsValue } from "@/utils/xd.base";
115
117
  import componentsMixins from "@/mixins/componentsMixins";
116
118
  import extsMixins from "@/mixins/extsMixins";
119
+ import colorCardMixins from "@/mixins/colorCardMixins";
117
120
  import getServiceUrl from '@/common/getServiceUrl'
121
+ import { mapState, mapActions } from "vuex";
118
122
  export default {
119
123
  name: "JfbBaseTfkCardDetail",
120
124
  components: {
@@ -123,7 +127,7 @@
123
127
  XdUnit,
124
128
  },
125
129
  mixins: [
126
- componentsMixins, extsMixins, JfbBaseTfkCardDetailMixin
130
+ componentsMixins, extsMixins, JfbBaseTfkCardDetailMixin, colorCardMixins
127
131
  ],
128
132
  data() {
129
133
  return {
@@ -143,7 +147,7 @@
143
147
  cardInfoMargin: {},
144
148
  cardInfoPadding: {},
145
149
  cardImageUrl: "",
146
- cardHeight: 260,
150
+ cardHeight: 340,
147
151
  cardRadius: 10,
148
152
  bussPadding: {},
149
153
  bussMargin: {},
@@ -163,9 +167,21 @@
163
167
  payPreIcon: "",
164
168
  refreshIcon: "",
165
169
  bussWidth: 100,
170
+ codeDetailRadius: 16,
171
+ codeDetailBorder: {},
172
+ codeDetailShadow: {},
173
+ ruleDetailFontColor: "",
174
+ ruleDetailRadius: 0,
175
+ bussTempRadius: 16,
176
+ listColBgColor: "",
177
+ listColRadius: 16,
166
178
  }
167
179
  },
168
180
  computed: {
181
+ ...mapState({
182
+ jwxSDK: (state) => state.jwxSDK,
183
+ jfbAuthorize: (state) => state.jfbAuthorize,
184
+ }),
169
185
  cardWrapBoxStyle(){
170
186
  let padding = `${this.checkValue(this.cardInfoMargin.top, 20)}rpx`;
171
187
  padding = `${padding} ${this.checkValue(this.cardInfoMargin.right, 20)}rpx`;
@@ -191,6 +207,7 @@
191
207
  margin: margin,
192
208
  padding: padding,
193
209
  backgroundColor: this.bussTempBgColor,
210
+ borderRadius: this.bussTempRadius + 'rpx',
194
211
  })
195
212
  },
196
213
 
@@ -235,12 +252,12 @@
235
252
  return bg
236
253
  },
237
254
  listColWrapBoxStyle(){
238
- let margin = `${this.checkValue(this.listColMargin.top, 20)}rpx`;
239
- margin = `${margin} ${this.checkValue(this.listColMargin.right, 20)}rpx`;
240
- margin = `${margin} ${this.checkValue(this.listColMargin.bottom, 20)}rpx`;
241
- margin = `${margin} ${this.checkValue(this.listColMargin.left, 20)}rpx`;
255
+ let padding = `${this.checkValue(this.listColMargin.top, 20)}rpx`;
256
+ padding = `${padding} ${this.checkValue(this.listColMargin.right, 20)}rpx`;
257
+ padding = `${padding} ${this.checkValue(this.listColMargin.bottom, 20)}rpx`;
258
+ padding = `${padding} ${this.checkValue(this.listColMargin.left, 20)}rpx`;
242
259
  return this.styleObjectToString({
243
- margin: margin,
260
+ padding: padding,
244
261
  })
245
262
  },
246
263
  listColItemStyle(){
@@ -251,6 +268,8 @@
251
268
  return this.styleObjectToString({
252
269
  padding,
253
270
  marginBottom: this.listColSpace + 'rpx',
271
+ backgroundColor: this.listColBgColor,
272
+ borderRadius: this.listColRadius + 'rpx',
254
273
  })
255
274
  },
256
275
  ruleDetailBoxStyle(){
@@ -266,9 +285,21 @@
266
285
  margin: margin,
267
286
  padding: padding,
268
287
  backgroundColor: this.ruleDetailBgColor,
288
+ color: this.ruleDetailFontColor,
289
+ borderRadius: this.ruleDetailRadius + 'rpx',
269
290
  })
270
291
  },
271
292
  codeDetailBoxStyle(){
293
+ let border = "none";
294
+ let boxShadow = "none";
295
+ if(this.codeDetailBorder && this.codeDetailBorder.type === 'Y'){
296
+ let { width, color } = this.codeDetailBorder.value || {};
297
+ border = `${width || 0}rpx solid ${color || 'transparent'}`;
298
+ }
299
+ if(this.codeDetailShadow && this.codeDetailShadow.type === 'Y'){
300
+ let { width, color } = this.codeDetailShadow.value || {};
301
+ boxShadow = `0 0 ${width || 0}rpx ${color || 'transparent'}`;
302
+ }
272
303
  let padding = `${this.checkValue(this.codeDetailPadding.top, 20)}rpx`;
273
304
  padding = `${padding} ${this.checkValue(this.codeDetailPadding.right, 20)}rpx`;
274
305
  padding = `${padding} ${this.checkValue(this.codeDetailPadding.bottom, 20)}rpx`;
@@ -281,6 +312,9 @@
281
312
  margin: margin,
282
313
  padding: padding,
283
314
  backgroundColor: this.codeDetailBgColor,
315
+ borderRadius: this.codeDetailRadius + 'rpx',
316
+ border: border,
317
+ boxShadow: boxShadow,
284
318
  })
285
319
  },
286
320
  qrcodeBoxStyle(){
@@ -318,12 +352,12 @@
318
352
  this.cardInfoMargin = getContainerPropsValue(value, 'content.cardInfoMargin', {top: 20, left: 20, right: 20, bottom: 20});
319
353
  this.cardInfoPadding = getContainerPropsValue(value, 'content.cardInfoPadding', {top: 20, left: 20, right: 20, bottom: 20});
320
354
  this.cardImageUrl = getContainerPropsValue(value, 'content.cardImageUrl', '');
321
- this.cardHeight = getContainerPropsValue(value, 'content.cardHeight', 260);
355
+ this.cardHeight = getContainerPropsValue(value, 'content.cardHeight', 340);
322
356
  this.cardRadius = getContainerPropsValue(value, 'content.cardRadius', 16);
323
357
  this.bussPadding = getContainerPropsValue(value, 'content.bussPadding', {top: 20, left: 20, right: 20, bottom: 20});
324
358
  this.bussMargin = getContainerPropsValue(value, 'content.bussMargin', {top: 20, left: 20, right: 20, bottom: 20});
325
359
  this.bussTempMargin = getContainerPropsValue(value, 'content.bussTempMargin', {top: 20, left: 20, right: 20, bottom: 20});
326
- this.bussTempBgColor = getContainerPropsValue(value, 'content.bussTempBgColor', '#fff');
360
+ this.bussTempBgColor = getContainerPropsValue(value, 'content.bussTempBgColor', 'transparent');
327
361
  this.listColMargin = getContainerPropsValue(value, 'content.listColMargin', {top: 20, left: 20, right: 20, bottom: 20});
328
362
  this.listColPadding = getContainerPropsValue(value, 'content.listColPadding', {top: 20, left: 20, right: 20, bottom: 20});
329
363
  this.listColSpace = getContainerPropsValue(value, 'content.listColSpace', 10);
@@ -338,25 +372,72 @@
338
372
  this.payPreIcon = getContainerPropsValue(value, 'content.payPreIcon', '');
339
373
  this.refreshIcon = getContainerPropsValue(value, 'content.refreshIcon', '');
340
374
  this.bussWidth = getContainerPropsValue(value, 'content.bussWidth', 100);
375
+ this.codeDetailRadius = getContainerPropsValue(value, 'content.codeDetailRadius', 16);
376
+ this.codeDetailBorder = getContainerPropsValue(value, 'content.codeDetailBorder', {});
377
+ this.codeDetailShadow = getContainerPropsValue(value, 'content.codeDetailShadow', {});
378
+ this.ruleDetailFontColor = getContainerPropsValue(value, 'content.ruleDetailFontColor', '');
379
+ this.ruleDetailRadius = getContainerPropsValue(value, 'content.ruleDetailRadius', 0);
380
+ this.bussTempRadius = getContainerPropsValue(value, 'content.bussTempRadius', 16);
381
+ this.listColBgColor = getContainerPropsValue(value, 'content.listColBgColor', '#fff');
382
+ this.listColRadius = getContainerPropsValue(value, 'content.listColRadius', 16);
383
+
384
+ console.log(this.codeDetailBorder, 'codeDetailBorder')
341
385
 
342
386
  if(this.$configProject.isPreview){
343
387
  this.curModule = this.previewCurrent;
344
388
  }
345
389
  },
390
+ switchModule(module){
391
+ this.curModule = module;
392
+ },
393
+ handleBusinessLogin(item){
394
+ this.doCardLogin(() => {
395
+ this.handleClick(item);
396
+ })
397
+ },
398
+ doCardLogin(cb){
399
+ this.$xdShowLoading({});
400
+ jfbRootExec("loginTfkCardBind", {
401
+ vm: this,
402
+ data: {
403
+ card_number: this.card_number
404
+ }
405
+ }).then(res => {
406
+ this.$xdHideLoading();
407
+ //#ifdef MP-WEIXIN
408
+ if (this.jfbAuthorize !== null) {
409
+ this.jfbAuthorize.setCardToken(res);
410
+ }
411
+ //#endif
412
+
413
+ if(cb) return cb();
414
+
415
+ if (this.$configProject.isPreview) {
416
+ console.log("handleBindLogin", "预览模式不跳转", this.inCallback);
417
+ } else {
418
+ this.$xdUniHelper.redirectTo({
419
+ url: this.settings.index
420
+ });
421
+ }
422
+ }).catch((res) => {
423
+ this.$xdHideLoading();
424
+ });
425
+ },
346
426
  getCardDetail(){
347
427
  jfbRootExec("getTfkCardDetail", {
348
428
  vm: this,
349
429
  data: {
350
430
  card_number: this.card_number,
351
- is_show_entry_settings: this.showBusinessList,
431
+ is_show_entry_settings: this.curModule === 'main' ? this.showBusinessList : "N",
352
432
  }
353
433
  }).then(res => {
354
434
  this.cardInfo = Object.assign({}, res, {
355
435
  other_card_point: res.other_card_point ? this.$xdUniHelper.divisionFloatNumber(res.other_card_point, 100) : 0
356
436
  });
357
- this.businessList = res.site_entry_settings.map(item => {
437
+ let businessList = this.filterNotSupportEntry(res.site_entry_settings);
438
+ this.businessList = businessList.filter(item => {
358
439
  item['image_url'] = getServiceUrl(item.image_url);
359
- return item;
440
+ return res.business_codes.includes(item.business_code);
360
441
  })
361
442
  if(!this.$configProject.isPreview) {
362
443
  this.setIntval(res.card_qrcode_expire);
@@ -365,6 +446,56 @@
365
446
  }
366
447
  })
367
448
  },
449
+ handleClick(entry){
450
+ const {dir, path, host, appType} = entry['redirect_data'];
451
+ let regHttp = /^(\/\/|http:\/\/|https:\/\/).+$/;
452
+ let regSp = /(-apiuri\/v)/;
453
+
454
+ if(!appType) entry.redirect_data.appType = 'h5';
455
+ let nsp = Base64.encodeURI(JSON.stringify({business_code: entry['business_code']}));
456
+
457
+ //外站配置地址
458
+ if(entry.redirect_type === 'URL') {
459
+ if(regHttp.test(entry.redirect_data['path']) || regSp.test(entry.redirect_data['path'])) {
460
+ this.$xdUniHelper.redirectTo({
461
+ url:`${entry.redirect_data['path']}?x-common=${nsp}&vs=${new Date().getTime()}${cardPathStr}`
462
+ }, false)
463
+ }
464
+ else {
465
+ console.error(`配置错误:${entry.redirect_data['path']}`);
466
+ throw new Error(`配置错误:${entry.redirect_data['path']}`)
467
+ }
468
+ return
469
+ }
470
+
471
+ //站内应用处理
472
+ let jumpUrl = path;
473
+ let cardPathStr = '';
474
+ const {deploy_dir} = this.projectAttr;
475
+ if(host === this.projectAttr.host && deploy_dir !== dir){
476
+ jumpUrl = `//${host}/${dir}${path}`;
477
+ //#ifdef MP-WEIXIN
478
+ jumpUrl = `https:${jumpUrl}`;
479
+ //#endif
480
+ }
481
+
482
+ //#ifdef MP-WEIXIN
483
+ //获取自定义卡券登录地址(微信小程序跳转到H5平台起作用)
484
+ if(entry.redirect_data.appType === 'h5') {
485
+ const custom_redirect_data = this.$xdUniHelper.checkVarType(entry['custom_redirect_data']) === 'object'?entry['custom_redirect_data']:{};
486
+ const cardPathObject = this.getCardPath(custom_redirect_data);
487
+ if(cardPathObject !== null) {
488
+ const {cardPath, cardSelf} =cardPathObject
489
+ if(cardPath) cardPathStr = `&card-login=${encodeURIComponent(cardPath)}&cardSelf=${cardSelf}`
490
+ }
491
+ }
492
+ //#endif
493
+
494
+ jumpUrl = `${jumpUrl}?x-common=${nsp}&vs=${new Date().getTime()}${cardPathStr}`;
495
+ console.warn(`entry.path:${jumpUrl}`);
496
+ if(regHttp.test(jumpUrl)) this.$xdUniHelper.redirectTo({url:jumpUrl}, false)
497
+ else this.$xdUniHelper.navigateTo({url:jumpUrl}, false)
498
+ },
368
499
  getContent() {
369
500
  jfbRootExec("getListBaseNewsContent", {
370
501
  vm: this,
@@ -449,6 +580,8 @@
449
580
  display: flex;
450
581
  flex-direction: column;
451
582
  justify-content: space-between;
583
+ font-size: 26rpx;
584
+ box-sizing: border-box;
452
585
  .card_top{
453
586
  display: flex;
454
587
  flex-direction: column;
@@ -459,6 +592,14 @@
459
592
  ._point{
460
593
  font-size: 40rpx;
461
594
  font-weight: bold;
595
+ ::v-deep .xd-unit{
596
+ height: auto !important;
597
+ font-weight: bold;
598
+ align-items: flex-end;
599
+ .xd-unit__unit{
600
+ line-height: 1.5 !important;
601
+ }
602
+ }
462
603
  ._unit{
463
604
  font-size: 24rpx;
464
605
  margin-left: 4rpx;
@@ -521,7 +662,6 @@
521
662
  }
522
663
  }
523
664
  .list_col_wrap{
524
- margin: 40rpx 0;
525
665
 
526
666
  .list_item{
527
667
  display: flex;
@@ -539,11 +679,13 @@
539
679
  .code_wrap{
540
680
  display: flex;
541
681
  flex-direction: column;
682
+ font-size: 28rpx;
542
683
  .code_title{
543
684
  display: flex;
544
685
  align-items: center;
545
686
  ._title{
546
687
  margin-left: 30rpx;
688
+ font-size: 32rpx;
547
689
  }
548
690
  }
549
691
  .barcode{