Commit 1becd9f4 authored by huangyuanyuan's avatar huangyuanyuan
parents c5b647e3 644bfe09
......@@ -143,6 +143,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提前还房天数">
<el-input-number v-model="msg2.BeforeDay" :precision="2" :min="0"
@keyup.native="checkInteger(msg2,'BeforeDay')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="免间数">
<el-input-number v-model="msg2.FreeRoomNum" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'FreeRoomNum')" maxlength="10"></el-input-number>
</el-form-item>
</el-col
<el-col :span="6">
<el-form-item label="标准间成本价">
<el-input-number v-model="msg2.CostPrice" :precision="2" :min="0"
......@@ -355,17 +367,29 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提前还房天数">
<el-input-number v-model="msg.BeforeDay" :precision="2" :min="0"
@keyup.native="checkInteger(msg,'BeforeDay')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="免间数">
<el-input-number v-model="msg.FreeRoomNum" :precision="2" :min="0"
@keyup.native="checkPrice(msg,'FreeRoomNum')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="标准间成本价">
<el-input-number v-model="msg.CostPrice" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'CostPrice')" maxlength="10"></el-input-number>
@keyup.native="checkPrice(msg,'CostPrice')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="散客价">
<el-input-number v-model="msg.SanKePrice" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'SanKePrice')" maxlength="10"></el-input-number>
@keyup.native="checkPrice(msg,'SanKePrice')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
......@@ -577,7 +601,9 @@
DateList: [],
SanKePrice: 0, //散客价
BatchNumber: 1, //批次号
TaxesPrice: 0 //税金
TaxesPrice: 0, //税金
BeforeDay:0,//提前还房天数
FreeRoomNum:0,//免间数
},
msg2: {
Hotel: '0',
......@@ -607,7 +633,9 @@
DateList: [],
SanKePrice: 0, //散客价
BatchNumber: 1, //批次号
TaxesPrice: 0 //税金
TaxesPrice: 0, //税金
BeforeDay:0,//提前还房天数
FreeRoomNum:0,//免间数
},
rules: {
InventoryType: {
......@@ -931,6 +959,8 @@
this.msg.SanKePrice = data.SanKePrice;
this.msg.BatchNumber = data.BatchNumber;
this.msg.TaxesPrice = data.TaxesPrice;
this.msg.BeforeDay=data.BeforeDay;
this.msg.FreeRoomNum=data.FreeRoomNum;
}
})
},
......@@ -1009,6 +1039,8 @@
this.msg.SanKePrice = 0;
this.msg.BatchNumber = 1;
this.msg.TaxesPrice=0;
this.msg.BeforeDay=0;
this.msg.FreeRoomNum=0;
} else {
this.Error(res.data.message)
}
......@@ -1025,6 +1057,8 @@
this.msg2.SanKePrice = 0;
this.msg2.BatchNumber = 1;
this.msg2.TaxesPrice = 0;
this.msg2.BeforeDay=0;
this.msg2.FreeRoomNum=0;
},
//批量删除
delete2Reset: function () {
......@@ -1039,6 +1073,8 @@
that.msg2.SanKePrice = 0;
that.msg2.BatchNumber = 1;
that.msg2.TaxesPrice = 0;
that.msg2.BeforeDay=0;
that.msg2.FreeRoomNum=0;
} else {
that.Error(res.data.message)
}
......@@ -1047,7 +1083,6 @@
},
// 页面编辑保存
edit2Save: function () {
console.log("msg2",this.msg2);
this.$refs['hotelProductForm2'].validate((valid) => {
if (valid) {
this.apipost('dict_post_HotelOffer_SetNewHotelPrice', this.msg2, res => {
......@@ -1059,6 +1094,8 @@
this.msg2.SanKePrice = 0;
this.msg2.BatchNumber = 1;
this.msg2.TaxesPrice = 0;
this.msg2.BeforeDay=0;
this.msg2.FreeRoomNum=0;
} else {
this.Error(res.data.message)
}
......@@ -1105,7 +1142,6 @@
this.initSupplier();
}
}
</script>
<style>
......
......@@ -36,33 +36,28 @@
</span>
</li>
<li>
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" />
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; ">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsTalbe"
style="border: 1px solid rgb(230, 230, 230);background: #ccc;min-width: 1600px" v-loading="loading">
<tr>
<th colspan="5">公司通用信息</th>
<th colspan="8">导游操作</th>
<th colspan="10">地接OP</th>
</tr>
<table border="0" cellspacing="1" cellpadding="0" class="ShoppingTable"
style="border: 1px solid rgb(230, 230, 230);min-width: 1600px" v-loading="loading">
<!-- <tr>
<th colspan="2">公司通用信息</th>
<th colspan="6">导游操作</th>
<th colspan="9">地接OP</th>
</tr> -->
<tr>
<th width="115">序号</th>
<th width="70">出发地</th>
<th width="120">公司团号</th>
<th width="50">领队</th>
<th width="50">导游</th>
<th width="100">进店团号</th>
<th width="180">店名</th>
<th width="100">进店时间</th>
<th width="100">出发地</th>
<th width="110">公司团号</th>
<th width="100">领队</th>
<th width="100">导游</th>
<th width="190">店名</th>
<th width="60">进店人数</th>
<th width="70">公司</th>
<th width="70">总金额</th>
<th width="80">佣金领取<br />状况</th>
<th width="120">凭证</th>
<th width="80">领队佣金<br />(应付)</th>
<th width="80">导游佣金<br />(应付)</th>
<th width="80">公司佣金<br />(应收)</th>
......@@ -73,120 +68,71 @@
<th width="80">财务单据</th>
<th width="80">操作</th>
</tr>
<tr v-if="list.length==0">
<tr v-if="shopDataList.length==0">
<td colspan="22">暂无数据</td>
</tr>
<tbody v-for="(outItem,outindex) in list" :class="{roomReservationsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<tbody v-for="(outItem,outindex) in shopDataList" :class="{roomReservationsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.PriceShopList">
<template v-for="(subItem,subIndex) in item.ShopDetailsList">
<tr>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div style="max-width: 100px; min-width: 50px; ">{{outindex+1}}</div>
<div v-if='outItem.StaticsReportList.length>1' title="合团号">{{outItem.NewCombinationNum}}</div>
<td :rowspan="outItem.rowspanCount" v-if="index==0&&subIndex==0">
{{outItem.NewCombinationNum}}
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
{{subItem.StartCityNames}}
</td>
<td>
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div>
</td>
<td title="领队">
{{item.LeaderName}}
</td>
<td title="导游">
{{item.GuideName}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div v-for="subItem in item.CommonReport.PriceShopList">{{ subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].ShopNum:""}}</div>
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopName}}</div>
{{subItem.TCNUMS}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div v-for="subItem in item.CommonReport.PriceShopList">{{ subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].EnterTimeStr:""}}</div>
<td>
{{subItem.LeaderName}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].EnterNum:""}}</div>
<td>
{{subItem.GuideName}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<template v-for="subItem in item.CommonReport.PriceShopList">
<div v-for="sonItem in subItem.ShopDetailsList">{{sonItem.BName}}</div>
</template>
<td :rowspan="item.ShopDetailsList.length" v-if='subIndex==0' width="180"
style="word-wrap:break-word ;">
{{item.ShopName}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<template v-for="subItem in item.CommonReport.PriceShopList">
<div v-for="sonItem in subItem.ShopDetailsList">{{sonItem.TotalMoney}}</div>
</template>
<td width="60">
{{subItem.EnterNum}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--佣金领取状况-->
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].CommissionStatusStr:""}}</div>
<td width="70">
{{subItem.BName}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--凭证上传-->
<div v-for="subItem in item.CommonReport.PriceShopList"
v-if="subItem.ShopDetailsList!=null && subItem.ShopDetailsList.length>0">
<p v-for="(img, imgIndex) in subItem.ShopDetailsList[0].imgList" title="点击下载" @click="downLoadPZ(img)"
v-if="img !== ''" style="cursor: pointer;">{{ '凭证' + (imgIndex + 1)}}</p>
</div>
<td width="70">
{{subItem.TotalMoney}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--领队佣金调整-->
<template v-for="subItem in item.CommonReport.PriceShopList">
<div v-for="sonItem in subItem.ShopDetailsList">{{sonItem.LeaderCommission}}</div>
</template>
<td width="80">
{{subItem.LeaderCommission}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--导游佣金调整-->
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].GuideCommission:""}}</div>
<td width="80">
{{subItem.GuideCommission}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<template v-for="subItem in item.CommonReport.PriceShopList">
<div v-for="sonItem in subItem.ShopDetailsList">{{sonItem.CompanyCommission}}</div>
</template>
<!--公司佣金调整-->
<td width="80">
{{subItem.CompanyCommission}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--其余扣除(返佣余额)-->
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].OtherDeduct:""}}</div>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.OtherDeduct}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--返佣总计(返佣余额)-->
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].BackTotalMoney:""}}</div>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.BackTotalMoney}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--汇率-->
<div v-for="subItem in item.CommonReport.PriceShopList">{{subItem.ShopDetailsList!=null &&
subItem.ShopDetailsList.length>0? subItem.ShopDetailsList[0].DMCRate:""}}</div>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.DMCRate}}
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<!--地接OP凭证-->
<div v-for="subItem in item.CommonReport.PriceShopList"
v-if="subItem.ShopDetailsList!=null && subItem.ShopDetailsList.length>0">
<p v-for="(img, imgIndex) in subItem.ShopDetailsList[0].dmcImageList" title="点击下载"
@click="downLoadPZ(img)" v-if="img !== ''" style="cursor: pointer;">{{ '凭证' + (imgIndex + 1)}}</p>
</div>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
<p v-for="(img, imgIndex) in subItem.dmcImageList" title="点击下载" @click="downLoadPZ(img)"
v-if="img !== ''" style="cursor: pointer;color:blue;">{{ '凭证' + (imgIndex + 1)}}</p>
</td>
<td class="more_td" :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<template v-for="subItem in item.CommonReport.PriceShopList">
<td :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
<div>
<!--subItem.ShopDetailsList-->
<p style="cursor: pointer;color:blue;"
@click="CreateBill(subItem.ShopDetailsList,outItem.StaticsReportList)">生成单据</p>
@click="CreateBill(item.ShopDetailsList)">生成单据</p>
</div>
</template>
</td>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<td :rowspan="outItem.rowspanCount" v-if="index==0&&subIndex==0">
<p style="cursor: pointer;color:blue;margin-top:5px;"
@click="goHuiZhi(outItem.TCIDs, item.LeaderName, item.GuideName, item.StartCityNames, item.TCNUMS)">
选择购物店</p>
......@@ -195,6 +141,7 @@
</td>
</tr>
</template>
</template>
</tbody>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
......@@ -220,16 +167,12 @@
currentPage: 1,
total: 0,
},
hrefStr: "",
LineList: [],
LineTeamList: [],
thLengthTitle: [],
list: [],
colspanTotal: 0,
shopDataList: [],
}
},
methods: {
downLoadPZ: function (src) {
let dom = document.querySelector("#blankLink1")
dom.href = src;
......@@ -320,20 +263,19 @@
},
getList() {
this.loading = true;
this.apipost('dmcstatistics_post_GetUniteCombinationNumService', this.msg, res => {
this.apipost('dmcstatistics_post_GetShopCombinationNumService', this.msg, res => {
this.loading = false
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
let data = res.data.data.pageData.data;
data.forEach(x => {
x.StaticsReportList.forEach(y => {
y.CommonReport.PriceShopList.forEach(z => {
let shopDataList = res.data.data.pageData;
shopDataList.forEach(x => {
x.PriceShopList.forEach(z => {
z.imgList = (z.Credentials && z.Credentials.length > 0) ? z.Credentials.split(",") :
'';
});
});
});
this.list = res.data.data.pageData.data;
console.log("shopDataList", shopDataList);
this.shopDataList = shopDataList;
} else {
this.$message.error(res.data.message)
}
......@@ -345,7 +287,7 @@
this.Confirm('是否生成财务单据?', function () {
that.loading = true;
var array = [];
outItem.forEach(subItem => {
ShopDetailsList.forEach(subItem => {
var obj = {
LeaderId: subItem.LeaderId != null ? subItem.LeaderId : 0,
LeaderName: subItem.LeaderName != null ? subItem.LeaderName : "",
......@@ -381,7 +323,8 @@
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
//this.msg.StartDate = '2019-01-01';
this.msg.StartDate = '2019-01-01';
this.msg.EndDate = '2019-02-01'
this.getLineList();
this.getList();
},
......@@ -394,109 +337,41 @@
background: #eee !important;
}
.roomReservationsTalbe {
background: #ccc;
}
.roomReservationsTalbe tr th {
background: #E6E6E6;
.more_td>div {
height: 40px;
font-size: 12px;
color: #333;
/*line-height: 40px;*/
border-bottom: 1px solid rgb(204, 204, 204);
}
.roomReservationsTalbe tr {
background: #fff;
text-align: center;
height: 40px;
.more_td>div:last-child {
border-bottom: 0;
}
.roomReservationsTalbe tr td {
.ShoppingTable {
width: 100%;
font-size: 12px;
}
.roomReservationsTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
min-height: 24px;
line-height: 24px;
margin-top: 0;
box-sizing: content-box;
padding: 0 10px;
}
.roomReservationsTalbe tr td .pDateStyle:last-child {
border-bottom: none;
}
.roomReservationsTalbe tr td .pDateStyle>span:after {
content: '/';
}
.roomReservationsTalbe tr td .pDateStyle>span:last-child:after {
content: ''
}
.roomReservationsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.roomReservationsTalbe tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.roomReservations_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
max-height: 400px;
overflow-y: auto;
}
.roomReservations_tripDetails .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.roomReservations_tripDetails table {
padding: 10px 0 0 20px;
background-color: #ededed;
color: #333;
margin: auto;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.roomReservations_tripDetails table th {
background-color: #ededed;
padding: 5px;
}
.roomReservations_tripDetails table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.roomReservations_tripDetails table td._d_name {
background-color: #ededed;
background-color: #fff;
}
.roomReservations_tripDetails table ._color_666 {
color: #666666;
.ShoppingTable td {
border: 1px solid #d1d1d1;
text-align: center;
padding: 10px 0;
}
.roomReservations_tripDetails table tr._color_666 th {
padding: 9px 15px;
.ShoppingTable th {
background-color: #E6E6E6;
}
.more_td>div {
height: 40px;
/*line-height: 40px;*/
border-bottom: 1px solid rgb(204, 204, 204);
.SponeTable td:first-child {
border-left: 0;
}
.more_td>div:last-child {
border-bottom: 0;
.SponeTable td:last-child {
border-right: 0;
}
</style>
<template>
<div>
<div class="query-box" style="border-bottom: none;">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select class="w150" v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList(msg.LineId)">
<el-option :label="$t('pub.unlimitedSel')" :value="0"></el-option>
<el-option v-for="item in LineList" :label="item.LineName" :value="item.LineID" :key="item.LineID">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>系列</em>
<el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option label="不限" :value='0'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>团号</em>
<el-input v-model='msg.TCNUM'></el-input>
</span>
</li>
<li><span><em>日期</em>
<el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-
<el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" />
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; ">
<table border="0" cellspacing="1" cellpadding="0" class="ShoppingTable"
style="border: 1px solid rgb(230, 230, 230);min-width: 1600px" v-loading="loading">
<!-- <tr>
<th colspan="2">公司通用信息</th>
<th colspan="6">导游操作</th>
<th colspan="9">地接OP</th>
</tr> -->
<tr>
<th width="115">序号</th>
<th width="100">出发地</th>
<th width="110">公司团号</th>
<th width="100">领队</th>
<th width="100">导游</th>
<th width="190">店名</th>
<th width="60">进店人数</th>
<th width="70">公司</th>
<th width="70">总金额</th>
<th width="80">领队佣金<br />(应付)</th>
<th width="80">导游佣金<br />(应付)</th>
<!--<th width="80">公司佣金<br />(应收)</th>
<th width="80">返佣余额</th>
<th width="80">返佣总计</th>-->
<th width="80">汇率</th>
<th width="80">凭证</th>
<th width="80">财务单据</th>
</tr>
<tr v-if="shopDataList.length==0">
<td colspan="22">暂无数据</td>
</tr>
<tbody v-for="(outItem,outindex) in shopDataList" :class="{roomReservationsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.PriceShopList">
<template v-for="(subItem,subIndex) in item.ShopDetailsList">
<tr>
<td :rowspan="outItem.rowspanCount" v-if="index==0&&subIndex==0">
{{outItem.NewCombinationNum}}
</td>
<td>
{{subItem.StartCityNames}}
</td>
<td>
{{subItem.TCNUMS}}
</td>
<td>
{{subItem.LeaderName}}
</td>
<td>
{{subItem.GuideName}}
</td>
<td :rowspan="item.ShopDetailsList.length" v-if='subIndex==0' width="180"
style="word-wrap:break-word ;">
{{item.ShopName}}
</td>
<td width="60">
{{subItem.EnterNum}}
</td>
<td width="70">
{{subItem.BName}}
</td>
<td width="70">
{{subItem.TotalMoney}}
</td>
<td width="80">
{{subItem.LeaderCommission}}
</td>
<td width="80">
{{subItem.GuideCommission}}
</td>
<!-- <td width="80">
{{subItem.CompanyCommission}}
</td>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.OtherDeduct}}
</td>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.BackTotalMoney}}
</td> -->
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
{{subItem.DMCRate}}
</td>
<td width="80" :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
<p v-for="(img, imgIndex) in subItem.dmcImageList" title="点击下载" @click="downLoadPZ(img)"
v-if="img !== ''" style="cursor: pointer;color:blue;">{{ '凭证' + (imgIndex + 1)}}</p>
</td>
<td :rowspan="item.ShopDetailsList.length" v-if='subIndex==0'>
<div>
<p style="cursor: pointer;color:blue;"
@click="CreateBill(item.ShopDetailsList)">生成单据</p>
</div>
</td>
</tr>
</template>
</template>
</tbody>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="msg.total"></el-pagination>
</div>
<a id='blankLink1' target="_blank" style="display:none">1</a>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
msg: {
pageIndex: 1,
pageSize: 8,
//购物店
SelectType: 7,
LineId: 0,
LineteamId: 0,
StartDate: '',
EndDate: '',
currentPage: 1,
total: 0,
},
LineList: [],
LineTeamList: [],
shopDataList: [],
}
},
methods: {
downLoadPZ: function (src) {
let dom = document.querySelector("#blankLink1")
dom.href = src;
dom.click();
},
stringToArr(str) {
return str.split(',')
},
getLineList() {
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
} else {
this.$message.error(res.data.message);
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.LineTeamList = [];
this.apipost(
"team_post_GetList", {
lineID: lineId,
isTOOP: 1
},
res => {
if (res.data.resultCode == 1) {
this.msg.LineteamId = 0;
this.LineTeamList = res.data.data;
}
}
);
},
goUrlR(path, obj, title) {
this.$router.push({
name: path,
query: {
"ID": obj,
blank: 'y',
tab: title
}
})
},
goUrlT(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj,
blank: 'y',
tab: title
}
})
},
goHuiZhi(TCIDS, LeaderName, GuideName, StartCityNames, TCIDEN) {
this.$router.push({
name: 'ShoppingReceipt',
query: {
LeaderName: LeaderName,
GuideName: GuideName,
StartCityNames: StartCityNames,
blank: 'y',
TCID: TCIDS,
TCIDEN: TCIDEN
}
});
},
goUrl(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj.TCIDS,
'TCNUM': obj.TCNUMS,
'flightTotal': obj.TotalSeat,
'GuestNum': obj.CommonReport.HouseStatistics.RealityNum,
'NewCombinationNum': obj.NewCombinationNum,
blank: 'y',
tab: title
}
})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
this.loading = true;
this.apipost('dmcstatistics_post_GetShopCombinationNumService', this.msg, res => {
this.loading = false
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
let shopDataList = res.data.data.pageData;
shopDataList.forEach(x => {
x.PriceShopList.forEach(z => {
z.imgList = (z.Credentials && z.Credentials.length > 0) ? z.Credentials.split(",") :
'';
});
});
console.log("shopDataList", shopDataList);
this.shopDataList = shopDataList;
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
//生成单据
CreateBill(ShopDetailsList, outItem) {
var that = this;
this.Confirm('是否生成财务单据?', function () {
that.loading = true;
var array = [];
ShopDetailsList.forEach(subItem => {
var obj = {
LeaderId: subItem.LeaderId != null ? subItem.LeaderId : 0,
LeaderName: subItem.LeaderName != null ? subItem.LeaderName : "",
TCID: subItem.TCID,
GuideId: subItem.GuideId != null ? subItem.GuideId : 0,
GuideName: subItem.GuideName != null ? subItem.GuideName : "",
TCNUM: subItem.TCNUMS,
}
array.push(obj)
});
var billMsg = {
ShopDetailsList: ShopDetailsList,
LeaderGuide: array
};
that.apipost('dmcstatistics_post_ShopCreateBill', billMsg, res => {
that.loading = false;
if (res.data.resultCode == 1) {
that.Success(res.data.message);
} else {
that.Error(res.data.message);
}
}, err => {})
});
},
},
mounted() {
let myDate = new Date();
let nowDate =
myDate.getFullYear() +
"-" +
parseInt(myDate.getMonth() + 1) +
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
this.msg.StartDate = '2019-01-01';
this.msg.EndDate = '2019-02-01'
this.getLineList();
this.getList();
},
}
</script>
<style scoped>
.roomReservationsSplitTrCss td {
background: #eee !important;
}
.more_td>div {
height: 40px;
/*line-height: 40px;*/
border-bottom: 1px solid rgb(204, 204, 204);
}
.more_td>div:last-child {
border-bottom: 0;
}
.ShoppingTable {
width: 100%;
font-size: 12px;
color: #333;
margin: auto;
border-collapse: collapse;
background-color: #fff;
}
.ShoppingTable td {
border: 1px solid #d1d1d1;
text-align: center;
padding: 10px 0;
}
.ShoppingTable th {
background-color: #E6E6E6;
height:35px;
}
.SponeTable td:first-child {
border-left: 0;
}
.SponeTable td:last-child {
border-right: 0;
}
</style>
......@@ -126,7 +126,7 @@
<tr>
<th v-if="isShowGuoji">国际机票 <input type="checkbox" @change="checkAllbox(checkdGuoji,'guoji')" v-model="checkdGuoji"/></th>
<th v-if="isShowGuoji">国内机票 <input type="checkbox" @change="checkAllbox(checkedGuonei,'guonei')" v-model="checkedGuonei"/></th>
<th v-if="isShowGuoji">国际中 <input type="checkbox" @change="checkAllbox(checkedGJzd,'gjzd')" v-model="checkedGJzd"/></th>
<th v-if="isShowGuoji">国际中 <input type="checkbox" @change="checkAllbox(checkedGJzd,'gjzd')" v-model="checkedGJzd"/></th>
<th v-if="isShowGuoji">税金 <input type="checkbox" @change="checkAllbox(checkedshuijin,'shuijin')" v-model="checkedshuijin"/></th>
<th v-if="isShowGuoji">升舱 <input type="checkbox" @change="checkAllbox(checkedsc,'shengcang')" v-model="checkedsc"/></th>
<th>旅客姓名</th>
......@@ -486,9 +486,10 @@
let orderObj = {
OrderID: 0,
OrderSource: 4,
Obj: {},
Obj: JSON.parse(this.$route.query.Obj),
SourceID: this.$route.query.id,
TCIDList: [],
TCIDList: JSON.parse(this.$route.query.TCIDList),
companyIDList:JSON.parse(this.$route.query.companyIDList),
isFromPassenger:true,
}
this.$router.push({
......
......@@ -1339,6 +1339,17 @@
<span class="_blu_text">{{$t('Airticket.Air_blueType')}}</span>
{{$t('Airticket.Air_EconomyClass')}}
</li>
<li> <span style="color:#4BCA81 ;">√:</span>
<span >全部出票</span>
</li>
<li>
<span style="color: #E95252;">O:</span>
<span > 已出中段/部分出票</span>
</li>
<li>
<span style="color:#E95252 ;">X:</span>
<span >未处理</span>
</li>
</ul>
<div class="_ol_info" :class="addShow==true||command==true?'_edHeight':''">
<ul class="_ol_list" v-loading="loading">
......@@ -1377,7 +1388,7 @@
</div>
</div>
</el-col>
<el-col :span="6" class="vmiddle">
<el-col :span="5" class="vmiddle">
<div class="TMN_Seat">
<div class="TK_SeatList">
<ul class="clearfix">
......@@ -1456,9 +1467,19 @@
</div>
</div>
</el-col>
<el-col :span="1">
<div><ul>
<!--出票状态-->
<li style="font-size:18px;">
<span style="color: #4BCA81;" v-if="item.TicketState==1"></span>
<span class="colorE95252" v-else>{{item.TicketState=='0'?"x":"O"}}</span>
</li>
</ul></div>
</el-col>
<el-col :span="4" class="vmiddle">
<div class="TK_raduis">
<ul>
<!--一定-->
<li v-if="item.FirstDeposit!=''">
<div @click="goFinacePage(item,1)" :class="getClass(item.FirstDepositStatus)">
......@@ -1516,7 +1537,7 @@
</div>
</li>
<!--尾款-->
<li v-if="item.FinalPayment!=''&&item.FirstDeposit==''&&item.SecondDeposit==''&&item.ThirdDeposit==''&&item.FourthDeposit==''">
<!-- <li v-if="item.FinalPayment!=''&&item.FirstDeposit==''&&item.SecondDeposit==''&&item.ThirdDeposit==''&&item.FourthDeposit==''">
<div @click="goFinacePage(item,5)" :class="getClass(item.FinalPaymentStatus)">
<el-tooltip effect="dark" :content="item.FinalPayment" placement="top" popper-class="max-w250">
<span></span>
......@@ -1528,9 +1549,9 @@
@click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span>
</span>
</div>
</li>
</li> -->
<li v-else-if="item.FinalPayment!=''">
<div @click="goCustomList('PassengerList',item,'旅客名单')" :class="getClass(item.FinalPaymentStatus)">
<div @click="goCustomList('PassengerList',item, 5,'旅客名单')" :class="getClass(item.FinalPaymentStatus)">
<el-tooltip effect="dark" :content="item.FinalPayment" placement="top" popper-class="max-w250">
<span></span>
</el-tooltip>
......@@ -1562,7 +1583,8 @@
<p class="_text">{{$t('Airticket.Air_deadTicketTime')}}</p>
</div>
</el-col>
<el-col :span="3" class="vmiddle">
<el-col :span="3" class="">
<div>
<el-button-group size="mini">
<el-tooltip class="item" effect="dark" :content="$t('system.table_edit')" placement="top-start">
<el-button type="primary" icon="iconfont icon-Edit" @click="getEntityExtend(item.ID)"></el-button>
......@@ -1613,6 +1635,24 @@
</el-popover>
</el-tooltip>
</el-button-group>
</div>
<div style="margin-top:5px;" >
<el-button-group size="mini">
<el-tooltip class="item" effect="dark" content="出票完成" placement="top-start" v-show="item.TicketState!=1">
<el-button type="primary" icon="iconfont icon-ico_shezhi" @click="UpdateTicketState(item.ID,1)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="已出中段" placement="top-start" v-show="item.TicketState==0">
<el-button type="primary" icon="iconfont icon-ico_shezhi" @click="UpdateTicketState(item.ID,2)">
</el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="部分出票" placement="top-start" v-show="item.TicketState==0">
<el-button type="primary" icon="iconfont icon-ico_shezhi"
@click="UpdateTicketState(item.ID,3)" ></el-button>
</el-tooltip>
</el-button-group>
</div>
</el-col>
</el-row>
......@@ -2516,15 +2556,18 @@
});
},
//跳转至旅客名单
goCustomList(path, obj, title){
goCustomList(path, obj, type, title){
this.$router.push({
name: path,
query: {
blank: 'y',
isFromTk:true,
id: obj.ID,
TCIDList: obj.TCIDList,
companyIDList: obj.OutBranchIdList,
Obj: JSON.stringify({
Type: type
}),
TCIDList: JSON.stringify(obj.TCIDList),
companyIDList: JSON.stringify(obj.OutBranchIdList),
tab: title
}
})
......@@ -2786,6 +2829,23 @@
},
err => {}
);
}, // 修改 根据ID获取信息
UpdateTicketState(ID,TicketState) {
this.apipost(
"AirTicket_get_UpdateTicketState", {
ID: ID,
TicketState:TicketState
},
res => {
if (res.data.resultCode == 1) {
this.Success("操作成功");
this.getList();
} else {
this.Warning(res.data.message);
}
},
err => {}
);
},
//根据航空公司ID 获取机场列表
getAirportNameList(AirLineID, type) {
......
......@@ -3,8 +3,24 @@
<div class="query-box">
<ul class="user_time_picker">
<li>
<input type="button" @click=" " class="hollowFixedBtn" value="查询">
<input type="button" @click="outerVisible = true,dialogTitle=$t('active.ad_addad'),resetInfo()" class="normalBtn" :value="$t('pub.addBtn')">
<span>
<em>等级名称</em>
<el-input v-model="msg.name" @keyup.enter.native="getList"></el-input>
</span>
</li>
<li>
<span>
<em>状态</em>
<el-select filterable v-model="msg.state">
<el-option label="不限" :value="-1"></el-option>
<el-option label="正常" :value="1"></el-option>
<el-option label="禁用" :value="0"></el-option>
</el-select>
</span>
</li>
<li>
<input type="button" @click="getList" class="hollowFixedBtn" value="查询">
<input type="button" @click="outerVisible = true,dialogTitle='新增等级',resetInfo()" class="normalBtn" :value="$t('pub.addBtn')">
</li>
</ul>
</div>
......@@ -13,27 +29,31 @@
<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>
<th>特权信息</th>
<th>交易金额要求</th>
<th>交易人头要求</th>
<th>等级说明</th>
<th>状态</th>
<th>操作</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.rank}}</td>
<td>{{item.awardName}}</td>
<td>{{item.awardCount}}</td>
<td>{{item.awardWinningCount}}</td>
<td>223</td>
<td>22</td>
<td>{{item.name}}</td>
<td>
<span v-for="son in item.jurisdictionList">
{{son.name}}
</span>
</td>
<td>{{item.tradeMoneyReq}}</td>
<td>{{item.tradePeopleReq}}</td>
<td>{{item.remark}}</td>
<td>{{item.state === 1 ? '正常' : '禁用'}}</td>
<td>
<el-tooltip class="item" effect="dark" :content="$t('active.ld_editInfo')" placement="top">
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="outerVisible=true,dialogTitle=$t('active.ld_editInfo'),updateData(item)"
@click="outerVisible=true,dialogTitle='修改等级',updateData(item)"
></el-button>
</el-tooltip>
</td>
......@@ -48,33 +68,32 @@
:title="dialogTitle"
:visible.sync="outerVisible"
center
:before-close="closeChangeMachie"
>
:before-close="closeChangeMachie">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="100px">
<table class="layerTable layerNoIcon">
<tr>
<td>
<el-form-item label="会员等级" prop="memberLevel">
<el-input v-model="addMsg.memberLevel" class="w217" />
<el-form-item label="等级名称" prop="name">
<el-input v-model="addMsg.name" class="w217" />
</el-form-item>
</td>
<td>
<el-form-item label="等级名称" prop="memberName">
<el-input v-model="addMsg.memberName" class="w217" />
<el-form-item label=" 等级状态" prop="state">
<el-select filterable v-model="addMsg.state">
<el-option label="正常" :value="1"></el-option>
<el-option label="禁用" :value="0"></el-option>
</el-select>
</el-form-item>
</td>
</tr>
<td>
<el-form-item label="积分" prop="integral">
<el-input v-model="addMsg.integral" class="w217" />
<el-form-item label="交易金额要求" prop="tradeMoneyReq">
<el-input v-model="addMsg.tradeMoneyReq" placeholder="0为无要求" class="w217" />
</el-form-item>
</td>
<td>
<el-form-item label="特权" prop="privilege" >
<el-select filterable v-model="addMsg.privilege" class="w217" >
<el-option :label="$t('pub.unlimitedSel')" :value="0"></el-option>
<el-option v-for="item in awardRelationList" :label="item.couponsName" :value="item.couponId" :key="item.couponId"></el-option>
</el-select>
<el-form-item label="交易人头数要求" prop="tradePeopleReq" >
<el-input v-model="addMsg.tradePeopleReq" placeholder="0为无要求" class="w217" />
</el-form-item>
</td>
</tr>
......@@ -107,22 +126,23 @@ export default {
return {
//请求
msg: {
lotteryId: '',
state: -1,
name: '',
},
addMsg:{
id:0,
memberLevel: '',
memberName: '',
integral: '',
privilege: '',
standard: '',
condition: ''
name: '',
state: '',
tradeMoneyReq: '',
tradePeopleReq: '',
remark: '',
jurisdictionList: []
},
rules:{
memberLevel: [{ required: true, message: '请输入会员等级', trigger: "blur" }],
memberName: [{ required: true, message: '请输入等级名称', trigger: "blur" }],
integral: [{required: true, message: '请输入积分', trigger: "blur"}],
privilege: [{ required: true, message: '请选择特选', trigger: "change" }],
name: [{ required: true, message: '请输入等级名称', trigger: "blur" }],
tradeMoneyReq: [{required: true, message: '交易金额要求', trigger: "blur"}],
tradePeopleReq: [{ required: true, message: '交易人头数要求', trigger: "change" }],
standard: [{ required: true, message: '请输入升降级标准', trigger: "blur" }],
condition: [{ required: true, message: '请输入星级有效期延长的条件', trigger: "blur" }],
},
......@@ -134,8 +154,7 @@ export default {
};
},
mounted() {
this.msg.lotteryId = this.$route.query.lotteryId;
// this.getList();
this.getList();
},
filters: {
},
......@@ -144,7 +163,7 @@ export default {
//获取数据
getList() {
this.loading = true;
this.apiJavaPost("/api/sell/lottery/getLotteryAwardList", this.msg, res => {
this.apiJavaPost("/api/member/getmemberrate", this.msg, res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
......
......@@ -161,7 +161,7 @@
</div>
</td>
<td>
<template v-for='(sitem,sindex) in item.ScenicStatisticsList'>
<template v-for='(sitem,sindex) in item.DiningSummaryList'>
{{sitem.Remarks}}
</template>
</td>
......
......@@ -1170,7 +1170,16 @@ export default {
meta: {
title: '购物报账'
},
}, {
},
{
path: '/ShoppingReimbursement2', //分公司购物报账
name: 'ShoppingReimbursement2',
component: resolve => require(['@/components/ShoppingStore/ShoppingReimbursement2'], resolve),
meta: {
title: '分公司购物报账'
},
},
{
path: '/ShoppingReimbursementDetails', //购物报账 详情
name: 'ShoppingReimbursementDetails',
component: resolve => require(['@/components/ShoppingStore/ShoppingReimbursementDetails'], resolve),
......
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