| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- //
- // MeetingUpdateViewController.swift
- // O2Platform
- //
- // Created by 刘振兴 on 16/9/11.
- // 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 MeetingUpdateViewController: FormViewController {
-
-
- var persons:[PersonV2] = []
-
- var sRoom:Room?
-
- var meetingForm = MeetingForm()
-
- var meeting:Meeting?
-
- override func viewDidLoad() {
- super.viewDidLoad()
- //设置form
- self.meetingForm.subject = self.meeting?.subject
- self.meetingForm.desc = self.meeting?.desc
- self.meetingForm.meetingDate = SharedDateUtil.dateFromString(string:(self.meeting?.startTime)!, withFormat: SharedDateUtil.kNSDateHelperFormatSQLDateWithTime) as Date
- self.meetingForm.startTime = SharedDateUtil.dateFromString(string:(self.meeting?.startTime)!, withFormat: SharedDateUtil.kNSDateHelperFormatSQLDateWithTime) as Date
- self.meetingForm.completedTime = SharedDateUtil.dateFromString(string:(self.meeting?.completedTime)!, withFormat: SharedDateUtil.kNSDateHelperFormatSQLDateWithTime) as Date
- //读取会议室及名称
- self.loadRoomInfo((self.meeting?.room)!)
- //读取人员信息
- self.loadPersonInfo((self.meeting?.invitePersonList)!)
- self.meetingForm.invitePersonList = (meeting?.invitePersonList)!
- //初始化UI
- self.setupUI()
-
- }
-
- func loadRoomInfo(_ roomId:String){
- let url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.roomItemIdQuery, parameter: ["##id##":roomId as AnyObject])
- Alamofire.request(url!).responseObject(queue: nil, keyPath: "data", mapToObject: nil, context: nil, completionHandler: { (resp:DataResponse<Room>) in
- switch resp.result {
- case .success(let room):
- self.sRoom = room
- self.meetingForm.room = room.id
- self.meetingForm.roomName = room.name
- let row:RowOf<String> = self.form.rowBy(tag:"showRoomName")!
- row.value = room.name
- row.title = ""
- //row.hidden = false
- row.updateCell()
- case .failure(let err):
- DDLogError(err.localizedDescription)
- }
- })
- }
-
- func loadPersonInfo(_ names:[String]){
- names.forEachEnumerated { (index,name) in
- let url = AppDelegate.o2Collect.generateURLWithAppContextKey(ContactContext.contactsContextKeyV2, query: ContactContext.personInfoByNameQuery, parameter: ["##name##":name as AnyObject])
- Alamofire.request(url!).responseObject(queue: nil,keyPath:"data", completionHandler: { (resp:DataResponse<PersonV2>) in
- switch resp.result {
- case .success(let person):
- self.persons.append(person)
- case .failure(let err):
- DDLogError(err.localizedDescription)
- }
- })
- }
-
- }
-
- func setupUI(){
- 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 = "请输入主题"
- row.value = self.meetingForm.subject
- }.onChange({ row in
- self.meetingForm.subject = row.value
- })
- <<< DateRow("startDate"){ row in
- row.title = "会议日期"
- row.value = self.meetingForm.meetingDate
- }.onChange({ row in
- self.meetingForm.meetingDate = row.value!
- })
- <<< TimeRow("startTime"){ row in
- row.title = "开始时间"
- row.value = self.meetingForm.startTime
- }.onChange({ row in
- self.meetingForm.startTime = row.value!
- })
- <<< TimeRow("completeTime") { row in
- row.title = "完成时间"
- row.value = self.meetingForm.completedTime
- }.onChange({ row in
- self.meetingForm.completedTime = row.value!
- })
- <<< ButtonRow("roomName") { row in
- row.title = "选择会议室"
- row.presentationMode = .segueName(segueName: "showUpdateMeetingRoomSegue",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:"showUpdatePersonListSegue",onDismiss:nil)
- }
- <<< LabelRow("showPersonList"){ row in
- row.title = "请选择参会人员"
- var pShow:[String] = []
- for p in self.meetingForm.invitePersonList {
- pShow.append(p.split("@")[0])
- }
- row.value = pShow.joined(separator: ",")
- }
-
- +++ Section("会议说明")
- <<< TextAreaRow("desc") { row in
- row.title = "会议说明"
- row.value = self.meetingForm.desc
- }.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 == "showUpdateMeetingRoomSegue" {
- 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 == "showUpdatePersonListSegue" {
- //选择人员前执行
- let destVC = segue.destination as! MeetingPersonListViewController
- destVC.delegate = self
- destVC.selectPersons = persons
- //
- // if let ps = persons {
- // destVC.selectPersons = ps
- // }
- }
- }
-
-
- @IBAction func submitMeetingAction(_ sender: UIBarButtonItem) {
- let meetingFormBean = MeetingFormBean(meetingForm: self.meetingForm)
- self.meeting?.subject = meetingFormBean.subject
- self.meeting?.desc = meetingFormBean.description
- self.meeting?.startTime = meetingFormBean.startTime
- self.meeting?.completedTime = meetingFormBean.completedTime
- self.meeting?.invitePersonList = meetingFormBean.invitePersonList
- self.meeting?.room = meetingFormBean.room
- let url = AppDelegate.o2Collect.generateURLWithAppContextKey(MeetingContext.meetingContextKey, query: MeetingContext.meetingItemIdQuery, parameter: ["##id##":(meeting?.id)! as AnyObject])
- ProgressHUD.show("更新会议中...")
- Alamofire.request(url!,method:.put, parameters: meeting?.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: "updateBackMainSegue", sender: nil)
- }else {
- DDLogError(json.description)
- ProgressHUD.showError("更新失败")
- }
- case .failure(let err):
- DDLogError(err.localizedDescription)
- ProgressHUD.showError("更新失败")
- }
- }
- }
-
-
- }
- extension MeetingUpdateViewController:MeetingRoomPassValueDelegate,MeetingPersonListPassValue{
- //选择的会议室
- func selectRoom(_ room: Room) {
- self.sRoom = room
- self.meetingForm.room = room.id
- self.meetingForm.roomName = room.name
- let row:RowOf<String> = 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.distinguishedName!)
- })
- let row:RowOf<String> = self.form.rowBy(tag: "showPersonList")!
- var pShow:[String] = []
- for p in self.meetingForm.invitePersonList {
- pShow.append(p.split("@")[0])
- }
- row.value = pShow.joined(separator: ",")
- if persons.isEmpty {
- row.title = "请选择参会人员"
- }else {
- row.title = ""
- }
- row.updateCell()
- }
- }
|