Commit 786687c7 authored by Alex朱枝文's avatar Alex朱枝文

个人信息预览-收入记录ui调整

parent ad8f8a7a
...@@ -12,10 +12,18 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController { ...@@ -12,10 +12,18 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController {
enum TableRow { enum TableRow {
case infoHeader(_ title: String) case infoHeader(_ title: String)
case infoSectionHeader(_ title: String) case infoSectionHeader(_ title: String)
case infoTitleAndDetail(_ title: String, _ detail: String) case infoTitleAndDetail(_ title: String, _ detail: String, _ cellType: YHResignRoundCellType, _ topMargin: CGFloat, _ bottomMargin: CGFloat)
case infoIncomeType(_ title: String, _ types: [String]) case infoIncomeType(_ title: String, _ types: [String])
} }
private lazy var noDataView: YHEmptyDataView = {
let view = YHEmptyDataView.createView("暂无收入记录", kEmptyCommonBgName)
view.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: 164)
view.backgroundColor = .clear
view.isHidden = true
return view
}()
private lazy var datas: [TableRow] = [] private lazy var datas: [TableRow] = []
private lazy var viewModel = YHIncomeRecordViewModel() private lazy var viewModel = YHIncomeRecordViewModel()
private var incomeModel = YHIncomeRecordCompleteModel() private var incomeModel = YHIncomeRecordCompleteModel()
...@@ -39,12 +47,22 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController { ...@@ -39,12 +47,22 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController {
extension YHPreviewIncomeRecordViewController { extension YHPreviewIncomeRecordViewController {
private func setupUI() { private func setupUI() {
view.addSubview(noDataView)
noDataView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-100)
make.width.equalTo(KScreenWidth)
make.height.equalTo(164)
}
homeTableView.snp.remakeConstraints { make in
make.left.right.top.bottom.equalToSuperview()
}
homeTableView.register(YHPreviewInfoHeaderCell.self, forCellReuseIdentifier: YHPreviewInfoHeaderCell.cellReuseIdentifier) homeTableView.register(YHPreviewInfoHeaderCell.self, forCellReuseIdentifier: YHPreviewInfoHeaderCell.cellReuseIdentifier)
homeTableView.register(YHPreviewInfoNameAndDetailCell.self, forCellReuseIdentifier: YHPreviewInfoNameAndDetailCell.cellReuseIdentifier) homeTableView.register(YHPreviewInfoNameAndDetailCell.self, forCellReuseIdentifier: YHPreviewInfoNameAndDetailCell.cellReuseIdentifier)
homeTableView.register(YHPreviewInfoSectionHeaderCell.self, forCellReuseIdentifier: YHPreviewInfoSectionHeaderCell.cellReuseIdentifier) homeTableView.register(YHPreviewInfoSectionHeaderCell.self, forCellReuseIdentifier: YHPreviewInfoSectionHeaderCell.cellReuseIdentifier)
homeTableView.register(YHPreviewInfoIncomeTypeCell.self, forCellReuseIdentifier: YHPreviewInfoIncomeTypeCell.cellReuseIdentifier) homeTableView.register(YHPreviewInfoIncomeTypeCell.self, forCellReuseIdentifier: YHPreviewInfoIncomeTypeCell.cellReuseIdentifier)
homeTableView.tableHeaderView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth - 32, height: 16)) homeTableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 16))
homeTableView.tableFooterView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth - 32, height: 44)) homeTableView.tableFooterView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth, height: 44))
} }
private func currencyFormat(_ currencySymbol: String) -> NumberFormatter { private func currencyFormat(_ currencySymbol: String) -> NumberFormatter {
...@@ -58,17 +76,26 @@ extension YHPreviewIncomeRecordViewController { ...@@ -58,17 +76,26 @@ extension YHPreviewIncomeRecordViewController {
private func setupData() { private func setupData() {
datas.removeAll() datas.removeAll()
datas.append(.infoHeader("收入情况")) datas.append(.infoHeader("收入情况"))
if incomeModel.income_over_100 == YHIncomeOver100.false.rawValue { guard incomeModel.income_over_100 == YHIncomeOver100.true.rawValue else {
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "否")) if incomeModel.income_over_100 == YHIncomeOver100.false.rawValue {
} else { datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "否", .bottom, 16, 16))
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "是")) noDataView.isHidden = true
homeTableView.reloadData()
} else {
noDataView.isHidden = false
datas = []
homeTableView.reloadData()
}
return
} }
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "是", .mid, 16, 8))
let currencyFmt = currencyFormat("") let currencyFmt = currencyFormat("")
let rate = incomeModel.rate > 0 ? incomeModel.rate : 0.92 let rate = incomeModel.rate > 0 ? incomeModel.rate : 0.92
var totalMoney: Double = 0 var totalMoney: Double = 0
let listCount = incomeModel.list.count
incomeModel.list.enumerated().forEach { index, model in incomeModel.list.enumerated().forEach { index, model in
datas.append(.infoSectionHeader("收入\(index + 1)")) datas.append(.infoSectionHeader("收入\(index + 1)"))
datas.append(.infoTitleAndDetail("收入来源公司:", model.company_name)) datas.append(.infoTitleAndDetail("收入来源公司:", model.company_name, .mid, 8, 8))
let selectedTypes = model.income_type.compactMap { let selectedTypes = model.income_type.compactMap {
YHIncomeType(rawValue: $0) YHIncomeType(rawValue: $0)
} }
...@@ -76,14 +103,20 @@ extension YHPreviewIncomeRecordViewController { ...@@ -76,14 +103,20 @@ extension YHPreviewIncomeRecordViewController {
$0.nameString() $0.nameString()
})) }))
if selectedTypes.contains(.incomeOfMainland) || selectedTypes.contains(.incomeOfHKCompanies) || selectedTypes.contains(.incomeOfMacauCompanies) || selectedTypes.contains(.incomeOfOtherOverseasCompanies) { if selectedTypes.contains(.incomeOfMainland) || selectedTypes.contains(.incomeOfHKCompanies) || selectedTypes.contains(.incomeOfMacauCompanies) || selectedTypes.contains(.incomeOfOtherOverseasCompanies) {
datas.append(.infoTitleAndDetail("公司营业额/人民币 (近一年):", currencyFmt.string(from: NSNumber(value: model.corporate_turnover)) ?? "0")) datas.append(.infoTitleAndDetail("公司营业额/人民币 (近一年):", currencyFmt.string(from: NSNumber(value: model.corporate_turnover)) ?? "0", .mid, 8, 8))
} }
datas.append(.infoTitleAndDetail("收入金额(港元):", currencyFmt.string(from: NSNumber(value: model.income_money / rate)) ?? "0")) let isLast = (listCount - 1 == index)
datas.append(.infoTitleAndDetail("收入金额(港元):", currencyFmt.string(from: NSNumber(value: model.income_money / rate)) ?? "0", isLast ? .bottom : .mid, 8, 16))
totalMoney += model.income_money totalMoney += model.income_money
} }
if totalMoney > 0, datas.count > 2 { if datas.count >= 2 {
datas.insert(.infoTitleAndDetail("主申请人总收入(港元):", currencyFmt.string(from: NSNumber(value: totalMoney / rate)) ?? "0"), at: 2) if incomeModel.list.count == 0 {
datas.insert(.infoTitleAndDetail("主申请人总收入(港元):", currencyFmt.string(from: NSNumber(value: totalMoney / rate)) ?? "0", .bottom, 8, 16), at: 2)
} else {
datas.insert(.infoTitleAndDetail("主申请人总收入(港元):", currencyFmt.string(from: NSNumber(value: totalMoney / rate)) ?? "0", .mid, 8, 16), at: 2)
}
} }
noDataView.isHidden = true
homeTableView.reloadData() homeTableView.reloadData()
} }
...@@ -97,6 +130,7 @@ extension YHPreviewIncomeRecordViewController { ...@@ -97,6 +130,7 @@ extension YHPreviewIncomeRecordViewController {
if let errorMsg = error?.errorMsg, errorMsg.count > 0 { if let errorMsg = error?.errorMsg, errorMsg.count > 0 {
YHHUD.flash(message: errorMsg) YHHUD.flash(message: errorMsg)
} }
self.noDataView.isHidden = false
self.datas = [] self.datas = []
self.homeTableView.reloadData() self.homeTableView.reloadData()
return return
...@@ -130,9 +164,9 @@ extension YHPreviewIncomeRecordViewController { ...@@ -130,9 +164,9 @@ extension YHPreviewIncomeRecordViewController {
cell.setup(title: title) cell.setup(title: title)
return cell return cell
} }
case let .infoTitleAndDetail(title, detail): case let .infoTitleAndDetail(title, detail, cellType, top, bottom):
if let cell = tableView.dequeueReusableCell(withIdentifier: YHPreviewInfoNameAndDetailCell.cellReuseIdentifier) as? YHPreviewInfoNameAndDetailCell { if let cell = tableView.dequeueReusableCell(withIdentifier: YHPreviewInfoNameAndDetailCell.cellReuseIdentifier) as? YHPreviewInfoNameAndDetailCell {
cell.setup(title: title, detail: detail) cell.setup(title: title, detail: detail, cellType: cellType, topMargin: top, bottomMargin: bottom)
return cell return cell
} }
case let .infoIncomeType(title, docs): case let .infoIncomeType(title, docs):
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPreviewInfoHeaderCell: UITableViewCell { class YHPreviewInfoHeaderCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoHeaderCell" static let cellReuseIdentifier = "YHPreviewInfoHeaderCell"
...@@ -39,8 +39,9 @@ class YHPreviewInfoHeaderCell: UITableViewCell { ...@@ -39,8 +39,9 @@ class YHPreviewInfoHeaderCell: UITableViewCell {
} }
private func setupUI() { private func setupUI() {
contentView.addSubview(infoNameLabel) updateCellCorner(.top)
contentView.addSubview(lineView) subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(lineView)
infoNameLabel.snp.makeConstraints { make in infoNameLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
make.top.equalToSuperview().offset(16) make.top.equalToSuperview().offset(16)
...@@ -52,7 +53,7 @@ class YHPreviewInfoHeaderCell: UITableViewCell { ...@@ -52,7 +53,7 @@ class YHPreviewInfoHeaderCell: UITableViewCell {
make.left.equalToSuperview() make.left.equalToSuperview()
make.right.equalToSuperview() make.right.equalToSuperview()
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
make.height.equalTo(1) make.height.equalTo(0.5)
} }
} }
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPreviewInfoIncomeTypeCell: UITableViewCell { class YHPreviewInfoIncomeTypeCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoIncomeTypeCell" static let cellReuseIdentifier = "YHPreviewInfoIncomeTypeCell"
private var documentationViews: [YHIncomeDocumentationView] = [] private var documentationViews: [YHIncomeDocumentationView] = []
private var lastDocuments: [String] = [] private var lastDocuments: [String] = []
...@@ -71,8 +71,9 @@ class YHPreviewInfoIncomeTypeCell: UITableViewCell { ...@@ -71,8 +71,9 @@ class YHPreviewInfoIncomeTypeCell: UITableViewCell {
} }
private func setupUI() { private func setupUI() {
contentView.addSubview(infoTitleLabel) updateCellCorner(.mid)
contentView.addSubview(containerView) subContainerView.addSubview(infoTitleLabel)
subContainerView.addSubview(containerView)
infoTitleLabel.snp.makeConstraints { make in infoTitleLabel.snp.makeConstraints { make in
make.top.equalToSuperview().offset(8) make.top.equalToSuperview().offset(8)
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPreviewInfoNameAndDetailCell: UITableViewCell { class YHPreviewInfoNameAndDetailCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoNameAndDetailCell" static let cellReuseIdentifier = "YHPreviewInfoNameAndDetailCell"
private lazy var infoNameLabel: UILabel = { private lazy var infoNameLabel: UILabel = {
...@@ -35,7 +35,7 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell { ...@@ -35,7 +35,7 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
func setup(title: String, detail: String, topMargin: CGFloat = 8, bottomMargin: CGFloat = 8) { func setup(title: String, detail: String, cellType: YHResignRoundCellType, topMargin: CGFloat = 8, bottomMargin: CGFloat = 8) {
infoNameLabel.text = title infoNameLabel.text = title
infoSubtitleLabel.text = detail infoSubtitleLabel.text = detail
infoSubtitleLabel.snp.remakeConstraints { make in infoSubtitleLabel.snp.remakeConstraints { make in
...@@ -44,11 +44,13 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell { ...@@ -44,11 +44,13 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell {
make.right.equalToSuperview().offset(-18) make.right.equalToSuperview().offset(-18)
make.bottom.equalToSuperview().offset(-bottomMargin) make.bottom.equalToSuperview().offset(-bottomMargin)
} }
updateCellCorner(cellType)
} }
private func setupUI() { private func setupUI() {
contentView.addSubview(infoNameLabel) updateCellCorner(.mid)
contentView.addSubview(infoSubtitleLabel) subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(infoSubtitleLabel)
infoNameLabel.setContentCompressionResistancePriority(.required, for: .horizontal) infoNameLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
infoSubtitleLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) infoSubtitleLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
infoNameLabel.snp.makeConstraints { make in infoNameLabel.snp.makeConstraints { make in
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPreviewInfoSectionHeaderCell: UITableViewCell { class YHPreviewInfoSectionHeaderCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoSectionHeaderCell" static let cellReuseIdentifier = "YHPreviewInfoSectionHeaderCell"
...@@ -39,9 +39,9 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell { ...@@ -39,9 +39,9 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell {
} }
private func setupUI() { private func setupUI() {
contentView.addSubview(infoNameLabel) updateCellCorner(.mid)
contentView.addSubview(lineView) subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(lineView)
infoNameLabel.snp.makeConstraints { make in infoNameLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
make.top.equalToSuperview().offset(16) make.top.equalToSuperview().offset(16)
...@@ -53,7 +53,7 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell { ...@@ -53,7 +53,7 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell {
make.left.equalTo(infoNameLabel) make.left.equalTo(infoNameLabel)
make.right.equalToSuperview().offset(-18) make.right.equalToSuperview().offset(-18)
make.top.equalToSuperview() make.top.equalToSuperview()
make.height.equalTo(1) make.height.equalTo(0.5)
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment