lex 2 年 前
コミット
c069fa7e59

+ 2 - 2
src/api/vipSeting.js

@@ -335,8 +335,8 @@ export function getStudentSurplusCourseFee(data) {
 export function getHaveCourseBalanceStudents(data) {
   return request({
     url: api + "/vipGroupManage/findHaveCourseBalanceStudents",
-    method: "get",
-    params: data
+    method: "post",
+    data
   });
 }
 

+ 3 - 2
src/views/liveClassManager/liveClassManager.vue

@@ -150,7 +150,7 @@
               >
                 <!-- && -->
                 <!-- permission('vipGroupManage/stopVipGroup') -->
-                <p style="margin-bottom: 10px">确定停止该vip课?</p>
+                <p style="margin-bottom: 10px">确定停止该直播课?</p>
                 <el-input
                   v-model.trim="stopReason"
                   placeholder="请输入关闭原因"
@@ -183,7 +183,7 @@
 
 <script>
 import pagination from "@/components/Pagination/index";
-import { getVipList } from "@/api/vipSeting";
+import { getVipList, closeVip } from "@/api/vipSeting";
 export default {
   components: {
     pagination
@@ -304,6 +304,7 @@ export default {
   cursor: pointer;
   color: var(--color-primary);
 }
+
 ::v-deep .el-icon-arrow-down {
   font-size: 12px;
 }

+ 60 - 123
src/views/liveClassManager/liveClassTwo/components/courseAdjust.vue

@@ -1,165 +1,74 @@
 <!--  -->
 <template>
   <div>
-    <el-button type="primary" style="margin-bottom: 12px;" @click="onAdjustment"
-      >批量调整</el-button
-    >
+    <el-button type="primary" style="margin-bottom: 12px;" @click="onAdjustment">批量调整</el-button>
     <div class="tableWrap">
-      <el-table
-        style="width: 100%"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-        :data="tableList"
-        @selection-change="handleSelectionChange"
-      >
+      <el-table style="width: 100%" :header-cell-style="{ background: '#EDEEF0', color: '#444' }" :data="tableList"
+        @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column
-          align="center"
-          prop="name"
-          label="上课日期"
-        ></el-table-column>
+        <el-table-column align="center" prop="name" label="上课日期"></el-table-column>
         <el-table-column align="center" label="课程状态">
           <template slot-scope="scope">
             <div>{{ scope.row.status | coursesStatus }}</div>
           </template>
         </el-table-column>
-        <el-table-column
-          align="center"
-          prop="startClassTime"
-          label="开始时间"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          prop="endClassTime"
-          label="结束时间"
-        ></el-table-column>
+        <el-table-column align="center" prop="startClassTime" label="开始时间"></el-table-column>
+        <el-table-column align="center" prop="endClassTime" label="结束时间"></el-table-column>
       </el-table>
-      <pagination
-        sync
-        saveKey="liveClass-courseAdjust"
-        :total.sync="rules.total"
-        :page.sync="rules.page"
-        :limit.sync="rules.limit"
-        :page-sizes="rules.page_size"
-        @pagination="getList"
-      />
+      <pagination sync saveKey="liveClass-courseAdjust" :total.sync="rules.total" :page.sync="rules.page"
+        :limit.sync="rules.limit" :page-sizes="rules.page_size" @pagination="getList" />
     </div>
 
-    <el-dialog
-      :title="adjustmentName"
-      width="800px"
-      :visible.sync="adjustmentVisible"
-    >
-      <el-form
-        :model="adjustmentForm"
-        label-position="right"
-        label-width="120px"
-        ref="adjustmentForm"
-        :rules="adjustmentRules"
-        :inline="true"
-      >
+    <el-dialog :title="adjustmentName" width="800px" :visible.sync="adjustmentVisible">
+      <el-form :model="adjustmentForm" label-position="right" label-width="120px" ref="adjustmentForm"
+        :rules="adjustmentRules" :inline="true">
         <el-form-item label="已选择课时数">
           <el-input disabled v-model.trim="adjustmentForm.count"></el-input>
         </el-form-item>
 
         <el-form-item label="课程类型" prop="courseType">
-          <el-select
-            clearable
-            v-model.trim="adjustmentForm.courseType"
-            disabled
-          >
+          <el-select clearable v-model.trim="adjustmentForm.courseType" disabled>
             <el-option label="线上课" value="ONLINE"></el-option>
             <el-option label="线下课" value="OFFLINE"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item
-          label="教学地点"
-          v-if="adjustmentForm.courseType == 'OFFLINE'"
-        >
+        <el-form-item label="教学地点" v-if="adjustmentForm.courseType == 'OFFLINE'">
           <el-select v-model.trim="adjustmentForm.address" filterable clearable>
-            <el-option
-              v-for="(item, index) in schoolList"
-              :key="index"
-              :value="item.id"
-              :label="item.name"
-            ></el-option>
+            <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
         <br />
         <el-form-item label="排课起始时间" prop="courseTime">
-          <el-date-picker
-            v-model.trim="adjustmentForm.courseTime"
-            :picker-options="pickerOptions()"
-            style="width:200px!important;"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
-          <el-checkbox
-            style="margin-left:10px;"
-            v-model.trim="adjustmentForm.checked"
-            >是否跳过节假日</el-checkbox
-          >
+          <el-date-picker v-model.trim="adjustmentForm.courseTime" :picker-options="pickerOptions()"
+            style="width:200px!important;" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
+          <el-checkbox style="margin-left:10px;" v-model.trim="adjustmentForm.checked">是否跳过节假日</el-checkbox>
         </el-form-item>
       </el-form>
       <div class="WeekWrap">
         <h3 style="margin-bottom:20px;">
           循环次数
-          <el-button type="text" style="margin-left:10px;" @click="addWeek"
-            >添加</el-button
-          >
+          <el-button type="text" style="margin-left:10px;" @click="addWeek">添加</el-button>
         </h3>
         <div class="countWrap" style="margin-bottom:10px;">
-          <div
-            class="countItem"
-            style="margin-bottom:20px;"
-            v-for="(item, index) in weekList"
-            :key="index"
-          >
+          <div class="countItem" style="margin-bottom:20px;" v-for="(item, index) in weekList" :key="index">
             <span>循环周期:</span>
             <el-select v-model.trim="item.dayOfWeek" filterable clearable>
-              <el-option
-                v-for="(item, index) in weekDateList"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
+              <el-option v-for="(item, index) in weekDateList" :key="index" :label="item.label"
+                :value="item.value"></el-option>
             </el-select>
             <span style="margin-left:10px;">开始时间</span>
-            <el-time-picker
-              style="margin-left:10px;"
-              placeholder
-              v-model.trim="item.startClassTime"
-              @change="
-                val => {
-                  changeStartTimes(val, item);
-                }
-              "
-              format="HH:mm"
-              value-format="HH:mm"
-              :picker-options="{
-                selectableRange: '06:00:00 - 21:00:00'
-              }"
-            ></el-time-picker>
+            <el-time-picker style="margin-left:10px;" placeholder v-model.trim="item.startClassTime" @change="val => {
+              changeStartTimes(val, item);
+            }" format="HH:mm" value-format="HH:mm" :picker-options="{
+  selectableRange: '06:00:00 - 21:00:00'
+}"></el-time-picker>
             <span style="margin-left:10px;">结束时间</span>
-            <el-time-picker
-              style="margin-left:10px;"
-              placeholder
-              v-model.trim="item.endClassTime"
-              format="HH:mm"
-              value-format="HH:mm"
-              disabled
-              :picker-options="{
+            <el-time-picker style="margin-left:10px;" placeholder v-model.trim="item.endClassTime" format="HH:mm"
+              value-format="HH:mm" disabled :picker-options="{
                 selectableRange: '06:00:00 - 21:00:00'
-              }"
-            ></el-time-picker>
-            <el-button
-              style="margin-left:10px;"
-              type="danger"
-              :disabled="index < 1"
-              @click="removeWeek(item)"
-              icon="el-icon-delete"
-              circle
-            ></el-button>
+              }"></el-time-picker>
+            <el-button style="margin-left:10px;" type="danger" :disabled="index < 1" @click="removeWeek(item)"
+              icon="el-icon-delete" circle></el-button>
           </div>
         </div>
       </div>
@@ -182,6 +91,8 @@ import {
   batchAppendVipGroupCourses,
   vipGroupManageUpdate
 } from "@/api/vipSeting";
+import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
+import dayjs from 'dayjs';
 export default {
   components: {
     pagination
@@ -206,7 +117,7 @@ export default {
         courseTime: "",
         checked: false,
         addCount: "",
-        courseType: "",
+        courseType: "ONLINE",
         fee: "",
         address: ""
       },
@@ -274,6 +185,7 @@ export default {
     handleSelectionChange(val) {
       this.chioseVipList = val;
       this.adjustmentForm.count = val.length;
+      console.log(val, 'val - select checked')
       this.activeList = val;
     },
     onAdjustment() {
@@ -325,6 +237,24 @@ export default {
         }
       });
     },
+    changeStartTimes(val, item) {
+      this.$nextTick(res => {
+        if (val) {
+          let str = dayjs(new Date()).format("YYYY-MM-DD");
+          this.$set(
+            item,
+            "endClassTime",
+            addTimerFormMinute(str, val, this.courseTime)
+          );
+        } else {
+          this.$set(item, "endClassTime", "");
+        }
+        if (!item.endClassTime) {
+          console.log(item.startClassTime);
+          this.$set(item, "startClassTime", "");
+        }
+      });
+    },
     addCourseSubmit() {
       this.$refs["adjustmentForm"].validate(item => {
         if (item) {
@@ -389,6 +319,7 @@ export default {
   cursor: pointer;
   color: var(--color-primary);
 }
+
 ::v-deep .el-icon-arrow-down {
   font-size: 12px;
 }
@@ -397,17 +328,22 @@ export default {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   .newBand {
     margin-right: 20px;
   }
 }
+
 .resetClassForm {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 180px !important;
   }
 }
+
 .countWrap {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 100px !important;
@@ -419,6 +355,7 @@ export default {
     width: 220px !important;
   }
 }
+
 .titlewrap {
   display: flex;
   flex-direction: row;

+ 70 - 270
src/views/liveClassManager/liveClassTwo/components/courseOverview.vue

@@ -3,274 +3,116 @@
   <div>
     <div class="m-core">
       <el-form ref="liveForm" :model="form" label-position="top">
-        <el-alert
-          title="课程规划"
-          :closable="false"
-          type="info"
-          style="margin: 0 0 20px"
-        />
+        <el-alert title="课程规划" :closable="false" type="info" style="margin: 0 0 20px" />
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item
-              label="直播课标题"
-              prop="roomTitle"
-              :rules="[{ required: false, message: '请输入直播课标题' }]"
-            >
-              <el-input
-                v-model="form.roomTitle"
-                placeholder="请输入直播课标题"
-                maxlength="25"
-                :disabled="disabled"
-              ></el-input>
+            <el-form-item label="直播课标题" prop="roomTitle" :rules="[{ required: false, message: '请输入直播课标题' }]">
+              <el-input v-model="form.roomTitle" placeholder="请输入直播课标题" maxlength="25" :disabled="disabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="分部"
-              prop="organIds"
-              :rules="[{ required: false, message: '请选择分部' }]"
-            >
-              <select-all
-                v-model.trim="form.organIds"
-                filterable
-                placeholder="请选择分部"
-                multiple
-                clearable
-                :disabled="disabled"
-              >
-                <el-option
-                  v-for="(item, index) in selects.branchs"
-                  :key="index"
-                  :label="item.name"
-                  :value="item.id"
-                ></el-option>
+            <el-form-item label="分部" prop="organIds" :rules="[{ required: false, message: '请选择分部' }]">
+              <select-all v-model.trim="form.organIds" filterable placeholder="请选择分部" multiple clearable
+                :disabled="disabled">
+                <el-option v-for="(item, index) in selects.branchs" :key="index" :label="item.name"
+                  :value="item.id"></el-option>
               </select-all>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="直播课内容"
-              prop="liveRemark"
-              :rules="[{ required: false, message: '请输入直播课内容' }]"
-            >
-              <el-input
-                type="textarea"
-                v-model="form.liveRemark"
-                placeholder="请输入直播课内容"
-                maxlength="200"
-                show-word-limit
-                :disabled="disabled"
-              ></el-input>
+            <el-form-item label="直播课内容" prop="liveRemark" :rules="[{ required: false, message: '请输入直播课内容' }]">
+              <el-input type="textarea" v-model="form.liveRemark" placeholder="请输入直播课内容" maxlength="200" show-word-limit
+                :disabled="disabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="声部"
-              prop="subjectIdList"
-              :rules="[{ required: false, message: '请选择声部' }]"
-            >
-              <el-select
-                v-model.trim="form.subjectIdList"
-                filterable
-                clearable
-                placeholder="请选择声部"
-                style="width: 100% !important"
-                :disabled="disabled"
-              >
-                <el-option
-                  v-for="(item, index) in subjectList"
-                  :key="index"
-                  :value="item.id"
-                  :label="item.name"
-                />
+            <el-form-item label="声部" prop="subjectIdList" :rules="[{ required: false, message: '请选择声部' }]">
+              <el-select v-model.trim="form.subjectIdList" filterable clearable placeholder="请选择声部"
+                style="width: 100% !important" :disabled="disabled">
+                <el-option v-for="(item, index) in subjectList" :key="index" :value="item.id" :label="item.name" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="指导老师"
-              prop="teacher"
-              :rules="[{ required: false, message: '请选择指导老师' }]"
-            >
-              <el-select
-                v-model.trim="form.teacher"
-                filterable
-                clearable
-                placeholder="请选择指导老师"
-                style="width: 100% !important"
-                :disabled="!form.subjectIdList || disabled"
-              >
-                <el-option
-                  v-for="(item, index) in teacherList"
-                  :key="index"
-                  :label="item.realName"
-                  :value="item.id"
-                />
+            <el-form-item label="指导老师" prop="teacher" :rules="[{ required: false, message: '请选择指导老师' }]">
+              <el-select v-model.trim="form.teacher" filterable clearable placeholder="请选择指导老师"
+                style="width: 100% !important" :disabled="!form.subjectIdList || disabled">
+                <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="乐团主管"
-              prop="educationalTeacherId"
-              :rules="[{ required: false, message: '请选择乐团主管' }]"
-            >
-              <el-select
-                v-model.trim="form.educationalTeacherId"
-                filterable
-                clearable
-                style="width: 100% !important"
-                :disabled="disabled"
-              >
-                <el-option
-                  v-for="(item, key) in educationList"
-                  :key="key"
-                  :label="item.userName"
-                  :value="item.userId"
-                />
+            <el-form-item label="乐团主管" prop="educationalTeacherId" :rules="[{ required: false, message: '请选择乐团主管' }]">
+              <el-select v-model.trim="form.educationalTeacherId" filterable clearable style="width: 100% !important"
+                :disabled="disabled">
+                <el-option v-for="(item, key) in educationList" :key="key" :label="item.userName" :value="item.userId" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="课程购买时间"
-              prop="signUpTimeList"
-              :rules="[{ required: false, message: '请选择课程购买时间' }]"
-            >
+            <el-form-item label="课程购买时间" prop="signUpTimeList" :rules="[{ required: false, message: '请选择课程购买时间' }]">
               <!-- :default-time="['00:00:00', '23:59:59']" -->
-              <el-date-picker
-                style="width: 100%"
-                v-model="form.signUpTimeList"
-                type="daterange"
-                range-separator="-"
-                start-placeholder="购买开始日期"
-                end-placeholder="购买结束日期"
-                :disabled="disabled"
-              >
+              <el-date-picker style="width: 100%" v-model="form.signUpTimeList" type="daterange" range-separator="-"
+                start-placeholder="购买开始日期" end-placeholder="购买结束日期" :disabled="disabled">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="课时数"
-              prop="onlineClassesNum"
-              :rules="[{ required: false, message: '请输入课时数' }]"
-            >
-              <el-input
-                v-model="form.onlineClassesNum"
-                placeholder="请输入课时数"
-                maxlength="2"
-                :disabled="disabled"
-              ></el-input>
+            <el-form-item label="课时数" prop="onlineClassesNum" :rules="[{ required: false, message: '请输入课时数' }]">
+              <el-input v-model="form.onlineClassesNum" placeholder="请输入课时数" maxlength="2"
+                :disabled="disabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="课程时长"
-              prop="singleClassMinuteId"
-              :rules="[{ required: false, message: '请选择课程时长' }]"
-            >
-              <el-select
-                v-model.trim="form.singleClassMinuteId"
-                filterable
-                clearable
-                style="width: 100% !important"
-                placeholder="请选择课程时长"
-                :disabled="disabled"
-              >
-                <el-option
-                  v-for="(item, key) in liveGroupList"
-                  :key="key"
-                  :label="item.singleClassMinutes"
-                  :value="item.id"
-                />
+            <el-form-item label="课程时长" prop="singleClassMinuteId" :rules="[{ required: false, message: '请选择课程时长' }]">
+              <el-select v-model.trim="form.singleClassMinuteId" filterable clearable style="width: 100% !important"
+                placeholder="请选择课程时长" :disabled="disabled">
+                <el-option v-for="(item, key) in liveGroupList" :key="key" :label="item.singleClassMinutes"
+                  :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="现价"
-              prop="onlineClassesUnitPrice"
-              :rules="[{ required: false, message: '请输入现价' }]"
-            >
-              <el-input
-                v-model="form.onlineClassesUnitPrice"
-                placeholder="请输入现价"
-                @keyup.native="keyupEvent($event)"
-                :disabled="disabled"
-              ></el-input>
+            <el-form-item label="现价" prop="onlineClassesUnitPrice" :rules="[{ required: false, message: '请输入现价' }]">
+              <el-input v-model="form.onlineClassesUnitPrice" placeholder="请输入现价" @keyup.native="keyupEvent($event)"
+                :disabled="disabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item
-              label="原价"
-              prop="offlineClassesUnitPrice"
-              :rules="[{ required: false, message: '请输入原价' }]"
-            >
-              <el-input
-                v-model="form.offlineClassesUnitPrice"
-                placeholder="请输入原价"
-                @keyup.native="keyupEvent($event)"
-                :disabled="disabled"
-              ></el-input>
+            <el-form-item label="原价" prop="offlineClassesUnitPrice" :rules="[{ required: false, message: '请输入原价' }]">
+              <el-input v-model="form.offlineClassesUnitPrice" placeholder="请输入原价" @keyup.native="keyupEvent($event)"
+                :disabled="disabled"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-table
-          style="width: 100%; margin-top: 20px;"
-          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-          :data="form.timeTable"
-        >
+        <el-table style="width: 100%; margin-top: 20px;" :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="form.timeTable">
           <el-table-column align="center" label="课时">
             <template slot-scope="scope">
               第{{ scope.$index + 1 }}课
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            label="内容"
-            width="150px"
-            prop="teachingContent"
-            key="teachingContent"
-          >
+          <el-table-column align="center" label="内容" width="150px" prop="teachingContent" key="teachingContent">
             <template slot-scope="scope">
               <!-- {{ scope.row.teachingContent }} -->
               <Tooltip :content="scope.row.teachingContent" />
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            label="技能/知识点掌握"
-            width="220px"
-            prop="teachingPoint"
-            key="teachingPoint"
-          >
+          <el-table-column align="center" label="技能/知识点掌握" width="220px" prop="teachingPoint" key="teachingPoint">
             <template slot-scope="scope">
               <!-- {{ scope.row.teachingPoint }} -->
               <Tooltip :content="scope.row.teachingPoint" />
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="singleClassMinutes"
-            label="时长"
-          ></el-table-column>
+          <el-table-column align="center" prop="singleClassMinutes" label="时长"></el-table-column>
           <el-table-column align="center" label="课程日期">
             <template slot-scope="scope">
               <div>{{ scope.row.classDate | formatTimer }}</div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="startClassTimeStr"
-            label="开始时间"
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            prop="endClassTimeStr"
-            label="结束时间"
-          ></el-table-column>
+          <el-table-column align="center" prop="startClassTimeStr" label="开始时间"></el-table-column>
+          <el-table-column align="center" prop="endClassTimeStr" label="结束时间"></el-table-column>
           <el-table-column align="center" label="课程类型">
             <template slot-scope="scope">
               <div>{{ scope.row.teachMode | teachMode }}</div>
@@ -278,39 +120,20 @@
           </el-table-column>
         </el-table>
 
-        <el-alert
-          title="直播课信息"
-          :closable="false"
-          type="info"
-          style="margin: 20px 0"
-        />
+        <el-alert title="直播课信息" :closable="false" type="info" style="margin: 20px 0" />
         <el-row :gutter="20">
           <el-col :span="6">
-            <el-form-item
-              label="直播设备"
-              prop="os"
-              :rules="[{ required: false, message: '请选择推广类型' }]"
-            >
+            <el-form-item label="直播设备" prop="os" :rules="[{ required: false, message: '请选择推广类型' }]">
               <el-radio-group v-model="form.os" :disabled="disabled">
                 <!-- 根据不同的模式,显示不同的直播设备 -->
-                <el-radio v-if="serviceProvider === 'rongCloud'" label="pc"
-                  >web</el-radio
-                >
-                <el-radio
-                  v-if="serviceProvider === 'tencentCloud'"
-                  label="client"
-                  >客户端</el-radio
-                >
+                <el-radio v-if="serviceProvider === 'rongCloud'" label="pc">web</el-radio>
+                <el-radio v-if="serviceProvider === 'tencentCloud'" label="client">客户端</el-radio>
                 <el-radio label="mobile">手机</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item
-              label="直播场景"
-              prop="useScene"
-              :rules="[{ required: false, message: '请选择直播场景' }]"
-            >
+            <el-form-item label="直播场景" prop="useScene" :rules="[{ required: false, message: '请选择直播场景' }]">
               <el-radio-group v-model="form.useScene" :disabled="disabled">
                 <el-radio label="NORMAL">普通模式</el-radio>
                 <el-radio label="MUSIC">音乐模式</el-radio>
@@ -319,30 +142,18 @@
           </el-col>
 
           <el-col :span="6">
-            <el-form-item
-              prop="roomConfig.whether_video"
-              label="保存直播回放"
-              :rules="[{ required: false, message: '是否保存直播回放' }]"
-            >
-              <el-radio-group
-                v-model="form.roomConfig.whether_video"
-                :disabled="disabled"
-              >
+            <el-form-item prop="roomConfig.whether_video" label="保存直播回放"
+              :rules="[{ required: false, message: '是否保存直播回放' }]">
+              <el-radio-group v-model="form.roomConfig.whether_video" :disabled="disabled">
                 <el-radio :label="0">是</el-radio>
                 <el-radio :label="1">否</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item
-              prop="roomConfig.whether_view_shop_cart"
-              label="是否展示购物车"
-              :rules="[{ required: false, message: '是否展示购物车' }]"
-            >
-              <el-radio-group
-                v-model="form.roomConfig.whether_view_shop_cart"
-                :disabled="disabled"
-              >
+            <el-form-item prop="roomConfig.whether_view_shop_cart" label="是否展示购物车"
+              :rules="[{ required: false, message: '是否展示购物车' }]">
+              <el-radio-group v-model="form.roomConfig.whether_view_shop_cart" :disabled="disabled">
                 <el-radio :label="0">是</el-radio>
                 <el-radio :label="1">否</el-radio>
               </el-radio-group>
@@ -350,33 +161,20 @@
           </el-col>
 
           <el-col :span="24">
-            <el-form-item
-              label="预热模板(模板使用于分享宣传图片)"
-              prop="preTemplate"
-              :rules="[{ required: false, message: '请选择预热模板' }]"
-            >
+            <el-form-item label="预热模板(模板使用于分享宣传图片)" prop="preTemplate" :rules="[{ required: false, message: '请选择预热模板' }]">
               <el-radio-group v-model="form.preTemplate" :disabled="disabled">
                 <div class="chioseWrap">
                   <div class="chioseItem">
                     <img src="../../images/img1.png" alt="" />
-                    <i
-                      class="dotWrap"
-                      :class="form.preTemplate == 1 ? 'checked' : ''"
-                    ></i>
+                    <i class="dotWrap" :class="form.preTemplate == 1 ? 'checked' : ''"></i>
                   </div>
                   <div class="chioseItem">
                     <img src="../../images/img2.png" alt="" />
-                    <i
-                      class="dotWrap"
-                      :class="form.preTemplate == 2 ? 'checked' : ''"
-                    ></i>
+                    <i class="dotWrap" :class="form.preTemplate == 2 ? 'checked' : ''"></i>
                   </div>
                   <div class="chioseItem">
                     <img src="../../images/img3.png" alt="" />
-                    <i
-                      class="dotWrap"
-                      :class="form.preTemplate == 3 ? 'checked' : ''"
-                    ></i>
+                    <i class="dotWrap" :class="form.preTemplate == 3 ? 'checked' : ''"></i>
                   </div>
                 </div>
               </el-radio-group>
@@ -467,7 +265,7 @@ export default {
         this.form = {
           roomTitle: liveBroadcastRoom.roomTitle, //
           liveRemark: liveBroadcastRoom.liveRemark, // 内容
-          organIds: vipGroupApplyBaseInfo.organName.split(","),
+          organIds: vipGroupApplyBaseInfo.organName ? vipGroupApplyBaseInfo.organName.split(",") : [],
           subjectIdList: vipGroupApplyBaseInfo.subjectName, // 声部
           teacher: liveBroadcastRoom.speakerName, // 指导老师列表
           educationalTeacherId: vipGroupApplyBaseInfo.educationalTeacherName, // 乐团主管
@@ -510,6 +308,7 @@ export default {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   .chioseItem {
     border-radius: 4px;
     overflow: hidden;
@@ -522,26 +321,26 @@ export default {
     .dotWrap {
       width: 21px;
       height: 21px;
-      background: url("../../../../assets/images/icon_checkbox_default.png")
-        no-repeat center;
+      background: url("../../../../assets/images/icon_checkbox_default.png") no-repeat center;
       background-size: contain;
       display: block;
       position: absolute;
       top: 10px;
       right: 12px;
       overflow: hidden;
+
       &.checked {
-        background: url("../../../../assets/images/icon_checkbox.png") no-repeat
-          center;
+        background: url("../../../../assets/images/icon_checkbox.png") no-repeat center;
         background-size: contain;
       }
     }
   }
 }
 
-::v-deep .el-select > .el-input {
+::v-deep .el-select>.el-input {
   height: 36px !important;
 }
+
 ::v-deep .select-all {
   .select {
     .el-input__inner {
@@ -549,6 +348,7 @@ export default {
       min-height: 36px !important;
     }
   }
+
   .btn {
     height: 36px !important;
     min-height: 36px !important;

+ 82 - 273
src/views/vipClass/vipReset.vue

@@ -11,28 +11,16 @@
       <!-- <div class="newBand"
            v-permission="'vipGroupManage/appendVipGroupCourseSchedules'"
            @click="addCourse">VIP加课</div> -->
-      <el-button
-        v-permission="'courseSchedule/vipCourseAdjust'"
-        @click="adjustment"
-        type="primary"
-        style="margin-bottom:20px"
-      >
+      <el-button v-permission="'courseSchedule/vipCourseAdjust'" @click="adjustment" type="primary"
+        style="margin-bottom:20px">
         批量调整
       </el-button>
-      <el-button
-        v-permission="'vipGroupManage/updateVipBaseInfo'"
-        @click="addrVisible = true"
-        type="primary"
-        style="margin-bottom:20px"
-      >
+      <el-button v-permission="'vipGroupManage/updateVipBaseInfo'" @click="addrVisible = true" type="primary"
+        style="margin-bottom:20px">
         修改教学点
       </el-button>
-      <el-button
-        v-permission="'vipGroupManage/updateVipBaseInfo/courseClass'"
-        @click="educationalVisible = true"
-        type="primary"
-        style="margin-bottom:20px"
-      >
+      <el-button v-permission="'vipGroupManage/updateVipBaseInfo/courseClass'" @click="educationalVisible = true"
+        type="primary" style="margin-bottom:20px">
         课程组信息修改
       </el-button>
       <!-- <div class="newBand"
@@ -41,22 +29,10 @@
     </div>
 
     <div class="tableWrap">
-      <el-table
-        :data="tableList"
-        ref="tableList"
-        @selection-change="handleSelectionChange"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-      >
-        <el-table-column
-          type="selection"
-          :selectable="isDisabled"
-          width="55"
-        ></el-table-column>
-        <el-table-column
-          label="课程名称"
-          align="center"
-          prop="name"
-        ></el-table-column>
+      <el-table :data="tableList" ref="tableList" @selection-change="handleSelectionChange"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }">
+        <el-table-column type="selection" :selectable="isDisabled" width="55"></el-table-column>
+        <el-table-column label="课程名称" align="center" prop="name"></el-table-column>
         <el-table-column label="课程编号" align="center" prop="id">
           <template slot-scope="scope">
             <div>
@@ -84,11 +60,7 @@
             <div>{{ scope.row.isSettlement ? "已结算" : "未结算" }}</div>
           </template>
         </el-table-column>
-        <el-table-column
-          label="开始时间"
-          align="center"
-          prop="startClassTimeStr"
-        >
+        <el-table-column label="开始时间" align="center" prop="startClassTimeStr">
           <template slot-scope="scope">
             <div>{{ scope.row.startClassTimeStr | timerForMinFormat }}</div>
           </template>
@@ -113,97 +85,44 @@
         <el-table-column label="操作" width="180" align="center">
           <template slot-scope="scope">
             <div>
-              <el-button
-                type="text"
-                v-if="
-                  scope.row.id &&
-                    !scope.row.isSettlement &&
-                    $helpers.permission(
-                      'courseSchedule/classStartDateAdjust/vipReset'
-                    )
-                "
-                @click="resetClass(scope.row)"
-                >调整</el-button
-              >
-              <el-button
-                type="text"
-                v-if="
-                  scope.row.id &&
-                    !scope.row.isSettlement &&
-                    scope.row.status != 'OVER' &&
-                    $helpers.permission('courseSchedule/batchDelete')
-                "
-                @click="removeClass(scope.row)"
-                >删除</el-button
-              >
+              <el-button type="text" v-if="scope.row.id &&
+                !scope.row.isSettlement &&
+                $helpers.permission(
+                  'courseSchedule/classStartDateAdjust/vipReset'
+                )
+                " @click="resetClass(scope.row)">调整</el-button>
+              <el-button type="text" v-if="scope.row.id &&
+                !scope.row.isSettlement &&
+                scope.row.status != 'OVER' &&
+                $helpers.permission('courseSchedule/batchDelete')
+                " @click="removeClass(scope.row)">删除</el-button>
               <!--   -->
-              <el-button
-                type="text"
-                v-if="
-                  scope.row.id &&
-                    !scope.row.isSettlement &&
-                    $helpers.permission('vip/cleanAttendance')
-                "
-                @click="clearAttend(scope.row)"
-                >清除考勤</el-button
-              >
+              <el-button type="text" v-if="scope.row.id &&
+                !scope.row.isSettlement &&
+                $helpers.permission('vip/cleanAttendance')
+                " @click="clearAttend(scope.row)">清除考勤</el-button>
             </div>
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        sync
-        :total.sync="rules.total"
-        :page.sync="rules.page"
-        :limit.sync="rules.limit"
-        :page-sizes="rules.page_size"
-        @pagination="getList"
-      />
+      <pagination sync :total.sync="rules.total" :page.sync="rules.page" :limit.sync="rules.limit"
+        :page-sizes="rules.page_size" @pagination="getList" />
     </div>
-    <el-dialog
-      title="课程调整"
-      width="400px"
-      :before-close="handleClose"
-      :visible.sync="courseVisible"
-    >
-      <el-form
-        :model="maskForm"
-        class="maskForm"
-        ref="maskForm"
-        :rules="maskRules"
-        label-position="right"
-        label-width="80px"
-        :inline="true"
-      >
+    <el-dialog title="课程调整" width="400px" :before-close="handleClose" :visible.sync="courseVisible">
+      <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right"
+        label-width="80px" :inline="true">
         <el-form-item label="上课日期" prop="date">
-          <el-date-picker
-            v-model.trim="maskForm.date"
-            type="date"
-            :picker-options="coursesDate()"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
+          <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="coursesDate()"
+            value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
         </el-form-item>
         <el-form-item label="开始时间" prop="startTime">
-          <el-time-picker
-            placeholder="起始时间"
-            v-model.trim="startTime"
-            @change="changeStartTime"
-            format="HH:mm"
-            value-format="HH:mm"
-            :picker-options="{
+          <el-time-picker placeholder="起始时间" v-model.trim="startTime" @change="changeStartTime" format="HH:mm"
+            value-format="HH:mm" :picker-options="{
               selectableRange: `${nowTime} - 23:30:00`
-            }"
-          ></el-time-picker>
+            }"></el-time-picker>
         </el-form-item>
         <el-form-item label="结束时间" prop="endTime">
-          <el-time-picker
-            placeholder="结束时间"
-            format="HH:mm"
-            value-format="HH:mm"
-            v-model="maskForm.endTime"
-            disabled
-          >
+          <el-time-picker placeholder="结束时间" format="HH:mm" value-format="HH:mm" v-model="maskForm.endTime" disabled>
           </el-time-picker>
         </el-form-item>
         <!--v-if="maskForm.teachMode=='OFFLINE'"-->
@@ -215,12 +134,7 @@
         </el-form-item>
         <el-form-item label="教学地点" v-if="maskForm.teachMode == 'OFFLINE'">
           <el-select v-model.trim="maskForm.address" filterable clearable>
-            <el-option
-              v-for="(item, index) in schoolList"
-              :key="index"
-              :value="item.id"
-              :label="item.name"
-            ></el-option>
+            <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -297,28 +211,14 @@
                    @click="submitAdd">确 定</el-button>
       </span>
     </el-dialog>-->
-    <el-dialog
-      :title="adjustmentName"
-      width="800px"
-      :visible.sync="adjustmentVisible"
-    >
-      <el-form
-        :model="adjustmentForm"
-        label-position="right"
-        label-width="120px"
-        ref="adjustmentForm"
-        :rules="adjustmentRules"
-        :inline="true"
-      >
+    <el-dialog :title="adjustmentName" width="800px" :visible.sync="adjustmentVisible">
+      <el-form :model="adjustmentForm" label-position="right" label-width="120px" ref="adjustmentForm"
+        :rules="adjustmentRules" :inline="true">
         <el-form-item label="已选择课时数" v-if="!isaddCourse">
           <el-input disabled v-model.trim="adjustmentForm.count"></el-input>
         </el-form-item>
         <el-form-item label="添加课时数" prop="addCount" v-if="isaddCourse">
-          <el-input
-            type="number"
-            @mousewheel.native.prevent
-            v-model.trim="adjustmentForm.addCount"
-          ></el-input>
+          <el-input type="number" @mousewheel.native.prevent v-model.trim="adjustmentForm.addCount"></el-input>
         </el-form-item>
         <br />
         <el-form-item label="单课费用" prop="fee" v-if="isaddCourse">
@@ -331,105 +231,51 @@
             <el-option label="线下课" value="OFFLINE"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item
-          label="教学地点"
-          v-if="adjustmentForm.courseType == 'OFFLINE'"
-        >
+        <el-form-item label="教学地点" v-if="adjustmentForm.courseType == 'OFFLINE'">
           <el-select v-model.trim="adjustmentForm.address" filterable clearable>
-            <el-option
-              v-for="(item, index) in schoolList"
-              :key="index"
-              :value="item.id"
-              :label="item.name"
-            ></el-option>
+            <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
         <br />
         <el-form-item label="排课起始时间" prop="courseTime">
-          <el-date-picker
-            v-model.trim="adjustmentForm.courseTime"
-            :picker-options="pickerOptions()"
-            style="width:200px!important;"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
-          <el-checkbox
-            style="margin-left:10px;"
-            v-model.trim="adjustmentForm.checked"
-            >是否跳过节假日</el-checkbox
-          >
+          <el-date-picker v-model.trim="adjustmentForm.courseTime" :picker-options="pickerOptions()"
+            style="width:200px!important;" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
+          <el-checkbox style="margin-left:10px;" v-model.trim="adjustmentForm.checked">是否跳过节假日</el-checkbox>
         </el-form-item>
       </el-form>
       <div class="WeekWrap">
         <h3 style="margin-bottom:20px;">
           循环次数
-          <el-button type="text" style="margin-left:10px;" @click="addWeek"
-            >添加</el-button
-          >
+          <el-button type="text" style="margin-left:10px;" @click="addWeek">添加</el-button>
         </h3>
         <div class="countWrap" style="margin-bottom:10px;">
-          <div
-            class="countItem"
-            style="margin-bottom:20px;"
-            v-for="(item, index) in weekList"
-            :key="index"
-          >
+          <div class="countItem" style="margin-bottom:20px;" v-for="(item, index) in weekList" :key="index">
             <span>循环周期:</span>
             <el-select v-model.trim="item.dayOfWeek" filterable clearable>
-              <el-option
-                v-for="(item, index) in weekDateList"
-                :key="index"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
+              <el-option v-for="(item, index) in weekDateList" :key="index" :label="item.label"
+                :value="item.value"></el-option>
             </el-select>
             <span style="margin-left:10px;">开始时间</span>
-            <el-time-picker
-              style="margin-left:10px;"
-              placeholder
-              v-model.trim="item.startClassTime"
-              @change="
-                val => {
-                  changeStartTimes(val, item);
-                }
-              "
-              format="HH:mm"
-              value-format="HH:mm"
-              :picker-options="{
-                selectableRange: '06:00:00 - 21:00:00'
-              }"
-            ></el-time-picker>
+            <el-time-picker style="margin-left:10px;" placeholder v-model.trim="item.startClassTime" @change="val => {
+                changeStartTimes(val, item);
+              }
+              " format="HH:mm" value-format="HH:mm" :picker-options="{
+    selectableRange: '06:00:00 - 21:00:00'
+  }"></el-time-picker>
             <span style="margin-left:10px;">结束时间</span>
-            <el-time-picker
-              style="margin-left:10px;"
-              placeholder
-              v-model.trim="item.endClassTime"
-              format="HH:mm"
-              value-format="HH:mm"
-              disabled
-              :picker-options="{
+            <el-time-picker style="margin-left:10px;" placeholder v-model.trim="item.endClassTime" format="HH:mm"
+              value-format="HH:mm" disabled :picker-options="{
                 selectableRange: '06:00:00 - 21:00:00'
-              }"
-            ></el-time-picker>
-            <el-button
-              style="margin-left:10px;"
-              type="danger"
-              @click="removeWeek(item)"
-              icon="el-icon-delete"
-              circle
-            ></el-button>
+              }"></el-time-picker>
+            <el-button style="margin-left:10px;" type="danger" @click="removeWeek(item)" icon="el-icon-delete"
+              circle></el-button>
           </div>
         </div>
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button @click="adjustmentVisible = false">取 消</el-button>
-        <el-button type="primary" v-if="!isaddCourse" @click="submitAdjustment"
-          >确 定</el-button
-        >
-        <el-button type="primary" v-if="isaddCourse" @click="addCourseSubmit"
-          >确 定</el-button
-        >
+        <el-button type="primary" v-if="!isaddCourse" @click="submitAdjustment">确 定</el-button>
+        <el-button type="primary" v-if="isaddCourse" @click="addCourseSubmit">确 定</el-button>
       </div>
     </el-dialog>
     <!-- 批量修改教学点 -->
@@ -437,12 +283,7 @@
       <el-form :model="addrForm">
         <el-form-item label="教学点">
           <el-select v-model.trim="addrForm.address" clearable filterable>
-            <el-option
-              v-for="(item, index) in schoolList"
-              :key="index"
-              :value="item.id"
-              :label="item.name"
-            ></el-option>
+            <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -452,68 +293,30 @@
       </span>
     </el-dialog>
     <!-- 课程信息老师 -->
-    <el-dialog
-      title="课程信息"
-      width="400px"
-      :visible.sync="educationalVisible"
-    >
+    <el-dialog title="课程信息" width="400px" :visible.sync="educationalVisible">
       <el-form :model="addrForm" label-width="120px">
         <el-form-item label="课程分部" prop="organId">
-          <el-select
-            v-model.trim="addrForm.organId"
-            filterable
-            @change="onEduTeacher('on')"
-            clearable
-          >
-            <el-option
-              v-for="(item, index) in organList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            />
+          <el-select v-model.trim="addrForm.organId" filterable @change="onEduTeacher('on')" clearable>
+            <el-option v-for="(item, index) in organList" :key="index" :label="item.name" :value="item.id" />
           </el-select>
         </el-form-item>
         <el-form-item label="乐团主管" prop="educationalTeacherId">
-          <el-select
-            v-model.trim="addrForm.educationalTeacherId"
-            filterable
-            :disabled="!addrForm.organId"
-            clearable
-          >
-            <el-option
-              v-for="(item, index) in educationList"
-              :key="index"
-              :label="item.realName"
-              :value="item.id"
-            />
+          <el-select v-model.trim="addrForm.educationalTeacherId" filterable :disabled="!addrForm.organId" clearable>
+            <el-option v-for="(item, index) in educationList" :key="index" :label="item.realName" :value="item.id" />
           </el-select>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="educationalVisible = false">取 消</el-button>
-        <el-button type="primary" @click="resetEducationalVisible"
-          >确 定</el-button
-        >
+        <el-button type="primary" @click="resetEducationalVisible">确 定</el-button>
       </span>
     </el-dialog>
     <el-dialog title="有效期调整" width="400px" :visible.sync="expireVisible">
-      <el-form
-        :model="expireForm"
-        ref="expireForm"
-        :rules="expireRules"
-        label-position="right"
-        label-width="80px;"
-        :inline="true"
-      >
+      <el-form :model="expireForm" ref="expireForm" :rules="expireRules" label-position="right" label-width="80px;"
+        :inline="true">
         <el-form-item label="课程结束时间" prop="coursesExpireDate">
-          <el-date-picker
-            v-model.trim="expireForm.coursesExpireDate"
-            style="width:200px!important;"
-            type="date"
-            :picker-options="bigin"
-            value-format="yyyy-MM-dd"
-            placeholder="选择日期"
-          ></el-date-picker>
+          <el-date-picker v-model.trim="expireForm.coursesExpireDate" style="width:200px!important;" type="date"
+            :picker-options="bigin" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
         </el-form-item>
         <!-- <div style="padding-left: 15px; color: red;">课程结束时间不得晚于,{{ expireForm.tempCoursesExpireDate }}</div> -->
       </el-form>
@@ -1060,7 +863,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     changeStartTime(val) {
       this.$nextTick(res => {
@@ -1201,17 +1004,22 @@ export default {
   display: flex;
   flex-direction: row;
   justify-content: flex-start;
+
   .newBand {
     margin-right: 20px;
   }
 }
+
 .resetClassForm {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 180px !important;
   }
 }
+
 .countWrap {
+
   ::v-deep .el-date-editor.el-input,
   ::v-deep .el-date-editor.el-input__inner {
     width: 100px !important;
@@ -1223,6 +1031,7 @@ export default {
     width: 220px !important;
   }
 }
+
 .titlewrap {
   display: flex;
   flex-direction: row;