Commit 4cdd2250 authored by 黄媛媛's avatar 黄媛媛
parents 4de0ab67 dcf71d32
......@@ -578,6 +578,9 @@ export default {
case "/happyMoney": // 红包结算
path = "/LianMengManagement";
break;
case "/OpHotelOrderDetail": // 酒店订单详情
path = "/OpHotelOrder";
break;
}
//找到Root
......@@ -807,6 +810,9 @@ export default {
case "/happyMoney": // 红包结算
path = "/LianMengManagement";
break;
case "/OpHotelOrderDetail": // 酒店订单详情
path = "/OpHotelOrder";
break;
}
//找到Root
......
......@@ -391,15 +391,18 @@
<td :colspan="3">
{{o.TCNUM}}{{o.TCID}}
<span v-if="GetDetail.IsShowPlanUrl === 1" @click="goInves('investigationList',o.TCID)" class="FD_yijian">旅客意见 {{o.GuestSurveyNum}}/{{o.GuestTotalNum}}</span>
<span v-if="GetDetail.IsShowPlanUrl==1&&GetDetail.ClientType==7" @click="goGuideAccount('GuideAccount',GetDetail.ClientID)" class="FD_yijian">领队导游往来</span>
<span v-if="(GetDetail.IsShowPlanUrl===1||GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53|| GetDetail.TemplateId === 56)&&GetDetail.ClientType===7" @click="goGuideAccount('GuideAccount',GetDetail.ClientID)" class="FD_yijian">领队导游往来</span>
</td>
<td @click="jumpPage('TravelControlList',o.TCNUM,1)"> <span class="_jump_page _font_bold">查看团队</span> </td>
<td @click="jumpPage('RegistrationList',o.TCID,7)"> <span class="_jump_page _font_bold">查看报名</span> </td>
<td @click="GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"> <span class="_jump_page _font_bold">团队收支</span> </td>
<td v-if="OrderSource==9&&GetDetail.SourceID>0" @click="jumpPage('FinancialOrder',GetDetail,2)"> <span class="_jump_page _font_bold">国内票务</span> </td>
<td v-else-if="OrderSource==10&&GetDetail.SourceID>0" @click="jumpPage('FinancialOrder',GetDetail,3)"> <span class="_jump_page _font_bold">签证收支</span> </td>
<td v-else-if="OrderSource==4&&GetDetail.SourceID>0"@click="jumpPage('FinancialOrder',GetDetail,4)"> <span class="_jump_page _font_bold">机票收支</span> </td>
<td v-if="GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53|| GetDetail.TemplateId === 56|| GetDetail.IsShowPlanUrl === 1" @click="jumpPlanPage('leaderReimbursement',o.TCID)"> <span class="_jump_page _font_bold">用款计划</span> </td>
<td v-else-if="OrderSource==4&&GetDetail.SourceID>0" @click="jumpPage('FinancialOrder',GetDetail,4)"> <span class="_jump_page _font_bold">机票收支</span> </td>
<td v-if="GetDetail.TemplateId === 43 || GetDetail.TemplateId === 48 || GetDetail.TemplateId === 53|| GetDetail.TemplateId === 56
|| GetDetail.TemplateId === 49 || GetDetail.TemplateId === 50 || GetDetail.TemplateId === 51|| GetDetail.TemplateId === 52
|| GetDetail.TemplateId === 54 || GetDetail.TemplateId === 55 || GetDetail.TemplateId === 57|| GetDetail.TemplateId === 58
|| GetDetail.IsShowPlanUrl === 1" @click="jumpPlanPage('leaderReimbursement',o.TCID)"> <span class="_jump_page _font_bold">用款计划</span> </td>
<td v-if="GetDetail.IsShowPlanUrl === 1" @click="jumpPlanPage('leaderPay2',o.TCID)"> <span class="_jump_page _font_bold">领队报账</span> </td>
<td v-if="GetDetail.TemplateId === 49 || GetDetail.TemplateId === 50 || GetDetail.TemplateId === 57 || GetDetail.TemplateId === 58" @click="jumpCheZiPage('BusApportionManagement',o.TCID)"> <span class="_jump_page _font_bold">车资分摊</span> </td>
</tr>
......
......@@ -492,7 +492,7 @@
</div>
<div class="_remark">
<p>{{$t('system.label_info')}}</p>
<textarea v-model="Description">
<textarea v-model="msg.Description">
</textarea>
</div>
<div>
......@@ -915,7 +915,7 @@ export default {
}
}
this.loading = true;
this.msg.Description=this.Description;
// this.msg.Description=this.Description;
this.apipost('Financial_post_Set',this.msg,res=>{
if(res.data.resultCode==1){
//清除旅客名单数据
......@@ -1257,7 +1257,7 @@ export default {
if(this.orderObj!=null&&this.orderObj.OrderSource===10){
}else{
this.Description=this.GetDetail.Description;
this.msg.Description=this.GetDetail.Description;
}
if(this.orderObj){
......@@ -1272,7 +1272,7 @@ export default {
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:'';
this.msg.Description = this.orderObj.laRemark?this.orderObj.laRemark:'';
}
}
if(data.VorcherInos){
......
......@@ -398,7 +398,7 @@
</div>
<div class="_remark">
<p>{{$t('system.label_info')}}</p>
<textarea v-model="Description">
<textarea v-model="msg.Description">
</textarea>
</div>
......@@ -485,6 +485,7 @@ import TicketingModule from "../commonPage/TicketingModule.vue";
export default {
data(){
return{
Description:'',
msg:{
FrID:0,
ClientType:0,
......@@ -1052,7 +1053,7 @@ export default {
this.msg.TipGuestList=tipguestInfo;
}
this.msg.Description=this.Description;
// this.msg.Description=this.Description;
if(z){
this.msg.Status = 0;
}else{
......@@ -1395,7 +1396,7 @@ export default {
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:'';
this.msg.Description = this.orderObj.laRemark?this.orderObj.laRemark:'';
}
}
if(data.VorcherInos){
......
......@@ -22,7 +22,7 @@
<ul>
<li>
<input v-if="IsOperation!=1" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input style="display:none;" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input v-if="IsOperation==1&&CurrentUserInfo.EmployeeId==615" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<span v-if="IsOperation==1" style="color:red;font-size:14px;">已制单,不能再修改!</span>
</li>
</ul>
......@@ -694,7 +694,6 @@
if (this.CurrentUserInfo.EmployeeId == 615) {
this.IsEditHotel = 1;
this.IsEditHotelPeople = 1;
}
let list = res.data.data.HotelOrderListReport;
this.CreateBy = res.data.data.CreateBy;
......
......@@ -4,13 +4,13 @@
<ul>
<li>
<template v-if="IsOperation != 1">
<input v-if="IsOperation != 1" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input v-if="IsOperation != 1" type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" />
<input type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" />
</template>
<template v-else>
<span v-if="IsOperation==1" style="color:red;font-size:14px;">已制单,不能在修改!</span>
<span style="color:red;font-size:14px;">已制单,不能在修改!</span>
<input v-if="CurrentUserInfo.EmployeeId==615" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
</template>
<input type="button" class="fr normalBtn mb30" style="display:none;" value="保存" @click="saveList(1)" />
</li>
</ul>
</div>
......@@ -192,6 +192,8 @@
GuestNum: 0,
loading: false,
IsOperation: '',
//当前登录人信息
CurrentUserInfo:{},
};
},
methods: {
......@@ -343,6 +345,8 @@
},
},
mounted() {
let userInfo = this.getLocalStorage();
this.CurrentUserInfo = userInfo;
this.TCNUM = this.$route.query.TCNUM;
this.GuestNum = this.$route.query.GuestNum;
this.getList();
......
......@@ -289,7 +289,7 @@
</el-pagination>
<el-dialog custom-class='addCompany' :title="dialogTitle" :visible.sync="outerVisible" center :before-close="closeChangeMachie">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="100px">
<el-form-item :label="$t('system.query_workType')" prop="Type">
<el-form-item :label="$t('system.query_workType')" prop="LeaderGuidClass">
<el-select v-model="addMsg.LeaderGuidClass" :placeholder="$t('admin.admin_workType')" class="w210">
<el-option key="0" label="公司领队" :value="0"></el-option>
<el-option key="1" label="同行领队" :value="1"></el-option>
......@@ -506,7 +506,7 @@ export default {
trigger: "change"
}
],
Type: [
LeaderGuidClass: [
{
required: true,
message: "请选择工作类型",
......@@ -856,7 +856,7 @@ export default {
//初始化创建、修改表单数据
let newMsg = {
ID: "0",
Type: "",
Type: 1,
EmployeeId: "",
Surname: "",
Name: "",
......
......@@ -294,8 +294,8 @@
<th>订单号</th>
<th>第三方订单号</th>
<th>房间数</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th>大红包</th>
<th>优惠金额</th>
<th>待收金额</th>
......
......@@ -73,8 +73,8 @@
<th>订单号</th>
<th>客户信息</th>
<th>房间数</th>
<th>价格</th>
<th>总收入</th>
<th></th>
<th>实收</th>
<th>抵扣金额</th>
<th>优惠金额</th>
<th>待收金额</th>
......@@ -83,7 +83,7 @@
<th>入住时间</th>
<th>离店时间</th>
<th>取消费用</th>
<!-- <th>操作</th> -->
<th>操作</th>
</tr>
<tbody v-for="(item,index) in dataList">
<tr>
......@@ -103,7 +103,7 @@
<td>{{item.CheckInStr}}</td>
<td>{{item.CheckOutStr}}</td>
<td>{{item.CancelFee}}</td>
<!-- <td>详情</td> -->
<td class="cursorpointer" @click="goOrderDetails(item.OrderID)">详情</td>
</tr>
<tr>
<td colspan="6" style="text-align:left;width:600px">
......@@ -116,7 +116,7 @@
</div>
</div>
</td>
<td colspan="6" style="text-align:left;width:600px">
<td colspan="7" style="text-align:left;width:600px">
<div class="SH_OrderDan">
<div>收款单据:</div>
<div>
......@@ -181,6 +181,15 @@ export default {
};
},
methods: {
goOrderDetails(ID){
this.$router.push({
name: 'OpHotelOrderDetail',
query: {
ID: ID,
blank:'y',
}
})
},
getList() {
//获取现有线路列表
this.loading = true;
......
<style>
.HotelSure{
width:1200px;
/* margin:20px auto; */
padding: 0 20px 20px 20px;
display: flex;
background-color: white;
}
.HS_LeftInfo{
display: inline-block;
width:792px;
height:auto;
}
.HS_RightList{
width:388px;
display: inline-block;
margin-left:20px;
height:auto;
}
.HS_div1{
width:100%;
height:190px;
border:1px solid #E0E0E0;
}
.HS_divFirst{
margin:32px 0 21px 20px;
}
.Hs_OneType{
color:#2EB000;
font-size:18px;
font-weight: bold;
display: flex;
align-items: center;
}
.HS_divTwo{
margin:0 0 21px 20px;
}
.Hs_OneType img,.HS_divThree img{
margin-right:10px;
}
.HS_divThree{
color:#FFA835;
font-size:18px;
font-weight: bold;
margin-left:20px;
display: flex;
align-items: center;
}
.HS_div2{
width:100%;
border:1px solid #E0E0E0;
margin:20px 0;
overflow: hidden;
padding-bottom:20px;
}
.HS_bookTitle{
padding-left:20px;
width:100%;
background-color: #EDF4FF;
color:#111111;
font-size:12px;
font-weight: bold;
height:29px;
display: flex;
align-items: center;
border-bottom:1px solid #E0E0E0;
}
.HS_div2One{
margin:15px 0 0 20px;
}
.HS2_title{
color:#888888!important;
}
.HS_div2 ul li,.HS_div3 ul li{
display: inline-block;
margin-right:21px;
font-size:12px;
color:#111111;
}
.HS_div3>div:nth-child(2){
padding: 20px;
}
.HS_div3>div:nth-child(2)>div{
display: flex;
margin-bottom: 15px;
}
.HS_div3>div:nth-child(2)>div:last-child{
margin-bottom: 0;
}
.HS_div3One{
margin:15px 0 0 20px;
color:#333333;
}
.HS_Line{
width:30px;
height:1px;
display:inline-block;
position: relative;
top:-3px;
margin-right:10px;
border-top:1px solid #111111;
}
.HS_UpdateDate{
width:84px;
height:32px;
border:1px solid #EE4454;
background: #fff;
color:#EE4454;
outline: none;
border-radius: 3px;
cursor: pointer;
}
.HS_roomNum .el-input__inner{
height:30px;
border:none;
border-radius:0;
border-bottom:1px solid #DDDDDD;
}
.HS_fangfei{
display: inline-block;
width:90px;
height:86px;
border:1px solid #BBC9DA;
background-color: #fff;
font-size:14px;
margin-right:10px;
text-align: center
}
.HS_fangfei_Top{
width:100%;
height:32px;
margin-bottom:10px;
background-color: #F5F7F8;
line-height: 32px;
color:#666666;
}
.HS_fangfei span{
color:#EE4454;
}
.HS_div3{
width:792px;
height:auto;
overflow: hidden;
position: relative;
border:1px solid #E0E0E0;
}
.HS_bookTitle span{
color:#FFA835;
font-size:12px;
position: absolute;
right:20px;
}
.HS_bookTitle span i{
position: relative;
top:1px;
margin-right:3px;
}
.HS_wenhao{
position: relative;
top: 2px;
margin-left: 5px;
}
.HS_BookMan .el-input__inner{
height:30px;
border:0;
border-radius: 0;
border-bottom:1px solid #DDDDDD;
}
.HS_AreaSelect .el-input__inner{
height: 30px;
border: none;
border-radius: 0;
border-bottom: 1px solid #DDDDDD;
}
.HS_AreaSelect .el-input__icon,.HS_roomNum .el-input__icon{
line-height: 0;
}
.HS_detailAddress .el-input__inner,.HS_Email .el-input__inner{
height:40px;
border:0;
border-radius: 0;
border-bottom:1px solid #DDDDDD;
}
.HS_RightTopImg{
width:100%;
height:194px;
}
.HS_RightList img{
width:100%;
height:100%;
}
.HS_HotelRight{
height:184px;
padding:17px 20px 20px 20px;
border:1px solid #E0E0E0;
border-top:0;
color:#666666;
}
.HS_HtName{
color:#EE4454;
font-size:21px;
}
.HS_EnName{
font-size:12px;
color:#999999;
margin:8px 0 19px 0;
}
.HS_HAddress{
font-size:12px;
margin:20px 0;
}
.HS_HAddress img{
width:10px;
position: relative;
top:2px;
}
.HS_Haohua{
font-size:14px;
margin-bottom:10px;
}
.f12{
font-size:12px;
}
.C9{
color:#999999;
margin-right:20px;
}
.HS_RoomInfo li{
display: block;
width:100%;
font-size:14px;
margin-top:18px;
}
.HS_RoomInfo li span{
display: inline-block;
}
.HS_RightBtm{
width:100%;
/* height:160px; */
margin-top:20px;
overflow: hidden;
border:1px solid #E0E0E0;
}
.HS_RitTop{
height:72px;
background-color: #EDF4FF;
display: flex;
padding:0 20px;
align-items: center;
position: relative;
}
.HS_RitTop_Left{
color:#111111;
float:left;
font-size:20px;
font-weight: 400;
}
.HS_RitPrice{
float:right;
font-size:24px;
color:#EE4454;
font-size:24px;
position: absolute;
right:20px
}
.HS_RitPrice i{
font-style: normal;
margin-right:5px;
font-size:14px;
}
.HS_RitBottom{
padding:20px;
font-size:14px;
color:#111111;
}
.HS_RitBottom span{
display:inline-block;
}
.HS_btLine{
width:245px;
height:1px;
margin:0 10px;
position: relative;
top:-3px;
border-top:1px dashed #999999;
}
.HS_btLineTwo{
width:204px;
height:1px;
margin:0 10px;
position: relative;
top:-3px;
border-top:1px dashed #999999;
}
.HS_RitBottom>div{
margin-bottom:15px;
}
.HD_payBtn{
width:100%;
height:66px;
background-color: #EE4454;
color:#fff;
outline: none;
border:none;
cursor: pointer;
margin-top:30px;
font-size:18px;
border-radius: 4px;
}
.HD_payBtn:hover{
opacity: 0.8;
}
.HS_BookMan .el-input__icon{
line-height: 0;
}
.HS_FFEI:last-child{
visibility: hidden;
}
.cantBaoChild{
color:red;
}
.disBtn{
background-color: gray;
cursor: default;
}
.disBtn:hover{
opacity: 1;
}
</style>
<template>
<div class="HotelSure" v-loading="loading">
<div class="HS_LeftInfo">
<div class="HS_div2">
<div class="HS_bookTitle">预订信息</div>
<div class="HS_div3One">
<ul>
<li class="HS2_title">订单号</li>
<li>{{details.model.ThirdOrderNo}}</li>
</ul>
</div>
<div class="HS_div2One">
<ul>
<li class="HS2_title">房型信息</li>
<li>
<div>
<template v-if="details.parmResult.roomType==1">单人</template>
<template v-if="details.parmResult.roomType==2">双人</template>
<template v-if="details.parmResult.roomType==3"></template>
<template v-if="details.parmResult.roomType==4">三人间</template>
<template v-if="details.parmResult.roomType==5">4床</template>
<template v-if="details.parmResult.roomType==6">日式房间</template>
<template v-if="details.parmResult.roomType==7">和洋室</template>
<template v-if="details.parmResult.roomType==8">半开房</template>
<template v-if="details.parmResult.roomType==9">其他的</template>
</div>
</li>
</ul>
</div>
<div class="HS_div2One">
<ul>
<li class="HS2_title">入住日期</li>
<li>
<span>{{details.model.CheckIn.split('T')[0]}}</span>
<div class="HS_Line"></div>
<span>{{details.model.CheckOut.split('T')[0]}}</span>
</li>
</ul>
</div>
<div class="HS_div2One HS_roomNum">
<ul>
<li class="HS2_title">房间数量</li>
<li>
{{details.model.Number}}
</li>
</ul>
</div>
</div>
<div class="HS_div3">
<div class="HS_bookTitle" >
入住信息<span></span>
</div>
<div>
<div>
<label class="HS2_title">预订人:</label>
<div>{{details.parmResult.guestLastName + details.parmResult.guestFirstName}}</div>
</div>
<div>
<label class="HS2_title">当前地址:</label>
<div>{{details.parmResultRoomInfo.guestAddress}}</div>
</div>
<div>
<label class="HS2_title">Email:</label>
<div>{{details.parmResultRoomInfo.guestEmail}}</div>
</div>
<div>
<label class="HS2_title">电话:</label>
<div>{{details.parmResultRoomInfo.guestPhoneNumber}}</div>
</div>
<div>
<label class="HS2_title">客户备注:</label>
<div>{{details.model.Remark}}</div>
</div>
</div>
</div>
</div>
<div class="HS_RightList">
<div class="HS_RightBtm">
<div class="HS_RitTop">
<span class="HS_RitTop_Left">订单总额</span>
<span class="HS_RitPrice">
<i>¥</i>{{details.model.TotalPrice}}
</span>
</div>
</div>
<div class="HS_RightTopImg">
<template v-if="details">
<img :src="details.model.HotelPic" alt=""/>
</template>
</div>
<div class="HS_HotelRight">
<div class="HS_HtName">{{details.model.HotelName}}</div>
<div class="HS_HAddress">
<img src="../../../assets/img/hotel/redAddress.png" alt=""/>
{{details.parmResult.address}}
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
details: {
model:{
ThirdOrderNo: ''
}
},
loading: true
};
},
mounted() {
},
created() {
let id = this.$route.query.ID
this.loading = true;
this.apipost(
"dmc_post_Get_GetJAPAN_OrderDetail",
{orderId: id},
res => {
this.loading = false;
if (res.data.resultCode == 1) {
let data = res.data.data
this.details = data
} else {
this.Error(res.data.message);
}
})
},
methods: {
}
};
</script>
<style>
.PT_teamTable {
width: 800px;
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{
.PT_teamTable {
width: 800px;
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;
}
}
</style>
<template>
......@@ -39,7 +55,8 @@
<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>
......@@ -51,13 +68,7 @@
</li>
</ul>
</div>
<table
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>
......@@ -91,13 +102,13 @@
<td>
<!--自然单间 指定单间(单房差)-->
<template v-if="subItem.SingleRoomType==subItem.HouseType">
{{getHouseTypeStr(subItem.HouseType)}}
{{getHouseTypeStr(subItem.HouseType)}}
</template>
<template v-else>
{{getHouseTypeStr(subItem.SingleRoomType)}} <br/><span style="color:red;">(指定)</span>
{{getHouseTypeStr(subItem.SingleRoomType)}} <br /><span style="color:red;">(指定)</span>
</template>
<template v-if="subItem.IsBed==0"><br/><span style="color:red;">(不占床)</span></template>
</td>
<template v-if="subItem.IsBed==0"><br /><span style="color:red;">(不占床)</span></template>
</td>
<td>{{subItem.GuestName}}</td>
<td>{{subItem.ESurName}}</td>
<td>{{subItem.EName}}</td>
......@@ -124,128 +135,128 @@
</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: [],
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,
OrderId: 0,
//团期数据
TeamInfoData: []
}
};
},
methods: {
goUrlTravelControl(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: "y",
tab: name
QueryMsg: {
loading: true,
//返回数据
dataList: [],
TCID: 0,
OrderId: 0,
//团期数据
TeamInfoData: []
}
});
},
//获取性别字符串
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;
};
},
//获取数据
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;
methods: {
goUrlTravelControl(name, path, id, tcmun) {
this.$router.push({
name: path,
query: {
id: id,
tcmun: tcmun,
blank: "y",
tab: name
}
},
err => {}
);
},
exportExcel() {
//导出报表
let msg = {
TCID: this.msg.TCID
};
var fileName = "旅客名单.xls";
if (this.QueryMsg.TeamInfoData != null) {
fileName =
"【" + this.QueryMsg.TeamInfoData[0].TCNUM + "】旅客名单.xls";
});
},
//获取性别字符串
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;
},
//获取数据
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
};
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;
});
},
//获取团期信息
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 => {}
);
}
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() {
this.TCID = this.$route.query.id;
this.msg.TCID = this.TCID;
this.msg.OrderId = this.$route.query.OrderId;
this.getTeamInfo();
this.getList();
}
};
</script>
\ No newline at end of file
};
</script>
<style>
@import "../../assets/css/trip/index.css";
@import "../../assets/css/trip/index.css";
</style>
<template>
<div class="trip-box-commonTeam" v-loading="loading">
<div class="item-title">
<span class="t">{{tripList.length}}日行程</span>
<span>
<small class="s"></small>
</span>
<span>Scheduling</span>
</div>
<div class="trip-block-commonTeam" v-for="(item,i) in tripList" :key="i">
<div class="trip-title">
<div class="day"><span v-if='item.dayNum<10'>0</span>{{item.dayNum}}</div>
<div class="desc" v-html="item.title"></div>
</div>
<oneday v-if="item.details && item.details.length==1" :day='item'></oneday>
<twoday v-if="item.details && item.details.length==2" :day='item'></twoday>
<threeday v-if="item.details && item.details.length==3" :day='item'></threeday>
<fourday v-if="item.details && item.details.length==4" :day='item'></fourday>
<fiveday v-if="item.details && item.details.length>=5" :day='item'></fiveday>
<div class="trip-box-commonTeam" v-loading="loading">
<div class="item-title">
<span class="t">{{tripList.length}}日行程</span>
<span>
<small class="s"></small>
</span>
<span>Scheduling</span>
</div>
<div class="trip-block-commonTeam" v-for="(item,i) in tripList" :key="i">
<div class="trip-title">
<div>
<p class="day"><span v-if='item.dayNum<10'>0</span>{{item.dayNum}}</p>
<template v-if="startDate&&startDate!=''">
<p>{{GetDayStr(startDate,item.dayNum-1)}}</p>
</template>
</div>
<div class="desc" v-html="item.title"></div>
</div>
<oneday v-if="item.details && item.details.length==1" :day='item'></oneday>
<twoday v-if="item.details && item.details.length==2" :day='item'></twoday>
<threeday v-if="item.details && item.details.length==3" :day='item'></threeday>
<fourday v-if="item.details && item.details.length==4" :day='item'></fourday>
<fiveday v-if="item.details && item.details.length>=5" :day='item'></fiveday>
</div>
</div>
</template>
<script>
import oneday from "../commonPage/TravelTripPreview/oneday";
import twoday from "../commonPage/TravelTripPreview/twoday";
import threeday from "../commonPage/TravelTripPreview/threeday";
import fourday from "../commonPage/TravelTripPreview/fourday";
import fiveday from "../commonPage/TravelTripPreview/fiveday";
export default {
props: ["subConfig"],
data() {
return {
tripList: [],
loading:false
};
},
components: {
oneday,
twoday,
threeday,
fourday,
fiveday
},
mounted() {},
methods: {
GetTrip(id) {
this.tripList=[];
if (id !== undefined) {
//根据ID 获取行程内容
this.loading=true;
this.apipost(
"b2b_get_GetB2BTravelInfoNoDes",
{
configId: id
},
res => {
this.loading=false;
if (res.data.resultCode == 1) {
this.tripList = res.data.data.dayList;
this.init();
}
},
err => {}
);
} else {
var dayList = [];
this.subConfig.DayList.forEach((objItem, objIndex) => {
var dayItem = this.$tripUtils.daysArrayObj();
dayItem.dayNum = objItem.dayNum;
//每一天的数组
var dayArray = [];
//子项遍历
objItem.dayArray.forEach(subItem => {
switch (subItem.Type) {
//交通
case "1":
var subTraffiArray = [];
subItem.childItem.SubTraffic.forEach(subTrafficItem => {
subTraffiArray.push({
startCityName: subTrafficItem.StartCityName,
arrivalType: subTrafficItem.ArrivalType,
arrivalCityName: subTrafficItem.ArrivalCityName
import oneday from "../commonPage/TravelTripPreview/oneday";
import twoday from "../commonPage/TravelTripPreview/twoday";
import threeday from "../commonPage/TravelTripPreview/threeday";
import fourday from "../commonPage/TravelTripPreview/fourday";
import fiveday from "../commonPage/TravelTripPreview/fiveday";
export default {
props: ["subConfig"],
data() {
return {
tripList: [],
loading: false,
startDate: ""
};
},
components: {
oneday,
twoday,
threeday,
fourday,
fiveday
},
mounted() {},
methods: {
GetDayStr(dateStr, dayNum) {
return this.$commonUtils.AddDay(dateStr, dayNum);
},
GetTrip(id, TCID) {
this.tripList = [];
this.startDate = '';
var nTCID = 0;
if (TCID) {
nTCID = TCID;
}
var msg = {
configId: id,
tcid: nTCID
};
if (id !== undefined) {
//根据ID 获取行程内容
this.loading = true;
this.apipost(
"b2b_get_GetB2BTravelInfoNoDes", msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
if (res.data.data.priceList && res.data.data.priceList.length > 0) {
this.startDate = res.data.data.priceList[0].startDate;
}
this.tripList = res.data.data.dayList;
this.init();
}
},
err => {}
);
} else {
var dayList = [];
this.subConfig.DayList.forEach((objItem, objIndex) => {
var dayItem = this.$tripUtils.daysArrayObj();
dayItem.dayNum = objItem.dayNum;
//每一天的数组
var dayArray = [];
//子项遍历
objItem.dayArray.forEach(subItem => {
switch (subItem.Type) {
//交通
case "1":
var subTraffiArray = [];
subItem.childItem.SubTraffic.forEach(subTrafficItem => {
subTraffiArray.push({
startCityName: subTrafficItem.StartCityName,
arrivalType: subTrafficItem.ArrivalType,
arrivalCityName: subTrafficItem.ArrivalCityName
});
});
});
var trafficObj = {
type: subItem.Type,
childItem: {
description: subItem.childItem.Description,
subTraffic: subTraffiArray
}
};
dayArray.push(trafficObj);
break;
//景点
case "2":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
var trafficObj = {
type: subItem.Type,
childItem: {
description: subItem.childItem.Description,
subTraffic: subTraffiArray
}
};
dayArray.push(trafficObj);
break;
//景点
case "2":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
});
});
});
var scenicObj = {
type: subItem.Type,
childItem: {
couponsName: subItem.childItem.CouponsName,
couponsTicketName: subItem.childItem.CouponsTicketName,
playTimeHour: subItem.childItem.PlayTimeHour,
playTimeMinutes: subItem.childItem.PlayTimeMinutes,
description: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(scenicObj);
break;
//酒店
case "3":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
var scenicObj = {
type: subItem.Type,
childItem: {
couponsName: subItem.childItem.CouponsName,
couponsTicketName: subItem.childItem.CouponsTicketName,
playTimeHour: subItem.childItem.PlayTimeHour,
playTimeMinutes: subItem.childItem.PlayTimeMinutes,
description: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(scenicObj);
break;
//酒店
case "3":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
});
});
});
var hotelObj = {
type: subItem.Type,
childItem: {
hotelName: subItem.childItem.HotelName,
hotelProductName: subItem.childItem.HotelProductName,
useDinnerType: subItem.childItem.UseDinnerType,
description: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(hotelObj);
break;
//餐厅
case "4":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
var hotelObj = {
type: subItem.Type,
childItem: {
hotelName: subItem.childItem.HotelName,
hotelProductName: subItem.childItem.HotelProductName,
useDinnerType: subItem.childItem.UseDinnerType,
description: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(hotelObj);
break;
//餐厅
case "4":
var imgArray = [];
subItem.childItem.ImaArray.forEach(imgItem => {
imgArray.push({
url: imgItem.Url,
name: imgItem.Name
});
});
});
var dinnerObj = {
type: subItem.Type,
childItem: {
dinnerName: subItem.childItem.DinnerName,
mealName: subItem.childItem.MinnerName,
useDinnerType: subItem.childItem.UseDinnerType,
useTimeHour: subItem.childItem.UseTimeHour,
useTimeMinutes: subItem.childItem.UseTimeMinutes,
description: subItem.childItem.Description,
descriptionText: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(dinnerObj);
break;
//自由活动
case "5":
var freedomObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description
}
};
dayArray.push(freedomObj);
break;
//温馨提示
case "6":
var warmObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description
}
};
dayArray.push(warmObj);
break;
//行程大点
case "7":
var titleObj = {
type: subItem.Type,
childItem: {
title: subItem.childItem.Title,
description: subItem.childItem.Description
}
};
dayArray.push(titleObj);
break;
}
});
dayItem.dayArray = dayArray;
dayList.push(dayItem);
});
this.tripList = dayList;
this.init();
}
},
init() {
this.tripList.forEach((x, j) => {
let useDinnerTypeBy = "";
let jin = [],
jiu = [],
jiu2 = [],
jiao = [],
dadian = [],
tips = [],
activy = [],
can = {
breakfirst: "敬请自理",
lanuch: "敬请自理",
dinner: "敬请自理"
};
x.dayArray.forEach((y, index) => {
if (y.type == 7 && y.childItem.title != "") {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img:
y.childItem.imaArray && y.childItem.imaArray.length > 0
? y.childItem.imaArray[0].url
: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
dadian.push(obj);
} else if (y.type == 1 && y.childItem.subTraffic.length > 0) {
let title = "";
y.childItem.subTraffic.forEach((z, i) => {
title += z.startCityName;
if (z.arrivalType == 1) {
title += '<i class="iconfont icon-feiji"></i>';
} else if (z.arrivalType == 2) {
title += '<i class="iconfont icon-bus"></i>';
} else if (z.arrivalType == 3) {
title += '<i class="iconfont icon-icon31"></i>';
} else {
title += '<i class="iconfont icon-gaotiedongche"></i>';
}
if (i + 1 == y.childItem.subTraffic.length) {
title += z.arrivalCityName;
var dinnerObj = {
type: subItem.Type,
childItem: {
dinnerName: subItem.childItem.DinnerName,
mealName: subItem.childItem.MinnerName,
useDinnerType: subItem.childItem.UseDinnerType,
useTimeHour: subItem.childItem.UseTimeHour,
useTimeMinutes: subItem.childItem.UseTimeMinutes,
description: subItem.childItem.Description,
descriptionText: subItem.childItem.Description,
imaArray: imgArray
}
};
dayArray.push(dinnerObj);
break;
//自由活动
case "5":
var freedomObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description
}
};
dayArray.push(freedomObj);
break;
//温馨提示
case "6":
var warmObj = {
type: subItem.Type,
childItem: {
description: subItem.Description,
descriptionText: subItem.Description
}
};
dayArray.push(warmObj);
break;
//行程大点
case "7":
var titleObj = {
type: subItem.Type,
childItem: {
title: subItem.childItem.Title,
description: subItem.childItem.Description
}
};
dayArray.push(titleObj);
break;
}
});
let obj = {
title: title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
jiao.push(obj);
} else if (
y.type == 2 &&
y.childItem.couponsName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.couponsName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: y.childItem.couponsTicketName,
playTimeHour: y.childItem.playTimeHour,
playTimeMinutes: y.childItem.playTimeHour
};
jin.push(obj);
} else if (
y.type == 3 &&
y.childItem.hotelName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.hotelName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
dayItem.dayArray = dayArray;
dayList.push(dayItem);
});
this.tripList = dayList;
this.init();
}
},
init() {
this.tripList.forEach((x, j) => {
let useDinnerTypeBy = "";
let jin = [],
jiu = [],
jiu2 = [],
jiao = [],
dadian = [],
tips = [],
activy = [],
can = {
breakfirst: "敬请自理",
lanuch: "敬请自理",
dinner: "敬请自理"
};
jiu.push(obj);
} else if (y.type == 4) {
if (y.childItem.useDinnerType == "1") {
can.breakfirst = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "2") {
can.lanuch = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "3") {
can.dinner = y.childItem.dinnerName;
x.dayArray.forEach((y, index) => {
if (y.type == 7 && y.childItem.title != "") {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: y.childItem.imaArray && y.childItem.imaArray.length > 0 ?
y.childItem.imaArray[0].url : "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
dadian.push(obj);
} else if (y.type == 1 && y.childItem.subTraffic.length > 0) {
let title = "";
y.childItem.subTraffic.forEach((z, i) => {
title += z.startCityName;
if (z.arrivalType == 1) {
title += '<i class="iconfont icon-feiji"></i>';
} else if (z.arrivalType == 2) {
title += '<i class="iconfont icon-bus"></i>';
} else if (z.arrivalType == 3) {
title += '<i class="iconfont icon-icon31"></i>';
} else {
title += '<i class="iconfont icon-gaotiedongche"></i>';
}
if (i + 1 == y.childItem.subTraffic.length) {
title += z.arrivalCityName;
}
});
let obj = {
title: title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
jiao.push(obj);
} else if (
y.type == 2 &&
y.childItem.couponsName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.couponsName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: y.childItem.couponsTicketName,
playTimeHour: y.childItem.playTimeHour,
playTimeMinutes: y.childItem.playTimeHour
};
jin.push(obj);
} else if (
y.type == 3 &&
y.childItem.hotelName != "" &&
y.childItem.imaArray.length > 0
) {
let obj = {
title: y.childItem.hotelName,
content: y.childItem.description,
img: y.childItem.imaArray[0].url,
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
jiu.push(obj);
} else if (y.type == 4) {
if (y.childItem.useDinnerType == "1") {
can.breakfirst = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "2") {
can.lanuch = y.childItem.dinnerName;
} else if (y.childItem.useDinnerType == "3") {
can.dinner = y.childItem.dinnerName;
}
} else if (y.type == 5) {
let obj = {
title: "自由活动",
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
activy.push(obj);
} else if (y.type == 6) {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
tips.push(obj);
}
} else if (y.type == 5) {
let obj = {
title: "自由活动",
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
activy.push(obj);
} else if (y.type == 6) {
let obj = {
title: y.childItem.title,
content: y.childItem.description,
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
tips.push(obj);
if (y.type == 3) {
jiu2.push(y.childItem.hotelName);
useDinnerTypeBy = y.childItem.useDinnerType;
}
});
if (
can.breakfirst == "敬请自理" &&
useDinnerTypeBy.indexOf("1") != -1
) {
can.breakfirst = "酒店内享用早餐";
}
if (y.type == 3) {
jiu2.push(y.childItem.hotelName);
useDinnerTypeBy = y.childItem.useDinnerType;
if (can.lanuch == "敬请自理" && useDinnerTypeBy.indexOf("2") != -1) {
can.lanuch = "酒店自助";
}
});
if (
can.breakfirst == "敬请自理" &&
useDinnerTypeBy.indexOf("1") != -1
) {
can.breakfirst = "酒店内享用早餐";
}
if (can.lanuch == "敬请自理" && useDinnerTypeBy.indexOf("2") != -1) {
can.lanuch = "酒店自助";
}
if (can.dinner == "敬请自理" && useDinnerTypeBy.indexOf("3") != -1) {
can.dinner = "酒店自助";
}
x.can = can;
let details = [];
x.tips = tips;
x.jiu2 = jiu2;
if (jin.length > 0) {
details = jin;
} else if (jiu.length > 0) {
details = jiu;
} else if (dadian.length > 0) {
details = dadian;
} else if (jiao.length > 0) {
if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: ""
};
details.push(obj);
} else {
details = jiao;
if (can.dinner == "敬请自理" && useDinnerTypeBy.indexOf("3") != -1) {
can.dinner = "酒店自助";
}
} else if (activy.length > 0) {
details = activy;
}
x.title =
dadian.length > 0
? dadian[0].title
: jiao.length > 0
? jiao[0].title
: "集合出发";
x.details = details;
if (x.details.length == 0) {
if (j == 0) {
let obj = {
title: "集合出发",
content: "向着远方的目标出发起飞",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
details.push(obj);
} else if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
details.push(obj);
x.can = can;
let details = [];
x.tips = tips;
x.jiu2 = jiu2;
if (jin.length > 0) {
details = jin;
} else if (jiu.length > 0) {
details = jiu;
} else if (dadian.length > 0) {
details = dadian;
} else if (jiao.length > 0) {
if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: ""
};
details.push(obj);
} else {
details = jiao;
}
} else if (activy.length > 0) {
details = activy;
}
} else {
if (x.title == "集合出发") {
x.details.forEach(xc => {
if (xc.title !== undefined) x.title = xc.title + "~";
});
x.title =
dadian.length > 0 ?
dadian[0].title :
jiao.length > 0 ?
jiao[0].title :
"集合出发";
x.details = details;
if (x.details.length == 0) {
if (j == 0) {
let obj = {
title: "集合出发",
content: "向着远方的目标出发起飞",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
details.push(obj);
} else if (j == this.tripList.length - 1) {
let obj = {
title: "温暖的家",
content: "感谢您参加本次行程,期待下次与您相遇",
img: "",
ticketName: "",
playTimeHour: null,
playTimeMinutes: null
};
details.push(obj);
}
} else {
if (x.title == "集合出发") {
if (j > 0 && j < tripList.length - 1) x.title = "自由活动";
} else {
x.title = x.title.substring(0, x.title.length - 1);
x.details.forEach(xc => {
if (xc.title !== undefined) x.title = xc.title + "~";
});
if (x.title == "集合出发") {
if (j > 0 && j < tripList.length - 1) x.title = "自由活动";
} else {
x.title = x.title.substring(0, x.title.length - 1);
}
}
}
}
x.islast = j + 1 == this.tripList.length;
this.$set(this.tripList, j, x);
});
for (let i = this.tripList.length - 1; i >= 0; i--) {
if (i == 0) this.tripList[i].can.breakfirst = "敬请自理";
else {
this.tripList[i].can.breakfirst = this.tripList[i - 1].can.breakfirst;
if (
this.tripList[i].lineId != 5 &&
this.tripList[i].can.breakfirst == "敬请自理"
)
this.tripList[i].can.breakfirst = "酒店内享用早餐";
x.islast = j + 1 == this.tripList.length;
this.$set(this.tripList, j, x);
});
for (let i = this.tripList.length - 1; i >= 0; i--) {
if (i == 0) this.tripList[i].can.breakfirst = "敬请自理";
else {
this.tripList[i].can.breakfirst = this.tripList[i - 1].can.breakfirst;
if (
this.tripList[i].lineId != 5 &&
this.tripList[i].can.breakfirst == "敬请自理"
)
this.tripList[i].can.breakfirst = "酒店内享用早餐";
}
}
}
}
}
};
};
</script>
......@@ -330,6 +330,7 @@
<span style="color: #4BCA81;" v-if="item.FoodsResult==1"></span>
<span class="colorE95252" v-else>{{item.FoodsResult=='-1'?"x":"O"}}</span>
</div>
<a style="text-decoration:underline;cursor:pointer;" title="点击下载旅客名单" @click="DownLoadDinner(item)">餐配下载</a>
</td>
<td>
......@@ -514,7 +515,7 @@
<tr>
<td colspan="22" style="text-align: left!important;padding:0 20px;">
<div class="link">
<p @click="getJourney(item.ConfigID,item.Title)" style="padding-top:4px;">{{item.Title}}</p>
<p @click="getJourney(item)" style="padding-top:4px;">{{item.Title}}</p>
<div v-if="outItem.PriceCommonList[index].DMCNum && outItem.PriceCommonList[index].DMCNum!=''"
class="colorE95252" style="padding-top:5px;">地接备注团号:{{outItem.PriceCommonList[index].DMCNum}}
</div>
......@@ -689,11 +690,11 @@
return "(临时领队)"
}
},
getJourney(id, title) {
getJourney(item) {
var that = this;
this.tripTitle = title;
this.tripTitle = item.Title;
this.$nextTick(() => {
that.$refs.comTeam.GetTrip(id);
that.$refs.comTeam.GetTrip(item.ConfigID,item.TCID);
});
that.teamVisible = true;
},
......@@ -1058,7 +1059,26 @@
tab: "手配依赖书"
}
})
}
},
DownLoadDinner(item)
{
this.loading = true;
//导出报表
let msg = {
TCID: item.TCID,
StartDate:item.StartDateStr,
DayNum:item.DayNum
};
var fileName = "餐配下载.xls";
if (item.TCNUMS != null) {
fileName =
"【" + item.TCNUMS + "】餐配下载.xls";
}
this.GetLocalFile("travel_get_GetTravelDinnerDownLoad", msg, fileName,
res => {
this.loading = false;
});
},
},
mounted() {
let myDate = new Date();
......@@ -1069,7 +1089,6 @@
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
//this.msg.CombinationNum = 'JVS0727OTC-MUA';
this.getLineList();
this.getList();
this.getCompanyList();
......
......@@ -488,7 +488,7 @@ input[type="number"] {
<th>类型</th>
<th>预计总金额</th>
<th>实付金额</th>
<th>报账金额
<!-- <th>报账金额
<input
v-if="totalList.SelfPayingExpendTotalPrice>0 || totalList.SelfPayingIncomeTotalPrice>0 || (totalList.ExpendTotalPrice-totalScenicPrice-totalTrafficPrice-totalDinnerPrice-totalHotelPrice)>0 ||
totalScenicPrice>0 || totalTrafficPrice>0 || totalDinnerPrice>0 || totalHotelPrice>0"
......@@ -496,7 +496,7 @@ input[type="number"] {
value="保存"
class="leader2Btn"
@click="saveBZPrice()"
>
> -->
</th>
</tr>
<tr v-show="totalList.SelfPayingExpendTotalPrice>0">
......@@ -524,49 +524,49 @@ input[type="number"] {
<td>景点门票</td>
<td>{{moneyFormat(OtherTotalPrice)}}</td>
<td>{{moneyFormat(totalScenicPrice)}}</td>
<td>
<!-- <td>
<el-input
size="mini"
class="w150"
type="number"
v-model="BaoZhangPrice.ScenicPrice" @change="getAllBZPrice"></el-input>
</td>
</td> -->
</tr>
<tr v-show="totalTrafficPrice>0">
<td>交通</td>
<td>{{moneyFormat(SelfPayingExpendTotalPrice)}}</td>
<td>{{moneyFormat(totalTrafficPrice)}}</td>
<td>
<!-- <td>
<el-input
size="mini"
class="w150"
type="number"
v-model="BaoZhangPrice.BusPrice" @change="getAllBZPrice"></el-input>
</td>
</td> -->
</tr>
<tr v-show="totalDinnerPrice>0">
<td>餐饮</td>
<td>{{moneyFormat(IncomeTotalPrice)}}</td>
<td>{{moneyFormat(totalDinnerPrice)}}</td>
<td>
<!-- <td>
<el-input
size="mini"
class="w150"
type="number"
v-model="BaoZhangPrice.DiningPrice" @change="getAllBZPrice"></el-input>
</td>
</td> -->
</tr>
<tr v-show="totalHotelPrice>0">
<td>酒店</td>
<td>{{moneyFormat(ExpendTotalPrice)}}</td>
<td>{{moneyFormat(totalHotelPrice)}}</td>
<td>
<!-- <td>
<el-input
size="mini"
class="w150"
type="number"
v-model="BaoZhangPrice.HotelPrice" @change="getAllBZPrice"></el-input>
</td>
</td> -->
</tr>
</table>
<table border="0" cellspacing="1" class="leaderPayTable" v-if="TotalPriceData.length>0">
......@@ -575,7 +575,7 @@ input[type="number"] {
<th>预付合计</th>
<th>实际领款</th>
<th>实付合计</th>
<th>实际报账金额</th>
<!-- <th>实际报账金额</th> -->
<th>领队退款</th>
</tr>
<tr
......@@ -586,7 +586,7 @@ input[type="number"] {
<td>{{moneyFormat(item.PlanPrice)}}</td>
<td>{{moneyFormat(item.PlanTotalPrice)}}</td>
<td>{{moneyFormat(item.ExpendTotalPrice)}}</td>
<td>{{index == 0 ? moneyFormat(AllBZPrice) : moneyFormat(item.ExpendTotalPrice)}}</td>
<!-- <td>{{index == 0 ? moneyFormat(AllBZPrice) : moneyFormat(item.ExpendTotalPrice)}}</td> -->
<td>{{index == 0 ? moneyFormat(item.PlanTotalPrice - AllBZPrice): moneyFormat(item.PlanTotalPrice - item.ExpendTotalPrice)}}</td>
</tr>
<tr v-if="!TotalPriceData.length">
......@@ -698,6 +698,7 @@ input[type="number"] {
class="leader2Btn"
@click="goZhiDan(item)"
>
</td>
</tr>
<tr v-if="!TotalNav && !TotalNav.length">
......@@ -777,6 +778,48 @@ input[type="number"] {
<td colspan="5">暂无数据</td>
</tr>
</table>
<table class="leaderPayTable" border="0" cellspacing="1" cellpadding="0" >
<tr>
<th colspan="7">稽核单据
</th>
</tr>
<tr v-for="(item, index) in TotalNav">
<td colspan="3">{{item.TCNUMS}}</td>
<td colspan="3"><el-input
size="mini"
class="w150"
type="number"
v-model="item.price"></el-input></td>
<td colspan="1">
<input
type="button"
value="制稽核单"
class="leader2Btn"
@click="ZhiDanJiHe(item)">
</td>
</tr>
<tr>
<th width="140">序号</th>
<th>单号</th>
<th>费用说明</th>
<th>日期</th>
<th>备注</th>
<th>应付/应收金额</th>
<th>业务员</th>
</tr>
<template v-for="(item, index) in TotalNav">
<tr v-for="(Sitem, Sindex) in item.FinanceAuditList">
<td>{{Sindex+1}}</td>
<td><span class="cursorpointer text-decoration" @click="goFncUrl('FinancialDocumentsDetail', Sitem.FinanceId)">{{Sitem.FinanceId}}</span></td>
<td>{{Sitem.CostTypeName}}</td>
<td>{{Sitem.CreateDate}}</td>
<td>{{Sitem.Remark}}</td>
<td>{{Sitem.OriginalMoney}}</td>
<td>{{Sitem.CreateByStr}}</td>
</tr>
</template>
</table>
<table class="leaderPayTable" border="0" cellspacing="1" cellpadding="0" >
<tr>
<th colspan="4">意见调查表</th>
......@@ -878,6 +921,29 @@ export default {
};
},
methods: {
// 稽核单据
ZhiDanJiHe: function(obj){
if(!obj.price) {
this.$message.error('请输入金额')
return
}
let userinfo = this.getLocalStorage()
let templateID = JSON.stringify([76, 77])
let TCIDARR = [obj.TCIDS];
let orderObj = {
OrderID: 0,
OrderSource: 8,
Obj: {},
SourceID: 0,
CostType: 57,
TCIDList: TCIDARR,
Money: obj.price,
};
let fullPath = `/ChoiceAddFinancialDocuments?Type=${1}&templateID=${templateID}&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();
},
// 意见调查列表
goDIaoCha: function (obj){
let fullPath = `/investigationList?TCID=${obj.TCIDS}&blank=y&tab=问券调查列表`;
......
......@@ -105,7 +105,7 @@
{{thirdItem.UseTimeStr}}
</td>
<td style="text-align:left;padding-left:3px;">
{{thirdItem.ScenicName}}
{{thirdItem.ScenicName}}<span style="color:red">{{getUseTypeStr(thirdItem.TicketPriceList)}}</span>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="link">
......@@ -143,6 +143,8 @@
loading: false,
currentPage: 1,
total: 0,
//当前登录用户
CurrentUserInfo: {},
msg: {
pageIndex: 1,
pageSize: 5,
......@@ -158,6 +160,25 @@
}
},
methods: {
getUseTypeStr(item) {
var str = '';
if (item) {
item.forEach(childItem => {
var useStr = "";
if (childItem.PeopleType == 1) {
useStr = "成人"
}
if (childItem.PeopleType == 2) {
useStr = "中人"
}
if (childItem.PeopleType == 3) {
useStr = "小人"
}
str+=useStr+":"+childItem.UsePeopleNum+",";
});
}
return str.substring(0,str.lastIndexOf(','));
},
getLineList() {
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
......@@ -245,6 +266,8 @@
},
},
mounted() {
let userInfo = this.getLocalStorage()
this.CurrentUserInfo = userInfo;
let myDate = new Date();
let nowDate =
myDate.getFullYear() +
......@@ -284,10 +307,12 @@
.admissionStatisticsTalbe tr td {
font-size: 12px;
}
.admissionStatisticsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.admissionStatistics_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
......
......@@ -9,8 +9,8 @@
</template>
<template v-else>
<span style="color:red;font-size:14px;">已制单,不能在修改!</span>
<input v-if="CurrentUserInfo.EmployeeId == 615" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
</template>
<input style="display:none;" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
</li>
</ul>
</div>
......
......@@ -212,7 +212,7 @@ export default {
let msg = {
IsShow: -1
};
this.apipost("line_post_GetAllList", msg, res => {
this.apipost("line_post_GetAllList_V3", msg, res => {
this.lineList = res.data.data;
});
},
......
......@@ -301,7 +301,7 @@ export default {
let msg = {
IsShow: -1
};
this.apipost("line_post_GetAllList", msg, res => {
this.apipost("line_post_GetAllList_V3", msg, res => {
this.lineList = res.data.data;
});
},
......
......@@ -1805,6 +1805,13 @@ export default {
meta: {
title: '散卖酒店订单'
},
}, {
path: '/OpHotelOrderDetail', //操作 散卖酒店订单详情
name: 'OpHotelOrderDetail',
component: resolve => require(['@/components/TravelManager/TravelList/OpHotelOrderDetail'], resolve),
meta: {
title: '散卖酒店订单'
},
},{
path: '/HotelOrderTotal', //操作 散卖酒店订单统计
name: 'HotelOrderTotal',
......
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