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.
- package/package.json +1 -1
- package/src/components/CusCouponChose/CusCouponChose.vue +10 -13
- package/src/components/CusEnter/CusEnter.vue +9 -1
- package/src/components/CusListItem/CusListItem.vue +141 -0
- package/src/components/CusPoster/CusPoster.vue +17 -62
- package/src/components/CusPrice/CusPrice.vue +391 -0
- package/src/components/CusProduct/CusProduct.vue +576 -184
- package/src/components/CusShops/CusShops.vue +409 -209
- package/src/components/CusTab/CusTab.vue +159 -22
- package/src/components/CusVipList/CusVipList.vue +169 -0
- package/src/components/JfbMallConfirm/Api.js +1 -1
- package/src/components/JfbMallConfirm/Attr.js +167 -453
- package/src/components/JfbMallConfirm/JfbMallConfirm.vue +362 -162
- package/src/components/JfbMallConfirm/Mock.js +61 -43
- package/src/components/JfbMallConfirm/XdAddrDefault.vue +26 -13
- package/src/components/JfbMallConfirm/XdAddrOld.vue +9 -7
- package/src/components/JfbMallConfirm/XdListItem.vue +10 -2
- package/src/components/JfbMallConfirm/cusAttr/advanced.js +91 -0
- package/src/components/JfbMallConfirm/cusAttr/content.js +355 -0
- package/src/components/JfbMallConfirm/cusAttr/style.js +628 -0
- package/src/components/JfbMallConfirm/shopList.vue +84 -42
- package/src/components/JfbMallNetworkMedia/Api.js +94 -0
- package/src/components/JfbMallNetworkMedia/Attr.js +20 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMedia.vue +1167 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaLess.less +80 -0
- package/src/components/JfbMallNetworkMedia/JfbMallNetworkMediaMixin.js +30 -0
- package/src/components/JfbMallNetworkMedia/Mock.js +372 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/advanced.js +60 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/content.js +230 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/font.js +123 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/icon.js +257 -0
- package/src/components/JfbMallNetworkMedia/cusAttr/style.js +12 -0
- package/src/components/JfbMallProductInfo/cusAttr/content.js +2 -0
- package/src/components/JfbMallProductList/JfbMallProductList.vue +7 -1
- package/src/components/JfbMallProductList/XdCateV1.vue +0 -1
- package/src/components/JfbMallShop/JfbMallShop.vue +1 -1
- package/src/components/JfbMallShop/cusAttr/content.js +1 -1
- package/src/components/SkeProduct/SkeProduct.vue +88 -3
package/package.json
CHANGED
|
@@ -485,27 +485,26 @@ export default {
|
|
|
485
485
|
//选卡弹出项
|
|
486
486
|
useCardPop(data) {
|
|
487
487
|
return new Promise((resolve, reject) => {
|
|
488
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
667
|
-
|
|
668
|
-
|
|
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
|
-
|
|
139
|
-
|
|
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){
|