jufubao-base 1.0.182-beta1 → 1.0.183

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-base",
3
- "version": "1.0.182-beta1",
3
+ "version": "1.0.183",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  import StyleForm from "@/utils/StyleForm";
3
- import IConList from "@/ICONS"
4
3
  let styleForm = new StyleForm(
5
4
  {border: null, shadow: null, spacing: '', bgColor:'', margin: null},
6
5
  null,
@@ -12,35 +11,6 @@ export default {
12
11
  advanced: [],
13
12
  content: (data)=>{
14
13
  return [
15
- {
16
- label: "布局样式配置",
17
- ele: "xd-radio",
18
- valueKey: "layout_style",
19
- value: data.layout_style || 'old',
20
- list: [
21
- {label: '原有布局', value: 'old'},
22
- {label: '淘福客布局', value: 'tfk'},
23
- ],
24
- groupKey: "content",
25
- },
26
- {
27
- label: "编辑图标",
28
- ele: "xd-select-list",
29
- valueKey: "edit_icon",
30
- value: data.edit_icon || 'iconbianji-01',
31
- list: IConList,
32
- className: 'input80',
33
- groupKey: "content",
34
- },
35
- {
36
- label: "删除图标",
37
- ele: "xd-select-list",
38
- valueKey: "delete_icon",
39
- value: data.delete_icon || 'iconshanchu-01',
40
- list: IConList,
41
- className: 'input80',
42
- groupKey: "content",
43
- },
44
14
  {
45
15
  label: '选取地区路径:',
46
16
  ele: 'xd-select-pages-path',
@@ -53,26 +23,7 @@ export default {
53
23
  },
54
24
  inline: false,
55
25
  },
56
- ...styleForm.getForm(data, '内容列表样式配置'),
57
- {
58
- label: "圆角设置",
59
- ele: 'xd-site-select-list',
60
- valueKey: 'cardRadius',
61
- value: data['cardRadius'] || '',
62
- groupKey:'style',
63
- placeholder: '请选择内容圆角设置',
64
- multiple: false,
65
- className: 'input80',
66
- handleCustom({ action, data }) {
67
- XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
68
- .then(res => {
69
- data.cb(res.list)
70
- })
71
- .catch(error => {
72
- console.error(error);
73
- });
74
- },
75
- }
26
+ ...styleForm.getForm(data, '内容列表样式配置')
76
27
  ].filter(i=>i)
77
28
  },
78
29
  }
@@ -26,108 +26,81 @@
26
26
  class="jfb-base-address__body-address"
27
27
  v-if="addressList && addressList.length > 0"
28
28
  >
29
- <template v-if="layout_style === 'old'">
30
- <view
31
- :style="{
32
- marginBottom: jfbListSpacing + 'rpx',
33
- boxShadow: jfbListShadowComputed,
34
- border: jfbListBorderComputed,
35
- backgroundColor: jfbListBgColor,
36
- borderRadius: cardRadius + 'rpx'
37
- }"
38
- class="jfb-base-address__body-address-item"
39
- v-for="(item, index) in addressList"
40
- @click="handleSelectAddress(item)"
41
- :key="index"
42
- >
43
- <view class="jfb-base-address__body-address-item-top">
44
- <view
45
- v-if="item.is_default === 'Y'"
46
- :style="{
47
- backgroundColor: mainColor,
48
- color: '#fff',
49
- fontSize: '24rpx',
50
- padding: '4rpx 10rpx',
51
- borderRadius: '4rpx',
52
- marginRight: '20rpx',
53
- }"
54
- >默认</view
55
- >
56
- <view
57
- :style="{
58
- color: '#999999',
59
- flex: 1,
60
- paddingRight: item.is_valid === 'N' ? '40rpx' : '',
61
- }"
62
- >
63
- <view>
64
- {{ item | getCodeName }}
65
- </view>
66
- </view>
67
- <view
68
- style="position: absolute; right: 40rpx; width: 50rpx"
69
- v-if="item.is_valid === 'N'"
70
- >
71
- <xd-font-icon
72
- size="32"
73
- :color="dangerColor"
74
- icon="iconmingchengtubiao"
75
- ></xd-font-icon>
76
- </view>
77
- </view>
78
- <view class="jfb-base-address__body-address-item-middle">
79
- {{ item.address_detail }} {{ item.house_number }}
80
- </view>
29
+ <view
30
+ :style="{
31
+ marginBottom: jfbListSpacing + 'rpx',
32
+ boxShadow: jfbListShadowComputed,
33
+ border: jfbListBorderComputed,
34
+ backgroundColor: jfbListBgColor,
35
+ }"
36
+ class="jfb-base-address__body-address-item"
37
+ v-for="(item, index) in addressList"
38
+ @click="handleSelectAddress(item)"
39
+ :key="index"
40
+ >
41
+ <view class="jfb-base-address__body-address-item-top">
81
42
  <view
43
+ v-if="item.is_default === 'Y'"
82
44
  :style="{
83
- backgroundColor: item.is_select === 'Y' ? mainColor : '#CCC',
45
+ backgroundColor: mainColor,
46
+ color: '#fff',
47
+ fontSize: '24rpx',
48
+ padding: '4rpx 10rpx',
49
+ borderRadius: '4rpx',
50
+ marginRight: '20rpx',
51
+ }"
52
+ >默认</view
53
+ >
54
+ <view
55
+ :style="{
56
+ color: '#999999',
57
+ flex: 1,
58
+ paddingRight: item.is_valid === 'N' ? '40rpx' : '',
84
59
  }"
85
- class="jfb-base-address__body-address-item-bottom"
86
60
  >
87
61
  <view>
88
- <view style="margin-right: 40rpx">{{ item.name }}</view>
89
- <view>{{ item.phone }}</view>
90
- </view>
91
- <view>
92
- <xd-font-icon
93
- @click.native.stop="handleEdit(item)"
94
- style="margin-right: 40rpx"
95
- icon="iconbianji-01"
96
- size="32"
97
- ></xd-font-icon>
98
- <xd-font-icon
99
- @click.native.stop="handleDel(item)"
100
- icon="iconshanchu-01"
101
- size="32"
102
- ></xd-font-icon>
62
+ {{ item | getCodeName }}
103
63
  </view>
104
64
  </view>
65
+ <view
66
+ style="position: absolute; right: 40rpx; width: 50rpx"
67
+ v-if="item.is_valid === 'N'"
68
+ >
69
+ <xd-font-icon
70
+ size="32"
71
+ :color="dangerColor"
72
+ icon="iconmingchengtubiao"
73
+ ></xd-font-icon>
74
+ </view>
75
+ </view>
76
+ <view class="jfb-base-address__body-address-item-middle">
77
+ {{ item.address_detail }} {{ item.house_number }}
105
78
  </view>
106
- </template>
107
- <template v-else>
108
79
  <view
109
80
  :style="{
110
- marginBottom: jfbListSpacing + 'rpx',
111
- boxShadow: jfbListShadowComputed,
112
- border: jfbListBorderComputed,
113
- backgroundColor: jfbListBgColor,
114
- borderRadius: cardRadius + 'rpx'
81
+ backgroundColor: item.is_select === 'Y' ? mainColor : '#CCC',
115
82
  }"
116
- v-for="(item, index) in addressList"
117
- @click="handleSelectAddress(item)"
118
- :key="index"
83
+ class="jfb-base-address__body-address-item-bottom"
119
84
  >
120
- <xd-tfk-item
121
- :edit_icon="edit_icon"
122
- :delete_icon="delete_icon"
123
- :item="item"
124
- :dangerColor="dangerColor"
125
- @editAddress="handleEdit(item)"
126
- @delAddress="handleDel(item)"
127
- @setDefault="handleSetDefault(item)"
128
- ></xd-tfk-item>
85
+ <view>
86
+ <view style="margin-right: 40rpx">{{ item.name }}</view>
87
+ <view>{{ item.phone }}</view>
88
+ </view>
89
+ <view>
90
+ <xd-font-icon
91
+ @click.native.stop="handleEdit(item)"
92
+ style="margin-right: 40rpx"
93
+ icon="iconbianji-01"
94
+ size="32"
95
+ ></xd-font-icon>
96
+ <xd-font-icon
97
+ @click.native.stop="handleDel(item)"
98
+ icon="iconshanchu-01"
99
+ size="32"
100
+ ></xd-font-icon>
101
+ </view>
129
102
  </view>
130
- </template>
103
+ </view>
131
104
  </view>
132
105
  <view class="jfb-base-address__body-empty" v-else>
133
106
  <xd-font-icon icon="iconbianzu-01" size="120"></xd-font-icon>
@@ -177,7 +150,6 @@ import componentsMixins from "@/mixins/componentsMixins";
177
150
  import extsMixins from "@/mixins/extsMixins";
178
151
  import StyleForm from "@/utils/StyleForm";
179
152
  import { getContainerPropsValue } from "@/utils/xd.base";
180
- import XdTfkItem from "./XdTfkItem"
181
153
  let styleForm = new StyleForm(
182
154
  {
183
155
  border: null,
@@ -202,7 +174,6 @@ export default {
202
174
  XdButton,
203
175
  XdDownDrawer,
204
176
  XdAddress,
205
- XdTfkItem,
206
177
  },
207
178
  mixins: [componentsMixins, extsMixins, JfbBaseAddressMixin],
208
179
  data() {
@@ -213,12 +184,7 @@ export default {
213
184
  location_url: "",
214
185
  addressList: null,
215
186
  ...styleForm.getDataItem(),
216
- version: '',
217
-
218
- layout_style: "old",
219
- edit_icon: "",
220
- delete_icon: "",
221
- cardRadius: 16,
187
+ version: ''
222
188
  };
223
189
  },
224
190
  filters: {
@@ -270,11 +236,6 @@ export default {
270
236
  { value: "" }
271
237
  ).value;
272
238
  styleForm.getInitItem(this, value);
273
- this.layout_style = getContainerPropsValue(value, "content.layout_style", "old");
274
- this.edit_icon = getContainerPropsValue(value, "content.edit_icon", "iconbianji-01");
275
- this.delete_icon = getContainerPropsValue(value, "content.delete_icon", "iconshanchu-01");
276
- this.cardRadius = getContainerPropsValue(value, "content.cardRadius", 16);
277
- console.log("edit_icon", this.edit_icon)
278
239
  },
279
240
  getList(callback) {
280
241
  this.$xdShowLoading({});
@@ -529,8 +490,7 @@ export default {
529
490
  })
530
491
  .catch(this.$xdLog.catch);
531
492
  },
532
- //接口数据接口映射到组件数据接口
533
- apiDataMapCompData(item){
493
+ handleEdit(item) {
534
494
  let city_name = [
535
495
  item["province_name"],
536
496
  item["city_name"],
@@ -543,15 +503,13 @@ export default {
543
503
  item["area_code"],
544
504
  item["street_code"],
545
505
  ];
546
- return {
506
+ this.defaultValue = {
547
507
  receipt_username: item["name"],
548
508
  receipt_address: item["address_detail"],
549
509
  receipt_phone: item["phone"],
550
510
  receipt_default: item["is_default"] === "Y" ? true : false,
551
511
  city_name: city_name,
552
512
  city_code: city_code,
553
- receipt_city_code: city_code,
554
- receipt_city_name: city_name,
555
513
  receipt_region_name: city_name.join(" "),
556
514
  city_selected_data: city_name.map((item, index) => {
557
515
  return { label: item, value: city_code[index] };
@@ -560,20 +518,11 @@ export default {
560
518
  latitude: item["latitude"] || null,
561
519
  longitude: item["longitude"] || null,
562
520
  house_number: item["house_number"],
563
- }
564
- },
565
- handleEdit(item) {
566
- this.defaultValue = this.apiDataMapCompData(item);
521
+ };
567
522
 
568
523
  console.log("handleEdit", item, this.defaultValue);
569
524
  this.showAddress = true;
570
525
  },
571
- handleSetDefault(item){
572
- let is_default = item.is_default === "Y" ? "N" : "Y";
573
- this.$set(item, 'is_default', is_default);
574
- let saveData = this.apiDataMapCompData({...item, is_default});
575
- this.handleSave(saveData);
576
- },
577
526
  handleDel(item) {
578
527
  console.log("handleDel", item);
579
528
  this.$xdConfirm({
@@ -721,10 +670,9 @@ export default {
721
670
 
722
671
  &-address {
723
672
  &-item {
724
- // border-radius: unit(16, rpx);
673
+ border-radius: unit(16, rpx);
725
674
  margin-bottom: unit(20, rpx);
726
675
  box-shadow: 0px 0px unit(20, rpx) 0px rgba(0, 0, 0, 0.1);
727
- overflow: hidden;
728
676
 
729
677
  &-top {
730
678
  display: flex;
@@ -747,7 +695,7 @@ export default {
747
695
  padding: unit(20, rpx) unit(40, rpx);
748
696
  font-size: unit(28, rpx);
749
697
  color: #fff;
750
- // border-radius: 0px 0px unit(16, rpx) unit(16, rpx);
698
+ border-radius: 0px 0px unit(16, rpx) unit(16, rpx);
751
699
 
752
700
  & > view {
753
701
  display: flex;
@@ -331,16 +331,6 @@ export default {
331
331
  inline: false,
332
332
  notice: '间距设置,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
333
333
  },
334
- {
335
- label: "主体信息行间距:",
336
- ele: 'el-input',
337
- type: 'number',
338
- valueKey: 'lineHeight',
339
- groupKey:'style',
340
- value: data['lineHeight'] || 20,
341
- placeholder: '请输入主体信息行间距',
342
- className: 'input80',
343
- },
344
334
  {
345
335
  ele: 'title',
346
336
  label: '投影设置',
@@ -129,9 +129,6 @@
129
129
  v-for="(Ditem, Dindex) in info.film_show.detail.items"
130
130
  :key="Dindex"
131
131
  class="jfb-base-order-detail__body-delivery-bottom-item"
132
- :style="{
133
- marginBottom: lineHeight + 'rpx'
134
- }"
135
132
  >
136
133
  <view style="width: 130rpx"
137
134
  >{{ Ditem.label }} <span v-if="Ditem.label">:</span>
@@ -217,9 +214,6 @@
217
214
  v-for="(Ditem, Dindex) in item.info"
218
215
  :key="Dindex"
219
216
  class="jfb-base-order-detail__body-delivery-bottom-item"
220
- :style="{
221
- marginBottom: lineHeight + 'rpx'
222
- }"
223
217
  >
224
218
  <view style="width: 130rpx;display: flex;">
225
219
  <view v-html="Ditem.label"></view>
@@ -516,9 +510,6 @@
516
510
  v-for="(item, index) in info.detail"
517
511
  :key="index"
518
512
  class="jfb-base-order-detail__body-order"
519
- :style="{
520
- marginBottom: lineHeight + 'rpx'
521
- }"
522
513
  >
523
514
  <view :style="{ fontWeight: item.style }">
524
515
  <view style="display: flex;">
@@ -550,9 +541,6 @@
550
541
  <view
551
542
  v-if="item.type !== 'line'"
552
543
  class="jfb-base-order-detail__body-price"
553
- :style="{
554
- marginBottom: lineHeight + 'rpx'
555
- }"
556
544
  >
557
545
  <view :style="{ fontWeight: item.style }">{{ item.label }}</view>
558
546
  <xd-unit
@@ -578,7 +566,7 @@
578
566
  ></xd-font-icon>
579
567
  </view>
580
568
  <view class="jfb-base-order-detail__body-show" v-else>
581
- 使用{{ info.pay_info.cards.length }}张票券 收起
569
+ <text>使用{{ info.pay_info.cards.length }}张票券 收起</text>
582
570
  <xd-font-icon
583
571
  style="margin-left: 8rpx"
584
572
  @click="showPayCard = false"
@@ -594,7 +582,7 @@
594
582
  :key="index"
595
583
  >
596
584
  <view>票券:{{ item.card_type_name }}</view>
597
- <view>
585
+ <view class="list-item">
598
586
  <view>编号:{{ item.card_number }}</view>
599
587
  <xd-unit
600
588
  :fontSize="28"
@@ -602,6 +590,7 @@
602
590
  :price="item.card_use_point"
603
591
  :unit="item['card_unit']"
604
592
  ></xd-unit>
593
+ <view v-if="item['card_discount_use_point'] > 0" class="discount">已优惠:{{item['card_discount_use_point']}}</view>
605
594
  </view>
606
595
  </view>
607
596
  </view>
@@ -628,6 +617,35 @@
628
617
  </view>
629
618
  </view>
630
619
  </view>
620
+ <!--旅游模块-->
621
+ <view
622
+ v-if="info.extras &&
623
+ info.extras.travel_booking_info &&
624
+ info.extras.travel_booking_info['travelers'] &&
625
+ info.extras.travel_booking_info['travelers'].length > 0"
626
+ :style="{
627
+ background: backgroundColor,
628
+ border: borderBox,
629
+ borderRadius: radius + 'rpx',
630
+ boxShadow: shadowBox,
631
+ marginBottom: padding + 'rpx',
632
+ }"
633
+ class="jfb-base-order-detail__body-card jfb-base-order-detail__body-booking"
634
+ >
635
+ <view class="jfb-base-order-detail__body-delivery-bottom-title">预订信息</view>
636
+ <view class="jfb-base-order-detail__body-line"></view>
637
+ <view class="jfb-base-order-detail__body-booking-list">
638
+ <view v-for="(item,index) in info.extras.travel_booking_info.travelers" :key="index" class="jfb-base-order-detail__body-booking-list-item">
639
+ <view :style="{color:mainColor,background:bgColor}" class="jfb-base-order-detail__body-booking-list-item-num">游客{{index+1}}</view>
640
+ <view class="jfb-base-order-detail__body-booking-list-item-info">
641
+ <view class="jfb-base-order-detail__body-booking-list-item-info-name">{{item.name}}</view>
642
+ <view v-if="item.id_card_no" class="jfb-base-order-detail__body-booking-list-item-info-item">身份证:{{item.id_card_no}}</view>
643
+ <view v-if="item.mobile" class="jfb-base-order-detail__body-booking-list-item-info-item">手机号:{{item.mobile}}</view>
644
+ </view>
645
+ </view>
646
+ </view>
647
+ </view>
648
+ <!--旅游模块-->
631
649
  <view
632
650
  v-if="info.productDetail"
633
651
  class="jfb-base-order-detail__body-card jfb-base-order-detail__body-shop"
@@ -815,7 +833,6 @@ export default {
815
833
  },
816
834
  is_hot: "Y",
817
835
  logo: "",
818
- lineHeight: 20,
819
836
 
820
837
  noticeBgc:'',
821
838
  };
@@ -909,6 +926,17 @@ export default {
909
926
  .then((res) => {
910
927
  this.biz_code = res.biz_code;
911
928
  this.is_not_show_price = res.is_not_show_price;
929
+
930
+ //旅游模块
931
+ if(res.extras && res.extras.travel_booking_info) {
932
+ try{
933
+ res.extras.travel_booking_info = JSON.parse(res.extras.travel_booking_info)
934
+ }catch(e){
935
+ res.extras.travel_booking_info = {}
936
+ }
937
+ }
938
+
939
+ //预览模块
912
940
  if (this.isPreview) {
913
941
  switch (this.viewStatus) {
914
942
  case "mall":
@@ -973,6 +1001,12 @@ export default {
973
1001
  item.card_use_point,
974
1002
  100
975
1003
  );
1004
+ if(item['card_discount_use_point'] !== undefined && item['card_discount_use_point'] > 0) {
1005
+ item.card_discount_use_point = this.$xdUniHelper.divisionFloatNumber(
1006
+ item.card_discount_use_point,
1007
+ 100
1008
+ );
1009
+ }
976
1010
  return item;
977
1011
  });
978
1012
  res.codes =
@@ -1085,7 +1119,6 @@ export default {
1085
1119
  this.viewStatus = getContainerPropsValue(container, "content.viewStatus", "mall");
1086
1120
  this.is_show_support_shop = getContainerPropsValue(container, "content.is_show_support_shop", "N");
1087
1121
  this.is_show_delete_order = getContainerPropsValue(container, "content.is_show_delete_order", "N");
1088
- this.lineHeight = getContainerPropsValue(container, "content.lineHeight", 20);
1089
1122
  },
1090
1123
  getCountDown() {
1091
1124
  this.timer = setInterval(() => {
@@ -1673,6 +1706,37 @@ export default {
1673
1706
  }
1674
1707
  }
1675
1708
 
1709
+ &-booking {
1710
+ &-list {
1711
+ &-item {
1712
+ display: flex;
1713
+ align-items: baseline;
1714
+ margin-bottom: 40rpx;
1715
+ &-num {
1716
+ font-size: 24rpx;
1717
+ margin-right: 24rpx;
1718
+ width: 120rpx;
1719
+ height: 50rpx;
1720
+ text-align: center;
1721
+ line-height: 50rpx;
1722
+ border-radius: 16rpx;
1723
+ }
1724
+ &-info {
1725
+ flex: 1;
1726
+ &-name {
1727
+ font-size: 32rpx;
1728
+ margin-bottom: 20rpx;
1729
+ }
1730
+ &-item {
1731
+ font-size: 24rpx;
1732
+ color: #666;
1733
+ margin-bottom: 16rpx;
1734
+ }
1735
+ }
1736
+ }
1737
+ }
1738
+ }
1739
+
1676
1740
  &-line {
1677
1741
  border-bottom: unit(2, rpx) solid #f2f2f2;
1678
1742
  margin-bottom: unit(40, rpx);
@@ -1718,5 +1782,22 @@ export default {
1718
1782
  border-radius: unit(12, rpx);
1719
1783
  padding: unit(14, rpx) unit(28, rpx);
1720
1784
  }
1785
+
1786
+ .list-item {
1787
+ position: relative;
1788
+
1789
+ & > .discount {
1790
+ position: absolute;
1791
+ left:0;
1792
+ right:0;
1793
+ bottom:-20rpx;
1794
+ height: 20rpx;
1795
+ font-size: 20rpx;
1796
+ line-height: 20rpx;
1797
+ color: #aaa;
1798
+ text-align: right;
1799
+ }
1800
+
1801
+ }
1721
1802
  }
1722
1803
  </style>
@@ -17,6 +17,11 @@ module.exports = {
17
17
  "loading": false,
18
18
  "loading_timeout": -1
19
19
  },
20
+ "extras": {
21
+ "first_logistics_package_id": "",
22
+ "logistics_count": 0,
23
+ "travel_booking_info": "{\"travelers\":[{\"name\":\"\\u6d4b\\u8bd5\",\"mobile\":\"18888888889\",\"id_card_no\":\"130102198304285898\",\"id_card_type\":\"1\"}]}"
24
+ },
20
25
  "film_show": {
21
26
  "name": "聚福宝-万里归途",
22
27
  "thumb": "https:\/\/p0.pipi.cn\/mmdb\/25bfd6ddb53c7e5015d23c5bc24d876c03d41.jpg?imageMogr2\/thumbnail\/1246x1246%3E",
@@ -4,17 +4,6 @@ export default {
4
4
  style: [],
5
5
  content: (data)=>{
6
6
  return [
7
- {
8
- label: "布局样式配置",
9
- ele: "xd-radio",
10
- valueKey: "layout_style",
11
- value: data.layout_style || 'old',
12
- list: [
13
- {label: '原有布局', value: 'old'},
14
- {label: '淘福客布局', value: 'tfk'},
15
- ],
16
- groupKey: "content",
17
- },
18
7
  {
19
8
  label: '设置订单状态:',
20
9
  ele: 'xd-order-setting',
@@ -41,18 +30,6 @@ export default {
41
30
  {required: true, message: '设置订单配置错误!请检查配置', trigger: 'change'},
42
31
  ],
43
32
  },
44
- {
45
- label: "是否展示订单号:",
46
- ele: 'xd-radio',
47
- valueKey: 'isShowOrderNo',
48
- value: data['isShowOrderNo'] || 'Y',
49
- groupKey:'style',
50
- list: [
51
- {label: '是', value: 'Y'},
52
- {label: '否', value: 'N'},
53
- ],
54
- hidden: data.layout_style !== 'tfk'
55
- },
56
33
  {
57
34
  label: '外填充:',
58
35
  ele: 'xd-margin-padding',
@@ -64,129 +64,104 @@
64
64
  class="jfb-base-order-list__body-order"
65
65
  :style="{ padding: outMargin }"
66
66
  >
67
- <template v-if="layout_style === 'old'">
68
- <view
69
- @click="handleToLink(detailPath, item)"
70
- class="jfb-base-order-list__body-order-item"
71
- v-for="item in orderList"
72
- :key="item.main_order_id"
73
- :style="{
74
- background: backgroundColor,
75
- border: borderBox,
76
- borderRadius: radius + 'rpx',
77
- boxShadow: shadowBox,
78
- marginBottom: padding + 'rpx',
79
- }"
80
- >
81
- <view class="jfb-base-order-list__body-order-item-biz">
82
- <xd-font-icon
83
- v-if="item.biz_code_icon"
84
- :icon="item.biz_code_icon"
85
- :size="item['biz_code_icon_size']"
86
- ></xd-font-icon>
87
- <view :class="{ marginLeft: item.biz_code_icon }">{{item.biz_code_name }}</view>
88
- </view>
89
- <view class="jfb-base-order-list__body-order-item-title">
90
- <view>订单编号:{{ item.main_order_id }}</view>
91
- <view :style="{color:item.status.status_type !== 'error' ? mainColor : '#999999',}">{{ item.status.status_name }}</view>
92
- </view>
93
- <view class="order-list">
94
- <view
95
- class="jfb-base-order-list__body-order-item-content"
96
- v-for="(Sitem, Sindex) in item.products"
97
- :key="Sitem.key"
98
- v-if="(item['isOpen'] === false && Sindex < showLen) || item['isOpen']"
99
- >
100
- <image :src="Sitem.product_thumb" style="background: #ffffff" mode="aspectFit"></image>
101
- <view class="jfb-base-order-list__body-order-item-content-info">
102
- <view class="jfb-base-order-list__body-order-item-content-info-name">{{ Sitem.product_name }}</view>
103
- <view class="brand-name" v-if="Sitem.brand_name" :style="{color:brandTextColor}">{{ Sitem.brand_name }}</view>
104
- <view v-if="Sitem.product_sku_name" class="jfb-base-order-list__body-order-item-content-info-skuname">规格:{{ Sitem.product_sku_name }}</view>
105
- <view class="jfb-base-order-list__body-order-item-content-info-price">
106
- <view></view>
107
- <view class="info-price">
108
- <text>X</text>
109
- <text>{{ Sitem.product_num }}</text>
110
- </view>
67
+ <view
68
+ @click="handleToLink(detailPath, item)"
69
+ class="jfb-base-order-list__body-order-item"
70
+ v-for="item in orderList"
71
+ :key="item.main_order_id"
72
+ :style="{
73
+ background: backgroundColor,
74
+ border: borderBox,
75
+ borderRadius: radius + 'rpx',
76
+ boxShadow: shadowBox,
77
+ marginBottom: padding + 'rpx',
78
+ }"
79
+ >
80
+ <view class="jfb-base-order-list__body-order-item-biz">
81
+ <xd-font-icon
82
+ v-if="item.biz_code_icon"
83
+ :icon="item.biz_code_icon"
84
+ :size="item['biz_code_icon_size']"
85
+ ></xd-font-icon>
86
+ <view :class="{ marginLeft: item.biz_code_icon }">{{item.biz_code_name }}</view>
87
+ </view>
88
+ <view class="jfb-base-order-list__body-order-item-title">
89
+ <view>订单编号:{{ item.main_order_id }}</view>
90
+ <view :style="{color:item.status.status_type !== 'error' ? mainColor : '#999999',}">{{ item.status.status_name }}</view>
91
+ </view>
92
+ <view class="order-list">
93
+ <view
94
+ class="jfb-base-order-list__body-order-item-content"
95
+ v-for="(Sitem, Sindex) in item.products"
96
+ :key="Sitem.key"
97
+ v-if="(item['isOpen'] === false && Sindex < showLen) || item['isOpen']"
98
+ >
99
+ <image :src="Sitem.product_thumb" style="background: #ffffff" mode="aspectFit"></image>
100
+ <view class="jfb-base-order-list__body-order-item-content-info">
101
+ <view class="jfb-base-order-list__body-order-item-content-info-name">{{ Sitem.product_name }}</view>
102
+ <view class="brand-name" v-if="Sitem.brand_name" :style="{color:brandTextColor}">{{ Sitem.brand_name }}</view>
103
+ <view v-if="Sitem.product_sku_name" class="jfb-base-order-list__body-order-item-content-info-skuname">规格:{{ Sitem.product_sku_name }}</view>
104
+ <view class="jfb-base-order-list__body-order-item-content-info-price">
105
+ <view></view>
106
+ <view class="info-price">
107
+ <text>X</text>
108
+ <text>{{ Sitem.product_num }}</text>
111
109
  </view>
112
110
  </view>
113
111
  </view>
114
- <view
115
- class="order-list-icon"
116
- :style="{ bottom: item['isOpen'] ? '-30rpx' : '-54rpx' }"
117
- v-if="item.products.length > showLen"
118
- @click.stop="switchOpen(item)"
119
- >
120
- <view :style="{ background: backgroundColor }">
121
- <xd-font-icon
122
- color="#666"
123
- :icon="item['isOpen'] ? 'iconshang_up' : 'iconxia_down'"
124
- size="24"
125
- ></xd-font-icon>
126
- </view>
127
- </view>
128
- </view>
129
- <view class="jfb-base-order-list__body-order-item-bottom">
130
- <view>下单时间:{{ item.created_time_text }}</view>
131
- <view v-if="item.biz_code !== 'gift' && item.is_not_show_price !== 'Y'">
132
- <text>合计:</text>
133
- <xd-unit
134
- :isOld="false"
135
- :price="item.total_amount"
136
- :color="mainColor"
137
- :fontSize="28"
138
- ></xd-unit>
139
- </view>
140
- <view style="color:#999" v-if="item['main_user_server_amount'] !== undefined && item['main_user_server_amount'] > 0">
141
- <text>(平台服务费:</text>
142
- <xd-unit
143
- :isOld="false"
144
- :price="item['main_user_server_amount']"
145
- :fontSize="24"
146
- :is-gray="true"
147
- color="#999"
148
- :icon-size=".25"
149
- ></xd-unit>
150
- <text>)</text>
151
- </view>
152
112
  </view>
153
113
  <view
154
- class="jfb-base-order-list__body-order-item-pay"
155
- v-if="item.buttons.length"
114
+ class="order-list-icon"
115
+ :style="{ bottom: item['isOpen'] ? '-30rpx' : '-54rpx' }"
116
+ v-if="item.products.length > showLen"
117
+ @click.stop="switchOpen(item)"
156
118
  >
157
- <view v-for="(btn,index) in item.buttons" :key="btn.key">
158
- <xd-button
159
- :type="getBtnType(btn.action)"
160
- size="mini"
161
- @click="handleBtnEvent(btn.action, item)"
162
- >{{ btn.text }}</xd-button>
119
+ <view :style="{ background: backgroundColor }">
120
+ <xd-font-icon
121
+ color="#666"
122
+ :icon="item['isOpen'] ? 'iconshang_up' : 'iconxia_down'"
123
+ size="24"
124
+ ></xd-font-icon>
163
125
  </view>
164
126
  </view>
165
127
  </view>
166
- </template>
167
- <template v-if="layout_style === 'tfk'">
128
+ <view class="jfb-base-order-list__body-order-item-bottom">
129
+ <view>下单时间:{{ item.created_time_text }}</view>
130
+ <view v-if="item.biz_code !== 'gift' && item.is_not_show_price !== 'Y'">
131
+ <text>合计:</text>
132
+ <xd-unit
133
+ :isOld="false"
134
+ :price="item.total_amount"
135
+ :color="mainColor"
136
+ :fontSize="28"
137
+ ></xd-unit>
138
+ </view>
139
+ <view style="color:#999" v-if="item['main_user_server_amount'] !== undefined && item['main_user_server_amount'] > 0">
140
+ <text>(平台服务费:</text>
141
+ <xd-unit
142
+ :isOld="false"
143
+ :price="item['main_user_server_amount']"
144
+ :fontSize="24"
145
+ :is-gray="true"
146
+ color="#999"
147
+ :icon-size=".25"
148
+ ></xd-unit>
149
+ <text>)</text>
150
+ </view>
151
+ </view>
168
152
  <view
169
- @click="handleToLink(detailPath, item)"
170
- class="jfb-base-order-list__body-order-item"
171
- v-for="item in orderList"
172
- :key="item.main_order_id"
173
- :style="{
174
- background: backgroundColor,
175
- border: borderBox,
176
- borderRadius: radius + 'rpx',
177
- boxShadow: shadowBox,
178
- marginBottom: padding + 'rpx',
179
- }"
153
+ class="jfb-base-order-list__body-order-item-pay"
154
+ v-if="item.buttons.length"
180
155
  >
181
- <xd-tfk-order-item
182
- :mainColor="mainColor"
183
- :isShowOrderNo="isShowOrderNo"
184
- :brandTextColor="brandTextColor"
185
- :item="item"
186
- @handleBtnEvent="action => handleBtnEvent(action, item)"
187
- ></xd-tfk-order-item>
156
+ <view v-for="(btn,index) in item.buttons" :key="btn.key">
157
+ <xd-button
158
+ :type="getBtnType(btn.action)"
159
+ size="mini"
160
+ @click="handleBtnEvent(btn.action, item)"
161
+ >{{ btn.text }}</xd-button>
162
+ </view>
188
163
  </view>
189
- </template>
164
+ </view>
190
165
  </view>
191
166
  <view v-else class="jfb-base-order-list__body-no">
192
167
  <xd-font-icon
@@ -214,7 +189,6 @@ import extsMixins from "@/mixins/extsMixins";
214
189
  import { getContainerPropsValue } from "@/utils/xd.base";
215
190
  import getServiceUrl from "@/common/getServiceUrl";
216
191
  import Color from "color";
217
- import XdTfkOrderItem from "./XdTfkOrderItem"
218
192
 
219
193
  export default {
220
194
  name: "JfbBaseOrderList",
@@ -223,7 +197,6 @@ export default {
223
197
  XdTab,
224
198
  XdUnit,
225
199
  XdButton,
226
- XdTfkOrderItem,
227
200
  },
228
201
  mixins: [componentsMixins, extsMixins, JfbBaseOrderListMixin],
229
202
  data() {
@@ -266,8 +239,6 @@ export default {
266
239
  right: 0,
267
240
  bottom: 0,
268
241
  },
269
- layout_style: "old",
270
- isShowOrderNo: "Y",
271
242
 
272
243
  noticeBgc:'',
273
244
  };
@@ -344,8 +315,6 @@ export default {
344
315
 
345
316
  this.detailPath = getContainerPropsValue(container, "content.detailPath", { value: "" }).value;
346
317
  this.payPath = getContainerPropsValue(container, "content.payPath", {value: "",}).value;
347
- this.layout_style = getContainerPropsValue(container, "content.layout_style", "old");
348
- this.isShowOrderNo = getContainerPropsValue(container, "content.isShowOrderNo", "Y");
349
318
  this.tabList = getContainerPropsValue(container, "content.orderTypeList", []).map((item) => {
350
319
  return {
351
320
  name: item.customName || item.label,
@@ -100,7 +100,7 @@
100
100
  <view class="remain_pay" v-if="payInfo.channel_amount > 0">
101
101
  <view style="border-bottom: 2rpx solid #eee;" class="column-group">
102
102
  <view class="column-item" style="padding: 30rpx 60rpx">
103
- <view class="column_label">仍需支付<text class="label_sub">(可使用多张票券支付)</text></view>
103
+ <view class="column_label">仍需扣点<text class="label_sub">(可使用多张票券点数)</text></view>
104
104
  <view class="column_value text-primary">
105
105
  <xd-unit
106
106
  :price="payInfo.channel_amount"
@@ -112,9 +112,9 @@
112
112
  </view>
113
113
  </view>
114
114
  <view class="remain_header">
115
- <view>选择以下支付方式</view>
115
+ <view>选择以下补差方式</view>
116
116
  <view class="flex align-center text-primary">
117
- <view class="margin-right">继续支付</view>
117
+ <view class="margin-right">继续补差</view>
118
118
  <xd-unit
119
119
  :price="payInfo.channel_amount"
120
120
  :is-show-icon="false"
@@ -150,7 +150,7 @@
150
150
  type="primary"
151
151
  radius="50rpx"
152
152
  @click="doThirdPay"
153
- >确认支付</xd-button>
153
+ >确认</xd-button>
154
154
  </view>
155
155
  </view>
156
156
  </view>
@@ -1,117 +0,0 @@
1
- <template>
2
- <view class="xd-tfk-item" @click="handleSelectAddress">
3
- <view class="item_top">
4
- <view class="user_info">
5
- {{ item.name }} <text style="margin-left: 20rpx;">{{ item.phone }}</text>
6
- <view v-if="item.is_valid === 'N'"
7
- style="position: absolute; right: 40rpx;top: 0;"
8
- >
9
- <xd-font-icon
10
- size="32"
11
- :color="dangerColor"
12
- icon="iconmingchengtubiao"
13
- ></xd-font-icon>
14
- </view>
15
- </view>
16
- <view class="user_adr">{{item.province_name}}{{item.city_name}}{{item.area_name}}{{item.street_name}}{{ item.address_detail }} {{ item.house_number }}</view>
17
- </view>
18
- <view class="item_bottom">
19
- <view class="is_default" @click.native.stop="setDefault">
20
- <xd-radio :value="item.is_default === 'Y'" :width="52" :height="52" :iconSize="20"></xd-radio>
21
- <view v-if="item.is_default === 'Y'">默认地址</view>
22
- <view v-else>设为默认</view>
23
- </view>
24
- <view class="item_opera">
25
- <view class="o_i" style="margin-right: 30rpx;" @click.native.stop="handleEdit">
26
- <xd-font-icon class="icon" :icon="edit_icon" :size="26"></xd-font-icon> 编辑
27
- </view>
28
- <view class="o_i" @click.native.stop="handleDel">
29
- <xd-font-icon class="icon" :icon="delete_icon" :size="26"></xd-font-icon> 删除
30
- </view>
31
- </view>
32
- </view>
33
- </view>
34
- </template>
35
- <script>
36
- import XdRadio from "@/components/XdRadio/XdRadio"
37
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon"
38
- export default{
39
- name:"XdTfkItem",
40
- components: {
41
- XdRadio,
42
- XdFontIcon,
43
- },
44
- props:{
45
- edit_icon: String,
46
- delete_icon: String,
47
- item: Object,
48
- dangerColor: String,
49
- },
50
- data(){
51
- return{
52
- }
53
- },
54
- created(){
55
- },
56
- methods:{
57
- handleSelectAddress(){
58
- this.$emit("selectAddress")
59
- },
60
- handleEdit(){
61
- this.$emit("editAddress", this.item)
62
- },
63
- handleDel(){
64
- this.$emit("delAddress", this.item)
65
- },
66
- setDefault(){
67
- this.$emit("setDefault", this.item)
68
- }
69
- },
70
- }
71
- </script>
72
- <style lang="less" scoped>
73
- .xd-tfk-item{
74
- .item_top{
75
- padding: 30rpx;
76
- }
77
- .user_info{
78
- color: #191a1b;
79
- font-size: 30rpx;
80
- position: relative;
81
- }
82
- .user_adr{
83
- color: #797d82;
84
- font-size: 26rpx;
85
- margin-top: 6rpx;
86
- overflow: hidden;
87
- text-overflow: ellipsis;
88
- white-space: nowrap;
89
- }
90
- .item_bottom{
91
- display: flex;
92
- justify-content: space-between;
93
- padding: 20rpx;
94
- border-top: 1px solid #ededed;
95
- }
96
- .item_opera{
97
- display: flex;
98
- color: #797d82;
99
- align-items: center;
100
- .o_i{
101
- display: flex;
102
- align-items: center;
103
- font-size: 26rpx;
104
-
105
- .icon{
106
- margin-right: 10rpx;
107
- }
108
- }
109
- }
110
- .is_default{
111
- display: flex;
112
- align-items: center;
113
- font-size: 26rpx;
114
- color: #797d82;
115
- }
116
- }
117
- </style>
@@ -1,246 +0,0 @@
1
- <template>
2
- <view class="xd-tfk-order-item">
3
- <view class="o_header">
4
- <view class="h_l">
5
- <xd-font-icon
6
- v-if="item.biz_code_icon"
7
- :icon="item.biz_code_icon"
8
- :size="item['biz_code_icon_size']"
9
- ></xd-font-icon>
10
- <view :class="{ marginLeft: item.biz_code_icon }" style="margin-left: 20rpx;">{{item.biz_code_name }}</view>
11
- </view>
12
- <view v-if="isShowOrderNo==='N'" class="o_status" :style="{
13
- color:item.status.status_type !== 'error' ? mainColor : '#999999',
14
- }">{{ item.status.status_name }}</view>
15
- </view>
16
- <view class="o_title" v-if="isShowOrderNo==='Y'">
17
- <view class="o_number">订单编号:{{ item.main_order_id }}</view>
18
- <view class="o_status" :style="{
19
- color:item.status.status_type !== 'error' ? mainColor : '#999999',
20
- }">{{ item.status.status_name }}</view>
21
- </view>
22
- <view class="prod_list">
23
- <!-- 单个商品展示商品信息 -->
24
- <template v-if="item.products.length == 1">
25
- <view class="one_prod" v-for="Sitem in item.products" :key="Sitem.key">
26
- <view class="prod_img">
27
- <image :src="Sitem.product_thumb" style="background: #ffffff" mode="aspectFill"></image>
28
- </view>
29
- <view class="prod_info">
30
- <view class="prod_name">{{ Sitem.product_name }}</view>
31
- <view v-if="Sitem.brand_name" class="prod_brand" :style="{color: brandTextColor}">{{ Sitem.brand_name }}</view>
32
- <view v-if="Sitem.product_sku_name" class="prod_sku">规格:{{ Sitem.product_sku_name }}</view>
33
- <view class="prod_price">
34
- <view>¥448</view>
35
- <view class="info-price">
36
- <text>x</text>
37
- <text>{{ Sitem.product_num }}</text>
38
- </view>
39
- </view>
40
- </view>
41
- </view>
42
- </template>
43
-
44
- <!-- 多个商品展示更多商品信息 -->
45
- <view v-if="item.products.length > 1" class="more_prod">
46
- <view class="img_list">
47
- <view class="prod_img" v-for="prod in item.products" :key="prod.key">
48
- <image :src="prod.product_thumb" style="background: #ffffff" mode="aspectFit"></image>
49
- </view>
50
- </view>
51
- <view class="right_arrow">
52
- <xd-font-icon icon='iconxiangyou_xian' :size="26" color="#bdc0c5"></xd-font-icon>
53
- </view>
54
- </view>
55
- </view>
56
- <view class="prod_total">
57
- <view></view>
58
- <view style="display: flex;align-items: center;">
59
- 共{{item.products.length}}件商品 实付
60
- <xd-unit
61
- :isOld="false"
62
- :price="item.total_amount"
63
- :color="mainColor"
64
- :fontSize="28"></xd-unit>
65
- </view>
66
- </view>
67
- <view v-if="item.buttons.length" class="prod_footer">
68
- <view style="flex: 1;"></view>
69
- <view class="btn"
70
- v-for="(btn,index) in item.buttons" :key="btn.key"
71
- @click="handleBtnEvent(btn.action, item)"
72
- >{{btn.text}}</view>
73
- </view>
74
- </view>
75
- </template>
76
-
77
- <script>
78
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon"
79
- import XdUnit from "@/components/XdUnit/XdUnit"
80
- export default{
81
- name:"XdTfkOrderItem",
82
- components: {
83
- XdFontIcon,
84
- XdUnit,
85
- },
86
- props:{
87
- item: Object,
88
- mainColor: String,
89
- isShowOrderNo: {
90
- type: String,
91
- },
92
- brandTextColor: String
93
- },
94
- data(){
95
- return{
96
- }
97
- },
98
- methods:{
99
- handleBtnEvent(action){
100
- this.$emit('handleBtnEvent', action)
101
- },
102
- }
103
- }
104
- </script>
105
-
106
- <style lang="less" scoped>
107
- .xd-tfk-order-item{
108
- padding-left: 30rpx;
109
- overflow: hidden;
110
- .o_header{
111
- height: 90rpx;
112
- display: flex;
113
- align-items: center;
114
- justify-content: space-between;
115
- border-bottom: 1px solid #EDEDED;
116
- padding-right: 30rpx;
117
- color: #333333;
118
- font-size: 28rpx;
119
-
120
- .h_l{
121
- display: flex;
122
- align-items: center;
123
- }
124
- }
125
- .o_title{
126
- height: 80rpx;
127
- display: flex;
128
- align-items: center;
129
- justify-content: space-between;
130
- padding-right: 30rpx;
131
- color: #333333;
132
- font-size: 24rpx;
133
- border-bottom: 1px solid #EDEDED;
134
- }
135
- .one_prod{
136
- display: flex;
137
- align-items: center;
138
- width: 100%;
139
- padding: 30rpx 30rpx 30rpx 0;
140
- box-sizing: border-box;
141
- .prod_img{
142
- width: 140rpx;
143
- height: 140rpx;
144
- background-color: #f5f5f9;
145
- image{
146
- width: 100%;
147
- height: 100%;
148
- }
149
- }
150
- .prod_info{
151
- flex: 1;
152
- padding-left: 30rpx;
153
- .prod_name{
154
- color: #2e2f30;
155
- font-size: 30rpx;
156
- }
157
- .prod_brand{
158
- font-size: 24rpx;
159
- margin-top: 8rpx;
160
- }
161
- .prod_sku{
162
- color: #797d82;
163
- font-size: 24rpx;
164
- margin-top: 8rpx;
165
- }
166
- }
167
- .prod_price{
168
- display: flex;
169
- justify-content: space-between;
170
- align-items: center;
171
- color: rgb(46, 47, 48);
172
- font-size: 30rpx;
173
- margin-top: 12rpx;
174
- .info-price{
175
- display: flex;
176
- color: #bdc0c5;
177
- font-size: 26rpx;
178
- }
179
- }
180
- }
181
- .prod_list{
182
- position: relative;
183
- .right_arrow{
184
- position: absolute;
185
- right: 0px;
186
- height: 100%;
187
- width: 60rpx;
188
- top: 0;
189
- background: #FFF;
190
- display: flex;
191
- align-items: center;
192
- justify-content: center;
193
- }
194
- }
195
- .more_prod{
196
- display: flex;
197
- flex-wrap: nowrap;
198
- overflow: auto;
199
- padding: 30rpx 30rpx 30rpx 0;
200
- width: 100%;
201
- .img_list{
202
- display: flex;
203
- flex-wrap: nowrap;
204
- padding-right: 60rpx;
205
- }
206
- .prod_img{
207
- width: 140rpx;
208
- height: 140rpx;
209
- display: flex;
210
- align-items: center;
211
- justify-content: center;
212
- image{
213
- width: 100%;
214
- height: 100%;
215
- }
216
- }
217
- }
218
- .prod_total{
219
- height: 80rpx;
220
- display: flex;
221
- align-items: center;
222
- justify-content: space-between;
223
- padding-right: 30rpx;
224
- border-top: 1px solid #EDEDED;
225
- color: #2e2f30;
226
- font-size: 26rpx;
227
- }
228
- .prod_footer{
229
- padding: 16rpx 30rpx 16rpx 0;
230
- display: flex;
231
- align-items: center;
232
- border-top: 1px solid #EDEDED;
233
- .btn{
234
- width: 170rpx;
235
- height: 66rpx;
236
- border: 1px solid #EDEDED;
237
- display: flex;
238
- align-items: center;
239
- justify-content: center;
240
- margin-left: 20rpx;
241
- color: #2e2f30;
242
- font-size: 24rpx;
243
- }
244
- }
245
- }
246
- </style>