CNLiveShopBodyCouponManagerView.swift 9.97 KB
//
//  CNLiveShopBodyCouponManagerView.swift
//  metaCode
//
//  Created by open on 2023/11/20.
//

import Foundation

typealias clickCouponListActionCallBack = (_ index: NSInteger,_ listModel: ShopOrderCouponListModel) -> Void
typealias clickCouponListEditCallBack = (_ select: Bool,_ couponId: NSString) -> Void
class ShopBodyCouponManagerTableView: UITableViewCell {
    
    lazy var selectBtn: UIButton = {
        let selectBtn = UIButton.init(type: .custom)
        selectBtn.isHidden = true
        selectBtn.setImage(UIImage(named: "DS_coupon_unSelect"), for: .normal)
        selectBtn.setImage(UIImage(named: "DS_coupon_edit_se"), for: .selected)
        selectBtn.addTarget(self, action: #selector(editBtnClick), for: .touchUpInside)
        return selectBtn
    }()
    
    lazy var bgWhiteView: UIView = {
        let bgWhiteView = UIView.init()
        bgWhiteView.backgroundColor = .white
        bgWhiteView.layer.cornerRadius = adapt_length(length: 7)
        bgWhiteView.clipsToBounds = true
        return bgWhiteView
    }()
    
    lazy var leftBgView: UIView = {
        let leftBgView = UIView.init()
        leftBgView.backgroundColor = HexColor("#fba2a2")
        return leftBgView
    }()
    
    lazy var lessMoneyLabel: UILabel = {
        let lessMoneyLabel = UILabel.init()
        lessMoneyLabel.textColor = .white
        lessMoneyLabel.font = regular_adapt_font(pointSize: 38)
        lessMoneyLabel.textAlignment = .center
        return lessMoneyLabel
    }()
    
    lazy var maxMoneyLabel: UILabel = {
        let maxMoneyLabel = UILabel.init()
        maxMoneyLabel.textColor = .white
        maxMoneyLabel.font = regular_adapt_font(pointSize: 12.5)
        maxMoneyLabel.textAlignment = .center
        return maxMoneyLabel
    }()
    
    lazy var titleLabel: UILabel = {
        let titleLabel = UILabel.init()
        titleLabel.textColor = HexColor("#444444")
        titleLabel.font = medium_adapt_font(pointSize: 15)
        titleLabel.textAlignment = .left
        return titleLabel
    }()
    
    lazy var idLabel: UILabel = {
        let idLabel = UILabel.init()
        idLabel.textColor = HexColor("#bebebe")
        idLabel.font = regular_adapt_font(pointSize: 12)
        idLabel.textAlignment = .left
        return idLabel
    }()
    
    lazy var typeLabel: UILabel = {
        let typeLabel = UILabel.init()
        typeLabel.textColor = HexColor("#999999")
        typeLabel.font = regular_adapt_font(pointSize: 12)
        typeLabel.textAlignment = .left
        return typeLabel
    }()
    
    lazy var totalLabel: UILabel = {
        let totalLabel = UILabel.init()
        totalLabel.textColor = HexColor("#bebebe")
        totalLabel.font = regular_adapt_font(pointSize: 12)
        totalLabel.textAlignment = .left
        return totalLabel
    }()
    
    lazy var lineView: UILabel = {
        let lineView = UILabel.init()
        lineView.backgroundColor = HexColor("#e6e6e6")
        return totalLabel
    }()
    
    lazy var showMessageLabel: UILabel = {
        let showMessageLabel = UILabel.init()
        showMessageLabel.textColor = HexColor("#999999")
        showMessageLabel.text = "是否显示"
        showMessageLabel.font = regular_adapt_font(pointSize: 12)
        showMessageLabel.textAlignment = .left
        return showMessageLabel
    }()
    
    lazy var shareBtn: UIButton = {
        let shareBtn = UIButton.init(type: .custom)
        shareBtn.tag = 1001
        shareBtn.setTitle("分享", for: .normal)
        shareBtn.titleLabel?.font = regular_adapt_font(pointSize: 13)
        shareBtn.setTitleColor(HexColor("#fd862e"), for: .normal)
        shareBtn.addTarget(self, action: #selector(actionClick), for: .touchUpInside)
        return shareBtn
    }()
    
    lazy var editBtn: UIButton = {
        let editBtn = UIButton.init(type: .custom)
        editBtn.tag = 1002
        editBtn.setTitle("编辑", for: .normal)
        editBtn.titleLabel?.font = regular_adapt_font(pointSize: 13)
        editBtn.setTitleColor(HexColor("#fd862e"), for: .normal)
        editBtn.addTarget(self, action: #selector(actionClick), for: .touchUpInside)
        return editBtn
    }()
    
    lazy var showSwitch: UISwitch = {
        let showSwitch = UISwitch.init()
        showSwitch.addTarget(self, action: #selector(switchChangesd), for: .touchUpInside)
        showSwitch.transform = CGAffineTransformMakeScale(0.7, 0.7)
        return showSwitch
    }()
    
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        contentView.backgroundColor = .clear
        selectionStyle = .none
        isUserInteractionEnabled = true
        
        addSubview(selectBtn)
        selectBtn.snp.makeConstraints { make in
            make.left.equalToSuperview().offset(adapt_length(length: 15))
            make.centerY.equalToSuperview()
            make.size.equalTo(adapt_length(length: 30))
        }
        
        contentView.addSubview(bgWhiteView)
        bgWhiteView.snp.makeConstraints { make in
            make.left.equalTo(contentView).offset(adapt_length(length: 15))
            make.right.equalToSuperview().offset(-adapt_length(length: 15))
            make.top.bottom.equalToSuperview()
        }
        
        bgWhiteView.addSubview(leftBgView)
        leftBgView.snp.makeConstraints { make in
            make.left.top.right.equalTo(bgWhiteView)
            make.width.equalTo(adapt_length(length: 110))
        }
        
        leftBgView.addSubview(lessMoneyLabel)
        lessMoneyLabel.snp.makeConstraints { make in
            make.top.equalTo(leftBgView).offset(adapt_length(length: 23))
            make.left.right.equalTo(leftBgView)
        }
        
        leftBgView.addSubview(maxMoneyLabel)
        maxMoneyLabel.snp.makeConstraints { make in
            make.top.equalTo(lessMoneyLabel.snp.bottom)
            make.left.right.equalTo(leftBgView)
        }
        
        bgWhiteView.addSubview(titleLabel)
        titleLabel.snp.makeConstraints { make in
            make.center.equalToSuperview()
        }
        
        bgWhiteView.addSubview(idLabel)
        idLabel.snp.makeConstraints { make in
            make.right.equalTo(shareBtn.snp.left)
            make.left.equalTo(titleLabel.snp.right).offset(adapt_length(length: 10))
            make.centerY.equalTo(titleLabel)
        }
        
        bgWhiteView.addSubview(typeLabel)
        typeLabel.snp.makeConstraints { make in
            make.left.equalTo(titleLabel)
            make.top.equalTo(titleLabel.snp.bottom).offset(adapt_length(length: 5))
        }
        
        bgWhiteView.addSubview(totalLabel)
        totalLabel.snp.makeConstraints { make in
            make.left.equalTo(titleLabel)
            make.top.equalTo(typeLabel.snp.bottom).offset(adapt_length(length: 1))
            make.right.equalTo(editBtn.snp.left)
        }
        
        bgWhiteView.addSubview(lineView)
        lineView.snp.makeConstraints { make in
            make.left.equalTo(titleLabel)
            make.top.equalTo(totalLabel.snp.bottom).offset(adapt_length(length: 10))
            make.right.equalTo(bgWhiteView).offset(-adapt_length(length: 15))
            make.height.equalTo(adapt_length(length: 0.5))
        }
        
        bgWhiteView.addSubview(showMessageLabel)
        showMessageLabel.snp.makeConstraints { make in
            make.left.equalTo(titleLabel)
            make.bottom.equalTo(bgWhiteView).offset(-adapt_length(length: 15))
        }
        
        bgWhiteView.addSubview(shareBtn)
        shareBtn.snp.makeConstraints { make in
            make.right.equalTo(lineView)
            make.centerY.equalTo(titleLabel)
            make.width.equalTo(adapt_length(length: 30))
            make.height.equalTo(adapt_length(length: 18.5))
        }
        
        bgWhiteView.addSubview(editBtn)
        editBtn.snp.makeConstraints { make in
            make.right.equalTo(lineView)
            make.centerY.equalTo(totalLabel)
            make.width.equalTo(adapt_length(length: 45))
            make.height.equalTo(adapt_length(length: 18.5))
        }
        
        bgWhiteView.addSubview(showSwitch)
        showSwitch.snp.makeConstraints { make in
            make.centerY.equalTo(showMessageLabel)
            make.right.equalTo(lineView)
        }
    }
    
    override func setEditing(_ editing: Bool, animated: Bool) {
        if editing {
            selectBtn.isHidden = false
            bgWhiteView.snp.remakeConstraints { make in
                make.left.equalTo(contentView).offset(adapt_length(length: 55))
            }
        } else {
            selectBtn.isSelected = false
            selectBtn.isHidden = true
            bgWhiteView.snp.makeConstraints { make in
                make.left.equalTo(contentView).offset(adapt_length(length: 15))
            }
        }
    }
    
    var _listModel: ShopOrderCouponListModel!
    func setupWithDataSource(listModel: ShopOrderCouponListModel) {
        _listModel = listModel
    }
    
    func dealDiscountAndFilledNumber(count: NSInteger) -> NSString {
        var afterCount: NSString = ""
        if (count >= 0 && count < 10000)  {
            afterCount = "\(count)" as NSString
        } else if (count > 10000 && count < 10000000) {
            if (count%10000 != 0) {
                afterCount = "\(count/10000)万" as NSString
            } else {
                
            }
        }
        return afterCount
     }
    
    @objc func switchChangesd(sender: UISwitch) {
        
    }
    
    var actionCallBack: clickCouponListActionCallBack!
    @objc func actionClick(sender: UISwitch) {
        if (actionCallBack != nil) {
            actionCallBack(sender.tag - 1001, _listModel)
        }
    }
    
    var editCallBack: clickCouponListEditCallBack!
    @objc func editBtnClick(sender: UIButton) {
        sender.isSelected = !sender.isSelected
        if (editCallBack != nil) {
            editCallBack(sender.isSelected, _listModel.id! as NSString)
        }
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}