Commit d8f80748 authored by 黄奎's avatar 黄奎

领队报账修改

parent 8af2a7ab
......@@ -30,14 +30,14 @@
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.BusList.length+1">车辆使用</td>
<td width="100">使用时间</td>
<td width="80">司机姓名</td>
<td width="80">司机电话</td>
<td width="100">车配号</td>
<td width="100">车辆号</td>
<td width="60">用车方式</td>
<td width="300">司机姓名</td>
<td width="100">司机电话</td>
<td width="150">车配号</td>
<td width="150">车辆号</td>
<td width="80">用车方式</td>
<td width="150">实际信息</td>
<td width="60">总金额</td>
<td>备注</td>
<td width="150">总金额</td>
<td width="300">备注</td>
<td>凭证</td>
</tr>
<tr v-for='(item,index) in list.BusList'>
......@@ -63,7 +63,6 @@
</td>
<td class="jdtd" valign="middle">
{{item.Remarks}}
<!--<el-input type='textarea' v-model=''></el-input>-->
</td>
<td>
<div class="uploadListDiv ownScrollbarStyle">
......@@ -75,24 +74,23 @@
</tr>
</tbody>
</table>
<!--{{outItem.HotelOrderList}}-->
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tr class="title">
<td width="80" class="bgwhite" rowspan="50">酒店使用</td>
<td width="100">使用时间</td>
<td>酒店名称</td>
<td width="300">酒店名称</td>
<td width="100">占床/不占床</td>
<td width="150">房间类型/数量</td>
<td width="150">实际信息</td>
<td width="60">总金额</td>
<td>备注</td>
<td width="80">总金额</td>
<td width="300">备注</td>
<td>凭证</td>
</tr>
<template v-for="(outItem,outIndex) in list.HotelOrderListReport">
<tr class="HotelTr" v-for='(item,index) in outItem.HotelOrderList'>
<td>{{item.CheckInDateStr}}</td>
<td>
<div style="width: 100%;">{{item.HotelName}}</div>
<div class="itemName">{{item.HotelName}}</div>
</td>
<td>
{{item.HouseStatistics.NeedBed}}/{{item.HouseStatistics.NoNeedBed}}
......@@ -128,106 +126,29 @@
</template>
</table>
<!--<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.HotelList.length+1">酒店使用</td>
<td width="100">使用时间</td>
<td width="30%">酒店名称</td>
<td width="100">占床/不占床</td>
<td width="80">实际用房数</td>
<td width="100">房间类型</td>
<td width="60">房间数</td>
<td width="60">免费人数</td>
<td width="60">单价/人</td>
<td width="60">金额小计</td>
<td width="60">返佣</td>
<td width="60">总金额</td>
<td>备注</td>
</tr>
<tr class="HotelTr" v-for='(item,index) in list.HotelList'>
<td>{{item.CheckInDateStr}}</td>
<td>
<div style="width: 100%;">{{item.HotelName}}</div>
</td>
<td>
{{item.HouseStatistics.NeedBed}}/{{item.HouseStatistics.NoNeedBed}}
</td>
<td>{{item.HouseStatistics.RealityRoomNum}}</td>
<td>
<div class="alcenter">
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{x.HouseTypeName}}
</p>
</div>
</td>
<td>
<div class="alcenter">
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{x.HouseTypeCount}}
</p>
</div>
</td>
<td>
<div class="alcenter">
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{x.HotelDiscount}}
</p>
</div>
</td>
<td>
<div class="alcenter">
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{x.UnitPrice}}
</p>
</div>
</td>
<td>
<div>
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{x.UnitPrice*(x.HouseGuestNum-x.HotelDiscount)}}
</p>
</div>
</td>
<td>
<div>
<p v-for="x in item.HouseStatistics.HouseTypeList">
{{item.RebateRatio}}%
</p>
</div>
</td>
<td>
{{hotelTotalPrice(item.HouseStatistics.HouseTypeList)}}
</td>
<td>
{{item.Remarks}}
</td>
</tr>
</tbody>
</table>-->
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.DiningList.length+1">餐食使用</td>
<td width="100">使用时间</td>
<td width="30%">餐厅名称</td>
<td width="60">类别</td>
<td width="100">用餐人数</td>
<td width="300">餐厅名称</td>
<td width="100">类别</td>
<td width="150">用餐人数</td>
<td width="150">实际信息</td>
<td width="60">总金额</td>
<td>备注</td>
<td width="80">总金额</td>
<td width="300">备注</td>
<td>凭证</td>
</tr>
<template v-for='(item,index) in list.DiningList'>
<tr class="splitP ScenicTr" v-for='(titem,tindex) in item.DiningSummaryList'>
<td>{{titem.UseTimeStr}}</td>
<td>
<p style="height: 60px!important; display: flex;align-items: center; padding:0 20px;" v-for="subItem in item.DiningSummaryList">
<div class="itemName" v-for="subItem in item.DiningSummaryList">
{{subItem.DiningName}}
</p>
</div>
</td>
<td>
<p style="height: 60px!important; line-height: 60px;" v-for="subItem in item.DiningSummaryList">
<p v-for="subItem in item.DiningSummaryList">
{{subItem.UseDinnerTypeStr}}
</p>
</td>
......@@ -240,7 +161,7 @@
</td>
<td>
<template v-for="(ssItem,ssIndex) in titem.ReimburseList.ReimburseDetailsList">
<div v-if="ssItem.ID!==0">
<div v-if="ssItem.ID!==0" class="itemName">
{{ssItem.UserTypeStr}}{{ssItem.UserNum}}*{{ssItem.UnitPrice}}
</div>
</template>
......@@ -269,20 +190,19 @@
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.ScenicList.length+1">门票使用</td>
<td width="100">使用时间</td>
<td width="30%">景点名称</td>
<td width="60">总人数</td>
<td width="60">门票类别</td>
<td width="300">景点名称</td>
<td width="100">总人数</td>
<td width="150">门票类别</td>
<td width="150">实际信息</td>
<td width="60">总金额</td>
<td>备注</td>
<td width="80">总金额</td>
<td width="300">备注</td>
<td>凭证</td>
</tr>
<template v-for='(item,index) in list.ScenicList'>
<tr class="splitP ScenicTr">
<td>{{item.UseTimeStr}}</td>
<td>
<div v-for="subItem in item.ScenicStatisticsList">
<div class="itemName" v-for="subItem in item.ScenicStatisticsList">
{{subItem.ScenicName}}
</div>
</td>
......@@ -308,7 +228,7 @@
</template>
</td>
<td>
<div v-for="subItem in item.ScenicStatisticsList" >
<div v-for="subItem in item.ScenicStatisticsList">
{{diningTotalPrice(subItem.ReimburseList.ReimburseDetailsList)}}
</div>
</td>
......@@ -329,69 +249,45 @@
</tr>
</template>
</tbody>
<!-- <tfoot>
<tr>
<td colspan="9">
{{list.ScenicList}}
</td>
</tr>
</tfoot> -->
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.OtherList.length+1">其他费用</td>
<td width="120">使用时间</td>
<td width="150">费用项目</td>
<td width="80">总人数</td>
<td width="80">单价</td>
<td width="80">金额小计</td>
<td width="100">使用时间</td>
<td width="300">费用项目</td>
<td width="100">总人数</td>
<td width="150">单价</td>
<td width="150">金额小计</td>
<td width="80">返佣</td>
<td width="80">总金额</td>
<td width="300">总金额</td>
<td>备注</td>
<!--<td width="80">-->
<!--<input type="button" value="添加" class="normalBtn" @click="addOtherList()"/>-->
<!--</td>-->
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.OtherList'>
<td>
<el-date-picker v-model='item.UseDate' prefix-icon="s" class='w105' value-format="yyyy-MM-dd" type="date"
:disabled="true"></el-date-picker>
{{item.UseDateStr}}
</td>
<td>
<el-select class='w120 sel' v-model='item.CostProject' :placeholder="$t('pub.pleaseSel')" :disabled="true">
<el-option label='请选择' value='0'></el-option>
<el-option label='导游津贴' value='1'></el-option>
<el-option label='司机津贴' value='2'></el-option>
<el-option label='其他支出' value='3'></el-option>
</el-select>
{{getCostProjectStr(item.CostProject)}}
</td>
<td>
{{item.TotalNum}}
<!--<el-input v-model='' @keyup.native="checkInteger(item,'TotalNum')" class='w50'></el-input>-->
</td>
<td>
{{item.UnitPrice}}
<!--<el-input v-model='' @keyup.native="checkPrice(item,'UnitPrice')" class='w50'></el-input>-->
</td>
<td>
{{item.TotalNum*item.UnitPrice}}
</td>
<td>
<!--<el-input v-model='' class='w50' @keyup.native="checkInteger(item,'Rebate')"></el-input>-->
{{item.Rebate}}%
</td>
<td v-if='index==0' :rowspan='list.OtherOrderInfo.OtherList.length'>
{{otherTotalPrice(list.OtherOrderInfo.OtherList)}}
</td>
<td style="padding: 0 10px;">
<td class="jdtd">
{{item.Remark}}
<!--<el-input v-model='' type="textarea" autosize></el-input>-->
</td>
<!--<td>-->
<!--<p @click="deleteOtherListItem(index)">删除</p>-->
<!--</td>-->
</tr>
</tbody>
</table>
......@@ -399,24 +295,21 @@
<tbody>
<tr class="title">
<td width="80" class="bgwhite" rowspan="2">小费收入</td>
<td width="120">人数</td>
<td width="120">单价</td>
<td width="80">总金额</td>
<td width="100">人数</td>
<td width="300">单价</td>
<td width="100">总金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.TipList'>
<td>
{{item.TotalNum}}
<!--<el-input class='w80' @keyup.native="checkInteger(item,'TotalNum')" v-model='item.TotalNum'></el-input>-->
</td>
<td>
{{item.UnitPrice}}
<!--<el-input class='w80' @keyup.native="checkPrice(item,'UnitPrice')" v-model='item.UnitPrice'></el-input>-->
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td style="padding: 0 10px;">
<td class="jdtd">
{{item.Remark}}
<!--<el-input v-model='item.Remark' type="textarea" autosize></el-input>-->
</td>
</tr>
</tbody>
......@@ -425,18 +318,15 @@
<tbody>
<tr class="title">
<td width="80" class="bgwhite" rowspan="2">团费小计</td>
<td width="120">金额</td>
<td width="100">金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.TeamList'>
<td>
{{item.UnitPrice}}
<!--<el-input class='w80' @keyup.native="checkPrice(item,'UnitPrice')" v-model='item.UnitPrice'></el-input>-->
</td>
<td style="padding: 0 10px;">
<td class="jdtd">
{{item.Remark}}
<!--<el-input v-model='item.Remark' type="textarea" autosize></el-input>-->
</td>
</tr>
</tbody>
......@@ -445,42 +335,30 @@
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.SelfPlayingIncomeList.length+1">自费收入</td>
<td width="120">使用时间</td>
<td width="80">人数</td>
<td width="80">单价</td>
<td width="80">金额小计</td>
<td width="80">总金额</td>
<td width="100">使用时间</td>
<td width="300">人数</td>
<td width="100">单价</td>
<td width="150">金额小计</td>
<td width="150">总金额</td>
<td>备注</td>
<!--<td width="80">-->
<!--<input type="button" value="添加" class="normalBtn"-->
<!--@click="addSelfPlayingIncomeList()"/>-->
<!--</td>-->
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.SelfPlayingIncomeList'>
<td>
<el-date-picker prefix-icon="s" v-model='item.UseDate' class='w105' value-format="yyyy-MM-dd" type="date"
:disabled="true"></el-date-picker>
{{item.UseDate}}
</td>
<td>
{{item.TotalNum}}
<!--<el-input class='w50' @keyup.native="checkInteger(item,'TotalNum')" v-model='item.TotalNum'></el-input>-->
</td>
<td>
{{item.UnitPrice}}
<!--<el-input class='w50' @keyup.native="checkPrice(item,'UnitPrice')" v-model='item.UnitPrice'></el-input>-->
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td v-if='index==0' :rowspan="list.OtherOrderInfo.SelfPlayingIncomeList.length">
{{otherTotalPrice(list.OtherOrderInfo.SelfPlayingIncomeList)}}
</td>
<td style="padding: 0 10px;">
<td class="jdtd">
{{item.Remark}}
<!--<el-input v-model='item.Remark' type="textarea" autosize></el-input>-->
</td>
<!--<td>-->
<!--<span @click="deleteSelfPlayingIncomeListItem(index)">删除</span>-->
<!--</td>-->
</tr>
</tbody>
</table>
......@@ -488,53 +366,43 @@
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.SelfPlayingExpendList.length+1">自费支出</td>
<td width="120">使用时间</td>
<td width="80">人数</td>
<td width="80">单价</td>
<td width="80">金额小计</td>
<td width="80">返佣</td>
<td width="100">使用时间</td>
<td width="300">人数</td>
<td width="100">单价</td>
<td width="150">金额小计</td>
<td width="150">返佣</td>
<td width="80">总金额</td>
<td>备注</td>
<!--<td width="80">-->
<!--<input type="button" value="添加" class="normalBtn"-->
<!--@click="addSelfPlayingExpendList()"/>-->
<!--</td>-->
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.SelfPlayingExpendList'>
<td>
<el-date-picker prefix-icon="s" :disabled="true" v-model='item.UseDate' class='w105' value-format="yyyy-MM-dd"
type="date"></el-date-picker>
{{item.UseDate}}
</td>
<td>
{{item.TotalNum}}
<!--<el-input class='w50' @keyup.native="checkInteger(item,'TotalNum')" v-model='item.TotalNum'></el-input>-->
</td>
<td>
{{item.UnitPrice}}
<!--<el-input class='w50' @keyup.native="checkPrice(item,'UnitPrice')" v-model='item.UnitPrice'></el-input>-->
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td>
<!--<el-input class='w50' v-model='item.Rebate'></el-input>-->
{{item.Rebate}}%
</td>
<td v-if='index==0' :rowspan="list.OtherOrderInfo.SelfPlayingExpendList.length">
{{otherTotalPrice(list.OtherOrderInfo.SelfPlayingExpendList)}}
</td>
<td style="padding: 0 10px;">
<td class="jdtd">
{{item.Remark}}
<!--<el-input v-model='item.Remark' type="textarea" autosize></el-input>-->
</td>
<!--<td>-->
<!--<span @click="deleteSelfPlayingExpendList(index)">删除</span>-->
<!--</td>-->
</tr>
</tbody>
</table>
<el-input type="textarea" v-model="UploadMsg.Remarks" rows="6" placeholder="请输入备注信息"></el-input>
<br/>
<p class="alcenter">
<input type="button" value="保存" class="normalBtn" @click="saveData()" />
<input type="button" value="审核通过" class="normalBtn" @click="saveData(1)" />
<input type="button" value="审核不通过" class="normalBtn" @click="saveData(2)" />
<input type="button" value="打印" class="normalBtn" @click="goUrl('leaderPay','打印')" style="display:none;" />
</p>
<div v-if='picIsShow' class="viewBigPicLayer">
<i class="el-icon-circle-close-outline clolseViewBigPicLayer" @click="picIsShow=false,picObj=[]"></i>
......@@ -567,10 +435,25 @@
nav: [],
TravelDayNum: 0,
RealityNum: 0,
isShow: false
isShow: false,
UploadMsg:{
Remarks:""
},
}
},
methods: {
//获取自费项目类型字符串
getCostProjectStr(type)
{
var str="";
switch(type)
{
case "1" :str="导游津贴";break;
case "2" :str="司机津贴";break;
case "3" :str="其他支出";break;
}
return str;
},
addOtherList() {
this.list.OtherOrderInfo.OtherList.push({
OrderType: '1',
......@@ -628,7 +511,6 @@
busTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
// totalPrice += Number(item.CostPrice) + Number(item.HighSpeedPrice) + Number(item.StopPrice)
totalPrice += x.UserNum * x.UnitPrice
})
return totalPrice
......@@ -643,7 +525,6 @@
diningTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
// totalPrice += x.PeoplePrice * (x.PeopleNum - x.Discount) * (1 - x.DiscountPrice / 100)
totalPrice += x.UserNum * x.UnitPrice
})
return totalPrice
......@@ -662,7 +543,23 @@
})
return totalPrice
},
saveData() {
saveData(type) {
//通过
if(type==1)
{
this.list.LeaderApply.Status=1;
}
//不通过
else if(type==2)
{
this.list.LeaderApply.Status=2;
if(this.UploadMsg.Remarks=="")
{
this.Info("请填写不通过的原因!");
return
}
this.list.LeaderApply.AuditReason=this.UploadMsg.Remarks;
}
this.apipost('dmcstatistics_post_SetLeaderApplyExcreteList', this.list, res => {
if (res.data.resultCode == 1) {
this.$message.success(res.data.message)
......@@ -715,7 +612,6 @@
this.loading = true
this.apipost('dmcstatistics_post_GetNewLeaderPayMoneyStatics', this.msg, res => {
if (res.data.resultCode == 1) {
//console.log("res.data.data", JSON.stringify(res.data.data));
this.loading = false;
this.isShow = true;
this.list = res.data.data
......@@ -728,8 +624,8 @@
}
}, err => {})
},
uploadImg(file) {
//上传
uploadImg(file) {
let newArr = [];
newArr.push(file.file);
let path = "/Upload/Temporary/";
......@@ -741,17 +637,24 @@
})
});
},
goUrl(path, title) {
this.$router.push({
name: path,
query: {
"id": this.$route.query.id,
blank: 'y',
tab: title
}
})
},
},
mounted() {
this.isUpdate = this.$route.query.isUpdate
this.msg.TCIDs = this.$route.query.id
//this.msg.NewCombinationNum=this.$route.query.num
this.getNav()
this.getList()
this.isUpdate = this.$route.query.isUpdate;
this.msg.TCIDs = this.$route.query.id;
this.getNav();
this.getList();
}
}
</script>
<style>
......@@ -894,8 +797,6 @@
}
.leaderReimbursementTable .HotelTr td>div {
/*height: 100px;*/
/*line-height: 100px;*/
border-bottom: 1px solid #ccc;
}
......@@ -938,13 +839,15 @@
margin: 3px;
}
.leaderReimbursementTable .jdtd>div {
height: auto !important;
.leaderReimbursementTable .jdtd {
padding: 0 10px;
text-align: left;
}
.leaderReimbursementTable .leaderPayTable .el-input__prefix {
display: none;
}
.leaderReimbursementTable .itemName{
text-align:left; padding:0 10px;
}
</style>
\ No newline at end of file
<template>
<div class="mb30" v-loading='loading'>
<div v-if="isShow">
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.BusList.length+1">车辆使用</td>
<td width="100">使用时间</td>
<td width="150">车配号</td>
<td width="150">车辆号</td>
<td width="150">总金额</td>
<td width="200">备注</td>
<td width="200">凭证</td>
</tr>
<tr v-for='(item,index) in list.BusList'>
<td>{{item.PlanDateStr}}</td>
<td>{{item.BusCode}}</td>
<td>{{item.BusNum}}</td>
<td>
{{busTotalPrice(item.ReimburseList.ReimburseDetailsList)}}
</td>
<td class="jdtd" valign="middle">
{{item.Remarks}}
</td>
<td>
<div class="uploadListDiv ownScrollbarStyle">
<p v-for="(img,index) in item.VoucherPicList" @click="analyzeItem(item.VoucherPicList,index)">
{{img.FileName}}
</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tr class="title">
<td width="80" class="bgwhite" rowspan="50">酒店使用</td>
<td width="100">使用时间</td>
<td width="300">酒店名称</td>
<td width="150">总金额</td>
<td width="200">备注</td>
<td width="200">凭证</td>
</tr>
<template v-for="(outItem,outIndex) in list.HotelOrderListReport">
<tr class="HotelTr" v-for='(item,index) in outItem.HotelOrderList'>
<td>{{item.CheckInDateStr}}</td>
<td>
<div class="itemName">{{item.HotelName}}</div>
</td>
<td>
{{hotelTotalPrice(item.ReimburseList.ReimburseDetailsList)}}
</td>
<td class="jdtd" valign="middle">
{{item.ReimburseList.Remarks}}
</td>
<td>
<div class="uploadListDiv ownScrollbarStyle" style="overflow-y: auto;">
<p v-for="(img,index) in item.ReimburseList.VoucherPicList" @click="analyzeItem(item.VoucherPicList,index)">
{{img.FileName}}
</p>
</div>
</td>
</tr>
</template>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.DiningList.length+1">餐食使用</td>
<td width="100">使用时间</td>
<td width="300">餐厅名称</td>
<td width="150">总金额</td>
<td width="200">备注</td>
<td width="200">凭证</td>
</tr>
<template v-for='(item,index) in list.DiningList'>
<tr class="splitP ScenicTr" v-for='(titem,tindex) in item.DiningSummaryList'>
<td>{{titem.UseTimeStr}}</td>
<td>
<div class="itemName" v-for="subItem in item.DiningSummaryList">
{{subItem.DiningName}}
</div>
</td>
<td>
<div v-for="subItem in item.DiningSummaryList">
{{diningTotalPrice(subItem.ReimburseList.ReimburseDetailsList)}}
</div>
</td>
<td class="jdtd" valign="middle">
{{titem.Remarks}}
</td>
<td>
<div class="uploadListDiv ownScrollbarStyle" style="overflow-y: auto;">
<p v-for="(img,index) in titem.ReimburseList.VoucherPicList" @click="analyzeItem(titem.VoucherPicList,index)">
{{img.FileName}}
</p>
</div>
</td>
</tr>
</template>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.ScenicList.length+1">门票使用</td>
<td width="100">使用时间</td>
<td width="300">景点名称</td>
<td width="150">总金额</td>
<td width="200">备注</td>
<td width="200">凭证</td>
</tr>
<template v-for='(item,index) in list.ScenicList'>
<tr class="splitP ScenicTr">
<td>{{item.UseTimeStr}}</td>
<td>
<div class="itemName" v-for="subItem in item.ScenicStatisticsList">
{{subItem.ScenicName}}
</div>
</td>
<td>
<div v-for="subItem in item.ScenicStatisticsList">
{{diningTotalPrice(subItem.ReimburseList.ReimburseDetailsList)}}
</div>
</td>
<td>
<template v-for='(sitem,sindex) in item.ScenicStatisticsList'>
{{sitem.Remarks}}
</template>
</td>
<td>
<div class="uploadListDiv ownScrollbarStyle" style="overflow-y: auto;">
<template v-for='(sitem,sindex) in item.ScenicStatisticsList'>
<p v-for="(img,index) in sitem.ReimburseList.VoucherPicList" @click="analyzeItem(sitem.VoucherPicList,index)">
{{img.FileName}}
</p>
</template>
</div>
</td>
</tr>
</template>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.OtherList.length+1">其他费用</td>
<td width="100">使用时间</td>
<td width="300">费用项目</td>
<td width="100">总人数</td>
<td width="150">单价</td>
<td width="150">金额小计</td>
<td width="80">返佣</td>
<td width="300">总金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.OtherList'>
<td>
{{item.UseDateStr}}
</td>
<td>
{{getCostProjectStr(item.CostProject)}}
</td>
<td>
{{item.TotalNum}}
</td>
<td>
{{item.UnitPrice}}
</td>
<td>
{{item.TotalNum*item.UnitPrice}}
</td>
<td>
{{item.Rebate}}%
</td>
<td v-if='index==0' :rowspan='list.OtherOrderInfo.OtherList.length'>
{{otherTotalPrice(list.OtherOrderInfo.OtherList)}}
</td>
<td class="jdtd">
{{item.Remark}}
</td>
</tr>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" rowspan="2">小费收入</td>
<td width="100">人数</td>
<td width="300">单价</td>
<td width="100">总金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.TipList'>
<td>
{{item.TotalNum}}
</td>
<td>
{{item.UnitPrice}}
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td class="jdtd">
{{item.Remark}}
</td>
</tr>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" rowspan="2">团费小计</td>
<td width="100">金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.TeamList'>
<td>
{{item.UnitPrice}}
</td>
<td class="jdtd">
{{item.Remark}}
</td>
</tr>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.SelfPlayingIncomeList.length+1">自费收入</td>
<td width="100">使用时间</td>
<td width="300">人数</td>
<td width="100">单价</td>
<td width="150">金额小计</td>
<td width="150">总金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.SelfPlayingIncomeList'>
<td>
{{item.UseDate}}
</td>
<td>
{{item.TotalNum}}
</td>
<td>
{{item.UnitPrice}}
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td v-if='index==0' :rowspan="list.OtherOrderInfo.SelfPlayingIncomeList.length">
{{otherTotalPrice(list.OtherOrderInfo.SelfPlayingIncomeList)}}
</td>
<td class="jdtd">
{{item.Remark}}
</td>
</tr>
</tbody>
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr class="title">
<td width="80" class="bgwhite" :rowspan="list.OtherOrderInfo.SelfPlayingExpendList.length+1">自费支出</td>
<td width="100">使用时间</td>
<td width="300">人数</td>
<td width="100">单价</td>
<td width="150">金额小计</td>
<td width="150">返佣</td>
<td width="80">总金额</td>
<td>备注</td>
</tr>
<tr v-for='(item,index) in list.OtherOrderInfo.SelfPlayingExpendList'>
<td>
{{item.UseDate}}
</td>
<td>
{{item.TotalNum}}
</td>
<td>
{{item.UnitPrice}}
</td>
<td>{{item.TotalNum*item.UnitPrice}}</td>
<td>
{{item.Rebate}}%
</td>
<td v-if='index==0' :rowspan="list.OtherOrderInfo.SelfPlayingExpendList.length">
{{otherTotalPrice(list.OtherOrderInfo.SelfPlayingExpendList)}}
</td>
<td class="jdtd">
{{item.Remark}}
</td>
</tr>
</tbody>
</table>
<p class="alcenter">
<input type="button" value="打印" class="normalBtn" />
</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isUpdate: false,
loading: false,
defaultSelectValue: 0,
initialIndex: 0,
picObj: [],
TemporaryItem: {},
msg: {
TCIDs: '',
NewCombinationNum: ''
},
list: [],
nav: [],
TravelDayNum: 0,
RealityNum: 0,
isShow: false
}
},
methods: {
//获取自费项目类型字符串
getCostProjectStr(type)
{
var str="";
switch(type)
{
case "1" :str="导游津贴";break;
case "2" :str="司机津贴";break;
case "3" :str="其他支出";break;
}
return str;
},
addOtherList() {
this.list.OtherOrderInfo.OtherList.push({
OrderType: '1',
ID: 0,
UseDate: '',
CostProject: 0,
TotalNum: '0',
UnitPrice: '0',
Rebate: '0',
TotalPrice: '0',
Remark: '',
TCIDs: this.list.OtherOrderInfo.OtherList[0].TCIDs,
VoucherPicList: []
})
},
deleteOtherListItem(index) {
this.list.OtherOrderInfo.OtherList.splice(index, 1)
},
addSelfPlayingIncomeList() {
this.list.OtherOrderInfo.SelfPlayingIncomeList.push({
OrderType: '4',
ID: 0,
UseDate: '',
CostProject: 0,
TotalNum: '0',
UnitPrice: '0',
Rebate: '0',
TotalPrice: '0',
Remark: '',
TCIDs: this.list.OtherOrderInfo.SelfPlayingIncomeList[0].TCIDs,
VoucherPicList: []
})
},
deleteSelfPlayingIncomeListItem(index) {
this.list.OtherOrderInfo.SelfPlayingIncomeList.splice(index, 1)
},
addSelfPlayingExpendList() {
this.list.OtherOrderInfo.SelfPlayingExpendList.push({
OrderType: '5',
ID: 0,
UseDate: '',
CostProject: '',
TotalNum: '0',
UnitPrice: '0',
Rebate: '0',
TotalPrice: '0',
Remark: '',
TCIDs: this.list.OtherOrderInfo.SelfPlayingExpendList[0].TCIDs,
VoucherPicList: []
})
},
deleteSelfPlayingExpendList(index) {
this.list.OtherOrderInfo.SelfPlayingExpendList.splice(index, 1)
},
busTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
totalPrice += x.UserNum * x.UnitPrice
})
return totalPrice
},
hotelTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
totalPrice += x.UserNum * x.UnitPrice
})
return totalPrice
},
diningTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
totalPrice += x.UserNum * x.UnitPrice
})
return totalPrice
},
scenicTotalPrice(obj) {
let totalPrice = 0
obj.forEach(x => {
totalPrice += x.PeoplePrice * (x.UsePeopleNum - x.Discount) * (1 - x.DiscountPrice / 100)
})
return totalPrice
},
otherTotalPrice(obj) {
let totalPrice = 0
obj.forEach(item => {
totalPrice += item.TotalNum * item.UnitPrice * (1 - item.Rebate / 100)
})
return totalPrice
},
saveitem(obj) {
this.TemporaryItem = obj
},
analyzeItem(obj, index) { //预览
this.picObj = []
obj.forEach(item => {
this.picObj.push(item.url)
})
this.initialIndex = index
},
peopleStrToWord(str) {
if (str == '1')
return '成人'
if (str == '2')
return '儿童'
if (str == '3')
return '婴儿'
},
UseDinnerTypeToWord(str) {
if (str == 1)
return '早餐'
if (str == 2)
return '午餐'
if (str == 3)
return '晚餐'
},
getNav() {
this.apipost('dmcstatistics_post_GetHotelStaticsByTCIDs', {
TCIDs: this.$route.query.id
}, res => {
if (res.data.resultCode == 1) {
this.nav = res.data.data
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
getList() {
this.loading = true
this.apipost('dmcstatistics_post_GetNewLeaderPayMoneyStatics', this.msg, res => {
if (res.data.resultCode == 1) {
this.loading = false;
this.isShow = true;
this.list = res.data.data
this.list.OtherOrderInfo.OtherList.forEach(item => {
item.CostProject = item.CostProject.toString()
})
} else {
this.loading = false
this.$message.error(res.data.message)
}
}, err => {})
},
},
mounted() {
this.isUpdate = this.$route.query.isUpdate;
this.msg.TCIDs = this.$route.query.id;
this.getNav();
this.getList();
}
}
</script>
<style>
.leaderReimbursementTableNav {
background: #d6cece;
width: 800px;
margin: 20px 0;
}
.leaderReimbursementTableNav tr th {
background: #E6E6E6;
height: 40px;
font-size: 12px;
color: #333;
}
.leaderReimbursementTableNav tr {
background: #fff;
text-align: center;
height: 40px;
font-size: 12px;
}
.leaderReimbursementTableNav tr td {
background: #fff;
text-align: center;
height: 40px;
font-size: 12px;
padding: 0 10px;
}
.leaderReimbursementTable {
background: #d6cece;
width: 100%;
margin: 20px 0;
}
.leaderReimbursementTable tbody {
margin: 10px 0;
}
.leaderReimbursementTable tr th {
background: #E6E6E6;
height: 40px;
font-size: 12px;
color: #333;
}
.leaderReimbursementTable tr {
background: #fff;
text-align: center;
height: 40px;
}
.leaderReimbursementTable tr.title td {
background: #E6E6E6;
}
.leaderReimbursementTable tr td div {
word-break: normal;
}
.leaderReimbursementTable tr td.bgwhite {
background: #fff !important;
font-weight: bold;
}
.leaderReimbursementTable tr td {
font-size: 12px;
}
.leaderReimbursementTable tr td .pDateStyle {
border-bottom: 1px solid #E6E6E6;
min-height: 24px;
line-height: 24px;
margin-top: 0;
box-sizing: content-box;
padding: 0 10px;
}
.leaderReimbursementTable tr td .pDateStyle:last-child {
border-bottom: none;
}
.leaderReimbursementTable tr td .pDateStyle>span:after {
content: '/';
}
.leaderReimbursementTable tr td .pDateStyle>span:last-child:after {
content: ''
}
.leaderReimbursementTable tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.leaderReimbursementTable tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.leaderReimbursementTable tr td input[type='text'] {
height: 20px !important;
padding: 0;
text-align: center;
}
.leaderReimbursementTable tr td .sel input {
height: 34px !important;
}
.leaderReimbursementTable .splitP td>p {
height: 20px;
line-height: 20px;
border-bottom: 1px solid #ccc;
}
.leaderReimbursementTable .splitP td>p:last-child {
border-bottom: none;
}
.leaderReimbursementTable .ScenicTr td>div {
height: 60px;
line-height: 60px;
border-bottom: 1px solid #ccc;
}
.leaderReimbursementTable .ScenicTr td>div:last-child {
border-bottom: none;
}
.leaderReimbursementTable .ScenicTr td>div p {
line-height: 20px;
border-bottom: 1px solid #ccc;
}
.leaderReimbursementTable .ScenicTr td>div p:last-child {
border-bottom: none;
}
.leaderReimbursementTable .HotelTr td>div {
border-bottom: 1px solid #ccc;
}
.leaderReimbursementTable .HotelTr td>div:last-child {
border-bottom: none;
}
.leaderReimbursementTable .HotelTr td>div p {
line-height: 19px;
border-bottom: 1px solid #ccc;
}
.leaderReimbursementTable .HotelTr td>div p:last-child {
border-bottom: none;
}
.leaderReimbursementTable tr td .el-upload-list {
display: none;
}
.leaderReimbursementTable .uploadListDiv {
height: 100% !important;
overflow-y: auto;
width: 100%;
}
.leaderReimbursementTable .uploadListDiv>p {
border-bottom: 1px solid #ccc;
cursor: pointer;
width: 100% !important;
}
.leaderReimbursementTable .uploadListDiv>p:last-child {
border-bottom: none;
}
.leaderReimbursementTable .uploadListDiv>p i {
color: #999;
vertical-align: sub;
margin: 3px;
}
.leaderReimbursementTable .jdtd {
padding: 0 10px;
text-align: left;
}
.leaderReimbursementTable .leaderPayTable .el-input__prefix {
display: none;
}
.leaderReimbursementTable .itemName{
text-align:left; padding:0 10px;
}
</style>
\ No newline at end of file
......@@ -774,16 +774,13 @@
</p>
</div>
<div class="d7">
<!--<p><input type="button" :class="{normalBtn:true,disabledBtn:item.IsSubstitution!=1&&item.SurplusSeat==0}" :disabled="item.IsSubstitution!=1&&item.SurplusSeat==0" value="立即下单" @click="goBuy(item)"></p>
<p><input type="button" class="hollowFixedBtn" value="下载行程"></p>
<p><input type="button" class="hollowFixedBtn" value="分享行程"></p>
<p><input type="button" class="hollowFixedBtn" value="查看报名"></p> -->
<el-button-group style="display:block;">
<el-tooltip class="item" effect="dark" content="查看报名" placement="top-start">
<el-button @click="goUrl('groupTourOrderByTuan',item.TCID,item.TCNUM)" type="primary" style='background:#00C6FF; border-color:#00C6FF'
icon="iconfont icon-sousuo"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="立即下单" placement="top-start" v-if="item.IsPayOrder!==1">
<!--关内团后不能在报名-->
<el-tooltip class="item" effect="dark" content="立即下单" placement="top-start" v-if="item.IsPayOrder!==1 && item.IsB2B===1">
<el-button type="primary" style='background:#F16C3C; border-color:#F16C3C' v-if="!TCIDList" icon="iconfont icon-fukuan1"
@click="goBuy(item)"></el-button>
</el-tooltip>
......
......@@ -215,7 +215,7 @@
</div>
</td>
<td>
<div class="w180">
<div class="w250">
<el-button-group>
<el-button @click="goUrlT('teamRevenueExpenditure',item.TCID,'团队收支')" type="primary" style="background:#00C6FF; border-color:#00C6FF">收付款</el-button>
<el-popover placement="bottom" width="300" trigger="click">
......@@ -225,8 +225,8 @@
</p>
<el-button type="primary" slot="reference" @click='CkedItem(item)' style="background:#AD9AF6; border-color:#AD9AF6; border-radius: 0;">添加备注</el-button>
</el-popover>
<br/>
<el-button @click='openChart(item)' type="primary" style="background:#6DD875; border-color:#6DD875">联系OP</el-button>
<el-popover placement="bottom" width="300" trigger="click">
<el-input class='mt10' v-model='NumObj.newCombinationNum' type='textarea'></el-input>
<p class="alcenter mt10">
......
<style>
@import "../../../assets/css/newTravelManager.css";
@import "../../../assets/css/newTravelManager.css";
.TravelQueryList {
width: 100%;
......@@ -51,9 +51,7 @@
line-height: 20px;
display: -webkit-box;
overflow: hidden;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
/* autoprefixer: on */
text-overflow: ellipsis;
-webkit-line-clamp: 3;
}
......@@ -335,92 +333,43 @@
<div class="TC_Content TravelControlList">
<div class="query-box">
<ul>
<!-- <li>
<span>
<em>所属线路</em>
<el-select
class="w150"
v-model="queryMsg.LineId"
filterable
:placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()"
>
<el-option
:label="$t('pub.unlimitedSel')"
:value="queryCommonData.SelectDefaultValue"
></el-option>
<el-option
v-for="item in queryCommonData.LineList"
:label="item.LineName"
:value="item.LineID"
:key="item.LineID"
></el-option>
</el-select>
</span>
</li> -->
<li>
<span>
<em>系列名称</em>
<el-select
class="w150"
v-model="queryMsg.LineteamId"
filterable
:placeholder="$t('pub.pleaseSel')"
>
<el-option
:label="$t('pub.unlimitedSel')"
:value="queryCommonData.SelectDefaultValue"
></el-option>
<el-option
v-for="item in queryCommonData.LineTeamList"
:label="item.LtName"
:value="item.LtID"
:key="item.LtID"
></el-option>
<el-select class="w150" v-model="queryMsg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
<el-option v-for="item in queryCommonData.LineTeamList" :label="item.LtName" :value="item.LtID" :key="item.LtID"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>团号</em>
<el-input
maxlength="50"
v-model="queryMsg.TCNUM"
class="permiss-input w150"
@keyup.native.enter="getControlList"
:placeholder="$t('pub.pleaseImport')"
></el-input>
<el-input maxlength="50" v-model="queryMsg.TCNUM" class="permiss-input w150" @keyup.native.enter="getControlList"
:placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>发团日期</em>
<el-date-picker
class="w150"
type="date"
v-model="queryMsg.StartGroupDate"
value-format="yyyy-MM-dd"
placeholder
></el-date-picker>
<el-date-picker
class="w150"
type="date"
v-model="queryMsg.EndGroupDate"
value-format="yyyy-MM-dd"
placeholder
></el-date-picker>
<el-date-picker class="w150" type="date" v-model="queryMsg.StartGroupDate" value-format="yyyy-MM-dd"
placeholder></el-date-picker>
<el-date-picker class="w150" type="date" v-model="queryMsg.EndGroupDate" value-format="yyyy-MM-dd"
placeholder></el-date-picker>
</span>
</li>
<li>
<span>
<em>合团团号</em>
<el-input maxlength="50" v-model="queryMsg.CombinationNum" class="permiss-input w150" @keyup.native.enter="getControlList"
:placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<button
class="hollowFixedBtn"
@click="getControlList(),resetPageIndex()"
>{{$t('pub.searchBtn')}}</button>
<button class="hollowFixedBtn" @click="getControlList(),resetPageIndex()">{{$t('pub.searchBtn')}}</button>
</li>
</ul>
</div>
<table class="TravelControlListTable TravelQueryList">
<tbody v-for="(outItem,i) in queryCommonData.dataList" :key="i">
<template v-for="(item,index) in outItem.TravelPriceList">
......@@ -433,16 +382,8 @@
<td width="240" v-if="index==0" :rowspan="outItem.TravelPriceList.length*3">
<div class="d7">
<el-button-group>
<el-button
@click.native="goUrl('leaderReimbursement',outItem,'用款计划')"
type="primary"
style="background:#E95252; border-color:#E95252"
>领队用款</el-button>
<el-button
@click.native="goUrl('leaderPay',outItem,'领队报账')"
type="primary"
style="background:#297BEF; border-color:#297BEF"
>领队报账
<el-button @click.native="goUrl('leaderReimbursement',outItem,'用款计划')" type="primary" style="background:#E95252; border-color:#E95252">领队用款</el-button>
<el-button @click.native="goUrl('leaderPay',outItem,'领队报账')" type="primary" style="background:#297BEF; border-color:#297BEF">领队报账
</el-button>
</el-button-group>
</div>
......@@ -494,7 +435,8 @@
</tr>
</table>
<div class="FlightDiv-TCL" slot="reference">
<div v-for="subItem in item.flightList" slot="reference" :key="subItem.subCode" class="TCL-flighInfoList" style="text-align: center!important">
<div v-for="subItem in item.flightList" slot="reference" :key="subItem.subCode" class="TCL-flighInfoList"
style="text-align: center!important">
<span class="travelnowrap">
<span class="TCL-FlightNumber">{{subItem.Flight_number}}</span>{{subItem.DepartureName}}
{{subItem.StopoverName==""?"":"-"+subItem.StopoverName}}
......@@ -545,7 +487,7 @@
</div>
</td>
</tr>
<tr height="40" >
<tr height="40">
<td colspan="4" style="padding-left: 30px;">
备注:{{item.OPRemark}}
</td>
......@@ -556,19 +498,13 @@
<td colspan="6">{{$t('system.content_noData')}}</td>
</tr>
</table>
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="queryMsg.currentPage"
layout="total,prev, pager, next, jumper"
:page-size="queryMsg.pageSize"
:total="queryMsg.total"
></el-pagination>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryMsg.currentPage" layout="total,prev, pager, next, jumper"
:page-size="queryMsg.pageSize" :total="queryMsg.total"></el-pagination>
</div>
</div>
</template>
<script>
export default {
export default {
data() {
return {
ArrList: [],
......@@ -595,7 +531,9 @@ export default {
total: 0,
//是否有数据
noData: false,
currentPage: 1
currentPage: 1,
//合团团号
CombinationNum:""
},
pickerBeginDateBefore: {
disabledDate: time => {
......@@ -612,8 +550,17 @@ export default {
};
},
methods: {
goUrl(path,obj,title){
this.$router.push({ name:path,query:{"id":obj.TCIDs,'num':obj.CombinationNum,isUpdate:true,blank:'y',tab:title}})
goUrl(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj.TCIDs,
'num': obj.CombinationNum,
isUpdate: true,
blank: 'y',
tab: title
}
})
},
//翻页
handleCurrentChange(val) {
......@@ -662,23 +609,6 @@ export default {
);
}
},
filters: {
priceFormat(value) {
if (value == null) {
return 0.0;
}
let nStr = value.toFixed(2);
nStr += "";
let x = nStr.split(".");
let x1 = x[0];
let x2 = x.length > 1 ? "." + x[1] : "";
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, "$1" + "," + "$2");
}
return x1 + x2;
}
},
mounted() {
this.getLineTeamList();
},
......@@ -693,5 +623,5 @@ export default {
this.queryMsg.StartGroupDate = nowDate;
this.getControlList();
}
};
};
</script>
\ No newline at end of file
......@@ -1170,6 +1170,14 @@ export default {
title: '领队用款计划'
},
},
{
path: '/leaderPrint', //领队用款计划
name: 'leaderPrint',
component: resolve => require(['@/components/LeaderManagement/leaderPrint'], resolve),
meta: {
title: '领队用款计划打印'
},
},
{
path: '/leaderReimbursement', //领队领队报账
name: 'leaderReimbursement',
......
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