jufubao-mall 2.0.32 → 2.0.34

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 (38) hide show
  1. package/package.json +1 -1
  2. package/src/components/CusCouponChose/CusCouponChose.vue +10 -13
  3. package/src/components/CusEnter/CusEnter.vue +9 -1
  4. package/src/components/CusListItem/CusListItem.vue +141 -0
  5. package/src/components/CusPoster/CusPoster.vue +17 -62
  6. package/src/components/CusPrice/CusPrice.vue +391 -0
  7. package/src/components/CusProduct/CusProduct.vue +576 -184
  8. package/src/components/CusShops/CusShops.vue +409 -209
  9. package/src/components/CusTab/CusTab.vue +159 -22
  10. package/src/components/CusVipList/CusVipList.vue +169 -0
  11. package/src/components/JfbMallConfirm/Api.js +1 -1
  12. package/src/components/JfbMallConfirm/Attr.js +167 -453
  13. package/src/components/JfbMallConfirm/JfbMallConfirm.vue +362 -162
  14. package/src/components/JfbMallConfirm/Mock.js +61 -43
  15. package/src/components/JfbMallConfirm/XdAddrDefault.vue +26 -13
  16. package/src/components/JfbMallConfirm/XdAddrOld.vue +9 -7
  17. package/src/components/JfbMallConfirm/XdListItem.vue +10 -2
  18. package/src/components/JfbMallConfirm/cusAttr/advanced.js +91 -0
  19. package/src/components/JfbMallConfirm/cusAttr/content.js +355 -0
  20. package/src/components/JfbMallConfirm/cusAttr/style.js +628 -0
  21. package/src/components/JfbMallConfirm/shopList.vue +84 -42
  22. package/src/components/JfbMallNetworkMedia/Api.js +94 -0
  23. package/src/components/JfbMallNetworkMedia/Attr.js +20 -0
  24. package/src/components/JfbMallNetworkMedia/JfbMallNetworkMedia.vue +1167 -0
  25. package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaLess.less +80 -0
  26. package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaMixin.js +30 -0
  27. package/src/components/JfbMallNetworkMedia/Mock.js +372 -0
  28. package/src/components/JfbMallNetworkMedia/cusAttr/advanced.js +60 -0
  29. package/src/components/JfbMallNetworkMedia/cusAttr/content.js +230 -0
  30. package/src/components/JfbMallNetworkMedia/cusAttr/font.js +123 -0
  31. package/src/components/JfbMallNetworkMedia/cusAttr/icon.js +257 -0
  32. package/src/components/JfbMallNetworkMedia/cusAttr/style.js +12 -0
  33. package/src/components/JfbMallProductInfo/cusAttr/content.js +2 -0
  34. package/src/components/JfbMallProductList/JfbMallProductList.vue +7 -1
  35. package/src/components/JfbMallProductList/XdCateV1.vue +0 -1
  36. package/src/components/JfbMallShop/JfbMallShop.vue +1 -1
  37. package/src/components/JfbMallShop/cusAttr/content.js +1 -1
  38. package/src/components/SkeProduct/SkeProduct.vue +88 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-mall",
3
- "version": "2.0.32",
3
+ "version": "2.0.34",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -485,27 +485,26 @@ export default {
485
485
  //选卡弹出项
486
486
  useCardPop(data) {
487
487
  return new Promise((resolve, reject) => {
488
- this.$xdConfirm({
489
- title: '提示',
488
+ uni.showModal({
489
+ title: "提示",
490
490
  content: data.pop_message,
491
491
  confirmText: data.confirm_text,
492
492
  cancelText: data.cancel_text,
493
- width: '85%',
494
- isTitle: true,
495
- success: (res) => {
493
+ success: function (res) {
496
494
  if (res.confirm) {
497
495
  resolve(2);
498
496
  } else if (res.cancel) {
499
- if(data.pop_type == 'confirm'){
497
+ // reject("取消支付");
498
+ if (data.pop_type == "confirm") {
500
499
  resolve();
501
- }else{
500
+ } else {
502
501
  resolve(3);
503
502
  }
504
503
  }
505
504
  },
506
505
  fail: function (res) {
507
506
  reject(res);
508
- }
507
+ },
509
508
  });
510
509
  });
511
510
  },
@@ -663,11 +662,9 @@ export default {
663
662
  err_tip = "优惠券和密码不能为空";
664
663
  }
665
664
  if (err_tip) {
666
- return this.$xdAlert({
667
- content: err_tip,
668
- time: 2500,
669
- isClose: false,
670
- zIndex: 5000
665
+ return uni.showToast({
666
+ title: err_tip,
667
+ icon: "none",
671
668
  });
672
669
  }
673
670
  let callThis = this;
@@ -43,7 +43,7 @@
43
43
  @click.stop="handlePosterClick(brand,index)"
44
44
  >
45
45
  <view :style="[itemImageComp]" class="list-image" >
46
- <image v-if="brand['error-status']===false" :style="[config['iconStyle']]" :src="brand.brand_icon" :alt="brand.label"></image>
46
+ <image v-if="brand['error-status']===false" :style="[config['iconStyle']]" :src="getCNDUrl(brand.brand_icon)" :alt="brand.label"></image>
47
47
  <image v-else :style="[config['iconStyle']]" :src="iconErrorUrl" :alt="brand.label"></image>
48
48
  </view>
49
49
  <view class="list-title" :style="[config['titleStyle']]">{{brand.label}}</view>
@@ -60,6 +60,7 @@
60
60
 
61
61
  import CusSwiperDot from "@/components/CusSwiperDot/CusSwiperDot.vue";
62
62
  import Color from "color";
63
+ import getServiceUrl from "@/common/getServiceUrl";
63
64
 
64
65
  export default {
65
66
  name: "CusEnter",
@@ -238,6 +239,9 @@ export default {
238
239
  }
239
240
  },
240
241
  methods:{
242
+ getCNDUrl(url) {
243
+ return getServiceUrl(url,'size3')
244
+ },
241
245
  styleBox(out='out'){
242
246
  let boxPaddingBT = this.config.wrapperPaddingTB * this.$rpxNum
243
247
  let height = this.itemWidth * (this.row);
@@ -337,6 +341,10 @@ export default {
337
341
  flex-flow: wrap;
338
342
  flex-shrink: 0;
339
343
 
344
+ & > view {
345
+ flex-shrink: 0;
346
+ }
347
+
340
348
  .list-image {
341
349
  display: flex;
342
350
  justify-content: center;
@@ -0,0 +1,141 @@
1
+ <template>
2
+ <view class="xd-my-list-item"
3
+ :class="'size_'+size + ' ' + className"
4
+ :style="{
5
+ borderBottom: showBottom ? '1px solid #F6F6F6':'none',
6
+ // marginTop: showBottom? paddingTB: 0,
7
+ paddingLeft: paddingLR,
8
+ paddingRight: paddingLR,
9
+ paddingTop: paddingTB,
10
+ paddingBottom: paddingTB,
11
+ }"
12
+ @click="$emit('click')">
13
+ <view v-if="listIcon" class="my-list_icon">
14
+ <image mode="widthFix" :src="listIcon" />
15
+ </view>
16
+ <view class="my-list_label">
17
+ <slot name="label">
18
+ <view v-html="label"></view>
19
+ </slot>
20
+ </view>
21
+ <view class="my-list_value">
22
+ <slot></slot>
23
+ <xd-font-icon
24
+ v-if="showRight"
25
+ :style="{
26
+ marginLeft: '10rpx',
27
+ color: '#B1B1B1'
28
+ }"
29
+ size="24"
30
+ icon="iconxiangyou_xian"
31
+ ></xd-font-icon>
32
+ </view>
33
+
34
+ </view>
35
+ </template>
36
+
37
+ <script>
38
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
39
+ export default {
40
+ components: {
41
+ XdFontIcon
42
+ },
43
+ data(){
44
+ return {
45
+
46
+ }
47
+ },
48
+ props: {
49
+ size: {
50
+ type: String,
51
+ default: "default"
52
+ },
53
+ paddingTB:{
54
+ type: String,
55
+ default: "24rpx"
56
+ },
57
+ paddingLR: {
58
+ type: String,
59
+ default: "0rpx"
60
+ },
61
+ //是否显示border-bottom
62
+ showBottom: {
63
+ type: Boolean,
64
+ default: false
65
+ },
66
+ //是否显示右箭头
67
+ showRight: {
68
+ type: Boolean,
69
+ default: false
70
+ },
71
+ //是否显示图标
72
+ listIcon: {
73
+ type: String,
74
+ default: ''
75
+ },
76
+ //label
77
+ label: {
78
+ type: String,
79
+ default: ''
80
+ },
81
+ className: {
82
+ type: String,
83
+ default: ''
84
+ }
85
+ }
86
+
87
+ }
88
+ </script>
89
+
90
+ <style lang="less" scoped>
91
+ .xd-my-list-item{
92
+ display: flex;
93
+ align-items: center;
94
+ padding: 30rpx 0;
95
+ font-size: 28rpx;
96
+
97
+ &.size_large{
98
+ .my-list_value,
99
+ .my-list_label{
100
+ font-size: 28rpx;
101
+ font-weight: 400;
102
+ }
103
+ }
104
+ &.size_default{
105
+ .my-list_value,
106
+ .my-list_label{
107
+ font-size: 28rpx;
108
+ font-weight: 400;
109
+ }
110
+ }
111
+ &.size_small{
112
+ .my-list_value,
113
+ .my-list_label{
114
+ font-size: 24rpx;
115
+ font-weight: 400;
116
+ }
117
+ }
118
+
119
+ .my-list_icon{
120
+ width: 32rpx;
121
+ margin-right: 24rpx;
122
+
123
+ image{
124
+ width: 32rpx;
125
+ }
126
+ }
127
+
128
+ .my-list_label{
129
+ // flex: 1;
130
+ }
131
+ .my-list_value{
132
+ flex: 1;
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: flex-end;
136
+ }
137
+ .arrow_right{
138
+ width: 44rpx;
139
+ }
140
+ }
141
+ </style>
@@ -10,9 +10,10 @@
10
10
  >
11
11
  <image
12
12
  @click.stop="handlePosterClick(posterList[0],0)"
13
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
14
- :src="posterList[0].image_url"
13
+ :style="{width: '100%', height: styleObj.posterSize.height + 'rpx', borderRadius: imageRadius + 'rpx' }"
14
+ :src="getCNDUrl(posterList[0].image_url)"
15
15
  :alt="posterList[0].content_name"
16
+ mode="widthFix"
16
17
  ></image>
17
18
  </view>
18
19
 
@@ -39,8 +40,9 @@
39
40
  >
40
41
  <swiper-item v-for="(item,index) in posterList" :key="index" @click.stop="handlePosterClick(item,index)">
41
42
  <image
42
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
43
- :src="item['image_url']"
43
+ :style="{width: '100%', height: styleObj.posterSize.height + 'rpx', borderRadius: imageRadius + 'rpx' }"
44
+ :src="getCNDUrl(item['image_url'])"
45
+ mode="widthFix"
44
46
  ></image>
45
47
  </swiper-item>
46
48
  </swiper>
@@ -52,13 +54,16 @@
52
54
  <script>
53
55
 
54
56
  import CusSwiperDot from "@/components/CusSwiperDot/CusSwiperDot.vue";
57
+ import posterMixins from "@/mixins/posterMixins";
55
58
  import Color from "color";
59
+ import getServiceUrl from "@/common/getServiceUrl";
56
60
 
57
61
  export default {
58
62
  name: "CusPoster",
59
63
  components: {
60
64
  CusSwiperDot
61
65
  },
66
+ mixins:[posterMixins],
62
67
  props:{
63
68
  styleObj:{
64
69
  type: Object,
@@ -77,7 +82,11 @@ export default {
77
82
  mainColor:{
78
83
  type:String,
79
84
  required: true
80
- }
85
+ },
86
+ imageRadius:{
87
+ type: String|Number,
88
+ default: '0'
89
+ },
81
90
  },
82
91
 
83
92
  computed:{
@@ -87,6 +96,7 @@ export default {
87
96
  },
88
97
 
89
98
  data(){
99
+
90
100
  return {
91
101
  current:0,
92
102
  dotStyleDataConf(){
@@ -135,63 +145,8 @@ export default {
135
145
  }
136
146
  },
137
147
  methods:{
138
- handlePosterClick(item,index){
139
- if(!item.redirect_data) {
140
- console.warn(`未配置链接地址: ${item.redirect_data}`);
141
- console.error(`未配置链接地址: ${item.redirect_data}`);
142
- return
143
- }
144
-
145
- //内部链接跳转地址
146
- if (item.redirect_type === 'INN') {
147
- try {
148
- let url = JSON.parse(item.redirect_data);
149
- let params = '';
150
- if(url.page) {
151
- if (item['redirect_params']) params = `?${item['redirect_params']}`;
152
- this.$xdUniHelper.navigateTo({url: url.page + params})
153
- }
154
- else {
155
- console.error(`应用链接配置错误: ${url.page}`)
156
- }
157
- } catch (e) {
158
- console.error(`应用链接配置错误: ${item.redirect_data}`)
159
- }
160
- }
161
-
162
- //外部链接
163
- if (item.redirect_type === 'URL') {
164
- let reg = /^(http:\/\/|https:\/\/|\/\/)+.+$/;
165
- let spReg = /(-apiuri\/v)/;
166
- //#ifdef MP-WEIXIN
167
- try {
168
- let url = JSON.parse(item.redirect_data);
169
- if (reg.test(url.url) || spReg.test(url.url)) {
170
- console.warn(`广告跳转外站: ${url.url}`)
171
- this.$xdUniHelper.navigateTo(url);
172
- } else {
173
- console.error(`广告跳转外站配置错误: ${url.url}`)
174
- }
175
- } catch (e) {
176
- console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
177
- }
178
- //#endif
179
- //#ifdef H5
180
- try {
181
- let url = JSON.parse(item.redirect_data);
182
- console.warn(`广告跳转外站: ${url.url}`);
183
- this.$xdUniHelper.redirectTo(url, false)
184
- } catch (e) {
185
- console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
186
- }
187
- //#endif
188
-
189
- }
190
-
191
- //无跳转地址
192
- if(item.redirect_type === 'EMP') {
193
- console.warn(`无跳转地址`);
194
- }
148
+ getCNDUrl(url) {
149
+ return getServiceUrl(url,'size8')
195
150
  },
196
151
 
197
152
  handleChange(e){