jufubao-movie 1.0.36-beta2 → 1.0.36-beta3

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.
@@ -14,87 +14,633 @@
14
14
  </view>
15
15
  <!-- #endif -->
16
16
  <view class="jfb-movie-tfk-film-list__body">
17
- <view>测试插件( {{containerId}} )</view>
17
+ <view class="x-line"></view>
18
+ <view
19
+ class="tfk-list"
20
+ v-if="showTypeListData.length > 0"
21
+ :style="{
22
+ padding: outSpacing + 'rpx'
23
+ }"
24
+ >
25
+ <view class="list-tab" v-if="showTypeListData.length > 1">
26
+ <view
27
+ :class="{active: item.value === type}"
28
+ v-for="(item,index) in showTypeListData"
29
+ @click="handleTab(item.value)"
30
+ :key="index"
31
+ :style="{
32
+ backgroundColor:item.value === type ? tabStyle.actBgColor:tabStyle.bgColor,
33
+ color: item.value === type?tabStyle.actColor:tabStyle.color,
34
+ fontWeight: item.value === type? tabStyle.actFontWeight: tabStyle.fontWeight,
35
+ fontSize: item.value === type?(tabStyle.actFontSize):(tabStyle.fontSize),
36
+ borderRadius: tabRradius + 'rpx',
37
+ border:item.value === type?tabActBorder:tabBorder,
38
+ boxShadow: item.value === type ? tabActShadow: tabShadow,
39
+ marginRight: outSpacing + 'rpx',
40
+ }"
41
+ >{{item.label}}</view>
42
+ </view>
43
+ <!--poster-->
44
+ <view
45
+ class="list-poster"
46
+ v-if="posterList !== null && posterList.length > 0"
47
+ :style="{marginTop:outSpacing + 'rpx'}"
48
+ >
49
+ <view
50
+ :style="{width: posterSize.width + 'rpx', height: posterSize.height + 'rpx' }"
51
+ class="list-poster-one"
52
+ v-if="posterList.length === 1"
53
+ >
54
+ <image :src="posterList[0].image_url" :alt="posterList[0].content_name"></image>
55
+ </view>
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="handleClick(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>
83
+ <!--poster-->
84
+ <!--film hot|rightnow-->
85
+ <view
86
+ v-if="type === 'hot' || type === 'rightnow'"
87
+ class="list-cont"
88
+ :style="{marginTop:outSpacing + 'rpx'}"
89
+ >
90
+ <view class="skeleton-wrap" v-if="dataList === null">
91
+ <view
92
+ class="skeleton-wrap-item"
93
+ v-for="item in 6"
94
+ :key="item"
95
+ :style="{
96
+ marginBottom:outSpacing + 'rpx',
97
+ padding:contMarginComp,
98
+ borderRadius:contRradius+ 'rpx',
99
+ border:contBorder,
100
+ boxShadow:contShadow,
101
+ }"
102
+ >
103
+ <view class="skeleton-wrap-item-image skeleton-item" :style="{marginRight:outSpacing + 'rpx'}"></view>
104
+ <view class="skeleton-wrap-item-title">
105
+ <view class="title skeleton-item"></view>
106
+ <view class="type skeleton-item"></view>
107
+ <view class="director skeleton-item"></view>
108
+ <view class="star skeleton-item"></view>
109
+ </view>
110
+ <view class="skeleton-wrap-item-btn skeleton-item" :style="{marginLeft:outSpacing + 'rpx'}">
111
+ <view class="score skeleton-item"></view>
112
+ <view class="btn skeleton-item"></view>
113
+ </view>
114
+ </view>
115
+ </view>
116
+ <template v-if="dataList !== null">
117
+ <view
118
+ class="list-cont-item"
119
+ v-for="film in dataList"
120
+ :key="film.id"
121
+ :style="{
122
+ marginBottom:outSpacing + 'rpx',
123
+ padding:contMarginComp,
124
+ borderRadius:contRradius+ 'rpx',
125
+ border:contBorder,
126
+ boxShadow:contShadow,
127
+ backgroundColor:contBgColor,
128
+ }"
129
+ >
130
+ <content-item
131
+ style="width: 100%;height: 100%"
132
+ :item="film"
133
+ :out-spacing="outSpacing"
134
+ :color="mainColor"
135
+ :type="type"
136
+ :border-radius="imgRradius"
137
+ @on-film-detail="handleFilmDetail"
138
+ @on-buy="handleBuy"
139
+ ></content-item>
140
+ </view>
141
+ </template>
142
+ </view>
143
+ <!--film hot|rightnow-->
144
+ <!--cinema-->
145
+ <view class="list-filter" :style="{marginTop:outSpacing + 'rpx'}">
146
+ <view class="list-filter-block" :class="{hasFitler:!!curQueryTab}">
147
+ <view @click="handleFilterTab('filter')">
148
+ <xd-font-icon icon="iconrepository-xialaxuanxiangdown" size="24" color="#999"></xd-font-icon>
149
+ <text>区域筛选</text>
150
+ </view>
151
+ <view @click="handleFilterTab('sort')">
152
+ <xd-font-icon icon="iconshaixuanbiaoji_mian" size="28" color="#999"></xd-font-icon>
153
+ <text>排序</text>
154
+ </view>
155
+ </view>
156
+ <view class="list-filter-modal" v-if="curQueryTab">
157
+ <xd-query-sort
158
+ :sort="sort"
159
+ v-show="curQueryTab === 'sort'"
160
+ @onConfirm="handleQuerySort"
161
+ ></xd-query-sort>
162
+ <xd-query-filter
163
+ v-if="cinemaAreaList !== null"
164
+ v-show="curQueryTab === 'filter'"
165
+ :list="cinemaAreaList"
166
+ @onConfirm="handleQueryFilter"
167
+ ></xd-query-filter>
168
+ </view>
169
+ </view>
170
+ <view
171
+ v-if="type === 'list'"
172
+ class="list-cont"
173
+ :style="{marginTop:outSpacing + 'rpx'}"
174
+ >
175
+ <view class="skeleton-wrap" v-if="dataList === null">
176
+ <view
177
+ class="skeleton-wrap-item list"
178
+ v-for="item in 8"
179
+ :key="item"
180
+ :style="{
181
+ marginBottom:outSpacing + 'rpx',
182
+ padding:contMarginComp,
183
+ borderRadius:contRradius+ 'rpx',
184
+ border:contBorder,
185
+ boxShadow:contShadow,
186
+ }"
187
+ >
188
+ <view class="title skeleton-item"></view>
189
+ <view class="address skeleton-item"></view>
190
+ <view class="bottom">
191
+ <view class="local skeleton-item"></view>
192
+ <view class="btn skeleton-item"></view>
193
+ </view>
194
+ </view>
195
+ </view>
196
+ <template v-if="dataList !== null">
197
+ <view
198
+ class="list-cont-item"
199
+ v-for="(film) in dataList"
200
+ :key="film.cinema_id"
201
+ :style="{
202
+ marginBottom:outSpacing + 'rpx',
203
+ padding:contMarginComp,
204
+ borderRadius:contRradius+ 'rpx',
205
+ border:contBorder,
206
+ boxShadow:contShadow,
207
+ backgroundColor:contBgColor,
208
+ height: 'auto'
209
+ }"
210
+ >
211
+ <content-cinema
212
+ style="width: 100%;height: 100%"
213
+ :item="film"
214
+ :out-spacing="outSpacing"
215
+ :color="{SEAT:mainColor,CODE:subMainColor,SELL:successColor}"
216
+ :type="type"
217
+ :border-radius="imgRradius"
218
+ @on-schedule="handleSchedule"
219
+ @on-cashier-detail="handleCashierDetail"
220
+ @on-code-detail="handleCodeDetail"
221
+ ></content-cinema>
222
+ </view>
223
+ <view
224
+ class="cont-mask"
225
+ v-if="curQueryTab"
226
+ @click="handleClose"
227
+ :style="{left:- outSpacing + 'rpx', right: - outSpacing + 'rpx', }"
228
+ ></view>
229
+ </template>
230
+ </view>
231
+ <!--cinema-->
232
+ </view>
233
+ <template v-else>
234
+ <view
235
+ class="noConfig"
236
+ v-if="isPreview"
237
+ :style="{backgroundColor:backgroundColor, color:warningColor}"
238
+ >热映影片,即将上映未配置,此模块在线上不显</view>
239
+ </template>
18
240
  </view>
19
241
  </view>
20
242
  </template>
21
243
 
22
244
  <script>
23
245
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
246
+ import XdSwiperDot from "./XdSwiperDot.vue";
24
247
  import { jfbRootExec } from "@/utils/xd.event";
25
248
  import JfbMovieTfkFilmListMixin from "./JfbMovieTfkFilmListMixin";
26
249
  import { getContainerPropsValue } from "@/utils/xd.base";
250
+ import getServiceUrl from '@/common/getServiceUrl'
27
251
  import componentsMixins from "@/mixins/componentsMixins";
28
252
  import extsMixins from "@/mixins/extsMixins";
253
+ import ContentItem from './ContentItem.vue'
254
+ import ContentCinema from "./ContentCinema.vue";
255
+ import XdQuerySort from "./XdQuerySort.vue";
256
+ import XdQueryFilter from "./XdQueryFilter.vue";
257
+ import {mapState} from "vuex";
258
+ import Color from "color";
259
+
29
260
  export default {
30
261
  name: "JfbMovieTfkFilmList",
31
262
  components: {
32
- XdFontIcon
263
+ XdFontIcon,
264
+ ContentItem,
265
+ XdSwiperDot,
266
+ ContentCinema,
267
+ XdQuerySort,
268
+ XdQueryFilter
33
269
  },
34
270
  mixins: [
35
271
  componentsMixins, extsMixins, JfbMovieTfkFilmListMixin
36
272
  ],
37
273
  data() {
38
274
  return {
275
+ options: {},
276
+ hideMask: true,
277
+ type:'', //hot rightnow
278
+ typeList:{hot:{label: '热映影片', value: 'hot'},list:{label: '影院列表', value: 'list'}, rightnow:{label: '即将上映', value: 'rightnow'}},
279
+ showTypeListData:null,
280
+ backgroundColor:'',
281
+ isPreview: false,
282
+ pageToken:'1',
283
+ pageSize: '20',
284
+ total: null,
285
+ isFirstLoadingData: false,
286
+ dataList:null,
287
+ cinemaOrgDataList:null,
288
+ cinemaAreaList:null,
289
+
290
+ //filter
291
+ showQueryModal:false,
292
+ curQueryTab:'filter',
293
+ sort:'sort',
294
+
295
+ //广告
296
+ posterList:null,
297
+ poster:{},
298
+ posterNum:1,
299
+ mode:'round',
300
+ current: 0,
301
+ carouselTime: 5000,//轮播图轮播周期
302
+
303
+ //基础配置
304
+ outSpacing:'20',
305
+ showHot: '',
306
+ showRightnow:'',
307
+ showList:'Y',
308
+ showHotName:'',
309
+ showRightnowName: '',
310
+ showListName: '',
311
+ isList:'Y', //组件是否用户列表或者是否为首页(是否开启返回功能)
312
+ tabStyle:{},
313
+
314
+
315
+ //tab
316
+ tabBorder:'0',
317
+ tabActBorder:'0',
318
+ tabShadow:'0 0 0 rgba(0,0,0,0)',
319
+ tabActShadow:'0 0 0 rgba(0,0,0,0)',
320
+ tabRradius:'10',
321
+
322
+ //列表样式
323
+ contMargin:{},
324
+ contRradius:'20',
325
+ contBorder:'0',
326
+ contShadow:'0 0 10rpx rgba(0,0,0,.05)',
327
+ contBgColor:'#fff',
328
+ imgRradius:'10'
39
329
 
40
- //todo
41
330
  }
331
+ },
332
+ computed:{
333
+ ...mapState({
334
+ stateCity: state => state.cityLocation.city
335
+ }),
336
+
337
+ dotStyleData(){
338
+ let alpha = 0.6;
339
+ let selectedColor = `rgba(${Color(this.mainColor).alpha(alpha).array().join(',')})`;
340
+ let style = {
341
+ dot: {
342
+ backgroundColor: 'rgba(166,166,166,.5)',
343
+ border: '0px rgba(166,166,166,.5) solid',
344
+ color: '#fff',
345
+ selectedBackgroundColor: selectedColor,
346
+ selectedBorder: `0px this.mainColor solid`
347
+ },
348
+ default: {
349
+ width: 16,
350
+ backgroundColor: 'rgba(200,200,200,.45)',
351
+ border: '1px rgba(200,200,200,.45) solid',
352
+ color: '#fff',
353
+ selectedBackgroundColor: selectedColor,
354
+ selectedBorder: `1px this.mainColor solid`
355
+ },
356
+ round: {
357
+ backgroundColor: 'rgba(166,166,166,.5)',
358
+ border: '0px rgba(166,166,166,.5) solid',
359
+ color: '#fff',
360
+ selectedBackgroundColor: selectedColor,
361
+ selectedBorder: `0px this.mainColor solid`
362
+ },
363
+ nav: {
364
+ backgroundColor: 'rgba(0,0,0,.5)',
365
+ border: '1px rgba(0,0,0,.5) solid',
366
+ color: '#fff',
367
+ selectedBackgroundColor: 'rgba(255, 255, 255, 1)',
368
+ selectedBorder: '1px rgba(255, 255, 255 1) solid'
369
+ },
370
+ indexes: {
371
+ backgroundColor: 'rgba(0,0,0,.5)',
372
+ border: '0px rgba(0,0,0,.5) solid',
373
+ color: '#aaa',
374
+ selectedBackgroundColor: 'rgba(0,0,0,.8)',
375
+ selectedBorder: '0px rgba(0,0,0,.8) solid',
376
+ selectedColor: '#fff',
377
+ }
378
+ }
379
+ return style[this.mode]
380
+ },
381
+ contMarginComp(){
382
+ let str = `${this.checkValue(this.contMargin.top, 20)}rpx`;
383
+ str = `${str} ${this.checkValue(this.contMargin.right, 20)}rpx`;
384
+ str = `${str} ${this.checkValue(this.contMargin.bottom, 20)}rpx`;
385
+ str = `${str} ${this.checkValue(this.contMargin.left, 20)}rpx`;
386
+ return str
387
+ },
388
+
389
+ posterSize(){
390
+ if(this.poster && this.poster.size) {
391
+ let {width, height} = this.poster.size
392
+ let size = {}
393
+ if(width) size['width'] = width || 710;
394
+ if(height) size['height'] = height || 280;
395
+ return size;
396
+ }
397
+ return {
398
+ width: 710,
399
+ height: 280,
400
+ }
401
+ },
402
+
403
+
42
404
  },
43
405
  watch: {
44
406
  container(value, oldValue) {
45
407
  if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
46
408
  if (this.$configProject['isPreview']) this.init(value)
47
409
  },
410
+
411
+ posterNum(){
412
+ if (this.$configProject['isPreview']){
413
+ this.onJfbLoad();
414
+ }
415
+ },
416
+ stateCity(n, o){
417
+ if(n && JSON.stringify(n) !== JSON.stringify(o)){
418
+ this.getList();
419
+ }
420
+ },
421
+ showTypeListData(){
422
+ if(this.type === '') return;
423
+ this.dataList = null;
424
+ this.pageToken = '1';
425
+ this.getList();
426
+ },
48
427
  },
49
428
  created() {
429
+ this.isPreview = this.$configProject.isPreview;
430
+ this.backgroundColor = Color(this.warningColor).alpha(0.2).toString();
50
431
  this.init(this.container);
51
-
52
- //todo
53
432
  },
54
433
  methods: {
55
- onJfbLoad(options) {
434
+ //影片列表
435
+ handleFilmDetail(film_id){
436
+ if( this.isPreview) return;
437
+ this.$xdUniHelper.navigateTo({
438
+ url: this.fimeDetailPath + `?film_id=${film_id}`
439
+ })
440
+ },
441
+ handleBuy(film_id){
442
+ if( this.isPreview) return;
443
+ this.$xdUniHelper.navigateTo({
444
+ url: this.buyPath + `?film_id=${film_id}`
445
+ })
446
+ },
447
+ //影片列表
448
+ //影院列表
449
+ handleSchedule(item){
450
+ debugger
451
+ },
452
+ handleCodeDetail(item){
453
+ debugger
454
+ },
455
+ handleCashierDetail(item){
456
+ debugger
457
+ },
458
+ handleQuerySort(sortData){
459
+ console.log("handleQuerySort", sortData);
460
+ setTimeout(()=>{
461
+ this.curQueryTab = '';
462
+ },500)
463
+
464
+ },
465
+ handleFilterTab(tab){
466
+ if(tab === this.curQueryTab ) {
467
+ this.curQueryTab = ''
468
+ }
469
+ else this.curQueryTab = tab
470
+ },
471
+ handleQueryFilter(sortData){
472
+ console.log("handleQueryFilter", sortData);
473
+ setTimeout(()=>{
474
+ this.curQueryTab = '';
475
+ },500)
476
+
477
+ },
478
+ handleClose(){
479
+ this.curQueryTab = '';
480
+ },
481
+ //影院列表
482
+
483
+
56
484
 
57
- // jfbRootExec('baiduUserLogin', {
485
+ handleClick(){
58
486
 
59
- // vm: this,// data: {
487
+ },
488
+ handleAnimationfinish(e){
489
+ this.current = e.detail.current;
490
+ },
491
+ getCinemaOrgData(){
492
+ this.dataList = (this.dataList||[]).concat(this.$xdUniHelper.getLocalPaginationData(
493
+ this.cinemaOrgDataList, this.pageToken, this.pageSize
494
+ ));
495
+ },
496
+ handleTab(value){
497
+ if(value === this.type) return;
498
+ this.type = value;
499
+ this.dataList = null;
500
+ this.pageToken = '1';
501
+ this.getList();
502
+ },
60
503
 
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
504
+ getList(){
505
+ let fName = 'getTFKRecFilmHotList';
506
+ if(this.type === 'rightnow') fName = 'getTFKRecFilmRightnowList';
507
+ if(this.type === 'list') fName = 'getTFKCinemaList';
62
508
 
63
- // }
509
+ if(this.isFirstLoadingData) this.$xdShowLoading({});
510
+ if(!this.isFirstLoadingData){
511
+ this.isFirstLoadingData = true;
512
+ }
64
513
 
65
- // }).then().catch()
514
+ jfbRootExec(fName, {
515
+ vm: this,
516
+ data: {
517
+ city_code: this.stateCity.city_code,
518
+ type: this.type,
519
+ page_token: this.pageToken,
520
+ page_size: this.pageSize
521
+ }
522
+ }).then(res => {
523
+ //影片列表处理
524
+ if(this.type === 'rightnow' || this.type==='hot'){
525
+ this.dataList = (this.dataList||[]).concat(res['list']);
526
+ }
527
+ //影院列表处理
528
+ if(this.type === 'list') {
529
+ this.cinemaOrgDataList = res['list'];
530
+ this.cinemaAreaList = res['area_list'];
531
+ this.getCinemaOrgData();
532
+ }
533
+ if(this.isFirstLoadingData) this.$xdHideLoading({});
534
+ }).catch(e=>{
535
+ console.error(e);
536
+ this.$xdHideLoading({});
537
+ })
66
538
  },
539
+
540
+ onJfbLoad(options) {
541
+ this.options = options;
542
+
543
+ jfbRootExec('getTFKPosterContent', {
544
+ vm: this,
545
+ data: {
546
+ page_id: this.pageAttr['page_id'], //页面ID
547
+ container_id: this.containerId, //组件ID
548
+ page_size: this.posterNum //可以不传
549
+ },
550
+ })
551
+ .then(res => {
552
+ this.posterList = res.list.map((item,index) => {
553
+ return {
554
+ ...item,
555
+ image_background_url: item.image_background_url?getServiceUrl(item.image_background_url):'',
556
+ image_url: item.image_url?getServiceUrl(item.image_url):''
557
+ }
558
+ });
559
+ })
560
+ .catch(err=>{
561
+ console.error(err);
562
+ })
563
+
564
+ },
565
+
67
566
  /**
68
567
  * @description 监听事件变化
69
568
  * @param container {object} 业务组件对象自己
70
569
  */
71
570
  init(container) {
571
+ this.outSpacing = getContainerPropsValue(container, 'content.outSpacing', '20');
572
+ this.tabStyle = Object.assign({},{
573
+ color:'#333',
574
+ bgColor: '#fff',
575
+ fontSize: '26rpx',
576
+ fontWeight: 'normal',
577
+ actBgColor: this.mainColor,
578
+ actColor: '#fff',
579
+ actFontSize: '26rpx',
580
+ actFontWeight: 'normal',
581
+ },getContainerPropsValue(container, 'content.tabStyle', {}));
582
+ this.tabShadow = this.getXdShadow({width:20, color:'rgba(0,0,0,0.05)'},getContainerPropsValue(container, 'content.tabShadow', {}))
583
+ this.tabActShadow = this.getXdShadow( {width:20, color:this.mainColor},getContainerPropsValue(container, 'content.tabActShadow', {}))
584
+ this.tabBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.tabBorder', {}));
585
+ this.tabActBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.tabActBorder', {}));
586
+ this.tabRradius = getContainerPropsValue(container, 'content.tabRradius', '10');
72
587
 
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
588
+ //内容
589
+ this.contMargin = getContainerPropsValue(container, 'content.contMargin', {});
590
+ this.contRradius = getContainerPropsValue(container, 'content.contRradius', '10');
591
+ this.contShadow = this.getXdShadow({width:20, color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.contShadow', {}))
592
+ this.contBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.contBorder', {}));
593
+ this.contBgColor = getContainerPropsValue(container, 'content.contBgColor', '#fff');
594
+ this.imgRradius = getContainerPropsValue(container, 'content.imgRradius', '10');
74
595
 
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
596
+ //控制标签显示
597
+ this.showHot = getContainerPropsValue(container, 'content.showHot','Y');
598
+ this.showRightnow = getContainerPropsValue(container, 'content.showRightnow','Y');
599
+ this.showList = getContainerPropsValue(container, 'content.showList','Y');
600
+ this.showHotName = getContainerPropsValue(container, 'content.showHotName', '');
601
+ this.showRightnowName = getContainerPropsValue(container, 'content.showRightnowName', '');
602
+ this.showListName = getContainerPropsValue(container, 'content.showListName', '');
603
+ this.showTypeList();
604
+
605
+ this.poster = getContainerPropsValue(container, 'content.poster',{});
606
+ this.posterNum = getContainerPropsValue(container, 'content.posterNum',1);
76
607
  },
77
- onJfbScroll(options) {
78
- console.log('event.onJfbScroll', options)
608
+ showTypeList(){
609
+ let list = [];
610
+ if(this.showHot === 'Y') list.push(this.typeList["hot"]);
611
+ if(this.showList === 'Y') list.push(this.typeList["list"]);
612
+ if(this.showRightnow === 'Y') list.push(this.typeList["rightnow"]);
613
+ list = this.$xdUniHelper.cloneDeep(list).map(item=>{
614
+ if(item.value === 'hot') item.label = this.showHotName ||item.label
615
+ if(item.value === 'list') item.label = this.showListName || item.label;
616
+ if(item.value === 'rightnow') item.label = this.showRightnowName || item.label;
617
+ return item
618
+ })
619
+ if(list.length > 0) this.type = list[0].value;
620
+ else this.type = '';
621
+ this.showTypeListData = list;
79
622
  },
623
+
80
624
  onJfbReachBottom(options) {
81
625
  console.log('event.onJfbReachBottom', options)
82
626
  },
627
+
83
628
  onJfbShow(options) {
84
- console.log('event.onJfbShow', options)
629
+ this.getList()
85
630
  },
86
631
  onJfbHide(options) {
87
632
  console.log('event.onJfbHide', options)
88
633
  },
89
634
  onJfbBack(options) {
90
- console.log('event.onJfbBack', options)
91
- },
92
- onJfbUpdate(...data) {
93
- console.log('event.onJfbUpdate', data)
635
+ if(this.isList === 'Y') {
636
+ this.$xdUniHelper.navigateBack();
637
+ }
94
638
  },
95
- onJfbCustomEvent(options) {
96
- console.log('event.onJfbReachBottom', options)
639
+ //重新回去广告位置工
640
+ onJfbUpdate() {
641
+ this.onJfbLoad(this.options)
97
642
  },
643
+
98
644
  }
99
645
  }
100
646
 
@@ -105,7 +651,190 @@
105
651
 
106
652
  .jfb-movie-tfk-film-list {
107
653
  &__body{
654
+ .tfk-list {
655
+ & >view:first-child {
656
+ margin-top: 0 !important;
657
+ }
658
+ }
659
+
660
+ .list-tab {
661
+ display: flex;
662
+ justify-content: space-between;
663
+ align-items: center;
664
+
665
+ & > view {
666
+ flex: 1;
667
+ height: 80rpx;
668
+ line-height: 80rpx;
669
+ text-align: center;
670
+ font-size: 28rpx;
671
+
672
+ &:last-child {
673
+ margin-right: 0!important;
674
+ }
675
+ }
676
+ }
677
+
678
+ .list-cont {
679
+ position: relative;
680
+ z-index: 2;
681
+ .skeleton-wrap {
682
+ .skeleton-wrap-item {
683
+ height: 240rpx;
684
+ padding: 20rpx;
685
+ background: #fff;
686
+ display: flex;
687
+ justify-content: space-between;
688
+ align-items: center;
689
+
690
+ //影片列表骨架
691
+ &-image {
692
+ .skeleton-item(160rpx, 240rpx);
693
+ flex-shrink: 0;
694
+ margin-right: 20rpx;
695
+ }
696
+
697
+ &-title {
698
+ flex: 1;
699
+
700
+ .title {
701
+ .skeleton-item(100%, 50rpx);
702
+ margin-bottom: 20rpx;
703
+ }
704
+
705
+ .director,.star,.type {
706
+ .skeleton-item(100%, 40rpx);
707
+ margin-bottom: 10rpx;
708
+ }
709
+ }
710
+
711
+ &-btn {
712
+ display: flex;
713
+ align-content: space-between;
714
+ align-items: flex-end;
715
+ justify-content: flex-end;
716
+ flex-flow: wrap;
717
+ height: 100%;
718
+ box-sizing: border-box;
719
+ padding: 10rpx 0;
720
+ width: 130rpx;
721
+ flex-shrink: 0;
722
+
723
+ & > .score {
724
+ .skeleton-item(100rpx, 40rpx);
725
+ }
726
+ & > .btn {
727
+ .skeleton-item(130rpx, 60rpx);
728
+ }
729
+ }
730
+
731
+ &:last-child {
732
+ margin-bottom: 0!important;
733
+ }
734
+
735
+ //影院列表骨架
736
+ &.list {
737
+ display: block;
738
+ }
739
+ & > .title {
740
+ .skeleton-item(100%, 60rpx);
741
+ margin-bottom: 20rpx;
742
+ }
743
+ & > .address {
744
+ .skeleton-item(100%, 40rpx);
745
+ margin-bottom: 20rpx;
746
+ }
747
+ & > .bottom {
748
+ display: flex;
749
+ justify-content: space-between;
750
+ align-items: center;
751
+ padding-top: 30rpx;
752
+
753
+ & > .local {
754
+ .skeleton-item(120rpx, 30rpx);
755
+ }
756
+ & > .btn {
757
+ .skeleton-item(150rpx, 70rpx);
758
+ }
759
+ }
760
+ }
761
+
762
+
763
+ }
764
+
765
+ &-item {
766
+ height: 240rpx;
767
+
768
+ &:last-child {
769
+ margin-bottom: 0!important;
770
+ }
771
+ }
772
+
773
+ .cont-mask {
774
+ position: absolute;
775
+ top: 0;
776
+ bottom: 0;
777
+ z-index: 1;
778
+ background-color: rgba(0, 0, 0, .2);
779
+ }
780
+ }
781
+
782
+ .list-poster {
783
+ &-one {
784
+ display: flex;
785
+ justify-content: center;
786
+ align-items: center;
787
+
788
+ & > image {
789
+ height: 100%;
790
+ width: 100%;
791
+ }
792
+ }
793
+ }
794
+
795
+ .list-filter {
796
+ position: relative;
797
+ z-index: 3;
798
+ .hasFitler {
799
+ box-shadow: 0 -5rpx 20rpx 0 rgba(0,0,0, .1);
800
+ border-radius: 20rpx 20rpx 0 0;
801
+ }
802
+
803
+ &-block {
804
+ display: flex;
805
+ justify-content: space-between;
806
+ align-items: center;
807
+ height: 100rpx;
808
+ background: #fff;
809
+
810
+ & > view {
811
+ flex: 1;
812
+ text-align: center;
813
+ cursor: pointer;
814
+ color:#999;
815
+ display: flex;
816
+ justify-content: center;
817
+ align-items: center;
818
+
819
+ & > text {
820
+ margin-left: 10rpx;
821
+ }
822
+ }
823
+ }
824
+
825
+ &-modal {
826
+ position: relative;
827
+ height: 1px;
828
+ width: 100%;
829
+ z-index: 3;
830
+ }
831
+ }
832
+ }
108
833
 
834
+ .noConfig {
835
+ line-height: 100rpx;
836
+ text-align: center;
837
+ font-size: 26rpx;
109
838
  }
110
839
  }
111
840
  </style>