jufubao-base 1.0.145-beta2 → 1.0.145-beta21

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 (27) hide show
  1. package/package.json +1 -1
  2. package/src/common/ICB.SDK.js +78 -0
  3. package/src/common/authorize.js +187 -33
  4. package/src/components/JfbBaseAddress/XdAddress.vue +5 -1
  5. package/src/components/JfbBaseAfterOrderList/JfbBaseAfterOrderList.vue +1 -1
  6. package/src/components/JfbBaseCard/JfbBaseCard.vue +10 -9
  7. package/src/components/JfbBaseCardBindV2/JfbBaseCardBindV2.vue +4 -2
  8. package/src/components/JfbBaseCardDetailEntry/JfbBaseCardDetailEntry.vue +1 -3
  9. package/src/components/JfbBaseCardDisabled/JfbBaseCardDisabled.vue +3 -3
  10. package/src/components/JfbBaseCardDisabledEntry/JfbBaseCardDisabledEntry.vue +10 -5
  11. package/src/components/JfbBaseCardDisabledEntry/cardListMixins.js +15 -1
  12. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +5 -7
  13. package/src/components/JfbBaseCardInfo/JfbBaseCardInfo.vue +2 -1
  14. package/src/components/JfbBaseCardV2/JfbBaseCardV2.vue +1 -3
  15. package/src/components/JfbBaseCardV3/JfbBaseCardV3.vue +1 -3
  16. package/src/components/JfbBaseEntry/JfbBaseEntry.vue +13 -4
  17. package/src/components/JfbBaseLogin/Api.js +12 -0
  18. package/src/components/JfbBaseLogin/Attr.js +13 -1
  19. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +91 -39
  20. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +6 -6
  21. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +8 -3
  22. package/src/components/JfbBasePay/JfbBasePay.vue +7 -17
  23. package/src/components/JfbBasePosterType/JfbBasePosterType.vue +1 -1
  24. package/src/components/JfbBaseSearch/JfbBaseSearch.vue +11 -1
  25. package/src/components/JfbBaseWxAuthorize/Api.js +13 -0
  26. package/src/components/JfbBaseWxAuthorize/Attr.js +20 -0
  27. package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +60 -5
@@ -41,7 +41,7 @@
41
41
  <div class="card-list__content">
42
42
  <view>
43
43
  <text>券号:</text>
44
- <text>{{item.card_number}}</text>
44
+ <text>{{item.card_number}}{{isShowIndex?`--${item.index}`:''}}</text>
45
45
  </view>
46
46
  </div>
47
47
  <view class="card-list__date">
@@ -169,8 +169,8 @@ export default {
169
169
  mixins: [componentsMixins, extsMixins, JfbBaseCardDisabledEntryMixin, colorCardMixins, cardListMixins],
170
170
  data() {
171
171
  return {
172
- disableList: [],
173
- isShowUnbind: false
172
+ isShowUnbind: false,
173
+ isShowIndex:false,
174
174
  };
175
175
  },
176
176
  computed:{
@@ -191,9 +191,11 @@ export default {
191
191
  },
192
192
  methods: {
193
193
  onJfbLoad(options) {
194
+ this.isShowIndex = options['show_index'] === '1';
194
195
  this.getCardList();
195
196
  },
196
197
 
198
+
197
199
  getCardList() {
198
200
  this.$xdShowLoading({});
199
201
  jfbRootExec("getDisableCardListEntry", {vm: this, data: {is_all: "Y", is_show_entry_settings: 'Y'},})
@@ -233,14 +235,16 @@ export default {
233
235
  vm: this,
234
236
  success: (res) => {
235
237
  if (res.confirm) {
236
- let cardIds = this.disableList.map(item=>{
238
+ let cardIds = this.cardOrgList.map(item=>{
237
239
  return item.card_number + ''
238
240
  });
241
+ debugger
239
242
  jfbRootExec("batchDisabledCardUnbindEntry", {vm: this, data: {card_numbers: cardIds.join(','),},})
240
243
  .then((res) => {
241
244
  this.$xdAlert({
242
245
  content: "全部失效票券已解绑",
243
246
  close: () => {
247
+ this.clearData();
244
248
  this.getCardList();
245
249
  },
246
250
  });
@@ -275,6 +279,7 @@ export default {
275
279
  this.$xdAlert({
276
280
  content: "票券已解绑",
277
281
  close: () => {
282
+ this.clearData();
278
283
  this.getCardList();
279
284
  },
280
285
  });
@@ -295,7 +300,7 @@ export default {
295
300
  init(container) {},
296
301
 
297
302
  onJfbBack(options) {
298
- console.log("event.onJfbBack", options);
303
+ this.$xdUniHelper.navigateBack();
299
304
  },
300
305
 
301
306
  },
@@ -65,6 +65,19 @@ export default {
65
65
 
66
66
  },
67
67
 
68
+ clearData(){
69
+ this.ajaxCardList = null;
70
+ this.cardOrgList = []
71
+ this.cardList = null;
72
+ this.cardPageNum = 0;
73
+ this.cardComputedList = [];
74
+ this.cardLoading = false;
75
+ this.cardNextTop = 0;
76
+ this.cardIndex = 0;
77
+ this.contentStatus = false;
78
+ this.hasContent = true;
79
+ },
80
+
68
81
  async handleCardComputed(paddingBottom=30){
69
82
  this.$xdShowLoading({});
70
83
  if(this.contentStatus === false) await this.getBoxTop();
@@ -83,7 +96,6 @@ export default {
83
96
  return card
84
97
  });
85
98
  this.cardList = (this.cardList||[]).concat(arr);
86
- this.cardPageNum++;
87
99
  this.$xdHideLoading();
88
100
  }).exec();
89
101
  })
@@ -102,6 +114,7 @@ export default {
102
114
  this.cardPageNum*this.cardPageLen,
103
115
  this.cardPageNum*this.cardPageLen + this.cardPageLen
104
116
  );
117
+ console.warn(`无效卡张数:${validCardList.length} 张,页码:第 ${this.cardPageNum} 页`);
105
118
  if(this.cardComputedList.length < this.cardPageLen) {
106
119
  this.hasContent = false;
107
120
  }
@@ -120,6 +133,7 @@ export default {
120
133
  this.cardPageNum*this.cardPageLen,
121
134
  this.cardPageNum*this.cardPageLen + this.cardPageLen
122
135
  );
136
+ console.warn(`无效卡张数:${this.cardOrgList.length} 张,页码:第 ${this.cardPageNum} 页`);
123
137
  this.handleCardComputed().then().catch();
124
138
  if(this.cardComputedList.length < this.cardPageLen) {
125
139
  this.hasContent = false;
@@ -18,7 +18,7 @@
18
18
  <!-- #endif -->
19
19
  <view class="jfb-base-card-entry__body">
20
20
  <view class="jfb-base-card-entry__body-cut">
21
- <template v-if="isWx">
21
+ <template v-if="isQrCode">
22
22
  <view
23
23
  class="jfb-base-card-entry__body-cut-item"
24
24
  @click="handleScan"
@@ -383,7 +383,7 @@ import extsMixins from "@/mixins/extsMixins";
383
383
  import colorCardMixins from "@/mixins/colorCardMixins";
384
384
  import cardListMixins from "@/mixins/cardListMixins";
385
385
  import { mapState, mapActions } from "vuex";
386
- import { getContainerPropsValue, isWechat } from "@/utils/xd.base";
386
+ import { getContainerPropsValue, isWechat,isQrCode } from "@/utils/xd.base";
387
387
  import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar";
388
388
  import { Base64 } from "js-base64";
389
389
  const Color = require("color");
@@ -434,7 +434,6 @@ export default {
434
434
  noticeStatus: false,
435
435
  loadingCardList: true,
436
436
 
437
- isWx: true,
438
437
  cutIndex: 1,
439
438
  tabIndex: 1,
440
439
  isBack: null, //是否使用返回键
@@ -454,6 +453,7 @@ export default {
454
453
  showDisabled: 'Y',
455
454
  showCardList: false,
456
455
  showIndex:false,
456
+ isQrCode: false,
457
457
 
458
458
  //活动
459
459
  dialogEvent: false,
@@ -466,7 +466,7 @@ export default {
466
466
  this.isPreview = this.$configProject.isPreview;
467
467
 
468
468
  //#ifdef H5
469
- this.isWx = this.isPreview || isWechat();
469
+ this.isQrCode = isQrCode(this);
470
470
  if (!this.$configProject.isPreview) {
471
471
  jfbRootExec("getH5WxAuthorize", {
472
472
  vm: this,
@@ -592,9 +592,7 @@ export default {
592
592
  this.$xdHideLoading();
593
593
  //#ifdef MP-WEIXIN
594
594
  if (this.jfbAuthorize !== null) {
595
- this.jfbAuthorize.setToken("card", res["card_token"], {
596
- expires: res["card_expire_in"] / 60 / 60,
597
- });
595
+ this.jfbAuthorize.setCardToken(res);
598
596
  this.handleToApp(entry);
599
597
  }
600
598
  //#endif
@@ -171,7 +171,7 @@ export default {
171
171
  return this.fixedStyle({ height: 0, zIndex: 111 });
172
172
  },
173
173
  isShowBalance(){
174
- if(this.info.is_expired === "Y"){
174
+ if(this.info && this.info.is_expired === "Y"){
175
175
  return this.is_show_balance === "Y";
176
176
  }
177
177
  return true;
@@ -492,6 +492,7 @@ export default {
492
492
  height: unit(320, rpx);
493
493
  display: flex;
494
494
  align-items: center;
495
+ justify-content: center;
495
496
  }
496
497
  }
497
498
  }
@@ -226,9 +226,7 @@
226
226
  this.$xdHideLoading();
227
227
  //#ifdef MP-WEIXIN
228
228
  if (this.jfbAuthorize !== null) {
229
- this.jfbAuthorize.setToken("card", res["card_token"], {
230
- expires: res["card_expire_in"] / 60 / 60,
231
- });
229
+ this.jfbAuthorize.setCardToken(res);
232
230
  }
233
231
  //#endif
234
232
 
@@ -175,9 +175,7 @@
175
175
  this.$xdHideLoading();
176
176
  //#ifdef MP-WEIXIN
177
177
  if (this.jfbAuthorize !== null) {
178
- this.jfbAuthorize.setToken("card", res["card_token"], {
179
- expires: res["card_expire_in"] / 60 / 60,
180
- });
178
+ this.jfbAuthorize.setCardToken(res);
181
179
  }
182
180
  //#endif
183
181
 
@@ -136,10 +136,18 @@
136
136
  return item;
137
137
  }
138
138
 
139
- let jumpUrl = item.path;
140
- //#ifdef H5
141
- jumpUrl = `//${host}/${dir}${path}`;
142
- //#endif
139
+ let jumpUrl = path;
140
+ //域名相同并且应用路径不相同时候处理
141
+ if(host ===this.projectAttr.host
142
+ && this.projectAttr['deploy_dir'] !== dir
143
+ ){
144
+ jumpUrl = `//${host}/${dir}${path}`;
145
+ //#ifdef MP-WEIXIN
146
+ jumpUrl = `https:${jumpUrl}`;
147
+ //#endif
148
+ }
149
+
150
+
143
151
 
144
152
  if(item['redirect_data']['fixed_business_code'] === '') {
145
153
  item['redirect_data']['path'] = `${jumpUrl}?x-common=${nsp}&vs=${new Date().getTime()}`
@@ -149,6 +157,7 @@
149
157
  }
150
158
  return item;
151
159
  });
160
+ console.log( this.entryList)
152
161
  if(res.list.length === 1) this.toLink(this.entryList[0]);
153
162
  if(res.list.length === 0) {
154
163
  this.$xdAlert({content: '当前票券暂无支持服务'})
@@ -23,6 +23,18 @@ module.exports = [
23
23
  phone_number_collect_url: ['收集手机号地址', 'String', '是'],
24
24
  }
25
25
  },
26
+ {
27
+ mapFnName: 'userBaseLoginIcb',
28
+ title: '工行e生活登录',
29
+ path: '/passport/v1/user/login-icbc',
30
+ isRule: false,
31
+ data: {
32
+ encrypted_params: ['用户登录信息', 'String', '必选'],
33
+ provider_id: ['登录方式id', 'Number', '必选'],
34
+ },
35
+ isConsole: true,
36
+ disabled: true,
37
+ },
26
38
  {
27
39
  mapFnName: 'phoneLogin',
28
40
  title: "手机号登录",
@@ -539,6 +539,18 @@ export default {
539
539
  },
540
540
  inline: false,
541
541
  },
542
-
542
+ {
543
+ label: '小程序手机号授权登录地址:', //label
544
+ ele: 'xd-select-pages-path', //package 名称
545
+ valueKey: 'mpAuthPhoneUrl', //form[valueKey]
546
+ groupKey: 'advanced',
547
+ placeholder: '请选择跳转地址',
548
+ value: null,
549
+ setting: {
550
+ router: XdBus.getParentApi('getPagesTree'),
551
+ },
552
+ notice: "首次快捷登录,将自动跳转至该地址",
553
+ inline: false,
554
+ },
543
555
  ]
544
556
  }
@@ -30,8 +30,7 @@
30
30
  type="primary"
31
31
  radius="20rpx"
32
32
  @click="doLoginAuth"
33
- >快捷登录</xd-button
34
- >
33
+ >{{h5FastLoginName}}</xd-button>
35
34
  <!-- #endif -->
36
35
  <!--#ifdef MP-->
37
36
  <xd-button
@@ -50,8 +49,7 @@
50
49
  type="primary"
51
50
  radius="20rpx"
52
51
  @click="doLoginAccount"
53
- >账号登录
54
- </xd-button>
52
+ >账号登录</xd-button>
55
53
  </view>
56
54
 
57
55
  <view class="protocol">
@@ -98,7 +96,7 @@
98
96
  :border="true"
99
97
  paddingBetween="40"
100
98
  >
101
- <xd-form-item class="form-item" label="手机号" content-align="left">
99
+ <xd-form-item class="form-item" label="手机号" :labelWidth="160" content-align="left">
102
100
  <xd-form-input
103
101
  v-model="accountForm.phone_number"
104
102
  placeholder="请输入11位手机号"
@@ -107,6 +105,7 @@
107
105
  <xd-form-item
108
106
  v-if="accountLoginType === 'phone'"
109
107
  label="验证码"
108
+ :labelWidth="160"
110
109
  content-align="left"
111
110
  >
112
111
  <view class="flex align-center">
@@ -125,6 +124,7 @@
125
124
  <xd-form-item
126
125
  v-if="accountLoginType === 'pwd'"
127
126
  label="密码"
127
+ :labelWidth="160"
128
128
  content-align="left"
129
129
  >
130
130
  <xd-form-input
@@ -217,6 +217,7 @@ import {
217
217
  getAllPath,
218
218
  getDomainAllPath,
219
219
  getLocalJumpOutSiteCallbackUrl,
220
+ isThirdLogin
220
221
  } from "@/utils/xd.base";
221
222
 
222
223
  export default {
@@ -236,6 +237,7 @@ export default {
236
237
  //体验模式
237
238
  dialogPreview: false,
238
239
  previewAccout: '',
240
+ h5FastLoginName:'快捷登录',
239
241
 
240
242
  showStep: 1,
241
243
  panel_1_checked: "",
@@ -283,10 +285,11 @@ export default {
283
285
  isDebugPreview: false,
284
286
 
285
287
  isFastLoginStatus: false,
288
+ mpAuthPhoneUrl: "",
286
289
  };
287
290
  },
288
291
  computed: {
289
- ...mapState(["jfbAuthorize","siteInfo"]),
292
+ ...mapState(["jfbAuthorize","siteInfo",'loginParams']),
290
293
  panelIsChecked() {
291
294
  return this.panel_1_checked.includes(1);
292
295
  },
@@ -316,7 +319,7 @@ export default {
316
319
  this.init(this.container);
317
320
  this.base = this.jfbAuthorize.getBasePath(this);
318
321
  this.site_logo = getServiceUrl(this.projectAttr["site_logo"]);
319
- this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.create.done')
322
+ this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.create.done');
320
323
  },
321
324
 
322
325
  methods: {
@@ -362,35 +365,20 @@ export default {
362
365
 
363
366
 
364
367
  onJfbLoad(options) {
368
+ this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.start')
365
369
  this.redirect_url = options.redirect_url ? Base64.decode(options.redirect_url): '';
366
370
  this.isDebugPreview = options['x-test'] === 'jfb-tiyan';
367
371
  // #ifdef MP-WEIXIN
368
372
  this.authWxMpListProviders();
369
373
  // #endif
370
- this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.start')
374
+
371
375
  // #ifdef H5
372
- try{
373
- this.authH5ListProviders();
374
- }catch (error) {
376
+ try{ this.authH5ListProviders();}
377
+ catch (error) {
375
378
  this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.error');
376
379
  this.$xdLog.setARMSError(error);
377
380
  }
378
381
  //#endif
379
-
380
- // if (options.isDebug === "1") {
381
- // getAllPath(this, "main/play/index");
382
- // getDomainAllPath(this, "main/play/index");
383
- // getLocalJumpOutSiteCallbackUrl(
384
- // this,
385
- // { customParams: 1 },
386
- // false,
387
- // "main/play/index"
388
- // );
389
- //
390
- // getAllPath(this);
391
- // getDomainAllPath(this);
392
- // getLocalJumpOutSiteCallbackUrl(this, { customParams: 1 }, false);
393
- // }
394
382
  },
395
383
 
396
384
  /**
@@ -415,6 +403,7 @@ export default {
415
403
  this.phone_number_collect_url = getContainerPropsValue(value, "content.phone_number_collect_url", {value: ''}).value;
416
404
  this.forget_pwd_url = getContainerPropsValue(value, "content.forget_pwd_url", {value: ''}).value;
417
405
  this.error_callback_url = getContainerPropsValue(value, "content.error_url", {value: ''}).value;
406
+ this.mpAuthPhoneUrl = getContainerPropsValue(value, "content.mpAuthPhoneUrl", {value: '/system/login/wxauthorize'}).value;
418
407
  this.isPreview = getContainerPropsValue(value, "content.isPreview", 'N');
419
408
  },
420
409
 
@@ -425,6 +414,11 @@ export default {
425
414
  if (res.quick_enabled) {
426
415
  this.hasAuthLogin = true;
427
416
  this.quickLogin = res.quick;
417
+
418
+ //工行处理
419
+ if(this.quickLogin.login_platform_code === 'icbc') {
420
+ this.h5FastLoginName = '工银e生活登录'
421
+ }
428
422
  }
429
423
  if (res.others.length > 0) {
430
424
  this.hasAccountLogin = true;
@@ -482,23 +476,28 @@ export default {
482
476
  },
483
477
  })
484
478
  .then((res) => {
479
+ let { redirect_url, callback_url } = this;
480
+ //if (redirect_url) redirect_url = redirect_url;
481
+ let url = Base64.encodeURI(redirect_url || callback_url || this.settings.index);
485
482
  //需要授权操作
486
483
  if (res.auth_code) {
487
- let { redirect_url, callback_url } = this;
488
- if (redirect_url)
489
- redirect_url = redirect_url;
490
- let url = Base64.encodeURI(
491
- redirect_url || callback_url || this.settings.index
492
- );
493
484
  this.$xdUniHelper.navigateTo({
494
- url: `/system/login/wxauthorize?auth_code=${res.auth_code}&provider_id=${this.quickLogin.provider_id}&url=${url}`,
485
+ url: `${this.mpAuthPhoneUrl}?auth_code=${res.auth_code}&provider_id=${this.quickLogin.provider_id}&url=${url}`,
495
486
  });
496
487
  }
497
488
  //无需授权直接进行登录
498
489
  else {
499
490
  if (this.jfbAuthorize !== null) {
500
491
  this.jfbAuthorize.setAllToken(res["login_info"], () => {
501
- this.toHomeAfterLogin();
492
+ //需要收集手机号码
493
+ if(res['is_collect_phone_number'] === 'Y'){
494
+ this.$xdUniHelper.navigateTo({
495
+ url: `${this.mpAuthPhoneUrl}?provider_id=${this.quickLogin.provider_id}&url=${url}`,
496
+ });
497
+ }
498
+ else{
499
+ this.toHomeAfterLogin();
500
+ }
502
501
  });
503
502
  }
504
503
  }
@@ -550,12 +549,12 @@ export default {
550
549
  };
551
550
 
552
551
  this.$xdLog.setProject('JfbBaseLogin', 'JfbBaseLogin.onJfbLoad.loading..');
553
-
554
552
  jfbRootExec("listSiteProvider", {
555
553
  vm: this,
556
554
  data: params,
557
555
  })
558
556
  .then((res) => {
557
+ console.log('listSiteProvider',res)
559
558
  this.handleAuthResult(res);
560
559
  })
561
560
  .catch((error) => {
@@ -603,12 +602,59 @@ export default {
603
602
  setAccountLoginType(type) {
604
603
  this.accountLoginType = type;
605
604
  },
605
+
606
+ /**
607
+ * @description 工行e生活处理
608
+ */
609
+ icbcLogin(){
610
+ //无三方用户登录信息
611
+ if(!this.loginParams) {
612
+ this.status = false;
613
+ console.warn(`无三方用户登录信息`);
614
+ throw new Error('无三方用户登录信息');
615
+ }
616
+
617
+ console.warn(`LoginParams.use: ${this.loginParams}`)
618
+ this.$xdShowLoading({});
619
+ jfbRootExec("userBaseLoginIcb", {
620
+ vm: this,
621
+ data:{
622
+ encrypted_params: this.loginParams,
623
+ provider_id: this.quickLogin.provider_id
624
+ },
625
+ })
626
+ .then(res=>{
627
+ this.$xdHideLoading();
628
+ this.$xdUniHelper.redirectTo({
629
+ url: this.redirect_url || this.$settings.index,
630
+ },false, true);
631
+ })
632
+ .catch(err=>{
633
+ this.$xdHideLoading();
634
+ console.error(err);
635
+ })
636
+ },
637
+
606
638
  //h5授权登录
607
639
  doLoginAuth() {
608
640
  if(this.isFastLoginStatus) return;
609
641
  this.isFastLoginStatus = true;
610
- const { provider_id, login_platform_code, is_redirect, redirect_url } = this.quickLogin;
611
- location.href = redirect_url;
642
+
643
+ //工行处理
644
+ if(this.quickLogin && this.quickLogin.login_platform_code === 'icbc'){
645
+ window['ICBC_SDK']['merLogin']((res)=>{
646
+ console.log('ICBC_SDK',res);
647
+ this.icbcLogin(res)
648
+ })
649
+ return;
650
+ }
651
+
652
+ //跳转到第三方进行授权
653
+ if(this.quickLogin.is_redirect === 'Y') {
654
+ const { redirect_url } = this.quickLogin;
655
+ location.href = redirect_url;
656
+ }
657
+
612
658
  },
613
659
 
614
660
  //小程序授权登录
@@ -707,9 +753,9 @@ export default {
707
753
  });
708
754
  }
709
755
  },
756
+
710
757
  toHomeAfterLogin() {
711
758
  let { redirect_url, callback_url } = this;
712
- if (redirect_url) redirect_url = redirect_url;
713
759
  this.$xdUniHelper.redirectTo({
714
760
  url: redirect_url || callback_url || this.settings.index,
715
761
  });
@@ -767,7 +813,7 @@ export default {
767
813
  padding: 40rpx 70rpx;
768
814
  }
769
815
  .form-item {
770
- /deep/ .uni-forms-item {
816
+ ::v-deep .uni-forms-item {
771
817
  padding-left: unit(30rpx) !important;
772
818
  }
773
819
  }
@@ -777,6 +823,12 @@ export default {
777
823
  margin-right: unit(20,rpx);
778
824
  }
779
825
  .panel-login-auth {
826
+ /deep/ .uni-forms-item__label {
827
+ .label-text {
828
+ font-size: 26rpx;
829
+ color: #a6a6a6;
830
+ }
831
+ }
780
832
  .logo-wrap {
781
833
  text-align: center;
782
834
  margin: unit(165,rpx) 0;
@@ -239,8 +239,8 @@
239
239
  :key="Dindex"
240
240
  class="jfb-base-order-detail__body-delivery-bottom-item"
241
241
  >
242
- <view :style="{width: '130rpx'}">
243
- <text v-html="Ditem.label"></text>
242
+ <view style="width: 130rpx;display: flex;">
243
+ <view v-html="Ditem.label"></view>
244
244
  <text v-if="Ditem.label">:</text>
245
245
  </view>
246
246
  <view v-html="Ditem.value"></view>
@@ -563,10 +563,10 @@
563
563
  class="jfb-base-order-detail__body-order"
564
564
  >
565
565
  <view :style="{ fontWeight: item.style }">
566
- <view
567
- ><text v-html="item.label"></text
568
- ><text v-if="item.label">:</text></view
569
- >
566
+ <view style="display: flex;">
567
+ <view v-html="item.label"></view>
568
+ <text v-if="item.label">:</text>
569
+ </view>
570
570
  <view v-html="item.value"></view>
571
571
  </view>
572
572
  <view
@@ -96,7 +96,7 @@
96
96
  <view
97
97
  class="jfb-base-order-list__body-order-item-content"
98
98
  v-for="(Sitem, Sindex) in item.products"
99
- :key="getKey(Sitem.product_id,Sindex)"
99
+ :key="Sitem.key"
100
100
  v-if="(item['isOpen'] === false && Sindex < showLen) || item['isOpen']">
101
101
  <image
102
102
  :src="Sitem.product_thumb"
@@ -175,7 +175,7 @@
175
175
  class="jfb-base-order-list__body-order-item-pay"
176
176
  v-if="item.buttons.length"
177
177
  >
178
- <view v-for="(btn,index) in item.buttons" :key="btn.action+index">
178
+ <view v-for="(btn,index) in item.buttons" :key="btn.key">
179
179
  <xd-button
180
180
  :type="getBtnType(btn.action)"
181
181
  size="mini"
@@ -457,12 +457,17 @@ export default {
457
457
  console.log(res.list, "list");
458
458
  let list = res.list.map((item) => {
459
459
  item["isOpen"] = false;
460
- item.products = item.products.map((prod) => {
460
+ item.products = item.products.map((prod, i) => {
461
+ prod['key'] = prod.product_id + i;
461
462
  prod["product_thumb"] = prod.product_thumb
462
463
  ? getServiceUrl(prod.product_thumb)
463
464
  : "";
464
465
  return prod;
465
466
  });
467
+ item.buttons = item.buttons.map((btn, i) => {
468
+ btn["key"] = btn.action + i;
469
+ return btn;
470
+ })
466
471
  item["created_time_text"] = this.$xdUniHelper.getDate(
467
472
  item["created_time"] * 1000
468
473
  ).fullTime;