无故事王国
2023-10-30 43574ebb55e06a2213d3097745f82968efc43b32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//
//  PaymentView.swift
//  WanPai
//
//  Created by 杨锴 on 2023/6/8.
//
 
import UIKit
import JQTools
 
class PaymentView: UIView,JQNibView{
 
    @IBOutlet weak var view_container: UIView!
    @IBOutlet weak var cons_bottom: NSLayoutConstraint!
    @IBOutlet weak var btn_wechat: UIButton!
    @IBOutlet weak var btn_alipay: UIButton!
    @IBOutlet weak var btn_coin: UIButton!
    @IBOutlet weak var btn_course: UIButton!
    @IBOutlet weak var label_integral: UILabel!
    
    @IBOutlet weak var view_wechat: UIView!
    @IBOutlet weak var view_alipay: UIView!
    @IBOutlet weak var view_coin: UIView!
    @IBOutlet weak var view_course: UIView!
    @IBOutlet weak var view_integral: UIView!
    
    @IBOutlet weak var label_wechatMoney: UILabel!
    @IBOutlet weak var label_aliPayMoney: UILabel!
    @IBOutlet weak var label_coinMoney: UILabel!
    @IBOutlet weak var label_courseMoney: UILabel!
    @IBOutlet weak var btn_complete: UIButton!
    @IBOutlet weak var btn_integral: UIButton!
    private var hasNotStudent:Bool = false
    private var clouse:((PayType)->Void)?
    private var payType:PayType?
 
    override func awakeFromNib() {
        super.awakeFromNib()
 
        cons_bottom.constant = -(225 + UIDevice.jq_safeEdges.bottom)
        view_wechat.isHidden = true
        view_coin.isHidden = true
        view_course.isHidden = true
        view_alipay.isHidden = true
        alpha = 0
 
        layoutIfNeeded()
    }
 
    static func show(money:(ali:Double?,wx:Double?,coin:Int?,course:Int?,integral:Int?),hasNotStudent:Bool = false,_ clouse:@escaping (PayType)->Void){
        let paymentView = PaymentView.jq_loadNibView()
        paymentView.frame = sceneDelegate?.window?.frame ?? .zero
        paymentView.clouse = clouse
//        paymentView.view_wechat.isHidden = (money.wx == nil || money.wx == 0)
        paymentView.view_coin.isHidden = (money.coin == nil || money.coin == 0)
        paymentView.view_course.isHidden = (money.course == nil || money.course == 0)
        paymentView.view_alipay.isHidden = (money.ali == nil || money.ali == 0)
        paymentView.view_integral.isHidden = (money.integral == nil || money.integral == 0)
        paymentView.label_aliPayMoney.text = money.ali?.currency() ?? "0"
        paymentView.label_wechatMoney.text = money.wx?.currency() ?? "0"
        paymentView.label_coinMoney.text = "\(money.coin ?? 0)币"
        paymentView.label_courseMoney.text = "\(money.course ?? 0)课时"
        paymentView.label_integral.text = "\(money.integral ?? 0)积分"
        paymentView.view_course.alpha = hasNotStudent ? 0.5:1
        sceneDelegate?.window?.addSubview(paymentView)
        paymentView.cons_bottom.constant = 0
 
        var customType = [PayType]()
        if !paymentView.view_alipay.isHidden{customType.append(.aliPay)}
        if !paymentView.view_wechat.isHidden{customType.append(.wechat)}
        if !paymentView.view_coin.isHidden{customType.append(.coin)}
 
        paymentView.btn_course.isUserInteractionEnabled = !hasNotStudent
 
        paymentView.payType = customType.first
        switch customType.first {
            case .aliPay:paymentView.btn_alipay.isSelected = true
            case .coin:paymentView.btn_coin.isSelected = true
            case .wechat:paymentView.btn_wechat.isSelected = true
            default:break
        }
 
        UIView.animate(withDuration: 0.4) {
            paymentView.alpha = 1
            paymentView.layoutIfNeeded()
        }
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20)
        btn_complete.localGradientColor(cornerRadius: 20)
    }
    
    
    private func hidden(){
        cons_bottom.constant = -(225 + UIDevice.jq_safeEdges.bottom)
        UIView.animate(withDuration: 0.4) {
            self.alpha = 0
            self.layoutIfNeeded()
        }completion: { _ in
            self.removeFromSuperview()
        }
    }
    
    
    @IBAction func tapAction(_ sender: UIButton) {
        switch sender.tag{
            case 10:
                payType = .wechat
            case 11:
                payType = .aliPay
            case 12:
                payType = .coin
            case 14:
                payType = .courseNum
            case 15:
                payType = .integral
            default:break
        }
        
        btn_alipay.isSelected = payType == .aliPay
        btn_coin.isSelected = payType == .coin
        btn_wechat.isSelected = payType == .wechat
        btn_course.isSelected = payType == .courseNum
        btn_integral.isSelected = payType == .integral
    }
    
    @IBAction func paymentAction(_ sender: UIButton) {
        guard payType != nil else {alertError(msg: "请选择支付方式");return}
        clouse?(payType!)
        hidden()
    }
    
    @IBAction func cancelAction(_ sender: UIButton) {
        hidden()
    }
    
}