Commit 78f66021 authored by 黄奎's avatar 黄奎

酒店详情页面修改

parent 9c8b21cd
<style>
.roomReservationsDetailsTalbe .el-button {
padding: 5px;
display: block;
margin: 5px auto;
font-size: 12px;
}
</style>
<template>
<div>
<div class="query-box" style="border-bottom: none;">
......@@ -7,95 +17,103 @@
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}" class="ownScrollbarStyle" ref="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe">
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading">
<tr>
<th class="fz14" colspan="8">团队信息</th>
<th class="fz14" colspan="15">地接操作信息</th>
<th class="fz14" colspan="13">地接操作信息</th>
</tr>
<tr>
<th width="100">入住时间</th>
<th width="200">酒店名称</th>
<th width="120">机位总数/(Y/E/F)</th>
<th width="120">占床/不占床</th>
<th width="80">实际用房数</th>
<th width="150">房间类型</th>
<th width="80">房间数</th>
<th width="80">房间人数</th>
<th width="200">修改酒店</th>
<th width="150">房间预定数</th>
<th width="150">预定人数</th>
<th width="120">尚差房间数</th>
<th width="120">入住时间</th>
<th width="180">酒店名称</th>
<th width="120">机位总数<br />(Y/E/F)</th>
<th width="80">占床/<br />不占床</th>
<th width="80">实际<br />用房数</th>
<th width="100">房间类型</th>
<th width="70">房间数</th>
<th width="70">房间<br />人数</th>
<th width="110">修改酒店</th>
<th width="80">房间<br />预定数</th>
<th width="80">预定人数</th>
<th width="80">尚差<br />房间数</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="100">金额总计</th>
<th width="250">付款方式&订团号&备注</th>
<th width="80">操作</th>
</tr>
<template v-for="(item,index) in list">
<tr v-for="(subItem,subIndex) in item.HotelOrderList" v-loading="loading">
<!-- 入住时间 -->
<td :rowspan="item.HotelOrderList.length" v-if="subIndex==0">
<div class="w100">{{item.UseTimeStr}}</div>
<template v-for="(subItem,subIndex) in item.HotelOrderList">
<tr v-for="(childItem,childIndex) in subItem.OrderDetailsList">
<td v-if="childIndex==0&&subIndex==0" :rowspan="5*item.HotelOrderList.length">
{{item.UseTimeStr}}
</td>
<!-- 酒店名称 -->
<td>
<div class="w200 padding10">
<p class="link" style="word-break: normal;" :class="{'Hotel_red':subItem.HotelChangeState==3}"
<td v-if="childIndex==0" :rowspan="5">
<table class="hotelTable">
<tr>
<td colspan="2">
<p class="link" style="word-break: normal;text-align:left;"
:class="{'Hotel_red':subItem.HotelChangeState==3}"
@click="goUrlR('HotelManagement',subItem.HotelId,'酒店管理')">{{subItem.HotelName}}</p>
</div>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
电话:
</td>
<td style="text-align:left">
{{subItem.Tel}}
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
地址:
</td>
<td style="text-align:left">
{{subItem.Address}}
</td>
</tr>
</table>
</td>
<!-- 机位总数/(Y/E/F) -->
<td>
<div class="w120">
<td v-if="childIndex==0" :rowspan="5">
<p class="link" @click="goUrlT('RegistrationList',item.TCID,'报名清单')">
{{flightTotal}}/{{subItem.HouseStatistics.RealityYSeatNum}}/{{subItem.HouseStatistics.RealityESeatNum}}/{{subItem.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<!-- 占床/不占床 -->
<td>
<div class="w120">
<td v-if="childIndex==0" :rowspan="5">
<p class="link" @click="goUrlT('passengerHouse',item.TCIDS,'房间分配')">
{{subItem.HouseStatistics.NeedBed}}/{{subItem.HouseStatistics.NoNeedBed}}</p>
</div>
</td>
<!-- 实际用房数 -->
<td>
<div class="w80">{{subItem.HouseStatistics.RealityRoomNum}}</div>
<td v-if="childIndex==0" :rowspan="5">
{{subItem.HouseStatistics.RealityRoomNum}}
</td>
<!-- 房间类型 -->
<td>
<div class="w150">
<p class="pHouseStyle" v-for="o in subItem.HouseStatistics.HouseTypeList">
{{o.HouseTypeName}}
</p>
</div>
{{subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeName}}
</td>
<!-- 房间数 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="o in subItem.HouseStatistics.HouseTypeList">
{{o.HouseTypeCount}}
</p>
</div>
{{subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount}}
</td>
<!-- 房间人数 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="o in subItem.HouseStatistics.HouseTypeList">
{{o.HouseGuestNum}}
</p>
</div>
{{subItem.HouseStatistics.HouseTypeList[childIndex].HouseGuestNum}}
</td>
<!-- 修改酒店 -->
<td>
<td v-if="childIndex==0" :rowspan="5">
<div class="w150">
<el-select class='w120 sel' v-model='subItem.NewHotelId' filterable :placeholder="$t('pub.pleaseSel')"
@visible-change='getHotelList(subItem)' @change='sendValue(subItem)'>
......@@ -109,137 +127,111 @@
<a v-if="subItem.ContractUrl" target="_blank" :href="subItem.ContractUrl">手配书</a>
</p>
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>{{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>
{{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button>
</el-upload>
</div>
</td>
<!-- 房间预定数 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="o in subItem.OrderDetailsList">
<el-input class='w50 tcenter' @keyup.native="checkPrice(o,'HouseTypeCount')"
v-model='o.HouseTypeCount'></el-input>
</p>
</div>
<el-input class='w40 tcenter' maxlength="2" @keyup.native="checkPrice(childItem,'HouseTypeCount')"
v-model='childItem.HouseTypeCount'></el-input>
</td>
<!-- 预定人数 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="o in subItem.OrderDetailsList">
<el-input class='w50 tcenter' @keyup.native="checkInteger(o,'BookNum')"
@input="calculationPrice(subItem)" v-model='o.BookNum'></el-input>
</p>
</div>
<el-input class='w40 tcenter' maxlength="2" @keyup.native="checkInteger(childItem,'BookNum')"
@input="calculationPrice(subItem)" v-model='childItem.BookNum'></el-input>
</td>
<!-- 尚差房间数 -->
<td>
<div class="w80">
<p class="pHouseStyle"
:class="{colorRed:o.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[index].HouseTypeCount<0}"
v-for="(o,index) in subItem.OrderDetailsList">
{{o.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[index].HouseTypeCount}}
:class="{colorRed:childItem.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount<0}">
{{childItem.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount}}
</p>
</div>
</td>
<!-- 单价/每人 -->
<td>
<div class="w120">
<p class="pHouseStyle" v-for="(o,index) in subItem.OrderDetailsList" @input="calculationPrice(subItem)">
<el-input @keyup.native="checkInteger(o,'UnitPrice')" class='w80 tcenter' v-model='o.UnitPrice'>
<el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter'
@input="calculationPrice(subItem)" v-model='childItem.UnitPrice'>
</el-input>
</p>
</div>
</td>
<!-- 免减人数 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="(o,index) in subItem.OrderDetailsList" @input="calculationPrice(subItem)">
<el-input class='w50' @keyup.native="checkInteger(o,'HotelDiscount')" v-model='o.HotelDiscount'>
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'HotelDiscount')"
v-model='childItem.HotelDiscount' @input="calculationPrice(subItem)">
</el-input>
</p>
</div>
</td>
<!-- 金额小计 -->
<td>
<div class="w80">
<p class="pHouseStyle" v-for="(o,index) in subItem.OrderDetailsList">
{{o.UnitPrice*(o.BookNum-o.HotelDiscount)}}
</p>
</div>
<td style="white-space:nowrap;">
{{childItem.UnitPrice*(childItem.BookNum-childItem.HotelDiscount)}}
</td>
<!--返佣-->
<td>
<div class="w80">
<p class="pHouseStyle link" v-for="(o,index) in subItem.OrderDetailsList"
@input="calculationPrice(subItem)">
<span class="spanlink" v-if='o.IsRebateRatio==0' @click="goUrl('HotelInfo',o,'酒店管理')">设置</span>
<span v-if='o.IsRebateRatio!=0'>{{o.RebateRatio}}</span>
<p class="pHouseStyle link" @input="calculationPrice(subItem)">
<span class="spanlink" v-if='childItem.IsRebateRatio==0'
@click="goUrl('HotelInfo',childItem,'酒店管理')">设置</span>
<span v-if='childItem.IsRebateRatio!=0'>{{childItem.RebateRatio}}</span>
</p>
</div>
</td>
<!-- 金额总计 -->
<td>
<div class="w120">
<td v-if="childIndex==0" :rowspan="5" style="white-space:nowrap;">
{{subItem.TotalPrice}}
</div>
</td>
<!-- 付款方式 -->
<td v-if="childIndex==0" :rowspan="5">
<table class="hotelTable">
<tr>
<td width="70" style="text-align:right;">付款方式:</td>
<td>
<div class="w120">
<el-select class='w100 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')">
<el-select class='w135 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')">
<el-option label='请选择' :value='0'></el-option>
<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">{{subItem.Tel}}</div>
</td>
<!-- 地址 -->
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">订团号:</td>
<td>
<div class="w200 padding10">{{subItem.Address}}</div>
<el-input type='textarea' class='w135' v-model='subItem.Remarks'></el-input>
</td>
<!-- 备注 -->
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">备注:</td>
<td>
<div class="w150">
<el-input class='w120' v-model='subItem.ReserveNo'></el-input>
</div>
<el-input class='w135' v-model='subItem.ReserveNo'></el-input>
</td>
<!-- 订团号 -->
<td>
<div class="w150">
<el-input type='textarea' class='w120' v-model='subItem.Remarks'></el-input>
</div>
</tr>
</table>
</td>
<!-- 操作 -->
<td>
<div class="w200">
<el-button-group>
<td v-if="childIndex==0" :rowspan="5">
<el-tooltip class="item" effect="dark" content="保存" placement="top-start">
<el-button icon="iconfont icon-shoufukuan" @click="SaveSingle(subItem)" type="primary"></el-button>
<el-button icon="iconfont icon-baocun1" @click="SaveSingle(subItem)" type="primary"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="添加" placement="top-start">
<el-tooltip class="item" effect="dark" content="新增" placement="top-start">
<el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary"></el-button>
</el-tooltip>
<el-tooltip v-if="item.HotelOrderList.length>1" class="item" effect="dark" content="删除" placement="top-start">
<el-tooltip v-if="item.HotelOrderList.length>1" class="item" effect="dark" content="删除"
placement="top-start">
<el-button type="primary" icon="iconfont icon-shanchu" @click='DeleteHotel(item,subIndex)'>
</el-button>
</el-tooltip>
</el-button-group>
</div>
</td>
</tr>
</template>
</template>
</table>
</div>
<div>
</div>
</div>
</template>
<script>
......@@ -270,18 +262,19 @@
}
},
methods: {
getItem (index, subIndex) {
getItem(index, subIndex) {
this.checkedIndex = index
this.checkedsubIndex = subIndex
},
uploadFileBtnS (file) { //手配书上传
uploadFileBtnS(file) { //手配书上传
let that = this
let newArr = []
newArr.push(file.file)
let path = '/Upload/Temporary/'
this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => {
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = this.domainManager().ViittoFileUrl + x.data.FilePath
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = this.domainManager()
.ViittoFileUrl + x.data.FilePath
this.$message.success(x.data.Message)
let newlist = JSON.parse(JSON.stringify(this.list))
this.list = newlist
......@@ -291,9 +284,9 @@
//添加酒店
AddHotel(item, subIndex) {
var subItem = JSON.parse(JSON.stringify(item.HotelOrderList[subIndex]));
subItem.HotelId=0;
subItem.HotelName="";
subItem.OrderID=0;
subItem.HotelId = 0;
subItem.HotelName = "";
subItem.OrderID = 0;
item.HotelOrderList.push(subItem);
},
//删除酒店
......@@ -421,10 +414,10 @@
getHotelList(obj) {
this.apipost('hotel_post_GetHasStockHotelList', {
//1-只查询有库存的酒店
IsMoreThanZero:0,
IsMoreThanZero: 0,
Country: "651",
IsAllHotel:1,
sDate:obj.CheckInDateStr
IsAllHotel: 1,
sDate: obj.CheckInDateStr
}, res => {
if (res.data.resultCode == 1) {
obj.hotelList = res.data.data;
......@@ -463,20 +456,15 @@
item.HotelOrderList.forEach(subItem => {
subItem.OrderDetailsList.forEach(y => {
y.HouseTypeCount = parseFloat(y.HouseTypeCount);
if(y.UnitPrice)
{
if (y.UnitPrice) {
y.UnitPrice = parseInt(y.UnitPrice);
} else {
y.UnitPrice = 0;
}
else
{
y.UnitPrice=0;
}
if(y.HotelDiscount)
{
if (y.HotelDiscount) {
y.HotelDiscount = parseInt(y.HotelDiscount);
}else
{
y.HotelDiscount =0;
} else {
y.HotelDiscount = 0;
}
if (y.BookNum == "") {
......@@ -504,12 +492,10 @@
subItem.OrderDetailsList.forEach(y => {
y.HouseTypeCount = parseFloat(y.HouseTypeCount);
y.UnitPrice = parseInt(y.UnitPrice);
if(y.HotelDiscount)
{
if (y.HotelDiscount) {
y.HotelDiscount = parseInt(y.HotelDiscount);
}else
{
y.HotelDiscount =0;
} else {
y.HotelDiscount = 0;
}
if (y.BookNum == "") {
y.BookNum = 0;
......@@ -517,7 +503,10 @@
})
});
})
let mag={TotalList:this.list,SingleItem:item};
let mag = {
TotalList: this.list,
SingleItem: item
};
this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
......@@ -554,69 +543,19 @@
this.flightTotal = this.$route.query.flightTotal;
this.GuestNum = this.$route.query.GuestNum;
let width = window.innerWidth - 50;
let height = window.innerHeight - 65 -55;
let height = window.innerHeight - 65 - 55;
this.boxHeight = height;
this.offsetwidth = width
this.getList();
},
watch: {
// list:{
// handler: function(val, oldVal) {
// this.$nextTick(function(){
// let ele = this.$parent.$refs.frameBox
// this.parentEle = ele;
// console.log(ele.scrollHeight > ele.height)
// console.log(ele.teamReimbursement)
// });
// },
// deep: true
// }
}
}
</script>
<style>
.RoomfileList {
width: 100%;
height: 20px;
text-align: center;
position: relative;
cursor: pointer;
}
.RoomfileList p {
display: inline-block;
}
.RoomfileList i:hover {
color: #E95252;
}
.roomReservationsDetailsTalbe .el-button--small {
padding: 0 20px 0 10px;
margin-top: 10px;
height: 28px;
line-height: 10px;
}
.roomReservationsDetailsTalbe .el-button--small i {
float: left;
margin-top: 9px;
}
.roomReservationsDetailsTalbe .roomBtn {
color: #fff;
padding: 0 10px !important;
height: 30px !important;
background: #E95252;
border: 1px solid #E95252;
cursor: pointer;
border-radius: 15px;
margin: 0 10px;
}
.roomReservationsDetailsTalbe {
background: #ddd;
border-collapse: collapse;
background: #fff;
text-align: center;
}
.roomReservationsDetailsTalbe tr th {
......@@ -624,19 +563,15 @@
height: 40px;
font-size: 12px;
color: #333;
}
.roomReservationsDetailsTalbe tr {
background: #fff;
text-align: center;
height: 40px;
border: 1px solid #d1d1d1;
}
.roomReservationsDetailsTalbe tr td {
font-size: 12px;
border: 1px solid #d1d1d1;
}
.roomReservationsDetailsTalbe tr td .pHouseStyle {
.roomReservationsDetailsTalbe .pHouseStyle {
border-bottom: 1px solid #ccc;
height: 28px;
line-height: 28px;
......@@ -672,4 +607,12 @@
color: red;
}
.roomReservationsDetailsTalbe .hotelTable {
border: none;
}
.roomReservationsDetailsTalbe .hotelTable tr td {
border: none;
}
</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