|
@@ -160,6 +160,7 @@
|
|
|
</div>
|
|
|
<div style="width: 100%;display: flex;justify-content: center;height: 30px;">
|
|
|
<el-button size="mini" v-hasPermi="['windowTicketSales:ticketingSales:lock']" type="warning" :loading="lockOrUnLockLoading" @click="lockOrUnLockFun(0)">{{ seatSelectListNo.length>0?'解锁':'锁定' }}</el-button>
|
|
|
+ <el-button size="mini" v-hasPermi="['windowTicketSales:ticket:batchlock']" type="danger" @click="batchLockFun">批量锁定</el-button>
|
|
|
<el-button size="mini" v-hasPermi="['windowTicketSales:ticketingSales:buy']" type="primary" @click="increaseViewersFun">购票</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -199,6 +200,8 @@
|
|
|
</div>
|
|
|
<!-- 锁座备注 -->
|
|
|
<lock-seat ref="lockSeat" @querySeatListFun="querySeatListFun" />
|
|
|
+ <!-- 批量锁座 -->
|
|
|
+ <batch-lock ref="batchLockSeat" @querySeatListFun="querySeatListFun" />
|
|
|
<!-- 添加观影人 -->
|
|
|
<increaseViewers ref="increaseViewers" @clearDialogVisible="clearDialogVisible" />
|
|
|
|
|
@@ -227,12 +230,15 @@
|
|
|
import moment from "moment"
|
|
|
import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
|
import selectListMixin from "./mixins/selectList"
|
|
|
-import LockSeat from './model/lockSeat.vue'
|
|
|
+ import LockSeat from './model/lockSeat.vue'
|
|
|
+ import batchLock from './model/batchLock.vue'
|
|
|
+ import { mapGetters } from 'vuex'
|
|
|
export default {
|
|
|
name: "TicketingSales",
|
|
|
components: {
|
|
|
increaseViewers,
|
|
|
- LockSeat
|
|
|
+ LockSeat,
|
|
|
+ batchLock
|
|
|
},
|
|
|
mixins: [selectListMixin],
|
|
|
dicts: ['channel_type'],
|
|
@@ -310,6 +316,11 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
mounted() {
|
|
|
this.$set(this.queryParams,'performDate',moment().format("yyyy-MM-DD"))
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ ...mapGetters([
|
|
|
+ 'isBuylock',
|
|
|
+ ]),
|
|
|
+ },
|
|
|
methods: {
|
|
|
moment,
|
|
|
|
|
@@ -370,13 +381,24 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
param.status = 1;
|
|
|
let res = await merchantPerformTimeListNew(param)
|
|
|
if(res.code == 200){
|
|
|
- console.log('merchantPerformTimeListS',res.data.rows);
|
|
|
+ // console.log('merchantPerformTimeListS',res.data.rows);
|
|
|
this.merchantPerformTimeListS = res.data.list
|
|
|
}
|
|
|
} catch (error) {
|
|
|
|
|
|
}
|
|
|
},
|
|
|
+ // 批量锁定
|
|
|
+ batchLockFun(){
|
|
|
+ let listS = this.seatSelectListNo.length > 0 ? this.seatSelectListNo : this.seatSelectList
|
|
|
+ if (listS.length <= 0) {
|
|
|
+ this.$message.info(`请选择需要锁定的座位!!!`);
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.seatSelectListNo.length == 0) {
|
|
|
+ this.$refs.batchLockSeat.openDialog(this.seatSelectListNo, this.seatSelectList, this.queryParams.auditoriumId, this.queryParams.timeId)
|
|
|
+ }
|
|
|
+ },
|
|
|
/** 座位锁定/解锁 */
|
|
|
async lockOrUnLockFun(type){
|
|
|
try {
|
|
@@ -495,12 +517,12 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
return a.sort - b.sort
|
|
|
})
|
|
|
this.seatMapListKey = seatMapListKey
|
|
|
- console.log("seatMapListKey=====",seatMapListKey)
|
|
|
+ // console.log("seatMapListKey=====",seatMapListKey)
|
|
|
this.width = 70*(flog + 1)
|
|
|
this.$nextTick(()=>{
|
|
|
if(this.$refs.seatbox) {
|
|
|
var ele = this.$refs.seatbox
|
|
|
- console.log(ele.getBoundingClientRect().width); // 100
|
|
|
+ // console.log(ele.getBoundingClientRect().width); // 100
|
|
|
if(this.width<ele.getBoundingClientRect().width) {
|
|
|
this.justifyContent = true
|
|
|
}else {
|
|
@@ -511,7 +533,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- console.log("list====",listCopy)
|
|
|
+ // console.log("list====",listCopy)
|
|
|
|
|
|
let columnList = []
|
|
|
listCopy[seatMapListKey[0].key].forEach((item,index)=>{
|
|
@@ -544,7 +566,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
},
|
|
|
/** 选择场次时间 */
|
|
|
changeTime(value,type){
|
|
|
- console.log("fsdfsdf----",value,type)
|
|
|
+ // console.log("fsdfsdf----",value,type)
|
|
|
if(type == 'timeId') {
|
|
|
this.$set(this.queryParams,'goodsId','')
|
|
|
this.stockType = null
|
|
@@ -572,9 +594,8 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
},
|
|
|
/** 选择场次时间 */
|
|
|
async changeTimeCheck(value,type){
|
|
|
- console.log("fsdfsdf")
|
|
|
if(this.queryParams && this.queryParams.timeId && type != 'timeId' && type != 'goodsId') {
|
|
|
- console.log('sdfsdfsdf',this.queryParams)
|
|
|
+ // console.log('sdfsdfsdf',this.queryParams)
|
|
|
this.$set(this.queryParams,'timeId','')
|
|
|
this.$set(this.queryParams,'goodsId','')
|
|
|
this.merchantPerformTimeListS = []
|
|
@@ -587,7 +608,6 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
if(type == 'goodsId'){
|
|
|
//this.$refs.queryForm.clearValidate("goodsId")
|
|
|
if(value) {
|
|
|
- console.log("dsfsdfdsfds===",value)
|
|
|
await this.getGoodsPerformFun(value);
|
|
|
|
|
|
this.handleQuery()
|
|
@@ -609,7 +629,6 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
},
|
|
|
/** 设置 场次 对应得剧目ID */
|
|
|
changePerformId(value){
|
|
|
- console.log("value=====",value)
|
|
|
this.performId = ''
|
|
|
this.merchantPerformTimeListS.forEach((item,index)=>{
|
|
|
if(item.id == value){
|
|
@@ -619,7 +638,6 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
},
|
|
|
/** 设置 票务 对应价格 */
|
|
|
changeSalePrice(value){
|
|
|
- console.log("value=====",value)
|
|
|
this.salePrice = null
|
|
|
this.goodsPageListS.forEach((item,index)=>{
|
|
|
if(item.goodsId == value){
|
|
@@ -670,12 +688,11 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
this.$message.error('你已选择锁定座位,只能再选择被锁定的座位!!!');
|
|
|
return
|
|
|
}
|
|
|
- if(this.seatSelectList.length > 0 && row.occupyStatus == 0){
|
|
|
+ if(this.seatSelectList.length > 0 && row.occupyStatus == 0 && this.isBuylock === 0){
|
|
|
this.$message.error('此座已被锁定,请先解锁!!!');
|
|
|
return
|
|
|
}
|
|
|
if(row.occupyStatus == 0){
|
|
|
- // console.log("weqwrwerewrer")
|
|
|
// this.$confirm('此座已被锁定,请先解锁', '提示', {
|
|
|
// confirmButtonText: '确定',
|
|
|
// cancelButtonText: '取消',
|
|
@@ -696,6 +713,19 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+ // 配置该用户 可以购买锁定票
|
|
|
+ if(this.isBuylock === 1) {
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
}else if(row.isDisabled || row.status == 2){
|
|
|
return false
|
|
|
}else {
|
|
@@ -868,7 +898,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
left: (e.x + 10)+ 'px',
|
|
|
zIndex: 999999
|
|
|
}
|
|
|
- console.log('dsfdsff====',this.lockObj,this.lockStyle)
|
|
|
+ // console.log('dsfdsff====',this.lockObj,this.lockStyle)
|
|
|
return
|
|
|
}else {
|
|
|
this.isLcokShow = false
|