|
@@ -113,20 +113,41 @@
|
|
|
</div>
|
|
|
<div style="width: 100%;display: flex;justify-content: center;height: 30px;">
|
|
|
<el-button size="mini" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(seatSelectList,0)">锁定</el-button>
|
|
|
- <el-button size="mini" type="primary" @click="increaseViewersFun">预约</el-button>
|
|
|
+ <el-button size="mini" type="primary" @click="increaseViewersFun">购票</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- <div class="seat-select-box">
|
|
|
- <div class="seat-select-info">
|
|
|
+ <div class="seat-select-box">
|
|
|
+ <div class="seat-select-box-top">
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleClickTab">
|
|
|
+ <el-tab-pane label="已选座位" name="first"></el-tab-pane>
|
|
|
+ <el-tab-pane label="座位图例" name="second"></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
+ <div class="seat-select-info" v-if="activeName=='first'">
|
|
|
<div
|
|
|
class="seat-select-item"
|
|
|
:key="index"
|
|
|
v-for="(item,index) in seatSelectList">
|
|
|
+ <div>
|
|
|
+ <span>{{item.name ? item.name : '暂未命名'}}</span>
|
|
|
+ <span>{{ setSeatTypeShow(item.seatTypeId) }}</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <span @click="delSeatSelect(item)">删除</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="seat-select-info" v-if="activeName=='second'">
|
|
|
+ <div
|
|
|
+ class="seat-select-color-item"
|
|
|
+ :key="index"
|
|
|
+ v-for="(item,index) in seatTypeList">
|
|
|
+ <span :style="{backgroundColor: item.color?item.color:'none'}"></span>
|
|
|
<span>{{item.name ? item.name : '暂未命名'}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- 添加观影人 -->
|
|
|
<increaseViewers ref="increaseViewers" @clearDialogVisible="clearDialogVisible" />
|
|
@@ -143,6 +164,7 @@
|
|
|
} from '@/api/windowTicketSales/ticketingSales'
|
|
|
import increaseViewers from "./model/increaseViewers"
|
|
|
import moment from "moment"
|
|
|
+ import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
|
export default {
|
|
|
name: "distributionapplication",
|
|
|
components: {
|
|
@@ -187,12 +209,15 @@
|
|
|
scaleNum: 30,
|
|
|
|
|
|
width: 0,
|
|
|
- justifyContent: false
|
|
|
+ justifyContent: false,
|
|
|
+ activeName: 'first',
|
|
|
+ seatTypeList: [],
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.merchantTheatreAuditoriumListFun()
|
|
|
this.goodsPageListFun()
|
|
|
+ this.getSeatTypeList()
|
|
|
},
|
|
|
mounted() {
|
|
|
this.$set(this.queryParams,'performDate',moment().format("yyyy-MM-DD"))
|
|
@@ -463,6 +488,29 @@
|
|
|
}
|
|
|
|
|
|
},
|
|
|
+ /** 删除已选座位 */
|
|
|
+ delSeatSelect(row){
|
|
|
+ row.isSelect = !row.isSelect
|
|
|
+ if(row.isSelect){
|
|
|
+ this.seatSelectList.push(JSON.parse(JSON.stringify(row)))
|
|
|
+ }else {
|
|
|
+ let list = JSON.parse(JSON.stringify(this.seatSelectList))
|
|
|
+ list.forEach((item,index)=>{
|
|
|
+ if(item.id == row.id) {
|
|
|
+ this.seatSelectList.splice(index, 1)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ Object.keys(this.seatMapList).forEach((item1,index)=>{
|
|
|
+ this.seatMapList[item1].forEach((item,index)=>{
|
|
|
+ if(item.id == row.id) {
|
|
|
+ item.isSelect = !item.isSelect
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
increaseViewersFun(){
|
|
|
if(this.seatSelectList.length>0){
|
|
|
this.changePerformId(this.queryParams.timeId)
|
|
@@ -484,7 +532,33 @@
|
|
|
clearDialogVisible(){
|
|
|
//this.
|
|
|
this.querySeatListFun(true)
|
|
|
- }
|
|
|
+ },
|
|
|
+ /** 选择tab */
|
|
|
+ handleClickTab(){
|
|
|
+
|
|
|
+ },
|
|
|
+ /** 获取座位类型 说明 */
|
|
|
+ getSeatTypeList() {
|
|
|
+ getSeatType({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 999,
|
|
|
+ })
|
|
|
+ .then(response => {
|
|
|
+ this.seatTypeList = response.data.rows;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ },
|
|
|
+ /** 显示座位类型 */
|
|
|
+ setSeatTypeShow(value){
|
|
|
+ let srt = ''
|
|
|
+ this.seatTypeList.forEach((item,index)=>{
|
|
|
+ if(value == item.id) {
|
|
|
+ srt = item.name
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ return srt
|
|
|
+ },
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -514,8 +588,8 @@
|
|
|
display: flex;
|
|
|
position: relative;
|
|
|
.seat-list-box {
|
|
|
- //width: calc(100% - 200px);
|
|
|
- width: 100%;
|
|
|
+ width: calc(100% - 210px);
|
|
|
+ //width: 100%;
|
|
|
height: 100%;
|
|
|
box-sizing: border-box;
|
|
|
position: relative;
|
|
@@ -525,12 +599,54 @@
|
|
|
height: 100%;
|
|
|
flex-shrink: 0;
|
|
|
box-sizing: border-box;
|
|
|
+ padding: 0 5px;
|
|
|
+ margin-left: 10px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ border-radius: 10px;
|
|
|
.seat-select-info {
|
|
|
width: 100%;
|
|
|
- height: 100%;
|
|
|
+ height: calc( 100% - 60px );
|
|
|
overflow: hidden;
|
|
|
overflow-y: auto;
|
|
|
- .seat-select-item {}
|
|
|
+ .seat-select-item {
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ padding: 5px;
|
|
|
+ border-radius: 5px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ font-size: 12px;
|
|
|
+ >div:first-child {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ span:first-child {
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ >div:last-child {
|
|
|
+ span:first-child {
|
|
|
+ color: #f56c6c;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .seat-select-color-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ >span:first-child {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+ >span:last-child {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|