Commit 8699cd1b authored by 黄奎's avatar 黄奎
parents c34f6365 90812a85
...@@ -7,26 +7,54 @@ ...@@ -7,26 +7,54 @@
<el-tab-pane :label="item.label" :name="item.value" :key="item.value" v-for="(item, index) in options"></el-tab-pane> <el-tab-pane :label="item.label" :name="item.value" :key="item.value" v-for="(item, index) in options"></el-tab-pane>
</el-tabs> </el-tabs>
</div> --> </div> -->
<q-btn flat @click="changeMenu(5)" :color="chosenMenu==5?'primary':'blue-grey-14'" :class="[chosenMenu==5?'text-weight-bold':'']" label="工作台"></q-btn> <q-btn
<q-btn @click="changeMenu(1)" flat :color="chosenMenu==1?'primary':'blue-grey-14'" :class="[chosenMenu==1?'text-weight-bold':'']" label="OKR 工作区"> flat
<q-menu v-if="chosenMenu==1"> @click="changeMenu(5)"
:color="chosenMenu == 5 ? 'primary' : 'blue-grey-14'"
:class="[chosenMenu == 5 ? 'text-weight-bold' : '']"
label="活动日历"
></q-btn>
<q-btn
flat
@click="changeMenu(6)"
:color="chosenMenu == 6 ? 'primary' : 'blue-grey-14'"
:class="[chosenMenu == 6 ? 'text-weight-bold' : '']"
label="工作台"
></q-btn>
<q-btn
@click="changeMenu(1)"
flat
:color="chosenMenu == 1 ? 'primary' : 'blue-grey-14'"
:class="[chosenMenu == 1 ? 'text-weight-bold' : '']"
label="OKR 工作区"
>
<q-menu v-if="chosenMenu == 1">
<q-list> <q-list>
<q-item clickable @click="okrMenu=1"> <q-item clickable @click="okrMenu = 1">
<q-item-section q-item-section avatar> <q-item-section q-item-section avatar>
<inline-svg class="svg-icon svg-icon-secondary" src="icons/svg/Text/Edit-text.svg"></inline-svg> <inline-svg
class="svg-icon svg-icon-secondary"
src="icons/svg/Text/Edit-text.svg"
></inline-svg>
</q-item-section> </q-item-section>
<q-item-section>OKR</q-item-section> <q-item-section>OKR</q-item-section>
</q-item> </q-item>
<q-separator /> <q-separator />
<q-item clickable @click="okrMenu=2"> <q-item clickable @click="okrMenu = 2">
<q-item-section q-item-section avatar> <q-item-section q-item-section avatar>
<inline-svg class="svg-icon svg-icon-secondary" src="icons/svg/General/Visible.svg"></inline-svg> <inline-svg
class="svg-icon svg-icon-secondary"
src="icons/svg/General/Visible.svg"
></inline-svg>
</q-item-section> </q-item-section>
<q-item-section>对齐视图</q-item-section> <q-item-section>对齐视图</q-item-section>
</q-item> </q-item>
<q-item clickable> <q-item clickable>
<q-item-section q-item-section avatar> <q-item-section q-item-section avatar>
<inline-svg class="svg-icon svg-icon-secondary" src="icons/svg/Shopping/Chart-pie.svg"></inline-svg> <inline-svg
class="svg-icon svg-icon-secondary"
src="icons/svg/Shopping/Chart-pie.svg"
></inline-svg>
</q-item-section> </q-item-section>
<q-item-section>数据看板</q-item-section> <q-item-section>数据看板</q-item-section>
</q-item> </q-item>
...@@ -35,56 +63,70 @@ ...@@ -35,56 +63,70 @@
</q-btn> </q-btn>
<!-- <q-btn @click="changeMenu(2)" v-if="AccountType==2 || ispower==true" flat :color="chosenMenu==2?'primary':'blue-grey-14'" :class="[chosenMenu==2?'text-weight-bold':'']" label="备课管理"> <!-- <q-btn @click="changeMenu(2)" v-if="AccountType==2 || ispower==true" flat :color="chosenMenu==2?'primary':'blue-grey-14'" :class="[chosenMenu==2?'text-weight-bold':'']" label="备课管理">
</q-btn>--> </q-btn>-->
<q-btn flat @click="changeMenu(3)" :color="chosenMenu==3?'primary':'blue-grey-14'" :class="[chosenMenu==3?'text-weight-bold':'']" label="我的排班计划"></q-btn> <q-btn
<q-btn flat @click="changeMenu(4)" v-if="AccountType==2" :color="chosenMenu==4?'primary':'blue-grey-14'" :class="[chosenMenu==4?'text-weight-bold':'']" label="我的上课计划"></q-btn> flat
<q-btn flat @click="changeMenu(6)" :color="chosenMenu==6?'primary':'blue-grey-14'" :class="[chosenMenu==6?'text-weight-bold':'']" label="活动日历"></q-btn> @click="changeMenu(3)"
:color="chosenMenu == 3 ? 'primary' : 'blue-grey-14'"
:class="[chosenMenu == 3 ? 'text-weight-bold' : '']"
label="我的排班计划"
></q-btn>
<q-btn
flat
@click="changeMenu(4)"
v-if="AccountType == 2"
:color="chosenMenu == 4 ? 'primary' : 'blue-grey-14'"
:class="[chosenMenu == 4 ? 'text-weight-bold' : '']"
label="我的上课计划"
></q-btn>
</div> </div>
<div class="bg-white col" v-if="chosenMenu==6"> <div class="bg-white col" v-if="chosenMenu == 5">
<eventsCalendar></eventsCalendar> <eventsCalendar></eventsCalendar>
</div> </div>
<div class="bg-white col" v-if="chosenMenu==5"> <div class="bg-white col" v-if="chosenMenu == 6">
<work></work> <work></work>
</div> </div>
<div v-if="chosenMenu==1" class="flex col" style="flex: 1"> <div v-if="chosenMenu == 1" class="flex col" style="flex: 1">
<okr v-if="okrMenu==1"></okr> <okr v-if="okrMenu == 1"></okr>
<align-view v-if="okrMenu==2"></align-view> <align-view v-if="okrMenu == 2"></align-view>
</div> </div>
<div v-if="chosenMenu==2" class="col comWorkDiv" style="overflow: auto"> <div v-if="chosenMenu == 2" class="col comWorkDiv" style="overflow: auto">
<teachplan></teachplan> <teachplan></teachplan>
</div> </div>
<!-- 备课管理 --> <!-- 备课管理 -->
<div v-if="chosenMenu==3" class="comWorkDiv" style="overflow: auto"> <div v-if="chosenMenu == 3" class="comWorkDiv" style="overflow: auto">
<mySchedule></mySchedule> <mySchedule></mySchedule>
</div> </div>
<!-- 我的上课计划 --> <!-- 我的上课计划 -->
<div v-if="chosenMenu==4" class="comWorkDiv" style="overflow: auto"> <div v-if="chosenMenu == 4" class="comWorkDiv" style="overflow: auto">
<myClassmate></myClassmate> <myClassmate></myClassmate>
</div> </div>
<!-- zk新增公告弹窗 --> <!-- zk新增公告弹窗 -->
<notice-form v-if="isShowNotice" @fathergoBefore="fathergoBefore" @fathergoAfter="fathergoAfter" :seting-obj="noticeObj" @close="closeNoticeForm"> <notice-form
v-if="isShowNotice"
@fathergoBefore="fathergoBefore"
@fathergoAfter="fathergoAfter"
:seting-obj="noticeObj"
@close="closeNoticeForm"
>
</notice-form> </notice-form>
</div> </div>
</template> </template>
<script> <script>
import { GetMyNoticePageList } from "../api/course/index";
import { import teachplan from "./course/teacherLesson";
GetMyNoticePageList import okr from "./okr/index";
} from '../api/course/index' import alignView from "./okr/okr-align-view";
import noticeForm from "../components/course/notice-form";
import teachplan from './course/teacherLesson' import mySchedule from "./scheduling/mySchedule";
import okr from './okr/index' import myClassmate from "./scheduling/myClassmate";
import alignView from './okr/okr-align-view' import work from "../components/work/index";
import noticeForm from '../components/course/notice-form' import eventsCalendar from "../components/stuMan/eventsCalendar";
import mySchedule from './scheduling/mySchedule'
import myClassmate from './scheduling/myClassmate';
import work from '../components/work/index'
import eventsCalendar from '../components/stuMan/eventsCalendar'
export default { export default {
components:{ components: {
teachplan, teachplan,
okr, okr,
alignView, alignView,
...@@ -94,148 +136,153 @@ ...@@ -94,148 +136,153 @@
work, work,
eventsCalendar eventsCalendar
}, },
name: 'PageIndex', name: "PageIndex",
data(){ data() {
return{ return {
options:[ options: [{ label: "OKR", value: "one" }],
{label: 'OKR', value: 'one'}, model: "one",
AccountType: 1,
], ispower: false, //是否显示备课管理
model: 'one', chosenMenu: 5,
AccountType:1, okrMenu: 1,
ispower:false,//是否显示备课管理
chosenMenu:5,
okrMenu:1,
//通知请求参数 //通知请求参数
noticeMsg:{ noticeMsg: {
pageIndex:1, pageIndex: 1,
pageSize:1, pageSize: 1,
          LookTime:"" LookTime: ""
},
isShowNotice:false,
noticeObj:{},
TimeList:[], //存放时间作为比较
}
}, },
created() { isShowNotice: false,
noticeObj: {},
TimeList: [] //存放时间作为比较
};
}, },
created() {},
mounted() { mounted() {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
this.AccountType = userInfo.AccountType this.AccountType = userInfo.AccountType;
if(userInfo.AccountType && userInfo.AccountType==2){ //是否是教师1不是 2是 if (userInfo.AccountType && userInfo.AccountType == 2) {
this.options=[ //是否是教师1不是 2是
{label: 'OKR', value: 'one'}, this.options = [
{label: '备课管理', value: 'two'}, { label: "OKR", value: "one" },
{ label: "备课管理", value: "two" }
]; ];
} }
this.ispower = false; this.ispower = false;
if(userInfo.MenuList.length>0){ if (userInfo.MenuList.length > 0) {
this.getMapList(userInfo.MenuList)//判断菜单权限是否有 this.getMapList(userInfo.MenuList); //判断菜单权限是否有
} }
if(this.ispower==true){ if (this.ispower == true) {
this.options=[ this.options = [
{label: 'OKR', value: 'one'}, { label: "OKR", value: "one" },
{label: '备课管理', value: 'two'}, { label: "备课管理", value: "two" }
]; ];
} }
var notifyTime = window.localStorage.getItem('notifyTime'); var notifyTime = window.localStorage.getItem("notifyTime");
if(notifyTime){ if (notifyTime) {
this.noticeMsg.LookTime = notifyTime; this.noticeMsg.LookTime = notifyTime;
} }
this.getNoticeList(); this.getNoticeList();
}, },
methods:{ methods: {
changeMenu(i){ changeMenu(i) {
if(i==1){ if (i == 1) {
this.okrMenu=1 this.okrMenu = 1;
} }
this.chosenMenu=i this.chosenMenu = i;
}, },
getMapList(list){ getMapList(list) {
list.forEach(x=>{ list.forEach(x => {
if(x.MenuUrl == '/course/teacherLesson'){ if (x.MenuUrl == "/course/teacherLesson") {
this.ispower=true this.ispower = true;
} }
if(x.SubList.length>0){ if (x.SubList.length > 0) {
this.getMapList(x.SubList) this.getMapList(x.SubList);
} }
}) });
}, },
//获取获取公告弹窗数据 //获取获取公告弹窗数据
getNoticeList(){ getNoticeList() {
GetMyNoticePageList(this.noticeMsg).then(res => { GetMyNoticePageList(this.noticeMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.noticeObj = res.Data; this.noticeObj = res.Data;
if(res.Data.PageData.length>0){ if (res.Data.PageData.length > 0) {
this.isShowNotice=true; this.isShowNotice = true;
} }
if(res.Data.PageData[0]&&res.Data.PageData[0].UpdateTimeStr){ if (res.Data.PageData[0] && res.Data.PageData[0].UpdateTimeStr) {
this.TimeList.push(new Date(res.Data.PageData[0].UpdateTimeStr)); this.TimeList.push(new Date(res.Data.PageData[0].UpdateTimeStr));
var maxDate=new Date(Math.max.apply(null,this.TimeList)); var maxDate = new Date(Math.max.apply(null, this.TimeList));
var date = new Date(maxDate); var date = new Date(maxDate);
var y = date.getFullYear(); var y = date.getFullYear();
var m = date.getMonth() + 1; var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m; m = m < 10 ? "0" + m : m;
var d = date.getDate(); var d = date.getDate();
d = d < 10 ? ('0' + d) : d; d = d < 10 ? "0" + d : d;
var notifyData = y+'-'+m+'-'+d+' '+ date.getHours() + ':' +date.getMinutes() + ':' + date.getSeconds(); var notifyData =
y +
"-" +
m +
"-" +
d +
" " +
date.getHours() +
":" +
date.getMinutes() +
":" +
date.getSeconds();
localStorage.setItem("notifyTime", notifyData); localStorage.setItem("notifyTime", notifyData);
} }
} }
}) });
}, },
//关闭公告弹窗 //关闭公告弹窗
closeNoticeForm(){ closeNoticeForm() {
this.isShowNotice=false; this.isShowNotice = false;
}, },
//向后翻页 //向后翻页
fathergoAfter(){ fathergoAfter() {
this.noticeMsg.pageIndex++; this.noticeMsg.pageIndex++;
this.getNoticeList(); this.getNoticeList();
}, },
//往回翻页 //往回翻页
fathergoBefore(){ fathergoBefore() {
this.noticeMsg.pageIndex--; this.noticeMsg.pageIndex--;
this.getNoticeList(); this.getNoticeList();
} }
} }
} };
</script> </script>
<style> <style>
.homebx .box{ .homebx .box {
width: 100%; width: 100%;
height: 50px; height: 50px;
}
} .homebx {
.homebx {
margin: 0; margin: 0;
} }
.myscroll::-webkit-scrollbar { .myscroll::-webkit-scrollbar {
display: none; display: none;
} }
.box .el-tabs__header{ .box .el-tabs__header {
margin: 0; margin: 0;
} }
.sub-header{ .sub-header {
position: fixed; position: fixed;
height: 56px; height: 56px;
top: 60px; top: 60px;
left: 0; left: 0;
right: 0; right: 0;
transition: top .3s ease; transition: top 0.3s ease;
z-index: 95; z-index: 95;
box-shadow: 0 10px 30px 0 rgba(82,63,105,.08); box-shadow: 0 10px 30px 0 rgba(82, 63, 105, 0.08);
background-color: #fff; background-color: #fff;
border-top: 1px solid #ebedf3; border-top: 1px solid #ebedf3;
margin: 0; margin: 0;
padding: 10px 20px; padding: 10px 20px;
} }
.comWorkDiv{ .comWorkDiv {
height: 100vh height: 100vh;
} }
</style> </style>
<style scoped> <style scoped>
@import "../css/cssReset.css"; @import "../css/cssReset.css";
.singeRowTable tr:nth-child(2n+1) { .singeRowTable tr:nth-child(2n + 1) {
background: none; background: none;
} }
.dd{ .dd {
background-color: #E6E6E6; background-color: #e6e6e6;
} }
.baseSet_Title { .baseSet_Title {
width: 120px !important; width: 120px !important;
padding: 18px 0 0 16px; padding: 18px 0 0 16px;
text-align: right; text-align: right;
} }
.singeRowTable tr th { .singeRowTable tr th {
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
} }
.studentTracking td:first-child { .studentTracking td:first-child {
background-color: #E6E6E6; background-color: #e6e6e6;
position: sticky; position: sticky;
left: 0px; left: 0px;
}
} .studentTracking td:nth-child(2) {
.studentTracking td:nth-child(2) { background-color: #e6e6e6;
background-color: #E6E6E6;
position: sticky; position: sticky;
left: 109px; left: 109px;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
} }
.studentTracking td:nth-child(3) { .studentTracking td:nth-child(3) {
background-color: #E6E6E6; background-color: #e6e6e6;
position: sticky; position: sticky;
left: 218px; left: 218px;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
} }
.studentTracking th:first-child { .studentTracking th:first-child {
position: sticky; position: sticky;
left: 0px; left: 0px;
} }
.studentTracking th:nth-child(2) { .studentTracking th:nth-child(2) {
position: sticky; position: sticky;
left: 109px; left: 109px;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
} }
.studentTracking th:nth-child(3) { .studentTracking th:nth-child(3) {
position: sticky; position: sticky;
left: 218px; left: 218px;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;
} }
.bj {
background-color: #e6e6e6;
}
.stulistNumber { .stulistNumber {
display: inline-block; display: inline-block;
width: 25px; width: 25px;
height: 25px; height: 25px;
text-align: center; text-align: center;
line-height: 22px; line-height: 22px;
border: 1px solid #2961FE; border: 1px solid #2961fe;
border-radius: 50%; border-radius: 50%;
cursor: pointer; cursor: pointer;
color: #2961FE; color: #2961fe;
} }
.OCourseTable { .OCourseTable {
width: 400px; width: 400px;
text-align: center; text-align: center;
} }
.OCourseTable tr td { .OCourseTable tr td {
height: 40px; height: 40px;
} }
.OCourseTable tr th { .OCourseTable tr th {
height: 40px; height: 40px;
background-color: rgb(238, 238, 239); background-color: rgb(238, 238, 239);
} }
</style> </style>
<template> <template>
<div class="page-body studentTracking"> <div class="page-body studentTracking">
...@@ -83,29 +85,56 @@ ...@@ -83,29 +85,56 @@
<div class="col-3"> <div class="col-3">
<q-field filled dense> <q-field filled dense>
<template v-slot:control> <template v-slot:control>
<el-date-picker v-model="dateArray" size="mini" @change="resetSearch" value-format="yyyy-MM" <el-date-picker
type="daterange" style="border:none;" range-separator="至" start-placeholder="跟进开始时间" v-model="dateArray"
end-placeholder="跟进结束时间" /> size="mini"
@change="resetSearch"
value-format="yyyy-MM"
type="daterange"
style="border:none;"
range-separator="至"
start-placeholder="跟进开始时间"
end-placeholder="跟进结束时间"
/>
</template> </template>
</q-field> </q-field>
</div> </div>
</div> </div>
</div> </div>
<div style="width: 100%;margin-top: 20px"> <div style="width: 100%;margin-top: 20px">
<div style="width: 100%;overflow-x: auto;"> <div style="width: 100%;overflow-x: auto;">
<table class="po_content singeRowTable" ref="table" style="border:1px solid #E6E6E6;" cellspacing="0" <table
cellpadding="0" v-loading="loading"> class="po_content singeRowTable"
ref="table"
style="border:1px solid #E6E6E6;"
cellspacing="0"
cellpadding="0"
v-loading="loading"
>
<tr> <tr>
<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 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>
<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="7" style="min-width: 500px;" v-for=" ( item , index ) in RListlength" <th
:key='index'> width="500"
<span v-if="item.Month.slice(5)<10">{{item.Month.slice(6)}}</span> colspan="7"
<span v-else>{{item.Month.slice(6)}}</span> style="min-width: 500px;"
v-for="(item, index) in RListlength"
:key="index"
>
<span v-if="item.Month.slice(5) < 10">{{
item.Month.slice(6)
}}</span>
<span v-else>{{ item.Month.slice(6) }}</span
>
</th> </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>
...@@ -113,10 +142,20 @@ ...@@ -113,10 +142,20 @@
<th width="120" rowspan="2" style="min-width: 110px;">合计</th> <th width="120" rowspan="2" style="min-width: 110px;">合计</th>
</tr> </tr>
<tr> <tr>
<th v-for=" ( item , index ) in titlelist " :key='index' :width="item.Id==1?120:200">{{item.Name}}</th> <th
v-for="(item, index) in titlelist"
:key="index"
:width="item.Id == 1 ? 120 : 200"
>
{{ item.Name }}
</th>
</tr> </tr>
<tr v-for=" ( item , index ) in dataList " :key="index" <tr
v-if='dataList && dataList.length>0'> v-for="(item, index) in dataList"
:key="index"
v-if="dataList && dataList.length > 0"
:class="item.DeptName ? '' : 'bj'"
>
<td style=" border: 1px solid #d2d2d2;"> <td style=" border: 1px solid #d2d2d2;">
{{ item.DeptName }} {{ item.DeptName }}
</td> </td>
...@@ -124,31 +163,30 @@ ...@@ -124,31 +163,30 @@
<span>{{ item.RoleName }}</span> <span>{{ item.RoleName }}</span>
</td> </td>
<td> <td>
{{item.EmpName}} {{ item.EmpName }}
</td> </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="item.MonthList[x.index]">
<div v-if="x.Id == 1">
<div v-if="x.Id==1"> <span>{{ item.MonthList[x.index].Achievement }}</span>
<span>{{item.MonthList[x.index].Achievement}}</span>
</div> </div>
<div v-if="x.Id==2" style="padding: 7px;"> <div v-if="x.Id == 2" style="padding: 7px;">
<span>{{item.MonthList[x.index].Rate}}</span> <span>{{ item.MonthList[x.index].Rate }}</span>
</div> </div>
<div v-if="x.Id==3" style="padding: 3px;"> <div v-if="x.Id == 3" style="padding: 3px;">
<span>{{item.MonthList[x.index].Rebate}}</span> <span>{{ item.MonthList[x.index].Rebate }}</span>
</div> </div>
<div v-if="x.Id==4" style="padding: 3px;"> <div v-if="x.Id == 4" style="padding: 3px;">
<span>{{item.MonthList[x.index].Commission}}</span> <span>{{ item.MonthList[x.index].Commission }}</span>
</div> </div>
<div v-if="x.Id==5" style="padding: 3px;"> <div v-if="x.Id == 5" style="padding: 3px;">
<span>{{item.MonthList[x.index].Brokerage}}</span> <span>{{ item.MonthList[x.index].Brokerage }}</span>
</div> </div>
<div v-if="x.Id==6" style="padding: 3px;"> <div v-if="x.Id == 6" style="padding: 3px;">
<span>{{item.MonthList[x.index].Bonus}}</span> <span>{{ item.MonthList[x.index].Bonus }}</span>
</div> </div>
<div v-if="x.Id==7" style="padding: 3px;"> <div v-if="x.Id == 7" style="padding: 3px;">
<span>{{item.MonthList[x.index].Total}}</span> <span>{{ item.MonthList[x.index].Total }}</span>
</div> </div>
</div> </div>
</td> </td>
...@@ -164,57 +202,58 @@ ...@@ -164,57 +202,58 @@
<td> <td>
<span>{{ item.TotalAll }}</span> <span>{{ item.TotalAll }}</span>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
<div v-if='!dataList||(dataList && dataList.length==0)' <div
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;"> 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> </div>
</div> </div>
<studentRight-form v-if="isShowStuRight" :isJudgeTrans="isJudgeTrans" :BelongType="BelongType" :save-obj="stuOption" <studentRight-form
@close="closeStuForm" @success="getList" @reload="getList"> v-if="isShowStuRight"
:isJudgeTrans="isJudgeTrans"
:BelongType="BelongType"
:save-obj="stuOption"
@close="closeStuForm"
@success="getList"
@reload="getList"
>
</studentRight-form> </studentRight-form>
<studentFUForm v-if="isShowStuFU" :save-obj="stuOption" @close="closeStuForm"> <studentFUForm
v-if="isShowStuFU"
:save-obj="stuOption"
@close="closeStuForm"
>
</studentFUForm> </studentFUForm>
</div> </div>
</template> </template>
<script> <script>
import { import { GetSellAchievementsRankStat_V2 } from "../../../api/finance/index";
GetSellAchievementsRankStat_V2, import { queryCourseDropdownList } from "../../../api/course/index";
} from '../../../api/finance/index' import { queryEmployee } from "../../../api/users/user";
import { import {
queryCourseDropdownList,
} from '../../../api/course/index'
import {
queryEmployee
} from "../../../api/users/user";
import {
queryGuestStateList, queryGuestStateList,
CreateTypeList, CreateTypeList,
GetStuChannelList, GetStuChannelList,
GetCustomerList, GetCustomerList,
getGuestLearningGoalsEnumList getGuestLearningGoalsEnumList
} from "../../../api/sale/sale.js"; } from "../../../api/sale/sale.js";
import { import {
queryStuStageList, queryStuStageList,
GetStudentTypeList, GetStudentTypeList,
GetPersonalDimension, GetPersonalDimension,
getSchoolDropdown, getSchoolDropdown,
getStudentDorpDownList getStudentDorpDownList
} from "../../../api/school/index"; } from "../../../api/school/index";
import { import { EduDownLoad } from "../../../api/common/common";
EduDownLoad import studentRightForm from "../../../components/school/student/studentRight-form";
} from "../../../api/common/common"; import studentFUForm from "../../../components/school/student/studentFu-form";
import studentRightForm from "../../../components/school/student/studentRight-form"; import { mapState } from "vuex";
import studentFUForm from "../../../components/school/student/studentFu-form";
import {
mapState
} from "vuex";
export default { export default {
meta: { meta: {
title: "教师学员跟踪" title: "教师学员跟踪"
}, },
...@@ -226,11 +265,12 @@ ...@@ -226,11 +265,12 @@
data() { data() {
return { return {
msg: { msg: {
StartMonth: '', StartMonth: "",
EndMonth: '', EndMonth: ""
}, },
//归属类型列表 //归属类型列表
BelongTypeList: [{ BelongTypeList: [
{
Id: 1, Id: 1,
Name: "全部" Name: "全部"
}, },
...@@ -253,29 +293,38 @@ ...@@ -253,29 +293,38 @@
PageCount: 0, PageCount: 0,
customTypeList: [], //客户类型 customTypeList: [], //客户类型
customState: [], customState: [],
isMyStuList: [{ isMyStuList: [
Id: '-1', {
Name: '不限' Id: "-1",
}, { Name: "不限"
Id: '1', },
Name: '是' {
}, { Id: "1",
Id: '0', Name: "是"
Name: '否' },
}, ], {
hetongList: [{ Id: "0",
Id: '1', Name: "否"
Name: '正常' }
}, { ],
Id: '2', hetongList: [
Name: '退学' {
}, { Id: "1",
Id: '5', Name: "正常"
Name: '停课' },
}, { {
Id: '7', Id: "2",
Name: '毕业' Name: "退学"
}, ], },
{
Id: "5",
Name: "停课"
},
{
Id: "7",
Name: "毕业"
}
],
dateArray: [], //日期数组 dateArray: [], //日期数组
RListlength: 0, RListlength: 0,
titlelist: [], titlelist: [],
...@@ -302,19 +351,17 @@ ...@@ -302,19 +351,17 @@
myEmployeeList: [], myEmployeeList: [],
TransListData: [], //转介人数据 TransListData: [], //转介人数据
MyTransListData: [], MyTransListData: [],
goalsList: [], //学习目的列表 goalsList: [] //学习目的列表
} };
},
created() {
}, },
created() {},
mounted() { mounted() {
var d = new Date() var d = new Date();
var currentY = d.getFullYear(); var currentY = d.getFullYear();
var currentM = d.getMonth(); var currentM = d.getMonth();
var month = d.getMonth()+1; var month = d.getMonth() + 1;
this.msg.StartMonth = currentY + '-' + currentM this.msg.StartMonth = currentY + "-" + currentM;
this.msg.EndMonth = currentY + '-' + month this.msg.EndMonth = currentY + "-" + month;
this.getList(); //获取规则 this.getList(); //获取规则
// this.getStuStageList(); // this.getStuStageList();
// this.getCustomTypeList(); // this.getCustomTypeList();
...@@ -337,7 +384,8 @@ ...@@ -337,7 +384,8 @@
EduDownLoad( EduDownLoad(
"/StudentStat/DownLoadStudentFollowUp", "/StudentStat/DownLoadStudentFollowUp",
msg, msg,
"学员跟踪.xls", res => { "学员跟踪.xls",
res => {
this.loading = false; this.loading = false;
} }
); );
...@@ -447,20 +495,21 @@ ...@@ -447,20 +495,21 @@
this.RoleListData = res.Data; this.RoleListData = res.Data;
}); });
}, },
getBranchList() { //获取校区 getBranchList() {
getSchoolDropdown({}).then(res => { //获取校区
getSchoolDropdown({})
.then(res => {
var tempArray = res.Data; var tempArray = res.Data;
if (!tempArray) { if (!tempArray) {
tempArray = []; tempArray = [];
} }
tempArray.unshift({ tempArray.unshift({
SId: '-1', SId: "-1",
SName: "不限" SName: "不限"
}) });
this.CompanyList = tempArray; this.CompanyList = tempArray;
}).catch(() => {
}) })
.catch(() => {});
}, },
//获取课程 //获取课程
getCourseList() { getCourseList() {
...@@ -468,11 +517,11 @@ ...@@ -468,11 +517,11 @@
IsQPrice: 1 IsQPrice: 1
}).then(res => { }).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
let data = res.Data let data = res.Data;
this.allCourseList = JSON.parse(JSON.stringify(data)); this.allCourseList = JSON.parse(JSON.stringify(data));
this.myCourseList = JSON.parse(JSON.stringify(data)); this.myCourseList = JSON.parse(JSON.stringify(data));
} }
}) });
}, },
//获取我下属的下拉数据 //获取我下属的下拉数据
GetSubordList() { GetSubordList() {
...@@ -498,89 +547,103 @@ ...@@ -498,89 +547,103 @@
//翻页 //翻页
changePage(val) { changePage(val) {
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getList() this.getList();
}, },
getList(type) { getList(type) {
this.loading = true; this.loading = true;
let msg = JSON.parse(JSON.stringify(this.msg)) let msg = JSON.parse(JSON.stringify(this.msg));
if (this.dateArray && this.dateArray.length > 0) { if (this.dateArray && this.dateArray.length > 0) {
msg.StartMonth = this.dateArray[0]; msg.StartMonth = this.dateArray[0];
msg.EndMonth = this.dateArray[1]; msg.EndMonth = this.dateArray[1];
} }
GetSellAchievementsRankStat_V2(msg).then(res => { GetSellAchievementsRankStat_V2(msg)
.then(res => {
this.loading = false; this.loading = false;
this.RListlength = res.Data && res.Data[0].MonthList this.RListlength = res.Data && res.Data[0].MonthList;
this.titlelist = [{ this.titlelist = [
Name: '业绩', {
Name: "业绩",
Id: 1, Id: 1,
index: 0 index: 0
}, { },
Name: '业绩比例', {
Name: "业绩比例",
Id: 2, Id: 2,
index: 0 index: 0
}, { },
Name: '订单返佣', {
Name: "订单返佣",
Id: 3, Id: 3,
index: 0 index: 0
},{ },
Name: '提成', {
Name: "提成",
Id: 4, Id: 4,
index: 0 index: 0
}, { },
Name: '返佣金额', {
Name: "返佣金额",
Id: 5, Id: 5,
index: 0 index: 0
}, { },
Name: '人头奖励', {
Name: "人头奖励",
Id: 6, Id: 6,
index: 0 index: 0
}, { },
Name: '合计', {
Name: "合计",
Id: 7, Id: 7,
index: 0 index: 0
},]; }
];
this.dataList = res.Data; this.dataList = res.Data;
this.titlelist = []; this.titlelist = [];
for (let i = 0; i < this.RListlength.length; i++) { for (let i = 0; i < this.RListlength.length; i++) {
let obj = [{ let obj = [
Name: '业绩', {
Name: "业绩",
Id: 1, Id: 1,
index: i index: i
}, { },
Name: '业绩比例', {
Name: "业绩比例",
Id: 2, Id: 2,
index: i index: i
}, { },
Name: '订单返佣', {
Name: "订单返佣",
Id: 3, Id: 3,
index: i index: i
},{ },
Name: '提成', {
Name: "提成",
Id: 4, Id: 4,
index: i index: i
}, { },
Name: '返佣金额', {
Name: "返佣金额",
Id: 5, Id: 5,
index: i index: i
}, { },
Name: '人头奖励', {
Name: "人头奖励",
Id: 6, Id: 6,
index: i index: i
}, { },
Name: '合计', {
Name: "合计",
Id: 7, Id: 7,
index: i index: i
},]
this.titlelist = [...this.titlelist, ...obj]
} }
];
this.titlelist = [...this.titlelist, ...obj];
}
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;
}); });
}, },
//获取客户类型 //获取客户类型
getCustomTypeList() { getCustomTypeList() {
...@@ -588,7 +651,7 @@ ...@@ -588,7 +651,7 @@
if (res.Code == 1) { if (res.Code == 1) {
this.customTypeList = res.Data; this.customTypeList = res.Data;
} }
}) });
}, },
//获取客户阶段列表 //获取客户阶段列表
getStuStageList() { getStuStageList() {
...@@ -603,10 +666,10 @@ ...@@ -603,10 +666,10 @@
}; };
this.dataList.MonthList.forEach(x => { this.dataList.MonthList.forEach(x => {
if (x.MonthNum == index + 1) { if (x.MonthNum == index + 1) {
obj = x obj = x;
} }
}) });
return obj return obj;
}, },
//点击学生姓名弹出 //点击学生姓名弹出
getStuRight(obj) { getStuRight(obj) {
...@@ -618,7 +681,7 @@ ...@@ -618,7 +681,7 @@
}, },
closeStuForm() { closeStuForm() {
this.isShowStuRight = false; this.isShowStuRight = false;
this.isShowStuFU = false this.isShowStuFU = false;
}, },
resetBelong() { resetBelong() {
if (this.msg.BelongType != 4) { if (this.msg.BelongType != 4) {
...@@ -626,17 +689,19 @@ ...@@ -626,17 +689,19 @@
this.getList(); this.getList();
} }
}, },
lookgengduo(obj, time) { //跟进备注 lookgengduo(obj, time) {
//跟进备注
//计算时间 月底日期 //计算时间 月底日期
let Month = time.split('-')[0] + '-' + time.split('-')[1] + '-01' let Month = time.split("-")[0] + "-" + time.split("-")[1] + "-01";
let date = new Date(Month); let date = new Date(Month);
let currentMonth = date.getMonth(); let currentMonth = date.getMonth();
let nextMonth = ++currentMonth; let nextMonth = ++currentMonth;
let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
let oneDay = 1000 * 60 * 60 * 24; let oneDay = 1000 * 60 * 60 * 24;
let endDate = new Date(nextMonthFirstDay - oneDay) let endDate = new Date(nextMonthFirstDay - oneDay);
let endMonth = time.split('-')[0] + '-' + time.split('-')[1] + '-' + endDate.getDate() let endMonth =
time.split("-")[0] + "-" + time.split("-")[1] + "-" + endDate.getDate();
if (obj) { if (obj) {
this.stuOption = obj; this.stuOption = obj;
this.stuOption.STime = Month; this.stuOption.STime = Month;
...@@ -644,17 +709,19 @@ ...@@ -644,17 +709,19 @@
this.BelongType = obj.BelongType; this.BelongType = obj.BelongType;
} }
this.isShowStuFU = true; this.isShowStuFU = true;
}, },
filterFnkec(val, update) { //课程的栓选 filterFnkec(val, update) {
//课程的栓选
update(() => { update(() => {
if (val === '') { if (val === "") {
this.myCourseList = this.allCourseList this.myCourseList = this.allCourseList;
} else { } else {
const needle = val.toLowerCase(); const needle = val.toLowerCase();
this.myCourseList = this.allCourseList.filter(v => v.CourseName.toLowerCase().indexOf(needle) > -1); this.myCourseList = this.allCourseList.filter(
v => v.CourseName.toLowerCase().indexOf(needle) > -1
);
} }
}) });
}, },
getCurseManager(row) { getCurseManager(row) {
let managerName = "<span class='text-grey-4'>暂未推送</span>"; let managerName = "<span class='text-grey-4'>暂未推送</span>";
...@@ -677,37 +744,36 @@ ...@@ -677,37 +744,36 @@
}); });
} }
return managerName; return managerName;
},
},
} }
}
};
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style> </style>
<style scoped> <style scoped>
/deep/.el-input__inner, /deep/.el-input__inner,
/deep/.el-range-input { /deep/.el-range-input {
background-color: transparent; background-color: transparent;
border: none; border: none;
} }
.stics { .stics {
padding: 10px 20px; padding: 10px 20px;
background: #DDDEE0; background: #dddee0;
border-radius: 4px; border-radius: 4px;
font-size: 13px; font-size: 13px;
color: #000000; color: #000000;
font-weight: bold font-weight: bold;
} }
.stics .stics-name { .stics .stics-name {
color: #2D2D2D; color: #2d2d2d;
font-weight: 600; font-weight: 600;
margin-right: 10px margin-right: 10px;
} }
.roatImg { .roatImg {
transform: rotate(180deg); transform: rotate(180deg);
} }
</style> </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