// // MeetingCreateViewController.swift // O2Platform // // Created by 刘振兴 on 16/8/24. // Copyright © 2016年 zoneland. All rights reserved. // import UIKit import Alamofire import AlamofireImage import AlamofireObjectMapper import SwiftyJSON import ObjectMapper import SwiftyUserDefaults import Eureka import CocoaLumberjack class MeetingCreateViewController: FormViewController { var persons:[PersonV2]? var sRoom:Room? var meetingForm = MeetingForm() override func viewDidLoad() { super.viewDidLoad() ImageRow.defaultCellUpdate = { cell, row in cell.accessoryView?.layer.cornerRadius = 17 cell.accessoryView?.frame = CGRect(x: 0, y: 0, width: 34, height: 34) cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) } TextRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) cell.accessoryType = .disclosureIndicator } LabelRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) cell.accessoryType = .disclosureIndicator } ButtonRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) cell.accessoryType = .disclosureIndicator } TextAreaRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) //cell.accessoryType = .disclosureIndicator } EmailRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) cell.accessoryType = .disclosureIndicator } DateRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) //cell.accessoryType = .disclosureIndicator } TimeRow.defaultCellUpdate = { cell,row in cell.textLabel?.font = UIFont(name: "PingFangSC-Light", size: 12.0) cell.textLabel?.textColor = RGB(155, g: 155, b: 155) //cell.accessoryType = .disclosureIndicator } form +++ Section("会议内容") <<< TextRow("subject"){ row in row.title = "会议主题" row.placeholder = "请输入主题" }.onChange({ row in self.meetingForm.subject = row.value }) <<< DateRow("startDate"){ row in row.title = "会议日期" row.value = Date() }.onChange({ row in self.meetingForm.meetingDate = row.value! }) <<< TimeRow("startTime"){ row in row.title = "开始时间" row.value = Date() }.onChange({ row in self.meetingForm.startTime = row.value! }) <<< TimeRow("completeTime") { row in row.title = "完成时间" row.value = Date() }.onChange({ row in self.meetingForm.completedTime = row.value! }) <<< ButtonRow("roomName") { row in row.title = "选择会议室" row.presentationMode = .segueName(segueName: "showMeetingRoomSegue",onDismiss:nil) } <<< LabelRow("showRoomName"){ row in row.title = "请选择会议室" }.cellSetup({ (cell, row) in cell.detailTextLabel?.textColor = UIColor.blue cell.detailTextLabel?.font = UIFont.italicSystemFont(ofSize: 10) }) <<< ButtonRow("invitePersonList") { row in row.title = "选择人员" row.presentationMode = .segueName(segueName:"showPersonListSegue",onDismiss:nil) } <<< LabelRow("showPersonList"){ row in row.title = "请选择参会人员" }.cellSetup({ (cell, row) in //cell.height = 80 cell.detailTextLabel?.textColor = UIColor.blue cell.detailTextLabel?.font = UIFont.italicSystemFont(ofSize: 10) }) +++ Section("会议说明") <<< TextAreaRow("desc") { row in row.title = "会议说明" }.onChange({ row in self.meetingForm.desc = row.value }) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //push前执行 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { //选择会议室执行 if segue.identifier == "showMeetingRoomSegue" { let navVC = segue.destination as! UINavigationController let destVC = navVC.topViewController as! MeetingRoomListViewController destVC.delegate = self if let room = sRoom { destVC.selectRoom = room } }else if segue.identifier == "showPersonListSegue" { //选择人员前执行 let destVC = segue.destination as! MeetingPersonListViewController destVC.delegate = self if let ps = persons { destVC.selectPersons = ps } } } @IBAction func submitMeetingAction(_ sender: UIBarButtonItem) { let meetingFormBean = MeetingFormBean(meetingForm: self.meetingForm) DDLogDebug(meetingFormBean.toJSONString()!) let url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.meetingCreateQuery, parameter: nil) ProgressHUD.show("创建会议中...") Alamofire.request(url!, method: .post,parameters: meetingFormBean.toJSON(), encoding:JSONEncoding.default, headers: nil).responseJSON { response in switch response.result { case .success(let val): let json = JSON(val) if json["type"] == "success" { DDLogDebug(json.description) ProgressHUD.showSuccess("创建成功") self.performSegue(withIdentifier: "createBackMainSegue", sender: nil) }else { DDLogError(json.description) ProgressHUD.showError("创建失败") } case .failure(let err): DDLogError(err.localizedDescription) ProgressHUD.showError("创建失败") } } } } extension MeetingCreateViewController:MeetingRoomPassValueDelegate,MeetingPersonListPassValue{ //选择的会议室 func selectRoom(_ room: Room) { self.sRoom = room self.meetingForm.room = room.id self.meetingForm.roomName = room.name let row:RowOf = self.form.rowBy(tag:"showRoomName")! row.value = room.name row.title = "" //row.hidden = false row.updateCell() } //选择的参会人员 func selectPersonPassValue(_ persons: [PersonV2]) { self.persons = persons self.meetingForm.invitePersonList.removeAll(keepingCapacity: true) self.persons?.forEach({ (p:PersonV2) in self.meetingForm.invitePersonList.append(p.name!) }) let row:RowOf = self.form.rowBy(tag:"showPersonList")! row.value = self.meetingForm.invitePersonList.joined(separator: ",") if persons.isEmpty { row.title = "请选择参会人员" }else { row.title = "" } row.updateCell() } }