Commit b2b19e8e authored by youjie's avatar youjie

销售 预期销售提成

parent 4af9e597
......@@ -8,15 +8,20 @@
.saleChartCont{width: 100%; height: 95%; box-sizing: border-box;}
.personal{width: 100%;height: 100%;}
.PersonalData{width: 100%;height: 350px;background: white;margin-top: 10px}
.PersonalData_l{width: 100%;height: 350px;overflow-x: auto;padding: 20px}
.PersonalData_l .l_top{width: 700px;height: 100px;}
.PersonalData_l{width: 100%;height: 368px;overflow-x: auto;padding: 20px}
.PersonalData_l .l_top{width: 700px;height: 118px;}
.l_top .tx_img{width: 94px;height: 94px;border-radius: 50%;overflow: hidden;float: left}
.l_top .img{width: 80px;height: 70px;margin-left: 90px;float: left;margin-top: 15px}
.l_top .img{width: 60px;height: 60px;
margin-left: 10px;
/* margin-left: 90px; */
float: left;margin-top: 15px}
.p_name{margin-left: 17px;margin-top: 25px;float: left}
.p_name span:nth-child(1){font-size: 18px;color: #333333;display: block}
.p_name span:nth-child(2){font-size: 12px;color: #333333;margin-top: 5px;display: block}
.l_top .royalty{margin-left: 30px;float: left;margin-top: 17px;display: flex;flex-direction: column}
.l_top .royalty .tc{display: flex;flex-direction: row;align-items: flex-start}
.l_top .royalty .tc{display: flex;
flex-direction: column;
align-items: flex-start}
.l_top .royalty .tc span:nth-child(1){font-size: 14px;color: #333333;margin-top: 8px;margin-right: 5px}
.l_top .royalty .tc span:nth-child(2){font-size: 36px;color: #333333;font-weight: bold}
.order{width: 700px;height: 205px;background: #F5F5F5;margin-top: 5px;padding: 20px}
......
......@@ -26,7 +26,14 @@
<div class="flexOne domesticCommissionUser">
<div>
<ul class="opUl">
<li>
<em>期数</em>
<el-select v-model="msg.PeriodId" size="mini" @change="handleCurrentChange(1)">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="(item,index) in PeriodsList" :key="item.index" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</li>
<li>
<em>人员</em>
<el-select v-model="msg.UserId" size="mini" @change="handleCurrentChange(1)" filterable :disabled='disabled'>
......@@ -68,7 +75,7 @@
</el-select>
</li> -->
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
......@@ -157,8 +164,7 @@
if (this.$route.query && this.$route.query.Type) {
this.msg.Type = this.$route.query.Type
}
this.getList();
// this.getqishilist()
this.getqishilist()
this.getCompanyList()//获取公司
this.getEmployee()//人员
this.getDerpartMent()//部门
......@@ -218,15 +224,17 @@
},
getqishilist() {
this.apipost(
"sellcommission_GetGNCommissionPeriodsList",
"sellcommission_GetDxCommissionPeriodsList",
{},
res => {
if (res.data.resultCode == 1) {
this.PeriodsList = res.data.data;
if (this.PeriodsList && this.PeriodsList.length > 0) {
// this.msg.Periods = Number(this.PeriodsList[0].Id)
if(!this.$route.query.PeriodId||this.$route.query.isSale){
this.msg.PeriodId = this.PeriodsList[0].Id
}
}
this.getList()
} else {
this.Error(res.data.message);
}
......@@ -247,7 +255,7 @@
PeriodId: this.$route.query.PeriodId,
UserId:item.UserId,
RB_Branch_Id:item.RB_Branch_Id,
RB_Department_Id:item.RB_Department_Id,
RB_Department_Id:item.RB_Department_Id,
blank: 'y',
Type: this.msg.Type,
tab: '单项服务提现详情',
......@@ -275,4 +283,4 @@
}
}
</script>
\ No newline at end of file
</script>
......@@ -58,7 +58,7 @@
flex: 1;
display: flex;
flex-direction: row;
}
.relative-position{
flex: 1;
......@@ -89,7 +89,7 @@
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.sanjiao {
width: 0;
......@@ -128,13 +128,13 @@
<ul class="opUl">
<li>
<em>出团公司</em>
<el-select filterable size="mini" v-model='msg.OutBranchId'
<el-select filterable size="mini" v-model='msg.OutBranchId'
@change='handleCurrentChange(1)' :disabled="disabled">
<el-option label="不限" :value="-1" :key="-1"></el-option>
<el-option
v-for="item in companyList"
:label='item.BName'
:value='item.Id'
:label='item.BName'
:value='item.Id'
:key='item.Id'
></el-option>
</el-select>
......@@ -149,24 +149,24 @@
</li>
<li>
<em>所属公司</em>
<el-select filterable size="mini" v-model='msg.RB_Branch_Id'
<el-select filterable size="mini" v-model='msg.RB_Branch_Id'
@change='getDepartment();handleCurrentChange(1)' :disabled="disabled">
<el-option label="不限" :value="-1" :key="-1"></el-option>
<el-option
v-for="item in companyList"
:label='item.BName'
:value='item.Id'
:label='item.BName'
:value='item.Id'
:key='item.Id'
></el-option>
</el-select>
</li>
<li>
<em>部门</em>
<el-select filterable size="mini" v-model='msg.RB_Department_Id'
<el-select filterable size="mini" v-model='msg.RB_Department_Id'
@change='getEmployee();handleCurrentChange(1)'>
<el-option label="不限" :value="-1"></el-option>
<el-option v-for='item in departmentList'
<el-option v-for='item in departmentList'
:label='item.DepartmentName'
:value='item.DepartmentID'
:key='item.DepartmentID'>
......@@ -175,7 +175,7 @@
</li>
<li>
<em>人员</em>
<el-select v-model="msg.UserId" size="mini"
<el-select v-model="msg.UserId" size="mini"
@change="handleCurrentChange(1)" :disabled="disabled" filterable>
<el-option label="不限" :value="-1"></el-option>
<el-option label="微途" :value="-2"></el-option>
......@@ -183,12 +183,12 @@
:value="item.empId"></el-option>
</el-select>
</li>
<!-- <li style="position: fixed;right: 0;top: 51px;">
<input type="button" class="normalBtn" value="导出" @click="exportExcel">
</li> -->
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
......@@ -240,7 +240,7 @@
import moment from "moment"
export default {
components:{
},
data() {
return {
......@@ -256,7 +256,7 @@
RB_Branch_Id: -1,//公司ID
OutBranchId: -1,//出团公司ID
},
loading: false,
//数据源
dataList: [],
......@@ -299,10 +299,10 @@
mounted() {
let userInfo = this.getLocalStorage();
let ActionMenuCode = userInfo.ActionMenuCode;
this.msg.PeriodId = this.$route.query.PeriodId?Number(this.$route.query.PeriodId):-1
this.msg.OutBranchId = this.$route.query.RB_Branch_Id>-1?Number(this.$route.query.RB_Branch_Id):Number(userInfo.RB_Branch_id)
this.msg.UserId = this.$route.query.UserId?Number(this.$route.query.UserId):Number(userInfo.EmployeeId)
this.msg.UserId = this.$route.query.UserId?Number(this.$route.query.UserId):Number(userInfo.EmployeeId)
if (ActionMenuCode.indexOf('S_CheckBranchOrder') != -1
||ActionMenuCode.indexOf('S_CheckAllOrder')!=-1
||ActionMenuCode.indexOf('F_Query_AllIncomPay')!=-1) {//是否有看所有人的权限
......@@ -314,8 +314,8 @@
}else{
this.disabled = true;
}
},
methods: {
getDepartment() {
......@@ -325,7 +325,7 @@
this.departmentList = res.data.data;
}
}, err => {})
},
getCompany(){
this.apipost('admin_get_BranchGetList',this.getCompanyMsg,res=>{
......@@ -339,7 +339,7 @@
"sellcommission_GetTYSaleCommissionPeriodsList",{},res => {
if (res.data.resultCode == 1) {
this.PeroidsList = res.data.data;
if(!this.$route.query.PeriodId){
if(!this.$route.query.PeriodId||this.$route.query.isSale){
this.msg.PeriodId = this.PeroidsList[0].Id
}
this.getList()
......@@ -378,7 +378,7 @@
query: {
PeriodId: this.$route.query.PeriodId,
// OutBranchId: item.RB_Branch_Id,
UserId: item.UserId,
UserId: item.UserId,
blank: 'y',
tab: '同业提现详情'
}
......@@ -409,4 +409,4 @@
}
}
</script>
\ No newline at end of file
</script>
......@@ -26,7 +26,14 @@
<div class="flexOne domesticCommissionUser">
<div>
<ul class="opUl">
<li>
<em>期数</em>
<el-select v-model="msg.PeriodId" size="mini" @change="handleCurrentChange(1)">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="(item,index) in PeriodsList" :key="item.index" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</li>
<li>
<em>人员</em>
<el-select v-model="msg.UserId" size="mini" @change="handleCurrentChange(1)" filterable :disabled='disabled'>
......@@ -60,7 +67,7 @@
</el-select>
</li>
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
......@@ -150,8 +157,8 @@
if (this.$route.query && this.$route.query.PeriodId) {
this.msg.PeriodId = this.$route.query.PeriodId
}
this.getList();
// this.getqishilist()
this.getqishilist()
this.getCompanyList()//获取公司
this.getEmployee()//人员
this.getDerpartMent()//部门
......@@ -217,8 +224,11 @@
if (res.data.resultCode == 1) {
this.PeriodsList = res.data.data;
if (this.PeriodsList && this.PeriodsList.length > 0) {
// this.msg.Periods = Number(this.PeriodsList[0].Id)
if(!this.$route.query.PeriodId||this.$route.query.isSale){
this.msg.PeriodId = this.PeriodsList[0].Id
}
}
this.getList();
} else {
this.Error(res.data.message);
......@@ -240,7 +250,7 @@
PeriodId: this.$route.query.PeriodId,
UserId:item.UserId,
RB_Branch_Id:item.RB_Branch_Id,
RB_Department_Id:item.RB_Department_Id,
RB_Department_Id:item.RB_Department_Id,
blank: 'y',
tab: '国内提现详情'
}
......@@ -267,4 +277,4 @@
}
}
</script>
\ No newline at end of file
</script>
<style scoped>
.ExpectedCommission-form{
padding: 10px 20px 0 20px;
}
.groupTourOrder{
display: flex;
flex-wrap: nowrap;
flex-grow: 1;
}
.groupTourOrder span{
/* width: 50%; */
white-space: nowrap;
font-size: 14px;
background: #DEE1E6;
color: #333333;
border-radius: 5px;
padding: 5px 10px;
margin-left: 20px;
/* #333333 */
}
.CommissionLadder-form{
display: flex;
flex-wrap: wrap;
margin: 0 20px;
/* margin-bottom: 10px; */
}
.CommissionLadder{
flex: 1;
padding: 16px 20px 20px 20px;
background: #ffffff;
}
.CommissionLadder.Line{
margin: 0 0 10px 0;
}
.CommissionLadder p {
padding: 0 0 10px 0;
}
.CommissionLadder:last-child{
margin-right: 0;
}
.OpenOrder{
background: #ffffff;
padding: 10px 20px 20px 20px;
}
.OpenOrderMore{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0 10px 0;
cursor: 0;
font-size: 16px;
font-weight: 400;
color: #333333;
}
.OpenOrderMore span{
color: #999999;
font-size: 14px;
}
</style>
<template>
<div>
<div class="query-box HotelWorkInput" style="border-bottom: none;height: 0;padding: 20px 0;">
<ul>
<li>
<div style="display: flex;align-items: center;">
<!-- <i class="el-icon-chat-dot-square"
style="cursor: pointer;color: #33B3FF;font-size: 31px;margin-right: 10px;"
@click="rightOpen=true"></i> -->
<template v-for="(item ,index) in MonthList">
<input type="button" :key="index"
:class="{'normalBtn':Month==item.Id,'hollowFixedBtn':Month!=item.Id}"
:value="item.Name"
@click="clickActive(item)"></input>
</template>
</div>
</li>
</ul>
</div>
<div class="CommissionLadder-form" style="margin: 0;margin-bottom: 10px;">
<div class="CommissionLadder" style="background: none;display: flex;align-items: center;padding: 0px 20px 10px 20px;">
<p style="padding: 0;flex-shrink: 0;padding: 0 20px 0 0;">统计</p>
<div class="groupTourOrder">
<span>销售额:<span>{{OrderList.SalesMoney}}</span></span>
<span>订单数:<span>{{OrderList.SalesOrderNum}}</span></span>
<span>人头数:<span>{{OrderList.SalesPeopleNum}}</span></span>
<span>提成比例:<span>{{OrderList.SalesRate}}</span></span>
<span>预期提成:<span>{{OrderList.SalesCommission}}</span></span>
<span>总提成:<span>{{OrderList.TotalCMoney}}</span></span>
</div>
</div>
</div>
<div class="CommissionLadder-form">
<div style="display: flex;justify-content: space-between; width: 100%;">
<div class="CommissionLadder Line">
<p>国内线提成</p>
<div>
<el-table border ref="multipleTable" :data="DomesticLine.Rlist">
<el-table-column width="80" prop="RuleName"
label="团队类型" show-overflow-tooltip>
<template slot-scope="scope">{{scope.row.RuleName}}</template>
</el-table-column>
<el-table-column width="70" prop="OrderNum"
label="订单数"><template slot-scope="scope">{{scope.row.OrderNum?scope.row.OrderNum:'-'}}</template></el-table-column>
<el-table-column width="70" prop="PeopleNum"
label="报名数"><template slot-scope="scope">{{scope.row.PeopleNum?scope.row.PeopleNum:'-'}}</template></el-table-column>
<el-table-column prop="Way"
label="提成方式">
<template slot-scope="scope">{{scope.row.Way==2?'利润提成':'人头奖励'}}</template>
</el-table-column>
<el-table-column prop="ProfitRate"
label="提成比例">
<template slot-scope="scope">{{scope.row.Way==2?scope.row.ProfitRate:'-'}}</template>
</el-table-column>
<el-table-column prop="Money"
label="提成" show-overflow-tooltip>
<template slot-scope="scope">{{scope.row.Money?scope.row.Money:'-'}} <template v-if="scope.row.Money">{{scope.row.Way==2?'%':'/人'}}</template> </template>
</el-table-column>
<el-table-column prop="Profit"
label="预期利润" show-overflow-tooltip>
<template slot-scope="scope">{{scope.row.Way==2&&scope.row.Profit?scope.row.Profit:'-'}}</template>
</el-table-column>
<el-table-column prop="Commission"
label="预期提成" show-overflow-tooltip><template slot-scope="scope">{{scope.row.Commission?scope.row.Commission:'-'}}</template></el-table-column>
</el-table>
</div>
</div>
<div style="display: flex;flex-direction: column;flex-grow: 2;">
<div style="display: flex;">
<div class="CommissionLadder Line" style="margin: 0 10px 10px 10px;">
<p>日本线及其他人头奖励
<span style="font-size: 13px;color: red;"
v-if="JapaneseLine.Commission>0">
<!-- 预期利润:{{JapaneseLine.CommissionProfit}} -->
<!-- 预期提成:{{JapaneseLine.Commission}} -->
</span>
</p>
<div>
<progressComm :commissionratioList="JapaneseLine"></progressComm>
</div>
</div>
<div class="CommissionLadder Line">
<p>欧洲线及其他人头奖励
<span style="font-size: 13px;color: red;"
v-if="EuropeLine.Commission>0">
<!-- 预期利润:{{EuropeLine.CommissionProfit}} -->
<!-- 预期提成:{{EuropeLine.Commission}} -->
</span>
</p>
<div>
<progressComm :commissionratioList="EuropeLine"></progressComm>
</div>
</div>
</div>
<div style="display: flex;">
<div class="CommissionLadder Line" style="margin: 0 10px 10px 10px;">
<p>日本线及其他利润比
<span style="font-size: 13px;color: red;"
v-if="JapaneseProfit.Commission>0">
<!-- 预期利润:{{JapaneseProfit.CommissionProfit}} -->
<!-- 预期提成:{{JapaneseProfit.Commission}} -->
</span>
</p>
<div>
<progressComm :commissionratioList="JapaneseProfit"></progressComm>
</div>
</div>
<div class="CommissionLadder Line">
<p>欧洲线及其他利润比
<span style="font-size: 13px;color: red;"
v-if="EuropeProfit.Commission>0">
<!-- 预期利润:{{EuropeProfit.CommissionProfit}} -->
<!-- 预期提成:{{EuropeProfit.Commission}} -->
</span>
</p>
<div>
<progressComm :commissionratioList="EuropeProfit"></progressComm>
</div>
</div>
</div>
<div style="display: flex;">
<div class="CommissionLadder Line" style="margin: 0 0 0 10px;">
<p>年终奖</p>
<div>
<progressComm :commissionratioList="AnnualBonus"></progressComm>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="CommissionLadder-form">
</div>
<div class="ExpectedCommission-form">
<!-- 统计版块 -->
<!-- <div class="groupTourOrder_count">
<el-row :gutter="20">
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
<div class="groupTourOrder_count_item HT_total">
<div style="display: flex;justify-content: space-between;"><span>统计</span></div>
<p style="margin-top: 10px;">
<span>销售额:11</span>
<span style="margin-left: 20px;">订单数量:22</span>
<span style="margin-left: 20px;">人头数量:11</span>
<span style="margin-left: 20px;">提成比例:22</span>
<span style="">预期提成:22</span>
</p>
</div>
</el-col>
</el-row>
</div> -->
<!-- 未平账单 -->
<div class="OpenOrder">
<div class="OpenOrderMore">
<div>帐未平订单</div>
<span @click="goMore" style="cursor: pointer;">更多<i class="el-icon-d-arrow-right"></i> </span>
</div>
<OrderList :OrderList="OrderList"></OrderList>
</div>
<div style="padding: 10px 0 0 0;color: #E95252;line-height: 30px;">
<p>备注:</p>
1.日本线.韩国线.东南亚线.南亚线散拚.与单团提成保持1%提成不变</br>
2.增加境外散拚提成(日本线.欧洲线分别奖励计算)</br>
3.增加人头奖励(日本线与其他.欧洲线2种)</br>
4.所有业绩结算皆以出发日.尾款收齐为基准</br>
5.人头奖励包含归属各线所有产品(散拚.一日游.多日游.签证等)</br>
6.人头奖励每月至少20条方可进行奖励!</br>
7.以上所有核算皆以月为单位.核算基础为出发日或签证收取日算起!</br>
8.直客部门归属直客业务编制.不参与同业部门业务销售!</br>
9.单项服务每月人头数与年终人头奖励接按0.5计算</br>
10.以上制度公司会因市场变动与业务实际情况採取适当因应或调整,敬请注意!!
</div>
</div>
<!-- 消息通知 -->
<notification v-if="rightOpen" @close="rightOpen = false"></notification>
</div>
</template>
<script>
import notification from './components/notification'
import OrderList from './components/OrderList'
// import OrderList from '../myOrdersAllType/components/OrderList'
import progressComm from './components/progressComm'
export default {
components: {
notification,
OrderList,
progressComm,
},
data() {
return {
DomesticLine:{
type:4,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
AnnualBonus:{
type:3,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
EuropeProfit:{
type:2,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
EuropeLine:{
type:1,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
JapaneseProfit:{
type:2,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
JapaneseLine:{
type:1,
AvgLureNum:0,
AvfOrderNum:0,
CommissionRate:0,
Commission: 0,
CommissionProfit: 0,
CommissionRateList:[]
},
dataRuleList:[],
rightOpen: false,
msg:{
Month: ''
},
Month: 1,
MonthList:[
{Name:'上月',Id:'0'},
{Name:'当月',Id:'1'},
],
CommissionInfor:{},
OrderList: [],
loading: true,
YearTime:'',
LastMonthTime: '',
MonthTime: '',
commissionMsg:{
pageIndex: 1,
pageSize: 6,
OrderId: "", //订单id
GuestId: 0, //客人id
EnterId: 0, //业务员id
OrderState: '1', //订单状态
Q_IsCollect: "2", //收款状态
StartTime: "",//报名开始日期
EndTime: "",//报名结束日期
FinishSTime: "",//完结开始时间
FinishETime: "",//完结结束时间
DepartSTime: "",//出发开始
DepartETime: "",//出发结束
TCNUM: "",//团号
ProductName: "",//商品名称
CustomerName: "",//客户名称
LureEmpId: 0,//引流人员
LineId: 0,//线路
TravelType: 0,//跟团类型 1跟团 2当地游
OrderType: "0",//订单类型
IsSelectCRM: 0,//1来源crm
IsMyOrder: 1,//1我的订单
},
};
},
mounted() {
this.getList()
},
created() {
let nowdays = new Date()
this.Year = new Date().getFullYear()
this.LastMonthTime = new Date().getMonth()
this.MonthTime = new Date().getMonth() + 1
this.msg.Month = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)
this.MonthList[0].Name = this.MonthList[0].Name+'('+this.LastMonthTime+'月)'
this.MonthList[1].Name = this.MonthList[1].Name+'('+this.MonthTime+'月)'
this.commissionMsg.DepartSTime = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)+'-01'//出发开始
var MonthDayNum = new Date(this.Year, this.msg.Month, 0).getDate(); //计算当月的天数
this.commissionMsg.DepartETime = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)+(MonthDayNum>10?MonthDayNum:'0'+MonthDayNum)//出发结束
},
methods: {
goMore(){
this.$router.push({
name: 'erpMyCustomerOrder',
query: {
blank: 'y'
}
});
},
clickActive(item){
this.Month = item.Id
if(item.Id==1){
this.msg.Month = this.Year+'-'+(this.MonthTime>10?this.MonthTime:'0'+this.MonthTime)
}else{
this.msg.Month = this.Year+'-'+(this.LastMonthTime>10?this.LastMonthTime:'0'+this.LastMonthTime)
}
this.getList()
// this.getData()
},
// 获取规则列表数据
getList() {
this.apipost("sellcommission_GetTYSaleCommissionRuleList", {}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataRuleList = res.data.data[0];
this.JapaneseLine.CommissionRateList = this.dataRuleList.AwardRuleList
this.JapaneseProfit.CommissionRateList = this.dataRuleList.ProfitRuleList
this.EuropeLine.CommissionRateList = this.dataRuleList.EuropeAwardRuleList
this.EuropeProfit.CommissionRateList = this.dataRuleList.EuropeProfitRuleList
this.AnnualBonus.CommissionRateList = this.dataRuleList.BonusRuleList
this.getData()
}else{
this.Error(res.data.message)
}
});
},
// 获取预期数据
getData(){
this.apipost('sellcommission_GetTYSaleExpectCommission', this.msg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data
this.CommissionInfor = data;
// 日本及其他人头奖励
this.JapaneseLine.AvgLureNum = this.CommissionInfor.PeopleNum
this.JapaneseLine.Commission = this.CommissionInfor.PeopleMoney
// 日本及其他提成比例
this.JapaneseProfit.AvgLureNum = this.CommissionInfor.JapanCommission
this.JapaneseProfit.AvfOrderNum = this.CommissionInfor.JapanOrderNum
this.JapaneseProfit.CommissionRate = this.CommissionInfor.JapanRate
this.JapaneseProfit.Commission = this.CommissionInfor.JapanCommission
this.JapaneseProfit.CommissionProfit = this.CommissionInfor.JapanProfit
// 欧洲人头奖励
this.EuropeLine.AvgLureNum = this.CommissionInfor.EuropePNum
this.EuropeLine.Commission = this.CommissionInfor.EuropeMoney
// 欧洲及其他提成比例
this.EuropeProfit.AvgLureNum = this.CommissionInfor.EuropeCommission
this.EuropeProfit.AvfOrderNum = this.CommissionInfor.EuropeOrderNum
this.EuropeProfit.CommissionRate = this.CommissionInfor.EuropeRate
this.EuropeProfit.Commission = this.CommissionInfor.EuropeCommission
this.EuropeProfit.CommissionProfit = this.CommissionInfor.EuropeProfit
// 年终奖
this.AnnualBonus.AvfOrderNum = this.CommissionInfor.BonusNum
this.AnnualBonus.Commission = this.CommissionInfor.BonusPeriods
// console.log(this.OrderList,'----')
}else {
this.Error(res.data.message);
}
this.loading = false
},
err => {this.loading = false}
);
this.apipost('sellcommission_Post_GetGNSaleExpectCommission', this.msg,
res => {
if (res.data.resultCode == 1) {
this.DomesticLine = res.data.data
}
})
this.commissionMsg.IsMyOrder = '1'
this.apipost('CarSingle_post_GetGuestOrderStatisticsPageList', this.commissionMsg,
res => {
if (res.data.resultCode == 1) {
let data = res.data.data.pageData
if(data.length>5){
for(let i=0;i<6;i++){
this.OrderList.push(data[i])
}
}else{
this.OrderList = data
}
}else {
this.Error(res.data.message);
}
this.loading = false
},
err => {this.loading = false}
)
}
}
};
</script>
<template>
<div>
<el-table border ref="multipleTable" :data="OrderList"
:default-sort="{prop: 'null', order: 'null'}"
:sort-by="['Money','Income','PreferTipAmount','PlatformTax','Refund','CostMoney','OrderProfit','DueInMoney']">
<el-table-column width="200" prop="CreateTimeStr" label="订单Id" show-overflow-tooltip>
<template slot-scope="scope">
<div>
<p class="cursor-pointer c059FF6 fz18 row-c" @click="goDetails(scope.row)">
<el-tag style="margin-right: 5px;" size="mini">{{scope.row.OrderTypeName}}</el-tag>
<span>{{scope.row.OrderId}}</span>
</p>
<p>{{scope.row.CreateTimeStr}}</p>
</div>
</template>
</el-table-column>
<el-table-column width="200" prop="CreateTimeStr" label="团号" show-overflow-tooltip>
<template slot-scope="scope">
<div>
<p class=" fz14" :class="{'cursor-pointer c059FF6':scope.row.OrderType==2}"
@click="scope.row.OrderType==2?goTuanDetails(scope.row):''">{{scope.row.TCNUM}}</p>
<p>出发日期:{{scope.row.StartDate}}</p>
</div>
</template>
</el-table-column>
<el-table-column label="客人" show-overflow-tooltip>
<template slot-scope="scope">
<span :class="{'colorblue font-color-link':pagesTitle!='详情'}"
@click="pagesTitle!='详情'?openNameDetails(scope.row):''">
{{scope.row.GuestName}}
</span>
</template>
</el-table-column>
<el-table-column prop="SaleName" label="销售">
</el-table-column>
<el-table-column prop="LureEmpName" label="引流">
</el-table-column>
<el-table-column label="商品名称" show-overflow-tooltip>
<template slot-scope="scope">
<div style="max-width: 100px;overflow: hidden;text-overflow: ellipsis">{{scope.row.Name}}</div>
</template>
</el-table-column>
<el-table-column label="商品详情" show-overflow-tooltip>
<template slot-scope="scope">
<div style="max-width: 100px;overflow: hidden;text-overflow: ellipsis">{{scope.row.Description}}</div>
</template>
</el-table-column>
<el-table-column sortable prop="Money" label="总金额" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
{{scope.row.Money}}&ensp;({{scope.row.CurrencyName}})
</template>
</el-table-column>
<el-table-column sortable prop="Income" label="实收">
</el-table-column>
<el-table-column sortable prop="PreferTipAmount" label="人头小费" min-width="101">
</el-table-column>
<el-table-column sortable prop="PlatformTax" label="手续费" min-width="100">
</el-table-column>
<el-table-column sortable prop="Refund" label="退款">
</el-table-column>
<el-table-column sortable prop="CostMoney" label="成本" >
</el-table-column>
<el-table-column sortable prop="DueInMoney" label="待收">
<template slot-scope="scope">
<span :class="{'red':scope.row.DueInMoney>0}">{{scope.row.DueInMoney}}</span>
</template>
</el-table-column>
<el-table-column sortable prop="OrderProfit" label="预期利润" min-width="100">
<template slot-scope="scope">
<span :class="{'red':scope.row.OrderProfit>0}">{{scope.row.OrderProfit}}</span>
</template>
</el-table-column>
<el-table-column sortable prop="DiscountsMoney" label="优惠">
</el-table-column>
<el-table-column prop="StateName" label="状态" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{scope.row.StateName}}</span>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props: {
OrderList: {
type: Array,
require: false
},
},
data() {
return {
loading: false,
};
},
watch: {
OrderList: {
handler (val, oldVal) {
},
deep: true
}
},
created() {
},
mounted() {
},
methods: {
}
};
</script>
<style scoped>
</style>
<template>
<div>
<div class="ListCar-form"></div>
<div class="ListCar-form-box">
<div class="ListCar-box">
<div class="normalBtn ListCar-close" @click="close">
<i class="el-icon-close"></i>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
parameters: {
type: Object,
require: false
},
},
data() {
return {
loading: false,
sysMsgList: [],
};
},
watch: {
parameters: {
handler: function (val, oldVal) {
},
deep: true
}
},
created() {
},
mounted() {
},
methods: {
// 关闭
close(){
this.$emit('close')
},
}
};
</script>
<style scoped>
.ListCar-form{
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(23,23,23,.5);
z-index: 3;
}
.ListCar-form-box{
position: fixed;
top: 0;
right: 0;
bottom: 0;
width: 550px;
background: #ffffff;
z-index: 100;
}
.ListCar-box{
width: 100%;
height: 100%;
position: relative;
padding: 15px 0;
}
.ListCar-close{
position: absolute;
left: -47px;
top: 20%;
line-height: 26px;
}
.ListCar-close i{
margin-left: 3px;
}
.normalBtn.ListCar-close{
border-top-right-radius: 0;
border-bottom-right-radius: 0;
padding: 0 8px !important;
}
.ListCar-header{
border-bottom: -;
}
.ListCar-header-right{
border-radius: 3px;
padding: 5px 8px;
background: #fff3e0;
}
</style>
<style scoped>
.progress-box{
flex: 1;
display: flex;
margin-bottom: 25px;
}
.relative-position{
/* min-width: 80px; */
flex: 1;
margin-right: 0;
position: relative;
}
.rate-box {
position: absolute;
top: 30px;
left: 50%;
transform: translateX(-50%);
color: #000;
z-index: 9;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.sanjiao {
width: 0;
height: 0;
margin-left: 5%;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
border-bottom: 3px solid #CACACA;
}
.rate {
min-width: 20px;
padding: 2px 6px;
background-color: #CACACA !important;
display: flex;
justify-content: center;
align-items: center;
color: #666666;
font-size: 0.62vw;
font-family: PingFang SC;
border-radius: 7px;
line-height:12px;
white-space:nowrap;
}
.active-rate{
background-color: #33B3FF !important;
color: #FFFFFF !important;
}
/deep/.relative-position .el-progress-bar__outer{
border-radius: 0 !important;
}
/deep/.relative-position .el-progress-bar__inner{
text-align: center;
border-radius: 0 !important;
}
/deep/.relative-position:first-child .el-progress{
border-top-left-radius: 15px !important;
border-bottom-left-radius: 15px !important;
overflow: hidden !important
}
/deep/.relative-position:last-child .el-progress{
border-top-right-radius: 15px !important;
border-bottom-right-radius: 15px !important;
overflow: hidden !important
}
</style>
<template>
<div>
<div class="progress-box">
<!-- {{commissionratioList.AvgLureNum}}-{{commissionratioList.AvfOrderNum}}-
{{commissionratioList.CommissionRate}}-
{{commissionratioList.Commission}}-
{{commissionratioList.CommissionProfit}} -->
<div v-for="(item,index) in commissionratioList.CommissionRateList" :key="index"
class="relative-position">
<!-- :color="commissionratioList.CommissionRate>=item.Rate?colorlists[Math.floor(Math.random()*10)]:colors[Math.floor(Math.random()*10)]" -->
<el-progress :text-inside="true" :stroke-width="20"
:percentage="setItemProgress(item)"
:status="setItemStatus(item)"
:format="setItemText(item)"
:color="commissionratioList.AvgLureNum>item.StartValue?customColor[0]:customColor[1]">
</el-progress>
<div class="rate-box">
<div class="sanjiao"
:style="{'border-bottom-color':commissionratioList.AvgLureNum>item.StartValue?'#33B3FF':'#CACACA'}"></div>
<div class="rate full-width"
:class="{'active-rate':commissionratioList.AvgLureNum>item.StartValue}">
<i class="el-icon-check" style="font-size:8px"></i>
{{item.Rate}}{{commissionratioList.type==2?'%':''}}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props:['commissionratioList'],
data() {
return {
customColor: ['rgba(51,179,255,1)','rgba(222,225,230,1)'],
colors: [
'rgba(42, 48, 54,.2)',
'rgba(138, 24, 48,.2)',
'rgba(200, 138, 131,.2)',
'rgba(84, 221, 226,.2)',
'rgba(178, 199, 168,.2)',
'rgba(16, 195, 195,.2)',
'rgba(0, 21, 68,.2)',
'rgba(226, 166, 198,.2)',
'rgba(278,17,66,.2)',
'rgba(153, 199, 235,.2)',
'rgba(34,184,221,.2)',
'rgba(221,72,34,.2)',
'rgba(204,51,204,.2)',
'rgba(255,204,0,.2)',
'rgba(77,179,179,.2)',
'rgba(196,60,141,.2)',
'rgba(195,90,141,.2)',
],
colorlists: [
'rgba(42, 48, 54, 1)',
'rgba(138, 24, 48, 1)',
'rgba(200, 138, 131, 1)',
'rgba(84, 221, 226, 1)',
'rgba(178, 199, 168, 1)',
'rgba(16, 195, 195, 1)',
'rgba(0, 21, 68, 1)',
'rgba(226, 166, 198, 1)',
'rgba(278,17,66, 1)',
'rgba(153, 199, 235,1)',
'rgba(34,184,221,1)',
'rgba(221,72,34,1)',
'rgba(204,51,204,1)',
'rgba(255,204,0,1)',
'rgba(77,179,179,1)',
'rgba(196,60,141,1)',
'rgba(195,90,141,1)',
],
};
},
watch: {
commissionratioList:{
handler(val, oldVal){
this.commissionratioList = val
},
deep: true,
immediate: true
}
},
mounted() {
},
created() {
},
methods: {
// 设置进度
setItemProgress(data) {
if(this.commissionratioList.AvgLureNum>=data.StartValue&&this.commissionratioList.AvfOrderNum>=data.EndValue){
return 100
}else{
return 100
}
},
// 自定义进度条文字
setItemText(row) {
if(this.commissionratioList.type==2){
this.formatProgress(row)
return () => {
return row.StartValue2 + ' - ' + row.EndValue2+`${row.StartValue>=10000||row.EndValue>=10000?'w':''}`
}
}else if(this.commissionratioList.type==1){
return () => {
return `${row.StartValue+' - '+ row.EndValue}人`
}
}else{
return () => {
return `连续${row.StartValue}月`
}
}
},
// 设置当前进度条状态,显示不同颜色
setItemStatus(data) {
if(this.commissionratioList.AvgLureNum>=data.StartValue&&this.commissionratioList.AvfOrderNum>=data.EndValue){
return 'exception'
}
},
formatProgress(data){
let obj = JSON.parse(JSON.stringify(data))
if(obj.StartValue>=10000) {
data.StartValue2 = obj.StartValue/10000
}else{
data.StartValue2 = obj.StartValue
}
if(obj.EndValue>=10000) {
data.EndValue2 = obj.EndValue/10000
}else{
data.EndValue2 = obj.EndValue
}
},
}
};
</script>
......@@ -53,7 +53,7 @@
<el-row :gutter="20">
<el-col :span="12">
<div class="el-col-div ownScrollbarStyle PersonalData_l">
<div class="l_top">
<div class="l_top" style="position: relative;">
<img v-if="data.icon !=null && data.icon !='' " :src="data.icon" alt="" class="tx_img"
:onerror='defaultHeadImg'>
<img v-else src="../../assets/img/default_head_img.jpg" alt="" alt="" class="tx_img">
......@@ -61,15 +61,20 @@
<span>{{data.emName}}</span>
<span>{{data.postName}}</span>
</div>
<img src="../../assets/img/jinbin@2x.png" alt="" class="img">
<div class="royalty">
<img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(1)">
<div class="royalty" style="cursor: pointer;" @click="goAnticipate(1)">
<div class="tc">
<span></span>
<span>{{data.totalCommission}}</span>
<p>
<span></span>
<span>{{data.totalCommission}}</span>
</p>
<p v-if="data.peopelBonus">{{data.peopelBonus}}/人</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.periodsName}}</p>
</div>
<!-- <span><p class="tc">{{data.totalCommission}}</p></span>-->
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>本月提成</span>
<span>出境提成</span>
<template v-if="data.comissionGeneralId>0">
<span v-if="data.share==1" class="Sale_Share" style="color:#333;cursor:default;">已确认</span>
<span v-if="data.share==0" @click="tichengDialog=true" class="Sale_Share"
......@@ -77,6 +82,37 @@
</template>
</div>
</div>
<img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(2)">
<div style="cursor: pointer;" class="royalty" @click="goAnticipate(2)">
<div class="tc">
<p>
<span></span>
<span>{{data.gnSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.gnPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>国内提成</span>
</div>
</div>
<img style="cursor: pointer;" src="../../assets/img/jinbin@2x.png" alt="" class="img" @click="goAnticipate(3)">
<div style="cursor: pointer;" class="royalty" @click="goAnticipate(3)">
<div class="tc">
<p>
<span></span>
<span>{{data.dxSaleCommission}}</span>
</p>
<p style="color: #BDBDBD;font-size: 13px;padding: 0 0 5px 0;">{{data.dxPeriodsName}}期</p>
</div>
<div stye="font-size: 16px;color: #666666;display: block;display: inline-block;">
<span>历史单项提成</span>
</div>
</div>
<el-tooltip class="item" effect="dark" content="预期提成" placement="top">
<i class="el-icon-document" @click="goAnticipate(4)"
style="position: absolute;right: -0;top: -10px;cursor: pointer;color: #33B3FF;"></i>
</el-tooltip>
</div>
<div class="order">
......@@ -599,10 +635,31 @@
}
},
methods: {
// 销售预期提成
goAnticipate(type){
let name
if(type==1){
name = 'TradeTicketUserDetails'
}else if(type==2){
name = 'domesticCommissionUser'
}else if(type==3){
name = 'ServiceCommissionUser'
}else if(type==4){
name = 'saleExpectedCommission'
}
this.$router.push({
name: name,
query: {
isSale: 1,
blank: 'y'
}
});
},
iWorkbench() {
this.apipost('customerIndex_post_GetMySelfSellInfo', {}, res => {
if (res.data.resultCode == 1) {
this.data = res.data.data;
console.log(this.data,'========')
this.myScore = res.data.data.taskCapacityList;
this.myScore.forEach(item => {
if (item.score < 60) {
......@@ -825,7 +882,7 @@
},
//锅炉除开标点符号的字数
getFilteredNum(val) {
//var pattern=new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》\\[\\]【】\\“\\”{}=+-|\/:;;:]");
//var pattern=new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》\\[\\]【】\\“\\”{}=+-|\/:;;:]");
var pattern = new RegExp("[`~%!@#$^=''?~!@#¥……&——‘”“'?*()(),,。.、<>《》:;; +-=\\s]");
//[]内输入你要过滤的字符,这里基本包含全部的标点符号,\\是转义字符
var rs = "";
......
......@@ -8,7 +8,7 @@ import supplierIndex from '../components/SupplierIndex'
import automaticLogin from '../components/automaticLogin'
export default {
routes: [{
path: '/',
path: '/',
name: 'login',
component: login
},
......@@ -2266,7 +2266,7 @@ export default {
meta: {
title: '签证已确认'
},
},
},
{
path: '/TravelManager', //团控配置
name: 'TravelManager',
......@@ -5607,6 +5607,14 @@ export default {
title: '销售'
}
},
{
path: '/saleExpectedCommission',
name: 'saleExpectedCommission',
component: resolve => require(['@/components/sale/ExpectedCommission'], resolve),
meta: {
title: '销售预期提成'
}
},
{
path: '/platformManagement',
name: 'platformManagement',
......
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