Commit 782d3ccc authored by DavidHuang's avatar DavidHuang

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

parents ee318747 4586fd0c
...@@ -1098,6 +1098,9 @@ ...@@ -1098,6 +1098,9 @@
0468D42E2B5654A500CFB916 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42D2B5654A500CFB916 /* CoreTelephony.framework */; }; 0468D42E2B5654A500CFB916 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42D2B5654A500CFB916 /* CoreTelephony.framework */; };
0468D4302B5654B500CFB916 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42F2B5654B500CFB916 /* SystemConfiguration.framework */; }; 0468D4302B5654B500CFB916 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42F2B5654B500CFB916 /* SystemConfiguration.framework */; };
0468D4312B5654C100CFB916 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42C2B56549200CFB916 /* libresolv.tbd */; }; 0468D4312B5654C100CFB916 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0468D42C2B56549200CFB916 /* libresolv.tbd */; };
047A96832D1674010033BB4E /* YHGCSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047A96822D1674010033BB4E /* YHGCSchemeTableViewCell.swift */; };
047A96862D1698150033BB4E /* YHGCMySchemeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047A96852D1698150033BB4E /* YHGCMySchemeViewModel.swift */; };
047A96892D169A5F0033BB4E /* YHGCMySchemeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047A96882D169A5F0033BB4E /* YHGCMySchemeModel.swift */; };
04AE200F2D12CFAF00891D24 /* YHGCMineSchemeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FF82D12CFAF00891D24 /* YHGCMineSchemeViewController.swift */; }; 04AE200F2D12CFAF00891D24 /* YHGCMineSchemeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FF82D12CFAF00891D24 /* YHGCMineSchemeViewController.swift */; };
04AE20102D12CFAF00891D24 /* YHGCApplicationTypeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FFD2D12CFAF00891D24 /* YHGCApplicationTypeController.swift */; }; 04AE20102D12CFAF00891D24 /* YHGCApplicationTypeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FFD2D12CFAF00891D24 /* YHGCApplicationTypeController.swift */; };
04AE20112D12CFAF00891D24 /* YHGCApplicationTypeResultController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FFE2D12CFAF00891D24 /* YHGCApplicationTypeResultController.swift */; }; 04AE20112D12CFAF00891D24 /* YHGCApplicationTypeResultController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AE1FFE2D12CFAF00891D24 /* YHGCApplicationTypeResultController.swift */; };
...@@ -2261,6 +2264,9 @@ ...@@ -2261,6 +2264,9 @@
0468D42C2B56549200CFB916 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; 0468D42C2B56549200CFB916 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
0468D42D2B5654A500CFB916 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 0468D42D2B5654A500CFB916 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; };
0468D42F2B5654B500CFB916 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 0468D42F2B5654B500CFB916 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
047A96822D1674010033BB4E /* YHGCSchemeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCSchemeTableViewCell.swift; sourceTree = "<group>"; };
047A96852D1698150033BB4E /* YHGCMySchemeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCMySchemeViewModel.swift; sourceTree = "<group>"; };
047A96882D169A5F0033BB4E /* YHGCMySchemeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCMySchemeModel.swift; sourceTree = "<group>"; };
04AE1FF82D12CFAF00891D24 /* YHGCMineSchemeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCMineSchemeViewController.swift; sourceTree = "<group>"; }; 04AE1FF82D12CFAF00891D24 /* YHGCMineSchemeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCMineSchemeViewController.swift; sourceTree = "<group>"; };
04AE1FFA2D12CFAF00891D24 /* YHGCSchemeTableHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCSchemeTableHeadView.swift; sourceTree = "<group>"; }; 04AE1FFA2D12CFAF00891D24 /* YHGCSchemeTableHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCSchemeTableHeadView.swift; sourceTree = "<group>"; };
04AE1FFD2D12CFAF00891D24 /* YHGCApplicationTypeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCApplicationTypeController.swift; sourceTree = "<group>"; }; 04AE1FFD2D12CFAF00891D24 /* YHGCApplicationTypeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHGCApplicationTypeController.swift; sourceTree = "<group>"; };
...@@ -5912,6 +5918,22 @@ ...@@ -5912,6 +5918,22 @@
path = galaxy; path = galaxy;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
047A96842D1697CE0033BB4E /* VM */ = {
isa = PBXGroup;
children = (
047A96852D1698150033BB4E /* YHGCMySchemeViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
};
047A96872D169A3A0033BB4E /* M */ = {
isa = PBXGroup;
children = (
047A96882D169A5F0033BB4E /* YHGCMySchemeModel.swift */,
);
path = M;
sourceTree = "<group>";
};
04AE1FF92D12CFAF00891D24 /* C */ = { 04AE1FF92D12CFAF00891D24 /* C */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -5924,6 +5946,7 @@ ...@@ -5924,6 +5946,7 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04AE1FFA2D12CFAF00891D24 /* YHGCSchemeTableHeadView.swift */, 04AE1FFA2D12CFAF00891D24 /* YHGCSchemeTableHeadView.swift */,
047A96822D1674010033BB4E /* YHGCSchemeTableViewCell.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -5931,6 +5954,8 @@ ...@@ -5931,6 +5954,8 @@
04AE1FFC2D12CFAF00891D24 /* MyScheme(我的方案) */ = { 04AE1FFC2D12CFAF00891D24 /* MyScheme(我的方案) */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
047A96872D169A3A0033BB4E /* M */,
047A96842D1697CE0033BB4E /* VM */,
04AE1FF92D12CFAF00891D24 /* C */, 04AE1FF92D12CFAF00891D24 /* C */,
04AE1FFB2D12CFAF00891D24 /* V */, 04AE1FFB2D12CFAF00891D24 /* V */,
); );
...@@ -6472,6 +6497,7 @@ ...@@ -6472,6 +6497,7 @@
045C0FD92D12CA5F00BD2DC0 /* YHHomeCollectionViewCell.swift in Sources */, 045C0FD92D12CA5F00BD2DC0 /* YHHomeCollectionViewCell.swift in Sources */,
045C0FDA2D12CA5F00BD2DC0 /* YHBasicContentView.swift in Sources */, 045C0FDA2D12CA5F00BD2DC0 /* YHBasicContentView.swift in Sources */,
045C0FDB2D12CA5F00BD2DC0 /* YHSelectViewController.swift in Sources */, 045C0FDB2D12CA5F00BD2DC0 /* YHSelectViewController.swift in Sources */,
047A96862D1698150033BB4E /* YHGCMySchemeViewModel.swift in Sources */,
04AE20312D13B6E500891D24 /* YHGCChildBasicInfoVC.swift in Sources */, 04AE20312D13B6E500891D24 /* YHGCChildBasicInfoVC.swift in Sources */,
045C0FDC2D12CA5F00BD2DC0 /* YHMyNotifySettingVC.swift in Sources */, 045C0FDC2D12CA5F00BD2DC0 /* YHMyNotifySettingVC.swift in Sources */,
045C0FDD2D12CA5F00BD2DC0 /* YHIncomeRecordCompleteModel.swift in Sources */, 045C0FDD2D12CA5F00BD2DC0 /* YHIncomeRecordCompleteModel.swift in Sources */,
...@@ -6881,6 +6907,7 @@ ...@@ -6881,6 +6907,7 @@
0411CEEF2D151E5F00644D35 /* YHGCWorkListHasDocTableViewCell.swift in Sources */, 0411CEEF2D151E5F00644D35 /* YHGCWorkListHasDocTableViewCell.swift in Sources */,
045C11602D12CA5F00BD2DC0 /* YHHKRecordsFamilyMembers.swift in Sources */, 045C11602D12CA5F00BD2DC0 /* YHHKRecordsFamilyMembers.swift in Sources */,
045C11612D12CA5F00BD2DC0 /* YHCNIDCardModel.swift in Sources */, 045C11612D12CA5F00BD2DC0 /* YHCNIDCardModel.swift in Sources */,
047A96832D1674010033BB4E /* YHGCSchemeTableViewCell.swift in Sources */,
045C11622D12CA5F00BD2DC0 /* YHPrincipleUploadModel.swift in Sources */, 045C11622D12CA5F00BD2DC0 /* YHPrincipleUploadModel.swift in Sources */,
045C11632D12CA5F00BD2DC0 /* YHResignCertificateEvisaTableViewCell.swift in Sources */, 045C11632D12CA5F00BD2DC0 /* YHResignCertificateEvisaTableViewCell.swift in Sources */,
045C11642D12CA5F00BD2DC0 /* YHFormItemTitleCell.swift in Sources */, 045C11642D12CA5F00BD2DC0 /* YHFormItemTitleCell.swift in Sources */,
...@@ -6974,6 +7001,7 @@ ...@@ -6974,6 +7001,7 @@
045C11BC2D12CA5F00BD2DC0 /* YHIncomeRemarkCell.swift in Sources */, 045C11BC2D12CA5F00BD2DC0 /* YHIncomeRemarkCell.swift in Sources */,
045C11BD2D12CA5F00BD2DC0 /* YHAdopterNewPeopleViewModel.swift in Sources */, 045C11BD2D12CA5F00BD2DC0 /* YHAdopterNewPeopleViewModel.swift in Sources */,
045C11BE2D12CA5F00BD2DC0 /* YHMajorNameCell.swift in Sources */, 045C11BE2D12CA5F00BD2DC0 /* YHMajorNameCell.swift in Sources */,
047A96892D169A5F0033BB4E /* YHGCMySchemeModel.swift in Sources */,
045C11BF2D12CA5F00BD2DC0 /* YHBlurredAvatarView.swift in Sources */, 045C11BF2D12CA5F00BD2DC0 /* YHBlurredAvatarView.swift in Sources */,
045C11C02D12CA5F00BD2DC0 /* YHMyLikeActivityViewController.swift in Sources */, 045C11C02D12CA5F00BD2DC0 /* YHMyLikeActivityViewController.swift in Sources */,
045C11C12D12CA5F00BD2DC0 /* YHTravelCertificateItemView.swift in Sources */, 045C11C12D12CA5F00BD2DC0 /* YHTravelCertificateItemView.swift in Sources */,
......
...@@ -14,6 +14,8 @@ struct YHScemeItemModel { ...@@ -14,6 +14,8 @@ struct YHScemeItemModel {
var mainMessage: String = "" var mainMessage: String = ""
var lightMessage: String = "" var lightMessage: String = ""
var subMessage: String = "" var subMessage: String = ""
var lightFont: UIFont? = nil
var hideTopLine: Bool = false
} }
struct YHScemeHeadModel { struct YHScemeHeadModel {
......
...@@ -12,8 +12,8 @@ class YHGCMineSchemeViewController: YHBaseViewController { ...@@ -12,8 +12,8 @@ class YHGCMineSchemeViewController: YHBaseViewController {
var tableView: UITableView! var tableView: UITableView!
var dataSource: [YHScemeItemModel]? = [] var dataSource: [YHScemeItemModel]? = []
lazy var reqSchemeVM: YHMySchemeViewModel = { lazy var reqSchemeVM: YHGCMySchemeViewModel = {
let vm = YHMySchemeViewModel() let vm = YHGCMySchemeViewModel()
return vm return vm
}() }()
...@@ -45,8 +45,21 @@ extension YHGCMineSchemeViewController: UITableViewDelegate, UITableViewDataSour ...@@ -45,8 +45,21 @@ extension YHGCMineSchemeViewController: UITableViewDelegate, UITableViewDataSour
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHSchemeTableViewCell.self) guard let dataSource = dataSource, dataSource.count > indexPath.row else {
cell.dataSource = dataSource?[indexPath.row] return UITableViewCell()
}
let cell = tableView.dequeueReusableCell(withClass: YHGCSchemeTableViewCell.self)
let model = dataSource[indexPath.row]
cell.dataSource = model
cell.schemeBlock = {
/*
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview"), model.title == "资料清单" {
let vc = YHMineCertificateEntryViewController()
vc.orderId = orderID as? Int ?? 0
UIViewController.current?.navigationController?.pushViewController(vc)
}
*/
}
return cell return cell
} }
...@@ -64,7 +77,7 @@ extension YHGCMineSchemeViewController: UITableViewDelegate, UITableViewDataSour ...@@ -64,7 +77,7 @@ extension YHGCMineSchemeViewController: UITableViewDelegate, UITableViewDataSour
extension YHGCMineSchemeViewController { extension YHGCMineSchemeViewController {
func getData() { func getData() {
let model1 = YHScemeItemModel(title: "行业定位", mainMessage: "根据您目前给来的材料,初步建议您申请的行业:--", lightMessage: "--", subMessage: "后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。") let model1 = YHScemeItemModel(title: "职业界别", mainMessage: "根据您目前给来的材料,初步建议您申请的行业:\n商业及贸易\n", lightMessage: "\n商业及贸易\n", subMessage: "后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。")
let model2 = YHScemeItemModel(title: "资料清单", buttonTitle: "资料清单", mainMessage: "这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:", lightMessage: "1-2周内", subMessage: "(1)港澳通如未办理,请尽快办理好反馈过来;\n(2)如为国内学校,需要尽快办理学位认证报告;\n(3)如为海外学校,需提供成绩单副本") let model2 = YHScemeItemModel(title: "资料清单", buttonTitle: "资料清单", mainMessage: "这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:", lightMessage: "1-2周内", subMessage: "(1)港澳通如未办理,请尽快办理好反馈过来;\n(2)如为国内学校,需要尽快办理学位认证报告;\n(3)如为海外学校,需提供成绩单副本")
let model3 = YHScemeItemModel(title: "文书清单", buttonTitle: "文书写作", mainMessage: "这是您的文书清单,包括推荐信、赴港计划书,我写好后会发在微信里,与您一起沟通进行哈。3周-4周左右完成,需要咱们共同配合完成的噢", lightMessage: "3周-4周") let model3 = YHScemeItemModel(title: "文书清单", buttonTitle: "文书写作", mainMessage: "这是您的文书清单,包括推荐信、赴港计划书,我写好后会发在微信里,与您一起沟通进行哈。3周-4周左右完成,需要咱们共同配合完成的噢", lightMessage: "3周-4周")
dataSource = [model1, model2, model3] dataSource = [model1, model2, model3]
...@@ -88,7 +101,7 @@ extension YHGCMineSchemeViewController { ...@@ -88,7 +101,7 @@ extension YHGCMineSchemeViewController {
tableView.tableFooterView = YHSchemeTableFooterView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 112)) tableView.tableFooterView = YHSchemeTableFooterView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 112))
tableView.tableHeaderView = headView tableView.tableHeaderView = headView
tableView.register(cellWithClass: YHSchemeTableViewCell.self) tableView.register(cellWithClass: YHGCSchemeTableViewCell.self)
tableView.bounces = false tableView.bounces = false
return tableView return tableView
}() }()
...@@ -110,25 +123,15 @@ extension YHGCMineSchemeViewController { ...@@ -110,25 +123,15 @@ extension YHGCMineSchemeViewController {
guard let model = self.reqSchemeVM.schemeModel else { return } guard let model = self.reqSchemeVM.schemeModel else { return }
let industry = model.industry.defaultStringIfEmpty() let industry = model.industry.defaultStringIfEmpty()
let model1 = YHScemeItemModel(title: "行业定位", mainMessage: "根据您目前给来的材料,初步建议您申请的行业:" + industry, lightMessage: industry, subMessage: "后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。") let model1 = YHScemeItemModel(title: "职业界别", mainMessage: "根据您目前给来的材料,初步建议您申请的行业:" + industry, lightMessage: industry, subMessage: "后续会根据您文书准备的补充情况来最终确定,如有修改会再告知您。", lightFont: UIFont.PFSC_B(ofSize: 16), hideTopLine: true)
let model2 = YHScemeItemModel(title: "资料清单", buttonTitle: "资料清单", mainMessage: "这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:", lightMessage: "1-2周内", subMessage: "(1)港澳通如未办理,请尽快办理好反馈过来;\n(2)如为国内学校,需要尽快办理学位认证报告;\n(3)如为海外学校,需提供成绩单副本") let contentStr = model.content.reduce("") { partialResult, current in
let model3 = YHScemeItemModel(title: "文书清单", buttonTitle: "文书写作", mainMessage: "这是您的文书清单,包括推荐信、赴港计划书,我写好后会发在微信里,与您一起沟通进行哈。3周-4周左右完成,需要咱们共同配合完成的噢", lightMessage: "3周-4周") partialResult + "\n" + current
self.dataSource = [model1, model2, model3] }
let model2 = YHScemeItemModel(title: "资料清单", buttonTitle: "资料清单", mainMessage: "这是您的资料清单,请您前往查看。请您在1-2周内上传基础类证件哦,需要重新办理的可以晚些提供。需要注意的点如下:", lightMessage: "1-2周内", subMessage: "按照您填报的学历信息, 证明文件如下:\(contentStr)")
self.dataSource = [model1, model2]
self.tableView.reloadData() self.tableView.reloadData()
let type = YHGCApplicationType(rawValue: model.application_type) ?? .typeA
let ageTxt = "年龄" + model.age_score.string + "分" self.headView.update(type: type, name: model.username.defaultStringIfEmpty())
let eduTxtA = "学历" + model.education_score_a.string + "分,名校加分XX分"
let workExp = "工作经验加分" + model.work_experience_score.string + "分"
let famous_enterprise = "名企加分" + model.famous_enterprise.string + "分"
let talent_list = "人才清单加分" + model.talent_list.string + "分"
let language = "语言加分" + model.language_score.string + "分"
let family = "家庭背景加分" + model.background_score.string + "分"
let arrText: [String] = [ageTxt, eduTxtA, workExp, famous_enterprise, talent_list, language, family]
let arrH: [String] = [model.age_score.string, model.education_score_a.string, model.work_experience_score.string, model.famous_enterprise.string, model.talent_list.string, model.language_score.string, model.background_score.string]
self.headView.update(type: .typeA, name: model.username.defaultStringIfEmpty())
} else { } else {
YHHUD.flash(message: error?.errorMsg ?? "请求出错") YHHUD.flash(message: error?.errorMsg ?? "请求出错")
} }
......
//
// YHGCMySchemeModel.swift
// galaxy
//
// Created by alexzzw on 2024/12/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHGCMySchemeModel: SmartCodable {
var application_type: Int = 0
var industry : String = ""
var username : String = ""
var sex: Int = 0
var content: [String] = []
required init() {
}
}
...@@ -65,6 +65,12 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -65,6 +65,12 @@ class YHGCSchemeTableHeadView: UIView {
view.backgroundColor = UIColor(hex: 0xD48638) view.backgroundColor = UIColor(hex: 0xD48638)
return view return view
}() }()
private lazy var titleCoverView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
private lazy var titleLabel: UILabel = { private lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
...@@ -131,7 +137,7 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -131,7 +137,7 @@ class YHGCSchemeTableHeadView: UIView {
} }
func update(type: YHGCApplicationType, name: String) { func update(type: YHGCApplicationType, name: String) {
applicationTypeResultLabel.text = type.titleString applicationTypeResultLabel.text = type.shortTitleString
infoDetailLabel.attributed.text = type.attributedTips() infoDetailLabel.attributed.text = type.attributedTips()
nameLabel.text = name nameLabel.text = name
} }
...@@ -144,8 +150,9 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -144,8 +150,9 @@ class YHGCSchemeTableHeadView: UIView {
addSubview(nameLabel) addSubview(nameLabel)
addSubview(messageLabel) addSubview(messageLabel)
addSubview(logoImageView) addSubview(logoImageView)
addSubview(titleView) addSubview(titleCoverView)
addSubview(titleLabel) titleCoverView.addSubview(titleView)
titleCoverView.addSubview(titleLabel)
addSubview(subContainerView) addSubview(subContainerView)
subContainerView.addSubview(applicationTypeLabel) subContainerView.addSubview(applicationTypeLabel)
subContainerView.addSubview(applicationTypeResultLabel) subContainerView.addSubview(applicationTypeResultLabel)
...@@ -198,10 +205,23 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -198,10 +205,23 @@ class YHGCSchemeTableHeadView: UIView {
make.width.equalTo(58.5) make.width.equalTo(58.5)
make.top.equalTo(147) make.top.equalTo(147)
} }
dashLineView.snp.makeConstraints { make in
make.left.equalTo(28)
make.right.equalToSuperview().offset(-28)
make.top.equalTo(234)
make.height.equalTo(1)
}
titleCoverView.snp.makeConstraints { make in
make.left.right.equalTo(dashLineView)
make.top.equalTo(dashLineView.snp.bottom).offset(26)
make.height.equalTo(44)
}
titleView.snp.makeConstraints { make in titleView.snp.makeConstraints { make in
make.left.equalTo(28) make.left.equalToSuperview()
make.top.equalTo(238.5) make.top.equalTo(4)
make.height.equalTo(16.5) make.height.equalTo(16.5)
make.width.equalTo(3.5) make.width.equalTo(3.5)
} }
...@@ -209,13 +229,11 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -209,13 +229,11 @@ class YHGCSchemeTableHeadView: UIView {
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.centerY.equalTo(titleView.snp.centerY) make.centerY.equalTo(titleView.snp.centerY)
make.left.equalTo(titleView.snp.right).offset(4) make.left.equalTo(titleView.snp.right).offset(4)
make.height.equalTo(24)
make.width.equalTo(150)
} }
subContainerView.snp.makeConstraints { make in subContainerView.snp.makeConstraints { make in
make.left.equalTo(titleView.snp.left) make.left.equalTo(titleCoverView.snp.left)
make.top.equalTo(titleLabel.snp.bottom).offset(18) make.top.equalTo(titleCoverView.snp.bottom).offset(-2)
make.right.equalToSuperview().offset(-28) make.right.equalToSuperview().offset(-28)
make.height.equalTo(64) make.height.equalTo(64)
} }
...@@ -242,13 +260,6 @@ class YHGCSchemeTableHeadView: UIView { ...@@ -242,13 +260,6 @@ class YHGCSchemeTableHeadView: UIView {
make.top.equalTo(infoDetailLabel.snp.top).offset(8) make.top.equalTo(infoDetailLabel.snp.top).offset(8)
make.width.height.equalTo(3) make.width.height.equalTo(3)
} }
dashLineView.snp.makeConstraints { make in
make.left.equalTo(subContainerView.snp.left)
make.right.equalTo(subContainerView.snp.right)
make.top.equalTo(infoDetailLabel.snp.bottom).offset(28)
make.height.equalTo(1)
}
} }
} }
......
//
// YHGCSchemeTableViewCell.swift
// galaxy
//
// Created by alexzzw on 2024/12/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHGCSchemeTableViewCell: UITableViewCell {
// MARK: - Properties
var schemeBlock: (() -> Void)?
var dataSource: YHScemeItemModel? {
didSet { updateAllViews() }
}
// MARK: - UI Components
private lazy var centerView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
private lazy var lineImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "scheme_line_image"))
return imageView
}()
private lazy var titleView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xd48638)
return view
}()
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = .PFSC_M(ofSize: 17)
label.textColor = .mainTextColor
return label
}()
private lazy var titleButton: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = .PFSC_M(ofSize: 12)
button.backgroundColor = UIColor(hex: 0xd48638).withAlphaComponent(0.08)
button.contentHorizontalAlignment = .center
button.setTitle("资料清单", for: .normal)
button.setImage(UIImage(named: "scheme_button_icon"), for: .normal)
button.setTitleColor(UIColor(hex: 0xd48638), for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(goNext), for: .touchUpInside)
return button
}()
private lazy var mainMessageLabel: UILabel = {
let label = UILabel()
label.font = .PFSC_R(ofSize: 14)
label.textColor = .mainTextColor
label.numberOfLines = 0
return label
}()
private lazy var subMessageLabel: UILabel = {
let label = UILabel()
label.font = .PFSC_R(ofSize: 14)
label.textColor = .labelTextColor2
label.numberOfLines = 0
return label
}()
// MARK: - Initialization
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupCell()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupCell()
}
// MARK: - Setup
private func setupCell() {
selectionStyle = .none
setupAppearance()
setupLayout()
}
private func setupAppearance() {
contentView.backgroundColor = UIColor(hex: 0x070E33)
backgroundColor = UIColor(hex: 0x070E33)
}
private func setupLayout() {
// Center View
contentView.addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalTo(8)
make.right.equalTo(-8)
make.top.bottom.equalToSuperview()
}
// Line Image View
contentView.addSubview(lineImageView)
lineImageView.snp.makeConstraints { make in
make.left.equalTo(28)
make.top.equalTo(0)
make.height.equalTo(1)
make.right.equalTo(-28)
}
// Title View
contentView.addSubview(titleView)
titleView.snp.makeConstraints { make in
make.left.equalTo(28)
make.top.equalTo(29)
make.height.equalTo(16.5)
make.width.equalTo(3.5)
}
// Title Label
centerView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.centerY.equalTo(titleView)
make.left.equalTo(titleView.snp.right).offset(4)
make.height.equalTo(24)
make.width.equalTo(150)
}
// Title Button
centerView.addSubview(titleButton)
titleButton.snp.makeConstraints { make in
make.centerY.equalTo(titleView)
make.right.equalTo(-28)
make.height.equalTo(27)
make.width.equalTo(76)
}
// Main Message Label
centerView.addSubview(mainMessageLabel)
mainMessageLabel.snp.makeConstraints { make in
make.top.equalTo(69)
make.left.equalTo(28)
make.right.equalTo(-28)
}
// Sub Message Label
centerView.addSubview(subMessageLabel)
subMessageLabel.snp.makeConstraints { make in
make.top.equalTo(mainMessageLabel.snp.bottom).offset(12)
make.left.equalTo(28)
make.right.equalTo(-28)
}
}
// MARK: - Update UI
private func updateAllViews() {
guard let model = dataSource else { return }
titleButton.isHidden = model.buttonTitle.isEmpty
titleLabel.text = model.title
titleButton.setTitle(model.buttonTitle, for: .normal)
titleButton.iconInRight(with: 2)
lineImageView.isHidden = model.hideTopLine
updateMainMessage(model)
updateSubMessage(model)
}
private func updateMainMessage(_ model: YHScemeItemModel) {
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 4
let newString = model.mainMessage.highlighted(
keyWords: model.lightMessage,
highlightColor: UIColor(hex: 0xd48638),
highlightFont: model.lightFont,
paragraph: paragraphStyle,
normalFont: UIFont.PFSC_R(ofSize: 14)
)
mainMessageLabel.attributedText = newString
}
private func updateSubMessage(_ model: YHScemeItemModel) {
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 4
let attributes: [NSAttributedString.Key: Any] = [
.paragraphStyle: paragraphStyle,
.font: UIFont.PFSC_R(ofSize: 14)
]
subMessageLabel.attributedText = NSAttributedString(
string: model.subMessage,
attributes: attributes
)
}
@objc private func goNext() {
schemeBlock?()
}
}
//
// YHGCMySchemeViewModel.swift
// galaxy
//
// Created by alexzzw on 2024/12/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHGCMySchemeViewModel: YHBaseViewModel {
var schemeModel: YHGCMySchemeModel?
// 我的方案
func getMySchemeData(params: [String: Any], callBackBlock: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.GCAssessment.applyPlanApi
_ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, _ in
// 1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
guard let dic = json.data?.peel as? [String: Any], let resultModel = YHGCMySchemeModel.deserialize(from: dic) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false, err)
return
}
self.schemeModel = resultModel
callBackBlock(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false, err)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
}
...@@ -24,6 +24,17 @@ enum YHGCApplicationType: Int { ...@@ -24,6 +24,17 @@ enum YHGCApplicationType: Int {
} }
} }
var shortTitleString: String {
switch self {
case .typeA:
return "高才A类"
case .typeB:
return "高才B类"
case .typeC:
return "高才C类"
}
}
var detailString: String { var detailString: String {
switch self { switch self {
case .typeA: case .typeA:
......
...@@ -221,12 +221,22 @@ extension String { ...@@ -221,12 +221,22 @@ extension String {
/// 指定关键词高亮 /// 指定关键词高亮
/// - Parameter keyWords: 关键词 /// - Parameter keyWords: 关键词
/// - Parameter color: 高亮颜色 /// - Parameter color: 高亮颜色
func highlighted(keyWords: String?, highlightColor color: UIColor) -> NSAttributedString { func highlighted(keyWords: String?, highlightColor color: UIColor, highlightFont: UIFont? = nil, paragraph: NSMutableParagraphStyle? = nil, normalFont: UIFont? = nil) -> NSAttributedString {
let string: String = self let string: String = self
let attributeString = NSMutableAttributedString(string: string) var normalAttribute: [NSAttributedString.Key: Any] = [:]
if let paragraph = paragraph {
normalAttribute[.paragraphStyle] = paragraph
}
if let normalFont = normalFont {
normalAttribute[.font] = normalFont
}
let attributeString = normalAttribute.count > 0 ? NSMutableAttributedString(string: string, attributes: normalAttribute) : NSMutableAttributedString(string: string)
guard let keyWords = keyWords else { return attributeString } guard let keyWords = keyWords else { return attributeString }
let attribute: [NSAttributedString.Key: Any] = [.foregroundColor: color] var attribute: [NSAttributedString.Key: Any] = [.foregroundColor: color]
// 需要改变的文本 // 需要改变的文本
if let font = highlightFont {
attribute[.font] = font
}
let ranges = ranges(of: keyWords, options: .caseInsensitive) let ranges = ranges(of: keyWords, options: .caseInsensitive)
for range in ranges where range.location + range.length <= string.count { for range in ranges where range.location + range.length <= string.count {
attributeString.addAttributes(attribute, range: range) attributeString.addAttributes(attribute, range: range)
......
...@@ -409,6 +409,12 @@ class YHAllApiName { ...@@ -409,6 +409,12 @@ class YHAllApiName {
static let improveDetailApi = "infoflow/assessment/improve_plan_detail" static let improveDetailApi = "infoflow/assessment/improve_plan_detail"
} }
// 我的方案
struct GCAssessment {
//方案计划
static let applyPlanApi = "infoflow/get-my-plan"
}
// 消息 // 消息
struct Message { struct Message {
// 获取未读消息列表 // 获取未读消息列表
......
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