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

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

parent ad8f8a7a
......@@ -12,10 +12,18 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController {
enum TableRow {
case infoHeader(_ 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])
}
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 viewModel = YHIncomeRecordViewModel()
private var incomeModel = YHIncomeRecordCompleteModel()
......@@ -39,12 +47,22 @@ class YHPreviewIncomeRecordViewController: YHPreviewBaseViewController {
extension YHPreviewIncomeRecordViewController {
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(YHPreviewInfoNameAndDetailCell.self, forCellReuseIdentifier: YHPreviewInfoNameAndDetailCell.cellReuseIdentifier)
homeTableView.register(YHPreviewInfoSectionHeaderCell.self, forCellReuseIdentifier: YHPreviewInfoSectionHeaderCell.cellReuseIdentifier)
homeTableView.register(YHPreviewInfoIncomeTypeCell.self, forCellReuseIdentifier: YHPreviewInfoIncomeTypeCell.cellReuseIdentifier)
homeTableView.tableHeaderView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth - 32, height: 16))
homeTableView.tableFooterView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth - 32, height: 44))
homeTableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 16))
homeTableView.tableFooterView = UIView(frame: CGRect(x: 16, y: 0, width: KScreenWidth, height: 44))
}
private func currencyFormat(_ currencySymbol: String) -> NumberFormatter {
......@@ -58,17 +76,26 @@ extension YHPreviewIncomeRecordViewController {
private func setupData() {
datas.removeAll()
datas.append(.infoHeader("收入情况"))
if incomeModel.income_over_100 == YHIncomeOver100.false.rawValue {
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "否"))
} else {
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "是"))
guard incomeModel.income_over_100 == YHIncomeOver100.true.rawValue else {
if incomeModel.income_over_100 == YHIncomeOver100.false.rawValue {
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "否", .bottom, 16, 16))
noDataView.isHidden = true
homeTableView.reloadData()
} else {
noDataView.isHidden = false
datas = []
homeTableView.reloadData()
}
return
}
datas.append(.infoTitleAndDetail("前一年全年收入是否达港币100万元或以上:", "是", .mid, 16, 8))
let currencyFmt = currencyFormat("")
let rate = incomeModel.rate > 0 ? incomeModel.rate : 0.92
var totalMoney: Double = 0
let listCount = incomeModel.list.count
incomeModel.list.enumerated().forEach { index, model in
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 {
YHIncomeType(rawValue: $0)
}
......@@ -76,14 +103,20 @@ extension YHPreviewIncomeRecordViewController {
$0.nameString()
}))
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
}
if totalMoney > 0, datas.count > 2 {
datas.insert(.infoTitleAndDetail("主申请人总收入(港元):", currencyFmt.string(from: NSNumber(value: totalMoney / rate)) ?? "0"), at: 2)
if datas.count >= 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()
}
......@@ -97,6 +130,7 @@ extension YHPreviewIncomeRecordViewController {
if let errorMsg = error?.errorMsg, errorMsg.count > 0 {
YHHUD.flash(message: errorMsg)
}
self.noDataView.isHidden = false
self.datas = []
self.homeTableView.reloadData()
return
......@@ -130,9 +164,9 @@ extension YHPreviewIncomeRecordViewController {
cell.setup(title: title)
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 {
cell.setup(title: title, detail: detail)
cell.setup(title: title, detail: detail, cellType: cellType, topMargin: top, bottomMargin: bottom)
return cell
}
case let .infoIncomeType(title, docs):
......
......@@ -8,7 +8,7 @@
import UIKit
class YHPreviewInfoHeaderCell: UITableViewCell {
class YHPreviewInfoHeaderCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoHeaderCell"
......@@ -39,8 +39,9 @@ class YHPreviewInfoHeaderCell: UITableViewCell {
}
private func setupUI() {
contentView.addSubview(infoNameLabel)
contentView.addSubview(lineView)
updateCellCorner(.top)
subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(lineView)
infoNameLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18)
make.top.equalToSuperview().offset(16)
......@@ -52,7 +53,7 @@ class YHPreviewInfoHeaderCell: UITableViewCell {
make.left.equalToSuperview()
make.right.equalToSuperview()
make.bottom.equalToSuperview()
make.height.equalTo(1)
make.height.equalTo(0.5)
}
}
}
......@@ -8,7 +8,7 @@
import UIKit
class YHPreviewInfoIncomeTypeCell: UITableViewCell {
class YHPreviewInfoIncomeTypeCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoIncomeTypeCell"
private var documentationViews: [YHIncomeDocumentationView] = []
private var lastDocuments: [String] = []
......@@ -71,8 +71,9 @@ class YHPreviewInfoIncomeTypeCell: UITableViewCell {
}
private func setupUI() {
contentView.addSubview(infoTitleLabel)
contentView.addSubview(containerView)
updateCellCorner(.mid)
subContainerView.addSubview(infoTitleLabel)
subContainerView.addSubview(containerView)
infoTitleLabel.snp.makeConstraints { make in
make.top.equalToSuperview().offset(8)
make.left.equalToSuperview().offset(18)
......
......@@ -8,7 +8,7 @@
import UIKit
class YHPreviewInfoNameAndDetailCell: UITableViewCell {
class YHPreviewInfoNameAndDetailCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoNameAndDetailCell"
private lazy var infoNameLabel: UILabel = {
......@@ -35,7 +35,7 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell {
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
infoSubtitleLabel.text = detail
infoSubtitleLabel.snp.remakeConstraints { make in
......@@ -44,11 +44,13 @@ class YHPreviewInfoNameAndDetailCell: UITableViewCell {
make.right.equalToSuperview().offset(-18)
make.bottom.equalToSuperview().offset(-bottomMargin)
}
updateCellCorner(cellType)
}
private func setupUI() {
contentView.addSubview(infoNameLabel)
contentView.addSubview(infoSubtitleLabel)
updateCellCorner(.mid)
subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(infoSubtitleLabel)
infoNameLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
infoSubtitleLabel.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
infoNameLabel.snp.makeConstraints { make in
......
......@@ -8,7 +8,7 @@
import UIKit
class YHPreviewInfoSectionHeaderCell: UITableViewCell {
class YHPreviewInfoSectionHeaderCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHPreviewInfoSectionHeaderCell"
......@@ -39,9 +39,9 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell {
}
private func setupUI() {
contentView.addSubview(infoNameLabel)
contentView.addSubview(lineView)
updateCellCorner(.mid)
subContainerView.addSubview(infoNameLabel)
subContainerView.addSubview(lineView)
infoNameLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(18)
make.top.equalToSuperview().offset(16)
......@@ -53,7 +53,7 @@ class YHPreviewInfoSectionHeaderCell: UITableViewCell {
make.left.equalTo(infoNameLabel)
make.right.equalToSuperview().offset(-18)
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