|
@@ -2,64 +2,87 @@
|
|
|
<div class="sigup-container">
|
|
|
<div class="topWrap">
|
|
|
<div>
|
|
|
- <!-- <h2>
|
|
|
- <el-page-header @back="onCancel" :content="teamName + '报名详情'">
|
|
|
- </el-page-header>
|
|
|
- </h2> -->
|
|
|
- <p style="margin-bottom: 15px; font-size: 18px; font-weight: 400">
|
|
|
- 报名截止时间:{{ applyExpireDate | formatTimer }} 缴费截止时间:{{
|
|
|
- paymentExpireDate | formatTimer
|
|
|
- }}
|
|
|
- </p>
|
|
|
+ <div style="display: flex; justify-content: space-between">
|
|
|
+ <div>
|
|
|
+ <h2>
|
|
|
+ <!-- + '报名详情' -->
|
|
|
+ <el-page-header @back="onCancel" :content="teamName">
|
|
|
+ </el-page-header>
|
|
|
+ </h2>
|
|
|
+ <p style="margin-bottom: 15px; font-size: 18px; font-weight: 400">
|
|
|
+ 报名截止时间:{{ applyExpireDate | formatTimer }} 缴费截止时间:{{
|
|
|
+ paymentExpireDate | formatTimer
|
|
|
+ }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <p
|
|
|
+ class="msg"
|
|
|
+ :class="status == 'PAY' ? 'pay' : ''"
|
|
|
+ v-if="status == 'APPLY' || status == 'PAY'"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ :src="status == 'APPLY' ? stepImgs.APPLY : stepImgs.PAY"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ {{ status == "APPLY" ? "报名中" : "缴费中" }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+
|
|
|
<div class="btnList">
|
|
|
<!-- <div class='newBand close'
|
|
|
v-permission="'musicGroup/cancelMusicGroup'"
|
|
|
- @click="onClose">停止乐团</div> -->
|
|
|
+ @click="onClose">停止乐团</div> v-show="status == 'APPLY'"-->
|
|
|
<div
|
|
|
class="newBand"
|
|
|
@click="payStart"
|
|
|
- v-permission="'musicGroup/openPay'"
|
|
|
- v-show="status == 'APPLY'"
|
|
|
+ v-permission="getFullPermission('musicGroup/openPay')"
|
|
|
+ v-if="status == 'APPLY'"
|
|
|
>
|
|
|
开始缴费
|
|
|
</div>
|
|
|
<!-- v-show="status=='PAY'" -->
|
|
|
<div
|
|
|
class="newBand"
|
|
|
- v-permission="'musicGroup/found'"
|
|
|
+ v-permission="getFullPermission('musicGroup/found')"
|
|
|
@click="onGoHome"
|
|
|
+ v-if="status == 'APPLY' || status == 'PAY'"
|
|
|
>
|
|
|
确认开团
|
|
|
</div>
|
|
|
<div
|
|
|
class="newBand"
|
|
|
- v-permission="'musicGroup/extensionPayment'"
|
|
|
+ v-permission="getFullPermission('musicGroup/extensionPayment')"
|
|
|
@click="extendTime(true)"
|
|
|
- v-show="status == 'PAY'"
|
|
|
+ v-show="
|
|
|
+ status == 'PAY' || status == 'PROGRESS' || status == 'PREPARE'
|
|
|
+ "
|
|
|
>
|
|
|
延长缴费
|
|
|
</div>
|
|
|
<div
|
|
|
class="newBand"
|
|
|
- v-permission="'musicGroup/extensionApplyExpireDate'"
|
|
|
+ v-permission="getFullPermission('musicGroup/extensionApplyExpireDate')"
|
|
|
@click="extendTime(false)"
|
|
|
+ v-show="status == 'PAY' || status == 'APPLY' || status == 'PROGRESS' || status == 'PREPARE'"
|
|
|
>
|
|
|
延长报名
|
|
|
</div>
|
|
|
<div class="newBand" @click="onCreateQRCode('payment')">报名链接</div>
|
|
|
- <div class="newBand" @click="onCreateQRCode('rePayment')">报名链接(无乐器)</div>
|
|
|
+ <div class="newBand" @click="onCreateQRCode('rePayment')">
|
|
|
+ 报名链接(无乐器)
|
|
|
+ </div>
|
|
|
<div class="newBand" @click="onCreateQRCode('detail')">缴费详情</div>
|
|
|
<div
|
|
|
class="newBand"
|
|
|
v-show="rightList.length > 0"
|
|
|
- v-permission="'studentRegistration/queryStudentApplyDetailExport'"
|
|
|
+ v-permission="getFullPermission('studentRegistration/queryStudentApplyDetailExport')"
|
|
|
@click="onDownLoadExecl"
|
|
|
>
|
|
|
报表导出
|
|
|
</div>
|
|
|
<auth
|
|
|
- auths="studentRegistration/queryPreApplyList"
|
|
|
- :router="['/business/signupList']"
|
|
|
+ :auths="getFullPermission('studentRegistration/queryPreApplyList')"
|
|
|
+
|
|
|
>
|
|
|
<div
|
|
|
class="newBand"
|
|
@@ -71,8 +94,9 @@
|
|
|
</auth>
|
|
|
<div
|
|
|
class="newBand"
|
|
|
- v-permission="'musicGroup/addMusicGroupRegs'"
|
|
|
+ v-permission="getFullPermission('musicGroup/addMusicGroupRegs')"
|
|
|
@click="mergeVisible = true"
|
|
|
+ v-show="status == 'PAY' || status == 'APPLY'"
|
|
|
>
|
|
|
合并学员
|
|
|
</div>
|
|
@@ -103,10 +127,6 @@
|
|
|
APPLY: require('@/assets/images/base/clock.png'),
|
|
|
PAY: require('@/assets/images/base/pay.png')
|
|
|
}, -->
|
|
|
- <p class="msg" :class="status == 'PAY' ? 'pay' : ''">
|
|
|
- <img :src="status == 'APPLY' ? stepImgs.APPLY : stepImgs.PAY" alt="" />
|
|
|
- {{ status == "APPLY" ? "报名中" : "缴费中" }}
|
|
|
- </p>
|
|
|
</div>
|
|
|
<div class="searchList">
|
|
|
<save-form
|
|
@@ -148,6 +168,7 @@
|
|
|
<div class="sigup-core">
|
|
|
<div class="left">
|
|
|
<el-table
|
|
|
+ style="width: 100% !important"
|
|
|
:data="leftList"
|
|
|
:header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
>
|
|
@@ -176,7 +197,7 @@
|
|
|
</el-table>
|
|
|
<div
|
|
|
class="btnWrap"
|
|
|
- v-permission="'musicGroup/updateExpectedStudentNum'"
|
|
|
+ v-permission="getFullPermission('musicGroup/updateExpectedStudentNum')"
|
|
|
style="margin-right: 20px; margin-top: 20px"
|
|
|
>
|
|
|
<el-button v-show="!isEdit" @click="isEdit = true">编辑</el-button>
|
|
@@ -190,7 +211,7 @@
|
|
|
: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" :selectable='checkboxSelect'> </el-table-column>
|
|
|
<el-table-column label="学员姓名" prop="studentName" align="center">
|
|
|
</el-table-column>
|
|
|
<el-table-column label="家长姓名" prop="parentsName" align="center">
|
|
@@ -247,13 +268,15 @@
|
|
|
>
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-permission="'studentRegistration/batchUpdateSubject'"
|
|
|
- v-show="scope.row.paymentStatus != 2"
|
|
|
- @click="resetSubject(scope.row)"
|
|
|
- >修改专业</el-button
|
|
|
- >
|
|
|
+ <auth :auths='getFullPermission("studentRegistration/batchUpdateSubject")'>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-show="scope.row.paymentStatus != 2"
|
|
|
+ @click="resetSubject(scope.row)"
|
|
|
+ >修改专业</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
+
|
|
|
<!-- APPLY status == "APPLY" || s-->
|
|
|
<el-popover
|
|
|
v-show="scope.row.remark"
|
|
@@ -267,58 +290,60 @@
|
|
|
</el-popover>
|
|
|
<!-- PAY -->
|
|
|
<!-- && status == "PAY"-->
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-permission="'studentRegistration/queryFeeDetail'"
|
|
|
- v-show="scope.row.paymentStatus == 2"
|
|
|
- @click="lookdetail(scope.row)"
|
|
|
- >查看</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-permission="'musicGroupQuit/directQuitMusicGroup2'"
|
|
|
- v-show="scope.row.paymentStatus == 2"
|
|
|
- @click="quitTeam(scope.row)"
|
|
|
- >退团退费</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-show="
|
|
|
- permission('musicGroupQuit/directQuitMusicGroup3') &&
|
|
|
- scope.row.paymentStatus == 2
|
|
|
- "
|
|
|
- @click="quieTeams(scope.row)"
|
|
|
- >退团</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-show="permission('visit/add')"
|
|
|
- @click="addVisit(scope.row)"
|
|
|
- >新增回访</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-show="scope.row.paymentStatus == 2"
|
|
|
- v-permission="'subjectChange/getStudentOriginal'"
|
|
|
- @click="openChangeVoice(scope.row)"
|
|
|
- >更改声部</el-button
|
|
|
- >
|
|
|
+ <auth :auths='getFullPermission("studentRegistration/queryFeeDetail")' v-show="scope.row.paymentStatus == 2">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+
|
|
|
+ @click="lookdetail(scope.row)"
|
|
|
+ >查看</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
+ <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup2")' v-show="scope.row.paymentStatus == 2">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+
|
|
|
+ @click="quitTeam(scope.row)"
|
|
|
+ >退团退费</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
+ <auth :auths='getFullPermission("musicGroupQuit/directQuitMusicGroup3")' v-show="scope.row.paymentStatus == 2">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+
|
|
|
+ @click="quieTeams(scope.row)"
|
|
|
+ >退团</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
+ <auth :auths="getFullPermission('visit/add')">
|
|
|
+ <el-button type="text" @click="addVisit(scope.row)"
|
|
|
+ >新增回访</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
+ <auth :auths="getFullPermission('subjectChange/getStudentOriginal')" v-show="scope.row.paymentStatus == 2">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+
|
|
|
+ @click="openChangeVoice(scope.row)"
|
|
|
+ >更改声部</el-button
|
|
|
+ >
|
|
|
+ </auth>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div
|
|
|
style="margin-top: 10px; margin-bottom: 10px"
|
|
|
- v-show="status == 'APPLY'"
|
|
|
+ v-show="status == 'APPLY'|| status == 'PROGRESS' || status == 'PREPARE'"
|
|
|
>
|
|
|
<el-button @click="onSelectAll">全选/取消</el-button>
|
|
|
+ <auth :auths="getFullPermission('studentRegistration/openPayment')">
|
|
|
<el-button
|
|
|
style="background-color: #14928a; border: 1px solid #14928a"
|
|
|
@click="onPartPayment"
|
|
|
- v-permission="'studentRegistration/openPayment'"
|
|
|
type="primary"
|
|
|
- >提前缴费</el-button
|
|
|
+ >开启缴费</el-button
|
|
|
>
|
|
|
+ </auth>
|
|
|
<!-- <div class='newBand' v-show="status=='APPLY'">允许缴费</div> -->
|
|
|
</div>
|
|
|
<pagination
|
|
@@ -547,7 +572,7 @@
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer question">
|
|
|
<div>
|
|
|
- <el-popover placement="right" width="500" trigger="click">
|
|
|
+ <el-popover placement="right" width="500" trigger="click">
|
|
|
<div class="popoverWrap">
|
|
|
<p>乐团退团退费规则:</p>
|
|
|
<p>退还课程费用:缴费总额-已结束课时单价之和</p>
|
|
@@ -564,10 +589,9 @@
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <el-button @click="quitVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="chioseType">确 定</el-button>
|
|
|
+ <el-button @click="quitVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="chioseType">确 定</el-button>
|
|
|
</div>
|
|
|
-
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
<!-- 回访记录 -->
|
|
@@ -662,7 +686,7 @@
|
|
|
</template>
|
|
|
<script>
|
|
|
import pagination from "@/components/Pagination/index";
|
|
|
-import qrCode from '@/components/QrCode/index'
|
|
|
+import qrCode from "@/components/QrCode/index";
|
|
|
import {
|
|
|
getintoClass,
|
|
|
getStudentList,
|
|
@@ -692,7 +716,7 @@ import qs from "qs";
|
|
|
import { permission } from "@/utils/directivePage";
|
|
|
import cleanDeep from "clean-deep";
|
|
|
import changeVoice from "./modals/change-voice";
|
|
|
-import visit from '@/views/withdrawal-application/modals/visit'
|
|
|
+import visit from "@/views/withdrawal-application/modals/visit";
|
|
|
export default {
|
|
|
name: "signupList",
|
|
|
components: {
|
|
@@ -701,7 +725,7 @@ export default {
|
|
|
changeVoice,
|
|
|
mergeMusic,
|
|
|
forecastList,
|
|
|
- visit
|
|
|
+ visit,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -826,12 +850,14 @@ export default {
|
|
|
},
|
|
|
isPay: false,
|
|
|
applyDates: this.applyDate(),
|
|
|
- detail:null
|
|
|
+ detail: null,
|
|
|
};
|
|
|
},
|
|
|
- created() {
|
|
|
+ created() {},
|
|
|
+ mounted() {
|
|
|
// 通过乐团状态判断显示隐藏的东西
|
|
|
this.init();
|
|
|
+ console.log(this.getFullPermission('123'))
|
|
|
},
|
|
|
activated() {
|
|
|
this.init();
|
|
@@ -879,7 +905,7 @@ export default {
|
|
|
this.getList();
|
|
|
},
|
|
|
onCancel() {
|
|
|
- this.$store.dispatch('delVisitedViews', this.$route)
|
|
|
+ this.$store.dispatch("delVisitedViews", this.$route);
|
|
|
this.$router.push({ path: "/business/teamDetail" });
|
|
|
},
|
|
|
payStart() {
|
|
@@ -960,7 +986,7 @@ export default {
|
|
|
// 部分缴费
|
|
|
let selection = this.multipleSelection;
|
|
|
if (selection.length <= 0) {
|
|
|
- this.$message.success("您还没有选择学生");
|
|
|
+ this.$message.error("您还没有选择学生");
|
|
|
return false;
|
|
|
}
|
|
|
let ids = [];
|
|
@@ -968,7 +994,7 @@ export default {
|
|
|
ids.push(item.id);
|
|
|
});
|
|
|
|
|
|
- this.$confirm(`是否确认提前缴费?`, "提示", {
|
|
|
+ this.$confirm(`是否确认开启缴费?`, "提示", {
|
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
|
type: "warning",
|
|
@@ -990,19 +1016,24 @@ export default {
|
|
|
onCreateQRCode(type) {
|
|
|
// 生成报名二维码
|
|
|
let id = this.id;
|
|
|
- this.codeStatus = true
|
|
|
- if(type == 'payment') {
|
|
|
- this.codeTitle = '学员报名连接'
|
|
|
+ this.codeStatus = true;
|
|
|
+ if (type == "payment") {
|
|
|
+ this.codeTitle = "学员报名连接";
|
|
|
this.qrCodeUrl = vaildStudentUrl() + "/#/login?musicGroupId=" + id;
|
|
|
- } else if(type == 'detail') {
|
|
|
+ } else if (type == "detail") {
|
|
|
let teamName = this.$route.query.name;
|
|
|
- this.codeTitle = '报名缴费详情'
|
|
|
- this.qrCodeUrl = vaildTeacherUrl() + "/#/order?musicGroupId=" + id + "&musicGroupName=" + teamName;
|
|
|
- } else if(type == 'rePayment') {
|
|
|
- this.codeTitle = '学生报名链接(无乐器)'
|
|
|
- this.qrCodeUrl = vaildStudentUrl() + "/#/login?musicGroupId=" + id + "&instrument=1";
|
|
|
+ this.codeTitle = "报名缴费详情";
|
|
|
+ this.qrCodeUrl =
|
|
|
+ vaildTeacherUrl() +
|
|
|
+ "/#/order?musicGroupId=" +
|
|
|
+ id +
|
|
|
+ "&musicGroupName=" +
|
|
|
+ teamName;
|
|
|
+ } else if (type == "rePayment") {
|
|
|
+ this.codeTitle = "学生报名链接(无乐器)";
|
|
|
+ this.qrCodeUrl =
|
|
|
+ vaildStudentUrl() + "/#/login?musicGroupId=" + id + "&instrument=1";
|
|
|
}
|
|
|
-
|
|
|
},
|
|
|
onCreateQRCode2() {
|
|
|
// 生成报名二维码
|
|
@@ -1120,14 +1151,15 @@ export default {
|
|
|
musicGroupId: this.$route.query.id,
|
|
|
}).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- let query = this.$route.query;
|
|
|
- this.$message.success("开启成功");
|
|
|
- this.$router.push({
|
|
|
- path: "/business/teamDetail",
|
|
|
- query: {
|
|
|
- ...query,
|
|
|
- },
|
|
|
- });
|
|
|
+ // let query = this.$route.query;
|
|
|
+ // this.$message.success("开启成功");
|
|
|
+ // this.$router.push({
|
|
|
+ // path: "/business/teamDetail",
|
|
|
+ // query: {
|
|
|
+ // ...query,
|
|
|
+ // },
|
|
|
+ // });
|
|
|
+ this.onCancel()
|
|
|
}
|
|
|
});
|
|
|
})
|
|
@@ -1357,9 +1389,9 @@ export default {
|
|
|
// this.visitForm.studentName = row.studentName;
|
|
|
// this.visitForm.musicGroupId = this.teamid;
|
|
|
// this.visitForm.studentId = row.studentId;
|
|
|
- row.userId = row.studentId
|
|
|
- this.detail = row
|
|
|
- this.detail.musicGroupId = this.$route.query.id
|
|
|
+ row.userId = row.studentId;
|
|
|
+ this.detail = row;
|
|
|
+ this.detail.musicGroupId = this.$route.query.id;
|
|
|
this.visitVisiable = true;
|
|
|
},
|
|
|
openChangeVoice(row) {
|
|
@@ -1447,6 +1479,9 @@ export default {
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
+ checkboxSelect(row){
|
|
|
+ return row.paymentStatus == 0
|
|
|
+ }
|
|
|
},
|
|
|
watch: {
|
|
|
orderVisible(val) {
|
|
@@ -1502,7 +1537,13 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
-.dialog-footer.question{
|
|
|
+ .auth {
|
|
|
+ display: inline-block;
|
|
|
+ & + .auth {
|
|
|
+ margin-left: 0px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+.dialog-footer.question {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: space-between;
|
|
@@ -1513,9 +1554,9 @@ export default {
|
|
|
padding: 18px 58px 18px 0;
|
|
|
// height: 136px;
|
|
|
background-color: #fff;
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
- justify-content: space-between;
|
|
|
+ // display: flex;
|
|
|
+ // flex-direction: row;
|
|
|
+ // justify-content: space-between;
|
|
|
.msg.pay {
|
|
|
color: #f85043;
|
|
|
}
|
|
@@ -1578,8 +1619,10 @@ export default {
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
- div {
|
|
|
+ flex-wrap: wrap;
|
|
|
+ & > div {
|
|
|
margin-right: 15px;
|
|
|
+ margin-bottom: 10px;
|
|
|
}
|
|
|
}
|
|
|
.newBand.close {
|