|
@@ -203,6 +203,17 @@
|
|
|
<el-option label="已使用" :value="2"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item prop="memberRankId">
|
|
|
+ <el-cascader
|
|
|
+ v-model.trim="searchForm.memberRankId"
|
|
|
+ :options="memberRankList"
|
|
|
+ :props="{ value: 'id', label: 'name', }"
|
|
|
+ :show-all-levels="false"
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ placeholder="请选择学练宝版本"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button native-type="submit" type="danger">搜索</el-button>
|
|
|
<el-button type="primary" native-type="reset">重置</el-button>
|
|
@@ -309,28 +320,6 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column label="学员姓名" width="120px;" prop="realName">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div
|
|
|
- @click="gotoStudent(scope.row.realName)"
|
|
|
- style="color: var(--color-primary); cursor: pointer"
|
|
|
- >
|
|
|
- <copy-text>
|
|
|
- {{ scope.row.realName }}
|
|
|
- </copy-text>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- <el-table-column
|
|
|
- align="center"
|
|
|
- prop="gender"
|
|
|
- width="50px;"
|
|
|
- label="性别"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>{{ scope.row.gender | sex }}</div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column align="center" prop="phone" label="联系电话">
|
|
|
<template slot-scope="scope">
|
|
|
<copy-text>
|
|
@@ -353,13 +342,6 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column align="center" label="报名专业" prop="subjectName">
|
|
|
- <template slot-scope="scope">
|
|
|
- <copy-text>
|
|
|
- {{ scope.row.regSubjectName }}
|
|
|
- </copy-text>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column align="center" label="入团专业" prop="subjectName">
|
|
|
<template slot-scope="scope">
|
|
|
<copy-text>
|
|
@@ -382,26 +364,6 @@
|
|
|
<div>{{ scope.row.paymentStatus | paymentStatus }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column align="center" label="是否激活">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>{{ scope.row.isActive ? "是" : "否" }}</div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- <el-table-column align="center" label="VIP/网管是否有课">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>{{ scope.row.hasCourse ? "是" : "否" }}</div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- <el-table-column align="center" label="关心包">
|
|
|
- <template slot-scope="scope">{{
|
|
|
- scope.row.carePackage | studentPackage
|
|
|
- }}</template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- <el-table-column align="center" label="加油包">
|
|
|
- <template slot-scope="scope">{{
|
|
|
- scope.row.comeOnPackage | studentPackage
|
|
|
- }}</template>
|
|
|
- </el-table-column> -->
|
|
|
<el-table-column align="center" label="欠费金额(元)">
|
|
|
<template slot-scope="scope">
|
|
|
<div :class="[scope.row.noPaymentAmount > 0 ? 'error' : null]">
|
|
@@ -421,107 +383,26 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column label="退团原因" align="center">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>
|
|
|
- <Tooltip :content="scope.row.quitReason" />
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- <el-table-column
|
|
|
- label="下次续费时间(剩余天数)"
|
|
|
- align="center"
|
|
|
- width="120px;"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <div>
|
|
|
- {{ scope.row.musicMembershipEndTime | dayjsFormat }}
|
|
|
- <p
|
|
|
- class="error"
|
|
|
- v-if="
|
|
|
- scope.row.musicMembershipEndTime &&
|
|
|
- scope.row.musicMembershipDay >= 0
|
|
|
- "
|
|
|
- >
|
|
|
- 剩余{{ scope.row.musicMembershipDay }}天
|
|
|
- </p>
|
|
|
- <p
|
|
|
- class="error"
|
|
|
- v-if="
|
|
|
- scope.row.musicMembershipEndTime &&
|
|
|
- scope.row.musicMembershipDay < 0
|
|
|
- "
|
|
|
- >
|
|
|
- 已欠费{{ Math.abs(scope.row.musicMembershipDay) }}天
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
<el-table-column
|
|
|
- label="会员试用结束日期(剩余天数)"
|
|
|
+ label="学练宝截止时间(剩余天数)"
|
|
|
align="center"
|
|
|
- width="120px;"
|
|
|
>
|
|
|
<template slot-scope="scope">
|
|
|
- <div>
|
|
|
- {{ scope.row.experienceMembershipEndTime | dayjsFormat }}
|
|
|
- <p
|
|
|
- class="error"
|
|
|
- v-if="
|
|
|
- scope.row.experienceMembershipEndTime &&
|
|
|
- scope.row.experienceMembershipDay >= 0
|
|
|
- "
|
|
|
- >
|
|
|
- 剩余{{ scope.row.experienceMembershipDay }}天
|
|
|
- </p>
|
|
|
- <p
|
|
|
- class="error"
|
|
|
- v-if="
|
|
|
- scope.row.experienceMembershipEndTime &&
|
|
|
- scope.row.experienceMembershipDay < 0
|
|
|
- "
|
|
|
- >
|
|
|
- 已过期{{ Math.abs(scope.row.experienceMembershipDay) }}天
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <el-table-column
|
|
|
- label="会员截止时间(剩余天数)"
|
|
|
- align="center"
|
|
|
- width="120px;"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <div v-if="scope.row.membershipEndTime">
|
|
|
- <div v-if="scope.row.membershipDay >= 0">
|
|
|
- {{ scope.row.membershipEndTime | dayjsFormat }}
|
|
|
- <p class="red">剩余{{ scope.row.membershipDay }}天</p>
|
|
|
- </div>
|
|
|
- <!-- 已过期 -->
|
|
|
- <div v-else>
|
|
|
- <!-- 有未生效 -->
|
|
|
- <div v-if="scope.row.hasNoStartCloudTeacher">
|
|
|
- <p>会员未生效</p>
|
|
|
- </div>
|
|
|
- <!-- 无未生效 -->
|
|
|
- <div v-else>
|
|
|
- {{ scope.row.membershipEndTime | dayjsFormat }}
|
|
|
- <p class="red" v-if="scope.row.membershipDay < 0">
|
|
|
- 已过期{{ Math.abs(scope.row.membershipDay) }}天
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <!-- <div></div>
|
|
|
- <p v-if="scope.row.hasNoStartCloudTeacher">
|
|
|
- {{ scope.row.membershipEndTime | dayjsFormat }}
|
|
|
- </p> -->
|
|
|
- </div>
|
|
|
-
|
|
|
- <div v-else class="red">
|
|
|
- <div v-if="scope.row.hasNoStartCloudTeacher">会员未生效</div>
|
|
|
- <div v-else>未购买会员</div>
|
|
|
+ <div v-if="scope.row.cloudTeacherOrderList && scope.row.cloudTeacherOrderList.length > 0">
|
|
|
+ <!-- <div v-for="(item, index) in scope.row.cloudTeacherOrderList" :key="index">
|
|
|
+ {{ item.memberRankName }}
|
|
|
+ {{ item.endTime | dayjsFormat }}
|
|
|
+ <p class="red">剩余{{ item.remainingDays }}天</p>
|
|
|
+ </div> -->
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="() => {
|
|
|
+ memberVisible = true;
|
|
|
+ tableMemberList = scope.row.cloudTeacherOrderList
|
|
|
+ }"
|
|
|
+ >查看</el-button>
|
|
|
</div>
|
|
|
+ <div v-else class="red"> 未购买会员 </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="备注" prop="remark" align="center">
|
|
@@ -970,6 +851,27 @@
|
|
|
>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ title="学练宝详情"
|
|
|
+ :visible.sync="memberVisible"
|
|
|
+ width="600px"
|
|
|
+ >
|
|
|
+ <el-table :data="tableMemberList" :header-cell-style="{ background: '#EDEEF0', color: '#444' }">
|
|
|
+ <el-table-column align="center" prop="memberRankName" label="学练宝版本">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.memberRankName }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="endTime" label="截止时间">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.endTime | dayjsFormat }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="remainingDays" label="剩余天数">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
<!-- <el-dialog
|
|
|
title="新增会员试用期"
|
|
|
width="600px"
|
|
@@ -1035,6 +937,7 @@ import visit from "@/views/withdrawal-application/modals/visit";
|
|
|
import mergeMusic from "@/views/teamBuild/components/merge-music";
|
|
|
import quiteTeam from "@/views/teamDetail/components/modals/quite-team";
|
|
|
import addTryList from "@/views/teamDetail/components/modals/addTryList";
|
|
|
+import { getmemberRankList } from '@/views/categroyManager/productSystem/api'
|
|
|
export default {
|
|
|
name: "tstudentList",
|
|
|
data() {
|
|
@@ -1049,6 +952,8 @@ export default {
|
|
|
addStudentVisible: false, //新增学员弹窗
|
|
|
timesVisible: false,
|
|
|
timerDetail: null,
|
|
|
+ memberVisible: false,
|
|
|
+ tableMemberList: [],
|
|
|
topFrom: {
|
|
|
// 顶部的禁选框集合
|
|
|
expect: "2", // 预期招生
|
|
@@ -1069,8 +974,10 @@ export default {
|
|
|
classGroupId: null,
|
|
|
hasCourse: null,
|
|
|
carePackage: null,
|
|
|
- comeOnPackage: null
|
|
|
+ comeOnPackage: null,
|
|
|
+ memberRankId: null,
|
|
|
},
|
|
|
+ memberRankList: [],
|
|
|
organizationCourseUnitPriceSettings: [],
|
|
|
quitForm: {
|
|
|
// 退团信息确认
|
|
@@ -1284,10 +1191,19 @@ export default {
|
|
|
// } catch (e) {
|
|
|
// console.log(e);
|
|
|
// }
|
|
|
+ this.getMemberList()
|
|
|
this.init();
|
|
|
this.getAgreement();
|
|
|
},
|
|
|
methods: {
|
|
|
+ async getMemberList() {
|
|
|
+ try {
|
|
|
+ const { data } = await getmemberRankList()
|
|
|
+ this.memberRankList = data || [];
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+ },
|
|
|
onPaymentDetail(row) {
|
|
|
this.paymentDetail = row;
|
|
|
this.paymentDetailVisible = true;
|
|
@@ -1473,24 +1389,30 @@ export default {
|
|
|
// }
|
|
|
// });
|
|
|
this.getTeamStudent();
|
|
|
+ const searchForm = this.searchForm
|
|
|
+ let rankId = null
|
|
|
+ if(searchForm.memberRankId && searchForm.memberRankId.length > 0) {
|
|
|
+ rankId = searchForm.memberRankId[searchForm.memberRankId.length - 1]
|
|
|
+ }
|
|
|
let obj = {
|
|
|
musicGroupId: this.teamid,
|
|
|
page: this.rules.page,
|
|
|
rows: this.rules.limit,
|
|
|
- studentStatus: this.searchForm.studentStatus || null,
|
|
|
- paymentStatus: this.searchForm.isPay || null,
|
|
|
- subjectId: this.searchForm.major || null,
|
|
|
- search: this.searchForm.search || null,
|
|
|
- isActive: this.searchForm.isActive || null,
|
|
|
- classGroupId: this.searchForm.classGroupId || null,
|
|
|
- currentGrade: this.searchForm.currentGrade || null,
|
|
|
- createYear: this.searchForm.createYear || null,
|
|
|
- oweFlag: this.searchForm.oweFlag || null,
|
|
|
- hasCourse: this.searchForm.hasCourse || null,
|
|
|
- oweFlag: this.searchForm.oweFlag || null,
|
|
|
- comeOnPackage: this.searchForm.comeOnPackage,
|
|
|
- carePackage: this.searchForm.carePackage,
|
|
|
- hasMember: this.searchForm.hasMember
|
|
|
+ studentStatus: searchForm.studentStatus || null,
|
|
|
+ paymentStatus: searchForm.isPay || null,
|
|
|
+ subjectId: searchForm.major || null,
|
|
|
+ search: searchForm.search || null,
|
|
|
+ isActive: searchForm.isActive || null,
|
|
|
+ classGroupId: searchForm.classGroupId || null,
|
|
|
+ currentGrade: searchForm.currentGrade || null,
|
|
|
+ createYear: searchForm.createYear || null,
|
|
|
+ oweFlag: searchForm.oweFlag || null,
|
|
|
+ hasCourse: searchForm.hasCourse || null,
|
|
|
+ oweFlag: searchForm.oweFlag || null,
|
|
|
+ comeOnPackage: searchForm.comeOnPackage,
|
|
|
+ carePackage: searchForm.carePackage,
|
|
|
+ hasMember: searchForm.hasMember,
|
|
|
+ memberRankId: searchForm.memberRankId && searchForm.memberRankId.length > 0 ?searchForm.memberRankId[searchForm.memberRankId.length - 1] : null
|
|
|
};
|
|
|
return getTeamStudentList(obj).then(res => {
|
|
|
if (res.code == 200) {
|