MeetingCreateViewController.swift 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. //
  2. // MeetingCreateViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 16/8/24.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Alamofire
  10. import AlamofireImage
  11. import AlamofireObjectMapper
  12. import SwiftyJSON
  13. import ObjectMapper
  14. import SwiftyUserDefaults
  15. import Eureka
  16. import CocoaLumberjack
  17. class MeetingCreateViewController: FormViewController {
  18. var persons:[PersonV2]?
  19. var sRoom:Room?
  20. var meetingForm = MeetingForm()
  21. override func viewDidLoad() {
  22. super.viewDidLoad()
  23. ImageRow.defaultCellUpdate = { cell, row in
  24. cell.accessoryView?.layer.cornerRadius = 17
  25. cell.accessoryView?.frame = CGRect(x: 0, y: 0, width: 34, height: 34)
  26. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  27. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  28. }
  29. TextRow.defaultCellUpdate = {
  30. cell,row in
  31. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  32. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  33. cell.accessoryType = .disclosureIndicator
  34. }
  35. LabelRow.defaultCellUpdate = {
  36. cell,row in
  37. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  38. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  39. cell.accessoryType = .disclosureIndicator
  40. }
  41. ButtonRow.defaultCellUpdate = {
  42. cell,row in
  43. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  44. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  45. cell.accessoryType = .disclosureIndicator
  46. }
  47. TextAreaRow.defaultCellUpdate = {
  48. cell,row in
  49. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  50. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  51. //cell.accessoryType = .disclosureIndicator
  52. }
  53. EmailRow.defaultCellUpdate = {
  54. cell,row in
  55. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  56. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  57. cell.accessoryType = .disclosureIndicator
  58. }
  59. DateRow.defaultCellUpdate = {
  60. cell,row in
  61. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  62. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  63. //cell.accessoryType = .disclosureIndicator
  64. }
  65. TimeRow.defaultCellUpdate = {
  66. cell,row in
  67. cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0)
  68. cell.textLabel?.textColor = RGB(155, g: 155, b: 155)
  69. //cell.accessoryType = .disclosureIndicator
  70. }
  71. form +++ Section("会议内容")
  72. <<< TextRow("subject"){ row in
  73. row.title = "会议主题"
  74. row.placeholder = "请输入主题"
  75. }.onChange({ row in
  76. self.meetingForm.subject = row.value
  77. })
  78. <<< DateRow("startDate"){ row in
  79. row.title = "会议日期"
  80. row.value = Date()
  81. }.onChange({ row in
  82. self.meetingForm.meetingDate = row.value!
  83. })
  84. <<< TimeRow("startTime"){ row in
  85. row.title = "开始时间"
  86. row.value = Date()
  87. }.onChange({ row in
  88. self.meetingForm.startTime = row.value!
  89. })
  90. <<< TimeRow("completeTime") { row in
  91. row.title = "完成时间"
  92. row.value = Date()
  93. }.onChange({ row in
  94. self.meetingForm.completedTime = row.value!
  95. })
  96. <<< ButtonRow("roomName") { row in
  97. row.title = "选择会议室"
  98. row.presentationMode = .segueName(segueName: "showMeetingRoomSegue",onDismiss:nil)
  99. }
  100. <<< LabelRow("showRoomName"){ row in
  101. row.title = "请选择会议室"
  102. }.cellSetup({ (cell, row) in
  103. cell.detailTextLabel?.textColor = UIColor.blue
  104. cell.detailTextLabel?.font = UIFont.italicSystemFont(ofSize: 10)
  105. })
  106. <<< ButtonRow("invitePersonList") { row in
  107. row.title = "选择人员"
  108. row.presentationMode = .segueName(segueName:"showPersonListSegue",onDismiss:nil)
  109. }
  110. <<< LabelRow("showPersonList"){ row in
  111. row.title = "请选择参会人员"
  112. }.cellSetup({ (cell, row) in
  113. //cell.height = 80
  114. cell.detailTextLabel?.textColor = UIColor.blue
  115. cell.detailTextLabel?.font = UIFont.italicSystemFont(ofSize: 10)
  116. })
  117. +++ Section("会议说明")
  118. <<< TextAreaRow("desc") { row in
  119. row.title = "会议说明"
  120. }.onChange({ row in
  121. self.meetingForm.desc = row.value
  122. })
  123. }
  124. override func didReceiveMemoryWarning() {
  125. super.didReceiveMemoryWarning()
  126. // Dispose of any resources that can be recreated.
  127. }
  128. //push前执行
  129. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  130. //选择会议室执行
  131. if segue.identifier == "showMeetingRoomSegue" {
  132. let navVC = segue.destination as! UINavigationController
  133. let destVC = navVC.topViewController as! MeetingRoomListViewController
  134. destVC.delegate = self
  135. if let room = sRoom {
  136. destVC.selectRoom = room
  137. }
  138. }else if segue.identifier == "showPersonListSegue" {
  139. //选择人员前执行
  140. let destVC = segue.destination as! MeetingPersonListViewController
  141. destVC.delegate = self
  142. if let ps = persons {
  143. destVC.selectPersons = ps
  144. }
  145. }
  146. }
  147. @IBAction func submitMeetingAction(_ sender: UIBarButtonItem) {
  148. let meetingFormBean = MeetingFormBean(meetingForm: self.meetingForm)
  149. DDLogDebug(meetingFormBean.toJSONString()!)
  150. let url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.meetingCreateQuery, parameter: nil)
  151. ProgressHUD.show("创建会议中...")
  152. Alamofire.request(url!, method: .post,parameters: meetingFormBean.toJSON(), encoding:JSONEncoding.default, headers: nil).responseJSON { response in
  153. switch response.result {
  154. case .success(let val):
  155. let json = JSON(val)
  156. if json["type"] == "success" {
  157. DDLogDebug(json.description)
  158. ProgressHUD.showSuccess("创建成功")
  159. self.performSegue(withIdentifier: "createBackMainSegue", sender: nil)
  160. }else {
  161. DDLogError(json.description)
  162. ProgressHUD.showError("创建失败")
  163. }
  164. case .failure(let err):
  165. DDLogError(err.localizedDescription)
  166. ProgressHUD.showError("创建失败")
  167. }
  168. }
  169. }
  170. }
  171. extension MeetingCreateViewController:MeetingRoomPassValueDelegate,MeetingPersonListPassValue{
  172. //选择的会议室
  173. func selectRoom(_ room: Room) {
  174. self.sRoom = room
  175. self.meetingForm.room = room.id
  176. self.meetingForm.roomName = room.name
  177. let row:RowOf<String> = self.form.rowBy(tag:"showRoomName")!
  178. row.value = room.name
  179. row.title = ""
  180. //row.hidden = false
  181. row.updateCell()
  182. }
  183. //选择的参会人员
  184. func selectPersonPassValue(_ persons: [PersonV2]) {
  185. self.persons = persons
  186. self.meetingForm.invitePersonList.removeAll(keepingCapacity: true)
  187. self.persons?.forEach({ (p:PersonV2) in
  188. self.meetingForm.invitePersonList.append(p.name!)
  189. })
  190. let row:RowOf<String> = self.form.rowBy(tag:"showPersonList")!
  191. row.value = self.meetingForm.invitePersonList.joined(separator: ",")
  192. if persons.isEmpty {
  193. row.title = "请选择参会人员"
  194. }else {
  195. row.title = ""
  196. }
  197. row.updateCell()
  198. }
  199. }