Commit fde418bd authored by Mac's avatar Mac

1

parent 58a79dac
......@@ -95,4 +95,29 @@ export function getSellCommissionPeriodsPageList(data) {
data
});
}
// 财务工作台 获取周期提成 用户统计列表
export function getSellCommissionUserList(data) {
return request({
url: '/SellCommission/GetSellCommissionUserList',
method: 'post',
data
});
}
// 财务工作台 获取周期提成 用户统计列表
export function getSellCommissionUserDetailList(data) {
return request({
url: '/SellCommission/GetSellCommissionUserDetailList',
method: 'post',
data
});
}
// 财务工作台 获取周期提成 用户统计列表
export function getSellCommissionForOrderList(data) {
return request({
url: '/SellCommission/GetSellCommissionForOrderList',
method: 'post',
data
});
}
......@@ -16,13 +16,13 @@
background-color: #47BF8C;
}
.CommissionDetail ._icon_btn i {
width: 30px;
height: 30px;
width: 26px;
height: 26px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
line-height: 26px;
margin-right: 10px;
cursor: pointer;
outline: none;
......@@ -38,7 +38,20 @@
<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 use-input input-debounce="0" option-value="ClassId" clearable @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>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" />
</div>
</div>
</div>
......@@ -48,18 +61,20 @@
:data="tableData"
border
style="width: 100%">
<el-table-column prop="xiaoqu" label="公司" :filters="company" :filter-method="filterHandler"></el-table-column>
<el-table-column prop="bumen" label="部门" :filters="department" :filter-method="filterHandler"></el-table-column>
<el-table-column prop="name" label="姓名" sortable> </el-table-column>
<el-table-column prop="gstic" label="提成金额" sortable :sort-method="fn2"> </el-table-column>
<el-table-column prop="ewaijine" label="额外奖励" sortable> </el-table-column>
<el-table-column prop="qishu" label="额外扣除" sortable> </el-table-column>
<el-table-column prop="SchoolName" label="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="用户" > </el-table-column>
<el-table-column prop="StudentCount" label="学生数量" sortable :sort-method="StudentCount"> </el-table-column>
<el-table-column prop="CurrentPeriodMoney" label="提成金额" sortable :sort-method="CurrentPeriodMoney"> </el-table-column>
<el-table-column prop="CurrentExtraMoney" label="奖励金额" sortable :sort-method="CurrentExtraMoney"> </el-table-column>
<el-table-column prop="CommissionMoney" label="最终提成" sortable :sort-method="CommissionMoney"> </el-table-column>
<el-table-column prop="Periods" label="周期"> </el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('CommissionDetail',Id)"></i>
@click="goUrl('userCommissionDetails',scope.row.UserId)"></i>
</el-tooltip>
</div>
</template>
......@@ -74,9 +89,11 @@
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionRuleList,
setSellCommissionRule
getSellCommissionUserList,
} from '../../api/finance/index'
import {
getClassDropDownList,
} from "../../api/school/index";
export default {
meta: {
title: "销售提成详情"
......@@ -86,75 +103,78 @@
data() {
return {
loading: false,
//列表数据参数
msg: {
pageIndex: 1,
pageSize: 99
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[
{xiaoqu:'微途科技1',bumen:'销售部1',name:'徐总',gstic:'1.00',ewaijine:'0.00',riqi:'2019-03-15','qishu':'20190211'},
{xiaoqu:'微途科技2',bumen:'销售部2',name:'徐总',gstic:'12.00',ewaijine:'0.00',riqi:'2019-03-15','qishu':'20190215'},
{xiaoqu:'微途科技3',bumen:'销售部3',name:'徐总',gstic:'7.00',ewaijine:'0.00',riqi:'2019-03-15','qishu':'20190216'},
{xiaoqu:'微途科技3',bumen:'销售部3',name:'徐总',gstic:'9.00',ewaijine:'0.00',riqi:'2019-03-15','qishu':'20190218'},
],
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
}
},
created() {},
mounted() {
// this.getRuleList();//获取规则
this.company =[];
this.tableData.forEach(x=>{
let obj={
text:x.xiaoqu,
value:x.xiaoqu
}
let obj2={
text:x.bumen,
value:x.bumen
}
this.company.push(obj)
this.department.push(obj2)
})
this.company = this.unique(this.company)
this.department = this.unique( this.department)
console.log(this.$route.query)
if(this.$route.query && this.$route.query.id){
this.msg.PeriodId = this.$route.query.id
}
this.getList()
this.setClass()
},
methods: {
unique(Arr){
var hash = {};
Arr = Arr.reduce(function(arr, current) {
hash[current.text]
? ""
: (hash[current.text] = true && arr.push(current));
return arr;
}, []);
return Arr;
},
getRuleList(){
getList(){
if(this.msg)
this.loading = true;
getSellCommissionRuleList({}).then(res => {
getSellCommissionUserList(this.msg).then(res => {
if (res.Code == 1) {
this.listData = res.Data
this.GetClassTypePageList();//获取班级类型列表数据
this.tableData = res.Data
}
})
},
//选择班级
setClass(item) {
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
}
}
});
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
} else {
const needle = val.toLowerCase()
this.ClassList = this.allClassList.filter(v => v.ClassName.toLowerCase().indexOf(needle) > -1)
}
})
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
userId: id,
preriodId:this.$route.query.id,
blank: 'y',
tab: '单据详情'
}
})
},
......@@ -162,8 +182,18 @@
const property = column['property'];
return row[property] === value;
},
fn2(a,b){
return a.gstic - b.gstic;
StudentCount(a,b,c){
console.log(a,b,c)
return a.StudentCount - b.StudentCount;
},
CurrentPeriodMoney(a,b){
return a.CurrentPeriodMoney - b.CurrentPeriodMoney;
},
CurrentExtraMoney(a,b){
return a.CurrentExtraMoney - b.CurrentExtraMoney;
},
CommissionMoney(a,b){
return a.CommissionMoney - b.CommissionMoney;
}
},
......
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.cycleOrderList .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.cycleOrderList .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
}
.cycleOrderList ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.cycleOrderList ._icon_btn i {
width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.cycleOrderList .el-table td,.el-table th{
padding: 5px 0;
}
</style>
<template>
<div class="page-body cycleOrderList">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
周期提成 订单提成查询
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
border
style="width: 100%">
<el-table-column prop="SchoolName" label="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="用户" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<template slot-scope="scope">
<div style="cursor: pointer;text-decoration: underline;" @click='goorderUrl(scope.row.OrderId)'>{{scope.row.OrderId}} </div>
</template>
</el-table-column>
<el-table-column width='130' prop="TotalCommissionMoney" label="订单发放信息">
<template slot-scope="scope">
<div>应发:{{scope.row.TotalCommissionMoney}}</div>
<div>额外奖励:{{scope.row.OtherMoney}}</div>
<div>额外扣除:{{scope.row.BackMoney}}</div>
<div>累计已发:{{scope.row.GiveOutMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="IsFirstCommission" label="首次发放">
<template slot-scope="scope">
<div>{{scope.row.IsFirstCommission==1?'是':'否'}}</div>
</template>
</el-table-column>
<el-table-column prop="TotalHours" label="总课时"> </el-table-column>
<el-table-column width='110' prop="TotalLearn" label="已学习课时"> </el-table-column>
<el-table-column width='110' prop="CurrentHours" label="当期消费课时">
<template slot-scope="scope">
<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>应发:{{scope.row.CurrentPeriodMoney}}</div>
<div>额外奖励:{{scope.row.CurrentExtraMoney}}</div>
<div>抵扣:{{scope.row.DeductionMoney}}</div>
<div>奖励抵扣:{{scope.row.DeductionExtraMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="YFMoney" label="最终发放"> </el-table-column>
<el-table-column width='85' prop="Periods" label="期数"> </el-table-column>
<el-table-column prop="Remark" label="备注"> </el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionForOrderList,
} from '../../api/finance/index'
import {
getClassDropDownList,
} from "../../api/school/index";
export default {
meta: {
title: "订单提成查询"
},
props: {},
components: {},
data() {
return {
loading: false,
//列表数据参数
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
}
},
created() {},
mounted() {
if(this.$route.query && this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId
}
this.getList()
// this.setClass()
},
methods: {
getList(){
if(this.msg)
this.loading = true;
getSellCommissionForOrderList(this.msg).then(res => {
if (res.Code == 1) {
this.tableData = res.Data
}
})
},
//选择班级
setClass(item) {
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
}
}
});
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
} else {
const needle = val.toLowerCase()
this.ClassList = this.allClassList.filter(v => v.ClassName.toLowerCase().indexOf(needle) > -1)
}
})
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
tab: '单据详情'
}
})
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b){
console.log(a,b)
return a.StudentCount - b.StudentCount;
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -15,14 +15,17 @@
.salesCommission ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.salesCommission ._icon_btn .icon-add{
background-color: #47BF8C;
}
.salesCommission ._icon_btn i {
width: 30px;
height: 30px;
width: 26px;
height: 26px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
line-height: 26px;
margin-right: 10px;
cursor: pointer;
outline: none;
......@@ -69,11 +72,14 @@
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('CommissionDetail',Id)"></i>
</el-tooltip>
@click="goUrl('CommissionDetail',scope.row.Id)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="制单" placement="top">
<i class="iconfont icon-add"
@click="generalFinancacls(scope.row)"></i>
</el-tooltip>
</div>
</template>
</template>
</el-table-column>
</el-table>
......@@ -148,10 +154,35 @@
query: {
"id": id,
blank: 'y',
tab: '单据详情'
}
})
},
generalFinancacls(item) {
if (item.FrIdList && item.FrIdList.length > 0) {
this.Error("请不要多次制单!")
return;
}
let obj = {
CostType: 16,
Money: item.SumPrice,
CurrencyId: 21,
XSTC: 1,
}
let query = {
blank: "y",
tab: "新增付款单据",
Type: 2,
IsUploadPic: 1,
Name:'总部销售提成单',
id:28,
orderObj: JSON.stringify(obj)
}
this.$router.push({
path: "/financial/financalDocument/addFinancialDocuments",
query
});
},
handleCurrentChanges(val){
console.log(val)
this.msg.PageIndex= val;
......
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.userCommissionDetails .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.userCommissionDetails .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
}
.userCommissionDetails ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.userCommissionDetails ._icon_btn i {
width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.userCommissionDetails .el-table td,.el-table th{
padding: 5px 0;
}
</style>
<template>
<div class="page-body userCommissionDetails">
<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 use-input input-debounce="0" option-value="ClassId" clearable @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>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" />
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
border
style="width: 100%">
<el-table-column prop="SchoolName" label="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="用户" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<template slot-scope="scope">
<div style="cursor: pointer;text-decoration: underline;" @click='goorderUrl(scope.row.OrderId)'>{{scope.row.OrderId}} </div>
</template>
</el-table-column>
<el-table-column width='130' prop="TotalCommissionMoney" label="订单发放信息">
<template slot-scope="scope">
<div>应发:{{scope.row.TotalCommissionMoney}}</div>
<div>额外奖励:{{scope.row.OtherMoney}}</div>
<div>额外扣除:{{scope.row.BackMoney}}</div>
<div>累计已发:{{scope.row.GiveOutMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="IsFirstCommission" label="首次发放">
<template slot-scope="scope">
<div>{{scope.row.IsFirstCommission==1?'是':'否'}}</div>
</template>
</el-table-column>
<el-table-column prop="TotalHours" label="总课时"> </el-table-column>
<el-table-column width='110' prop="TotalLearn" label="已学习课时"> </el-table-column>
<el-table-column width='110' prop="CurrentHours" label="当期消费课时">
<template slot-scope="scope">
<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>应发:{{scope.row.CurrentPeriodMoney}}</div>
<div>额外奖励:{{scope.row.CurrentExtraMoney}}</div>
<div>抵扣:{{scope.row.DeductionMoney}}</div>
<div>奖励抵扣:{{scope.row.DeductionExtraMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="YFMoney" label="最终发放"> </el-table-column>
<el-table-column width='85' prop="Periods" label="期数"> </el-table-column>
<el-table-column prop="Remark" label="备注"> </el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionUserDetailList,
} from '../../api/finance/index'
import {
getClassDropDownList,
} from "../../api/school/index";
export default {
meta: {
title: "用户提成明细"
},
props: {},
components: {},
data() {
return {
loading: false,
//列表数据参数
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
}
},
created() {},
mounted() {
if(this.$route.query && this.$route.query.userId){
this.msg.UserId = this.$route.query.userId
}
if(this.$route.query && this.$route.query.preriodId){
this.msg.PeriodId = this.$route.query.preriodId
}
this.getList()
this.setClass()
},
methods: {
getList(){
if(this.msg)
this.loading = true;
getSellCommissionUserDetailList(this.msg).then(res => {
if (res.Code == 1) {
this.tableData = res.Data
}
})
},
//选择班级
setClass(item) {
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
}
}
});
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
} else {
const needle = val.toLowerCase()
this.ClassList = this.allClassList.filter(v => v.ClassName.toLowerCase().indexOf(needle) > -1)
}
})
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
tab: '单据详情'
}
})
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b){
console.log(a,b)
return a.StudentCount - b.StudentCount;
},
goorderUrl(id){
console.log(id)
this.$router.push({
path: '/financial/cycleOrderList' ,
query: {
OrderId: id,
blank: 'y',
}
})
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -243,15 +243,25 @@ const routes = [{
import("pages/financial/salesRules.vue")
},
{
path: "/financial/salesCommission", //销售提成列表
path: "/financial/salesCommission", //提成周期列表
component: () =>
import("pages/financial/salesCommission.vue")
},
{
path: "/financial/CommissionDetail", //销售提成详情
path: "/financial/CommissionDetail", //周期提成 用户统计列表
component: () =>
import("pages/financial/CommissionDetail.vue")
},
{
path: "/financial/userCommissionDetails", //周期提成 用户提成明细
component: () =>
import("pages/financial/userCommissionDetails.vue")
},
{
path: "/financial/cycleOrderList", //周期提成 订单提成查询
component: () =>
import("pages/financial/cycleOrderList.vue")
},
{
......
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