Commit 07a046e4 authored by pete谢兆麟's avatar pete谢兆麟

工作经验接口和逻辑

parent 8b9bacfb
...@@ -124,6 +124,7 @@ ...@@ -124,6 +124,7 @@
04E86E6A2B87352700A35F4B /* YHCompanySelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E692B87352600A35F4B /* YHCompanySelectViewController.swift */; }; 04E86E6A2B87352700A35F4B /* YHCompanySelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E692B87352600A35F4B /* YHCompanySelectViewController.swift */; };
04E86E6C2B87374600A35F4B /* YHCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */; }; 04E86E6C2B87374600A35F4B /* YHCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */; };
04E86E6E2B87388100A35F4B /* YHCompanyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E6D2B87388100A35F4B /* YHCompanyViewModel.swift */; }; 04E86E6E2B87388100A35F4B /* YHCompanyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E6D2B87388100A35F4B /* YHCompanyViewModel.swift */; };
04E86E702B888B0500A35F4B /* YHWorkExperienceProjectModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E86E6F2B888B0500A35F4B /* YHWorkExperienceProjectModel.swift */; };
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; }; 6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; };
A50AB89B2B81E96E00C227DE /* YHOtherInfoFillModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */; }; A50AB89B2B81E96E00C227DE /* YHOtherInfoFillModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */; };
A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89C2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift */; }; A50AB89D2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50AB89C2B81F1FB00C227DE /* YHOtherInfoFillViewModel.swift */; };
...@@ -410,6 +411,7 @@ ...@@ -410,6 +411,7 @@
04E86E692B87352600A35F4B /* YHCompanySelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanySelectViewController.swift; sourceTree = "<group>"; }; 04E86E692B87352600A35F4B /* YHCompanySelectViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanySelectViewController.swift; sourceTree = "<group>"; };
04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanyModel.swift; sourceTree = "<group>"; }; 04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanyModel.swift; sourceTree = "<group>"; };
04E86E6D2B87388100A35F4B /* YHCompanyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanyViewModel.swift; sourceTree = "<group>"; }; 04E86E6D2B87388100A35F4B /* YHCompanyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCompanyViewModel.swift; sourceTree = "<group>"; };
04E86E6F2B888B0500A35F4B /* YHWorkExperienceProjectModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExperienceProjectModel.swift; sourceTree = "<group>"; };
58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; }; 58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; };
987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillModel.swift; sourceTree = "<group>"; }; A50AB89A2B81E96E00C227DE /* YHOtherInfoFillModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillModel.swift; sourceTree = "<group>"; };
...@@ -874,6 +876,7 @@ ...@@ -874,6 +876,7 @@
04E86E392B83321600A35F4B /* YHWorkExperienceModel.swift */, 04E86E392B83321600A35F4B /* YHWorkExperienceModel.swift */,
04E86E602B85CAEA00A35F4B /* YHWorkExampleModel.swift */, 04E86E602B85CAEA00A35F4B /* YHWorkExampleModel.swift */,
04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */, 04E86E6B2B87374600A35F4B /* YHCompanyModel.swift */,
04E86E6F2B888B0500A35F4B /* YHWorkExperienceProjectModel.swift */,
); );
path = Model; path = Model;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -1862,6 +1865,7 @@ ...@@ -1862,6 +1865,7 @@
04C6936B2B7329E7004C1758 /* YHEducationInfoCell.swift in Sources */, 04C6936B2B7329E7004C1758 /* YHEducationInfoCell.swift in Sources */,
04E86E092B707ACE00A35F4B /* YHPhoneLoginViewController.swift in Sources */, 04E86E092B707ACE00A35F4B /* YHPhoneLoginViewController.swift in Sources */,
04E86E342B83268F00A35F4B /* YHWorkExperienceViewController.swift in Sources */, 04E86E342B83268F00A35F4B /* YHWorkExperienceViewController.swift in Sources */,
04E86E702B888B0500A35F4B /* YHWorkExperienceProjectModel.swift in Sources */,
044CC6292B8741AC0083FF76 /* YHSearchBar.swift in Sources */, 044CC6292B8741AC0083FF76 /* YHSearchBar.swift in Sources */,
A5ACE9422B4564F7002C94D2 /* AppDelegate+Extension.swift in Sources */, A5ACE9422B4564F7002C94D2 /* AppDelegate+Extension.swift in Sources */,
A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */, A5FD63BF2B6250BC00D1D9DA /* YHInformationPerfectCell.swift in Sources */,
......
...@@ -15,6 +15,8 @@ enum YHWorkExampleType: Int { ...@@ -15,6 +15,8 @@ enum YHWorkExampleType: Int {
} }
class YHWorkExampleViewController: YHBaseViewController { class YHWorkExampleViewController: YHBaseViewController {
typealias ExampleBlock = (_ message: String) -> ()
var exampleBlock: ExampleBlock?
var closeButton: UIButton! var closeButton: UIButton!
var titleLabel: UILabel! var titleLabel: UILabel!
var lineView: UIView! var lineView: UIView!
...@@ -105,6 +107,12 @@ class YHWorkExampleViewController: YHBaseViewController { ...@@ -105,6 +107,12 @@ class YHWorkExampleViewController: YHBaseViewController {
view.isHidden = true view.isHidden = true
self.typeView.isHidden = false self.typeView.isHidden = false
} }
view.exampleBlock = { [weak self] message in
if let block = self?.exampleBlock {
block(message)
}
self?.close()
}
view.isHidden = true view.isHidden = true
return view return view
}() }()
...@@ -138,11 +146,6 @@ class YHWorkExampleViewController: YHBaseViewController { ...@@ -138,11 +146,6 @@ class YHWorkExampleViewController: YHBaseViewController {
return dataSource?[index].industry ?? "" return dataSource?[index].industry ?? ""
} }
@objc func getCode() {
}
@objc func close() { @objc func close() {
self.dismiss(animated: true) self.dismiss(animated: true)
} }
......
...@@ -15,10 +15,11 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -15,10 +15,11 @@ class YHWorkExperienceViewController: YHBaseViewController {
var tableView: UITableView! var tableView: UITableView!
var viewModel: YHWorkExperienceViewModel! var viewModel: YHWorkExperienceViewModel!
var baseDataSource: [YHSectionWorkExperienceModel]? var baseDataSource: [YHSectionWorkExperienceModel]?
var introductionDataSource: [YHWorkItemListModel]? var introductionDataSource: [YHWorkExperienceProjectModel]?
var fileDataSource: [String]? var fileDataSource: [String]?
var workExperienceID: String? var workExperienceID: String?
var isMore: Bool = false
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
viewModel = YHWorkExperienceViewModel() viewModel = YHWorkExperienceViewModel()
...@@ -34,8 +35,13 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -34,8 +35,13 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
viewModel.requestWorkDetail(workExperienceID ?? "") {[weak self] success, error in viewModel.requestWorkDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.viewModel.mainModel.step ?? 0
self.updateDataSource() self.updateDataSource()
self.viewModel.requestWorkInfoProject("\(self.viewModel.mainModel.id ?? 0)") {[weak self] success, error in
guard let self = self else { return }
self.introductionDataSource = success
self.updateDataSource()
}
} }
updateDataSource() updateDataSource()
} }
...@@ -95,12 +101,17 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -95,12 +101,17 @@ class YHWorkExperienceViewController: YHBaseViewController {
let bottom = YHBottomNextView() let bottom = YHBottomNextView()
bottom.nextblock = { [weak self] in bottom.nextblock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1 self.viewModel.saveWorkDetail(1, callBackBlock: {[weak self] flag, model in
self.updateDataSource() guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
})
} }
bottom.saveBlock = { [weak self] in bottom.saveBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.viewModel.saveWorkDetail(0, callBackBlock: {[weak self] flag, model in
guard let self = self else { return }
})
} }
return bottom return bottom
}() }()
...@@ -119,6 +130,9 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -119,6 +130,9 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return 1 return 1
} }
if stepView.currentIndex == 4 { if stepView.currentIndex == 4 {
if viewModel.mainModel.not_need_upload_file == 1 {
return 1
}
return 2 return 2
} }
return baseDataSource?.count ?? 0 return baseDataSource?.count ?? 0
...@@ -127,37 +141,99 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -127,37 +141,99 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if stepView.currentIndex == 1 { if stepView.currentIndex == 1 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self)
cell.dataSource = viewModel.mainModel.wduty
cell.exampleBlock = {[weak self] in cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self?.viewModel.exampleModels mainVc.dataSource = self.viewModel.exampleModels
mainVc.type = .wduty mainVc.type = .wduty
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
cell.dataSource = message
self.viewModel.updateWduty(message)
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self?.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
}
cell.messageBlock = {[weak self] message in
self?.viewModel.updateWduty(message)
} }
return cell return cell
} else if stepView.currentIndex == 2 { } else if stepView.currentIndex == 2 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self)
cell.dataSource = viewModel.mainModel.highlights
cell.exampleBlock = {[weak self] in cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self?.viewModel.exampleModels mainVc.dataSource = self.viewModel.exampleModels
mainVc.type = .highlight mainVc.type = .highlight
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
cell.dataSource = message
self.viewModel.updateHighlights(message)
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self?.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
}
cell.messageBlock = {[weak self] message in
self?.viewModel.updateHighlights(message)
}
cell.switchBlock = {[weak self] isOn in
self?.viewModel.updateIsProjectIntroduction(isOn: isOn)
} }
return cell return cell
} else if stepView.currentIndex == 3 { } else if stepView.currentIndex == 3 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkIntroductionTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkIntroductionTableViewCell.self)
cell.dataSource = introductionDataSource
if isMore {
cell.more()
} else {
cell.cannal()
}
cell.clickBlock = {[weak self] model in
guard let self = self else { return }
let vc = YHWorkIntroductionViewController()
vc.dataSource = model
vc.workModel = self.viewModel.mainModel
vc.saveBlock = {[weak self] in
guard let self = self else { return }
self.getData()
}
self.navigationController?.pushViewController(vc, animated: true)
}
cell.deleteBlock = {[weak self] model in
guard let self = self else { return }
self.viewModel?.requestDeleteWorkExperienceProject("\(model.id ?? 0)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.getData()
})
}
cell.isMoreBlock = {[weak self] isMore in
guard let self = self else { return }
self.isMore = isMore
}
cell.addIntroductionBlock = {[weak self] in cell.addIntroductionBlock = {[weak self] in
guard let self = self else { return } guard let self = self else { return }
let vc = YHWorkIntroductionViewController() let vc = YHWorkIntroductionViewController()
vc.workModel = self.viewModel.mainModel
vc.saveBlock = {[weak self] in
guard let self = self else { return }
self.getData()
}
self.navigationController?.pushViewController(vc, animated: true) self.navigationController?.pushViewController(vc, animated: true)
} }
return cell return cell
} else if stepView.currentIndex == 4 { } else if stepView.currentIndex == 4 {
if indexPath.row == 0 { if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkMessageSelectTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkMessageSelectTableViewCell.self)
cell.dataSource = viewModel.mainModel.not_need_upload_file
cell.isNeedFileBlock = { [weak self] value in
guard let self = self else { return }
self.viewModel.updateNotNeedUploadFile(value: value)
self.tableView.reloadData()
}
return cell return cell
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self)
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import UIKit import UIKit
class YHWorkIntroductionViewController: YHBaseViewController { class YHWorkIntroductionViewController: YHBaseViewController {
typealias SaveBlock = () -> ()
var saveBlock: SaveBlock?
var nameTextField: UITextField! var nameTextField: UITextField!
var startTextField: UITextField! var startTextField: UITextField!
var endTextField: UITextField! var endTextField: UITextField!
...@@ -17,15 +19,17 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -17,15 +19,17 @@ class YHWorkIntroductionViewController: YHBaseViewController {
var actionView: YHWorkActionView! var actionView: YHWorkActionView!
var bottomView: UIView! var bottomView: UIView!
var bottomButton: UIButton! var bottomButton: UIButton!
var viewModel: YHWorkIntroductionViewModel? var viewModel: YHWorkIntroductionViewModel?
var workModel: YHWorkExperienceDetailModel?
var dataSource: YHWorkExperienceProjectModel = YHWorkExperienceProjectModel()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
gk_navTitle = "工作经验信息填写" gk_navTitle = "工作经验信息填写"
viewModel = YHWorkIntroductionViewModel() viewModel = YHWorkIntroductionViewModel()
setView() setView()
getData() getData()
isShowPromptsLabel()
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
} }
...@@ -67,6 +71,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -67,6 +71,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
let textField = UITextField() let textField = UITextField()
textField.font = UIFont.PFSC_R(ofSize: 14) textField.font = UIFont.PFSC_R(ofSize: 14)
textField.placeholder = "如方便提供,请填写" textField.placeholder = "如方便提供,请填写"
textField.text = dataSource.project_name
return textField return textField
}() }()
view.addSubview(nameTextField) view.addSubview(nameTextField)
...@@ -83,6 +88,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -83,6 +88,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.placeholder = "开始时间" textField.placeholder = "开始时间"
textField.isEnabled = false textField.isEnabled = false
textField.isUserInteractionEnabled = false textField.isUserInteractionEnabled = false
textField.text = dataSource.project_start_time
return textField return textField
}() }()
view.addSubview(startTextField) view.addSubview(startTextField)
...@@ -112,6 +118,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -112,6 +118,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.placeholder = "结束时间" textField.placeholder = "结束时间"
textField.isEnabled = false textField.isEnabled = false
textField.isUserInteractionEnabled = false textField.isUserInteractionEnabled = false
textField.text = dataSource.project_end_time
return textField return textField
}() }()
view.addSubview(endTextField) view.addSubview(endTextField)
...@@ -151,6 +158,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -151,6 +158,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.font = UIFont.PFSC_R(ofSize: 14) textField.font = UIFont.PFSC_R(ofSize: 14)
textField.layer.cornerRadius = 6 textField.layer.cornerRadius = 6
textField.delegate = self textField.delegate = self
textField.text = dataSource.project_highlights
return textField return textField
}() }()
view.addSubview(messageTextField) view.addSubview(messageTextField)
...@@ -182,6 +190,12 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -182,6 +190,12 @@ class YHWorkIntroductionViewController: YHBaseViewController {
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self.viewModel?.introducetionExampleModels mainVc.dataSource = self.viewModel?.introducetionExampleModels
mainVc.type = .introduction mainVc.type = .introduction
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
self.dataSource.project_highlights = message
self.messageTextField.text = message
self.isShowPromptsLabel()
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
...@@ -226,26 +240,46 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -226,26 +240,46 @@ class YHWorkIntroductionViewController: YHBaseViewController {
} }
@objc func submit() { @objc func submit() {
let vc = YHWorkExperienceViewController() viewModel?.saveWorkProjectDetail(workModel ?? YHWorkExperienceDetailModel(), projectModel: dataSource, callBackBlock: {[weak self] success, error in
self.navigationController?.pushViewController(vc, animated: true) guard let self = self else { return }
if let block = self.saveBlock {
block()
}
self.navigationController?.popViewController(animated: true)
})
} }
@objc func startClick() { @objc func startClick() {
YHDatePickView.show(type: .yyyymmdd) { date in YHDatePickView.show(type: .yyyymmdd) { date in
self.startTextField.text = date self.startTextField.text = date
self.dataSource.project_start_time = date
} }
} }
@objc func endClick() { @objc func endClick() {
YHDatePickView.show(type: .yyyymmdd) { date in YHDatePickView.show(type: .yyyymmdd) { date in
self.endTextField.text = date self.endTextField.text = date
self.dataSource.project_end_time = date
}
}
func isShowPromptsLabel() {
if messageTextField.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
} }
} }
} }
extension YHWorkIntroductionViewController: UITextViewDelegate { extension YHWorkIntroductionViewController: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
self.dataSource.project_highlights = textView.text
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
} }
//
// YHWorkExperienceProjectModel.swift
// galaxy
//
// Created by EDY on 2024/2/23.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
struct YHWorkExperienceProjectModel: SmartCodable {
var id: Int?
var order_id: Int?
var work_id: Int?
var project_name: String?
var project_start_time: String?
var project_end_time: String?
var project_highlights: String?
var update_from_appid: Int?
var create_from_appid: Int?
var customer_center_id: Int?
var created_at: String?
var updated_at: String?
var deleted_at: String?
}
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
import UIKit import UIKit
class YHWorkExampleMessageTableViewCell: UITableViewCell { class YHWorkExampleMessageTableViewCell: UITableViewCell {
typealias IndexBlock = (_ index: Int) -> () typealias MessageBlock = (_ message: String) -> ()
var indexBlock: IndexBlock? var messageBlock: MessageBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var useButton: UIButton! var useButton: UIButton!
...@@ -81,7 +81,7 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell { ...@@ -81,7 +81,7 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell {
button.setTitle("使用此模板", for: .normal) button.setTitle("使用此模板", for: .normal)
button.setTitleColor( UIColor(hex:0x2f7ef6), for: .normal) button.setTitleColor( UIColor(hex:0x2f7ef6), for: .normal)
button.layer.cornerRadius = 3 button.layer.cornerRadius = 3
// button.addTarget(self, action: #selector(submit), for: .touchUpInside) button.addTarget(self, action: #selector(submit), for: .touchUpInside)
return button return button
}() }()
centerView.addSubview(useButton) centerView.addSubview(useButton)
...@@ -119,6 +119,12 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell { ...@@ -119,6 +119,12 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell {
} }
} }
@objc func submit() {
if let block = messageBlock {
block(dataSource ?? "")
}
}
func updateAllViews() { func updateAllViews() {
messageLabel.text = dataSource messageLabel.text = dataSource
} }
......
...@@ -108,6 +108,11 @@ extension YHWorkExampleMessageView: UITableViewDelegate, UITableViewDataSource { ...@@ -108,6 +108,11 @@ extension YHWorkExampleMessageView: UITableViewDelegate, UITableViewDataSource {
let cell = tableView.dequeueReusableCell(withClass: YHWorkExampleMessageTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkExampleMessageTableViewCell.self)
cell.titleLabel.text = "范例\(indexPath.row + 1)" cell.titleLabel.text = "范例\(indexPath.row + 1)"
cell.dataSource = dataSource?[indexPath.row] cell.dataSource = dataSource?[indexPath.row]
cell.messageBlock = { [weak self] message in
if let block = self?.exampleBlock {
block(message)
}
}
return cell return cell
} }
......
...@@ -10,7 +10,11 @@ import UIKit ...@@ -10,7 +10,11 @@ import UIKit
class YHWorkHighlightsTableViewCell: UITableViewCell { class YHWorkHighlightsTableViewCell: UITableViewCell {
typealias ExampleBlock = () -> () typealias ExampleBlock = () -> ()
typealias MessageBlock = (_ message: String) -> ()
typealias SwitchBlock = (_ isOn: Bool) -> ()
var exampleBlock: ExampleBlock? var exampleBlock: ExampleBlock?
var messageBlock: MessageBlock?
var switchBlock: SwitchBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -20,7 +24,7 @@ class YHWorkHighlightsTableViewCell: UITableViewCell { ...@@ -20,7 +24,7 @@ class YHWorkHighlightsTableViewCell: UITableViewCell {
var detailLabel: UILabel! var detailLabel: UILabel!
var detailSwitch: UISwitch! var detailSwitch: UISwitch!
var bottomView: YHWorkActionView! var bottomView: YHWorkActionView!
var dataSource: YHSectionWorkExperienceModel?{//模型待定 var dataSource: String?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -187,16 +191,38 @@ class YHWorkHighlightsTableViewCell: UITableViewCell { ...@@ -187,16 +191,38 @@ class YHWorkHighlightsTableViewCell: UITableViewCell {
} }
func updateAllViews() { func updateAllViews() {
messageTextField.text = dataSource
if dataSource?.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
@objc func switchViewChange() { @objc func switchViewChange() {
if let block = switchBlock {
block(detailSwitch.isOn)
}
}
func setSwitchState(_ isOn: Int) {
if isOn == 1 {
detailSwitch.isOn = true
} else {
detailSwitch.isOn = false
}
} }
} }
extension YHWorkHighlightsTableViewCell: UITextViewDelegate { extension YHWorkHighlightsTableViewCell: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
if let block = messageBlock {
block(textView.text ?? "")
}
} }
} }
...@@ -9,15 +9,16 @@ ...@@ -9,15 +9,16 @@
import UIKit import UIKit
class YHWorkIntroductionItemView: UIView { class YHWorkIntroductionItemView: UIView {
typealias ItemBlock = (_ model: YHItemModel) -> () typealias ItemBlock = (_ model: YHWorkExperienceProjectModel) -> ()
var block: ItemBlock? var clickBlock: ItemBlock?
var deleteBlock: ItemBlock?
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
var nextStepImageView: UIImageView! var nextStepImageView: UIImageView!
var deleteButton: UIButton! var deleteButton: UIButton!
var centerButton: UIButton! var centerButton: UIButton!
var dataSource: YHWorkItemListModel? { var dataSource: YHWorkExperienceProjectModel? {
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -91,13 +92,13 @@ class YHWorkIntroductionItemView: UIView { ...@@ -91,13 +92,13 @@ class YHWorkIntroductionItemView: UIView {
button.contentHorizontalAlignment = .center button.contentHorizontalAlignment = .center
button.setTitle("删除", for: .normal) button.setTitle("删除", for: .normal)
button.setTitleColor( UIColor(hex:0xf81d22), for: .normal) button.setTitleColor( UIColor(hex:0xf81d22), for: .normal)
button.addTarget(self, action: #selector(centerClick), for: .touchUpInside) button.addTarget(self, action: #selector(deleteClick), for: .touchUpInside)
button.isHidden = true button.isHidden = true
return button return button
}() }()
addSubview(deleteButton) addSubview(deleteButton)
deleteButton.snp.makeConstraints { make in deleteButton.snp.makeConstraints { make in
make.right.equalTo(-24) make.right.equalToSuperview()
make.height.equalTo(20) make.height.equalTo(20)
make.width.equalTo(28) make.width.equalTo(28)
make.centerY.equalTo(titleLabel.snp.centerY) make.centerY.equalTo(titleLabel.snp.centerY)
...@@ -106,17 +107,30 @@ class YHWorkIntroductionItemView: UIView { ...@@ -106,17 +107,30 @@ class YHWorkIntroductionItemView: UIView {
func updateAllViews() { func updateAllViews() {
guard let dataSource = dataSource else { return } guard let dataSource = dataSource else { return }
// titleLabel.text = dataSource.title titleLabel.text = dataSource.project_name
// subTitleLabel.text = dataSource.subTitle subTitleLabel.text = "\(dataSource.project_start_time ?? "")" + "-" + "\(dataSource.project_end_time ?? "")"
// if dataSource.isShowDelete ?? false {
// deleteButton.isHidden = false
// } else {
// deleteButton.isHidden = true
// }
} }
@objc func centerClick() { @objc func centerClick() {
if let block = clickBlock {
block(self.dataSource ?? YHWorkExperienceProjectModel())
}
}
@objc func deleteClick() {
if let block = deleteBlock {
block(self.dataSource ?? YHWorkExperienceProjectModel())
}
}
func isShowDelete(isShow: Bool) {
if isShow {
nextStepImageView.isHidden = true
deleteButton.isHidden = false
} else {
nextStepImageView.isHidden = false
deleteButton.isHidden = true
}
} }
} }
...@@ -9,10 +9,13 @@ ...@@ -9,10 +9,13 @@
import UIKit import UIKit
class YHWorkIntroductionTableViewCell: UITableViewCell { class YHWorkIntroductionTableViewCell: UITableViewCell {
typealias ExperienceListBlock = (_ model: YHItemModel) -> () typealias ExperienceListBlock = (_ model: YHWorkExperienceProjectModel) -> ()
typealias IsMoreBlock = (_ isMore: Bool) -> ()
typealias AddIntroductionBlock = () -> () typealias AddIntroductionBlock = () -> ()
var experienceListBlock: ExperienceListBlock? var clickBlock: ExperienceListBlock?
var deleteBlock: ExperienceListBlock?
var addIntroductionBlock: AddIntroductionBlock? var addIntroductionBlock: AddIntroductionBlock?
var isMoreBlock: IsMoreBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -20,7 +23,7 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -20,7 +23,7 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
var moreButton: UIButton! var moreButton: UIButton!
var mainItemView: UIView! var mainItemView: UIView!
var bottomView: YHWorkItemAddView! var bottomView: YHWorkItemAddView!
var dataSource: [YHWorkItemListModel]?{ var dataSource: [YHWorkExperienceProjectModel]?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -156,9 +159,17 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -156,9 +159,17 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
} }
let itemView = YHWorkIntroductionItemView() let itemView = YHWorkIntroductionItemView()
itemView.dataSource = dataSource?[i] itemView.dataSource = dataSource?[i]
itemView.block = {[weak self] model in itemView.tag = 4000 + i
itemView.clickBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
if let block = self.experienceListBlock { if let block = self.clickBlock {
block(model)
}
}
itemView.deleteBlock = {[weak self] model in
guard let self = self else { return }
if let block = self.deleteBlock {
block(model) block(model)
} }
} }
...@@ -173,10 +184,26 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -173,10 +184,26 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
} }
@objc func cannal() { @objc func cannal() {
moreButton.isHidden = false
cannalButton.isHidden = true
for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkIntroductionItemView
view.isShowDelete(isShow: false)
}
if let block = isMoreBlock {
block(false)
}
} }
@objc func more() { @objc func more() {
moreButton.isHidden = true
cannalButton.isHidden = false
for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkIntroductionItemView
view.isShowDelete(isShow: true)
}
if let block = isMoreBlock {
block(true)
}
} }
} }
...@@ -9,12 +9,23 @@ ...@@ -9,12 +9,23 @@
import UIKit import UIKit
class YHWorkMessageSelectTableViewCell: UITableViewCell { class YHWorkMessageSelectTableViewCell: UITableViewCell {
typealias IsNeedFileBlock = (_ isNeed: Int) -> ()
var isNeedFileBlock: IsNeedFileBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var lineView: UIView! var lineView: UIView!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
var leftButton: UIButton! var leftButton: UIButton!
var rightButton: UIButton! var rightButton: UIButton!
var dataSource: Int?{
didSet {
var flag = true
if dataSource == 1 {
flag = false
}
buttonState(isLeft: flag)
}
}
override func awakeFromNib() { override func awakeFromNib() {
super.awakeFromNib() super.awakeFromNib()
...@@ -173,6 +184,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell { ...@@ -173,6 +184,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell {
rightButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08) rightButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08)
leftButton.backgroundColor = UIColor.contentBkgColor leftButton.backgroundColor = UIColor.contentBkgColor
leftButton.layer.borderWidth = 0 leftButton.layer.borderWidth = 0
if let block = isNeedFileBlock {
block(1)
}
} }
@objc func leftClick() { @objc func leftClick() {
...@@ -183,6 +197,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell { ...@@ -183,6 +197,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell {
leftButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08) leftButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08)
rightButton.backgroundColor = UIColor.contentBkgColor rightButton.backgroundColor = UIColor.contentBkgColor
rightButton.layer.borderWidth = 0 rightButton.layer.borderWidth = 0
if let block = isNeedFileBlock {
block(0)
}
} }
} }
...@@ -10,7 +10,9 @@ import UIKit ...@@ -10,7 +10,9 @@ import UIKit
class YHWorkResponsibilitiesTableViewCell: UITableViewCell { class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
typealias ExampleBlock = () -> () typealias ExampleBlock = () -> ()
typealias MessageBlock = (_ message: String) -> ()
var exampleBlock: ExampleBlock? var exampleBlock: ExampleBlock?
var messageBlock: MessageBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -18,7 +20,7 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell { ...@@ -18,7 +20,7 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
var messageTextField: UITextView! var messageTextField: UITextView!
var promptsLabel: UILabel! var promptsLabel: UILabel!
var bottomView: YHWorkActionView! var bottomView: YHWorkActionView!
var dataSource: YHSectionWorkExperienceModel?{//模型待定 var dataSource: String?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -154,11 +156,24 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell { ...@@ -154,11 +156,24 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
} }
func updateAllViews() { func updateAllViews() {
messageTextField.text = dataSource
if dataSource?.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
} }
extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate { extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
if let block = messageBlock {
block(textView.text ?? "")
}
} }
} }
...@@ -11,7 +11,7 @@ import UIKit ...@@ -11,7 +11,7 @@ import UIKit
class YHWorkExperienceViewModel: YHBaseViewModel { class YHWorkExperienceViewModel: YHBaseViewModel {
var mainModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel() var mainModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
var exampleModels: [YHWorkExampleModel]? var exampleModels: [YHWorkExampleModel]?
var projectModels: [YHWorkExperienceProjectModel]?
override init() { override init() {
super.init() super.init()
} }
...@@ -114,6 +114,26 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -114,6 +114,26 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
} }
func updateWduty(_ value: String) {
mainModel.wduty = value
}
func updateHighlights(_ value: String) {
mainModel.highlights = value
}
func updateIsProjectIntroduction(isOn: Bool) {
if isOn {
mainModel.is_project_introduction = 1
} else {
mainModel.is_project_introduction = 0
}
}
func updateNotNeedUploadFile(value: Int) {
mainModel.not_need_upload_file = value
}
func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) { func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/example" let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/example"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
...@@ -159,4 +179,113 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -159,4 +179,113 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// 0保存 1下一步
func saveWorkDetail(_ saveType: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let area: [String] = mainModel.location?.area ?? []
let location = ["area": area,
"country": mainModel.location?.country ?? "",
"details": mainModel.location?.details ?? "",
"foreign": mainModel.location?.foreign ?? ""] as [String : Any]
let params: [String : Any] = ["administrative_level": mainModel.administrative_level ?? 0,
"business_nature": mainModel.business_nature ?? "",
"business_remark":mainModel.business_remark ?? "",
"company_introduce": mainModel.company_introduce ?? "",
"company_manage_total": mainModel.company_manage_total ?? 0,
"company_member_total": mainModel.company_member_total ?? 0,
"company_name": mainModel.company_name ?? "",
"company_website": mainModel.company_website ?? "",
"create_from_appid": mainModel.create_from_appid ?? 0,
"created_at": mainModel.created_at ?? "",
"customer_center_id": mainModel.customer_center_id ?? 0,
"deleted_at": mainModel.deleted_at ?? "",
"departure_time": mainModel.departure_time ?? "",
"duty": mainModel.duty ?? "",
"entry_time": mainModel.entry_time ?? "",
"executives_certificate": mainModel.executives_certificate ?? "",
"file": mainModel.file ?? [],
"highlights": mainModel.highlights ?? "",
"id": mainModel.id ?? 0,
"industry": mainModel.industry ?? "",
"international_work_experience": mainModel.international_work_experience ?? 0,
"is_executives": mainModel.is_executives ?? 0,
"is_famous_enterprise": mainModel.is_famous_enterprise ?? 0,
"is_project_introduction": mainModel.is_project_introduction ?? 0,
"is_show": mainModel.is_show ?? 0,
"is_synthetic": mainModel.is_synthetic ?? 0,
"location": location,
"location_aboard": mainModel.location_aboard ?? 0,
"master_of_important_project": mainModel.master_of_important_project ?? 0,
"match_listing": mainModel.match_listing ?? 0,
"not_need_upload_file": mainModel.not_need_upload_file ?? 0,
"old_id": mainModel.old_id ?? 0,
"operator_english_name": mainModel.operator_english_name ?? "",
"operator_id": mainModel.operator_id ?? 0,
"operator_name": mainModel.operator_name ?? "",
"order_id": mainModel.order_id ?? 0,
"position": mainModel.position ?? "",
"professional_level": mainModel.professional_level ?? 0,
"professional_other": mainModel.professional_other ?? "",
"projects": mainModel.projects ?? [],
"remark": mainModel.remark ?? "",
"step": mainModel.step ?? 0,
"top_manager_end_at": mainModel.top_manager_end_at ?? "",
"top_manager_start_at": mainModel.top_manager_start_at ?? "",
"turnover": mainModel.turnover ?? 0,
"update_from_appid": mainModel.update_from_appid ?? 0,
"updated_at": mainModel.updated_at ?? "",
"wduty": mainModel.wduty ?? "",
"work_certificate": mainModel.work_certificate ?? "",
"verify": saveType
]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/save"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestWorkInfoProject(_ workId: String, callBackBlock:@escaping (_ success: [YHWorkExperienceProjectModel]?, _ error:YHErrorModel?)->()){
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/list?work_id=\(workId)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock([],error)
return
}
let dic = model.data?.peel
guard let resultArray = [YHWorkExperienceProjectModel].deserialize(array: dic as? [Any]) else {
callBackBlock([],nil)
return
}
self.projectModels = resultArray as? [YHWorkExperienceProjectModel]
callBackBlock(self.projectModels, nil)
} failBlock: { err in
callBackBlock([],err)
}
}
func requestDeleteWorkExperienceProject(_ orderId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["id": orderId]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/del"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
} }
...@@ -37,5 +37,25 @@ class YHWorkIntroductionViewModel: YHBaseViewModel { ...@@ -37,5 +37,25 @@ class YHWorkIntroductionViewModel: YHBaseViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// 0保存 1下一步
func saveWorkProjectDetail(_ workModel: YHWorkExperienceDetailModel, projectModel: YHWorkExperienceProjectModel, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["app_id": workModel.create_from_appid ?? 0,
"id": projectModel.id ?? 0,
"order_id": workModel.order_id ?? 0,
"project_end_time": projectModel.project_end_time ?? "",
"project_highlights": projectModel.project_highlights ?? 0,
"project_name": projectModel.project_name ?? 0,
"project_start_time": projectModel.project_start_time ?? "",
"work_id": workModel.id ?? 0
]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/save"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
} }
...@@ -99,7 +99,7 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -99,7 +99,7 @@ class YHCodeSueecssViewController: YHBaseViewController {
self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in
guard let self = self else { return } guard let self = self else { return }
if success == false { if success == false {
YHHUD.flash(message: "登录失败") YHHUD.flash(message: error?.errorMsg ?? "")
} else { } else {
YHHUD.flash(message: "登录成功") YHHUD.flash(message: "登录成功")
self.dismiss(animated: true) self.dismiss(animated: true)
......
...@@ -179,7 +179,7 @@ class YHPhoneLoginViewController: YHBaseViewController { ...@@ -179,7 +179,7 @@ class YHPhoneLoginViewController: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
if success == true { if success == true {
YHHUD.flash(message: "验证码已下发,请注意查收") // YHHUD.flash(message: "验证码已下发,请注意查收")
let vc = YHCodeSueecssViewController() let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text vc.phoneNumber = self.phoneMessageView.phoneTextField.text
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
......
...@@ -67,22 +67,28 @@ extension YHLoginViewModel { ...@@ -67,22 +67,28 @@ extension YHLoginViewModel {
return return
} }
if resultModel.token?.count != 0 { if model.code == 200 {
//token 正常 if resultModel.token?.count != 0 {
self.userModel = resultModel //token 正常
YHLoginManager.shared.userModel = resultModel self.userModel = resultModel
YHLoginManager.shared.userModel = resultModel
//数据保存到本地
YHLoginManager.shared.saveLocalUserInfo() //数据保存到本地
YHLoginManager.shared.saveLocalUserInfo()
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
//回调
callBackBlock(true,nil) //回调
} else { callBackBlock(true,nil)
let error : YHErrorModel = YHErrorModel(errorCode:-2,errorMsg: "token 不合法") } else {
let error : YHErrorModel = YHErrorModel(errorCode:-2,errorMsg: "token 不合法")
callBackBlock(false,error)
}
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(model.code), errorMsg: model.msg)
callBackBlock(false,error) callBackBlock(false,error)
} }
} failBlock: { err in } failBlock: { err in
callBackBlock(false,err) callBackBlock(false,err)
} }
......
...@@ -93,7 +93,9 @@ class YHNetRequest: NSObject { ...@@ -93,7 +93,9 @@ class YHNetRequest: NSObject {
print("sign = \(sign)") print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign) requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-") // requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-")
requestHeader.add(name: "token", value: "eyJpdiI6InhISTlXZjA2cXE5Z2pqMDZDa2NrTkE9PSIsInZhbHVlIjoiR3NkRVR0dVdjWE5GN2N3UmNiU0xobVYzZTR6SXlGXC9XVEhWV0xcL1F1YXVBOU9jRDlFZ2pOanBcL1RBMUVkUDlRQ2xhREx0c3dKeHNJQjMwaVVuYkloZHBiUXQzZkJlS2dTWDJrTE90K2FpM0FDWm10a3FFUGZpdW90TDNscStud0tSenRRV2kyV3JVbEZ6eXppUHZ5ajFQMXpBejh0YUZ4Z0VPZkwwdEtwXC9mNjh4bWQySGpSS2pzVkJ1Y3ZrbGFKdGVsMkhkRXJrTlRHbzkxcVdkcE1yWXRja2xDRHVmRUhhdU9ybkJmXC9VRVJnY2RXeVpXMzZVc2h2eUsxYVRmSXR0QXB1WjVsaDBLTllVOEtKWUhSTE5yNXFvYWlaQzdQSWZ0T0V2VTZwTFJjb25OZGdYbE1lNHZOZ0ZWcWhWWkhnUm8rWGJqSE1Jdm1DY3hlWVliY2F0YkplZFwvQ0pMMndtdHFBQUF0MjJYTFNZYk14Tzh0d0g1K2c2M1U2bXFZY3JUbXptbEhCSXR5R3hFZ0JHNmpXTHgzeTJvc0Z2UXpENk5LOTlBN0VjWE8rNmYzTklBN3d0YVVPb2VyS0lNK3FINUZlTmR6UTlBdENuZEtDKzE3emwxMGxvaEc1Sm1mc0E3Y251cU5xcjd4ZzdSbHNNQ2xoRUc4VUJTR24zQ1lRSE5VRGtUd0s0ZTljSlRxRmdwMFVqY0RsMjQwcm1SaVdSN29lNjYrd1JDSlwvSUtiSWpneFpuR2VzeUFBbzNBUUh2MnNVTFZ5bXVLTGVLNFM5TjdzdXpaM1ZFRDdvRUVlRFF0QUY4d2pXcmF4NkFwMGVodXRVUFlxVGhVRmVpYlwvRUJFT05idFhyeXp4TUtcLzN0MlVcL3ZIc2dWSncxaW55TDVUVXFIWjZZMUdHakJKVnpzRkxGeE52RWdLaW9WT0tCb3pTQW1xelNwaTRaQmtGeEpITjVEUU44Q3VGSnBGdzdOcFRyTE9sYmFTT3RrMDJYU3l0XC9PcVJ1OXo2MUpJdm5XSHZFZ0lIMGh5OGR2TEJkNTZjVHFKM1hSYnVEbm9vVFU1VUUzcmRDZ3JhZWRYQWZ1cU9aajVKMHdOMGpxczBSVU5GejNrNzk3bnVBa210dFdCblVBaUs5Y0VIWmxCdE04UlV6T2NEN3ZTN2E0MEhRYmlCNGk3V2xZN1R2ZUM4cVVZZ1Rlb1BndmFcL2phemNnbEhKb05QeHhxa1BldFFqK2ErcWZmYWs1RnNPWEpNK0x4MFo4MTU4OEttZTNxeDMrcCtkNUVwSUd4b1krOXRFdU1UNVFxZyszXC9Lb21TSG5hSFI2OVRVWmxIRm9UcTRlU2kyNWF6K1pQR3lMK1MyS0FvQ2ZFaTViTmdybm1xQ1BscVMzM2tjeUFCQVlvZFdPMTJTb2ttZDl2Q3BuTXVvTnJkUDRpa0g5cE4rWlRcL1l2MWdNdmY0MFVsMFArWWYzWVNmMW5oUnkwWk1mTVc3WUluU3dyQUM4TTZBbHJac0lOMDNiYVhVWks2TCs3QnN0VDlOXC9xaEwyUEtmblVmOXpcL3hoekQ1K3JKWVozVWxrdElKbTdWTHpaMnk2bXFQQ0VJalR1TVpIc1d4bmJjVVIwdTR1VXY1M1wvMEJMODVTWkNreVpCVmh3MWRDeERROGh5YnVsMkVKV2poMFwvYnZHakMycHJmQjUycDQ3b3laUUlTSjdmaDdFMnFtTHhIN1RvUnhhcUhCWXkybkhoMlFwZUVtM0VPUVZrcXp3S0lLMFwvOUtvZnhibE1ZUnp0bGVkcGdqTlp0dGV0cGhCa3hjUmxZXC96SWRFXC83OWxEUnRma1MyYnZqWGhMN0lSM0x2Z0NCTWxIR0pUYjByWDN4Y3JCT3JLTzFzUWkzS3NYTDVDZVJ3MmhEbXlXSENqYWc9PSIsIm1hYyI6Ijc1YmU5YTE4ZGEwNzExZGJlZWQ0MzZhNGVkNWE1NGMzYmE1YWFjNjBhYTgxYjFlYjUyN2M1Yzc4ZjkwNTcyNmMifQ==")
headers = requestHeader 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