Procházet zdrojové kódy

通讯录选择器更新,会议管理的一些bug,登录方式可切换,聊天模块的一些bug

fancy před 6 roky
rodič
revize
8f25dde00c
100 změnil soubory, kde provedl 739 přidání a 309 odebrání
  1. 211 269
      o2ios/O2Platform.xcodeproj/project.pbxproj
  2. 0 0
      o2ios/O2Platform/App/Applications/apps.storyboard
  3. 2 2
      o2ios/O2Platform/App/Applications/c/MailViewController.swift
  4. 0 0
      o2ios/O2Platform/App/Applications/c/O2AppViewController.swift
  5. 0 0
      o2ios/O2Platform/App/Applications/c/OOAppEditController.swift
  6. 0 0
      o2ios/O2Platform/App/Applications/m/O2App.swift
  7. 0 0
      o2ios/O2Platform/App/Applications/v/O2CollectionView.swift
  8. 0 0
      o2ios/O2Platform/App/Applications/v/O2CollectionViewCell.swift
  9. 0 0
      o2ios/O2Platform/App/Applications/v/OOAppEditCell.swift
  10. 0 0
      o2ios/O2Platform/App/Applications/v/OOAppMainCollectionHeaderView.swift
  11. 0 0
      o2ios/O2Platform/App/Applications/v/OOAppMainCollectionHeaderView.xib
  12. 0 0
      o2ios/O2Platform/App/Applications/v/OOAppMainCollectionReusableView.swift
  13. 0 0
      o2ios/O2Platform/App/BBS-论坛/bbs.storyboard
  14. 0 0
      o2ios/O2Platform/App/BBS-论坛/c/BBSReplySubjectViewController.swift
  15. 0 0
      o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectContentViewController.swift
  16. 4 5
      o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectCreateTableViewController.swift
  17. 0 0
      o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectDetailViewController.swift
  18. 0 0
      o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectListViewController.swift
  19. 0 0
      o2ios/O2Platform/App/BBS-论坛/c/BSSMainViewController.swift
  20. 0 0
      o2ios/O2Platform/App/BBS-论坛/m/OOBBSModels.swift
  21. 0 0
      o2ios/O2Platform/App/BBS-论坛/m/bbsModel.swift
  22. 0 0
      o2ios/O2Platform/App/BBS-论坛/v/BBSForumCell.swift
  23. 0 0
      o2ios/O2Platform/App/BBS-论坛/v/BBSHeaderCollectionReusableView.swift
  24. 0 0
      o2ios/O2Platform/App/BBS-论坛/v/SubjectTableViewCell.swift
  25. 13 13
      o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarEventViewController.swift
  26. 3 3
      o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarLeftMenuController.swift
  27. 4 4
      o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarMainMonthViewController.swift
  28. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarViewController.swift
  29. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/Model/OOCalendarModels.swift
  30. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/View/CalendarEventTableViewCell.swift
  31. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/View/CalendarTableViewCell.swift
  32. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/View/DatePickerView.swift
  33. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/View/DatePickerView.xib
  34. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/ViewModel/OOCalendarViewModel.swift
  35. 0 0
      o2ios/O2Platform/App/Calendar-日程管理/calendar.storyboard
  36. 0 0
      o2ios/O2Platform/App/Cms-内容管理/c/CMSApplicationTableViewController.swift
  37. 0 0
      o2ios/O2Platform/App/Cms-内容管理/c/CMSCategoryListViewController.swift
  38. 0 0
      o2ios/O2Platform/App/Cms-内容管理/c/CMSCreateDocViewController.swift
  39. 6 6
      o2ios/O2Platform/App/Cms-内容管理/c/CMSItemDetailViewController.swift
  40. 1 1
      o2ios/O2Platform/App/Cms-内容管理/c/CMSQLViewController.swift
  41. 0 0
      o2ios/O2Platform/App/Cms-内容管理/information.storyboard
  42. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSApplication.swift
  43. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSAttachmentInfoResponse.swift
  44. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSCategory.swift
  45. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSCategoryData.swift
  46. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSCategoryItemData.swift
  47. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSData.swift
  48. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfo.swift
  49. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfo.temp_caseinsensitive_rename.swift
  50. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfoData.swift
  51. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSSingleApplication.swift
  52. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/CMSWrapOutCategoryList.swift
  53. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/O2InformationModels.swift
  54. 0 0
      o2ios/O2Platform/App/Cms-内容管理/m/O2InformationParameters.swift
  55. 0 0
      o2ios/O2Platform/App/Cms-内容管理/v/CMSCategoryItemCell.swift
  56. 0 0
      o2ios/O2Platform/App/Cms-内容管理/v/CMSItemTableViewCell.swift
  57. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Contacts_new.storyboard
  58. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/ContactGroupPickerViewController.swift
  59. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/ContactIdentityPickerViewController.swift
  60. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/ContactPersonPickerViewController.swift
  61. 4 4
      o2ios/O2Platform/App/Contact-通讯录/Controller/ContactPickerViewController.swift
  62. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/ContactUnitPickerViewController.swift
  63. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOContactMainViewController.swift
  64. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOContactSearchResultController.swift
  65. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOLinkeManViewController.swift
  66. 1 1
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOListUnitViewController.swift
  67. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOPersonsViewController.swift
  68. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOPersonsViewController.xib
  69. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Controller/OOUISearchController.swift
  70. 0 0
      o2ios/O2Platform/App/Contact-通讯录/Model/OOContactModel.swift
  71. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/GroupPickerTableViewCell.swift
  72. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOCDLCell.swift
  73. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactGroupHeaderView.swift
  74. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactGroupHeaderView.xib
  75. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactPersonCell.swift
  76. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactPersonCell.xib
  77. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchCell.swift
  78. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchSectionHeaderView.swift
  79. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchSectionHeaderView.xib
  80. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactUnitHeader.swift
  81. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOContactUnitHeader.xib
  82. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManCell.swift
  83. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoCell.swift
  84. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoHeader.swift
  85. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoHeader.xib
  86. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOPersonCollectionViewCell.swift
  87. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOPersonCollectionViewCell.xib
  88. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOSelectPersonTableViewCell.swift
  89. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/OOSelectPersonTableViewCell.xib
  90. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/PersonPickerTableViewCell.swift
  91. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/UnitBreadcrumbViewCell.swift
  92. 0 0
      o2ios/O2Platform/App/Contact-通讯录/View/UnitPickerTableViewCell.swift
  93. 0 0
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/ContactPickerViewModel.swift
  94. 0 0
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOContactSearchViewModel.swift
  95. 1 1
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOContactViewModel.swift
  96. 0 0
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOLinkManViewModel.swift
  97. 0 0
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOListUnitViewModel.swift
  98. 0 0
      o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOPersonListViewModel.swift
  99. 396 0
      o2ios/O2Platform/App/File-云盘/CloudFile.storyboard
  100. 93 0
      o2ios/O2Platform/App/File-云盘/c/CloudFileShareViewController.swift

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 211 - 269
o2ios/O2Platform.xcodeproj/project.pbxproj


+ 0 - 0
o2ios/O2Platform/storyboard/apps.storyboard → o2ios/O2Platform/App/Applications/apps.storyboard


+ 2 - 2
o2ios/O2Platform/apps/c/MailViewController.swift → o2ios/O2Platform/App/Applications/c/MailViewController.swift

@@ -30,14 +30,14 @@ class MailViewController: BaseWebViewUIViewController {
             self.navigationItem.leftBarButtonItems = []
         }else {
             self.title = MailViewController.app!.title!
-            let closeBtn = UIButton(frame: CGRect(x: 0, y: 0, w: 30, h: 30))
+            let closeBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
             closeBtn.setImage(UIImage(named: "icon_off_white2"), for: .normal)
             closeBtn.addTapGesture { (tap) in
                 self.navigationController?.dismiss(animated: true, completion: nil)
             }
             let closeItem = UIBarButtonItem(customView: closeBtn)
             
-            let backBtn = UIButton(frame: CGRect(x: 0, y: 0, w: 30, h: 30))
+            let backBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
             backBtn.setImage(UIImage(named: "icon_fanhui"), for: .normal)
             backBtn.addTapGesture { (tap) in
                 self.goBack(isBackBtn: true)

+ 0 - 0
o2ios/O2Platform/apps/c/O2AppViewController.swift → o2ios/O2Platform/App/Applications/c/O2AppViewController.swift


+ 0 - 0
o2ios/O2Platform/apps/c/OOAppEditController.swift → o2ios/O2Platform/App/Applications/c/OOAppEditController.swift


+ 0 - 0
o2ios/O2Platform/apps/m/O2App.swift → o2ios/O2Platform/App/Applications/m/O2App.swift


+ 0 - 0
o2ios/O2Platform/apps/v/O2CollectionView.swift → o2ios/O2Platform/App/Applications/v/O2CollectionView.swift


+ 0 - 0
o2ios/O2Platform/apps/v/O2CollectionViewCell.swift → o2ios/O2Platform/App/Applications/v/O2CollectionViewCell.swift


+ 0 - 0
o2ios/O2Platform/apps/v/OOAppEditCell.swift → o2ios/O2Platform/App/Applications/v/OOAppEditCell.swift


+ 0 - 0
o2ios/O2Platform/apps/v/OOAppMainCollectionHeaderView.swift → o2ios/O2Platform/App/Applications/v/OOAppMainCollectionHeaderView.swift


+ 0 - 0
o2ios/O2Platform/apps/v/OOAppMainCollectionHeaderView.xib → o2ios/O2Platform/App/Applications/v/OOAppMainCollectionHeaderView.xib


+ 0 - 0
o2ios/O2Platform/apps/v/OOAppMainCollectionReusableView.swift → o2ios/O2Platform/App/Applications/v/OOAppMainCollectionReusableView.swift


+ 0 - 0
o2ios/O2Platform/storyboard/bbs.storyboard → o2ios/O2Platform/App/BBS-论坛/bbs.storyboard


+ 0 - 0
o2ios/O2Platform/bbs/c/BBSReplySubjectViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BBSReplySubjectViewController.swift


+ 0 - 0
o2ios/O2Platform/bbs/c/BBSSubjectContentViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectContentViewController.swift


+ 4 - 5
o2ios/O2Platform/bbs/c/BBSSubjectCreateTableViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectCreateTableViewController.swift

@@ -12,7 +12,6 @@ import AlamofireObjectMapper
 import ObjectMapper
 
 import SwiftyJSON
-import EZSwiftExtensions
 import CocoaLumberjack
 
 class BBSSubjectCreateTableViewController: UITableViewController {
@@ -114,18 +113,18 @@ class BBSSubjectCreateTableViewController: UITableViewController {
     }
     
     override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
-        let headerView = UIView(frame: CGRect(x: 0, y: 0, w: SCREEN_WIDTH, h: 40))
+        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 40))
         if section ==  1 {
             let button = UIButton(type: .custom)
             let attributes = [NSAttributedString.Key.font:UIFont(name: "PingFangSC-Regular", size: 14.0)!,NSAttributedString.Key.foregroundColor:UIColor.white]
             let attrString = NSAttributedString(string: "点击编辑正文内容", attributes: attributes)
             button.setAttributedTitle(attrString, for: .normal)
             button.theme_backgroundColor = ThemeColorPicker(keyPath: "Base.base_color")
-            button.frame = CGRect(x: 10, y: 5, w: 150, h: 30)
+            button.frame = CGRect(x: 10, y: 5, width: 150, height: 30)
             button.addTarget(self, action: #selector(showEditControlAction(_:)), for: .touchUpInside)
             headerView.addSubview(button)
         }else{
-            let label = UILabel(x: 10, y: 5, w: 150, h: 30)
+            let label = UILabel(frame: CGRect(x: 10, y: 5, width: 150, height: 30))
             label.text = "发帖信息"
             label.font = UIFont(name: "PingFangSC-Regular", size: 14.0)!
             label.textColor = RGB(18, g: 18, b: 18)
@@ -212,7 +211,7 @@ extension BBSSubjectCreateTableViewController:UIPickerViewDataSource,UIPickerVie
     }
     
     func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
-        let titleLabel = UILabel(x: 0, y: 0, w: 120, h: 30)
+        let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 120, height: 30))
         let title = self.subjectcategory[row]
         titleLabel.text = title
         titleLabel.theme_textColor =  ThemeColorPicker(keyPath: "Base.base_color")

+ 0 - 0
o2ios/O2Platform/bbs/c/BBSSubjectDetailViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectDetailViewController.swift


+ 0 - 0
o2ios/O2Platform/bbs/c/BBSSubjectListViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BBSSubjectListViewController.swift


+ 0 - 0
o2ios/O2Platform/bbs/c/BSSMainViewController.swift → o2ios/O2Platform/App/BBS-论坛/c/BSSMainViewController.swift


+ 0 - 0
o2ios/O2Platform/bbs/m/OOBBSModels.swift → o2ios/O2Platform/App/BBS-论坛/m/OOBBSModels.swift


+ 0 - 0
o2ios/O2Platform/bbs/m/bbsModel.swift → o2ios/O2Platform/App/BBS-论坛/m/bbsModel.swift


+ 0 - 0
o2ios/O2Platform/bbs/v/BBSForumCell.swift → o2ios/O2Platform/App/BBS-论坛/v/BBSForumCell.swift


+ 0 - 0
o2ios/O2Platform/bbs/v/BBSHeaderCollectionReusableView.swift → o2ios/O2Platform/App/BBS-论坛/v/BBSHeaderCollectionReusableView.swift


+ 0 - 0
o2ios/O2Platform/bbs/v/SubjectTableViewCell.swift → o2ios/O2Platform/App/BBS-论坛/v/SubjectTableViewCell.swift


+ 13 - 13
o2ios/O2Platform/Calendar-日程管理/Controller/OOCalendarEventViewController.swift → o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarEventViewController.swift

@@ -151,9 +151,9 @@ class OOCalendarEventViewController: UITableViewController {
         }
         untilDateStackView.addTapGesture { (tap) in
             let datePicker = DatePickerView.datePicker(style: .yearMonthDay, scrollToDate: Date()) { date in
-                self.untilDateLabel.text = date?.toString(format: "yyyy-MM-dd")
+                self.untilDateLabel.text = date?.toString( "yyyy-MM-dd")
             }
-            let nowDate = self.untilDateLabel.text != nil ? Date.init(fromString: self.untilDateLabel.text!, format: "yyyy-MM-dd"): Date()
+            let nowDate = self.untilDateLabel.text != nil ? Date.date(self.untilDateLabel.text!, formatter: "yyyy-MM-dd"): Date()
             datePicker.scrollToDate = nowDate ?? Date()
             datePicker.show()
         }
@@ -340,8 +340,8 @@ class OOCalendarEventViewController: UITableViewController {
             let startTime = eventStartTime.text ?? ""
             let endTime = eventEndTime.text ?? ""
            
-            let start = allday ? Date.init(fromString: startTime, format: "yyyy-MM-dd") : Date.init(fromString: startTime, format: "yyyy-MM-dd HH:mm")
-            let end = allday ? Date.init(fromString: endTime, format: "yyyy-MM-dd") : Date.init(fromString: endTime, format: "yyyy-MM-dd HH:mm")
+            let start = allday ? Date.date(startTime, formatter: "yyyy-MM-dd") : Date.date(startTime, formatter: "yyyy-MM-dd HH:mm")
+            let end = allday ? Date.date(endTime, formatter: "yyyy-MM-dd") : Date.date(endTime, formatter: "yyyy-MM-dd HH:mm")
             if start == nil || end == nil {
                 showError(title: "开始日期或结束日期错误!")
                 return
@@ -356,8 +356,8 @@ class OOCalendarEventViewController: UITableViewController {
             event.calendarId = calendarId
             event.color = colorValue
             event.isAllDayEvent = allday
-            event.startTime = start!.toString(format: "yyyy-MM-dd HH:mm:ss")
-            event.endTime = end!.toString(format: "yyyy-MM-dd HH:mm:ss")
+            event.startTime = start!.toString("yyyy-MM-dd HH:mm:ss")
+            event.endTime = end!.toString("yyyy-MM-dd HH:mm:ss")
             event.recurrenceRule = rruleEncode()
             event.valarmTime_config = remindValue == "NONE" ? "" : remindValue
             event.comment = remark
@@ -387,8 +387,8 @@ class OOCalendarEventViewController: UITableViewController {
         let remark = eventRemark.text ?? ""
         let startTime = eventStartTime.text ?? ""
         let endTime = eventEndTime.text ?? ""
-        let start = allday ? Date.init(fromString: startTime, format: "yyyy-MM-dd") : Date.init(fromString: startTime, format: "yyyy-MM-dd HH:mm")
-        let end = allday ? Date.init(fromString: endTime, format: "yyyy-MM-dd") : Date.init(fromString: endTime, format: "yyyy-MM-dd HH:mm")
+        let start = allday ? Date.date(startTime, formatter: "yyyy-MM-dd") : Date.date(startTime, formatter: "yyyy-MM-dd HH:mm")
+        let end = allday ? Date.date(endTime, formatter: "yyyy-MM-dd") : Date.date(endTime, formatter: "yyyy-MM-dd HH:mm")
         if start == nil || end == nil {
             showError(title: "开始日期或结束日期错误!")
             return
@@ -402,8 +402,8 @@ class OOCalendarEventViewController: UITableViewController {
         eventInfo?.calendarId = calendarId
         eventInfo?.color = colorValue
         eventInfo?.isAllDayEvent = allday
-        eventInfo?.startTime = start!.toString(format: "yyyy-MM-dd HH:mm:ss")
-        eventInfo?.endTime = end!.toString(format: "yyyy-MM-dd HH:mm:ss")
+        eventInfo?.startTime = start!.toString("yyyy-MM-dd HH:mm:ss")
+        eventInfo?.endTime = end!.toString("yyyy-MM-dd HH:mm:ss")
         eventInfo?.recurrenceRule = rruleEncode()
         eventInfo?.valarmTime_config = remindValue == "NONE" ? "" : remindValue
         eventInfo?.comment = remark
@@ -565,7 +565,7 @@ class OOCalendarEventViewController: UITableViewController {
                 let untilDate = rruleItem.split("=")[1]
                 let date = try? untilDate.subString(from:0, to: 8)
                 if date != nil {
-                    untilDateLabel.text = Date.init(fromString: date!, format: "yyyyMMdd")?.toString("yyyy-MM-dd")
+                    untilDateLabel.text = Date.date(date!, formatter: "yyyyMMdd")?.toString("yyyy-MM-dd")
                 }
             }
             if rruleItem.contains("BYDAY") {
@@ -590,8 +590,8 @@ class OOCalendarEventViewController: UITableViewController {
         var reft = "FREQ=\(repeatValue)"
         let untilDate = untilDateLabel.text
         if untilDate != nil && untilDate != "" {
-            if let date = Date.init(fromString: untilDate!, format: "yyyy-MM-dd") {
-                reft = reft+";UNTIL="+date.toString(format: "yyyyMMdd")+"T000000Z"
+            if let date = Date.date(untilDate!, formatter: "yyyy-MM-dd") {
+                reft = reft+";UNTIL="+date.toString("yyyyMMdd")+"T000000Z"
             }
         }
         if repeatValue == "WEEKLY" && !weekDayList.isEmpty {

+ 3 - 3
o2ios/O2Platform/Calendar-日程管理/Controller/OOCalendarLeftMenuController.swift → o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarLeftMenuController.swift

@@ -71,14 +71,14 @@ class OOCalendarLeftMenuController: UITableViewController {
     
     override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
         let headerBase = UIView.init()
-        headerBase.frame = CGRect(x: 0, y: 0, w: tableView.frame.width, h: 21)
+        headerBase.frame = CGRect(x: 0, y: 0, width: tableView.frame.width, height: 21)
         headerBase.backgroundColor = UIColor.init(r: CGFloat(240), g: CGFloat(240), b: CGFloat(240))
         let topLine = UIView.init()
-        topLine.frame = CGRect(x: 0, y: 0, w: tableView.frame.width, h: 1)
+        topLine.frame = CGRect(x: 0, y: 0, width: tableView.frame.width, height: 1)
         topLine.backgroundColor = UIColor.lightGray
         headerBase.addSubview(topLine)
         let header = UILabel.init()
-        header.frame = CGRect(x: CGFloat(10), y: 1, w: 100, h: 20)
+        header.frame = CGRect(x: CGFloat(10), y: 1, width: 100, height: 20)
         header.font = setting_item_textFont
         header.theme_textColor = ThemeColorPicker(keyPath: "Base.base_color")
         var title = ""

+ 4 - 4
o2ios/O2Platform/Calendar-日程管理/Controller/OOCalendarMainMonthViewController.swift → o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarMainMonthViewController.swift

@@ -106,8 +106,8 @@ class OOCalendarMainMonthViewController: UIViewController {
     private func loadData() {
         MBProgressHUD_JChat.showMessage(message: "loading...", toView: view)
         let filter = OOCalendarEventFilter()
-        filter.startTime = self._startTime?.toString(format: "yyyy-MM-dd HH:mm:ss")
-        filter.endTime = self._endTime?.toString(format: "yyyy-MM-dd HH:mm:ss")
+        filter.startTime = self._startTime?.toString("yyyy-MM-dd HH:mm:ss")
+        filter.endTime = self._endTime?.toString("yyyy-MM-dd HH:mm:ss")
         filter.createPerson = _currentPerson
         // TODO calendarIds.....
         viewModel.filterCalendarEventList(filter: filter).then { (response) -> Promise<[String:[OOCalendarEventInfo]]>  in
@@ -179,12 +179,12 @@ class OOCalendarMainMonthViewController: UIViewController {
     }
     
     private func setNavTitle(date: Date) {
-        navigationItem.title = date.toString(format: "yyyy年MM月")
+        navigationItem.title = date.toString("yyyy年MM月")
     }
 
     // 选中日历上的日期 刷新日程列表
     private func selectCalendarDate(_ date: Date) {
-        let clickDate = date.toString(format: "yyyy-MM-dd")
+        let clickDate = date.toString("yyyy-MM-dd")
         DDLogInfo("did select date \(clickDate) ")
         if let showList = eventsByDate?[clickDate] {
             eventShowList = showList

+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/Controller/OOCalendarViewController.swift → o2ios/O2Platform/App/Calendar-日程管理/Controller/OOCalendarViewController.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/Model/OOCalendarModels.swift → o2ios/O2Platform/App/Calendar-日程管理/Model/OOCalendarModels.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/View/CalendarEventTableViewCell.swift → o2ios/O2Platform/App/Calendar-日程管理/View/CalendarEventTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/View/CalendarTableViewCell.swift → o2ios/O2Platform/App/Calendar-日程管理/View/CalendarTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/View/DatePickerView.swift → o2ios/O2Platform/App/Calendar-日程管理/View/DatePickerView.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/View/DatePickerView.xib → o2ios/O2Platform/App/Calendar-日程管理/View/DatePickerView.xib


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/ViewModel/OOCalendarViewModel.swift → o2ios/O2Platform/App/Calendar-日程管理/ViewModel/OOCalendarViewModel.swift


+ 0 - 0
o2ios/O2Platform/Calendar-日程管理/calendar.storyboard → o2ios/O2Platform/App/Calendar-日程管理/calendar.storyboard


+ 0 - 0
o2ios/O2Platform/cms/c/CMSApplicationTableViewController.swift → o2ios/O2Platform/App/Cms-内容管理/c/CMSApplicationTableViewController.swift


+ 0 - 0
o2ios/O2Platform/cms/c/CMSCategoryListViewController.swift → o2ios/O2Platform/App/Cms-内容管理/c/CMSCategoryListViewController.swift


+ 0 - 0
o2ios/O2Platform/cms/c/CMSCreateDocViewController.swift → o2ios/O2Platform/App/Cms-内容管理/c/CMSCreateDocViewController.swift


+ 6 - 6
o2ios/O2Platform/cms/c/CMSItemDetailViewController.swift → o2ios/O2Platform/App/Cms-内容管理/c/CMSItemDetailViewController.swift

@@ -330,7 +330,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
                         //DDLogDebug("result = \(result) imageOrientation = \(imageOrientation) \(dict)")
                         let fileURL = dict?["PHImageFileURLKey"] as! URL
                         DispatchQueue.main.async {
-                            self.showMessage(title: "上传中...")
+                            self.showLoading(title: "上传中...")
                         }
                         DispatchQueue.global(qos: .userInitiated).async {
                             Alamofire.upload(multipartFormData: { (mData) in
@@ -402,7 +402,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
         let attachInfoURL = AppDelegate.o2Collect.generateURLWithAppContextKey(CMSContext.cmsContextKey, query: CMSContext.cmsAttachmentGET, parameter: ["##attachId##":attachmentId as AnyObject, "##documentId##": id as AnyObject])
         //附件下载链接
         let downURL = AppDelegate.o2Collect.generateURLWithAppContextKey(CMSContext.cmsContextKey, query: CMSContext.cmsAttachmentDownloadNewQuery, parameter: ["##attachId##":attachmentId as AnyObject])
-        self.showMessage(title: "下载中...")
+        self.showLoading(title: "下载中...")
         // 先获取附件对象
         Alamofire.request(attachInfoURL!).responseJSON { (response) in
             switch response.result {
@@ -419,7 +419,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
                     Alamofire.download(downURL!, to: destination).response(completionHandler: { (response) in
                         if response.error == nil , let fileurl = response.destinationURL?.path {
                             //打开文件
-                            self.dismissProgressHUD()
+                            self.hideLoading()
                             self.previewAttachment(fileurl)
                         }else{
                             DispatchQueue.main.async {
@@ -464,7 +464,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
      **/
     private func downloadDocumentAndPreview(_ url: String) {
         DDLogDebug("文档下载地址:\(url)")
-        self.showMessage(title: "下载中...")
+        self.showLoading(title: "下载中...")
         // 文件地址
         let localFileDestination: DownloadRequest.DownloadFileDestination = { _, response in
             let documentsURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0]
@@ -476,7 +476,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
             if response.error == nil , let fileurl = response.destinationURL?.path {
                 DDLogDebug("文件地址:\(fileurl)")
                 //打开文件
-                self.dismissProgressHUD()
+                self.hideLoading()
                 self.previewAttachment(fileurl)
             }else{
                 let msg = response.error?.localizedDescription ?? ""
@@ -533,7 +533,7 @@ extension CMSItemDetailViewController: O2WKScriptMessageHandlerImplement {
                         //DDLogDebug("result = \(result) imageOrientation = \(imageOrientation) \(dict)")
                         let fileURL = dict?["PHImageFileURLKey"] as! URL
                         DispatchQueue.main.async {
-                            self.showMessage(title: "上传中...")
+                            self.showLoading(title: "上传中...")
                         }
                         DispatchQueue.global(qos: .userInitiated).async {
                             Alamofire.upload(multipartFormData: { (mData) in

+ 1 - 1
o2ios/O2Platform/cms/c/CMSQLViewController.swift → o2ios/O2Platform/App/Cms-内容管理/c/CMSQLViewController.swift

@@ -24,7 +24,7 @@ class CMSQLViewController: QLPreviewController {
         // Do any additional setup after loading the view.
     }
     
-    func qlCloseWindow() -> Void {
+    @objc func qlCloseWindow() -> Void {
         self.dismissVC(completion: nil)
     }
     

+ 0 - 0
o2ios/O2Platform/storyboard/information.storyboard → o2ios/O2Platform/App/Cms-内容管理/information.storyboard


+ 0 - 0
o2ios/O2Platform/cms/m/CMSApplication.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSApplication.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSAttachmentInfoResponse.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSAttachmentInfoResponse.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSCategory.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSCategory.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSCategoryData.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSCategoryData.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSCategoryItemData.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSCategoryItemData.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSData.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSData.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSPublishInfo.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfo.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSPublishInfo.temp_caseinsensitive_rename.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfo.temp_caseinsensitive_rename.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSPublishInfoData.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSPublishInfoData.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSSingleApplication.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSSingleApplication.swift


+ 0 - 0
o2ios/O2Platform/cms/m/CMSWrapOutCategoryList.swift → o2ios/O2Platform/App/Cms-内容管理/m/CMSWrapOutCategoryList.swift


+ 0 - 0
o2ios/O2Platform/cms/m/O2InformationModels.swift → o2ios/O2Platform/App/Cms-内容管理/m/O2InformationModels.swift


+ 0 - 0
o2ios/O2Platform/cms/m/O2InformationParameters.swift → o2ios/O2Platform/App/Cms-内容管理/m/O2InformationParameters.swift


+ 0 - 0
o2ios/O2Platform/cms/v/CMSCategoryItemCell.swift → o2ios/O2Platform/App/Cms-内容管理/v/CMSCategoryItemCell.swift


+ 0 - 0
o2ios/O2Platform/cms/v/CMSItemTableViewCell.swift → o2ios/O2Platform/App/Cms-内容管理/v/CMSItemTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Contacts_new.storyboard → o2ios/O2Platform/App/Contact-通讯录/Contacts_new.storyboard


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/ContactGroupPickerViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/ContactGroupPickerViewController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/ContactIdentityPickerViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/ContactIdentityPickerViewController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/ContactPersonPickerViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/ContactPersonPickerViewController.swift


+ 4 - 4
o2ios/O2Platform/Contact-通讯录/Controller/ContactPickerViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/ContactPickerViewController.swift

@@ -390,7 +390,7 @@ class ContactPickerViewController: UIViewController {
                 if self.children.contains(pickerViewController) {
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }else {
-                    pickerViewController.view.frame = CGRect(x: 0, y: 0, w: self.pickerContainerView.frame.width, h: self.pickerContainerView.frame.height)
+                    pickerViewController.view.frame = CGRect(x: CGFloat.zero, y: CGFloat.zero, width: self.pickerContainerView.frame.width, height: self.pickerContainerView.frame.height)
                     self.addChild(pickerViewController)
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }
@@ -405,7 +405,7 @@ class ContactPickerViewController: UIViewController {
                 if self.children.contains(pickerViewController) {
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }else {
-                    pickerViewController.view.frame = CGRect(x: 0, y: 0, w: self.pickerContainerView.frame.width, h: self.pickerContainerView.frame.height)
+                    pickerViewController.view.frame = CGRect(x: CGFloat.zero, y: CGFloat.zero, width: self.pickerContainerView.frame.width, height: self.pickerContainerView.frame.height)
                     self.addChild(pickerViewController)
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }
@@ -417,7 +417,7 @@ class ContactPickerViewController: UIViewController {
                 if self.children.contains(pickerViewController) {
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }else {
-                    pickerViewController.view.frame = CGRect(x: 0, y: 0, w: self.pickerContainerView.frame.width, h: self.pickerContainerView.frame.height)
+                    pickerViewController.view.frame = CGRect(x: CGFloat.zero, y: CGFloat.zero, width: self.pickerContainerView.frame.width, height: self.pickerContainerView.frame.height)
                     self.addChild(pickerViewController)
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }
@@ -433,7 +433,7 @@ class ContactPickerViewController: UIViewController {
                 if self.children.contains(pickerViewController) {
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }else {
-                    pickerViewController.view.frame = CGRect(x: 0, y: 0, w: self.pickerContainerView.frame.width, h: self.pickerContainerView.frame.height)
+                    pickerViewController.view.frame = CGRect(x: CGFloat.zero, y: CGFloat.zero, width: self.pickerContainerView.frame.width, height: self.pickerContainerView.frame.height)
                     self.addChild(pickerViewController)
                     self.pickerContainerView.addSubview(pickerViewController.view)
                 }

+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/ContactUnitPickerViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/ContactUnitPickerViewController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOContactMainViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOContactMainViewController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOContactSearchResultController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOContactSearchResultController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOLinkeManViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOLinkeManViewController.swift


+ 1 - 1
o2ios/O2Platform/Contact-通讯录/Controller/OOListUnitViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOListUnitViewController.swift

@@ -72,7 +72,7 @@ class OOListUnitViewController: UITableViewController {
     @objc func toggleRightAction(){
         print("rightSwipe")
         let _ = stackOfUnit.pop()
-        if stackOfUnit.isEmpty() {
+        if stackOfUnit.isEmpty {
             guard let  returnVC = self.navigationController?.popViewController(animated: true) else {
                 self.dismiss(animated: true, completion: nil)
                 return

+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOPersonsViewController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOPersonsViewController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOPersonsViewController.xib → o2ios/O2Platform/App/Contact-通讯录/Controller/OOPersonsViewController.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Controller/OOUISearchController.swift → o2ios/O2Platform/App/Contact-通讯录/Controller/OOUISearchController.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/Model/OOContactModel.swift → o2ios/O2Platform/App/Contact-通讯录/Model/OOContactModel.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/GroupPickerTableViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/GroupPickerTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOCDLCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOCDLCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactGroupHeaderView.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOContactGroupHeaderView.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactGroupHeaderView.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOContactGroupHeaderView.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactPersonCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOContactPersonCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactPersonCell.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOContactPersonCell.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactSearchCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactSearchSectionHeaderView.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchSectionHeaderView.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactSearchSectionHeaderView.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOContactSearchSectionHeaderView.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactUnitHeader.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOContactUnitHeader.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOContactUnitHeader.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOContactUnitHeader.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOLinkManCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOLinkManInfoCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOLinkManInfoHeader.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoHeader.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOLinkManInfoHeader.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOLinkManInfoHeader.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOPersonCollectionViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOPersonCollectionViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOPersonCollectionViewCell.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOPersonCollectionViewCell.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOSelectPersonTableViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/OOSelectPersonTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/OOSelectPersonTableViewCell.xib → o2ios/O2Platform/App/Contact-通讯录/View/OOSelectPersonTableViewCell.xib


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/PersonPickerTableViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/PersonPickerTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/UnitBreadcrumbViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/UnitBreadcrumbViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/View/UnitPickerTableViewCell.swift → o2ios/O2Platform/App/Contact-通讯录/View/UnitPickerTableViewCell.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/ViewModel/ContactPickerViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/ContactPickerViewModel.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/ViewModel/OOContactSearchViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOContactSearchViewModel.swift


+ 1 - 1
o2ios/O2Platform/Contact-通讯录/ViewModel/OOContactViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOContactViewModel.swift

@@ -7,7 +7,7 @@
 //
 
 import UIKit
-import PromiseKit
+import Promises
 import O2OA_Auth_SDK
 
 class OOContactViewModel: NSObject {

+ 0 - 0
o2ios/O2Platform/Contact-通讯录/ViewModel/OOLinkManViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOLinkManViewModel.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/ViewModel/OOListUnitViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOListUnitViewModel.swift


+ 0 - 0
o2ios/O2Platform/Contact-通讯录/ViewModel/OOPersonListViewModel.swift → o2ios/O2Platform/App/Contact-通讯录/ViewModel/OOPersonListViewModel.swift


+ 396 - 0
o2ios/O2Platform/App/File-云盘/CloudFile.storyboard

@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="w1H-EH-uTF">
+    <device id="retina6_5" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--云盘-->
+        <scene sceneID="QO3-i3-Wav">
+            <objects>
+                <tableViewController id="ZAS-lN-hiq" customClass="CloudFileViewController" customModule="O2Platform" customModuleProvider="target" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="zOZ-gb-zaU">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <view key="tableHeaderView" contentMode="scaleToFill" id="3RE-iC-eIm">
+                            <rect key="frame" x="0.0" y="0.0" width="414" height="245"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <subviews>
+                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="h2J-lw-hJF">
+                                    <rect key="frame" x="24" y="0.0" width="366" height="96"/>
+                                    <subviews>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="yjQ-iI-95d">
+                                            <rect key="frame" x="0.0" y="16" width="122" height="64"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_image" translatesAutoresizingMaskIntoConstraints="NO" id="h9w-m7-fHB">
+                                                    <rect key="frame" x="40" y="0.0" width="42" height="42"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="图片" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ihk-HV-xc1">
+                                                    <rect key="frame" x="46.666666666666671" y="47" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="H2B-66-8TS">
+                                            <rect key="frame" x="122" y="16" width="122" height="64"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_document" translatesAutoresizingMaskIntoConstraints="NO" id="pKq-JW-tft">
+                                                    <rect key="frame" x="40" y="0.0" width="42" height="42"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="文档" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AQM-GW-q2T">
+                                                    <rect key="frame" x="46.666666666666657" y="47" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="NFe-sN-VTK">
+                                            <rect key="frame" x="244" y="16" width="122" height="64"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_music" translatesAutoresizingMaskIntoConstraints="NO" id="u54-II-126">
+                                                    <rect key="frame" x="40" y="0.0" width="42" height="42"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="音频" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QhR-QN-7sV">
+                                                    <rect key="frame" x="46.666666666666686" y="47" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="96" id="2gc-aC-JVB"/>
+                                    </constraints>
+                                </stackView>
+                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="fOZ-10-WMe">
+                                    <rect key="frame" x="24" y="108" width="366" height="96"/>
+                                    <subviews>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="vT1-OP-FjQ">
+                                            <rect key="frame" x="0.0" y="16" width="122" height="64"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_video" translatesAutoresizingMaskIntoConstraints="NO" id="K6N-zp-310">
+                                                    <rect key="frame" x="40" y="0.0" width="42" height="42"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="视频" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PP8-XY-hPs">
+                                                    <rect key="frame" x="46.666666666666671" y="47" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="8Zz-6A-fuu">
+                                            <rect key="frame" x="122" y="16" width="122" height="64"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_application" translatesAutoresizingMaskIntoConstraints="NO" id="uag-zI-crj">
+                                                    <rect key="frame" x="40" y="0.0" width="42" height="42"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="其他" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jfl-8w-kRW">
+                                                    <rect key="frame" x="46.666666666666657" y="47" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="W1X-Rh-5Da">
+                                            <rect key="frame" x="244" y="18" width="122" height="60"/>
+                                            <subviews>
+                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="category_icon_share" translatesAutoresizingMaskIntoConstraints="NO" id="dsv-eV-9A4">
+                                                    <rect key="frame" x="42" y="0.0" width="38" height="38"/>
+                                                </imageView>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="分享" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T4n-sx-iKl">
+                                                    <rect key="frame" x="46.666666666666686" y="43" width="28.666666666666671" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="96" id="oTl-tV-K8v"/>
+                                    </constraints>
+                                </stackView>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部文件" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fvm-4J-5TF">
+                                    <rect key="frame" x="15.999999999999993" y="209" width="97.333333333333314" height="26"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="24"/>
+                                    <nil key="textColor"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="93h-AO-hem">
+                                    <rect key="frame" x="0.0" y="244" width="414" height="1"/>
+                                    <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="1" id="GhN-j4-dIv"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstItem="fvm-4J-5TF" firstAttribute="leading" secondItem="3RE-iC-eIm" secondAttribute="leading" constant="16" id="08k-bZ-vpF"/>
+                                <constraint firstAttribute="trailing" secondItem="93h-AO-hem" secondAttribute="trailing" id="6On-18-2uD"/>
+                                <constraint firstAttribute="bottom" secondItem="93h-AO-hem" secondAttribute="bottom" id="FGt-lu-1N2"/>
+                                <constraint firstAttribute="bottom" secondItem="fvm-4J-5TF" secondAttribute="bottom" constant="10" id="FQU-3w-9dl"/>
+                                <constraint firstItem="93h-AO-hem" firstAttribute="leading" secondItem="3RE-iC-eIm" secondAttribute="leading" id="FZS-Y2-9gh"/>
+                                <constraint firstAttribute="trailing" secondItem="fOZ-10-WMe" secondAttribute="trailing" constant="24" id="NNG-yv-x8k"/>
+                                <constraint firstAttribute="trailing" secondItem="h2J-lw-hJF" secondAttribute="trailing" constant="24" id="PSW-VF-4Nx"/>
+                                <constraint firstItem="h2J-lw-hJF" firstAttribute="leading" secondItem="3RE-iC-eIm" secondAttribute="leading" constant="24" id="d5p-73-RuU"/>
+                                <constraint firstItem="fOZ-10-WMe" firstAttribute="leading" secondItem="3RE-iC-eIm" secondAttribute="leading" constant="24" id="dk2-ND-9DX"/>
+                                <constraint firstItem="fvm-4J-5TF" firstAttribute="top" secondItem="fOZ-10-WMe" secondAttribute="bottom" constant="5" id="h2P-V2-HDR"/>
+                                <constraint firstItem="fOZ-10-WMe" firstAttribute="top" secondItem="h2J-lw-hJF" secondAttribute="bottom" constant="12" id="iWn-Yb-1GB"/>
+                                <constraint firstItem="h2J-lw-hJF" firstAttribute="top" secondItem="3RE-iC-eIm" secondAttribute="top" id="nQN-PR-Xpy"/>
+                            </constraints>
+                        </view>
+                        <prototypes>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="90" id="Fra-R8-epk" customClass="CloudFileFolderCell" customModule="O2Platform" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="273" width="414" height="90"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Fra-R8-epk" id="JrM-sg-r0x">
+                                    <rect key="frame" x="0.0" y="0.0" width="414" height="89.666666666666671"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_wenjianjia" translatesAutoresizingMaskIntoConstraints="NO" id="CXy-As-hYo">
+                                            <rect key="frame" x="12" y="27.666666666666668" width="40" height="34.666666666666657"/>
+                                        </imageView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="jQi-EJ-Htn">
+                                            <rect key="frame" x="76" y="21" width="115" height="48"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="文件夹" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rhs-Pl-7F6">
+                                                    <rect key="frame" x="0.0" y="0.0" width="49" height="24"/>
+                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2019-10-08 12:12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zPV-3x-iZx">
+                                                    <rect key="frame" x="0.0" y="24" width="115" height="24"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                        </stackView>
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_circle" translatesAutoresizingMaskIntoConstraints="NO" id="XL9-Sl-4T7">
+                                            <rect key="frame" x="384" y="34" width="22" height="22"/>
+                                        </imageView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="XL9-Sl-4T7" firstAttribute="trailing" secondItem="JrM-sg-r0x" secondAttribute="trailingMargin" constant="12" id="12I-kj-Oz3"/>
+                                        <constraint firstItem="XL9-Sl-4T7" firstAttribute="centerY" secondItem="JrM-sg-r0x" secondAttribute="centerY" id="6qg-aI-9Wm"/>
+                                        <constraint firstItem="CXy-As-hYo" firstAttribute="leading" secondItem="JrM-sg-r0x" secondAttribute="leading" constant="12" id="Hdu-pd-jBz"/>
+                                        <constraint firstAttribute="bottomMargin" secondItem="jQi-EJ-Htn" secondAttribute="bottom" constant="10" id="J8g-bG-chr"/>
+                                        <constraint firstItem="CXy-As-hYo" firstAttribute="centerY" secondItem="JrM-sg-r0x" secondAttribute="centerY" id="Uvo-QK-4d0"/>
+                                        <constraint firstItem="jQi-EJ-Htn" firstAttribute="leading" secondItem="CXy-As-hYo" secondAttribute="trailing" constant="24" id="XTh-Xz-4x0"/>
+                                        <constraint firstItem="jQi-EJ-Htn" firstAttribute="top" secondItem="JrM-sg-r0x" secondAttribute="topMargin" constant="10" id="plm-vc-psv"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                                <connections>
+                                    <outlet property="checkBoxImage" destination="XL9-Sl-4T7" id="OfI-iS-6ii"/>
+                                    <outlet property="folderNameLabel" destination="rhs-Pl-7F6" id="seJ-ob-zhq"/>
+                                    <outlet property="folderUpdateTimeLabel" destination="zPV-3x-iZx" id="kAa-Zf-TRC"/>
+                                </connections>
+                            </tableViewCell>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" rowHeight="90" id="XJI-iJ-ICR" customClass="CloudFileCell" customModule="O2Platform" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="363" width="414" height="90"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="XJI-iJ-ICR" id="YK0-GM-I8U">
+                                    <rect key="frame" x="0.0" y="0.0" width="414" height="89.666666666666671"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_moren" translatesAutoresizingMaskIntoConstraints="NO" id="jD3-PU-yNB">
+                                            <rect key="frame" x="12" y="25" width="40" height="40"/>
+                                        </imageView>
+                                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="MDi-OP-wFB">
+                                            <rect key="frame" x="76" y="21" width="163" height="48"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="文件名称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="otg-rT-MuS">
+                                                    <rect key="frame" x="0.0" y="0.0" width="65.333333333333329" height="24"/>
+                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Fxa-BV-Mj4">
+                                                    <rect key="frame" x="0.0" y="24" width="163" height="24"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2019-10-08 12:12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BSC-5Q-Xu7">
+                                                            <rect key="frame" x="0.0" y="0.0" width="115" height="17"/>
+                                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                            <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="200M" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R8Z-bU-1v9">
+                                                            <rect key="frame" x="125" y="0.0" width="38" height="17"/>
+                                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                            <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                </stackView>
+                                            </subviews>
+                                        </stackView>
+                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_circle" translatesAutoresizingMaskIntoConstraints="NO" id="7e1-dD-xue">
+                                            <rect key="frame" x="380" y="34" width="22" height="22"/>
+                                        </imageView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="7e1-dD-xue" secondAttribute="trailing" constant="12" id="4c7-zL-IyP"/>
+                                        <constraint firstItem="jD3-PU-yNB" firstAttribute="leading" secondItem="YK0-GM-I8U" secondAttribute="leading" constant="12" id="6HD-Vp-mHt"/>
+                                        <constraint firstItem="MDi-OP-wFB" firstAttribute="leading" secondItem="jD3-PU-yNB" secondAttribute="trailing" constant="24" id="FaF-P2-k3F"/>
+                                        <constraint firstAttribute="bottomMargin" secondItem="MDi-OP-wFB" secondAttribute="bottom" constant="10" id="J0Q-1B-hfl"/>
+                                        <constraint firstItem="7e1-dD-xue" firstAttribute="centerY" secondItem="YK0-GM-I8U" secondAttribute="centerY" id="PsP-3M-Ij0"/>
+                                        <constraint firstItem="MDi-OP-wFB" firstAttribute="top" secondItem="YK0-GM-I8U" secondAttribute="topMargin" constant="10" id="nfA-WR-OY3"/>
+                                        <constraint firstItem="jD3-PU-yNB" firstAttribute="centerY" secondItem="YK0-GM-I8U" secondAttribute="centerY" id="pYs-4C-dyK"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                                <connections>
+                                    <outlet property="checkBoxImage" destination="7e1-dD-xue" id="gKD-qs-IAb"/>
+                                    <outlet property="fileImage" destination="jD3-PU-yNB" id="hnk-F5-fJa"/>
+                                    <outlet property="fileNameLabel" destination="otg-rT-MuS" id="Vx0-uK-kE6"/>
+                                    <outlet property="fileSizeLabel" destination="R8Z-bU-1v9" id="ag5-V6-wbu"/>
+                                    <outlet property="fileUpdateTimeLabel" destination="BSC-5Q-Xu7" id="xc6-8h-s40"/>
+                                </connections>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="ZAS-lN-hiq" id="1Bj-Pv-1pM"/>
+                            <outlet property="delegate" destination="ZAS-lN-hiq" id="2Jj-kR-7YE"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" title="云盘" id="aKk-Lf-Mki">
+                        <barButtonItem key="leftBarButtonItem" image="icon_off_grey" id="cYM-2B-yZP">
+                            <connections>
+                                <action selector="clickCloseAction:" destination="ZAS-lN-hiq" id="SVD-lM-IhT"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <connections>
+                        <outlet property="documentBtn" destination="H2B-66-8TS" id="CRG-rV-bk8"/>
+                        <outlet property="imageBtn" destination="yjQ-iI-95d" id="7GZ-RS-UcV"/>
+                        <outlet property="musicBtn" destination="NFe-sN-VTK" id="98a-LA-ATf"/>
+                        <outlet property="otherBtn" destination="8Zz-6A-fuu" id="tfi-30-8Ir"/>
+                        <outlet property="shareBtn" destination="W1X-Rh-5Da" id="7MY-rB-EKy"/>
+                        <outlet property="videoBtn" destination="vT1-OP-FjQ" id="XMt-Wd-RAd"/>
+                    </connections>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="an8-Tb-9k1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1121.7391304347827" y="-186.16071428571428"/>
+        </scene>
+        <!--Tab Bar Controller-->
+        <scene sceneID="drC-LQ-aDI">
+            <objects>
+                <tabBarController automaticallyAdjustsScrollViewInsets="NO" id="w1H-EH-uTF" sceneMemberID="viewController">
+                    <toolbarItems/>
+                    <tabBar key="tabBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="ueD-SH-onY">
+                        <rect key="frame" x="0.0" y="0.0" width="1000" height="1000"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <color key="selectedImageTintColor" red="0.98431372549999996" green="0.2784313725" blue="0.2784313725" alpha="1" colorSpace="calibratedRGB"/>
+                    </tabBar>
+                    <connections>
+                        <segue destination="GJ8-kY-oBW" kind="relationship" relationship="viewControllers" id="uGv-wU-KuN"/>
+                        <segue destination="k8X-Xy-dAP" kind="relationship" relationship="viewControllers" id="Ner-kB-cgU"/>
+                    </connections>
+                </tabBarController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="CJc-v6-53c" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-772" y="95"/>
+        </scene>
+        <!--云盘-->
+        <scene sceneID="xwf-ob-NMB">
+            <objects>
+                <tableViewController id="Cce-ds-hoX" customClass="CloudFileShareViewController" customModule="O2Platform" customModuleProvider="target" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="Oc9-5v-HFf">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        <prototypes>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="T2Z-rL-M8F">
+                                <rect key="frame" x="0.0" y="28" width="414" height="44"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="T2Z-rL-M8F" id="67g-Si-Jfw">
+                                    <rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                </tableViewCellContentView>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="Cce-ds-hoX" id="tzg-XI-blf"/>
+                            <outlet property="delegate" destination="Cce-ds-hoX" id="pDc-gl-mhU"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" title="云盘" id="PAa-Ic-nDM">
+                        <barButtonItem key="leftBarButtonItem" image="icon_off_grey" id="U3t-lf-bJq">
+                            <connections>
+                                <action selector="clickCloseAction:" destination="Cce-ds-hoX" id="AhA-wK-zMl"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="shf-uI-jHa" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1092.753623188406" y="542.41071428571422"/>
+        </scene>
+        <!--云盘-->
+        <scene sceneID="rBI-1e-iqH">
+            <objects>
+                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="GJ8-kY-oBW" customClass="ZLNavigationController" customModule="O2Platform" customModuleProvider="target" sceneMemberID="viewController">
+                    <tabBarItem key="tabBarItem" title="云盘" image="cloud_file_index" id="ffI-sz-UH3"/>
+                    <toolbarItems/>
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="gUd-lK-h6S">
+                        <rect key="frame" x="0.0" y="44" width="414" height="44"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <nil name="viewControllers"/>
+                    <connections>
+                        <segue destination="ZAS-lN-hiq" kind="relationship" relationship="rootViewController" id="pKs-Cx-M6t"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="GSH-z2-sip" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="211.59420289855075" y="-186.16071428571428"/>
+        </scene>
+        <!--分享-->
+        <scene sceneID="DcL-Zf-8ta">
+            <objects>
+                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="k8X-Xy-dAP" customClass="ZLNavigationController" customModule="O2Platform" customModuleProvider="target" sceneMemberID="viewController">
+                    <tabBarItem key="tabBarItem" title="分享" image="cloud_file_share" id="T1t-4F-eaU"/>
+                    <toolbarItems/>
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="bxc-9m-hIH">
+                        <rect key="frame" x="0.0" y="44" width="414" height="44"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <nil name="viewControllers"/>
+                    <connections>
+                        <segue destination="Cce-ds-hoX" kind="relationship" relationship="rootViewController" id="VzH-Rs-pF8"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="trz-Au-QuV" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="182.60869565217394" y="542.41071428571422"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="category_icon_application" width="42" height="42"/>
+        <image name="category_icon_document" width="42" height="42"/>
+        <image name="category_icon_image" width="42" height="42"/>
+        <image name="category_icon_music" width="42" height="42"/>
+        <image name="category_icon_share" width="38" height="38"/>
+        <image name="category_icon_video" width="42" height="42"/>
+        <image name="cloud_file_index" width="22" height="22"/>
+        <image name="cloud_file_share" width="22" height="22"/>
+        <image name="icon_circle" width="22" height="22"/>
+        <image name="icon_moren" width="40" height="40"/>
+        <image name="icon_off_grey" width="22" height="22"/>
+        <image name="icon_wenjianjia" width="40" height="34.666667938232422"/>
+    </resources>
+</document>

+ 93 - 0
o2ios/O2Platform/App/File-云盘/c/CloudFileShareViewController.swift

@@ -0,0 +1,93 @@
+//
+//  CloudFileShareViewController.swift
+//  O2Platform
+//
+//  Created by FancyLou on 2019/10/8.
+//  Copyright © 2019 zoneland. All rights reserved.
+//
+
+import UIKit
+
+class CloudFileShareViewController: UITableViewController {
+
+    @IBAction func clickCloseAction(_ sender: UIBarButtonItem) {
+        print("点击了关闭按钮。。。。。。。。。。。")
+    }
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Uncomment the following line to preserve selection between presentations
+        // self.clearsSelectionOnViewWillAppear = false
+
+        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
+        // self.navigationItem.rightBarButtonItem = self.editButtonItem
+    }
+
+    // MARK: - Table view data source
+
+    override func numberOfSections(in tableView: UITableView) -> Int {
+        // #warning Incomplete implementation, return the number of sections
+        return 0
+    }
+
+    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        // #warning Incomplete implementation, return the number of rows
+        return 0
+    }
+
+    /*
+    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
+
+        // Configure the cell...
+
+        return cell
+    }
+    */
+
+    /*
+    // Override to support conditional editing of the table view.
+    override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
+        // Return false if you do not want the specified item to be editable.
+        return true
+    }
+    */
+
+    /*
+    // Override to support editing the table view.
+    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
+        if editingStyle == .delete {
+            // Delete the row from the data source
+            tableView.deleteRows(at: [indexPath], with: .fade)
+        } else if editingStyle == .insert {
+            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
+        }    
+    }
+    */
+
+    /*
+    // Override to support rearranging the table view.
+    override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
+
+    }
+    */
+
+    /*
+    // Override to support conditional rearranging of the table view.
+    override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
+        // Return false if you do not want the item to be re-orderable.
+        return true
+    }
+    */
+
+    /*
+    // MARK: - Navigation
+
+    // In a storyboard-based application, you will often want to do a little preparation before navigation
+    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+        // Get the new view controller using segue.destination.
+        // Pass the selected object to the new view controller.
+    }
+    */
+
+}

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů