Explorar el Código

refactor: rules for weekly event conversion to once event

Casper Dai hace 3 años
padre
commit
e5840d4601
Se han modificado 1 ficheros con 17 adiciones y 13 borrados
  1. 17 13
      src/components/EventPicker/index.vue

+ 17 - 13
src/components/EventPicker/index.vue

@@ -371,20 +371,16 @@ export default {
       })
       return null
     },
-    isOnceSame () {
-      const { freq, byDay, startTime, endTime } = this.eventOptions
-      return freq === EventFreq.WEEKLY && byDay.length === 7 && startTime === '00:00:00' && endTime === '00:00:00'
-    },
-    createOnceEvent () {
-      const { start, until } = this.eventOptions
-      return {
-        priority: this.priority,
-        freq: EventFreq.ONCE,
-        start, until
-      }
-    },
     createWeeklyEvent () {
       const { start, until, byDay, startTime, endTime } = this.eventOptions
+      if (byDay.length === 7 && startTime === endTime) {
+        return {
+          priority: this.priority,
+          freq: EventFreq.ONCE,
+          start: start.replace(/\d{2}:\d{2}:\d{2}$/, startTime),
+          until: until.replace(/\d{2}:\d{2}:\d{2}$/, startTime)
+        }
+      }
       const byDayValue = byDay.join(',')
       const isOver = isOverDay({ startTime, endTime })
       const startWeek = new Date(start).getDay()
@@ -404,6 +400,14 @@ export default {
       }
       return event
     },
+    createOnceEvent () {
+      const { start, until } = this.eventOptions
+      return {
+        priority: this.priority,
+        freq: EventFreq.ONCE,
+        start, until
+      }
+    },
     createCountEvent () {
       const { start, count } = this.eventOptions
       const { duration } = this.eventTarget
@@ -422,7 +426,7 @@ export default {
       return { ...eventTarget }
     },
     createEvent () {
-      if (this.isWeekly && !this.isOnceSame()) {
+      if (this.isWeekly) {
         return this.createWeeklyEvent()
       }
       if (this.isCount) {