Commit fc6e8fec authored by Steven杜宇's avatar Steven杜宇

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

parents c2375805 b83390d7
...@@ -921,7 +921,7 @@ ...@@ -921,7 +921,7 @@
name = "Recovered References"; name = "Recovered References";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04E86E222B81EA1000A35F4B /* WorkExperience */ = { 04E86E222B81EA1000A35F4B /* WorkExperience(工作经验) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04E86E232B81EA1000A35F4B /* ViewModel */, 04E86E232B81EA1000A35F4B /* ViewModel */,
...@@ -929,7 +929,7 @@ ...@@ -929,7 +929,7 @@
04E86E272B81EA1000A35F4B /* C */, 04E86E272B81EA1000A35F4B /* C */,
04E86E292B81EA1000A35F4B /* V */, 04E86E292B81EA1000A35F4B /* V */,
); );
path = WorkExperience; path = "WorkExperience(工作经验)";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04E86E232B81EA1000A35F4B /* ViewModel */ = { 04E86E232B81EA1000A35F4B /* ViewModel */ = {
...@@ -1619,7 +1619,7 @@ ...@@ -1619,7 +1619,7 @@
A5C382C82B5E101E00C5E65C /* ServiceProcess(流程) */ = { A5C382C82B5E101E00C5E65C /* ServiceProcess(流程) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04E86E222B81EA1000A35F4B /* WorkExperience */, 04E86E222B81EA1000A35F4B /* WorkExperience(工作经验) */,
04C693652B73183E004C1758 /* Education&Qualification(学历专业资格填写) */, 04C693652B73183E004C1758 /* Education&Qualification(学历专业资格填写) */,
A5234E382B72346A00A33433 /* OtherInformation(其他信息) */, A5234E382B72346A00A33433 /* OtherInformation(其他信息) */,
A58556BB2B6BD81C003746B2 /* BaseInformation(基本资料) */, A58556BB2B6BD81C003746B2 /* BaseInformation(基本资料) */,
......
...@@ -7,6 +7,64 @@ ...@@ -7,6 +7,64 @@
// //
import UIKit import UIKit
import Alamofire
class YHBaseViewModel { class YHBaseViewModel {
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.uploadApi
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
//换取一张
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.getPublicApi
let param: [String: Any] = ["fileUrl": url]
let _ = YHNetRequest.getRequest(url: strUrl, params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
//换取多张图片
func getPublicImageUrls(_ url: [String], callBackBlock:@escaping (_ success: [String : Any]?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.getPublicApi
let param: [String: Any] = ["fileUrl": url]
let _ = YHNetRequest.getRequest(url: strUrl, params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? [String : Any], nil)//使用的同学完善
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
} }
...@@ -350,47 +350,84 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource ...@@ -350,47 +350,84 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
return newCell return newCell
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true) tableView.deselectRow(at: indexPath, animated: true)
printLog("点击了 \(indexPath.section)section --- \(indexPath.row)row") printLog("点击了 \(indexPath.section)section --- \(indexPath.row)row")
//处理跳转逻辑
handleJumpLogic( tapIndex : indexPath.row)
}
private func handleJumpLogic(tapIndex : Int) {
//开发模式下 任意跳转
//#if DEBUG
// handleJumpLogicDebug(tapIndex: tapIndex)
// return
//#endif
//正式环境
handleJumpLogicRelease(tapIndex: tapIndex)
}
private func handleJumpLogicRelease(tapIndex : Int) {
if self.serviceCenterMainReqVM.myInfoFillStep > 6 { if self.serviceCenterMainReqVM.myInfoFillStep > 6 {
goInfoListVCOp(index:indexPath.row) goInfoListVCOp(index:tapIndex)
return return
} }
if tapIndex <= serviceCenterMainReqVM.myInfoFillStep {
handleJumpLogicDebug(tapIndex: tapIndex)
} else {
//请先完成 xxx 的填写
if serviceCenterMainReqVM.myInfoFillStep < serviceCenterMainReqVM.arrInfoFillStep.count {
let model = serviceCenterMainReqVM.arrInfoFillStep[serviceCenterMainReqVM.myInfoFillStep]
let msg = "请先完成" + model.name + "填写"
YHHUD.flash(message: msg)
}
}
}
if indexPath.row == 0 { private func handleJumpLogicDebug(tapIndex : Int) {
if self.serviceCenterMainReqVM.myInfoFillStep > 6 {
goInfoListVCOp(index:tapIndex)
return
}
if tapIndex == 0 {
//主申请人信息 //主申请人信息
let vc = YHMainApplicantInformationViewController() let vc = YHMainApplicantInformationViewController()
vc.orderId = orderId ?? 0 vc.orderId = orderId ?? 0
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 1 { } else if tapIndex == 1 {
//家庭程序信息 //家庭程序信息
let vc = YHFamilyMemberInfoListVC(orderId: orderId ?? 0) let vc = YHFamilyMemberInfoListVC(orderId: orderId ?? 0)
vc.orderId = orderId ?? 0 vc.orderId = orderId ?? 0
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 2 { } else if tapIndex == 2 {
//基本信息 //基本信息
let vc = YHBasicInfoFillViewController() let vc = YHBasicInfoFillViewController()
vc.orderId = orderId vc.orderId = orderId
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 3 { } else if tapIndex == 3 {
//学历/专业资格 //学历/专业资格
let vc = YHEducationInfoListVC() let vc = YHEducationInfoListVC()
vc.orderId = orderId ?? 0 vc.orderId = orderId ?? 0
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 4 { } else if tapIndex == 4 {
//工作经历 //工作经历
let vc = YHWorkExperienceListViewController() let vc = YHWorkExperienceListViewController()
vc.orderId = orderId ?? 0 vc.orderId = orderId ?? 0
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 5 { } else if tapIndex == 5 {
//其他信息 //其他信息
let vc = YHOtherInfoFillViewController() let vc = YHOtherInfoFillViewController()
vc.orderId = orderId vc.orderId = orderId
...@@ -398,6 +435,5 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource ...@@ -398,6 +435,5 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else { } else {
} }
} }
} }
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import UIKit import UIKit
import Alamofire import Alamofire
class YHFamilyMemberViewModel { class YHFamilyMemberViewModel : YHBaseViewModel{
var mainModel: YHFamilyMember = YHFamilyMember() var mainModel: YHFamilyMember = YHFamilyMember()
...@@ -141,44 +141,6 @@ class YHFamilyMemberViewModel { ...@@ -141,44 +141,6 @@ class YHFamilyMemberViewModel {
} }
} }
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/upload/storage"
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/storage/convertToPublicURL" + "?fileUrl=\(url)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
func requestCnIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) { func requestCnIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.cnIdCard let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.cnIdCard
let params: [String : Any] = ["url": url] let params: [String : Any] = ["url": url]
......
...@@ -390,44 +390,6 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel { ...@@ -390,44 +390,6 @@ class YHMainApplicantInformationViewModel: YHBaseViewModel {
} }
} }
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/upload/storage"
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/storage/convertToPublicURL" + "?fileUrl=\(url)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
func requestCnIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) { func requestCnIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.cnIdCard let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.cnIdCard
let params: [String : Any] = ["url": url] let params: [String : Any] = ["url": url]
......
...@@ -127,7 +127,7 @@ extension YHOtherResidenceFillView { ...@@ -127,7 +127,7 @@ extension YHOtherResidenceFillView {
self.layoutIfNeeded() self.layoutIfNeeded()
} }
self.parentViewController?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
......
...@@ -136,21 +136,21 @@ private extension YHOtherYesOrNoItemView { ...@@ -136,21 +136,21 @@ private extension YHOtherYesOrNoItemView {
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
} }
answer1Btn.snp.makeConstraints { make in answer2Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight)) make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(titleLabel.snp.left) make.left.equalTo(titleLabel.snp.left)
make.top.equalTo(titleLabel.snp.bottom).offset(12) make.top.equalTo(titleLabel.snp.bottom).offset(12)
} }
answer2Btn.snp.makeConstraints { make in answer1Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight)) make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(answer1Btn.snp.right).offset(12) make.left.equalTo(answer2Btn.snp.right).offset(12)
make.top.equalTo(answer1Btn.snp.top) make.top.equalTo(answer2Btn.snp.top)
} }
addSubview(bottomLine) addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in bottomLine.snp.makeConstraints { make in
make.top.equalTo(answer1Btn.snp.bottom).offset(12) make.top.equalTo(answer2Btn.snp.bottom).offset(12)
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.height.equalTo(0.5) make.height.equalTo(0.5)
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
...@@ -180,7 +180,7 @@ private extension YHOtherYesOrNoItemView { ...@@ -180,7 +180,7 @@ private extension YHOtherYesOrNoItemView {
answer1Btn.isSelected = false answer1Btn.isSelected = false
updateAnswerButton(answer1Btn, false) updateAnswerButton(answer1Btn, false)
} }
self.block?(answer2Btn.isSelected == true ? 1 : 2) self.block?(answer2Btn.isSelected == true ? 1 : 2)//是-1 否-2
layoutMyUI() layoutMyUI()
} }
...@@ -197,10 +197,11 @@ private extension YHOtherYesOrNoItemView { ...@@ -197,10 +197,11 @@ private extension YHOtherYesOrNoItemView {
extension YHOtherYesOrNoItemView { extension YHOtherYesOrNoItemView {
func updateUI(title : String , answer : Int) { func updateUI(title : String , answer : Int) {
self.title = title self.title = title
//是-1 否-2
if answer == 2 { if answer == 2 {
didClickResponseBtn(btn: answer2Btn)
} else if answer == 1 {
didClickResponseBtn(btn: answer1Btn) didClickResponseBtn(btn: answer1Btn)
} else if answer == 1 {
didClickResponseBtn(btn: answer2Btn)
} }
layoutMyUI() layoutMyUI()
......
...@@ -134,6 +134,8 @@ extension YHPreviewMainViewController { ...@@ -134,6 +134,8 @@ extension YHPreviewMainViewController {
self.nameLable.text = title self.nameLable.text = title
self.phoneLable.text = self.previewVM.mainApplicationInfoPreviewModel?.mobile ?? "-" self.phoneLable.text = self.previewVM.mainApplicationInfoPreviewModel?.mobile ?? "-"
self.handleHeaderIcon()
} else { } else {
} }
...@@ -144,6 +146,19 @@ extension YHPreviewMainViewController { ...@@ -144,6 +146,19 @@ extension YHPreviewMainViewController {
} }
} }
private func handleHeaderIcon() {
//缺少头像字段
// guard let model = previewVM.mainApplicationInfoPreviewModel,let icon = model. else {
// return
// }
// previewVM.getPublicImageUrl(imgString) {[weak self] success, error in
// guard let self = self else { return }
// guard success != nil else { return }
// self.resultView.kf.setImage(with: URL(string: success))
// }
}
private func initView()->Void { private func initView()->Void {
gk_navigationBar.isHidden = false gk_navigationBar.isHidden = false
gk_backStyle = .black gk_backStyle = .black
......
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
import UIKit import UIKit
class YHPreviewInfoCertificatePictureItemView: UIView { class YHPreviewInfoCertificatePictureItemView: UIView {
lazy var requestVM : YHBaseViewModel = {
let r = YHBaseViewModel()
return r
}()
var dataModel : YHPersonInfoCellModel2? { var dataModel : YHPersonInfoCellModel2? {
didSet { didSet {
...@@ -147,6 +151,35 @@ extension YHPreviewInfoCertificatePictureItemView { ...@@ -147,6 +151,35 @@ extension YHPreviewInfoCertificatePictureItemView {
cellTitleLable.text = dataModel.cellTitle cellTitleLable.text = dataModel.cellTitle
frontLable.text = dataModel.idType == 1 ? "身份证头像面" : "港澳通行证正面" frontLable.text = dataModel.idType == 1 ? "身份证头像面" : "港澳通行证正面"
backLable.text = dataModel.idType == 1 ? "身份证国徽面" : "港澳通行证反面" backLable.text = dataModel.idType == 1 ? "身份证国徽面" : "港澳通行证反面"
//获取头像
handleCardImage()
}
private func handleCardImage() {
guard let dataModel = dataModel else { return }
let url = dataModel.frontUrl
// let url = "https://upload-cdn.galaxy-immi.com/crm/test/files/1709370416082.png?Expires=1709697934&OSSAccessKeyId=LTAI5tJPQC4La6LWbcNoz61u&Signature=eKv4J8STMXSHFyJvozmHPgJdmY4%3D&v=1709696134"
if url.isEmpty == false {
self.requestVM.getPublicImageUrl(url) {[weak self] success, error in
guard let self = self else { return }
guard success != nil else { return }
self.frontImagV.kf.setImage(with: URL(string: success))
}
}
// let url2 = "https://upload-cdn.galaxy-immi.com/crm/test/files/1709370416082.png?Expires=1709697934&OSSAccessKeyId=LTAI5tJPQC4La6LWbcNoz61u&Signature=eKv4J8STMXSHFyJvozmHPgJdmY4%3D&v=1709696134"
let url2 = dataModel.backUrl
if url2.isEmpty == false {
self.requestVM.getPublicImageUrl(url2) {[weak self] success, error in
guard let self = self else { return }
guard success != nil else { return }
self.backImagV.kf.setImage(with: URL(string: success))
}
}
} }
} }
......
...@@ -21,12 +21,16 @@ class YHPreviewInfoWorkSummaryView: UIView { ...@@ -21,12 +21,16 @@ class YHPreviewInfoWorkSummaryView: UIView {
updateUI() updateUI()
} }
} }
var arrFiles : [WorkExpFilePreviewModel] = []
} }
extension YHPreviewInfoWorkSummaryView { extension YHPreviewInfoWorkSummaryView {
func updateUI() { func updateUI() {
guard let model = dataModel else { return } guard let model = dataModel else { return }
removeSubviews() removeSubviews()
arrFiles.removeAll()
if model.data.isEmpty == false { if model.data.isEmpty == false {
...@@ -45,7 +49,7 @@ extension YHPreviewInfoWorkSummaryView { ...@@ -45,7 +49,7 @@ extension YHPreviewInfoWorkSummaryView {
var lastTagView : UIView = sessionView var lastTagView : UIView = sessionView
let arr = model.data as? [WorkExpFilePreviewModel] ?? [] let arr = model.data as? [WorkExpFilePreviewModel] ?? []
for(_,item) in arr.enumerated() { for(index,item) in arr.enumerated() {
let label : UILabel = UILabel() let label : UILabel = UILabel()
label.text = model.title label.text = model.title
...@@ -53,6 +57,7 @@ extension YHPreviewInfoWorkSummaryView { ...@@ -53,6 +57,7 @@ extension YHPreviewInfoWorkSummaryView {
label.font = UIFont.PFSC_R(ofSize: 14) label.font = UIFont.PFSC_R(ofSize: 14)
label.numberOfLines = 0 label.numberOfLines = 0
label.text = item.fileName label.text = item.fileName
label.tag = index
addSubview(label) addSubview(label)
label.snp.makeConstraints { make in label.snp.makeConstraints { make in
make.top.equalTo(lastTagView.snp.bottom).offset(8) make.top.equalTo(lastTagView.snp.bottom).offset(8)
...@@ -60,8 +65,13 @@ extension YHPreviewInfoWorkSummaryView { ...@@ -60,8 +65,13 @@ extension YHPreviewInfoWorkSummaryView {
make.left.equalToSuperview().offset(kMargin) make.left.equalToSuperview().offset(kMargin)
make.height.greaterThanOrEqualTo(20) // >=20 make.height.greaterThanOrEqualTo(20) // >=20
} }
addSubview(label)
lastTagView = label lastTagView = label
arrFiles.append(item)
label.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action:#selector(handleTap))
label.addGestureRecognizer(tap)
} }
let tagView : UIView = UIView() let tagView : UIView = UIView()
...@@ -76,4 +86,17 @@ extension YHPreviewInfoWorkSummaryView { ...@@ -76,4 +86,17 @@ extension YHPreviewInfoWorkSummaryView {
} }
} }
} }
@objc func handleTap(_ gestureRecognizer: UITapGestureRecognizer) {
guard let label = gestureRecognizer.view else { return }
if label.tag < arrFiles.count {
let vc = YHImageViewController()
vc.imgString = arrFiles[label.tag].fileUrl
UIViewController.current?.navigationController?.pushViewController(vc)
} else {
printLog("error: 数组越界")
}
}
} }
...@@ -14,6 +14,7 @@ class YHCompanySelectViewController: YHBaseViewController { ...@@ -14,6 +14,7 @@ class YHCompanySelectViewController: YHBaseViewController {
var searchView: UITextField! var searchView: UITextField!
var sureButton: UIButton! var sureButton: UIButton!
var tableView: UITableView! var tableView: UITableView!
var alertLabel: UILabel!
var searchDataSource: [YHCompanyModelListModel]? var searchDataSource: [YHCompanyModelListModel]?
var viewModel: YHCompanyViewModel? var viewModel: YHCompanyViewModel?
...@@ -32,23 +33,40 @@ class YHCompanySelectViewController: YHBaseViewController { ...@@ -32,23 +33,40 @@ class YHCompanySelectViewController: YHBaseViewController {
func setView() { func setView() {
view.backgroundColor = .white view.backgroundColor = .white
let bgView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xf8f9fb)
view.layer.cornerRadius = 20.5
return view
}()
view.addSubview(bgView)
bgView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(41)
make.left.equalTo(16)
make.right.equalTo(-16)
}
searchView = { searchView = {
let searchBar = UITextField() let searchBar = UITextField()
searchBar.placeholder = "请输入用人单位全称" searchBar.placeholder = "请输入用人单位全称"
searchBar.backgroundColor = UIColor(hex: 0xf8f9fb) searchBar.backgroundColor = UIColor(hex: 0xf8f9fb)
searchBar.font = UIFont.PFSC_R(ofSize: 14)
searchBar.keyboardType = .default searchBar.keyboardType = .default
searchBar.delegate = self searchBar.delegate = self
searchBar.layer.cornerRadius = 21 searchBar.layer.cornerRadius = 20.5
searchBar.leftView = UIView(frame: CGRect(x: 0, y: 0, width: 16, height: 42)) searchBar.leftView = UIView(frame: CGRect(x: 0, y: 0, width: 16, height: 42))
searchBar.leftViewMode = .always searchBar.leftViewMode = .always
searchBar.clearButtonMode = .always
return searchBar return searchBar
}() }()
view.addSubview(searchView) view.addSubview(searchView)
searchView.snp.makeConstraints { make in searchView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16) make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(42) make.height.equalTo(41)
make.left.equalTo(16) make.left.equalTo(16)
make.right.equalTo(-16) make.right.equalTo(-90)
} }
sureButton = { sureButton = {
...@@ -57,18 +75,20 @@ class YHCompanySelectViewController: YHBaseViewController { ...@@ -57,18 +75,20 @@ class YHCompanySelectViewController: YHBaseViewController {
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16) button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
button.contentHorizontalAlignment = .center button.contentHorizontalAlignment = .center
button.setTitle("保存", for: .normal) button.setTitle("保存", for: .normal)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 12)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal) button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = 18 button.layer.cornerRadius = 16.5
button.addTarget(self, action: #selector(submit), for: .touchUpInside) button.addTarget(self, action: #selector(submit), for: .touchUpInside)
return button return button
}() }()
view.addSubview(sureButton) view.addSubview(sureButton)
sureButton.snp.makeConstraints { make in sureButton.snp.makeConstraints { make in
make.centerY.equalTo(searchView.snp.centerY) make.centerY.equalTo(searchView.snp.centerY)
make.height.equalTo(36) make.height.equalTo(33)
make.width.equalTo(80) make.width.equalTo(66)
make.right.equalTo(-16) make.right.equalTo(-20)
} }
sureButton.addYinHeGradualLayer()
tableView = { tableView = {
let tableView = UITableView(frame:.zero, style:.plain) let tableView = UITableView(frame:.zero, style:.plain)
...@@ -88,6 +108,24 @@ class YHCompanySelectViewController: YHBaseViewController { ...@@ -88,6 +108,24 @@ class YHCompanySelectViewController: YHBaseViewController {
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64) make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view) make.left.right.equalTo(view)
} }
alertLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor(hex: 0x949494)
label.numberOfLines = 0
label.text = "暂未检索到相关企业,请准确、完整输入您的企业名称"
label.textAlignment = .center
label.isHidden = true
return label
}()
view.addSubview(alertLabel)
alertLabel.snp.makeConstraints { make in
make.left.equalTo(21)
make.right.equalTo(-21)
make.height.equalTo(17)
make.top.equalTo(searchView.snp.bottom).offset(21)
}
} }
@objc func submit() { @objc func submit() {
...@@ -102,15 +140,29 @@ extension YHCompanySelectViewController: UITextFieldDelegate { ...@@ -102,15 +140,29 @@ extension YHCompanySelectViewController: UITextFieldDelegate {
func textFieldDidChangeSelection(_ textField: UITextField) { func textFieldDidChangeSelection(_ textField: UITextField) {
if textField.text == "" { if textField.text == "" {
tableView.isHidden = true tableView.isHidden = true
alertLabel.isHidden = true
} else { } else {
viewModel?.requestCompany(textField.text ?? "") { [weak self] success, error in viewModel?.requestCompany(textField.text ?? "") { [weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if success?.count == 0 {
self.alertLabel.isHidden = false
self.tableView.isHidden = true
} else {
self.searchDataSource = success self.searchDataSource = success
self.tableView.isHidden = false self.tableView.isHidden = false
self.tableView.reloadData() self.tableView.reloadData()
} }
} }
} }
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
tableView.isHidden = true
alertLabel.isHidden = true
searchDataSource = []
textField.text = ""
return true
}
} }
extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSource { extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -120,12 +172,13 @@ extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSou ...@@ -120,12 +172,13 @@ extension YHCompanySelectViewController: UITableViewDelegate, UITableViewDataSou
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHCompanyTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHCompanyTableViewCell.self)
cell.titleLabel.text = searchDataSource?[indexPath.row].company_name let newString = searchDataSource?[indexPath.row].company_name?.highlight(keyWords: searchView.text, highlightColor: UIColor.brandMainColor)
cell.titleLabel.attributedText = newString
return cell return cell
} }
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 44 return 40
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
...@@ -164,15 +217,16 @@ class YHCompanyTableViewCell: UITableViewCell { ...@@ -164,15 +217,16 @@ class YHCompanyTableViewCell: UITableViewCell {
func setupUI() { func setupUI() {
titleLabel = { titleLabel = {
let label = UILabel() let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 13) label.font = UIFont.PFSC_R(ofSize: 14)
label.textColor = UIColor.mainTextColor label.textColor = UIColor.mainTextColor
label.numberOfLines = 0
return label return label
}() }()
contentView.addSubview(titleLabel) contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.left.equalTo(22) make.top.bottom.equalToSuperview()
make.centerY.equalToSuperview() make.left.equalTo(21)
make.height.equalTo(20) make.right.equalTo(-21)
} }
} }
} }
......
...@@ -12,7 +12,7 @@ class YHImageViewController: YHBaseViewController { ...@@ -12,7 +12,7 @@ class YHImageViewController: YHBaseViewController {
var resultView: UIImageView! var resultView: UIImageView!
var resultButton: UIButton! var resultButton: UIButton!
var imgString: String! var imgString: String!
var viewModel: YHWorkExperienceViewModel! var viewModel: YHBaseViewModel!
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
...@@ -66,19 +66,8 @@ class YHImageViewController: YHBaseViewController { ...@@ -66,19 +66,8 @@ class YHImageViewController: YHBaseViewController {
func getData() { func getData() {
self.viewModel.getPublicImageUrl(imgString) {[weak self] success, error in self.viewModel.getPublicImageUrl(imgString) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
guard let url = success else { return } guard success != nil else { return }
self.resultView.kf.setImage(with: URL(string: success)) self.resultView.kf.setImage(with: URL(string: success))
} }
} }
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
} }
...@@ -198,16 +198,10 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -198,16 +198,10 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
if self.viewModel.mainModel.is_project_introduction == 1 { if self.viewModel.mainModel.is_project_introduction == 1 {
return 1 return 1
} else { } else {
if viewModel.mainModel.not_need_upload_file == 1 {
return 1
}
return 2 return 2
} }
} }
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
...@@ -252,6 +246,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -252,6 +246,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} 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.dataSource = viewModel.mainModel.highlights
cell.detailSwitch.isOn = viewModel.mainModel.is_project_introduction == 1
cell.exampleBlock = {[weak self] in cell.exampleBlock = {[weak self] in
guard let self = self else { return } guard let self = self else { return }
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
...@@ -348,6 +343,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -348,6 +343,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self)
cell.dataSource = fileDataSource cell.dataSource = fileDataSource
cell.isHidden = viewModel.mainModel.not_need_upload_file == 1 && isShowMessageSelect
cell.addIntroductionBlock = { [weak self] in cell.addIntroductionBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
YHImagePickerView.show() {[weak self] image in YHImagePickerView.show() {[weak self] image in
...@@ -398,6 +394,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -398,6 +394,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self)
cell.dataSource = fileDataSource cell.dataSource = fileDataSource
cell.isHidden = viewModel.mainModel.not_need_upload_file == 1 && isShowMessageSelect
cell.addIntroductionBlock = { [weak self] in cell.addIntroductionBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
YHImagePickerView.show() {[weak self] image in YHImagePickerView.show() {[weak self] image in
...@@ -444,7 +441,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -444,7 +441,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
guard let self = self else { return } guard let self = self else { return }
self.viewModel.updateModel(model) self.viewModel.updateModel(model)
let id = model.id let id = model.id
if id != .id1 && id != .id3 && id != .id4 && id != .id7 && id != .id8 && id != .id12 && id != .id14 && id != .id17 && id != .id17 && id != .id18 { if id != .id1 && id != .id3 && id != .id4 && id != .id7 && id != .id8 && id != .id12 && id != .id14 && id != .id16 && id != .id17 && id != .id18 {
self.updateDataSource() self.updateDataSource()
} }
} }
......
...@@ -281,14 +281,16 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -281,14 +281,16 @@ class YHWorkIntroductionViewController: YHBaseViewController {
} }
@objc func startClick() { @objc func startClick() {
YHDatePickView.show(type: .yyyymmdd) { date in view.endEditing(true)
YHDatePickView.show(type: .yyyymmdd, title: "请选择开始时间") { date in
self.startTextField.text = date self.startTextField.text = date
self.dataSource.project_start_time = date self.dataSource.project_start_time = date
} }
} }
@objc func endClick() { @objc func endClick() {
YHDatePickView.show(type: .yyyymmdd) { date in view.endEditing(true)
YHDatePickView.show(type: .yyyymmdd, title: "请选择结束时间") { date in
self.endTextField.text = date self.endTextField.text = date
self.dataSource.project_end_time = date self.dataSource.project_end_time = date
} }
......
...@@ -22,7 +22,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -22,7 +22,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
let item1 = YHWorkExperienceModel(id: .id2, isNeed: true, title: "用人单位性质", isUserKeyBoard: false, prompts: "请输入", message: mainModel.industry, type: .nature, isShowPrompts: isShowPrompt, alertMessage:"请选择用人单位性质") let item1 = YHWorkExperienceModel(id: .id2, isNeed: true, title: "用人单位性质", isUserKeyBoard: false, prompts: "请输入", message: mainModel.industry, type: .nature, isShowPrompts: isShowPrompt, alertMessage:"请选择用人单位性质")
let item2 = YHWorkExperienceModel(id: .id3, isNeed: false, title: "用人单位介绍", isUserKeyBoard: true, prompts: "如方便提供,请填写", message: mainModel.company_introduce) let item2 = YHWorkExperienceModel(id: .id3, isNeed: false, title: "用人单位介绍", isUserKeyBoard: true, prompts: "如方便提供,请填写", message: mainModel.company_introduce)
let item3 = YHWorkExperienceModel(id: .id4, isNeed: false, title: "用人单位官网", isUserKeyBoard: true, prompts: "如有,请输入官网链接", message: mainModel.company_website) let item3 = YHWorkExperienceModel(id: .id4, isNeed: false, title: "用人单位官网", isUserKeyBoard: true, prompts: "如有,请输入官网链接", message: mainModel.company_website)
let item4 = YHWorkExperienceModel(id: .id5, isNeed: true, title: "出生国家/地区", isUserKeyBoard: false, prompts: nil, message: mainModel.location.country, type: .country, isShowPrompts: isShowPrompt, alertMessage:"请选择工作国家/地区") let item4 = YHWorkExperienceModel(id: .id5, isNeed: true, title: "出生国家/地区", isUserKeyBoard: false, prompts: "请选择", message: mainModel.location.country, type: .country, isShowPrompts: isShowPrompt, alertMessage:"请选择工作国家/地区")
var string = "" var string = ""
let array = mainModel.location.area let array = mainModel.location.area
for item in array { for item in array {
...@@ -34,7 +34,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -34,7 +34,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
let item7 = YHWorkExperienceModel(id: .id9, isNeed: true, title: "入职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.entry_time, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择入职年月") let item7 = YHWorkExperienceModel(id: .id9, isNeed: true, title: "入职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.entry_time, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择入职年月")
let item8 = YHWorkExperienceModel(id: .id10, isNeed: true, title: "离职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.departure_time, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择离职年月") let item8 = YHWorkExperienceModel(id: .id10, isNeed: true, title: "离职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.departure_time, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择离职年月")
let item9 = YHWorkExperienceModel(id: .id11, isNeed: true, title: "工作证明文件", isUserKeyBoard: false, prompts: "请选择", message: mainModel.work_certificate, type: .certificate, isShowPrompts: isShowPrompt, alertMessage:"请选择工作证明文件") let item9 = YHWorkExperienceModel(id: .id11, isNeed: true, title: "工作证明文件", isUserKeyBoard: false, prompts: "请选择", message: mainModel.work_certificate, type: .certificate, isShowPrompts: isShowPrompt, alertMessage:"请选择工作证明文件")
let item10 = YHWorkExperienceModel(id: .id12, isNeed: false, title: "职责性质", isUserKeyBoard: true, prompts: "请选择", message: mainModel.duty, isShowPrompts: isShowPrompt, alertMessage:"请输入职责性质") let item10 = YHWorkExperienceModel(id: .id12, isNeed: true, title: "职责性质", isUserKeyBoard: true, prompts: "请选择", message: mainModel.duty, isShowPrompts: isShowPrompt, alertMessage:"请输入职责性质")
let item11 = YHWorkExperienceModel(id: .id13, isNeed: false, title: "相关工作经验是否属于国际工作经验", isUserKeyBoard: false, prompts: "", message: "\(mainModel.international_work_experience)", leftButtonString: "是", rightButtonString: "否") let item11 = YHWorkExperienceModel(id: .id13, isNeed: false, title: "相关工作经验是否属于国际工作经验", isUserKeyBoard: false, prompts: "", message: "\(mainModel.international_work_experience)", leftButtonString: "是", rightButtonString: "否")
let addressCountry = mainModel.location.country let addressCountry = mainModel.location.country
var section = YHSectionWorkExperienceModel() var section = YHSectionWorkExperienceModel()
...@@ -276,44 +276,6 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -276,44 +276,6 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
} }
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/upload/storage"
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/storage/convertToPublicURL" + "?fileUrl=\(url)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
func requestFileMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ model: YHFileContent?,_ error:YHErrorModel?)->()) { func requestFileMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ model: YHFileContent?,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.ocrFileContent + "?file_url=\(url)" let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.ocrFileContent + "?file_url=\(url)"
// let params: [String : Any] = ["url": url] // let params: [String : Any] = ["url": url]
......
...@@ -54,47 +54,8 @@ class YHWorkIntroductionViewModel: YHBaseViewModel { ...@@ -54,47 +54,8 @@ class YHWorkIntroductionViewModel: YHBaseViewModel {
} }
} }
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/upload/storage"
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/storage/convertToPublicURL" + "?fileUrl=\(url)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
func requestFileMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ model: YHFileContent?,_ error:YHErrorModel?)->()) { func requestFileMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ model: YHFileContent?,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.ocrFileContent + "?file_url=\(url)" let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.ocrFileContent + "?file_url=\(url)"
// let params: [String : Any] = ["url": url]
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象 //1. json字符串 转 对象
guard let self = self else { return } guard let self = self else { return }
......
...@@ -187,3 +187,41 @@ extension String { ...@@ -187,3 +187,41 @@ extension String {
} }
} }
extension String {
/// 指定关键词高亮
/// - Parameter keyWords: 关键词
/// - Parameter color: 高亮颜色
func highlight(keyWords: String?, highlightColor color: UIColor) -> NSAttributedString {
let string: String = self
let attributeString = NSMutableAttributedString(string: string)
guard let keyWords = keyWords else { return attributeString }
let attribute: [NSAttributedString.Key: Any] = [.foregroundColor: color]
// 需要改变的文本
let ranges = ranges(of: keyWords, options: .caseInsensitive)
for range in ranges where range.location + range.length <= string.count {
attributeString.addAttributes(attribute, range: range)
}
return attributeString
}
/// 查找字符串中子字符串的NSRange
/// - Parameters:
/// - substring: 子字符串
/// - options: 匹配选项
/// - locale: 本地化
/// - Returns: 子字符串的NSRange数组
func ranges(of substring: String, options: CompareOptions = [], locale: Locale? = nil) -> [NSRange] {
var ranges: [Range<Index>] = []
while let range = range(of: substring, options: options, range: (ranges.last?.upperBound ?? self.startIndex)..<self.endIndex, locale: locale) {
ranges.append(range)
}
// [range]转换为[NSRange]返回
return ranges.compactMap({NSRange($0, in: self)})
}
/// range转换为NSRange
func toNSRange(from range: Range<String.Index>) -> NSRange {
return NSRange(range, in: self)
}
}
...@@ -168,4 +168,10 @@ class YHAllApiName { ...@@ -168,4 +168,10 @@ class YHAllApiName {
//工作经验 //工作经验
static let previewWorkExpInfoApi = "infoflow/work/preview" static let previewWorkExpInfoApi = "infoflow/work/preview"
} }
struct OSS {
static let uploadApi = "oss/upload/storage"
static let getPublicApi = "oss/storage/convertToPublicURL"
static let getPublicUrlsApi = "oss/storage/batchConvertToPublicURL"
}
} }
...@@ -17,6 +17,9 @@ class YHBaseUrlManager { ...@@ -17,6 +17,9 @@ class YHBaseUrlManager {
// static let baseUrlTest : String = "https://test-api-gateway.galaxy-immi.com/" //智汇银河 - 微信小程序 // static let baseUrlTest : String = "https://test-api-gateway.galaxy-immi.com/" //智汇银河 - 微信小程序
static let baseUrlTest : String = "http://test.api.diymanager.galaxy-immi.com/" //APP 使用域名 static let baseUrlTest : String = "http://test.api.diymanager.galaxy-immi.com/" //APP 使用域名
static let baseOOSUrlTest : String = "https://test-comserver.galaxy-immi.com/"
static let baseOOSUrlRelease : String = "http://comserver.galaxy-immi.com" //APP 使用域名
//正式环境 //正式环境
static let baseUrlRelease : String = "http://test.api.diymanager.galaxy-immi.com/" static let baseUrlRelease : String = "http://test.api.diymanager.galaxy-immi.com/"
...@@ -40,6 +43,14 @@ class YHBaseUrlManager { ...@@ -40,6 +43,14 @@ class YHBaseUrlManager {
#endif #endif
} }
func curOssURL() -> String {
#if DEBUG
return urlForEditing ?? YHBaseUrlManager.baseOOSUrlTest
#else
return YHBaseUrlManager.baseOOSUrlRelease
#endif
}
// MARK: - 当前使用的url // MARK: - 当前使用的url
func h5URL() -> String { func h5URL() -> String {
#if DEBUG #if DEBUG
......
{ {
"images" : [ "images" : [
{ {
"filename" : "截屏2023-03-21 16.03 1.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "截屏2023-03-21 16.03 1@2x.png", "filename" : "Rectangle 2533@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "截屏2023-03-21 16.03 1@3x.png", "filename" : "Rectangle 2533@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
{ {
"images" : [ "images" : [
{ {
"filename" : "截屏2023-03-21 16.11 1.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "截屏2023-03-21 16.11 1@2x.png", "filename" : "Rectangle 2532@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "截屏2023-03-21 16.11 1@3x.png", "filename" : "Rectangle 2532@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
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