Commit 5b662960 authored by 华国豪's avatar 华国豪 🙄
parents 2e3b4bb8 931a4ec0
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-form> </el-form>
<div class="page_EasyReport_export"> <div class="page_EasyReport_export">
<button class="normalBtn " @click="exportExcel">导出EXCEL</button> <button class="normalBtn " @click="exportExcel">导出EXCEL</button>
<button class="normalBtn " @click="togbu">一键同步</button> <!-- <button class="normalBtn " @click="togbu">一键同步</button> -->
</div> </div>
<button class="normalBtn page_EasyReport_search" @click="getData">确定</button> <button class="normalBtn page_EasyReport_search" @click="getData">确定</button>
</div> </div>
......
...@@ -515,7 +515,7 @@ tr._item_list td:last-child { ...@@ -515,7 +515,7 @@ tr._item_list td:last-child {
<button class="hollowFixedBtn" @click="openKaiQiZzBox('一键关闭')">一键关闭</button>--> <button class="hollowFixedBtn" @click="openKaiQiZzBox('一键关闭')">一键关闭</button>-->
<button class="normalBtn" @click="resetPageIndex(),getPageList()">{{$t('pub.searchBtn')}}</button> <button class="normalBtn" @click="resetPageIndex(),getPageList()">{{$t('pub.searchBtn')}}</button>
<button class="hollowFixedBtn" @click="method5()">导出</button> <button class="hollowFixedBtn" @click="method5()">导出</button>
<button class="normalBtn" @click="togbu">一键同步</button> <!-- <button class="normalBtn" @click="togbu">一键同步</button> -->
<!--<button class="hollowFixedBtn" @click="exportExcelCurrentPage">导出2</button>--> <!--<button class="hollowFixedBtn" @click="exportExcelCurrentPage">导出2</button>-->
</li> </li>
</ul> </ul>
...@@ -1070,7 +1070,7 @@ export default { ...@@ -1070,7 +1070,7 @@ export default {
}, },
{ {
field: "MaoLiRate", field: "MaoLiRate",
formatter: this.moneyFormat, // formatter: this.moneyFormat,
title: "毛利率", title: "毛利率",
width: 90, width: 90,
titleAlign: "left", titleAlign: "left",
...@@ -1681,7 +1681,7 @@ export default { ...@@ -1681,7 +1681,7 @@ export default {
return this.priceFormat(rowData.YongJinShouRu); return this.priceFormat(rowData.YongJinShouRu);
if (field === "YingFu") return this.priceFormat(rowData.YingFu); if (field === "YingFu") return this.priceFormat(rowData.YingFu);
if (field === "MaoLi") return this.priceFormat(rowData.MaoLi); if (field === "MaoLi") return this.priceFormat(rowData.MaoLi);
if (field === "MaoLiRate") return rowData.MaoLiRate + "%"; // if (field === "MaoLiRate") return rowData.MaoLiRate;
if (field === "ShiJiLiRun") return this.priceFormat(rowData.ShiJiLiRun); if (field === "ShiJiLiRun") return this.priceFormat(rowData.ShiJiLiRun);
if (field === "TransportCost") if (field === "TransportCost")
return this.priceFormat(rowData.TransportCost); return this.priceFormat(rowData.TransportCost);
...@@ -1861,24 +1861,25 @@ export default { ...@@ -1861,24 +1861,25 @@ export default {
} else { } else {
let newData = []; let newData = [];
data.forEach((x, index) => { data.forEach((x, index) => {
x.MaoLiRate=x.MaoLiRate+"%";
if (index !== data.length - 1) { if (index !== data.length - 1) {
x.Is_Transport = x.Is_Transport === 0 ? "否" : "是"; x.Is_Transport = x.Is_Transport === 0 ? "否" : "是";
newData.push(x); newData.push(x);
} else { } else {
x.MaoLiRate = // x.MaoLiRate =
this.total === 0 ? 0 : parseFloat(x.MaoLiRate / this.total); // this.total === 0 ? 0 : parseFloat(x.MaoLiRate / this.total);
x.AverageIncome = // x.AverageIncome =
this.total === 0 // this.total === 0
? 0 // ? 0
: parseFloat(x.AverageIncome / this.total); // : parseFloat(x.AverageIncome / this.total);
x.AverageCost = // x.AverageCost =
this.total === 0 // this.total === 0
? 0 // ? 0
: parseFloat(x.AverageCost / this.total); // : parseFloat(x.AverageCost / this.total);
x.AverageProfit = // x.AverageProfit =
this.total === 0 // this.total === 0
? 0 // ? 0
: parseFloat(x.AverageProfit / this.total); // : parseFloat(x.AverageProfit / this.total);
x.LineName = "合计"; x.LineName = "合计";
x.TCID = ""; x.TCID = "";
x.TCNUM = ""; x.TCNUM = "";
......
<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>
<el-select v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList(msg.LineId)">
<el-option label="不限" value='-1'></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="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option label="不限" value='-1'></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='msg.TCNUM' ></el-input>
</span>
</li>
<li><span><em>日期</em><el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-
<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()"/>
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsTalbe" v-loading='loading'>
<tr>
<th width="w50">序号</th>
<th width="120">出发地</th>
<th width="120">航班时间</th>
<th width="80">公司团号</th>
<th width="120">机位总数/(Y/E/F)</th>
<th width="120">占床/不占床</th>
<th width="80">实际用房数</th>
<th></th>
<th v-for='item in thLengthTitle'>{{item}}</th>
<th>备注</th>
<th>操作</th>
</tr>
<tr v-if="list.length==0">
<td colspan="10">暂无数据</td>
</tr>
<tbody v-for="(outItem,outindex) in list" :class="{roomReservationsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<tr>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div style="max-width: 100px; min-width: 50px; ">{{outindex+1}}</div>
<div v-if='outItem.StaticsReportList.length>1' class="w100">合团号:{{outItem.NewCombinationNum}}</div>
</td>
<td><div class="w80">
{{item.StartCityNames}}
</div></td>
<td><div class="w80">
{{item.FlightDate}}
<el-popover popper-class="roomReservations_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="80">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5" style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</el-popover>
</div></td>
<td><div class="w120 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div></td>
<td><div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}</p>
</div></td>
<td><div class="w80 link">
<p @click="goUrlT('passengerHouse',item.TCIDS,'房间分配')">{{item.CommonReport.HouseStatistics.NeedBed}}/{{item.CommonReport.HouseStatistics.NoNeedBed}}</p>
</div></td>
<td><div class="w80">
{{item.CommonReport.HouseStatistics.RealityRoomNum}}
</div></td>
<td style="vertical-align: top;">
<div class="w260">
<p class="pDateStyle">时间</p>
<p class="pDateStyle" style="height: 50px!important; line-height: 50px;">酒店名称</p>
<p class="pDateStyle">用房数</p>
<p class="pDateStyle">房间预定数</p>
<p class="pDateStyle">
<span v-show="item.CommonReport.HouseStatistics.HouseTypeList.length==0">房型</span>
<span v-for="x in item.CommonReport.HouseStatistics.HouseTypeList">{{x.HouseTypeName}}</span>
</p>
</div>
</td>
<td v-for="(x,ii) in item.CommonReport.HotelList" style="vertical-align: top;">
<div class="w150" v-if='ii<item.CommonReport.valueLength'>
<p class="pDateStyle">{{x.CheckInDateStr}}</p>
<p @click="goUrlR('HotelManagement',x.HotelId,'酒店管理')" class="pDateStyle phoverStype ownScrollbarStyle" style="height: 50px!important; overflow:auto;">
<span v-if='x.HotelOrderState==0' class="colorE95252">(待定)</span>{{x.NewHotelName}}
</p>
<p class="pDateStyle">{{item.CommonReport.HouseStatistics.RealityRoomNum}}</p>
<p class="pDateStyle">
<span v-for="q in x.OrderDetailsList">{{q.HouseTypeCount}}</span>
</p>
<p class="pDateStyle">
<span v-for="x in item.CommonReport.HouseStatistics.HouseTypeList">{{x.HouseTypeCount}}</span>
<span v-if="item.CommonReport.HouseStatistics.HouseTypeList.length==0">暂无订房</span>
</p>
</div>
</td> <li><span><em>系列</em>
<td> <el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
<div class="w200"> <el-option label="不限" value='-1'></el-option>
{{item.Remarks}} <el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</div> </el-option>
</td> </el-select>
<td> </span>
<div class="w80 link"> </li>
<p @click="goUrl('roomReservationsDetails',item,'订房详情')">详情</p> <li>
</div> <span>
</td> <em>团号</em>
</tr> <el-input v-model='msg.TCNUM'></el-input>
</span>
</li>
<li><span><em>日期</em>
<el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-
<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" />
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsTalbe" v-loading='loading'>
<tr> <tr>
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;"> <th width="w50">序号</th>
<div class="link"> <th width="120">出发地</th>
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p> <th width="120">航班时间</th>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div> <th width="80">公司团号</th>
</div> <th width="120">机位总数/(Y/E/F)</th>
</td> <th width="120">占床/不占床</th>
<th width="80">实际用房数</th>
<th></th>
<th v-for='item in thLengthTitle'>{{item}}</th>
<th>备注</th>
<th>操作</th>
</tr>
<tr v-if="list.length==0">
<td colspan="10">暂无数据</td>
</tr> </tr>
</template> <tbody v-for="(outItem,outindex) in list" :class="{roomReservationsSplitTrCss:outindex%2!=0}">
</tbody> <template v-for="(item,index) in outItem.StaticsReportList">
</table> <tr>
</div> <td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total></el-pagination> <div style="max-width: 100px; min-width: 50px; ">{{outindex+1}}</div>
</div> <div v-if='outItem.StaticsReportList.length>1' class="w100">合团号:{{outItem.NewCombinationNum}}</div>
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
</td>
<td>
<div class="w80">
{{item.FlightDate}}
<el-popover popper-class="roomReservations_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="80">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</el-popover>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td>
<div class="w80 link">
<p @click="goUrlT('passengerHouse',item.TCIDS,'房间分配')">
{{item.CommonReport.HouseStatistics.NeedBed}}/{{item.CommonReport.HouseStatistics.NoNeedBed}}</p>
</div>
</td>
<td>
<div class="w80">
{{item.CommonReport.HouseStatistics.RealityRoomNum}}
</div>
</td>
<td style="vertical-align: top;">
<div class="w260">
<p class="pDateStyle">时间</p>
<p class="pDateStyle" style="height: 50px!important; line-height: 50px;">酒店名称</p>
<p class="pDateStyle">用房数</p>
<p class="pDateStyle">房间预定数</p>
<p class="pDateStyle">
<span v-show="item.CommonReport.HouseStatistics.HouseTypeList.length==0">房型</span>
<span v-for="x in item.CommonReport.HouseStatistics.HouseTypeList">{{x.HouseTypeName}}</span>
</p>
</div>
</td>
<td v-for="(x,ii) in item.CommonReport.HotelList" style="vertical-align: top;">
<div class="w150" v-if='ii<item.CommonReport.valueLength'>
<p class="pDateStyle">{{x.CheckInDateStr}}</p>
<p @click="goUrlR('HotelManagement',x.HotelId,'酒店管理')"
class="pDateStyle phoverStype ownScrollbarStyle" style="height: 50px!important; overflow:auto;">
<span v-if='x.HotelOrderState==0' class="colorE95252">(待定)</span>{{x.NewHotelName}}
</p>
<p class="pDateStyle">{{item.CommonReport.HouseStatistics.RealityRoomNum}}</p>
<p class="pDateStyle">
<span v-for="q in x.OrderDetailsList">{{q.HouseTypeCount}}</span>
</p>
<p class="pDateStyle">
<span v-for="x in item.CommonReport.HouseStatistics.HouseTypeList">{{x.HouseTypeCount}}</span>
<span v-if="item.CommonReport.HouseStatistics.HouseTypeList.length==0">暂无订房</span>
</p>
</div>
</td>
<td>
<div class="w200">
{{item.Remarks}}
</div>
</td>
<td>
<div class="w80 link">
<p @click="goUrl('roomReservationsDetails',item,'订房详情')">详情</p>
</div>
</td>
</tr>
<tr>
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div>
</td>
</tr>
</template>
</tbody>
</table>
</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>
</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:1, SelectType: 1,
LineId: 14, LineId: 14,
LineteamId: "-1", LineteamId: "-1",
StartDate:'', StartDate: '',
EndDate:'' EndDate: ''
},
LineList: [],
LineTeamList: [],
thLengthTitle:[],
list:[],
colspanTotal:0,
}
},
methods: {
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: {
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 => {
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) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
this.loading = true
this.apipost('dmcstatistics_post_GetUniteCombinationNumService', this.msg, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.msg.LineteamId = "-1"; this.loading = false
this.LineTeamList = res.data.data; console.log(res.data.data.pageData.data)
this.total = res.data.data.count
this.list = res.data.data.pageData.data
this.thLengthArr = []
this.thLengthTitle = []
this.colspanTotal = res.data.data.pageData.columnsCount + 9
for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.thLengthTitle.push('第' + i + '晚')
}
this.list.forEach(outItem => {
outItem.StaticsReportList.forEach(item => {
item.CommonReport['valueLength'] = item.CommonReport.HotelList.length
if (item.CommonReport.HotelList.length < res.data.data.pageData.columnsCount) {
let _cha = res.data.data.pageData.columnsCount - item.CommonReport.HotelList.length
let _chaArr = new Array()
for (let i = 0; i < _cha; i++) {
_chaArr.push({
'HotelName': ''
})
}
item.CommonReport.HotelList = item.CommonReport.HotelList.concat(_chaArr)
} else {
}
})
})
// this.list.forEach(item=>{
// item.CommonReport['valueLength']=item.CommonReport.HotelList.length
// if(item.CommonReport.HotelList.length<res.data.data.pageData.columnsCount){
// let _cha=res.data.data.pageData.columnsCount-item.CommonReport.HotelList.length
// let _chaArr=new Array()
// for (let i=0;i<_cha;i++) {
// _chaArr.push({'HotelName':''})
// }
// item.CommonReport.HotelList=item.CommonReport.HotelList.concat(_chaArr)
// console.log(item.CommonReport)
// }else{
//
// }
// })
} else {
this.loading = false
this.$message.error(res.data.message)
} }
} }, err => {})
); },
},
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) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList(){
this.loading=true
this.apipost('dmcstatistics_post_GetUniteCombinationNumService',this.msg,res=>{
if(res.data.resultCode==1){
this.loading=false
console.log(res.data.data.pageData.data)
this.total=res.data.data.count
this.list=res.data.data.pageData.data
this.thLengthArr=[]
this.thLengthTitle=[]
this.colspanTotal=res.data.data.pageData.columnsCount+9
for(let i=1;i<=res.data.data.pageData.columnsCount;i++){
this.thLengthTitle.push('第'+i+'晚')
}
this.list.forEach(outItem=>{
outItem.StaticsReportList.forEach(item=>{
item.CommonReport['valueLength']=item.CommonReport.HotelList.length
if(item.CommonReport.HotelList.length<res.data.data.pageData.columnsCount){
let _cha=res.data.data.pageData.columnsCount-item.CommonReport.HotelList.length
let _chaArr=new Array()
for (let i=0;i<_cha;i++) {
_chaArr.push({'HotelName':''})
}
item.CommonReport.HotelList=item.CommonReport.HotelList.concat(_chaArr)
}else{
}
})
})
// this.list.forEach(item=>{
// item.CommonReport['valueLength']=item.CommonReport.HotelList.length
// if(item.CommonReport.HotelList.length<res.data.data.pageData.columnsCount){
// let _cha=res.data.data.pageData.columnsCount-item.CommonReport.HotelList.length
// let _chaArr=new Array()
// for (let i=0;i<_cha;i++) {
// _chaArr.push({'HotelName':''})
// }
// item.CommonReport.HotelList=item.CommonReport.HotelList.concat(_chaArr)
// console.log(item.CommonReport)
// }else{
//
// }
// })
}else{
this.loading=false
this.$message.error(res.data.message)
}
},err=>{})
},
}, },
beforeCreate(){ beforeCreate() {
}, },
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()
// this.getLineList() // this.getLineList()
this.getLineTeamList() this.getLineTeamList()
}, },
} }
</script> </script>
<style> <style>
.roomReservationsSplitTrCss td{background: #eee!important;} .roomReservationsSplitTrCss td {
.roomReservationsTalbe{ background: #ccc;} background: #eee !important;
.roomReservationsTalbe tr th{background: #E6E6E6;height:40px; font-size: 12px; color: #333;} }
.roomReservationsTalbe tr{background: #fff;text-align: center; height: 40px;}
.roomReservationsTalbe tr td{font-size: 12px;} .roomReservationsTalbe {
.roomReservationsTalbe tr td .pDateStyle{border-bottom: 1px solid #ccc; min-height: 24px; line-height: 24px; margin-top: 0; box-sizing: content-box; padding: 0 10px;} background: #ccc;
.roomReservationsTalbe tr td .pDateStyle:last-child{border-bottom: none;} }
.roomReservationsTalbe tr td .pDateStyle>span:after{content: '/';}
.roomReservationsTalbe tr td .pDateStyle>span:last-child:after{content:''} .roomReservationsTalbe tr th {
.roomReservationsTalbe tr td .link p:hover{text-decoration: underline; cursor: pointer;} background: #E6E6E6;
.roomReservationsTalbe tr td .phoverStype:hover{text-decoration: underline; cursor: pointer;} height: 40px;
.roomReservations_tripDetails {padding: 0; box-shadow: 0px 1px 3px 0px #dedede; max-height: 400px;overflow-y: auto;} font-size: 12px;
.roomReservations_tripDetails .popper__arrow::after {border-bottom-color: #ededed !important;} color: #333;
.roomReservations_tripDetails table { padding: 10px 0 0 20px; background-color: #ededed; border-collapse: collapse; border: 1px solid #d2d2d2; font-size: 12px;} }
.roomReservations_tripDetails table th { background-color: #ededed; padding: 5px;}
.roomReservations_tripDetails table td { background-color: #ffffff; padding: 9px 15px;color: #333333;border: 1px solid #d2d2d2;} .roomReservationsTalbe tr {
.roomReservations_tripDetails table td._d_name {background-color: #ededed;} background: #fff;
.roomReservations_tripDetails table ._color_666 {color: #666666;} text-align: center;
.roomReservations_tripDetails table tr._color_666 th { padding: 9px 15px;} height: 40px;
}
.roomReservationsTalbe tr td {
font-size: 12px;
}
.roomReservationsTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
min-height: 24px;
line-height: 24px;
margin-top: 0;
box-sizing: content-box;
padding: 0 10px;
}
.roomReservationsTalbe tr td .pDateStyle:last-child {
border-bottom: none;
}
.roomReservationsTalbe tr td .pDateStyle>span:after {
content: '/';
}
.roomReservationsTalbe tr td .pDateStyle>span:last-child:after {
content: ''
}
.roomReservationsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.roomReservationsTalbe tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.roomReservations_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
max-height: 400px;
overflow-y: auto;
}
.roomReservations_tripDetails .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.roomReservations_tripDetails table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.roomReservations_tripDetails table th {
background-color: #ededed;
padding: 5px;
}
.roomReservations_tripDetails table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.roomReservations_tripDetails table td._d_name {
background-color: #ededed;
}
.roomReservations_tripDetails table ._color_666 {
color: #666666;
}
.roomReservations_tripDetails table tr._color_666 th {
padding: 9px 15px;
}
</style> </style>
<template> <template>
<div> <div>
<div class="query-box" style="border-bottom: none;"> <div class="query-box" style="border-bottom: none;">
<ul> <ul>
<li> <li>
<input type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)"/> <input type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)"/> <input type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" />
</li> </li>
</ul> </ul>
</div> </div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle"> <div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe"> <table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe">
<tr> <tr>
<th class="fz14" colspan="10">团队信息(定团号:{{NewCombinationNum}})</th> <th class="fz14" colspan="10">团队信息(定团号:{{NewCombinationNum}})</th>
<th class="fz14" colspan="12">地接操作信息</th> <th class="fz14" colspan="12">地接操作信息</th>
</tr> </tr>
<tr> <tr>
<th width="120">公司团号</th> <th width="120">公司团号</th>
<th width="200">酒店名称</th> <th width="200">酒店名称</th>
<th width="80">入住时间</th> <th width="80">入住时间</th>
<th width="120">机位总数/(Y/E/F)</th> <th width="120">机位总数/(Y/E/F)</th>
<th width="120">占床/不占床</th> <th width="120">占床/不占床</th>
<th width="80">实际用房数</th> <th width="80">实际用房数</th>
<th width="150">房间类型</th> <th width="150">房间类型</th>
<th width="80">房间数</th> <th width="80">房间数</th>
<th width="80">房间人数</th> <th width="80">房间人数</th>
<th width="200">修改酒店</th> <th width="200">修改酒店</th>
<th width="150">房间预定数</th> <th width="150">房间预定数</th>
<th width="120">尚差房间数</th> <th width="120">尚差房间数</th>
<th width="80">单价/每人</th> <th width="80">单价/每人</th>
<th width="80">免减人数</th> <th width="80">免减人数</th>
<th width="80">金额小计</th> <th width="80">金额小计</th>
<th width="80">返佣</th> <th width="80">返佣</th>
<th width="80">金额总计</th> <th width="80">金额总计</th>
<th width="80">付款方式</th> <th width="80">付款方式</th>
<th width="80">联系电话</th> <th width="80">联系电话</th>
<th width="80">地址</th> <th width="80">地址</th>
<th width="80">订团号</th> <th width="80">订团号</th>
<th width="80">备注</th> <th width="80">备注</th>
<th width="80">操作</th> <th width="80">操作</th>
</tr> </tr>
<tr v-for="(item,index) in list"> <tr v-for="(item,index) in list">
<td :rowspan="list.length" v-if="index==0"> <td :rowspan="list.length" v-if="index==0">
<div class="w120"> <div class="w120">
<p class="link" @click="goUrlT('productQuery',TCNUM,'产品查询')">{{TCNUM}}</p> <p class="link" @click="goUrlT('productQuery',TCNUM,'产品查询')">{{TCNUM}}</p>
<el-button @click='openChart()' v-if="CreateByAccount!=''" type="primary" style="background:#6DD875; border-color:#6DD875;padding:4px;margin-top:10px;" >联系OP</el-button> <el-button @click='openChart()' v-if="CreateByAccount!=''" type="primary"
</div> style="background:#6DD875; border-color:#6DD875;padding:4px;margin-top:10px;">联系OP</el-button>
</td> </div>
<td><div class="w200 padding10"> </td>
<p class="link" style="word-break: normal;" :class="{'Hotel_red':item.HotelChangeState==3}" @click="goUrlR('HotelManagement',item.HotelId,'酒店管理')">{{item.HotelName}}</p> <td>
</div> <div class="w200 padding10">
</td> <p class="link" style="word-break: normal;" :class="{'Hotel_red':item.HotelChangeState==3}"
<td><div class="w80">{{item.CheckInDateStr}}</div></td> @click="goUrlR('HotelManagement',item.HotelId,'酒店管理')">{{item.HotelName}}</p>
<td> </div>
<div class="w120"> </td>
<p class="link" @click="goUrlT('RegistrationList',item.TCID,'报名清单')">{{flightTotal}}/{{item.HouseStatistics.RealityYSeatNum}}/{{item.HouseStatistics.RealityESeatNum}}/{{item.HouseStatistics.RealityFSeatNum}}</p> <td>
</div> <div class="w80">{{item.CheckInDateStr}}</div>
</td> </td>
<td><div class="w120"> <td>
<p class="link" @click="goUrlT('passengerHouse',item.TCIDS,'房间分配')">{{item.HouseStatistics.NeedBed}}/{{item.HouseStatistics.NoNeedBed}}</p> <div class="w120">
</div></td> <p class="link" @click="goUrlT('RegistrationList',item.TCID,'报名清单')">
<td><div class="w80">{{item.HouseStatistics.RealityRoomNum}}</div></td> {{flightTotal}}/{{item.HouseStatistics.RealityYSeatNum}}/{{item.HouseStatistics.RealityESeatNum}}/{{item.HouseStatistics.RealityFSeatNum}}
<td><div class="w150"> </p>
<p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList"> </div>
{{o.HouseTypeName}} </td>
</p> <td>
</div></td> <div class="w120">
<td><div class="w80"> <p class="link" @click="goUrlT('passengerHouse',item.TCIDS,'房间分配')">
<p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList"> {{item.HouseStatistics.NeedBed}}/{{item.HouseStatistics.NoNeedBed}}</p>
{{o.HouseTypeCount}} </div>
</p> </td>
</div></td> <td>
<td><div class="w80"> <div class="w80">{{item.HouseStatistics.RealityRoomNum}}</div>
<p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList"> </td>
{{o.HouseGuestNum}} <td>
</p> <div class="w150">
</div></td> <p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList">
<td><div class="w150"> {{o.HouseTypeName}}
<el-select class='w120 sel' v-model='item.NewHotelId' filterable :placeholder="$t('pub.pleaseSel')" @visible-change='getHotelList(item)' @change='sendValue(item)'> </p>
<el-option </div>
v-for='itemHotel in item.hotelList' </td>
:label='itemHotel.Name' <td>
:value='itemHotel.ID' <div class="w80">
:key='itemHotel.ID' <p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList">
></el-option> {{o.HouseTypeCount}}
</el-select> </p>
</div></td> </div>
<td> </td>
<div class="w80"> <td>
<p class="pHouseStyle" v-for="o in item.OrderDetailsList"> <div class="w80">
<el-input class='w50 tcenter' @keyup.native="checkInteger(o,'HouseTypeCount')" v-model='o.HouseTypeCount'></el-input> <p class="pHouseStyle" v-for="o in item.HouseStatistics.HouseTypeList">
</p> {{o.HouseGuestNum}}
</div> </p>
</td> </div>
<td> </td>
<div class="w80"> <td>
<p class="pHouseStyle" :class="{colorRed:o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount<0}" v-for="(o,index) in item.OrderDetailsList"> <div class="w150">
{{o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount}} <el-select class='w120 sel' v-model='item.NewHotelId' filterable :placeholder="$t('pub.pleaseSel')"
</p> @visible-change='getHotelList(item)' @change='sendValue(item)'>
</div> <el-option v-for='itemHotel in item.hotelList' :label='itemHotel.Name' :value='itemHotel.ID'
</td> :key='itemHotel.ID'></el-option>
<td> </el-select>
<div class="w120"> </div>
<p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)"> </td>
<el-input @keyup.native="checkInteger(o,'UnitPrice')" class='w80 tcenter' v-model='o.UnitPrice'></el-input> <td>
</p> <div class="w80">
</div> <p class="pHouseStyle" v-for="o in item.OrderDetailsList">
</td> <el-input class='w50 tcenter' @keyup.native="checkInteger(o,'HouseTypeCount')"
<td> v-model='o.HouseTypeCount'></el-input>
<div class="w80"> </p>
<p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)"> </div>
<el-input class='w50' @keyup.native="checkInteger(o,'HotelDiscount')" v-model='o.HotelDiscount'></el-input> </td>
</p> <td>
</div> <div class="w80">
</td> <p class="pHouseStyle"
<td> :class="{colorRed:o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount<0}"
<div class="w80"> v-for="(o,index) in item.OrderDetailsList">
<p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList"> {{o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount}}
{{o.UnitPrice*(o.HouseGuestNum-o.HotelDiscount)}} </p>
</p> </div>
</td>
</div> <td>
</td> <div class="w120">
<td> <!--返佣--> <p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)">
<div class="w80"> <el-input @keyup.native="checkInteger(o,'UnitPrice')" class='w80 tcenter' v-model='o.UnitPrice'>
<p class="pHouseStyle link" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)"> </el-input>
<span class="spanlink" v-if='o.IsRebateRatio==0' @click="goUrl('HotelInfo',o,'酒店管理')">设置</span> </p>
<span v-if='o.IsRebateRatio!=0'>{{o.RebateRatio}}</span> </div>
</p> </td>
</div> <td>
</td> <div class="w80">
<td> <p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)">
<div class="w120"> <el-input class='w50' @keyup.native="checkInteger(o,'HotelDiscount')" v-model='o.HotelDiscount'>
{{item.TotalPrice}} </el-input>
</div> </p>
</td> </div>
<td><div class="w120"> </td>
<el-select class='w100 sel' v-model='item.PayStyle' :placeholder="$t('pub.pleaseSel')"> <td>
<el-option label='请选择' value='0' ></el-option> <div class="w80">
<el-option label='现付' value='1' ></el-option> <p class="pHouseStyle" v-for="(o,index) in item.OrderDetailsList">
<el-option label='签单' value='2' ></el-option> {{o.UnitPrice*(o.HouseGuestNum-o.HotelDiscount)}}
<el-option label='实物抵扣' value='5' ></el-option> </p>
<el-option label='预付' value='4' ></el-option>
</el-select> </div>
</div></td> </td>
<td><div class="w120">{{item.Tel}}</div></td> <td>
<td><div class="w200 padding10">{{item.Address}}</div></td> <!--返佣-->
<td> <div class="w80">
<div class="w150"> <p class="pHouseStyle link" v-for="(o,index) in item.OrderDetailsList" @input="calculationPrice(item)">
<el-input class='w120' v-model='item.ReserveNo'></el-input> <span class="spanlink" v-if='o.IsRebateRatio==0' @click="goUrl('HotelInfo',o,'酒店管理')">设置</span>
</div> <span v-if='o.IsRebateRatio!=0'>{{o.RebateRatio}}</span>
</td> </p>
<td> </div>
<div class="w150"> </td>
<el-input type='textarea' class='w120' v-model='item.Remarks'></el-input> <td>
</div> <div class="w120">
</td> {{item.TotalPrice}}
<td> </div>
<input type="button" class="roomBtn" value="保存" @click="SaveSingle(item)"/> </td>
</td> <td>
</tr> <div class="w120">
</table> <el-select class='w100 sel' v-model='item.PayStyle' :placeholder="$t('pub.pleaseSel')">
</div> <el-option label='请选择' value='0'></el-option>
</div> <el-option label='现付' value='1'></el-option>
<el-option label='签单' value='2'></el-option>
<el-option label='实物抵扣' value='5'></el-option>
<el-option label='预付' value='4'></el-option>
</el-select>
</div>
</td>
<td>
<div class="w120">{{item.Tel}}</div>
</td>
<td>
<div class="w200 padding10">{{item.Address}}</div>
</td>
<td>
<div class="w150">
<el-input class='w120' v-model='item.ReserveNo'></el-input>
</div>
</td>
<td>
<div class="w150">
<el-input type='textarea' class='w120' v-model='item.Remarks'></el-input>
</div>
</td>
<td>
<input type="button" class="roomBtn" value="保存" @click="SaveSingle(item)" />
</td>
</tr>
</table>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
data () { data() {
return { return {
defaultSelectValue:0, defaultSelectValue: 0,
list:[], list: [],
roomList:[], roomList: [],
TCNUM:'', TCNUM: '',
flightTotal:0, flightTotal: 0,
GuestNum:0, GuestNum: 0,
hotelList:[], hotelList: [],
//创建人头像 //创建人头像
CreateByPhoto:'', CreateByPhoto: '',
//创建人联系电话 //创建人联系电话
CreateByAccount:'', CreateByAccount: '',
//创建人姓名 //创建人姓名
CreateByName:'', CreateByName: '',
} }
}, },
methods: { methods: {
//联系op //联系op
openChart(){ openChart() {
this.MsgBus.$emit('openChat',{account:this.CreateByAccount,alias:this.CreateByName,avatar:this.CreateByPhoto}) this.MsgBus.$emit('openChat', {
}, account: this.CreateByAccount,
goUrl(path, obj, name) { alias: this.CreateByName,
this.$router.push({ avatar: this.CreateByPhoto
path: path, })
query: { },
id: obj.HotelId, goUrl(path, obj, name) {
blank: "y", this.$router.push({
tab: name path: path,
} query: {
}); id: obj.HotelId,
}, blank: "y",
goUrlR(path,obj,title){ tab: name
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}}) goUrlR(path, obj, title) {
}, this.$router.push({
getList(){ name: path,
this.apipost('dmcstatistics_get_GetHotelStaticsDetail',{TCIDs:this.$route.query.id,NewCombinationNum:this.$route.query.NewCombinationNum},res=>{ query: {
if(res.data.resultCode==1){ "ID": obj,
this.list=res.data.data.HotelList; blank: 'y',
this.CreateBy = res.data.data.CreateBy; tab: title
this.CreateByPhoto = res.data.data.CreateByPhoto; }
this.CreateByAccount = res.data.data.CreateByAccount; })
this.list.forEach(item=>{ },
this.calculationPrice(item) goUrlT(path, obj, title) {
item.hotelList.push({ this.$router.push({
Name:item.NewHotelName, name: path,
ID:item.NewHotelId query: {
}) "id": obj,
item.PayStyle=item.PayStyle.toString() blank: 'y',
item.OrderDetailsList.forEach((x,index1)=>{ tab: title
if(x.HouseTypeCount<=0){ }
x.HouseTypeCount = item.HouseStatistics.HouseTypeList[index1].HouseTypeCount.toString(); })
}else{ },
x.HouseTypeCount =x.HouseTypeCount.toString(); getList() {
} this.apipost('dmcstatistics_get_GetHotelStaticsDetail', {
x.HouseTypeCount = x.HouseTypeCount.toString(); TCIDs: this.$route.query.id,
x.UnitPrice = x.UnitPrice.toString(); NewCombinationNum: this.$route.query.NewCombinationNum
x.HotelDiscount = x.HotelDiscount.toString(); }, res => {
}) if (res.data.resultCode == 1) {
}) this.list = res.data.data.HotelList;
}else{ this.CreateBy = res.data.data.CreateBy;
this.$message.error(res.data.message) this.CreateByPhoto = res.data.data.CreateByPhoto;
} this.CreateByAccount = res.data.data.CreateByAccount;
},err=>{}) this.list.forEach(item => {
}, this.calculationPrice(item)
calculationPrice(obj){ item.hotelList.push({
let totalPrice=0 Name: item.NewHotelName,
obj.OrderDetailsList.forEach(item=>{ ID: item.NewHotelId
totalPrice+=item.UnitPrice*(item.HouseGuestNum-item.HotelDiscount)*(1-item.RebateRatio/100) })
}) item.PayStyle = item.PayStyle.toString()
obj.TotalPrice=totalPrice.toFixed(2) item.OrderDetailsList.forEach((x, index1) => {
this.$forceUpdate() if (x.HouseTypeCount <= 0) {
}, x.HouseTypeCount = item.HouseStatistics.HouseTypeList[index1].HouseTypeCount.toString();
getHotelList(obj){ } else {
this.apipost('hotel_post_GetLineHotelList',{IsGetPic: 0,IsGetRemark: 0,QCity:obj.QCity},res=>{ x.HouseTypeCount = x.HouseTypeCount.toString();
if(res.data.resultCode==1){ }
obj.hotelList=res.data.data x.HouseTypeCount = x.HouseTypeCount.toString();
}else{ x.UnitPrice = x.UnitPrice.toString();
this.$message.error(res.data.message) x.HotelDiscount = x.HotelDiscount.toString();
} })
},err=>{}) })
}, } else {
sendValue(obj){ this.$message.error(res.data.message)
if(obj.hotelList.length>0) }
{ }, err => {})
let ckedObj=obj.hotelList.find(item=>item.ID==obj.NewHotelId) },
obj.Address=ckedObj.Address calculationPrice(obj) {
obj.Tel=ckedObj.Tel let totalPrice = 0
obj.NewHotelName=ckedObj.Name obj.OrderDetailsList.forEach(item => {
}else{ totalPrice += item.UnitPrice * (item.HouseGuestNum - item.HotelDiscount) * (1 - item.RebateRatio / 100)
obj.Address='' })
obj.Tel='' obj.TotalPrice = totalPrice.toFixed(2)
} this.$forceUpdate()
}, },
saveList(type){ getHotelList(obj) {
if(type==0){ this.apipost('hotel_post_GetLineHotelList', {
this.list.forEach(item=>{ IsGetPic: 0,
item.HotelOrderState=0 IsGetRemark: 0,
}) QCity: obj.QCity
} }, res => {
if(type==1){ if (res.data.resultCode == 1) {
this.list.forEach(item=>{ obj.hotelList = res.data.data
item.HotelOrderState=1 } else {
}) this.$message.error(res.data.message)
} }
this.list.forEach(x=>{ }, err => {})
x.OrderDetailsList.forEach(y=>{ },
y.HouseTypeCount = parseInt(y.HouseTypeCount); sendValue(obj) {
y.UnitPrice = parseInt(y.UnitPrice); if (obj.hotelList.length > 0) {
y.HotelDiscount = parseInt(y.HotelDiscount); let ckedObj = obj.hotelList.find(item => item.ID == obj.NewHotelId)
}) obj.Address = ckedObj.Address
}) obj.Tel = ckedObj.Tel
this.apipost('dmcstatistics_get_SetHotelOrder',this.list,res=>{ obj.NewHotelName = ckedObj.Name
if(res.data.resultCode==1){ } else {
this.Success(res.data.message) obj.Address = ''
}else{ obj.Tel = ''
this.Error(res.data.message) }
} },
},err=>{}) saveList(type) {
}, if (type == 0) {
//单条保存 this.list.forEach(item => {
SaveSingle(item){ item.HotelOrderState = 0
item.HotelOrderState=1; })
this.apipost('dmcstatistics_post_SetNewHotelOrder',item,res=>{ }
if(res.data.resultCode==1){ if (type == 1) {
this.Success(res.data.message) this.list.forEach(item => {
}else{ item.HotelOrderState = 1
this.Error(res.data.message) })
} }
},err=>{}) this.list.forEach(x => {
x.OrderDetailsList.forEach(y => {
y.HouseTypeCount = parseInt(y.HouseTypeCount);
y.UnitPrice = parseInt(y.UnitPrice);
y.HotelDiscount = parseInt(y.HotelDiscount);
})
})
this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
} else {
this.Error(res.data.message)
}
}, err => {})
},
//单条保存
SaveSingle(item) {
item.HotelOrderState = 1;
this.apipost('dmcstatistics_post_SetNewHotelOrder', item, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
} else {
this.Error(res.data.message)
}
}, err => {})
} }
},
created() {
}, },
mounted() { mounted() {
this.TCNUM=this.$route.query.TCNUM; this.TCNUM = this.$route.query.TCNUM;
this.flightTotal=this.$route.query.flightTotal; this.flightTotal = this.$route.query.flightTotal;
this.GuestNum=this.$route.query.GuestNum; this.GuestNum = this.$route.query.GuestNum;
this.NewCombinationNum=this.$route.query.NewCombinationNum; this.NewCombinationNum = this.$route.query.NewCombinationNum;
this.getList() this.getList()
// this.getHotelList() },
}, }
}
</script> </script>
<style> <style>
.roomReservationsDetailsTalbe .roomBtn{ .roomReservationsDetailsTalbe .roomBtn {
color: #fff; color: #fff;
padding: 0 10px!important; padding: 0 10px !important;
height: 30px!important; height: 30px !important;
background: #E95252; background: #E95252;
border: 1px solid #E95252; border: 1px solid #E95252;
cursor: pointer; cursor: pointer;
border-radius: 15px; border-radius: 15px;
margin:0 10px; margin: 0 10px;
} }
.roomReservationsDetailsTalbe{ background: #ddd;}
.roomReservationsDetailsTalbe tr th{background: #eee;height:40px; font-size: 12px; color: #333;} .roomReservationsDetailsTalbe {
.roomReservationsDetailsTalbe tr{background: #fff;text-align: center; height: 40px;} background: #ddd;
.roomReservationsDetailsTalbe tr td{font-size: 12px;} }
.roomReservationsDetailsTalbe tr td .pHouseStyle{border-bottom: 1px solid #ccc; height:28px; line-height: 28px;}
.roomReservationsDetailsTalbe tr td .colorRed{color: #E95252;} .roomReservationsDetailsTalbe tr th {
.roomReservationsDetailsTalbe tr td .pHouseStyle:last-child{border-bottom: none;} background: #eee;
.roomReservationsDetailsTalbe tr td input{height: 20px!important; padding: 0!important; text-align: center;} height: 40px;
.roomReservationsDetailsTalbe tr td .sel input{height: 34px!important; padding-right: 20px!important; padding-left: 5px!important; font-size: 12px!important;} font-size: 12px;
.roomReservationsDetailsTalbe tr td .link:hover{text-decoration: underline; cursor: pointer;} color: #333;
.roomReservationsDetailsTalbe .Hotel_red{color:red;} }
</style>
\ No newline at end of file .roomReservationsDetailsTalbe tr {
background: #fff;
text-align: center;
height: 40px;
}
.roomReservationsDetailsTalbe tr td {
font-size: 12px;
}
.roomReservationsDetailsTalbe tr td .pHouseStyle {
border-bottom: 1px solid #ccc;
height: 28px;
line-height: 28px;
}
.roomReservationsDetailsTalbe tr td .colorRed {
color: #E95252;
}
.roomReservationsDetailsTalbe tr td .pHouseStyle:last-child {
border-bottom: none;
}
.roomReservationsDetailsTalbe tr td input {
height: 20px !important;
padding: 0 !important;
text-align: center;
}
.roomReservationsDetailsTalbe tr td .sel input {
height: 34px !important;
padding-right: 20px !important;
padding-left: 5px !important;
font-size: 12px !important;
}
.roomReservationsDetailsTalbe tr td .link:hover {
text-decoration: underline;
cursor: pointer;
}
.roomReservationsDetailsTalbe .Hotel_red {
color: red;
}
</style>
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