MeetingRoomListViewController.swift 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. //
  2. // MeetingRoomListViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 16/8/25.
  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 CocoaLumberjack
  15. protocol MeetingRoomPassValueDelegate {
  16. func selectRoom(_ room:Room)
  17. }
  18. class MeetingRoomListViewController: UIViewController {
  19. var startTime:String?
  20. var completeTime:String?
  21. var builds:[Build] = []
  22. var selectRoom = Room()
  23. @IBOutlet weak var roomListTableView: UITableView!
  24. var delegate:MeetingRoomPassValueDelegate?
  25. override func viewDidLoad() {
  26. super.viewDidLoad()
  27. self.roomListTableView.delegate = self
  28. self.roomListTableView.dataSource = self
  29. self.loadBuilds()
  30. // Do any additional setup after loading the view.
  31. }
  32. func loadBuilds(){
  33. let url = getLoadBuildsUrl()
  34. self.builds.removeAll()
  35. ProgressHUD.show("加载中",interaction: false)
  36. Alamofire.request(url).responseArray(queue: nil, keyPath: "data", context: nil, completionHandler: { (response:DataResponse<[Build]>) in
  37. switch response.result {
  38. case .success(let builds):
  39. self.builds.append(contentsOf: builds)
  40. ProgressHUD.showSuccess("加载成功")
  41. case .failure(let err):
  42. DDLogError(err.localizedDescription)
  43. ProgressHUD.showError("加截失败")
  44. }
  45. self.roomListTableView.reloadData()
  46. })
  47. }
  48. fileprivate func getLoadBuildsUrl()->String{
  49. var url = ""
  50. if startTime != nil && completeTime != nil {
  51. url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.buildListStartAndCompletedQuery, parameter: ["##start##":startTime! as AnyObject,"##completed##":completeTime! as AnyObject])!
  52. }else{
  53. url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.buildListQuery, parameter: nil)!
  54. }
  55. return url
  56. }
  57. override func didReceiveMemoryWarning() {
  58. super.didReceiveMemoryWarning()
  59. // Dispose of any resources that can be recreated.
  60. }
  61. @IBAction func btnCloseWindow(_ sender: UIBarButtonItem) {
  62. self.dismiss(animated: true) {
  63. //self.delegate?.selectRoom(self.selectRoom)
  64. }
  65. }
  66. }
  67. extension MeetingRoomListViewController:UITableViewDelegate{
  68. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  69. let sRoom = self.builds[(indexPath as NSIndexPath).section].roomList![(indexPath as NSIndexPath).row]
  70. self.selectRoom = sRoom
  71. self.dismiss(animated: true) {
  72. self.delegate?.selectRoom(self.selectRoom)
  73. }
  74. }
  75. }
  76. extension MeetingRoomListViewController:UITableViewDataSource{
  77. func numberOfSections(in tableView: UITableView) -> Int {
  78. return self.builds.count
  79. }
  80. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  81. return (self.builds[section].roomList!).count
  82. }
  83. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  84. let cell = tableView.dequeueReusableCell(withIdentifier: "MeetingRoomItemCell", for: indexPath) as! MeetingRoomItemCell
  85. let room = self.builds[(indexPath as NSIndexPath).section].roomList![(indexPath as NSIndexPath).row]
  86. cell.meetingRoom = room
  87. return cell
  88. }
  89. func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
  90. let build = self.builds[section]
  91. return build.name
  92. }
  93. }