123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- //
- // ContactCompanyDeptController.swift
- // O2Platform
- //
- // Created by 刘振兴 on 16/7/14.
- // Copyright © 2016年 zoneland. All rights reserved.
- //
- import UIKit
- import Alamofire
- import AlamofireImage
- import AlamofireObjectMapper
- import SwiftyJSON
- import ObjectMapper
- import CocoaLumberjack
- class ContactCompanyDeptController: UITableViewController {
-
-
- var superCompany:Company? {
- didSet{
- let url = AppDelegate.o2Collect.generateURLWithAppContextKey(ContactContext.contactsContextKey, query: ContactContext.subCompanyByNameQuery, parameter: ["##name##":(superCompany?.name)! as AnyObject])
- myCompanyURL = url
- }
- }
-
- var compContacts:[CellViewModel] = []
-
- var myCompanyURL:String?
-
- override func viewDidLoad() {
- super.viewDidLoad()
- self.title = superCompany?.name
- self.tableView.mj_header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadCompData(_:)))
- self.loadCompData(nil)
-
- }
- // MARK: - Table view data source
- override func numberOfSections(in tableView: UITableView) -> Int {
- // #warning Incomplete implementation, return the number of sections
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.compContacts.count
- }
-
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "compContactCell", for: indexPath) as! ContactItemCell
- cell.cellViewModel = self.compContacts[(indexPath as NSIndexPath).row]
- return cell
- }
-
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- let viewModel = self.compContacts[(indexPath as NSIndexPath).row]
- switch viewModel.dataType {
- case .company(let c):
- self.superCompany = c as? Company
- self.loadCompData(nil)
- case .depart(let d):
- self.performSegue(withIdentifier: "sDeptPersonSegue", sender:d)
- default:
- DDLogDebug(viewModel.name!)
- }
- }
-
-
- // MARK: - Navigation
- // In a storyboard-based application, you will often want to do a little preparation before navigation
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- if segue.identifier == "sDeptPersonSegue" {
- let destVC = segue.destination as! ContactDeptPersonController
- destVC.superOrgUnit = sender as? OrgUnit
- }
- }
-
-
- @objc func loadCompData(_ obj:AnyObject?){
- self.showLoading(title: "加载中...")
- AF.request(self.myCompanyURL!).responseJSON {
- response in
- //debugPrint(response)
- switch response.result {
- case .success(let val):
- self.compContacts.removeAll()
- let compnayList = JSON(val)["data"]["companyList"]
- let companys = Mapper<Company>().mapArray(JSONString:compnayList.description)
- for comp in companys!{
- let vm = CellViewModel(name: comp.name,sourceObject: comp)
- self.compContacts.append(vm)
- }
- let departmentList = JSON(val)["data"]["departmentList"]
- let departmets = Mapper<Department>().mapArray(JSONString:departmentList.description)
- for dept in departmets!{
- let vm = CellViewModel(name: dept.name,sourceObject: dept)
- self.compContacts.append(vm)
- }
- self.showSuccess(title: "加载完成")
- case .failure(let err):
- DDLogError(err.localizedDescription)
- self.showError(title: "加载失败")
- }
- if self.tableView.mj_header.isRefreshing() {
- self.tableView.mj_header.endRefreshing()
- }
- self.tableView.reloadData()
- }}
- }
|