|
@@ -22,7 +22,8 @@
|
|
|
:model.sync="searchForm"
|
|
|
>
|
|
|
<el-form-item>
|
|
|
- <el-input clearable
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
placeholder="学生姓名或电话"
|
|
|
@keyup.enter.native="onSearch"
|
|
|
v-model.trim="searchForm.search"
|
|
@@ -46,7 +47,10 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
- <remote-search :commit="'setTeachers'" v-model="searchForm.teacherId" />
|
|
|
+ <remote-search
|
|
|
+ :commit="'setTeachers'"
|
|
|
+ v-model="searchForm.teacherId"
|
|
|
+ />
|
|
|
<!-- <el-select
|
|
|
placeholder="指导老师"
|
|
|
v-model="searchForm.teacherId"
|
|
@@ -136,44 +140,33 @@
|
|
|
:data="tableList"
|
|
|
:header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="userId"
|
|
|
- label="学员编号"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
+ <el-table-column align="center" prop="userId" label="学员编号">
|
|
|
+ <template slot-scope="scope">
|
|
|
<copy-text>{{ scope.row.userId }}</copy-text>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="username"
|
|
|
- label="学员姓名"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
+ <el-table-column align="center" prop="username" label="学员姓名">
|
|
|
+ <template slot-scope="scope">
|
|
|
<copy-text>{{ scope.row.username }}</copy-text>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="organName"
|
|
|
- label="所属分部"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
+ <el-table-column align="center" prop="organName" label="所属分部">
|
|
|
+ <template slot-scope="scope">
|
|
|
<copy-text>{{ scope.row.organName }}</copy-text>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
- prop="subjectName"
|
|
|
- label="声部"
|
|
|
+ prop="cooperationOrganName"
|
|
|
+ label="所属学校"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
- prop="teacherName"
|
|
|
- label="指导老师"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
+ prop="subjectName"
|
|
|
+ label="声部"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column align="center" prop="teacherName" label="指导老师">
|
|
|
+ <template slot-scope="scope">
|
|
|
<copy-text>{{ scope.row.teacherName }}</copy-text>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -193,14 +186,12 @@
|
|
|
prop="parentsPhone"
|
|
|
label="家长联系电话"
|
|
|
></el-table-column>
|
|
|
- <el-table-column align="center" >
|
|
|
+ <el-table-column align="center">
|
|
|
<template slot="header">
|
|
|
<p style="position: relative">
|
|
|
是否激活
|
|
|
<el-tooltip placement="top" popper-class="mTooltip">
|
|
|
- <div slot="content">
|
|
|
- 学员是否设置密码
|
|
|
- </div>
|
|
|
+ <div slot="content">学员是否设置密码</div>
|
|
|
<i
|
|
|
class="el-icon-question"
|
|
|
style="font-size: 18px; color: #f56c6c"
|
|
@@ -265,19 +256,15 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="carePackage"
|
|
|
- label="关心包"
|
|
|
- >
|
|
|
- <template slot-scope="scope">{{ scope.row.carePackage | studentPackage }}</template>
|
|
|
+ <el-table-column align="center" prop="carePackage" label="关心包">
|
|
|
+ <template slot-scope="scope">{{
|
|
|
+ scope.row.carePackage | studentPackage
|
|
|
+ }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="comeOnPackage"
|
|
|
- label="加油包"
|
|
|
- >
|
|
|
- <template slot-scope="scope">{{ scope.row.comeOnPackage | studentPackage }}</template>
|
|
|
+ <el-table-column align="center" prop="comeOnPackage" label="加油包">
|
|
|
+ <template slot-scope="scope">{{
|
|
|
+ scope.row.comeOnPackage | studentPackage
|
|
|
+ }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
align="center"
|
|
@@ -293,10 +280,11 @@
|
|
|
path: `/studentManager/studentDetail`,
|
|
|
query: { ...scope.row },
|
|
|
}"
|
|
|
- >查看</router-link>
|
|
|
+ >查看</router-link
|
|
|
+ >
|
|
|
<el-button
|
|
|
type="text"
|
|
|
- style="padding-left: 10px;"
|
|
|
+ style="padding-left: 10px"
|
|
|
v-permission="'studentManage/studentUpdate'"
|
|
|
@click="resetStudent(scope.row)"
|
|
|
>修改</el-button
|
|
@@ -309,7 +297,7 @@
|
|
|
>修改密码</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
- v-if="scope.row.isSignedContract"
|
|
|
+ v-if="scope.row.isSignedContract"
|
|
|
type="text"
|
|
|
@click="lookContracts(scope.row)"
|
|
|
v-permission="'sysUserContracts/getLatest'"
|
|
@@ -349,7 +337,7 @@
|
|
|
title="课程信息"
|
|
|
type="info"
|
|
|
:closable="false"
|
|
|
- style="margin-bottom: 15px;"
|
|
|
+ style="margin-bottom: 15px"
|
|
|
></el-alert>
|
|
|
<el-form-item label="学生姓名" prop="name">
|
|
|
<el-input v-model.trim="studentForm.name"></el-input>
|
|
@@ -425,6 +413,7 @@
|
|
|
clearable
|
|
|
placeholder="请选择分部"
|
|
|
@change="changeStudentOrgan"
|
|
|
+
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="(item, index) in selects.branchs"
|
|
@@ -434,6 +423,17 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item prop="school" label="所属学校">
|
|
|
+ <el-select v-model.trim="studentForm.school" filterable clearable :disabled='!studentForm.organId'>
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in cooperationList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
<el-form-item label="指导老师" prop="teacherId">
|
|
|
<el-select
|
|
|
class="multiple"
|
|
@@ -453,7 +453,7 @@
|
|
|
title="课程信息"
|
|
|
type="info"
|
|
|
:closable="false"
|
|
|
- style="margin-bottom: 15px;"
|
|
|
+ style="margin-bottom: 15px"
|
|
|
></el-alert>
|
|
|
<el-form-item label="是否运营" prop="operatingTag">
|
|
|
<el-select
|
|
@@ -559,14 +559,14 @@
|
|
|
},
|
|
|
]"
|
|
|
>
|
|
|
- <copy-text>{{passwrodForm.phone}}</copy-text>
|
|
|
+ <copy-text>{{ passwrodForm.phone }}</copy-text>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
label="输入密码"
|
|
|
prop="password"
|
|
|
label-width="120px"
|
|
|
:rules="[
|
|
|
- { required: true, message: '密码不能为空', trigger: 'blur' },
|
|
|
+ { required: true, message: '密码不能为空', trigger: 'blur' },
|
|
|
{
|
|
|
pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,
|
|
|
message: '密码为6-20位数字和字母组合',
|
|
@@ -598,11 +598,7 @@
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- title="协议下载"
|
|
|
- :visible.sync="protocolVisible"
|
|
|
- width="600px"
|
|
|
- >
|
|
|
+ <el-dialog title="协议下载" :visible.sync="protocolVisible" width="600px">
|
|
|
<div v-if="protocolVisible">
|
|
|
<!-- <el-alert
|
|
|
title="点击下载"
|
|
@@ -619,18 +615,19 @@
|
|
|
>
|
|
|
<el-table-column align="center" prop="studentId" label="协议名称">
|
|
|
<template slot-scope="scope">
|
|
|
- 产品与服务协议{{ scope.row.version == 2 ? "(含课程)" : "(含系统)" }}
|
|
|
+ 产品与服务协议{{
|
|
|
+ scope.row.version == 2 ? "(含课程)" : "(含系统)"
|
|
|
+ }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="签署时间" prop="createTime">
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center"
|
|
|
- width="150px"
|
|
|
- label="操作">
|
|
|
+ <el-table-column align="center" width="150px" label="操作">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
- <el-button type="text"
|
|
|
- @click="onDownloadProtocol(scope.row)">下载</el-button>
|
|
|
+ <el-button type="text" @click="onDownloadProtocol(scope.row)"
|
|
|
+ >下载</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -652,14 +649,15 @@ import {
|
|
|
studentHasCourse,
|
|
|
getLatest,
|
|
|
} from "@/api/studentManager";
|
|
|
-import qrCode from '@/components/QrCode/index';
|
|
|
+import { queryByOrganId } from "@/api/systemManage";
|
|
|
+import qrCode from "@/components/QrCode/index";
|
|
|
import cleanDeep from "clean-deep";
|
|
|
import { vaildStudentUrl } from "@/utils/validate";
|
|
|
import { getEmployeeOrgan, resetPassword2, getTeacher } from "@/api/buildTeam";
|
|
|
import { subjectListTree } from "@/api/specialSetting";
|
|
|
import axios from "axios";
|
|
|
import qs from "qs";
|
|
|
-import { packageStatus } from '@/constant/index'
|
|
|
+import { packageStatus } from "@/constant/index";
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
import load from "@/utils/loading";
|
|
|
import { permission } from "@/utils/directivePage";
|
|
@@ -710,10 +708,11 @@ export default {
|
|
|
isNewUser: null,
|
|
|
carePackage: 0,
|
|
|
comeOnPackage: 0,
|
|
|
+ school:null
|
|
|
},
|
|
|
studentUpdatePackage: {
|
|
|
carePackage: 0,
|
|
|
- comeOnPackage: 0
|
|
|
+ comeOnPackage: 0,
|
|
|
},
|
|
|
studentRules: {
|
|
|
name: [{ required: true, message: "请输入学生姓名" }],
|
|
@@ -740,7 +739,8 @@ export default {
|
|
|
},
|
|
|
activatedRow: null,
|
|
|
protocolVisible: false,
|
|
|
- protocolVersions: []
|
|
|
+ protocolVersions: [],
|
|
|
+ cooperationList: [],
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -756,7 +756,7 @@ export default {
|
|
|
onCreateQRCode() {
|
|
|
// 生成报名二维码
|
|
|
this.qrcodeStatus = true;
|
|
|
- this.qrcodeUrl = vaildStudentUrl() + `/#/queryStudentPer`
|
|
|
+ this.qrcodeUrl = vaildStudentUrl() + `/#/queryStudentPer`;
|
|
|
},
|
|
|
getList() {
|
|
|
let params = this.searchForm;
|
|
@@ -783,7 +783,7 @@ export default {
|
|
|
serviceTag: null,
|
|
|
teacherId: null,
|
|
|
};
|
|
|
- this.getList()
|
|
|
+ this.getList();
|
|
|
},
|
|
|
downLoadStudent() {
|
|
|
let url = "/api-web/export/studentHasCourse";
|
|
@@ -896,7 +896,8 @@ export default {
|
|
|
isNewUser: studentForm.isNewUser,
|
|
|
subjectIdList: studentForm.subjectIdList,
|
|
|
carePackage: studentForm.carePackage,
|
|
|
- comeOnPackage: studentForm.comeOnPackage
|
|
|
+ comeOnPackage: studentForm.comeOnPackage,
|
|
|
+ cooperationOrganId:studentForm.school
|
|
|
};
|
|
|
registerStudent(obj).then((res) => {
|
|
|
if (res.code == 200) {
|
|
@@ -927,7 +928,8 @@ export default {
|
|
|
isNewUser: studentForm.isNewUser,
|
|
|
subjectIdList: studentForm.subjectIdList,
|
|
|
carePackage: studentForm.carePackage,
|
|
|
- comeOnPackage: studentForm.comeOnPackage
|
|
|
+ comeOnPackage: studentForm.comeOnPackage,
|
|
|
+ cooperationOrganId:studentForm.school
|
|
|
};
|
|
|
updateStudent(obj).then((res) => {
|
|
|
if (res.code == 200) {
|
|
@@ -994,12 +996,13 @@ export default {
|
|
|
isNewUser: row.isNewUser,
|
|
|
subjectIdList: Number(row.subjectIdList) || null,
|
|
|
carePackage: row.carePackage,
|
|
|
- comeOnPackage: row.comeOnPackage
|
|
|
+ comeOnPackage: row.comeOnPackage,
|
|
|
+ school:row.cooperationOrganId
|
|
|
};
|
|
|
this.studentUpdatePackage = {
|
|
|
carePackage: row.carePackage,
|
|
|
- comeOnPackage: row.comeOnPackage
|
|
|
- }
|
|
|
+ comeOnPackage: row.comeOnPackage,
|
|
|
+ };
|
|
|
});
|
|
|
},
|
|
|
onMaskClose(formName) {
|
|
@@ -1044,25 +1047,34 @@ export default {
|
|
|
},
|
|
|
async changeStudentOrgan(val) {
|
|
|
this.studentForm.teacherId = null;
|
|
|
- await getTeacher({ organId: val }).then((res) => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.maskTeacherList = res.data;
|
|
|
- }
|
|
|
- });
|
|
|
+ if (val) {
|
|
|
+ await getTeacher({ organId: val }).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.maskTeacherList = res.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ queryByOrganId({ organId: val }).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.cooperationList = res.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.maskTeacherList = [];
|
|
|
+ }
|
|
|
},
|
|
|
async lookContracts(row) {
|
|
|
await getLatest({ userId: row.userId }).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- if(res.data) {
|
|
|
- this.protocolVersions = res.data
|
|
|
- this.protocolVisible = true
|
|
|
+ if (res.data) {
|
|
|
+ this.protocolVersions = res.data;
|
|
|
+ this.protocolVisible = true;
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
onDownloadProtocol(item) {
|
|
|
- window.location.href = item.url
|
|
|
- }
|
|
|
+ window.location.href = item.url;
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|