|
@@ -114,12 +114,15 @@
|
|
|
<el-form-item>
|
|
|
<el-button native-type="submit" type="danger">搜索</el-button>
|
|
|
<el-button native-type="reset" type="primary">重置</el-button>
|
|
|
- <el-button
|
|
|
+ <el-button
|
|
|
type="primary"
|
|
|
v-if="tableList.length > 0"
|
|
|
- v-permission="'studentStatistics/exportStudentSmallClassStatisticsSum'"
|
|
|
+ v-permission="
|
|
|
+ 'studentStatistics/exportStudentSmallClassStatisticsSum'
|
|
|
+ "
|
|
|
@click="smallStudentExport"
|
|
|
- >导出</el-button>
|
|
|
+ >导出</el-button
|
|
|
+ >
|
|
|
</el-form-item>
|
|
|
</save-form>
|
|
|
|
|
@@ -201,9 +204,10 @@
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="回访日期">
|
|
|
<div class="schoolWrap" v-if="props.row.lastVisitTime">
|
|
|
- {{props.row.lastVisitTime | dayjsFormat}}
|
|
|
- </div> </el-form-item
|
|
|
- ></el-col>
|
|
|
+ {{ props.row.lastVisitTime | dayjsFormat }}
|
|
|
+ </div>
|
|
|
+ </el-form-item></el-col
|
|
|
+ >
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
@@ -285,13 +289,36 @@
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" prop="organName" label="学员状态">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>
|
|
|
- <p v-if="(scope.row.noScheduleNum || scope.row.subCourseNum)&&(scope.row.latelyYearCourseConsumer || !scope.row.overCourseNum)">在读</p>
|
|
|
- <p v-if="(scope.row.overCourseNum && (scope.row.subCourseNum || scope.row.noScheduleNum)&&!scope.row.latelyYearCourseConsumer)">沉睡</p>
|
|
|
- <p v-if="( scope.row.overCourseNum&&!scope.row.noScheduleNum&&!scope.row.subCourseNum)">流失</p>
|
|
|
- </div>
|
|
|
-
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>
|
|
|
+ <p
|
|
|
+ v-if="
|
|
|
+ (scope.row.noScheduleNum || scope.row.subCourseNum) &&
|
|
|
+ (scope.row.latelyYearCourseConsumer ||
|
|
|
+ !scope.row.overCourseNum)
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 在读
|
|
|
+ </p>
|
|
|
+ <p
|
|
|
+ v-if="
|
|
|
+ scope.row.overCourseNum &&
|
|
|
+ (scope.row.subCourseNum || scope.row.noScheduleNum) &&
|
|
|
+ !scope.row.latelyYearCourseConsumer
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 沉睡
|
|
|
+ </p>
|
|
|
+ <p
|
|
|
+ v-if="
|
|
|
+ scope.row.overCourseNum &&
|
|
|
+ !scope.row.noScheduleNum &&
|
|
|
+ !scope.row.subCourseNum
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 流失
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" prop="noScheduleNum" label="未排课时">
|
|
@@ -336,14 +363,18 @@
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
</div>
|
|
|
- <el-dialog
|
|
|
+ <el-dialog
|
|
|
title="回访记录"
|
|
|
width="1000px"
|
|
|
v-if="visitVisiable"
|
|
|
:close-on-click-modal="false"
|
|
|
:visible.sync="visitVisiable"
|
|
|
>
|
|
|
- <visiList :studentId='activeRow.userId' :studentName="activeRow.studentBasicInfo.userName" :groupType="groupType"/>
|
|
|
+ <visiList
|
|
|
+ :studentId="activeRow.userId"
|
|
|
+ :studentName="activeRow.studentBasicInfo.userName"
|
|
|
+ :groupType="groupType"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -354,15 +385,15 @@ import { queryPage } from "../api";
|
|
|
import { feedbackTypeList } from "@/utils/searchArray";
|
|
|
import { getTimes } from "@/utils";
|
|
|
import { Export } from "@/utils/downLoadFile";
|
|
|
-import cleanDeep from 'clean-deep'
|
|
|
-import visiList from './visiList.vue'
|
|
|
-import qs from 'qs'
|
|
|
+import cleanDeep from "clean-deep";
|
|
|
+import visiList from "./visiList.vue";
|
|
|
+import qs from "qs";
|
|
|
export default {
|
|
|
name: "tableList",
|
|
|
props: ["groupType"],
|
|
|
components: {
|
|
|
pagination,
|
|
|
- visiList
|
|
|
+ visiList,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -376,11 +407,9 @@ export default {
|
|
|
teacherId: "",
|
|
|
musicDirectorId: "",
|
|
|
courseConsumerError: "",
|
|
|
- timer: "",
|
|
|
+ timer:[],
|
|
|
},
|
|
|
- tableList: [
|
|
|
-
|
|
|
- ],
|
|
|
+ tableList: [],
|
|
|
feedbackTypeList,
|
|
|
pageInfo: {
|
|
|
// 分页规则
|
|
@@ -389,8 +418,8 @@ export default {
|
|
|
total: 0, // 总条数
|
|
|
page_size: [10, 20, 40, 50], // 选择限制显示条数
|
|
|
},
|
|
|
- visitVisiable:false,
|
|
|
- activeRow:null
|
|
|
+ visitVisiable: false,
|
|
|
+ activeRow: null,
|
|
|
};
|
|
|
},
|
|
|
async mounted() {
|
|
@@ -412,14 +441,18 @@ export default {
|
|
|
},
|
|
|
async getList() {
|
|
|
const { timer, ...rest } = this.searchForm;
|
|
|
+ console.log(timer)
|
|
|
try {
|
|
|
- let res = await queryPage({
|
|
|
+ let obj = {
|
|
|
groupType: this.groupType,
|
|
|
...rest,
|
|
|
...getTimes(timer, ["firstCourseStartTime", "firstCourseEndTime"]),
|
|
|
rows: this.pageInfo.limit,
|
|
|
page: this.pageInfo.page,
|
|
|
organId: this.searchForm.organId.join(","),
|
|
|
+ };
|
|
|
+ let res = await queryPage({
|
|
|
+ ...obj,
|
|
|
});
|
|
|
this.tableList = res.data.rows || [];
|
|
|
this.pageInfo.total = res.data.total;
|
|
@@ -431,44 +464,49 @@ export default {
|
|
|
params: { search: search },
|
|
|
});
|
|
|
},
|
|
|
- gototeacher(search){
|
|
|
- this.$router.push({
|
|
|
+ gototeacher(search) {
|
|
|
+ this.$router.push({
|
|
|
name: "teacherList",
|
|
|
params: { search: search },
|
|
|
});
|
|
|
},
|
|
|
- recordVisit(row){
|
|
|
+ recordVisit(row) {
|
|
|
this.activeRow = row;
|
|
|
- this.visitVisiable = true
|
|
|
+ this.visitVisiable = true;
|
|
|
},
|
|
|
- smallStudentExport(){
|
|
|
- const { timer, ...rest } = this.searchForm;
|
|
|
- let str = ''
|
|
|
- if(this.groupType === 'PRACTICE'){
|
|
|
- str='网管课'
|
|
|
- }else if(this.groupType === 'VIP'){
|
|
|
- str='VIP课'
|
|
|
- }else{
|
|
|
- str='乐理课'
|
|
|
- }
|
|
|
+ smallStudentExport() {
|
|
|
+ const { timer, ...rest } = this.searchForm;
|
|
|
+ let str = "";
|
|
|
+ if (this.groupType === "PRACTICE") {
|
|
|
+ str = "网管课";
|
|
|
+ } else if (this.groupType === "VIP") {
|
|
|
+ str = "VIP课";
|
|
|
+ } else {
|
|
|
+ str = "乐理课";
|
|
|
+ }
|
|
|
Export(
|
|
|
this,
|
|
|
{
|
|
|
url: "/api-web/studentStatistics/exportStudentSmallClassStatisticsSum",
|
|
|
fileName: `${str}学员管理.xls`,
|
|
|
method: "post",
|
|
|
- params: qs.stringify(cleanDeep({
|
|
|
- groupType: this.groupType,
|
|
|
- ...rest,
|
|
|
- ...getTimes(timer, ["firstCourseStartTime", "firstCourseEndTime"]),
|
|
|
- rows: this.pageInfo.limit,
|
|
|
- page: this.pageInfo.page,
|
|
|
- organId: this.searchForm.organId.join(","),
|
|
|
- })),
|
|
|
+ params: qs.stringify(
|
|
|
+ cleanDeep({
|
|
|
+ groupType: this.groupType,
|
|
|
+ ...rest,
|
|
|
+ ...getTimes(timer, [
|
|
|
+ "firstCourseStartTime",
|
|
|
+ "firstCourseEndTime",
|
|
|
+ ]),
|
|
|
+ rows: this.pageInfo.limit,
|
|
|
+ page: this.pageInfo.page,
|
|
|
+ organId: this.searchForm.organId.join(","),
|
|
|
+ })
|
|
|
+ ),
|
|
|
},
|
|
|
`您确定导出${str}学员管理?`
|
|
|
);
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|