jufubao-movie 1.0.39-beta1 → 1.0.39-beta11
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/JfbMovieLineFilm/JfbMovieLineFilm.vue +11 -3
- package/src/components/JfbMovieLineLineSeat/Attr.js +11 -0
- package/src/components/JfbMovieLineLineSeat/JfbMovieLineLineSeat.vue +74 -11
- package/src/components/JfbMovieLineLineSeat/Mock.js +1 -0
- package/src/components/JfbMovieLineLineSeat/XdOnlineSeat.vue +48 -27
- package/src/components/JfbMovieLineLineSeat/XdOnlineSeatMove.vue +13 -9
- package/src/components/JfbMovieLineSchedule/JfbMovieLineSchedule.vue +1 -1
- package/src/components/JfbMovieTfkFilmList/Attr.js +5 -238
- package/src/components/JfbMovieTfkFilmList/ContentItem.vue +129 -76
- package/src/components/JfbMovieTfkFilmList/JfbMovieTfkFilmList.vue +284 -91
- package/src/components/JfbMovieTfkFilmList/PosterAttr.js +257 -0
- package/src/components/JfbMovieTfkFilmList/XdPoster.vue +160 -0
- package/src/components/JfbMovieTfkFilmList/XdQueryFilter.vue +1 -0
- package/src/components/JfbMovieTfkFilmRecommend/Attr.js +31 -3
- package/src/components/JfbMovieTfkFilmRecommend/JfbMovieTfkFilmRecommend.vue +30 -6
- package/src/lib/VirtualList.js +269 -0
- package/src/mixins/posterMixins.js +0 -59
package/package.json
CHANGED
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
}"
|
|
44
44
|
>即将上映</view>
|
|
45
45
|
</view>
|
|
46
|
-
|
|
47
46
|
<view v-if="loadingList" class="switch_section skeleton-wrap">
|
|
48
47
|
<view class="film_item" v-for="i in 6" :key="i">
|
|
49
48
|
<view class="film_post"></view>
|
|
@@ -134,8 +133,6 @@
|
|
|
134
133
|
</view>
|
|
135
134
|
</view>
|
|
136
135
|
</template>
|
|
137
|
-
|
|
138
|
-
|
|
139
136
|
</view>
|
|
140
137
|
</view>
|
|
141
138
|
</template>
|
|
@@ -211,6 +208,17 @@
|
|
|
211
208
|
}
|
|
212
209
|
},
|
|
213
210
|
created() {
|
|
211
|
+
// #ifdef H5
|
|
212
|
+
let mapType = {
|
|
213
|
+
hot:0,
|
|
214
|
+
rightnow: 1,
|
|
215
|
+
}
|
|
216
|
+
let addressType = this.$xdUniHelper.getParmater('tab_id')?this.$xdUniHelper.getParmater('tab_id'):'';
|
|
217
|
+
if(['hot', 'rightnow'].includes(addressType)) {
|
|
218
|
+
this.activeIndex = mapType[addressType];
|
|
219
|
+
}
|
|
220
|
+
// #endif
|
|
221
|
+
|
|
214
222
|
this.init(this.container);
|
|
215
223
|
this.getList();
|
|
216
224
|
},
|
|
@@ -4,6 +4,17 @@ export default {
|
|
|
4
4
|
style: [],
|
|
5
5
|
advanced: [],
|
|
6
6
|
content: [
|
|
7
|
+
{
|
|
8
|
+
label: '是否显示影院名称:',
|
|
9
|
+
ele: 'xd-radio',
|
|
10
|
+
valueKey: 'isShowTitle',
|
|
11
|
+
value: 'Y',
|
|
12
|
+
groupKey:'content',
|
|
13
|
+
list: [
|
|
14
|
+
{label: '是', value: 'Y'},
|
|
15
|
+
{label: '否', value: 'N'},
|
|
16
|
+
]
|
|
17
|
+
},
|
|
7
18
|
{
|
|
8
19
|
label: '订单确认路径:',
|
|
9
20
|
ele: 'xd-select-pages-path',
|
|
@@ -18,14 +18,23 @@
|
|
|
18
18
|
<!-- #endif -->
|
|
19
19
|
<view class="jfb-movie-line-line-seat__body">
|
|
20
20
|
<view v-if="loadingList" class="skeleton-wrap">
|
|
21
|
-
<view class="seat_head">
|
|
21
|
+
<view class="seat_head" v-if="isShowTitle === 'Y'">
|
|
22
22
|
<view></view>
|
|
23
23
|
<view></view>
|
|
24
24
|
</view>
|
|
25
|
-
<view class="
|
|
26
|
-
<view
|
|
27
|
-
|
|
25
|
+
<view class="seat_tips">
|
|
26
|
+
<view></view>
|
|
27
|
+
<view></view>
|
|
28
|
+
<view></view>
|
|
29
|
+
<view></view>
|
|
30
|
+
<view></view>
|
|
31
|
+
</view>
|
|
32
|
+
<view class="seat_body" :class="{Y:this.isShowTitle ==='Y', 'N': isShowTitle ==='N'}">
|
|
33
|
+
<view class="seat_line" v-for="i in yItem" :key="i">
|
|
34
|
+
<view class="seat_item" v-for="ii in xItem" :key="ii"></view>
|
|
28
35
|
</view>
|
|
36
|
+
<view v-if="isShowTitle === 'Y'" class="line-Y"></view>
|
|
37
|
+
<view v-else class="line-N"></view>
|
|
29
38
|
</view>
|
|
30
39
|
<view class="seat_notice"></view>
|
|
31
40
|
<view class="seat_foot">
|
|
@@ -37,6 +46,7 @@
|
|
|
37
46
|
<xd-online-seat
|
|
38
47
|
v-if="filmId"
|
|
39
48
|
ref="xdOnlineSeat"
|
|
49
|
+
:is-show-title="isShowTitle"
|
|
40
50
|
:key="cinemaSeatKey"
|
|
41
51
|
:is-old="false"
|
|
42
52
|
:film-id="filmId"
|
|
@@ -84,8 +94,11 @@
|
|
|
84
94
|
//面板
|
|
85
95
|
payPath: "", //三方支付路径
|
|
86
96
|
moviePayPath: "", //订单确认路径
|
|
97
|
+
isShowTitle:'Y',//是否显示影院名称
|
|
87
98
|
timer: null,
|
|
88
99
|
time: 0,
|
|
100
|
+
xItem: 10,
|
|
101
|
+
yItem: 7,
|
|
89
102
|
}
|
|
90
103
|
},
|
|
91
104
|
watch: {
|
|
@@ -98,6 +111,7 @@
|
|
|
98
111
|
this.init(this.container);
|
|
99
112
|
let systemInfo = uni.getSystemInfoSync();
|
|
100
113
|
getApp().globalData.$systemInfo = systemInfo;
|
|
114
|
+
|
|
101
115
|
},
|
|
102
116
|
methods: {
|
|
103
117
|
onJfbLoad(options) {
|
|
@@ -152,7 +166,10 @@
|
|
|
152
166
|
*/
|
|
153
167
|
init(container) {
|
|
154
168
|
this.moviePayPath = getContainerPropsValue(container, 'content.movie_pay_path', {value: ""}).value;
|
|
155
|
-
this.payPath = getContainerPropsValue(container, "content.payPath", {value: "
|
|
169
|
+
this.payPath = getContainerPropsValue(container, "content.payPath", {value: ""}).value;
|
|
170
|
+
this.isShowTitle = getContainerPropsValue(container, "content.isShowTitle", 'Y');
|
|
171
|
+
if(this.isShowTitle === 'Y') this.yItem = 7;
|
|
172
|
+
else this.yItem = 10;
|
|
156
173
|
},
|
|
157
174
|
handleGetFilm(resolve) {
|
|
158
175
|
// console.log('11111', paiqi.result);
|
|
@@ -326,29 +343,75 @@
|
|
|
326
343
|
|
|
327
344
|
.jfb-movie-line-line-seat {
|
|
328
345
|
&__body {
|
|
346
|
+
background-color: #f8f8f8;
|
|
329
347
|
.skeleton-wrap{
|
|
330
348
|
height: 100vh;
|
|
349
|
+
|
|
331
350
|
.seat_head{
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
margin
|
|
351
|
+
border-radius: 24rpx;
|
|
352
|
+
overflow: hidden;
|
|
353
|
+
margin: 20rpx 20rpx 5rpx;
|
|
354
|
+
box-shadow: 0 4rpx 40rpx rgba(0, 0, 0, 0.2);
|
|
355
|
+
position: relative;
|
|
356
|
+
padding: unit(20, rpx) unit(30, rpx);
|
|
357
|
+
|
|
335
358
|
& > view:first-child{
|
|
336
|
-
.skeleton-item(
|
|
359
|
+
.skeleton-item(80%, 36rpx);
|
|
360
|
+
padding-bottom: 15rpx;
|
|
337
361
|
}
|
|
338
362
|
& > view:last-child{
|
|
339
363
|
.skeleton-item(100%, 30rpx);
|
|
340
364
|
margin-top: 10rpx;
|
|
341
365
|
}
|
|
342
366
|
}
|
|
367
|
+
.seat_tips {
|
|
368
|
+
display: flex;
|
|
369
|
+
justify-content: center;
|
|
370
|
+
align-items: center;
|
|
371
|
+
padding-top: 50rpx;
|
|
372
|
+
& > view {
|
|
373
|
+
.skeleton-item(80rpx, 40rpx);
|
|
374
|
+
|
|
375
|
+
margin-right: 20rpx;
|
|
376
|
+
& >view:last-child{
|
|
377
|
+
margin-right: 0;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
343
381
|
.seat_body{
|
|
344
|
-
|
|
382
|
+
position: relative;
|
|
383
|
+
|
|
384
|
+
& .line-N {
|
|
385
|
+
position: absolute;
|
|
386
|
+
left:20rpx;
|
|
387
|
+
top:40rpx;
|
|
388
|
+
.skeleton-item(25rpx, 580rpx);
|
|
389
|
+
}
|
|
390
|
+
& .line-Y {
|
|
391
|
+
position: absolute;
|
|
392
|
+
left:20rpx;
|
|
393
|
+
top:40rpx;
|
|
394
|
+
.skeleton-item(25rpx, 400rpx);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
&.Y {
|
|
398
|
+
.skeleton-item(100%, 500rpx, 0, #FEFEFE);
|
|
399
|
+
}
|
|
400
|
+
&.N {
|
|
401
|
+
.skeleton-item(100%, 700rpx, 0, #FEFEFE);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
|
|
345
406
|
padding: 20rpx 100rpx;
|
|
346
407
|
box-sizing: border-box;
|
|
347
408
|
.seat_line{
|
|
348
409
|
display: flex;
|
|
349
410
|
margin: 20rpx;
|
|
350
411
|
.seat_item{
|
|
351
|
-
|
|
412
|
+
margin: 0 6rpx;
|
|
413
|
+
.skeleton-item(40rpx, 40rpx);
|
|
414
|
+
border-radius: 10rpx;
|
|
352
415
|
}
|
|
353
416
|
}
|
|
354
417
|
}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="xd-seat" v-if="paiqiStatus">
|
|
3
|
+
<view class="float"></view>
|
|
3
4
|
<view
|
|
4
5
|
class="xd-seat__title"
|
|
5
|
-
v-if="filmInfo"
|
|
6
|
+
v-if="isShowTitle === 'Y' && filmInfo"
|
|
6
7
|
id="xd-seat__title"
|
|
7
8
|
:style="{ borderTopColor: styleMainColor }"
|
|
8
9
|
>
|
|
9
|
-
<view class="xd-seat__title-name">{{ filmInfo["
|
|
10
|
-
<view class="xd-seat__title-address">{{cinemaInfo["
|
|
11
|
-
<view class="xd-seat__title-back" v-if="show" @click.stop="back">
|
|
12
|
-
<xd-font-icon
|
|
13
|
-
icon="iconzhiyuanfanhui12"
|
|
14
|
-
width="50"
|
|
15
|
-
height="50"
|
|
16
|
-
size="50"
|
|
17
|
-
></xd-font-icon>
|
|
18
|
-
</view>
|
|
10
|
+
<view class="xd-seat__title-name" :style="{marginBottom:cinemaInfo['cinema_address']?'15rpx':0 }">{{ filmInfo["cinema_name"] }}</view>
|
|
11
|
+
<view class="xd-seat__title-address" v-if="cinemaInfo['cinema_address']">{{cinemaInfo["cinema_address"] }}</view>
|
|
19
12
|
</view>
|
|
20
13
|
<view class="xd-seat__content" v-if="height !== null" :style="getHeight">
|
|
21
14
|
<xd-online-seat-move
|
|
@@ -38,14 +31,13 @@
|
|
|
38
31
|
showIcon
|
|
39
32
|
>
|
|
40
33
|
<view
|
|
41
|
-
style="
|
|
42
|
-
padding: 10rpx 0rpx 10rpx 20rpx;
|
|
43
|
-
"
|
|
34
|
+
style="padding: 10rpx 0rpx 10rpx 20rpx;"
|
|
44
35
|
v-for="(item, index) in noticeList"
|
|
45
36
|
:key="index"
|
|
46
37
|
>{{ item }}</view>
|
|
47
38
|
</xd-notice-bar>
|
|
48
39
|
</view>
|
|
40
|
+
<view class="xd-seat__footer-name">{{filmInfo.film_name}}</view>
|
|
49
41
|
<view class="xd-seat__footer-paiqi">
|
|
50
42
|
<view class="xd-seat__footer-paiqi-tab">
|
|
51
43
|
<view>
|
|
@@ -225,6 +217,10 @@ export default {
|
|
|
225
217
|
XdNoticeBar,
|
|
226
218
|
},
|
|
227
219
|
props: {
|
|
220
|
+
isShowTitle: {
|
|
221
|
+
type: String,
|
|
222
|
+
default:'Y'
|
|
223
|
+
},
|
|
228
224
|
isOld: {
|
|
229
225
|
type: Boolean,
|
|
230
226
|
default: true,
|
|
@@ -361,7 +357,7 @@ export default {
|
|
|
361
357
|
this.show = false;
|
|
362
358
|
// #endif
|
|
363
359
|
// #ifdef H5
|
|
364
|
-
this.show =
|
|
360
|
+
this.show = false;
|
|
365
361
|
// #endif
|
|
366
362
|
|
|
367
363
|
this.getFilm();
|
|
@@ -477,6 +473,7 @@ export default {
|
|
|
477
473
|
this.$emit("onGetFilm", (film) => {
|
|
478
474
|
this.cinemaInfo = film["cinema_data"];
|
|
479
475
|
this.filmInfo = this.getFilmInfo(film["film_data"]);
|
|
476
|
+
debugger
|
|
480
477
|
this.getScheduleList(film["paiqi_data"]);
|
|
481
478
|
console.log("getFilm", film);
|
|
482
479
|
this.paiqiStatus = true;
|
|
@@ -491,10 +488,16 @@ export default {
|
|
|
491
488
|
*/
|
|
492
489
|
setContent() {
|
|
493
490
|
this.$nextTick(() => {
|
|
491
|
+
let elxs = [];
|
|
492
|
+
if(this.isShowTitle === 'Y') elxs.push('#xd-seat__title');
|
|
493
|
+
elxs.push('#xd-seat__footer');
|
|
494
494
|
this.$xdUniHelper
|
|
495
|
-
.getWindowHeight(
|
|
495
|
+
.getWindowHeight(elxs, this)
|
|
496
496
|
.then((res) => {
|
|
497
|
-
let top =
|
|
497
|
+
let top = 0;
|
|
498
|
+
if(this.isShowTitle === 'Y') {
|
|
499
|
+
top = res["#xd-seat__title"]["height"] ;
|
|
500
|
+
}
|
|
498
501
|
let footer = res["#xd-seat__footer"]["height"];
|
|
499
502
|
console.log("getFilm", top, footer);
|
|
500
503
|
this.height = `calc(100vh - ${
|
|
@@ -648,6 +651,10 @@ export default {
|
|
|
648
651
|
</script>
|
|
649
652
|
|
|
650
653
|
<style scoped lang="less">
|
|
654
|
+
.float {
|
|
655
|
+
height: 1px;
|
|
656
|
+
width: 100%;
|
|
657
|
+
}
|
|
651
658
|
.xd-seat {
|
|
652
659
|
height: 100%;
|
|
653
660
|
overflow-y: hidden;
|
|
@@ -702,22 +709,26 @@ export default {
|
|
|
702
709
|
}
|
|
703
710
|
|
|
704
711
|
&__title {
|
|
705
|
-
border-
|
|
706
|
-
|
|
707
|
-
|
|
712
|
+
border-radius: 24rpx;
|
|
713
|
+
overflow: hidden;
|
|
714
|
+
margin: 20rpx 20rpx 5rpx;
|
|
715
|
+
box-shadow: 0 4rpx 40rpx rgba(0, 0, 0, 0.2);
|
|
708
716
|
position: relative;
|
|
709
|
-
padding: unit(20, rpx) unit(
|
|
717
|
+
padding: unit(20, rpx) unit(30, rpx);
|
|
710
718
|
z-index: 100;
|
|
711
719
|
|
|
712
720
|
&-name {
|
|
713
|
-
font-size:
|
|
721
|
+
font-size: 36rpx;
|
|
714
722
|
line-height: unit(40, rpx);
|
|
715
|
-
|
|
723
|
+
.uni-max-cut(1,40);
|
|
724
|
+
margin-bottom: 10rpx;
|
|
716
725
|
}
|
|
717
726
|
|
|
718
727
|
&-address {
|
|
719
|
-
font-size:
|
|
720
|
-
|
|
728
|
+
font-size: 28rpx;
|
|
729
|
+
line-height: unit(36, rpx);
|
|
730
|
+
.uni-max-cut(1,36);
|
|
731
|
+
color: #A6A6A6;
|
|
721
732
|
}
|
|
722
733
|
|
|
723
734
|
&-back {
|
|
@@ -745,6 +756,15 @@ export default {
|
|
|
745
756
|
z-index: 101;
|
|
746
757
|
background: #fff;
|
|
747
758
|
|
|
759
|
+
&-name {
|
|
760
|
+
line-height: 40rpx;
|
|
761
|
+
font-size: 36rpx;
|
|
762
|
+
.uni-cut(1,40);
|
|
763
|
+
padding: 0 20rpx;
|
|
764
|
+
font-weight: 600;
|
|
765
|
+
color: #333;
|
|
766
|
+
}
|
|
767
|
+
|
|
748
768
|
&-paiqi {
|
|
749
769
|
&-content {
|
|
750
770
|
height: unit(134, rpx);
|
|
@@ -847,11 +867,11 @@ export default {
|
|
|
847
867
|
&-input {
|
|
848
868
|
font-size: @xd-font-size-base;
|
|
849
869
|
background: #fff;
|
|
850
|
-
border-radius: unit(
|
|
870
|
+
border-radius: unit(30, rpx);
|
|
851
871
|
flex: 1;
|
|
852
872
|
height: unit(50, rpx);
|
|
853
873
|
line-height: unit(50, rpx);
|
|
854
|
-
padding: unit(
|
|
874
|
+
padding: unit(10,rpx) unit(25, rpx);
|
|
855
875
|
background: #f8f8f8;
|
|
856
876
|
|
|
857
877
|
// &:hover {
|
|
@@ -915,6 +935,7 @@ export default {
|
|
|
915
935
|
|
|
916
936
|
& .tab-show {
|
|
917
937
|
font-size: @xd-font-size-base;
|
|
938
|
+
color:#999
|
|
918
939
|
}
|
|
919
940
|
|
|
920
941
|
& > view {
|
|
@@ -407,7 +407,6 @@
|
|
|
407
407
|
:style="{
|
|
408
408
|
top : seatOffsetTop + 'px',
|
|
409
409
|
width: 30 * scale + 'rpx',
|
|
410
|
-
background: styleMainColor
|
|
411
410
|
}"
|
|
412
411
|
>
|
|
413
412
|
<view
|
|
@@ -1192,7 +1191,12 @@
|
|
|
1192
1191
|
|
|
1193
1192
|
</script>
|
|
1194
1193
|
<style lang="less">
|
|
1195
|
-
|
|
1194
|
+
.preloadIcon {
|
|
1195
|
+
position: fixed;
|
|
1196
|
+
top: -9999px;
|
|
1197
|
+
left: -9999px;
|
|
1198
|
+
z-index: 0;
|
|
1199
|
+
}
|
|
1196
1200
|
.xd-online-seat {
|
|
1197
1201
|
height: 100%;
|
|
1198
1202
|
box-sizing: border-box;
|
|
@@ -1244,21 +1248,21 @@
|
|
|
1244
1248
|
}
|
|
1245
1249
|
|
|
1246
1250
|
&__stage {
|
|
1247
|
-
background-image: url(
|
|
1251
|
+
background-image: url('https://img.jufubao.cn/common/stage.png?v1');
|
|
1248
1252
|
background-size: 100%;
|
|
1249
1253
|
background-position: top left;
|
|
1250
1254
|
background-repeat: no-repeat;
|
|
1251
|
-
color:
|
|
1255
|
+
color: #999;
|
|
1252
1256
|
width: unit(533, rpx);
|
|
1253
1257
|
height: unit(50, rpx);
|
|
1254
|
-
font-size:
|
|
1258
|
+
font-size: 20rpx;
|
|
1255
1259
|
text-align: center;
|
|
1256
1260
|
margin: unit(20, rpx) auto unit(40, rpx);
|
|
1257
1261
|
box-sizing: border-box;
|
|
1258
1262
|
|
|
1259
|
-
|
|
1263
|
+
& > text {
|
|
1260
1264
|
display: inline-block;
|
|
1261
|
-
padding: unit(
|
|
1265
|
+
padding: unit(40, rpx) 0 0;
|
|
1262
1266
|
}
|
|
1263
1267
|
}
|
|
1264
1268
|
|
|
@@ -1280,7 +1284,7 @@
|
|
|
1280
1284
|
justify-content: center;
|
|
1281
1285
|
align-content: center;
|
|
1282
1286
|
height: unit(50, rpx);
|
|
1283
|
-
padding: unit(
|
|
1287
|
+
padding: unit(20, rpx) 0 10rpx;
|
|
1284
1288
|
|
|
1285
1289
|
&-item {
|
|
1286
1290
|
font-size: @xd-font-size-base;
|
|
@@ -1344,7 +1348,7 @@
|
|
|
1344
1348
|
&__left-bar {
|
|
1345
1349
|
position: fixed;
|
|
1346
1350
|
left: unit(10, rpx);
|
|
1347
|
-
background-color:
|
|
1351
|
+
background-color: #ACADAF;
|
|
1348
1352
|
border-radius: unit(14, rpx);
|
|
1349
1353
|
overflow: hidden;
|
|
1350
1354
|
font-size: unit(20, rpx);
|