|
@@ -81,23 +81,30 @@
|
|
|
<!-- 选择座位 -->
|
|
|
<div class="seat-list-box">
|
|
|
<!-- 座位排版 -->
|
|
|
- <div v-loading="loading" class="dialog">
|
|
|
- <div class="seat-box-class clearfix" v-if="seatMapList">
|
|
|
- <div
|
|
|
- class="seat-item-class-box"
|
|
|
- v-for="(item1, index1) in Object.keys(seatMapList)"
|
|
|
- :key="index1"
|
|
|
+ <div v-loading="loading" id="seatbox-me" @scroll="scroll" ref="seatbox" class="dialog">
|
|
|
+ <div class="dialog-box" :style="{width: width + 'px', margin: justifyContent ? 'auto' : 'unset'}">
|
|
|
+ <div
|
|
|
+ style="width: 100%;position: absolute;"
|
|
|
+ class="seat-box-class clearfix" v-if="seatMapList"
|
|
|
>
|
|
|
- <div
|
|
|
- class="seat-item-class"
|
|
|
- :class="item.occupyStatus==0?'occupy-status': item.isDisabled || item.status == 2 ? 'disabled-class' : item.isSelect ? 'select-class' : ''"
|
|
|
- v-for="(item, index) in seatMapList[item1]"
|
|
|
- @click.stop="seatClick(item)"
|
|
|
- :key="index">
|
|
|
- <p class="text-class">{{ item.status == 2 ? '不可售':(item.name ? item.name : '暂未命名') }}</p>
|
|
|
- </div>
|
|
|
+ <div
|
|
|
+
|
|
|
+ class="seat-item-class-box"
|
|
|
+ v-for="(item1, index1) in Object.keys(seatMapList)"
|
|
|
+ :key="index1"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="seat-item-class"
|
|
|
+ :class="item.occupyStatus==0?'occupy-status': item.isDisabled || item.status == 2 ? 'disabled-class' : item.isSelect ? 'select-class' : ''"
|
|
|
+ v-for="(item, index) in seatMapList[item1]"
|
|
|
+ @click.stop="seatClick(item)"
|
|
|
+ :key="index">
|
|
|
+ <p class="text-class">{{ item.status == 2 ? '不可售':(item.name ? item.name : '暂未命名') }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
</div>
|
|
|
<div style="margin-top: 5px; margin-left: 30px;display: flex;">
|
|
|
<div style="flex-shrink: 0;">
|
|
@@ -176,6 +183,9 @@
|
|
|
|
|
|
performId: '',// 剧目ID
|
|
|
scaleNum: 30,
|
|
|
+
|
|
|
+ width: 0,
|
|
|
+ justifyContent: false
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -296,6 +306,10 @@
|
|
|
console.error("error===",error)
|
|
|
}
|
|
|
},
|
|
|
+ /** scroll */
|
|
|
+ scroll(e){
|
|
|
+ console.log("滚动位置",e)
|
|
|
+ },
|
|
|
// 设置座位集合
|
|
|
setSeatMapList(list) {
|
|
|
if(list && list.length > 0) {
|
|
@@ -312,9 +326,27 @@
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- // Object.keys(listCopy).forEach((item)=>{
|
|
|
- // lisyCopy[item]
|
|
|
- // })
|
|
|
+ let width = 0
|
|
|
+ let flog = 0
|
|
|
+ Object.keys(listCopy).forEach((item)=>{
|
|
|
+ if(listCopy[item].length>flog) {
|
|
|
+ flog = listCopy[item].length
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.width = 70*flog
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ if(this.$refs.seatbox) {
|
|
|
+ var ele = document.getElementById('seatbox-me');
|
|
|
+ console.log(ele.getBoundingClientRect().width); // 100
|
|
|
+ if(this.width<ele.getBoundingClientRect().width) {
|
|
|
+ this.justifyContent = true
|
|
|
+ }else {
|
|
|
+ this.justifyContent = false
|
|
|
+ }
|
|
|
+ this.$refs.seatbox.scrollTo(this.width/4,0)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
console.log("list====",listCopy)
|
|
|
this.seatMapList = JSON.parse(JSON.stringify(listCopy))
|
|
|
}
|
|
@@ -510,6 +542,10 @@
|
|
|
overflow: auto;
|
|
|
border-radius: 10px;
|
|
|
border: 1px solid #323333;
|
|
|
+
|
|
|
+ .dialog-box {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
.upload-btn {
|
|
|
width: 100px;
|
|
|
height: 100px;
|
|
@@ -538,6 +574,7 @@
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
.seat-box-class{
|
|
|
+ width: 3000px;
|
|
|
padding: 5px;
|
|
|
transform-origin: 50% 0;
|
|
|
transform: scale(var(--scaleNum));
|
|
@@ -578,6 +615,7 @@
|
|
|
display: flex;
|
|
|
flex-wrap: nowrap;
|
|
|
justify-content: center;
|
|
|
+ margin: auto 0;
|
|
|
text-align: center;
|
|
|
}
|
|
|
.seat-item-class{
|