|
@@ -17,7 +17,10 @@
|
|
|
<el-input
|
|
|
clearable
|
|
|
placeholder="学生姓名或电话"
|
|
|
- @keyup.enter.native="onSearch"
|
|
|
+ @keydown.enter.native="(e)=>{
|
|
|
+ e.target.blur()
|
|
|
+ onSearch()
|
|
|
+ }"
|
|
|
v-model.trim="searchForm.search"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
@@ -72,7 +75,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 +98,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 +109,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 +177,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 +207,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 +225,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 +273,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
|
|
|
>
|
|
@@ -377,7 +395,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 +482,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 +537,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 +710,7 @@
|
|
|
v-model.trim="studentForm.teacherId"
|
|
|
clearable
|
|
|
filterable
|
|
|
- :disabled='!studentForm.organId'
|
|
|
+ :disabled="!studentForm.organId"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="(item, index) in maskTeacherList"
|
|
@@ -708,7 +726,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"
|
|
@@ -718,7 +736,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"
|
|
@@ -733,9 +751,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"
|
|
@@ -852,11 +868,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
|
|
@@ -880,7 +906,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,
|
|
@@ -891,14 +917,17 @@ import {
|
|
|
import { queryByOrganId } from "@/api/systemManage";
|
|
|
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 },
|
|
@@ -986,7 +1015,7 @@ export default {
|
|
|
protocolVisible: false,
|
|
|
protocolVersions: [],
|
|
|
cooperationList: [],
|
|
|
- tenantId:null
|
|
|
+ tenantId: null,
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -1000,25 +1029,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;
|
|
@@ -1028,14 +1058,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("所选学员只能是同一分部");
|
|
@@ -1051,13 +1081,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;
|
|
@@ -1084,28 +1115,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),
|
|
@@ -1131,14 +1166,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 {
|
|
@@ -1276,7 +1311,7 @@ export default {
|
|
|
});
|
|
|
this.subjectList = tempArray;
|
|
|
}
|
|
|
- console.log(this.subjectList)
|
|
|
+ console.log(this.subjectList);
|
|
|
});
|
|
|
},
|
|
|
async addStudent() {
|
|
@@ -1286,7 +1321,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);
|
|
@@ -1310,7 +1345,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,
|
|
@@ -1318,7 +1353,8 @@ export default {
|
|
|
};
|
|
|
});
|
|
|
},
|
|
|
- async setStudent(row) { // 设置扩展分部
|
|
|
+ async setStudent(row) {
|
|
|
+ // 设置扩展分部
|
|
|
await this.getSubjectList();
|
|
|
this.extDetail = {
|
|
|
id: row.userId,
|
|
@@ -1336,10 +1372,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();
|
|
@@ -1388,13 +1424,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) => {
|
|
@@ -1474,5 +1508,4 @@ export default {
|
|
|
text-overflow: ellipsis;
|
|
|
white-space: nowrap;
|
|
|
}
|
|
|
-
|
|
|
</style>
|