Commit 3932f064 authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' into davidhuang

* develop:
  判空提示
  主申请人

# Conflicts:
#	galaxy/galaxy/Classes/Tools/NetWork/YHNetRequest.swift
parents fca98842 47c64236
......@@ -15,6 +15,7 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
var tableView: UITableView!
var viewModel: YHMainApplicantInformationViewModel!
var dataSource: [YHSectionItemModel]?
var isShowPrompt: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
......@@ -35,13 +36,13 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
func updateDataSource() {
if self.stepView.currentIndex == 0 {
self.dataSource = self.viewModel.getBaseDataSource()
self.dataSource = self.viewModel.getBaseDataSource(isShowPrompt)
} else if self.stepView.currentIndex == 1 {
self.dataSource = self.viewModel.getIDCardDataSource()
self.dataSource = self.viewModel.getIDCardDataSource(isShowPrompt)
} else if self.stepView.currentIndex == 2 {
self.dataSource = self.viewModel.getDocumentInformation()
self.dataSource = self.viewModel.getDocumentInformation(isShowPrompt)
} else if self.stepView.currentIndex == 3 {
self.dataSource = self.viewModel.getDetailDataSource()
self.dataSource = self.viewModel.getDetailDataSource(isShowPrompt)
}
self.tableView.reloadData()
}
......@@ -89,11 +90,23 @@ class YHMainApplicantInformationViewController: YHBaseViewController {
let bottom = YHBottomNextView()
bottom.nextblock = { [weak self] in
guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.viewModel.updateMainInformation(.submit) {[weak self] success in
guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex
if self.viewModel.isCanNext(self.stepView.currentIndex) {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.viewModel.updateMainInformation(.submit) {[weak self] success in
guard let self = self else { return }
self.isShowPrompt = false
self.stepView.currentIndex = self.stepView.currentIndex
if self.stepView.currentIndex == self.stepView.dataSource?.count {
YHHUD.flash(message: "提交成功")
self.navigationController?.popViewController()
} else {
self.updateDataSource()
}
}
} else {
self.isShowPrompt = true
self.updateDataSource()
YHHUD.flash(message: "请完善信息")
}
}
bottom.saveBlock = { [weak self] in
......@@ -130,18 +143,40 @@ extension YHMainApplicantInformationViewController: UITableViewDelegate, UITable
cell.informationBlock = {[weak self] model in
guard let self = self else { return }
self.viewModel.updateModel(model)
self.updateDataSource()
let id = model.id
if id != .id32 && id != .id4 && id != .id8 && id != .id9 && id != .id12 && id != .id13 && id != .id21 && id != .id22 && id != .id23 && id != .id34 && id != .id29 && id != .id30 && id != .id35 {
self.updateDataSource()
}
}
return cell
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let count = dataSource?[indexPath.row].models?.count ?? 0
if stepView.currentIndex == 1 {
return 217.0
} else {
return CGFloat(count * 52 + 52 + 14)
let array = dataSource?[indexPath.row].models ?? []
var h = 0
for i in 0..<array.count {
let data = array[i]
let isShow = data.isShowPrompts ?? false
let message = data.message ?? ""
if data.id == .id3 || data.id == .id4 || data.id == .id32 || data.id == .id33 {
if isShow && message.count == 0 {
h = h + 72 + 20
} else {
h = h + 72
}
} else {
if isShow && message.count == 0 {
h = h + 52 + 20
} else {
h = h + 52
}
}
}
return CGFloat(h + 52 + 14)
}
}
}
......@@ -54,7 +54,7 @@ enum YHItemID: Int {
case id32 = 31 // 现居住地址 海外地址
case id33 = 32 // 是否海外居住一年以上
case id34 = 33 // 主申请人信息 出生城市国外
case id35 = 34 // 香港ID号码
}
......@@ -69,8 +69,9 @@ struct YHItemModel {
var rightButtonString: String?
var type: YHItemSelectType?
var value: [String]?
var isShowPrompts: Bool?
init(id: YHItemID? = nil, isNeed: Bool? = nil, title: String? = nil, isUserKeyBoard: Bool? = nil, prompts: String? = nil, message: String? = nil, leftButtonString: String? = nil, rightButtonString: String? = nil, type: YHItemSelectType? = nil, value: [String]? = nil) {
init(id: YHItemID? = nil, isNeed: Bool? = nil, title: String? = nil, isUserKeyBoard: Bool? = nil, prompts: String? = nil, message: String? = nil, leftButtonString: String? = nil, rightButtonString: String? = nil, type: YHItemSelectType? = nil, value: [String]? = nil, isShowPrompts: Bool? = nil) {
self.id = id
self.isNeed = isNeed
self.title = title
......@@ -81,6 +82,7 @@ struct YHItemModel {
self.rightButtonString = rightButtonString
self.type = type
self.value = value
self.isShowPrompts = isShowPrompts
}
}
......
......@@ -16,6 +16,7 @@
*/
import UIKit
import Alamofire
class YHImagePickerView: UIView {
var backImage: ((UIImage) -> Void)?
......@@ -27,6 +28,13 @@ class YHImagePickerView: UIView {
var cannalButton: UIButton!
var lineView: UIView!
static func show(callBack: @escaping ((UIImage) -> Void)) {
let view = YHImagePickerView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.backImage = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
......@@ -199,9 +207,35 @@ extension YHImagePickerView: UINavigationControllerDelegate, UIImagePickerContro
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
// 将图片显示给UIImageView
if let block = backImage {
block(image)
self.dismiss()
// if let block = backImage {
// block(image)
// self.dismiss()
// }
//将选择的图片保存到Document目录下
let fileManager = FileManager.default
let rootPath = NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true)[0] as String
let filePath = "\(rootPath)/pickedimage.jpg"
let imageData = image.jpegData(compressionQuality: 1.0)
fileManager.createFile(atPath: filePath, contents: imageData, attributes: nil)
//上传图片
if (fileManager.fileExists(atPath: filePath)){
//取得NSURL
let imageURL = URL(fileURLWithPath: filePath)
//使用Alamofire上传
AF.upload(imageURL, to: "https://test-comserver.galaxy-immi.com/oss/upload/storage")
.responseString { response in
switch response.result {
case .success(let value):
print("Success: \(value)")
case .failure(let error): break
}
}
}
} else {
printLog("pick image wrong")
......@@ -213,5 +247,6 @@ extension YHImagePickerView: UINavigationControllerDelegate, UIImagePickerContro
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
}
}
......@@ -17,7 +17,7 @@ class YHItemView: UIView {
var centerButton: UIButton!
var leftButton: UIButton!
var rightButton: UIButton!
var showPromptLabel: UILabel!
var dataSource: YHItemModel? {
didSet {
updateAllViews()
......@@ -58,6 +58,19 @@ class YHItemView: UIView {
make.left.equalTo(112)
}
showPromptLabel = {
let label = UILabel()
label.textColor = UIColor.red
label.font = UIFont.PFSC_M(ofSize: 12)
return label
}()
addSubview(showPromptLabel)
showPromptLabel.snp.makeConstraints { make in
make.left.equalTo(messageTextField.snp.left)
make.height.equalTo(20)
make.right.bottom.equalToSuperview()
}
nextStepImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "form_right_arrow")
......@@ -117,7 +130,6 @@ class YHItemView: UIView {
make.height.equalTo(32)
make.width.equalTo(74)
}
}
func updateAllViews() {
......@@ -143,6 +155,7 @@ class YHItemView: UIView {
}
messageTextField.placeholder = dataSource.prompts
messageTextField.text = dataSource.message
showPromptLabel.text = "\(dataSource.prompts ?? "")" + "\(dataSource.title ?? "")"
if dataSource.isUserKeyBoard ?? false {
nextStepImageView.isHidden = true
centerButton.isHidden = true
......@@ -176,6 +189,7 @@ class YHItemView: UIView {
} else {
buttonState(isLeft: true)
}
} else {
leftButton.isHidden = true
}
......@@ -188,6 +202,17 @@ class YHItemView: UIView {
} else {
rightButton.isHidden = true
}
if dataSource.isShowPrompts ?? false {
if dataSource.message?.count != 0 {
showPromptLabel.isHidden = true
} else {
showPromptLabel.isHidden = false
}
} else {
showPromptLabel.isHidden = true
}
}
func buttonState(isLeft: Bool) {
......@@ -340,4 +365,13 @@ extension YHItemView: UITextFieldDelegate {
block(dataSource ?? YHItemModel())
}
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
dataSource?.message = newText
if let block = block {
block(dataSource ?? YHItemModel())
}
return true
}
}
......@@ -7,6 +7,7 @@
//
import UIKit
import Alamofire
enum YHCardType: Int {
case identity = 0
......@@ -147,7 +148,7 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
backSurfaceLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.contentBkgColor
label.textColor = UIColor.subTextColor
label.textAlignment = .center
return label
}()
......@@ -162,7 +163,7 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
frontImageButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "service_card_front"), for: .normal)
button.addTarget(self, action: #selector(exampleClick), for: .touchUpInside)
button.addTarget(self, action: #selector(frontImageClick), for: .touchUpInside)
return button
}()
centerView.addSubview(frontImageButton)
......@@ -176,7 +177,7 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
backSurfaceImageButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "service_card_back"), for: .normal)
button.addTarget(self, action: #selector(exampleClick), for: .touchUpInside)
button.addTarget(self, action: #selector(backSurfaceImageClick), for: .touchUpInside)
return button
}()
centerView.addSubview(backSurfaceImageButton)
......@@ -195,9 +196,23 @@ class YHMainInformationCardTableViewCell: UITableViewCell {
window?.addSubview(view)
}
@objc func frontImageClick() {
YHImagePickerView.show() { image in
}
}
@objc func backSurfaceImageClick() {
YHImagePickerView.show() { image in
}
}
func updataData() {
titleLabel.text = "中国身份证(选填)"
frontLabel.text = "身份证人像面"
backSurfaceLabel.text = "身份证国徽面"
}
}
......@@ -19,6 +19,7 @@ class YHMainInformationTableViewCell: UITableViewCell {
updateAllViews()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
......@@ -88,18 +89,38 @@ class YHMainInformationTableViewCell: UITableViewCell {
func updateAllViews() {
titleLabel.text = dataSource?.title
mainItemView.removeSubviews()
var y = 0
for i in 0 ..< (dataSource?.models?.count ?? 0) {
let line = UIView()
line.backgroundColor = UIColor.separatorColor
mainItemView.addSubview(line)
line.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(52 * i)
make.top.equalTo(y)
make.height.equalTo(1)
make.right.equalTo(-18)
}
y = y + 1
var h = 51
let data = dataSource?.models?[i] ?? YHItemModel()
let isShow = data.isShowPrompts ?? false
let message = data.message ?? ""
if data.id == .id3 || data.id == .id4 || data.id == .id32 || data.id == .id33 {
if isShow && message.count == 0 {
h = 71 + 20
} else {
h = 71
}
} else {
if isShow && message.count == 0 {
h = 51 + 20
} else {
h = 51
}
}
let itemView = YHItemView()
itemView.dataSource = dataSource?.models?[i]
itemView.dataSource = data
itemView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.informationBlock {
......@@ -109,10 +130,11 @@ class YHMainInformationTableViewCell: UITableViewCell {
mainItemView.addSubview(itemView)
itemView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(52 * i + 1)
make.height.equalTo(51)
make.top.equalTo(y)
make.height.equalTo(h)
make.right.equalTo(-18)
}
y = y + h
}
}
}
......@@ -93,9 +93,8 @@ class YHNetRequest: NSObject {
print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-") //for test hjl
requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-") //for test hjl
// requestHeader.add(name: "token", value: "eyJpdiI6InhISTlXZjA2cXE5Z2pqMDZDa2NrTkE9PSIsInZhbHVlIjoiR3NkRVR0dVdjWE5GN2N3UmNiU0xobVYzZTR6SXlGXC9XVEhWV0xcL1F1YXVBOU9jRDlFZ2pOanBcL1RBMUVkUDlRQ2xhREx0c3dKeHNJQjMwaVVuYkloZHBiUXQzZkJlS2dTWDJrTE90K2FpM0FDWm10a3FFUGZpdW90TDNscStud0tSenRRV2kyV3JVbEZ6eXppUHZ5ajFQMXpBejh0YUZ4Z0VPZkwwdEtwXC9mNjh4bWQySGpSS2pzVkJ1Y3ZrbGFKdGVsMkhkRXJrTlRHbzkxcVdkcE1yWXRja2xDRHVmRUhhdU9ybkJmXC9VRVJnY2RXeVpXMzZVc2h2eUsxYVRmSXR0QXB1WjVsaDBLTllVOEtKWUhSTE5yNXFvYWlaQzdQSWZ0T0V2VTZwTFJjb25OZGdYbE1lNHZOZ0ZWcWhWWkhnUm8rWGJqSE1Jdm1DY3hlWVliY2F0YkplZFwvQ0pMMndtdHFBQUF0MjJYTFNZYk14Tzh0d0g1K2c2M1U2bXFZY3JUbXptbEhCSXR5R3hFZ0JHNmpXTHgzeTJvc0Z2UXpENk5LOTlBN0VjWE8rNmYzTklBN3d0YVVPb2VyS0lNK3FINUZlTmR6UTlBdENuZEtDKzE3emwxMGxvaEc1Sm1mc0E3Y251cU5xcjd4ZzdSbHNNQ2xoRUc4VUJTR24zQ1lRSE5VRGtUd0s0ZTljSlRxRmdwMFVqY0RsMjQwcm1SaVdSN29lNjYrd1JDSlwvSUtiSWpneFpuR2VzeUFBbzNBUUh2MnNVTFZ5bXVLTGVLNFM5TjdzdXpaM1ZFRDdvRUVlRFF0QUY4d2pXcmF4NkFwMGVodXRVUFlxVGhVRmVpYlwvRUJFT05idFhyeXp4TUtcLzN0MlVcL3ZIc2dWSncxaW55TDVUVXFIWjZZMUdHakJKVnpzRkxGeE52RWdLaW9WT0tCb3pTQW1xelNwaTRaQmtGeEpITjVEUU44Q3VGSnBGdzdOcFRyTE9sYmFTT3RrMDJYU3l0XC9PcVJ1OXo2MUpJdm5XSHZFZ0lIMGh5OGR2TEJkNTZjVHFKM1hSYnVEbm9vVFU1VUUzcmRDZ3JhZWRYQWZ1cU9aajVKMHdOMGpxczBSVU5GejNrNzk3bnVBa210dFdCblVBaUs5Y0VIWmxCdE04UlV6T2NEN3ZTN2E0MEhRYmlCNGk3V2xZN1R2ZUM4cVVZZ1Rlb1BndmFcL2phemNnbEhKb05QeHhxa1BldFFqK2ErcWZmYWs1RnNPWEpNK0x4MFo4MTU4OEttZTNxeDMrcCtkNUVwSUd4b1krOXRFdU1UNVFxZyszXC9Lb21TSG5hSFI2OVRVWmxIRm9UcTRlU2kyNWF6K1pQR3lMK1MyS0FvQ2ZFaTViTmdybm1xQ1BscVMzM2tjeUFCQVlvZFdPMTJTb2ttZDl2Q3BuTXVvTnJkUDRpa0g5cE4rWlRcL1l2MWdNdmY0MFVsMFArWWYzWVNmMW5oUnkwWk1mTVc3WUluU3dyQUM4TTZBbHJac0lOMDNiYVhVWks2TCs3QnN0VDlOXC9xaEwyUEtmblVmOXpcL3hoekQ1K3JKWVozVWxrdElKbTdWTHpaMnk2bXFQQ0VJalR1TVpIc1d4bmJjVVIwdTR1VXY1M1wvMEJMODVTWkNreVpCVmh3MWRDeERROGh5YnVsMkVKV2poMFwvYnZHakMycHJmQjUycDQ3b3laUUlTSjdmaDdFMnFtTHhIN1RvUnhhcUhCWXkybkhoMlFwZUVtM0VPUVZrcXp3S0lLMFwvOUtvZnhibE1ZUnp0bGVkcGdqTlp0dGV0cGhCa3hjUmxZXC96SWRFXC83OWxEUnRma1MyYnZqWGhMN0lSM0x2Z0NCTWxIR0pUYjByWDN4Y3JCT3JLTzFzUWkzS3NYTDVDZVJ3MmhEbXlXSENqYWc9PSIsIm1hYyI6Ijc1YmU5YTE4ZGEwNzExZGJlZWQ0MzZhNGVkNWE1NGMzYmE1YWFjNjBhYTgxYjFlYjUyN2M1Yzc4ZjkwNTcyNmMifQ==")
......@@ -109,8 +108,6 @@ class YHNetRequest: NSObject {
// //金龙的账号
// requestHeader.add(name: "token", value: "eyJpdiI6IlwvcVM1VkFpcSs3amtVbTB2Mzh0SWl3PT0iLCJ2YWx1ZSI6IisrRVlDN1p4RkFETG56Y2M2Wmo5OVBXbzhseDJcL3NRRWhCTG02UGZ0b1pPODh6M2pqZCtFUVNWcDJmOHE5eFI0K3U5TnZ3cjI1MnkrbDZpUElsNGZ3WEZWNTJ3bGt4NFQ2enBOK2h4bE41NHZWeFBkSEF3bjlHZG44dlRQYXhrQXpvNmpFSWowNDZPcjRUcFFGZDNleWs4NEU1bG5Lb0FuelU3Slg5VjdcL2g1aU93U01wbGdZU2tUbWhYRUdUaUEzWW1pUUNGbjBkS1NaM09LTGxTeDZ0QVB1dEJZaTRjaVhBXC9scXdzS3djZGNUamgwR3NwbWdwMDkzeE90UVV0cnlBTUVxSHZuclZxN1dIdzZueTY0dEJKMERWcTE1NlVNckdLNE9jMHkrbVZqRm14QXp0aVd3bUhwOEdHQklXVzREdUhrNFI4WW0ybVNDTXhqeDdnTlwvVzhrZlwvQW9EelVOSzZGVFZIWlpcL2dNdjVGa1o0ampQWks2dmk4V1JDWjJjbU5vVFwvZjd4NXlUdWp1ZVVYcXdjK0E1MzQyYTd4WHdGRitsQ0NQMjJmNGUyM0piaXJPcTRYNmhqSm9EMmVLZ0RscHpqRlU5WEtYUE9PSTBsM3FBK09jYVdtZHlpWnJSbWtFUXZYdGNCSlZvTUxmTFlLWm9SUURieW5TbWE3RGFHUXlYTkI0OWo5eVVLODVcL0ZXMGxkaHpibm1Fa2Z2ZmZ3N2V0SWQxREZqQ1MyV3JaWjZkc2RHbVRkTmoyTW9oOHdcL1BBRCt2WHo4V0hJdzdiNFlYWlBSTUNIOCtxNXp3dStveks4SGNqR0x6SjBmcThBSXhtSklYT2d4ZEFtck9ibzExazVuXC8wT2NCRW1sXC9kbnRaaTRYV3dPVjVwQlVpOFcwTktDUFkxdkUxZWJnSkxvXC84XC9BRHNhaUttUnZ0c2dhYTF2VXFtQkcwdkFLeHJZR29qQkxtRFhpZW1tK2dOU1hYVGRmRWM4U0xhY3lSRW01bTdJS3ZCdUF6Z051OUNVekNrWjUxN0diZ3R6T3BySytqWktCcmRxcldnOEZLQzMrRTlLWWZSaTU2OTlTVkZoZFErSHRBSldRVW9HSnB3OGR5S0l2V2U0anE5NU9kWVIrNmFBWkc4UnlBVDBwQmxBNjRySzBITzluZnZVNWJJOGQ4MmJPeU1PSklmSkdncXpJQ3BcL1BkaUswZkJZSlVid0UydUxkWEhKcWtkWmV2dml0Rkh4cnQxNENwVDdVb0x0eUFBXC9VMmlPTDI0OVJ4VHpHMEN6RENWa3hORG9RTXhTcDM1M0xHdE5pcWx1dU55YzBHKzZxOWdEYVcreSt3dmdGaG9kaDQrMXhsTTd0ZFl1OTMySlNxNTRxXC9uVzBvR3RrK3AxZGxaZmJma0ZQMkxlRUlwXC83OHE4T2hTMkF0U2wrdXlzalJXaEhXSnNDMEZqWmt6RGNKbFhUblpcL3lyRGxnQW9nanNja1FsYlwvZUpDUmJtWVhsZzIzY3lUSDhudWRvRmp5TkpJbEN5WEZTTFA4OGpoUVVkdHRqcHFsWVZkXC85d1hIUEpGMkZRbHAyeFphWTJud2FZejRCdkFUK0lSTDlicnZiUDFcL3lhMEFPQVFYQTMxdXJla0tpbDdibmkycGxOU05wY1ZjeTZzdTN0NjdLNk9IUHhOYTZnaUR3VW1iVXJEbmJvMmN3WTZYUFllbHd2Y0J2cnVsUzVvVitHMFFxSGFzc2x3K2ErVUpaaFZkbHVqRG5Ua3NzTTNSZTNRdGtwNnFiS2wyRkVTUEJVVjluZ1ZGN3RHT0VWQjR4MVpXNnBFWnU2bHU1Z2dqOUNuMlNwMUljXC9ZZk5EWjhiXC9sdUVnVUhYelJSQVwvK1FXcytPb3ZYMXZrVVBScmN5YU0rNWR3a0pqcm1BPT0iLCJtYWMiOiJhOGM2NjQwNDVjYjNmMjhiZjI5MWU5YTdiODE0MGVkOGQ2YzIzNWVkYjUzYjkwNjU3OTFiN2U5YTliZWQ1NGQ1In0")
headers = requestHeader
}
......
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