Commit 26d896c6 authored by 华国豪's avatar 华国豪 🙄

新增联盟页面 未绑定数据。

parent ff800269
......@@ -108,18 +108,18 @@
<td width="80">
<el-select v-model="subItem.HouseNo" placeholder="请选择" @change="sortNumberN(subItem, subIndex)">
<el-option
:disabled="subItem.SingleRoomType!=subItem.HouseType"
v-for="(hs, hsIndex) in numberList"
:key="hs"
:label="hs"
:value="hs">
:disabled="(subItem.HouseType == 1 && IsLeaderGuide == 1) || hs.dis"
:key="hs.name"
:label="hs.name"
:value="hs.name">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)">
<el-option
:disabled="subItem.SingleRoomType!=subItem.HouseType"
:disabled="subItem.HouseType == 1 && IsLeaderGuide == 1"
v-for="(hs, hsIndex) in HouseTypeList"
:key="hsIndex"
:label="hs.HouseName"
......@@ -327,11 +327,26 @@ export default {
this.QueryMsg.loading = false;
if (res.data.resultCode == 1) {
let list = res.data.data.pageData.result;
this.dataList = list
// this.setDataList(list)
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;
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
// this.setDataList(list)
}
},
err => {}
......@@ -370,7 +385,10 @@ export default {
mounted() {
let numberList = []
for(let i = 0; i < 99; i++) {
numberList.push(`${i+1}`)
numberList.push({
name: `${i+1}`,
dis: false,
})
}
this.numberList = numberList
this.TCID = this.$route.query.id;
......
<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{
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;
}
.fs-12{
font-size: 12px;
color: #666;
}
.color333{
color: #333;
}
.time-box{
display: flex;
margin: 10px 0;
text-align: center;
border: 1px solid #dcdcdc;
border-bottom: 0;
border-top: 0;
}
.time-box .el-col{
cursor: pointer;
padding: 10px;
border-right: 1px solid #dcdcdc;
border-bottom: 1px solid #dcdcdc;
border-top: 1px solid #dcdcdc;
display: flex;
align-items: center;
justify-content: center;
}
.time-box .el-col.active{
color: #e95252;
border-bottom: 1px solid #e95252;
}
.PassengerList3 .travelpassengerlist{
width: 100%;
}
.PassengerList3 .h34{
height: 34px;
}
</style>
<template>
<div class="flexOne PassengerList PassengerList2 PassengerList3">
<div class="query-box">
<ul>
<li>
<table class="PT_teamTable">
<tr>
<th width="140">团号</th>
<th width="60">人数</th>
<th width="120">领队</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+`(${item.TCID})`}}</a></td>
<td>{{item.TotalSeat}}</td>
<td>{{item.LeaderName}}</td>
<td>{{item.GuideName}}</td>
</tr>
</table>
</li>
<li>
<input type="button" class="normalBtn" value="导出报表" @click="exportExcel()">
</li>
</ul>
</div>
<el-row class="time-box">
<el-col :span="2" v-for="(item, index) in HotelList" :key="index" :class="[item.active ? 'active' : '']">
<div class="fs-12" @click="changeTime(index)">
<p>{{item.UseTime}}</p>
<div class="color333">
<p v-for="(sItem, sIndex) in item.SubHotelList" :key="sIndex">{{sItem.NewHotelName}}</p>
</div>
</div>
</el-col>
</el-row>
<div v-loading="loading"></div>
<table
style="margin-bottom: 50px;"
class="travelpassengerlist"
border="0"
cellspacing="1"
cellpadding="0"
v-for="(item, index) in GuestDataList" >
<tr style="background: #E6E6E6;">
<th colspan="11">{{item.NewHotelName}}</th>
</tr>
<tr style="background: #E6E6E6;">
<th width="50">房间数</th>
<th width="50">房号</th>
<th width="130">酒店及房型</th>
<th width="130">旅客姓名</th>
<th width="130">旅客占床</th>
<th width="110">英文姓</th>
<th width="145">英文名</th>
<th width="45">性别</th>
<th width="155">出生日期</th>
<th width="120">年龄类型</th>
<th width="60">方式</th>
</tr>
<tr v-for="(subItem, subIndex) in item.GuestList" :class="{'redTr':subItem.IsLeaderOrder==1}" class="h34">
<td>{{subIndex+1}}</td>
<td width="80">
<el-select v-model="subItem.HouseNo" placeholder="请选择" @change="changeRmType(subItem, subIndex)" v-if="subItem.HouseNo == 1">
<el-option
v-for="(hs, hsIndex) in numberList"
:key="hs"
:label="hs"
:value="hs">
</el-option>
</el-select>
<p v-else>{{subItem.HouseNo}}</p>
</td>
<td>
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)" v-if="subItem.HouseNo == 1">
<el-option
v-for="(hs, hsIndex) in HouseTypeList"
:key="hsIndex"
:label="hs.HouseName"
:value="hs.HouseType">
</el-option>
</el-select>
<p v-else>{{getHouseTypeStr(subItem.HouseType)}}</p>
</td>
<td>{{subItem.GuestName}}</td>
<td>{{'占床'}}</td>
<td>{{subItem.ESurName}}</td>
<td>{{subItem.EName}}</td>
<td>{{getSexStr(subItem)}}</td>
<td>{{subItem.Birthday.split('T')[0]}}</td>
<td>{{subItem.PeopleType}}</td>
<td>{{subItem.GroupTypeStr}}</td>
</tr>
<!-- </template> -->
<tr>
<td style="text-align:right" colspan="11"><input type="button" value="保存" class="leader2Btn" @click="saveOPSetGuestHouse"></td>
</tr>
</table>
<div class="noDataNotice" v-if="GuestDataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
</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,
loading: false,
QueryMsg: {
TCID: 0,
OrderId: 0,
//团期数据
TeamInfoData: []
},
houseList: [],
HouseTypeList: [],
numberList: [],
HotelList: [],
GuestDataList: [],
editeList: [],
};
},
methods: {
changeTime: function (index){
this.HotelList.map((x, i)=>{
x.active = false;
})
this.HotelList[index].active = true;
this.getList(this.HotelList[index].UseTime)
},
// 修改类型
changeRmType: function (obj, index){
let msg = {
CombineNo: obj.CombineNo,
HouseType: obj.HouseType,
HosueNum: obj.HosueNum,
OldHouseId: obj.OldHouseId,
GuestId: obj.GuestId,
TravelDate: obj.TravelDate,
HotelId: obj.HotelId,
TCID: obj.TCID,
}
this.GuestDataList = 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.GuestDataList;
// 选择房号后循环数据把房号相同的数据房型修改成一样的
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 = list.sort(this.compare)
this.GuestDataList = list;
},
//保存分房
saveOPSetGuestHouse: function (){
this.apipost(
"travel_get_OPSetGuestHouse",
this.GuestDataList,
res => {
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
}else{
this.$message.error('操作失败')
}
},
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 = "女";
}
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 => {
if (res.data.resultCode == 1) {
this.HouseTypeList = res.data.data;
}
},
err => {}
);
},
//获取数据
getList(time) {
let msg = {
TCIDs: this.TCID,
travelDate: time
}
this.loading = true;
this.apipost(
"travelhouse_get_GetGuestByTCIDsAndDateService",
msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
console.log(res.data.data)
this.GuestDataList = res.data.data
}
},
err => {}
);
},
exportExcel() {
//导出报表
let msg = {
TCID: this.msg.TCID
};
var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) {
fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】旅客名单.xls";
}
this.GetLocalFile("travel_get_GetTravelGuestExport", msg, fileName);
},
//获取团期信息
getTeamInfo() {
var qmsg = {
TCIDs: this.TCID
};
this.apipost(
"travelhouse_get_GetCombineBasicAndHotelService",
qmsg,
res => {
if (res.data.resultCode == 1) {
this.QueryMsg.TeamInfoData = res.data.data.PriceList;
let HotelList = res.data.data.HotelList;
for(let i = 0; i < HotelList.length; i++) {
HotelList[i].active = false;
}
this.HotelList = HotelList;
}
},
err => {}
);
}
},
mounted() {
let numberList = []
for(let i = 0; i < 99; i++) {
numberList.push(`${i+1}`)
}
this.numberList = numberList
this.TCID = this.$route.query.id;
this.msg.TCID = this.TCID;
this.msg.OrderId = this.$route.query.OrderId;
this.getTeamInfo();
this.getHouseTypeList();
}
};
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="LianMengManagement">
<div class="query-box">
<ul>
<li>
<span>
<em>名称</em>
<el-input v-model="msg.name" maxlength="50" class="w150"></el-input>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')" @click="getList()" />
</li>
</ul>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>名称</th>
<th>门店数</th>
<th>总金额</th>
<th>收客数</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.OrderID}}</td>
<td>{{item.GuestName}}</td>
<td>{{item.ScoreNum}}</td>
<td>
<el-tooltip class="item" effect="dark" content="查看问券" placement="top">
<el-button
type="primary"
icon="iconfont icon-sousuo"
circle
@click="dialogTitle = '游客问券', showID = item.ID, DiaoChaShow = true"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
</div>
</template>
<script>
export default {
data(){
return{
loading: false,
dataList: [],
DiaoChaShow: false,
YouJiShow: false,
showID: 0,
dialogTitle: '',
}
},mounted() {
// this.getList();
},methods: {
getList: function () {
this.apipost('', {TCID: TCID, OrderID: OrderID}, res=>{
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
}
}, null)
}
}
}
</script>
......@@ -152,7 +152,7 @@
<tr>
<th colspan="11">公司通用信息</th>
<th colspan="5">团队需求表</th>
<th colspan="9">地接op操作</th>
<th colspan="10">地接op操作</th>
</tr>
<tr>
<th width="130">序号</th>
......@@ -177,6 +177,7 @@
<th width="60">餐食</th>
<th width="60">车辆</th>
<th width="60">领队<br />报账</th>
<th width="60">合团分房</th>
<th width="60">领队人头费</th>
<th width="120">操作</th>
</tr>
......@@ -339,6 +340,12 @@
<span class="colorE95252" v-else>{{item.LeaderIsApply=='0'?"x":"O"}}</span>
</div>
</td>
<td :rowspan="2*outItem.PriceCommonList.length" v-if='index==0' >
<div class="fz16 fbold linkspan" @click="goUrlLeaderIsApply('TravelPassengerList3',item,outItem,'合团分房表')" v-if="outItem.PriceCommonList.length > 1">
<span style="color: #4BCA81;" v-if="item.LeaderIsApply==2"></span>
<span class="colorE95252" v-else>{{item.LeaderIsApply=='0'?"x":"O"}}</span>
</div>
</td>
<td :rowspan="2*outItem.PriceCommonList.length" v-if='index==0' style="width: 150px;">
<el-popover width="100" trigger="click" popper-class="DMC_HotelPop">
<table style="width: 100%;" border="0" cellspacing="1" class="dmcTotalTable">
......
......@@ -542,6 +542,14 @@ export default {
title: '审批统计'
},
},
{
path: '/LianMengManagement', //联盟管理
name: 'LianMengManagement',
component: resolve => require(['@/components/administrative/LianMengManagement'], resolve),
meta: {
title: '联盟管理'
},
},
{
path: '/statisticsDetail', //每日
name: 'statisticsDetail',
......@@ -1809,17 +1817,25 @@ export default {
title: '领队用款'
},
}, {
path: '/TravelPassengerList', //旅客名单
path: '/TravelPassengerList', //旅客名单 可分房
name: 'TravelPassengerList',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList'], resolve),
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList2'], resolve),
meta: {
title: '旅客名单'
},
},
{
path: '/TravelPassengerList2', //旅客名单
path: '/TravelPassengerList2', //旅客名单 不能分房
name: 'TravelPassengerList2',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList2'], resolve),
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList'], resolve),
meta: {
title: '旅客名单'
},
},
{
path: '/TravelPassengerList3', //旅客名单 合团分房
name: 'TravelPassengerList3',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList3'], 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