jufubao-movie 1.0.38 → 1.0.39-beta2
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/JfbMovieLineFilmInfo/Attr.js +2 -2
- package/src/components/JfbMovieLineFilmInfo/JfbMovieLineFilmInfo.vue +1 -3
- package/src/components/JfbMovieLineLineSeat/XdOnlineSeat.vue +17 -14
- package/src/components/JfbMovieLineLineSeat/XdOnlineSeatMove.vue +424 -100
- package/src/components/JfbMovieLineSchedule/JfbMovieLineSchedule.vue +65 -14
- package/src/components/JfbMovieTfkFilmList/Api.js +41 -22
- package/src/components/JfbMovieTfkFilmList/Attr.js +622 -30
- package/src/components/JfbMovieTfkFilmList/ContentCinema.vue +147 -0
- package/src/components/JfbMovieTfkFilmList/ContentItem.vue +167 -0
- package/src/components/JfbMovieTfkFilmList/JfbMovieTfkFilmList.vue +1047 -28
- package/src/components/JfbMovieTfkFilmList/Mock.js +4 -9
- package/src/components/JfbMovieTfkFilmList/XdQueryFilter.vue +87 -0
- package/src/components/JfbMovieTfkFilmList/XdQuerySort.vue +149 -0
- package/src/components/JfbMovieTfkFilmList/XdSwiperDot.vue +234 -0
- package/src/components/JfbMovieTfkFilmRecommend/Api.js +16 -36
- package/src/components/JfbMovieTfkFilmRecommend/Attr.js +527 -29
- package/src/components/JfbMovieTfkFilmRecommend/JfbMovieTfkFilmRecommend.vue +537 -34
- package/src/components/JfbMovieTfkFilmRecommend/Mock.js +2 -9
- package/src/lib/VirtualList.js +184 -0
- package/src/mixins/componentsMixins.js +275 -24
- package/src/mixins/posterMixins.js +125 -0
|
@@ -25,41 +25,130 @@
|
|
|
25
25
|
@touchmove="touchMove"
|
|
26
26
|
@touchend="touchEnd"
|
|
27
27
|
>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
<!--分区排期-->
|
|
29
|
+
<view v-if="isAreaPrice" class="xd-online-seat__tips">
|
|
30
|
+
<scroll-view scroll-x class="scroll-view_H">
|
|
31
|
+
<view class="AreaPrice" v-for="area in areaPrices" :key="area.area_id">
|
|
32
|
+
<view class="xd-online-seat__tips-item">
|
|
33
|
+
<view
|
|
34
|
+
:style="{
|
|
35
|
+
width: seatSize+'px',
|
|
36
|
+
height:seatSize+'px',
|
|
37
|
+
backgroundImage:'url('+ `${areaOhter}use-${areaPriceIndex[area.price]}` +'.png?ver='+ver+')'
|
|
38
|
+
}"
|
|
39
|
+
class="xd-online-seat__bg"
|
|
40
|
+
></view>
|
|
41
|
+
<view v-if="area.price_name" v-html="area.price_name"></view>
|
|
42
|
+
<view>
|
|
43
|
+
<xd-unit :price="area.price" :is-old="false"></xd-unit>
|
|
44
|
+
</view>
|
|
45
|
+
</view>
|
|
46
|
+
</view>
|
|
47
|
+
<view class="AreaPrice">
|
|
48
|
+
<view class="xd-online-seat__tips-item">
|
|
49
|
+
<view
|
|
50
|
+
:style="{
|
|
51
|
+
width: seatSize+'px',
|
|
52
|
+
height:seatSize+'px',
|
|
53
|
+
backgroundImage:'url('+ nomarlOhter+'sold.png?ver='+ver+')'
|
|
54
|
+
}"
|
|
55
|
+
class="xd-online-seat__bg"
|
|
56
|
+
></view>
|
|
57
|
+
<text>已售罄</text>
|
|
58
|
+
</view>
|
|
59
|
+
</view>
|
|
60
|
+
<view class="AreaPrice">
|
|
61
|
+
<view class="xd-online-seat__tips-item">
|
|
62
|
+
<view
|
|
63
|
+
:style="{
|
|
64
|
+
width: seatSize+'px',
|
|
65
|
+
height:seatSize+'px',
|
|
66
|
+
backgroundImage:'url('+ nomarlOhter+'selected.png?ver='+ver+')'
|
|
67
|
+
}"
|
|
68
|
+
class="xd-online-seat__bg"
|
|
69
|
+
></view>
|
|
70
|
+
<text>选中</text>
|
|
71
|
+
</view>
|
|
72
|
+
</view>
|
|
73
|
+
<view class="AreaPrice">
|
|
74
|
+
<view class="xd-online-seat__tips-item">
|
|
75
|
+
<view :style="{ width: seatSize*2 +'px', height:seatSize+'px',display:'flex'}">
|
|
76
|
+
<view
|
|
77
|
+
:style="{
|
|
78
|
+
width: seatSize+'px',
|
|
79
|
+
height:seatSize+'px',
|
|
80
|
+
backgroundImage:'url('+ nomarlOhter+'l-l-use.png?ver='+ver+')'
|
|
81
|
+
}" class="xd-online-seat__bg"></view>
|
|
82
|
+
<view
|
|
83
|
+
:style="{
|
|
84
|
+
width: seatSize+'px',
|
|
85
|
+
height:seatSize+'px',
|
|
86
|
+
backgroundImage:'url('+ nomarlOhter+'l-r-use.png?ver='+ver+')'
|
|
87
|
+
}" class="xd-online-seat__bg"></view>
|
|
88
|
+
</view>
|
|
89
|
+
<text>情侣</text>
|
|
90
|
+
</view>
|
|
91
|
+
</view>
|
|
92
|
+
</scroll-view>
|
|
32
93
|
</view>
|
|
33
|
-
|
|
94
|
+
<!--分区排期-->
|
|
95
|
+
<!--普通排期-->
|
|
96
|
+
<view v-else class="xd-online-seat__tips">
|
|
34
97
|
<view class="xd-online-seat__tips-item">
|
|
35
98
|
<view
|
|
36
|
-
|
|
37
|
-
|
|
99
|
+
class="xd-online-seat__bg"
|
|
100
|
+
:style="{
|
|
101
|
+
width: seatSize+'px',
|
|
102
|
+
height:seatSize+'px',
|
|
103
|
+
backgroundImage:'url('+ nomarlOhter+'use.png?ver='+ver+')'
|
|
104
|
+
}"
|
|
38
105
|
></view>
|
|
39
106
|
<span>可选</span>
|
|
40
107
|
</view>
|
|
41
108
|
<view class="xd-online-seat__tips-item">
|
|
42
109
|
<view
|
|
43
|
-
:style="
|
|
44
|
-
|
|
110
|
+
:style="{
|
|
111
|
+
width: seatSize+'px',
|
|
112
|
+
height:seatSize+'px',
|
|
113
|
+
backgroundImage:'url('+ nomarlOhter+'sold.png?ver='+ver+')'
|
|
114
|
+
}"
|
|
115
|
+
class="xd-online-seat__bg"
|
|
45
116
|
></view>
|
|
46
|
-
<span
|
|
117
|
+
<span>已售罄</span>
|
|
47
118
|
</view>
|
|
48
119
|
<view class="xd-online-seat__tips-item">
|
|
49
120
|
<view
|
|
50
|
-
:style="
|
|
51
|
-
|
|
121
|
+
:style="{
|
|
122
|
+
width: seatSize+'px',
|
|
123
|
+
height:seatSize+'px',
|
|
124
|
+
backgroundImage:'url('+ nomarlOhter+'selected.png?ver='+ver+')'
|
|
125
|
+
}"
|
|
126
|
+
class="xd-online-seat__bg"
|
|
52
127
|
></view>
|
|
53
128
|
<span>选中</span>
|
|
54
129
|
</view>
|
|
55
130
|
<view class="xd-online-seat__tips-item">
|
|
56
|
-
<view
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
131
|
+
<view :style="{ width: seatSize*2 +'px', height:seatSize+'px',display:'flex'}">
|
|
132
|
+
<view
|
|
133
|
+
:style="{
|
|
134
|
+
width: seatSize+'px',
|
|
135
|
+
height:seatSize+'px',
|
|
136
|
+
backgroundImage:'url('+ nomarlOhter+'l-l-use.png?ver='+ver+')'
|
|
137
|
+
}" class="xd-online-seat__bg"></view>
|
|
138
|
+
<view
|
|
139
|
+
:style="{
|
|
140
|
+
width: seatSize+'px',
|
|
141
|
+
height:seatSize+'px',
|
|
142
|
+
backgroundImage:'url('+ nomarlOhter+'l-r-use.png?ver='+ver+')'
|
|
143
|
+
}" class="xd-online-seat__bg"></view>
|
|
144
|
+
</view>
|
|
60
145
|
<span>情侣</span>
|
|
61
146
|
</view>
|
|
62
147
|
</view>
|
|
148
|
+
<!--普通排期-->
|
|
149
|
+
<view class="xd-online-seat__stage">
|
|
150
|
+
<text>{{seathallNames}} 屏幕</text>
|
|
151
|
+
</view>
|
|
63
152
|
<view class="xd-online-seat__body">
|
|
64
153
|
<view
|
|
65
154
|
class="xd-online-seat__center-line"
|
|
@@ -75,15 +164,43 @@
|
|
|
75
164
|
v-for="(seat,col) in item"
|
|
76
165
|
:key="col"
|
|
77
166
|
class="xd-online-seat__item"
|
|
78
|
-
:style="
|
|
167
|
+
:style="{
|
|
168
|
+
width:seatSize + 'px',
|
|
169
|
+
height: seatSize + 'px',
|
|
170
|
+
}"
|
|
79
171
|
@click="(e)=>{
|
|
80
172
|
handleChooseSeat(e,seat,index,col)
|
|
81
173
|
}"
|
|
82
174
|
>
|
|
83
|
-
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
175
|
+
<!--分区排期-->
|
|
176
|
+
<template v-if="isAreaPrice">
|
|
177
|
+
<template v-if="seat.isLove">
|
|
178
|
+
<view v-if="seat.typeStatus === 'use'" class="xd-online-seat__bg" :style="{
|
|
179
|
+
backgroundImage:'url('+ `${areaLove}${seat.isLove}-${seat.typeStatus}-${areaPriceIndex[seat.price]}` +'.png?ver='+ ver +')'
|
|
180
|
+
}"></view>
|
|
181
|
+
<view v-else class="xd-online-seat__bg" :style="{
|
|
182
|
+
backgroundImage:'url('+ `${areaLove}${seat.isLove}-${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
183
|
+
}"></view>
|
|
184
|
+
</template>
|
|
185
|
+
|
|
186
|
+
<template v-else>
|
|
187
|
+
<view v-if="seat.typeStatus === 'use'" class='xd-online-seat__bg' :style="{
|
|
188
|
+
backgroundImage:'url('+ `${areaOhter}${seat.typeStatus}-${areaPriceIndex[seat.price]}` +'.png?ver='+ ver +')'
|
|
189
|
+
}"></view>
|
|
190
|
+
<view v-else class='xd-online-seat__bg' :style="{
|
|
191
|
+
backgroundImage:'url('+ `${areaOhter}${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
192
|
+
}"></view>
|
|
193
|
+
</template>
|
|
194
|
+
</template>
|
|
195
|
+
<!--普通排期-->
|
|
196
|
+
<template v-else>
|
|
197
|
+
<view class="xd-online-seat__bg" v-if="seat.isLove" :style="{
|
|
198
|
+
backgroundImage:'url('+ `${nomarlLove}${seat.isLove}-${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
199
|
+
}"></view>
|
|
200
|
+
<view v-else class="xd-online-seat__bg" :style="{
|
|
201
|
+
backgroundImage:'url('+ nomarlOhter+seat.typeStatus +'.png?ver='+ver+')'
|
|
202
|
+
}"></view>
|
|
203
|
+
</template>
|
|
87
204
|
</view>
|
|
88
205
|
</view>
|
|
89
206
|
</view>
|
|
@@ -102,41 +219,130 @@
|
|
|
102
219
|
@scale="onScale"
|
|
103
220
|
@change="onMove"
|
|
104
221
|
>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
222
|
+
<!--分区排期-->
|
|
223
|
+
<view v-if="isAreaPrice" class="xd-online-seat__tips">
|
|
224
|
+
<scroll-view scroll-x class="scroll-view_H">
|
|
225
|
+
<view class="AreaPrice" v-for="area in areaPrices" :key="area.area_id">
|
|
226
|
+
<view class="xd-online-seat__tips-item">
|
|
227
|
+
<view
|
|
228
|
+
:style="{
|
|
229
|
+
width: seatSize+'px',
|
|
230
|
+
height:seatSize+'px',
|
|
231
|
+
backgroundImage:'url('+ `${areaOhter}use-${areaPriceIndex[area.price]}` +'.png?ver='+ver+')'
|
|
232
|
+
}"
|
|
233
|
+
class="xd-online-seat__bg"
|
|
234
|
+
></view>
|
|
235
|
+
<view v-if="area.price_name" v-html="area.price_name"></view>
|
|
236
|
+
<view>
|
|
237
|
+
<xd-unit :price="area.price" :is-old="false"></xd-unit>
|
|
238
|
+
</view>
|
|
239
|
+
</view>
|
|
240
|
+
</view>
|
|
241
|
+
<view class="AreaPrice">
|
|
242
|
+
<view class="xd-online-seat__tips-item">
|
|
243
|
+
<view
|
|
244
|
+
:style="{
|
|
245
|
+
width: seatSize+'px',
|
|
246
|
+
height:seatSize+'px',
|
|
247
|
+
backgroundImage:'url('+ nomarlOhter+'sold.png?ver='+ver+')'
|
|
248
|
+
}"
|
|
249
|
+
class="xd-online-seat__bg"
|
|
250
|
+
></view>
|
|
251
|
+
<text>已售罄</text>
|
|
252
|
+
</view>
|
|
253
|
+
</view>
|
|
254
|
+
<view class="AreaPrice">
|
|
255
|
+
<view class="xd-online-seat__tips-item">
|
|
256
|
+
<view
|
|
257
|
+
:style="{
|
|
258
|
+
width: seatSize+'px',
|
|
259
|
+
height:seatSize+'px',
|
|
260
|
+
backgroundImage:'url('+ nomarlOhter+'selected.png?ver='+ver+')'
|
|
261
|
+
}"
|
|
262
|
+
class="xd-online-seat__bg"
|
|
263
|
+
></view>
|
|
264
|
+
<text>选中</text>
|
|
265
|
+
</view>
|
|
266
|
+
</view>
|
|
267
|
+
<view class="AreaPrice">
|
|
268
|
+
<view class="xd-online-seat__tips-item">
|
|
269
|
+
<view :style="{ width: seatSize*2 +'px', height:seatSize+'px',display:'flex'}">
|
|
270
|
+
<view
|
|
271
|
+
:style="{
|
|
272
|
+
width: seatSize+'px',
|
|
273
|
+
height:seatSize+'px',
|
|
274
|
+
backgroundImage:'url('+ nomarlOhter+'l-l-use.png?ver='+ver+')'
|
|
275
|
+
}" class="xd-online-seat__bg"></view>
|
|
276
|
+
<view
|
|
277
|
+
:style="{
|
|
278
|
+
width: seatSize+'px',
|
|
279
|
+
height:seatSize+'px',
|
|
280
|
+
backgroundImage:'url('+ nomarlOhter+'l-r-use.png?ver='+ver+')'
|
|
281
|
+
}" class="xd-online-seat__bg"></view>
|
|
282
|
+
</view>
|
|
283
|
+
<text>情侣</text>
|
|
284
|
+
</view>
|
|
285
|
+
</view>
|
|
286
|
+
</scroll-view>
|
|
109
287
|
</view>
|
|
110
|
-
|
|
288
|
+
<!--分区排期-->
|
|
289
|
+
<!--普通排期-->
|
|
290
|
+
<view v-else class="xd-online-seat__tips">
|
|
111
291
|
<view class="xd-online-seat__tips-item">
|
|
112
292
|
<view
|
|
113
|
-
|
|
114
|
-
|
|
293
|
+
class="xd-online-seat__bg"
|
|
294
|
+
:style="{
|
|
295
|
+
width: seatSize+'px',
|
|
296
|
+
height:seatSize+'px',
|
|
297
|
+
backgroundImage:'url('+ nomarlOhter+'use.png?ver='+ver+')'
|
|
298
|
+
}"
|
|
115
299
|
></view>
|
|
116
300
|
<span>可选</span>
|
|
117
301
|
</view>
|
|
118
302
|
<view class="xd-online-seat__tips-item">
|
|
119
303
|
<view
|
|
120
|
-
:style="
|
|
121
|
-
|
|
304
|
+
:style="{
|
|
305
|
+
width: seatSize+'px',
|
|
306
|
+
height:seatSize+'px',
|
|
307
|
+
backgroundImage:'url('+ nomarlOhter+'sold.png?ver='+ver+')'
|
|
308
|
+
}"
|
|
309
|
+
class="xd-online-seat__bg"
|
|
122
310
|
></view>
|
|
123
|
-
<span
|
|
311
|
+
<span>已售罄</span>
|
|
124
312
|
</view>
|
|
125
313
|
<view class="xd-online-seat__tips-item">
|
|
126
314
|
<view
|
|
127
|
-
:style="
|
|
128
|
-
|
|
315
|
+
:style="{
|
|
316
|
+
width: seatSize+'px',
|
|
317
|
+
height:seatSize+'px',
|
|
318
|
+
backgroundImage:'url('+ nomarlOhter+'selected.png?ver='+ver+')'
|
|
319
|
+
}"
|
|
320
|
+
class="xd-online-seat__bg"
|
|
129
321
|
></view>
|
|
130
322
|
<span>选中</span>
|
|
131
323
|
</view>
|
|
132
324
|
<view class="xd-online-seat__tips-item">
|
|
133
|
-
<view
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
325
|
+
<view :style="{ width: seatSize*2 +'px', height:seatSize+'px',display:'flex'}">
|
|
326
|
+
<view
|
|
327
|
+
:style="{
|
|
328
|
+
width: seatSize+'px',
|
|
329
|
+
height:seatSize+'px',
|
|
330
|
+
backgroundImage:'url('+ nomarlOhter+'l-l-use.png?ver='+ver+')'
|
|
331
|
+
}" class="xd-online-seat__bg"></view>
|
|
332
|
+
<view
|
|
333
|
+
:style="{
|
|
334
|
+
width: seatSize+'px',
|
|
335
|
+
height:seatSize+'px',
|
|
336
|
+
backgroundImage:'url('+ nomarlOhter+'l-r-use.png?ver='+ver+')'
|
|
337
|
+
}" class="xd-online-seat__bg"></view>
|
|
338
|
+
</view>
|
|
137
339
|
<span>情侣</span>
|
|
138
340
|
</view>
|
|
139
341
|
</view>
|
|
342
|
+
<!--普通排期-->
|
|
343
|
+
<view class="xd-online-seat__stage">
|
|
344
|
+
<text>{{seathallNames}} 屏幕</text>
|
|
345
|
+
</view>
|
|
140
346
|
<view class="xd-online-seat__body">
|
|
141
347
|
<view
|
|
142
348
|
class="xd-online-seat__center-line"
|
|
@@ -152,15 +358,43 @@
|
|
|
152
358
|
v-for="(seat,col) in item"
|
|
153
359
|
:key="col"
|
|
154
360
|
class="xd-online-seat__item"
|
|
155
|
-
:style="
|
|
361
|
+
:style="{
|
|
362
|
+
width:seatSize + 'px',
|
|
363
|
+
height: seatSize + 'px',
|
|
364
|
+
}"
|
|
156
365
|
@click="(e)=>{
|
|
157
366
|
handleChooseSeat(e,seat,index,col)
|
|
158
367
|
}"
|
|
159
368
|
>
|
|
160
|
-
|
|
161
|
-
<
|
|
162
|
-
|
|
163
|
-
|
|
369
|
+
<!--分区排期-->
|
|
370
|
+
<template v-if="isAreaPrice">
|
|
371
|
+
<template v-if="seat.isLove">
|
|
372
|
+
<view v-if="seat.typeStatus === 'use'" class="xd-online-seat__bg" :style="{
|
|
373
|
+
backgroundImage:'url('+ `${areaLove}${seat.isLove}-${seat.typeStatus}-${areaPriceIndex[seat.price]}` +'.png?ver='+ ver +')'
|
|
374
|
+
}"></view>
|
|
375
|
+
<view v-else class="xd-online-seat__bg" :style="{
|
|
376
|
+
backgroundImage:'url('+ `${areaLove}${seat.isLove}-${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
377
|
+
}"></view>
|
|
378
|
+
</template>
|
|
379
|
+
|
|
380
|
+
<template v-else>
|
|
381
|
+
<view v-if="seat.typeStatus === 'use'" class='xd-online-seat__bg' :style="{
|
|
382
|
+
backgroundImage:'url('+ `${areaOhter}${seat.typeStatus}-${areaPriceIndex[seat.price]}` +'.png?ver='+ ver +')'
|
|
383
|
+
}"></view>
|
|
384
|
+
<view v-else class='xd-online-seat__bg' :style="{
|
|
385
|
+
backgroundImage:'url('+ `${areaOhter}${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
386
|
+
}"></view>
|
|
387
|
+
</template>
|
|
388
|
+
</template>
|
|
389
|
+
<!--普通排期-->
|
|
390
|
+
<template v-else>
|
|
391
|
+
<view class="xd-online-seat__bg" v-if="seat.isLove" :style="{
|
|
392
|
+
backgroundImage:'url('+ `${nomarlLove}${seat.isLove}-${seat.typeStatus}` +'.png?ver='+ ver +')'
|
|
393
|
+
}"></view>
|
|
394
|
+
<view v-else class="xd-online-seat__bg" :style="{
|
|
395
|
+
backgroundImage:'url('+ nomarlOhter+seat.typeStatus +'.png?ver='+ver+')'
|
|
396
|
+
}"></view>
|
|
397
|
+
</template>
|
|
164
398
|
</view>
|
|
165
399
|
</view>
|
|
166
400
|
</view>
|
|
@@ -187,25 +421,43 @@
|
|
|
187
421
|
v-for="(m,mindex) in seatRowList"
|
|
188
422
|
:key="mindex">{{m}}</view>
|
|
189
423
|
</view>
|
|
424
|
+
<view class="preloadIcon">
|
|
425
|
+
<view v-if="isAreaPrice">
|
|
426
|
+
<image :src="`${areaOhter}${img}.png?ver=${ver}`" v-for="(img,index) in preloadIcon" :key="index"></image>
|
|
427
|
+
</view>
|
|
428
|
+
<view v-else>
|
|
429
|
+
<image :src="`${nomarlOhter}${img}.png?ver=${ver}`" v-for="(img,index) in preloadIcon" :key="index"></image>
|
|
430
|
+
</view>
|
|
431
|
+
</view>
|
|
190
432
|
</view>
|
|
191
433
|
</template>
|
|
192
434
|
<script>
|
|
193
435
|
import helper from "@/utils/helper";
|
|
194
436
|
import XdButton from "@/components/XdButton/XdButton";
|
|
437
|
+
import XdUnit from "@/components/XdUnit/XdUnit.vue";
|
|
195
438
|
import {
|
|
196
439
|
getParentsStyle, //获取页面风格单个键值值
|
|
197
440
|
} from '@/utils/xd.base';
|
|
198
441
|
|
|
199
442
|
export default {
|
|
200
443
|
name: 'XdOnlineSeatMove',
|
|
201
|
-
components: {
|
|
444
|
+
components: {
|
|
445
|
+
XdButton,
|
|
446
|
+
XdUnit
|
|
447
|
+
},
|
|
202
448
|
props: {
|
|
203
449
|
list: {
|
|
204
|
-
type: Array | Object,
|
|
450
|
+
type: Array | Object| null,
|
|
205
451
|
default() {
|
|
206
452
|
return {};
|
|
207
453
|
}
|
|
208
454
|
},
|
|
455
|
+
areaPrices:{
|
|
456
|
+
type: Array||null,
|
|
457
|
+
default() {
|
|
458
|
+
return [];
|
|
459
|
+
}
|
|
460
|
+
},
|
|
209
461
|
layoutInfo: {
|
|
210
462
|
type: Object,
|
|
211
463
|
default() {
|
|
@@ -247,7 +499,7 @@
|
|
|
247
499
|
stageHeight: 120, //舞台块高度px
|
|
248
500
|
tipsheight: 76, //提示块高度px
|
|
249
501
|
//#endif
|
|
250
|
-
//#
|
|
502
|
+
//#ifdef H5
|
|
251
503
|
stageHeight: 80, //舞台块高度px
|
|
252
504
|
tipsheight: 76, //提示块高度px
|
|
253
505
|
//#endif
|
|
@@ -273,6 +525,29 @@
|
|
|
273
525
|
seatTotalNumber: 0, //座位总数
|
|
274
526
|
|
|
275
527
|
styleMainColor: '', //插件主题风格样式
|
|
528
|
+
|
|
529
|
+
//分区排期
|
|
530
|
+
isAreaPrice: false,
|
|
531
|
+
ver:5,
|
|
532
|
+
areaPriceIndex:{},
|
|
533
|
+
preloadIcon:['l-r-selected','l-l-selected', 'selected', 'sold', 'l-r-sold','l-l-sold'],
|
|
534
|
+
|
|
535
|
+
//#ifdef MP-WEIXIN
|
|
536
|
+
nomarlLove:'https://img.jufubao.cn/common/seat/normal/l-',
|
|
537
|
+
nomarlOhter:'https://img.jufubao.cn/common/seat/normal/',
|
|
538
|
+
//#endif
|
|
539
|
+
//#ifdef H5
|
|
540
|
+
nomarlLove:'//img.jufubao.cn/common/seat/normal/l-',
|
|
541
|
+
nomarlOhter:'//img.jufubao.cn/common/seat/normal/',
|
|
542
|
+
//#endif
|
|
543
|
+
//#ifdef MP-WEIXIN
|
|
544
|
+
areaLove:'https://img.jufubao.cn/common/seat/area/l-',
|
|
545
|
+
areaOhter:'https://img.jufubao.cn/common/seat/area/',
|
|
546
|
+
//#endif
|
|
547
|
+
//#ifdef H5
|
|
548
|
+
areaLove:'//img.jufubao.cn/common/seat/area/l-',
|
|
549
|
+
areaOhter:'//img.jufubao.cn/common/seat/area/',
|
|
550
|
+
//#endif
|
|
276
551
|
};
|
|
277
552
|
},
|
|
278
553
|
computed: {
|
|
@@ -280,7 +555,7 @@
|
|
|
280
555
|
let height = Math.floor((this.seatSize + this.seatMarginBottom / this.pxNum) * this.seatRow + this.stageHeight / this.pxNum + this.tipsheight / this.pxNum);
|
|
281
556
|
return {
|
|
282
557
|
width: this.boxWidth + 'px',
|
|
283
|
-
height: height + 'px',
|
|
558
|
+
height: height + 30 + 'px',
|
|
284
559
|
padding: `0 ${this.leftPadding * this.pxNum}rpx ${this.leftPadding * this.pxNum}rpx`
|
|
285
560
|
}
|
|
286
561
|
},
|
|
@@ -304,35 +579,62 @@
|
|
|
304
579
|
},
|
|
305
580
|
},
|
|
306
581
|
async created() {
|
|
307
|
-
|
|
582
|
+
|
|
583
|
+
//#ifdef MP-WEIXIN
|
|
584
|
+
// todo
|
|
585
|
+
//#endif
|
|
586
|
+
//#ifdef H5
|
|
587
|
+
let time = null;
|
|
588
|
+
window.addEventListener("scroll", ()=>{
|
|
589
|
+
if(time) clearTimeout(time);
|
|
590
|
+
time = setTimeout(()=>{
|
|
591
|
+
this.setSeatOffset();
|
|
592
|
+
}, 400)
|
|
593
|
+
});
|
|
594
|
+
//#endif
|
|
595
|
+
|
|
308
596
|
this.styleMainColor = await getParentsStyle(this.$parent, '$mainColor');
|
|
309
597
|
this.scale = this.defautScale;
|
|
310
598
|
this.seathallNames = this.hallName;
|
|
311
|
-
this.
|
|
312
|
-
this.seatSourceList = helper.cloneDeep(this.list);
|
|
313
|
-
|
|
314
|
-
this.init();
|
|
599
|
+
this.startInit(this.list);
|
|
315
600
|
},
|
|
316
601
|
watch: {
|
|
317
602
|
list(val) {
|
|
318
|
-
this.
|
|
319
|
-
|
|
320
|
-
|
|
603
|
+
this.startInit(val)
|
|
604
|
+
},
|
|
605
|
+
areaPrices() {
|
|
606
|
+
this.startInit(this.list)
|
|
321
607
|
},
|
|
322
608
|
hallName(val) {
|
|
323
609
|
this.seathallNames = val;
|
|
324
610
|
},
|
|
325
611
|
stageAllHeight(n, o){
|
|
326
|
-
console.log("watch stageAllHeight", n, o)
|
|
327
612
|
if(n !== o && !n){
|
|
328
613
|
this.setSeatOffset();
|
|
329
614
|
}
|
|
330
615
|
}
|
|
331
616
|
},
|
|
332
617
|
mounted(){
|
|
333
|
-
this.setSeatOffset()
|
|
618
|
+
this.setSeatOffset();
|
|
334
619
|
},
|
|
335
620
|
methods: {
|
|
621
|
+
|
|
622
|
+
startInit(list){
|
|
623
|
+
if(this.list !== null && this.areaPrices !== null) {
|
|
624
|
+
if(this.areaPrices.length > 0) {
|
|
625
|
+
let areaPriceIndex = {};
|
|
626
|
+
this.areaPrices.map((area, index)=>{
|
|
627
|
+
areaPriceIndex[area.price] = index;
|
|
628
|
+
})
|
|
629
|
+
this.areaPriceIndex = areaPriceIndex;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
this.seatInitStatus = false;
|
|
633
|
+
this.seatSourceList = helper.cloneDeep(list);
|
|
634
|
+
this.isAreaPrice = this.areaPrices.length > 0
|
|
635
|
+
this.init();
|
|
636
|
+
}
|
|
637
|
+
},
|
|
336
638
|
reSelectData(){
|
|
337
639
|
this.totalPrice = 0;
|
|
338
640
|
this.seatSelected = [];
|
|
@@ -345,11 +647,13 @@
|
|
|
345
647
|
},
|
|
346
648
|
|
|
347
649
|
touchMove(e) {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
}
|
|
650
|
+
this.scaleStop = !(e.touches.length > 1)
|
|
651
|
+
// return !(e.touches.length > 1)
|
|
652
|
+
// if (e.touches.length > 1) {
|
|
653
|
+
// this.scaleStop = false;
|
|
654
|
+
// }else{
|
|
655
|
+
// this.scaleStop = true;
|
|
656
|
+
// }
|
|
353
657
|
},
|
|
354
658
|
|
|
355
659
|
touchEnd(e) {
|
|
@@ -367,7 +671,7 @@
|
|
|
367
671
|
], this)
|
|
368
672
|
.then(res => {
|
|
369
673
|
let {top, left, width, height} = res['.xd-online-seat__body'];
|
|
370
|
-
console.log('setSeatOffset',res['.xd-online-seat__body'], this.layoutInfo)
|
|
674
|
+
//console.log('setSeatOffset',res['.xd-online-seat__body'], this.layoutInfo)
|
|
371
675
|
this.seatOffsetTop = top + (this.layoutInfo.top || 0) * this.$rpxNum;
|
|
372
676
|
this.seatOffsetLeft = left;
|
|
373
677
|
this.seatDom = res['.xd-online-seat__body'];
|
|
@@ -382,13 +686,12 @@
|
|
|
382
686
|
|
|
383
687
|
init() {
|
|
384
688
|
this.systemInfo = getApp().globalData.$systemInfo;
|
|
385
|
-
this.boxWidth = getApp().globalData.$systemInfo.windowWidth - this.leftPadding - 4*this.scale;
|
|
689
|
+
this.boxWidth = getApp().globalData.$systemInfo.windowWidth - this.leftPadding - 4 * this.scale;
|
|
386
690
|
this.srceenType = this.$isPortrait;
|
|
387
691
|
this.reSelectData();
|
|
388
692
|
|
|
389
693
|
if (this.seatSourceList && !helper.isEmpty(this.seatSourceList)) {
|
|
390
694
|
this.initData(this.seatSourceList);
|
|
391
|
-
|
|
392
695
|
}
|
|
393
696
|
},
|
|
394
697
|
|
|
@@ -424,32 +727,48 @@
|
|
|
424
727
|
* @desc cell.type -1为非座位,0为可购座位,1为不可购座位, 2为已购座位(平台起作用), 3为情侣座位(LL,LR),
|
|
425
728
|
*/
|
|
426
729
|
initSeatArray() {
|
|
730
|
+
|
|
427
731
|
this.seatSourceList.map((row, posRow) => {
|
|
428
732
|
row.map((cell, posCell) => {
|
|
429
|
-
|
|
430
733
|
//设置位置
|
|
431
734
|
cell['posRow'] = posRow;
|
|
432
735
|
cell['posCell'] = posCell;
|
|
433
736
|
|
|
737
|
+
|
|
434
738
|
//非座位状态
|
|
435
739
|
if (cell.type === 'G') cell.type = -1;
|
|
436
740
|
|
|
741
|
+
//非地板|右情侣|左情侣
|
|
742
|
+
if(!(cell.type === 'G' || cell.type === 'LR' || cell.type === 'LL')){
|
|
743
|
+
cell.type = cell.type + '';
|
|
744
|
+
if(!cell.isLove) cell.isLove = '';
|
|
745
|
+
}
|
|
746
|
+
|
|
437
747
|
//情侣座位状态
|
|
438
748
|
if (cell.type === 'LL') {
|
|
439
749
|
cell.type = 3;
|
|
440
750
|
cell.lovely = 'LL'; //记录左情侣座
|
|
751
|
+
cell.typeStatus = 'use'
|
|
752
|
+
cell.isLove = 'l';
|
|
441
753
|
this.seatTotalNumber++;
|
|
442
754
|
}
|
|
443
755
|
|
|
444
756
|
//记录右情侣座
|
|
445
757
|
if (cell.type === 'LR') {
|
|
446
758
|
cell.lovely = 'LR';
|
|
759
|
+
cell.typeStatus = 'use'
|
|
760
|
+
cell.isLove = 'r';
|
|
447
761
|
}
|
|
448
762
|
|
|
449
763
|
//可选 or 不可购买座位状态
|
|
450
764
|
if (cell.type === '0' || cell.type === 'LR') {
|
|
451
765
|
if (cell.status === 'false') cell.type = 1;
|
|
452
766
|
else cell.type = 0;
|
|
767
|
+
|
|
768
|
+
//status false: 不可以用 true:可用
|
|
769
|
+
if(cell.status === 'false') cell.typeStatus = 'sold'
|
|
770
|
+
else cell.typeStatus = 'use'
|
|
771
|
+
|
|
453
772
|
this.seatTotalNumber++;
|
|
454
773
|
}
|
|
455
774
|
});
|
|
@@ -485,6 +804,7 @@
|
|
|
485
804
|
});
|
|
486
805
|
this.seatRowList = temp;
|
|
487
806
|
this.seatInitStatus = true;
|
|
807
|
+
|
|
488
808
|
},
|
|
489
809
|
|
|
490
810
|
/**
|
|
@@ -537,7 +857,6 @@
|
|
|
537
857
|
totalPrice = this.$xdUniHelper.addFloatNumber(totalPrice, price);
|
|
538
858
|
});
|
|
539
859
|
this.totalPrice = totalPrice;
|
|
540
|
-
console.log(JSON.stringify(this.seatSelected));
|
|
541
860
|
},
|
|
542
861
|
|
|
543
862
|
/**
|
|
@@ -783,11 +1102,10 @@
|
|
|
783
1102
|
* @param posCol
|
|
784
1103
|
*/
|
|
785
1104
|
handleChooseSeat: function (ev, item, posRow, posCol) {
|
|
786
|
-
console.log('handleChooseSeat',ev)
|
|
787
1105
|
|
|
788
1106
|
//如果是不可选,直接返回
|
|
789
1107
|
if (item['type'] === 1 || item['type'] === -1) return;
|
|
790
|
-
|
|
1108
|
+
|
|
791
1109
|
//购买数量大于设定购买数量并且是选择操作
|
|
792
1110
|
if ((item['type'] === 0 || item['type']=== 3)
|
|
793
1111
|
&& this.seatSelected.length >= this.seatMaxBuyNumber
|
|
@@ -796,23 +1114,26 @@
|
|
|
796
1114
|
return;
|
|
797
1115
|
}
|
|
798
1116
|
|
|
1117
|
+
console.warn(`handleChooseSeat:${JSON.stringify(item)}`)
|
|
799
1118
|
|
|
800
1119
|
//选择当前行数据
|
|
801
1120
|
let row = this.$xdUniHelper.cloneDeep(this.seatArray[posRow]);
|
|
802
1121
|
console.log(item, posRow, posCol, item['type']);
|
|
803
1122
|
|
|
804
1123
|
|
|
1124
|
+
|
|
805
1125
|
//取消选择中操作
|
|
806
1126
|
if (item['type'] === 2) {
|
|
807
1127
|
console.log('取消选择中操作', item['type']);
|
|
808
1128
|
item['type'] = 0;
|
|
809
|
-
|
|
1129
|
+
item['typeStatus'] = 'use';
|
|
810
1130
|
|
|
811
1131
|
//左情侣取消
|
|
812
1132
|
if (item['lovely'] === 'LL') {
|
|
813
1133
|
item['type'] = 3;
|
|
814
1134
|
let lovelyseat = row[posCol + 1];
|
|
815
1135
|
lovelyseat['type'] = 0;
|
|
1136
|
+
lovelyseat['typeStatus'] = 'use';
|
|
816
1137
|
this.selectSeat(lovelyseat, '-');
|
|
817
1138
|
}
|
|
818
1139
|
|
|
@@ -821,6 +1142,7 @@
|
|
|
821
1142
|
item['type'] = 0;
|
|
822
1143
|
let lovelyseat = row[posCol - 1];
|
|
823
1144
|
lovelyseat['type'] = 3;
|
|
1145
|
+
lovelyseat['typeStatus'] = 'use';
|
|
824
1146
|
this.selectSeat(lovelyseat, '-');
|
|
825
1147
|
}
|
|
826
1148
|
|
|
@@ -831,11 +1153,13 @@
|
|
|
831
1153
|
else if (item['type'] === 0 || item['type'] === 3) {
|
|
832
1154
|
console.log('选择中操作', item['type'], item.name);
|
|
833
1155
|
item['type'] = 2;
|
|
1156
|
+
item['typeStatus'] = 'selected';
|
|
834
1157
|
this.selectSeat(item, '+');
|
|
835
1158
|
|
|
836
1159
|
//选中左情侣
|
|
837
1160
|
if (item['lovely'] === 'LL') {
|
|
838
1161
|
row[posCol + 1]['type'] = 2;
|
|
1162
|
+
row[posCol + 1]['typeStatus'] = 'selected';
|
|
839
1163
|
this.selectSeat(row[posCol + 1], '+');
|
|
840
1164
|
this.$xdLog.setARMSInfo({
|
|
841
1165
|
LL: item,
|
|
@@ -847,6 +1171,7 @@
|
|
|
847
1171
|
//选中右情侣
|
|
848
1172
|
if (item['lovely'] === 'LR') {
|
|
849
1173
|
row[posCol - 1]['type'] = 2;
|
|
1174
|
+
row[posCol - 1]['typeStatus'] = 'selected';
|
|
850
1175
|
this.selectSeat(row[posCol - 1], '+');
|
|
851
1176
|
this.$xdLog.setARMSInfo({
|
|
852
1177
|
LL: row[posCol - 1],
|
|
@@ -860,7 +1185,6 @@
|
|
|
860
1185
|
//更新座位图数据
|
|
861
1186
|
row.splice(posCol, 1, item);
|
|
862
1187
|
this.seatArray.splice(posRow, 1, row);
|
|
863
|
-
|
|
864
1188
|
},
|
|
865
1189
|
|
|
866
1190
|
}
|
|
@@ -874,40 +1198,37 @@
|
|
|
874
1198
|
box-sizing: border-box;
|
|
875
1199
|
position: relative;
|
|
876
1200
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
background-position: top left;
|
|
883
|
-
background-repeat: no-repeat;
|
|
884
|
-
font-size: 12px;
|
|
1201
|
+
.preload-img {
|
|
1202
|
+
position: absolute;
|
|
1203
|
+
top:-9999px;
|
|
1204
|
+
left: -9000px;
|
|
1205
|
+
width: 100vw;
|
|
885
1206
|
}
|
|
886
1207
|
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
background-repeat: no-repeat;
|
|
892
|
-
font-size: 12px;
|
|
893
|
-
}
|
|
1208
|
+
.scroll-view_H {
|
|
1209
|
+
white-space: nowrap;
|
|
1210
|
+
width: 100%;
|
|
1211
|
+
height: 100%;
|
|
894
1212
|
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
1213
|
+
& view.AreaPrice {
|
|
1214
|
+
display: inline-block;
|
|
1215
|
+
height: 100%;
|
|
1216
|
+
text-align: center;
|
|
1217
|
+
vertical-align: top;
|
|
1218
|
+
margin-right: 10rpx;
|
|
1219
|
+
}
|
|
901
1220
|
}
|
|
902
1221
|
|
|
903
|
-
|
|
904
|
-
|
|
1222
|
+
/*height: 100vh;*/
|
|
1223
|
+
|
|
1224
|
+
&__bg {
|
|
905
1225
|
background-size: 100%;
|
|
906
1226
|
background-position: top left;
|
|
907
1227
|
background-repeat: no-repeat;
|
|
908
1228
|
font-size: 12px;
|
|
909
1229
|
}
|
|
910
1230
|
|
|
1231
|
+
|
|
911
1232
|
width: unit(750, rpx);
|
|
912
1233
|
|
|
913
1234
|
&__area {
|
|
@@ -958,19 +1279,20 @@
|
|
|
958
1279
|
display: flex;
|
|
959
1280
|
justify-content: center;
|
|
960
1281
|
align-content: center;
|
|
961
|
-
height: unit(
|
|
962
|
-
padding:
|
|
1282
|
+
height: unit(50, rpx);
|
|
1283
|
+
padding: unit(30, rpx) 0;
|
|
963
1284
|
|
|
964
1285
|
&-item {
|
|
965
1286
|
font-size: @xd-font-size-base;
|
|
966
1287
|
margin: 0 unit(10, rpx);
|
|
967
1288
|
display: flex;
|
|
968
1289
|
justify-content: center;
|
|
969
|
-
align-content: center;
|
|
970
1290
|
align-items: center;
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
1291
|
+
& > view {
|
|
1292
|
+
margin-right: 10rpx;
|
|
1293
|
+
}
|
|
1294
|
+
& > text {
|
|
1295
|
+
line-height: 50rpx;
|
|
974
1296
|
}
|
|
975
1297
|
}
|
|
976
1298
|
}
|
|
@@ -989,13 +1311,15 @@
|
|
|
989
1311
|
|
|
990
1312
|
&__body {
|
|
991
1313
|
position: relative;
|
|
1314
|
+
|
|
1315
|
+
|
|
992
1316
|
}
|
|
993
1317
|
|
|
994
1318
|
&__center-line {
|
|
995
1319
|
border-left: 1px dashed #e5e5e5;
|
|
996
1320
|
position: absolute;
|
|
997
1321
|
left: 50%;
|
|
998
|
-
margin-left:
|
|
1322
|
+
margin-left: 0;
|
|
999
1323
|
-webkit-transform: translateX(-50%);
|
|
1000
1324
|
transform: translateX(-50%);
|
|
1001
1325
|
top: unit(-10, rpx)
|