|
@@ -48,20 +48,20 @@
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="票务类型" prop="goodsId">
|
|
|
|
|
|
+ <el-form-item label="票种" prop="goodsId">
|
|
<el-select
|
|
<el-select
|
|
v-model="queryParams.goodsId"
|
|
v-model="queryParams.goodsId"
|
|
- placeholder="票务类型"
|
|
|
|
|
|
+ placeholder="请选择票种"
|
|
clearable
|
|
clearable
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
@change="changeTime($event,'goodsId')"
|
|
@change="changeTime($event,'goodsId')"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
v-for="dict in goodsPageListS"
|
|
v-for="dict in goodsPageListS"
|
|
- :key="dict.id"
|
|
|
|
|
|
+ :key="dict.goodsId"
|
|
:label="dict.goodsName"
|
|
:label="dict.goodsName"
|
|
- :value="dict.id"
|
|
|
|
- :disabled="dict.status==1 || dict.goodsPerform.channelWindow != 0"
|
|
|
|
|
|
+ :value="dict.goodsId"
|
|
|
|
+ :disabled="dict.status==1"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -126,8 +126,7 @@
|
|
<div
|
|
<div
|
|
:class="[
|
|
:class="[
|
|
'seat-item-class',
|
|
'seat-item-class',
|
|
- item1.key == 'my_column'?'seat-item-class-column':
|
|
|
|
- item.occupyStatus==0?item.occupyOrderId?'order-occupy-status':item.occupyStatus==0&&item.isSelect?'occupy-status-select occupy-status':'occupy-status': item.occupyStatus==1?'occupy-status-no':item.isDisabled || item.status != 1 ? 'disabled-class' : item.isSelect ? 'select-class' : ''
|
|
|
|
|
|
+ showSearStyle(item1,item)
|
|
]"
|
|
]"
|
|
v-for="(item, index) in seatMapList[item1.key]"
|
|
v-for="(item, index) in seatMapList[item1.key]"
|
|
:style="{backgroundColor: item.color && !(item.isDisabled || item.status != 1) ? item.color : 'none'}"
|
|
:style="{backgroundColor: item.color && !(item.isDisabled || item.status != 1) ? item.color : 'none'}"
|
|
@@ -215,13 +214,14 @@
|
|
import {
|
|
import {
|
|
querySeatList,
|
|
querySeatList,
|
|
merchantPerformTimeList,
|
|
merchantPerformTimeList,
|
|
|
|
+ merchantPerformTimeListNew,
|
|
lockOrUnLock,
|
|
lockOrUnLock,
|
|
merchantTheatreAuditoriumList,
|
|
merchantTheatreAuditoriumList,
|
|
goodsPageList,
|
|
goodsPageList,
|
|
getGoodsPerformApi,
|
|
getGoodsPerformApi,
|
|
- lockOrUnLockApi
|
|
|
|
|
|
+ lockOrUnLockApi,
|
|
|
|
+ querySeatListNew
|
|
} from '@/api/windowTicketSales/ticketingSales'
|
|
} from '@/api/windowTicketSales/ticketingSales'
|
|
- //import increaseViewers from "./model/increaseViewers"
|
|
|
|
import increaseViewers from "./model/increaseViewers"
|
|
import increaseViewers from "./model/increaseViewers"
|
|
import moment from "moment"
|
|
import moment from "moment"
|
|
import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
@@ -234,6 +234,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
LockSeat
|
|
LockSeat
|
|
},
|
|
},
|
|
mixins: [selectListMixin],
|
|
mixins: [selectListMixin],
|
|
|
|
+ dicts: ['channel_type'],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
// 遮罩层
|
|
// 遮罩层
|
|
@@ -256,7 +257,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
{ required: true, message: '请选择场次', trigger: ['blur','change'] }
|
|
{ required: true, message: '请选择场次', trigger: ['blur','change'] }
|
|
],
|
|
],
|
|
goodsId: [
|
|
goodsId: [
|
|
- { required: true, message: '请选择票务类型', trigger: ['blur','change'] }
|
|
|
|
|
|
+ { required: true, message: '请选择票种', trigger: ['blur','change'] }
|
|
],
|
|
],
|
|
},
|
|
},
|
|
merchantTheatreAuditoriumListS: [], // 演出厅
|
|
merchantTheatreAuditoriumListS: [], // 演出厅
|
|
@@ -295,7 +296,8 @@ import LockSeat from './model/lockSeat.vue'
|
|
lockObj: {
|
|
lockObj: {
|
|
auth: '',
|
|
auth: '',
|
|
remark: ''
|
|
remark: ''
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ salePrice: null,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
@@ -308,6 +310,16 @@ import LockSeat from './model/lockSeat.vue'
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
moment,
|
|
moment,
|
|
|
|
+
|
|
|
|
+ setChanneltype(key){
|
|
|
|
+ let srt = ''
|
|
|
|
+ this.dict.type.channel_type.forEach((item,index)=>{
|
|
|
|
+ if(key == item.value) {
|
|
|
|
+ srt = item.label
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return srt
|
|
|
|
+ },
|
|
/** 票务信息 */
|
|
/** 票务信息 */
|
|
async goodsPageListFun(){
|
|
async goodsPageListFun(){
|
|
try {
|
|
try {
|
|
@@ -352,12 +364,12 @@ import LockSeat from './model/lockSeat.vue'
|
|
/** 获取场次 */
|
|
/** 获取场次 */
|
|
async merchantPerformTimeListFun(){
|
|
async merchantPerformTimeListFun(){
|
|
try {
|
|
try {
|
|
- let param = this.queryParams;
|
|
|
|
|
|
+ let param = JSON.parse(JSON.stringify(this.queryParams));
|
|
param.status = 1;
|
|
param.status = 1;
|
|
- let res = await merchantPerformTimeList(param)
|
|
|
|
|
|
+ let res = await merchantPerformTimeListNew(param)
|
|
if(res.code == 200){
|
|
if(res.code == 200){
|
|
console.log('merchantPerformTimeListS',res.data.rows);
|
|
console.log('merchantPerformTimeListS',res.data.rows);
|
|
- this.merchantPerformTimeListS = res.data.rows
|
|
|
|
|
|
+ this.merchantPerformTimeListS = res.data.list
|
|
}
|
|
}
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
|
|
|
@@ -422,7 +434,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
}
|
|
}
|
|
this.seatMapList = {}
|
|
this.seatMapList = {}
|
|
this.seatList = []
|
|
this.seatList = []
|
|
- let res = await querySeatList({
|
|
|
|
|
|
+ let res = await querySeatListNew({
|
|
...this.queryParams
|
|
...this.queryParams
|
|
})
|
|
})
|
|
if(res.code == 200){
|
|
if(res.code == 200){
|
|
@@ -537,24 +549,14 @@ import LockSeat from './model/lockSeat.vue'
|
|
let list2 = []
|
|
let list2 = []
|
|
this.merchantPerformTimeListS.forEach((item,index)=>{
|
|
this.merchantPerformTimeListS.forEach((item,index)=>{
|
|
if(item.id==value) {
|
|
if(item.id==value) {
|
|
- let list = item.goodsIds ? item.goodsIds.split(','): []
|
|
|
|
- list.forEach((item,index)=>{
|
|
|
|
- this.goodsPageListSAll.forEach((item1,index1)=>{
|
|
|
|
- if(item1.id == item) {
|
|
|
|
- flog = true
|
|
|
|
- list2.push({
|
|
|
|
- ...item1
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
|
|
+ flog = true
|
|
|
|
+ list2 = item.goodsList
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- if(flog) {
|
|
|
|
- this.goodsPageListS = JSON.parse(JSON.stringify(list2))
|
|
|
|
- }else {
|
|
|
|
- this.goodsPageListS = JSON.parse(JSON.stringify(this.goodsPageListSAll))
|
|
|
|
- }
|
|
|
|
|
|
+ this.goodsPageListS = []
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
+ this.goodsPageListS = list2
|
|
|
|
+ },500)
|
|
|
|
|
|
}else {
|
|
}else {
|
|
this.goodsPageListS = []
|
|
this.goodsPageListS = []
|
|
@@ -564,7 +566,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
|
|
|
},
|
|
},
|
|
/** 选择场次时间 */
|
|
/** 选择场次时间 */
|
|
- changeTimeCheck(value,type){
|
|
|
|
|
|
+ async changeTimeCheck(value,type){
|
|
console.log("fsdfsdf")
|
|
console.log("fsdfsdf")
|
|
if(this.queryParams && this.queryParams.timeId && type != 'timeId' && type != 'goodsId') {
|
|
if(this.queryParams && this.queryParams.timeId && type != 'timeId' && type != 'goodsId') {
|
|
console.log('sdfsdfsdf',this.queryParams)
|
|
console.log('sdfsdfsdf',this.queryParams)
|
|
@@ -573,13 +575,17 @@ import LockSeat from './model/lockSeat.vue'
|
|
this.merchantPerformTimeListS = []
|
|
this.merchantPerformTimeListS = []
|
|
this.goodsPageListS = []
|
|
this.goodsPageListS = []
|
|
}
|
|
}
|
|
- if(this.queryParams.auditoriumId&&this.queryParams.performDate){
|
|
|
|
|
|
+ if(this.queryParams.auditoriumId&&this.queryParams.performDate && type != 'timeId' && type != 'goodsId'){
|
|
// 获取场次
|
|
// 获取场次
|
|
this.merchantPerformTimeListFun()
|
|
this.merchantPerformTimeListFun()
|
|
}
|
|
}
|
|
if(type == 'goodsId'){
|
|
if(type == 'goodsId'){
|
|
|
|
+ //this.$refs.queryForm.clearValidate("goodsId")
|
|
if(value) {
|
|
if(value) {
|
|
- this.getGoodsPerformFun(value)
|
|
|
|
|
|
+ console.log("dsfsdfdsfds===",value)
|
|
|
|
+ await this.getGoodsPerformFun(value);
|
|
|
|
+
|
|
|
|
+ this.handleQuery()
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
this.ifRealUser = 0 // 散客是否实名:0-否 1-是
|
|
this.ifRealUser = 0 // 散客是否实名:0-否 1-是
|
|
@@ -593,7 +599,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
this.seatSelectListNo = []
|
|
this.seatSelectListNo = []
|
|
this.seatMapList = {}
|
|
this.seatMapList = {}
|
|
this.seatList = []
|
|
this.seatList = []
|
|
- this.handleQuery()
|
|
|
|
|
|
+ // this.handleQuery()
|
|
|
|
|
|
},
|
|
},
|
|
/** 设置 场次 对应得剧目ID */
|
|
/** 设置 场次 对应得剧目ID */
|
|
@@ -606,13 +612,23 @@ import LockSeat from './model/lockSeat.vue'
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ /** 设置 票务 对应价格 */
|
|
|
|
+ changeSalePrice(value){
|
|
|
|
+ console.log("value=====",value)
|
|
|
|
+ this.salePrice = null
|
|
|
|
+ this.goodsPageListS.forEach((item,index)=>{
|
|
|
|
+ if(item.goodsId == value){
|
|
|
|
+ this.salePrice = item.salePrice
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
/** 搜索按钮操作 */
|
|
/** 搜索按钮操作 */
|
|
handleQuery() {
|
|
handleQuery() {
|
|
this.$refs.queryForm.validate((valid) => {
|
|
this.$refs.queryForm.validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
this.querySeatListFun(true);
|
|
this.querySeatListFun(true);
|
|
} else {
|
|
} else {
|
|
- console.log('error submit!!');
|
|
|
|
|
|
+ console.log('error submit!!',valid);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -632,10 +648,14 @@ import LockSeat from './model/lockSeat.vue'
|
|
|
|
|
|
// 座位点击事件
|
|
// 座位点击事件
|
|
seatClick(row) {
|
|
seatClick(row) {
|
|
- console.log("是的发给我大是个的风格====",row)
|
|
|
|
if(row.isDisabled || row.status == 2){
|
|
if(row.isDisabled || row.status == 2){
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
|
|
+ if(row.channelType && row.channelType != 'window'){
|
|
|
|
+ this.$message.error(`该座位仅限${ this.setChanneltype(row.channelType) }渠道购买!!!`);
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+
|
|
if(this.seatSelectListNo.length>0 && row.occupyStatus != 0) {
|
|
if(this.seatSelectListNo.length>0 && row.occupyStatus != 0) {
|
|
this.$message.error('你已选择锁定座位,只能再选择被锁定的座位!!!');
|
|
this.$message.error('你已选择锁定座位,只能再选择被锁定的座位!!!');
|
|
return
|
|
return
|
|
@@ -740,6 +760,7 @@ import LockSeat from './model/lockSeat.vue'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.changePerformId(this.queryParams.timeId)
|
|
this.changePerformId(this.queryParams.timeId)
|
|
|
|
+ this.changeSalePrice(this.queryParams.goodsId)
|
|
this.$refs.increaseViewers.initData(this.seatSelectList,{
|
|
this.$refs.increaseViewers.initData(this.seatSelectList,{
|
|
...this.queryParams,
|
|
...this.queryParams,
|
|
performId:this.performId,
|
|
performId:this.performId,
|
|
@@ -747,6 +768,9 @@ import LockSeat from './model/lockSeat.vue'
|
|
ifRealTeam: this.ifRealTeam, // 团购是否实名:0否 1-是
|
|
ifRealTeam: this.ifRealTeam, // 团购是否实名:0否 1-是
|
|
oneMany: this.oneMany, // 证件要求: 1一证一票,2一证多票
|
|
oneMany: this.oneMany, // 证件要求: 1一证一票,2一证多票
|
|
personnelNum: this.personnelNum, // 人员要求:0-表示不限制 其他数字表示限制人数
|
|
personnelNum: this.personnelNum, // 人员要求:0-表示不限制 其他数字表示限制人数
|
|
|
|
+ seatTypeId: this.seatSelectList[0].seatTypeId,
|
|
|
|
+ seatTypeName: this.seatSelectList[0].seatTypeId,
|
|
|
|
+ salePrice: this.salePrice
|
|
})
|
|
})
|
|
}else {
|
|
}else {
|
|
this.$alert('请先选择座位!!!', '提示', {
|
|
this.$alert('请先选择座位!!!', '提示', {
|
|
@@ -857,6 +881,28 @@ import LockSeat from './model/lockSeat.vue'
|
|
lockOrUnLockDeatilFun1() {
|
|
lockOrUnLockDeatilFun1() {
|
|
this.isLcokShow = false
|
|
this.isLcokShow = false
|
|
this.seatId = null
|
|
this.seatId = null
|
|
|
|
+ },
|
|
|
|
+ /**
|
|
|
|
+ * 座位得样式
|
|
|
|
+ *
|
|
|
|
+ * occupyStatus: 为null表示未占用,0-锁定 1-占用
|
|
|
|
+ * status: 状态:0-初始(该状态下不C端显示) 1-可用 2-不可用
|
|
|
|
+ * channelType:
|
|
|
|
+ * */
|
|
|
|
+ showSearStyle(item1,item) {
|
|
|
|
+
|
|
|
|
+ let srt = ''
|
|
|
|
+ srt =
|
|
|
|
+ item1.key == 'my_column'?'seat-item-class-column':
|
|
|
|
+ item.occupyStatus==0?item.occupyOrderId?'order-occupy-status':
|
|
|
|
+ item.occupyStatus==0&&item.isSelect?'occupy-status-select occupy-status':
|
|
|
|
+ 'occupy-status': item.occupyStatus==1?'occupy-status-no':
|
|
|
|
+ item.isDisabled || item.status != 1 ? 'disabled-class' :
|
|
|
|
+ item.isSelect ? 'select-class' : ''
|
|
|
|
+ if(!srt && item.channelType && item.channelType != 'window') {
|
|
|
|
+ return 'seat_channel_type'
|
|
|
|
+ }
|
|
|
|
+ return srt
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -1021,6 +1067,28 @@ import LockSeat from './model/lockSeat.vue'
|
|
transform-origin: 50% 0;
|
|
transform-origin: 50% 0;
|
|
transform: scale(var(--scaleNum));
|
|
transform: scale(var(--scaleNum));
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
|
+
|
|
|
|
+ /** 是否属于windown座位 */
|
|
|
|
+ .seat_channel_type {
|
|
|
|
+ user-select: none;
|
|
|
|
+ }
|
|
|
|
+ .seat_channel_type:after {
|
|
|
|
+ content:"";
|
|
|
|
+ display:block;
|
|
|
|
+ position:absolute;
|
|
|
|
+ top:0;
|
|
|
|
+ left:0;
|
|
|
|
+ width:100%;
|
|
|
|
+ height:100%;
|
|
|
|
+ background-color:rgba(0,0,0,0.3);
|
|
|
|
+ z-index:-1;
|
|
|
|
+ background-image: url('../../assets/jinxuan_1.png');
|
|
|
|
+ background-size: 50% 50%;
|
|
|
|
+ background-position: 50% 50%;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ z-index: 99;
|
|
|
|
+ }
|
|
|
|
+
|
|
.disabled-class{
|
|
.disabled-class{
|
|
background-color: #ffffff;
|
|
background-color: #ffffff;
|
|
border: none !important;
|
|
border: none !important;
|