123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- //
- // OOMeetingCreateFormView.swift
- // o2app
- //
- // Created by 刘振兴 on 2018/1/25.
- // Copyright © 2018年 zone. All rights reserved.
- //
- import UIKit
- protocol OOMeetingCreateFormViewDelegate {
- func performPersonSelected()
- func performRoomSelected()
- }
- class OOMeetingCreateFormView: UIView {
-
- private lazy var textItemView:OOFormTextItemView = {
- let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![0] as! OOFormTextItemView
- return view
- }()
-
- private lazy var dateItemView:OOFormDateItemView = {
- let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![1] as! OOFormDateItemView
- return view
- }()
-
- private lazy var dateIntervalItemView:OOFormDateIntervalItemView = {
- let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![2] as! OOFormDateIntervalItemView
- return view
- }()
-
- private lazy var segueItemView:OOFormSegueItemView = {
- let view = Bundle.main.loadNibNamed("OOFormTextItemView", owner: self, options: nil)![3] as! OOFormSegueItemView
- return view
- }()
-
- var delegate:OOMeetingCreateFormViewDelegate?
-
- //model Array
- private var _ooFormsModels:[OOFormBaseModel]?
- var ooFormsModels:[OOFormBaseModel]? {
- get {
- return _ooFormsModels
- }
- set(models){
- _ooFormsModels = models
- _ooFormsModels?.forEach({ (model) in
- switch model.componentType! {
- case .textItem:
- let view = textItemView
- view.configItem(model)
- self.addSubview(view)
- break
- case .dateItem:
- let view = dateItemView
- view.configItem(model)
- self.addSubview(view)
- break
- case .dateIntervalItem:
- let view = dateIntervalItemView
- view.configItem(model)
- self.addSubview(view)
- break
- case .segueItem:
- let view = segueItemView
- view.addTapGesture { (tap) in
- self.delegate?.performRoomSelected()
- }
- view.configItem(model)
- self.addSubview(view)
- break
- }
- })
- }
- }
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- }
-
- required init?(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- }
-
- override func awakeFromNib() {
-
- }
-
- //重新布局所有子控件
- override func layoutSubviews() {
- super.layoutSubviews()
- let x:CGFloat = 0
- var y:CGFloat = 0
- let width:CGFloat = kScreenW
- let height:CGFloat = 44
- self.subviews.forEach { (view) in
- view.frame = CGRect(x: x, y: y, width: width, height: height)
- y+=height
- }
- }
-
- func setSelectedRoom(_ room:OOMeetingRoomInfo){
- segueItemView.setBackValueUpdate(room)
- }
-
-
- func getFormDataFormBean() -> (OOMeetingForm?, err: String?) {
- let meetingForm = OOMeetingForm()
- //标题
- guard let title = textItemView.model?.callbackValue as? String else {
- return (nil, "请输入会议主题")
- }
- meetingForm.subject = title
- //日期
- guard let date = dateItemView.model?.callbackValue as? Date else {
- return (nil, "请选择日期")
- }
- meetingForm.meetingDate = date
- //开始时间
- let model = dateIntervalItemView.model as! OOFormDateIntervalModel
- guard let startTime = model.value1 as? Date else {
- return (nil, "请选择开始时间")
- }
- //结束时间
- guard let endTime = model.value2 as? Date else {
- return (nil, "请选择结束时间")
- }
- //判断时间大小
- guard startTime.timeIntervalSince1970 < endTime.timeIntervalSince1970 else {
- return (nil, "开始时间不能大于结束时间")
- }
- meetingForm.startTime = startTime
- meetingForm.completedTime = endTime
- //会议室
- guard let room = segueItemView.model?.callbackValue as? OOMeetingRoomInfo else {
- return (nil, "请选择会议室")
- }
- meetingForm.room = room.id
- meetingForm.roomName = room.name
- return (meetingForm, nil)
- }
-
- ///获取日期时间 给选择会议室用
- func getFormDataForChooseRoom() -> (OOMeetingForm?, err: String?) {
- let meetingForm = OOMeetingForm()
- //日期
- guard let date = dateItemView.model?.callbackValue as? Date else {
- return (nil, "请选择日期")
- }
- meetingForm.meetingDate = date
- //开始时间
- let model = dateIntervalItemView.model as! OOFormDateIntervalModel
- guard let startTime = model.value1 as? Date else {
- return (nil, "请选择开始时间")
- }
- //结束时间
- guard let endTime = model.value2 as? Date else {
- return (nil, "请选择结束时间")
- }
- //判断时间大小
- guard startTime.timeIntervalSince1970 < endTime.timeIntervalSince1970 else {
- return (nil, "开始时间不能大于结束时间")
- }
- meetingForm.startTime = startTime
- meetingForm.completedTime = endTime
- return (meetingForm, nil)
- }
-
-
- }
|