Browse Source

添加排课开始时间限制

1
mo 2 years ago
parent
commit
8eeb937d87

+ 162 - 143
src/views/activeCourseArrange/modal/course.vue

@@ -1,160 +1,179 @@
 <template>
-    <van-picker
-        :columns="columns"
-        show-toolbar
-        @cancel="$listeners.close()"
-        @confirm="onTeachingConfirm"
-    />
+  <van-picker
+    :columns="columns"
+    show-toolbar
+    @cancel="$listeners.close()"
+    @confirm="onTeachingConfirm"
+  />
 </template>
 
 <script>
 let minutes = []; // 分钟数
 for (let i = 0; i < 60; i++) {
-    let mi = i < 10 ? "0" + i : i;
-    minutes.push(mi + "分");
+  let mi = i < 10 ? "0" + i : i;
+  minutes.push(mi + "分");
 }
 export default {
-    props: ['scheduleList', 'singleClassMinutes'],
-    data() {
-        return {
-            // 排课弹窗
-            columns: [{
-                // 课程选项
-                values: ["线上", "线下"],
-                className: "type",
-            }, {
-                values: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
-                className: "week",
-            }, {
-                values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
-                className: "hours",
-                defaultIndex: 7,
-            }, {
-                values: minutes,
-                className: "minutes",
-            }],
-        }
+  props: ["scheduleList", "singleClassMinutes"],
+  data() {
+    return {
+      // 排课弹窗
+      columns: [
+        {
+          // 课程选项
+          values: ["线上", "线下"],
+          className: "type",
+        },
+        {
+          values: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
+          className: "week",
+        },
+        {
+          values: [
+            1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+            20, 21, 22, 23,
+          ],
+          className: "hours",
+          defaultIndex: 7,
+        },
+        {
+          values: minutes,
+          className: "minutes",
+        },
+      ],
+    };
+  },
+  watch: {
+    singleClassMinutes() {
+      this.scheduleList = [];
     },
-    watch: {
-        'singleClassMinutes'() {
-            this.scheduleList = []
+  },
+  methods: {
+    onTeachingConfirm(value) {
+      // 添加课程
+      let scheduleList = this.scheduleList;
+      let startTime =
+        (value[2] >= 10 ? value[2] : "0" + value[2]) +
+        ":" +
+        value[3].split("分")[0];
+      let endTime = this.MinutesTest(
+        value[2],
+        value[3],
+        this.singleClassMinutes
+      );
+
+      let isAdd = true;
+      scheduleList.forEach((item) => {
+        let isStartTime = this.timeIsRange(startTime, endTime, item.startTime);
+        let isEndTime = this.timeIsRange(startTime, endTime, item.endTime);
+        if (isAdd) {
+          if (value[1] == item.weekStr) {
+            if (isStartTime || isEndTime) {
+              isAdd = false;
+            } else {
+              isAdd = true;
+            }
+          } else if (value[1] != item.weekStr) {
+            isAdd = true;
+          }
         }
-    },
-    methods: {
-        onTeachingConfirm(value) {
-            // 添加课程
-            let scheduleList = this.scheduleList;
-            let startTime =
-                (value[2] >= 10 ? value[2] : "0" + value[2]) +
-                ":" +
-                value[3].split("分")[0];
-            let endTime = this.MinutesTest(
-                value[2],
-                value[3],
-                this.singleClassMinutes
-            );
+      });
 
-            let isAdd = true;
-            scheduleList.forEach((item) => {
-                let isStartTime = this.timeIsRange(startTime, endTime, item.startTime);
-                let isEndTime = this.timeIsRange(startTime, endTime, item.endTime);
-                if (isAdd) {
-                    if (value[1] == item.weekStr) {
-                        if (isStartTime || isEndTime) {
-                            isAdd = false;
-                        } else {
-                            isAdd = true;
-                        }
-                    } else if (value[1] != item.weekStr) {
-                        isAdd = true;
-                    }
-                }
-            });
+      // 判断结束时间
+      const endTime1 = endTime ? Number(endTime.split(":")[0]) : 0;
+      const endTime2 = endTime ? Number(endTime.split(":")[1]) : 0;
+      if (endTime1 >= 21 && endTime2 > 0) {
+        this.$toast("课程安排结束时间不可超过21:00");
+        return;
+      }
 
-            // 判断结束时间
-            const endTime1 = endTime ? Number(endTime.split(":")[0]) : 0
-            const endTime2 = endTime ? Number(endTime.split(":")[1]) : 0
-            if(endTime1 >= 21 && endTime2 > 0) {
-                this.$toast("课程安排结束时间不可超过21:00");
-                return;
-            }
+      const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
 
-            if (isAdd) {
-                // 判断时间范围是否有重复
-                scheduleList.push({
-                    type: value[0], // 线上还是线下
-                    weekStr: value[1],
-                    weekIndex: this.getWeek(value[1]),
-                    startTime: startTime,
-                    endTime: endTime,
-                    id: Date.now(),
-                });
+      if (isAdd) {
+        // 判断时间范围是否有重复
+        scheduleList.push({
+          type: value[0], // 线上还是线下
+          weekStr: value[1],
+          weekIndex: this.getWeek(value[1]),
+          startTime: startTime,
+          endTime: endTime,
+          id: Date.now(),
+        });
 
-                // this.courseForm.teachingStatus = false;
-                this.$listeners.close()
+        // this.courseForm.teachingStatus = false;
+        this.$listeners.close();
 
-                // this.setTimeTable();
-            } else {
-                this.$toast("该时间段已排课请重选时间");
-                return;
-            }
-        },
-        // 分钟小时相加减
-        MinutesTest(hour, mins, interval) {
-            let min = mins.split("分")[0];
-            let sDate1 = new Date(1900, 1, 1, hour, min);
-            sDate1.setMinutes(sDate1.getMinutes() + parseInt(interval));
-            let H = sDate1.getHours();
-            let M = sDate1.getMinutes();
-            if (H < 10) H = "0" + H;
-            if (M < 10) M = "0" + M;
-            return H + ":" + M;
-        },
-        // 判断时间是否在时间段内
-        timeIsRange(beginTime, endTime, nowTime) {
-            var strB = beginTime.split(":");
-            if (strB.length != 2) {
-                return false;
-            }
-            var strE = endTime.split(":");
-            if (strE.length != 2) {
-                return false;
-            }
-            var strN = nowTime.split(":");
-            if (strE.length != 2) {
-                return false;
-            }
-            var b = new Date();
-            var e = new Date();
-            var n = new Date();
-            b.setHours(strB[0]);
-            b.setMinutes(strB[1]);
-            e.setHours(strE[0]);
-            e.setMinutes(strE[1]);
-            n.setHours(strN[0]);
-            n.setMinutes(strN[1]);
+        // this.setTimeTable();
+      } else {
+        this.$toast("该时间段已排课请重选时间");
+        return;
+      }
+    },
+    // 分钟小时相加减
+    MinutesTest(hour, mins, interval) {
+      let min = mins.split("分")[0];
+      let sDate1 = new Date(1900, 1, 1, hour, min);
+      sDate1.setMinutes(sDate1.getMinutes() + parseInt(interval));
+      let H = sDate1.getHours();
+      let M = sDate1.getMinutes();
+      if (H < 10) H = "0" + H;
+      if (M < 10) M = "0" + M;
+      return H + ":" + M;
+    },
+    // 判断时间是否在时间段内
+    timeIsRange(beginTime, endTime, nowTime) {
+      var strB = beginTime.split(":");
+      if (strB.length != 2) {
+        return false;
+      }
+      var strE = endTime.split(":");
+      if (strE.length != 2) {
+        return false;
+      }
+      var strN = nowTime.split(":");
+      if (strE.length != 2) {
+        return false;
+      }
+      var b = new Date();
+      var e = new Date();
+      var n = new Date();
+      b.setHours(strB[0]);
+      b.setMinutes(strB[1]);
+      e.setHours(strE[0]);
+      e.setMinutes(strE[1]);
+      n.setHours(strN[0]);
+      n.setMinutes(strN[1]);
 
-            if (n.getTime() - b.getTime() >= 0 && n.getTime() - e.getTime() <= 0) {
-                // 在时间范围内
-                return true;
-            } else {
-                // 不在时间范围内
-                return false;
-            }
-        },
-        getWeek(str) {
-            // 获取周几索引值
-            let template = {
-                '周一': 1,
-                '周二': 2,
-                '周三': 3,
-                '周四': 4,
-                '周五': 5,
-                '周六': 6,
-                '周日': 0,
-            };
-            return template[str];
-        },
-    }
-}
+      if (n.getTime() - b.getTime() >= 0 && n.getTime() - e.getTime() <= 0) {
+        // 在时间范围内
+        return true;
+      } else {
+        // 不在时间范围内
+        return false;
+      }
+    },
+    getWeek(str) {
+      // 获取周几索引值
+      let template = {
+        周一: 1,
+        周二: 2,
+        周三: 3,
+        周四: 4,
+        周五: 5,
+        周六: 6,
+        周日: 0,
+      };
+      return template[str];
+    },
+  },
+};
 </script>

+ 11 - 0
src/views/activeProgram/modal/course.vue

@@ -79,6 +79,17 @@ export default {
                 return;
             }
 
+            const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
+
             if (isAdd) {
                 // 判断时间范围是否有重复
                 scheduleList.push({

+ 10 - 0
src/views/applyActive/components/theoryCourse.vue

@@ -617,6 +617,16 @@ export default {
                 this.$toast("课程安排结束时间不可超过21:00");
                 return;
             }
+            const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
 
             if (isAdd) {
                 // 判断时间范围是否有重复

+ 11 - 1
src/views/applyActive/components/vipCourse.vue

@@ -969,7 +969,17 @@ export default {
           this.$toast("课程安排结束时间不可超过21:00");
           return;
       }
-
+      const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
+      
       if (isAdd) {
         // 判断时间范围是否有重复
         scheduleList.push({

+ 24 - 0
src/views/teacher/PeriodAdjust.vue

@@ -296,6 +296,30 @@ export default {
         this.$toast("课时调整不允许跨天调整");
         return;
       }
+
+      console.log(
+        this.getDateInfo(currentStartDate),
+        this.getDateInfo(currentEndDate)
+      );
+      let currentStartDateStr =  this.getDateInfo(currentStartDate)
+      let currentEndDateStr =  this.getDateInfo(currentEndDate)
+
+      const endTime1 = currentEndDateStr ? Number(currentEndDateStr.split(":")[0]) : 0;
+      const endTime2 = currentEndDateStr ? Number(currentEndDateStr.split(":")[1]) : 0;
+      if (endTime1 >= 21 && endTime2 > 0) {
+        this.$toast("课程安排结束时间不可超过21:00");
+        return;
+      }
+      const starTime1 = currentStartDateStr ? Number(currentStartDateStr.split(":")[0]) : 0;
+      const starTime2 = currentStartDateStr ? Number(currentStartDateStr.split(":")[1]) : 0;
+      if (starTime1 <6 || (starTime1 ==6  && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
+      
+
+
+
       classStartDateAdjust({
         actualTeacherId: selectDate.actualTeacherId,
         id: this.radioSelect,

+ 10 - 0
src/views/teacher/VIP00Apply.vue

@@ -1239,6 +1239,16 @@ export default {
           this.$toast("课程安排结束时间不可超过21:00");
           return;
       }
+      const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
 
       if (isAdd) {
         // 判断时间范围是否有重复

+ 10 - 1
src/views/teacher/VIP11Apply.vue

@@ -1045,7 +1045,16 @@ export default {
           this.$toast("课程安排结束时间不可超过21:00");
           return;
       }
-
+      const starTime1 = startTime
+        ? Number(startTime.split(":")[0])
+        : 0;
+      const starTime2 = startTime
+        ? Number(startTime.split(":")[1])
+        : 0;
+      if (starTime1 < 6 || (starTime1 == 6 && starTime2 <= 30)) {
+        this.$toast("课程安排开始时间不可早于06:30");
+        return;
+      }
       if (isAdd) {
         // 判断时间范围是否有重复
         scheduleList.push({

+ 93 - 61
src/views/visitManager/afterVisitList.vue

@@ -1,8 +1,13 @@
 <template>
   <div class="visitList">
     <!-- <m-header v-if="headerStatus" /> -->
-    <van-dropdown-menu  :close-on-click-outside="false" active-color="#01C1B5">
-      <van-dropdown-item v-model="value1" @change="onTypeChange" title="回访类型" :options="option1" />
+    <van-dropdown-menu :close-on-click-outside="false" active-color="#01C1B5">
+      <van-dropdown-item
+        v-model="value1"
+        @change="onTypeChange"
+        title="回访类型"
+        :options="option1"
+      />
       <van-dropdown-item
         v-model="value2"
         @change="onPurposeChange"
@@ -17,19 +22,35 @@
         :options="option3"
       />
       <van-dropdown-item title="回访时间" ref="item" class="visitTime">
-        <van-cell title="开始时间" is-link @click="onChangeDate('showStart')" :value="formatStartTime"></van-cell>
-        <van-cell title="结束时间" is-link @click="onChangeDate('showEnd')" :value="formatEndTime"></van-cell>
+        <van-cell
+          title="开始时间"
+          is-link
+          @click="onChangeDate('showStart')"
+          :value="formatStartTime"
+        ></van-cell>
+        <van-cell
+          title="结束时间"
+          is-link
+          @click="onChangeDate('showEnd')"
+          :value="formatEndTime"
+        ></van-cell>
         <div class="btnWrap">
           <div class="cancelBtn" @click="cancelBtn">重置</div>
           <div class="okBtn" @click="okBtn">确定</div>
         </div>
       </van-dropdown-item>
     </van-dropdown-menu>
-    <van-popup v-model="dataForm.status" position="bottom" :style="{ height: '40%' }">
+    <van-popup
+      v-model="dataForm.status"
+      position="bottom"
+      :style="{ height: '40%' }"
+    >
       <van-datetime-picker
         v-model="dataForm.currentDate"
         :min-date="dataForm.minDate"
         :max-date="dataForm.maxDate"
+        :min-hour="6"
+        :max-hour="21"
         :formatter="formatter"
         @cancel="dataForm.status = false"
         type="date"
@@ -53,7 +74,7 @@
         @click="onHref(item)"
       >
         <template slot="title">
-          <p >{{ item.type }}</p>
+          <p>{{ item.type }}</p>
           <p class="type">{{ item.studentName }}</p>
         </template>
         <template solt="default">
@@ -68,7 +89,7 @@
 </template>
 <script>
 import MHeader from "@/components/MHeader";
-import MEmpty from '@/components/MEmpty';
+import MEmpty from "@/components/MEmpty";
 import dayjs from "dayjs";
 import { browser } from "@/common/common";
 import { geteduVisitList } from "@/api/teacher";
@@ -88,7 +109,7 @@ export default {
       },
       value1: "全部",
       value2: "全部",
-      value3:'全部',
+      value3: "全部",
       purposeStatus: true,
       option1: [
         { text: "全部", value: "全部" },
@@ -98,7 +119,7 @@ export default {
         { text: "其它", value: "其它" },
       ],
       option2: [],
-      option3:[
+      option3: [
         { text: "全部", value: "全部" },
         { text: "已解决", value: "1" },
         { text: "待跟进", value: "0" },
@@ -128,7 +149,7 @@ export default {
     if (browser().android || browser().iPhone) {
       this.headerStatus = false;
     }
-    document.title = '回访记录'
+    document.title = "回访记录";
     // this.getList()
   },
   methods: {
@@ -138,58 +159,66 @@ export default {
       this.dataShow = true;
       this.loading = true;
       this.finished = false;
-      this.getList()
+      this.getList();
     },
     onHref(item) {
       this.$router.push({
-        path: '/addVisit',
+        path: "/addVisit",
         query: {
           id: item.id,
-          name: '回访记录详情'
-        }
-      })
+          name: "回访记录详情",
+        },
+      });
     },
     cancelBtn() {
       this.formatStartTime = null;
       this.formatEndTime = null;
-      this.onResetList()
+      this.onResetList();
       this.$refs.item.toggle();
     },
     okBtn() {
-      if(this.formatStartTime && this.formatEndTime) {
-        this.onResetList()
+      if (this.formatStartTime && this.formatEndTime) {
+        this.onResetList();
       }
       this.$refs.item.toggle();
     },
     onChangeDate(type) {
-      let dataForm = this.dataForm
-      if(type == 'showEnd') {
-        if(this.formatStartTime) {
-          dataForm.minDate = new Date(dayjs(this.formatStartTime))
+      let dataForm = this.dataForm;
+      if (type == "showEnd") {
+        if (this.formatStartTime) {
+          dataForm.minDate = new Date(dayjs(this.formatStartTime));
         }
         setTimeout(() => {
-          dataForm.currentDate = this.formatEndTime ? new Date(dayjs(this.formatEndTime)) : new Date()
-        }, 500)
-      } else if(type == 'showStart') {
-        dataForm.minDate = new Date(2000, 0, 1)
+          dataForm.currentDate = this.formatEndTime
+            ? new Date(dayjs(this.formatEndTime))
+            : new Date();
+        }, 500);
+      } else if (type == "showStart") {
+        dataForm.minDate = new Date(2000, 0, 1);
         setTimeout(() => {
-          dataForm.currentDate = this.formatStartTime ? new Date(dayjs(this.formatStartTime)) : new Date()
-        }, 500)
+          dataForm.currentDate = this.formatStartTime
+            ? new Date(dayjs(this.formatStartTime))
+            : new Date();
+        }, 500);
       }
-      dataForm.status = true
-      dataForm.type = type
+      dataForm.status = true;
+      dataForm.type = type;
     },
     chioseDate(value) {
-      let dataForm = this.dataForm
-      if(dataForm.type == 'showStart') {
-        this.formatStartTime = dayjs(value).format('YYYY/MM/DD')
-        if(this.formatEndTime && dayjs(value).unix() > dayjs(this.formatEndTime).unix()) {
-          this.formatEndTime = null
+      console.log(value, "chioseDate");
+      let dataForm = this.dataForm;
+      if (dataForm.type == "showStart") {
+        this.formatStartTime = dayjs(value).format("YYYY/MM/DD");
+        if (
+          this.formatEndTime &&
+          dayjs(value).unix() > dayjs(this.formatEndTime).unix()
+        ) {
+          this.formatEndTime = null;
         }
-      } else if(dataForm.type == 'showEnd') {
-        this.formatEndTime = dayjs(value).format('YYYY/MM/DD')
+      } else if (dataForm.type == "showEnd") {
+        this.formatEndTime = dayjs(value).format("YYYY/MM/DD");
       }
-      dataForm.status = false
+      dataForm.status = false;
     },
     onTypeChange() {
       if (this.value1 == "全部") {
@@ -217,22 +246,26 @@ export default {
         this.purposeStatus = false;
         this.option2 = [{ text: "其它", value: "其它" }];
       }
-      this.onResetList()
+      this.onResetList();
     },
     onPurposeChange() {
-      this.onResetList()
+      this.onResetList();
     },
     getList() {
       let params = this.params;
       params.type = this.value1 == "全部" ? null : this.value1;
       params.purpose = this.value2 == "全部" ? null : this.value2;
       params.probStatus = this.value3 == "全部" ? null : this.value3;
-      if(this.formatStartTime && this.formatEndTime) {
-        params.startTime = dayjs(new Date(this.formatStartTime)).format("YYYY-MM-DD")
-        params.endTime = dayjs(new Date(this.formatEndTime)).format("YYYY-MM-DD")
+      if (this.formatStartTime && this.formatEndTime) {
+        params.startTime = dayjs(new Date(this.formatStartTime)).format(
+          "YYYY-MM-DD"
+        );
+        params.endTime = dayjs(new Date(this.formatEndTime)).format(
+          "YYYY-MM-DD"
+        );
       } else {
-        params.startTime = null
-        params.endTime = null
+        params.startTime = null;
+        params.endTime = null;
       }
       geteduVisitList(params).then((res) => {
         let result = res.data;
@@ -260,8 +293,8 @@ export default {
       this.$router.push({
         path: "/addVisit",
         query: {
-          name: '新增回访记录'
-        }
+          name: "新增回访记录",
+        },
       });
     },
     formatter(type, val) {
@@ -283,8 +316,8 @@ export default {
 .visitList {
   min-height: 100vh;
   .visitTime {
-    .van-cell__right-icon{
-      line-height: .36rem;
+    .van-cell__right-icon {
+      line-height: 0.36rem;
     }
   }
 }
@@ -294,20 +327,20 @@ export default {
   line-height: 0.2rem;
   position: relative;
   top: 0.05rem;
-} 
+}
 .cellGroup {
   display: flex;
   align-items: center;
-  line-height: .61rem;
+  line-height: 0.61rem;
 }
 /deep/.van-dropdown-menu__title {
-  font-size: .14rem!important;
+  font-size: 0.14rem !important;
 }
 .sectionTitle {
-  font-size: 0.15rem!important;
+  font-size: 0.15rem !important;
   color: #1a1a1a;
   align-items: center;
-  line-height: .21rem;
+  line-height: 0.21rem;
   .type {
     color: #666;
     font-size: 0.14rem;
@@ -320,8 +353,8 @@ export default {
   justify-content: space-between;
   align-items: center;
   height: auto !important;
-  .time{
-    font-size: .14rem;
+  .time {
+    font-size: 0.14rem;
     color: #808080;
   }
   .content {
@@ -379,10 +412,9 @@ export default {
   color: @mColor;
   box-shadow: 0 2px 12px rgba(100, 101, 102, 0.12);
 }
-.van-cell{
-    color: #1A1A1A;
-    line-height: .36rem!important;
-    font-size: .16rem;
+.van-cell {
+  color: #1a1a1a;
+  line-height: 0.36rem !important;
+  font-size: 0.16rem;
 }
-
 </style>