jufubao-movie 1.0.39-beta8 → 1.0.39
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/JfbMovieLineCinemaChoose/Api.js +3 -3
- package/src/components/JfbMovieLineCinemaChoose/JfbMovieLineCinemaChoose.vue +13 -9
- package/src/components/JfbMovieLineCinemaChoose/Mock.js +2 -2
- package/src/components/JfbMovieLineFilm/JfbMovieLineFilm.vue +16 -3
- package/src/components/JfbMovieLineFilmInfo/JfbMovieLineFilmInfo.vue +2 -4
- package/src/components/JfbMovieLineFilmInfo/Mock.js +1 -1
- package/src/components/JfbMovieLineLineSeat/XdOnlineSeat.vue +11 -0
- package/src/components/JfbMovieLineSchedule/JfbMovieLineSchedule.vue +1 -1
- package/src/components/JfbMovieTfkFilmList/Attr.js +5 -238
- package/src/components/JfbMovieTfkFilmList/ContentItem.vue +2 -2
- package/src/components/JfbMovieTfkFilmList/JfbMovieTfkFilmList.vue +200 -110
- package/src/components/JfbMovieTfkFilmList/PosterAttr.js +257 -0
- package/src/components/JfbMovieTfkFilmList/XdPoster.vue +160 -0
- package/src/components/JfbMovieTfkFilmList/XdQueryFilter.vue +2 -1
- package/src/components/JfbMovieTfkFilmRecommend/JfbMovieTfkFilmRecommend.vue +6 -2
- package/src/lib/VirtualList.js +85 -64
- package/src/mixins/posterMixins.js +0 -59
|
@@ -41,55 +41,26 @@
|
|
|
41
41
|
>{{item.label}}</view>
|
|
42
42
|
</view>
|
|
43
43
|
<!--poster-->
|
|
44
|
-
<
|
|
45
|
-
class="list-poster"
|
|
44
|
+
<xd-poster
|
|
46
45
|
v-if="posterList !== null && posterList.length > 0"
|
|
47
|
-
:style="
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<view class="list-poster-more" v-else>
|
|
57
|
-
<xd-swiper-dot
|
|
58
|
-
:style="{width: posterSize.width + 'rpx', height: posterSize.height + 'rpx' }"
|
|
59
|
-
:current="current"
|
|
60
|
-
:info="posterList"
|
|
61
|
-
field="content_name"
|
|
62
|
-
:mode="mode"
|
|
63
|
-
:dots-styles="dotStyleData"
|
|
64
|
-
>
|
|
65
|
-
<swiper
|
|
66
|
-
class="swiper xd-swiper-content"
|
|
67
|
-
:style="{width: posterSize.width + 'rpx', height: posterSize.height + 'rpx' }"
|
|
68
|
-
:indicator-dots="false"
|
|
69
|
-
:autoplay="carouselTime >0"
|
|
70
|
-
:interval="carouselTime"
|
|
71
|
-
:duration="500"
|
|
72
|
-
:current="current"
|
|
73
|
-
circular
|
|
74
|
-
@animationfinish="handleAnimationfinish"
|
|
75
|
-
>
|
|
76
|
-
<swiper-item v-for="(item,index) in posterList" :key="index" @click.stop="handlePosterClick(item,index)">
|
|
77
|
-
<image :style="{width: posterSize.width + 'rpx', height: posterSize.height + 'rpx' }" :src="item['image_url']" mode="aspectFill"></image>
|
|
78
|
-
</swiper-item>
|
|
79
|
-
</swiper>
|
|
80
|
-
</xd-swiper-dot>
|
|
81
|
-
</view>
|
|
82
|
-
</view>
|
|
46
|
+
:dot-style-data="dotStyleData"
|
|
47
|
+
:mode="mode"
|
|
48
|
+
:poster-list="posterList"
|
|
49
|
+
:style-obj="{
|
|
50
|
+
outSpacing: this.outSpacing,
|
|
51
|
+
posterSize: posterSize,
|
|
52
|
+
carouselTime: carouselTime,
|
|
53
|
+
}"
|
|
54
|
+
></xd-poster>
|
|
83
55
|
<!--poster-->
|
|
84
56
|
<view v-if="type === 'hot' || type === 'rightnow'" id="content-ref" class="content-ref"></view>
|
|
85
57
|
<!--film hot|rightnow-->
|
|
86
58
|
<view
|
|
87
|
-
v-if="type === 'hot' || type === 'rightnow'"
|
|
88
59
|
class="list-cont"
|
|
60
|
+
v-if="type === 'hot' || type === 'rightnow'"
|
|
89
61
|
:style="{
|
|
90
|
-
marginTop:outSpacing + 'rpx',
|
|
91
|
-
|
|
92
|
-
paddingBottom:paddingBottom,
|
|
62
|
+
marginTop: outSpacing + 'rpx',
|
|
63
|
+
minHeight: layoutInfo['bodyMinHeightPx'] + 'px'
|
|
93
64
|
}"
|
|
94
65
|
>
|
|
95
66
|
<view class="skeleton-wrap" v-if="dataList === null">
|
|
@@ -98,12 +69,12 @@
|
|
|
98
69
|
v-for="item in 6"
|
|
99
70
|
:key="item"
|
|
100
71
|
:style="{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
72
|
+
marginBottom:outSpacing + 'rpx',
|
|
73
|
+
padding:contMarginComp,
|
|
74
|
+
borderRadius:contRradius+ 'rpx',
|
|
75
|
+
border:contBorder,
|
|
76
|
+
boxShadow:contShadow,
|
|
77
|
+
}"
|
|
107
78
|
>
|
|
108
79
|
<view class="skeleton-wrap-item-image skeleton-item" :style="{marginRight:outSpacing + 'rpx'}"></view>
|
|
109
80
|
<view class="skeleton-wrap-item-title">
|
|
@@ -126,13 +97,15 @@
|
|
|
126
97
|
:style="{
|
|
127
98
|
marginBottom:outSpacing + 'rpx',
|
|
128
99
|
padding:contMarginComp,
|
|
129
|
-
borderRadius:contRradius+ 'rpx',
|
|
100
|
+
borderRadius:(contRradius+ 'rpx'),
|
|
130
101
|
border:contBorder,
|
|
131
102
|
boxShadow:contShadow,
|
|
132
103
|
backgroundColor:contBgColor,
|
|
104
|
+
height: film['is_content_height'] + 'rpx'
|
|
133
105
|
}"
|
|
134
106
|
>
|
|
135
107
|
<content-item
|
|
108
|
+
v-if="film['is_content_show']"
|
|
136
109
|
style="width: 100%;height: 100%"
|
|
137
110
|
:item="film"
|
|
138
111
|
:out-spacing="outSpacing"
|
|
@@ -144,11 +117,27 @@
|
|
|
144
117
|
></content-item>
|
|
145
118
|
</view>
|
|
146
119
|
</template>
|
|
120
|
+
<view class="hasNoData" v-if="dataList && dataList.length > 0 && pageToken === ''">已经到底没有更多数据了</view>
|
|
121
|
+
<xd-no-data v-if="dataList && dataList.length === 0" height="50vh" icon-type="film">暂无影片数据</xd-no-data>
|
|
147
122
|
</view>
|
|
148
123
|
<!--film hot|rightnow-->
|
|
149
124
|
<!--cinema-->
|
|
150
|
-
<view
|
|
151
|
-
|
|
125
|
+
<view class="list-filter-empty" v-if="isFixed"></view>
|
|
126
|
+
<view
|
|
127
|
+
v-if="type === 'list'"
|
|
128
|
+
id="list-filter"
|
|
129
|
+
class="list-filter"
|
|
130
|
+
:class="{
|
|
131
|
+
isFixed: isFixed,
|
|
132
|
+
}"
|
|
133
|
+
:style="{
|
|
134
|
+
marginTop:isFixed?0:(outSpacing + 'rpx'),
|
|
135
|
+
top: isFixed ? ((layoutInfo.top) +'rpx'): 0,
|
|
136
|
+
marginLeft:isFixed?0:(-outSpacing + 'rpx'),
|
|
137
|
+
marginRight:isFixed?0:(-outSpacing + 'rpx'),
|
|
138
|
+
}"
|
|
139
|
+
>
|
|
140
|
+
<view class="list-filter-block">
|
|
152
141
|
<view @click="handleFilterTab('filter')">
|
|
153
142
|
<xd-font-icon icon="iconrepository-xialaxuanxiangdown" size="24" color="#999"></xd-font-icon>
|
|
154
143
|
<text>{{areaName}}</text>
|
|
@@ -182,6 +171,7 @@
|
|
|
182
171
|
marginTop:outSpacing + 'rpx',
|
|
183
172
|
paddingTop:paddingTop,
|
|
184
173
|
paddingBottom:paddingBottom,
|
|
174
|
+
minHeight: layoutInfo['bodyMinHeightPx'] + 'px'
|
|
185
175
|
}"
|
|
186
176
|
>
|
|
187
177
|
<view class="skeleton-wrap" v-if="dataList === null">
|
|
@@ -195,6 +185,7 @@
|
|
|
195
185
|
borderRadius:contRradius+ 'rpx',
|
|
196
186
|
border:contBorder,
|
|
197
187
|
boxShadow:contShadow,
|
|
188
|
+
|
|
198
189
|
}"
|
|
199
190
|
>
|
|
200
191
|
<view class="title skeleton-item"></view>
|
|
@@ -217,10 +208,11 @@
|
|
|
217
208
|
border:contBorder,
|
|
218
209
|
boxShadow:contShadow,
|
|
219
210
|
backgroundColor:contBgColor,
|
|
220
|
-
height: '
|
|
211
|
+
height: film['is_content_height'] + 'rpx'
|
|
221
212
|
}"
|
|
222
213
|
>
|
|
223
214
|
<content-cinema
|
|
215
|
+
v-if="film['is_content_show']"
|
|
224
216
|
style="width: 100%;height: 100%"
|
|
225
217
|
:item="film"
|
|
226
218
|
:out-spacing="outSpacing"
|
|
@@ -238,12 +230,14 @@
|
|
|
238
230
|
@click="handleClose"
|
|
239
231
|
:style="{left:- outSpacing + 'rpx', right: - outSpacing + 'rpx', }"
|
|
240
232
|
></view>
|
|
233
|
+
<view class="hasNoData" v-if="dataList && dataList.length > 0 && pageToken === ''">已经到底没有更多数据了</view>
|
|
234
|
+
<xd-no-data v-if="dataList && dataList.length === 0" height="50vh" icon-type="cinema">暂无影院数据</xd-no-data>
|
|
241
235
|
</template>
|
|
242
236
|
</view>
|
|
243
237
|
<view
|
|
244
238
|
id="preRendering"
|
|
245
239
|
class="preRendering"
|
|
246
|
-
v-if="
|
|
240
|
+
v-if="preRendering.length >0"
|
|
247
241
|
:style="{padding:outSpacing + 'rpx'}"
|
|
248
242
|
>
|
|
249
243
|
<view
|
|
@@ -258,7 +252,6 @@
|
|
|
258
252
|
border:contBorder,
|
|
259
253
|
boxShadow:contShadow,
|
|
260
254
|
backgroundColor:contBgColor,
|
|
261
|
-
height: 'auto'
|
|
262
255
|
}"
|
|
263
256
|
>
|
|
264
257
|
<content-cinema
|
|
@@ -272,7 +265,6 @@
|
|
|
272
265
|
</view>
|
|
273
266
|
</view>
|
|
274
267
|
<!--cinema-->
|
|
275
|
-
<view class="hasNoData" v-if="dataList && dataList.length > 0 && pageToken === ''">已经到底没有更多数据了</view>
|
|
276
268
|
</view>
|
|
277
269
|
<template v-else>
|
|
278
270
|
<view
|
|
@@ -287,6 +279,7 @@
|
|
|
287
279
|
|
|
288
280
|
<script>
|
|
289
281
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
282
|
+
import XdNoData from "@/components/XdNoData/XdNoData.vue";
|
|
290
283
|
import XdSwiperDot from "./XdSwiperDot.vue";
|
|
291
284
|
import { jfbRootExec } from "@/utils/xd.event";
|
|
292
285
|
import JfbMovieTfkFilmListMixin from "./JfbMovieTfkFilmListMixin";
|
|
@@ -302,16 +295,19 @@
|
|
|
302
295
|
import {mapState} from "vuex";
|
|
303
296
|
import Color from "color";
|
|
304
297
|
import VirtualList from "@/lib/VirtualList";
|
|
298
|
+
import XdPoster from "./XdPoster.vue";
|
|
305
299
|
|
|
306
300
|
export default {
|
|
307
301
|
name: "JfbMovieTfkFilmList",
|
|
308
302
|
components: {
|
|
303
|
+
XdPoster,
|
|
309
304
|
XdFontIcon,
|
|
310
305
|
ContentItem,
|
|
311
306
|
XdSwiperDot,
|
|
312
307
|
ContentCinema,
|
|
313
308
|
XdQuerySort,
|
|
314
|
-
XdQueryFilter
|
|
309
|
+
XdQueryFilter,
|
|
310
|
+
XdNoData
|
|
315
311
|
},
|
|
316
312
|
mixins: [
|
|
317
313
|
componentsMixins, extsMixins, JfbMovieTfkFilmListMixin,posterMixins
|
|
@@ -323,6 +319,7 @@
|
|
|
323
319
|
options: {},
|
|
324
320
|
//hideMask: true,
|
|
325
321
|
type:'', //hot rightnow
|
|
322
|
+
addressType: '',
|
|
326
323
|
typeList:{hot:{label: '热映影片', value: 'hot'},list:{label: '影院列表', value: 'list'}, rightnow:{label: '即将上映', value: 'rightnow'}},
|
|
327
324
|
showTypeListData:null,
|
|
328
325
|
backgroundColor:'',
|
|
@@ -352,10 +349,9 @@
|
|
|
352
349
|
//广告
|
|
353
350
|
posterList:null,
|
|
354
351
|
poster:{},
|
|
355
|
-
posterNum:1,
|
|
356
|
-
mode:'round'
|
|
357
|
-
|
|
358
|
-
carouselTime: 5000,//轮播图轮播周期
|
|
352
|
+
posterNum:1, //使用张数
|
|
353
|
+
mode:'round',//直接写死
|
|
354
|
+
carouselTime: 0,//轮播图轮播周期
|
|
359
355
|
|
|
360
356
|
//基础配置
|
|
361
357
|
outSpacing:'20',
|
|
@@ -396,10 +392,15 @@
|
|
|
396
392
|
dataList:null,
|
|
397
393
|
paddingTop: 0,
|
|
398
394
|
paddingBottom: 0,
|
|
395
|
+
virtualHeight:0,
|
|
396
|
+
virtualTop: 0,
|
|
397
|
+
|
|
399
398
|
|
|
400
399
|
//计算高度预加载列表
|
|
401
400
|
preRendering:[],
|
|
402
|
-
|
|
401
|
+
listFilterTop:null,
|
|
402
|
+
listFilterTopTimer:0,
|
|
403
|
+
isFixed: false,
|
|
403
404
|
}
|
|
404
405
|
},
|
|
405
406
|
computed:{
|
|
@@ -464,9 +465,9 @@
|
|
|
464
465
|
posterSize(){
|
|
465
466
|
if(this.poster && this.poster.size) {
|
|
466
467
|
let {width, height} = this.poster.size
|
|
467
|
-
let size = {}
|
|
468
|
-
if(width) size['width'] = width || 710;
|
|
469
|
-
if(height) size['height'] = height || 280;
|
|
468
|
+
let size = { width: 710, height: 280 }
|
|
469
|
+
if(width) size['width'] = Number(width || 710);
|
|
470
|
+
if(height) size['height'] = Number(height || 280);
|
|
470
471
|
return size;
|
|
471
472
|
}
|
|
472
473
|
return {
|
|
@@ -487,6 +488,7 @@
|
|
|
487
488
|
},
|
|
488
489
|
stateCity(n, o){
|
|
489
490
|
if(n && JSON.stringify(n) !== JSON.stringify(o)){
|
|
491
|
+
this.virtualList.onChangeTab();
|
|
490
492
|
this.clearDataVar()
|
|
491
493
|
this.getList();
|
|
492
494
|
}
|
|
@@ -506,13 +508,25 @@
|
|
|
506
508
|
}
|
|
507
509
|
},
|
|
508
510
|
created() {
|
|
511
|
+
let tab_id = '';
|
|
512
|
+
// #ifdef H5
|
|
513
|
+
tab_id = this.$xdUniHelper.getParmater('tab_id') ? this.$xdUniHelper.getParmater('tab_id'):'';
|
|
514
|
+
// #endif
|
|
515
|
+
// #ifdef MP-WEIXIN
|
|
516
|
+
let pages = this.$xdUniHelper.parseURL(this.$root.$scope.$page.fullPath);
|
|
517
|
+
tab_id = (pages.params && pages.params['tab_id']) ? pages.params['tab_id'] :'';
|
|
518
|
+
// #endif
|
|
519
|
+
if(['hot','list', 'rightnow'].includes(tab_id)) {
|
|
520
|
+
this.addressType = tab_id
|
|
521
|
+
}
|
|
522
|
+
|
|
509
523
|
this.isPreview = this.$configProject.isPreview;
|
|
510
524
|
this.backgroundColor = Color(this.warningColor).alpha(0.2).toString();
|
|
511
525
|
this.init(this.container);
|
|
512
|
-
|
|
513
526
|
this.virtualList = new VirtualList(this, this.type ==='list'?'#content-list-ref':'#content-ref', {
|
|
514
|
-
fixedHeight: 240
|
|
515
|
-
|
|
527
|
+
fixedHeight: 240 ,
|
|
528
|
+
marginTopAndBottom: Number(this.outSpacing),
|
|
529
|
+
paddingTopAndBottom: this.checkValue(this.contMargin.top, 20) + this.checkValue(this.contMargin.bottom, 20),
|
|
516
530
|
type:this.type ==='list'?'auto':'fixed',
|
|
517
531
|
//获取节点数据
|
|
518
532
|
getDom:(id)=>{
|
|
@@ -528,19 +542,50 @@
|
|
|
528
542
|
getParentThis(){
|
|
529
543
|
return this
|
|
530
544
|
},
|
|
531
|
-
callback: ({data
|
|
532
|
-
this.paddingTop = paddingTop;
|
|
533
|
-
this.paddingBottom = paddingBottom;
|
|
545
|
+
callback: ({data}) =>{
|
|
534
546
|
this.dataList = data;
|
|
535
547
|
},
|
|
536
548
|
});
|
|
537
549
|
},
|
|
538
550
|
methods: {
|
|
551
|
+
getListFilterEleTop(){
|
|
552
|
+
if(this.listFilterTop !== null) return;
|
|
553
|
+
uni.pageScrollTo({
|
|
554
|
+
scrollTop: 0,
|
|
555
|
+
duration: 1,
|
|
556
|
+
success:()=>{
|
|
557
|
+
const query = uni.createSelectorQuery().in(this);
|
|
558
|
+
query
|
|
559
|
+
.select('#list-filter')
|
|
560
|
+
.boundingClientRect((data) => {
|
|
561
|
+
if(data && data.top !==undefined){
|
|
562
|
+
let listFilterTop = data.top - this.layoutInfo.top * this.$rpxNum;
|
|
563
|
+
if(listFilterTop !== this.listFilterTop) {
|
|
564
|
+
setTimeout(()=>{
|
|
565
|
+
this.getListFilterEleTop();
|
|
566
|
+
this.listFilterTopTimer++
|
|
567
|
+
},200)
|
|
568
|
+
}
|
|
569
|
+
if( this.listFilterTopTimer >= 5) this.listFilterTop = listFilterTop;
|
|
570
|
+
}
|
|
571
|
+
else{
|
|
572
|
+
setTimeout(()=>{
|
|
573
|
+
this.getListFilterEleTop();
|
|
574
|
+
},30)
|
|
575
|
+
}
|
|
576
|
+
})
|
|
577
|
+
.exec();
|
|
578
|
+
}
|
|
579
|
+
})
|
|
580
|
+
|
|
581
|
+
},
|
|
582
|
+
|
|
539
583
|
/**
|
|
540
584
|
* @description 非固定高度处理
|
|
541
585
|
* @param list
|
|
542
586
|
*/
|
|
543
587
|
handlePreRendering(list){
|
|
588
|
+
//这里返回的高度宽度包含填充值
|
|
544
589
|
const query = uni.createSelectorQuery().in(this);
|
|
545
590
|
query
|
|
546
591
|
.selectAll('#preRendering > .list-cont-item')
|
|
@@ -548,7 +593,7 @@
|
|
|
548
593
|
if(data && data.length > 0) {
|
|
549
594
|
let height = [];
|
|
550
595
|
data.map(item=>{
|
|
551
|
-
height[item.dataset.index] = item.height
|
|
596
|
+
height[item.dataset.index] = item.height - this.$rpxNum * ( this.checkValue(this.contMargin.top, 20) + this.checkValue(this.contMargin.bottom, 20))
|
|
552
597
|
});
|
|
553
598
|
this.virtualList.pushVirtualData(list,height);
|
|
554
599
|
}
|
|
@@ -565,6 +610,7 @@
|
|
|
565
610
|
this.sortCode = 'default'
|
|
566
611
|
this.cinemaOrgDataList = null;
|
|
567
612
|
},
|
|
613
|
+
|
|
568
614
|
getSortList(){
|
|
569
615
|
jfbRootExec('getTFKSortList', {
|
|
570
616
|
vm: this,
|
|
@@ -578,26 +624,26 @@
|
|
|
578
624
|
},
|
|
579
625
|
|
|
580
626
|
//影片列表
|
|
581
|
-
handleFilmDetail(
|
|
582
|
-
console.warn(`toFilmInfo(影片详情).${
|
|
627
|
+
handleFilmDetail(item){
|
|
628
|
+
console.warn(`toFilmInfo(影片详情).${item.id}`)
|
|
583
629
|
if(!this.fimeDetailPath) {
|
|
584
630
|
console.error('未配置链接');
|
|
585
631
|
return;
|
|
586
632
|
}
|
|
587
633
|
if( this.isPreview) return;
|
|
588
634
|
this.$xdUniHelper.navigateTo({
|
|
589
|
-
url: this.fimeDetailPath + `?film_id=${
|
|
635
|
+
url: this.fimeDetailPath + `?film_id=${item.id}`
|
|
590
636
|
})
|
|
591
637
|
},
|
|
592
|
-
handleBuy(
|
|
593
|
-
console.warn(`toBuyChooseCinema(选择影院).${
|
|
638
|
+
handleBuy(item){
|
|
639
|
+
console.warn(`toBuyChooseCinema(选择影院).${item.id}`)
|
|
594
640
|
if(!this.buyPath) {
|
|
595
641
|
console.error('未配置链接');
|
|
596
642
|
return;
|
|
597
643
|
}
|
|
598
644
|
if( this.isPreview) return;
|
|
599
645
|
this.$xdUniHelper.navigateTo({
|
|
600
|
-
url: this.buyPath + `?film_id=${
|
|
646
|
+
url: this.buyPath + `?film_id=${item.id}`
|
|
601
647
|
})
|
|
602
648
|
},
|
|
603
649
|
//影片列表
|
|
@@ -629,10 +675,16 @@
|
|
|
629
675
|
//todo
|
|
630
676
|
},
|
|
631
677
|
handleFilterTab(tab){
|
|
632
|
-
|
|
633
|
-
this.
|
|
634
|
-
|
|
635
|
-
|
|
678
|
+
uni.pageScrollTo({
|
|
679
|
+
scrollTop: this.listFilterTop,
|
|
680
|
+
duration: 1,
|
|
681
|
+
success:()=>{
|
|
682
|
+
if(tab === this.curQueryTab ) {
|
|
683
|
+
this.curQueryTab = ''
|
|
684
|
+
}
|
|
685
|
+
else this.curQueryTab = tab
|
|
686
|
+
}
|
|
687
|
+
})
|
|
636
688
|
},
|
|
637
689
|
handleQuerySort(sortData){
|
|
638
690
|
this.sortCode = sortData.value;
|
|
@@ -640,6 +692,7 @@
|
|
|
640
692
|
this.pageToken = '1';
|
|
641
693
|
this.dataList = null;
|
|
642
694
|
this.cinemaOrgDataList = null;
|
|
695
|
+
this.virtualList.onChangeTab();
|
|
643
696
|
this.getList();
|
|
644
697
|
|
|
645
698
|
//等待排序规则
|
|
@@ -665,10 +718,6 @@
|
|
|
665
718
|
},
|
|
666
719
|
//影院列表
|
|
667
720
|
|
|
668
|
-
handleAnimationfinish(e){
|
|
669
|
-
this.current = e.detail.current;
|
|
670
|
-
},
|
|
671
|
-
|
|
672
721
|
getCinemaOrgData(){
|
|
673
722
|
let fitlerData = this.$xdUniHelper.cloneDeep(this.cinemaOrgDataList||[])
|
|
674
723
|
|
|
@@ -694,9 +743,6 @@
|
|
|
694
743
|
}
|
|
695
744
|
//#endif
|
|
696
745
|
|
|
697
|
-
console.log(`fitlerData:`,fitlerData)
|
|
698
|
-
console.warn(`fitlerData.length=${fitlerData.length}`)
|
|
699
|
-
|
|
700
746
|
//过滤之后不够分页直接返回值
|
|
701
747
|
if(fitlerData.length <= this.pageSize) {
|
|
702
748
|
this.preRendering = this.$xdUniHelper.cloneDeep(fitlerData);
|
|
@@ -721,13 +767,18 @@
|
|
|
721
767
|
|
|
722
768
|
handleTab(value){
|
|
723
769
|
if(value === this.type) return;
|
|
724
|
-
|
|
770
|
+
this.type = value;
|
|
771
|
+
if( this.type === 'hot' || this.type === 'rightnow' ) {
|
|
772
|
+
this.isFixed = false;
|
|
725
773
|
this.virtualList.onChangeTab(this,'#content-ref', 'fixed' );
|
|
726
774
|
}
|
|
727
|
-
if(
|
|
775
|
+
if( this.type === 'list') {
|
|
728
776
|
this.virtualList.onChangeTab(this,'#content-list-ref', 'auto' );
|
|
777
|
+
this.$nextTick(()=>{
|
|
778
|
+
this.getListFilterEleTop()
|
|
779
|
+
})
|
|
729
780
|
}
|
|
730
|
-
|
|
781
|
+
|
|
731
782
|
this.dataList = null;
|
|
732
783
|
this.pageToken = '1';
|
|
733
784
|
this.getList();
|
|
@@ -774,11 +825,15 @@
|
|
|
774
825
|
}).then(res => {
|
|
775
826
|
if(this.isFirstLoadingData) this.$xdHideLoading({});
|
|
776
827
|
|
|
777
|
-
|
|
778
828
|
//影片列表处理
|
|
779
829
|
if(this.type === 'rightnow' || this.type==='hot'){
|
|
780
830
|
//预览模式
|
|
781
|
-
if(this.isPreview)
|
|
831
|
+
if(this.isPreview){
|
|
832
|
+
this.dataList = (this.dataList||[]).concat(res['list']).map(item=>{
|
|
833
|
+
item.is_content_show = true;
|
|
834
|
+
return item
|
|
835
|
+
});
|
|
836
|
+
}
|
|
782
837
|
else {
|
|
783
838
|
this.virtualList.pushVirtualData(res['list']);
|
|
784
839
|
this.pageToken = res.next_page_token;
|
|
@@ -788,19 +843,20 @@
|
|
|
788
843
|
|
|
789
844
|
//影院列表处理
|
|
790
845
|
if(this.type === 'list') {
|
|
791
|
-
debugger
|
|
792
846
|
this.cinemaOrgDataList = res['list'];
|
|
793
847
|
this.cinemaAreaList = [{area_code:'all', area_name:'全城'}].concat(res['area_list']);
|
|
794
848
|
|
|
795
849
|
//预览模式
|
|
796
850
|
if(this.isPreview) {
|
|
797
|
-
this.dataList = (this.dataList||[]).concat(res['list'].slice(0, 20))
|
|
851
|
+
this.dataList = (this.dataList||[]).concat(res['list'].slice(0, 20)).map(item=>{
|
|
852
|
+
item.is_content_show = true;
|
|
853
|
+
return item
|
|
854
|
+
});
|
|
798
855
|
return;
|
|
799
856
|
}
|
|
800
857
|
|
|
801
858
|
//小于数量页面显示记录
|
|
802
859
|
if(res['list'].length <= this.pageSize) {
|
|
803
|
-
//this.dataList = res['list'];
|
|
804
860
|
this.preRendering = this.$xdUniHelper.cloneDeep(res['list']);
|
|
805
861
|
this.pageToken = '';
|
|
806
862
|
return
|
|
@@ -866,6 +922,8 @@
|
|
|
866
922
|
this.tabBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.tabBorder', {}));
|
|
867
923
|
this.tabActBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.tabActBorder', {}));
|
|
868
924
|
this.tabRradius = getContainerPropsValue(container, 'content.tabRradius', '10');
|
|
925
|
+
this.sort_consume_mode = getContainerPropsValue(container, 'content.sort_consume_mode', '');
|
|
926
|
+
this.isList = getContainerPropsValue(container, 'content.isList', 'N');
|
|
869
927
|
|
|
870
928
|
//内容
|
|
871
929
|
this.contMargin = getContainerPropsValue(container, 'content.contMargin', {});
|
|
@@ -883,14 +941,14 @@
|
|
|
883
941
|
this.showRightnowName = getContainerPropsValue(container, 'content.showRightnowName', '');
|
|
884
942
|
this.showListName = getContainerPropsValue(container, 'content.showListName', '');
|
|
885
943
|
|
|
886
|
-
|
|
944
|
+
//广告设置
|
|
887
945
|
this.poster = getContainerPropsValue(container, 'content.poster',{});
|
|
888
946
|
this.posterNum = getContainerPropsValue(container, 'content.posterNum',1);
|
|
889
|
-
this.
|
|
890
|
-
this.isList = getContainerPropsValue(container, 'content.isList', 'N');
|
|
947
|
+
this.carouselTime = Number(getContainerPropsValue(container, 'content.carouselTime',5)) * 1000;
|
|
891
948
|
|
|
892
949
|
//链接(影院)
|
|
893
950
|
this.onlinePath = getContainerPropsValue(container, 'content.onlinePath', {value:''}).value;
|
|
951
|
+
this.codePath = getContainerPropsValue(container, 'content.codePath', {value:''}).value;
|
|
894
952
|
|
|
895
953
|
//链接(影片)
|
|
896
954
|
this.buyPath = getContainerPropsValue(container, 'content.buyPath', {value: ""}).value;
|
|
@@ -901,7 +959,14 @@
|
|
|
901
959
|
},
|
|
902
960
|
|
|
903
961
|
onJfbScroll(options){
|
|
962
|
+
//console.log(options.e.scrollTop)
|
|
904
963
|
this.virtualList.onScrollEvent(options.e.scrollTop);
|
|
964
|
+
|
|
965
|
+
//未初始化完成不执行改逻辑
|
|
966
|
+
if(this.listFilterTop !== null) {
|
|
967
|
+
this.isFixed = options.e.scrollTop >= this.listFilterTop
|
|
968
|
+
}
|
|
969
|
+
|
|
905
970
|
},
|
|
906
971
|
|
|
907
972
|
setShowTypeList(){
|
|
@@ -917,14 +982,27 @@
|
|
|
917
982
|
})
|
|
918
983
|
|
|
919
984
|
//已有选中值不设置默认值
|
|
920
|
-
if(this.
|
|
921
|
-
this.type =
|
|
985
|
+
if(this.addressType) {
|
|
986
|
+
this.type = this.addressType;
|
|
922
987
|
}
|
|
988
|
+
else {
|
|
989
|
+
if(this.type === '' && list.length > 0) {
|
|
990
|
+
this.type = list[0].value;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
//
|
|
995
|
+
if(this.type === 'list') {
|
|
996
|
+
this.$nextTick(()=>{
|
|
997
|
+
this.getListFilterEleTop()
|
|
998
|
+
})
|
|
999
|
+
}
|
|
1000
|
+
|
|
923
1001
|
this.showTypeListData = list;
|
|
924
1002
|
},
|
|
925
1003
|
|
|
926
1004
|
onJfbReachBottom(options) {
|
|
927
|
-
if(
|
|
1005
|
+
if(this.pageToken === '' || this.dataList === null) return;
|
|
928
1006
|
this.getList();
|
|
929
1007
|
},
|
|
930
1008
|
|
|
@@ -934,6 +1012,7 @@
|
|
|
934
1012
|
}
|
|
935
1013
|
},
|
|
936
1014
|
|
|
1015
|
+
|
|
937
1016
|
//重新回去广告位置工
|
|
938
1017
|
onJfbUpdate() {
|
|
939
1018
|
this.onJfbLoad(this.options)
|
|
@@ -948,6 +1027,8 @@
|
|
|
948
1027
|
@import "./JfbMovieTfkFilmListLess.less";
|
|
949
1028
|
|
|
950
1029
|
.jfb-movie-tfk-film-list {
|
|
1030
|
+
position: relative;
|
|
1031
|
+
z-index: 200;
|
|
951
1032
|
&__body{
|
|
952
1033
|
.tfk-list {
|
|
953
1034
|
& >view:first-child {
|
|
@@ -976,7 +1057,7 @@
|
|
|
976
1057
|
.list-cont {
|
|
977
1058
|
position: relative;
|
|
978
1059
|
z-index: 2;
|
|
979
|
-
|
|
1060
|
+
|
|
980
1061
|
.skeleton-wrap {
|
|
981
1062
|
.skeleton-wrap-item {
|
|
982
1063
|
height: 240rpx;
|
|
@@ -1060,7 +1141,7 @@
|
|
|
1060
1141
|
}
|
|
1061
1142
|
|
|
1062
1143
|
&-item {
|
|
1063
|
-
|
|
1144
|
+
box-sizing: content-box;
|
|
1064
1145
|
|
|
1065
1146
|
&:last-child {
|
|
1066
1147
|
margin-bottom: 0!important;
|
|
@@ -1092,9 +1173,12 @@
|
|
|
1092
1173
|
.list-filter {
|
|
1093
1174
|
position: relative;
|
|
1094
1175
|
z-index: 3;
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1176
|
+
|
|
1177
|
+
&.isFixed {
|
|
1178
|
+
position: fixed;
|
|
1179
|
+
left:0;
|
|
1180
|
+
right: 0;
|
|
1181
|
+
z-index: 9999;
|
|
1098
1182
|
}
|
|
1099
1183
|
|
|
1100
1184
|
&-block {
|
|
@@ -1126,7 +1210,12 @@
|
|
|
1126
1210
|
width: 100%;
|
|
1127
1211
|
z-index: 3;
|
|
1128
1212
|
}
|
|
1213
|
+
|
|
1214
|
+
&-empty{
|
|
1215
|
+
height: 100rpx;
|
|
1216
|
+
}
|
|
1129
1217
|
}
|
|
1218
|
+
|
|
1130
1219
|
}
|
|
1131
1220
|
|
|
1132
1221
|
.noConfig {
|
|
@@ -1136,10 +1225,11 @@
|
|
|
1136
1225
|
}
|
|
1137
1226
|
|
|
1138
1227
|
.preRendering {
|
|
1228
|
+
background: #eee;
|
|
1139
1229
|
position: fixed;
|
|
1140
|
-
top
|
|
1141
|
-
left
|
|
1142
|
-
opacity:
|
|
1230
|
+
top:-9999rpx;
|
|
1231
|
+
left:-9999rpx;
|
|
1232
|
+
opacity: 1;
|
|
1143
1233
|
z-index: 0;
|
|
1144
1234
|
width: 100%;
|
|
1145
1235
|
box-sizing: border-box;
|