Commit d45a7f70 authored by 黄媛媛's avatar 黄媛媛
parents 23105f31 3a0f2f83
<template>
<div class="Feedback">
<ul style="overflow: initial!important">
<li style="float:right;margin-bottom:10px">
<input type="button" class="hollowFixedBtn" value="新增" @click="addRule">
</li>
</ul>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th style="width:30%">线路名称</th>
<th>人员</th>
<th>占比</th>
<th>设置</th>
</tr>
<tr>
<td>全部</td>
<td>地接账户基金</td>
<td>{{allzb}}%</td>
<td>
<!-- <el-button @click="SetRules(item)" style="padding:4px" type="primary" icon="el-icon-edit" circle></el-button>
<el-button @click="Delete(item)" style="padding:4px" type="danger" icon="el-icon-delete" circle></el-button> -->
</td>
</tr>
<tbody v-for="(item,i) in dataList" :key="i">
<tr v-for="(com,index) in item.OPCommissionList" :key="index">
<td :rowspan="item.OPCommissionList.length" v-if="index==0">{{item.LineName}}</td>
<td>{{com.EmployeeName}}</td>
<td>{{com.CommissionPercent}}%</td>
<td>
<el-button @click="SetRules(com)" style="padding:4px" type="primary" icon="el-icon-edit" circle></el-button>
<el-button @click="Delete(com)" style="padding:4px" type="danger" icon="el-icon-delete" circle></el-button>
</td>
</tr>
</tbody>
<tr v-if="dataList.length==0">
<td colspan="12" align="center">暂无数据</td>
</tr>
</table>
<el-dialog title="提成规则" :visible.sync="ruleVisible" width="400px">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="人员" prop="EmployeeId">
<el-select class="multiple_input" filterable v-model="form.EmployeeId">
<el-option v-for="item in EmployeeList" :label="item.EmName" :value="item.EmployeeId"
:key="item.EmployeeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="占比" prop="CommissionPercent">
<el-input class="w220" @keyup.native="checkPrice(form,'CommissionPercent')" v-model="form.CommissionPercent">
</el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="ruleVisible = false">取 消</el-button>
<el-button size="small" type="danger" @click="RulesOk('form')">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import moment from "moment"
import {
constants
} from 'fs';
export default {
name: 'Feedback',
data() {
return {
allzb: 100,
dataList: [],
loading: false,
ruleVisible: false,
form: {
LineName: '出境日本线',
LineID: 14,
EmployeeId: '',
CommissionPercent: 0,
},
EmployeeList: [],
rules: {
EmployeeId: [{
required: true,
message: '请选择参与人员',
trigger: 'change'
}],
CommissionPercent: [{
required: true,
message: "请输入占比",
trigger: "blur"
}],
},
}
},
created() {},
mounted() {
this.getList();
this.getEmployeeList();
},
methods: {
Delete(item) {
this.$confirm("是否删除? 删除后不可恢复", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.apipost('OPCommission_RemoveOPCommission', {
ID: item.Id
}, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.getList()
} else {
this.Error(res.data.message)
}
})
})
.catch(() => {});
},
addRule() {
this.ruleVisible = true;
this.form = {
LineName: '出境日本线',
LineID: 14,
EmployeeId: '',
CommissionPercent: 0,
}
},
SetRules(item) {
this.ruleVisible = true;
this.form = {
LineName: '出境日本线',
LineID: 14,
EmployeeId: item.EmployeeId,
CommissionPercent: item.CommissionPercent,
Id: item.Id
}
},
RulesOk(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let num = 0;
let newnum = 0;
if (this.form.Id) {
this.dataList.forEach(item => {
item.OPCommissionList.forEach(com => {
if (com.Id != this.form.Id) {
num += com.CommissionPercent;
}
})
})
newnum = 100 - num;
} else {
newnum = this.allzb;
}
if (Number(this.form.CommissionPercent) > newnum || Number(this.form.CommissionPercent) == 0) {
this.Error("请输入正确的占比!");
return;
}
this.apipost(
'OPCommission_SetOPCommission', this.form,
res => {
if (res.data.resultCode == 1) {
this.getList();
this.ruleVisible = false;
this.Success(res.data.message)
} else {
this.Error(res.data.message)
}
},
err => {}
)
} else {}
});
},
getEmployeeList() {
let userInfo = this.getLocalStorage()
let msg = {
GroupId: userInfo.RB_Group_id,
BranchId: '-1',
DepartmentId: '-1',
PostId: '-1',
IsLeave: '0'
}
this.apipost(
'admin_get_EmployeeGetList', {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data
}
},
err => {}
)
},
getList() {
this.loading = true;
this.apipost("OPCommission_GetPageList", {}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data;
// allzb
let num = 0;
this.dataList.forEach(item => {
item.OPCommissionList.forEach(com => {
num += com.CommissionPercent;
})
})
this.allzb = 100 - num;
}
});
},
}
}
</script>
<style>
.Feedback ul>li {
display: inline-block;
font-size: 12px;
color: #666;
margin: 20px 30px 0px 0;
}
.Feedback .singeRowTable {
margin-top: 20px;
}
</style>
...@@ -526,11 +526,7 @@ export default { ...@@ -526,11 +526,7 @@ export default {
if(item.FinanceId==0){ if(item.FinanceId==0){
this.customerListAll.push(item) this.customerListAll.push(item)
} }
}) })
console.log("this.customerListAll",this.customerListAll)
} }
}); });
}, },
......
...@@ -13,14 +13,21 @@ ...@@ -13,14 +13,21 @@
.rq_disImNote { .rq_disImNote {
color: #ea6d6d; color: #ea6d6d;
} }
.piliangPop .roomReserSet tr{
height:30px; .piliangPop .roomReserSet tr {
height: 30px;
} }
.piliangPop .roomReserSet tr th{
.piliangPop .roomReserSet tr th {
background-color: #eee; background-color: #eee;
text-align: center; text-align: center;
margin-bottom:10px; margin-bottom: 10px;
} }
.roomResetTable tr td {
padding: 5px;
}
</style> </style>
<template> <template>
...@@ -28,58 +35,97 @@ ...@@ -28,58 +35,97 @@
<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="$t('pub.saveBtn')" @click="saveList(1)" /> <input v-if="IsOperation!=1" type="button" class="fr normalBtn mb30" :value="$t('pub.saveBtn')"
<input v-if="IsOperation==1&&(CurrentUserInfo.EmployeeId==615||CurrentUserInfo.EmployeeId==46)" type="button" class="fr normalBtn mb30" @click="saveList(1)" />
:value="$t('pub.saveBtn')" @click="saveList(1)" /> <input v-if="IsOperation==1&&(CurrentUserInfo.EmployeeId==615||CurrentUserInfo.EmployeeId==46)" type="button"
class="fr normalBtn mb30" :value="$t('pub.saveBtn')" @click="saveList(1)" />
<span v-if="IsOperation==1" style="color:red;font-size:14px;">{{$t('ground.yizhidanbng')}}</span> <span v-if="IsOperation==1" style="color:red;font-size:14px;">{{$t('ground.yizhidanbng')}}</span>
</li> </li>
</ul> </ul>
{{$t('ground.jisuan1')}} <br /> {{$t('ground.jisuan1')}} <br />
{{$t('ground.jisuan2')}} <br /> {{$t('ground.jisuan2')}} <br />
{{$t('ground.sidaobsuan')}}<br /> {{$t('ground.sidaobsuan')}}<br />
付款方式是现付的,必須上传手配书. 付款方式是现付的,必須上传手配书.
</div> </div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}" <div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle"> class="ownScrollbarStyle" ref="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading"> <table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading">
<tr> <tr>
<th class="fz14" colspan="5">{{$t('visa.v_teaminfo')}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}} &nbsp;&nbsp;{{$t('leader.leader_Guide')}}:{{GuideName}}. <th class="fz14" colspan="5">
{{$t('visa.v_teaminfo')}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}}
</th> &nbsp;&nbsp;{{$t('leader.leader_Guide')}}:{{GuideName}}.</th>
<th class="fz14" colspan="17"> <th class="fz14" colspan="17">
<el-tooltip class="item" effect="dark" content="批量上传手配书" placement="top-start"
<el-tooltip class="item" effect="dark" content="批量上传手配书" placement="top-start" style="float:left;margin-left:20px;"> style="float:left;margin-left:20px;">
<el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click" v-model="isShowPiliangPop"> <el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click"
<table class="dmcSetTable roomReserSet" border="0" cellspacing="0" cellpadding="0"> v-model="isShowPiliangPop">
<tr> <table class="dmcSetTable roomReserSet" border="0" cellspacing="0" cellpadding="0">
<th>日期</th> <tr>
<th>酒店名称</th> <th>日期</th>
</tr> <th>酒店名称</th>
<template v-for="(lItem,lIndex) in list" > </tr>
<tr v-for="(subItem,subIndex) in lItem.HotelOrderList" :key="subIndex+lIndex"> <template v-for="(lItem,lIndex) in list">
<td style="width:100px;"> <tr v-for="(subItem,subIndex) in lItem.HotelOrderList" :key="subIndex+lIndex">
{{lItem.UseTimeStr}} <td style="width:100px;">
</td> {{lItem.UseTimeStr}}
</td>
<td style="width:280px;"> <td style="width:280px;">
<el-checkbox v-model="subItem.IsChecked" @change="MoreUpdate(subItem)">{{subItem.NewHotelName}}</el-checkbox> <el-checkbox v-model="subItem.IsChecked" @change="MoreUpdate(subItem)">{{subItem.NewHotelName}}
</el-checkbox>
</td> </td>
</tr> </tr>
</template> </template>
<tr> <tr>
<td colspan="2" style="text-align:center"> <td colspan="2" style="text-align:center">
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''> <el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" style="margin-top:10px;"> <el-button size="small" type="danger" style="margin-top:10px;">
选择文件</el-button> 选择文件</el-button>
</el-upload> </el-upload>
</td> </td>
</tr> </tr>
</table> </table>
<el-button slot="reference" style="background:#E95252; border-color:#E95252" type="primary"> <el-button slot="reference" style="background:#E95252; border-color:#E95252" type="primary">
批量上传手配书 批量上传手配书
</el-button> </el-button>
</el-popover> </el-popover>
</el-tooltip> </el-tooltip>
<span style="margin-top:6px;display:inline-block;">{{$t('ground.dijiecaozuoxinxi')}}</span> <span style="margin-top:6px;display:inline-block;">{{$t('ground.dijiecaozuoxinxi')}}</span>
<el-tooltip class="item" effect="dark" content="批量修改" placement="top-start"
style="float:left;margin-left:20px;">
<el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click"
v-model="IsShowMoreUpdate">
<table class="dmcSetTable roomReserSet roomResetTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>房型</th>
<th>房间数量</th>
<th>人数</th>
</tr>
<tr v-for="(subItem,subIndex) in HotelHouseTypeList" :key="subIndex">
<td style="width:100px;">
{{subItem.Name}}
</td>
<td style="width:150px;">
<el-input class='w135 tcenter' maxlength="2" @keyup.native="checkInteger(subItem,'HouseNum')"
v-model='subItem.HouseNum'></el-input>
</td>
<td style="width:150px;">
<el-input class='w135 tcenter' maxlength="2" @keyup.native="checkInteger(subItem,'BookNum')"
v-model='subItem.BookNum'>
</el-input>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right">
<input type="button" class="normalBtn" value="保存" @click="BatchHotelOrder()">
</td>
</tr>
</table>
<el-button slot="reference" style="background:#E95252; border-color:#E95252;" type="primary" v-if="CurrentUserInfo.EmployeeId == 615" @click="IsShowMoreUpdate=true">
批量修改酒店
</el-button>
</el-popover>
</el-tooltip>
</th> </th>
</tr> </tr>
<tr> <tr>
...@@ -201,20 +247,23 @@ ...@@ -201,20 +247,23 @@
<tr> <tr>
<td colspan="2"> <td colspan="2">
<span v-if="subItem.IsHaveShouPeiFee==0" style="color:red;">{{$t('ground.wshoupeifei')}}</span> <span v-if="subItem.IsHaveShouPeiFee==0" style="color:red;">{{$t('ground.wshoupeifei')}}</span>
<span v-if="subItem.IsHaveShouPeiFee==1" style="color:red;">{{$t('ground.shoupeifei')}}:{{subItem.ShouPeiMoney}}</span> <span v-if="subItem.IsHaveShouPeiFee==1"
style="color:red;">{{$t('ground.shoupeifei')}}:{{subItem.ShouPeiMoney}}</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2"> <td colspan="2">
<p style="padding-top: 5px;"> <p style="padding-top: 5px;">
<template v-if="subItem.ContractUrl!=''"> <template v-if="subItem.ContractUrl!=''">
<span style="color:green">已上传手配书</span> <span style="color:green">已上传手配书</span>
&nbsp;&nbsp;<a v-if="subItem.ContractUrl" target="_blank" style="color:blue" :href="subItem.ContractUrl">查看</a> &nbsp;&nbsp;<a v-if="subItem.ContractUrl" target="_blank" style="color:blue"
:href="subItem.ContractUrl">查看</a>
</template> </template>
</p> </p>
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''> <el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>{{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button> <el-button size="small" type="danger" @click='getItem(index, subIndex)'>
</el-upload> {{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button>
</el-upload>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -441,7 +490,7 @@ ...@@ -441,7 +490,7 @@
<el-option :label="$t('ground.yufukuandk')" :value='5'></el-option> <el-option :label="$t('ground.yufukuandk')" :value='5'></el-option>
<el-option :label="$t('ground.gongsihetzf')" :value='6'></el-option> <el-option :label="$t('ground.gongsihetzf')" :value='6'></el-option>
<el-option :label="$t('ground.lingduidydf')" :value='10'></el-option> <el-option :label="$t('ground.lingduidydf')" :value='10'></el-option>
<el-option :label="$t('ground.shuaka')" :value='11'></el-option> <el-option :label="$t('ground.shuaka')" :value='11'></el-option>
</el-select> </el-select>
</td> </td>
</tr> </tr>
...@@ -517,7 +566,8 @@ ...@@ -517,7 +566,8 @@
<el-tooltip class="item" effect="dark" :content="$t('pub.saveBtn')" placement="top-start"> <el-tooltip class="item" effect="dark" :content="$t('pub.saveBtn')" placement="top-start">
<el-button icon="iconfont icon-baocun1" @click="SaveSingle(subItem)" type="primary"></el-button> <el-button icon="iconfont icon-baocun1" @click="SaveSingle(subItem)" type="primary"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" :content="$t('pub.addBtn')" v-if="subItem.OPState!=1" placement="top-start"> <el-tooltip class="item" effect="dark" :content="$t('pub.addBtn')" v-if="subItem.OPState!=1"
placement="top-start">
<el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary"></el-button> <el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip v-if="item.HotelOrderList.length>1 && subItem.OPState!=1" class="item" effect="dark" <el-tooltip v-if="item.HotelOrderList.length>1 && subItem.OPState!=1" class="item" effect="dark"
...@@ -592,9 +642,41 @@ ...@@ -592,9 +642,41 @@
allCurrencyList: [], //币种列表 allCurrencyList: [], //币种列表
checkedIndex: '', checkedIndex: '',
checkedsubIndex: '', checkedsubIndex: '',
XiaoFeiTaxFee:0.1, XiaoFeiTaxFee: 0.1,
IsMoreUpdate:0,//批量上传手配书0-单个上传,1-批量上传 IsMoreUpdate: 0, //批量上传手配书0-单个上传,1-批量上传
isShowPiliangPop:false //是否显示批量上传popover isShowPiliangPop: false, //是否显示批量上传popover
IsShowMoreUpdate: false,
HotelHouseTypeList: [{
HouseType: 1,
Name: "单间",
HouseNum: 0,
BookNum: 0
},
{
HouseType: 2,
Name: "标准间",
HouseNum: 0,
BookNum: 0
},
{
HouseType: 3,
Name: "大床间",
HouseNum: 0,
BookNum: 0
},
{
HouseType: 4,
Name: "三人间",
HouseNum: 0,
BookNum: 0
},
{
HouseType: 5,
Name: "司导间",
HouseNum: 0,
BookNum: 0
},
]
} }
}, },
components: { components: {
...@@ -603,9 +685,25 @@ ...@@ -603,9 +685,25 @@
commonPHInfo: commonPHlInfo commonPHInfo: commonPHlInfo
}, },
methods: { methods: {
MoreUpdate(subItem) //批量修改房间数和房间人
{ BatchHotelOrder() {
this.IsMoreUpdate=1; var msg = {
TCID: this.$route.query.id,
OrderDetails: this.HotelHouseTypeList
};
this.apipost('dmcstatistics_get_SetBatchHotelOrderService', msg, res => {
this.loading = false;
this.IsShowMoreUpdate=false;
if (res.data.resultCode == 1) {
this.getList();
this.Success(res.data.message);
} else {
this.Error(res.data.message);
}
}, err => {})
},
MoreUpdate(subItem) {
this.IsMoreUpdate = 1;
}, },
//付款方式切换 //付款方式切换
PayChange(subItem) { PayChange(subItem) {
...@@ -647,7 +745,8 @@ ...@@ -647,7 +745,8 @@
if (objData.list && objData.list.length > 0) { if (objData.list && objData.list.length > 0) {
var str = ""; var str = "";
objData.list.forEach((cItem, cIndex) => { objData.list.forEach((cItem, cIndex) => {
str += (cIndex == 0 ? "" : ",") + cItem.TCNUM + "使用了" + cItem.LastUseNum + this.$t('hotel.hotel_room'); str += (cIndex == 0 ? "" : ",") + cItem.TCNUM + "使用了" + cItem.LastUseNum + this.$t(
'hotel.hotel_room');
}); });
if (str != "") { if (str != "") {
this.Info(str); this.Info(str);
...@@ -666,10 +765,10 @@ ...@@ -666,10 +765,10 @@
if (ckedObj.Supplier > 0) { if (ckedObj.Supplier > 0) {
this.list[this.findex].HotelOrderList[this.childIndex].SupplierId = ckedObj.Supplier; this.list[this.findex].HotelOrderList[this.childIndex].SupplierId = ckedObj.Supplier;
} }
this.list[this.findex].HotelOrderList[this.childIndex].OrderDetailsList.forEach((subItem, this.list[this.findex].HotelOrderList[this.childIndex].OrderDetailsList.forEach((subItem,
subIndex) => { subIndex) => {
//判断是否有库存价格 //判断是否有库存价格
if (subIndex == 1 && ckedObj.CostPrice > 0 && ckedObj.Inventory>0) { if (subIndex == 1 && ckedObj.CostPrice > 0 && ckedObj.Inventory > 0) {
subItem.IsHaveStockPrice = 1; subItem.IsHaveStockPrice = 1;
} else { } else {
subItem.IsHaveStockPrice = 0; subItem.IsHaveStockPrice = 0;
...@@ -753,31 +852,23 @@ ...@@ -753,31 +852,23 @@
let path = '/Upload/DMC/Hotel' let path = '/Upload/DMC/Hotel'
this.$message.info('上传中...') this.$message.info('上传中...')
this.UploadSelfFileT(path, newArr, x => { this.UploadSelfFileT(path, newArr, x => {
var fileUrl=this.domainManager().ViittoFileUrl + x.data.FilePath; var fileUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
//批量上传 //批量上传
if(this.IsMoreUpdate==1) if (this.IsMoreUpdate == 1) {
{ this.list.forEach((sItem, sIndex) => {
this.list.forEach((sItem,sIndex)=>{ sItem.HotelOrderList.forEach((subItem, subIndex) => {
sItem.HotelOrderList.forEach((subItem,subIndex)=>{ if (subItem.IsChecked) {
if(subItem.IsChecked){ subItem.ContractUrl = fileUrl;
subItem.ContractUrl=fileUrl; }
} subItem.IsChecked = false;
subItem.IsChecked=false; this.$forceUpdate();
this.$forceUpdate(); });
}); });
}); this.isShowPiliangPop = false;
this.isShowPiliangPop=false; } else {
} this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
else }
{ this.IsMoreUpdate = 0;
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
}
// this.list.forEach((sItem,sIndex)=>{
// sItem.HotelOrderList.forEach((subItem,subIndex)=>{
// subItem.IsChecked=false;
// });
// });
this.IsMoreUpdate=0;
this.$forceUpdate() this.$forceUpdate()
}) })
}, },
...@@ -824,7 +915,7 @@ ...@@ -824,7 +915,7 @@
this.IsOperation = res.data.data.IsOperation; this.IsOperation = res.data.data.IsOperation;
this.IsEditHotel = res.data.data.IsEditHotel; this.IsEditHotel = res.data.data.IsEditHotel;
this.IsEditHotelPeople = res.data.data.IsEditHotelPeople; this.IsEditHotelPeople = res.data.data.IsEditHotelPeople;
if (this.CurrentUserInfo.EmployeeId == 615||this.CurrentUserInfo.EmployeeId==46) { if (this.CurrentUserInfo.EmployeeId == 615 || this.CurrentUserInfo.EmployeeId == 46) {
this.IsEditHotel = 1; this.IsEditHotel = 1;
this.IsEditHotelPeople = 1; this.IsEditHotelPeople = 1;
} }
...@@ -940,14 +1031,15 @@ ...@@ -940,14 +1031,15 @@
}); });
}) })
} }
var flag=true; var flag = true;
var isUpload=true; var isUpload = true;
var str=""; var str = "";
this.list.forEach(item => { this.list.forEach(item => {
item.HotelOrderList.forEach(subItem => { item.HotelOrderList.forEach(subItem => {
if(isUpload&&subItem.PayStyle==1&&subItem.ContractUrl==''&&this.CurrentUserInfo.EmployeeId!=615){ if (isUpload && subItem.PayStyle == 1 && subItem.ContractUrl == '' && this.CurrentUserInfo
str+=`请上传${item.UseTimeStr}的手配书` .EmployeeId != 615) {
isUpload=false; str += `请上传${item.UseTimeStr}的手配书`
isUpload = false;
} }
subItem.OrderDetailsList.forEach((y, sIndex) => { subItem.OrderDetailsList.forEach((y, sIndex) => {
if (y.HouseTypeCount) { if (y.HouseTypeCount) {
...@@ -995,14 +1087,15 @@ ...@@ -995,14 +1087,15 @@
//单条保存 //单条保存
SaveSingle(item) { SaveSingle(item) {
item.HotelOrderState = 1; item.HotelOrderState = 1;
var flag=true; var flag = true;
var isUpload=true; var isUpload = true;
var str=""; var str = "";
this.list.forEach(item => { this.list.forEach(item => {
item.HotelOrderList.forEach(subItem => { item.HotelOrderList.forEach(subItem => {
if(isUpload&&subItem.PayStyle==1&&subItem.ContractUrl==''&&this.CurrentUserInfo.EmployeeId!=615){ if (isUpload && subItem.PayStyle == 1 && subItem.ContractUrl == '' && this.CurrentUserInfo
str+=`请上传${item.UseTimeStr}的手配书` .EmployeeId != 615) {
isUpload=false; str += `请上传${item.UseTimeStr}的手配书`
isUpload = false;
} }
subItem.OrderDetailsList.forEach(y => { subItem.OrderDetailsList.forEach(y => {
if (y.HouseTypeCount) { if (y.HouseTypeCount) {
......
...@@ -1666,7 +1666,6 @@ ...@@ -1666,7 +1666,6 @@
res => { res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
var tempObj = res.data.data; var tempObj = res.data.data;
console.log("temp", tempObj);
this.CtObj.ID = tempObj.ID; this.CtObj.ID = tempObj.ID;
this.CtObj.CType = tempObj.CType; this.CtObj.CType = tempObj.CType;
this.CtObj.T_ContractNum = tempObj.T_ContractNum; this.CtObj.T_ContractNum = tempObj.T_ContractNum;
......
...@@ -954,6 +954,11 @@ ...@@ -954,6 +954,11 @@
<script> <script>
import commonHotelInfo from "../../commonPage/commonHotelInfo.vue"; import commonHotelInfo from "../../commonPage/commonHotelInfo.vue";
export default { export default {
provide(){
return{
reload:this.reload
}
},
data() { data() {
return { return {
//查询数据列表 //查询数据列表
...@@ -1150,6 +1155,13 @@ export default { ...@@ -1150,6 +1155,13 @@ export default {
components: { components: {
commonHotelInfo commonHotelInfo
}, },
//监听器
watch: {
// 方法1
'$route' (to, from) { //监听路由是否变化
location.reload()
},
},
methods: { methods: {
//获取TCID //获取TCID
clickAirticket(item) { clickAirticket(item) {
...@@ -2114,12 +2126,11 @@ export default { ...@@ -2114,12 +2126,11 @@ export default {
} }
var routeName = this.$route.name var routeName = this.$route.name
if (routeName == 'TravelControlList') { if (routeName == 'TravelControlList') {
this.queryMsg.TeamType = 0; this.queryMsg.TeamType = 0;
} }
if (routeName == 'TravelControlList2') { if (routeName == 'TravelControlList2') {
this.queryMsg.TeamType = 3; this.queryMsg.TeamType = 3;
} }
this.getControlList(); this.getControlList();
} }
}; };
......
...@@ -25,12 +25,16 @@ ...@@ -25,12 +25,16 @@
<td>{{item.TotalPersion}}</td> <td>{{item.TotalPersion}}</td>
<td>{{item.CommissionMoney}}</td> <td>{{item.CommissionMoney}}</td>
<td>{{item.Periods}}</td> <td>{{item.Periods}}</td>
<td><a @click="goUrl(item)" style="color:blue;text-decoration:underline;cursor:pointer;">详情</a></td> <td>
<a @click="goUrl(item)" style="color:blue;text-decoration:underline;cursor:pointer;">详情</a>&nbsp;&nbsp;
<a
@click="DownLoadAirticketCommission(item)"
style="color:blue;text-decoration:underline;cursor:pointer; display:none;">下载差异</a>
</td>
</tr> </tr>
</table> </table>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
...@@ -41,14 +45,30 @@ ...@@ -41,14 +45,30 @@
loading: false, loading: false,
//数据源 //数据源
dataList: [], dataList: [],
CurrentUserInfo: {}, //当前登录对象
} }
}, },
mounted() { mounted() {
let userInfo = this.getLocalStorage()
this.CurrentUserInfo = userInfo;
this.msg.MainId = this.$route.query.ID; this.msg.MainId = this.$route.query.ID;
this.getList(); this.getList();
}, },
methods: { methods: {
//下载票务提成差异
DownLoadAirticketCommission(item) {
this.loading = true;
//导出报表
let msg = {
UserId: item.UserId,
Periods: item.Periods
};
var fileName = item.UName + "【" + item.Periods + "】" + "提成差异.xls";
this.GetLocalFile("airticket_get_DownloadAirticketCommission", msg, fileName,
res => {
this.loading = false;
});
},
//获取数据 //获取数据
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -70,8 +90,8 @@ ...@@ -70,8 +90,8 @@
this.$router.push({ this.$router.push({
path: "flightPerformance", path: "flightPerformance",
query: { query: {
UserId:item.UserId, UserId: item.UserId,
Periods:item.Periods, Periods: item.Periods,
blank: 'y', blank: 'y',
tab: '票务业绩详情' tab: '票务业绩详情'
} }
...@@ -79,4 +99,5 @@ ...@@ -79,4 +99,5 @@
} }
}, },
} }
</script>
\ No newline at end of file </script>
...@@ -435,7 +435,6 @@ ...@@ -435,7 +435,6 @@
this.apipost("travelcontract_post_GetContractPageListService",this.msgOut,res => { this.apipost("travelcontract_post_GetContractPageListService",this.msgOut,res => {
this.loadingOut = false; this.loadingOut = false;
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
console.log(res,'ressss');
this.dataListOut = res.data.data.pageData; this.dataListOut = res.data.data.pageData;
this.total2=res.data.data.count; this.total2=res.data.data.count;
} else { } else {
......
...@@ -404,7 +404,6 @@ ...@@ -404,7 +404,6 @@
font-size: 12px; font-size: 12px;
border: 1px solid #E5E5E5; border: 1px solid #E5E5E5;
} }
</style> </style>
<template> <template>
<div> <div>
...@@ -466,7 +465,8 @@ ...@@ -466,7 +465,8 @@
</li> </li>
<li> <li>
<button class="hollowFixedBtn" @click="getControlList(),resetPageIndex()">{{$t('pub.searchBtn')}}</button> <button class="hollowFixedBtn" @click="getControlList(),resetPageIndex()">{{$t('pub.searchBtn')}}</button>
<input type="button" class="hollowFixedBtn" :value="$t('op.TDHT')" @click="heTuan" v-show="this.ArrList.length>1" /> <input type="button" class="hollowFixedBtn" :value="$t('op.TDHT')" @click="heTuan"
v-show="this.ArrList.length>1" />
</li> </li>
</ul> </ul>
</div> </div>
...@@ -555,10 +555,19 @@ ...@@ -555,10 +555,19 @@
<span>{{$t('Airticket.Air_StartTime')}}</span> <span>{{$t('Airticket.Air_StartTime')}}</span>
{{item.StartDate}} {{item.StartDate}}
</p> </p>
<p>
<span>{{$t('leader.leader_Leader')}}</span>
<span v-if="item.LeaderName" class="TCL-greenType">{{item.LeaderName}}</span>
<span v-else class="TCL-redType">{{$t('Operation.Op_nozhipai')}}</span>
</p>
<p>
<span>{{$t('leader.leader_Guide')}}</span>
<span v-if="item.GuideName" class="TCL-greenType">{{item.GuideName}}</span>
<span v-else class="TCL-redType">{{$t('Operation.Op_nozhipai')}}</span>
</p>
</div> </div>
</td> </td>
<td> <td style="width:20%">
<div class="d5"> <div class="d5">
<p> <p>
<i class="iconfont icon-tuanwei"></i>{{$t('visa.v_tuanweiinfo')}} <i class="iconfont icon-tuanwei"></i>{{$t('visa.v_tuanweiinfo')}}
...@@ -576,6 +585,18 @@ ...@@ -576,6 +585,18 @@
<span v-if="item.IsSubstitution==1">{{$t('visa.v_yxhoubu')}}</span> <span v-if="item.IsSubstitution==1">{{$t('visa.v_yxhoubu')}}</span>
<span v-else class="TCL-redType">{{$t('visa.v_byxhoubu')}}</span> <span v-else class="TCL-redType">{{$t('visa.v_byxhoubu')}}</span>
</p> </p>
<p>
<span>参团</span>
<span>{{item.JoinNum+item.SingleGroupNum}}</span> <span class="TCL-redType" v-if="item.OrderLeaderGuestNum>=1">+{{item.OrderLeaderGuestNum}}</span>{{$t('Operation.Op_people')}}
</p>
<p>
<span>自由行</span>
<span>{{item.IndependentTravelNum}}</span>
<span>单机票</span>
<span>{{item.SingleAirTicketNum}}</span>
<span>单地接</span>
<span>{{item.SingleDMNum}}</span>
</p>
</div> </div>
</td> </td>
<td width="240"> <td width="240">
......
...@@ -85,7 +85,8 @@ ...@@ -85,7 +85,8 @@
export default { export default {
provide() { provide() {
return { return {
loadConfigInfo: this.firstLoadConfigInfo loadConfigInfo: this.firstLoadConfigInfo,
reload:this.reload
} }
}, },
data() { data() {
...@@ -821,7 +822,12 @@ ...@@ -821,7 +822,12 @@
updated: function () { updated: function () {
this.MsgBus.$emit('FeatureDataFlag'); this.MsgBus.$emit('FeatureDataFlag');
}, },
watch: {}, watch: {
// 方法1
'$route' (to, from) { //监听路由是否变化
location.reload()
},
},
mounted() { mounted() {
this.ScrollMethod(); this.ScrollMethod();
}, },
......
...@@ -455,13 +455,13 @@ ...@@ -455,13 +455,13 @@
<input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true" <input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true"
v-if="PostConfig.LineId==14 && priceData.PriceHotelList&&priceData.PriceHotelList.length>0" /> v-if="PostConfig.LineId==14 && priceData.PriceHotelList&&priceData.PriceHotelList.length>0" />
</div> </div>
<el-form-item prop="B2BMemberPrice" :class="{'showOther':TeamType==3}"> <el-form-item prop="B2BMemberPrice" >
<el-input :placeholder="$t('pub.pleaseImport')" class="w190 ComSeat" v-model="priceData.B2BMemberPrice" <el-input :placeholder="$t('pub.pleaseImport')" class="w190 ComSeat" v-model="priceData.B2BMemberPrice"
@keyup.native="checkPrice(priceData,'B2BMemberPrice')"> @keyup.native="checkPrice(priceData,'B2BMemberPrice')">
<template slot="prepend">{{$t('Operation.Op_fellowMember')}}</template> <template slot="prepend">{{$t('Operation.Op_fellowMember')}}</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="B2BPrice" :class="{'showOther':TeamType==3}"> <el-form-item prop="B2BPrice" >
<el-input :placeholder="$t('pub.pleaseImport')" class="w190 ComSeat" v-model="priceData.B2BPrice" <el-input :placeholder="$t('pub.pleaseImport')" class="w190 ComSeat" v-model="priceData.B2BPrice"
@keyup.native="checkPrice(priceData,'B2BPrice')"> @keyup.native="checkPrice(priceData,'B2BPrice')">
<template slot="prepend">{{$t('Operation.Op_fellow')}}</template> <template slot="prepend">{{$t('Operation.Op_fellow')}}</template>
...@@ -870,7 +870,7 @@ ...@@ -870,7 +870,7 @@
<div class="TPNotice">{{$t('sm.ysbjchajiacl')}}</div> <div class="TPNotice">{{$t('sm.ysbjchajiacl')}}</div>
</div> </div>
</div> </div>
<TravelPriceFlightList :class="{'showOther':TeamType==3}" @headCallBack="setDisDirectFlight" ref="TravelFlightList" :priceData="priceData" <TravelPriceFlightList @headCallBack="setDisDirectFlight" ref="TravelFlightList" :priceData="priceData"
:AirTicketId="priceData.AirTicketId" :DeleteAirticketIds="priceData.DeleteAirticketIds" :AirTicketId="priceData.AirTicketId" :DeleteAirticketIds="priceData.DeleteAirticketIds"
:selectFilghtList="selectFilghtList"></TravelPriceFlightList> :selectFilghtList="selectFilghtList"></TravelPriceFlightList>
</div> </div>
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
</template> </template>
<template v-else> <template v-else>
<span 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)" /> <input v-if="CurrentUserInfo.EmployeeId == 615" type="button" class="fr normalBtn mb30" value="保存"
@click="saveList(1)" />
</template> </template>
</li> </li>
</ul> </ul>
...@@ -49,7 +50,9 @@ ...@@ -49,7 +50,9 @@
<table class="scenicTable"> <table class="scenicTable">
<tr> <tr>
<td colspan="2" style="text-align:left;padding-left:8px;"> <td colspan="2" style="text-align:left;padding-left:8px;">
{{subItem.ScenicName}} <span class="spanlink" @click="goUrl('ticketManagement',subItem,'门票管理')">
{{subItem.ScenicName}}
</span>
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -88,24 +91,31 @@ ...@@ -88,24 +91,31 @@
@input='calculationPrice(subItem)' @keyup.native="checkInteger(childItem,'Discount')"></el-input> @input='calculationPrice(subItem)' @keyup.native="checkInteger(childItem,'Discount')"></el-input>
</td> </td>
<td> <td>
<span class="spanlink" v-if='childItem.PeoplePrice==0' <template v-if="CurrentUserInfo.EmployeeId==615">
@click="goUrl('ticketManagement',subItem,'门票管理')">设置</span> <el-input class='w135' v-model='childItem.PeoplePrice'
<span v-else> @keyup.native="checkPrice(childItem,'PeoplePrice')" type="text"></el-input>
<template v-if="CurrentUserInfo.EmployeeId==615"> </template>
<el-input class='w135' v-model='childItem.PeoplePrice' @keyup.native="checkPrice(childItem,'PeoplePrice')" type="text"></el-input> <template v-else>
</template> <span class="spanlink" v-if='childItem.PeoplePrice==0'
<template v-else> @click="goUrl('ticketManagement',subItem,'门票管理')">设置</span>
{{childItem.PeoplePrice}} <span v-else>
</template> {{childItem.PeoplePrice}}
</span> </span>
</template>
</td> </td>
<td> <td>
{{(childItem.UsePeopleNum-childItem.Discount)*childItem.PeoplePrice}} {{(childItem.UsePeopleNum-childItem.Discount)*childItem.PeoplePrice}}
</td> </td>
<td> <td>
<span class="spanlink" v-if='childItem.DiscountPrice==0' <template v-if="CurrentUserInfo.EmployeeId==615">
@click="goUrl('scenicSpotInfoManage',subItem,'景区列表')">设置</span> <el-input class='w135' v-model='childItem.DiscountPrice'
<span v-if='childItem.DiscountPrice!=0'>{{childItem.DiscountPrice}}%</span> @keyup.native="checkPrice(childItem,'DiscountPrice')" type="text"></el-input>
</template>
<template v-else>
<span class="spanlink" v-if='childItem.DiscountPrice==0'
@click="goUrl('scenicSpotInfoManage',subItem,'景区列表')">设置</span>
<span v-if='childItem.DiscountPrice!=0'>{{childItem.DiscountPrice}}%</span>
</template>
</td> </td>
<td v-if="childIndex==0" :rowspan="3"> <td v-if="childIndex==0" :rowspan="3">
{{subItem.TotalPrice}} {{subItem.TotalPrice}}
...@@ -160,9 +170,9 @@ ...@@ -160,9 +170,9 @@
loading: false, loading: false,
IsOperation: '', IsOperation: '',
//当前登录人信息 //当前登录人信息
CurrentUserInfo:{}, CurrentUserInfo: {},
//是否禁用按钮 //是否禁用按钮
IsDisabled:false, IsDisabled: false,
} }
}, },
methods: { methods: {
...@@ -215,7 +225,7 @@ ...@@ -215,7 +225,7 @@
}, err => {}) }, err => {})
}, },
saveList(type) { saveList(type) {
this.IsDisabled=true; this.IsDisabled = true;
if (type == 0) { if (type == 0) {
this.DataList.forEach(item => { this.DataList.forEach(item => {
item.ScenicStatisticsList.forEach(insideItem => { item.ScenicStatisticsList.forEach(insideItem => {
...@@ -250,9 +260,9 @@ ...@@ -250,9 +260,9 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList(); this.getList();
this.IsDisabled=false; this.IsDisabled = false;
} else { } else {
this.IsDisabled=false; this.IsDisabled = false;
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
}, err => {}) }, err => {})
......
...@@ -3893,6 +3893,15 @@ export default { ...@@ -3893,6 +3893,15 @@ export default {
title: '地接提成规则' title: '地接提成规则'
} }
}, },
{
path: '/viittoCommissions',
name: 'viittoCommissions',
component: resolve => require(['@/components/FinancialModule/viittoCommissions'], resolve),
meta: {
title: '微途提成规则'
}
},
{ {
path: '/Qzcommissions', path: '/Qzcommissions',
name: 'Qzcommissions', name: 'Qzcommissions',
......
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