Commit 33590d53 authored by zhengke's avatar zhengke
parents 996ca2a9 5b6d4fd0
......@@ -605,6 +605,17 @@ export function getTeacherContributeConfig(data) {
data
});
}
/**
* 获取业绩提成排名
*
*/
export function GetSellAchievementsRankStat_V2(data) {
return request({
url: '/SellAchievements/GetSellAchievementsRankStat_NewV2',
method: 'post',
data
})
}
/**
* 获取人头奖金配置分页列表
......
......@@ -38,7 +38,7 @@
<q-btn size="10px" @click="addChild()" round color="primary" icon="iconfont icon-img_haha" />
</div>
</div>
<div v-for="(item,index) in addMsg.SubtypeList" class="row wrap childConfig">
<div v-for="(item,index) in addMsg.SubtypeList" class="row wrap childConfig" :key="index">
<q-btn size="10px" @click="delChild(item,index)" class="SubChild" round color="red"
icon="iconfont icon-guanbi1" />
<div class="col-12 q-pr-lg q-pb-lg">
......@@ -47,7 +47,7 @@
<div class="q-pb-lg">
<q-btn size="10px" @click="addSun(index)" round color="primary" icon="iconfont icon-img_haha" />
</div>
<div class="row wrap" style="position:relative;" v-for="(subItem,subIndex) in item.OptionList">
<div class="row wrap" style="position:relative;" v-for="(subItem,subIndex) in item.OptionList" :key="subIndex">
<div class="col-4 q-pr-lg q-pb-lg">
<q-input filled v-model="subItem.LevelTitle" dense ref="SubTypeName" label="标题"></q-input>
</div>
......
<style scoped>
@import "../css/cssReset.css";
.singeRowTable tr:nth-child(2n+1) {
background: none;
}
.dd{
background-color: #E6E6E6;
}
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.singeRowTable tr th {
border: 1px solid #d2d2d2;
}
.studentTracking td:first-child {
background-color: #E6E6E6;
position: sticky;
left: 0px;
}
.studentTracking td:nth-child(2) {
background-color: #E6E6E6;
position: sticky;
left: 109px;
border: 1px solid #d2d2d2;
}
.studentTracking td:nth-child(3) {
background-color: #E6E6E6;
position: sticky;
left: 218px;
border: 1px solid #d2d2d2;
}
.studentTracking th:first-child {
position: sticky;
left: 0px;
}
.studentTracking th:nth-child(2) {
position: sticky;
left: 109px;
border: 1px solid #d2d2d2;
}
.studentTracking th:nth-child(3) {
position: sticky;
left: 218px;
border: 1px solid #d2d2d2;
}
.stulistNumber {
display: inline-block;
width: 25px;
height: 25px;
text-align: center;
line-height: 22px;
border: 1px solid #2961FE;
border-radius: 50%;
cursor: pointer;
color: #2961FE;
}
.OCourseTable {
width: 400px;
text-align: center;
}
.OCourseTable tr td {
height: 40px;
}
.OCourseTable tr th {
height: 40px;
background-color: rgb(238, 238, 239);
}
</style>
<template>
<div class="page-body studentTracking">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.StuName" label="昵称"
maxlength="20" />
</div>
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.StuRealMobile" label="电话"
maxlength="20" />
</div>
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.QQ" label="QQ"
maxlength="20" />
</div>
<div class="col-3">
<q-input @keyup.enter.native="resetSearch" dense clearable filled v-model="msg.WeChatNo" label="微信号"
maxlength="20" />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled v-model="msg.StuType" dense clearable :options="customTypeList"
option-label="Name" option-value="Id" emit-value map-options label="客户类型" />
</div>
<div class="col-3">
<q-select @input="resetSearch" dense filled v-model="msg.StuStage" :options="customState" option-label="Name"
option-value="Id" emit-value map-options label="客户状态" clearable />
</div>
<div class="col-3">
<q-select filled v-model="msg.StuPurpose" dense @input="resetSearch" clearable :options="goalsList"
option-label="Name" option-value="Id" emit-value map-options label="学习目的" />
</div>
<div class="col-3">
<q-select @input="resetBelong" dense filled option-value="Id" option-label="Name" v-model="msg.BelongType"
:options="BelongTypeList" emit-value map-options label="归属类型" />
</div>
<div class="col-3" v-if="msg.BelongType == 4">
<q-select @input="resetSearch" dense clearable @filter="filterSubord" use-input filled option-value="Id"
option-label="EmployeeName" v-model="msg.CreateIds" multiple :options="SubordList" emit-value map-options
label="我下属的" />
</div>
<div class="col-3">
<q-field filled dense>
<template v-slot:control>
<el-date-picker v-model="dateArray" size="mini" @change="resetSearch" value-format="yyyy-MM-dd"
<el-date-picker v-model="dateArray" size="mini" @change="resetSearch" value-format="yyyy-MM"
type="daterange" style="border:none;" range-separator="至" start-placeholder="跟进开始时间"
end-placeholder="跟进结束时间" />
</template>
</q-field>
</div>
<template v-if="morequery">
<div class="col-3">
<q-select @input="resetSearch" dense filled option-value="SId" option-label="SName" v-model="msg.School_Id"
:options="CompanyList" emit-value map-options label="校区" />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled option-value="CourseId" option-label="CourseName"
v-model="msg.CourseId" clearable emit-value use-input :options="myCourseList" label="课程" dense map-options
@filter="filterFnkec" />
</div>
<div class="col-3">
<q-select @input="resetSearch" dense filled option-value="Id" option-label="EmployeeName"
v-model="msg.ConsultantId" clearable :options="RoleListData" emit-value map-options label="课程顾问" />
</div>
<div class="col-3">
<q-select @input="resetSearch" dense filled option-value="Id" option-label="Name"
v-model="msg.StuGuestState" clearable :options="hetongList" emit-value map-options label="合同状态" />
</div>
<div class="col-3">
<q-select @input="msg.StuSourceId='',msg.StuChannel='',resetSearch()" dense clearable filled
option-value="Id" option-label="Name" v-model="msg.CreateType" :options="customFromList" emit-value
map-options label="客户来源" />
</div>
<div class="col-3" v-if="msg.CreateType==1">
<q-select filled v-model="msg.StuChannel" @input="resetSearch" label="收客渠道" dense :options="StuChannelList"
option-label="Name" option-value="Id" emit-value map-options use-input clearable
@filter="filterStuChannel">
<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" v-if="msg.CreateType==2">
<q-select filled v-model="msg.StuSourceId" dense :options="customList" use-input label="关联同行"
@filter="filterFn" option-label="CustomerName" @input="resetSearch" clearable 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>
</template>
</q-select>
</div>
<div class="col-3" v-if="msg.CreateType==3">
<q-select filled v-model="msg.StuSourceId" dense @filter="filterEmployee" label="介绍人" use-input
:options="myEmployeeList" option-label="EmployeeName" @input="resetSearch" clearable option-value="Id"
emit-value map-options />
</div>
<div class="col-3" v-if="msg.CreateType==4">
<q-select filled v-model="msg.StuSourceId" dense use-input @filter="filterStudent" label="转介人"
:options="MyTransListData" option-label="StuName" @input="resetSearch" clearable option-value="StuId"
emit-value map-options />
</div>
<div class="col-3">
(
<q-radio size="xs" v-model="msg.Q_FType" val="1" label="范围内有跟进记录" @input='resetSearch' />
<q-radio size="xs" v-model="msg.Q_FType" val="2" label="范围内没有跟进记录" @input='resetSearch' />
</div>
</template>
</div>
</div>
<div style="width: 100%;text-align: right;padding: 0 20px;margin-bottom: 10px;">
<span @click="morequery=!morequery" style="display:inline-flex;align-items:center;cursor: pointer;">
<q-btn color="accent" class="q-mr-md" size="sm" icon="download" label="下载" v-if="isHaveDownLoad"
@click="downloadStudentFollow" />
<span style="margin-right:5px;color: #089bab;">高级查询</span>
<img v-show="!morequery" style="width:12px;height:12px" src="../../../assets/images/more.png" alt="">
<img v-show="morequery" class="roatImg" style="width:12px;height:12px" src="../../../assets/images/more.png"
alt="">
</span>
</div>
<div class="col row wrap q-gutter-x-md" v-if="dataList.Stat">
<div class="col stics">
<span class="stics-name">学生总数</span>
<span>{{dataList.Stat.StuTNum?dataList.Stat.StuTNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">续费数量</span>
<span style="color: #F72E52">{{dataList.Stat.RenewNum?dataList.Stat.RenewNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">新生数量</span>
<span style="color:#2961FE;">{{dataList.Stat.NewNum?dataList.Stat.NewNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">学习中数量</span>
<span>{{dataList.Stat.StudyNum?dataList.Stat.StudyNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">毕业数量</span>
<span>{{dataList.Stat.GraduateNum?dataList.Stat.GraduateNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">停课数量</span>
<span>{{dataList.Stat.SuspendNum?dataList.Stat.SuspendNum:0}}人</span>
</div>
<div class="col stics">
<span class="stics-name">退学数量</span>
<span>{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人</span>
</div>
</div>
<div style="width: 100%;margin-top: 20px">
<div style="width: 100%;overflow-x: auto;">
<table class="po_content singeRowTable" ref="table" style="border:1px solid #E6E6E6;" cellspacing="0"
cellpadding="0" v-loading="loading">
<tr>
<th width="120" rowspan="2" style="min-width: 110px;z-index: 999;">学生</th>
<th width="120" rowspan="2" style="min-width: 110px;">电话</th>
<th width="120" rowspan="2" style="min-width: 110px;">课程顾问</th>
<th width="120" rowspan="2" style="min-width: 110px;">班主任</th>
<th width="100" rowspan="2" style="min-width: 100px;">合同时间</th>
<th width="200" rowspan="2" style="min-width: 200px;">所报课程</th>
<th width="200" rowspan="2" style="min-width: 200px;">开课时间</th>
<th width="200" rowspan="2" style="min-width: 200px;">结课时间</th>
<th width="80" rowspan="2" style="min-width: 80px;">当前级别</th>
<th width="100" rowspan="2" style="min-width: 100px;">生日</th>
<th width="100" rowspan="2" style="min-width: 100px;">客户来源</th>
<th width="100" rowspan="2" style="min-width: 100px;">学习目的</th>
<th width="100" rowspan="2" style="min-width: 100px;">来源关联人</th>
<th width="100" rowspan="2" style="min-width: 100px;">收客渠道</th>
<th width="100" rowspan="2" style="min-width: 100px;">负责人</th>
<th width="100" rowspan="2" style="min-width: 100px;">合同状态</th>
<th width="100" rowspan="2" style="min-width: 120px;">期望达成协议日期</th>
<th width="100" rowspan="2" style="min-width: 100px;">目前状态</th>
<th width="100" rowspan="2" style="min-width: 100px;">胜率</th>
<th width="100" rowspan="2" style="min-width: 100px;">跟踪记录</th>
<th width="120" rowspan="2" style="min-width: 110px;z-index: 999;">部门</th>
<th width="120" rowspan="2" style="min-width: 110px;z-index: 999;">角色</th>
<th width="120" rowspan="2" style="min-width: 110px;z-index: 999;">人员</th>
<th width="500" colspan="3" style="min-width: 500px;" v-for=" ( item , index ) in RListlength "
<th width="500" colspan="7" style="min-width: 500px;" v-for=" ( item , index ) in RListlength"
:key='index'>
<div>第{{index+1}}个月</div>
<div v-if="dataList.MonthList">(累计续约:<span style="color: #F72E52">{{getxuyue(index).RenewNum}} </span>
<span style="margin-left: 5px;">学员介绍:{{getxuyue(index).IntroductionNum}}</span>) </div>
<span v-if="item.Month.slice(5)<10">{{item.Month.slice(6)}}</span>
<span v-else>{{item.Month.slice(6)}}</span>
</th>
<th width="120" rowspan="2" style="min-width: 110px;">提成合计</th>
<th width="120" rowspan="2" style="min-width: 110px;">返佣合计</th>
<th width="120" rowspan="2" style="min-width: 110px;">奖励合计</th>
<th width="120" rowspan="2" style="min-width: 110px;">合计</th>
</tr>
<tr>
<th v-for=" ( item , index ) in titlelist " :key='index' :width="item.Id==1?120:200">{{item.Name}}</th>
</tr>
<tr v-for=" ( item , index ) in dataList.RList " :key="index"
v-if='dataList.RList && dataList.RList.length>0'>
<tr v-for=" ( item , index ) in dataList " :key="index"
v-if='dataList && dataList.length>0'>
<td style=" border: 1px solid #d2d2d2;">
<div class="text-blue cursor-pointer" @click="getStuRight(item)">
{{ item.StuName }}
</div>
</td>
<td>
<span>{{ item.StuTel }}</span>
</td>
<td>
<span v-html="getCurseManager(item)"></span>
</td>
<td>
<span v-html="getTeacherManager(item)"></span>
</td>
<td>
<span>{{ item.ContractSTime }}</span>
</td>
<td>
<span>{{ item.CourseName }}</span>
{{ item.DeptName }}
</td>
<td>
<span>{{ item.BeginClassDate }}</span>
<span>{{ item.RoleName }}</span>
</td>
<td>
<span>{{ item.GraduationTime }}</span>
</td>
<td>
<span>{{ item.JapanBaseInfo }}</span>
</td>
<td>
<span>{{ item.StuBirthStr }}</span>
</td>
<td>
<span>{{ item.CreateTypeName?item.CreateTypeName:'-' }}</span>
</td>
<td>
{{item.StuPurposeName}}
</td>
<td>
<span><span v-if="item.CreateType==2 && item.EnterpriseName">{{item.EnterpriseName}}:</span>
{{ item.StuSourceIdName?item.StuSourceIdName:'-' }}</span>
</td>
<td>
<span>{{ item.StuChannelName?item.StuChannelName:'-' }}</span>
</td>
<td>
<span>{{ item.CreateByName?item.CreateByName:'-' }}</span>
</td>
<td>
<span>{{ item.StuGuestStateName }}</span>
</td>
<td>
{{item.AdvisorExpectDate}}
</td>
<td>
{{item.AdvisorStatusName}}
</td>
<td>
{{item.AdvisorWinRate}}%
</td>
<td>
<template v-if="item.AdvisorList">
<template v-if="item.AdvisorList.length>0">
{{item.AdvisorList[0].AdvisorStatusName}}
<span class="stulistNumber">
{{item.AdvisorList.length}}
<q-popup-proxy>
<q-banner>
<table class="OCourseTable" style="border-collapse:collapse;">
<tr>
<th>跟进状态</th>
<th>跟进日期</th>
<th>跟进比例</th>
<th>跟进备注</th>
</tr>
<tr v-for="(sItem,sIndex) in item.AdvisorList" style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex">
<td>{{sItem.AdvisorStatusName}}</td>
<td>{{sItem.AdvisorDate}}</td>
<td>{{sItem.AdvisorRate}}</td>
<td>{{sItem.AdvisorRemark}}</td>
</tr>
</table>
</q-banner>
</q-popup-proxy>
</span>
</template>
<template v-if="item.AdvisorList.length==0">
</template>
</template>
{{item.EmpName}}
</td>
<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].Month}}</span>
<span style="margin:0 3px">/</span>
<span v-if="item.MonthList[x.index].IsRenew==1" style="color: red;"></span>
<span v-if="item.MonthList[x.index].IsRenew==2"></span>
<span style="margin:0 3px">/</span>
<span
:style="{'color':item.MonthList[x.index].IntroductionNum>0?'red':'#111'}">{{item.MonthList[x.index].IntroductionNum}}</span>
<span>{{item.MonthList[x.index].Achievement}}</span>
</div>
<div v-if="x.Id==2" style="padding: 7px;">
<div v-if="item.MonthList[x.index].TeacherTime"
style="display: flex;align-items: center;justify-content: space-between;">
<div>{{item.MonthList[x.index].TeacherTime}}</div>
<span style="text-decoration: underline;cursor: pointer;color: #2961fe ;"
@click="lookgengduo(item,item.MonthList[x.index].TeacherTime)">更多</span>
</div>
<template>
<div v-if="item.MonthList[x.index].Teacher!=''" v-html="item.MonthList[x.index].Teacher"></div>
<span v-if="item.MonthList[x.index].Teacher==''">-</span>
</template>
<span>{{item.MonthList[x.index].Rate}}</span>
</div>
<div v-if="x.Id==3" style="padding: 3px;">
<div v-if="item.MonthList[x.index].ConsultantTime"
style="display: flex;align-items: center;justify-content: space-between;">
<div>{{item.MonthList[x.index].ConsultantTime}}</div>
<span style="text-decoration: underline;cursor: pointer;color: #2961fe ;"
@click="lookgengduo(item,item.MonthList[x.index].ConsultantTime)">更多</span>
<span>{{item.MonthList[x.index].Rebate}}</span>
</div>
<template>
<div v-if="item.MonthList[x.index].Consultant" v-html="item.MonthList[x.index].Consultant"></div>
<span v-if="item.MonthList[x.index].Consultant==''">-</span>
</template>
<div v-if="x.Id==4" style="padding: 3px;">
<span>{{item.MonthList[x.index].Commission}}</span>
</div>
<div v-if="x.Id==5" style="padding: 3px;">
<span>{{item.MonthList[x.index].Brokerage}}</span>
</div>
<div v-if="x.Id==6" style="padding: 3px;">
<span>{{item.MonthList[x.index].Bonus}}</span>
</div>
<div v-if="x.Id==7" style="padding: 3px;">
<span>{{item.MonthList[x.index].Total}}</span>
</div>
</div>
</td>
<td>
<span>{{ item.TotalCommission }}</span>
</td>
<td>
<span>{{ item.TotalReturn }}</span>
</td>
<td>
<span>{{ item.TotalPersonnel }}</span>
</td>
<td>
<span>{{ item.TotalAll }}</span>
</td>
</tr>
</table>
</div>
<div v-if='!dataList.RList||(dataList.RList && dataList.RList.length==0)'
<div v-if='!dataList||(dataList && dataList.length==0)'
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;">
暂无数据
</div>
<q-pagination v-if='dataList.RList && dataList.RList.length>0' class="full-width justify-end"
v-model="msg.pageIndex" color="primary" :max="PageCount" :input="true" @input="changePage" />
</div>
<studentRight-form v-if="isShowStuRight" :isJudgeTrans="isJudgeTrans" :BelongType="BelongType" :save-obj="stuOption"
@close="closeStuForm" @success="getList" @reload="getList">
......@@ -345,33 +182,52 @@
</div>
</template>
<script>
import Vue from 'vue'
import {
GetSellAchievementsRankStat_V2,
} from '../../../api/finance/index'
import {
queryCourseDropdownList,
} from '../../../api/course/index'
import {
queryEmployee
} from "../../../api/users/user";
import {
queryGuestStateList,
CreateTypeList,
GetStuChannelList,
GetCustomerList,
getGuestLearningGoalsEnumList
} from "../../../api/sale/sale.js";
import {
queryStuStageList,
GetStudentTypeList,
GetPersonalDimension,
getSchoolDropdown,
getStudentDorpDownList
} from "../../../api/school/index";
import {
EduDownLoad
} from "../../../api/common/common";
import studentRightForm from "../../../components/school/student/studentRight-form";
import studentFUForm from "../../../components/school/student/studentFu-form";
import {
mapState
} from "vuex";
export default {
meta: {
title: "教师学员跟踪"
},
props: {},
components: {
studentRightForm,
studentFUForm
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
StuName: "",
StuRealMobile: '',
QQ: '',
WeChatNo: '',
StuType: '', //学生类型
StuGuestState: '', //合同状态
SFTime: '',
EFTime: '',
StuStage: '', //客户状态
Q_FType: '1', //跟进类型 1范围内有跟进记录 2范围内没有跟进记录
BelongType: 1,
CreateIds: [],
School_Id: '-1', //校区
CourseId: '', //课程
ConsultantId: '', //课程顾问
CreateType: '', //客户来源
StuChannel: "", //收客渠道
StuSourceId: '',
StuPurpose: '' //学习目的
StartMonth: '',
EndMonth: '',
},
//归属类型列表
BelongTypeList: [{
......@@ -449,17 +305,382 @@
goalsList: [], //学习目的列表
}
},
methods: {
created() {
},
mounted() {
var d = new Date()
var currentY = d.getFullYear();
var currentM = d.getMonth();
var month = d.getMonth()+1;
this.msg.StartMonth = currentY + '-' + currentM
this.msg.EndMonth = currentY + '-' + month
this.getList(); //获取规则
// this.getStuStageList();
// this.getCustomTypeList();
// this.GetSubordList();
// this.getBranchList();
// this.getCourseList(); //获取课程下拉
// this.getRole();
// this.getCustomFrom();
// this.GetStuChannelList();
// this.GetCustomerList();
// this.getEmployeeList();
// this.getStudentDorpDown();
// this.queryGoalsList();
// this.downloadStudentFollow();
},
methods: {
downloadStudentFollow() {
var msg = JSON.parse(JSON.stringify(this.msg));
this.loading = true;
EduDownLoad(
"/StudentStat/DownLoadStudentFollowUp",
msg,
"学员跟踪.xls", res => {
this.loading = false;
}
);
},
//获取学习目的列表
queryGoalsList() {
getGuestLearningGoalsEnumList({}).then(res => {
this.goalsList = res.Data;
});
},
//获取收客渠道
GetStuChannelList() {
GetStuChannelList({}).then(res => {
if (res.Code == 1) {
this.StuChannelList = res.Data;
this.allStuChannelList = res.Data;
}
});
},
//筛选渠道
filterStuChannel(val, update) {
update(() => {
if (val === "") {
this.StuChannelList = JSON.parse(
JSON.stringify(this.allStuChannelList)
);
} else {
const needle = val.toLowerCase();
this.StuChannelList = this.allStuChannelList.filter(
v => v.Name.toLowerCase().indexOf(needle) > -1
);
}
});
},
//获取客户来源
getCustomFrom() {
CreateTypeList({}).then(res => {
if (res.Code == 1) {
this.customFromList = 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) {
update(() => {
if (val === "") {
this.customList = JSON.parse(JSON.stringify(this.allCustomList));
} else {
const needle = val.toLowerCase();
this.customList = this.allCustomList.filter(
v => v.CustomerName.toLowerCase().indexOf(needle) > -1
);
}
});
},
//获取员工列表
getEmployeeList() {
queryEmployee({
IsLeave: 1
}).then(res => {
this.employeeList = res.Data;
this.myEmployeeList = res.Data;
});
},
//筛选员工
filterEmployee(val, update, abort) {
update(() => {
this.myEmployeeList = this.employeeList.filter(
v => v.EmployeeName.indexOf(val) > -1
);
});
},
//获取转介人下拉
getStudentDorpDown() {
getStudentDorpDownList().then(res => {
if (res.Code == 1) {
this.TransListData = res.Data;
this.MyTransListData = res.Data;
}
});
},
//筛选转介人
filterStudent(val, update, abort) {
update(() => {
this.MyTransListData = this.TransListData.filter(
v => v.StuName.indexOf(val) > -1
);
});
},
getRole() {
queryEmployee({
IsLeave: 1,
UserRole: 2
}).then(res => {
this.RoleListData = res.Data;
});
},
getBranchList() { //获取校区
getSchoolDropdown({}).then(res => {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
SId: '-1',
SName: "不限"
})
this.CompanyList = tempArray;
}).catch(() => {
})
},
created() {
//获取课程
getCourseList() {
queryCourseDropdownList({
IsQPrice: 1
}).then(res => {
if (res.Code == 1) {
let data = res.Data
this.allCourseList = JSON.parse(JSON.stringify(data));
this.myCourseList = JSON.parse(JSON.stringify(data));
}
})
},
//获取我下属的下拉数据
GetSubordList() {
GetPersonalDimension().then(res => {
if (res.Code == 1) {
this.SubordList = res.Data;
this.AllSubordList = res.Data;
}
});
},
//筛选转介人
filterSubord(val, update, abort) {
update(() => {
this.SubordList = this.AllSubordList.filter(
v => v.EmployeeName.indexOf(val) > -1
);
});
},
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
getList(type) {
this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg))
if (this.dateArray && this.dateArray.length > 0) {
msg.StartMonth = this.dateArray[0];
msg.EndMonth = this.dateArray[1];
}
GetSellAchievementsRankStat_V2(msg).then(res => {
this.loading = false;
this.RListlength = res.Data && res.Data[0].MonthList
this.titlelist = [{
Name: '业绩',
Id: 1,
index: 0
}, {
Name: '业绩比例',
Id: 2,
index: 0
}, {
Name: '订单返佣',
Id: 3,
index: 0
},{
Name: '提成',
Id: 4,
index: 0
}, {
Name: '返佣金额',
Id: 5,
index: 0
}, {
Name: '人头奖励',
Id: 6,
index: 0
}, {
Name: '合计',
Id: 7,
index: 0
},];
this.dataList = res.Data;
this.titlelist = [];
for (let i = 0; i < this.RListlength.length; i++) {
let obj = [{
Name: '业绩',
Id: 1,
index: i
}, {
Name: '业绩比例',
Id: 2,
index: i
}, {
Name: '订单返佣',
Id: 3,
index: i
},{
Name: '提成',
Id: 4,
index: i
}, {
Name: '返佣金额',
Id: 5,
index: i
}, {
Name: '人头奖励',
Id: 6,
index: i
}, {
Name: '合计',
Id: 7,
index: i
},]
this.titlelist = [...this.titlelist, ...obj]
}
})
.catch(() => {
this.loading = false;
});
},
//获取客户类型
getCustomTypeList() {
GetStudentTypeList().then(res => {
if (res.Code == 1) {
this.customTypeList = res.Data;
}
})
},
//获取客户阶段列表
getStuStageList() {
queryStuStageList().then(res => {
this.customState = res.Data;
});
},
getxuyue(index) {
let obj = {
IntroductionNum: 0,
RenewNum: 0
};
this.dataList.MonthList.forEach(x => {
if (x.MonthNum == index + 1) {
obj = x
}
})
return obj
},
//点击学生姓名弹出
getStuRight(obj) {
if (obj) {
this.stuOption = obj;
this.BelongType = 3;
}
this.isShowStuRight = true;
},
closeStuForm() {
this.isShowStuRight = false;
this.isShowStuFU = false
},
resetBelong() {
if (this.msg.BelongType != 4) {
this.msg.pageIndex = 1;
this.getList();
}
},
lookgengduo(obj, time) { //跟进备注
//计算时间 月底日期
let Month = time.split('-')[0] + '-' + time.split('-')[1] + '-01'
let date = new Date(Month);
let currentMonth = date.getMonth();
let nextMonth = ++currentMonth;
let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
let oneDay = 1000 * 60 * 60 * 24;
let endDate = new Date(nextMonthFirstDay - oneDay)
let endMonth = time.split('-')[0] + '-' + time.split('-')[1] + '-' + endDate.getDate()
if (obj) {
this.stuOption = obj;
this.stuOption.STime = Month;
this.stuOption.ETime = endMonth;
this.BelongType = obj.BelongType;
}
this.isShowStuFU = true;
},
filterFnkec(val, update) { //课程的栓选
update(() => {
if (val === '') {
this.myCourseList = this.allCourseList
} else {
const needle = val.toLowerCase();
this.myCourseList = this.allCourseList.filter(v => v.CourseName.toLowerCase().indexOf(needle) > -1);
}
})
},
getCurseManager(row) {
let managerName = "<span class='text-grey-4'>暂未推送</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 2) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
getTeacherManager(row) {
let managerName = "<span class='text-grey-4'>暂无</span>";
if (row.AssistList && row.AssistList.length > 0) {
row.AssistList.forEach(y => {
if (y.AssistType == 4) {
managerName = `<span class='text-dark'>${y.AssistName}</span>`;
}
});
}
return managerName;
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
......
......@@ -42,7 +42,6 @@
.el-table th {
padding: 5px 0;
}
</style>
<template>
<div class="page-body ReturnperiodsList">
......@@ -56,7 +55,7 @@
</el-date-picker>
</div>
<div>
<q-btn v-if='isgenerate==true' :loading="loading1"  color="primary"  size="11px"  label="生成返佣"
<q-btn v-if='isReturnperiods' :loading="loading1"  color="primary"  size="11px"  label="生成返佣"
 @click="scCommission"  style="height:28px" />
<div style="font-size: 11px;color: #666;">*默认生成上月返佣</div>
</div>
......@@ -69,7 +68,7 @@
<el-table-column prop="BatchName" label="周期"></el-table-column>
<el-table-column v-if="isReturnperiods" prop="TotalMoney" label="累计金额"> </el-table-column>
<el-table-column v-if="isReturnperiods"prop="TotalEmployee" label="个人直客累计金额"> </el-table-column>
<el-table-column v-if="isReturnperiods" prop="TotalEmployee" label="个人直客累计金额"> </el-table-column>
<el-table-column prop="TotalCustomer" label="同业录入累计金额"> </el-table-column>
<el-table-column v-if="isReturnperiods" prop="TotalInternal" label="内部介绍累计金额"> </el-table-column>
<el-table-column v-if="isReturnperiods" prop="TotalTrans" label="学员转介绍累计金额"> </el-table-column>
......@@ -78,7 +77,8 @@
<el-table-column v-if="isReturnperiods" label="财务单据">
<template slot-scope="scope">
<template v-if="scope.row.FinanceIdList" v-for="item in scope.row.FinanceIdList">
<a @click="goDetails(item)" style="cursor:pointer;color:blue;text-decoration:underline;display:inline-block;margin-right:10px;">{{item}}</a>
<a @click="goDetails(item)"
style="cursor:pointer;color:blue;text-decoration:underline;display:inline-block;margin-right:10px;">{{item}}</a>
</template>
</template>
</el-table-column>
......@@ -297,9 +297,7 @@
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<style>
.baseSet_Title {
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.cycleOrderList .border-bottom {
/* border-bottom: 1px dashed #EEE; */
}
.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;
......@@ -28,82 +32,28 @@
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>
<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">
<q-select
filled
stack-label
@input="resetSearch()"
option-value="SId"
option-label="SName"
v-model="msg.SchoolId"
ref="SchoolId"
:options="schoolList"
label="校区"
dense
emit-value
map-options
/>
</div> -->
<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>
<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>
......@@ -111,72 +61,21 @@
</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
>
<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>
......@@ -185,22 +84,9 @@
</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>
......@@ -209,22 +95,9 @@
</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>
......@@ -233,14 +106,9 @@
</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;">
......@@ -248,56 +116,31 @@
提成统计
<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 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-column prop="UserName" label="人员"></el-table-column>
<!-- <el-table-column prop="ClassNo" 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>
<el-table-column prop="CommissionType" label="类型">
<template slot-scope="scope">
......@@ -305,7 +148,6 @@
<span v-if="scope.row.CommissionType == 2">幸福存折</span>
</template>
</el-table-column>
<el-table-column width="130" prop="CommissionMoeny" label="返佣/存折金额">
<template slot-scope="scope">
<div>{{ scope.row.CommissionMoeny ? scope.row.CommissionMoeny : '-' }}</div>
......@@ -319,59 +161,48 @@
<span v-if="scope.row.Status == 2">佣金已提现</span>
</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>
<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 {
<script>
import {
getSchoolDropdown,
getClassDropDownList,
getStudentDorpDownList
} from '../../../api/school/index'
import {
} from '../../../api/school/index'
import {
queryEmployee
} from '../../../api/users/user'
import {
} from '../../../api/users/user'
import {
GetStudentList,
} from '../../../api/course/class';
import {
} from '../../../api/course/class';
import {
CreateTypeList,
GetCustomerList
} from '../../../api/sale/sale'
import {
} from '../../../api/sale/sale'
import {
getCommissionStatistics,
getCommissionPeriodsList,
} from '../../../api/finance/index'
import {
} from '../../../api/finance/index'
import {
EduDownLoad,
} from '../../../api/common/common';
export default {
} from '../../../api/common/common';
import {
mapState
} from "vuex";
export default {
meta: {
title: "业绩提成统计"
},
props: {},
components: {
},
components: {},
data() {
return {
loading: false,
......@@ -386,21 +217,46 @@ export default {
OrderSourceId: 0,
Q_SelectNormal: '-1',
CommissionType: '-1',
ClassId: 0,
OrderId: '',
UnionCashOutId:0,
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: '幸福存折' },
],
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: [],
......@@ -413,29 +269,41 @@ export default {
see_tcdetailed: false,
schoolList: [],
DeptList: [], // 部门下拉
PeriodsList: [],//周期列表
PeriodsList: [], //周期列表
TotalCommission: 0,
ChangeLog: '',
customFromList: [],
TransListData: [], //转介人数据
MyTransListData: [],
customList: [], //同行列表
allCustomList: [], //所有同行列表
InvitationList: [], //学员下拉数据
AllInvitationList: [],
isNormal: false,
employeeList:[],
myEmployeeList:[],
isEdit:false
employeeList: [],
myEmployeeList: [],
isEdit: false
}
},
computed: mapState({
//是否有下载权限
isReturnperiods(state) {
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;
}
});
return action && action.FunctionCode;
}
return false;
}
}),
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;
}
})
......@@ -450,41 +318,37 @@ export default {
if (this.$route.query && this.$route.query.preriodId) {
this.msg.BatchId = (this.$route.query.preriodId).toString()
}
if (this.$route.query && this.$route.query.UnionCashOutId) {//提现ID
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 = 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
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 = this.$route.query.CommissionType;
this.msg.CommissionType = parseInt(this.$route.query.CommissionType);
this.msg.Q_SelectNormal = 2
this.isNormal = true
}
if (this.$route.query && this.$route.query.iSFromDash==1){
this.isEdit=true;
if (this.$route.query && this.$route.query.iSFromDash == 1) {
this.isEdit = true;
}
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.getCustomFrom() //来源
this.getEmployeeList()
this.getStudentDorpDown()
this.GetCustomerList()
this.getStudentList();//学员下拉
this.getStudentList(); //学员下拉
},
methods: {
resetSearch() {
......@@ -492,7 +356,6 @@ export default {
this.getList()
},
getList() {
this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg))
if (msg.OrderSourceId == '' || msg.OrderSourceId == null) {
......@@ -501,15 +364,13 @@ export default {
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
}
})
},
unique(arr, Name) {//数组去重
unique(arr, Name) { //数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
......@@ -518,7 +379,6 @@ export default {
getlaiyuan() {
if (this.msg.OrderSourceType == -1) {
this.msg.OrderSourceId = 0
} else {
this.msg.OrderSourceId = ''
}
......@@ -534,7 +394,6 @@ export default {
}
this.customFromList = res.Data;
this.customFromList.unshift(obj);
}
})
},
......@@ -546,14 +405,12 @@ export default {
);
});
},
//筛选员工
filterEmployee(val, update, abort) {
update(() => {
if (val === '') {
this.myEmployeeList = this.employeeList
}
else {
} else {
const needle = val.toLowerCase();
this.myEmployeeList = this.employeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1);
}
......@@ -638,7 +495,7 @@ export default {
}
})
},
getBranchList() {//获取校区
getBranchList() { //获取校区
getSchoolDropdown({}).then(res => {
this.schoolList = res.Data;
var obj = {
......@@ -646,13 +503,8 @@ export default {
SId: '-1'
}
this.schoolList.unshift(obj);
}).catch(() => {
})
}).catch(() => {})
},
//获取学员下拉信息
getStudentList() {
var qMsg = {
......@@ -678,8 +530,7 @@ export default {
}
})
},
getPeriodList() {//获取周期下拉列表
getPeriodList() { //获取周期下拉列表
getCommissionPeriodsList({}).then(res => {
if (res.Code == 1) {
this.PeriodsList = res.Data
......@@ -688,41 +539,34 @@ export default {
Id: '0'
}
this.PeriodsList.unshift(obj)
}
})
},
tcexport() {//导出
tcexport() { //导出
var msg = JSON.parse(JSON.stringify(this.msg));
let text = '用户返佣/存折明细.xls'
if(msg.CommissionType==1){
if (msg.CommissionType == 1) {
text = '用户返佣.xls'
}
if(msg.CommissionType==2){
if (msg.CommissionType == 2) {
text = '幸福存折明细.xls'
}
EduDownLoad("/CustomerCommission/GetCommissionStatisticsToExcel", msg, text)
},
goUrlclass(path, Names) {//班级
goUrlclass(path, Names) { //班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrlorderList(path, row) {//订单跳转
goUrlorderList(path, row) { //订单跳转
this.OpenNewUrl(path, {
OrderId: row.OrderId,
// EnterID:row.UserId
});
},
},
}
}
</script>
<style lang="sass">
@import url('~assets/
@import url('~assets/css/table.sass')
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -800,7 +800,7 @@
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
this.titlelist = [];
for (let i = 0; i < this.RListlength; i++) {
for (let i = 0; i < this.RList.length; i++) {
let obj = [{
Name: '月份/续费/转介',
Id: 1,
......
......@@ -44,7 +44,7 @@
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" @click="showForm(props.row,2)"
label="建议" /> -->
<q-btn v-if="isHaveEdit" flat size="xs" icon="edit" color="accent" style="font-weight:400"
@click="goAssessTable(props.row)" label="修改" />
@click="goAssessTable(props.row)" label="编辑" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" @click="gotoDetail(props.row)"
label="详情" />
</q-td>
......@@ -164,12 +164,12 @@
this.msg.MonthStr = (today.getMonth() + 1).toString();
this.queryDate = this.msg.YearStr + '-' + this.msg.MonthStr;
this.findData();
},
mounted() {
if (!this.isHaveEdit) {
let userinfo = this.getLocalStorage();
this.msg.TeacherAccountId = userinfo.Id;
}
},
mounted() {
this.getTeacherAssessmentPage()
},
methods: {
......@@ -211,6 +211,7 @@
var qObj = {};
if (item) {
qObj.Id = item.Id;
qObj.TeacherAccountId = item.TeacherAccountId;
}
this.OpenNewUrl('/teacher/jobEvaluation', qObj);
},
......
......@@ -123,8 +123,13 @@
this.GetTeacherList();
},
mounted() {
if (this.$route.query && this.$route.query.Id) {
if (this.$route.query) {
if (this.$route.query.Id) {
this.saveObj.Id = this.$route.query.Id;
}
if (this.$route.query.TeacherAccountId) {
this.saveObj.TeacherAccountId = this.$route.query.TeacherAccountId
}
this.getInfo();
}
},
......@@ -165,7 +170,7 @@
TeacherAccountId: this.saveObj.TeacherAccountId,
YearStr: this.saveObj.YearStr,
MonthStr: this.saveObj.MonthStr,
Id:this.saveObj.Id,
Id: this.saveObj.Id,
};
queryTeacherAssessmentInfo(qMsg).then(res => {
if (res.Code == 1) {
......@@ -208,7 +213,19 @@
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
position: 'top',
actions: [{
label: "点击查看",
color: "primary",
handler: () => {
this.$router.push({
path: "/teacher/appraisalList",
query: {
}
});
}
}],
})
}
}).catch(() => {
......
......@@ -210,7 +210,6 @@
this.getInfo();
},
methods: {
//获取教师下拉
GetTeacherList() {
var qMsg = {
......
......@@ -347,7 +347,6 @@
} from '../../api/course/index'
import {
queryEmployee,
} from "../../api/users/user";
import {
queryGuestStateList,
......
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