Commit 021b4496 authored by 罗超's avatar 罗超

调整返佣显示和修改服务人员BUG

parent cac8dfc1
<style>
.delAssist {
.delAssist {
position: absolute;
right: -16px;
top: -12px;
......@@ -12,58 +12,129 @@
text-align: center;
line-height: 20px;
cursor: pointer;
}
}
.studentAssitTable {
.studentAssitTable {
width: 100%;
text-align: center;
}
}
.studentAssitTable td {
.studentAssitTable td {
height: 40px;
line-height: 40px;
border: 1px solid #f2f2f2;
}
}
.studentAssitTable th {
.studentAssitTable th {
height: 40px;
background-color: #f2f2f2;
}
}
</style>
<template>
<div>
<!--课程顾问 或有教师权限-->
<template v-if="userInfo.IsCourseConsultant == 1||isHaveTeacherEdit||isHaveXueManager">
<q-btn label="新增" color="accent q-mb-lg" size="sm" @click="isShowAdd = true" />
<template
v-if="
userInfo.IsCourseConsultant == 1 ||
isHaveTeacherEdit ||
isHaveXueManager
"
>
<q-btn
label="新增"
color="accent q-mb-lg"
size="sm"
@click="isShowAdd = true"
/>
</template>
<template v-else>
<span class="text-grey-4">抱歉,你没有权限邀请其他服务人员</span>
</template>
<q-btn label="取消" style="margin-left:20px;" v-if="isShowAdd" flat color="grey-10 q-mb-lg" size="sm"
@click="isShowAdd = false" />
<q-btn
label="取消"
style="margin-left:20px;"
v-if="isShowAdd"
flat
color="grey-10 q-mb-lg"
size="sm"
@click="isShowAdd = false"
/>
<template v-if="isShowAdd">
<div class="row wrap">
<q-select filled stack-label option-label="Name" @input="changeData" v-model="AssitMsg.AssistType"
option-value="Id" :options="AssistDropList" label="角色" dense class="col-6 q-pb-lg q-pr-lg" emit-value
map-options />
<q-select filled dense v-if="AssitMsg.AssistType == 2" v-model="AssitMsg.AssistId" :options="RoleListData"
option-label="EmployeeName" class="col-6 q-pb-lg" option-value="Id" emit-value map-options />
<q-select filled dense v-if="AssitMsg.AssistType == 4" v-model="AssitMsg.AssistId"
:options="TeacherList" option-label="EmployeeName" class="col-6 q-pb-lg" option-value="Id" emit-value
map-options />
<q-select filled dense v-else v-model="AssitMsg.AssistId" @filter="filterEmployee" use-input
:options="myEmployeeList" option-label="EmployeeName" class="col-6 q-pb-lg" option-value="Id" emit-value
map-options />
<q-select
filled
stack-label
option-label="Name"
@input="changeData"
v-model="AssitMsg.AssistType"
option-value="Id"
:options="AssistDropList"
label="角色"
dense
use-input
class="col-6 q-pb-lg q-pr-lg"
emit-value
map-options
/>
<q-select
filled
dense
v-if="AssitMsg.AssistType == 2"
v-model="AssitMsg.AssistId"
:options="RoleListData"
option-label="EmployeeName"
class="col-6 q-pb-lg"
option-value="Id"
emit-value
use-input
map-options
/>
<q-select
filled
dense
v-else-if="AssitMsg.AssistType == 4"
v-model="AssitMsg.AssistId"
:options="TeacherList"
option-label="EmployeeName"
class="col-6 q-pb-lg"
option-value="Id"
emit-value
use-input
map-options
/>
<q-select
filled
dense
v-else
v-model="AssitMsg.AssistId"
@filter="filterEmployee"
use-input
:options="myEmployeeList"
option-label="EmployeeName"
class="col-6 q-pb-lg"
option-value="Id"
emit-value
map-options
/>
<i class="iconfont icon-close delAssist"></i>
</div>
<div class="row wrap" style="margin-bottom:10px;float:right;">
<q-btn label="保存" color="accent q-mb-lg" size="md" @click="saveAssit()" />
<q-btn
label="保存"
color="accent q-mb-lg"
size="md"
@click="saveAssit()"
/>
</div>
</template>
<div v-if="dataList.length > 0">
<table class="studentAssitTable" style="border:1px solid #f2f2f2;border-collapse:collapse;" cellspacing="0"
cellpadding="0">
<table
class="studentAssitTable"
style="border:1px solid #f2f2f2;border-collapse:collapse;"
cellspacing="0"
cellpadding="0"
>
<tr>
<th style="width:180px;">角色</th>
<th style="width:180px;">人员</th>
......@@ -73,18 +144,57 @@
<td>{{ item.AssistTypeName }}</td>
<td>{{ item.AssistName }}</td>
<td>
<template v-if="userInfo.IsCourseConsultant == 1||isHaveTeacherEdit||isHaveXueManager">
<div v-if="userInfo.IsCourseConsultant == 1&&(item.AssistType == 2 ||item.AssistType == 3)">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="修改"
@click="getEditInfo(item)"></q-btn>
<q-btn flat size="xs" icon="delete" color="negative" style="font-weight:400" label="删除"
@click="deleteAssits(item.Id)" />
<template
v-if="
userInfo.IsCourseConsultant == 1 ||
isHaveTeacherEdit ||
isHaveXueManager
"
>
<div
v-if="
userInfo.IsCourseConsultant == 1 &&
(item.AssistType == 2 || item.AssistType == 3)
"
>
<q-btn
flat
size="xs"
icon="edit"
color="accent"
style="font-weight:400"
label="修改"
@click="getEditInfo(item)"
></q-btn>
<q-btn
flat
size="xs"
icon="delete"
color="negative"
style="font-weight:400"
label="删除"
@click="deleteAssits(item.Id)"
/>
</div>
<div v-if="isHaveTeacherEdit &&item.AssistType ==4">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="修改"
@click="getEditInfo(item)"></q-btn>
<q-btn flat size="xs" icon="delete" color="negative" style="font-weight:400" label="删除"
@click="deleteAssits(item.Id)" />
<div v-if="isHaveTeacherEdit && item.AssistType == 4">
<q-btn
flat
size="xs"
icon="edit"
color="accent"
style="font-weight:400"
label="修改"
@click="getEditInfo(item)"
></q-btn>
<q-btn
flat
size="xs"
icon="delete"
color="negative"
style="font-weight:400"
label="删除"
@click="deleteAssits(item.Id)"
/>
</div>
</template>
</td>
......@@ -94,20 +204,16 @@
</div>
</template>
<script>
import {
import {
GetAssistTypeList,
SetStudentAssist,
GetStudentAssistList,
RemoveStudentAssist
} from "../../../api/sale/sale";
import {
queryEmployee
} from "../../../api/users/user";
import {
mapState
} from "vuex";
} from "../../../api/sale/sale";
import { queryEmployee } from "../../../api/users/user";
import { mapState } from "vuex";
export default {
export default {
meta: {
title: ""
},
......@@ -169,8 +275,7 @@
}
}
return false;
},
}
}),
mounted() {
this.getList();
......@@ -206,7 +311,7 @@
var queryObj = {
IsLeave: 1,
UserRole: 0,
AccountTypeStr: "",
AccountTypeStr: ""
};
if (this.AssitMsg.AssistType == 2) {
queryObj.UserRole = 2;
......@@ -215,7 +320,7 @@
});
}
if (this.AssitMsg.AssistType == 4) {
queryObj.AccountTypeStr = "2"
queryObj.AccountTypeStr = "2";
queryEmployee(queryObj).then(res => {
this.TeacherList = res.Data;
});
......@@ -303,6 +408,7 @@
this.AssitMsg.AssistId = obj.AssistId;
this.AssitMsg.AssistType = obj.AssistType;
this.isShowAdd = true;
this.changeData();
},
getGuwenEditInfo(obj) {
this.getRole();
......@@ -312,5 +418,5 @@
this.isShowAdd = true;
}
}
};
};
</script>
<style scoped>
@import "../css/cssReset.css";
.January{
background-color: #B3E5FC;
.January {
background-color: #b3e5fc;
}
.February{
background-color: #C8E6C9;
.February {
background-color: #c8e6c9;
}
.March{
background-color: #FFCCD2;
.March {
background-color: #ffccd2;
}
.April{
background-color: #F8DDE0;
.April {
background-color: #f8dde0;
}
.May{
background-color: #E1BEE7;
.May {
background-color: #e1bee7;
}
.June{
background-color: #D1C4E9;
.June {
background-color: #d1c4e9;
}
.July{
background-color: #C5CAE9;
.July {
background-color: #c5cae9;
}
.August{
background-color: #F0F4C3;
.August {
background-color: #f0f4c3;
}
.September{
background-color: #FFF9C4;
.September {
background-color: #fff9c4;
}
.October{
background-color: #FFECB3;
.October {
background-color: #ffecb3;
}
.November{
background-color: #FFE0B2;
.November {
background-color: #ffe0b2;
}
.December{
background-color: #FFCCBC;
.December {
background-color: #ffccbc;
}
.singeRowTable tr:nth-child(2n + 1) {
background: none;
......@@ -85,7 +85,7 @@
border: 1px solid #d2d2d2;
}
.SubtotalBj {
background-color: #A5A5A5;
background-color: #a5a5a5;
}
.stulistNumber {
......@@ -121,8 +121,15 @@
<div class="col-3">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="dateArray[0]" style="width:100%" value-format="yyyy-MM" @change="resetSearch()"
size="small" type="month" placeholder="选择开始年月">
<el-date-picker
v-model="dateArray[0]"
style="width:100%"
value-format="yyyy-MM"
@change="resetSearch()"
size="small"
type="month"
placeholder="选择开始年月"
>
</el-date-picker>
</template>
</q-field>
......@@ -130,20 +137,35 @@
<div class="col-3">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="dateArray[1]" style="width:100%" value-format="yyyy-MM" @change="resetSearch()"
size="small" type="month" placeholder="选择结束年月">
<el-date-picker
v-model="dateArray[1]"
style="width:100%"
value-format="yyyy-MM"
@change="resetSearch()"
size="small"
type="month"
placeholder="选择结束年月"
>
</el-date-picker>
</template>
</q-field>
</div>
</div>
</div>
<div class="page-search row items-center" style="justify-content: space-between;">
<div
class="page-search row items-center"
style="justify-content: space-between;"
>
<div></div>
<q-btn  color="primary" size="11px" label="导出" @click="tcexport" style="margin-left:10px"/>
<q-btn
color="primary"
size="11px"
label="导出"
@click="tcexport"
style="margin-left:10px"
/>
</div>
<div style="width: 100%;margin-top: 20px">
<div style="width: 100%;overflow-x: auto;">
<table
......@@ -171,18 +193,33 @@
style="min-width: 500px;"
v-for="(item, index) in RListlength"
:key="index"
:class="item.Month.slice(6)==1?'January':
(item.Month.slice(6)==2?'February':
(item.Month.slice(6)==3?'March':
(item.Month.slice(6)==4?'April':
(item.Month.slice(6)==5?'May':
(item.Month.slice(6)==6?'June':
(item.Month.slice(6)==7?'July':
(item.Month.slice(6)==7?'August':
(item.Month.slice(6)==7?'September':
(item.Month.slice(5)==10?'October':
(item.Month.slice(5)==11?'November':
(item.Month.slice(5)==12?'December':'')))))))))))"
:class="
item.Month.slice(6) == 1
? 'January'
: item.Month.slice(6) == 2
? 'February'
: item.Month.slice(6) == 3
? 'March'
: item.Month.slice(6) == 4
? 'April'
: item.Month.slice(6) == 5
? 'May'
: item.Month.slice(6) == 6
? 'June'
: item.Month.slice(6) == 7
? 'July'
: item.Month.slice(6) == 7
? 'August'
: item.Month.slice(6) == 7
? 'September'
: item.Month.slice(5) == 10
? 'October'
: item.Month.slice(5) == 11
? 'November'
: item.Month.slice(5) == 12
? 'December'
: ''
"
>
<span v-if="item.Month.slice(5) < 10">{{
item.Month.slice(6)
......@@ -208,7 +245,7 @@
v-for="(item, index) in dataList"
:key="index"
v-if="dataList && dataList.length > 0"
:class="item.RoleName=='小计'? 'SubtotalBj' : ''"
:class="item.RoleName == '小计' ? 'SubtotalBj' : ''"
>
<td style=" border: 1px solid #d2d2d2;">
{{ item.DeptName }}
......@@ -219,14 +256,16 @@
<td>
{{ item.EmpName }}
</td>
<td v-for="(x, y) in titlelist" :key="y"
>
<td v-for="(x, y) in titlelist" :key="y">
<div v-if="item.MonthList[x.index]">
<div v-if="x.Id == 1">
<span>{{ item.MonthList[x.index].Achievement }}</span>
</div>
<div v-if="x.Id == 2" style="padding: 7px;">
<span>{{ item.MonthList[x.index].Rate }}</span>
<span
>{{ item.MonthList[x.index].Rate
}}{{ item.MonthList[x.index].Rate ? "%" : "" }}</span
>
</div>
<div v-if="x.Id == 3" style="padding: 3px;">
<span>{{ item.MonthList[x.index].Rebate }}</span>
......@@ -295,7 +334,7 @@ export default {
dataList: [], //列表数据
dateArray: [], //日期数组
RListlength: 0,
titlelist: [],
titlelist: []
};
},
created() {},
......@@ -309,18 +348,23 @@ export default {
this.getList(); //获取数据
},
methods: {
tcexport(){//导出
tcexport() {
//导出
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/SellAchievements/GetSellAchievementsRankStatToExcel", msg, "业绩提成排名.xls")
EduDownLoad(
"/SellAchievements/GetSellAchievementsRankStatToExcel",
msg,
"业绩提成排名.xls"
);
},
resetSearch() {
if(!this.dateArray[0]||!this.dateArray[1]){
if (!this.dateArray[0] || !this.dateArray[1]) {
this.$q.notify({
type: 'negative',
type: "negative",
position: "top",
message: `请选择开始和结束时间`
})
return
});
return;
}
this.msg.pageIndex = 1;
this.getList();
......@@ -379,27 +423,27 @@ export default {
for (let i = 0; i < this.RListlength.length; i++) {
let obj = [
{
Name: "业绩",
Name: "一般业绩",
Id: 1,
index: i
},
{
Name: "业绩比例",
Id: 2,
Name: "返佣总额",
Id: 3,
index: i
},
{
Name: "订单返佣",
Id: 3,
Name: "业绩比例",
Id: 2,
index: i
},
{
Name: "提成",
Name: "销售提成",
Id: 4,
index: i
},
{
Name: "返佣金额",
Name: "销售佣金",
Id: 5,
index: i
},
......@@ -409,7 +453,7 @@ export default {
index: i
},
{
Name: "合计",
Name: "销售收入合计",
Id: 7,
index: i
}
......@@ -420,7 +464,7 @@ export default {
.catch(() => {
this.loading = false;
});
},
}
}
};
</script>
......
<style>
.baseSet_Title {
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
}
.CommissionDetail .border-bottom {
.CommissionDetail .border-bottom {
padding-bottom: 5px;
margin-bottom: 5px;
}
}
.CommissionDetail .text-bottom {
.CommissionDetail .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
}
.CommissionDetail ._icon_btn i.icon-sousuo {
.CommissionDetail ._icon_btn i.icon-sousuo {
background-color: #47bf8c;
}
}
.CommissionDetail ._icon_btn i {
.CommissionDetail ._icon_btn i {
width: 26px;
height: 26px;
display: inline-block;
......@@ -31,93 +31,225 @@
margin-right: 10px;
cursor: pointer;
outline: none;
}
}
.CommissionDetail .el-table td,
.el-table th {
.CommissionDetail .el-table td,
.el-table th {
padding: 5px 0;
}
}
</style>
<template>
<div class="page-body CommissionDetail">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div style="margin-right: 10px;">
<q-btn color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px" />
<q-btn
color="primary"
size="11px"
label="返回"
@click="goreturn"
style="margin-left:10px"
/>
</div>
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3" v-if="isShowFrom">
<q-select filled stack-label :disable="!isShowFrom" input-debounce="0" option-value="Id" @input="getlaiyuan"
option-label="Name" v-model="msg.OrderSourceType" :options="customFromList" label="来源" dense
emit-value map-options>
<q-select
filled
stack-label
:disable="!isShowFrom"
input-debounce="0"
option-value="Id"
@input="getlaiyuan"
option-label="Name"
v-model="msg.OrderSourceType"
:options="customFromList"
label="返佣类型"
dense
emit-value
map-options
>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3">
<q-select filled stack-label clearable v-model="msg.UserDept" dense :options="DepartmentList"
use-input @input="getList(),getEmployeeList()" label="部门" @filter="filterEmployee" option-label="DeptName"
option-value="DeptId" emit-value map-options>
<div
class="col-3"
v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3"
>
<q-select
filled
stack-label
clearable
v-model="msg.UserDept"
dense
:options="DepartmentList"
use-input
@input="getList(), getEmployeeList()"
label="部门"
@filter="filterEmployee"
option-label="DeptName"
option-value="DeptId"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3">
<q-select filled stack-label clearable v-model="msg.OrderSourceId" dense :options="myEmployeeList"
use-input @input="getList" label="人员" @filter="filterEmployee" option-label="EmployeeName"
option-value="Id" emit-value map-options>
<div
class="col-3"
v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3"
>
<q-select
filled
stack-label
clearable
v-model="msg.OrderSourceId"
dense
:options="myEmployeeList"
use-input
@input="getList"
label="人员"
@filter="filterEmployee"
option-label="EmployeeName"
option-value="Id"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 2">
<q-select filled stack-label v-model="msg.OrderSourceId" clearable dense :options="customList"
use-input @input="getList" label="关联同行" @filter="filterFn" option-label="CustomerName"
option-value="CustomerId" emit-value map-options>
<q-select
filled
stack-label
v-model="msg.OrderSourceId"
clearable
dense
:options="customList"
use-input
@input="getList"
label="关联同行"
@filter="filterFn"
option-label="CustomerName"
option-value="CustomerId"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 4">
<q-select filled clearable stack-label v-model="msg.OrderSourceId" dense :options="InvitationList"
use-input @input="getList" label="转介人" @filter="filterFnStudent" option-label="StuName"
option-value="StuId" emit-value map-options>
<q-select
filled
clearable
stack-label
v-model="msg.OrderSourceId"
dense
:options="InvitationList"
use-input
@input="getList"
label="转介人"
@filter="filterFnStudent"
option-label="StuName"
option-value="StuId"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" style="float:right;">
<q-btn color="accent" class="q-mr-md" size="sm" icon="download" style="margin-top:6px;" @click="DownLoadCommissionUserList" label="下载" />
<q-btn
color="accent"
class="q-mr-md"
size="sm"
icon="download"
style="margin-top:6px;"
@click="DownLoadCommissionUserList"
label="下载"
/>
</div>
</div>
</div>
</div>
<template>
<el-table ref="filterTable" :data="tableData" v-loading="loading"
:header-cell-style="{ backgroundColor: '#f5f6f7', color: '#a8a8b3' }" border style="width: 100%">
<el-table
ref="filterTable"
:data="tableData"
v-loading="loading"
:header-cell-style="{ backgroundColor: '#f5f6f7', color: '#a8a8b3' }"
border
style="width: 100%"
>
<el-table-column prop="SchoolName" label="校区"></el-table-column>
<el-table-column prop="UserDeptName" label="部门"></el-table-column>
<el-table-column prop="UserName" label="人员" :filters="UserNamelist" :filter-method="filterHandler">
<el-table-column
prop="UserName"
label="人员"
:filters="UserNamelist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column prop="OrderSourceTypeName" label="类型"></el-table-column>
<el-table-column prop="StudentCount" label="学生数量" sortable :sort-method="StudentCount"></el-table-column>
<el-table-column prop="CommissionMoeny" label="提成金额" sortable :sort-method="CommissionMoeny"></el-table-column>
<el-table-column label="类型">
<template slot-scope="scope">
{{
scope.row.OrderSourceType == 1 || scope.row.OrderSourceType == 3
? "员工"
: ""
}}
{{ scope.row.OrderSourceType == 2 ? "同业" : "" }}
{{ scope.row.OrderSourceType == 4 ? "学员" : "" }}
</template>
</el-table-column>
<el-table-column
prop="StudentCount"
label="学生数量"
sortable
:sort-method="StudentCount"
></el-table-column>
<el-table-column
prop="CommissionMoeny"
label="提成金额"
sortable
:sort-method="CommissionMoeny"
></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('returnPassbook/returnpassbookStatistics', scope.row)"></i>
<el-tooltip
class="item"
effect="dark"
content="查看"
placement="top"
>
<i
class="iconfont icon-sousuo"
@click="
goUrl('returnPassbook/returnpassbookStatistics', scope.row)
"
></i>
</el-tooltip>
</div>
</template>
......@@ -127,37 +259,18 @@
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../../api/system/index';
import {
GetStudentList,
} from '../../../api/course/class';
import {
getCommissionUserList,
} from '../../../api/finance/index'
import {
getStudentDorpDownList
} from "../../../api/school/index";
import { GetClassTypePageList } from "../../../api/system/index";
import { GetStudentList } from "../../../api/course/class";
import { getCommissionUserList } from "../../../api/finance/index";
import { getStudentDorpDownList } from "../../../api/school/index";
import {
getDeptList
} from '../../../api/system/dept'
import { getDeptList } from "../../../api/system/dept";
import {
queryEmployee
} from '../../../api/users/user'
import {
CreateTypeList,
GetCustomerList
} from '../../../api/sale/sale'
import {
EduDownLoad
} from "../../../api/common/common";
import {
mapState
} from "vuex";
export default {
import { queryEmployee } from "../../../api/users/user";
import { CreateTypeList, GetCustomerList } from "../../../api/sale/sale";
import { EduDownLoad } from "../../../api/common/common";
import { mapState } from "vuex";
export default {
meta: {
title: "销售提成详情"
},
......@@ -169,32 +282,38 @@
//列表数据参数
msg: {
BatchId: 0,
SchoolId: '-1',
Status: '-2',
OrderSourceType: '-1',
OrderSourceId: '',
Q_SelectNormal: '2',
UserDept: "",
SchoolId: "-1",
Status: "-2",
OrderSourceType: "-1",
OrderSourceId: "",
Q_SelectNormal: "2",
UserDept: ""
},
pageCount: 0,
persistent: false,
tableData: [],
StatusList: [{
Id: '-2',
Name: '不限'
}, {
Id: '-1',
Name: '不返佣'
}, {
Id: '0',
Name: '待返佣'
}, {
Id: '1',
Name: '已返佣到账户'
}, {
Id: '2',
Name: '佣金已提现'
}, ],
StatusList: [
{
Id: "-2",
Name: "不限"
},
{
Id: "-1",
Name: "不返佣"
},
{
Id: "0",
Name: "待返佣"
},
{
Id: "1",
Name: "已返佣到账户"
},
{
Id: "2",
Name: "佣金已提现"
}
],
see_tcdetailed: false,
customFromList: [],
UserNamelist: [],
......@@ -207,14 +326,17 @@
InvitationList: [], //学员下拉数据
AllInvitationList: [],
isShowFrom: true,
DepartmentList: [], //部门列表
}
DepartmentList: [] //部门列表
};
},
computed: mapState({
//是否有下载权限
isReturnperiods(state) {
if (state.user.userInfo && state.user.userInfo.ActionMenuList && state.user.userInfo.ActionMenuList.length >
0) {
if (
state.user.userInfo &&
state.user.userInfo.ActionMenuList &&
state.user.userInfo.ActionMenuList.length > 0
) {
let action = state.user.userInfo.ActionMenuList.find(x => {
if (x.FunctionCode == "Edit_Returnperiods") {
return x;
......@@ -228,17 +350,17 @@
created() {
this.getCustomFrom();
this.queryDeptList();
this.getEmployeeList()
this.getStudentDorpDown()
this.GetCustomerList()
this.getEmployeeList();
this.getStudentDorpDown();
this.GetCustomerList();
this.getStudentList(); //学员下拉
if(! this.isReturnperiods){
if (!this.isReturnperiods) {
this.msg.OrderSourceType = 2;
}
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.msg.BatchId = this.$route.query.id
this.msg.BatchId = this.$route.query.id;
}
if (this.$route.query.ReFinanceId2) {
this.msg.UserDept = this.$route.query.ReFinanceId2;
......@@ -247,14 +369,14 @@
this.msg.OrderSourceType = 4;
this.isShowFrom = false;
}
this.getList()
this.getList();
},
methods: {
getList() {
this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg))
if (msg.OrderSourceId == '' || msg.OrderSourceId == null) {
msg.OrderSourceId = 0
let msg = JSON.parse(JSON.stringify(this.msg));
if (msg.OrderSourceId == "" || msg.OrderSourceId == null) {
msg.OrderSourceId = 0;
}
getCommissionUserList(msg).then(res => {
if (res.Code == 1) {
......@@ -265,12 +387,12 @@
let obj3 = {
text: x.UserName,
value: x.UserName
};
this.UserNamelist.push(obj3);
});
this.UserNamelist = this.unique(this.UserNamelist);
}
this.UserNamelist.push(obj3)
})
this.UserNamelist = this.unique(this.UserNamelist)
}
})
});
},
//现在
DownLoadCommissionUserList() {
......@@ -279,18 +401,19 @@
EduDownLoad(
"/CustomerCommission/DownLoadCommissionUserList",
msg,
"用户返佣.xls", res => {
"用户返佣.xls",
res => {
this.loading = false;
}
);
},
getlaiyuan() {
if (this.msg.OrderSourceType == -1) {
this.msg.OrderSourceId = 0
this.msg.OrderSourceId = 0;
} else {
this.msg.OrderSourceId = ''
this.msg.OrderSourceId = "";
}
this.msg.UserDept="";
this.msg.UserDept = "";
this.getList();
},
//获取部门列表
......@@ -307,24 +430,30 @@
CreateTypeList({}).then(res => {
if (res.Code == 1) {
let obj = {
Name: '不限',
Id: '-1'
}
if(this.isReturnperiods){
Name: "不限",
Id: "-1"
};
if (this.isReturnperiods) {
this.customFromList = res.Data;
this.customFromList.unshift(obj);
}else{
res.Data.forEach(data=>{
if(data.Id ==2){
} else {
res.Data.forEach(data => {
if (data.Id == 2) {
this.customFromList.push(data);
}
})
});
}
this.customFromList.forEach(data => {
if (data.Id == 1 || data.Id == 3) {
data.Name = "员工";
} else if (data.Id == 2) {
data.Name = "同业";
} else if (data.Id == 4) {
data.Name = "学员";
}
})
});
}
});
},
//筛选转介人
filterStudent(val, update, abort) {
......@@ -334,11 +463,10 @@
);
});
},
unique(arr, Name) { //数组去重
unique(arr, Name) {
//数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
);
return arr.filter(list => !res.has(list.text) && res.set(list.text, 1));
},
//筛选员工
filterEmployee(val, update, abort) {
......@@ -356,7 +484,7 @@
}).then(res => {
this.employeeList = res.Data;
this.myEmployeeList = res.Data;
})
});
},
//获取转介人下拉
getStudentDorpDown() {
......@@ -365,19 +493,19 @@
this.TransListData = res.Data;
this.MyTransListData = res.Data;
}
})
});
},
//获取客户下拉数据
GetCustomerList() {
let msg = {
QCreateBy: 0
}
};
GetCustomerList(msg).then(res => {
if (res.Code == 1) {
this.customList = res.Data;
this.allCustomList = res.Data;
}
})
});
},
//筛选客户
filterFn(val, update) {
......@@ -387,7 +515,7 @@
} else {
const needle = val.toLowerCase();
this.customList = this.allCustomList.filter(
(v) => v.CustomerName.toLowerCase().indexOf(needle) > -1
v => v.CustomerName.toLowerCase().indexOf(needle) > -1
);
}
});
......@@ -405,32 +533,36 @@
this.InvitationList = JSON.parse(JSON.stringify(jsonData));
}
}
})
});
},
filterFnStudent(val, update) {
update(() => {
if (val === '') {
this.InvitationList = JSON.parse(JSON.stringify(this.AllInvitationList))
if (val === "") {
this.InvitationList = JSON.parse(
JSON.stringify(this.AllInvitationList)
);
} else {
const needle = val.toLowerCase()
this.InvitationList = this.AllInvitationList.filter(v => v.StuName.toLowerCase().indexOf(needle) > -1)
const needle = val.toLowerCase();
this.InvitationList = this.AllInvitationList.filter(
v => v.StuName.toLowerCase().indexOf(needle) > -1
);
}
})
});
},
goUrl(path, row) {
this.$router.push({
path: '/financial/' + path,
path: "/financial/" + path,
query: {
preriodId: this.$route.query.id,
CommissionType: this.$route.query.CommissionType,
OrderSourceType: row.OrderSourceType,
OrderSourceId: row.OrderSourceId,
blank: 'y',
blank: "y"
}
})
});
},
filterHandler(value, row, column) {
const property = column['property'];
const property = column["property"];
return row[property] === value;
},
StudentCount(a, b, c) {
......@@ -442,9 +574,9 @@
goreturn() {
this.$router.go(-1);
}
},
}
};
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
@import url('~assets/css/table.sass')
</style>
<style>
.baseSet_Title {
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.cycleOrderList .border-bottom {
}
.cycleOrderList .border-bottom {
padding-bottom: 5px;
margin-bottom: 5px;
}
}
.cycleOrderList .text-bottom {
.cycleOrderList .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
}
.cycleOrderList ._icon_btn i.icon-sousuo {
.cycleOrderList ._icon_btn i.icon-sousuo {
background-color: #47bf8c;
}
}
.cycleOrderList ._icon_btn i {
.cycleOrderList ._icon_btn i {
width: 30px;
height: 30px;
display: inline-block;
......@@ -32,113 +31,289 @@
margin-right: 10px;
cursor: pointer;
outline: none;
}
}
.cycleOrderList .el-table td,
.el-table th {
.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">
<q-select v-if="!isNormal" @input="resetSearch" filled stack-label option-value="Id" option-label="Name"
use-input v-model="msg.Status" :options="StatusList" label="状态" dense class="col-3" emit-value map-options>
<q-select
v-if="!isNormal"
@input="resetSearch"
filled
stack-label
option-value="Id"
option-label="Name"
use-input
v-model="msg.Status"
:options="StatusList"
label="状态"
dense
class="col-3"
emit-value
map-options
>
</q-select>
<div class="col-3" v-if="!isNormal">
<q-select filled stack-label @input="resetSearch()" option-value="Id" option-label="BatchName"
v-model="msg.BatchId" :options="PeriodsList" label="周期" dense emit-value map-options />
<q-select
filled
stack-label
@input="resetSearch()"
option-value="Id"
option-label="BatchName"
v-model="msg.BatchId"
:options="PeriodsList"
label="周期"
dense
emit-value
map-options
/>
</div>
<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 emit-value map-options
@filter="filterFnbanji">
<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
emit-value
map-options
@filter="filterFnbanji"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<template v-if="isReturnperiods">
<q-select v-if="!isNormal" @input="resetSearch" filled stack-label option-value="Id" option-label="Name"
use-input v-model="msg.CommissionType" :options="CommissionList" label="类型" dense class="col-3" emit-value
map-options></q-select>
<q-select v-if="!isNormal" @input="resetSearch" filled stack-label option-value="Id" option-label="Name"
use-input v-model="msg.Q_SelectNormal" :options="SelectNormal" label="返佣情况" dense class="col-3" emit-value
map-options></q-select>
<q-select class="col-3" filled stack-label input-debounce="0" v-if="!isEdit" option-value="Id"
@input="getlaiyuan" option-label="Name" v-model="msg.OrderSourceType" :options="customFromList" label="来源"
dense emit-value map-options></q-select>
<q-select
v-if="!isNormal"
@input="resetSearch"
filled
stack-label
option-value="Id"
option-label="Name"
use-input
v-model="msg.CommissionType"
:options="CommissionList"
label="类型"
dense
class="col-3"
emit-value
map-options
></q-select>
<q-select
v-if="!isNormal"
@input="resetSearch"
filled
stack-label
option-value="Id"
option-label="Name"
use-input
v-model="msg.Q_SelectNormal"
:options="SelectNormal"
label="返佣情况"
dense
class="col-3"
emit-value
map-options
></q-select>
<q-select
class="col-3"
filled
stack-label
input-debounce="0"
v-if="!isEdit"
option-value="Id"
@input="getlaiyuan"
option-label="Name"
v-model="msg.OrderSourceType"
:options="customFromList"
label="返佣类型"
dense
emit-value
map-options
></q-select>
<div class="col-3" v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3">
<q-select filled clearable stack-label v-model="msg.OrderSourceId" dense :options="myEmployeeList" use-input
@input="getList" label="人员" @filter="filterEmployee" option-label="EmployeeName" option-value="Id"
emit-value map-options>
<div
class="col-3"
v-if="msg.OrderSourceType == 1 || msg.OrderSourceType == 3"
>
<q-select
filled
clearable
stack-label
v-model="msg.OrderSourceId"
dense
:options="myEmployeeList"
use-input
@input="getList"
label="人员"
@filter="filterEmployee"
option-label="EmployeeName"
option-value="Id"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 2">
<q-select filled clearable stack-label v-model="msg.OrderSourceId" dense :options="customList" use-input
@input="getList" label="关联同行" @filter="filterFn" option-label="CustomerName" option-value="CustomerId"
emit-value map-options>
<q-select
filled
clearable
stack-label
v-model="msg.OrderSourceId"
dense
:options="customList"
use-input
@input="getList"
label="关联同行"
@filter="filterFn"
option-label="CustomerName"
option-value="CustomerId"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.OrderSourceType == 4">
<q-select filled clearable stack-label v-model="msg.OrderSourceId" dense :options="InvitationList" use-input
@input="getList" label="转介人" @filter="filterFnStudent" option-label="StuName" option-value="StuId"
emit-value map-options>
<q-select
filled
clearable
stack-label
v-model="msg.OrderSourceId"
dense
:options="InvitationList"
use-input
@input="getList"
label="转介人"
@filter="filterFnStudent"
option-label="StuName"
option-value="StuId"
emit-value
map-options
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">未找到相关数据</q-item-section>
<q-item-section class="text-grey"
>未找到相关数据</q-item-section
>
</q-item>
</template>
</q-select>
</div>
<div class="col-3">
<q-input filled dense v-model="msg.OrderId" @keyup.enter.native="resetSearch()" label="订单号" />
<q-input
filled
dense
v-model="msg.OrderId"
@keyup.enter.native="resetSearch()"
label="订单号"
/>
</div>
</template>
</div>
</div>
<div class="page-search row items-center" style="justify-content: space-between;">
<div
class="page-search row items-center"
style="justify-content: space-between;"
>
<span style="font-size: 20px;font-weight: 400;">
提成统计
<span style="font-size: 16px;">(提成总计:{{ TotalCommission }})</span>
</span>
<q-btn v-if="!isNormal" color="primary" size="11px" label="导出" @click="tcexport" style="margin-left:10px" />
<q-btn
v-if="!isNormal"
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' }" border style="width: 100%">
<el-table-column prop="SchoolName" label="校区" width="150"></el-table-column>
<el-table-column prop="OrderSourceTypeName" label="来源"></el-table-column>
<el-table
ref="filterTable"
:data="tableData"
v-loading="loading"
:header-cell-style="{ backgroundColor: '#f5f6f7', color: '#a8a8b3' }"
border
style="width: 100%"
>
<el-table-column
prop="SchoolName"
label="校区"
width="150"
></el-table-column>
<el-table-column prop="OrderSourceTypeName" label="返佣类型">
<template slot-scope="scope">
{{
scope.row.OrderSourceType == 1 || scope.row.OrderSourceType == 3
? "员工"
: ""
}}
{{ scope.row.OrderSourceType == 2 ? "同业" : "" }}
{{ scope.row.OrderSourceType == 4 ? "学员" : "" }}
</template>
</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>
<span style="cursor: pointer;text-decoration: underline;"
@click="goUrlclass('/course/classManage', scope.row.ClassName)">{{ scope.row.ClassName }}</span>
<span
style="cursor: pointer;text-decoration: underline;"
@click="goUrlclass('/course/classManage', scope.row.ClassName)"
>{{ scope.row.ClassName }}</span
>
</div>
<div>班号:{{ scope.row.ClassNo }}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号">
<template slot-scope="scope">
<div v-if="scope.row.OrderType == 1" style="cursor: pointer;text-decoration: underline;"
@click="goUrlorderList('/sale/orderStatistics', scope.row)">{{ scope.row.OrderId }}</div>
<div v-else-if="scope.row.OrderType == 2" style="cursor: pointer;text-decoration: underline;"
@click="goUrlorderList('/sale/studyOrderStatistics', scope.row)">{{ scope.row.OrderId }}</div>
<div
v-if="scope.row.OrderType == 1"
style="cursor: pointer;text-decoration: underline;"
@click="goUrlorderList('/sale/orderStatistics', scope.row)"
>
{{ scope.row.OrderId }}
</div>
<div
v-else-if="scope.row.OrderType == 2"
style="cursor: pointer;text-decoration: underline;"
@click="goUrlorderList('/sale/studyOrderStatistics', scope.row)"
>
{{ scope.row.OrderId }}
</div>
</template>
</el-table-column>
<el-table-column prop="StuName" label="学生"></el-table-column>
......@@ -148,9 +323,15 @@
<span v-if="scope.row.CommissionType == 2">幸福存折</span>
</template>
</el-table-column>
<el-table-column width="130" prop="CommissionMoeny" label="返佣/存折金额">
<el-table-column
width="130"
prop="CommissionMoeny"
label="返佣/存折金额"
>
<template slot-scope="scope">
<div>{{ scope.row.CommissionMoeny ? scope.row.CommissionMoeny : '-' }}</div>
<div>
{{ scope.row.CommissionMoeny ? scope.row.CommissionMoeny : "-" }}
</div>
</template>
</el-table-column>
<el-table-column prop="Status" label="状态">
......@@ -162,42 +343,41 @@
</template>
</el-table-column>
<el-table-column prop="BatchName" label="期数"></el-table-column>
<el-table-column prop="Remark" width="200" label="备注"></el-table-column>
<el-table-column
prop="Remark"
width="200"
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>
<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>
import {
import {
getSchoolDropdown,
getClassDropDownList,
getStudentDorpDownList
} from '../../../api/school/index'
import {
queryEmployee
} from '../../../api/users/user'
import {
GetStudentList,
} from '../../../api/course/class';
import {
CreateTypeList,
GetCustomerList
} from '../../../api/sale/sale'
import {
} from "../../../api/school/index";
import { queryEmployee } from "../../../api/users/user";
import { GetStudentList } from "../../../api/course/class";
import { CreateTypeList, GetCustomerList } from "../../../api/sale/sale";
import {
getCommissionStatistics,
getCommissionPeriodsList,
} from '../../../api/finance/index'
import {
EduDownLoad,
} from '../../../api/common/common';
import {
mapState
} from "vuex";
export default {
getCommissionPeriodsList
} from "../../../api/finance/index";
import { EduDownLoad } from "../../../api/common/common";
import { mapState } from "vuex";
export default {
meta: {
title: "业绩提成统计"
},
......@@ -210,53 +390,67 @@
msg: {
PageIndex: 1,
PageSize: 10,
SchoolId: '-1',
BatchId: '0',
Status: '-2',
OrderSourceType: '-1',
SchoolId: "-1",
BatchId: "0",
Status: "-2",
OrderSourceType: "-1",
OrderSourceId: 0,
Q_SelectNormal: '-1',
CommissionType: '-1',
Q_SelectNormal: "-1",
CommissionType: "-1",
ClassId: 0,
OrderId: '',
UnionCashOutId: 0,
},
StatusList: [{
Id: '-2',
Name: '不限'
}, {
Id: '-1',
Name: '不返佣'
}, {
Id: '0',
Name: '待返佣'
}, {
Id: '1',
Name: '已返佣到账户'
}, {
Id: '2',
Name: '佣金已提现'
}, ],
SelectNormal: [{
Id: '-1',
Name: '不限'
}, {
Id: '1',
Name: '非不返佣的'
}, {
Id: '2',
Name: '已返佣'
}, ],
CommissionList: [{
Id: '-1',
Name: '不限'
}, {
Id: '1',
Name: '返佣'
}, {
Id: '2',
Name: '幸福存折'
}, ],
OrderId: "",
UnionCashOutId: 0
},
StatusList: [
{
Id: "-2",
Name: "不限"
},
{
Id: "-1",
Name: "不返佣"
},
{
Id: "0",
Name: "待返佣"
},
{
Id: "1",
Name: "已返佣到账户"
},
{
Id: "2",
Name: "佣金已提现"
}
],
SelectNormal: [
{
Id: "-1",
Name: "不限"
},
{
Id: "1",
Name: "非不返佣的"
},
{
Id: "2",
Name: "已返佣"
}
],
CommissionList: [
{
Id: "-1",
Name: "不限"
},
{
Id: "1",
Name: "返佣"
},
{
Id: "2",
Name: "幸福存折"
}
],
pageCount: 0,
listData: {},
tableData: [],
......@@ -271,7 +465,7 @@
DeptList: [], // 部门下拉
PeriodsList: [], //周期列表
TotalCommission: 0,
ChangeLog: '',
ChangeLog: "",
customFromList: [],
TransListData: [], //转介人数据
MyTransListData: [],
......@@ -283,13 +477,16 @@
employeeList: [],
myEmployeeList: [],
isEdit: false
}
};
},
computed: mapState({
//是否有下载权限
isReturnperiods(state) {
if (state.user.userInfo && state.user.userInfo.ActionMenuList && state.user.userInfo.ActionMenuList.length >
0) {
if (
state.user.userInfo &&
state.user.userInfo.ActionMenuList &&
state.user.userInfo.ActionMenuList.length > 0
) {
let action = state.user.userInfo.ActionMenuList.find(x => {
if (x.FunctionCode == "Edit_Returnperiods") {
return x;
......@@ -302,35 +499,40 @@
}),
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x => { //判断权限
if (x.FunctionCode == "see_tcdetailed") { //判断是否可以查看其他明细
userinfo.ActionMenuList.map(x => {
//判断权限
if (x.FunctionCode == "see_tcdetailed") {
//判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
});
if (this.see_tcdetailed == false) {
this.msg.UserId = userinfo.Id
this.msg.UserId = userinfo.Id;
}
},
mounted() {
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.preriodId) {
this.msg.BatchId = (this.$route.query.preriodId).toString()
this.msg.BatchId = this.$route.query.preriodId.toString();
}
if (this.$route.query && this.$route.query.UnionCashOutId) { //提现ID
this.msg.UnionCashOutId = this.$route.query.UnionCashOutId
if (this.$route.query && this.$route.query.UnionCashOutId) {
//提现ID
this.msg.UnionCashOutId = this.$route.query.UnionCashOutId;
}
if (this.$route.query && this.$route.query.OrderSourceType) { //来源
this.msg.OrderSourceType = parseInt(this.$route.query.OrderSourceType)
if (this.$route.query && this.$route.query.OrderSourceType) {
//来源
this.msg.OrderSourceType = parseInt(this.$route.query.OrderSourceType);
}
if (this.$route.query && this.$route.query.OrderSourceId) { //人员ID
this.msg.OrderSourceId = parseInt(this.$route.query.OrderSourceId)
if (this.$route.query && this.$route.query.OrderSourceId) {
//人员ID
this.msg.OrderSourceId = parseInt(this.$route.query.OrderSourceId);
}
if (this.$route.query && this.$route.query.CommissionType) {
this.msg.CommissionType = parseInt(this.$route.query.CommissionType);
this.msg.Q_SelectNormal = 2
this.isNormal = true
this.msg.Q_SelectNormal = 2;
this.isNormal = true;
}
if (this.$route.query && this.$route.query.iSFromDash == 1) {
this.isEdit = true;
......@@ -338,64 +540,72 @@
if (this.$route.query && this.$route.query.Status) {
this.msg.Status = this.$route.query.Status;
this.isNormal = false;
this.msg.Q_SelectNormal = '-1'
}
this.getList()
this.setClass()
this.getBranchList()
this.getPeriodList()
this.getCustomFrom() //来源
this.getEmployeeList()
this.getStudentDorpDown()
this.GetCustomerList()
this.msg.Q_SelectNormal = "-1";
}
this.getList();
this.setClass();
this.getBranchList();
this.getPeriodList();
this.getCustomFrom(); //来源
this.getEmployeeList();
this.getStudentDorpDown();
this.GetCustomerList();
this.getStudentList(); //学员下拉
},
methods: {
resetSearch() {
this.msg.PageIndex = 1;
this.getList()
this.getList();
},
getList() {
this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg))
if (msg.OrderSourceId == '' || msg.OrderSourceId == null) {
msg.OrderSourceId = 0
let msg = JSON.parse(JSON.stringify(this.msg));
if (msg.OrderSourceId == "" || msg.OrderSourceId == null) {
msg.OrderSourceId = 0;
}
getCommissionStatistics(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData.List
this.TotalCommission = res.Data.PageData.TotalCommission
this.total = res.Data.Count
this.tableData = res.Data.PageData.List;
this.TotalCommission = res.Data.PageData.TotalCommission;
this.total = res.Data.Count;
}
})
});
},
unique(arr, Name) { //数组去重
unique(arr, Name) {
//数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
);
return arr.filter(list => !res.has(list.text) && res.set(list.text, 1));
},
getlaiyuan() {
if (this.msg.OrderSourceType == -1) {
this.msg.OrderSourceId = 0
this.msg.OrderSourceId = 0;
} else {
this.msg.OrderSourceId = ''
this.msg.OrderSourceId = "";
}
this.getList()
this.getList();
},
//获取客户来源
getCustomFrom() {
CreateTypeList({}).then(res => {
if (res.Code == 1) {
let obj = {
Name: '不限',
Id: '-1'
}
Name: "不限",
Id: "-1"
};
this.customFromList = res.Data;
this.customFromList.forEach(data => {
if (data.Id == 1 || data.Id == 3) {
data.Name = "员工";
} else if (data.Id == 2) {
data.Name = "同业";
} else if (data.Id == 4) {
data.Name = "学员";
}
});
this.customFromList.unshift(obj);
}
})
});
},
//筛选转介人
filterStudent(val, update, abort) {
......@@ -408,13 +618,15 @@
//筛选员工
filterEmployee(val, update, abort) {
update(() => {
if (val === '') {
this.myEmployeeList = this.employeeList
if (val === "") {
this.myEmployeeList = this.employeeList;
} else {
const needle = val.toLowerCase();
this.myEmployeeList = this.employeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1);
this.myEmployeeList = this.employeeList.filter(
v => v.EmployeeName.toLowerCase().indexOf(needle) > -1
);
}
})
});
},
//获取员工列表
getEmployeeList() {
......@@ -423,7 +635,7 @@
}).then(res => {
this.employeeList = res.Data;
this.myEmployeeList = res.Data;
})
});
},
//获取转介人下拉
getStudentDorpDown() {
......@@ -432,19 +644,19 @@
this.TransListData = res.Data;
this.MyTransListData = res.Data;
}
})
});
},
//获取客户下拉数据
GetCustomerList() {
let msg = {
QCreateBy: 0
}
};
GetCustomerList(msg).then(res => {
if (res.Code == 1) {
this.customList = res.Data;
this.allCustomList = res.Data;
}
})
});
},
//筛选客户
filterFn(val, update) {
......@@ -454,32 +666,32 @@
} else {
const needle = val.toLowerCase();
this.customList = this.allCustomList.filter(
(v) => v.CustomerName.toLowerCase().indexOf(needle) > -1
v => v.CustomerName.toLowerCase().indexOf(needle) > -1
);
}
});
},
handleCurrentChanges(val) {
this.msg.PageIndex = val;
this.getList()
this.getList();
},
//选择班级
setClass(item) {
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
IsAddDefault: 1 //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
let obj = {
ClassId: 0,
ClassName: '不限'
}
jsonData.unshift(obj)
ClassName: "不限"
};
jsonData.unshift(obj);
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
this.allClassList = JSON.parse(JSON.stringify(jsonData));
}
}
});
......@@ -487,23 +699,28 @@
//筛选班级
filterFnbanji(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
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)
const needle = val.toLowerCase();
this.ClassList = this.allClassList.filter(
v => v.ClassName.toLowerCase().indexOf(needle) > -1
);
}
})
});
},
getBranchList() { //获取校区
getSchoolDropdown({}).then(res => {
getBranchList() {
//获取校区
getSchoolDropdown({})
.then(res => {
this.schoolList = res.Data;
var obj = {
SName: '全部',
SId: '-1'
}
SName: "全部",
SId: "-1"
};
this.schoolList.unshift(obj);
}).catch(() => {})
})
.catch(() => {});
},
//获取学员下拉信息
getStudentList() {
......@@ -518,55 +735,67 @@
this.InvitationList = JSON.parse(JSON.stringify(jsonData));
}
}
})
});
},
filterFnStudent(val, update) {
update(() => {
if (val === '') {
this.InvitationList = JSON.parse(JSON.stringify(this.AllInvitationList))
if (val === "") {
this.InvitationList = JSON.parse(
JSON.stringify(this.AllInvitationList)
);
} else {
const needle = val.toLowerCase()
this.InvitationList = this.AllInvitationList.filter(v => v.StuName.toLowerCase().indexOf(needle) > -1)
const needle = val.toLowerCase();
this.InvitationList = this.AllInvitationList.filter(
v => v.StuName.toLowerCase().indexOf(needle) > -1
);
}
})
});
},
getPeriodList() { //获取周期下拉列表
getPeriodList() {
//获取周期下拉列表
getCommissionPeriodsList({}).then(res => {
if (res.Code == 1) {
this.PeriodsList = res.Data
this.PeriodsList = res.Data;
let obj = {
BatchName: '不限',
Id: '0'
}
this.PeriodsList.unshift(obj)
BatchName: "不限",
Id: "0"
};
this.PeriodsList.unshift(obj);
}
})
});
},
tcexport() { //导出
tcexport() {
//导出
var msg = JSON.parse(JSON.stringify(this.msg));
let text = '用户返佣/存折明细.xls'
let text = "用户返佣/存折明细.xls";
if (msg.CommissionType == 1) {
text = '用户返佣.xls'
text = "用户返佣.xls";
}
if (msg.CommissionType == 2) {
text = '幸福存折明细.xls'
text = "幸福存折明细.xls";
}
EduDownLoad("/CustomerCommission/GetCommissionStatisticsToExcel", msg, text)
EduDownLoad(
"/CustomerCommission/GetCommissionStatisticsToExcel",
msg,
text
);
},
goUrlclass(path, Names) { //班级
let Name = encodeURI(Names)
goUrlclass(path, Names) {
//班级
let Name = encodeURI(Names);
this.OpenNewUrl(path, {
ClassName: Name,
ClassName: Name
});
},
goUrlorderList(path, row) { //订单跳转
goUrlorderList(path, row) {
//订单跳转
this.OpenNewUrl(path, {
OrderId: row.OrderId,
OrderId: row.OrderId
});
},
},
}
}
};
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
@import url('~assets/css/table.sass')
</style>
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