jufubao-base 1.0.158 → 1.0.159-beta2

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 (84) hide show
  1. package/package.json +1 -1
  2. package/src/common/authorize.js +201 -70
  3. package/src/components/JfbBaseAddress/JfbBaseAddress.vue +7 -6
  4. package/src/components/JfbBaseAfterOrderDetail/JfbBaseAfterOrderDetail.vue +5 -3
  5. package/src/components/JfbBaseAfterOrderList/JfbBaseAfterOrderList.vue +3 -2
  6. package/src/components/JfbBaseBack/JfbBaseBack.vue +10 -8
  7. package/src/components/JfbBaseBackground/JfbBaseBackground.vue +3 -2
  8. package/src/components/JfbBaseBlock/JfbBaseBlock.vue +3 -2
  9. package/src/components/JfbBaseCard/JfbBaseCard.vue +8 -4
  10. package/src/components/JfbBaseCardBindV2/JfbBaseCardBindV2.vue +57 -26
  11. package/src/components/JfbBaseCardDetail/JfbBaseCardDetail.vue +14 -15
  12. package/src/components/JfbBaseCardDetailEntry/Attr.js +22 -0
  13. package/src/components/JfbBaseCardDetailEntry/JfbBaseCardDetailEntry.vue +361 -425
  14. package/src/components/JfbBaseCardDisabled/JfbBaseCardDisabled.vue +4 -4
  15. package/src/components/JfbBaseCardDisabledEntry/JfbBaseCardDisabledEntry.vue +7 -9
  16. package/src/components/JfbBaseCardEntry/Attr.js +22 -1
  17. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +81 -34
  18. package/src/components/JfbBaseCardInfo/JfbBaseCardInfo.vue +35 -19
  19. package/src/components/JfbBaseCardInfoEntry/JfbBaseCardInfoEntry.vue +8 -4
  20. package/src/components/JfbBaseCardMerge/JfbBaseCardMerge.vue +4 -3
  21. package/src/components/JfbBaseCardMergeEntry/JfbBaseCardMergeEntry.vue +23 -18
  22. package/src/components/JfbBaseCardShift/JfbBaseCardShift.vue +4 -11
  23. package/src/components/JfbBaseCardShiftEntry/JfbBaseCardShiftEntry.vue +16 -19
  24. package/src/components/JfbBaseCardSweepInfo/JfbBaseCardSweepInfo.vue +3 -2
  25. package/src/components/JfbBaseCardV2/JfbBaseCardV2.vue +34 -18
  26. package/src/components/JfbBaseCardV3/JfbBaseCardV3.vue +14 -14
  27. package/src/components/JfbBaseCity/JfbBaseCity.vue +3 -2
  28. package/src/components/JfbBaseClear/JfbBaseClear.vue +3 -2
  29. package/src/components/JfbBaseConList/JfbBaseConList.vue +3 -2
  30. package/src/components/JfbBaseConPhone/JfbBaseConPhone.vue +3 -2
  31. package/src/components/JfbBaseEntry/Attr.js +22 -0
  32. package/src/components/JfbBaseEntry/JfbBaseEntry.vue +80 -16
  33. package/src/components/JfbBaseExpressDetail/JfbBaseExpressDetail.vue +3 -4
  34. package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +31 -20
  35. package/src/components/JfbBaseFastLink/XdFastNav.vue +2 -2
  36. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +0 -1
  37. package/src/components/JfbBaseHeader/JfbBaseHeader.vue +3 -2
  38. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +16 -6
  39. package/src/components/JfbBaseLoginForgetPwd/JfbBaseLoginForgetPwd.vue +7 -9
  40. package/src/components/JfbBaseLoginSetPwd/JfbBaseLoginSetPwd.vue +6 -6
  41. package/src/components/JfbBaseMapOverlay/JfbBaseMapOverlay.vue +19 -5
  42. package/src/components/JfbBaseMapOverlay/XdMapOverlay.vue +52 -37
  43. package/src/components/JfbBaseMapSearch/JfbBaseMapSearch.vue +3 -2
  44. package/src/components/JfbBaseMergeUserCard/JfbBaseMergeUserCard.vue +28 -27
  45. package/src/components/JfbBaseMultipleExpress/JfbBaseMultipleExpress.vue +5 -5
  46. package/src/components/JfbBaseMy/JfbBaseMy.vue +3 -3
  47. package/src/components/JfbBaseMySetting/JfbBaseMySetting.vue +6 -4
  48. package/src/components/JfbBaseNotice/Attr.js +0 -2
  49. package/src/components/JfbBaseNotice/JfbBaseNotice.vue +36 -14
  50. package/src/components/JfbBaseNotice/XdNoticeBar.vue +17 -1
  51. package/src/components/JfbBaseNoticeBottom/JfbBaseNoticeBottom.vue +3 -2
  52. package/src/components/JfbBaseNoticeTop/JfbBaseNoticeTop.vue +3 -2
  53. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +5 -4
  54. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +4 -3
  55. package/src/components/JfbBasePay/JfbBasePay.vue +3 -2
  56. package/src/components/JfbBasePhoneCollect/JfbBasePhoneCollect.vue +12 -7
  57. package/src/components/JfbBasePhoneLogin/JfbBasePhoneLogin.vue +13 -7
  58. package/src/components/JfbBasePoster/JfbBasePoster.vue +118 -18
  59. package/src/components/JfbBasePoster/MoreScreen.vue +155 -37
  60. package/src/components/JfbBasePosterBigSmall/Attr.js +1 -4
  61. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +191 -67
  62. package/src/components/JfbBasePosterEntry/JfbBasePosterEntry.vue +90 -20
  63. package/src/components/JfbBasePosterType/FourScreen.vue +162 -18
  64. package/src/components/JfbBasePosterType/JfbBasePosterType.vue +0 -35
  65. package/src/components/JfbBaseRecharge/JfbBaseRecharge.vue +4 -4
  66. package/src/components/JfbBaseRechargeOrder/JfbBaseRechargeOrder.vue +3 -4
  67. package/src/components/JfbBaseRechargeOrderDetail/JfbBaseRechargeOrderDetail.vue +4 -7
  68. package/src/components/JfbBaseRechargeSuccess/JfbBaseRechargeSuccess.vue +6 -9
  69. package/src/components/JfbBaseSearch/JfbBaseSearch.vue +3 -2
  70. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +2 -1
  71. package/src/components/JfbBaseUserCenter/JfbBaseUserCenter.vue +3 -2
  72. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +5 -3
  73. package/src/components/JfbBaseUserOrder/JfbBaseUserOrder.vue +4 -3
  74. package/src/components/JfbBaseVideo/JfbBaseVideo.vue +14 -11
  75. package/src/components/JfbBaseVideo/XdVideo.vue +0 -4
  76. package/src/components/JfbBaseWallet/JfbBaseWallet.vue +3 -2
  77. package/src/components/JfbBaseWalletDetail/JfbBaseWalletDetail.vue +5 -8
  78. package/src/components/JfbBaseWalletEffective/JfbBaseWalletEffective.vue +5 -8
  79. package/src/components/JfbBaseWalletIndex/JfbBaseWalletIndex.vue +7 -17
  80. package/src/components/JfbBaseWalletItem/JfbBaseWalletItem.vue +13 -21
  81. package/src/components/JfbBaseWebview/JfbBaseWebview.vue +4 -3
  82. package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +5 -4
  83. package/src/components/JfbBaseWxAuthorizeError/JfbBaseWxAuthorizeError.vue +3 -4
  84. package/src/mixins/colorCardMixins.js +1 -1
@@ -115,8 +115,9 @@ export default {
115
115
  };
116
116
  },
117
117
  watch: {
118
- container(value) {
119
- this.init(value);
118
+ container(value,oldValue) {
119
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
120
+ if (this.$configProject['isPreview']) this.init(value)
120
121
  },
121
122
  },
122
123
  created() {
@@ -160,13 +161,12 @@ export default {
160
161
  },
161
162
  handleUnBindCard(item) {
162
163
  this.$xdConfirm({
163
- $vm: this,
164
+ styles: this.styles,
164
165
  content: "您确定要解除绑定票券吗",
165
166
  title: "系统提示",
166
167
  width: "80%",
167
168
  isTitle: true,
168
169
  zIndex: 2000,
169
- vm: this,
170
170
  success: (res) => {
171
171
  if (res.confirm) {
172
172
  jfbRootExec("disabledCardUnbind", {
@@ -11,7 +11,7 @@
11
11
  v-if="isEditx && active"
12
12
  >
13
13
  <view class="jfb-base-card-disabled-entry__edit-icon" @click="delEdit"
14
- >删除</view
14
+ >删除</view
15
15
  >
16
16
  </view>
17
17
  <!-- #endif -->
@@ -178,12 +178,13 @@ export default {
178
178
  return this.fixedStyle({height: 0, zIndex: 111});
179
179
  },
180
180
  emptyBg() {
181
- return this.getNoData();
181
+ return this.getNoData();
182
182
  },
183
183
  },
184
184
  watch: {
185
- container(value) {
186
- this.init(value);
185
+ container(value,oldValue) {
186
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
187
+ if (this.$configProject['isPreview']) this.init(value)
187
188
  },
188
189
  },
189
190
  created() {
@@ -195,7 +196,6 @@ export default {
195
196
  this.getCardList();
196
197
  },
197
198
 
198
-
199
199
  getCardList() {
200
200
  this.$xdShowLoading({});
201
201
  jfbRootExec("getDisableCardListEntry", {vm: this, data: {is_all: "Y", is_show_entry_settings: 'Y'},})
@@ -226,13 +226,12 @@ export default {
226
226
 
227
227
  handleAllUnBindCard(){
228
228
  this.$xdConfirm({
229
- $vm: this,
229
+ styles: this.styles,
230
230
  content: "您确定要解除绑定所有票券吗?",
231
231
  title: "系统提示",
232
232
  width: "80%",
233
233
  isTitle: true,
234
234
  zIndex: 2000,
235
- vm: this,
236
235
  success: (res) => {
237
236
  if (res.confirm) {
238
237
  let cardIds = this.cardOrgList.map(item=>{
@@ -259,13 +258,12 @@ export default {
259
258
 
260
259
  handleUnBindCard(item) {
261
260
  this.$xdConfirm({
262
- $vm: this,
261
+ styles: this.styles,
263
262
  content: "您确定要解除绑定票券吗?",
264
263
  title: "系统提示",
265
264
  width: "80%",
266
265
  isTitle: true,
267
266
  zIndex: 2000,
268
- vm: this,
269
267
  success: (res) => {
270
268
  if (res.confirm) {
271
269
  jfbRootExec("disabledCardUnbindEntry", {
@@ -4,6 +4,28 @@ export default {
4
4
  style: [],
5
5
  advanced: [],
6
6
  content: [
7
+ {
8
+ label: '选择综合入口类型:',
9
+ ele: 'xd-site-select-list',
10
+ valueKey: 'entryGroupId',
11
+ value: 'default',
12
+ placeholder: '请选择综合入口类型',
13
+ multiple: false,
14
+ groupKey:'content',
15
+ className: 'input50',
16
+ rules: [
17
+ {required: true, message: '请选择综合入口类型', trigger: ['blur', 'change']}
18
+ ],
19
+ handleCustom({action, data}) {
20
+ XdBus.getParentApi('getEntryGroupOption')({key: Date.now()})
21
+ .then(res => {
22
+ data.cb(res.list)
23
+ })
24
+ .catch(error => {
25
+ console.error(error);
26
+ });
27
+ },
28
+ },
7
29
  {
8
30
  label: '提示内容:',
9
31
  ele: 'xd-site-news',
@@ -312,6 +334,5 @@ export default {
312
334
  },
313
335
  inline: false,
314
336
  },
315
-
316
337
  ],
317
338
  };
@@ -76,6 +76,7 @@
76
76
  :style="{ background: noticeBackgroundColor }"
77
77
  >
78
78
  <xd-notice-bar
79
+ style="width: 100%"
79
80
  :showIcon="true"
80
81
  :scrollable="true"
81
82
  :speed="20"
@@ -386,6 +387,8 @@ import { mapState, mapActions } from "vuex";
386
387
  import { getContainerPropsValue, isWechat,isQrCode } from "@/utils/xd.base";
387
388
  import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar";
388
389
  import { Base64 } from "js-base64";
390
+ import getServiceUrl from "@/common/getServiceUrl";
391
+ import {parsePath} from "@/utils/linkUrl";
389
392
  const Color = require("color");
390
393
 
391
394
  export default {
@@ -413,8 +416,9 @@ export default {
413
416
  }
414
417
  },
415
418
  watch: {
416
- container(value) {
417
- this.init(value)
419
+ container(value,oldValue) {
420
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
421
+ if (this.$configProject['isPreview']) this.init(value)
418
422
  },
419
423
  tabIndex(){
420
424
  this.clearDefault();
@@ -433,6 +437,7 @@ export default {
433
437
  isPreview: false,
434
438
  noticeStatus: false,
435
439
  loadingCardList: true,
440
+ entryGroupId: '',//加载入口数据组别
436
441
 
437
442
  cutIndex: 1,
438
443
  tabIndex: 1,
@@ -486,7 +491,6 @@ export default {
486
491
  methods: {
487
492
 
488
493
  init(container){
489
- //设置
490
494
  this.cardLayout = getContainerPropsValue(container,"content.cardLayout","1");
491
495
  this.changeUrl = getContainerPropsValue(container,"content.change_url",{value: ""}).value;
492
496
  this.disabledUrl = getContainerPropsValue(container,"content.disabled_url",{value: ""}).value;
@@ -496,6 +500,8 @@ export default {
496
500
  this.login_name = getContainerPropsValue(container, "content.login_name", "登录");
497
501
  this.isShowCode = getContainerPropsValue(container, "content.isShowCode", "Y");
498
502
  this.bindCard = getContainerPropsValue(container,"content.bindCard","1");
503
+ //'wechat_mini_program|default'
504
+ this.entryGroupId = getContainerPropsValue(container,"content.entryGroupId","default");
499
505
  },
500
506
 
501
507
  handleToLink(path) {
@@ -577,6 +583,7 @@ export default {
577
583
  /**
578
584
  * @description 已绑定卡登录
579
585
  * @param item
586
+ * @param entry
580
587
  */
581
588
  handleBindLogin(item , entry) {
582
589
  //卡券登录
@@ -595,7 +602,7 @@ export default {
595
602
  //#ifdef MP-WEIXIN
596
603
  if (this.jfbAuthorize !== null) {
597
604
  this.jfbAuthorize.setCardToken(res);
598
- this.handleToApp(entry);
605
+ this.handleClick(entry);
599
606
  }
600
607
  //#endif
601
608
  if (this.$configProject.isPreview) {
@@ -603,7 +610,7 @@ export default {
603
610
  }
604
611
 
605
612
  else {
606
- this.handleToApp(entry);
613
+ this.handleClick(entry);
607
614
  }
608
615
  })
609
616
  .catch((res) => {
@@ -618,43 +625,78 @@ export default {
618
625
  }, false);
619
626
  }
620
627
  },
621
- toApp(url){
622
- this.$xdUniHelper.redirectTo({
623
- url
624
- })
625
- },
626
- handleToApp(entry){
627
- let item, redirectUrl;
628
- try{
629
- item = JSON.parse(entry['redirect_data']);
630
- }catch (e) {
631
- return;
628
+
629
+
630
+ getCardPath(custom_redirect_data = {}){
631
+ //#ifdef H5
632
+ return null;
633
+ //#endif
634
+ //#ifdef MP-WEIXIN
635
+ const dir = custom_redirect_data.dir;
636
+ const actDir = this.projectAttr['deploy_dir'];
637
+ if(custom_redirect_data.appType === 'wxmp') {
638
+ if(dir === actDir) {
639
+ return {
640
+ cardPath: custom_redirect_data.path,
641
+ cardSelf: 'wxmp',
642
+ };
643
+ }
644
+ else return null;
645
+ }
646
+ else if(custom_redirect_data.appType === 'h5'){
647
+ return {
648
+ cardPath: custom_redirect_data.site_url,
649
+ cardSelf: 'h5',
650
+ };
632
651
  }
633
- const {dir, path, host} = item;
652
+ else return null;
653
+ //#endif
654
+ },
655
+
656
+ handleClick(entry){
657
+ const {dir, path, host, appType} = entry['redirect_data'];
658
+ let regHttp = /^(\/\/|http:\/\/|https:\/\/).+$/;
659
+ let regSp = /(-apiuri\/v)/;
660
+
661
+ if(appType === undefined) entry.redirect_data.appType = 'h5';
634
662
  let nsp = Base64.encodeURI(JSON.stringify({business_code: entry['business_code']}));
635
663
 
636
664
  //外站配置地址
637
- if (entry.redirect_type === 'URL') {
638
- if (item['path'].indexOf('?') === -1) {
639
- redirectUrl = `${item['path']}?x-common=${nsp}&vs=${new Date().getTime()}`
640
- } else redirectUrl = `${item['path']}&x-common=${nsp}&vs=${new Date().getTime()}`;
641
- this.toApp(redirectUrl);
642
- return;
665
+ if(entry.redirect_type === 'URL') {
666
+ if(regHttp.test(entry.redirect_data['path']) || regSp.test(entry.redirect_data['path'])) {
667
+ this.$xdUniHelper.redirectTo({
668
+ url:`${entry.redirect_data['path']}?x-common=${nsp}&vs=${new Date().getTime()}${cardPathStr}`
669
+ }, false)
670
+ }
671
+ else {
672
+ console.error(`配置错误:${entry.redirect_data['path']}`);
673
+ throw new Error(`配置错误:${entry.redirect_data['path']}`)
674
+ }
675
+ return
643
676
  }
644
677
 
645
- //站内转换
646
- let jumpUrl = item.path;
647
- //#ifdef H5
648
- jumpUrl = `//${host}/${dir}${path}`;
678
+ //站内应用处理
679
+ let jumpUrl = '';
680
+ let jumpUrlObj = parsePath(path);
681
+ let cardPathStr = '';
682
+ if(jumpUrlObj.isSameApp) jumpUrl = jumpUrlObj.url;
683
+ else jumpUrl = `//${host}/${jumpUrlObj.dir}${jumpUrlObj.url}`;
684
+
685
+ //#ifdef MP-WEIXIN
686
+ //获取自定义卡券登录地址(微信小程序跳转到H5平台起作用)
687
+ if(entry.redirect_data.appType === 'h5') {
688
+ const custom_redirect_data = this.$xdUniHelper.checkVarType(entry['custom_redirect_data']) === 'object'?entry['custom_redirect_data']:{};
689
+ const cardPathObject = this.getCardPath(custom_redirect_data);
690
+ if(cardPathObject !== null) {
691
+ const {cardPath, cardSelf} =cardPathObject
692
+ if(cardPath) cardPathStr = `&card-login=${encodeURIComponent(cardPath)}&cardSelf=${cardSelf}`
693
+ }
694
+ }
649
695
  //#endif
650
696
 
651
- if (item['fixed_business_code'] === '') {
652
- redirectUrl = `${jumpUrl}?x-common=${nsp}&vs=${new Date().getTime()}`
653
- }
654
- else {
655
- redirectUrl = `${jumpUrl}?x-common=${nsp}&vs=${new Date().getTime()}`
656
- }
657
- this.toApp(redirectUrl);
697
+ jumpUrl = `${jumpUrl}?x-common=${nsp}&vs=${new Date().getTime()}${cardPathStr}`;
698
+ if(regHttp.test(jumpUrl)) this.$xdUniHelper.redirectTo({url:jumpUrl}, false)
699
+ else this.$xdUniHelper.navigateTo({url:jumpUrl}, false)
658
700
  },
659
701
 
660
702
  toDetail(item, out=true) {
@@ -692,6 +734,7 @@ export default {
692
734
  if(options['jfb_business_code']) {
693
735
  params['card_business_code'] = options['jfb_business_code'];
694
736
  }
737
+ if(this.entryGroupId) params['group_id'] = this.entryGroupId;
695
738
  this.$xdShowLoading({});
696
739
  jfbRootExec("getListEntryCardBind", {
697
740
  vm: this,
@@ -713,6 +756,10 @@ export default {
713
756
  ),
714
757
  };
715
758
  });
759
+
760
+ //过滤入口配置
761
+ res['site_entry_settings'] = this.filterNotSupportEntry(res['site_entry_settings']);
762
+
716
763
  this.ajaxCardList = res;
717
764
  this.hasChangeStatus = this.getCardGroupItem(this.ajaxCardList.list.filter((item) => {
718
765
  return item["is_exchange"] === "Y";
@@ -36,16 +36,24 @@
36
36
  v-model="card_password"
37
37
  :placeholder="card_pwd_placeholder"
38
38
  />
39
+ <!--#ifdef H5-->
39
40
  <xd-font-icon
40
- @click="isPassword = !isPassword"
41
+ @click="handleIcon()"
41
42
  :icon="isPassword ? 'iconbiyan' : 'iconchakan'"
42
43
  ></xd-font-icon>
44
+ <!--#endif-->
45
+ <!--#ifdef MP-WEIXIN-->
46
+ <xd-font-icon
47
+ :width="72"
48
+ :height="72"
49
+ @click="handleIcon()"
50
+ :icon="isPassword ? 'iconbiyan' : 'iconchakan'"
51
+ ></xd-font-icon>
52
+ <!--#endif-->
43
53
  </view>
44
54
  </view>
45
55
  <view class="jfb-base-card-info__body-footer" :style="prod_bottom">
46
- <xd-button type="primary" width="360rpx" @click="handleGetInfo"
47
- >确认</xd-button
48
- >
56
+ <xd-button type="primary" width="360rpx" @click="handleGetInfo">确认</xd-button>
49
57
  </view>
50
58
  </view>
51
59
 
@@ -78,15 +86,12 @@
78
86
  <view
79
87
  v-if="info.other_card_point && info.card_point_type !== 1"
80
88
  class="jfb-base-card-info__body-residue-reach"
81
- >购买其他物品可抵:{{ info.other_card_point }}</view
82
- >
89
+ >购买其他物品可抵:{{ info.other_card_point }}</view>
83
90
  </view>
84
91
  <view
85
92
  class="jfb-base-card-info__body-residue-business"
86
93
  v-if="info.card_point_type !== 1"
87
- >
88
- 所属业务线:{{ info.main_business_code_name }}
89
- </view>
94
+ >所属业务线:{{ info.main_business_code_name }}</view>
90
95
  </view>
91
96
  <view :style="{ height: '100rpx' }"></view>
92
97
  </view>
@@ -129,18 +134,10 @@ export default {
129
134
  label: "票券号码",
130
135
  key: "card_number",
131
136
  },
132
- // {
133
- // label: "票券类型",
134
- // key: "unit",
135
- // },
136
137
  {
137
138
  label: "票券状态",
138
139
  key: "card_status_name",
139
140
  },
140
- // {
141
- // label: "票券转换",
142
- // key: "is_exchange_name",
143
- // },
144
141
  {
145
142
  label: "有效期",
146
143
  key: "end_time",
@@ -177,7 +174,7 @@ export default {
177
174
  return true;
178
175
  },
179
176
  showValueKey(){
180
- if(this.info.is_expired === "Y"){
177
+ if(this.info && this.info.is_expired === "Y"){
181
178
  return this.valueKey.filter(item => item.key !== "end_time");
182
179
  }
183
180
  return this.valueKey;
@@ -185,6 +182,9 @@ export default {
185
182
  },
186
183
  created() {},
187
184
  methods: {
185
+ handleIcon(){
186
+ this.isPassword = !this.isPassword
187
+ },
188
188
  toShowCouponDialog(){
189
189
  if(this.info){
190
190
  jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {user_card_number: this.info.card_number})
@@ -256,7 +256,7 @@ export default {
256
256
  //卡券已被自己绑定时的弹框
257
257
  handleBindConfirm(){
258
258
  this.$xdConfirm({
259
- $vm: this,
259
+ styles: this.styles,
260
260
  width: '90%',
261
261
  content: '您已绑定该票券,无需再次绑定',
262
262
  confirmText: '我的票券',
@@ -293,6 +293,12 @@ export default {
293
293
  onJfbLoad(options) {
294
294
  this.init();
295
295
  this.qrcode = options.qrcode;
296
+ //#ifdef MP-WEIXIN
297
+ if(options.qrcode) {
298
+ this.qrcode = decodeURIComponent(options.qrcode);
299
+ }
300
+
301
+ //#endif
296
302
  if(options.inCallback) {
297
303
  this.inCallbackUrlOrg = options.inCallback;
298
304
  }
@@ -407,6 +413,16 @@ export default {
407
413
  color: #a6a6a6;
408
414
  margin-right: unit(70, rpx);
409
415
  text-align: center;
416
+
417
+
418
+ }
419
+
420
+ & .mp {
421
+ display: flex;
422
+ justify-content: center;
423
+ align-items: center;
424
+ width: 72rpx;
425
+ height: 72rpx
410
426
  }
411
427
 
412
428
  input {
@@ -168,8 +168,9 @@ export default {
168
168
  };
169
169
  },
170
170
  watch: {
171
- container(value) {
172
- this.init(value);
171
+ container(value,oldValue) {
172
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
173
+ if (this.$configProject['isPreview']) this.init(value)
173
174
  },
174
175
  },
175
176
  computed: {
@@ -194,7 +195,7 @@ export default {
194
195
  handleToLink() {
195
196
  if(this.info.card_point===0) {
196
197
  this.$xdConfirm({
197
- $vm: this,
198
+ styles: this.styles,
198
199
  content: "票券余额为0,是否确认绑定?",
199
200
  width: "80%",
200
201
  success: (res) => {
@@ -269,7 +270,7 @@ export default {
269
270
  //卡券已被自己绑定时的弹框
270
271
  handleBindConfirm(){
271
272
  this.$xdConfirm({
272
- $vm: this,
273
+ styles: this.styles,
273
274
  width: '90%',
274
275
  content: '您已绑定该票券,无需再次绑定',
275
276
  confirmText: '我的票券',
@@ -308,6 +309,9 @@ export default {
308
309
  onJfbLoad(options) {
309
310
  this.init();
310
311
  this.qrcode = options.qrcode;
312
+ //#ifdef MP-WEIXIN
313
+ this.qrcode = decodeURIComponent(options.qrcode);
314
+ //#endif
311
315
  if(options.inCallback) {
312
316
  this.inCallbackUrlOrg = options.inCallback;
313
317
  }
@@ -135,8 +135,9 @@ export default {
135
135
  }),
136
136
  },
137
137
  watch: {
138
- container(value) {
139
- this.init(value);
138
+ container(value,oldValue) {
139
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
140
+ if (this.$configProject['isPreview']) this.init(value)
140
141
  },
141
142
  },
142
143
  created() {
@@ -203,7 +204,7 @@ export default {
203
204
  this.$xdConfirm({
204
205
  title: "是否确认合并卡",
205
206
  isHtml: true,
206
- $vm: this,
207
+ styles: this.styles,
207
208
  content: `转出卡号:${
208
209
  this.mergeForm.from_card_number
209
210
  }(剩余点数:${this.$xdUniHelper.divisionFloatNumber(
@@ -40,13 +40,14 @@
40
40
  </view>
41
41
  </view>
42
42
  <view class="merge-item" :style="{background: themeInStyle['color']}">
43
- <view class="merge-item-box" :style="{backgroundImage: `url(${themeInStyle})`}">
44
- <view class="merge-item-title">
43
+ <view class="merge-item-box" :style="{backgroundImage: `url(//img.jufubao.cn/component/card/mergbg.jpg)`}">
44
+ <view class="merge-item-title" :style="{background: themeOutStyle['color']}">
45
45
  <xd-font-icon icon="iconzhuanru"></xd-font-icon>
46
46
  <view>转入的票券</view>
47
47
  </view>
48
48
  <view>
49
49
  <xd-select
50
+ v-if="toListLoading"
50
51
  :disabled="toList.length === 0"
51
52
  :key="randomKey"
52
53
  :height="66"
@@ -88,10 +89,11 @@
88
89
  <view class="bottom_btn-mask"></view>
89
90
  <view class="bottom_btn" :style="prod_bottom">
90
91
  <xd-button
92
+ v-if="btnLoading"
91
93
  :key="disabledKey"
92
94
  :disabled="disabled"
93
95
  @click="handleToSubmit"
94
- width="90%"
96
+ style="width: 90%"
95
97
  :type="disabled ?'info': 'primary'"
96
98
  >合并</xd-button>
97
99
  </view>
@@ -137,9 +139,11 @@ export default {
137
139
  toList: [],
138
140
  fromSelect: null,
139
141
  toSelect: null,
140
- randomKey: Date.now(),
142
+ randomKey:'randomKey',
141
143
  valid_code:'',
142
144
  valid_token: 'valid_token',
145
+ toListLoading: true,
146
+ btnLoading: true,
143
147
 
144
148
 
145
149
  content: "",
@@ -178,13 +182,17 @@ export default {
178
182
  },
179
183
 
180
184
  disabled(){
181
- this.disabledKey = Date.now();
185
+ this.btnLoading = false;
186
+ setTimeout(()=>{
187
+ this.btnLoading = true;
188
+ },10)
182
189
  return this.fromSelect === null || this.toSelect === null;
183
190
  },
184
191
  },
185
192
  watch: {
186
- container(value) {
187
- this.init(value);
193
+ container(value,oldValue) {
194
+ if(JSON.stringify(value) === JSON.stringify(oldValue)) return;
195
+ if (this.$configProject['isPreview']) this.init(value)
188
196
  },
189
197
  },
190
198
  created() {
@@ -194,7 +202,6 @@ export default {
194
202
  this.switchValidToken();
195
203
  this.validImageAPIUrl = this.brandInfo["api_host"] + "/common/v1/valid_code/image/show";
196
204
  this.contentBackgroundColor = Color(this.warningColor).alpha(0.2).toString();
197
-
198
205
  },
199
206
  methods: {
200
207
  onJfbLoad(options) {
@@ -251,14 +258,6 @@ export default {
251
258
  },
252
259
 
253
260
  handleToSubmit() {
254
- // if (!this.valid_code) {
255
- // uni.showToast({
256
- // title: "验证码不能为空!",
257
- // icon: "none",
258
- // });
259
- // return;
260
- // }
261
-
262
261
  let outPrice = this.$xdUniHelper.divisionFloatNumber(this.fromSelect.card_point, 100);
263
262
  let outHtml = `${this.fromSelect.value}(剩余:${outPrice})`;
264
263
  let inPrice = this.$xdUniHelper.divisionFloatNumber(this.toSelect.card_point, 100);
@@ -266,7 +265,7 @@ export default {
266
265
  this.$xdConfirm({
267
266
  title: "是否确认合并票券",
268
267
  isHtml: true,
269
- $vm: this,
268
+ styles: this.styles,
270
269
  content: `<div class="label-value"><div><span>转出票券:</span><span>${outHtml}</span></div><div><span>转入票券:</span><span>${inHtml}</span></div></div>`,
271
270
  success: (action) => {
272
271
  let params = {
@@ -295,6 +294,8 @@ export default {
295
294
  });
296
295
  },
297
296
  handleChangeFrom(select) {
297
+ this.toListLoading = false;
298
+ this.randomKey = null;
298
299
  this.fromSelect = select.item;
299
300
  jfbRootExec("toCardListEntry", {vm: this, data: {card_number: select.item.value,},})
300
301
  .then((res) => {
@@ -308,7 +309,11 @@ export default {
308
309
  name: item.card_type_name
309
310
  };
310
311
  });
311
- this.randomKey = Date.now();
312
+ this.randomKey = this.$xdUniHelper.randomChar(20);
313
+ setTimeout(()=>{
314
+ this.toListLoading = true;
315
+ },50)
316
+
312
317
  })
313
318
  .catch((err) => {
314
319
  this.$xdLog.catch(err)
@@ -44,9 +44,7 @@
44
44
  <xd-radio size="small" v-model="isCheck"></xd-radio>
45
45
  <view>我已经阅读和同意积分转换规则</view>
46
46
  </view>
47
- <xd-button type="primary" width="360rpx" @click="handleChange"
48
- >立即转换</xd-button
49
- >
47
+ <xd-button type="primary" width="360rpx" @click="handleChange">立即转换</xd-button>
50
48
  </view>
51
49
  <xd-dailog
52
50
  class="dialog"
@@ -63,13 +61,8 @@
63
61
  icon="icondui-01"
64
62
  ></xd-font-icon>
65
63
  <view class="jfb-base-card-shift__body-success-title">转换成功</view>
66
- <view class="jfb-base-card-shift__body-success-content">
67
- 您已成功将 {{ card_number }} 转换为
68
- {{ changeNumber }}已自动帮您绑定成功,可在卡列表查询
69
- </view>
70
- <xd-button type="primarys" width="360rpx" @click="handleToLink"
71
- >返回列表</xd-button
72
- >
64
+ <view class="jfb-base-card-shift__body-success-content">您已成功将{{ card_number }} 转换为{{ changeNumber }}已自动帮您绑定成功,可在卡列表查询</view>
65
+ <xd-button type="primarys" width="360rpx" @click="handleToLink">返回列表</xd-button>
73
66
  </view>
74
67
  </xd-dailog>
75
68
  </view>
@@ -159,7 +152,7 @@ export default {
159
152
  this.$xdConfirm({
160
153
  title: "是否确认转换",
161
154
  isHtml: true,
162
- $vm: this,
155
+ styles: this.styles,
163
156
  content:content,
164
157
  success:(action)=>{
165
158
  if(action.confirm) {