Commit 46288525 authored by 黄奎's avatar 黄奎

新增机票业绩页面

parent ab534e82
<style>
.PT_teamTable {
width: 100%;
background-color: #fff;
border-collapse: collapse;
}
.PT_teamTable td,
.PT_teamTable th {
border: 1px solid #dcdcdc;
padding: 6px;
height: 30px;
}
.PT_teamTable tr th {
height: 30px;
background-color: #297bef;
border: 1px solid #dcdcdc;
color: #fff;
}
.Tp_table .el-table td {
padding: 0 !important;
}
.Tp_table .el-table th {
padding: 12px 0 !important;
}
.Tp_table .has-gutter th {
background-color: #dcdcdc;
}
.Tp_table .el-table .cell {
line-height: 3 !important;
}
.passgenrDialog{
width:1000px;
}
.PgflightDiv{
font-size: 12px;
color: #666666;
background-color: #e0f4ff;
width: 230px;
height: 175px;
border-radius: 4px;
float:left;
margin-right:10px;
}
.PgflightDiv p:first-child{
padding-left:8px;
color: #387ea5;
background-color: #cbe9fa;
height: 34px;
line-height: 34px;
}
.PgflightDiv ._add_info{
width: 100%;
background-color: #fff;
border-collapse: collapse;
}
.PT_teamTable td,
.PT_teamTable th {
border: 1px solid #dcdcdc;
padding: 6px;
height: 30px;
}
.PT_teamTable tr th {
height: 30px;
background-color: #297bef;
border: 1px solid #dcdcdc;
color: #fff;
}
.Tp_table .el-table td {
padding: 0 !important;
}
.Tp_table .el-table th {
padding: 12px 0 !important;
}
.Tp_table .has-gutter th {
background-color: #dcdcdc;
}
.Tp_table .el-table .cell {
line-height: 3 !important;
}
.passgenrDialog {
width: 1000px;
}
.PgflightDiv {
font-size: 12px;
color: #666666;
background-color: #e0f4ff;
width: 230px;
height: 175px;
border-radius: 4px;
float: left;
margin-right: 10px;
}
.PgflightDiv p:first-child {
padding-left: 8px;
color: #387ea5;
background-color: #cbe9fa;
height: 34px;
line-height: 34px;
}
.PgflightDiv ._add_info {
margin-top: 12px;
padding: 0 12px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pg_table{
width:100%;
}
.pg_table tr{
display: block;
margin:10px 0;
}
.pg_table tr:last-child{
border-top:1px dashed #d1d1d1;
padding-top:10px;
}
.PassengerList .el-input__inner{
height:23px!important;
padding:0 5px;
}
.Pgzhu{
display: inline-block;
width:30px;
height:30px;
background-color: #E95252;
border-radius: 50%;
text-align: center;
line-height: 30px;
color:#fff;
position: absolute;
top:-35px;
left:-20px;
}
.Pglian{
background-color: #47bf8c;
display: inline-block;
width:30px;
height:30px;
border-radius: 50%;
text-align: center;
line-height: 30px;
color:#fff;
}
}
.pg_table {
width: 100%;
}
.pg_table tr {
display: block;
margin: 10px 0;
}
.pg_table tr:last-child {
border-top: 1px dashed #d1d1d1;
padding-top: 10px;
}
.PassengerList .el-input__inner {
height: 23px !important;
padding: 0 5px;
}
.Pgzhu {
display: inline-block;
width: 30px;
height: 30px;
background-color: #E95252;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
position: absolute;
top: -35px;
left: -20px;
}
.Pglian {
background-color: #47bf8c;
display: inline-block;
width: 30px;
height: 30px;
border-radius: 50%;
text-align: center;
line-height: 30px;
color: #fff;
}
</style>
<template>
......@@ -118,17 +135,22 @@
<li>
<input type="button" class="normalBtn" value="导出报表" @click="getFlightInfo(),getCombinTeam()" />
<input type="button" class="normalBtn" v-if="isShowGuoji" value="制作财务单据" @click="makeFinacelDoc()" />
<input type="button" class="normalBtn" value="导出报表" @click="exportExcel()" style="display:none;"/>
<input type="button" class="normalBtn" value="导出报表" @click="exportExcel()" style="display:none;" />
</li>
</ul>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th v-if="isShowGuoji">国际机票 <input type="checkbox" @change="checkAllbox(checkdGuoji,'guoji')" v-model="checkdGuoji"/></th>
<th v-if="isShowGuoji">国内机票 <input type="checkbox" @change="checkAllbox(checkedGuonei,'guonei')" v-model="checkedGuonei"/></th>
<th v-if="isShowGuoji">国际中段 <input type="checkbox" @change="checkAllbox(checkedGJzd,'gjzd')" v-model="checkedGJzd"/></th>
<th v-if="isShowGuoji">税金 <input type="checkbox" @change="checkAllbox(checkedshuijin,'shuijin')" v-model="checkedshuijin"/></th>
<th v-if="isShowGuoji">升舱 <input type="checkbox" @change="checkAllbox(checkedsc,'shengcang')" v-model="checkedsc"/></th>
<th v-if="isShowGuoji">国际机票 <input type="checkbox" @change="checkAllbox(checkdGuoji,'guoji')"
v-model="checkdGuoji" /></th>
<th v-if="isShowGuoji">国内机票 <input type="checkbox" @change="checkAllbox(checkedGuonei,'guonei')"
v-model="checkedGuonei" /></th>
<th v-if="isShowGuoji">国际中段 <input type="checkbox" @change="checkAllbox(checkedGJzd,'gjzd')"
v-model="checkedGJzd" /></th>
<th v-if="isShowGuoji">税金 <input type="checkbox" @change="checkAllbox(checkedshuijin,'shuijin')"
v-model="checkedshuijin" /></th>
<th v-if="isShowGuoji">升舱 <input type="checkbox" @change="checkAllbox(checkedsc,'shengcang')"
v-model="checkedsc" /></th>
<th>旅客姓名</th>
<th>身份证</th>
<th>英文姓</th>
......@@ -142,19 +164,19 @@
</tr>
<tr v-for="(item,index) in QueryMsg.dataList">
<td v-if="isShowGuoji">
<input v-model="item.guoji" type="checkbox"/>
<input v-model="item.guoji" type="checkbox" />
</td>
<td v-if="isShowGuoji">
<input v-model="item.guonei" type="checkbox"/>
<input v-model="item.guonei" type="checkbox" />
</td>
<td v-if="isShowGuoji">
<input v-model="item.gjzd" type="checkbox"/>
<input v-model="item.gjzd" type="checkbox" />
</td>
<td v-if="isShowGuoji">
<input v-model="item.shuijin" type="checkbox"/>
<input v-model="item.shuijin" type="checkbox" />
</td>
<td v-if="isShowGuoji">
<input v-model="item.shengcang" type="checkbox"/>
<input v-model="item.shengcang" type="checkbox" />
</td>
<td>{{item.GuestName}}</td>
<td>{{item.IdCard}}</td>
......@@ -171,8 +193,8 @@
<div class="noData" v-show="QueryMsg.noData">
{{$t('system.content_noData')}}
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage" layout="total,prev, pager, next, jumper"
:page-size='msg.PageSize' :total='msg.total'>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
layout="total,prev, pager, next, jumper" :page-size='msg.PageSize' :total='msg.total'>
</el-pagination>
<el-dialog custom-class='passgenrDialog' title="航班列表" :visible.sync="outerVisible" center>
......@@ -191,17 +213,20 @@
<tr v-for="item in flightList">
<td>{{item.Flight_number}}</td>
<td>
<el-input class="w60" v-model="item.TicketDepartureTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="item.TicketDepartureTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
</td>
<td>
<el-input class="w60" v-model="item.TicketArrivalTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="item.TicketArrivalTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
</td>
<td>{{item.FlightDate}}</td>
<td>{{item.dName}}</td>
<td>{{item.aName}}</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="singeRowTable" style="margin-top:20px;" v-if="combineTeamList.length>0">
<table border="0" cellspacing="0" cellpadding="0" class="singeRowTable" style="margin-top:20px;"
v-if="combineTeamList.length>0">
<tr>
<td colspan="9" style="text-align:left;font-weight:bold;padding-left:5px">联运航班信息</td>
</tr>
......@@ -224,9 +249,11 @@
<td>{{subItem.GoFlightDateStr}}</td>
<td>{{subItem.GoFlight_number}}</td>
<td>
<el-input class="w60" v-model="subItem.GoDepartTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="subItem.GoDepartTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
<td>
<el-input class="w60" v-model="subItem.GoArriveTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="subItem.GoArriveTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
</td>
</td>
<td>{{subItem.GoDepartAirportName}}</td>
......@@ -237,9 +264,11 @@
<td>{{subItem.BackFlightDateStr}}</td>
<td>{{subItem.BackFlight_number}}</td>
<td>
<el-input class="w60" v-model="subItem.BackDepartTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="subItem.BackDepartTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
<td>
<el-input class="w60" v-model="subItem.BackArriveTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')"></el-input>
<el-input class="w60" v-model="subItem.BackArriveTime" onkeyup="value=value.replace(/[^\d^\:]/g,'')">
</el-input>
</td>
</td>
<td>{{subItem.BackDepartAirportName}}</td>
......@@ -281,19 +310,19 @@
outerVisible: false,
flightList: [],
combineTeamList: [],
isShowGuoji:false,
jipiaoObj:{
guojiArr:[],
guoneiArr:[],
gjzdArr:[],
shuijinArr:[],
shengcangArr:[]
isShowGuoji: false,
jipiaoObj: {
guojiArr: [],
guoneiArr: [],
gjzdArr: [],
shuijinArr: [],
shengcangArr: []
},
checkdGuoji:false,
checkedGuonei:false,
checkedGJzd:false,
checkedshuijin:false,
checkedsc:false,
checkdGuoji: false,
checkedGuonei: false,
checkedGJzd: false,
checkedshuijin: false,
checkedsc: false,
};
},
methods: {
......@@ -316,16 +345,15 @@
item.Sex = "女";
}
});
if(this.isShowGuoji){
this.QueryMsg.dataList.forEach(x=>{
x.guoji = false;
x.guonei=false;
x.gjzd = false;
x.shuijin = false;
x.shengcang = false;
})
if (this.isShowGuoji) {
this.QueryMsg.dataList.forEach(x => {
x.guoji = false;
x.guonei = false;
x.gjzd = false;
x.shuijin = false;
x.shengcang = false;
})
}
console.log(this.QueryMsg.dataList);
}
},
err => {}
......@@ -358,18 +386,18 @@
}, err => {});
},
//是否确定
getIsSure(){
getIsSure() {
this.$confirm("是否确认航班信息?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.getCheckInfo();
})
.catch(() => {
this.$message.info("已取消!");
});
})
.catch(() => {
this.$message.info("已取消!");
});
},
//确定
getCheckInfo() {
......@@ -458,30 +486,30 @@
err => {}
);
},
makeFinacelDoc(){
this.jipiaoObj.guojiArr=[];
this.jipiaoObj.guoneiArr=[];
this.jipiaoObj.gjzdArr=[];
this.jipiaoObj.shuijinArr=[];
this.jipiaoObj.shengcangArr=[];
this.QueryMsg.dataList.forEach(x=>{
if(x.guoji){
makeFinacelDoc() {
this.jipiaoObj.guojiArr = [];
this.jipiaoObj.guoneiArr = [];
this.jipiaoObj.gjzdArr = [];
this.jipiaoObj.shuijinArr = [];
this.jipiaoObj.shengcangArr = [];
this.QueryMsg.dataList.forEach(x => {
if (x.guoji) {
this.jipiaoObj.guojiArr.push(x.GuestName);
}
if(x.guonei){
if (x.guonei) {
this.jipiaoObj.guoneiArr.push(x.GuestName);
}
if(x.gjzd){
if (x.gjzd) {
this.jipiaoObj.gjzdArr.push(x.GuestName);
}
if(x.shuijin){
if (x.shuijin) {
this.jipiaoObj.shuijinArr.push(x.GuestName);
}
if(x.shengcang){
if (x.shengcang) {
this.jipiaoObj.shengcangArr.push(x.GuestName);
}
})
sessionStorage.setItem("guoji",JSON.stringify(this.jipiaoObj));
sessionStorage.setItem("guoji", JSON.stringify(this.jipiaoObj));
let orderObj = {
OrderID: 0,
......@@ -489,12 +517,12 @@
Obj: JSON.parse(this.$route.query.Obj),
SourceID: this.$route.query.id,
TCIDList: JSON.parse(this.$route.query.TCIDList),
companyIDList:JSON.parse(this.$route.query.companyIDList),
isFromPassenger:true,
companyIDList: JSON.parse(this.$route.query.companyIDList),
isFromPassenger: true,
}
this.$router.push({
name: 'ChoiceAddFinancialDocuments',
query:{
query: {
"Type": 2,
"path": "",
'blank': 'y',
......@@ -503,14 +531,14 @@
});
},
//设置全选
checkAllbox(x,y){
if(x){
this.QueryMsg.dataList.forEach(x=>{
x[y]=true
checkAllbox(x, y) {
if (x) {
this.QueryMsg.dataList.forEach(x => {
x[y] = true
})
}else{
this.QueryMsg.dataList.forEach(x=>{
x[y]=false
} else {
this.QueryMsg.dataList.forEach(x => {
x[y] = false
})
}
}
......@@ -518,7 +546,7 @@
mounted() {
this.QueryMsg.AirTicketId = this.$route.query.id;
this.msg.AirTicketId = this.$route.query.id;
if(this.$route.query.isFromTk!=undefined){
if (this.$route.query.isFromTk != undefined) {
this.isShowGuoji = this.$route.query.isFromTk;
}
var myDate = new Date();
......@@ -529,8 +557,8 @@
"-" +
myDate.getDate();
this.getTeamInfo();
if(this.isShowGuoji){
this.msg.PageSize=200;
if (this.isShowGuoji) {
this.msg.PageSize = 200;
}
this.getList();
}
......
......@@ -23,25 +23,26 @@
<li>
<span>
<em>月份</em>
<el-date-picker v-model='msg.QMonth' value-format="yyyy-MM" type="month"></el-date-picker>
<el-date-picker v-model='msg.QMonth' value-format="yyyy-MM" type="month"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" @click="getList()"
:value="$t('pub.searchBtn')" />
<input type="button" class="hollowFixedBtn" @click="getList()" :value="$t('pub.searchBtn')" />
<input type="button" class="hollowFixedBtn" @click="DownLoad()" value="导出" />
</li>
</ul>
</div>
<table class="singeRowTable fpTable" border="0" cellspacing="0" cellpadding="0">
<table class="singeRowTable fpTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>团期</th>
<th>出团公司</th>
<th>线路</th>
<th>人数</th>
<th>操作人员</th>
<th>操作人员</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.TCNUM}}</td>
<td> <a style="color:blue;cursor:pointer" @click='goUrlT("RegistrationList",item.TCID,"报名清单")'>
({{item.TCID}}){{item.TCNUM}} </a></td>
<td>{{item.OutBranchName}}</td>
<td>{{item.LineName}}</td>
<td>{{item.TicketNum}}</td>
......@@ -61,8 +62,8 @@
CreateBy: 0, //操作人
QMonth: '', //月份
},
value1:'',
dataList:[],
loading: false,
dataList: [],
//航空公司下拉
airlineList: [],
//操作人下拉
......@@ -71,22 +72,35 @@
},
mounted() {
let date = new Date(),
y = date.getFullYear(),
m = date.getMonth() < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
this.msg.QMonth = y + '-' + m ;
y = date.getFullYear(),
m = date.getMonth() < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
this.msg.QMonth = y + '-' + m;
this.initAirlines();
this.getEmployeeList();
this.getList()
},
methods: {
getList() { //获取列表数据
//页面跳转
goUrlT(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj,
blank: 'y',
tab: title
}
})
},
//获取列表数据
getList() {
this.loading = true;
this.apipost("AirTicket_get_GetTicketPerformance", this.msg, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data;
}
}
});
},
//初始化航空公司下拉
initAirlines() {
this.apipost(
......@@ -111,6 +125,15 @@
err => {}
);
},
//下载业绩数据
DownLoad() {
this.loading = true;
var fileName = "机票业绩下载" + this.msg.QMonth + ".xls";
this.GetLocalFile("AirTicket_get_DownLoadGetTicketPerformance", this.msg, fileName,
res => {
this.loading = false;
});
}
}
}
......
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