TaskCreateViewController.swift 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. //
  2. // TaskCreateViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 16/7/29.
  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 Eureka
  15. import CocoaLumberjack
  16. class TaskCreateViewController: FormViewController {
  17. var process:AppProcess?{
  18. didSet{
  19. }
  20. }
  21. var identitys:[IdentityV2]? {
  22. didSet {
  23. for identity in identitys! {
  24. identityString.append("\(identity.name!)(\(identity.unitName!))")
  25. }
  26. }
  27. }
  28. var task:TodoTask?
  29. var identityString:[String] = []
  30. override func viewDidLoad() {
  31. super.viewDidLoad()
  32. TextRow.defaultCellUpdate = {
  33. cell,row in
  34. cell.textLabel?.font = setting_content_textFont
  35. cell.textLabel?.textColor = setting_content_textColor
  36. //cell.textField.attributedPlaceholder = NSAttributedString(string: "",attributes: [NSFontAttributeName:setting_content_textFont,NSBackgroundColorAttributeName:setting_content_textColor])
  37. //cell.accessoryType = .disclosureIndicator
  38. }
  39. ActionSheetRow<String>.defaultCellUpdate = {
  40. cell,row in
  41. cell.textLabel?.font = setting_content_textFont
  42. cell.textLabel?.textColor = setting_content_textColor
  43. //cell.accessoryType = .disclosureIndicator
  44. }
  45. DateTimeRow.defaultCellUpdate = {
  46. cell,row in
  47. cell.textLabel?.font = setting_content_textFont
  48. cell.textLabel?.textColor = setting_content_textColor
  49. //cell.accessoryType = .disclosureIndicator
  50. }
  51. ButtonRow.defaultCellUpdate = {
  52. cell,row in
  53. cell.textLabel?.font = setting_item_textFont
  54. cell.textLabel?.theme_textColor = ThemeColorPicker(keyPath: "Base.base_color")
  55. }
  56. title = process?.name
  57. showInputUI()
  58. }
  59. // func loadDepartAndIdentity(){
  60. // let url = AppDelegate.o2Collect.generateURLWithAppContextKey(TaskContext.taskContextKey, query: TaskContext.todoCreateAvaiableIdentityByIdQuery, parameter: ["##processId##":process?.id as AnyObject])
  61. // Alamofire.request(url!).responseArray(keyPath:"data") { (response:DataResponse<[IdentityV2]>) in
  62. // switch response.result {
  63. // case .success(let identitys):
  64. // self.identitys = identitys
  65. // DispatchQueue.main.async {
  66. // self.showInputUI()
  67. // }
  68. //
  69. // case .failure(let err):
  70. // DDLogError(err.localizedDescription)
  71. // DispatchQueue.main.async {
  72. // self.showError(title: "读取身份列表失败")
  73. // }
  74. // }
  75. // }
  76. // }
  77. func showInputUI(){
  78. form +++ Section("创建流程")
  79. //不需要标题
  80. // <<< TextRow("title") {row in
  81. // row.title = "标题"
  82. // row.placeholder = "请输入标题"
  83. // }.cellSetup({ (cell, row) in
  84. // //cell.height = 50
  85. // })
  86. <<< ActionSheetRow<IdentityV2>("selectedIdentity") {
  87. $0.title = "用户身份"
  88. $0.selectorTitle = "请选择身份?"
  89. $0.options = self.identitys
  90. if(self.identitys != nil && self.identitys!.count>0){
  91. $0.value = self.identitys![0]
  92. }
  93. }.cellSetup({ (cell, row) in
  94. //cell.height = 50
  95. })
  96. <<< DateTimeRow("createTime") { row in
  97. row.title = "创建时间"
  98. row.value = Date()
  99. let formatter = DateFormatter()
  100. formatter.locale = Locale.current
  101. formatter.dateStyle = .long
  102. row.dateFormatter = formatter
  103. }.cellSetup({ (cell, row) in
  104. //cell.height = 50
  105. })
  106. +++ Section()
  107. <<< ButtonRow("createButton") { (row:ButtonRow) in
  108. row.title = "创建"
  109. }.onCellSelection({ (cell, row) in
  110. // let titleRow:TextRow = self.form.rowBy(tag:"title")!
  111. let identityRow:ActionSheetRow<IdentityV2> = self.form.rowBy(tag:"selectedIdentity")!
  112. // guard let title = titleRow.value else{
  113. // self.showError(title: "请输入标题")
  114. // return
  115. // }
  116. guard let id = identityRow.value else {
  117. self.showError(title: "请选择身份")
  118. return
  119. }
  120. self.createProcess(identity: id.distinguishedName!)
  121. })
  122. }
  123. func createProcess(identity:String){
  124. let bean = CreateProcessBean()
  125. bean.title = ""//不需要标题
  126. bean.identity = identity
  127. let createURL = AppDelegate.o2Collect.generateURLWithAppContextKey(WorkContext.workContextKey, query: WorkContext.workCreateQuery, parameter: ["##id##":(process?.id)! as AnyObject])
  128. self.showLoading(title: "创建中,请稍候...")
  129. Alamofire.request(createURL!,method:.post, parameters: bean.toJSON(), encoding: JSONEncoding.default, headers: nil).responseJSON { response in
  130. debugPrint(response.result)
  131. switch response.result {
  132. case .success(let val):
  133. let taskList = JSON(val)["data"][0]
  134. DDLogDebug(taskList.description)
  135. if let tasks = Mapper<TodoTask>().mapArray(JSONString:taskList["taskList"].debugDescription) , tasks.count > 0 {
  136. let taskStoryboard = UIStoryboard(name: "task", bundle: Bundle.main)
  137. let todoTaskDetailVC = taskStoryboard.instantiateViewController(withIdentifier: "todoTaskDetailVC") as! TodoTaskDetailViewController
  138. todoTaskDetailVC.todoTask = tasks[0]
  139. todoTaskDetailVC.backFlag = 1
  140. self.navigationController?.pushViewController(todoTaskDetailVC, animated: true)
  141. DispatchQueue.main.async {
  142. self.hideLoading()
  143. }
  144. } else {
  145. self.showError(title: "创建失败")
  146. }
  147. case .failure(let err):
  148. DDLogError(err.localizedDescription)
  149. self.showError(title: "创建失败")
  150. }
  151. }
  152. }
  153. }