CNLiveDigitalResumePreviewFourCell.swift 10.7 KB
//
//  CNLiveDigitalResumePreviewFourCell.swift
//  metaCode
//
//  Created by zx on 2024/8/7.
//  数字简历-Four 工作记录cell

import Foundation
import Kingfisher
import SnapKit
import JFHeroBrowser


class CNLiveDigitalResumePreviewFourCell: UITableViewCell,UITableViewDelegate,UITableViewDataSource {
    var resumeType:CNLiveResumeType = .normal

    var cellType:CNLiveViateWorkAwardType = .work
    var cellH:Float = 58+45+37+54//默认顶部,空视图,底部高度
    
    //workModel
    var _workMdls : [CNLiveVitaeWorksModel]?
    var workMdls : [CNLiveVitaeWorksModel]? {
        get{
            _workMdls
        }
        set{
            _workMdls = newValue!
            setupNewUI(models: _workMdls!)
        }
    }
    
    //awardModel
    var _awardModels : [CNLiveVitaeAwardsModel]?
    var awardModels : [CNLiveVitaeAwardsModel]? {
        get{
            _awardModels
        }
        set{
            _awardModels = newValue!
            setupAwardNewUI(models: _awardModels!)
        }
    }
        
//    lazy var images: [HeroBrowserViewModuleBaseProtocol] = {
//        var list: [HeroBrowserViewModuleBaseProtocol] = []
//        return list
//    }()

    var vitaeWorkPreviewVideoPhotoBlock:VitaeWorkPreviewVideoPhotoBlock?
    var vitaePreviewWorkCellChangedBlock:vitaePreviewWorkCellChangedBlockActionBlock?

    let kCNLiveDigitalResumePreviewFourWorkAwardCellIdentifier = "kCNLiveDigitalResumePreviewFourWorkAwardCellIdentifier"
    lazy var tableView : UITableView = {
        let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: KSreenWidth-30, height: 50), style: .plain)
        tableView.dataSource = self
        tableView.delegate = self
        tableView.separatorStyle = .none
        tableView.tableFooterView = UIView.init()
        tableView.backgroundColor = .clear
        tableView.register(CNLiveDigitalResumePreviewFourWorkAwardCell.self, forCellReuseIdentifier: kCNLiveDigitalResumePreviewFourWorkAwardCellIdentifier)
        return tableView
    }()
    
    lazy var whiteView :UIView = {
        let whiteView = UIView(frame: CGRect(x: 15, y:15, width: KSreenWidth-30, height: DefaultPreViewCellHeight))
        whiteView.backgroundColor = .white
        whiteView.layer.cornerRadius = 12
        whiteView.clipsToBounds = true
        return whiteView
    }()
    lazy var myIdentityTitleLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = HexColor("#333333")
        titleLabel.textAlignment = .center
        titleLabel.text = "工作记录"
        titleLabel.font = BoldFont_16
        return titleLabel
    }()

    lazy var zhengshuNoDescTitleLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = HexColor("#999999")
        titleLabel.textAlignment = .left
        titleLabel.text = "还没有添加工作记录"
        titleLabel.font = Font_12
        return titleLabel
    }()
    lazy var zhengshuNoIconImgView :UIImageView = {
        let iconImgView = UIImageView(frame: CGRect(x: 18, y: 0, width: 60, height: 45))
        iconImgView.contentMode = .scaleAspectFit
        iconImgView.image = UIImage(named: "mine_jianli_preview_workNoData")
        return iconImgView
    }()
    
    lazy var zhengshuBtn: UIButton = {
        let  closeBtn = UIButton(type: .custom)
        closeBtn.setTitle("管理工作记录", for: .normal)
        closeBtn.setTitleColor(HexColor("#1961FE"), for: .normal)
        closeBtn.titleLabel?.font = BoldFont_14
        closeBtn.layer.borderColor = HexColor("#1961FE")?.cgColor
        closeBtn.layer.borderWidth = 0.5
        closeBtn.layer.cornerRadius = 6
        closeBtn.clipsToBounds = true
        closeBtn.addTarget(self, action: #selector(zhengshuBtnAction), for: .touchUpInside)
        return closeBtn
    }()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        self.contentView.backgroundColor = .clear
        self.backgroundColor = .clear
        self.selectionStyle = .none
        
        self.contentView.addSubview(self.whiteView)
        self.whiteView.snp.makeConstraints { make in
            make.top.equalTo(15)
            make.bottom.equalToSuperview()
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
        }
        
        self.whiteView.addSubview(self.myIdentityTitleLabel)
        self.myIdentityTitleLabel.snp.makeConstraints { make in
            make.top.equalToSuperview().offset(adapt_length(length: 15))
            make.left.equalTo(adapt_length(length: 15))
        }
        self.whiteView.addSubview(self.zhengshuBtn)
        self.zhengshuBtn.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalToSuperview().offset(-20)
            make.width.equalTo(110)
            make.height.equalTo(34)
        }
        
        self.whiteView.addSubview(self.tableView)
        self.tableView.snp.makeConstraints { make in
            make.top.equalTo(self.myIdentityTitleLabel.snp.bottom)
            make.left.right.equalToSuperview()
            make.bottom.equalTo(self.zhengshuBtn.snp.top)
        }
        
        self.whiteView.addSubview(self.zhengshuNoDescTitleLabel)
        self.zhengshuNoDescTitleLabel.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalTo(self.zhengshuBtn.snp.top).offset(-10)
        }
        self.whiteView.addSubview(self.zhengshuNoIconImgView)
        self.zhengshuNoIconImgView.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalTo(self.zhengshuNoDescTitleLabel.snp.top).offset(-10)
            make.width.equalTo(60)
            make.height.equalTo(45)
        }

    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func setupAwardNewUI(models:[CNLiveVitaeAwardsModel]){
        self.myIdentityTitleLabel.text = "获奖情况"
        self.zhengshuBtn.setTitle("管理获奖情况", for: .normal)
        if models.count > 0{
            self.zhengshuNoIconImgView.isHidden = true
            self.zhengshuNoDescTitleLabel.isHidden = true
            if self.resumeType == .normal{
                self.tableView.snp.remakeConstraints { make in
                    make.top.equalTo(self.myIdentityTitleLabel.snp.bottom)
                    make.left.right.equalToSuperview()
                    make.bottom.equalTo(self.zhengshuBtn.snp.top)
                }
            }else{
                self.tableView.snp.remakeConstraints { make in
                    make.top.equalTo(self.myIdentityTitleLabel.snp.bottom)
                    make.left.right.equalToSuperview()
                    make.bottom.equalToSuperview().offset(-10)
                }
            }
        }else{
            self.zhengshuNoIconImgView.isHidden = false
            self.zhengshuNoDescTitleLabel.isHidden = false
            self.zhengshuNoIconImgView.image = UIImage(named: "mine_jianli_noaward")
            self.zhengshuNoDescTitleLabel.text = "还没有添加获奖情况"
        }

        self.tableView.reloadData()
    }
    func setupNewUI(models:[CNLiveVitaeWorksModel]){
        self.myIdentityTitleLabel.text = "工作记录"
        self.zhengshuBtn.setTitle("管理工作记录", for: .normal)

        if models.count > 0{
            self.zhengshuNoIconImgView.isHidden = true
            self.zhengshuNoDescTitleLabel.isHidden = true
            if self.resumeType == .normal{
                self.tableView.snp.remakeConstraints { make in
                    make.top.equalTo(self.myIdentityTitleLabel.snp.bottom)
                    make.left.right.equalToSuperview()
                    make.bottom.equalTo(self.zhengshuBtn.snp.top)
                }
            }else{
                self.tableView.snp.remakeConstraints { make in
                    make.top.equalTo(self.myIdentityTitleLabel.snp.bottom)
                    make.left.right.equalToSuperview()
                    make.bottom.equalToSuperview().offset(-10)
                }
            }
        }else{
            self.zhengshuNoIconImgView.isHidden = false
            self.zhengshuNoDescTitleLabel.isHidden = false
            self.zhengshuNoIconImgView.image = UIImage(named: "mine_jianli_preview_workNoData")
            self.zhengshuNoDescTitleLabel.text = "还没有添加工作记录"
        }
        self.tableView.reloadData()
    }
    
    
    // MARK: - UITableViewDelegate
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if self.cellType == .work{
            return self.workMdls?.count ?? 0
        }else{
            return self.awardModels?.count ?? 0
        }
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveDigitalResumePreviewFourWorkAwardCellIdentifier) as? CNLiveDigitalResumePreviewFourWorkAwardCell
        else {
            let cell = CNLiveDigitalResumePreviewFourWorkAwardCell()
            return cell
        }
        cell.btnIndex = indexPath.row
        if self.cellType == .work{
            //工作记录
            let workMdl = self.workMdls?[indexPath.row]
            cell.workMdl = workMdl
        }else{
            //获奖情况
            let awardMdl = self.awardModels?[indexPath.row]
            cell.awardModel = awardMdl
        }
        cell.vitaeWorkPreviewVideoPhotoBlock = { images , index in
            self.vitaeWorkPreviewVideoPhotoBlock?(images, index)
        }
        cell.vitaePreviewWorkCellChangedBlock = {index ,jianjieHeight,isExpand in
            self.vitaePreviewWorkCellChangedBlock?(index ,jianjieHeight,isExpand)
            
        }
        return cell
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if self.cellType == .work{
            //工作记录
            let workMdl = self.workMdls?[indexPath.row]
            return CGFloat(workMdl?.cellH ?? 0)
        }else{
            //获奖情况
            let awardMdl = self.awardModels?[indexPath.row]
            return CGFloat(awardMdl?.cellH ?? 0)
        }
    }
    
    // MARK: - Action
    @objc func zhengshuBtnAction(){
        if self.cellType == .work{
            //跳转 选择工作记录页面
            let vc = CNLiveVitaeWorkDetailController()
            vc.workAwardType = .work
            navigationViewController().pushViewController(vc, animated: true)
        }else if self.cellType == .award{
            //跳转 选择获奖情况页面
            let vc = CNLiveVitaeWorkDetailController()
            vc.workAwardType = .award
            navigationViewController().pushViewController(vc, animated: true)
        }else{
        }
        
    }
    
}