Commit 4002ddfb authored by 吴春's avatar 吴春
parents fa8448db 48bc4e38
......@@ -26,6 +26,8 @@
<span v-if="IsOperation==1" style="color:red;font-size:14px;">已制单,不能在修改!</span>
</li>
</ul>
税别计算: 单价 * (预订人数-免减人数) * (1 + 0.08 - 返佣比例 / 100) <br/>
税入计算: 单价 * (预订人数-免减人数) * (1 - 返佣比例 / 100)
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
......
......@@ -132,28 +132,34 @@
</table>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
<tr>
<th colspan="22" class="bgwhite">酒店使用</th>
<th colspan="22" class="bgwhite">酒店使用 </th>
</tr>
<tr>
<th colspan="22" class="bgwhite">
税别计算: 单价 * (预订人数-免减人数) * (1 + 0.08 - 返佣比例 / 100) <br />
税入计算: 单价 * (预订人数-免减人数) * (1 - 返佣比例 / 100)
</th>
</tr>
<tr class="title">
<th width="90">使用时间</th>
<th width="150">酒店名称</th>
<th width="70">占床<br/>不占床</th>
<th width="70">实际<br/>用房数</th>
<th width="70">房间<br/>类型</th>
<th width="70">占床<br />不占床</th>
<th width="70">实际<br />用房数</th>
<th width="70">房间<br />类型</th>
<th width="70">房间数</th>
<th width="60">预定<br/>人数</th>
<th width="60">免费<br/>人数</th>
<th width="60">预定<br />人数</th>
<th width="60">免费<br />人数</th>
<th width="60">单价/人</th>
<th width="60">金额<br/>小计</th>
<th width="60">返佣<br/>类型</th>
<th width="60">金额<br />小计</th>
<th width="60">返佣<br />类型</th>
<th width="60">返佣</th>
<th width="60">返佣<br/>金额</th>
<th width="60">返佣<br />金额</th>
<th width="60">入汤税</th>
<th width="60">城市税</th>
<th width="60">停车费</th>
<th width="60">税入<br/>税别</th>
<th width="60">税入<br />税别</th>
<th width="60">总金额</th>
<th width="60">付款<br/>方式</th>
<th width="60">付款<br />方式</th>
<th width="100">供应商</th>
<th width="100">状态</th>
<th width="100">备注</th>
......@@ -161,7 +167,8 @@
<template v-for='(outItem,outIndex) in list.HotelOrderListReport'>
<template v-for="(subItem,subIndex) in outItem.HotelOrderList">
<tr v-for="(childItem,childIndex) in subItem.OrderDetailsList">
<td v-if="childIndex==0&&subIndex==0" :rowspan="6*outItem.HotelOrderList.length" style="white-space:nowrap; ">{{outItem.UseTimeStr}}
<td v-if="childIndex==0&&subIndex==0" :rowspan="6*outItem.HotelOrderList.length"
style="white-space:nowrap; ">{{outItem.UseTimeStr}}
</td>
<td v-if="childIndex==0" :rowspan="6" style="text-align:left; ">{{subItem.HotelName}}
<p class="cursorpointer" style="margin-top:5px;color: blue;">
......@@ -224,26 +231,26 @@
{{childItem.RebateRatio}} %
</td>
<td style="white-space:nowrap; ">
<!--含税-->
<template v-if="subItem.RebateType==1">
<!--税别-->
<template v-if="subItem.TaxType==2">
{{ (childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + 0.08 )*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<template v-else>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2) }}
</template>
<!--含税-->
<template v-if="subItem.RebateType==1">
<!--税别-->
<template v-if="subItem.TaxType==2">
{{ (childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + 0.08 )*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<!--不含税-->
<template v-else>
<!--税别-->
<template v-if="subItem.TaxType==2">
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + 0.08)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<template v-else>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2) }}
</template>
</template>
<!--不含税-->
<template v-else>
<!--税别-->
<template v-if="subItem.TaxType==2">
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + 0.08)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<template v-else>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
</template>
</td>
<td v-if="childIndex==0" :rowspan="6">
{{subItem.InTangTax}}
......
......@@ -27,126 +27,132 @@
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle" :style="{height: boxHeight + 'px'}">
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle"
:style="{height: boxHeight + 'px'}">
<table border="0" cellspacing="1" cellpadding="0" class="bookDinnerStatisticsTalbe" v-loading='loading'>
<tr>
<th width="50">序号</th>
<th width="80">出发地</th>
<th width="80">航班时间</th>
<th width="80">公司团号</th>
<th width="110">序号</th>
<th width="100">出发地</th>
<th width="120">航班时间</th>
<th width="140">公司团号</th>
<th width="120">机位总数/已收客数</th>
<th v-for='item in thLengthTitle'>{{item}}</th>
<th>备注</th>
<th>操作</th>
<th width="120">时间</th>
<th width="130">餐厅名称</th>
<th width="100">用餐类型</th>
<th width="100"></th>
<th width="100"></th>
<th width="100"></th>
<th width="100">操作</th>
</tr>
<tbody v-for="(outItem,outindex) in list" :class="{bookDinnerStatisticsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<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>0' class="w100">{{outItem.NewCombinationNum}}</div>
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
</td>
<td>
<div class="w120">
{{item.FlightDate}}
<el-popover popper-class="bookDinnerStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</el-popover>
</div>
</td>
<td>
<div class="w120 link">
<p v-for='xx in stringToArr(item.TCNUMS)' @click="goUrlT('productQuery',xx,'产品查询')">{{xx}}</p>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td v-for="x in item.CommonReport.DiningList" style="vertical-align: top;">
<div style="width:350px;">
<table v-if="x.UseTimeStr" class="DiningTable" width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<th width="12%">{{x.UseTimeStr.substring(5)}}</th>
<th width="10%"></th>
<th width="10%"></th>
<th width="10%"></th>
<th width="15%">支付</th>
<th>餐厅</th>
</tr>
<tr v-for="s in x.DiningSummaryList">
<td>{{s.UseDinnerTypeStr}}</td>
<td v-for="t in s.DiningPriceList">{{t.PeoplePrice}}</td>
<td>{{s.PayStyleStr}}</td>
<template v-for="(outItem,outindex) in DataList">
<tbody :class="{bookDinnerStatisticsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<template v-for="(subItem,subIndex) in item.CommonReport.DiningList">
<template v-for="(thirdItem,thirdIndex) in subItem.DiningSummaryList">
<tr>
<td :rowspan="outItem.rootRowspan" v-if='index==0&&subIndex==0&&thirdIndex==0'>
{{outItem.NewCombinationNum}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.StartCityNames}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<td><span v-if="s.IsFeature==1" style="color:red;">{{s.DiningName}}</span> <span
v-else>{{s.DiningName}}</span></td>
</tr>
</table>
</div>
</td>
<td>
<div class="w200">
{{item.Remarks}}
</div>
</td>
<td>
<div class="w80 link">
<p @click="goUrl('bookDinnerStatisticsDetails',item,outItem,'订餐详情')">详情</p>
</div>
</td>
</tr>
<tr>
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div>
</td>
</tr>
</template>
</tbody>
{{item.FlightDate}}
<el-popover popper-class="bookDinnerStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情
</el-button>
</el-popover>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w150 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}({{item.TCID}})</p>
</div>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td :rowspan="subItem.DiningSummaryList.length" v-if='thirdIndex==0'>
{{subItem.UseTimeStr}}
</td>
<td style="text-align:left;padding-left:3px;">
{{thirdItem.DiningName}}
</td>
<td>
{{thirdItem.UseDinnerTypeStr}}
</td>
<td>
<!--大人-->
<template v-for="lastItem in thirdItem.DiningPriceList"
v-if="lastItem.PeopleType==1">{{lastItem.PeoplePrice}}</template>
</td>
<td>
<!--中学生-->
<template v-for="lastItem in thirdItem.DiningPriceList"
v-if="lastItem.PeopleType==2">{{lastItem.PeoplePrice}}</template>
</td>
<td>
<!--小学生-->
<template v-for="lastItem in thirdItem.DiningPriceList"
v-if="lastItem.PeopleType==3">{{lastItem.PeoplePrice}}</template>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w80 link">
<p @click="goUrl('bookDinnerStatisticsDetails',item,outItem,'订餐详情')">详情</p>
</div>
</td>
</tr>
<tr
v-if="subIndex== item.CommonReport.DiningList.length-1 && thirdIndex==subItem.DiningSummaryList.length-1">
<td :colspan="11" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div>
</td>
</tr>
</template>
</template>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
......@@ -161,7 +167,7 @@
loading: false,
msg: {
pageIndex: 1,
pageSize: 10,
pageSize: 5,
SelectType: 2,
LineId: 14,
LineteamId: "-1",
......@@ -173,7 +179,7 @@
LineList: [],
LineTeamList: [],
thLengthTitle: [],
list: [],
DataList: [],
colspanTotal: 0,
boxHeight: 0,
}
......@@ -235,7 +241,7 @@
}
})
},
goUrl(path, obj,outItem, title) {
goUrl(path, obj, outItem, title) {
this.$router.push({
name: path,
query: {
......@@ -263,27 +269,23 @@
this.loading = false
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
this.list = res.data.data.pageData.data;
this.thLengthArr = [];
this.thLengthTitle = [];
this.colspanTotal = res.data.data.pageData.columnsCount + 6;
for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.thLengthTitle.push('第' + i + '天');
}
this.list.forEach(outItem => {
var sourceData = res.data.data.pageData.data;
sourceData.forEach(outItem => {
var rootRowspan = 0; //合团跨行
outItem.StaticsReportList.forEach(item => {
if (item.CommonReport.DiningList.length < res.data.data.pageData.columnsCount) {
let _cha = res.data.data.pageData.columnsCount - item.CommonReport.DiningList.length;
let _chaArr = new Array();
for (let i = 0; i < _cha; i++) {
_chaArr.push({
'HotelName': ''
});
}
item.CommonReport.DiningList = item.CommonReport.DiningList.concat(_chaArr);
}
var itemRowSpan = 0; //餐厅跨行
item.CommonReport.DiningList.forEach(thirdItem => {
thirdItem.DiningSummaryList.forEach(lastItem => {
rootRowspan++;
itemRowSpan++;
});
});
item.itemRowSpan = itemRowSpan;
});
rootRowspan += outItem.StaticsReportList.length;
outItem.rootRowspan = rootRowspan;
});
this.DataList = sourceData;
this.$forceUpdate()
} else {
this.$message.error(res.data.message);
......@@ -300,14 +302,14 @@
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
let width = window.innerWidth - 50
let height = window.innerHeight - 65 - 164
console.log(height)
let width = window.innerWidth - 50;
let height = window.innerHeight - 65 - 164;
this.boxHeight = height;
this.offsetwidth = width
this.offsetwidth = width;
this.getList()
},
}
</script>
<style>
......@@ -438,6 +440,7 @@
border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc;
}
/* .bookDinnerStatisticsTalbe tr td .DiningTable tr:last-child >td{
border-bottom:0;
} */
......
......@@ -10,7 +10,7 @@
</div>
<div>
<p>{{datainfo.CustomerName}}</p>
<p style="color:#7F8593;font-size:14px">{{datainfo.Contact}}</p>
<p style="color:#7F8593;font-size:14px;padding:6px 0">{{datainfo.Contact}}</p>
</div>
</div>
</div>
......@@ -112,14 +112,14 @@
</div>
<div>
<el-row :gutter="23" justify="space-between">
<el-col :span="18">
<el-col :span="16">
<p style="margin-top:6px">
<!-- 数据是:{{datainfo.totalYearPrice/item.Money>1?100:(datainfo.totalYearPrice/item.Money)*100}} -->
<el-progress :color="colorMethod(item)" :show-text="false" :stroke-width="12" :percentage="datainfo.totalYearPrice/item.Money>1?100:(datainfo.totalYearPrice/item.Money)*100"></el-progress>
</p>
</el-col>
<el-col :span="6">
<el-col :span="8">
<span v-if="item.ActivateState==2"><img style="width:20px;height:20px" src="../../assets/img/saleRank/gou.png" alt=""></span>
<span style="font-size:14px;font-weight:bold;color:#2C3343" v-if="item.ActivateState==0">未开启</span>
<span style="font-size:14px;font-weight:bold;color:#2C3343" v-if="item.ActivateState==1">还差 ¥{{item.PriceSpread}}满足</span>
......@@ -137,7 +137,7 @@
<div v-for="(item,index) in datainfo.LineIdList" :key="index+100" class="circleItem">
<div style="height:126px;position:relative">
<div class="Linetext">
<p style="font-size:34px">{{Number(item.Total)}}<span style="font-size:14px"></span></p>
<p style="font-size:34px">{{Number(item.Total)}}<span style="font-size:14px">%</span></p>
<p style="font-size:14px">{{item.TypeName}}</p>
</div>
<el-progress :color="item.color" :show-text="false" type="circle" :stroke-width="16" :percentage="Number(item.Total)"></el-progress>
......
......@@ -108,10 +108,39 @@
<el-select filterable v-model='msg.Type' placeholder="请选择">
<el-option label="不限" value='0'></el-option>
<el-option label='收入' value='1'></el-option>
<el-option label='扣' value='2'></el-option>
<el-option label='扣' value='2'></el-option>
</el-select>
</span>
</li>
<li>
<span><em>线路</em>
<el-select filterable v-model='msg.LineId' placeholder="请选择">
<el-option label="不限" value=""></el-option>
<el-option v-for="(item,index) in LineList" :key="index+300" :label="item.LineName" :value="item.LineID"></el-option>
</el-select>
</span>
</li>
<li>
<span><em>公司</em>
<el-select filterable v-model='msg.RB_Branch_Id' placeholder="请选择">
<el-option
v-for="item in companyList"
:label="item.BName"
:value="item.Id"
:key="item.Id"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>销售</em>
<el-select v-model="msg.EmployeeId" filterable placeholder="请选择">
<el-option label="不限" value=""></el-option>
<el-option v-for="item in employee" :key="item.employeeId" :label="item.name" :value="item.employeeId"></el-option>
</el-select>
</span>
</li>
<li>
<span><em>日期</em>
<el-date-picker
......@@ -135,6 +164,7 @@
<th>门店名称</th>
<th>类型</th>
<th>金额</th>
<th>所属团</th>
<th>描述</th>
<th>时间</th>
<th>历史余额</th>
......@@ -144,16 +174,17 @@
<td>{{item.CustomerName}}({{item.Contact}})</td>
<td>
<span>{{item.Type==1?"收入":"扣"}}</span>
<span>{{item.Type==1?"收入":"扣"}}</span>
</td>
<td>{{item.Money}}</td>
<td><span style="cursor:pointer" @click="Gourl(item)">{{item.TCNUM}}</span></td>
<td>{{item.Description}}</td>
<td>{{item.UpdateTime}}</td>
<td>{{item.AccountMoney}}</td>
</tr>
<tr v-if='DataList.length==0'>
<td colspan="6" align="center">暂无数据</td>
<td colspan="7" align="center" style="text-align: center">暂无数据</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
......@@ -180,11 +211,21 @@
OrderSource:"",
StartTime:"",
EndTime:"",
LineId:"",
EmployeeId:"",
RB_Branch_Id:"",
},
currentPage:1,
DataList:[],
dateList:[],
LineList:[],
getCompanyMsg: {
RB_Group_Id: "0",
Status: "0"
},
companyList:[],
employee:[],
}
},
created(){
......@@ -196,8 +237,57 @@
let userInfo = this.getLocalStorage();
this.getList();
this.getLineList();
this.getCompanyList();
this.getEmployee();
},
methods: {
getCompanyList() {
let userInfo = this.getLocalStorage();
let RB_Group_id = userInfo.RB_Group_id;
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
}
this.apipost('admin_get_BranchGetList', msg, res => {
if (res.data.resultCode == 1) {
this.companyList = [{
Id: '-1',
BName: '不限'
}];
res.data.data.forEach(x => {
var obj = {
Id: '',
BName: ''
}
obj.Id = x.Id.toString();
obj.BName = x.BName;
this.companyList.push(obj);
})
}
}, err => {})
},
Gourl(item){
this.$router.push({ name:"groupTourOrderByTuan",query:{"id":item.TCID,"tcmun":item.TCNUM,blank: 'y'} })
},
getEmployee(){
this.apiJavaPost("/api/user/employee/getAllSalesList",{}, res => {
if (res.data.resultCode === 1) {
this.employee=res.data.data;
} else {
this.Error(res.data.message)
}
}, null);
},
getLineList() {
this.apipost("line_post_GetAllList_V2", {LineDirection: 0}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
getList() { //获取数据
if(this.dateList){
this.msg.StartTime=this.dateList[0];
......
......@@ -7,7 +7,7 @@
z-index: 50; bottom:0;left: 0;border-top:3px solid #38425d;background-color:#f9f9f9; padding: 10px;width: 100%;min-width: 1146px;}
.page_MyCustomer .edHeightOne{display: block!important;height: 450px;}
.page_MyCustomer ._mc_list{overflow-x: auto; background: #fff; padding-top: 20px; padding-left: 15px;}
.page_MyCustomer ._mc_list>ul>li{padding: 20px 20px 0 20px;width: 260px;box-sizing: border-box; height:348px;
.page_MyCustomer ._mc_list>ul>li{padding: 20px 20px 0 20px;width: 260px;box-sizing: border-box; height:386px;
float: left;border: 1px solid #F1F2F5;background: #fff; margin-right:10px;margin-bottom: 20px; border-radius: 10px; position: relative; cursor: pointer;}
.page_MyCustomer ._mc_list>ul>li:hover{box-shadow:0px 0px 10px rgba(191,191,191,1);transition: all linear 0.3s;}
.page_MyCustomer ._mc_list>ul>li .iconDelete{cursor: pointer; display: none; position: absolute; top: -4px; right: 0; color: #E95252; z-index: 5; }
......@@ -72,8 +72,14 @@
}
.xqBtn{
background: #09D49D;
padding:2px 6px;
color:#fff!important;
width: 100%;
display: inline-block;
border-radius: 4px;
font-size: 14px;
height: 38px;
line-height: 38px;
text-align: center;
}
</style>
<template>
......@@ -130,18 +136,26 @@
<p class="_other" v-if="item.customerVisitList[1]">最近拜访:{{item.customerVisitList[1].visitDateTime}}</p>
<p class="_other" v-else>最近拜访:暂无</p>
<p class="_other">累计拜访:{{item.visiteCount}}</p>
<p class="_fist_n">幸福存折 <span> {{item.cL_Balance}}</span></p>
</div>
<div class="_record" v-else>
<p class="_fist_n" v-if="item.customerVisitList.length>0">近期约访:{{item.customerVisitList[0].visitDateTime}}</p>
<p class="_fist_n" v-else>近期约访:暂无</p>
<p class="_other_n" v-if="item.customerVisitList[1]">最近拜访:{{item.customerVisitList[1].visitDateTime}}</p>
<p class="_other_n" v-else>最近拜访:暂无</p>
<p class="_fist_n">幸福存折 <span> {{item.cL_Balance}}</span></p>
</div>
<div class="_bt">
<p>累计交易额度 <span> {{item.tradeTotal}}</span>
<span class="xqBtn" @click.stop="goUrC('CustomerAnalysis',item.customerId)">详情</span>
</p>
<p>询价与需求 <span> {{item.inquireCount}}</span></p>
<el-row :gutter="24">
<el-col :span="18">
<p>累计交易额度 <span> {{item.tradeTotal}}</span></p>
<p>询价与需求 <span> {{item.inquireCount}}</span></p>
</el-col>
<el-col :span="6" style="text-align:right;padding:0">
<span class="xqBtn" @click.stop="goUrC('CustomerAnalysis',item.customerId)">详情</span>
</el-col>
</el-row>
</div>
</li>
<div class="clearfix"></div>
......
<style scoped>
.departmentTreeStyleCont {
padding-top: 20px;
display: flex;
height: 100%;
}
.departmentTreeStyleCont .departmentTreeStyle {
background: #fff;
padding: 20px;
flex: 0 1 400px;
min-height: 800px;
}
.departmentTreeStyleCont .departmentTreeStyle > p {
font-size: 14px;
margin-bottom: 15px;
color: #333;
font-weight: bold;
height: 14px;
line-height: 14px;
border-left: 3px solid #E95252;
text-indent: 20px;
}
.departmentTreeStyleCont .departmentTreeStyle .spanIcon {
padding-left: 20px;
display: none
}
.departmentTreeStyleCont .departmentTreeStyle .el-tree-node__content {
height: 32px;
line-height: 32px;
font-size: 12px
}
.TreeSpan img {
width: 24px;
height: 24px;
border-radius: 12px;
vertical-align: sub;
margin-right: 3px;
}
.departmentTreeStyleCont .departmentTreeStyle .el-tree-node__content:hover .spanIcon {
display: inline-block
}
.departmentTreeStyleCont .departmentTreeStyle .el-tree-node__content:hover .spanIcon i {
font-size: 14px !important;
color: #999;
margin-right: 2px;
}
.departmentTreeStyleCont .departmentTreeStyle .el-tree-node__content:hover .spanIcon i:hover {
color: #E95252;
}
.departmentTreeStyleCont .departmentTreeLayer > p {
font-size: 14px;
margin-bottom: 15px;
color: #333;
font-weight: bold;
height: 14px;
line-height: 14px;
border-left: 3px solid #E95252;
text-indent: 20px;
}
.departmentTreeStyleCont .departmentTreeLayer {
background: #fff;
min-height: 300px;
padding: 20px;
margin-left: 20px;
flex: auto
}
.departmentTreeStyleCont .el-date-editor.el-input,
.departmentTreeStyleCont .el-date-editor.el-input__inner {
width: auto !important;
}
</style>
<template>
<div class="flexOne">
<div style="text-align:right;padding:10px">
<input type="button" class="hollowFixedBtn" value="新增" @click="add"/>
</div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading='loading'>
<tr>
<th>金额</th>
<th>返佣比例</th>
<th>操作人姓名</th>
<th>操作时间</th>
<th>操作</th>
</tr>
<tr v-for="(item,index) in DataList" :key="index+500">
<td>{{item.Money}}</td>
<td>{{item.Ratio}}</td>
<td>{{item.UpdateByName}}</td>
<td>{{item.UpdateTime}}</td>
<td>
<el-tooltip
class="item"
effect="dark"
content="编辑"
placement="top-start"
>
<el-button
type="primary" icon="el-icon-edit"
circle
@click="Edit(item)"
>
</el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="删除"
placement="top-start"
>
<el-button @click="Delete(item)" type="danger" icon="el-icon-delete" circle></el-button>
</el-tooltip>
</td>
</tr>
<tr v-if='DataList.length==0'>
<td colspan="6" align="center">暂无数据</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> -->
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="400px">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
<el-form-item label="金额" prop="Money">
<el-input v-model="ruleForm.Money" @keyup.native="checkPrice(ruleForm,'Money')"></el-input>
</el-form-item>
<el-form-item label="返佣比例(‰)" prop="Ratio">
<el-input v-model="ruleForm.Ratio" @keyup.native="checkPrice(ruleForm,'Ratio')"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="danger" @click="submitForm('ruleForm')">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
dialogVisible:false,
loading: true,
//分页
total: 0,
pageSize: '',
currentPage:1,
DataList:[],
dateList:[],
rules: {
Money: [
{ required: true, message: '请输入金额', trigger: 'blur' },
],
Ratio: [
{ required: true, message: '请输入返佣比例', trigger: 'blur' },
],
},
ruleForm:{
Id:0,
Money:"",
Ratio:"",
},
}
},
created(){
},
mounted() {
let userInfo = this.getLocalStorage();
this.getList();
},
methods: {
Delete(item){
this.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('customer_post_DelCustomerCommissionRatio', {Id:item.Id}, res => {
if (res.data.resultCode == 1) {
this.getList();
this.dialogVisible=false;
this.Success(res.data.message)
} else {
this.Success(res.data.message)
}
}, err => {
})
}).catch(() => {
});
},
Edit(item){
this.ruleForm={
Id:item.Id,
Money:item.Money,
Ratio:item.Ratio,
}
this.dialogVisible=true;
},
add(){
this.ruleForm={
Id:0,
Money:"",
Ratio:"",
}
this.dialogVisible=true;
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.apipost('customer_post_SetCustomerCommissionRatio', this.ruleForm, res => {
if (res.data.resultCode == 1) {
this.getList();
this.dialogVisible=false;
this.$refs["ruleForm"].resetFields();
} else {
}
}, err => {
})
} else {
}
});
},
getList() { //获取数据
this.loading = true;
this.apipost('customer_post_GetCustomerCommissionRatioList', {}, res => {
this.loading = false
if (res.data.resultCode == 1) {
this.DataList = res.data.data;
this.total = res.data.data.count;
} else {
}
}, err => {
})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1
},
}
}
</script>
......@@ -94,12 +94,13 @@
<!--<label><input type="checkbox" v-model="isCkedAll" @click='checkedAll()' style="vertical-align: middle;"/>门店名称</label>-->
</th>
<th width="10%">联系人</th>
<th width="15%">联系电话</th>
<th width="10%">联系电话</th>
<th width="20%">地址</th>
<th width="8%">所属销售</th>
<th width="8%">客户状态</th>
<th width="5%">幸福存折</th>
<th width="10%">备注</th>
<th width="10%">操作</th>
<th width="12%">操作</th>
</tr>
<tr>
<td colspan="8" align="center" v-show="list.length==0">暂无数据</td>
......@@ -126,7 +127,9 @@
<td>{{item.Address}}</td>
<td>{{item.EmName}}</td>
<td>{{valueToWord(item.CustomerStatus)}}</td>
<td>{{item.CL_Balance}}</td>
<td>{{item.Remark}}</td>
<td>
<el-tooltip effect="dark" content="转交" placement="top-start">
<el-popover width="280" popper-class="pd20" trigger="click">
......@@ -228,6 +231,14 @@
>
</el-button>
</el-tooltip>
<el-tooltip
class="item"
effect="dark"
content="详情"
placement="top-start"
>
<el-button @click="getUrl(item)" type="success" icon="iconfont icon-nav-xiaoshou" circle></el-button>
</el-tooltip>
</td>
</tr>
</table>
......@@ -561,6 +572,9 @@ export default {
};
},
methods: {
getUrl(item){
this.$router.push({ name:"CustomerAnalysis",query:{"customerId":item.CustomerIdS,blank: 'y'} })
},
updateData: function(obj) {
this.apipost(
"app_customer_GetLeaderCustomerInfo",
......
......@@ -47,162 +47,157 @@
:style="{height: boxHeight + 'px'}">
<table border="0" cellspacing="1" cellpadding="0" class="busStatisticsTalbe" v-loading='loading'>
<tr>
<th class="w100">序号</th>
<th width="110">出发地</th>
<th width="110">酒店</th>
<th width="150">航班时间</th>
<th width="100">序号</th>
<th width="80">出发地</th>
<th width="80">酒店</th>
<th width="110">航班时间</th>
<th width="150">公司团号</th>
<th width="100">线路负责人</th>
<th width="80">线路<br />负责人</th>
<th width="70">进出点</th>
<th width="80">机位总数<br />(Y/E/F)</th>
<th width="70">机位总数<br />(Y/E/F)</th>
<th width="80">领队</th>
<th width="80">导游</th>
<th width="150">车型</th>
<th width="100" v-for='item in thLengthTitle'>{{item}}</th>
<th width="150">车辆状态</th>
<th width="150">车费总计</th>
<th width="80">车型</th>
<th width="100">时间</th>
<th width="80">类型</th>
<th width="80">状态</th>
<th width="80">车辆状态</th>
<th width="80">车费总计</th>
<th width="80">配车天数</th>
<th width="120">操作</th>
<th width="100">操作</th>
</tr>
<tbody v-for="(outItem,outindex) in DataList" :class="{splitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<tr>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div class="w100">{{outItem.NewCombinationNum}}</div>
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
</td>
<td>
<el-popover width="750" trigger="click" popper-class="Bus_HotelPop">
<commonHotelInfo :HotelObj="item.CommonReport.PriceHotelResult" :showHotelObj="showHotelObj">
</commonHotelInfo>
<div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;">酒店信息</div>
</el-popover>
</td>
<td>
<div class="w120">
{{item.FlightDate}}
<el-popover popper-class="busStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</el-popover>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div>
</td>
<td>
<div class="w80">{{item.CreateByName}}</div>
</td>
<td>
<div class="w80">{{item.InOut}}</div>
</td>
<td>
<div class="w100 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td>
<div class="w80">{{item.LeaderName}}</div>
</td>
<td>
<div class="w80">{{item.GuideName}}</div>
</td>
<td>
<div class="w80">
<template v-if="item.CommonReport&&item.CommonReport.BusPlanListReport&&item.CommonReport.BusPlanListReport.length>0&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0]">
{{item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0].MainBusTypeStr}}
</template>
</div>
</td>
<td v-for="(x,ww) in item.CommonReport.BusPlanListReport" style="vertical-align: top;">
<div class="w100">
<template v-if="x.BusPlanOrderList" v-for="(childItem,childIndex) in x.BusPlanOrderList">
<p class="pDateStyle" v-if="childIndex==0"> {{childItem.PlanDateStr}}</p>
<p class="pDateStyle">
{{(childItem.AirportPickUpStr!=""?childItem.AirportPickUpStr:"") }}
<span style="color: #4BCA81;" v-if="(childItem.AirportPickUpStr!='')"></span>
<span style="color: #E95252;" v-else>X</span>
<template v-if="x.BusPlanOrderList.length>1 && x.BusPlanOrderList.length-1!=childIndex">
<br />
<template v-for="(outItem,outindex) in DataList">
<tbody :class="{splitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<template v-for="(subItem,subIndex) in item.CommonReport.BusPlanListReport">
<template v-for="(thirdItem,thirdIndex) in subItem.BusPlanOrderList">
<tr>
<td :rowspan="outItem.rootRowspan" v-if='index==0&&subIndex==0&&thirdIndex==0'>
{{outItem.NewCombinationNum}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.StartCityNames}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<el-popover width="950" trigger="click" popper-class="Bus_HotelPop">
<commonHotelInfo :HotelObj="item.CommonReport.PriceHotelResult" :showHotelObj="showHotelObj">
</commonHotelInfo>
<div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;">酒店信息</div>
</el-popover>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.FlightDate}}<br />
<el-popover popper-class="busStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情
</el-button>
</el-popover>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')"
style="cursor:pointer;text-decoration:underline;">{{item.TCNUMS}}({{item.TCID}})</p>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.CreateByName}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.InOut}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')"
style="cursor:pointer;text-decoration:underline;">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.LeaderName}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.GuideName}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<template
v-if="item.CommonReport&&item.CommonReport.BusPlanListReport&&item.CommonReport.BusPlanListReport.length>0&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0]">
{{item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0].MainBusTypeStr}}
</template>
</p>
</template>
</div>
</td>
<td v-for="is in item.isCha"></td>
<td>
<div class="w80 fbold fz16">
<span style="color: #E95252;" v-if="item.CommonReport.BusOrderState==-1">X</span>
<span style="color: #ff6600;" v-else-if="item.CommonReport.BusOrderState==0">O</span>
<span style="color: #4BCA81;" v-else-if="item.CommonReport.BusOrderState==1"></span></div>
</td>
<td>
<div class="w150">
{{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
</div>
</td>
<td>
<div class="w100">
{{GetPeiChe(item.CommonReport.BusPlanListReport)}}
</div>
</td>
<td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
<div class="w100 link">
<span @click="goUrlX('BusInfo',item,outItem,'车配信息')">详情</span>
<span @click="GoDownLoad(outItem)">手配书</span>
</div>
</td>
</tr>
<tr>
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="item.DMCRemark!=''" class="colorE95252">地接备注:{{item.DMCRemark}}</div>
<div v-show="item.OPRemark!=''" class="colorE95252"> OP备注(对外):{{item.OPRemark}}</div>
<div v-show="item.OPInnerRemark!=''" class="colorE95252">OP备注(对内):{{item.OPInnerRemark}}</div>
</div>
</td>
</tr>
</template>
</tbody>
</td>
<td :rowspan="subItem.BusPlanOrderList.length" v-if='thirdIndex==0'>
{{subItem.UseTimeStr}}
</td>
<td>
{{thirdItem.AirportPickUpStr}}
</td>
<td>
<span style="color: #4BCA81;" v-if="(thirdItem.AirportPickUpStr!='')"></span>
<span style="color: #E95252;" v-else>X</span>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w80 fbold fz16">
<span style="color: #E95252;" v-if="item.CommonReport.BusOrderState==-1">X</span>
<span style="color: #ff6600;" v-else-if="item.CommonReport.BusOrderState==0">O</span>
<span style="color: #4BCA81;" v-else-if="item.CommonReport.BusOrderState==1"></span>
</div>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{GetPeiChe(item.CommonReport.BusPlanListReport)}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<span @click="goUrlX('BusInfo',item,outItem,'车配信息')"
style="cursor:pointer;text-decoration:underline;">详情</span>
<br />
<br />
<span @click="GoDownLoad(outItem)" style="cursor:pointer;text-decoration:underline;">手配书</span>
</td>
</tr>
<tr
v-if="subIndex== item.CommonReport.BusPlanListReport.length-1 && thirdIndex==subItem.BusPlanOrderList.length-1">
<td :colspan="17" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="item.DMCRemark!=''" class="colorE95252">地接备注:{{item.DMCRemark}}</div>
<div v-show="item.OPRemark!=''" class="colorE95252"> OP备注(对外):{{item.OPRemark}}</div>
<div v-show="item.OPInnerRemark!=''" class="colorE95252">OP备注(对内):{{item.OPInnerRemark}}</div>
</div>
</td>
</tr>
</template>
</template>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
......@@ -220,7 +215,7 @@
total: 0,
msg: {
pageIndex: 1,
pageSize: 10,
pageSize: 5,
SelectType: 4,
LineId: 14,
LineteamId: "-1",
......@@ -406,22 +401,23 @@
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.DataList = res.data.data.pageData.data;
this.thLengthTitle = [];
this.colspanTotal = res.data.data.pageData.columnsCount + 13;
for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.thLengthTitle.push('第' + i + '天');
}
this.DataList.forEach(outItem => {
var sourceData = res.data.data.pageData.data;
sourceData.forEach(outItem => {
var rootRowspan = 0; //合团跨行
outItem.StaticsReportList.forEach(item => {
if (item.CommonReport.BusPlanListReport.length < res.data.data.pageData.data.length) {
item.isCha = res.data.data.pageData.columnsCount - item.CommonReport.BusPlanListReport
.length;
} else {
item.isCha = 0;;
}
})
var itemRowSpan = 0; //车辆跨行
item.CommonReport.BusPlanListReport.forEach(thirdItem => {
thirdItem.BusPlanOrderList.forEach(lastItem => {
rootRowspan++;
itemRowSpan++;
});
});
item.itemRowSpan = itemRowSpan;
});
rootRowspan += outItem.StaticsReportList.length;
outItem.rootRowspan = rootRowspan;
})
this.DataList = sourceData;
this.$forceUpdate();
} else {
this.Error(res.data.message);
......@@ -438,7 +434,6 @@
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
//this.msg.StartDate = '2019-08-12';
let width = window.innerWidth - 50;
let height = window.innerHeight - 65 - 210;
this.boxHeight = height;
......@@ -460,7 +455,7 @@
}
.busStatisticsTalbe {
background: #ccc;
border-collapse: collapse;
}
.busStatisticsTalbe tr th {
......@@ -473,34 +468,13 @@
.busStatisticsTalbe tr {
background: #fff;
text-align: center;
height: 40px;
}
.busStatisticsTalbe tr td {
font-size: 12px;
}
.busStatisticsTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
min-height: 24px;
line-height: 24px;
margin-top: 0;
box-sizing: content-box;
padding: 0 10px;
}
.busStatisticsTalbe tr td .pDateStyle:last-child {
border-bottom: none;
}
.busStatisticsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.busStatisticsTalbe tr td .link span:hover {
text-decoration: underline;
cursor: pointer;
height: 20px;
line-height: 20px;
border: 1px solid #d2d2d2;
}
.busStatistics_tripDetails {
......
......@@ -30,116 +30,112 @@
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="admissionStatisticsTalbe" v-loading='loading'>
<tr>
<th width="50">序号</th>
<th width="80">出发地</th>
<th width="80">航班时间</th>
<th width="80">公司团号</th>
<th width="120">序号</th>
<th width="100">出发地</th>
<th width="120">航班时间</th>
<th width="140">公司团号</th>
<th width="120">机位总数/(Y/E/F)</th>
<th v-for='item in thLengthTitle'>{{item}}</th>
<th>备注</th>
<th class="w80">操作</th>
<th width="120">日期</th>
<th width="250">景点</th>
<th width="100">操作</th>
</tr>
<tbody v-for="(outItem,outindex) in list" :class="{admissionStatisticsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<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>0' class="w100">{{outItem.NewCombinationNum}}</div>
</td>
<td>
<div class="w80">
{{item.StartCityNames}}
</div>
</td>
<td>
<div class="w80">
{{item.FlightDate}}
<el-popover popper-class="admissionStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
</el-popover>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
</div>
</td>
<td>
<div class="w120 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td v-for="x in item.CommonReport.ScenicList" style="vertical-align: top;">
<div style="width: 100%;">
<p class="pDateStyle" v-if="x.UseTimeStr">{{x.UseTimeStr}}</p>
<p @click="goUrlR('scenicSpotList',s.ID,'景区列表')" class="pMsgStyle phoverStype"
v-for="s in x.ScenicStatisticsList">{{s.ScenicName}}</p>
</div>
</td>
<td>
<div class="w200">
{{item.Remarks}}
</div>
</td>
<td>
<div class="link">
<div class="w80">
<p @click="goUrl('admissionStatisticsDetails',item,outItem,'门票详情')">详情</p>
</div>
</div>
</td>
</tr>
<tr>
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div>
</td>
</tr>
</template>
</tbody>
<template v-for="(outItem,outindex) in DataList">
<tbody :class="{admissionStatisticsSplitTrCss:outindex%2!=0}">
<template v-for="(item,index) in outItem.StaticsReportList">
<template v-for="(subItem,subIndex) in item.CommonReport.ScenicList">
<template v-for="(thirdItem,thirdIndex) in subItem.ScenicStatisticsList">
<tr>
<td :rowspan="outItem.rootRowspan" v-if='index==0&&subIndex==0&&thirdIndex==0'>
{{outItem.NewCombinationNum}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.StartCityNames}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
{{item.FlightDate}}
<el-popover popper-class="admissionStatistics_tripDetails" width="550" trigger="click">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align:center;">
<th width="60">{{$t('Airticket.Air_segment')}}</th>
<th width="80">{{$t('system.query_flightNum')}}</th>
<th width="150">起飞时间</th>
<th width="150">到达时间</th>
<th width="100">经停城市</th>
</tr>
<tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
<td class="_d_name _color_666">
<span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
<span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
<span
v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
</td>
<td>
<div>{{ds.Flight_number}}</div>
<div style="margin-top:5px;">{{ds.AlName}}</div>
</td>
<td>
<div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
<div style="margin-top:5px;">{{ds.dName}}</div>
</td>
<td>
<div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
<div style="margin-top:5px;">{{ds.aName}}</div>
</td>
<td>{{ds.StopoverName}}</td>
</tr>
</table>
<el-button slot="reference" class="normalBtn mt5"
style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情
</el-button>
</el-popover>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w150 link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}({{item.TCID}})</p>
</div>
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="w150 link">
<p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
{{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}
</p>
</div>
</td>
<td :rowspan="subItem.ScenicStatisticsList.length" v-if='thirdIndex==0'>
{{thirdItem.UseTimeStr}}
</td>
<td style="text-align:left;padding-left:3px;">
{{thirdItem.ScenicName}}
</td>
<td :rowspan="item.itemRowSpan" v-if='subIndex==0&&thirdIndex==0'>
<div class="link">
<div class="w80">
<p @click="goUrl('admissionStatisticsDetails',item,outItem,'门票详情')">详情</p>
</div>
</div>
</td>
</tr>
<tr
v-if="subIndex== item.CommonReport.ScenicList.length-1 && thirdIndex==subItem.ScenicStatisticsList.length-1">
<td colspan="7" style="text-align:left; padding-left:5px">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
</div>
</td>
</tr>
</template>
</template>
</template>
</tbody>
</template>
</table>
</div>
<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() {
......@@ -158,15 +154,10 @@
},
LineList: [],
LineTeamList: [],
thLengthTitle: [],
list: [],
colspanTotal: 0,
DataList: [],
}
},
methods: {
stringToArr(str) {
return str.split(',')
},
getLineList() {
this.apipost("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
......@@ -192,16 +183,6 @@
}
);
},
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,
......@@ -212,7 +193,7 @@
}
})
},
goUrl(path, obj,outItem, title) {
goUrl(path, obj, outItem, title) {
this.$router.push({
name: path,
query: {
......@@ -235,31 +216,28 @@
this.currentPage = 1;
},
getList() {
this.loading = true
this.loading = true;
this.apipost('dmcstatistics_post_GetUniteCombinationNumService', this.msg, res => {
this.loading = false
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count
this.list = res.data.data.pageData.data;
this.thLengthTitle = []
this.colspanTotal = res.data.data.pageData.columnsCount + 6
for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
this.thLengthTitle.push('第' + i + '天')
}
this.list.forEach(outItem => {
this.total = res.data.data.count;
var tempData = res.data.data.pageData.data;
tempData.forEach(outItem => {
var rootRowspan = 0; //合团跨行
outItem.StaticsReportList.forEach(item => {
if (item.CommonReport.ScenicList.length < res.data.data.pageData.columnsCount) {
let _cha = res.data.data.pageData.columnsCount - item.CommonReport.ScenicList.length
let _chaArr = new Array()
for (let i = 0; i < _cha; i++) {
_chaArr.push({
'HotelName': ''
})
}
item.CommonReport.ScenicList = item.CommonReport.ScenicList.concat(_chaArr)
}
})
})
var itemRowSpan = 0; //景点跨行
item.CommonReport.ScenicList.forEach(thirdItem => {
thirdItem.ScenicStatisticsList.forEach(lastItem => {
rootRowspan++;
itemRowSpan++;
});
});
item.itemRowSpan = itemRowSpan;
});
rootRowspan += outItem.StaticsReportList.length;
outItem.rootRowspan = rootRowspan;
});
this.DataList = tempData;
} else {
this.$message.error(res.data.message)
}
......@@ -278,6 +256,7 @@
this.getList()
},
}
</script>
<style>
......@@ -305,39 +284,10 @@
.admissionStatisticsTalbe tr td {
font-size: 12px;
}
.admissionStatisticsTalbe tr td .pHouseStyle {
border-bottom: 1px solid #ccc;
height: 20px;
line-height: 20px;
}
.admissionStatisticsTalbe tr td .pHouseStyle:last-child {
border-bottom: none;
}
.admissionStatisticsTalbe tr td .pDateStyle {
border-bottom: 1px solid #ccc;
height: 20px;
line-height: 20px;
margin-top: 0;
}
.admissionStatisticsTalbe tr td .pMsgStyle {
padding: 0 10px;
line-height: 20px;
}
.admissionStatisticsTalbe tr td .link p:hover {
text-decoration: underline;
cursor: pointer;
}
.admissionStatisticsTalbe tr td .phoverStype:hover {
text-decoration: underline;
cursor: pointer;
}
.admissionStatistics_tripDetails {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
......
......@@ -1862,14 +1862,22 @@ export default {
title: '拜访记录'
},
},
{ // 销售 幸福存折
{ // 销售 返佣查询
path: '/HappyPassbook',
name: 'HappyPassbook',
component: resolve => require(['@/components/SalesModule/HappyPassbook'], resolve),
meta: {
title: '幸福存折'
title: '返佣查询'
},
}, { // 销售 统计
},
{ // 销售 返佣比例管理
path: '/Returnratio',
name: 'Returnratio',
component: resolve => require(['@/components/SalesModule/Returnratio'], resolve),
meta: {
title: '返佣比例管理'
},
},{ // 销售 统计
path: '/demandStatistics',
name: 'demandStatistics',
component: resolve => require(['@/components/SalesModule/demandStatistics'], 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