|  | @@ -0,0 +1,520 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="forecastName">
 | 
	
		
			
				|  |  | +    <!-- <h2> m-container
 | 
	
		
			
				|  |  | +          <el-page-header @back="onCancel" :content="teamName"></el-page-header>
 | 
	
		
			
				|  |  | +        </h2> -->
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <!-- <p style="margin-bottom: 15px; font-size: 18px; font-weight: 400">
 | 
	
		
			
				|  |  | +          缴费截止时间:{{ '2020-12-12' | formatTimer }}
 | 
	
		
			
				|  |  | +        </p> -->
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <div class="btnList">
 | 
	
		
			
				|  |  | +      <!-- <el-button type="primary" @click="codedetailStatus = true" v-if="isedit"
 | 
	
		
			
				|  |  | +        >预报名详情</el-button
 | 
	
		
			
				|  |  | +      > -->
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <auth :auths="['musicEnlightenmentQuestionnaire/sendParentMeetingNotice']" v-if="isedit">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="extendPaymentStatus = true"
 | 
	
		
			
				|  |  | +          >启蒙课家长会通知</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +      </auth>
 | 
	
		
			
				|  |  | +      <auth :auths="['initiationList/forecastLink']" v-if="isedit">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="codeStatus = true"
 | 
	
		
			
				|  |  | +          >启蒙课问卷</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +      </auth>
 | 
	
		
			
				|  |  | +      <auth :auths="['export/musicEnlightenmentQuestionnaires']">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="downloadFile"
 | 
	
		
			
				|  |  | +          >启蒙课问卷导出</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +      </auth>
 | 
	
		
			
				|  |  | +      <auth :auths="['musicEnlightenmentQuestionnaire/musicEnlightenmentQuestionnaireStat']">
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="subjectVisible = true"
 | 
	
		
			
				|  |  | +          >启蒙课问卷统计</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +      </auth>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <div class="m-core">
 | 
	
		
			
				|  |  | +      <save-form
 | 
	
		
			
				|  |  | +        :inline="true"
 | 
	
		
			
				|  |  | +        @reset="onReSet"
 | 
	
		
			
				|  |  | +        @submit="search"
 | 
	
		
			
				|  |  | +        :model="searchForm"
 | 
	
		
			
				|  |  | +        ref="searchForm"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +        <el-form-item prop="search">
 | 
	
		
			
				|  |  | +          <el-input
 | 
	
		
			
				|  |  | +            v-model.trim="searchForm.search"
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            @keyup.enter.native="search"
 | 
	
		
			
				|  |  | +            placeholder="学生编号/姓名/手机号"
 | 
	
		
			
				|  |  | +          ></el-input>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item prop="currentGradeNum">
 | 
	
		
			
				|  |  | +          <!-- <el-input
 | 
	
		
			
				|  |  | +          v-model.trim="searchForm.currentGrade"
 | 
	
		
			
				|  |  | +          clearable
 | 
	
		
			
				|  |  | +          placeholder="学员年级"
 | 
	
		
			
				|  |  | +        ></el-input> -->
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            v-model.trim="searchForm.currentGradeNum"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            placeholder="请选择年级"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="(item, index) in gradeList"
 | 
	
		
			
				|  |  | +              :key="index"
 | 
	
		
			
				|  |  | +              :label="item.label"
 | 
	
		
			
				|  |  | +              :value="item.value"
 | 
	
		
			
				|  |  | +            ></el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item prop="teacherRecommandSubjectId">
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            v-model="searchForm.teacherRecommandSubjectId"
 | 
	
		
			
				|  |  | +            filterable
 | 
	
		
			
				|  |  | +            placeholder="老师推荐声部"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option
 | 
	
		
			
				|  |  | +              v-for="item in subjectList"
 | 
	
		
			
				|  |  | +              :value="item.id"
 | 
	
		
			
				|  |  | +              :label="item.name"
 | 
	
		
			
				|  |  | +              :key="item.id"
 | 
	
		
			
				|  |  | +            ></el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item prop="musicalInstrumentsLearning">
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            v-model="searchForm.musicalInstrumentsLearning"
 | 
	
		
			
				|  |  | +            placeholder="是否正在学习某乐器"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <el-option value="true" label="是"></el-option>
 | 
	
		
			
				|  |  | +            <el-option value="false" label="否"></el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item>
 | 
	
		
			
				|  |  | +          <el-button type="danger" native-type="seach">搜索</el-button>
 | 
	
		
			
				|  |  | +          <el-button native-type="reset" type="primary">重置</el-button>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +      </save-form>
 | 
	
		
			
				|  |  | +      <div class="tableWrap">
 | 
	
		
			
				|  |  | +        <el-table
 | 
	
		
			
				|  |  | +          style="width: 100%"
 | 
	
		
			
				|  |  | +          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
 | 
	
		
			
				|  |  | +          :data="tableList"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <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="学员姓名"
 | 
	
		
			
				|  |  | +          ></el-table-column>
 | 
	
		
			
				|  |  | +          <!-- <el-table-column align="center" prop="gender" label="性别">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              {{ scope.row.gender ? "男" : "女" }}
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column> -->
 | 
	
		
			
				|  |  | +          <el-table-column align="center" prop="phone" label="联系电话">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <copy-text>{{ scope.row.phone }}</copy-text>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column align="center" label="年级班级">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              {{ scope.row.currentGrade }}{{ scope.row.currentClass }}
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            align="center"
 | 
	
		
			
				|  |  | +            prop="teacherRecommandSubjectId"
 | 
	
		
			
				|  |  | +            label="老师推荐声部"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                {{
 | 
	
		
			
				|  |  | +                  scope.row.teacherRecommandSubjectId!=-1
 | 
	
		
			
				|  |  | +                    ? scope.row.subjectName
 | 
	
		
			
				|  |  | +                    : "无"
 | 
	
		
			
				|  |  | +                }}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            align="center"
 | 
	
		
			
				|  |  | +            prop="musicalInstrumentsLearning"
 | 
	
		
			
				|  |  | +            label="是否在学习某件乐器"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                {{ scope.row.musicalInstrumentsLearning ? "是" : "否" }}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column align="center" prop="userName" label="目前所学乐器">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                {{
 | 
	
		
			
				|  |  | +                  scope.row.musicalInstrumentsLearning
 | 
	
		
			
				|  |  | +                    ? scope.row.musicalInstrumentsName
 | 
	
		
			
				|  |  | +                    : "否"
 | 
	
		
			
				|  |  | +                }}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            align="center"
 | 
	
		
			
				|  |  | +            prop="userName"
 | 
	
		
			
				|  |  | +            label="报名参加管乐团家长会了解相关情况"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                {{ scope.row.joinParentMeeting ? "是" : "否" }}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            align="center"
 | 
	
		
			
				|  |  | +            prop="remark"
 | 
	
		
			
				|  |  | +            label="备注"
 | 
	
		
			
				|  |  | +            width="240px"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <overflow-text width="200px" :text="scope.row.remark" />
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +        </el-table>
 | 
	
		
			
				|  |  | +        <pagination
 | 
	
		
			
				|  |  | +          sync
 | 
	
		
			
				|  |  | +          :total.sync="pageInfo.total"
 | 
	
		
			
				|  |  | +          :page.sync="pageInfo.page"
 | 
	
		
			
				|  |  | +          :limit.sync="pageInfo.limit"
 | 
	
		
			
				|  |  | +          :page-sizes="pageInfo.page_size"
 | 
	
		
			
				|  |  | +          @pagination="getList"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <!-- 预报名链接 -->
 | 
	
		
			
				|  |  | +    <qr-code
 | 
	
		
			
				|  |  | +      v-model="codeStatus"
 | 
	
		
			
				|  |  | +      title="启蒙课问卷"
 | 
	
		
			
				|  |  | +      :codeUrl="codeUrl"
 | 
	
		
			
				|  |  | +      @preLook="preLook"
 | 
	
		
			
				|  |  | +      :ispreLook="true"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +    <!-- 预报名详情 -->
 | 
	
		
			
				|  |  | +    <qr-code
 | 
	
		
			
				|  |  | +      v-model="codedetailStatus"
 | 
	
		
			
				|  |  | +      title="预报名详情"
 | 
	
		
			
				|  |  | +      :codeUrl="detailUrl"
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +    <!-- 发送家长会通知 -->
 | 
	
		
			
				|  |  | +    <el-dialog
 | 
	
		
			
				|  |  | +      title="发送家长会通知"
 | 
	
		
			
				|  |  | +      :visible.sync="extendPaymentStatus"
 | 
	
		
			
				|  |  | +      @close="onClose('extendForm')"
 | 
	
		
			
				|  |  | +      width="400px"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <el-form
 | 
	
		
			
				|  |  | +        label-width="110px"
 | 
	
		
			
				|  |  | +        :model="extendForm"
 | 
	
		
			
				|  |  | +        ref="extendForm"
 | 
	
		
			
				|  |  | +        :rules="extendRule"
 | 
	
		
			
				|  |  | +      >
 | 
	
		
			
				|  |  | +        <el-form-item label="家长会时间" prop="meetingDate">
 | 
	
		
			
				|  |  | +          <el-date-picker
 | 
	
		
			
				|  |  | +            style="width: 100% !important"
 | 
	
		
			
				|  |  | +            value-format="yyyy-MM-dd HH:mm:ss"
 | 
	
		
			
				|  |  | +            v-model.trim="extendForm.meetingDate"
 | 
	
		
			
				|  |  | +            type="datetime"
 | 
	
		
			
				|  |  | +            :picker-options="applyDates"
 | 
	
		
			
				|  |  | +            placeholder="请选择家长会时间"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +          </el-date-picker>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="家长会地址" prop="address">
 | 
	
		
			
				|  |  | +          <el-input
 | 
	
		
			
				|  |  | +            v-model="extendForm.address"
 | 
	
		
			
				|  |  | +            placeholder="请输入家长会地址"
 | 
	
		
			
				|  |  | +          ></el-input>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="短信内容" >
 | 
	
		
			
				|  |  | +          <p class="msgP" v-html="sysMsgStr"></p> </el-form-item>
 | 
	
		
			
				|  |  | +        <p style="color:red">确认后该短信将发送给已填写启蒙课问卷且【报名参加管乐团家长会了解相关情况】选择【是】的学员</p>
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <div slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button @click="extendPaymentStatus = false">取 消</el-button>
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="onExtendPayment('extendForm')"
 | 
	
		
			
				|  |  | +          >确 定</el-button
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +    <el-dialog
 | 
	
		
			
				|  |  | +      title="启蒙课统计"
 | 
	
		
			
				|  |  | +      width="600px"
 | 
	
		
			
				|  |  | +      destroy-on-close
 | 
	
		
			
				|  |  | +      :close-on-click-modal="false"
 | 
	
		
			
				|  |  | +      :visible.sync="subjectVisible"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <intention-model v-if="subjectVisible" @close="subjectVisible = false" />
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +    <el-dialog
 | 
	
		
			
				|  |  | +      title="预览"
 | 
	
		
			
				|  |  | +      width="500px"
 | 
	
		
			
				|  |  | +      :close-on-click-modal="false"
 | 
	
		
			
				|  |  | +      append-to-body
 | 
	
		
			
				|  |  | +      :visible.sync="preLookVisible"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <iframe
 | 
	
		
			
				|  |  | +        width="100%"
 | 
	
		
			
				|  |  | +        height="600px"
 | 
	
		
			
				|  |  | +        :src="codeUrl + '&look=true'"
 | 
	
		
			
				|  |  | +        frameborder="0"
 | 
	
		
			
				|  |  | +      ></iframe>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import pagination from "@/components/Pagination/index";
 | 
	
		
			
				|  |  | +import qrCode from "@/components/QrCode/index";
 | 
	
		
			
				|  |  | +import { permission } from "@/utils/directivePage";
 | 
	
		
			
				|  |  | +import { vaildStudentUrl, vaildTeachingUrl } from "@/utils/validate";
 | 
	
		
			
				|  |  | +import { Export } from "@/utils/downLoadFile";
 | 
	
		
			
				|  |  | +import visitModel from "@/views/withdrawal-application/modals/visit";
 | 
	
		
			
				|  |  | +import intentionModel from "./modals/initiationStatistics";
 | 
	
		
			
				|  |  | +import { getMusicGroupGradeList } from "@/api/buildTeam";
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +  getSysMessageConfig,
 | 
	
		
			
				|  |  | +  finishPreApply,
 | 
	
		
			
				|  |  | +  sendEnlighParentMeetingNotice,
 | 
	
		
			
				|  |  | +  getMusicEnlighList,
 | 
	
		
			
				|  |  | +} from "./api";
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: "forecastName",
 | 
	
		
			
				|  |  | +  components: { pagination, qrCode, visitModel, intentionModel },
 | 
	
		
			
				|  |  | +  props: ["isedit"],
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    const query = this.$route.query;
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      codedetailStatus: false,
 | 
	
		
			
				|  |  | +      teamName: query.name || null,
 | 
	
		
			
				|  |  | +      codeStatus: false,
 | 
	
		
			
				|  |  | +      musicGroupId: query.id,
 | 
	
		
			
				|  |  | +      codeUrl:
 | 
	
		
			
				|  |  | +        vaildStudentUrl() +
 | 
	
		
			
				|  |  | +        "/project/forecastName/initiation.html?musicGroupId=" +
 | 
	
		
			
				|  |  | +        query.id,
 | 
	
		
			
				|  |  | +      detailUrl:
 | 
	
		
			
				|  |  | +        vaildTeachingUrl() + "/#/preApplySubject?musicGroupId=" + query.id,
 | 
	
		
			
				|  |  | +      searchForm: {
 | 
	
		
			
				|  |  | +        search: null,
 | 
	
		
			
				|  |  | +        currentGradeNum: null,
 | 
	
		
			
				|  |  | +        subjectId: null,
 | 
	
		
			
				|  |  | +        teacherRecommandSubjectId: null,
 | 
	
		
			
				|  |  | +        selectionSubjectId: null,
 | 
	
		
			
				|  |  | +        musicalInstrumentsLearning: null,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      tableList: [],
 | 
	
		
			
				|  |  | +      pageInfo: {
 | 
	
		
			
				|  |  | +        // 分页规则
 | 
	
		
			
				|  |  | +        limit: 10, // 限制显示条数
 | 
	
		
			
				|  |  | +        page: 1, // 当前页
 | 
	
		
			
				|  |  | +        total: 0, // 总条数
 | 
	
		
			
				|  |  | +        page_size: [10, 20, 40, 50], // 选择限制显示条数
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      visitVisible: false,
 | 
	
		
			
				|  |  | +      subjectVisible: false,
 | 
	
		
			
				|  |  | +      visitDetail: null,
 | 
	
		
			
				|  |  | +      extendPaymentStatus: false,
 | 
	
		
			
				|  |  | +      extendForm: {
 | 
	
		
			
				|  |  | +        meetingDate: null,
 | 
	
		
			
				|  |  | +        address: null,
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      extendRule: {
 | 
	
		
			
				|  |  | +        meetingDate: [
 | 
	
		
			
				|  |  | +          { required: true, message: "请选择家长会时间", trigger: "change" },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        address: [
 | 
	
		
			
				|  |  | +          { required: true, message: "请输入家长会地址", trigger: "blur" },
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      gradeList: [],
 | 
	
		
			
				|  |  | +      preLookVisible: false,
 | 
	
		
			
				|  |  | +      sysMsg: "",
 | 
	
		
			
				|  |  | +      subjectList:[]
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | + async mounted() {
 | 
	
		
			
				|  |  | +  await  this.$store.dispatch("setSubjects");
 | 
	
		
			
				|  |  | +this.subjectList = [...this.selects.subjects]
 | 
	
		
			
				|  |  | +this.subjectList.push({id:-1,name:'无'})
 | 
	
		
			
				|  |  | +    this.init();
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    async init() {
 | 
	
		
			
				|  |  | +      this.teamid = this.$route.query.id;
 | 
	
		
			
				|  |  | +      getMusicGroupGradeList({ musicGroupId: this.teamid }).then((res) => {
 | 
	
		
			
				|  |  | +        let result = res.data;
 | 
	
		
			
				|  |  | +        this.gradeListObj = res.data;
 | 
	
		
			
				|  |  | +        if (res.code == 200 && result) {
 | 
	
		
			
				|  |  | +          this.gradeList = [];
 | 
	
		
			
				|  |  | +          for (let i in result) {
 | 
	
		
			
				|  |  | +            this.gradeList.push({
 | 
	
		
			
				|  |  | +              value: i,
 | 
	
		
			
				|  |  | +              label: result[i],
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      // 获取短信推送模板
 | 
	
		
			
				|  |  | +      const rus = await getSysMessageConfig({
 | 
	
		
			
				|  |  | +        type: "STUDENT_SMS_IM_MUSIC_GROUP_PARENT_MEETING_NOTICE",
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      this.sysMsg = rus.data.content;
 | 
	
		
			
				|  |  | +      this.getList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    permission,
 | 
	
		
			
				|  |  | +    onReSet() {
 | 
	
		
			
				|  |  | +      this.$refs["searchForm"].resetFields();
 | 
	
		
			
				|  |  | +      this.search();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    search() {
 | 
	
		
			
				|  |  | +      this.pageInfo.page = 1;
 | 
	
		
			
				|  |  | +      this.getList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onCancel() {
 | 
	
		
			
				|  |  | +      this.$store.dispatch("delVisitedViews", this.$route);
 | 
	
		
			
				|  |  | +      this.$router.push({ path: "/teamList" });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    downloadFile() {
 | 
	
		
			
				|  |  | +      let params = this.searchForm;
 | 
	
		
			
				|  |  | +      Export(
 | 
	
		
			
				|  |  | +        this,
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          url: "/api-web/export/musicEnlightenmentQuestionnaires",
 | 
	
		
			
				|  |  | +          params: {
 | 
	
		
			
				|  |  | +            ...params,
 | 
	
		
			
				|  |  | +            musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          fileName: "启蒙课问卷.xls",
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        "是否确认导出报表?"
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    async getList() {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const result = await getMusicEnlighList({
 | 
	
		
			
				|  |  | +          ...this.searchForm,
 | 
	
		
			
				|  |  | +          musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  | +          page: this.pageInfo.page,
 | 
	
		
			
				|  |  | +          rows: this.pageInfo.limit,
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        this.tableList = result.data.rows;
 | 
	
		
			
				|  |  | +        this.pageInfo.total = result.data.total;
 | 
	
		
			
				|  |  | +      } catch (error) {}
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    async onPaymentGroup(type) {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        this.$confirm("您是否确定开启乐团缴费?", "提示", {
 | 
	
		
			
				|  |  | +          confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +          cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +          type: "warning",
 | 
	
		
			
				|  |  | +        }).then(async () => {
 | 
	
		
			
				|  |  | +          const result = await finishPreApply({
 | 
	
		
			
				|  |  | +            isCheckStudentNum: type == 1 ? false : true,
 | 
	
		
			
				|  |  | +            musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +          this.$store.dispatch("delVisitedViews", this.$route);
 | 
	
		
			
				|  |  | +          this.$router.push({
 | 
	
		
			
				|  |  | +            path: "/teamList",
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      } catch (error) {}
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    addVisited(rows) {
 | 
	
		
			
				|  |  | +      // 新增回访
 | 
	
		
			
				|  |  | +      this.visitVisible = true;
 | 
	
		
			
				|  |  | +      this.visitDetail = {
 | 
	
		
			
				|  |  | +        musicGroupId: rows.musicGroupId,
 | 
	
		
			
				|  |  | +        overview: "",
 | 
	
		
			
				|  |  | +        purpose: "",
 | 
	
		
			
				|  |  | +        userId: rows.userId,
 | 
	
		
			
				|  |  | +        type: "",
 | 
	
		
			
				|  |  | +        visitTime: "",
 | 
	
		
			
				|  |  | +        visitType: "",
 | 
	
		
			
				|  |  | +        feedback: "",
 | 
	
		
			
				|  |  | +        realName: rows.userName,
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      // this.visitDetail = rows
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onClose(formName) {
 | 
	
		
			
				|  |  | +      this.$refs[formName].resetFields();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onExtendPayment(formName) {
 | 
	
		
			
				|  |  | +      this.$refs[formName].validate(async (valid) => {
 | 
	
		
			
				|  |  | +        if (valid) {
 | 
	
		
			
				|  |  | +          try {
 | 
	
		
			
				|  |  | +            await this.$confirm("您是否确定发送家长会通知?", "提示", {
 | 
	
		
			
				|  |  | +              confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +              cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +              type: "warning",
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            await sendEnlighParentMeetingNotice({
 | 
	
		
			
				|  |  | +              ...this.extendForm,
 | 
	
		
			
				|  |  | +              musicGroupId: this.musicGroupId,
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            this.$message.success("家长会通知已发送");
 | 
	
		
			
				|  |  | +            this.extendPaymentStatus = false;
 | 
	
		
			
				|  |  | +          } catch (error) {}
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    applyDates() {
 | 
	
		
			
				|  |  | +      return {
 | 
	
		
			
				|  |  | +        firstDayOfWeek: 1,
 | 
	
		
			
				|  |  | +        disabledDate(time) {
 | 
	
		
			
				|  |  | +          if (end) {
 | 
	
		
			
				|  |  | +            return new Date(end).getTime() - 86400000 >= time.getTime();
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            return time.getTime() + 86400000 < Date.now();
 | 
	
		
			
				|  |  | +            //开始时间不选时,结束时间最大值小于等于当天
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    preLook(val) {
 | 
	
		
			
				|  |  | +      this.preLookVisible = true;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    sysMsgStr() {
 | 
	
		
			
				|  |  | +      let strArr = this.sysMsg.split("{}");
 | 
	
		
			
				|  |  | +      if (strArr.length == 3) {
 | 
	
		
			
				|  |  | +        return `${strArr[0]}<span style="color:red">"${
 | 
	
		
			
				|  |  | +          this.extendForm.meetingDate ? this.extendForm.meetingDate : "--"
 | 
	
		
			
				|  |  | +        }"</span>${strArr[1]}<span style="color:red">"${this.extendForm.address ? this.extendForm.address:"--"}"</span>
 | 
	
		
			
				|  |  | +        ${strArr[2]}`;
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        return ``;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style lang="less" scoped>
 | 
	
		
			
				|  |  | +.msgP {
 | 
	
		
			
				|  |  | +  line-height: 24px;
 | 
	
		
			
				|  |  | +  margin-top: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |