Browse Source

更新修改问题

lex 2 years ago
parent
commit
e3d440690e

+ 21 - 12
src/views/liveClassManager/createLiveClass.vue

@@ -9,13 +9,14 @@
         <el-row :gutter="20">
           <el-col :span="10">
             <el-form-item label="直播课标题" prop="roomTitle" :rules="[{ required: true, message: '请输入直播课标题' }]">
-              <el-input v-model="form.roomTitle" placeholder="请输入直播课标题" maxlength="10" show-word-limit></el-input>
+              <el-input v-model="form.roomTitle" placeholder="请输入直播课标题" maxlength="10" show-word-limit
+                :disabled="isDisabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="10">
             <el-form-item label="直播课内容" prop="liveRemark" :rules="[{ required: true, message: '请输入直播课内容' }]">
-              <el-input type="textarea" v-model="form.liveRemark" placeholder="请输入直播课内容" maxlength="200"
-                show-word-limit></el-input>
+              <el-input type="textarea" v-model="form.liveRemark" placeholder="请输入直播课内容" maxlength="200" show-word-limit
+                :disabled="isDisabled"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="10">
@@ -168,7 +169,7 @@
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="直播设备" prop="os" :rules="[{ required: true, message: '请选择推广类型' }]">
-              <el-radio-group v-model="form.os">
+              <el-radio-group v-model="form.os" :disabled="isDisabled">
                 <!-- 根据不同的模式,显示不同的直播设备 -->
                 <el-radio v-if="serviceProvider === 'rongCloud'" label="pc">web</el-radio>
                 <el-radio v-if="serviceProvider === 'tencentCloud'" label="client">乐直播</el-radio>
@@ -178,7 +179,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="直播场景" prop="useScene" :rules="[{ required: true, message: '请选择直播场景' }]">
-              <el-radio-group v-model="form.useScene">
+              <el-radio-group v-model="form.useScene" :disabled="isDisabled">
                 <el-radio label="NORMAL">普通场景</el-radio>
                 <el-radio label="MUSIC">音乐场景</el-radio>
               </el-radio-group>
@@ -188,7 +189,7 @@
           <el-col :span="6">
             <el-form-item prop="roomConfig.whether_video" label="保存直播回放"
               :rules="[{ required: true, message: '是否保存直播回放' }]">
-              <el-radio-group v-model="form.roomConfig.whether_video">
+              <el-radio-group v-model="form.roomConfig.whether_video" :disabled="isDisabled">
                 <el-radio :label="0">是</el-radio>
                 <el-radio :label="1">否</el-radio>
               </el-radio-group>
@@ -197,7 +198,7 @@
           <el-col :span="6">
             <el-form-item prop="roomConfig.whether_view_shop_cart" label="是否展示购物车"
               :rules="[{ required: true, message: '是否展示购物车' }]">
-              <el-radio-group v-model="form.roomConfig.whether_view_shop_cart">
+              <el-radio-group v-model="form.roomConfig.whether_view_shop_cart" :disabled="isDisabled">
                 <el-radio :label="0">是</el-radio>
                 <el-radio :label="1">否</el-radio>
               </el-radio-group>
@@ -206,19 +207,22 @@
 
           <el-col :span="24">
             <el-form-item label="预热模板(模板使用于分享宣传图片)" prop="preTemplate" :rules="[{ required: true, message: '请选择预热模板' }]">
-              <el-radio-group v-model="form.preTemplate">
+              <el-radio-group v-model="form.preTemplate" :disabled="isDisabled">
                 <div class="chioseWrap">
                   <div class="chioseItem" @click="setPreTemplate(1)">
                     <img src="./images/img1.png" alt="" />
-                    <i class="dotWrap" :class="form.preTemplate == 1 ? 'checked' : ''"></i>
+                    <i class="dotWrap"
+                      :class="[form.preTemplate == 1 ? 'checked' : '', isDisabled ? 'disabled' : '']"></i>
                   </div>
                   <div class="chioseItem" @click="setPreTemplate(2)">
                     <img src="./images/img2.png" alt="" />
-                    <i class="dotWrap" :class="form.preTemplate == 2 ? 'checked' : ''"></i>
+                    <i class="dotWrap"
+                      :class="[form.preTemplate == 2 ? 'checked' : '', isDisabled ? 'disabled' : '']"></i>
                   </div>
                   <div class="chioseItem" @click="setPreTemplate(3)">
                     <img src="./images/img3.png" alt="" />
-                    <i class="dotWrap" :class="form.preTemplate == 3 ? 'checked' : ''"></i>
+                    <i class="dotWrap"
+                      :class="[form.preTemplate == 3 ? 'checked' : '', isDisabled ? 'disabled' : '']"></i>
                   </div>
                 </div>
               </el-radio-group>
@@ -228,7 +232,7 @@
 
         <el-row>
           <el-col :span="24">
-            <el-button type="primary" @click="onReset">重置</el-button>
+            <el-button type="primary" @click="onReset" v-if="[0, 1].includes(status)">重置</el-button>
             <el-button type="primary" @click="onSubmit">确定</el-button>
           </el-col>
         </el-row>
@@ -350,6 +354,7 @@ export default {
       }
     },
     setPreTemplate(index) {
+      if (this.isDisabled) return;
       this.form.preTemplate = index;
     },
     async onSubmit() {
@@ -714,6 +719,10 @@ export default {
         background: url("../../assets/images/icon_checkbox.png") no-repeat center;
         background-size: contain;
       }
+
+      &.disabled {
+        opacity: 0.6;
+      }
     }
   }
 }

+ 36 - 101
src/views/teamDetail/componentCourse/resetClass.vue

@@ -1,136 +1,60 @@
 <template>
   <div>
-    <el-form
-      :model="maskForm"
-      class="maskForm"
-      ref="maskForm"
-      :rules="maskRules"
-      label-position="right"
-      label-width="120px"
-      :inline="true"
-    >
+    <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right"
+      label-width="120px" :inline="true">
       <!--    -->
       <el-form-item label="主教老师" v-if="maskForm.type == 'VIP'" prop="teacher">
-        <remote-search
-          :commit="'setTeachers'"
-          v-model="maskForm.teacher"
-          @change="changeTeacher"
-          :width="220"
-        />
+        <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" @change="changeTeacher" :width="220" />
       </el-form-item>
       <el-form-item label="主教老师" v-else prop="teacher">
         <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" :width="220" />
       </el-form-item>
-      <el-form-item
-        label="助教老师"
-        v-if="
-          maskForm.type != 'MUSIC_NETWORK' &&
-          maskForm.type != 'HIGH_ONLINE' &&
-          maskForm.groupType == 'MUSIC'
-        "
-        prop="assistant"
-      >
-        <remote-search
-          :commit="'setTeachers'"
-          v-model="maskForm.assistant"
-          :width="220"
-          :multiple="true"
-        />
+      <el-form-item label="助教老师" v-if="maskForm.type != 'MUSIC_NETWORK' &&
+        maskForm.type != 'HIGH_ONLINE' &&
+        maskForm.groupType == 'MUSIC'
+        " prop="assistant">
+        <remote-search :commit="'setTeachers'" v-model="maskForm.assistant" :width="220" :multiple="true" />
       </el-form-item>
       <el-form-item label="上课日期" prop="date">
-        <el-date-picker
-          v-model.trim="maskForm.date"
-          type="date"
-          :picker-options="bigin"
-          value-format="yyyy-MM-dd"
-          placeholder="选择日期"
-          clearable
-        ></el-date-picker>
+        <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="bigin" value-format="yyyy-MM-dd"
+          placeholder="选择日期" clearable></el-date-picker>
       </el-form-item>
       <el-form-item label="课程时长" prop="timer">
-        <el-select
-          v-model="maskForm.timer"
-          @change="changeTime"
-          style="width: 220px !important"
-          clearable
-        >
-          <el-option
-            v-for="(item, index) in typeTimeList"
-            :key="index"
-            :disabled="item > baseTimer ? true : false"
-            :value="parseInt(item)"
-            :label="item"
-          ></el-option>
+        <el-select v-model="maskForm.timer" @change="changeTime" style="width: 220px !important" clearable>
+          <el-option v-for="(item, index) in typeTimeList" :key="index" :disabled="item > baseTimer ? true : false"
+            :value="parseInt(item)" :label="item"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="开始时间" prop="startTime">
-        <el-time-picker
-          placeholder="起始时间"
-          v-model.trim="maskForm.startTime"
-          @change="changeStartTime"
-          format="HH:mm"
-          value-format="HH:mm"
-          :picker-options="{
+        <el-time-picker placeholder="起始时间" v-model.trim="maskForm.startTime" @change="changeStartTime" format="HH:mm"
+          value-format="HH:mm" :picker-options="{
             selectableRange: `06:00:00 - 23:30:00`,
-          }"
-          clearable
-        ></el-time-picker>
+          }" clearable></el-time-picker>
       </el-form-item>
       <el-form-item label="结束时间" prop="endTime">
-        <el-time-picker
-          placeholder="结束时间"
-          v-model.trim="maskForm.endTime"
-          disabled
-          format="HH:mm"
-          value-format="HH:mm"
+        <el-time-picker placeholder="结束时间" v-model.trim="maskForm.endTime" disabled format="HH:mm" value-format="HH:mm"
           :picker-options="{
             start: '04:30',
             step: '00:05',
             end: '23:30',
             minTime: maskForm.startTime,
-          }"
-          clearable
-        ></el-time-picker>
+          }" clearable></el-time-picker>
       </el-form-item>
       <el-form-item label="课程类型" v-if="maskForm.type == 'VIP'" prop="courseType">
-        <el-select
-          clearable
-          @change="typeChange"
-          style="width: 220px !important"
-          v-model.trim="maskForm.teachMode"
-        >
+        <el-select clearable @change="typeChange" style="width: 220px !important" v-model.trim="maskForm.teachMode">
           <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="maskForm.type == 'HIGH' || maskForm.type == 'HIGH_ONLINE'"
-        prop="courseType"
-      >
-        <el-select
-          clearable
-          @change="typeChangeHight"
-          style="width: 220px !important"
-          v-model.trim="maskForm.teachMode"
-        >
+      <el-form-item label="课程类型" v-if="maskForm.type == 'HIGH' || maskForm.type == 'HIGH_ONLINE'" prop="courseType">
+        <el-select clearable @change="typeChangeHight" style="width: 220px !important" v-model.trim="maskForm.teachMode">
           <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="maskForm.teachMode == 'OFFLINE'">
-        <el-select
-          v-model.trim="maskForm.address"
-          style="width: 220px !important"
-          filterable
-          clearable
-        >
-          <el-option
-            v-for="(item, index) in schoolList"
-            :key="index"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
+        <el-select v-model.trim="maskForm.address" style="width: 220px !important" filterable clearable>
+          <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>
@@ -148,6 +72,7 @@ import {
   getCourseScheduleDetail,
   getOrganCourseDurationSettings,
 } from "@/api/buildTeam";
+import { vipGroupCategory } from '@/api/vipSeting'
 import { getTeachSchool } from "@/api/teacherManager";
 import { getSchool } from "@/api/systemManage";
 import cleanDeep from "clean-deep";
@@ -257,7 +182,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
     typeChange() {
       this.$set(this.maskForm, "address", null);
@@ -346,7 +271,17 @@ export default {
                   this.typeTimeList = this.courseTimeList[key].split(",");
                 }
               }
-            } catch (e) {}
+            } catch (e) { }
+          } else if (res.data.groupType == 'LIVE') {
+            try {
+              const { data } = await vipGroupCategory({
+                groupType: 'LIVE',
+              });
+              console.log(data, 'data')
+              data.forEach(liveItem => {
+                this.typeTimeList.push(liveItem.singleClassMinutes)
+              })
+            } catch (e) { }
           }
           this.baseTimer = time;
           this.maskForm.timer = time;