Commit 584f5007 authored by 华国豪's avatar 华国豪 🙄
parents e7b424b3 263c8da2
<style>
</style>
<template>
<div class="AirTicketApp">
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th v-for="(item,index) in ColNameList" :key="index">{{item}}</th>
</tr>
<tr v-for="(item,index) in Rlist" :key="index">
<td>{{item.BranchName}}</td>
<td v-for="(cl,index) in item.CList" :key="index">{{cl.LossRatio}}
<el-button @click="Edit(item,cl)" style="padding:4px;margin-left:10px" type="primary" icon="el-icon-edit" circle></el-button>
</td>
</tr>
</table>
<el-dialog
title="修改"
:visible.sync="dialogVisible"
width="300px">
<div>
<el-form ref="form" :model="changeMsg" label-width="80px">
<el-form-item label="公司">
<span>{{changeMsg.BranchName}}</span>
</el-form-item>
<el-form-item label="比例" prop="LossRatio">
<el-input @keyup.native="checkInteger(changeMsg,'LossRatio')" v-model="changeMsg.Ratio"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogVisible = false">取 消</el-button>
<el-button type="danger" size="small" @click="Ok">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data(){
return{
loading:false,
ColNameList:[],
Rlist:[],
dialogVisible:false,
changeMsg:{
Ratio:0,
},
rules:{
Ratio: [{ required: true, message: "请输入比例", trigger: "blur" }],
},
}
},created(){
},methods:{
Ok(){
if(this.changeMsg.Ratio>=0 && this.changeMsg.Ratio<=100){
this.apipost('ticket_post_SetAirTicketBranchRatio',this.changeMsg, res => {
if(res.data.resultCode == 1) {
this.getList();
this.dialogVisible=false;
} else {
this.$message.error(res.data.message);
}
this.loading = false;
}, err => {})
}else{
this.Error("请输入正确的比例")
}
},
Edit(item,cl){
this.dialogVisible=true;
this.changeMsg.BranchName=item.BranchName;
this.changeMsg.Ratio=cl.LossRatio;
this.changeMsg.BranchId=cl.BranchId;
this.changeMsg.LossType=cl.LossTypeCode;
this.changeMsg.AirLossId=cl.LossConfigId;
},
getList(){
this.loading = true;
this.apipost('ticket_post_SetAirTicketLossManagement',{}, res => {
console.log(res)
this.loading = false;
if(res.data.resultCode == 1) {
this.ColNameList=res.data.data.ColNameList;
this.Rlist=res.data.data.Rlist;
} else {
this.$message.error(res.data.message);
}
this.loading = false;
}, err => {})
},
},mounted(){
this.getList();
}
}
</script>
...@@ -319,7 +319,10 @@ ...@@ -319,7 +319,10 @@
<p>附加说明:<span class="fr" v-if="GetDetail.ComplainID > 0" @click="goUrl('ComplaintsDetail', GetDetail.ComplainID,GetDetail.OrderID)"> <span style="color:#000">投诉单号:</span> <span class="cursorpointer text-decoration">{{GetDetail.ComplainID}}</span></span></p> <p>附加说明:<span class="fr" v-if="GetDetail.ComplainID > 0" @click="goUrl('ComplaintsDetail', GetDetail.ComplainID,GetDetail.OrderID)"> <span style="color:#000">投诉单号:</span> <span class="cursorpointer text-decoration">{{GetDetail.ComplainID}}</span></span></p>
<table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-if="GetDetail.TCIDAndTCNUMList.length>0"> <table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-if="GetDetail.TCIDAndTCNUMList.length>0">
<tr v-for="(o,ox) in GetDetail.TCIDAndTCNUMList" class="_fujiashuoming_tr"> <tr v-for="(o,ox) in GetDetail.TCIDAndTCNUMList" class="_fujiashuoming_tr">
<td :colspan="4">{{o.TCNUM}}({{o.TCID}})</td> <td :colspan="3">
{{o.TCNUM}}({{o.TCID}})
<span v-if="GetDetail.IsShowPlanUrl === 1" style="margin-left:20px;">旅客意见/{{o.GuestSurveyNum}}份</span>
</td>
<td @click="jumpPage('TravelControlList',o.TCNUM,1)"> <span class="_jump_page _font_bold">查看团队</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="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 @click="GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"> <span class="_jump_page _font_bold">团队收支</span> </td>
...@@ -2265,7 +2268,6 @@ export default { ...@@ -2265,7 +2268,6 @@ export default {
this.GetDetail = data; this.GetDetail = data;
this.showModel = true this.showModel = true
this.FrID = data.FrID this.FrID = data.FrID
console.log(this.GetDetail,'GetDetail.OrderId');
this.ChongDiMsg.Types = '' this.ChongDiMsg.Types = ''
this.ChongDiMsg.ClientType = data.Type === 2 ? data.ClientType : '' this.ChongDiMsg.ClientType = data.Type === 2 ? data.ClientType : ''
this.ChongDiMsg.ClientID = data.Type === 2 ? data.ClientID : '' this.ChongDiMsg.ClientID = data.Type === 2 ? data.ClientID : ''
......
...@@ -383,7 +383,10 @@ ...@@ -383,7 +383,10 @@
<table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-if="GetDetail.TCIDAndTCNUMList.length>0"> <table border="1" bordercolor="#D2D2D2" style="border-collapse:collapse;margin-top:15px;" width="100%" v-if="GetDetail.TCIDAndTCNUMList.length>0">
<tr v-for="(o,ox) in GetDetail.TCIDAndTCNUMList" class="_fujiashuoming_tr"> <tr v-for="(o,ox) in GetDetail.TCIDAndTCNUMList" class="_fujiashuoming_tr">
<td :colspan="4" v-if="GetDetail.Is_Merge===1">单据号:{{o.FinanceId}}</td> <td :colspan="4" v-if="GetDetail.Is_Merge===1">单据号:{{o.FinanceId}}</td>
<td :colspan="4">{{o.TCNUM}}{{o.TCID}}</td> <td :colspan="3">
{{o.TCNUM}}{{o.TCID}}
<span v-if="GetDetail.IsShowPlanUrl === 1" style="margin-left:20px;">旅客意见/{{o.GuestSurveyNum}}</span>
</td>
<td @click="jumpPage('TravelControlList',o.TCNUM,1)"> <span class="_jump_page _font_bold">查看团队</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="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 @click="GetDetail.TCIDAndTCNUMList.length==1?jumpPage('TeamBalancePayment',o.TCID,5):jumpPage('TeamBalancePayment',o.TCID,6)"> <span class="_jump_page _font_bold">团队收支</span> </td>
...@@ -1303,6 +1306,7 @@ export default { ...@@ -1303,6 +1306,7 @@ export default {
this.FrID = this.GetDetail.FrID; this.FrID = this.GetDetail.FrID;
this.SourceID = this.GetDetail.SourceID; this.SourceID = this.GetDetail.SourceID;
this.Callback = this.GetDetail.Callback; this.Callback = this.GetDetail.Callback;
// 拼接团号显示团信息 // 拼接团号显示团信息
let str = ''; let str = '';
if(data.TCIDList.length>0){ if(data.TCIDList.length>0){
......
<style>
.AirClick{
text-decoration: underline;
cursor: pointer;
}
</style>
<template>
<div class="AirTicketApp">
<div class="Header">
<el-col :span="8" style="margin:10px 0">
<el-date-picker
v-model="value1"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-col>
<button style="margin-top:15px" class="normalBtn" @click="getList">查询</button>
<button style="margin-top:15px" class="hollowFixedBtn" @click="Export">导出</button>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th v-if="index==0" v-for="(item,index) in ColNameList" :key="index">{{item}}</th>
<th v-if="index!=0 && index!=ColNameList.length" colspan="2" v-for="(item,index) in ColNameList" :key="index">{{item}}</th>
<th v-if="index==ColNameList.length" v-for="(item,index) in ColNameList" :key="index">{{item}}</th>
</tr>
<tr>
<td></td>
<td v-for="item in LossList" :class="{'AirClick':item.Value!='损失占比'}" @click="goToDetail(item)">{{item.Value}}</td>
<td>{{SunMoney}}</td>
</tr>
<tr v-for="(item,index) in Rlist" :key="index">
<td>{{item.BranchName}}</td>
<td v-for="(cl,index) in item.LossTL" :key="index">{{cl}}</td>
<td>{{item.TotalMoney}}</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data(){
return{
loading:false,
ColNameList:[],
LossList:[],
SunMoney:0,
Rlist:[],
value1:[],
msg:{
StartTime:"",
EndTime:"",
},
userInfo:{},
}
},created(){
this.userInfo = this.getLocalStorage();
},methods:{
Export(){
let msg=this.msg;
msg.EmployeeId = this.userInfo.EmployeeId;
var fileName = "机票损失分摊.xls";
this.GetLocalFile("financestatistics_post_OutToExcelGetCompamyAirTicketRatioList", msg, fileName);
},
getList(){
if(this.value1){
this.msg.StartTime=this.value1[0];
this.msg.EndTime=this.value1[1];
}else{
this.msg.StartTime="";
this.msg.EndTime="";
}
this.loading = true;
this.apipost('financestatistics_post_GetCompamyAirTicketRatioList',this.msg, res => {
this.loading = false;
if(res.data.resultCode == 1) {
this.ColNameList=res.data.data.ColNameList;
this.Rlist=res.data.data.Rlist;
this.LossList=res.data.data.LossList[0].LossTL;
this.SunMoney = res.data.data.LossList[0].TotalMoney;
} else {
this.$message.error(res.data.message);
}
this.loading = false;
}, err => {})
},
//跳转至详情
goToDetail(item){
if(item.Value!='损失占比'){
this.$router.push({
name: 'AirTicketLossDetail',
query: {
msg: JSON.stringify(item),
blank: "y",
}
});
}
}
},mounted(){
//默认查询当月第一个到最后一天日期
var now = new Date();
var month = now.getMonth() + 1;//js获取到的是月份是 0-11 所以要加1
var year = now.getFullYear();
var nextMonthFirstDay = new Date([year,month + 1,1].join('-')).getTime();
var oneDay = 1000 * 24 * 60 * 60;
var monthLast = new Date(nextMonthFirstDay - oneDay).getDate()
if(month<10){
month='0'+month;
}
var startDate = [year,month,1].join('-');
var endDate = [year,month,monthLast].join('-');
this.value1.push(startDate,endDate);
this.getList();
}
}
</script>
<style scoped>
.page_fnDm{background-color: white}
.query-box{overflow: inherit}
._nav{margin: 20px 0 0 0 ;background-color: #f5f5f5;}
._nav li{float: left;font-size: 14px;color: #666666;padding: 15px 20px;cursor: pointer;position: relative;background-color: #f1f1f1;margin-right: 5px}
._nav li._active{background-color:#FFFFFF;color: #333333 }
._nav li._active::after{content: "";width: 20px;height: 3px;background-color: #E95252;display: inline-block;position: absolute;bottom: 0;left: 38%;}
.el-range-editor.el-input__inner{border-radius: 0}
.query-box{border: none}
.hight_query{position: relative;}
.hight_query span{height: 34px;line-height: 34px;color: #E95252}
.hight_query span .icon-gengduo{font-size: 12px}
.hight_query span em{text-decoration: underline;cursor: pointer;}
.hight_query_box{position: absolute;background-color: white;z-index: 2000;right: 200px;width: 800px;}
._hqb_shadow{box-shadow:3px 2px 10px rgb(204, 203, 203);border: 1px solid #ececec;}
.query-box ul {overflow: initial;}
.hqb_t{padding: 10px 20px;font-size: 16px;background-color: #E95252;border: 1px solid #E95252;color: #fff;text-align: center;margin-bottom: 15px}
.query-box li:last-child{float: left}
.query-box>ul>li:last-child{float: right;}
.query-box .hight_query ul .el-input{width: inherit }
.hight_query_box ul li{margin-top: 0;float: left;margin-right: 15px}
.hight_query_box ul li label{font-size: 14px}
.hight_query_box .el-form{padding: 0 20px}
.hight_query_box ul li._hqb_btn{float: right;margin-right: 25px;padding-top: 5px;position: inherit}
.Receipt_box{padding: 15px;color: #c94052;width: 614px;background-color: rgba(242, 242, 242, 1);border: 1px solid rgba(228, 228, 228, 1)}
.Receipt_box.color_blur{color: #106BAF;}
.Receipt_box.color_blur .rb_stit span{display: inline-block;border-bottom: 2px solid #106BAF;padding: 0 20px}
.rb_tit{font-size: 18px;text-align: center}
.rb_stit{font-size: 14px;text-align: center}
.rb_stit span{display: inline-block;border-bottom: 2px solid #C94052;padding: 0 20px}
.rb_top_row{display: flex;justify-content: space-between;font-size: 12px;}
.rb_top_row span._r_name{color: #333333}
.rb_top_row span._r_bold{font-weight: bold}
.rb_top_row ._r_time span{color: #333333}
._r_mb5{margin-bottom: 5px;}
.Receipt_table{width: 100%;font-size: 14px;text-align: center}
.Receipt_table .th{font-weight: 200 !important}
._r_mt10{margin-top: 10px;}
._bg__{display: inline-block;padding: 2px 8px;color: white;border-radius: 4px}
._bg_red{background-color: #E95252;}
._bg_green{background-color: #2BB87C}
.text_d{text-decoration: underline;cursor: pointer;}
.PingFangSC{font-weight: bold}
.Bill_par{position: relative;}
tr th,tr td{text-align: left;padding-left: 20px;}
tr._item_list{border-bottom: 1px solid #E5E5E5;height: 78px;}
tr._item_list td{border-bottom: 1px solid #e5e5e5; padding: 10px;}
/* tr._t_head th{border-top: 1px solid #e5e5e5;} */
tr._item_list td:first-child{border-left: 1px solid #e5e5e5;}
tr._item_list td:last-child{border-right: 1px solid #e5e5e5;}
._head_img{width: 28px;height: 28px;border-radius: 50%;vertical-align:middle;}
._btn_group{font-size: 14px;}
.icon-daiqueren{color: #4BCA81}
.icon-yiqueren{color: #4BCA81}
.icon-yiquxiao{color: #959595}
.icon-shenhebohui{color: #E95252}
.icon-icon-zancun{color: #FF9C01}
.singeRowTable tr:hover{background-color: white}
._TradeWayList{padding: 5px 10px;background-color: #EEEEEE;border-radius: 4px;margin: 10px 0;width: 230px}
._bold{font-weight: bold}
._bank_name,._bank_type{display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;}
._bank_name{margin-left: 10px;}
._bank_type{background-color: #2AAEF2}
._bank_type2{background-color: #FF9C01}
._font_init{color: #333333;font-size: 12px;vertical-align:top;}
.InfoChangeLog{height: auto;max-height: 220px;background-color: #FFFFFF;}
.changLogList{padding-left: 20px;max-height: 180px;overflow: auto;}
.changLogList_l{border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;}
._radius_green{background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;}
.changLog_time{color: #666666;font-size: 12px;display: inline-block;padding-right: 10px}
._icon_btn i{width: 30px;height: 30px;display: inline-block;color: white !important;border-radius: 50%;text-align: center;line-height: 30px;margin-right: 10px;cursor: pointer;outline: none;}
._icon_btn i.edit{background-color: #00C6FF;font-size: 16px;}
._icon_btn i.edit:hover{background-color: #59daff}
._icon_btn i.edit:active{background-color: #00b8ec}
._icon_btn i.icon-sousuo{background-color: #47BF8C;}
._icon_btn i.icon-sousuo:hover{background-color: #66bb97}
._icon_btn i.icon-sousuo:active{background-color: #35ab79}
._icon_btn i.icon-ico_commodity_defaul{background-color: #F16C3C;}
._icon_btn i.icon-ico_commodity_defaul:hover{background-color: #e87c54}
._icon_btn i.icon-ico_commodity_defaul:active{background-color: #f76630}
._icon_btn i.icon-quxiao1{background-color: #E95252;}
._icon_btn i.icon-quxiao1:hover{background-color: #ea6d6d}
._icon_btn i.icon-quxiao1:active{background-color:#e42d2d}
._icon_btn i.icon-zhuanjiao1{background-color: #E6A014;font-size: 16px;}
._icon_btn i.icon-zhuanjiao1:hover{background-color: rgb(235, 184, 84)}
._icon_btn i.icon-zhuanjiao1:active{background-color: rgb(223, 150, 6)}
._tag_span{background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #409eff;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;}
._tag_span._tag_warr{background-color: rgba(103,194,58,.1);border-color: rgba(103,194,58,.2);color: #67c23a;}
._fex_cen{display: flex;align-items: center}
._pad5{padding: 5px 10px;}
._color_gar{color: gray}
._TCIDAndTCNUMList{
display: flex;
}
.JumpDivTitleOne{
margin-left:20px;
font-size:14px;
}
.JumpDivTitleTwo{
margin:10px 0 0 20px;
font-size:14px;
}
.JumpSpan{
margin:0 20px;
}
</style>
<template >
<div class="page_fnDm page_RecPayQuery" @keyup.enter="resetPageIndex(),getPageList()">
<div class="query-box">
<el-form class="_info_box clearfix" label-width="110px">
<el-row style="padding:15px 20px 0 0;">
<el-col :span="4">
<el-form-item label="所属公司:">
<el-select filterable v-model='msg.RB_Branch_Id' class="">
<el-option :value="-1" label="不限"></el-option>
<el-option v-for='item in CompanyList'
:label='item.BName'
:value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<template>
<el-col :span="4">
<el-form-item label="审核状态:">
<el-select filterable v-model='msg.Status' class="">
<el-option key="-1" value="-1" label="不限"></el-option>
<el-option key="0" value="0" label="暂存"></el-option>
<el-option key="1" value="1" label="审核中"></el-option>
<el-option key="2" value="2" label="通过"></el-option>
<el-option key="3" value="3" label="驳回"></el-option>
<el-option key="4" value="4" label="作废"></el-option>
<el-option key="5" value="5" label="出纳暂存"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发团日期:">
<el-date-picker class="h34"
v-model="missionDate"
@change="timeAdd()"
type="daterange"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</template>
</el-row>
</el-form>
<ul class="clearfix">
<li class="hight_query">
<button class="hollowFixedBtn" @click="resetPageIndex(),getPageList()">{{$t('pub.searchBtn')}}</button>
</li>
</ul>
<div class="JumpDivTitleOne">应收金额:{{SumYingShou}} <span class="JumpSpan">实收金额:{{SumShiShou}}</span> 待收金额:{{SumDaiShou}}</div>
<div class="JumpDivTitleTwo">应付金额:{{SumYingFu}} <span class="JumpSpan">实付金额:{{SumShiFu}}</span> 待付金额:{{SumDaiFu}}</div>
</div>
<div class="_fnDm_content" v-loading='loading'>
<v-table
is-horizontal-resize
column-width-drag
style="width:100%"
:columns="columns"
:table-data="DataList"
:total='total'
:pageSize='msg.PageSize'
:pageIndex='msg.PageIndex'
:handleCurrentChange='handleCurrentChanges'
:row-height='100'
multiple-sort><!-- 多个排序 -->
</v-table>
</div>
</div>
</template>
<script>
import myBill from "../FinancialSubmodule/BillModule.vue";
import myrbvBill from "../FinancialSubmodule/ReceivablesModule.vue";
import myhrBill from "../FinancialSubmodule/MergeBillModule.vue";
import Vue from 'vue'
import { parse } from 'semver';
// 自定义列组件
Vue.component('table-BranchName',{ //查看操作按钮
template:`<span>{{rowData.BranchName}}</span>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
goUrl(path){
this.$router.push({
path: '/' + path,
query: {id:this.rowData.FrID,blank:'y',tab:this.rowData.FrID+'单据详情'}
})
},
}
})
Vue.component('table-operation',{ //查看操作按钮
template:`<span>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i style="width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
background-color: #47BF8C;
outline: none;"
class="iconfont icon-sousuo" @click="goUrl('FinancialDocumentsDetail')">
</i>
</el-tooltip>
</span>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
goUrl(path){
this.$router.push({
path: '/' + path,
query: {id:this.rowData.FrID,blank:'y',tab:this.rowData.FrID+'单据详情'}
})
},
}
})
Vue.component('table-RecPay',{ //收支样式
template:`
<span>
<span v-if="rowData.Type==2" style="display: inline-block;
padding: 2px 8px;
color: white;
background-color: #E95252;
line-height: 16px;
border-radius: 4px;">
支出
</span>
<span v-if="rowData.Type==1" style="display: inline-block;
padding: 2px 8px;
color: white;
background-color: #2BB87C;
line-height: 16px;
border-radius: 4px;">
收入
</span>
</span>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
}
})
Vue.component('table-BillRVB',{ //单据样式
template:`
<el-popover
popper-class="detailsIT_Journal"
placement="bottom-start"
trigger="click">
<template v-if="rowData.Type!=1&&rowData.modelShow&&(rowData.Is_Merge==0||rowData.Is_Merge==null)">
<my-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-Bill>
</template>
<template v-else-if="rowData.Type==1&&rowData.modelShow&&(rowData.Is_Merge==0||rowData.Is_Merge==null)">
<my-RVB-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-RVB-Bill>
</template>
<template v-else-if="rowData.Is_Merge==1&&rowData.modelShow">
<my-HB-Bill :ID="rowData.FrID" :width="widthSon" :color="colorSon"></my-HB-Bill>
</template>
<span slot="reference" @click="rowData.modelShow = true,conSole(rowData)" style="text-decoration: underline;cursor: pointer;font-weight: bold" >{{rowData.FrID}}</span>
</el-popover>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},components: {
"my-Bill": myBill,
"my-RVB-Bill":myrbvBill,
"my-HB-Bill":myhrBill,
},
data(){
return{
widthSon:'700px',
colorSon:"#f5f5f5",
}
},
methods:{
conSole(rowData){
console.log(rowData)
}
}
})
Vue.component('table-Info',{ //关联信息
template:`
<div>
<template v-if="rowData.TCIDAndTCNUMList.length>0">
<p class="_TCIDAndTCNUMList" style="display: flex;">
<span>团号:</span>
<template v-if="rowData.TCIDAndTCNUMList&&rowData.TCIDAndTCNUMList.length>0">
<p><span v-for="(i,ix) in rowData.TCIDAndTCNUMList">{{i.TCNUM}}({{i.TCID}}) <span v-if="ix!=rowData.TCIDAndTCNUMList.length-1">,</br></span></span></p>
</template>
<template v-else>
<span>无</span>
</template>
</p>
<p v-if="rowData.OrderID>0 && rowData.OrderSource==8">单号:<span class="">{{rowData.OrderID}}</span></p>
</template>
<template v-else-if="rowData.OrderSource==8 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">暂无团期信息</p>
</template>
<template v-else-if="rowData.OrderSource==4 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList" style="text-decoration: underline;cursor: pointer;" @click="goTicketPage(rowData)">机票编号:{{rowData.SourceID}}</p>
<p style="margin-top: 5px;">线路:<span>{{rowData.LineName?rowData.LineName:'机票尚未选择线路'}}</span></p>
</template>
<template v-else-if="rowData.OrderSource==9 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">国内票务期数:{{rowData.Term}}</p>
</template>
<template v-else-if="rowData.OrderSource==10 && rowData.TCIDAndTCNUMList.length==0">
<p class="_TCIDAndTCNUMList">签证产品编号:{{rowData.SourceID}}</p>
</template>
<template v-else-if="rowData.OrderSource==0 || rowData.OrderSource==null">
<p class="_TCIDAndTCNUMList">{{ rowData.BranchName }}-{{rowData.DepartName}} </p>
</template>
<template v-else>
<p class="_TCIDAndTCNUMList">暂无</p>
</template>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
goTicketPage(data) { // 跳转机票
this.$router.push({ name: 'TicketManager',query:{id:data.SourceID,blank:'y',tab:'票务管理'} })
},
}
})
Vue.component('table-CostType',{ //费用类型
template:`
<div>
<template v-for="(s,si) in rowData.CostTypeList">
<span style="background-color: rgba(64,158,255,.1);display: inline-block;padding: 0 5px;height: 22px;line-height: 20px;font-size: 12px;color: #646464;border-radius: 4px;box-sizing: border-box;border: 1px solid rgba(64,158,255,.2);white-space: nowrap;margin-bottom: 4px;">{{s}}</span></br>
</template>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
}
})
Vue.component('table-TradeWay',{ //交易方式
template:`
<div>
<template v-if="rowData.TradeWayList&&rowData.TradeWayList.length>0">
<div class="_TradeWayList" v-for="(tw,twIn) in rowData.TradeWayList" style="line-height: normal !important;padding: 5px 10px;background-color: #EEEEEE;border-radius: 4px;margin: 10px 0;width:230px">
<p><span style="font-weight: bold;color:#333333">{{tw.Alias}}</span><span class="_bank_name" style="height:20px;;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;margin-letf:10px">{{rowData.TradeWayList[0].TypeName}}</span><span style="height:20px;display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;" :style="{'background-color':tw.AccountType=='私'?'#2AAEF2':'#FF9C01'}">{{tw.AccountType==""?'无':tw.AccountType}}</span> </p>
<p style="color:#333333">{{tw.BankNo}}</p>
</div>
</template>
<template v-else>
<div class="_pad5">
</div>
</template>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
}
})
Vue.component('table-Money',{ //金额
template:`
<span>
<p style="line-height:20px">{{rowData.Type==1?'应收':'应付'}}:<span>{{rowData.Money}}</span></p>
<p style="line-height:20px">{{rowData.Type==1?'实收':'实付'}}:<span>{{rowData.PayMoney}}</span></p>
</span>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
}
})
Vue.component('table-ClientTypeName',{ //付款对象
template:`
<span>
<span style="color: gray">{{rowData.Type==2?rowData.ClientTypeName+':':'汇款人:'}}</span><span>{{rowData.RemitterName}}</span>
</span>
`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
}
})
Vue.component('table-StatusStr',{ //单据状态
template:`
<i v-if="rowData.Status==1" class="iconfont icon-daiqueren" style="color: #4BCA81"></i>
<i v-if="rowData.Status==4" class="iconfont icon-yiquxiao" style="color: #4BCA81"></i>
<i v-if="rowData.Status==2" class="iconfont icon-yiqueren" style="color: #959595"></i>
<i v-if="rowData.Status==3" class="iconfont icon-shenhebohui" style="color: #E95252"></i>
<i v-if="rowData.Status==0" class="iconfont icon-zancun" style="color: #FF9C01"></i>
<el-popover
popper-class="detailsIT_Journal"
width="250"
trigger="click">
<div style="height: auto;max-height: 220px;background-color: #FFFFFF;">
<div class="changLog">
<p class="_log_t">流程日志</p>
<ul style="padding-left: 20px;max-height: 180px;overflow: auto;" v-if="GetFinancLogList" v-loading='LogLoading'>
<li style="border-left: 1px solid #E9E9E9;position: relative;padding-bottom: 10px;padding-left: 20px;padding-top: 10px;" v-for="(log,li) in GetFinancLogList">
<span style="background-color: #47BF8C;width: 7px;height: 7px;border-radius: 50%;display: inline-block;position: absolute;left: -4px;top: 19px;"></span>
<p> <span class="_color_blue">{{log.EmName}}</span> <span class="fr changLog_time">{{log.UpdateDate}}</span> </p>
<p class="_dtel">{{log.StartValue}}</p>
</li>
</ul>
<ul v-else>
<li>暂无修改日志</li>
</ul>
</div>
</div>
<span slot="reference" class="text_d _font_init" @click="Financial_post_GetFinancLogList(rowData.FrID)">{{rowData.StatusStr}}</span>
</el-popover>
`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
data(){
return{
GetFinancLogList:[],
}
},
methods:{
Financial_post_GetFinancLogList(id){ // 获取单据日志
if(this.checkboxShow) return
this.LogLoading = true;
this.apipost('Financial_post_GetFinancLogList',{ID:id,Type:2}, res => {
if(res.data.resultCode == 1) {
let data = res.data.data;
data.forEach(x=>{
x.UpdateDate = this.$commonUtils.formatMsgTime(x.UpdateDate)
})
this.LogLoading = false;
this.GetFinancLogList = data;
}
}, err => {})
}
}
})
export default {
data(){
return{
showID:false,
active:1,
msg:{
RB_Branch_Id:-1,
Status:'-1',
QStartDate:'',
QEndDate:'',
PageIndex:1,
PageSize:5,
AirLossId:1,
LossType:1,
CostTypeID:0,
Type:2
},
getCompanyMsg:{ // 公司
RB_Group_Id:'0',
Status:'0',
},
DataList:[],
GetFinancLogList:[],
CompanyList:[],
missionDate:[],
loading:false,
LogLoading:false,
currentPage:1,
total:0,
SumYingShou:0,
SumShiShou:0,
SumDaiShou:0,
SumYingFu:0,
SumShiFu:0,
SumDaiFu:0,
loading2:false,
tableData: [],
columns: [
{field: 'BranchName', title: '所属公司', width: 80, titleAlign: 'left',columnAlign:'left',isResize:true,componentName:'table-BranchName'},
{field: 'FrID', title: '单号', width: 80, titleAlign: 'left',columnAlign:'left',isResize:true, //orderBy排序 asc 升序 desc降序
result:[], //筛选项默认值 单选传字符串'1' 多选数组 [1,2,2]
type:'select',// 筛选项方式 select 下拉 check 单选、多选 text搜索 datetime时间
isFrozen:true,
componentName:'table-BillRVB'
},
{field: 'custome-RecPay', title: '单据类型', width: 120, titleAlign: 'left',columnAlign:'left',isResize:true,componentName:'table-RecPay'},
{field: 'custome-Info', title: '关联信息', width: 120, titleAlign: 'left',columnAlign:'left',isResize:true,result:'',filterMultiple:false,type:'text',componentName:'table-Info'},
{field: 'dateRange', title: '费用类型', width: 120, titleAlign: 'left',columnAlign:'left',isResize:true,result:{},filterMultiple:false,type:'datetime',componentName:'table-CostType'},
{field: 'TradeWay', title: '交易方式',width: 210, titleAlign: 'left',columnAlign:'left',isResize:true,componentName:'table-TradeWay'},
{field: 'Money', title: '金额',width: 120, titleAlign: 'left',columnAlign:'left',isResize:true,componentName:'table-Money'},
{field: 'ClientTypeName', title: '付款对象',width: 180, titleAlign: 'left',columnAlign:'left',isResize:true,componentName:'table-ClientTypeName'},
{field: 'EmName', title: '制单人员',width: 120, titleAlign: 'left',columnAlign:'left',isResize:true},
{field: 'StatusStr', title: '当前状态',width: 120, titleAlign: 'left',columnAlign:'left',isResize:true},
{field: 'custome-operation', title: '操作',width: 200, titleAlign: 'left',columnAlign:'left',componentName:'table-operation',isResize:true}
],
}
},created(){
},components: {
"my-Bill": myBill,
"my-RVB-Bill":myrbvBill,
},mounted(){
let userInfo=this.getLocalStorage();
this.getCompanyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团ID
let msgList = JSON.parse(this.$route.query.msg);
this.msg.AirLossId = msgList.AirLossId;
this.msg.LossType = msgList.LossType;
this.msg.CostTypeID = msgList.CostTypeID;
this.msg.QStartDate = msgList.StartTime;
this.msg.QEndDate = msgList.EndTime;
this.missionDate.push(msgList.StartTime,msgList.EndTime);
this.getCompanyList();
this.getPageList();
},methods:{
handleCurrentChanges(val){
this.pageIndex = this.msg.pageIndex = val;
this.getPageList();
},
getPageList(){ // 获取列表数据
if(this.missionDate){
this.msg.QStartDate=this.missionDate[0];
this.msg.QEndDate=this.missionDate[1];
}else{
this.msg.QStartDate="";
this.msg.QEndDate="";
}
this.loading= true;
this.apipost('Financial_post_GetAirTicketLossDetailPageList',this.msg,res=>{
this.loading=false;
if(res.data.resultCode == 1) {
let data = res.data.data.pageData.list;
this.total = res.data.data.count;
this.SumYingShou=res.data.data.pageData.SumYingShou;
this.SumShiShou=res.data.data.pageData.SumShiShou;
this.SumDaiShou=res.data.data.pageData.SumDaiShou;
this.SumYingFu=res.data.data.pageData.SumYingFu;
this.SumShiFu=res.data.data.pageData.SumShiFu;
this.SumDaiFu=res.data.data.pageData.SumDaiFu;
if(this.total==0){
this.DataList=[];
}else{
data.forEach(x=>{
x.modelShow = false;
})
this.DataList = data;
}
}else{
this.Error(res.data.message);
}
},err=>{})
},
Financial_post_GetFinancLogList(id){ // 获取单据日志
this.LogLoading = true;
this.apipost('Financial_post_GetFinancLogList',{ID:id,Type:2}, res => {
if(res.data.resultCode == 1) {
let data = res.data.data;
data.forEach(x=>{
x.UpdateDate = this.$commonUtils.formatMsgTime(x.UpdateDate)
})
this.LogLoading = false;
this.GetFinancLogList = data;
}
}, err => {})
},
getCompanyList(){ //获取公司列表
this.apipost('admin_get_BranchGetList',this.getCompanyMsg,res=>{
if(res.data.resultCode==1){
this.CompanyList=res.data.data;
}else{}
},err=>{})
},
timeAdd(t){ // 日期格式
this.msg.QStartDate = this.missionDate[0];
this.msg.QEndDate = this.missionDate[1];
},
handleCurrentChange(val) { //翻页
this.msg.pageIndex = val;
this.getPageList();
},
resetPageIndex(){ // 重置页码
this.msg.pageIndex=1;
this.currentPage = 1;
},
goUrl(path,id,Conditon,pageIndex){
this.$router.push({ name: path,query:{"id":id,"Conditon":Conditon,"pageIndex":pageIndex,blank:'y',tab:'单据详情'} })
},
goEit(path,type,id,edit,Conditon,pageIndex){
this.$router.push({ name: path,query:{"type":type,"FrID":id,"edit":edit,"Conditon":Conditon,"pageIndex":pageIndex} })
}
}
}
</script>
...@@ -393,7 +393,7 @@ ...@@ -393,7 +393,7 @@
<span v-show="subItem.PayStyle==6">付款团号:{{subItem.PayTypeTCNUM}}</span> <span v-show="subItem.PayStyle==6">付款团号:{{subItem.PayTypeTCNUM}}</span>
</td> </td>
<td v-if="childIndex==0" :rowspan="3"> <td v-if="childIndex==0" :rowspan="3">
{{item.Remarks}} {{subItem.Remarks}}
</td> </td>
</tr> </tr>
</template> </template>
...@@ -465,7 +465,7 @@ ...@@ -465,7 +465,7 @@
<span v-show="subItem.PayStyle==6">付款团号:{{subItem.PayTypeTCNUM}}</span> <span v-show="subItem.PayStyle==6">付款团号:{{subItem.PayTypeTCNUM}}</span>
</td> </td>
<td v-if="childIndex==0" :rowspan="3"> <td v-if="childIndex==0" :rowspan="3">
{{item.Remarks}} {{subItem.Remarks}}
</td> </td>
</tr> </tr>
</template> </template>
......
...@@ -3,8 +3,14 @@ ...@@ -3,8 +3,14 @@
<div class="query-box" style="border-bottom: none;"> <div class="query-box" style="border-bottom: none;">
<ul> <ul>
<li> <li>
<input v-if="IsOperation != 1" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" /> <template v-if="IsOperation != 1">
<input v-if="IsOperation != 1" type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" /> <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)" />
</template>
<template v-else>
<span v-if="IsOperation==1" style="color:red;font-size:14px;">已制单,不能在修改!</span>
</template>
<input type="button" class="fr normalBtn mb30" style="display:none;" value="保存" @click="saveList(1)" />
</li> </li>
</ul> </ul>
</div> </div>
...@@ -130,7 +136,7 @@ ...@@ -130,7 +136,7 @@
<el-option label='公司合团支付' :value='6'></el-option> <el-option label='公司合团支付' :value='6'></el-option>
</el-select> </el-select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="60" style="text-align:right;"> <td width="60" style="text-align:right;">
...@@ -158,7 +164,7 @@ ...@@ -158,7 +164,7 @@
订团号: 订团号:
</td> </td>
<td style="text-align:left;"> <td style="text-align:left;">
<el-input class='w135 tcenter' v-model='subItem.ReserveNo'></el-input> <el-input class='w135 tcenter' v-model='subItem.ReserveNo'></el-input>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -185,7 +191,7 @@ ...@@ -185,7 +191,7 @@
flightTotal: 0, flightTotal: 0,
GuestNum: 0, GuestNum: 0,
loading: false, loading: false,
IsOperation:'', IsOperation: '',
}; };
}, },
methods: { methods: {
...@@ -222,7 +228,7 @@ ...@@ -222,7 +228,7 @@
}); });
}, },
personStrToWord(str) { personStrToWord(str) {
if (str == 1) if (str == 1)
return '大人' return '大人'
if (str == 2) if (str == 2)
return '中人' return '中人'
...@@ -245,10 +251,9 @@ ...@@ -245,10 +251,9 @@
item.DiningSummaryList.forEach(x => { item.DiningSummaryList.forEach(x => {
x.DiningReserveType = x.DiningReserveType.toString(); x.DiningReserveType = x.DiningReserveType.toString();
this.calculationPrice(x); this.calculationPrice(x);
var str=x.NewDiningName; var str = x.NewDiningName;
if(x.RealName) if (x.RealName) {
{ str = x.RealName;
str=x.RealName;
} }
item.DinnerList.push({ item.DinnerList.push({
RealName: str, RealName: str,
...@@ -331,8 +336,8 @@ ...@@ -331,8 +336,8 @@
if (subItem.NewDiningID == x.ID) { if (subItem.NewDiningID == x.ID) {
subItem.Address = x.Address; subItem.Address = x.Address;
subItem.Tel = x.Tel; subItem.Tel = x.Tel;
subItem.PayStyle=x.PayStyle; subItem.PayStyle = x.PayStyle;
subItem.PayStyleExt=x.PayStyle; subItem.PayStyleExt = x.PayStyle;
} }
}) })
}, },
......
...@@ -443,21 +443,39 @@ ...@@ -443,21 +443,39 @@
<div class="combottomTitle">{{divTitle}}</div> <div class="combottomTitle">{{divTitle}}</div>
<div class=""> <div class="">
<el-form :model="addMsg" ref="addMsg" label-width="130px"> <el-form :model="addMsg" ref="addMsg" label-width="130px">
<el-col :span="5"> <template v-if="addMsg.ID==0">
<el-form-item label="年"> <el-col :span="5">
<el-select v-model="addMsg.YearStr" size="mini" class="_month_input"> <el-form-item label="开始月份">
<el-option :key="DefaultValue" label="请选择" :value="DefaultValue"></el-option> <el-date-picker v-model="addMsg.MonthRangeStart" type="month" value-format="yyyy-MM">
<el-option v-for="item in YearList" :key="item" :label="item" :value="item"></el-option> </el-date-picker>
</el-select> </el-form-item>
</el-form-item> </el-col>
</el-col> <el-col :span="5">
<el-col :span="5"> <el-form-item label="结束月份">
<el-form-item label="月"> <el-date-picker v-model="addMsg.MonthRangeEnd" type="month" value-format="yyyy-MM">
<el-select v-model="addMsg.MonthStr" size="mini" class="_month_input"> </el-date-picker>
<el-option v-for="item in MonthList" :key="item" :label="item" :value="item"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> </template>
</el-col> <template v-else>
<el-col :span="5">
<el-form-item label="年">
<el-select v-model="addMsg.YearStr" size="mini" class="_month_input">
<el-option :key="DefaultValue" label="请选择" :value="DefaultValue"></el-option>
<el-option v-for="item in YearList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="月">
<el-select v-model="addMsg.MonthStr" size="mini" class="_month_input">
<el-option :key="DefaultValue" label="请选择" :value="DefaultValue"></el-option>
<el-option v-for="item in MonthList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
</el-col>
</template>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="单价/人"> <el-form-item label="单价/人">
<el-input v-model="addMsg.UnitPrice" maxlength="5" @keyup.native="checkPrice(addMsg,'UnitPrice')"> <el-input v-model="addMsg.UnitPrice" maxlength="5" @keyup.native="checkPrice(addMsg,'UnitPrice')">
...@@ -491,6 +509,8 @@ ...@@ -491,6 +509,8 @@
YearStr: 0, //年份 YearStr: 0, //年份
MonthStr: 0, //月份 MonthStr: 0, //月份
UnitPrice: 0, //单价每人 UnitPrice: 0, //单价每人
MonthRangeStart: "", //开始月份【2019-01到2019-12】
MonthRangeEnd: "", //结束月份【2019-01到2019-12】
}, },
DefaultValue: 0, //默认值 DefaultValue: 0, //默认值
YearList: [], YearList: [],
...@@ -534,9 +554,34 @@ ...@@ -534,9 +554,34 @@
this.addMsg.YearStr = 0; this.addMsg.YearStr = 0;
this.addMsg.MonthStr = 0; this.addMsg.MonthStr = 0;
this.addMsg.UnitPrice = 0; this.addMsg.UnitPrice = 0;
this.addMsg.MonthRangeEnd="";
this.addMsg.MonthRangeStart="";
}, },
//保存信息 //保存信息
SaveAirticketRules() { SaveAirticketRules() {
if (this.addMsg.ID > 0) {
if (this.addMsg.YearStr == 0) {
this.Info("请选择年份!");
return;
}
if (this.addMsg.MonthStr == 0) {
this.Info("请选择月份!");
return;
}
} else {
if (this.addMsg.MonthRangeStart == "") {
this.Info("请选择开始月份!");
return;
}
if (this.addMsg.MonthRangeEnd == "") {
this.Info("请选择结束月份!");
return;
}
}
if (this.addMsg.UnitPrice == 0) {
this.Info("请输入提成金额!");
return;
}
this.apipost( this.apipost(
"AirTicketRules_post_SetAirticketRule", "AirTicketRules_post_SetAirticketRule",
this.addMsg, this.addMsg,
......
...@@ -69,11 +69,22 @@ ...@@ -69,11 +69,22 @@
<td>{{item.start}}</td> <td>{{item.start}}</td>
<td>{{item.tCNUM}}</td> <td>{{item.tCNUM}}</td>
<td> <td>
<span v-if="fields.length>0">{{(item.sumScore/fields.length).toFixed(1)}}</span> <span v-if="fields.length>0">
<span v-else>{{item.sumScore}}</span> <span v-if="item.sumScore/fields.length>3.5">{{(item.sumScore/fields.length).toFixed(1)}}</span>
<span v-else style="color:red">{{(item.sumScore/fields.length).toFixed(1)}}</span>
</span>
<span v-else>
<span v-if="item.sumScore>3.5">{{item.sumScore}}</span>
<span v-else style="color:red">{{item.sumScore}}</span>
</span>
</td> </td>
<td v-for="(c,childIndex) in fields" :key="childIndex">{{item[c]?item[c]:0}}</td> <td v-for="(c,childIndex) in fields" :key="childIndex">
<span v-if="item[c]&&item[c]>3.5">{{item[c]?item[c]:0}}</span>
<span v-else style="color:red">{{item[c]?item[c]:0}}</span>
</td>
<td> <td>
<span style="cursor:pointer" @click="chaKan(item)">明细</span> <span style="cursor:pointer" @click="chaKan(item)">明细</span>
...@@ -128,6 +139,11 @@ export default { ...@@ -128,6 +139,11 @@ export default {
} }
} }
}, },
created(){
this.dateList[0]=moment().subtract(6, "month").format("YYYY-MM-DD");
this.dateList[1]=moment().format("YYYY-MM-DD");
// console.log("this.dateList",this.dateList)
},
mounted(){ mounted(){
this.getLineList(); this.getLineList();
this.getList(); this.getList();
......
<style>
.CM_look {
padding: 4px !important;
position: relative;
top: 1px;
}
</style>
<template>
<div class="flexOne">
<div class="query-box">
<ul>
<li>
<input type="button" class="normalBtn" @click="CreateAirticketCommission()" value="生成提成报表" />
</li>
</ul>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>期数</th>
<th>提成总金额</th>
<th>{{$t('admin.admin_czPerson')}}</th>
<th>日期</th>
<th>{{$t('system.table_operation')}}</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Periods}}</td>
<td>{{item.SumPrice}}</td>
<td>{{item.CreateByName}}</td>
<td>{{item.CreateTimeStr}}</td>
<td>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<el-button type="primary" class="CM_look" @click="goUrl('AirticketCommissionDetail',item.ID)"
icon="iconfont icon-chakan" circle></el-button>
</el-tooltip>
</td>
</tr>
</table>
<!-- 分页 -->
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size='msg.PageSize' :total='total'>
</el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
PageIndex: 1,
PageSize: 20
},
loading: false,
//数据源
dataList: [],
total: 0,
currentPage: 1,
}
},
mounted() {
this.getList();
},
methods: {
handleCurrentChange(val) {
this.msg.PageIndex = val;
this.getList();
},
goUrl(path, id) {
this.$router.push({
path: path,
query: {
ID: id,
blank: 'y',
tab: '票务业绩详情'
}
});
},
//获取数据
getList() {
this.loading = true;
this.apipost(
"AirTicketRules_post_GetAirticketCommissionPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
//生成票务提成报表
CreateAirticketCommission() {
this.apipost(
"AirTicketRules_post_CreateAirticketCommissionService", {},
res => {
if (res.data.resultCode == 1) {
this.getList();
this.Success('报表生成成功')
} else {
this.Error(res.data.message);
}
},
null
);
}
}
}
</script>
\ No newline at end of file
<style>
.CM_look {
padding: 4px !important;
position: relative;
top: 1px;
}
</style>
<template>
<div class="flexOne">
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>公司</th>
<th>部门</th>
<th>姓名</th>
<th>总人数</th>
<th>提成金额</th>
<th>期数</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.BName}}</td>
<td>{{item.DName}}</td>
<td>{{item.UName}}</td>
<td>{{item.TotalPersion}}</td>
<td>{{item.CommissionMoney}}</td>
<td>{{item.Periods}}</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
MainId: 0
},
loading: false,
//数据源
dataList: [],
}
},
mounted() {
this.msg.MainId = this.$route.query.ID;
this.getList();
},
methods: {
//获取数据
getList() {
this.loading = true;
this.apipost(
"AirTicketRules_post_GetAirticketCommissionDetails",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
}
}
</script>
...@@ -347,7 +347,8 @@ ...@@ -347,7 +347,8 @@
<th>金额</th> <th>金额</th>
</tr> </tr>
<tr v-for="(fnc, findex) in outItem.FinanceIds"> <tr v-for="(fnc, findex) in outItem.FinanceIds">
<td class="cursorpointer text-decoration" @click="goFncUrl('FinancialDocumentsDetail', fnc.FinanceId)">{{fnc.FinanceId}}</td> <td class="cursorpointer text-decoration"
@click="goFncUrl('FinancialDocumentsDetail', fnc.FinanceId)">{{fnc.FinanceId}}</td>
<td>{{moneyFormat(fnc.OriginalMoney)}}</td> <td>{{moneyFormat(fnc.OriginalMoney)}}</td>
</tr> </tr>
</table> </table>
...@@ -459,6 +460,25 @@ ...@@ -459,6 +460,25 @@
style="background:green; border-color:green"></el-button> style="background:green; border-color:green"></el-button>
</el-popover> </el-popover>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content=" 领队/导游配置" placement="top-start"
v-if="item.LineId==14&&outItem.PriceCommonList.length>1" style="display:none;">
<el-popover placement="bottom" width="450" trigger="click">
<table class="dmcSetTable">
<tr>
<template v-for="(hItem,hIndex) in TeamHotelList">
<td>{{hItem.TCNUM}}({{hItem.TCID}})</td>
</template>
</tr>
<template v-if="TeamHotelList&&TeamHotelList.length>0">
<template v-for="(hItem,hIndex) in TeamHotelList">
</template>
</template>
</table>
<el-button @click="GetTeamHotelList(outItem.TCIDS)" slot="reference" icon="iconfont icon-suo1"
type="primary" style="background:green; border-color:green"></el-button>
</el-popover>
</el-tooltip>
</el-button-group> </el-button-group>
</div> </div>
</td> </td>
...@@ -580,17 +600,19 @@ ...@@ -580,17 +600,19 @@
cityId: 0, cityId: 0,
orderId: 0 orderId: 0
}, },
//合团团酒店列表
TeamHotelList: [],
LeaderList: [], LeaderList: [],
showHotelObj: { showHotelObj: {
showPrice: true,//是否显示价格 showPrice: true, //是否显示价格
showPay: true,//是否显示支付方式 showPay: true, //是否显示支付方式
showZhan: true,//占房时间 showZhan: true, //占房时间
showBtnList: true,//是否下载、确认按钮 showBtnList: true, //是否下载、确认按钮
ShowTaxType: true, //显示税入税别 ShowTaxType: true, //显示税入税别
ShowRebateRatio: true, //显示返佣比列 ShowRebateRatio: true, //显示返佣比列
ShowSupplier:true,//是否显示供应商 ShowSupplier: true, //是否显示供应商
showCaozuoTime:true,//操作时间 showCaozuoTime: true, //操作时间
colspanLength:6//跨行 colspanLength: 6 //跨行
}, },
pickerBeginDateBefore: { pickerBeginDateBefore: {
disabledDate: time => { disabledDate: time => {
...@@ -759,12 +781,12 @@ ...@@ -759,12 +781,12 @@
}) })
window.open(routeData.href, '_blank'); window.open(routeData.href, '_blank');
}, },
goFncUrl: function(path, id) { goFncUrl: function (path, id) {
this.$router.push({ this.$router.push({
name: path, name: path,
query: { query: {
id: id, id: id,
blank: 'y', blank: 'y',
} }
}) })
}, },
...@@ -798,8 +820,8 @@ ...@@ -798,8 +820,8 @@
'flightTotal': obj.TotalSeat, 'flightTotal': obj.TotalSeat,
'GuestNum': obj.OrderGuestNum, 'GuestNum': obj.OrderGuestNum,
'NewCombinationNum': outItem.NewCombinationNum, 'NewCombinationNum': outItem.NewCombinationNum,
'LeaderName':obj.LeaderName, 'LeaderName': obj.LeaderName,
'GuideName':obj.GuideName, 'GuideName': obj.GuideName,
blank: 'y', blank: 'y',
tab: title tab: title
} }
...@@ -960,7 +982,19 @@ ...@@ -960,7 +982,19 @@
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
}, err => {}) }, err => {})
} },
GetTeamHotelList(tcids) {
this.apipost('dmcstatistics_get_GetTeamHotelListService', {
TCIDs: tcids
}, res => {
if (res.data.resultCode == 1) {
this.TeamHotelList = res.data.data;
//console.log("TeamHotelList", this.TeamHotelList);
} else {
this.$message.error(res.data.message);
}
}, err => {})
},
}, },
mounted() { mounted() {
let myDate = new Date(); let myDate = new Date();
...@@ -971,6 +1005,8 @@ ...@@ -971,6 +1005,8 @@
"-" + "-" +
myDate.getDate(); myDate.getDate();
this.msg.StartDate = nowDate; this.msg.StartDate = nowDate;
//this.msg.CombinationNum='JVS0723OTC-MUC';
//this.msg.CombinationNum = 'JVS0617OTC-MUA';
this.getLineList(); this.getLineList();
this.getList(); this.getList();
this.getCompanyList(); this.getCompanyList();
......
...@@ -326,6 +326,22 @@ export default { ...@@ -326,6 +326,22 @@ export default {
title: '提成管理' title: '提成管理'
}, },
}, },
{
path: '/AirticketCommission', //票务提成
name: 'AirticketCommission',
component: resolve => require(['@/components/administrative/AirticketCommission'], resolve),
meta: {
title: '票务提成'
},
},
{
path: '/AirticketCommissionDetail', //票务提成详情
name: 'AirticketCommissionDetail',
component: resolve => require(['@/components/administrative/AirticketCommissionDetail'], resolve),
meta: {
title: '票务提成详情'
},
},
{ {
path: '/CommissionDetail', //提成详情 path: '/CommissionDetail', //提成详情
name: 'CommissionDetail', name: 'CommissionDetail',
...@@ -1630,11 +1646,11 @@ export default { ...@@ -1630,11 +1646,11 @@ export default {
name: 'PassengerFeedback', name: 'PassengerFeedback',
component: resolve => require(['@/components/TravelManager/TravelList/PassengerFeedback'], resolve), component: resolve => require(['@/components/TravelManager/TravelList/PassengerFeedback'], resolve),
meta: { meta: {
title: '一键调查统计' title: '意见调查统计'
}, },
}, },
{ {
path: '/FeedbackChart', //一键调查统计 path: '/FeedbackChart', //意见调查统计
name: 'FeedbackChart', name: 'FeedbackChart',
component: resolve => require(['@/components/TravelManager/TravelList/FeedbackChart'], resolve), component: resolve => require(['@/components/TravelManager/TravelList/FeedbackChart'], resolve),
meta: { meta: {
...@@ -2548,7 +2564,15 @@ export default { ...@@ -2548,7 +2564,15 @@ export default {
meta: { meta: {
title: '线控配置' title: '线控配置'
}, },
}, { //财务 资金调拨 新增 },
{ //财务 机票分摊比例
path: '/AirTicketApp',
name: 'AirTicketApp',
component: resolve => require(['@/components/FinancialModule/AirTicketApp'], resolve),
meta: {
title: '机票分摊比例'
},
},{ //财务 资金调拨 新增
path: '/addCapitalAllocation', path: '/addCapitalAllocation',
name: 'addCapitalAllocation', name: 'addCapitalAllocation',
component: resolve => require(['@/components/FinancialModule/addCapitalAllocation'], resolve), component: resolve => require(['@/components/FinancialModule/addCapitalAllocation'], resolve),
...@@ -2945,6 +2969,22 @@ export default { ...@@ -2945,6 +2969,22 @@ export default {
title: '年度排名统计' title: '年度排名统计'
}, },
}, },
{ //财务 报表 机票损失分摊
path: '/AirTicketLoss',
name: 'AirTicketLoss',
component: resolve => require(['@/components/FinancialModule/ReportForm/AirTicketLoss'], resolve),
meta: {
title: '机票损失分摊'
},
},
{ //财务 机票损失分摊详情
path: '/AirTicketLossDetail',
name: 'AirTicketLossDetail',
component: resolve => require(['@/components/FinancialModule/ReportForm/AirTicketLossDetail'], resolve),
meta: {
title: '机票损失分摊详情'
},
},
{ //财务 报表 团队人数统计 { //财务 报表 团队人数统计
path: '/NumberStatistics', path: '/NumberStatistics',
name: 'NumberStatistics', name: 'NumberStatistics',
......
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