Commit 29c2eabf authored by 黄奎's avatar 黄奎

门票修改

parent 03b43a07
<template> <template>
<div> <div>
<div class="query-box" style="border-bottom: none;"> <div class="query-box" style="border-bottom: none;">
<ul> <ul>
<!--<li><span><em>线路</em> <li><span><em>系列</em>
<el-select v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList(msg.LineId)"> <el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option label="不限" value='-1'></el-option> <el-option label="不限" value='-1'></el-option>
<el-option <el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
v-for="item in LineList" </el-option>
:label='item.LineName' </el-select>
:value='item.LineID' </span>
:key='item.LineID'> </li>
</el-option> <li>
</el-select> <span>
</span> <em>团号</em>
</li>--> <el-input v-model='msg.TCNUM'></el-input>
<li><span><em>系列</em> </span>
<el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')"> </li>
<el-option label="不限" value='-1'></el-option> <li><span><em>日期</em>
<el-option <el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
v-for="item in LineTeamList" -
:label='item.LtName' <el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
:value='item.LtID' </span>
:key='item.LtID'> </li>
</el-option> <li>
</el-select> <input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" />
</span> </li>
</li> </ul>
<li> </div>
<span> <div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<em>团号</em><el-input v-model='msg.TCNUM' ></el-input> <table border="0" cellspacing="1" cellpadding="0" class="admissionStatisticsTalbe" v-loading='loading'>
</span> <tr>
</li> <th width="50">序号</th>
<li><span><em>日期</em><el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker> <th width="80">出发地</th>
- <th width="80">航班时间</th>
<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker> <th width="80">公司团号</th>
</span> <th width="120">机位总数/(Y/E/F)</th>
</li> <th v-for='item in thLengthTitle'>{{item}}</th>
<li> <th>备注</th>
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()"/> <th class="w80">操作</th>
</li> </tr>
</ul> <tbody v-for="(outItem,outindex) in list" :class="{admissionStatisticsSplitTrCss:outindex%2!=0}">
</div> <template v-for="(item,index) in outItem.StaticsReportList">
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle"> <tr>
<table border="0" cellspacing="1" cellpadding="0" class="admissionStatisticsTalbe" v-loading='loading'> <td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<tr> <div style="max-width: 100px; min-width: 50px; ">{{outindex+1}}</div>
<th width="50">序号</th> <div v-if='outItem.StaticsReportList.length>0' class="w100">合团号:{{outItem.NewCombinationNum}}</div>
<th width="80">出发地</th> </td>
<th width="80">航班时间</th> <td>
<th width="80">公司团号</th> <div class="w80">
<th width="120">机位总数/(Y/E/F)</th> {{item.StartCityNames}}
<th v-for='item in thLengthTitle'>{{item}}</th> </div>
<th>备注</th> </td>
<th class="w80">操作</th> <td>
</tr> <div class="w80">
<tbody v-for="(outItem,outindex) in list" :class="{admissionStatisticsSplitTrCss:outindex%2!=0}" > {{item.FlightDate}}
<template v-for="(item,index) in outItem.StaticsReportList"> <el-popover popper-class="admissionStatistics_tripDetails" width="550" trigger="click">
<tr> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'> <tr class="_color_666" style="text-align:center;">
<div style="max-width: 100px; min-width: 50px; ">{{outindex+1}}</div> <th width="60">{{$t('Airticket.Air_segment')}}</th>
<div v-if='outItem.StaticsReportList.length>1' class="w100">合团号:{{outItem.NewCombinationNum}}</div> <th width="80">{{$t('system.query_flightNum')}}</th>
</td> <th width="150">起飞时间</th>
<td><div class="w80"> <th width="150">到达时间</th>
{{item.StartCityNames}} <th width="100">经停城市</th>
</div></td> </tr>
<td><div class="w80"> <tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
{{item.FlightDate}} <td class="_d_name _color_666">
<el-popover popper-class="admissionStatistics_tripDetails" width="550" trigger="click"> <span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<tr class="_color_666" style="text-align:center;"> <span
<th width="60">{{$t('Airticket.Air_segment')}}</th> v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
<th width="80">{{$t('system.query_flightNum')}}</th> </td>
<th width="150">起飞时间</th> <td>
<th width="150">到达时间</th> <div>{{ds.Flight_number}}</div>
<th width="100">经停城市</th> <div style="margin-top:5px;">{{ds.AlName}}</div>
</tr> </td>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;"> <td>
<td class="_d_name _color_666"> <div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span> <div style="margin-top:5px;">{{ds.dName}}</div>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span> </td>
<span v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span> <td>
</td> <div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<td> <div style="margin-top:5px;">{{ds.aName}}</div>
<div>{{ds.Flight_number}}</div> </td>
<div style="margin-top:5px;">{{ds.AlName}}</div> <td>{{ds.StopoverName}}</td>
</td> </tr>
<td> </table>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div> <el-button slot="reference" class="normalBtn mt5"
<div style="margin-top:5px;">{{ds.dName}}</div> style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</td> </el-popover>
<td> </div>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div> </td>
<div style="margin-top:5px;">{{ds.aName}}</div> <td>
</td> <div class="w120 link">
<td>{{ds.StopoverName}}</td> <p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</tr> </div>
</table> </td>
<el-button slot="reference" class="normalBtn mt5" style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button> <td>
</el-popover> <div class="w120 link">
</div></td> <p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
<td><div class="w120 link"> {{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p> </p>
</div></td> </div>
<td><div class="w120 link"> </td>
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}</p> <td v-for="x in item.CommonReport.ScenicList" style="vertical-align: top;">
</div></td> <div style="width: 100%;">
<td v-for="x in item.CommonReport.ScenicList" style="vertical-align: top;"> <p class="pDateStyle" v-if="x.UseTimeStr">{{x.UseTimeStr}}</p>
<div style="width: 100%;"> <p @click="goUrlR('scenicSpotList',s.ID,'景区列表')" class="pMsgStyle phoverStype"
<p class="pDateStyle" v-if="x.UseTimeStr">{{x.UseTimeStr}}</p> v-for="s in x.ScenicStatisticsList">{{s.ScenicName}}</p>
<p @click="goUrlR('scenicSpotList',s.ID,'景区列表')" class="pMsgStyle phoverStype" v-for="s in x.ScenicStatisticsList">{{s.ScenicName}}</p> </div>
</div> </td>
</td> <td>
<td> <div class="w200">
<div class="w200"> {{item.Remarks}}
{{item.Remarks}} </div>
</div> </td>
</td> <td>
<td> <div class="link">
<div class="link"> <div class="w80">
<div class="w80"> <p @click="goUrl('admissionStatisticsDetails',item,'门票详情')">详情</p>
<p @click="goUrl('admissionStatisticsDetails',item,'门票详情')">详情</p> </div>
</div> </div>
</div> </td>
</td> </tr>
</tr> <tr>
<tr> <td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;"> <div class="link">
<div class="link"> <p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p> <div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div> 地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div> </div>
</td> </td>
</tr> </tr>
</template> </template>
</tbody> </tbody>
</table> </table>
</div> </div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total></el-pagination> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
</div> layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total></el-pagination>
</div>
</template> </template>
<script> <script>
export default { export default {
data () { data() {
return { return {
loading:false, loading: false,
currentPage:1, currentPage: 1,
total:0, total: 0,
msg:{ msg: {
pageIndex:1, pageIndex: 1,
pageSize:5, pageSize: 5,
SelectType:3, SelectType: 3,
LineId: 14, LineId: 14,
LineteamId: "-1", LineteamId: "-1",
StartDate:'', StartDate: '',
EndDate:'' EndDate: ''
},
LineList: [],
LineTeamList: [],
thLengthTitle:[],
list:[],
colspanTotal:0,
}
},
methods: {
stringToArr(str){
return str.split(',')
},
getLineList() {
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
} else {
this.$message.error(res.data.message);
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.LineTeamList = [];
this.apipost(
"team_post_GetList",
{
lineID: 14,
isTOOP: 1
}, },
res => { LineList: [],
LineTeamList: [],
thLengthTitle: [],
list: [],
colspanTotal: 0,
}
},
methods: {
stringToArr(str) {
return str.split(',')
},
getLineList() {
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.msg.LineteamId = "-1"; this.LineList = res.data.data;
this.LineTeamList = res.data.data; } else {
this.$message.error(res.data.message);
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.LineTeamList = [];
this.apipost(
"team_post_GetList", {
lineID: 14,
isTOOP: 1
},
res => {
if (res.data.resultCode == 1) {
this.msg.LineteamId = "-1";
this.LineTeamList = res.data.data;
}
}
);
},
goUrlR(path, obj, title) {
this.$router.push({
name: path,
query: {
"ID": obj,
blank: 'y',
tab: title
}
})
},
goUrlT(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj,
blank: 'y',
tab: title
}
})
},
goUrl(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj.TCIDS,
'TCNUM': obj.TCNUMS,
'flightTotal': obj.TotalSeat,
'GuestNum': obj.CommonReport.HouseStatistics.RealityNum,
'NewCombinationNum': obj.NewCombinationNum,
blank: 'y',
tab: title
} }
} })
); },
}, handleCurrentChange(val) {
goUrlR(path,obj,title){ this.msg.pageIndex = val;
this.$router.push({ name:path,query:{"ID":obj,blank:'y',tab:title}}) this.getList();
}, },
goUrlT(path,obj,title){ resetPageIndex() {
this.$router.push({ name:path,query:{"id":obj,blank:'y',tab:title}}) this.msg.pageIndex = 1;
}, this.currentPage = 1;
goUrl(path,obj,title){ },
console.log(obj) getList() {
// return this.loading = true
this.$router.push({ name:path,query:{"id":obj.TCIDS,'TCNUM':obj.TCNUMS,'flightTotal':obj.TotalSeat,'GuestNum':obj.CommonReport.HouseStatistics.RealityNum,'NewCombinationNum':obj.NewCombinationNum,blank:'y',tab:title}}) this.apipost('dmcstatistics_post_GetUniteCombinationNumService', this.msg, res => {
}, this.loading = false
handleCurrentChange(val) { if (res.data.resultCode == 1) {
this.msg.pageIndex = val; this.total = res.data.data.count
this.getList(); this.list = res.data.data.pageData.data;
}, this.thLengthTitle = []
resetPageIndex() { this.colspanTotal = res.data.data.pageData.columnsCount + 6
this.msg.pageIndex = 1; for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.currentPage = 1; this.thLengthTitle.push('第' + i + '天')
}, }
getList(){ this.list.forEach(outItem => {
this.loading=true outItem.StaticsReportList.forEach(item => {
this.apipost('dmcstatistics_post_GetUniteCombinationNumService',this.msg,res=>{ if (item.CommonReport.ScenicList.length < res.data.data.pageData.columnsCount) {
if(res.data.resultCode==1){ let _cha = res.data.data.pageData.columnsCount - item.CommonReport.ScenicList.length
this.loading=false let _chaArr = new Array()
this.total=res.data.data.count for (let i = 0; i < _cha; i++) {
this.list=res.data.data.pageData.data _chaArr.push({
this.thLengthTitle=[] 'HotelName': ''
this.colspanTotal=res.data.data.pageData.columnsCount+6 })
for(let i=1;i<=res.data.data.pageData.columnsCount;i++){ }
this.thLengthTitle.push('第'+i+'天') item.CommonReport.ScenicList = item.CommonReport.ScenicList.concat(_chaArr)
} }
// this.list.forEach(item=>{ })
// console.log(item) })
// if(item.CommonReport.ScenicList.length<res.data.data.pageData.columnsCount){ } else {
// let _cha=res.data.data.pageData.columnsCount-item.CommonReport.ScenicList.length this.$message.error(res.data.message)
// let _chaArr=new Array() }
// for (let i=0;i<_cha;i++) { }, err => {})
// _chaArr.push({'HotelName':''}) },
// }
// item.CommonReport.ScenicList=item.CommonReport.ScenicList.concat(_chaArr)
// }else{
//
// }
// })
//
this.list.forEach(outItem=>{
outItem.StaticsReportList.forEach(item=>{
if(item.CommonReport.ScenicList.length<res.data.data.pageData.columnsCount){
let _cha=res.data.data.pageData.columnsCount-item.CommonReport.ScenicList.length
let _chaArr=new Array()
for (let i=0;i<_cha;i++) {
_chaArr.push({'HotelName':''})
}
item.CommonReport.ScenicList=item.CommonReport.ScenicList.concat(_chaArr)
}else{
}
})
})
}else{
this.loading=false
this.$message.error(res.data.message)
}
},err=>{})
},
}, },
mounted() { mounted() {
let myDate = new Date(); let myDate = new Date();
let nowDate = let nowDate =
myDate.getFullYear() + myDate.getFullYear() +
"-" + "-" +
parseInt(myDate.getMonth() + 1) + parseInt(myDate.getMonth() + 1) +
"-" + "-" +
myDate.getDate(); myDate.getDate();
this.msg.StartDate = nowDate; this.msg.StartDate = nowDate;
this.getList() this.getList()
}, },
} }
</script> </script>
<style> <style>
.admissionStatisticsSplitTrCss td{background: #eee!important;} .admissionStatisticsSplitTrCss td {
.admissionStatisticsTalbe{ background: #ccc;} background: #eee !important;
.admissionStatisticsTalbe tr th{background: #E6E6E6;height:40px; font-size: 12px; color: #333;} }
.admissionStatisticsTalbe tr{background: #fff;text-align: center; height: 40px;}
.admissionStatisticsTalbe tr td{font-size: 12px;} .admissionStatisticsTalbe {
.admissionStatisticsTalbe tr td .pHouseStyle{border-bottom: 1px solid #ccc; height: 20px; line-height: 20px;} background: #ccc;
.admissionStatisticsTalbe tr td .pHouseStyle:last-child{border-bottom: none;} }
.admissionStatisticsTalbe tr td .pDateStyle{border-bottom: 1px solid #ccc; height: 20px; line-height: 20px; margin-top: 0;}
.admissionStatisticsTalbe tr td .pMsgStyle{padding: 0 10px; line-height: 20px;} .admissionStatisticsTalbe tr th {
.admissionStatisticsTalbe tr td .link p:hover{text-decoration: underline; cursor: pointer;} background: #E6E6E6;
.admissionStatisticsTalbe tr td .phoverStype:hover{text-decoration: underline; cursor: pointer;} height: 40px;
.admissionStatistics_tripDetails {padding: 0; box-shadow: 0px 1px 3px 0px #dedede; max-height: 400px;overflow-y: auto;} font-size: 12px;
.admissionStatistics_tripDetails .popper__arrow::after {border-bottom-color: #ededed !important;} color: #333;
.admissionStatistics_tripDetails table { padding: 10px 0 0 20px; background-color: #ededed; border-collapse: collapse; border: 1px solid #d2d2d2; font-size: 12px;} }
.admissionStatistics_tripDetails table th { background-color: #ededed; padding: 5px;}
.admissionStatistics_tripDetails table td { background-color: #ffffff; padding: 9px 15px;color: #333333;border: 1px solid #d2d2d2;} .admissionStatisticsTalbe tr {
.admissionStatistics_tripDetails table td._d_name {background-color: #ededed;} background: #fff;
.admissionStatistics_tripDetails table ._color_666 {color: #666666;} text-align: center;
.admissionStatistics_tripDetails table tr._color_666 th { padding: 9px 15px;} height: 40px;
}
.admissionStatisticsTalbe tr td {
font-size: 12px;
}
.admissionStatisticsTalbe tr td .pHouseStyle {
border-bottom: 1px solid #ccc;
height: 20px;
line-height: 20px;
}
.admissionStatisticsTalbe tr td .pHouseStyle:last-child {
border-bottom: none;
}
.admissionStatisticsTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
height: 20px;
line-height: 20px;
margin-top: 0;
}
.admissionStatisticsTalbe tr td .pMsgStyle {
padding: 0 10px;
line-height: 20px;
}
.admissionStatisticsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.admissionStatisticsTalbe tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.admissionStatistics_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
max-height: 400px;
overflow-y: auto;
}
.admissionStatistics_tripDetails .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.admissionStatistics_tripDetails table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.admissionStatistics_tripDetails table th {
background-color: #ededed;
padding: 5px;
}
.admissionStatistics_tripDetails table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.admissionStatistics_tripDetails table td._d_name {
background-color: #ededed;
}
.admissionStatistics_tripDetails table ._color_666 {
color: #666666;
}
.admissionStatistics_tripDetails table tr._color_666 th {
padding: 9px 15px;
}
</style> </style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment