Răsfoiți Sursa

修复ios日历模块修改的bug

fancy 5 ani în urmă
părinte
comite
d95a92f967

+ 4 - 0
o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarEventViewController.swift

@@ -644,6 +644,8 @@ class OOCalendarEventViewController: UITableViewController {
                 }) {
 //                    self.remindPickerView.selectRow(index, inComponent: 0, animated: true)
                     self.remindLabelView.text = self.remindOptions[index].value
+                }else {
+                    self.remindLabelView.text = self.remindOptions[0].value
                 }
             }
         }
@@ -655,6 +657,8 @@ class OOCalendarEventViewController: UITableViewController {
             }){
 //                self.repeatPickerView.selectRow(index, inComponent: 0, animated: true)
                 self.repeatLabelView.text  = self.repeatOptions[index].value
+            }else {
+                self.repeatLabelView.text  = self.repeatOptions[0].value
             }
         }
         // eventRemark.text = eventInfo?.comment

+ 30 - 3
o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarMainMonthViewController.swift

@@ -130,15 +130,15 @@ class OOCalendarMainMonthViewController: UIViewController {
                 if let all = response.wholeDayEvents {
                     DDLogInfo("全天事件。。。。\(all.count)")
                     all.forEach({ (event) in
-                        if let date = event.startTimeStr?.subString(from: 0, to: 10) {
+                        //处理连续多天的事件。。。。。
+                        let dateArray = self.splitDays(startDay: event.startTimeStr!, endDay: event.endTimeStr!)
+                        for date in dateArray {
                             if var array = result[date] {
                                 array.append(event)
                                 result[date] = array
                             }else {
                                 result[date] = [event]
                             }
-                        }else {
-                            DDLogInfo("starttime is error.................")
                         }
                     })
                 }
@@ -158,6 +158,33 @@ class OOCalendarMainMonthViewController: UIViewController {
         }
     }
     
+    /**
+     * 分割成多天
+     * @param startDay yyyy-MM-dd HH:mm:ss
+     * @param endDay yyyy-MM-dd HH:mm:ss
+     * @return [yyyy-MM-dd]
+     */
+    private func splitDays(startDay: String, endDay: String) -> [String] {
+        var ret:[String] = []
+        guard let sDay = Date.date(startDay) else {
+            return ret
+        }
+        guard let eDay = Date.date(endDay) else {
+            return ret
+        }
+        if sDay.haveSameYearMonthAndDay(eDay) {
+            ret.append(sDay.toString("yyyy-MM-dd"))
+        }else {
+            let gap = sDay.betweenDays(eDay)
+            for index in 0...gap {
+                let nDay = sDay.add(component: .day, value: index)
+                ret.append(nDay.toString("yyyy-MM-dd"))
+            }
+        }
+        
+        return ret
+    }
+    
     private func haveEventForDay(_ date:Date) -> Bool{
         guard let dict = eventsByDate else {
             return false