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.
@@ -25,41 +25,130 @@
25
25
  @touchmove="touchMove"
26
26
  @touchend="touchEnd"
27
27
  >
28
- <view
29
- class="xd-online-seat__stage"
30
- >
31
- <text>{{seathallNames}} 屏幕</text>
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
- <view class="xd-online-seat__tips">
94
+ <!--分区排期-->
95
+ <!--普通排期-->
96
+ <view v-else class="xd-online-seat__tips">
34
97
  <view class="xd-online-seat__tips-item">
35
98
  <view
36
- :style="'width:'+seatSize+'px;height:'+seatSize+'px;'"
37
- class="xd-online-seat__unselected"
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="'width:'+seatSize+'px;height:'+seatSize+'px'"
44
- class="xd-online-seat__disbaled"
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>不可选</span>
117
+ <span>已售罄</span>
47
118
  </view>
48
119
  <view class="xd-online-seat__tips-item">
49
120
  <view
50
- :style="'width:'+seatSize+'px;height:'+seatSize+'px'"
51
- class="xd-online-seat__selected"
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
- :style="'width:'+seatSize+'px;height:'+seatSize+'px'"
58
- class="xd-online-seat__lovely"
59
- ></view>
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="'width:'+(seatSize)+'px;height:'+(seatSize)+'px; margin-left:2px;'"
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
- <view v-if="seat.type===0" class="xd-online-seat__unselected"></view>
84
- <view v-if="seat.type===1" class="xd-online-seat__disbaled"></view>
85
- <view v-if="seat.type===2" class="xd-online-seat__selected"></view>
86
- <view v-if="seat.type===3" class="xd-online-seat__lovely"></view>
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
- <view
106
- class="xd-online-seat__stage"
107
- >
108
- <text>{{seathallNames}} 屏幕</text>
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
- <view class="xd-online-seat__tips">
288
+ <!--分区排期-->
289
+ <!--普通排期-->
290
+ <view v-else class="xd-online-seat__tips">
111
291
  <view class="xd-online-seat__tips-item">
112
292
  <view
113
- :style="'width:'+seatSize+'px;height:'+seatSize+'px;'"
114
- class="xd-online-seat__unselected"
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="'width:'+seatSize+'px;height:'+seatSize+'px'"
121
- class="xd-online-seat__disbaled"
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>不可选</span>
311
+ <span>已售罄</span>
124
312
  </view>
125
313
  <view class="xd-online-seat__tips-item">
126
314
  <view
127
- :style="'width:'+seatSize+'px;height:'+seatSize+'px'"
128
- class="xd-online-seat__selected"
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
- :style="'width:'+seatSize+'px;height:'+seatSize+'px'"
135
- class="xd-online-seat__lovely"
136
- ></view>
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="'width:'+(seatSize)+'px;height:'+(seatSize)+'px; margin-left:2px;'"
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
- <view v-if="seat.type===0" class="xd-online-seat__unselected"></view>
161
- <view v-if="seat.type===1" class="xd-online-seat__disbaled"></view>
162
- <view v-if="seat.type===2" class="xd-online-seat__selected"></view>
163
- <view v-if="seat.type===3" class="xd-online-seat__lovely"></view>
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: {XdButton},
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
- //#ifndef MP-WEIXIN
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
- console.log('created', this.list);
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.seatInitStatus = false;
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.seatInitStatus = false;
319
- this.seatSourceList = helper.cloneDeep(val);
320
- this.init()
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
- if (e.touches.length > 1) {
349
- this.scaleStop = false;
350
- }else{
351
- this.scaleStop = true;
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
- /*height: 100vh;*/
878
-
879
- &__disbaled {
880
- background-image: url(@xd-bg-disbaled);
881
- background-size: 100%;
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
- &__selected {
888
- background-image: url(@xd-bg-selected);
889
- background-size: 100%;
890
- background-position: top left;
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
- &__unselected {
896
- background-image: url(@xd-bg-unselected);
897
- background-size: 100%;
898
- background-position: top left;
899
- background-repeat: no-repeat;
900
- font-size: 12px;
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
- &__lovely {
904
- background-image: url(@xd-bg-lovely);
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(40, rpx);
962
- padding: 0 0 unit(30, rpx);
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
- *, view {
973
- margin-right: unit(10, rpx);
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: 1px;
1322
+ margin-left: 0;
999
1323
  -webkit-transform: translateX(-50%);
1000
1324
  transform: translateX(-50%);
1001
1325
  top: unit(-10, rpx)