Commit 7b4d0846 authored by 黄奎's avatar 黄奎

新增页面

parent a46a29b3
......@@ -350,6 +350,12 @@ var commonUtils = {
//返回年月日
return myDate.getFullYear() + '-' + parseInt(myDate.getMonth() + 1) + "-" + myDate.getDate()
},
//格式化日期
getFormatDate(dateStr) {
var myDate = new Date(dateStr);
//返回年月日
return myDate.getFullYear() + '-' + parseInt(myDate.getMonth() + 1) + "-" + myDate.getDate()
},
//判断字符串是否为数字
isNumber: function (val) {
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
......
......@@ -426,7 +426,7 @@
</td>
<td>
<el-input v-model="hItem.Times" @keyup.native="checkInteger(hItem,'Times'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{hItem.TotalNum}}
......@@ -553,7 +553,7 @@
</td>
<td>
<el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.TotalNum}} 人
......@@ -674,7 +674,7 @@
</td>
<td>
<el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.TotalNum}} 人
......@@ -880,7 +880,7 @@
</td>
<td>
<el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.TotalNum}}
......@@ -973,15 +973,15 @@
</td>
<td>
<el-input v-model="childItem.DayNum" @keyup.native="checkInteger(childItem,'DayNum'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
<el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
<el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()"
placeholder="FOC" maxlength="1" class="w150"></el-input>
placeholder="FOC" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.USSubTotal}}
......@@ -1073,7 +1073,7 @@
</td>
<td>
<el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.USSubTotal}}
......@@ -1163,7 +1163,7 @@
</td>
<td>
<el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()"
placeholder="次/N數" maxlength="1" class="w150"></el-input>
placeholder="次/N數" maxlength="2" class="w150"></el-input>
</td>
<td>
{{childItem.USSubTotal}}
......@@ -1235,10 +1235,10 @@
房費
</td>
<td>
{{HotelSum.USPriceSum}}
{{(HotelSum.USPriceSum/2).toFixed(2)}}
</td>
<td>
{{HotelSum.VNDPriceSum}}
{{(HotelSum.VNDPriceSum/2).toFixed(2)}}
</td>
<td>
{{HotelSum.USTotalSum}}
......@@ -1305,6 +1305,7 @@
<td>
</td>
<td>
{{(BusSum.VNDTotalSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
</td>
......@@ -1317,10 +1318,10 @@
船 或 導遊機票
</td>
<td>
{{ShipSum.USPriceSum}}
{{(ShipSum.USPriceSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
{{ShipSum.VNDPriceSum}}
{{(ShipSum.VNDPriceSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
{{ShipSum.USTotalSum}}
......@@ -1411,6 +1412,7 @@
SWTOtherPayList: [], //杂支信息
SWTSelfFeeList: [], //自费明细
SWTTipFeeList: [], //小费明细
AuditStatus: -1, //审核状态
},
BusTypeList: [], //车辆类型
//酒店统计
......@@ -1809,6 +1811,11 @@
}
})
}
if (type == 0) {
this.postData.AuditStatus = -1;
} else {
this.postData.AuditStatus = 0;
}
this.apipost("travel_post_SetBaoJiaDanSwtService", this.postData, res => {
if (res.data.resultCode == 1) {
this.Id = res.data.data;
......@@ -2181,14 +2188,14 @@
USPrice_Single = parseFloat(subUSPrice) / parseFloat(this.postData.GuestNum);
}
this.ZaZhiSum.USPriceSingle = USPrice_Single.toFixed(2);
this.ZaZhiSum.VNDPriceSum=subVNDPrice.toFixed(2);
this.ZaZhiSum.VNDPriceSum = subVNDPrice.toFixed(2);
var VNDPrice_Single = 0;
if (this.postData.GuestNum > 0) {
VNDPrice_Single = parseFloat(subVNDPrice) / parseFloat(this.postData.GuestNum);
}
this.ZaZhiSum.VNDPriceSingle = VNDPrice_Single.toFixed(2);
this.ZaZhiSum.USTotalSum = totalUSPrice.toFixed(2);
this.ZaZhiSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
......
<style>
.QuotationPrice_SWT_details .swttable {
border: 1px solid #106BAF !important;
border-collapse: collapse;
}
.QuotationPrice_SWT_details .swttable tr td {
border: 1px solid #106BAF !important;
border-collapse: collapse;
height: 40px;
line-height: 40px;
padding: 0 3px;
}
.QuotationPrice_SWT_details .space {
width: 30px;
}
.QuotationPrice_SWT_details .ComTitle {
color: #106BAF;
font-weight: bold;
background-color: #D1EEEE;
white-space: nowrap;
}
.QuotationPrice_SWT_details .link {
cursor: pointer;
color: blue;
text-decoration: underline;
}
.QuotationPrice_SWT_details .linkLeft {
cursor: pointer;
color: blue;
text-decoration: underline;
float: left;
padding-left: 5px;
}
.QuotationPrice_SWT_details .saveArea {
position: fixed;
z-index: 999;
width: 60px;
height: auto;
padding-bottom: 10px;
right: 30px;
bottom: 20%;
border-radius: 4px;
background-color: #e95252;
}
.QuotationPrice_SWT_details .toTop {
width: 100%;
height: 40px;
text-align: center;
line-height: 40px;
color: #fff;
}
.quotationSaveBtn {
width: 45px;
height: 45px;
border-radius: 4px;
background-color: #ffc2c2;
margin: 8px;
color: #cc1212;
text-align: center;
line-height: 45px;
font-size: 12px;
cursor: pointer;
}
.QuotationPrice_SWT_details .tdCenter {
text-align: center;
}
</style>
<template>
<div class="QuotationPrice_SWT_details clearfix" v-loading="loading">
<div class="saveArea">
<div class="toTop"><i class="iconfont icon-huidaodingbu"></i></div>
</div>
<div>
<table class="swttable">
<tbody title="线路.系列.团名">
<tr>
<td colspan="2" class="ComTitle">
線路
</td>
<td colspan="3">
{{postData.LineName}}
</td>
<td class="ComTitle">
系列
</td>
<td colspan="4">
{{postData.LtName}}
</td>
</tr>
<tr>
<td colspan="2" class="ComTitle">
團名
</td>
<td colspan="8">
{{postData.Title}}
</td>
</tr>
</tbody>
<tbody title="天数.航班时间.适用人数">
<tr>
<td rowspan="3" colspan="2" class="ComTitle">
TO:
</td>
<td class="ComTitle">
天數
</td>
<td>
{{postData.DayNum}}
</td>
<td>
</td>
<td rowspan="4" class="ComTitle">
航班時間:
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1">
<span
v-if="postData.SWTFlightList[0].flightDate && postData.SWTFlightList[0].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[0].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1">
<span>{{postData.SWTFlightList[0].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1">
<span>{{postData.SWTFlightList[0].flightContent}}</span>
</template>
</td>
</tr>
<tr>
<td class="ComTitle">
出发日期:
</td>
<td>
{{$commonUtils.getFormatDate(postData.StartDate)}}
</td>
<td>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2">
<span
v-if="postData.SWTFlightList[1].flightDate && postData.SWTFlightList[1].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[1].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2">
<span>{{postData.SWTFlightList[1].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2">
<span>{{postData.SWTFlightList[1].flightContent}}</span>
</template>
</td>
</tr>
<tr>
<td class="ComTitle">
連發:
</td>
<td>
{{postData.AirLineName}}
</td>
<td class="ComTitle">
FOC
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3">
<span
v-if="postData.SWTFlightList[2].flightDate && postData.SWTFlightList[2].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[2].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3">
<span>{{postData.SWTFlightList[2].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3">
<span>{{postData.SWTFlightList[2].flightContent}}</span>
</template>
</td>
</tr>
<tr>
<td colspan="3" class="ComTitle">
適用人數:
</td>
<td>
{{postData.GuestNum}}
</td>
<td>
{{postData.FocNum}}
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4">
<span
v-if="postData.SWTFlightList[3].flightDate && postData.SWTFlightList[3].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[3].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4">
<span>{{postData.SWTFlightList[3].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4">
<span>{{postData.SWTFlightList[3].flightContent}}</span>
</template>
</td>
</tr>
</tbody>
<tbody title="领队和导游">
<tr>
<td rowspan="2" colspan="3" class="ComTitle">
導遊
</td>
<td rowspan="2">
<template v-if="postData.SWTGuideList&&postData.SWTGuideList.length>=1">
<span>{{postData.SWTGuideList[0].LeaderGuideInfo}}</span>
</template>
</td>
<td rowspan="2" class="ComTitle">
領隊
</td>
<td rowspan="2">
<template v-if="postData.SWTLeaderList&&postData.SWTLeaderList.length>=1">
<span>{{postData.SWTLeaderList[0].LeaderGuideInfo}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5">
<span
v-if="postData.SWTFlightList[4].flightDate && postData.SWTFlightList[4].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[4].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5">
<span>{{postData.SWTFlightList[4].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5">
<span>
{{postData.SWTFlightList[4].flightContent}}
</span>
</template>
</td>
</tr>
<tr>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6">
<span
v-if="postData.SWTFlightList[5].flightDate && postData.SWTFlightList[5].flightDate!=''">{{$commonUtils.getFormatDate(postData.SWTFlightList[5].flightDate)}}</span>
</template>
</td>
<td>
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6">
<span>{{postData.SWTFlightList[5].flightNum}}</span>
</template>
</td>
<td colspan="2">
<template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6">
<span>{{postData.SWTFlightList[5].flightContent}}</span>
</template>
</td>
</tr>
</tbody>
<tbody title="LOCAL團號">
<tr>
<td colspan="3" class="ComTitle">
LOCAL團號
</td>
<td>
{{postData.LocalTeamNum}}
</td>
<td class="ComTitle">
估價代號
</td>
<td colspan="2">
{{postData.ValuationCode}}
</td>
<td class="ComTitle">
出團名稱
</td>
<td colspan="2">
{{postData.OutTeamName}}
</td>
</tr>
<tr>
<td colspan="3" class="ComTitle">
AGT團號
</td>
<td>
{{postData.AGTTeamName}}
</td>
<td class="ComTitle">
SURCHARGE:
</td>
<td colspan="2">
{{postData.SURCHARGE}}
</td>
<td class="ComTitle">
</td>
<td colspan="2">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="酒店">
<tr>
<td colspan="7" class="ComTitle tdCenter">
飯店
</td>
<td class="ComTitle">
酒店減免:
</td>
<td colspan="2">
{{postData.HotelDisNum}}
</td>
</tr>
<tr>
<td class="ComTitle tdCenter" colspan="2">
DAY
</td>
<td class="ComTitle tdCenter">
飯店名稱
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
房/人數
</td>
<td class="ComTitle tdCenter">
減免人數
</td>
<td class="ComTitle tdCenter" colspan="2">
合計
</td>
</tr>
<tr v-for="(hItem,hIndex) in postData.SWTHotelList" :key="hIndex">
<td style="width:50px;" colspan="2">
D{{hItem.DayNum}}
</td>
<td>
{{hItem.HotelName}}
</td>
<td>
{{hItem.USPrice}}
</td>
<td>
{{hItem.VNDPrice}}
</td>
<td>
{{hItem.Times}}
</td>
<td>
{{hItem.TotalNum}}
</td>
<td>
{{hItem.HotelDisNum}}
</td>
<td class="w150">
{{hItem.USSubTotal}}
</td>
<td class="w150">
{{hItem.VNDSubTotal}}
</td>
</tr>
</tbody>
<tbody title="酒店合计">
<tr>
<td colspan="2">
</td>
<td>
</td>
<td>
US合計:{{HotelSum.USPriceSum}}
</td>
<td>
VND合計:{{HotelSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
{{HotelSum.USTotalSum}}
</td>
<td>
{{HotelSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="餐食">
<tr>
<td colspan="7" class="ComTitle tdCenter">
餐食
</td>
<td class="ComTitle">
餐食減免:
</td>
<td colspan="2">
{{postData.DinnerDisNum}}
</td>
</tr>
<tr>
<td colspan="2" class="ComTitle tdCenter">
DAY
</td>
<td class="ComTitle tdCenter">
餐食名稱
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
人數/FOC
</td>
<td class="ComTitle tdCenter">
減免人數
</td>
<td class="ComTitle tdCenter" colspan="2">
合計
</td>
</tr>
<template v-for="(subItem,subIndex) in postData.SWTDinnerList">
<tr v-for="(childItem,childIndex) in subItem.SubDinnerList">
<td v-if="childIndex==0" :rowspan="3">
D{{subItem.DayNum}}
</td>
<td>
<template v-if="childItem.DinnerType==1">
早餐
</template>
<template v-if="childItem.DinnerType==2">
午餐
</template>
<template v-if="childItem.DinnerType==3">
晚餐
</template>
</td>
<td>
{{childItem.DinnerName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.Times}}
</td>
<td>
{{childItem.TotalNum}} 人
</td>
<td>
{{childItem.DinnerDisNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="餐厅合计">
<tr>
<td colspan="2">
</td>
<td>
</td>
<td>
US合計:{{DinnerSum.USPriceSum}}
</td>
<td>
VND合計:{{DinnerSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
{{DinnerSum.USTotalSum}}
</td>
<td>
{{DinnerSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="景點門票">
<tr>
<td colspan="7" class="ComTitle tdCenter">
景點門票
</td>
<td class="ComTitle">
景點減免:
</td>
<td colspan="2">
{{postData.TicketDisNum}}
</td>
</tr>
<tr>
<td class="ComTitle tdCenter" colspan="2">
DAY
</td>
<td class="ComTitle tdCenter">
景點門票
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
房/人數
</td>
<td class="ComTitle tdCenter">
減免人數
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(subItem,subIndex) in postData.SWTTicketList">
<tr v-for="(childItem,childIndex) in subItem.SubTicketList">
<td v-if="childIndex==0" :rowspan="subItem.SubTicketList.length" colspan="2">
D{{subItem.DayNum}}
</td>
<td style="width:300px;">
{{childItem.CouponsName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.Times}}
</td>
<td>
{{childItem.TotalNum}}
</td>
<td>
{{childItem.TicketDisNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="景点门票合计">
<tr>
<td colspan="2">
</td>
<td>
</td>
<td>
US合計:{{TicketSum.USPriceSum}}
</td>
<td>
VND合計:{{TicketSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
{{TicketSum.USTotalSum}}
</td>
<td>
{{TicketSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="車資">
<tr>
<td colspan="7" class="ComTitle tdCenter">
車資
</td>
<td class="ComTitle">
車型:
</td>
<td colspan="2">
<el-select v-model="postData.BusPriceId" class='w150' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="(qitem,qindex) in BusTypeList" :value="qitem.Id" :label="qitem.newName" :key="qindex">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" class="ComTitle tdCenter">
DAY
</td>
<td class="ComTitle tdCenter" colspan="2">
行程
</td>
<td class="ComTitle tdCenter">
公里數
</td>
<td class="ComTitle tdCenter">
車資
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
單價
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(subItem,subIndex) in postData.SWTBusList">
<tr v-for="(childItem,childIndex) in subItem.SubBusList">
<td v-if="childIndex==0" :rowspan="subItem.SubBusList.length" colspan="2">
D{{subItem.DayNum}}
</td>
<td colspan="2">
{{childItem.Trip}}
</td>
<td>
{{childItem.Kilometre}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.Times}}
</td>
<td>
{{childItem.Price}}
</td>
<td colspan="2">
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="车资合计">
<tr>
<td colspan="2">
</td>
<td colspan="2">
</td>
<td>
{{BusSum.TotalKM}}
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td colspan="2">
{{BusSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="船或導遊機票">
<tr>
<td colspan="10" class="ComTitle tdCenter">
船或導遊機票
</td>
</tr>
<tr>
<td class="ComTitle tdCenter" colspan="4">
名称
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越南盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
人數
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(childItem,childIndex) in postData.SWTShipList">
<tr :key="childIndex">
<td colspan="4">
{{childItem.BaoJiaConfigName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.Times}}
</td>
<td>
{{childItem.TotalNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="船合计">
<tr>
<td colspan="4">
</td>
<td>
US合計:{{ShipSum.USPriceSum}}
</td>
<td>
VND合計:{{ShipSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
{{ShipSum.USTotalSum}}
</td>
<td>
{{ShipSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="雜支">
<tr>
<td colspan="10" class="ComTitle tdCenter">
雜支 <a class="linkLeft" </td> </tr> <tr>
<td class="ComTitle tdCenter" colspan="3">
名称
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越南盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
</td>
<td class="ComTitle tdCenter">
FOC
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(childItem,childIndex) in postData.SWTOtherPayList">
<tr :key="childIndex">
<td colspan="3">
{{childItem.BaoJiaConfigName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.DayNum}}
</td>
<td>
{{childItem.Times}}
</td>
<td>
{{childItem.FOCNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="杂支合计">
<tr>
<td colspan="3">
</td>
<td>
US合計:{{ZaZhiSum.USPriceSum}}
</td>
<td>
VND合計:{{ZaZhiSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
{{ZaZhiSum.USTotalSum}}
</td>
<td>
{{ZaZhiSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="購物自費">
<tr>
<td colspan="10" class="ComTitle tdCenter">
購物自費
</td>
</tr>
<tr>
<td class="ComTitle tdCenter" colspan="4">
名称
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越南盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
FOC
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(childItem,childIndex) in postData.SWTSelfFeeList">
<tr :key="childIndex">
<td colspan="4">
{{childItem.BaoJiaConfigName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.TotalNum}}
</td>
<td>
{{childItem.FOCNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="購物自費合计">
<tr>
<td colspan="4">
</td>
<td>
US合計:{{SelfFeeSum.USPriceSum}}
</td>
<td>
VND合計:{{SelfFeeSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
{{SelfFeeSum.USTotalSum}}
</td>
<td>
{{SelfFeeSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="小費">
<tr>
<td colspan="10" class="ComTitle tdCenter">
小費
</td>
</tr>
<tr>
<td class="ComTitle tdCenter" colspan="4">
名称
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越南盾
</td>
<td class="ComTitle tdCenter">
次/N數
</td>
<td class="ComTitle tdCenter">
FOC
</td>
<td class="ComTitle tdCenter" colspan="2">
合计
</td>
</tr>
<template v-for="(childItem,childIndex) in postData.SWTTipFeeList">
<tr :key="childIndex">
<td colspan="4">
{{childItem.BaoJiaConfigName}}
</td>
<td>
{{childItem.USPrice}}
</td>
<td>
{{childItem.VNDPrice}}
</td>
<td>
{{childItem.TotalNum}}
</td>
<td>
{{childItem.FOCNum}}
</td>
<td>
{{childItem.USSubTotal}}
</td>
<td>
{{childItem.VNDSubTotal}}
</td>
</tr>
</template>
</tbody>
<tbody title="小費合计">
<tr>
<td colspan="4">
</td>
<td>
US合計:{{TipFeeSum.USPriceSum}}
</td>
<td>
VND合計:{{TipFeeSum.VNDPriceSum}}
</td>
<td>
</td>
<td>
</td>
<td>
{{TipFeeSum.USTotalSum}}
</td>
<td>
{{TipFeeSum.VNDTotalSum}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="10"></td>
</tr>
</tbody>
<tbody title="总计">
<tr>
<td colspan="4" class="ComTitle tdCenter">
</td>
<td colspan="2" class="ComTitle tdCenter">
個人團費
</td>
<td colspan="2" class="ComTitle tdCenter">
整團團費
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
类型
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越盾
</td>
<td class="ComTitle tdCenter">
美金
</td>
<td class="ComTitle tdCenter">
越盾
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
房費
</td>
<td>
{{(HotelSum.USPriceSum/2).toFixed(2)}}
</td>
<td>
{{(HotelSum.VNDPriceSum/2).toFixed(2)}}
</td>
<td>
{{HotelSum.USTotalSum}}
</td>
<td>
{{HotelSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
餐食
</td>
<td>
{{DinnerSum.USPriceSum}}
</td>
<td>
{{DinnerSum.VNDPriceSum}}
</td>
<td>
{{DinnerSum.USTotalSum}}
</td>
<td>
{{DinnerSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
景點門票
</td>
<td>
{{TicketSum.USPriceSum}}
</td>
<td>
{{TicketSum.VNDPriceSum}}
</td>
<td>
{{TicketSum.USTotalSum}}
</td>
<td>
{{TicketSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
雜支
</td>
<td>
{{ZaZhiSum.USPriceSingle}}
</td>
<td>
{{ZaZhiSum.VNDPriceSingle}}
</td>
<td>
{{ZaZhiSum.USTotalSum}}
</td>
<td>
{{ZaZhiSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
車資
</td>
<td>
</td>
<td>
{{(BusSum.VNDTotalSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
</td>
<td>
{{BusSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
船 或 導遊機票
</td>
<td>
{{(ShipSum.USPriceSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
{{(ShipSum.VNDPriceSum/getPeopleNum.totalNum).toFixed(2)}}
</td>
<td>
{{ShipSum.USTotalSum}}
</td>
<td>
{{ShipSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
購物自費
</td>
<td>
{{SelfFeeSum.USPriceSum}}
</td>
<td>
{{SelfFeeSum.VNDPriceSum}}
</td>
<td>
{{SelfFeeSum.USTotalSum}}
</td>
<td>
{{SelfFeeSum.VNDTotalSum}}
</td>
</tr>
<tr>
<td colspan="4" class="ComTitle tdCenter">
合計
</td>
<td>
{{CalcTotal().single_us_price}}
</td>
<td>
{{CalcTotal().single_vnd_price}}
</td>
<td>
{{CalcTotal().total_us_price}}
</td>
<td>
{{CalcTotal().total_vnd_price}}
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<el-radio v-model="AuditMsg.AuditStatus" :label="1">通过</el-radio>
<el-radio v-model="AuditMsg.AuditStatus" :label="2">拒绝</el-radio>
</td>
</tr>
<tr>
<td>
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="AuditMsg.AuditContent">
</el-input>
</td>
</tr>
<tr>
<td>
<button class="hollowFixedBtn" @click="AduitSWT()">审核</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
export default {
data() {
return {
AuditMsg: {
Id: 0,
AuditStatus: 1, //原因
AuditContent: "",
},
Id: 0, //编号
LineList: [], //线路列表
LineTeamList: [], //系列列表
DefaultCurrencyId: 17, //默认为越南盾
//基本配置
postData: {
Id: 0,
LineId: 0,
LineName: "", //线路名称
LineteamId: 0,
LtName: "", //系列名称
IsDirect: 1, //是否直采(0-否-1-是)【全部默认非直采】
TeamType: 3, //团队类型【默认地接团】
TravelState: 1, //团控状态(1-草稿,2-待审核,3-审核通过,4-审核拒绝,5已撤销)
Title: "", //团队标题
ConfigId: 0, //配置编号
DayNum: 0, //行程天数
StartDate: "", //出发日期
AirLineName: "", //航空公司名称
SWTFlightList: [], //航班列表
GuestNum: 0, //旅客人数
FocNum: 0, //Foc人数
SWTLeaderList: [], //领队信息
SWTGuideList: [], //导游信息
LocalTeamNum: "", //LOCAL團號
ValuationCode: "", //估價代號
OutTeamName: "", //出團名稱
AGTTeamName: "", //AGT團號
SURCHARGE: "", //SURCHARGE
HotelDisNum: 0, //酒店免人数
SWTHotelList: [], //酒店信息
DinnerDisNum: 0, //餐免人数
SWTDinnerList: [], //餐厅信息
TicketDisNum: 0, //景点免人数
SWTTicketList: [], //景点信息
BusPriceId: 0, //车辆报价编号
SWTBusList: [], //车资明细
SWTShipList: [], //船明细
SWTOtherPayList: [], //杂支信息
SWTSelfFeeList: [], //自费明细
SWTTipFeeList: [], //小费明细
},
BusTypeList: [], //车辆类型
//酒店统计
HotelSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//餐厅统计
DinnerSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//景点门票统计
TicketSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//车资统计
BusSum: {
TotalKM: 0, //美金单价统计
VNDTotalSum: 0, //越盾合计
},
ZaZhiList: [], //杂支列表
ShipList: [], //船列表
SelfFeeList: [], //自费列表
TipFeeList: [], //小费列表
//杂支统计
ZaZhiSum: {
USPriceSum: 0, //美金单价统计
USPriceSingle: 0, //单人美元
VNDPriceSum: 0, //越盾单价统计
VNDPriceSingle: 0, //单人越盾
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//船票统计
ShipSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//自费统计
SelfFeeSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
//小费统计
TipFeeSum: {
USPriceSum: 0, //美金单价统计
VNDPriceSum: 0, //越盾单价统计
USTotalSum: 0, //美金合计
VNDTotalSum: 0, //越盾合计
},
loading: false,
};
},
methods: {
AduitSWT() {
this.AuditMsg.Id = this.$route.query.Id;
this.apipost(
"travel_post_UpdateBaoJiaDanSwtAuditService",
this.AuditMsg,
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.gonewQuotationSWT(0,'SWTAuditDan');
} else {
this.Info(res.data.message)
}
},
err => {}
);
},
//计算合计
CalcTotal() {
var single_us_price = 0; //单人美元
var single_vnd_price = 0; //单人越盾
var total_us_price = 0; //团体美元
var total_vnd_price = 0; //团体越盾
single_us_price = Number(this.HotelSum.USPriceSum) + Number(this.DinnerSum.USPriceSum) + Number(this.TicketSum
.USPriceSum) +
Number(this.ZaZhiSum.USPriceSingle) + Number(this.ShipSum.USPriceSum) + Number(this.SelfFeeSum.USPriceSum);
single_vnd_price = Number(this.HotelSum.VNDPriceSum) + Number(this.DinnerSum.VNDPriceSum) + Number(this
.TicketSum
.VNDPriceSum) +
Number(this.ZaZhiSum.VNDPriceSingle) + Number(this.ShipSum.VNDPriceSum) + Number(this.SelfFeeSum.VNDPriceSum);
total_us_price = Number(this.HotelSum.USTotalSum) + Number(this.DinnerSum.USTotalSum) + Number(this.TicketSum
.USTotalSum) +
Number(this.ZaZhiSum.USTotalSum) + Number(this.ShipSum.USTotalSum) + Number(this.SelfFeeSum.USTotalSum);
total_vnd_price = Number(this.HotelSum.VNDTotalSum) + Number(this.DinnerSum.VNDTotalSum) + Number(this.TicketSum
.VNDTotalSum) +
Number(this.ZaZhiSum.VNDTotalSum) + Number(this.ShipSum.USTotalSum) + Number(this.SelfFeeSum.USTotalSum) +
Number(this.BusSum.VNDTotalSum);
return {
single_us_price: single_us_price.toFixed(2),
single_vnd_price: single_vnd_price.toFixed(2),
total_us_price: total_us_price.toFixed(2),
total_vnd_price: total_vnd_price.toFixed(2)
};
},
getData() {
var qmsg = {
Id: this.Id
};
this.apipost("travel_get_GetBaoJiaDanSwtService", qmsg, res => {
if (res.data.resultCode == 1) {
var jsonData = res.data.data;
if (jsonData) {
this.postData.Id = this.Id;
this.postData.LineId = jsonData.LineId;
this.postData.LtName = jsonData.LtName;
this.postData.LineName = jsonData.LineName;
this.postData.LineteamId = jsonData.LineteamId;
this.postData.IsDirect = jsonData.IsDirect;
this.postData.TeamType = jsonData.TeamType;
this.postData.TravelState = jsonData.TravelState;
this.postData.Title = jsonData.Title;
this.postData.DayNum = jsonData.DayNum;
this.postData.ConfigId = jsonData.ConfigId;
this.postData.StartDate = jsonData.StartDate;
this.postData.AirLineName = jsonData.AirLineName;
this.postData.GuestNum = jsonData.GuestNum;
this.postData.FocNum = jsonData.FocNum;
this.postData.LocalTeamNum = jsonData.LocalTeamNum;
this.postData.ValuationCode = jsonData.ValuationCode;
this.postData.OutTeamName = jsonData.OutTeamName;
this.postData.AGTTeamName = jsonData.AGTTeamName;
this.postData.SURCHARGE = jsonData.SURCHARGE;
//航班信息
if (jsonData.SWTFlightList) {
this.postData.SWTFlightList = jsonData.SWTFlightList;
}
//领队信息
if (jsonData.SWTLeaderList) {
this.postData.SWTLeaderList = jsonData.SWTLeaderList;
}
//导游信息
if (jsonData.SWTGuideList) {
this.postData.SWTGuideList = jsonData.SWTGuideList;
}
//酒店
if (jsonData.HotelDisNum) {
this.postData.HotelDisNum = jsonData.HotelDisNum;
}
if (jsonData.SWTHotelList) {
this.postData.SWTHotelList = jsonData.SWTHotelList;
}
//餐厅
if (jsonData.DinnerDisNum) {
this.postData.DinnerDisNum = jsonData.DinnerDisNum;
}
if (jsonData.SWTDinnerList) {
this.postData.SWTDinnerList = jsonData.SWTDinnerList;
}
//景点
if (jsonData.TicketDisNum) {
this.postData.TicketDisNum = jsonData.TicketDisNum;
}
if (jsonData.SWTTicketList) {
this.postData.SWTTicketList = jsonData.SWTTicketList;
}
//车资
this.postData.BusPriceId = jsonData.BusPriceId;
if (jsonData.SWTBusList) {
this.postData.SWTBusList = jsonData.SWTBusList;
}
//船
if (jsonData.SWTShipList) {
this.postData.SWTShipList = jsonData.SWTShipList;
}
//杂支
if (jsonData.SWTOtherPayList) {
this.postData.SWTOtherPayList = jsonData.SWTOtherPayList;
}
//自费
if (jsonData.SWTSelfFeeList) {
this.postData.SWTSelfFeeList = jsonData.SWTSelfFeeList;
}
//小费
if (jsonData.SWTTipFeeList) {
this.postData.SWTTipFeeList = jsonData.SWTTipFeeList;
}
//计算费用合计
this.CalcFeeTotal();
}
}
});
},
//报价单跳转
gonewQuotationSWT(Id, path) {
var obj = {};
if (Id > 0) {
obj = {
Id: Id,
tab: '报价单'
}
} else {
obj = {
tab: '报价单'
}
}
this.$router.push({
name: path,
query: obj
});
},
//计算费用
CalcFeeTotal() {
//酒店计算
if (this.postData.SWTHotelList && this.postData.SWTHotelList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTHotelList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_HotelDisNum = 0;
if (this.postData.HotelDisNum) {
c_HotelDisNum = this.postData.HotelDisNum;
}
item.HotelDisNum = c_HotelDisNum;
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
var c_totalNum = 0;
if (item.TotalNum) {
c_totalNum = item.TotalNum;
}
item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_HotelDisNum)).toFixed(
2);
item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_HotelDisNum))
.toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
});
this.HotelSum.USPriceSum = subUSPrice.toFixed(2);
this.HotelSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.HotelSum.USTotalSum = totalUSPrice.toFixed(2);
this.HotelSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//餐厅计算
if (this.postData.SWTDinnerList && this.postData.SWTDinnerList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTDinnerList.forEach(rootItem => {
rootItem.SubDinnerList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_DinnerDisNum = 0;
if (this.postData.DinnerDisNum) {
c_DinnerDisNum = this.postData.DinnerDisNum;
}
item.DinnerDisNum = c_DinnerDisNum;
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
var c_totalNum = 0;
if (item.TotalNum) {
c_totalNum = item.TotalNum;
}
item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum))
.toFixed(
2);
item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum))
.toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
})
});
this.DinnerSum.USPriceSum = subUSPrice.toFixed(2);
this.DinnerSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.DinnerSum.USTotalSum = totalUSPrice.toFixed(2);
this.DinnerSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//景点门票计算
if (this.postData.SWTTicketList && this.postData.SWTTicketList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTTicketList.forEach(rootItem => {
rootItem.SubTicketList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_DinnerDisNum = 0;
if (this.postData.TicketDisNum) {
c_DinnerDisNum = this.postData.TicketDisNum;
}
item.DinnerDisNum = c_DinnerDisNum;
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
var c_totalNum = 0;
if (item.TotalNum) {
c_totalNum = item.TotalNum;
}
item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum))
.toFixed(
2);
item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum))
.toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
})
});
this.TicketSum.USPriceSum = subUSPrice.toFixed(2);
this.TicketSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.TicketSum.USTotalSum = totalUSPrice.toFixed(2);
this.TicketSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//车资计算
if (this.postData.SWTBusList && this.postData.SWTBusList.length > 0) {
var subKMs = 0;
var totalVNDPrice = 0;
this.postData.SWTBusList.forEach(rootItem => {
rootItem.SubBusList.forEach(item => {
var c_Kilometre = 0;
if (item.Kilometre) {
c_Kilometre = item.Kilometre
}
subKMs += Number(c_Kilometre)
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
var c_price = 0;
if (item.Price) {
c_price = item.Price;
}
item.VNDSubTotal = (parseFloat(c_Kilometre) * parseFloat(c_times) * parseFloat(c_price))
.toFixed(2);
totalVNDPrice += parseFloat(item.VNDSubTotal);
})
});
this.BusSum.TotalKM = subKMs.toFixed(2);
this.BusSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//船
if (this.postData.SWTShipList && this.postData.SWTShipList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTShipList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times)).toFixed(2);
item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times)).toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
});
this.ShipSum.USPriceSum = subUSPrice.toFixed(2);
this.ShipSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.ShipSum.USTotalSum = totalUSPrice.toFixed(2);
this.ShipSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//杂支
if (this.postData.SWTOtherPayList && this.postData.SWTOtherPayList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTOtherPayList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_times = 0;
if (item.Times) {
c_times = item.Times;
}
var c_daynum = 0;
if (item.DayNum) {
c_daynum = item.DayNum;
}
var c_focnum = 0;
if (item.FOCNum) {
c_focnum = item.FOCNum;
}
item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_daynum) * (c_times - c_focnum)).toFixed(2);
item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_daynum) * (c_times - c_focnum)).toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
});
this.ZaZhiSum.USPriceSum = subUSPrice.toFixed(2);
var USPrice_Single = 0;
if (this.postData.GuestNum > 0) {
USPrice_Single = parseFloat(subUSPrice) / parseFloat(this.postData.GuestNum);
}
this.ZaZhiSum.USPriceSingle = USPrice_Single.toFixed(2);
this.ZaZhiSum.VNDPriceSum = subVNDPrice.toFixed(2);
var VNDPrice_Single = 0;
if (this.postData.GuestNum > 0) {
VNDPrice_Single = parseFloat(subVNDPrice) / parseFloat(this.postData.GuestNum);
}
this.ZaZhiSum.VNDPriceSingle = VNDPrice_Single.toFixed(2);
this.ZaZhiSum.USTotalSum = totalUSPrice.toFixed(2);
this.ZaZhiSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//自费计算
if (this.postData.SWTSelfFeeList && this.postData.SWTSelfFeeList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTSelfFeeList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_totalnum = 0;
if (item.TotalNum) {
c_totalnum = item.TotalNum;
}
var c_focnum = 0;
if (item.FOCNum) {
c_focnum = item.FOCNum;
}
item.USSubTotal = (parseFloat(c_usprice) * (c_totalnum - c_focnum)).toFixed(2);
item.VNDSubTotal = (parseFloat(c_vndprice) * (c_totalnum - c_focnum)).toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
});
this.SelfFeeSum.USPriceSum = subUSPrice.toFixed(2);
this.SelfFeeSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.SelfFeeSum.USTotalSum = totalUSPrice.toFixed(2);
this.SelfFeeSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
//小费计算
if (this.postData.SWTTipFeeList && this.postData.SWTTipFeeList.length > 0) {
var subUSPrice = 0;
var subVNDPrice = 0;
var totalUSPrice = 0;
var totalVNDPrice = 0;
this.postData.SWTTipFeeList.forEach(item => {
var c_usprice = 0;
if (item.USPrice) {
c_usprice = item.USPrice;
}
var c_vndprice = 0;
if (item.VNDPrice) {
c_vndprice = item.VNDPrice
}
subUSPrice += Number(c_usprice);
subVNDPrice += Number(c_vndprice);
var c_totalnum = 0;
if (item.TotalNum) {
c_totalnum = item.TotalNum;
}
var c_focnum = 0;
if (item.FOCNum) {
c_focnum = item.FOCNum;
}
item.USSubTotal = (parseFloat(c_usprice) * (c_totalnum - c_focnum)).toFixed(2);
item.VNDSubTotal = (parseFloat(c_vndprice) * (c_totalnum - c_focnum)).toFixed(2);
totalUSPrice += parseFloat(item.USSubTotal);
totalVNDPrice += parseFloat(item.VNDSubTotal);
});
this.TipFeeSum.USPriceSum = subUSPrice.toFixed(2);
this.TipFeeSum.VNDPriceSum = subVNDPrice.toFixed(2);
this.TipFeeSum.USTotalSum = totalUSPrice.toFixed(2);
this.TipFeeSum.VNDTotalSum = totalVNDPrice.toFixed(2);
}
},
//获取车辆类型列表
getBusTypeList() {
this.apipost(
"bus_get_GetBusTypePriceList", {
StartDate: this.postData.StartDate
},
res => {
if (res.data.resultCode == 1) {
this.BusTypeList = res.data.data;
this.BusTypeList.forEach(item => {
item['newName'] = item.AreaTypeStr + '-' + item.BusTypeStr
});
}
},
null
);
},
},
created() {
},
mounted() {
if (this.$route.query.Id) {
this.Id = this.$route.query.Id;
}
this.getBusTypeList();
this.getData();
},
computed: {
//人数计算
getPeopleNum() {
var totalNum = 0; //总人数【旅客人数+FOC人数】
var focNum = 0; //FOC人数
if (this.postData.GuestNum) {
totalNum += Number(this.postData.GuestNum);
}
if (this.postData.FocNum) {
totalNum += Number(this.postData.FocNum);
focNum = Number(this.postData.FocNum);
}
//酒店房间数
var hotelNum = (parseFloat(totalNum) / 2.0).toFixed(1);
var obj = {
totalNum: totalNum,
focNum: focNum,
hotelNum: hotelNum,
}
return obj;
}
},
};
</script>
<style>
@import "../../../assets/css/newTravelManager.css";
.BilldownLoadCommon input[type="checkbox"]+label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: .15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.BilldownLoadCommon input[type="checkbox"]:checked+label::before {
content: "\2713";
background-color: #e95252;
}
.BilldownLoadCommon input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.BilldownLoadCommon input[type="checkbox"]:focus+label::before {
box-shadow: none;
}
.BilldownLoadCommon input[type="checkbox"]:disabled+label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.BilldownLoadCommon table td {
text-align: left;
}
.newAopbdd {
font-weight: bold;
display: inline-block;
width: 25px;
height: 25px;
color: #fff;
border-radius: 50%;
line-height: 25px;
font-size: 12px;
cursor: pointer;
text-align: center;
}
.newQuostayDays {
padding: 8px 15px;
background-color: #2aaef2;
color: #ffffff;
text-align: center;
font-size: 14px;
}
</style>
<template>
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>团名</em>
<el-input v-model="queryData.Title" clearable></el-input>
</span>
</li>
<li>
<span>
<em>状态</em>
<el-select v-model="queryData.AuditStatus" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='-1'></el-option>
<el-option label="待审核" :value='0'> </el-option>
<el-option label="审核通过" :value='1'> </el-option>
<el-option label="审核拒绝" :value='1'> </el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
<button class="hollowFixedBtn" @click="goMakeQuo('QuotationPrice_SWT',0)">新增</button>
</li>
</ul>
</div>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<li v-for="item in dataList" :key="item.subCode" :data-id="item.Id" style="padding:0 10px;">
<div class="_left" style="padding:0;flex:0.3;display:flex;">
<div class="QT_CodeNum">
{{$t('hotel.hotel_SerialNumber')}}{{item.Id}}
</div>
</div>
<div class="_left" style="display:flex;">
<div style="padding-left:10px">
<p style="font-size:14px">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>线路名称:{{item.LineName}}</span>
</el-tooltip>
</p>
<span>系列名称:{{item.LtName}}</span>
</div>
</div>
<div class="_left" style="padding-left:10px">
<div>
<p style="font-size:14px">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
</div>
</div>
<div class="_left" style="padding-left:10px">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
出发日期 {{item.StartDateStr}}
</div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
{{item.DayNum}}</div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核状态: {{item.AuditStatusStr}} </div>
</div>
<template v-if="item.AuditStatus>-1">
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核人: {{item.AuditMan}} </div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核时间: {{item.AuditTimeStr}} </div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
意见: {{item.AuditContent}} </div>
</div>
</template>
<div class="_right">
<div class="AuditUserInfo clearfix aa" style="margin-left:10px;">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AU_creatName">
<div>{{item.CreateByName}}</div>
</div>
</div>
<div style="width:134px;">
<span class="bianji newAopbdd" @click="goMakeQuo('QuotationPrice_SWT_details',item.Id,1)">
<el-tooltip class="item" effect="dark" :content="$t('pub.updateMsg')" placement="top-start"
popper-class="max-w250">
<i class="iconfont icon-bianji-smal"></i>
</el-tooltip>
</span>
<span class="QT-delete newAopbdd" @click="goMakeQuo('QuotationPrice_SWT_details',item.Id,0)">
<el-tooltip class="item" effect="dark" :content="$t('system.table_delete')" placement="top-start"
popper-class="max-w250">
<i class="iconfont icon-shanchu"></i>
</el-tooltip>
</span>
</div>
</div>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryData.currentPage"
layout="total,prev, pager, next, jumper" :page-size="queryData.pageSize" :total="queryData.total">
</el-pagination>
<!-- 下载弹窗 -->
<el-dialog custom-class='w450' title="报价单下载" :visible.sync="downloadBill" center>
<div class="BilldownLoadCommon">
<table style="width:380px;margin-left:44px;" border="0" cellspacing="0" cellpadding="0">
<tr>
<th colspan="2" style="height:50px;">
<span style="margin-left:-60px;">{{$t('salesModule.ChoiceNeed')}}</span>
</th>
</tr>
<tbody>
<tr height="36">
<td width="50%"><input id="IsShowTripPrice" type="checkbox" v-model="downLoadMsg.IsShowTripPrice" /><label
for="IsShowTripPrice">行程报价<br />(房、餐、车、门票)</label></td>
<td width="50%"><input id="IsShowTraffic" type="checkbox" v-model="downLoadMsg.IsShowTraffic" /><label
for="IsShowTraffic">交通部分</label></td>
</tr>
<tr height="36">
<td><input id="IsShowZaZhi" type="checkbox" v-model="downLoadMsg.IsShowZaZhi" /><label
for="IsShowZaZhi">杂支部分</label></td>
<td><input id="IsShowOtherZhichu" type="checkbox" v-model="downLoadMsg.IsShowOtherZhichu" /><label
for="IsShowOtherZhichu">其他支出</label></td>
</tr>
<tr height="36">
<td><input id="IsShowShouRu" type="checkbox" v-model="downLoadMsg.IsShowShouRu" /><label
for="IsShowShouRu">收入</label></td>
<td><input id="IsShowTuanFuFee" type="checkbox" v-model="downLoadMsg.IsShowTuanFuFee" /><label
for="IsShowTuanFuFee">团负费</label></td>
</tr>
<tr height="36">
<td><input id="IsShowLeaderFenTan" type="checkbox" v-model="downLoadMsg.IsShowLeaderFenTan" /><label
for="IsShowLeaderFenTan">领队分摊</label></td>
<td><input id="IsShowCost" type="checkbox" v-model="downLoadMsg.IsShowCost" /><label
for="IsShowCost">成本统计</label></td>
</tr>
<tr height="36">
<td><input id="IsShowOtherPrice" type="checkbox" v-model="downLoadMsg.IsShowOtherPrice" /><label
for="IsShowOtherPrice">其他定价</label></td>
</tr>
</tbody>
<tr height="66">
<td colspan="2" style="text-align:center;">
<input type="button" class="normalBtn" style="margin-left:-70px;" :value="$t('pub.sureBtn')"
@click="DownLoadFile()" />
</td>
</tr>
</table>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
EditBtn: false, //报价单修改权限
userInfo: {},
queryData: {
LineId: 0,
LineteamId: 0,
PageIndex: 1,
PageSize: 10,
total: 0,
currentPage: 1,
Title: "",
AuditStatus: -1, //审核状态
},
loading: true,
//线路列表
LineList: "",
//系列列表
LineTeamList: "",
//是否有数据
noData: false,
dataList: "",
downloadBill: false,
//下载参数
downLoadMsg: {
ID: 0,
FileName: "",
IsShowTripPrice: true, //行程报价
IsShowTraffic: false, //交通价格
IsShowZaZhi: false, //杂支部分
IsShowOtherZhichu: false, //其他支出
IsShowShouRu: false, //收入部分
IsShowTuanFuFee: false, //团负费
IsShowLeaderFenTan: false, //领队分摊
IsShowCost: false, //成本统计
IsShowOtherPrice: false, //其他定价
},
};
},
components: {
},
methods: {
handleCurrentChange(val) {
this.queryData.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.pageIndex = 1;
this.queryData.currentPage = 1;
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList() {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost("travel_get_GetBaoJiaDanSwtPageListService", this.queryData, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.queryData.total = res.data.data.count;
this.noData = !this.queryData.total > 0;
this.dataList = res.data.data.pageData;
}
});
},
//删除报价单
delQuotation(ID) {
var that = this;
this.Confirm(this.$t('sm.schbnhfjscz'), function () {
let msg = {
Id: ID,
Status: 1,
};
that.apipost(
"travel_post_UpdateBaoJiaDanSwtService",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message);
that.getList();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
//报价单跳转
goMakeQuo(path, Id, Type) {
this.$router.push({
name: path,
query: {
Id: Id,
Type: Type,
blank: 'y',
tab: '报价单'
}
});
},
//开团或修改
goToOpenTravel(item) {
var routeName = this.$route.name;
var path = '';
if (routeName == 'newQuotation') {
path = 'TravelManager6'
}
if (routeName == 'newQuotation2') {
path = 'TravelManager5'
}
if (item.ID > 0) {
this.$router.push({
name: path,
query: {
configId: item.ID,
openState: 1,
isOffer: 1,
offerId: item.OfferId,
blank: 'y'
}
});
} else {
this.$router.push({
name: path
});
}
},
//显示下载弹窗
showDownLoad(item) {
this.downLoadMsg.ID = item.ID;
var fileName = "";
if (item.CustomerName) {
fileName += "【" + item.CustomerName + "】";
} else if (item.LtName) {
fileName += "【" + item.LtName + "】";
} else if (item.LineName) {
fileName += "【" + item.LineName + "】";
}
fileName += "成本下载.xls";
this.downLoadMsg.FileName = fileName;
this.downloadBill = true;
},
//报价单下载
DownLoadFile() {
this.downloadBill = false;
this.loading = true;
this.GetLocalFile("quotation_get_DownLoadQuotation", this.downLoadMsg, this.downLoadMsg.FileName, res => {
this.loading = false;
});
},
//报价单下载
SwtDownLoadFile(item) {
this.downloadBill = false;
this.loading = true;
var swtMsg = {
Id: item.Id
};
var fileName = "";
if (item.CustomerName) {
fileName += "【" + item.CustomerName + "】";
} else if (item.LtName) {
fileName += "【" + item.LtName + "】";
} else if (item.LineName) {
fileName += "【" + item.LineName + "】";
}
fileName += "成本下载.xls";
this.GetLocalFile("quotation_get_SwtDownLoadQuotation", swtMsg, fileName, res => {
this.loading = false;
});
},
GetAuth() {
var actionCode = this.$AuthCode.EditQuotation;
this.CheckUserAuth(actionCode, res => {
if (res.data.resultCode == 1 && res.data.data == 1) {
this.EditBtn = true;
}
});
},
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getLineList();
this.getList();
},
created() {}
};
</script>
......@@ -134,6 +134,22 @@
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
{{item.DayNum}}</div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核人: {{item.AuditMan}} </div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核状态: {{item.AuditStatusStr}} </div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
审核时间: {{item.AuditTimeStr}} </div>
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="newQuostayDays">
意见: {{item.AuditContent}} </div>
</div>
<div class="_right">
<div class="AuditUserInfo clearfix aa" style="margin-left:10px;">
<div class="AuditDanHeader">
......@@ -239,6 +255,7 @@
total: 0,
currentPage: 1,
Title: "",
AuditStatus: -1,
},
loading: true,
//线路列表
......
......@@ -2938,6 +2938,14 @@ export default {
title: '制作报价单'
},
},
{ //新版制作报价单详情[SWT旅行社]
path: '/QuotationPrice_SWT_details',
name: 'QuotationPrice_SWT_details',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/QuotationPrice_SWT_details'], resolve),
meta: {
title: '制作报价单'
},
},
{ //新版报价单审核
path: '/QuotationAduit',
name: 'QuotationAduit',
......@@ -3025,7 +3033,18 @@ export default {
meta: {
title: '审核单'
},
}, { //团控-报价详情
},
{ //团控-审核单
path: '/SWTAuditDan',
name: 'SWTAuditDan',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/SWTAuditDan'], resolve),
meta: {
title: '审核单'
},
},
{ //团控-报价详情
path: '/QuotationDetails',
name: 'QuotationDetails',
component: resolve => require(['@/components/TravelManager/TravelGroupControl/QuotationDetails'], resolve),
......
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