jufubao-base 1.0.157-beta4 → 1.0.157-beta5
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/JfbBaseBack/JfbBaseBack.vue +6 -7
- package/src/components/JfbBaseCardSweepInfo/JfbBaseCardSweepInfo.vue +7 -1
- package/src/components/JfbBaseEntry/Attr.js +0 -22
- package/src/components/JfbBaseEntry/JfbBaseEntry.vue +13 -76
- package/src/components/JfbBaseNotice/Attr.js +2 -0
- package/src/components/JfbBaseNotice/JfbBaseNotice.vue +8 -7
- package/src/components/JfbBasePoster/JfbBasePoster.vue +18 -117
- package/src/components/JfbBasePoster/MoreScreen.vue +37 -154
- package/src/components/JfbBasePosterBigSmall/Attr.js +4 -1
- package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +42 -183
- package/src/components/JfbBasePosterEntry/JfbBasePosterEntry.vue +20 -89
- package/src/components/JfbBasePosterType/FourScreen.vue +18 -155
- package/src/components/JfbBasePosterType/JfbBasePosterType.vue +35 -0
- package/src/components/JfbBaseVideo/JfbBaseVideo.vue +7 -8
- package/src/components/JfbBaseVideo/XdVideo.vue +4 -0
|
@@ -33,45 +33,8 @@
|
|
|
33
33
|
field="content_name"
|
|
34
34
|
:mode="config.mode"
|
|
35
35
|
:dots-styles="config.dotStyleData"
|
|
36
|
-
:style="{height:(getHeight + 46 * $rpxNum) + 'px'
|
|
36
|
+
:style="{height:(getHeight + 46 * $rpxNum) + 'px'}"
|
|
37
37
|
>
|
|
38
|
-
<!--#ifdef MP-WEIXIN-->
|
|
39
|
-
<swiper
|
|
40
|
-
class="swiper xd-swiper-content"
|
|
41
|
-
:style="{width: '100%', height: getHeight + 'px'}"
|
|
42
|
-
:indicator-dots="false"
|
|
43
|
-
:autoplay="config.carouselTime>0"
|
|
44
|
-
:interval="config.carouselTime"
|
|
45
|
-
:duration="500"
|
|
46
|
-
:current="current"
|
|
47
|
-
circular
|
|
48
|
-
@animationfinish="handleAnimationfinish"
|
|
49
|
-
>
|
|
50
|
-
<swiper-item v-for="(item,index) in list" :key="index">
|
|
51
|
-
<view
|
|
52
|
-
class="sreen__box-list"
|
|
53
|
-
:class="{s3:config.cell === 3,s4:config.cell === 4}"
|
|
54
|
-
:style="{ height: getHeight + 'px' }"
|
|
55
|
-
>
|
|
56
|
-
<view
|
|
57
|
-
v-for="(it, indext) in item"
|
|
58
|
-
:key="it['content_id']"
|
|
59
|
-
@click="handleClick(it)"
|
|
60
|
-
:style="{
|
|
61
|
-
borderRadius: config.radius + 'rpx',
|
|
62
|
-
width: config.width + 'px',
|
|
63
|
-
height: config.height + 'px',
|
|
64
|
-
marginRight: (indext+1) % config.cell === 0 ? 0: config.padding + 'rpx',
|
|
65
|
-
marginTop: indext < config.cell ? 0 : config.padding + 'rpx',
|
|
66
|
-
}"
|
|
67
|
-
>
|
|
68
|
-
<image :style="{ width: width + 'px', height: height + 'px'}" :src="it.image_url" mode="widthFix"></image>
|
|
69
|
-
</view>
|
|
70
|
-
</view>
|
|
71
|
-
</swiper-item>
|
|
72
|
-
</swiper>
|
|
73
|
-
<!--#endif-->
|
|
74
|
-
<!--#ifdef H5-->
|
|
75
38
|
<xd-swiper
|
|
76
39
|
:indicator-dots="false"
|
|
77
40
|
:interval="config.carouselTime"
|
|
@@ -82,32 +45,31 @@
|
|
|
82
45
|
@onClickItem="handleClick"
|
|
83
46
|
@animationfinish="handleAnimationfinish"
|
|
84
47
|
>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
48
|
+
<template slot-scope="{ item, index}">
|
|
49
|
+
<view
|
|
50
|
+
class="sreen__box-list"
|
|
88
51
|
:class="{s3:config.cell === 3,s4:config.cell === 4}"
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
52
|
+
:style="{
|
|
53
|
+
height: getHeight + 'px'
|
|
54
|
+
}"
|
|
55
|
+
>
|
|
56
|
+
<view
|
|
57
|
+
v-for="(it, indext) in item"
|
|
58
|
+
:key="it['content_id']"
|
|
59
|
+
:style="{
|
|
60
|
+
borderRadius: config.radius + 'rpx',
|
|
61
|
+
width: config.width + 'px',
|
|
62
|
+
height: config.height + 'px',
|
|
63
|
+
marginRight: (indext+1) % config.cell === 0 ? 0: config.padding + 'rpx',
|
|
64
|
+
marginTop: indext < config.cell ? 0 : config.padding + 'rpx',
|
|
65
|
+
}"
|
|
66
|
+
@click="handleClick(it)"
|
|
67
|
+
>
|
|
68
|
+
<image :style="{ width: width + 'px', height: height + 'px'}" :src="it.image_url" mode="widthFix"></image>
|
|
69
|
+
</view>
|
|
70
|
+
</view>
|
|
71
|
+
</template>
|
|
109
72
|
</xd-swiper>
|
|
110
|
-
<!--#endif-->
|
|
111
73
|
</xd-swiper-dot>
|
|
112
74
|
</view>
|
|
113
75
|
<view v-if="isPreview" class="carousel-mask"></view>
|
|
@@ -171,64 +133,6 @@
|
|
|
171
133
|
handleAnimationfinish(e) {
|
|
172
134
|
this.current = e.detail.current;
|
|
173
135
|
},
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* @description 过滤不可以用
|
|
177
|
-
* 当前项目未H5时,过滤所有小程序应用
|
|
178
|
-
* 当前项目未小程序时,过滤所有非当前小程序应用
|
|
179
|
-
* 站外地址直接返回
|
|
180
|
-
* 站内地址未选值直接返回
|
|
181
|
-
* 预览模式全过
|
|
182
|
-
*/
|
|
183
|
-
filterItem(){
|
|
184
|
-
let content = this.content.filter(item=>{
|
|
185
|
-
//预览模式
|
|
186
|
-
if( this.$configProject.isPreview) return true;
|
|
187
|
-
|
|
188
|
-
//非内部应用
|
|
189
|
-
if(item.redirect_type !== 'INN') return true
|
|
190
|
-
|
|
191
|
-
//没有配置链接
|
|
192
|
-
if(!item.redirect_data) return true;
|
|
193
|
-
|
|
194
|
-
//内部应用
|
|
195
|
-
else {
|
|
196
|
-
let redirect_data;
|
|
197
|
-
try {
|
|
198
|
-
redirect_data = JSON.parse(item.redirect_data);
|
|
199
|
-
if(!item['app_type']) item['app_type']= 'h5';
|
|
200
|
-
|
|
201
|
-
//#ifdef H5
|
|
202
|
-
return item['app_type'] !== 'wxmp';
|
|
203
|
-
//#endif
|
|
204
|
-
|
|
205
|
-
//#ifdef MP-WEIXIN
|
|
206
|
-
let actDir = this.$parent.projectAttr.deploy_dir;
|
|
207
|
-
let dir = this.getPathDir(redirect_data.page);
|
|
208
|
-
if(item['app_type'] === 'wxmp'){
|
|
209
|
-
return actDir === dir;
|
|
210
|
-
}
|
|
211
|
-
else if(item['app_type'] === 'h5') return true;
|
|
212
|
-
else return true
|
|
213
|
-
//#endif
|
|
214
|
-
}
|
|
215
|
-
catch (e) {
|
|
216
|
-
return true
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
console.warn(`PostersList:${JSON.stringify(content.map(item=>`${item.app_type}:${item.content_name}:${item.redirect_data}`), null,2)}`)
|
|
221
|
-
return content;
|
|
222
|
-
|
|
223
|
-
},
|
|
224
|
-
|
|
225
|
-
getPathDir(pathDir){
|
|
226
|
-
if(pathDir.indexOf('@site_domain@/') === 0) {
|
|
227
|
-
return pathDir.replace('@site_domain@/','').split('/')[0]
|
|
228
|
-
}
|
|
229
|
-
return ''
|
|
230
|
-
},
|
|
231
|
-
|
|
232
136
|
init() {
|
|
233
137
|
if (this.timer) clearTimeout(this.timer);
|
|
234
138
|
this.timer = setTimeout(() => {
|
|
@@ -236,9 +140,6 @@
|
|
|
236
140
|
this.height = Number(this.config.height);
|
|
237
141
|
this.padding = Number(this.config.padding);
|
|
238
142
|
|
|
239
|
-
//过滤不可以用
|
|
240
|
-
const content = this.filterItem();
|
|
241
|
-
|
|
242
143
|
//静态图显示
|
|
243
144
|
if(this.config.isCarousel === 1) {
|
|
244
145
|
this.list = this.content
|
|
@@ -255,28 +156,18 @@
|
|
|
255
156
|
}
|
|
256
157
|
}, 100)
|
|
257
158
|
},
|
|
258
|
-
|
|
259
159
|
handleClick(item) {
|
|
260
|
-
if(!item.redirect_data) {
|
|
261
|
-
console.warn(`未配置链接地址: ${item.redirect_data}`);
|
|
262
|
-
console.error(`未配置链接地址: ${item.redirect_data}`);
|
|
263
|
-
return
|
|
264
|
-
}
|
|
265
|
-
|
|
266
160
|
//内部链接跳转地址
|
|
267
161
|
if (item.redirect_type === 'INN') {
|
|
268
162
|
try {
|
|
269
163
|
let url = JSON.parse(item.redirect_data);
|
|
270
164
|
let params = '';
|
|
271
|
-
if(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
console.error(`应用链接配置错误: ${url.page}`)
|
|
277
|
-
}
|
|
165
|
+
if (item['redirect_params']) params = `?${item['redirect_params']}`;
|
|
166
|
+
this.$xdUniHelper.navigateTo({
|
|
167
|
+
url: url.page + params
|
|
168
|
+
})
|
|
278
169
|
} catch (e) {
|
|
279
|
-
console.error(
|
|
170
|
+
console.error(e)
|
|
280
171
|
}
|
|
281
172
|
}
|
|
282
173
|
|
|
@@ -286,32 +177,29 @@
|
|
|
286
177
|
//#ifdef MP-WEIXIN
|
|
287
178
|
try {
|
|
288
179
|
let url = JSON.parse(item.redirect_data);
|
|
289
|
-
if (reg.test(url.url)) {
|
|
180
|
+
if (reg.test(url.url) && this.$configProject.extras.webview) {
|
|
290
181
|
console.warn(`广告跳转外站: ${url.url}`)
|
|
291
|
-
this.$xdUniHelper.navigateTo(
|
|
182
|
+
this.$xdUniHelper.navigateTo({
|
|
183
|
+
url: `${this.$configProject.extras.webview}?seatUrl=${Base64.encodeURI(url.url)}`
|
|
184
|
+
});
|
|
292
185
|
} else {
|
|
293
|
-
|
|
186
|
+
throw Error('地址错误')
|
|
294
187
|
}
|
|
295
188
|
} catch (e) {
|
|
296
|
-
console.error(
|
|
189
|
+
console.error(e)
|
|
297
190
|
}
|
|
298
191
|
//#endif
|
|
299
192
|
//#ifdef H5
|
|
300
193
|
try {
|
|
301
194
|
let url = JSON.parse(item.redirect_data);
|
|
302
195
|
console.warn(`广告跳转外站: ${url.url}`);
|
|
303
|
-
this.$xdUniHelper.
|
|
196
|
+
this.$xdUniHelper.navigateTo(url)
|
|
304
197
|
} catch (e) {
|
|
305
|
-
console.error(
|
|
198
|
+
console.error(e)
|
|
306
199
|
}
|
|
307
200
|
//#endif
|
|
308
201
|
|
|
309
202
|
}
|
|
310
|
-
|
|
311
|
-
//无跳转地址
|
|
312
|
-
if(item.redirect_type === 'EMP') {
|
|
313
|
-
console.warn(`无跳转地址`);
|
|
314
|
-
}
|
|
315
203
|
},
|
|
316
204
|
}
|
|
317
205
|
}
|
|
@@ -321,7 +209,6 @@
|
|
|
321
209
|
.sreen {
|
|
322
210
|
width: calc(100% + 4px); /**防止宽度不够问**/
|
|
323
211
|
position: relative;
|
|
324
|
-
height: 100%;
|
|
325
212
|
|
|
326
213
|
& .carousel-mask {
|
|
327
214
|
position: absolute;
|
|
@@ -339,7 +226,6 @@
|
|
|
339
226
|
flex-wrap: wrap;
|
|
340
227
|
overflow: hidden;
|
|
341
228
|
width: calc(100% + 20px); /**防止宽度不够问**/
|
|
342
|
-
height: 100%;
|
|
343
229
|
|
|
344
230
|
& > view {
|
|
345
231
|
display: flex;
|
|
@@ -352,8 +238,6 @@
|
|
|
352
238
|
}
|
|
353
239
|
|
|
354
240
|
&__box.carousel {
|
|
355
|
-
width: 100%;
|
|
356
|
-
height: 100%;
|
|
357
241
|
display: flex;
|
|
358
242
|
justify-content: flex-start;
|
|
359
243
|
align-items: flex-start;
|
|
@@ -363,7 +247,6 @@
|
|
|
363
247
|
|
|
364
248
|
& .sreen__box-list {
|
|
365
249
|
width: calc(100% + 20px); /**防止宽度不够问**/
|
|
366
|
-
height: 100%;
|
|
367
250
|
display: flex;
|
|
368
251
|
justify-content: flex-start;
|
|
369
252
|
align-items: flex-start;
|
|
@@ -50,6 +50,7 @@ export default {
|
|
|
50
50
|
value: params.height || 500,
|
|
51
51
|
className: 'input40',
|
|
52
52
|
placeholder: '请广告位内容间距设置',
|
|
53
|
+
disabled:xiugai,
|
|
53
54
|
notice: '广告位选取内容后,将无法修改,单位:像素,默认: <span style="color:red">500</span>像素',
|
|
54
55
|
inline: false,
|
|
55
56
|
},
|
|
@@ -59,6 +60,7 @@ export default {
|
|
|
59
60
|
groupKey:'style',
|
|
60
61
|
valueKey: 'margin',
|
|
61
62
|
value: params.margin || null,
|
|
63
|
+
disabled: xiugai,
|
|
62
64
|
setting: { type: 'margin'},
|
|
63
65
|
placeholder: '请设置广告位边距设置',
|
|
64
66
|
notice: '广告位选取内容后,将无法修改,单位:像素',
|
|
@@ -70,9 +72,10 @@ export default {
|
|
|
70
72
|
type: 'number',
|
|
71
73
|
valueKey: 'msMargin',
|
|
72
74
|
groupKey:'style',
|
|
73
|
-
value: params.msMargin,
|
|
75
|
+
value: params.msMargin || 10,
|
|
74
76
|
className: 'input40',
|
|
75
77
|
placeholder: '请广告位内容间距设置',
|
|
78
|
+
disabled: xiugai,
|
|
76
79
|
notice: '广告位选取内容后,将无法修改,单位:像素,默认: <span style="color:red">10</span>像素',
|
|
77
80
|
inline: false,
|
|
78
81
|
},
|