jufubao-third 1.0.10 → 1.0.11-beta3

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-third",
3
- "version": "1.0.10",
3
+ "version": "1.0.11-beta3",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件第三方购物平台包",
6
6
  "main": "index.js",
@@ -149,5 +149,16 @@ module.exports = [
149
149
  },
150
150
  isConsole: true,
151
151
  disabled: true
152
+ },
153
+ {
154
+ mapFnName: "getVipList",
155
+ title: "会员中心 - 会员卡列表",
156
+ path: "/member/v1/vip-card",
157
+ isRule: false,
158
+ params: {
159
+ is_show_exchange_code: ['是否展示 兑换码 ', 'Y/N,默认N', false],
160
+ },
161
+ isConsole: true,
162
+ disabled: true
152
163
  }
153
164
  ];
@@ -15,88 +15,124 @@
15
15
  </view>
16
16
  </view>
17
17
  <!-- #endif -->
18
- <view class="jfb-third-pay__body">
18
+ <view class="jfb-third-pay__body" :style="[bodyWrapStyle]">
19
19
  <view class="column-group">
20
- <view style="padding: 20rpx 0 0;">
21
- <view class="column-item noBorder">
22
- <view v-if="product_total_price" class="column_label text_gray">商品总额</view>
23
- <view class="column_value text-gray">
24
- <xd-unit :price="product_total_price" :isOld="false" :font-size="24" :icon-size="0.3"></xd-unit>
20
+ <view class="pay_section">
21
+ <view style="padding: 20rpx 0 0;">
22
+ <view class="column-item noBorder">
23
+ <view v-if="product_total_price" class="column_label text_gray">商品总额</view>
24
+ <view class="column_value text-gray">
25
+ <xd-unit
26
+ :colorNew="isShowIcon ? '': '#999'"
27
+ :price="product_total_price"
28
+ :isOld="false"
29
+ :font-size="24"
30
+ :icon-size="0.3"
31
+ ></xd-unit>
32
+ </view>
25
33
  </view>
26
- </view>
27
- <view v-if="servicePrice" class="column-item noBorder">
28
- <view class="column_label text_gray">平台服务费总额</view>
29
- <view class="column_value text-gray">
30
- <xd-unit :price="servicePrice" :isOld="false" :font-size="24" :icon-size="0.3"></xd-unit>
34
+ <view v-if="servicePrice" class="column-item noBorder">
35
+ <view class="column_label text_gray">平台服务费总额</view>
36
+ <view class="column_value text-gray">
37
+ <xd-unit
38
+ :colorNew="isShowIcon ? '': '#999'"
39
+ :price="servicePrice" :isOld="false" :font-size="24" :icon-size="0.3"></xd-unit>
40
+ </view>
41
+ </view>
42
+ <view v-if="logisticsPrice" class="column-item noBorder">
43
+ <view class="column_label text_gray">运费</view>
44
+ <view class="column_value text-gray">
45
+ <xd-unit
46
+ :colorNew="isShowIcon ? '': '#999'"
47
+ :price="logisticsPrice" :isOld="false" :font-size="24" :icon-size="0.3"></xd-unit>
48
+ </view>
31
49
  </view>
32
50
  </view>
33
- <view v-if="logisticsPrice" class="column-item noBorder">
34
- <view class="column_label text_gray">运费</view>
51
+ <view class="column-item">
52
+ <view class="column_label text_gray">
53
+ 订单总额
54
+ </view>
35
55
  <view class="column_value text-gray">
36
- <xd-unit :price="logisticsPrice" :isOld="false" :font-size="24" :icon-size="0.3"></xd-unit>
56
+ <xd-unit
57
+ :colorNew="isShowIcon ? '': '#999'"
58
+ :price="origin_total_price"
59
+ :isOld="false"
60
+ :font-size="24"
61
+ :icon-size="0.3"
62
+ ></xd-unit>
37
63
  </view>
38
64
  </view>
39
65
  </view>
40
- <view class="column-item">
41
- <view class="column_label">
42
- 订单总额
43
- </view>
44
- <view class="column_value text-gray">
45
- <xd-unit
46
- :price="total_price"
47
- :isOld="false"
48
- :font-size="24"
49
- :icon-size="0.3"
50
- ></xd-unit>
51
- </view>
66
+
67
+ <view v-if="show_vip_card==='Y'" class="pay_section">
68
+ <cus-vip-list :list="vipCardList"
69
+ :vip_card_id="vip_card_id"
70
+ :plus_saving_money="plus_saving_money"
71
+ @choseVipCard="handleChoseVipCard"></cus-vip-list>
52
72
  </view>
53
- <view class="column-item">
54
- <view class="column_label">
55
- 仍需支付
56
- <view class="label_sub">(可使用多张票券支付)</view>
57
- </view>
58
- <view class="column_value text-primary">
59
- <xd-unit
60
- :price="showOldPay ? needPayPrice :orderNeedPayPrice"
61
- :isOld="false"
62
- :font-size="24"
63
- :icon-size="0.3"
64
- ></xd-unit>
65
- </view>
73
+ <view v-if="isShowPlusSaveMoney" class="pay_section">
74
+ <xd-list-item label="PLUS专项立减" size="small" paddingLR="40rpx" >
75
+ <view slot="label" style="color: #86541E;">PLUS专享立减</view>
76
+ <!-- <view style="color: #FF7070;">-5.00</view> -->
77
+ <xd-unit :price="-plus_saving_money" :largeZero="false" :isOld="false" :fontSize="24" :iconSize="0.3"></xd-unit>
78
+ </xd-list-item>
66
79
  </view>
67
- <view v-if="showOldPay" class="column-item">
68
- <view class="column_label">
69
- 我的票券
70
- <view class="label_sub">(已使用{{checkedCards.length}}张票券)</view>
80
+
81
+ <view v-if="!isPlusSite" class="pay_section">
82
+ <view class="column-item">
83
+ <view class="column_label">
84
+ 仍需支付
85
+ <view class="label_sub">(可使用多张票券支付)</view>
86
+ </view>
87
+ <view class="column_value text-primary">
88
+ <xd-unit
89
+ :price="showOldPay ? needPayPrice :orderNeedPayPrice"
90
+ :isOld="false"
91
+ :font-size="24"
92
+ :icon-size="0.3"
93
+ ></xd-unit>
94
+ </view>
71
95
  </view>
72
- <view class="column_value">
73
- <xd-button
74
- width="220rpx"
75
- radius="60rpx"
76
- type="primary"
77
- size="small"
78
- @click="xdDownDrawer=true; switchValidToken()"
79
- >使用新票券</xd-button>
96
+ <view v-if="showOldPay" class="column-item">
97
+ <view class="column_label">
98
+ 我的票券
99
+ <view class="label_sub">(已使用{{checkedCards.length}}张票券)</view>
100
+ </view>
101
+ <view class="column_value">
102
+ <xd-button
103
+ width="220rpx"
104
+ radius="60rpx"
105
+ type="primary"
106
+ size="small"
107
+ @click="xdDownDrawer=true; switchValidToken()"
108
+ >使用新票券</xd-button>
109
+ </view>
80
110
  </view>
81
111
  </view>
82
112
  </view>
83
- <template v-if="!showOldPay">
113
+ <!-- <view class="pay_section">
114
+ <xd-list-item label="账户余额" size="small" paddingLR="40rpx" showRight>
115
+ <view style="color: #999999;">30.00</view>
116
+ </xd-list-item>
117
+ </view> -->
118
+ <view class="pay_section" v-if="!showOldPay">
84
119
  <template v-for="item in otherPayMethod">
85
- <xd-list-item v-if="item.method === 'card'" :key="item.method" :label="item.show_name" paddingLR="60rpx" size="small" showRight @click="toChoseCard">
120
+ <xd-list-item v-if="item.method === 'card'" :key="item.method" :label="item.show_name" paddingLR="40rpx" size="small" showRight @click="toChoseCard">
86
121
  <view v-if="choseCard && choseCard.cardPayPrice" slot="label">{{item.show_name}} <text style="color:red;margin-left: 4px;">(已选{{ choseCard.selectedCardList.length }}张)</text></view>
87
122
  <xd-unit v-if="choseCard && choseCard.cardPayPrice" :price="choseCard.cardPayPrice" :isOld="false" :fontSize="24" :iconSize="0.3"></xd-unit>
88
123
  <view v-else>请选择</view>
89
124
  </xd-list-item>
90
- <xd-list-item v-if="item.method === 'wallet'" :key="item.method" :label="item.show_name" paddingLR="60rpx" size="small" showRight @click="toChoseWallet">
125
+ <xd-list-item v-if="item.method === 'wallet'" :key="item.method" :label="item.show_name" paddingLR="40rpx" size="small" showRight @click="toChoseWallet">
91
126
  <xd-unit v-if="choseWallet && choseWallet.walletPayPrice" :price='choseWallet.walletPayPrice' :isOld="false" :fontSize="24" :iconSize="0.3"></xd-unit>
92
127
  <view v-else>请选择</view>
93
128
  </xd-list-item>
94
129
  </template>
95
- </template>
130
+ </view>
96
131
 
97
132
  <view
98
133
  class="ticket_list"
99
134
  :key="renderChecked"
135
+ v-if="!isPlusSite"
100
136
  >
101
137
  <view
102
138
  class="ticket_item"
@@ -148,7 +184,20 @@
148
184
  </view>
149
185
  </view>
150
186
  </view>
187
+ <view v-if="isPlusSite" class="bottom_btn plus_btm" :style="{bottom: layoutInfo.bottom+'rpx'}">
188
+ <view class="flex_l">实付:
189
+ <xd-unit
190
+ :price="showOldPay ? needPayPrice :orderNeedPayPrice"
191
+ :isOld="false"
192
+ :font-size="40"
193
+ :icon-size="0.3"
194
+ ></xd-unit></view>
195
+ <view>
196
+ <xd-button type="primary" @click="doAllPay">支付</xd-button>
197
+ </view>
198
+ </view>
151
199
  <view
200
+ v-else
152
201
  class="bottom_btn"
153
202
  :style="{bottom: layoutInfo.bottom+'rpx'}"
154
203
  >
@@ -283,6 +332,7 @@
283
332
  import XdListItem from "./XdListItem.vue"
284
333
  import XdCardPayChose from "@/components/XdCardPayChose/XdCardPayChose"
285
334
  import XdWalletChose from "@/components/XdWalletChose/XdWalletChose"
335
+ import CusVipList from "@/components/CusVipList/CusVipList"
286
336
  import {mapState} from "vuex"
287
337
  import { getContainerPropsValue } from "@/utils/xd.base";
288
338
  export default {
@@ -299,14 +349,15 @@
299
349
  XdUnit,
300
350
  XdListItem,
301
351
  XdCardPayChose,
302
- XdWalletChose
352
+ XdWalletChose,
353
+ CusVipList
303
354
  },
304
355
  mixins: [
305
356
  componentsMixins, extsMixins, JfbThirdPayMixin, WalletMixins
306
357
  ],
307
358
  data() {
308
359
  return {
309
-
360
+ isVip: false,
310
361
  xdDownDrawer: false,
311
362
  payChannels: [],
312
363
  channel_provider_id: "",
@@ -322,6 +373,7 @@
322
373
 
323
374
  product_total_price: "",
324
375
  total_price: "",
376
+ origin_total_price: "",
325
377
  servicePrice: "",
326
378
  logisticsPrice: "",
327
379
 
@@ -335,6 +387,11 @@
335
387
  selectedCardList: [], //卡绑定使用的
336
388
  options: {},
337
389
 
390
+ show_vip_card: "",
391
+ vipCardList: [],
392
+ vip_card_id: 0,
393
+ plus_saving_money: 0,
394
+
338
395
  //面板
339
396
  orderSuccessPath: "",
340
397
  thirdPayPath: "",
@@ -350,8 +407,27 @@
350
407
  },
351
408
  computed: {
352
409
  ...mapState({
353
- brandInfo: state => state.brandInfo
410
+ brandInfo: state => state.brandInfo,
411
+ siteInfo: state => state.siteInfo,
354
412
  }),
413
+ bodyWrapStyle(){
414
+ return {
415
+ background: 'rgb(249, 249, 249)',
416
+ minHeight: this.layoutInfo.bodyMinHeightRpx + 'rpx'
417
+ }
418
+ },
419
+ isShowIcon() {
420
+ if(this.$configProject['isPreview']) return true;
421
+ return this.siteInfo.mapping.is_show_coin_icon==='Y'
422
+ },
423
+ isPlusSite(){
424
+ return this.projectAttr.headers['X-Site-Group']==="vip";
425
+ },
426
+ //是否展示vip减免
427
+ isShowPlusSaveMoney(){
428
+ if(this.show_vip_card === 'Y') return this.vip_card_id;
429
+ else return this.isVip && this.plus_saving_money;
430
+ },
355
431
  showCardList(){
356
432
  //筛选出不存在于cardList的数据
357
433
  let otherCardList = this.selectedCardList.filter(item =>{
@@ -381,6 +457,7 @@
381
457
  this.init(this.container);
382
458
  let valid_token = this.$xdUniHelper.randomChar(20);
383
459
  this.$set(this.cardForm, "valid_token", valid_token);
460
+ this.isVip = this.getTokenForKey('user_level') === 'VIP';
384
461
 
385
462
  // #ifdef H5
386
463
  if (!this.$configProject.isPreview) {
@@ -399,6 +476,7 @@
399
476
  this.validImageAPIUrl = this.brandInfo['api_host'] + '/common/v1/valid_code/image/show'
400
477
 
401
478
  this.getOrderConfirm();
479
+
402
480
  },
403
481
  /**
404
482
  * @description 监听事件变化
@@ -419,12 +497,27 @@
419
497
  }
420
498
  return time;
421
499
  },
500
+ handleChoseVipCard(vip_card_id){
501
+ this.vip_card_id = vip_card_id;
502
+ this.getOrderConfirm();
503
+ },
504
+ p_getVipList(xnamespace){
505
+ jfbRootExec("getVipList", {
506
+ vm: this,
507
+ data: {
508
+ namespace: xnamespace,
509
+ }
510
+ }).then(res => {
511
+ this.vipCardList = res.list;
512
+ })
513
+ },
422
514
  getOrderConfirm(){
423
515
  jfbRootExec("getThirdOrderInfo", {
424
516
  vm: this,
425
517
  data: {
426
518
  main_order_id: this.main_order_id,
427
519
  namespace: this.xnamespace,
520
+ vip_card_id: this.vip_card_id,
428
521
  ...this.options,
429
522
  }
430
523
  }).then(res => {
@@ -444,12 +537,17 @@
444
537
  return;
445
538
  }
446
539
  this.p_getPayMethod(res.pay_methods);
447
-
448
- this.total_price = this.$xdUniHelper.multiplyFloatNumber(res.total_price, 1);
540
+ this.origin_total_price = res.total_price;
541
+ this.total_price = this.$xdUniHelper.multiplyFloatNumber(res.real_pay_price, 1);
449
542
  this.needPayPrice = this.total_price;
450
543
  this.servicePrice = this.$xdUniHelper.multiplyFloatNumber(res.service_fee, 1);
451
544
  this.logisticsPrice = this.$xdUniHelper.multiplyFloatNumber(res.logistics_amount, 1);
452
545
  this.product_total_price = this.$xdUniHelper.multiplyFloatNumber(res.product_total_price, 1);
546
+ this.plus_saving_money = this.$xdUniHelper.multiplyFloatNumber(res.discount_price, 1);
547
+ this.show_vip_card = res.show_vip_card;
548
+ if(res.show_vip_card === 'Y' && !this.vipCardList.length){
549
+ this.p_getVipList(res.business_code);
550
+ }
453
551
  })
454
552
  },
455
553
  p_getH5WxAuthorize(){
@@ -502,7 +600,9 @@
502
600
  if(!submitCardList.length){
503
601
  //支持补差, 提示是否使用补差
504
602
  if(this.payThird){
505
- await this.handleConfirmAllWxPay();
603
+ if(!this.isPlusSite){
604
+ await this.handleConfirmAllWxPay();
605
+ }
506
606
  }else{
507
607
  //不支持补差,仅提示
508
608
  return this.$xdAlert({content: "请选择兑换方式"})
@@ -514,6 +614,7 @@
514
614
  other_channel_pay_price: needPayPrice,
515
615
  need_pay_price: needPayPrice,
516
616
  namespace: this.xnamespace,
617
+ vip_card_id: this.vip_card_id,
517
618
  ...this.options,
518
619
  }, res => {
519
620
  this.$xdLog.setARMSInfo({
@@ -808,23 +909,32 @@
808
909
 
809
910
  .jfb-third-pay {
810
911
  &__body{
811
- padding-bottom: 150rpx;
812
- background: #FFFFFF;
912
+ // padding-bottom: 150rpx;
913
+ // background: #FFFFFF;
813
914
 
915
+ .pay_section{
916
+ margin: 24rpx;
917
+ background-color: #FFFFFF;
918
+ border-radius: 20rpx;
919
+ overflow: hidden;
920
+ }
814
921
  .text_gray{
815
922
  color: #666666 !important;
923
+ }
924
+ .vip_list_wrap{
925
+
816
926
  }
817
927
  .column-group{
818
928
  .column-item{
819
929
  display: flex;
820
930
  align-items: center;
821
931
  justify-content: space-between;
822
- border-bottom: 1px solid rgba(238, 238, 238, 1);
823
- padding: 30rpx 50rpx;
932
+ // border-bottom: 1px solid rgba(238, 238, 238, 1);
933
+ padding: 30rpx 40rpx;
824
934
 
825
935
  &.noBorder{
826
936
  border-bottom: none;
827
- padding: 12rpx 50rpx;
937
+ padding: 12rpx 40rpx;
828
938
  }
829
939
 
830
940
  .column_label{
@@ -922,6 +1032,19 @@
922
1032
  padding: 24rpx 0;
923
1033
  background: #FFFFFF;
924
1034
  box-shadow: 0 0 0px 1px rgba(0, 0, 0, 0.1);
1035
+ box-sizing: border-box;
1036
+ &.plus_btm{
1037
+ display: flex;
1038
+ align-items: center;
1039
+ justify-content: space-between;
1040
+ padding-left:40rpx;
1041
+ padding-right: 40rpx;
1042
+ .flex_l{
1043
+ color: #FF5A39;
1044
+ display: flex;
1045
+ align-items: center;
1046
+ }
1047
+ }
925
1048
  }
926
1049
  }
927
1050
  }
@@ -1,8 +1,66 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  module.exports = {
4
- getThirdOrderInfo: {"main_order_id":"b517729203734716416","address":"北京市东城区崇文门外大街18号1幢(F1-1)号商铺","phone":"13611111111","total_price":"1680","show_time":1684396260,"remark":"","count_down":897,"request_id":"d2002455fa902b94"},
5
- getThirdListCards: {"list":[{"card_number":"101001000005388","card_type_name":"聚福宝福","end_time":1764345599,"card_point":8319,"is_bind_card":true}],"request_id":"7a01f757e9c2b1ab"},
6
- getPayMethod: {"list":[{"method":"wallet","show_name":"使用我的元宝","icon":"icon_1"},{"method":"third","show_name":"使用补差","icon":"icon_2"},{"method":"score","show_name":"使用积分","icon":"icon_3"},{"method":"card","show_name":"使用票券1","icon":"icon_4"}],"request_id":"6549409a86024ecf"},
7
- getUserWallet: {"show_name":"我的元宝","icon":"icon_1","total_amount":127134,"list":[{"wallet_type":"UC","wallet_name":"测试账户1","wallet_virtual_number":"1000000000000245","amount":66955,"business_codes":"cake,v-RcA8Mv-Gpd96_Y_mjIf,movie","business_codes_name":"蛋糕(勿改),商城,电影(勿改)","wallet_rule":"<p>UC使用规则说明<\/p>\n<p>123<\/p>\n<p>阿达我娃的啊我啊我啊我啊我<\/p>\n<p><span style=\"color: #ff0000;\">阿我打我爱我的啊我啊我<\/span><\/p>"},{"wallet_type":"UB","wallet_name":"测试账户3","wallet_virtual_number":"1000000000000244","amount":60179,"business_codes":"cake,movie,market,video,book","business_codes_name":"蛋糕(勿改),电影(勿改),商城(对应百货)(勿改),网络视听(勿改),图书(勿改)","wallet_rule":"<p>UB使用规则说明<\/p>\n<p>123456<\/p>"}],"request_id":"c9975f7b9bc426a5"},
8
- }
4
+ getThirdOrderInfo: {
5
+ main_order_id: "b517729203734716416",
6
+ address: "北京市东城区崇文门外大街18号1幢(F1-1)号商铺",
7
+ phone: "13611111111",
8
+ total_price: "1680",
9
+ show_time: 1684396260,
10
+ remark: "",
11
+ count_down: 897,
12
+ product_total_price: "1680",
13
+ logistics_amount: "100",
14
+ request_id: "d2002455fa902b94"
15
+ },
16
+ getThirdListCards: {
17
+ list: [
18
+ {
19
+ card_number: "101001000005388",
20
+ card_type_name: "聚福宝福",
21
+ end_time: 1764345599,
22
+ card_point: 8319,
23
+ is_bind_card: true
24
+ }
25
+ ],
26
+ request_id: "7a01f757e9c2b1ab"
27
+ },
28
+ getPayMethod: {
29
+ list: [
30
+ { method: "wallet", show_name: "使用我的元宝", icon: "icon_1" },
31
+ { method: "third", show_name: "使用补差", icon: "icon_2" },
32
+ { method: "score", show_name: "使用积分", icon: "icon_3" },
33
+ { method: "card", show_name: "使用票券1", icon: "icon_4" }
34
+ ],
35
+ request_id: "6549409a86024ecf"
36
+ },
37
+ getUserWallet: {
38
+ show_name: "我的元宝",
39
+ icon: "icon_1",
40
+ total_amount: 127134,
41
+ list: [
42
+ {
43
+ wallet_type: "UC",
44
+ wallet_name: "测试账户1",
45
+ wallet_virtual_number: "1000000000000245",
46
+ amount: 66955,
47
+ business_codes: "cake,v-RcA8Mv-Gpd96_Y_mjIf,movie",
48
+ business_codes_name: "蛋糕(勿改),商城,电影(勿改)",
49
+ wallet_rule:
50
+ '<p>UC使用规则说明</p>\n<p>123</p>\n<p>阿达我娃的啊我啊我啊我啊我</p>\n<p><span style="color: #ff0000;">阿我打我爱我的啊我啊我</span></p>'
51
+ },
52
+ {
53
+ wallet_type: "UB",
54
+ wallet_name: "测试账户3",
55
+ wallet_virtual_number: "1000000000000244",
56
+ amount: 60179,
57
+ business_codes: "cake,movie,market,video,book",
58
+ business_codes_name:
59
+ "蛋糕(勿改),电影(勿改),商城(对应百货)(勿改),网络视听(勿改),图书(勿改)",
60
+ wallet_rule: "<p>UB使用规则说明</p>\n<p>123456</p>"
61
+ }
62
+ ],
63
+ request_id: "c9975f7b9bc426a5"
64
+ },
65
+ getVipList:{"total_size":3,"next_page_token":"","list":[{"vip_card_id":3,"product_id":60038520,"product_name":"体验卡","sale_price":10000000,"vip_card_icon":""},{"vip_card_id":2,"product_id":60038519,"product_name":"月卡","sale_price":10000000,"vip_card_icon":""},{"vip_card_id":1,"product_id":60038515,"product_name":"测1","sale_price":10000000,"vip_card_icon":""}],"request_id":"c5cf58415cffdc30"},
66
+ };
@@ -209,6 +209,7 @@ export default {
209
209
  selected_wallet_list_json: JSON.stringify(selected_wallet_list),
210
210
  need_pay_price: this.orderNeedPayPrice,
211
211
  namespace: this.xnamespace,
212
+ vip_card_id: this.vip_card_id,
212
213
  ...this.options,
213
214
  }, (res) => {
214
215
  console.warn("创建订单成功");