|
@@ -69,6 +69,13 @@
|
|
|
延长缴费
|
|
|
</div>
|
|
|
|
|
|
+ <!-- 家长会 -->
|
|
|
+ <auth
|
|
|
+ :auths="['musicGroup/sendParentMeetingNotice']"
|
|
|
+ v-if="status == 'PAY'"
|
|
|
+ >
|
|
|
+ <div class="newBand" @click="meetingStatus = true">家长会通知</div>
|
|
|
+ </auth>
|
|
|
<div
|
|
|
class="newBand"
|
|
|
@click="onCreateQRCode('payment')"
|
|
@@ -623,8 +630,10 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="年级班级" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <div v-if=" gradeListObj[scope.row.currentGrade]">
|
|
|
- {{ gradeListObj[scope.row.currentGrade] + scope.row.currentClass }}
|
|
|
+ <div v-if="gradeListObj[scope.row.currentGrade]">
|
|
|
+ {{
|
|
|
+ gradeListObj[scope.row.currentGrade] + scope.row.currentClass
|
|
|
+ }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -993,7 +1002,7 @@
|
|
|
:visible.sync="quitVisible"
|
|
|
>
|
|
|
<quiteTeam :quitForm="quitForm" :activeRow="activeRow" ref="quitForm" />
|
|
|
- <p style="color:red;paddingLeft:150px">退费金额暂不进入账户余额</p>
|
|
|
+ <p style="color: red; paddingleft: 150px">退费金额暂不进入账户余额</p>
|
|
|
<span slot="footer" class="dialog-footer question">
|
|
|
<div>
|
|
|
<el-popover placement="right" width="500" trigger="click">
|
|
@@ -1050,11 +1059,33 @@
|
|
|
:voiceList="leftList"
|
|
|
/>
|
|
|
</el-dialog>
|
|
|
+ <!-- 家长会通知 -->
|
|
|
+ <el-dialog
|
|
|
+ title="预报名家长会通知"
|
|
|
+ :visible.sync="meetingStatus"
|
|
|
+ @close="onCloseMeet('extendForm')"
|
|
|
+ width="400px"
|
|
|
+ >
|
|
|
+ <parentsMeeting
|
|
|
+ v-if="meetingStatus"
|
|
|
+ :extendForm="meetingForm"
|
|
|
+ :sysMsgStr="sysMsgStr"
|
|
|
+ ref="meetingForm"
|
|
|
+ :msg="'确认后该短信将发送给已缴费的学员'"
|
|
|
+ />
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="meetingStatus = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="onMeetingPayment('extendForm')"
|
|
|
+ >确 定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import pagination from "@/components/Pagination/index";
|
|
|
import qrCode from "@/components/QrCode/index";
|
|
|
+
|
|
|
import {
|
|
|
getintoClass,
|
|
|
getStudentList,
|
|
@@ -1074,7 +1105,12 @@ import {
|
|
|
getRefundsDetail,
|
|
|
applyMusicGroupQuit,
|
|
|
} from "@/api/buildTeam";
|
|
|
-import { setNoneCloudTeacher, setCloudTeacherToFailed } from "./api";
|
|
|
+import {
|
|
|
+ setNoneCloudTeacher,
|
|
|
+ setCloudTeacherToFailed,
|
|
|
+ sendParentMeetingNotice,
|
|
|
+ getSysMessageConfig,
|
|
|
+} from "./api";
|
|
|
import mergeMusic from "./components/merge-music";
|
|
|
import forecastList from "./components/forecast-list";
|
|
|
import newForecastList from "./components/newForecast-list";
|
|
@@ -1093,6 +1129,7 @@ import changeVoice from "./modals/change-voice";
|
|
|
import visit from "@/views/withdrawal-application/modals/visit";
|
|
|
import quiteTeam from "@/views/teamDetail/components/modals/quite-team";
|
|
|
import { courseType } from "@/constant/index";
|
|
|
+ import parentsMeeting from './modals/parentsMeeting'
|
|
|
export default {
|
|
|
name: "signupList",
|
|
|
components: {
|
|
@@ -1104,6 +1141,7 @@ export default {
|
|
|
visit,
|
|
|
newForecastList,
|
|
|
quiteTeam,
|
|
|
+ parentsMeeting
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -1244,11 +1282,17 @@ export default {
|
|
|
ischeckCanReg: false,
|
|
|
courseViewType: null, // 乐团模式
|
|
|
isManage: false,
|
|
|
- gradeListObj:{}
|
|
|
+ gradeListObj: {},
|
|
|
+ meetingStatus: false,
|
|
|
+ meetingForm: {
|
|
|
+ meetingDate: null,
|
|
|
+ address: null,
|
|
|
+ },
|
|
|
+ sysMsg:''
|
|
|
};
|
|
|
},
|
|
|
created() {},
|
|
|
- mounted() {
|
|
|
+ async mounted() {
|
|
|
// 通过乐团状态判断显示隐藏的东西
|
|
|
let isSuperAdmin = this.$store.getters.isSuperAdmin;
|
|
|
let roles = this.$store.getters.roles;
|
|
@@ -1264,6 +1308,13 @@ export default {
|
|
|
if (roles.indexOf(3) != -1 && roles.indexOf(4) != -1) {
|
|
|
this.isManage = "super";
|
|
|
}
|
|
|
+
|
|
|
+ // 获取短信模板
|
|
|
+ const rus = await getSysMessageConfig({
|
|
|
+ type: "STUDENT_SMS_IM_MUSIC_GROUP_PARENT_MEETING_NOTICE",
|
|
|
+ });
|
|
|
+ this.sysMsg = rus.data?.content || "";
|
|
|
+
|
|
|
this.init();
|
|
|
},
|
|
|
activated() {
|
|
@@ -1301,7 +1352,7 @@ export default {
|
|
|
|
|
|
getMusicGroupGradeList({ musicGroupId: this.id }).then((res) => {
|
|
|
let result = res.data;
|
|
|
- this.gradeListObj = res.data
|
|
|
+ this.gradeListObj = res.data;
|
|
|
if (res.code == 200 && result) {
|
|
|
for (let i in result) {
|
|
|
this.gradeList.push({
|
|
@@ -1722,7 +1773,10 @@ export default {
|
|
|
paymentList.forEach((item) => {
|
|
|
if (item.type == "MAINTENANCE") {
|
|
|
item.name = "乐器保养";
|
|
|
- } else if (item.type == "CLOUD_TEACHER" || item.type == "CLOUD_TEACHER_PLUS") {
|
|
|
+ } else if (
|
|
|
+ item.type == "CLOUD_TEACHER" ||
|
|
|
+ item.type == "CLOUD_TEACHER_PLUS"
|
|
|
+ ) {
|
|
|
item.name = "乐器练习云教练";
|
|
|
} else if (item.type == "COURSE") {
|
|
|
item.name = "课程";
|
|
@@ -1864,10 +1918,10 @@ export default {
|
|
|
reason: "",
|
|
|
userComment: null,
|
|
|
};
|
|
|
- if(this.isManage == "super") {
|
|
|
- this.$message.success("退团成功");
|
|
|
- }else{
|
|
|
- this.$message.success("退团申请成功");
|
|
|
+ if (this.isManage == "super") {
|
|
|
+ this.$message.success("退团成功");
|
|
|
+ } else {
|
|
|
+ this.$message.success("退团申请成功");
|
|
|
}
|
|
|
|
|
|
this.getList();
|
|
@@ -2078,6 +2132,32 @@ export default {
|
|
|
this.searchFrom.paymentStatus = 2 + "";
|
|
|
this.search();
|
|
|
},
|
|
|
+ onCloseMeet() {
|
|
|
+ this.meetingForm = {
|
|
|
+ meetingDate: null,
|
|
|
+ address: null,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ onMeetingPayment(formName) {
|
|
|
+ console.log(this.$refs.meetingForm.$refs[formName])
|
|
|
+ this.$refs.meetingForm.$refs[formName].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ try {
|
|
|
+ await this.$confirm("您是否确定发送家长会通知?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ await sendParentMeetingNotice({
|
|
|
+ ...this.meetingForm,
|
|
|
+ musicGroupId: this.id,
|
|
|
+ });
|
|
|
+ this.$message.success("家长会通知已发送");
|
|
|
+ this.meetingStatus = false;
|
|
|
+ } catch (error) {}
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
"quitForm.isMaintenanceFee"(val) {
|
|
@@ -2135,6 +2215,21 @@ export default {
|
|
|
// }
|
|
|
// },
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ sysMsgStr() {
|
|
|
+ let strArr = this.sysMsg.split("{}");
|
|
|
+ if (strArr.length == 3) {
|
|
|
+ return `${strArr[0]}<span style="color:red">"${
|
|
|
+ this.meetingForm.meetingDate ? this.meetingForm.meetingDate : "--"
|
|
|
+ }"</span>${strArr[1]}<span style="color:red">"${
|
|
|
+ this.meetingForm.address ? this.meetingForm.address : "--"
|
|
|
+ }"</span>
|
|
|
+ ${strArr[2]}`;
|
|
|
+ } else {
|
|
|
+ return ``;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|