Commit bf3cfb10 authored by 华国豪's avatar 华国豪 🙄
parents d96cb3cf 8e692580
......@@ -53,8 +53,10 @@
<tr>
<td colspan="2">
<span style="padding-left:5px;" class="link"
@click="goUrlR('restaurantList',subItem.DiningID,'餐厅列表')">{{subItem.DiningName}}</span>
@click="goUrlR('restaurantList',subItem.DiningID,'餐厅列表')">{{subItem.DiningName}}
<br/>
真实名称: {{subItem.DiningRealName}}
</span>
</td>
</tr>
<tr>
......@@ -82,7 +84,7 @@
<el-option v-for='itemHotel in item.DinnerList' :label='itemHotel.RealName' :value='itemHotel.ID'
:key='itemHotel.ID'></el-option>
</el-select>
<span style="color:green">{{subItem.NewDiningName}}</span><br/>
<span style="color:green">{{subItem.NewDiningRealName}}</span><br/>
<el-popover placement="right" width="540" trigger="click" v-model="subItem.isShowPop">
<comCheckDinner :ref="'comCheckDinner'+index+subIndex+''" :UseDate="item.UseTimeStr"
v-on:childDinner="childDinnerList">
......@@ -261,6 +263,7 @@
oldData.PayStyleExt = obj.PayStyle;
oldData.NewDiningID = obj.ID;
oldData.NewDiningName = obj.Name;
oldData.NewDiningRealName=obj.RealName;
this.list.forEach(x => {
x.DiningSummaryList.forEach(y => {
y.isShowPop = false;
......
......@@ -1390,7 +1390,7 @@
</td>
<td width="70">报名类型</td>
<td>
<el-select v-model='msg.GroupType' filterable :placeholder="$t('pub.pleaseSel')">
<el-select v-model='msg.GroupTypeArray' filterable multiple :placeholder="$t('pub.pleaseSel')">
<el-option label="不限" value='-1'></el-option>
<el-option v-for="item in ctlxList" :label='item.Name' :value='item.Id' :key='item.Id'>
</el-option>
......@@ -2189,6 +2189,7 @@
ContactName: '',
CustomerId: '-1',
GroupType: '-1',
GroupTypeArray:[],
OrderSource: '-1',
CStartDate: '',
CEndDate: '',
......@@ -3927,12 +3928,10 @@
'sellorder_post_GetTravelOrderList',
this.msg,
res => {
if (res.data.resultCode == 1) {
this.loading = false
this.total = res.data.data.count
this.list = res.data.data.pageData;
console.log(this.list,'list');
} else {
this.$message.error(res.data.message)
}
......
<style>
.PassengerList2 .PT_teamTable.PT_teamTable {
width: 500px;
border-collapse: collapse;
}
.PT_teamTable td,
.PT_teamTable th {
border: 1px solid #dcdcdc;
padding: 5px;
height: 30px;
}
.PT_teamTable tr th {
background: #eee;
height: 30px;
border: 1px solid #dcdcdc;
}
.PT_teamTable tr td{background: #fff;}
.travelpassengerlist{font-size: 12px; background: #dcdcdc;}
.travelpassengerlist tr th {
height: 30px;
}
.travelpassengerlist tr td{background: #fff; text-align: center;}
/*拒签人员*/
.travelpassengerlist .redTr td{
.PassengerList2 .PT_teamTable {
width: 800px;
border-collapse: collapse;
}
.PassengerList2 .PT_teamTable td,
.PassengerList2 .PT_teamTable th {
border: 1px solid #dcdcdc;
padding: 5px;
height: 30px;
}
.PassengerList2 .PT_teamTable tr th {
background: #eee;
height: 30px;
border: 1px solid #dcdcdc;
}
.PassengerList2 .PT_teamTable tr td {
background: #fff;
}
.PassengerList2 .travelpassengerlist {
font-size: 12px;
background: #dcdcdc;
}
.PassengerList2 .travelpassengerlist tr th {
height: 30px;
}
.PassengerList2 .travelpassengerlist tr td {
background: #fff;
text-align: center;
}
/*拒签人员*/
.PassengerList2 .travelpassengerlist .redTr td {
color: #E95252;
}
.leader2Btn {
color: #fff;
padding: 0 15px;
height: 30px;
background: #e95252;
border: 1px solid #e95252;
cursor: pointer;
border-radius: 15px;
}
.PassengerList2 input.houseno{
border: none;
border-bottom: 1px solid #dcdcdc;
transition: all linear .5s;
}
.PassengerList2 input.houseno:focus{
border-bottom: 1px solid #e95252;
}
.tips__{
color: #e95252;
text-align: center;
margin: 10px;
}
}
</style>
<template>
<div class="flexOne PassengerList PassengerList2">
<div class="flexOne PassengerList2">
<div class="query-box">
<ul>
<li>
......@@ -57,38 +47,27 @@
<tr>
<th width="140">团号</th>
<th>团名</th>
<th width="60">人数</th>
<th width="120">出发日期</th>
</tr>
<tr v-for="item in QueryMsg.TeamInfoData">
<td><a @click="goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)" style="cursor:pointer;color:blue;">{{item.TCNUM}}</a></td>
<td><a @click="goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)"
style="cursor:pointer;color:blue;">{{item.TCNUM}}</a></td>
<td>{{item.Title}}</td>
<td>{{item.Inventory}}</td>
<td>{{item.StartDate}} {{item.WeekStr}}</td>
</tr>
</table>
</li>
<li>
<input type="button" class="normalBtn" v-if="!allDIs" value="分房表确认" @click="querenHotel()">
<input type="button" class="normalBtn" value="导出报表" @click="exportExcel()">
</li>
</ul>
</div>
<p class="tips__" v-if="allDIs">op已确认分房,不能在进行任何操作</p>
<table
style="margin-bottom: 50px;"
class="travelpassengerlist"
border="0"
cellspacing="1"
cellpadding="0"
v-loading="QueryMsg.loading"
>
<table class="travelpassengerlist" border="0" cellspacing="1" cellpadding="0" v-loading="QueryMsg.loading">
<tr>
<th width="50">房间数</th>
<th width="50">房号</th>
<th width="130">酒店及房型</th>
<th width="130">旅客姓名</th>
<th width="120">占床</th>
<th width="110">英文姓</th>
<th width="145">英文名</th>
<th width="45">性别</th>
......@@ -108,35 +87,23 @@
<th width="120">签证类型</th>
</tr>
<tr>
<td v-show="QueryMsg.dataList.Length==0" colspan="23" align="center">暂无数据</td>
<td v-show="QueryMsg.dataList.Length==0" colspan="12" align="center">暂无数据</td>
</tr>
<!-- <template v-for="(item, index) in QueryMsg.dataList"> -->
<tr v-for="(subItem, subIndex) in dataList" :class="{'redTr':subItem.VisaState==1}">
<td>{{subIndex+1}}</td>
<td width="80">
<el-select v-model="subItem.HouseNo" placeholder="请选择" @change="sortNumberN(subItem, subIndex)">
<el-option
v-for="(hs, hsIndex) in numberList"
:disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || hs.dis || allDIs"
:key="hs.name"
:label="hs.name"
:value="hs.name">
</el-option>
</el-select>
</td>
<tbody v-for="(item,index) in QueryMsg.dataList" :key="index">
<tr v-for="(subItem,subIndex) in item" :class="{'redTr':subItem.VisaState==1}">
<td v-if="subIndex==0" :rowspan="subItem.RowsCount">{{index+1}}</td>
<td v-if="subIndex==0" :rowspan="subItem.RowsCount"></td>
<td>
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)">
<el-option
:disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || allDIs"
v-for="(hs, hsIndex) in HouseTypeList"
:key="hsIndex"
:label="hs.HouseName"
:value="hs.HouseType">
</el-option>
</el-select>
<!--自然单间 指定单间(单房差)-->
<template v-if="subItem.SingleRoomType==subItem.HouseType">
{{getHouseTypeStr(subItem.HouseType)}}
</template>
<template v-else>
{{getHouseTypeStr(subItem.SingleRoomType)}} <br /><span style="color:red;">(指定)</span>
</template>
<template v-if="subItem.IsBed==0"><br /><span style="color:red;">(不占床)</span></template>
</td>
<td>{{subItem.GuestName}}</td>
<td>{{subItem.IsBed == 1 ? '占床' : '不占床'}}</td>
<td>{{subItem.ESurName}}</td>
<td>{{subItem.EName}}</td>
<td>{{getSexStr(subItem)}}</td>
......@@ -150,280 +117,144 @@
<td>{{subItem.MobilePhone}}</td>
<td>{{subItem.IdCard}}</td>
<td>{{subItem.UnitPrice}}</td>
<td>{{subItem.CreateByStr}}</td>
<td>{{subItem.CreateBy}}</td>
<td>{{subItem.GroupTypeStr}}</td>
<td align="center">经济舱
<br>(Y)
</td>
<td>{{subItem.VisaTypeStr}} {{subItem.VisaTypeStr==1?'拒签':"正常"}}</td>
<td>{{subItem.VisaType}} {{subItem.VisaState==1?'拒签':"正常"}}</td>
</tr>
<!-- </template> -->
<tr v-if="!allDIs">
<td style="text-align:right" colspan="23"><input type="button" value="保存" class="leader2Btn" @click="saveOPSetGuestHouse"></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data() {
return {
//请求数据
msg: {
PageIndex: 1,
PageSize: 100,
TCID: 0,
OrderId: 0,
currentPage: 1
},
IsHaveLeader:1,//1-有领队,0-无领队
IsLeaderGuide:0,//1-领兼导,0-领队
TCID: 0,
QueryMsg: {
loading: true,
//返回数据
dataList: [],
TCID: 0,
OrderId: 0,
//团期数据
TeamInfoData: []
},
houseList: [],
HouseTypeList: [],
numberList: [],
dataList: [],
allDIs: false,
};
},
methods: {
// 确认酒店
querenHotel: function (){
this.apipost(
"travel_get_UpdateOpSureHouse",
{TCID: this.TCID},
res => {
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.getList()
}else{
this.$message.error('操作失败')
}
export default {
data() {
return {
//请求数据
msg: {
PageIndex: 1,
PageSize: 100,
TCID: 0,
OrderId: 0,
currentPage: 1,
isGetTicket: 1, //不查询机票
isGetZiYouXing: 1, //不查询自由行
},
err => {}
);
},
// 修改类型
changeRmType: function (obj, index){
let list = this.dataList;
for(let i = 0; i < list.length; i++) {
if (obj.HouseNo === list[i].HouseNo) {
list[i].HouseType = obj.HouseType
list[i].SingleRoomType = obj.HouseType
}
}
list = list.sort(this.compare)
this.dataList = list;
},
compare:function (obj1, obj2) {
var val1 = Number(obj1.HouseNo);
var val2 = Number(obj2.HouseNo);
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
IsHaveLeader: 1, //1-有领队,0-无领队
IsLeaderGuide: 0, //1-领兼导,0-领队
TCID: 0,
QueryMsg: {
loading: true,
//返回数据
dataList: [],
TCID: 0,
OrderId: 0,
//团期数据
TeamInfoData: []
}
};
},
// 修改房号
sortNumberN: function (obj, index){
let list = this.dataList;
// 选择房号后循环数据把房号相同的数据房型修改成一样的
for(let i = 0 ; i < list.length; i++) {
if (obj.HouseNo === list[i].HouseNo && obj.Id !== list[i].Id) {
obj.HouseType = list[i].HouseType
list[index].SingleRoomType = list[i].HouseType
}
}
list = list.sort(this.compare)
this.dataList = list;
},
//保存分房
saveOPSetGuestHouse: function (){
this.apipost(
"travel_get_OPSetGuestHouse",
this.dataList,
res => {
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.getList()
}else{
this.$message.error('操作失败')
methods: {
goUrlTravelControl(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: "y",
tab: name
}
},
err => {}
);
},
goUrlTravelControl(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: "y",
tab: name
});
},
//获取性别字符串
getSexStr(item) {
var str = "";
if (item.Sex == 1) {
str = "男";
} else {
str = "女";
}
});
},
//获取性别字符串
getSexStr(item) {
var str = "";
if (item.Sex == 1) {
str = "男";
} else {
str = "女";
}
return str;
},
//获取房间类型
getHouseTypeStr(HouseType) {
var str = "";
if (HouseType == 1) {
str = "自然单间";
} else if (HouseType == 2) {
str = "标准双人间";
} else if (HouseType == 3) {
str = "大床房";
}
else if (HouseType == 4) {
str = "三人间";
}
else if (HouseType== 5) {
str = "拼凑双人间";
}
else {
str = "未分配";
}
return str;
},
getHouseTypeList: function (){
this.apipost(
"travel_get_GetHouseType",
this.msg,
res => {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
this.HouseTypeList = res.data.data;
}
},
err => {}
);
},
setDataList: function (list){
var Diningmap = {},
Diningdest = [];
for(var i = 0; i < list.length; i++){
var ai = list[i];
if(!Diningmap[ai.HouseNo]){
Diningdest.push({
HouseType: ai.HouseType,
HouseNo: ai.HouseNo,
data: [ai]
});
Diningmap[ai.HouseNo] = ai;
}else{
for(var j = 0; j < Diningdest.length; j++){
var dj = Diningdest[j];
if(dj.HouseType == ai.HouseType && dj.HouseNo == ai.HouseNo){
dj.data.push(ai);
break;
return str;
},
//获取房间类型
getHouseTypeStr(HouseType) {
var str = "";
if (HouseType == 1) {
str = "自然单间";
} else if (HouseType == 2) {
str = "标准双人间";
} else if (HouseType == 3) {
str = "大床房";
} else if (HouseType == 4) {
str = "三人间";
} else if (HouseType == 5) {
str = "拼凑双人间";
} else {
str = "未分配";
}
return str;
},
//获取数据
getList() {
this.QueryMsg.loading = true;
this.apipost(
"travel_get_GetTravelGuestPageList",
this.msg,
res => {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
this.QueryMsg.dataList = res.data.data.pageData.result;
this.IsHaveLeader = res.data.data.pageData.IsHaveLeader;
this.IsLeaderGuide = res.data.data.pageData.IsLeaderGuide;
}
}
},
err => {}
);
},
exportExcel() {
this.QueryMsg.loading = true;
//导出报表
let msg = {
TCID: this.msg.TCID,
isGetTicket: 1, //不查询机票
isGetZiYouXing: 1, //不查询自由行
};
var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) {
fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】旅客名单.xls";
}
}
this.QueryMsg.dataList = Diningdest;
},
//获取数据
getList() {
this.QueryMsg.loading = true;
this.apipost(
"travel_get_GetTravelGuestPageList_V2",
this.msg,
res => {
this.GetLocalFile("travel_get_GetTravelGuestExport", msg, fileName, res => {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
let list = res.data.data.pageData.result;
this.IsHaveLeader=res.data.data.pageData.IsHaveLeader;
this.IsLeaderGuide=res.data.data.pageData.IsLeaderGuide;
this.houseList = res.data.data.pageData.houseList;
let disNum = [],numberList = this.numberList;
this.allDIs = res.data.data.pageData.OpSureHouse==2 ? true : false
list.map(x=>{
if (x.HouseType == 1 && this.IsLeaderGuide == 1){
disNum.push(x.HouseNo)
}
})
for(let i = 0; i < disNum.length; i ++){
for(let o = 0; o < numberList.length; o ++){
if (disNum[i] == numberList[o].name){
numberList[o].dis = true
}
}
});
},
//获取团期信息
getTeamInfo() {
var qmsg = {
TCID: this.TCID,
};
this.apipost(
"travel_get_GetTravelPriceReportInfo",
qmsg,
res => {
if (res.data.resultCode == 1) {
this.QueryMsg.TeamInfoData = res.data.data;
}
this.dataList = list
this.numberList = numberList
// this.setDataList(list)
}
},
err => {}
);
},
exportExcel() {
//导出报表
let msg = {
TCID: this.msg.TCID
};
var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) {
fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】旅客名单.xls";
},
err => {}
);
}
this.GetLocalFile("travel_get_GetTravelGuestExport", msg, fileName);
},
//获取团期信息
getTeamInfo() {
var qmsg = {
TCID: this.TCID
};
this.apipost(
"travel_get_GetTravelPriceReportInfo",
qmsg,
res => {
if (res.data.resultCode == 1) {
this.QueryMsg.TeamInfoData = res.data.data;
}
},
err => {}
);
mounted() {
this.TCID = this.$route.query.id;
this.msg.TCID = this.TCID;
this.msg.OrderId = this.$route.query.OrderId;
this.getTeamInfo();
this.getList();
}
},
mounted() {
let numberList = []
for(let i = 0; i < 99; i++) {
numberList.push({
name: `${i+1}`,
dis: false,
})
}
this.numberList = numberList
this.TCID = this.$route.query.id;
this.msg.TCID = this.TCID;
this.msg.OrderId = this.$route.query.OrderId;
this.getTeamInfo();
this.getList();
this.getHouseTypeList();
}
};
</script>
\ No newline at end of file
};
</script>
<style>
.PT_teamTable {
width: 800px;
.PassengerList .PT_teamTable.PT_teamTable {
width: 850px;
border-collapse: collapse;
}
.PT_teamTable td,
.PT_teamTable th {
.PassengerList .PT_teamTable td,
.PassengerList .PT_teamTable th {
border: 1px solid #dcdcdc;
padding: 5px;
height: 30px;
}
.PT_teamTable tr th {
.PassengerList .PT_teamTable tr th {
background: #eee;
height: 30px;
border: 1px solid #dcdcdc;
}
.PT_teamTable tr td {
.PassengerList .PT_teamTable tr td {
background: #fff;
}
.travelpassengerlist {
.PassengerList .travelpassengerlist {
font-size: 12px;
background: #dcdcdc;
}
.travelpassengerlist tr th {
.PassengerList .travelpassengerlist tr th {
height: 30px;
}
.travelpassengerlist tr td {
.PassengerList .travelpassengerlist tr td {
background: #fff;
text-align: center;
}
/*拒签人员*/
.travelpassengerlist .redTr td {
.PassengerList .travelpassengerlist .redTr td {
color: #E95252;
}
.PassengerList .leader2Btn {
color: #fff;
padding: 0 15px;
height: 30px;
background: #e95252;
border: 1px solid #e95252;
cursor: pointer;
border-radius: 15px;
}
.PassengerList input.houseno {
border: none;
border-bottom: 1px solid #dcdcdc;
transition: all linear .5s;
}
.PassengerList input.houseno:focus {
border-bottom: 1px solid #e95252;
}
.PassengerList .tips__ {
color: #e95252;
text-align: center;
margin: 10px;
}
</style>
<template>
<div class="flexOne PassengerList">
<div class="flexOne PassengerList PassengerList">
<div class="query-box">
<ul>
<li>
......@@ -51,29 +77,31 @@
<tr>
<th width="140">团号</th>
<th>团名</th>
<th width="60">人数</th>
<th width="120">出发日期</th>
</tr>
<tr v-for="item in QueryMsg.TeamInfoData">
<td><a @click="goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)"
style="cursor:pointer;color:blue;">{{item.TCNUM}}</a></td>
<td>{{item.Title}}</td>
<td>{{item.Inventory}}</td>
<td>{{item.StartDate}} {{item.WeekStr}}</td>
</tr>
</table>
</li>
<li>
<input type="button" class="normalBtn" v-if="!allDIs" value="分房表确认" @click="querenHotel()">
<input type="button" class="normalBtn" value="导出报表" @click="exportExcel()">
</li>
</ul>
</div>
<table class="travelpassengerlist" border="0" cellspacing="1" cellpadding="0" v-loading="QueryMsg.loading">
<p class="tips__" v-if="allDIs">op已确认分房,不能在进行任何操作</p>
<table style="margin-bottom: 50px;" class="travelpassengerlist" border="0" cellspacing="1" cellpadding="0"
v-loading="QueryMsg.loading">
<tr>
<th width="50">房间数</th>
<th width="50">房号</th>
<th width="130">酒店及房型</th>
<th width="130">旅客姓名</th>
<th width="120">占床</th>
<th width="110">英文姓</th>
<th width="145">英文名</th>
<th width="45">性别</th>
......@@ -93,23 +121,28 @@
<th width="120">签证类型</th>
</tr>
<tr>
<td v-show="QueryMsg.dataList.Length==0" colspan="12" align="center">暂无数据</td>
<td v-show="QueryMsg.dataList.Length==0" colspan="23" align="center">暂无数据</td>
</tr>
<tbody v-for="(item,index) in QueryMsg.dataList" :key="index">
<tr v-for="(subItem,subIndex) in item" :class="{'redTr':subItem.VisaState==1}">
<td v-if="subIndex==0" :rowspan="subItem.RowsCount">{{index+1}}</td>
<td v-if="subIndex==0" :rowspan="subItem.RowsCount"></td>
<tbody>
<tr v-for="(subItem, subIndex) in dataList" :class="{'redTr':subItem.VisaState==1}">
<td>{{subIndex+1}}</td>
<td width="80">
<el-select v-model="subItem.HouseNo" placeholder="请选择" @change="sortNumberN(subItem, subIndex)">
<el-option v-for="(hs, hsIndex) in numberList"
:disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || hs.dis || allDIs" :key="hs.name"
:label="hs.name" :value="hs.name">
</el-option>
</el-select>
</td>
<td>
<!--自然单间 指定单间(单房差)-->
<template v-if="subItem.SingleRoomType==subItem.HouseType">
{{getHouseTypeStr(subItem.HouseType)}}
</template>
<template v-else>
{{getHouseTypeStr(subItem.SingleRoomType)}} <br /><span style="color:red;">(指定)</span>
</template>
<template v-if="subItem.IsBed==0"><br /><span style="color:red;">(不占床)</span></template>
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)">
<el-option :disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || allDIs"
v-for="(hs, hsIndex) in HouseTypeList" :key="hsIndex" :label="hs.HouseName" :value="hs.HouseType">
</el-option>
</el-select>
</td>
<td>{{subItem.GuestName}}</td>
<td>{{subItem.IsBed == 1 ? '占床' : '不占床'}}</td>
<td>{{subItem.ESurName}}</td>
<td>{{subItem.EName}}</td>
<td>{{getSexStr(subItem)}}</td>
......@@ -123,12 +156,51 @@
<td>{{subItem.MobilePhone}}</td>
<td>{{subItem.IdCard}}</td>
<td>{{subItem.UnitPrice}}</td>
<td>{{subItem.CreateBy}}</td>
<td>{{subItem.CreateByStr}}</td>
<td>{{subItem.GroupTypeStr}}</td>
<td align="center">经济舱
<br>(Y)
</td>
<td>{{subItem.VisaType}} {{subItem.VisaState==1?'拒签':"正常"}}</td>
<td>{{subItem.VisaTypeStr}} {{subItem.VisaTypeStr==1?'拒签':"正常"}}</td>
</tr>
<tr v-if="!allDIs" style="height:50px; line-height:50px;">
<td style="text-align:right" colspan="23"><input type="button" value="保存" class="leader2Btn"
@click="saveOPSetGuestHouse"></td>
</tr>
</tbody>
<!--单机票和自由行-->
<tbody>
<tr style="height:50px; line-height:50px;">
<td colspan="23"></td>
</tr>
<tr v-for="(subItem, subIndex) in otherList" :class="{'redTr':subItem.VisaState==1}">
<td>{{subIndex+1}}</td>
<td width="80">
</td>
<td>
{{subItem.GroupTypeStr}}
</td>
<td>{{subItem.GuestName}}</td>
<td>{{subItem.IsBed == 1 ? '占床' : '不占床'}}</td>
<td>{{subItem.ESurName}}</td>
<td>{{subItem.EName}}</td>
<td>{{getSexStr(subItem)}}</td>
<td>{{subItem.Birthday}}</td>
<td>{{subItem.PeopleType}}</td>
<td>{{subItem.BirthdayAddress}}</td>
<td>{{subItem.PassportNo}}</td>
<td>{{subItem.PassportAddress}}</td>
<td>{{subItem.PassportIssued}}</td>
<td>{{subItem.PassportExpiry}}</td>
<td>{{subItem.MobilePhone}}</td>
<td>{{subItem.IdCard}}</td>
<td>{{subItem.UnitPrice}}</td>
<td>{{subItem.CreateByStr}}</td>
<td>{{subItem.GroupTypeStr}}</td>
<td align="center">经济舱
<br>(Y)
</td>
<td>{{subItem.VisaTypeStr}} {{subItem.VisaTypeStr==1?'拒签':"正常"}}</td>
</tr>
</tbody>
</table>
......@@ -144,7 +216,9 @@
PageSize: 100,
TCID: 0,
OrderId: 0,
currentPage: 1
currentPage: 1,
isGetTicket: 1, //查询机票
isGetZiYouXing: 1, //查询自由行
},
IsHaveLeader: 1, //1-有领队,0-无领队
IsLeaderGuide: 0, //1-领兼导,0-领队
......@@ -157,10 +231,85 @@
OrderId: 0,
//团期数据
TeamInfoData: []
}
},
houseList: [],
HouseTypeList: [],
numberList: [],
dataList: [],
otherList: [], //单机票和自由行列表
allDIs: false,
};
},
methods: {
// 确认酒店
querenHotel: function () {
this.apipost(
"travel_get_UpdateOpSureHouse", {
TCID: this.TCID
},
res => {
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.getList()
} else {
this.$message.error('操作失败')
}
},
err => {}
);
},
// 修改类型
changeRmType: function (obj, index) {
let list = this.dataList;
for (let i = 0; i < list.length; i++) {
if (obj.HouseNo === list[i].HouseNo) {
list[i].HouseType = obj.HouseType
list[i].SingleRoomType = obj.HouseType
}
}
list = list.sort(this.compare)
this.dataList = list;
},
compare: function (obj1, obj2) {
var val1 = Number(obj1.HouseNo);
var val2 = Number(obj2.HouseNo);
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
}
},
// 修改房号
sortNumberN: function (obj, index) {
let list = this.dataList;
// 选择房号后循环数据把房号相同的数据房型修改成一样的
for (let i = 0; i < list.length; i++) {
if (obj.HouseNo === list[i].HouseNo && obj.Id !== list[i].Id) {
obj.HouseType = list[i].HouseType
list[index].SingleRoomType = list[i].HouseType
}
}
list = list.sort(this.compare)
this.dataList = list;
},
//保存分房
saveOPSetGuestHouse: function () {
this.apipost(
"travel_get_OPSetGuestHouse",
this.dataList,
res => {
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.getList()
} else {
this.$message.error('操作失败')
}
},
err => {}
);
},
goUrlTravelControl(name, path, id, tcmun) {
this.$router.push({
name: path,
......@@ -200,37 +349,92 @@
}
return str;
},
getHouseTypeList: function () {
this.apipost(
"travel_get_GetHouseType",
this.msg,
res => {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
this.HouseTypeList = res.data.data;
}
},
err => {}
);
},
setDataList: function (list) {
var Diningmap = {},
Diningdest = [];
for (var i = 0; i < list.length; i++) {
var ai = list[i];
if (!Diningmap[ai.HouseNo]) {
Diningdest.push({
HouseType: ai.HouseType,
HouseNo: ai.HouseNo,
data: [ai]
});
Diningmap[ai.HouseNo] = ai;
} else {
for (var j = 0; j < Diningdest.length; j++) {
var dj = Diningdest[j];
if (dj.HouseType == ai.HouseType && dj.HouseNo == ai.HouseNo) {
dj.data.push(ai);
break;
}
}
}
}
this.QueryMsg.dataList = Diningdest;
},
//获取数据
getList() {
this.QueryMsg.loading = true;
this.apipost(
"travel_get_GetTravelGuestPageList",
"travel_get_GetTravelGuestPageList_V2",
this.msg,
res => {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
this.QueryMsg.dataList = res.data.data.pageData.result;
let list = res.data.data.pageData.result;
this.otherList = res.data.data.pageData.otherResult;
this.IsHaveLeader = res.data.data.pageData.IsHaveLeader;
this.IsLeaderGuide = res.data.data.pageData.IsLeaderGuide;
this.houseList = res.data.data.pageData.houseList;
let disNum = [],
numberList = this.numberList;
this.allDIs = res.data.data.pageData.OpSureHouse == 2 ? true : false
list.map(x => {
if (x.HouseType == 1 && this.IsLeaderGuide == 1) {
disNum.push(x.HouseNo)
}
})
for (let i = 0; i < disNum.length; i++) {
for (let o = 0; o < numberList.length; o++) {
if (disNum[i] == numberList[o].name) {
numberList[o].dis = true
}
}
}
this.dataList = list
this.numberList = numberList
}
},
err => {}
);
},
exportExcel() {
this.QueryMsg.loading = true;
//导出报表
let msg = {
TCID: this.msg.TCID
TCID: this.msg.TCID,
isGetTicket: 0, //查询机票
isGetZiYouXing: 0, //查询自由行
};
var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) {
fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】旅客名单.xls";
}
this.GetLocalFile("travel_get_GetTravelGuestExport", msg, fileName, res => {
this.QueryMsg.loading = false;
});
this.GetLocalFile("travel_get_GetTravelGuestExport", msg, fileName);
},
//获取团期信息
......@@ -251,11 +455,20 @@
}
},
mounted() {
let numberList = []
for (let i = 0; i < 99; i++) {
numberList.push({
name: `${i+1}`,
dis: false,
})
}
this.numberList = numberList
this.TCID = this.$route.query.id;
this.msg.TCID = this.TCID;
this.msg.OrderId = this.$route.query.OrderId;
this.getTeamInfo();
this.getList();
this.getHouseTypeList();
}
};
......
......@@ -74,7 +74,7 @@
<div class="clearfix comCheckDinner">
<div class="comCk_list" v-for="(subItem,subIndex) in item.DinnerList">
<input :id="'H'+index+'_'+subIndex" type="checkbox" v-model="subItem.isChecked" @click="getDinner(item.DinnerList,subIndex)"/>
<label :for="'H'+index+'_'+subIndex" style="cursor: pointer">{{subItem.Name}}</label>
<label :for="'H'+index+'_'+subIndex" style="cursor: pointer">{{subItem.RealName}}</label>
</div>
</div>
</el-tab-pane>
......@@ -143,6 +143,7 @@
ckDinnerObj.ID = this.ckedDinner.ID;
ckDinnerObj.Address = this.ckedDinner.Address;
ckDinnerObj.Name = this.ckedDinner.Name;
ckDinnerObj.RealName=this.ckedDinner.RealName;
ckDinnerObj.PayStyle = this.ckedDinner.PayStyle;
ckDinnerObj.Tel = this.ckedDinner.Tel;
ckDinnerObj.RebateRatio=this.ckedDinner.RebateRatio;
......
......@@ -1928,16 +1928,16 @@ export default {
title: '领队用款'
},
}, {
path: '/TravelPassengerList', //旅客名单 可分房
name: 'TravelPassengerList',
path: '/TravelPassengerList2', //旅客名单 不能分房
name: 'TravelPassengerList2',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList2'], resolve),
meta: {
title: '旅客名单'
},
},
{
path: '/TravelPassengerList2', //旅客名单 不能分房
name: 'TravelPassengerList2',
path: '/TravelPassengerList', //旅客名单 可分房
name: 'TravelPassengerList',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList'], resolve),
meta: {
title: '旅客名单'
......
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