|
@@ -72,7 +72,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item prop="isActive" >
|
|
|
+ <el-form-item prop="isActive">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="searchForm.isActive"
|
|
@@ -95,7 +95,7 @@
|
|
|
<el-option label="否" value="0"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="operatingTag" v-if="tenantId ==1">
|
|
|
+ <el-form-item prop="operatingTag" v-if="tenantId == 1">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="searchForm.operatingTag"
|
|
@@ -106,7 +106,7 @@
|
|
|
<el-option label="否" :value="0"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="serviceTag" v-if="tenantId==1">
|
|
|
+ <el-form-item prop="serviceTag" v-if="tenantId == 1">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="searchForm.serviceTag"
|
|
@@ -174,21 +174,26 @@
|
|
|
>
|
|
|
</el-form-item>
|
|
|
</save-form>
|
|
|
- <el-button style="margin-bottom: 20px;" type="primary"
|
|
|
- @click="addStudentMember" icon="el-icon-plus">创建团练宝缴费</el-button>
|
|
|
+ <el-button
|
|
|
+ style="margin-bottom: 20px"
|
|
|
+ type="primary"
|
|
|
+ @click="addStudentMember"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ >创建团练宝缴费</el-button
|
|
|
+ >
|
|
|
<el-button
|
|
|
v-permission="'studentManage/register'"
|
|
|
@click="addStudent"
|
|
|
type="primary"
|
|
|
icon="el-icon-plus"
|
|
|
- style="margin-bottom:20px"
|
|
|
+ style="margin-bottom: 20px"
|
|
|
>
|
|
|
新增学员
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
@click="onCreateQRCode"
|
|
|
type="primary"
|
|
|
- style="margin-bottom:20px"
|
|
|
+ style="margin-bottom: 20px"
|
|
|
>
|
|
|
学员激活列表
|
|
|
</el-button>
|
|
@@ -199,13 +204,14 @@
|
|
|
:header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
|
- <el-table-column
|
|
|
- type="selection"
|
|
|
- width="55"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column type="selection" width="55"></el-table-column>
|
|
|
<el-table-column type="expand">
|
|
|
<template slot-scope="props">
|
|
|
- <el-form label-position="left" class="demo-table-expand" :inline='true'>
|
|
|
+ <el-form
|
|
|
+ label-position="left"
|
|
|
+ class="demo-table-expand"
|
|
|
+ :inline="true"
|
|
|
+ >
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="所属学校">
|
|
@@ -216,15 +222,24 @@
|
|
|
></overflow-text>
|
|
|
</div> </el-form-item
|
|
|
></el-col>
|
|
|
- <el-col :span="4" >
|
|
|
+ <el-col :span="4">
|
|
|
<el-form-item>
|
|
|
<span slot="label"
|
|
|
>是否激活
|
|
|
<el-tooltip placement="top" popper-class="mTooltip">
|
|
|
<div slot="content">学员是否设置密码</div>
|
|
|
- <i @click="()=>{console.log('点击')}"
|
|
|
+ <i
|
|
|
+ @click="
|
|
|
+ () => {
|
|
|
+ console.log('点击');
|
|
|
+ }
|
|
|
+ "
|
|
|
class="el-icon-question question"
|
|
|
- style="font-size: 18px; color: #f56c6c;cursor:pointer;"
|
|
|
+ style="
|
|
|
+ font-size: 18px;
|
|
|
+ color: #f56c6c;
|
|
|
+ cursor: pointer;
|
|
|
+ "
|
|
|
></i> </el-tooltip
|
|
|
></span>
|
|
|
<div>{{ props.row.isActive ? "是" : "否" }}</div>
|
|
@@ -255,7 +270,7 @@
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="4">
|
|
|
- <el-form-item label="是否运营" v-if="tenantId==1">
|
|
|
+ <el-form-item label="是否运营" v-if="tenantId == 1">
|
|
|
<span>{{ props.row.operatingTag ? "是" : "否" }}</span>
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
@@ -277,6 +292,18 @@
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
</el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="学员年级">
|
|
|
+ <span>{{ props.row.currentGrade }}</span>
|
|
|
+ </el-form-item></el-col
|
|
|
+ >
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="学员班级">
|
|
|
+ <span>{{ props.row.currentClass }}</span>
|
|
|
+ </el-form-item></el-col
|
|
|
+ >
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -377,7 +404,7 @@
|
|
|
scope.row.operatingTag ? "是" : "否"
|
|
|
}}</template>
|
|
|
</el-table-column> -->
|
|
|
- <el-table-column align="center" label="是否服务" v-if="tenantId==1">
|
|
|
+ <el-table-column align="center" label="是否服务" v-if="tenantId == 1">
|
|
|
<template slot-scope="scope">{{
|
|
|
scope.row.serviceTag ? "是" : "否"
|
|
|
}}</template>
|
|
@@ -464,13 +491,11 @@
|
|
|
<p style="position: relative">
|
|
|
是否是新用户
|
|
|
<el-tooltip placement="top" popper-class="mTooltip">
|
|
|
- <div slot="content">
|
|
|
- 未购买VIP课程的学员为新用户
|
|
|
- </div>
|
|
|
+ <div slot="content">未购买VIP课程的学员为新用户</div>
|
|
|
|
|
|
<i
|
|
|
class="el-icon-question"
|
|
|
- style="font-size: 18px; color: #f56c6c;cursor:pointer;"
|
|
|
+ style="font-size: 18px; color: #f56c6c; cursor: pointer"
|
|
|
></i>
|
|
|
</el-tooltip>
|
|
|
</p>
|
|
@@ -521,7 +546,9 @@
|
|
|
<el-button
|
|
|
type="text"
|
|
|
style="padding-left: 10px"
|
|
|
- v-if="$helpers.permission('studentManage/studentUpdate/setStudent')"
|
|
|
+ v-if="
|
|
|
+ $helpers.permission('studentManage/studentUpdate/setStudent')
|
|
|
+ "
|
|
|
@click="setStudent(scope.row)"
|
|
|
>设置扩展声部</el-button
|
|
|
>
|
|
@@ -692,7 +719,7 @@
|
|
|
v-model.trim="studentForm.teacherId"
|
|
|
clearable
|
|
|
filterable
|
|
|
- :disabled='!studentForm.organId'
|
|
|
+ :disabled="!studentForm.organId"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="(item, index) in maskTeacherList"
|
|
@@ -702,13 +729,13 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="学生年级" prop="currentGradeNum">
|
|
|
+ <el-form-item label="学生年级" prop="currentGradeNum">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="studentForm.currentGradeNum"
|
|
|
clearable
|
|
|
filterable
|
|
|
- :disabled='!studentForm.organId'
|
|
|
+ :disabled="!studentForm.organId"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="(item, index) in maskTeacherList"
|
|
@@ -724,7 +751,7 @@
|
|
|
:closable="false"
|
|
|
style="margin-bottom: 15px"
|
|
|
></el-alert>
|
|
|
- <el-form-item label="是否运营" prop="operatingTag" v-if="tenantId==1">
|
|
|
+ <el-form-item label="是否运营" prop="operatingTag" v-if="tenantId == 1">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="studentForm.operatingTag"
|
|
@@ -734,7 +761,7 @@
|
|
|
<el-option :value="0" label="否"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否服务" prop="serviceTag" v-if="tenantId==1">
|
|
|
+ <el-form-item label="是否服务" prop="serviceTag" v-if="tenantId == 1">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
|
v-model.trim="studentForm.serviceTag"
|
|
@@ -749,9 +776,7 @@
|
|
|
<p style="position: relative; display: inline-block">
|
|
|
是否是新用户
|
|
|
<el-tooltip placement="top" popper-class="mTooltip">
|
|
|
- <div slot="content">
|
|
|
- 未购买VIP课程的学员为新用户
|
|
|
- </div>
|
|
|
+ <div slot="content">未购买VIP课程的学员为新用户</div>
|
|
|
<i
|
|
|
class="el-icon-question"
|
|
|
style="font-size: 18px; color: #f56c6c"
|
|
@@ -868,11 +893,21 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="协议下载" :visible.sync="protocolVisible" width="650px">
|
|
|
- <protocol-model v-if="protocolVisible" @close="protocolVisible = false" :protocolVersions="protocolVersions" />
|
|
|
+ <protocol-model
|
|
|
+ v-if="protocolVisible"
|
|
|
+ @close="protocolVisible = false"
|
|
|
+ :protocolVersions="protocolVersions"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="设置扩展分部" :visible.sync="extVisible" width="500px">
|
|
|
- <student-ext v-if="extVisible" :subjectList="subjectList" :detail="extDetail" @getList="getList" @close="extVisible = false" />
|
|
|
+ <student-ext
|
|
|
+ v-if="extVisible"
|
|
|
+ :subjectList="subjectList"
|
|
|
+ :detail="extDetail"
|
|
|
+ @getList="getList"
|
|
|
+ @close="extVisible = false"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog
|
|
@@ -896,7 +931,7 @@
|
|
|
</template>
|
|
|
<script>
|
|
|
import pagination from "@/components/Pagination/index";
|
|
|
-import protocolModel from '@/views/studentManager/modals/protocolModel';
|
|
|
+import protocolModel from "@/views/studentManager/modals/protocolModel";
|
|
|
import {
|
|
|
queryStudentList,
|
|
|
getStudentInfoByPhone,
|
|
@@ -908,14 +943,17 @@ import { queryByOrganId } from "@/api/systemManage";
|
|
|
// import { getGradeList } from "@/";
|
|
|
import qrCode from "@/components/QrCode/index";
|
|
|
import { vaildStudentUrl } from "@/utils/validate";
|
|
|
-import { resetPassword2, getTeacher,getAgreement } from "@/api/buildTeam";
|
|
|
-import { organizationCloudTeacherFeeQueryPage, subjectListTree } from "@/api/specialSetting";
|
|
|
+import { resetPassword2, getTeacher, getAgreement } from "@/api/buildTeam";
|
|
|
+import {
|
|
|
+ organizationCloudTeacherFeeQueryPage,
|
|
|
+ subjectListTree,
|
|
|
+} from "@/api/specialSetting";
|
|
|
import axios from "axios";
|
|
|
import qs from "qs";
|
|
|
import { getToken, getTenantId } from "@/utils/auth";
|
|
|
import load from "@/utils/loading";
|
|
|
import createMember from "./modals/createMember";
|
|
|
-import studentExt from './modals/studentExt'
|
|
|
+import studentExt from "./modals/studentExt";
|
|
|
export default {
|
|
|
name: "studentManagerList",
|
|
|
components: { pagination, qrCode, createMember, protocolModel, studentExt },
|
|
@@ -1003,7 +1041,7 @@ export default {
|
|
|
protocolVisible: false,
|
|
|
protocolVersions: [],
|
|
|
cooperationList: [],
|
|
|
- tenantId:null
|
|
|
+ tenantId: null,
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -1017,25 +1055,26 @@ export default {
|
|
|
this.searchForm.hasTeacher = this.$route.params.hasTeacher;
|
|
|
}
|
|
|
if (this.$route.params.organId) {
|
|
|
- this.searchForm.organId = []
|
|
|
+ this.searchForm.organId = [];
|
|
|
|
|
|
- this.searchForm.organId = this.searchForm.organId.push(this.$route.params.organId);
|
|
|
+ this.searchForm.organId = this.searchForm.organId.push(
|
|
|
+ this.$route.params.organId
|
|
|
+ );
|
|
|
}
|
|
|
this.$store.dispatch("setBranchs");
|
|
|
this.$store.dispatch("setTeachers");
|
|
|
this.getList();
|
|
|
- this.getAgreement()
|
|
|
- this.tenantId = this.$helpers.tenantId;
|
|
|
+ this.getAgreement();
|
|
|
+ this.tenantId = this.$helpers.tenantId;
|
|
|
},
|
|
|
methods: {
|
|
|
- async getAgreement() {
|
|
|
+ async getAgreement() {
|
|
|
try {
|
|
|
const res = await getAgreement();
|
|
|
if (!res.data) {
|
|
|
- this.$bus.$emit("showguide", ['agreement']);
|
|
|
+ this.$bus.$emit("showguide", ["agreement"]);
|
|
|
}
|
|
|
} catch (e) {}
|
|
|
-
|
|
|
},
|
|
|
handleSelectionChange(val) {
|
|
|
this.multipleSelection = val;
|
|
@@ -1045,14 +1084,14 @@ export default {
|
|
|
},
|
|
|
addStudentMember() {
|
|
|
if (this.multipleSelection.length > 0) {
|
|
|
- let organIds = []
|
|
|
- this.multipleSelection.forEach(m => {
|
|
|
- if(!organIds.includes(m.organId)) {
|
|
|
- organIds.push(m.organId)
|
|
|
+ let organIds = [];
|
|
|
+ this.multipleSelection.forEach((m) => {
|
|
|
+ if (!organIds.includes(m.organId)) {
|
|
|
+ organIds.push(m.organId);
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
- if(organIds.length == 1) {
|
|
|
+ if (organIds.length == 1) {
|
|
|
this.memberVisible = true;
|
|
|
} else {
|
|
|
this.$message.error("所选学员只能是同一分部");
|
|
@@ -1068,13 +1107,14 @@ export default {
|
|
|
onCreateQRCode() {
|
|
|
// 生成报名二维码
|
|
|
this.qrcodeStatus = true;
|
|
|
- this.qrcodeUrl = vaildStudentUrl() + `/#/queryStudentPer?tenantId=`+ this.tenantId;
|
|
|
+ this.qrcodeUrl =
|
|
|
+ vaildStudentUrl() + `/#/queryStudentPer?tenantId=` + this.tenantId;
|
|
|
},
|
|
|
getList() {
|
|
|
- let params = {...this.searchForm};
|
|
|
+ let params = { ...this.searchForm };
|
|
|
params.rows = this.pageInfo.limit;
|
|
|
params.page = this.pageInfo.page;
|
|
|
- params.organId = this.searchForm.organId.join(',') ;
|
|
|
+ params.organId = this.searchForm.organId.join(",");
|
|
|
queryStudentList(params).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
this.tableList = res.data.rows;
|
|
@@ -1101,28 +1141,32 @@ export default {
|
|
|
let url = "/api-web/export/studentHasCourse";
|
|
|
let searchForm = this.searchForm;
|
|
|
let data = {
|
|
|
- organId: searchForm.organId.join(','),
|
|
|
- search: searchForm.search+'' ? searchForm.search : null,
|
|
|
- isActive: searchForm.isActive+'' ? searchForm.isActive : null,
|
|
|
+ organId: searchForm.organId.join(","),
|
|
|
+ search: searchForm.search + "" ? searchForm.search : null,
|
|
|
+ isActive: searchForm.isActive + "" ? searchForm.isActive : null,
|
|
|
hasCourse: searchForm.hasCourse == "" ? null : searchForm.hasCourse,
|
|
|
// isMake: searchForm.isMake ? searchForm.isMake : null,
|
|
|
- hasPracticeCourse: searchForm.hasPracticeCourse+''
|
|
|
- ? searchForm.hasPracticeCourse
|
|
|
- : null,
|
|
|
- operatingTag: searchForm.operatingTag+'' ? searchForm.operatingTag : null,
|
|
|
- serviceTag: searchForm.serviceTag+'' ? searchForm.serviceTag : null,
|
|
|
- teacherId: searchForm.teacherId+'' ? searchForm.teacherId : null,
|
|
|
- carePackage: searchForm.carePackage+'' ? searchForm.carePackage : null,
|
|
|
- comeOnPackage: searchForm.comeOnPackage+'' ? searchForm.comeOnPackage : null,
|
|
|
- isNewUser: searchForm.isNewUser+'' ? searchForm.isNewUser : null,
|
|
|
- hasTeacher: searchForm.hasTeacher+'' ? searchForm.hasTeacher : null,
|
|
|
- isRecord: searchForm.isRecord+'' ? searchForm.isRecord : null,
|
|
|
+ hasPracticeCourse:
|
|
|
+ searchForm.hasPracticeCourse + ""
|
|
|
+ ? searchForm.hasPracticeCourse
|
|
|
+ : null,
|
|
|
+ operatingTag:
|
|
|
+ searchForm.operatingTag + "" ? searchForm.operatingTag : null,
|
|
|
+ serviceTag: searchForm.serviceTag + "" ? searchForm.serviceTag : null,
|
|
|
+ teacherId: searchForm.teacherId + "" ? searchForm.teacherId : null,
|
|
|
+ carePackage:
|
|
|
+ searchForm.carePackage + "" ? searchForm.carePackage : null,
|
|
|
+ comeOnPackage:
|
|
|
+ searchForm.comeOnPackage + "" ? searchForm.comeOnPackage : null,
|
|
|
+ isNewUser: searchForm.isNewUser + "" ? searchForm.isNewUser : null,
|
|
|
+ hasTeacher: searchForm.hasTeacher + "" ? searchForm.hasTeacher : null,
|
|
|
+ isRecord: searchForm.isRecord + "" ? searchForm.isRecord : null,
|
|
|
};
|
|
|
const options = {
|
|
|
method: "POST",
|
|
|
headers: {
|
|
|
Authorization: getToken(),
|
|
|
- tenantId: getTenantId()
|
|
|
+ tenantId: getTenantId(),
|
|
|
},
|
|
|
url,
|
|
|
data: qs.stringify(data),
|
|
@@ -1148,14 +1192,14 @@ export default {
|
|
|
// 判断是否报错
|
|
|
if (res.indexOf("code") != -1) {
|
|
|
let json = JSON.parse(res);
|
|
|
- if(json.code == 403) {
|
|
|
- this.$message.error(`登录过期,请重新登录!`)
|
|
|
+ if (json.code == 403) {
|
|
|
+ this.$message.error(`登录过期,请重新登录!`);
|
|
|
setTimeout(() => {
|
|
|
- this.$store.dispatch('user/resetToken').then(() => {
|
|
|
- location.reload()
|
|
|
- })
|
|
|
+ this.$store.dispatch("user/resetToken").then(() => {
|
|
|
+ location.reload();
|
|
|
+ });
|
|
|
}, 1000);
|
|
|
- return
|
|
|
+ return;
|
|
|
}
|
|
|
this.$message.error(json.msg);
|
|
|
} else {
|
|
@@ -1293,7 +1337,7 @@ export default {
|
|
|
});
|
|
|
this.subjectList = tempArray;
|
|
|
}
|
|
|
- console.log(this.subjectList)
|
|
|
+ console.log(this.subjectList);
|
|
|
});
|
|
|
},
|
|
|
async addStudent() {
|
|
@@ -1303,7 +1347,7 @@ export default {
|
|
|
this.maskName = "新增学员";
|
|
|
},
|
|
|
async resetStudent(row) {
|
|
|
- this.studentVisible = true;
|
|
|
+ this.studentVisible = true;
|
|
|
let organId = row.organId;
|
|
|
await this.getSubjectList();
|
|
|
await this.changeStudentOrgan(row.organId);
|
|
@@ -1327,7 +1371,7 @@ export default {
|
|
|
carePackage: row.carePackage,
|
|
|
comeOnPackage: row.comeOnPackage,
|
|
|
school: row.cooperationOrganId || null,
|
|
|
- extSubjectIds: row.extSubjectIds || null
|
|
|
+ extSubjectIds: row.extSubjectIds || null,
|
|
|
};
|
|
|
this.studentUpdatePackage = {
|
|
|
carePackage: row.carePackage,
|
|
@@ -1335,7 +1379,8 @@ export default {
|
|
|
};
|
|
|
});
|
|
|
},
|
|
|
- async setStudent(row) { // 设置扩展分部
|
|
|
+ async setStudent(row) {
|
|
|
+ // 设置扩展分部
|
|
|
await this.getSubjectList();
|
|
|
this.extDetail = {
|
|
|
id: row.userId,
|
|
@@ -1353,10 +1398,10 @@ export default {
|
|
|
carePackage: row.carePackage,
|
|
|
comeOnPackage: row.comeOnPackage,
|
|
|
cooperationOrganId: row.cooperationOrganId || null,
|
|
|
- extSubjectIds: row.extSubjectIds
|
|
|
- }
|
|
|
- console.log(row, 'show')
|
|
|
- this.extVisible = true
|
|
|
+ extSubjectIds: row.extSubjectIds,
|
|
|
+ };
|
|
|
+ console.log(row, "show");
|
|
|
+ this.extVisible = true;
|
|
|
},
|
|
|
onMaskClose(formName) {
|
|
|
this.$refs[formName].resetFields();
|
|
@@ -1405,13 +1450,11 @@ export default {
|
|
|
await getTeacher({ organId: val }).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
this.maskTeacherList = res.data;
|
|
|
- if(this.maskTeacherList<=0){
|
|
|
- this.$nextTick(()=>{
|
|
|
- this.$bus.$emit("showguide", ['teacher']);
|
|
|
- })
|
|
|
-
|
|
|
+ if (this.maskTeacherList <= 0) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$bus.$emit("showguide", ["teacher"]);
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
});
|
|
|
queryByOrganId({ organId: val }).then((res) => {
|
|
@@ -1491,5 +1534,4 @@ export default {
|
|
|
text-overflow: ellipsis;
|
|
|
white-space: nowrap;
|
|
|
}
|
|
|
-
|
|
|
</style>
|