Commit f8c257ad authored by 罗超's avatar 罗超

no message

parent 4523f0b1
...@@ -119,6 +119,11 @@ ...@@ -119,6 +119,11 @@
this.msg.PeriodId = this.$route.query.Id; this.msg.PeriodId = this.$route.query.Id;
this.getList(); this.getList();
} }
if(this.$route.query.UserId){
this.msg.EmployeeId = this.$route.query.UserId
this.msg.YearNum = this.$route.query.Periods.slice(0,4)
this.msg.MonthNum = this.$route.query.Periods.slice(5,7)
}
}, },
methods: { methods: {
//获取分页列表 //获取分页列表
......
...@@ -33,168 +33,168 @@ ...@@ -33,168 +33,168 @@
</style> </style>
<template> <template>
<div class="page-body cycleOrderList"> <div class="page-body cycleOrderList">
<div class="page-search row items-center"> <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3"> <div class="col-3">
<q-select filled stack-label @input="getDepartList(msg.School_Id),resetSearch()" option-value="SId" <q-select filled stack-label @input="getDepartList(msg.School_Id),resetSearch()" option-value="SId"
option-label="SName" v-model="msg.School_Id" ref="School_Id" :options="schoolList" label="校区" option-label="SName" v-model="msg.School_Id" ref="School_Id" :options="schoolList" label="校区"
:dense="false" emit-value map-options /> :dense="false" emit-value map-options />
</div> </div>
<div class="col-3"> <div class="col-3">
<selectTree :treeData='DeptList' :defaultArray="returnString" nodeKey="DeptId" :multiple="false" <selectTree :treeData='DeptList' :defaultArray="returnString" nodeKey="DeptId" :multiple="false"
labelKey="DeptName" childrenKey="ChildList" tipText="选择部门" @getChild="getChild"></selectTree> labelKey="DeptName" childrenKey="ChildList" tipText="选择部门" @getChild="getChild"></selectTree>
</div> </div>
<q-select @input="resetSearch" filled stack-label option-value="Id" option-label="EmployeeName" use-input <q-select @input="resetSearch" filled stack-label option-value="Id" option-label="EmployeeName" use-input
v-model="msg.UserId" ref="DeptTier" :options="PersionList" label="销售" :dense="false" v-model="msg.UserId" ref="DeptTier" :options="PersionList" label="销售" :dense="false"
class="col-3 " emit-value map-options @filter="filterFn2" > class="col-3 " emit-value map-options @filter="filterFn2" >
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
<div class="col-3">
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" @input="getList"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false"
emit-value map-options @filter="filterFn">
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
未找到相关数据 未找到相关数据
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
<div class="col-3"> </div>
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" @input="getList"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false"
emit-value map-options @filter="filterFn"> </div>
<template v-slot:no-option>
<q-item> </div>
<q-item-section class="text-grey"> <div class="page-search row items-center">
未找到相关数据 <div class="col row wrap q-mr-lg q-col-gutter-md">
</q-item-section> <div class="col-3">
</q-item> <q-select filled stack-label @input="resetSearch()" option-value="Id"
</template> option-label="Name" v-model="msg.PeriodId" :options="PeriodsList" label="周期"
</q-select> :dense="false" emit-value map-options />
</div> </div>
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="resetSearch()" label="订单号" />
</div> </div>
</div>
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select filled stack-label @input="resetSearch()" option-value="Id"
option-label="Name" v-model="msg.PeriodId" :options="PeriodsList" label="周期"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="resetSearch()" label="订单号" />
</div>
<div class="col-3">
<q-select filled stack-label input-debounce="0" option-value="Id" @input="resetSearch()"
option-label="Name" v-model="msg.UserType" :options="UserTypeList" label="类型" :dense="false" emit-value
map-options >
</q-select>
</div>
<div class="col-3"> <div class="col-3">
<q-select filled stack-label input-debounce="0" option-value="Id" @input="resetSearch()" <q-select filled stack-label input-debounce="0" option-value="Id" @input="resetSearch()"
option-label="Name" v-model="msg.IsDept" :options="IsDeptList" label="业绩方式" :dense="false" emit-value option-label="Name" v-model="msg.UserType" :options="UserTypeList" label="类型" :dense="false" emit-value
map-options > map-options >
</q-select>
</q-select> </div>
</div> <div class="col-3">
</div> <q-select filled stack-label input-debounce="0" option-value="Id" @input="resetSearch()"
</div> option-label="Name" v-model="msg.IsDept" :options="IsDeptList" label="业绩方式" :dense="false" emit-value
<div class="page-search row items-center" style="justify-content: space-between;"> map-options >
<span style="font-size: 20px;font-weight: 400;">提成统计 <span style="font-size: 16px;">(提成总计:{{TotalCommission}})</span> </span>
<q-btn  color="primary" size="11px" label="导出" @click="tcexport" style="margin-left:10px"/> </q-select>
</div> </div>
<template > </div>
<el-table </div>
ref="filterTable" <div class="page-search row items-center" style="justify-content: space-between;">
:data="tableData" <span style="font-size: 20px;font-weight: 400;">提成统计 <span style="font-size: 16px;">(提成总计:{{TotalCommission}})</span> </span>
v-loading = 'loading' <q-btn  color="primary" size="11px" label="导出" @click="tcexport" style="margin-left:10px"/>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" :header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border border
style="width: 100%"> style="width: 100%">
<el-table-column prop="SchoolName" label="校区" width='150' ></el-table-column> <el-table-column prop="SchoolName" label="校区" width='150' ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column> <el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserType" label="类型" > <el-table-column prop="UserType" label="类型" >
<template slot-scope="scope">
<span v-if="scope.row.UserType==1">市场</span>
<span v-if="scope.row.UserType==2">顾问</span>
<span v-if="scope.row.UserType==3">教师</span>
</template>
</el-table-column>
<el-table-column prop="UserName" label="人员" > </el-table-column>
<el-table-column prop="IsDept" label="业绩方式" >
<template slot-scope="scope">
<span v-if="scope.row.IsDept==1">部门</span>
<span v-if="scope.row.IsDept==2">个人</span>
</template>
</el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope">
<div><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
<div>班号:{{scope.row.ClassNo}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<template slot-scope="scope"> <template slot-scope="scope">
<div style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics',scope.row)">{{scope.row.OrderId}} </div> <span v-if="scope.row.UserType==1">市场</span>
<span v-if="scope.row.UserType==2">顾问</span>
</template> <span v-if="scope.row.UserType==3">教师</span>
</el-table-column>
<el-table-column width='130' prop="TotalCommissionMoney" label="订单发放信息">
<template slot-scope="scope">
<div style="color: rgb(255, 156, 0);cursor: pointer;text-decoration: underline;" @click="getmingxi(scope.row)">
应发:{{scope.row.TotalCommissionMoney}}
<q-popup-proxy transition-show="flip-up" transition-hide="flip-down">
<div style="padding: 10px;border-radius: 4px;background: #FFF;max-width: 500px;">
{{ChangeLog}}
</div>
</q-popup-proxy>
</div>
<div>累计已发:{{scope.row.GiveOutMoney}}</div>
</template> </template>
</el-table-column>
</el-table-column> <el-table-column prop="UserName" label="人员" > </el-table-column>
<el-table-column prop="IsFirstCommission" label="首次发放"> <el-table-column prop="IsDept" label="业绩方式" >
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.IsFirstCommission==1?'是':'否'}}</div> <span v-if="scope.row.IsDept==1">部门</span>
<span v-if="scope.row.IsDept==2">个人</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="TotalHours" label="课时统计" width='160'> <el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope"> <template slot-scope="scope">
<div>总计课时:{{scope.row.TotalHours}}</div> <div><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学习课时:{{scope.row.TotalLearn}}</div> <div>学生数量:{{scope.row.StudentCount}}</div>
<div>当期课时:{{scope.row.CurrentHours>=0 ?scope.row.CurrentHours:'-'}}</div> <div>班号:{{scope.row.ClassNo}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<el-table-column width='160' prop="CurrentPeriodMoney" label="当期发放信息"> <template slot-scope="scope">
<template slot-scope="scope"> <div style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList(scope.row.ClassType == -1 ?'/sale/studyOrderStatistics' : '/sale/orderStatistics',scope.row)">{{scope.row.OrderId}} </div>
<div style="color: rgb(255, 156, 0);">应发:{{scope.row.CurrentPeriodMoney}}</div>
<div>抵扣:{{scope.row.DeductionMoney}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width='130' prop="TotalCommissionMoney" label="订单发放信息">
<el-table-column prop="YFMoney" label="最终发放">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: rgb(233, 82, 82);">{{scope.row.YFMoney}}</div> <div style="color: rgb(255, 156, 0);cursor: pointer;text-decoration: underline;" @click="getmingxi(scope.row)">
应发:{{scope.row.TotalCommissionMoney}}
<q-popup-proxy transition-show="flip-up" transition-hide="flip-down">
<div style="padding: 10px;border-radius: 4px;background: #FFF;max-width: 500px;">
{{ChangeLog}}
</div>
</q-popup-proxy>
</div>
<div>累计已发:{{scope.row.GiveOutMoney}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width='85' prop="Periods" label="期数"> </el-table-column> <el-table-column prop="IsFirstCommission" label="首次发放">
<el-table-column prop="Remark" width='160' label="备注"> </el-table-column> <template slot-scope="scope">
</el-table> <div>{{scope.row.IsFirstCommission==1?'是':'否'}}</div>
<div style="margin-top: 10px;text-align: center;"> </template>
<el-pagination background @current-change="handleCurrentChanges" layout="total,prev, pager, next, jumper" :current-page.sync="msg.PageIndex" </el-table-column>
:page-size="msg.PageSize" :total='total'> <el-table-column prop="TotalHours" label="课时统计" width='160'>
</el-pagination> <template slot-scope="scope">
</div> <div>总计课时:{{scope.row.TotalHours}}</div>
</template> <div>学习课时:{{scope.row.TotalLearn}}</div>
<div>当期课时:{{scope.row.CurrentHours>=0 ?scope.row.CurrentHours:'-'}}</div>
</template>
</el-table-column>
<el-table-column width='160' prop="CurrentPeriodMoney" label="当期发放信息">
<template slot-scope="scope">
<div style="color: rgb(255, 156, 0);">应发:{{scope.row.CurrentPeriodMoney}}</div>
<div>抵扣:{{scope.row.DeductionMoney}}</div>
</template>
</el-table-column>
</div> <el-table-column prop="YFMoney" label="最终发放">
</template> <template slot-scope="scope">
<div style="color: rgb(233, 82, 82);">{{scope.row.YFMoney}}</div>
</template>
</el-table-column>
<el-table-column width='85' prop="Periods" label="期数"> </el-table-column>
<el-table-column prop="Remark" width='160' label="备注"> </el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges" layout="total,prev, pager, next, jumper" :current-page.sync="msg.PageIndex"
:page-size="msg.PageSize" :total='total'>
</el-pagination>
</div>
</template>
</div>
</template>
<script> <script>
import { import {
getSchoolDropdown getSchoolDropdown
...@@ -218,6 +218,7 @@ ...@@ -218,6 +218,7 @@
import { import {
EduDownLoad, EduDownLoad,
} from '../../../api/common/common'; } from '../../../api/common/common';
import { number } from 'echarts'
export default { export default {
meta: { meta: {
title: "业绩提成统计" title: "业绩提成统计"
...@@ -279,13 +280,21 @@ ...@@ -279,13 +280,21 @@
if(this.$route.query && this.$route.query.OrderId){ if(this.$route.query && this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId this.msg.OrderId = this.$route.query.OrderId
} }
// 从业绩表跳转带参
if(this.$route.query && this.$route.query.UserId){
this.PersionList = JSON.parse(JSON.stringify(this.AllemployeeList))
this.msg.UserId = this.$route.query.UserId - 0
}
this.getList() this.getList()
this.setClass() this.getEmployee();//销售
this.getBranchList() this.getPeriodList()//周期
this.setClass()//班级
this.getBranchList()//校区
this.getDepartList(0); this.getDepartList(0);
this.getEmployee();
this.getPeriodList()
}, },
...@@ -295,6 +304,7 @@ ...@@ -295,6 +304,7 @@
this.getList() this.getList()
}, },
getList(){ getList(){
console.log(this.msg, '02222222222')
if(this.msg) if(this.msg)
this.loading = true; this.loading = true;
getSellAchievementsStatistics(this.msg).then(res => { getSellAchievementsStatistics(this.msg).then(res => {
...@@ -390,14 +400,14 @@ ...@@ -390,14 +400,14 @@
}, },
//筛选员工 //筛选员工
filterFn2(val, update) { filterFn2(val, update) {
update(() => { update(() => {
if (val === '') { if (val === '') {
this.PersionList = JSON.parse(JSON.stringify(this.AllemployeeList)) this.PersionList = JSON.parse(JSON.stringify(this.AllemployeeList))
} else { } else {
const needle = val.toLowerCase() const needle = val.toLowerCase()
this.PersionList = this.AllemployeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1) this.PersionList = this.AllemployeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1)
} }
}) })
}, },
//获取员工列表 //获取员工列表
getEmployee() { getEmployee() {
...@@ -428,8 +438,14 @@ ...@@ -428,8 +438,14 @@
Id: 0 Id: 0
} }
this.PeriodsList.unshift(obj) this.PeriodsList.unshift(obj)
// 从业绩表跳转带参
if(this.$route.query.Periods){
this.PeriodsList.forEach(item=>{
if(item.Periods==this.$route.query.Periods){
this.msg.PeriodId = item.Id
}
})
}
} }
}) })
}, },
......
...@@ -113,6 +113,14 @@ ...@@ -113,6 +113,14 @@
height: 40px; height: 40px;
background-color: rgb(238, 238, 239); background-color: rgb(238, 238, 239);
} }
.color_text{
color: #2961fe;
}
.color_text:hover{
text-decoration: underline;
cursor:pointer;
}
</style> </style>
<template> <template>
<div class="page-body studentTracking"> <div class="page-body studentTracking">
...@@ -223,22 +231,27 @@ ...@@ -223,22 +231,27 @@
> >
<div v-if="item.MonthList[x.index]"> <div v-if="item.MonthList[x.index]">
<div v-if="x.Id == 1"> <div v-if="x.Id == 1">
<span>{{ item.MonthList[x.index].Achievement }}</span> <span :class="item.RoleName=='小计'? '' : 'color_text'"
@click="item.RoleName=='小计'?'':clickDataDetails(item.EmpId,item.MonthList[x.index],'1')">{{ item.MonthList[x.index].Achievement }}</span>
</div> </div>
<div v-if="x.Id == 2" style="padding: 7px;"> <div v-if="x.Id == 2" style="padding: 7px;">
<span>{{ item.MonthList[x.index].Rate }}</span> <span>{{ item.MonthList[x.index].Rate }}</span>
</div> </div>
<div v-if="x.Id == 3" style="padding: 3px;"> <div v-if="x.Id == 3" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Rebate }}</span> <span :class="item.RoleName=='小计'? '' : 'color_text'"
@click="item.RoleName=='小计'?'':clickDataDetails(item.EmpId,item.MonthList[x.index],'1')">{{ item.MonthList[x.index].Rebate }}</span>
</div> </div>
<div v-if="x.Id == 4" style="padding: 3px;"> <div v-if="x.Id == 4" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Commission }}</span> <span :class="item.RoleName=='小计'? '' : 'color_text'"
@click="item.RoleName=='小计'?'':clickDataDetails(item.EmpId,item.MonthList[x.index],'2')">{{ item.MonthList[x.index].Commission }}</span>
</div> </div>
<div v-if="x.Id == 5" style="padding: 3px;"> <div v-if="x.Id == 5" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Brokerage }}</span> <span :class="item.RoleName=='小计'? '' : 'color_text'"
@click="item.RoleName=='小计'?'':clickDataDetails(item.EmpId,item.MonthList[x.index],'3')">{{ item.MonthList[x.index].Brokerage }}</span>
</div> </div>
<div v-if="x.Id == 6" style="padding: 3px;"> <div v-if="x.Id == 6" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Bonus }}</span> <span :class="item.RoleName=='小计'? '' : 'color_text'"
@click="item.RoleName=='小计'?'':clickDataDetails(item.EmpId,item.MonthList[x.index],'4')">{{ item.MonthList[x.index].Bonus }}</span>
</div> </div>
<div v-if="x.Id == 7" style="padding: 3px;"> <div v-if="x.Id == 7" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Total }}</span> <span>{{ item.MonthList[x.index].Total }}</span>
...@@ -302,13 +315,58 @@ export default { ...@@ -302,13 +315,58 @@ export default {
mounted() { mounted() {
var d = new Date(); var d = new Date();
var currentY = d.getFullYear(); var currentY = d.getFullYear();
var currentM = d.getMonth(); var currentM = d.getMonth() - 1;
var month = d.getMonth() + 1; var month = d.getMonth() + 1;
this.msg.StartMonth = currentY + "-" + currentM; this.msg.StartMonth = currentY + "-" + currentM;
this.msg.EndMonth = currentY + "-" + month; this.msg.EndMonth = currentY + "-" + month;
this.dateArray.push(this.msg.StartMonth)
this.dateArray.push(this.msg.EndMonth)
this.getList(); //获取数据 this.getList(); //获取数据
}, },
methods: { methods: {
// 数据详情
clickDataDetails(UserId,item,type){
if(type==2){//提现
const routeData = this.$router.resolve({
path: '/financial/market/marketStatistics',
query: {
UserId: UserId,
Periods: item.Month
}
});
window.open(routeData.href, '_blank')
}
if(type==3){//返佣金额
const routeData = this.$router.resolve({
path: '/financial/returnPassbook/returnpassbookStatistics',
query: {
UserId: UserId,
Periods: item.Month
}
});
window.open(routeData.href, '_blank')
}
if(type==4){//人头奖励
const routeData = this.$router.resolve({
path: '/financial/market/empBonusDetail',
query: {
UserId: UserId,
Periods: item.Month
}
});
window.open(routeData.href, '_blank')
}
if(type==1){//业绩、订单返佣
const routeData = this.$router.resolve({
path: '/sale/orderStatistics',
query: {
UserId: UserId,
Periods: item.Month
}
});
window.open(routeData.href, '_blank')
}
},
tcexport(){//导出 tcexport(){//导出
var msg = JSON.parse(JSON.stringify(this.msg)); var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/SellAchievements/GetSellAchievementsRankStatToExcel", msg, "业绩提成排名.xls") EduDownLoad("/SellAchievements/GetSellAchievementsRankStatToExcel", msg, "业绩提成排名.xls")
......
...@@ -312,6 +312,7 @@ ...@@ -312,6 +312,7 @@
} }
}, },
mounted() { mounted() {
this.getPeriodList()//周期
if (this.$route.query && this.$route.query.OrderId) { if (this.$route.query && this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId this.msg.OrderId = this.$route.query.OrderId
} }
...@@ -340,10 +341,14 @@ ...@@ -340,10 +341,14 @@
this.isNormal = false; this.isNormal = false;
this.msg.Q_SelectNormal = '-1' this.msg.Q_SelectNormal = '-1'
} }
if (this.$route.query && this.$route.query.UserId) {
this.msg.OrderSourceId = this.$route.query.UserId-0;
this.msg.OrderSourceType = 1
}
this.getList() this.getList()
this.setClass() this.setClass()
this.getBranchList() this.getBranchList()
this.getPeriodList()
this.getCustomFrom() //来源 this.getCustomFrom() //来源
this.getEmployeeList() this.getEmployeeList()
this.getStudentDorpDown() this.getStudentDorpDown()
...@@ -538,7 +543,16 @@ ...@@ -538,7 +543,16 @@
BatchName: '不限', BatchName: '不限',
Id: '0' Id: '0'
} }
this.PeriodsList.unshift(obj) this.PeriodsList.unshift(obj)
// 从业绩表跳转带参
if(this.$route.query.Periods){
let dataTime = this.$route.query.Periods.slice(0,4)+this.$route.query.Periods.slice(5,7)
this.PeriodsList.forEach(item=>{
if(item.BatchName.slice(0,6)==dataTime){
this.msg.BatchId = item.Id
}
})
}
} }
}) })
}, },
......
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