Commit d4b78b0b authored by 吴春's avatar 吴春

学员跟进

parent d2335c5c
......@@ -239,6 +239,16 @@ export function querySupplierType() {
})
}
/**
* 获取学员跟踪分页列表
*/
export function GetStudentFollowUpPageNewList(data) {
return request({
url: '/StudentStat/GetStudentFollowUpPageNewList',
method: 'post',
data
})
}
/**
......
<style scoped>
@import "../../../pages/financial/css/cssReset.css";
.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 th:first-child {
position: sticky;
left: 0px;
}
.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);
}
.stufollowlistNumber {
display: inline-block;
width: 25px;
height: 25px;
text-align: center;
line-height: 22px;
border: 1px solid #2961FE;
border-radius: 50%;
cursor: pointer;
color: #2961FE;
}
</style>
<template>
<div class="stufollowlist">
<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" style="min-width: 110px;z-index: 999;">学生</th>
<th width="120" style="min-width: 110px;">报名日期</th>
<th width="120" style="min-width: 110px;">职业</th>
<th width="80" style="min-width: 80px;">目的</th>
<th width="100" style="min-width: 100px;">班主任</th>
<th width="200" style="min-width: 200px;">课程名称</th>
<th width="80" style="min-width: 80px;">初报级别</th>
<th width="80" style="min-width: 80px;">金额</th>
<th width="200" style="min-width: 80px;">基本情况</th>
<th width="200" style="min-width: 200px;">续费课程</th>
<th width="80" style="min-width: 80px;" >续费级别</th>
<th width="80" style="min-width: 80px;">续费金额</th>
<th width="100" style="min-width: 100px;">负责人</th>
</tr>
<template v-if='dataObj&&dataObj.RList && dataObj.RList.length>0'>
<tr v-for=" ( item , index ) in dataObj.RList " :key="index">
<td style=" border: 1px solid #d2d2d2;">
<div class="text-blue cursor-pointer" @click="getStuRight(item)">
{{item.StuName }}
</div>
</td>
<td>
<span>{{ item.CreateTime }}</span>
</td>
<td>
<span >{{item.StuProfession}}</span>
</td>
<td>
<span>{{ item.StuPurposeName }}</span>
</td>
<td>
<span v-html="getTeacherManager(item)"></span>
</td>
<td>
<span>{{ item.CourseName }}</span>
</td>
<td>
<span>{{ item.CourseRateName?item.CourseRateName:'-' }}</span>
</td>
<td>
<span>{{ item.PreferPrice }}</span>
</td>
<td >
<div v-if="item.FollowList&&item.FollowList.length>0" v-for="(sItem,sIndex) in item.FollowList" style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex">
<div> <div v-html="sItem.Remark"></div> <span>{{sItem.CreateTime}}</span></div>
</div>
</td>
<td>
<div v-for="(sItem,sIndex) in item.RenewOrderList" style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex">
<span>{{sItem.CourseName}}</span>
</div>
</td>
<td>
<div v-for="(sItem,sIndex) in item.RenewOrderList" style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex">
<span>{{ sItem.CourseRateName?sItem.CourseRateName:'-' }}</span>
</div>
</td>
<td>
<div v-for="(sItem,sIndex) in item.RenewOrderList" style="border-bottom:1px dashed #d1d1d1;"
:key="sIndex">
<span>{{sItem.PreferPrice}}</span>
</div>
</td>
<td>
<span>{{ item.CreateByName?item.CreateByName:'-' }}</span>
</td>
</tr>
</template>
</table>
</div>
<div v-if='dataObj&&dataObj.RList && dataObj.RList.length>0'>
</div>
<div v-else
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;">
暂无数据
</div>
<studentRight-form v-if="isShowStuRight" :BelongType="BelongType" :save-obj="stuOption" @close="closeStuForm"
@success="refreshTable">
</studentRight-form>
<studentFUForm v-if="isShowStuFU" :save-obj="stuOption" @close="closeStuForm">
</studentFUForm>
</div>
</template>
<script>
import studentRightForm from "./studentRight-form";
import studentFUForm from "./studentFu-form";
export default {
props: {
//数据
dataObj: {
type: Object,
default: null
},
loading: {
type: Boolean,
default: false,
},
//表头数组
titlelist: {
type: Array,
default: null
},
//表头长度
RListlength: {
type: Number,
default: 0,
},
AuthObj: {
type: Object,
default: null
}
},
components: {
studentRightForm,
studentFUForm
},
data() {
return {
isShowStuFU: false,
isShowStuRight: false,
stuOption: {},
BelongType: 0,
ShowAuthObj: {
//是否显示同行、状态等信息
isShowSaleInfo: true,
},
};
},
mounted() {
if (this.AuthObj) {
this.ShowAuthObj.isShowSaleInfo = this.AuthObj.isShowSaleInfo;
}
},
methods: {
//刷新表格
refreshTable() {
this.$emit("success");
},
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;
},
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;
},
//点击学生姓名弹出
getStuRight(obj) {
if (obj) {
this.stuOption = obj;
this.BelongType = 3;
}
this.isShowStuRight = true;
},
//关闭弹窗
closeStuForm() {
this.isShowStuRight = false;
this.isShowStuFU = false
},
getxuyue(index) {
let obj = {
IntroductionNum: 0,
RenewNum: 0
};
this.dataObj.MonthList.forEach(x => {
if (x.MonthNum == index + 1) {
obj = x
}
})
return obj
},
}
};
</script>
\ No newline at end of file
......@@ -172,7 +172,7 @@
alt="">
</span>
</div>
<div class="col row wrap q-gutter-x-md" v-if="dataList&&dataList.Stat">
<!-- <div class="col row wrap q-gutter-x-md" v-if="dataList&&dataList.Stat" >
<div class="col stics">
<span class="stics-name">学生总数</span>
<span>{{dataList.Stat.StuTNum?dataList.Stat.StuTNum:0}}人</span>
......@@ -201,7 +201,7 @@
<span class="stics-name">退学数量</span>
<span>{{dataList.Stat.DropOutNum?dataList.Stat.DropOutNum:0}}人</span>
</div>
</div>
</div> -->
<div style="width: 100%;margin-top: 20px">
<stufollowlist :dataObj="dataList" :RListlength="RListlength" @success="refreshPage" :titlelist="titlelist"
:loading="loading" ref="stuFollowList" :AuthObj="AuthObj"></stufollowlist>
......@@ -212,7 +212,7 @@
</template>
<script>
import {
getStudentFollowUpPageList,
GetStudentFollowUpPageNewList,
} from '../../api/studyabroad/index'
import {
queryCourseDropdownList,
......@@ -240,7 +240,7 @@
import {
GetStudentAdvisorConfigList,
} from "../../api/customerstudent/customerstudent";
import stufollowlist from "../../components/school/student/stufollowlist";
import stufollowlist from "../../components/school/student/stufollowlistNew";
import {
mapState
} from "vuex";
......@@ -415,7 +415,7 @@
var msg = JSON.parse(JSON.stringify(this.msg));
this.loading = true;
EduDownLoad(
"/StudentStat/DownLoadStudentFollowUp",
"/StudentStat/DownLoadStudentFollowUpNew",
msg,
"教师学员跟踪.xls", res => {
this.loading = false;
......@@ -611,42 +611,13 @@
if (msg.StuSourceId == '' || msg.StuSourceId == null) {
msg.StuSourceId = 0
}
getStudentFollowUpPageList(msg).then(res => {
GetStudentFollowUpPageNewList(msg).then(res => {
this.loading = false;
this.RListlength = res.Data.PageData && res.Data.PageData.MaxMonth ? res.Data.PageData.MaxMonth : 1;
var titlelist = [{
Name: '月份/续费/转介',
Id: 1,
index: 0
}, {
Name: '教师跟踪时间及情况说明',
Id: 2,
index: 0
}, {
Name: '顾问跟踪时间及情况说明',
Id: 3,
index: 0
}, ];
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
titlelist = [];
for (let i = 0; i < this.RListlength; i++) {
let obj = [{
Name: '月份/续费/转介',
Id: 1,
index: i
}, {
Name: '教师跟踪时间及情况说明',
Id: 2,
index: i
}, {
Name: '顾问跟踪时间及情况说明',
Id: 3,
index: i
}, ]
titlelist = [...titlelist, ...obj]
}
this.titlelist = titlelist;
})
.catch(() => {
this.loading = false;
......
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