OOMeetingCreateFormView.swift 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // OOMeetingCreateFormView.swift
  3. // o2app
  4. //
  5. // Created by 刘振兴 on 2018/1/25.
  6. // Copyright © 2018年 zone. All rights reserved.
  7. //
  8. import UIKit
  9. protocol OOMeetingCreateFormViewDelegate {
  10. func performPersonSelected()
  11. func performRoomSelected()
  12. }
  13. class OOMeetingCreateFormView: UIView {
  14. private lazy var textItemView:OOFormTextItemView = {
  15. let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![0] as! OOFormTextItemView
  16. return view
  17. }()
  18. private lazy var dateItemView:OOFormDateItemView = {
  19. let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![1] as! OOFormDateItemView
  20. return view
  21. }()
  22. private lazy var dateIntervalItemView:OOFormDateIntervalItemView = {
  23. let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![2] as! OOFormDateIntervalItemView
  24. return view
  25. }()
  26. private lazy var segueItemView:OOFormSegueItemView = {
  27. let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![3] as! OOFormSegueItemView
  28. return view
  29. }()
  30. var delegate:OOMeetingCreateFormViewDelegate?
  31. //model Array
  32. private var _ooFormsModels:[OOFormBaseModel]?
  33. var ooFormsModels:[OOFormBaseModel]? {
  34. get {
  35. return _ooFormsModels
  36. }
  37. set(models){
  38. _ooFormsModels = models
  39. _ooFormsModels?.forEach({ (model) in
  40. switch model.componentType! {
  41. case .textItem:
  42. let view = textItemView
  43. view.configItem(model)
  44. self.addSubview(view)
  45. break
  46. case .dateItem:
  47. let view = dateItemView
  48. view.configItem(model)
  49. self.addSubview(view)
  50. break
  51. case .dateIntervalItem:
  52. let view = dateIntervalItemView
  53. view.configItem(model)
  54. self.addSubview(view)
  55. break
  56. case .segueItem:
  57. let view = segueItemView
  58. view.backCallAction = {
  59. sender in
  60. self.delegate?.performRoomSelected()
  61. }
  62. view.configItem(model)
  63. self.addSubview(view)
  64. break
  65. }
  66. })
  67. }
  68. }
  69. override init(frame: CGRect) {
  70. super.init(frame: frame)
  71. }
  72. required init?(coder aDecoder: NSCoder) {
  73. super.init(coder: aDecoder)
  74. }
  75. override func awakeFromNib() {
  76. }
  77. //重新布局所有子控件
  78. override func layoutSubviews() {
  79. super.layoutSubviews()
  80. let x:CGFloat = 0
  81. var y:CGFloat = 0
  82. let width:CGFloat = kScreenW
  83. let height:CGFloat = 44
  84. self.subviews.forEach { (view) in
  85. view.frame = CGRect(x: x, y: y, width: width, height: height)
  86. y+=height
  87. }
  88. }
  89. func setSelectedRoom(_ room:OOMeetingRoomInfo){
  90. segueItemView.setBackValueUpdate(room)
  91. }
  92. func getFormDataFormBean() -> OOMeetingForm {
  93. let meetingForm = OOMeetingForm()
  94. //标题
  95. meetingForm.subject = textItemView.model?.callbackValue as? String
  96. //日期
  97. meetingForm.meetingDate = dateItemView.model?.callbackValue as! Date
  98. //开始时间
  99. let model = dateIntervalItemView.model as! OOFormDateIntervalModel
  100. meetingForm.startTime = model.value1 as! Date
  101. //结束时间
  102. meetingForm.completedTime = model.value2 as! Date
  103. //会议室
  104. let room = segueItemView.model?.callbackValue as? OOMeetingRoomInfo
  105. meetingForm.room = room?.id
  106. meetingForm.roomName = room?.name
  107. return meetingForm
  108. }
  109. }