Commit 143635dd authored by 黄媛媛's avatar 黄媛媛
parents d781848f abeac456
......@@ -1271,8 +1271,10 @@ export default {
this.detailList.CostTypeId = this.orderObj.CostType?this.orderObj.CostType: '';
this.detailList.UnitPrice = this.orderObj.Money?this.orderObj.Money:0;
this.detailList.Number = this.orderObj.CostType ? 1 : 0
if (!JSON.parse(sessionStorage.getItem("saveGuestInfo"))){
this.Description = this.orderObj.laRemark?this.orderObj.laRemark:'';
}
}
if(data.VorcherInos){
data.VorcherInos.forEach(x=>{
x.Url = x.Content;
......
......@@ -1394,8 +1394,10 @@ export default {
this.msg.Obj = this.orderObj.Obj?this.orderObj.Obj:'';
this.msg.SourceID = this.orderObj.SourceID?this.orderObj.SourceID:0;
this.msg.CallType=this.orderObj.CallType?this.orderObj.CallType:0;
if (!JSON.parse(sessionStorage.getItem("saveGuestInfo"))){
this.Description = this.orderObj.laRemark?this.orderObj.laRemark:'';
}
}
if(data.VorcherInos){
data.VorcherInos.forEach(x=>{
x.Url = x.Content;
......
......@@ -135,8 +135,6 @@
padding: 9px 15px;
}
.groupSuperSearchLayer {}
.groupSuperSearchLayer>p {
padding: 20px 0;
font-size: 14px;
......@@ -255,8 +253,6 @@
font-size: 0px;
}
.groupTourOrder_remarks>div {}
.groupTourOrder_remarks>div>div:nth-child(1) {
float: left;
display: flex;
......@@ -790,6 +786,90 @@
margin: 5px;
text-align: center;
}
.groupts .leftSetInfo,.groupts .GO_TPright{
float:left;
}
.KT_Scenic{
width:400px;
max-height: 400px;
overflow: auto;
}
.KT_Scenic table th{
height:30px;
border:1px solid #d1d1d1;
}
.KT_Scenic table td{
padding:9px 5px!important;
}
._TravelPricePopover .GOScenicDiv{
width: 500px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover table,.KT_Scenic table{
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
margin: 0 20px 5px 0;
width: 100%;
}
._TravelPricePopover table ._color_666 ,.KT_Scenic table ._color_666{
background-color: #ededed;
color: #666666;
padding: 5px;
}
._TravelPricePopover table td,.KT_Scenic table td{
background-color: #ffffff;
padding: 9px 0;
color: #333333;
text-align: center;
border: 1px solid #d2d2d2;
}
._TravelPricePopover table td._d_name {
background-color: #ededed;
}
.groupts .GO_Title{
display: inline-block;
margin-top: 10px;
padding-right:10px;
font-size:12px;
width: 90px;
text-align: right;
}
.groupts .SimulateDrop-box {
width: 230px;
min-height: 34px;
position: relative;
padding: 5px 21px 5px 6px;
float: left;
margin-top: 4px;
border: 1px solid #d1d1d1;
}
.groupts .GO_SimulaDrop{
position: absolute;
right:10px;
top:5px;
color:#d1d1d1;
}
.groupts .SD_flight {
display: inline-block;
height: 24px;
margin: 0 3px 3px 0;
overflow: hidden;
max-width: 200px;
white-space: nowrap;
text-overflow: ellipsis;
font-size:12px;
padding: 0 8px;
line-height: 22px;
background-color: #f0f2f5;
}
</style>
......@@ -1398,18 +1478,60 @@
<el-input v-model='addMsg.AirticketNum' @keyup.native="checkInteger(addMsg,'AirticketNum')" @input='getTotalPrice();getHouseNo()'></el-input>
</el-form-item>-->
</el-col>
<el-col :span="4">
<el-form-item label="可退景点">
<el-col :span="8">
<!-- <el-form-item label="可退景点">
<el-select filterable multiple class='multiple_input' v-model='addMsg.ScenicRefundArr'
:placeholder="$t('pub.pleaseSel')" @change='ScenicRefundMethods'>
<el-option v-for='item in ScenicRefundList' :label='item.ScenicName' :value='item.Id'
:key='item.ScenicName'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
&nbsp;
</el-form-item> -->
<div class="clearfix">
<div class="leftSetInfo">
<span class="GO_Title">可退景点</span>
</div>
<div class="GO_TPright clearfix">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="GOScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="_color_666">选择</td>
<td class="_color_666">景点名称</td>
<td class="_color_666">OP设置金额</td>
<td class="_color_666">人数</td>
<td class="_color_666">退款金额</td>
</tr>
<tr v-for="item in ScenicRefundList">
<td>
<el-checkbox :checked="item.IsChecked" @change="getGOScenic(item)"></el-checkbox>
</td>
<td>
{{item.CouponsName}}
</td>
<td>
{{item.RefundMoney}}
</td>
<td>
<el-input class="w80" @keyup.native="checkInteger(item,'Number')" @change="getGOScenictWO"
v-model="item.Number"></el-input>
</td>
<td>
<el-input class="w80" @keyup.native="checkPrice(item,'BackMoney')" @change="getGOScenictWO"
v-model="item.BackMoney"></el-input>
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="subItem in SciencNameList">{{subItem}}</span>
<i class="iconfont icon-arrow-down GO_SimulaDrop"></i>
</div>
</el-popover>
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="20">
......@@ -1638,7 +1760,7 @@
<th width="200">操作</th>
</tr>
<tr>
<td v-show="list.length==0" colspan="16" align="center">暂无数据</td>
<td v-show="list.length==0" colspan="17" align="center">暂无数据</td>
</tr>
<template v-for="op in list">
<tbody class="not_border">
......@@ -1900,10 +2022,15 @@
@click='getDetail(item)'></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="修改备注" placement="top-start">
<el-button
<!-- <el-button
v-if="(userId==1||userId==5)|| ( item.isOwn==1 ||item.isHaveFinance=='1'||item.orderState=='1')"
type="primary" style='background:#a55eea; border-color:#a55eea' icon="iconfont icon-beizhu"
@click='getRemarks(item)'></el-button> -->
<el-button
v-if="(userId==1||userId==5)|| item.isOwn==1"
type="primary" style='background:#a55eea; border-color:#a55eea' icon="iconfont icon-beizhu"
@click='getRemarks(item)'></el-button>
</el-tooltip>
<el-tooltip effect="dark" content="日志" placement="top-start" style="float:left">
<el-popover width='230' trigger="click">
......@@ -1995,7 +2122,24 @@
<!-- <span>暂无名单</span>-->
<!-- </span>-->
<span style="display: block">房间信息<span v-if="item.oneSex>0"
style="color: #e95252">({{item.oneSex==1?'单男':'单女'}})</span>:{{item.orderGuestHouseStr}}</span>
style="color: #e95252">({{item.oneSex==1?'单男':'单女'}})</span>
{{item.orderGuestHouseStr}}
<el-popover trigger="click" popper-class="KT_Scenic">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="150">景点名称</th>
<th width="60">人数</th>
<th width="60">退款金额</th>
</tr>
<tr v-for="fItem in item.orderBackScenicList" style="text-align:center;">
<td style="text-align:left;">{{fItem.couponsName}}</td>
<td>{{fItem.number}}</td>
<td>{{fItem.backMoney}}</td>
</tr>
</table>
<span slot="reference" v-if="item.orderBackScenicList&&item.orderBackScenicList.length>0" style="color:#f56c6c;margin-left:20px;cursor:pointer;">退景点</span>
</el-popover>
</span>
<!-- <span v-if="item.tipMoney" style="color:red">(小费:{{item.tipMoney}})</span> -->
<div>
<span v-if="item.opTipMoney==''&&item.tipMoney!=''" style="color:red">(小费:{{item.tipMoney}})</span>
......@@ -2667,6 +2811,8 @@
RefuseVisaNum: '0',
AirticketNum: "0",
ScenicRefundArr: [],
//景点新数组
OrderBackScenicList:[],
GoCityTime: "",
BackCityTime: "",
CommissionSharePeople: "-1",
......@@ -2890,8 +3036,7 @@
tcnum: '',
isOrder: '',
},
SciencNameList:[]
};
},
components: {
......@@ -3377,24 +3522,45 @@
this.getTotalPrice();
this.getTicheng();
},
getScenicRefund(TCID) {
getScenicRefund(TCID,OrderId) {
this.OrderId = OrderId;
let msg = {
TCID:TCID,
OrderId:OrderId
}
this.apipost(
"sellorder_get_GetScenicRefundList", {
TCID
},
"sellorder_get_GetScenicRefundList", msg,
res => {
if (res.data.resultCode == 1) {
this.ScenicRefundList = res.data.data;
this.ScenicRefundList.forEach(item => {
item["ScenicName"] =
item.CouponsName + " -¥" + this.moneyFormat(item.RefundMoney);
});
this.ScenicRefundMethods();
this.getGOScenictWO();
}
},
err => {}
);
},
//勾选景点
getGOScenic(item){
item.IsChecked=!item.IsChecked;
},
//勾选
getGOScenictWO(){
this.addMsg.OrderBackScenicList=[];
this.SciencNameList=[];
this.ScenicRefundList.forEach(x=>{
if(x.IsChecked&&x.Number>0){
let obj = {
CouponsId:x.CouponsId,
IsChecked:x.IsChecked,
BackMoney:x.BackMoney,
Number:x.Number
}
this.SciencNameList.push(x.CouponsName);
this.addMsg.OrderBackScenicList.push(obj);
}
})
},
platformOrderMethods() {
if (this.addMsg.PlatformOrder == "") {
this.addMsg.MinOrderPrice = 0;
......@@ -3463,6 +3629,10 @@
this.getMinPrice(obj.orderId);
this.addMsg.OrderId = obj.orderId;
this.IsChargeLossOrders = obj.isChargeLossOrders;
//zk-点击修改清空景点
this.ScenicRefundList=[];
this.SciencNameList=[];
this.apipost(
"sellorder_post_GetOrderEntity", {
ID: obj.orderId
......@@ -3470,8 +3640,8 @@
res => {
if (res.data.resultCode == 1) {
this.isAllowUpdate = res.data.data.IsUpdatePlatOrder;
let x = res.data.data.model;
let modelPrice = res.data.data.modelPrice;
this.addMsg = x;
this.addObj = res.data.data.modelPrice;
......@@ -3479,7 +3649,8 @@
this.addObj.OpSetLossMoney = x.OpSetLossMoney;
this.addMsg.OneSex = x.OneSex;
this.addMsg.ScenicRefundArr = res.data.data.ScenicRefundArr;
this.getScenicRefund(obj.tcid);
this.getScenicRefund(obj.tcid,obj.orderId);
this.getPlatformAccount(obj.platformAccountTypeId, obj.platformAccount);
this.SetOutCityId = res.data.data.SetOutCityId;
this.reOutCityId = res.data.data.SetBackCityId;
......@@ -3495,21 +3666,9 @@
this.addMsg.ChirdNoNeedBedNum = (x.ChirdNum - x.ChirdNeedBedNum).toString();
this.addMsg.BabyNum = x.BabyNum.toString();
this.addMsg.RefuseVisaNum = x.RefuseVisaNum.toString();
this.addMsg.OrderForm = x.OrderForm
this.addMsg.allName = x.ContactName
// this.addMsg_form.OrderId=x.OrderId;
// this.addMsg_form.OpSetLossMoney=x.OpSetLossMoney;//收损金额
// this.addMsg_form.BabyChargePrice=modelPrice.BabyChargePrice;//小孩附加费
// this.addMsg_form.BabyPrice=modelPrice.BabyPrice;//婴儿价
// this.addMsg_form.BackVisaPrice=modelPrice.BackVisaPrice;//退签证费
// this.addMsg_form.ChildNeedPrice=modelPrice.ChildNeedPrice;//小孩占床增收
// this.addMsg_form.ChildNoNeedPrice=modelPrice.ChildNoNeedPrice;//小孩不占床减收
// this.addMsg_form.OldManChargePrice=modelPrice.OldManChargePrice;//老人附加费
// this.addMsg_form.OtherPrice=modelPrice.OtherPrice;//杂费
// this.addMsg_form.SingleDMCPrice=modelPrice.SingleDMCPrice;//单地接
// this.addMsg_form.VisaPrice=modelPrice.VisaPrice;//签证费用
// this.addMsg_form.SingleRoomPrice=modelPrice.SingleRoomPrice;//单房差
this.addMsg.OrderForm = x.OrderForm;
this.addMsg.allName = x.ContactName;
this.addMsg.OrderBackScenicList=x.OrderBackScenicList;
this.IsChildrenTour = x.IsChildrenTour;
this.IsBirdDiscount = x.IsBirdDiscount;
......@@ -3622,7 +3781,7 @@
let x = res.data.data.model;
this.addMsg = x;
this.addMsg.ScenicRefundArr = res.data.data.ScenicRefundArr;
this.getScenicRefund(obj.tcid);
this.getScenicRefund(obj.tcid,obj.orderId);
this.SetOutCityId = res.data.data.SetOutCityId;
this.reOutCityId = res.data.data.SetBackCityId;
this.addMsg.CustomerType = x.CustomerType.toString();
......@@ -4247,6 +4406,7 @@
Number(this.addMsg.AirticketNum);
this.addMsg.IsChildrenTour = this.IsChildrenTour;
this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount;
this.apipost(
"sellorder_post_SetOrderInfo_02",
this.addMsg,
......
......@@ -16,10 +16,16 @@
show-text>
</el-rate>
<template v-else-if="item.SurveyType === 2">
<el-radio v-for="(r, i) in item.SurveyOptionsList" v-model="item.lable" :label="r.ID" disabled="disabled" :key="i">{{r.OptionsName}}</el-radio>
<template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'">
<span>{{r.OptionsName}}</span>
</template>
<!-- <el-radio v-for="(r, i) in item.SurveyOptionsList" v-model="item.lable" :label="r.ID" disabled="disabled" :key="i"></el-radio> -->
</template>
<template v-else-if="item.SurveyType === 3">
<el-checkbox v-for="(r, i) in item.SurveyOptionsList" v-model="item.ckeckList" :label="r.ID" disabled="disabled" :key="i">{{r.OptionsName}}</el-checkbox >
<template v-for="(r, i) in item.SurveyOptionsList" v-if="r.IsCheck!=='0'">
<span>{{r.OptionsName}}</span>
</template>
<!-- <el-checkbox v-for="(r, i) in item.SurveyOptionsList" v-model="item.ckeckList" :label="r.ID" disabled="disabled" :key="i">{{r.OptionsName}}</el-checkbox > -->
</template>
<template v-else-if="item.SurveyType === 4">
<span>{{item.TextContent}}</span>
......
......@@ -903,6 +903,32 @@
font-size: 12px;
margin-left: 10px;
}
.RL_Scenic{
width:400px;
max-height: 400px;
overflow: auto;
}
.RL_Scenic table th{
height:30px;
border: 1px solid #d2d2d2;
}
.RL_Scenic table td{
padding:9px 5px!important;
border: 1px solid #d2d2d2;
}
.RL_Scenic table ._color_666 {
background-color: #ededed;
color:#666666;
}
.RL_Scenic table{
padding: 10px 0 0 20px;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
margin: 0 20px 5px 0;
width: 100%;
}
</style>
......@@ -1533,7 +1559,7 @@
<th width="150" class="nowrap">操作</th>
</tr>
<tr>
<td v-show="OrderDataList.length==0" colspan="14" align="center">暂无数据</td>
<td v-show="OrderDataList.length==0" colspan="16" align="center">暂无数据</td>
</tr>
<tr v-if="OrderDataList.leadetList!=null && OrderDataList.leadetList.length>0">
......@@ -2032,7 +2058,24 @@
<!-- <span class="RL-redType RL-remarkCon" v-else>-->
<!-- <span>暂无名单</span>-->
<!-- </span>-->
<span style="display: block">房间信息:{{childItem.OrderGuestHouseStr}}</span>
<span style="display: block">
房间信息:{{childItem.OrderGuestHouseStr}}
<el-popover trigger="click" popper-class="RL_Scenic">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="150">景点名称</th>
<th width="60">人数</th>
<th width="60">退款金额</th>
</tr>
<tr v-for="fItem in childItem.OrderBackScenicList" style="text-align:center;">
<td style="text-align:left;">{{fItem.CouponsName}}</td>
<td>{{fItem.Number}}</td>
<td>{{fItem.BackMoney}}</td>
</tr>
</table>
<span slot="reference" v-if="childItem.OrderBackScenicList&&childItem.OrderBackScenicList.length>0" style="color:#f56c6c;margin-left:20px;cursor:pointer;">退景点</span>
</el-popover>
</span>
<div>
<span v-if="childItem.OPTipMoney==''&&childItem.TipMoney!=''" style="color:red">(小费:{{childItem.TipMoney}}</span>
<span v-if="childItem.OPTipMoney!=''" style="color:red">
......@@ -3325,6 +3368,7 @@
this.addMsg.ChirdNoNeedBedNum = (x.ChirdNum - x.ChirdNeedBedNum).toString();
this.addMsg.BabyNum = x.BabyNum.toString();
this.addMsg.RefuseVisaNum = x.RefuseVisaNum.toString();
this.addMsg.OrderBackScenicList=x.OrderBackScenicList;
this.IsChildrenTour = x.IsChildrenTour;
this.IsBirdDiscount = x.IsBirdDiscount;
......
<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;
}
</style>
<template>
<div class="flexOne PassengerList PassengerList2">
<div class="query-box">
<ul>
<li>
<table class="PT_teamTable">
<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" value="导出报表" @click="exportExcel()">
</li>
</ul>
</div>
<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="110">英文姓</th>
<th width="145">英文名</th>
<th width="45">性别</th>
<th width="155">出生日期</th>
<th width="120">年龄类型</th>
<th width="80">出生地</th>
<th width="155">护照号</th>
<th width="80">签发地</th>
<th width="155">签发日期</th>
<th width="155">护照有效期</th>
<th width="175">客户手机</th>
<th width="240">身份证</th>
<th width="100">单价</th>
<th width="180">业务员</th>
<th width="60">方式</th>
<th width="100">舱位</th>
<th width="120">签证类型</th>
</tr>
<tr>
<td v-show="QueryMsg.dataList.Length==0" colspan="22" 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
:disabled="subItem.SingleRoomType!=subItem.HouseType"
v-for="(hs, hsIndex) in numberList"
:key="hs"
:label="hs"
:value="hs">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="subItem.HouseType" placeholder="请选择" @change="changeRmType(subItem, subIndex)">
<el-option
:disabled="subItem.SingleRoomType!=subItem.HouseType"
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.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>
<!-- </template> -->
<tr>
<td style="text-align:right" colspan="22"><input type="button" value="保存" class="leader2Btn" @click="saveOPSetGuestHouse"></td>
</tr>
</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: [],
};
},
methods: {
// 修改类型
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,
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 => {
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_V2",
this.msg,
res => {
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;
}
},
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 = {
TCID: this.TCID
};
this.apipost(
"travel_get_GetTravelPriceReportInfo",
qmsg,
res => {
if (res.data.resultCode == 1) {
this.QueryMsg.TeamInfoData = res.data.data;
}
},
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.getList();
this.getHouseTypeList();
}
};
</script>
\ No newline at end of file
......@@ -271,7 +271,7 @@
</div>
</td>
<td>
<div class="fz16 fbold linkspan" @click="goUrlT('TravelPassengerList',item.TCID,'旅客名单')">
<div class="fz16 fbold linkspan" @click="goUrlT('TravelPassengerList2',item.TCID,'旅客名单')">
<span style="color: #4BCA81;" v-if="item.HouseResult==1"></span>
<span class="colorE95252" v-else>{{item.HouseResult=='-1'?"x":"O"}}</span>
</div>
......
......@@ -980,42 +980,38 @@ export default {
return
}
// type 1 零件地 自动生成 2 领队人头费 跳转
let BType = 3,
AccountId = 1,
IsRelevanceTravel = 1,
TemplateId = 71,
RB_Branch_Id = userinfo.RB_Branch_id,
OrderSource = 6;
if (obj.Type == 2) {
let id = [72, 73];
let TCIDARR = [obj.TCIDs];
let orderObj = {
OrderID: 0,
OrderSource: 6,
Obj: {},
SourceID: 0,
CostType: 180,
TCIDList: TCIDARR,
Money: inputPrice,
TCNUMS: ''
};
let fullPath = `/ChoiceAddFinancialDocuments?Type=${1}&templateID=${JSON.stringify(id)}&companyID=${userinfo.RB_Branch_id}&orderObj=${JSON.stringify(orderObj)}&blank=y&tab=领队报账`;
let dom = document.querySelector("#blankLink");
dom.href = `http://${window.location.host}/#${fullPath}`;
dom.click();
} else {
BType = 1;
AccountId = 7;
IsRelevanceTravel = 0;
TemplateId = obj.OutBranchId === 0 ? 72 : 73;
RB_Branch_Id = obj.OutBranchId;
OrderSource = 8;
}
// 自动生成
let msg = {
TemplateId: 71,
RB_Branch_Id: userinfo.RB_Branch_id,
RB_Branch_Id: RB_Branch_Id,
IsPublic: 0,
BType: 4,
AccountId: 14,
BType: BType,
AccountId: AccountId,
CostTypeID: 180,
WBMoney: obj.price,
Remark: "",
TCID: obj.TCIDs,
IsRelevanceTravel: 1,
IsRelevanceTravel: IsRelevanceTravel,
OrderID: 0,
vorcherInos: [{FrIdStr:''}],
Description: "",
RemitterName: obj.LeaderOrGuidName,
TradeDate: new Date().Format("yyyy-MM-dd"),
OrderSource: 6,
OrderSource: OrderSource,
}
this.apipost('Financial_post_SetFinanceInfoCommonForIn', msg, res=>{
if (res.data.resultCode == 1) {
......@@ -1027,7 +1023,6 @@ export default {
this.$message.error(res.data.message)
}
}, null)
}
},
goZhiDan: function(obj) {
let id = [59];
......@@ -1277,7 +1272,7 @@ export default {
DiningID: ai.DiningID,
data: [ai]
});
Diningmap[ai.PlanDateStr] = ai;
Diningmap[ai.UseTimeStr] = ai;
}else{
for(var j = 0; j < Diningdest.length; j++){
var dj = Diningdest[j];
......@@ -1306,7 +1301,7 @@ export default {
TicketID: ai.TicketID,
data: [ai]
});
Scenicmap[ai.PlanDateStr] = ai;
Scenicmap[ai.UseTimeStr] = ai;
}else{
for(var j = 0; j < Scenicdest.length; j++){
var dj = Scenicdest[j];
......
......@@ -185,7 +185,11 @@
max-height: 400px;
overflow: auto;
}
._TravelPricePopover .ScenicDiv{
width: 450px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover table {
padding: 10px 0 0 20px;
background-color: #ededed;
......@@ -664,19 +668,50 @@
<template slot="prepend">集合标识</template>
</el-input>
</el-form-item>
<el-form-item>
<span class="TP_Sendprepend" style="margin-left:0;width:120px;">可退景点</span>
<el-select class="w180" v-model="priceData.ChooseBackScenicArr" multiple >
<el-option v-for="item in priceData.scenicBackList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
<span class="TPsecondTitle">可退景点</span>
</div>
<div class="TPright clearfix">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="ScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="_color_666">选择</td>
<td class="_color_666">景点名称</td>
<td class="_color_666">退款金额</td>
</tr>
<tr v-for="item in priceData.ScenicBackList">
<td>
<el-checkbox :checked="item.IsChecked" @change="getScenic(item)"></el-checkbox>
</td>
<td>
{{item.Name}}
</td>
<td>
<el-input class="w80" @keyup.native="checkPrice(item,'RefundMoney')"
v-model="item.RefundMoney"></el-input>
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="subItem in ScenicList">{{subItem.Name}}</span>
<i class="iconfont icon-arrow-down SimulaDrop"></i>
</div>
</el-popover>
<el-form-item style="margin-top:1px;">
<el-input placeholder="请输入" class="w460 ComSeat" v-model="priceData.AirportService">
<template slot="prepend">机场服务</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
......@@ -973,6 +1008,8 @@
offerList: [],
selectFilghtList: [],
FinfoList: [],
//选中景点
ScenicList:[],
//下拉框默认值
SelectDefaultValue: 0,
SelectOtherDefault: -1,
......@@ -1142,10 +1179,8 @@
ChooseHotelArray: [],
//销售清位时间
SaleClearOrderHour: 0,
//可退景点选择列表
chooseBackScenicArr:[],
//可退景点下拉列表
scenicBackList:[],
ScenicBackList:[],
};
}
this.returnPriceList.push(objItem);
......@@ -1538,6 +1573,20 @@
}
});
},
//选中景点选择框
getScenic(item){
item.IsChecked=!item.IsChecked;
this.initScenic();
},
//初始化景点
initScenic(){
this.ScenicList=[];
this.priceData.ScenicBackList.forEach(x=>{
if(x.IsChecked){
this.ScenicList.push(x);
}
})
},
goUrl(path, id) {
this.$router.push({
name: path,
......@@ -1735,6 +1784,7 @@
x["Checked"] = true;
this.chooseDay = this.priceData.StartDate;
this.initFlightData();
this.initScenic();
} else {
x["Checked"] = false;
}
......
......@@ -1816,6 +1816,14 @@ export default {
title: '旅客名单'
},
},
{
path: '/TravelPassengerList2', //旅客名单
name: 'TravelPassengerList2',
component: resolve => require(['@/components/TravelManager/TravelList/TravelPassengerList2'], resolve),
meta: {
title: '旅客名单'
},
},
{
path: '/RegistrationList',
name: 'RegistrationList',
......
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