| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- //
- // ContactItemCell.swift
- // O2Platform
- //
- // Created by 刘振兴 on 16/7/12.
- // Copyright © 2016年 zoneland. All rights reserved.
- //
- import UIKit
- import Alamofire
- import AlamofireImage
- import AlamofireObjectMapper
- class ContactItemCell: UITableViewCell {
- @IBOutlet weak var iconImageView: UIImageView!
- @IBOutlet weak var nameLabel: UILabel!
- @IBOutlet weak var headBarView: UITextView!
- @IBOutlet weak var iconTagLabel: UILabel!
-
- var cellViewModel:CellViewModel? {
- didSet {
- configCellViewModel()
- }
- }
-
- override func awakeFromNib() {
-
- }
- override func setSelected(_ selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- }
-
- private func configCompany(){
- self.nameLabel.text = cellViewModel?.name
- self.iconTagLabel.isHidden = true
- self.iconImageView.image = UIImage(named: "contact_org_icon")
- self.iconImageView.layer.masksToBounds = true
- self.iconImageView.layer.cornerRadius = self.iconImageView.width / 2.0
- }
-
- private func configDepart(){
- nameLabel.text = cellViewModel?.name
- iconTagLabel.isHidden = false
- iconImageView.image = UIImage(named: "pic_oval")
- iconImageView.frame = CGRect(x: 18, y: 5, width: 40, height: 40)
- iconImageView.layer.masksToBounds = true
- iconImageView.layer.cornerRadius = 40 / 2.0
- if let orgName = cellViewModel?.name,orgName != "" {
- iconTagLabel.text = NSString(string: orgName).substring(to: 1)
- iconTagLabel.center = iconImageView.center
- }
- nameLabel.font = UIFont(name: "PingFang SC", size: 14)
- nameLabel.frame.x = 66
- }
-
- private func configGroup(){
- self.nameLabel.text = cellViewModel?.name
- self.iconTagLabel.isHidden = true
- self.iconImageView.image = UIImage(named: "contact_org_icon")
- self.iconImageView.layer.masksToBounds = true
- self.iconImageView.layer.cornerRadius = self.iconImageView.width / 2.0
- }
-
- private func configPerson(_ p:PersonV2){
- self.nameLabel.text = cellViewModel?.name
- self.iconTagLabel.isHidden = true
- self.iconImageView.layer.masksToBounds = true
- self.iconImageView.layer.cornerRadius = self.iconImageView.width / 2.0
- let person = p
- let urlstr = AppDelegate.o2Collect.generateURLWithAppContextKey(ContactContext.contactsContextKeyV2, query: ContactContext.personIconByNameQueryV2, parameter: ["##name##":person.id as AnyObject], generateTime: false)
- let url = URL(string: urlstr!)
- self.iconImageView.hnk_setImageFromURL(url!)
- }
-
- private func configIdentity(_ i:IdentityV2){
- self.nameLabel.text = cellViewModel?.name
- self.iconTagLabel.isHidden = true
- self.iconImageView.layer.masksToBounds = true
- self.iconImageView.layer.cornerRadius = self.iconImageView.width / 2.0
- let identity = i
- let urlstr = AppDelegate.o2Collect.generateURLWithAppContextKey(ContactContext.contactsContextKeyV2, query: ContactContext.personIconByNameQueryV2, parameter: ["##name##":identity.person as AnyObject], generateTime: false)
- let url = URL(string: urlstr!)
- self.iconImageView.hnk_setImageFromURL(url!)
- }
-
- private func configTitle(_ t:HeadTitle){
- let title = t
- if title.isBar {
- headBarView.textContainer.maximumNumberOfLines = 1
- headBarView.textContainer.lineBreakMode = .byTruncatingTail
- headBarView.text = ""
- if let bars = title.barText {
- bars.forEachEnumerated { (index, bar) in
- if bars.count == (index+1) {
- self.headBarView.appendLinkString(string: bar.name ?? "")
- }else{
- self.headBarView.appendLinkString(string: (bar.name ?? "") + " > ", withURLString: "reloadto:\(bar.id ?? "")")
- }
- }
- }
- }else{
- nameLabel.text = cellViewModel?.name
- iconTagLabel.isHidden = true
- iconImageView.image = UIImage(named: title.icon!)
- iconImageView.frame = CGRect(x: 8, y: 10, width: 30, height: 30)
- iconImageView.layer.masksToBounds = true
- iconImageView.layer.cornerRadius = 15.0
- nameLabel.font = UIFont(name: "PingFang SC", size: 16.0)
- nameLabel.frame.x = 66
-
- }
- }
-
-
-
- func configCellViewModel() {
- let dataType = cellViewModel?.dataType
- switch dataType! {
- case .company(_):
- configCompany()
- break
- case .depart(_):
- configDepart()
- break
- case .group(_):
- configGroup()
- break
- case .person(let p):
- configPerson(p as! PersonV2)
- break
- case .identity(let i):
- configIdentity(i as! IdentityV2)
- case .title(let t):
- configTitle(t as! HeadTitle)
- break
- default:
- break
- }
- }
- }
|