Ver código fonte

12/17 14:19

课表列表修复一半
mo 4 anos atrás
pai
commit
9c3b71e8a0

+ 71 - 55
src/views/teacherManager/teacherDetail/components/resetComponent.vue

@@ -5,61 +5,77 @@
       <el-table :data="tableList"
                 :header-cell-style="{background:'#EDEEF0',color:'#444'}">
         <el-table-column align="center"
-                         prop="organName"
-                         label="分部名称"></el-table-column>
-        <el-table-column align="center"
-                         width="130px"
-                         prop="musicGroupId"
-                         label="乐团/课程组编号"></el-table-column>
-        <el-table-column align="center"
-                         prop="id"
-                         label="课程编号"></el-table-column>
-        <el-table-column align="center"
-                         width="200px"
-                         label="时间">
-          <template slot-scope="scope">{{ scope.row.startClassTime ? scope.row.startClassTime.substr(0, 16) : '' }}-{{ scope.row.endClassTime ? scope.row.endClassTime.substr(11,5) : ''}}</template>
-        </el-table-column>
-        <!-- <el-table-column align="center" prop="groupName" label="乐团/VIP名"></el-table-column> -->
-        <!-- <el-table-column align="center" prop="classGroupName" label="班级名称"></el-table-column> -->
-        <el-table-column align="center"
-                         prop="studentId"
-                         label="学生ID">
-          <template slot-scope="scope">
-            <div v-if="scope.row.groupType != 'MUSIC'">{{scope.row.studentId}}</div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center"
-                         prop="subjectName"
-                         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.type | coursesType}}</div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center"
-                         label="教学模式">
-          <template slot-scope="scope">
-            <div>{{ scope.row.teachMode | teachMode}}</div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center"
-                         prop="schoolName"
-                         label="教学点">
-          <template slot-scope="scope">
-            <div>{{scope.row.schoolName?scope.row.schoolName:'网络教室'}}</div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center"
-                         prop="courseScheduleStatus"
-                         label="课程状态">
-          <template slot-scope="scope">
-            <div>{{ scope.row.status | coursesStatus }}</div>
-          </template>
-        </el-table-column>
+                           prop="organName"
+                           label="分部名称"></el-table-column>
+          <el-table-column align="center"
+                           width="130px"
+                           prop="musicGroupId"
+                           label="乐团/课程组编号"></el-table-column>
+          <el-table-column align="center"
+                           prop="id"
+                           label="课程编号"></el-table-column>
+          <el-table-column align="center"
+                           width="200px"
+                           label="上课时间">
+            <template slot-scope="scope">{{ scope.row.startClassTime ? scope.row.startClassTime.substr(0, 16) : '' }}-{{ scope.row.endClassTime ? scope.row.endClassTime.substr(11,5) : ''}}</template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="subjectName"
+                           label="声部"></el-table-column>
+          <el-table-column align="center"
+                           prop="name"
+                           label="课程名称"></el-table-column>
+          <el-table-column align="center"
+                           width="150px"
+                           label="课程类型">
+            <template slot-scope="scope">
+              <div>{{ scope.row.type | coursesType}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                           label="教学模式">
+            <template slot-scope="scope">
+              <div>{{ scope.row.teachMode | teachMode}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="schoolName"
+                           label="教学点">
+            <template slot-scope="scope">
+              <div>{{scope.row.schoolName?scope.row.schoolName:'网络教室'}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="courseScheduleStatus"
+                           label="课程状态">
+            <template slot-scope="scope">
+              <div>{{ scope.row.status | coursesStatus }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center"
+                           label="考勤申诉">
+            <template slot-scope="scope">
+              <div>{{ scope.row.isComplaints==1?'是':'否'}}</div>
+            </template>
+          </el-table-column>
+
+          <el-table-column align="center"
+                           prop="isLock"
+                           label="是否冻结">
+            <template slot-scope="scope">{{ scope.row.isLock ? '是' : '否' }}</template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="newCourseId"
+                           label="是否被合并"
+                           width="130px">
+            <template slot-scope="scope">{{ scope.row.newCourseId > 0 ? '是' : '否' }}</template>
+          </el-table-column>
+          <el-table-column align="center"
+                           prop="isCallNames"
+                           label="是否点名"
+                           fixed="right">
+            <template slot-scope="scope">{{ scope.row.isCallNames ? '是' : '否' }}</template>
+          </el-table-column>
         <el-table-column align="center"
                          label="操作"
                          fixed="right"

+ 227 - 176
src/views/teamDetail/componentCourse/resetClass.vue

@@ -1,144 +1,174 @@
 <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">
-        <el-select v-model.trim="maskForm.teacher"
-                   style="width:220px!important"
-                   @change="changeTeacher"
-                   clearable
-                   filterable>
-          <el-option v-for="(item,index) in teacherList"
-                     :key="index"
-                     :value="item.id"
-                     :label="item.realName"></el-option>
+      <el-form-item
+        label="主教老师"
+        v-if="maskForm.type == 'VIP'"
+        prop="teacher"
+      >
+        <el-select
+          v-model.trim="maskForm.teacher"
+          style="width: 220px !important"
+          @change="changeTeacher"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="(item, index) in teacherList"
+            :key="index"
+            :value="item.id"
+            :label="item.realName"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="主教老师"
-                    v-else
-                    prop="teacher">
-        <el-select v-model.trim="maskForm.teacher"
-                   style="width:220px!important"
-                   clearable
-                   filterable>
-          <el-option v-for="(item,index) in teacherList"
-                     :key="index"
-                     :value="item.id"
-                     :label="item.realName"></el-option>
+      <el-form-item label="主教老师" v-else prop="teacher">
+        <el-select
+          v-model.trim="maskForm.teacher"
+          style="width: 220px !important"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="(item, index) in teacherList"
+            :key="index"
+            :value="item.id"
+            :label="item.realName"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="助教老师"
-                    v-if="maskForm.type != 'MUSIC_NETWORK'&&maskForm.type != 'HIGH_ONLINE'&&maskForm.groupType == 'MUSIC'"
-                    prop="assistant">
-        <el-select v-model.trim="maskForm.assistant"
-                   style="width:220px!important"
-                   clearable
-                   filterable
-                   multiple
-                   collapse-tags>
-          <el-option v-for="(item,index) in teacherList"
-                     :key="index"
-                     :value="item.id"
-                     :label="item.realName"></el-option>
+      <el-form-item
+        label="助教老师"
+        v-if="
+          maskForm.type != 'MUSIC_NETWORK' &&
+          maskForm.type != 'HIGH_ONLINE' &&
+          maskForm.groupType == 'MUSIC'
+        "
+        prop="assistant"
+      >
+        <el-select
+          v-model.trim="maskForm.assistant"
+          style="width: 220px !important"
+          clearable
+          filterable
+          multiple
+          collapse-tags
+        >
+          <el-option
+            v-for="(item, index) in teacherList"
+            :key="index"
+            :value="item.id"
+            :label="item.realName"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="上课日期"
-                    prop="date">
-        <el-date-picker v-model.trim="maskForm.date"
-                        type="date"
-                        :picker-options="{
-                            firstDayOfWeek:1
-                          }"
-                        value-format="yyyy-MM-dd"
-                        placeholder="选择日期"></el-date-picker>
+      <el-form-item label="上课日期" prop="date">
+        <el-date-picker
+          v-model.trim="maskForm.date"
+          type="date"
+          :picker-options="{
+            firstDayOfWeek: 1,
+          }"
+          value-format="yyyy-MM-dd"
+          placeholder="选择日期"
+        ></el-date-picker>
       </el-form-item>
-      <el-form-item label="课程时长"
-                    prop="timer">
-        <el-input type='number'
-                  :disabled='isDisabled'
-                  style="width:220px!important"
-                  v-model="maskForm.timer">
-                     <template slot="append">分钟</template>
-                  </el-input>
+      <el-form-item label="课程时长" prop="timer">
+        <el-select v-model="maskForm.timer" @change="changeTime">
+          <el-option
+            v-for="(item, index) in typeTimeList"
+            :key="index"
+            :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="{
-                            selectableRange: '04:30:00 - 23:30:00'
-                            }"></el-time-picker>
+      <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="{
+            selectableRange: '04:30:00 - 23:30:00',
+          }"
+        ></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'
-                        :picker-options="{
-                            start: '04:30',
-                            step: '00:05',
-                            end: '23:30',
-                            minTime: maskForm.startTime
-                          }"></el-time-picker>
+      <el-form-item label="结束时间" prop="endTime">
+        <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,
+          }"
+        ></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-option label="线上课"
-                     value="ONLINE"></el-option>
-          <el-option label="线下课"
-                     value="OFFLINE"></el-option>
+      <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-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-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>
       </el-form-item>
     </el-form>
-    <div slot="footer"
-         class="dialog-footer">
+    <div slot="footer" class="dialog-footer">
       <el-button @click="$listeners.closeReset">取 消</el-button>
-      <el-button type="primary"
-                 @click="submitResetClass">确 定</el-button>
+      <el-button type="primary" @click="submitResetClass">确 定</el-button>
     </div>
   </div>
 </template>
 <script>
-import { diffTimerFormMinute, addTimerFormMinute } from '@/utils/date'
-import { getTeacher, resetCourse, getCourseScheduleDetail } from "@/api/buildTeam";
+import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
+import {
+  getTeacher,
+  resetCourse,
+  getCourseScheduleDetail,
+} from "@/api/buildTeam";
 import { getTeachSchool } from "@/api/teacherManager";
-import { getSchool } from "@/api/systemManage"
-import cleanDeep from 'clean-deep'
-import dayjs from 'dayjs';
+import { getSchool } from "@/api/systemManage";
+import cleanDeep from "clean-deep";
+import dayjs from "dayjs";
 export default {
   props: ["show", "id", "isDisabled"],
-  data () {
+  data() {
     return {
       courseVisible: false,
       maskForm: {
@@ -147,32 +177,37 @@ export default {
         date: null,
         timer: null,
         startTime: null,
-        endTime: null
+        endTime: null,
       },
       maskRules: {
         teacher: [
-          { required: true, message: "请选择主教老师名称", trigger: "blur" }
+          { required: true, message: "请选择主教老师名称", trigger: "blur" },
         ],
         date: [{ required: true, message: "请选择上课时间", trigger: "blur" }],
-        startTime: [{ required: true, message: '请选择上课开始时间', trigger: 'blur' },],
-        endTime: [{ required: true, message: '请选择上课结束时间', trigger: 'blur' },],
+        startTime: [
+          { required: true, message: "请选择上课开始时间", trigger: "blur" },
+        ],
+        endTime: [
+          { required: true, message: "请选择上课结束时间", trigger: "blur" },
+        ],
       },
       teacherList: [],
-      schoolList: []
-    }
+      schoolList: [],
+      typeTimeList: [],
+       courseTimeList:{},
+    };
   },
-  async mounted () {
-    await getTeacher().then(res => {
+  async mounted() {
+    await getTeacher().then((res) => {
       if (res.code == 200) {
         this.teacherList = res.data;
       }
     });
 
-    this.getDetail(this.id)
-
+    this.getDetail(this.id);
   },
   methods: {
-    submitResetClass () {
+    submitResetClass() {
       let maskForm = this.maskForm;
       if (!maskForm.startTime || !maskForm.endTime) {
         this.$message.error("请填写开始时间或结束时间");
@@ -181,7 +216,7 @@ export default {
       this.$confirm("是否确定?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           let teachingTeacherIdList = maskForm.assistant.join(",");
@@ -200,108 +235,124 @@ export default {
             schoolId: this.maskForm.address,
             teachMode: this.maskForm.teachMode,
           };
-          resetCourse(cleanDeep(obj)).then(res => {
+          resetCourse(cleanDeep(obj)).then((res) => {
             if (res.code == 200) {
               this.$message.success("修改成功");
-              this.$emit('getList')
-              this.$emit('closeReset')
+              this.$emit("getList");
+              this.$emit("closeReset");
               // this.getList();
               // this.courseVisible = false;
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
     typeChange() {
-      this.$set(this.maskForm, 'address', null)
+      this.$set(this.maskForm, "address", null);
     },
-    changeStartTime (val) {
-
-      this.$nextTick(res => {
+    changeStartTime(val) {
+      this.$nextTick((res) => {
         if (val) {
-          this.$set(this.maskForm, 'endTime', addTimerFormMinute(this.maskForm.date, val, this.maskForm.timer))
+          this.$set(
+            this.maskForm,
+            "endTime",
+            addTimerFormMinute(this.maskForm.date, val, this.maskForm.timer)
+          );
         } else {
-          this.$set(this.maskForm, 'endTime', '')
+          this.$set(this.maskForm, "endTime", "");
         }
-
-      })
+      });
+    },
+    changeTime(val) {
+      this.$nextTick((res) => {
+        this.maskForm.endTime = addTimerFormMinute(
+          this.maskForm.date,
+          this.maskForm.startTime,
+          val
+        );
+      });
     },
-    changeTeacher (val) {
+    changeTeacher(val) {
       if (val) {
         getTeachSchool({
-          userId: val
-        }).then(res => {
+          userId: val,
+        }).then((res) => {
           if (res.code == 200) {
             this.schoolList = res.data;
           }
-        })
-        this.maskForm.address = null
+        });
+        this.maskForm.address = null;
       }
     },
-    getDetail (id) {
-      getCourseScheduleDetail({ courseScheduleId: id }).then(res => {
+    getDetail(id) {
+      getCourseScheduleDetail({ courseScheduleId: id }).then((res) => {
         if (res.code == 200) {
           this.maskForm = {
             id: res.data.id,
             teacher: res.data.actualTeacherId,
             assistant: [],
-            date: dayjs(res.data.classDate).format('YYYY-MM-DD'),
-            startTime: dayjs(res.data.startClassTime).format('HH:mm'),
-            endTime: dayjs(res.data.endClassTime).format('HH:mm'),
+            date: dayjs(res.data.classDate).format("YYYY-MM-DD"),
+            startTime: dayjs(res.data.startClassTime).format("HH:mm"),
+            endTime: dayjs(res.data.endClassTime).format("HH:mm"),
             timer: null,
             type: res.data.type,
             groupType: res.data.groupType,
             address: res.data.schoolId,
             teachMode: res.data.teachMode,
+          };
+          for (let key in this.courseTimeList) {
+            if (key == row.courseScheduleType) {
+              this.typeTimeList = this.courseTimeList[key].split(",");
+            }
           }
           this.maskForm.assistant = res.data.teachingTeacherIdList;
-          // for (let i in res.data.teachingTeachers) {
-          //   if (res.data.teachingTeachers[i].teacherRole == "TEACHING") {
-          //     this.maskForm.assistant.push(res.data.teachingTeachers[i].userId);
-          //   }
-          // }
-          let time = diffTimerFormMinute(dayjs(res.data.classDate).format('YYYY-MM-DD'), dayjs(res.data.startClassTime).format('HH:mm'), dayjs(res.data.endClassTime).format('HH:mm'))
-          console.log(dayjs(res.data.startClassTime).format('HH:mm'))
+          let time = diffTimerFormMinute(
+            dayjs(res.data.classDate).format("YYYY-MM-DD"),
+            dayjs(res.data.startClassTime).format("HH:mm"),
+            dayjs(res.data.endClassTime).format("HH:mm")
+          );
           this.maskForm.timer = time;
-          if (this.maskForm.teacher && this.maskForm.type == 'VIP') {
+          if (this.maskForm.teacher && this.maskForm.type == "VIP") {
             getTeachSchool({
-              userId: this.maskForm.teacher
-            }).then(res => {
+              userId: this.maskForm.teacher,
+            }).then((res) => {
               if (res.code == 200) {
                 this.schoolList = res.data;
               }
-            })
+            });
           } else {
-            getSchool({ organId: res.data.organId }).then(res => {
+            getSchool({ organId: res.data.organId }).then((res) => {
               if (res.code == 200) {
                 this.schoolList = res.data;
               }
-            })
+            });
           }
         }
-      })
-    }
+      });
+    },
   },
 
   watch: {
-    id (val) {
+    id(val) {
       if (val) {
-        this.getDetail(val)
+        this.getDetail(val);
       }
     },
-    'maskForm.timer' (val) {
-      this.$nextTick(res => {
+    "maskForm.timer"(val) {
+      this.$nextTick((res) => {
         if (val) {
-          this.$set(this.maskForm, 'endTime', addTimerFormMinute(this.maskForm.date, this.maskForm.startTime, val))
+          this.$set(
+            this.maskForm,
+            "endTime",
+            addTimerFormMinute(this.maskForm.date, this.maskForm.startTime, val)
+          );
         } else {
-          this.$set(this.maskForm, 'endTime', '')
+          this.$set(this.maskForm, "endTime", "");
         }
-
-      })
-    }
-  }
-
-}
+      });
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 /deep/.dialog-footer {

+ 1 - 1
src/views/teamDetail/componentCourse/studentRollCall.vue

@@ -44,7 +44,7 @@
                          label="签到时间">
           <template slot-scope="scope">
             <div>
-              {{(scope.row.signInTime?scope.row.signInTime:scope.row.createTime) | dateForMinFormat}}
+              {{scope.row.signInTime | dateForMinFormat}}
             </div>
           </template>
         </el-table-column>

+ 0 - 6
src/views/teamDetail/components/courseList.vue

@@ -231,11 +231,6 @@
         <el-form-item label="课程时长"
                       v-if="courseVisible"
                       prop="timer">
-          <!-- <el-input type='number'
-                    disabled
-                    v-model="maskForm.timer">
-                        <template slot="append">分钟</template>
-                    </el-input> -->
           <el-select v-model="maskForm.timer" @change="changeTime">
               <el-option v-for="(item,index) in typeTimeList"
                        :key="index"
@@ -629,7 +624,6 @@ export default {
           this.typeTimeList = this.courseTimeList[key].split(',')
         }
       }
-      console.log(this.typeTimeList)
       // this.maskForm.type = row.courseScheduleType;
       this.maskForm.assistant = [];
       for (let i in row.teachingTeachers) {