Prechádzať zdrojové kódy

1、营期设置看课时间和领取红包截至时间;2、公司回显不出来的问题修复

caoliqin 1 mesiac pred
rodič
commit
16915303cb
1 zmenil súbory, kde vykonal 50 pridanie a 21 odobranie
  1. 50 21
      src/views/course/userCoursePeriod/index.vue

+ 50 - 21
src/views/course/userCoursePeriod/index.vue

@@ -219,7 +219,7 @@
 
     <!-- 添加或修改会员营期对话框-->
     <el-drawer :title="title" :visible.sync="open" width="700px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" style="padding-bottom: 55px">
         <el-form-item label="营期名称" prop="periodName">
           <el-input v-model="form.periodName" placeholder="请输入营期名称" />
         </el-form-item>
@@ -272,24 +272,27 @@
           </el-date-picker>
         </el-form-item>
 
-<!--        <div v-if="form.periodType == 1">-->
-<!--          <el-form-item label="开课时间" prop="periodType">-->
-<!--            <el-radio-group v-model="form.periodType">-->
-<!--              <el-radio :label="1" >多课程</el-radio>-->
-<!--              <el-radio :label="2" >单课程</el-radio>-->
-<!--            </el-radio-group>-->
-<!--          </el-form-item>-->
-<!--          <el-form-item :label="'第' + item.lesson + '节'" prop="periodStartingTime" v-for="item in form.days">-->
-<!--            <el-date-picker-->
-<!--              v-model="item.dateRange"-->
-<!--              type="datetimerange"-->
-<!--              range-separator="至"-->
-<!--              start-placeholder="开始日期"-->
-<!--              end-placeholder="结束日期"-->
-<!--              value-format="yyyy-MM-dd HH:mm:ss">-->
-<!--            </el-date-picker>-->
-<!--          </el-form-item>-->
-<!--        </div>-->
+        <el-form-item label="看课时间" prop="timeRange">
+          <el-time-picker
+            is-range
+            v-model="form.timeRange"
+            @input="$forceUpdate()"
+            range-separator="至"
+            start-placeholder="开始时间"
+            value-format="HH:mm:ss"
+            end-placeholder="结束时间"
+            placeholder="选择时间范围">
+          </el-time-picker>
+        </el-form-item>
+        <el-form-item label="领取红包时间" prop="lastJoinTime">
+          <el-time-picker
+            v-model="form.lastJoinTime"
+            :selectableRange="form.lastJoinTime"
+            value-format="HH:mm:ss"
+            placeholder="选择时间范围">
+          </el-time-picker>
+          <p style="color: red;margin: 0;font-size: 12px">超过领取红包时间,只允许看课,不允许领取红包</p>
+        </el-form-item>
       </el-form>
       <div class="drawer-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -336,7 +339,7 @@
 <!--      </div>-->
 <!--    </el-dialog>-->
 
-    <!-- 添加或修改会员营期对话框-->
+    <!-- 添加课程对话框-->
     <el-dialog title="添加课程" :visible.sync="course.addOpen" width="500px" append-to-body>
       <el-form ref="courseAddForm" :model="course.form" label-width="100px">
         <el-form-item label="课程" prop="courseId">
@@ -401,6 +404,7 @@
           <el-table v-loading="course.loading" :data="course.list">
             <el-table-column label="课程" align="center" prop="courseName" width="180" />
             <el-table-column label="小节" align="center" prop="videoName" />
+            <el-table-column label="开课状态" align="center" prop="status" width="100" :formatter="courseStatusFormatter" />
             <el-table-column label="营期时间" align="center" prop="dayDate" width="150" />
             <el-table-column label="创建时间" align="center" prop="createTime" width="150" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -669,6 +673,13 @@ export default {
       const periodId = row.periodId || this.ids
       getPeriod(periodId).then(response => {
         this.form = response.data;
+        if (this.form.companyId) {
+          this.form.companyId = this.form.companyId.split(',').map(id => Number(id));
+        }
+        // 设置看课时间范围(回显)
+        if (this.form.viewStartTime && this.form.viewEndTime) {
+          this.form.timeRange = [this.form.viewStartTime, this.form.viewEndTime];
+        }
         if(this.form.periodType == 1){
           this.form.dateRange = [this.form.periodStartingTime, this.form.periodEndTime];
         }
@@ -684,6 +695,11 @@ export default {
       this.$refs["form"].validate(valid => {
         if (valid) {
           let data = JSON.parse(JSON.stringify(this.form));
+          // 处理看课时间范围
+          if (data.timeRange && data.timeRange.length === 2) {
+            data.viewStartTime = data.timeRange[0];
+            data.viewEndTime = data.timeRange[1];
+          }
           data.companyId = data.companyId.join()
           data.trainingCampId = this.queryParams.trainingCampId
           if (data.periodId != null) {
@@ -788,7 +804,11 @@ export default {
         dateRange: [],
         date: null,
         days: [],
-        periodEndTime: null
+        periodEndTime: null,
+        timeRange: [], // 看课时间范围
+        viewStartTime: null, // 看课开始时间
+        viewEndTime: null, // 看课结束时间
+        lastJoinTime: null // 领取红包时间
       };
       this.resetForm("form");
     },
@@ -1234,6 +1254,15 @@ export default {
       };
       return statusMap[row.periodStatus] || '未知状态';
     },
+    /** 开课状态格式化 */
+    courseStatusFormatter(row) {
+      const statusMap = {
+        0: '未开始',
+        1: '进行中',
+        2: '已结束'
+      };
+      return statusMap[row.status] || '未知状态';
+    },
   },
 };
 </script>