Commit 48257a09 authored by David黄金龙's avatar David黄金龙

添加 工作经验的预览文件

parent 3fb79950
......@@ -158,6 +158,9 @@
A53026902B4E6F2700F35102 /* YHHomeCustomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */; };
A554A5002B95FB9100EA5973 /* YHMainInfoPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */; };
A554A5022B96B9BC00EA5973 /* YHAcademicPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */; };
A554A5042B96D04100EA5973 /* YHPreviewWorkExpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A5032B96D04100EA5973 /* YHPreviewWorkExpViewController.swift */; };
A554A5062B96D17B00EA5973 /* YHWorkExpInfoPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A5052B96D17B00EA5973 /* YHWorkExpInfoPreviewModel.swift */; };
A554A5082B96F55900EA5973 /* YHWorkExpDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A5072B96F55900EA5973 /* YHWorkExpDataModel.swift */; };
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */; };
A5573ED22B317BFF00D98EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573ED12B317BFF00D98EC0 /* AppDelegate.swift */; };
A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5573EDA2B317C0000D98EC0 /* Assets.xcassets */; };
......@@ -464,6 +467,9 @@
A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeCustomCell.swift; sourceTree = "<group>"; };
A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMainInfoPreviewModel.swift; sourceTree = "<group>"; };
A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAcademicPreviewModel.swift; sourceTree = "<group>"; };
A554A5032B96D04100EA5973 /* YHPreviewWorkExpViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPreviewWorkExpViewController.swift; sourceTree = "<group>"; };
A554A5052B96D17B00EA5973 /* YHWorkExpInfoPreviewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExpInfoPreviewModel.swift; sourceTree = "<group>"; };
A554A5072B96F55900EA5973 /* YHWorkExpDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWorkExpDataModel.swift; sourceTree = "<group>"; };
A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHBaseViewModel.swift; sourceTree = "<group>"; };
A5573ECE2B317BFF00D98EC0 /* galaxy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = galaxy.app; sourceTree = BUILT_PRODUCTS_DIR; };
A5573ED12B317BFF00D98EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
......@@ -1053,6 +1059,8 @@
A5B4A5842B9455F7003EFF8F /* YHPreviewForOtherInfoModel.swift */,
A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */,
A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */,
A554A5052B96D17B00EA5973 /* YHWorkExpInfoPreviewModel.swift */,
A554A5072B96F55900EA5973 /* YHWorkExpDataModel.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -1080,6 +1088,7 @@
A5FD63E32B678AC000D1D9DA /* YHPreviewMainViewController.swift */,
A5FD63E52B67908000D1D9DA /* YHPreviewControllerHoldViewController.swift */,
A5167B322B6A3A2D0084C08F /* YHPreviewBaseViewController.swift */,
A554A5032B96D04100EA5973 /* YHPreviewWorkExpViewController.swift */,
A5FD63E72B67D8EA00D1D9DA /* YHPreviewMainApplicantInfoViewController.swift */,
A5FD63E92B67D95100D1D9DA /* YHPreviewFamilyMemberViewController.swift */,
A5191F632B89E926001069F7 /* YHPreviewOtherInformationViewController.swift */,
......@@ -1853,6 +1862,7 @@
A5234E332B6F9CB700A33433 /* YHBasicInfoFillModel.swift in Sources */,
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */,
A596C39F2B84D9100067BBB8 /* YHOtherResidenceFillView.swift in Sources */,
A554A5082B96F55900EA5973 /* YHWorkExpDataModel.swift in Sources */,
A5C5B2F92B5515CE00A7C5D1 /* YHPageContentView.swift in Sources */,
A5C382CA2B5E1F4C00C5E65C /* YHLoginTipsView.swift in Sources */,
A5FD63F12B68963200D1D9DA /* YHPreviewInfoHoldView.swift in Sources */,
......@@ -1937,6 +1947,7 @@
A5ACE9552B4564F7002C94D2 /* YHTabBarViewController.swift in Sources */,
04E86E6C2B87374600A35F4B /* YHCompanyModel.swift in Sources */,
A5167B332B6A3A2D0084C08F /* YHPreviewBaseViewController.swift in Sources */,
A554A5042B96D04100EA5973 /* YHPreviewWorkExpViewController.swift in Sources */,
A5C5B3122B57B47D00A7C5D1 /* YHDavidCell0.swift in Sources */,
A5FD63FA2B68D95700D1D9DA /* YHPersonInfoIdentityCardModel.swift in Sources */,
A50AB89B2B81E96E00C227DE /* YHOtherInfoFillModel.swift in Sources */,
......@@ -1997,6 +2008,7 @@
A5C5B3292B57CCBE00A7C5D1 /* YHDavidCell4.swift in Sources */,
049A48A82B49417300D0C641 /* YHAboutUsViewController.swift in Sources */,
A5ACE9582B4564F7002C94D2 /* YHNoDataTipView.swift in Sources */,
A554A5062B96D17B00EA5973 /* YHWorkExpInfoPreviewModel.swift in Sources */,
04E86E592B84AD6200A35F4B /* YHWorkExampleViewController.swift in Sources */,
042FBBBB2B62806D00F9DE23 /* YHCertificateInfoController.swift in Sources */,
044CC6272B8740340083FF76 /* YHCollegeNameCell.swift in Sources */,
......
......@@ -233,7 +233,7 @@ extension YHInformationPerfectListVC {
make.height.equalTo(48)
}
submitBtn.layoutIfNeeded()
submitBtn.backgroundGradient()
submitBtn.addYinHeGradualLayer()
submitBtn.isHidden = hasSubmitFlag
......@@ -285,7 +285,7 @@ extension YHInformationPerfectListVC {
make.left.equalTo(submitHoldView.snp.centerX).offset(6)
}
infoButton.layoutIfNeeded()
infoButton.backgroundGradient()
infoButton.addYinHeGradualLayer()
homeTableView.delegate = self
homeTableView.dataSource = self
......
......@@ -72,7 +72,7 @@ private extension YHBasicInfoFillBottomView {
}
nextButton.layoutIfNeeded()
nextButton.backgroundGradient()
nextButton.addYinHeGradualLayer()
}
@objc func save() {
......
......@@ -66,7 +66,7 @@ class YHBottomNextView: UIView {
nextButton.layoutIfNeeded()
nextButton.backgroundGradient()
nextButton.addYinHeGradualLayer()
}
......
......@@ -75,7 +75,8 @@ class YHPreviewControllerHoldViewController: UIViewController {
arrItemVCs.append(vc)
}
do {
let vc = YHPreviewFamilyMemberViewController()
//工作经验
let vc = YHPreviewWorkExpViewController()
arrItemVCs.append(vc)
}
do {
......
......@@ -212,20 +212,6 @@ extension YHPreviewMainViewController {
make.right.equalTo(-20.5)
}
}
// private func loadFirstItem() {
// DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// self.homeTableView.es.stopPullToRefresh(ignoreDate: true,ignoreFooter: false)
// self.homeTableView.reloadData()
// }
// }
//
// private func loadFakeData() {
// DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
// self.homeTableView.es.stopLoadingMore()
// self.homeTableView.reloadData()
// }
// }
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
......
//
// YHPreviewWorkExpViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*工作经验 预览
*/
class YHPreviewWorkExpViewController: YHPreviewBaseViewController {
private let previewVM : YHPreviewViewModel = YHPreviewViewModel()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
}
private extension YHPreviewWorkExpViewController {
func setupUI() {
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData()
}
func loadData() {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
previewVM.getPreviewForWorkExpInfo(params: ["order_id" : orderID]) { success, error in
if success == true {
} else {
}
self.homeTableView.reloadData()
}
} else {
printLog("error : orderID 为空")
}
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewWorkExpViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return previewVM.arrDataForWorkExpInfo.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none
cell.model = previewVM.arrDataForWorkExpInfo[indexPath.row]
return cell
}
}
......@@ -14,10 +14,9 @@ enum YHPreviewInfoSessionModelType: Int {
case idCardInfoType = 1 //1-证件信息 类型
case idPictureType = 2 //2-证件照片 类型
case questionAndAnswer = 3 //3-问答 类型
case workExp = 4 //4-工作经验
}
struct YHPreviewInfoSessionModel {
var cellType : YHPreviewInfoSessionModelType = .countryInfoType
var cellTitle : String = ""
......
//
// YHWorkExpDataModel.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
struct YHWorkExpDataModel {
var title : String
var data : [Any] = []
}
//
// WorkExpInfoPreviewModel.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHWorkExpInfoPreviewModel: SmartCodable {
var list : [WorkExpInfoPreviewDetailModel]?
var count : Int = 0
required init() {
}
}
class WorkExpInfoPreviewDetailModel: SmartCodable {
var id: Int = 0
var order_id: Int = 0
var company_name: String = ""
var is_famous_enterprise: Int = 0
var duty: String = ""
var entry_time: String = ""
var departure_time: String = ""
var industry: String = ""
var location: AddressPreviewModel?
var location_aboard: Int = 0
var professional_level: Int = 0
var professional_other: String = ""
var position: String = ""
var remark: String = ""
var old_id: Int = 0
var created_at: String = ""
var updated_at: String = ""
var is_show: Int = 1 //1.保存会显示到列表上
var deleted_at: String = ""
var operator_name: String = ""
var operator_english_name: String = ""
var operator_id: Int = 0
var work_certificate: String = ""
var executives_certificate: String = ""
var is_executives: Int = 0
var wduty: String = ""
var highlights: String = ""
var file: [WorkExpFilePreviewModel]?
var not_need_upload_file: Int = 0
var company_member_total: Int = 0
var administrative_level: Int = 0
var company_manage_total: Int = 0
var top_manager_start_at: String = ""
var top_manager_end_at: String = ""
var master_of_important_project: Int = 0
var match_listing: Int = 0
var is_synthetic: Int = 0
var step: Int = 0
var create_from_appid: Int = 0
var update_from_appid: Int = 0
var international_work_experience: Int = 0
var turnover: Int = 0
var business_nature: String = ""
var company_website: String = ""
var company_introduce: String = ""
var business_remark: String = ""
var is_project_introduction: Int = 0
var customer_center_id: Int = 0
var projects: [ProjectPreviewModel]?
required init() {
}
}
class WorkExpFilePreviewModel: SmartCodable {
var fileName: String = ""
var fileUrl: String = ""
required init() {
}
}
class AddressPreviewModel: SmartCodable {
var area: [String] = []
var country: String = ""
var details: String = ""
var foreign: String = ""
required init() {
}
}
class ProjectPreviewModel: SmartCodable {
var id: Int = 0
var order_id: Int = 0
var work_id: Int = 0
var project_name: String = ""
var project_start_time: String = ""
var project_end_time: String = ""
var project_highlights: String = ""
var update_from_appid: Int = 0
var create_from_appid: Int = 0
var customer_center_id: Int = 0
var created_at: String = ""
var updated_at: String = ""
var deleted_at: String = ""
required init() {
}
}
......@@ -61,7 +61,6 @@ extension YHPreviewInfoCell {
}
}
else if model?.cellType == .idCardInfoType {
guard let model = model else { return }
let view = YHPreviewInfoCertificateInformationItemsView(frame: .zero)
view.dataModel = model
......@@ -71,8 +70,6 @@ extension YHPreviewInfoCell {
}
}
else if model?.cellType == .idPictureType {
guard let model = model else { return }
let view = YHPreviewInfoCertificatePictureItemsView(frame: .zero)
view.dataModel = model
......@@ -81,9 +78,7 @@ extension YHPreviewInfoCell {
make.edges.equalTo(0)
}
}
else if model?.cellType == .questionAndAnswer {
guard let model = model else { return }
let view = YHPreviewInfoQuestionAndAnswerItemsView(frame: .zero)
view.dataModel = model
......@@ -92,7 +87,9 @@ extension YHPreviewInfoCell {
make.edges.equalTo(0)
}
}
else if model?.cellType == .workExp {
//工作经验
}
else {
}
......
......@@ -9,6 +9,10 @@
import UIKit
class YHPreviewViewModel: YHBaseViewModel {
//工作经验
var workExpInfoPreviewModel : YHWorkExpInfoPreviewModel?
var arrDataForWorkExpInfo : [YHPreviewInfoSessionModel] = []
//学历/专业资格
var academicInfoPreviewModel : YHAcademicPreviewModel?
var arrDataForAcademicInfo : [YHPreviewInfoSessionModel] = []
......@@ -37,6 +41,33 @@ class YHPreviewViewModel: YHBaseViewModel {
extension YHPreviewViewModel {
//工作经验 预览
func getPreviewForWorkExpInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Preview.previewWorkExpInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
let dic = json.data as? [AnyHashable : Any]
guard let resultModel = YHWorkExpInfoPreviewModel.deserialize(dict: dic) else {
let error = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
workExpInfoPreviewModel = resultModel
installDataForWorkExpInfo()
callBackBlock(true,nil)
} else {
let error = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg)
callBackBlock(false,error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
//获取学历/专业 预览数据
func getPreviewForAcademicInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Preview.previewAcademicAndProfessionalQualificationInfoApi
......@@ -182,6 +213,83 @@ extension YHPreviewViewModel {
}
private extension YHPreviewViewModel {
//组装 工作经验 数据
func installDataForWorkExpInfo() {
guard let model0 = workExpInfoPreviewModel else { return}
arrDataForWorkExpInfo.removeAll()
if let list = model0.list,list.isEmpty == false {
for(index,model) in list.enumerated() {
var arr1 : [YHPreviewQuestionAndAnswerModel] = []
do {
//1.基本信息
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "用人单位:", answer: model.company_name)
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "用人单位性质:", answer: model.industry)
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "用人单位介绍:", answer: model.company_introduce)
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "用人单位官网:", answer: model.company_website)
var title = "-"
if let item = model.location {
title = item.country + "-" + item.details
}
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "工作地点:", answer: title)
let tmp6 = YHPreviewQuestionAndAnswerModel(question: "职位:", answer: model.position)
let tmp7 = YHPreviewQuestionAndAnswerModel(question: "入职年月:", answer: model.entry_time)
let tmp8 = YHPreviewQuestionAndAnswerModel(question: "离职年月:", answer: model.departure_time)
let tmp9 = YHPreviewQuestionAndAnswerModel(question: "工作证明文件:", answer: model.work_certificate)
let tmp10 = YHPreviewQuestionAndAnswerModel(question: "职责性质:", answer: model.duty)
title = model.international_work_experience == 0 ? "否" : "是"
let tmp11 = YHPreviewQuestionAndAnswerModel(question: "相关工作是否属国际工作经验:", answer:title)
let tmp12 = YHPreviewQuestionAndAnswerModel(question: "企业人数规模:", answer:String(model.company_member_total))
let tmp13 = YHPreviewQuestionAndAnswerModel(question: "行政架构层级:", answer:String(model.administrative_level))
let tmp14 = YHPreviewQuestionAndAnswerModel(question: "下属管理人数:", answer:String(model.company_manage_total))
let tmp15 = YHPreviewQuestionAndAnswerModel(question: "公司营业额/港元(近一年):", answer:String(model.turnover))
let tmp16 = YHPreviewQuestionAndAnswerModel(question: "职业水平类别:", answer:String(model.professional_level))
arr1.append(contentsOf: [tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,tmp11,tmp12,tmp13,tmp14,tmp15,tmp16])
}
let dataModel1 = YHWorkExpDataModel(title: "", data: arr1)
var arr2 : [YHPreviewQuestionAndAnswerModel] = []
do {
//2.
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "公司业务性质/范畴/所属行业:", answer:model.business_nature)
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "工作职责:", answer:model.wduty)
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "工作亮点:", answer:model.highlights)
arr2.append(contentsOf: [tmp1,tmp2,tmp3])
}
let dataModel2 = YHWorkExpDataModel(title: "", data: arr2)
var arr3 : [Any] = []
do {
//3.项目介绍
if let items = model.projects,items.isEmpty == false {
for(index,item) in items.enumerated() {
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "项目名称", answer:item.project_name)
let title = item.project_start_time + "-" + item.project_end_time
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "项目时间", answer:title)
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "项目业绩/亮点", answer:item.project_highlights)
var arrT : [YHPreviewQuestionAndAnswerModel] = [tmp1,tmp2,tmp3]
let dataModelTemp = YHWorkExpDataModel(title: "", data: arrT)
arr3.append(dataModelTemp)
}
}
}
do {
//4.简历/工作总结:
if let items = model.file,items.isEmpty == false {
var arrT : [Any] = []
for(index,item) in items.enumerated() {
arrT.append(item)
}
}
}
}
}
}
//组装 学历/专业资格 数据
func installDataForAcademicInfo() {
......
......@@ -120,7 +120,7 @@ class YHInformationFillTipsAlertView: UIView {
make.height.equalTo(48)
}
checkBtn.layoutIfNeeded()//非常重要!!!!
checkBtn.backgroundGradient()
checkBtn.addYinHeGradualLayer()
......
......@@ -88,7 +88,7 @@ class YHLoginTipsView: UIView {
loginBtn.addTarget(self, action: #selector(clickLoginBtn), for: .touchUpInside)
loginBtn.layoutIfNeeded()
loginBtn.backgroundGradient()
loginBtn.addYinHeGradualLayer()
}
required init?(coder: NSCoder) {
......
......@@ -184,7 +184,7 @@ class YHSubmintAllInfoSuccessTipView: UIView {
make.height.equalTo(45)
}
agreeButton.layoutIfNeeded()
agreeButton.backgroundGradient()
agreeButton.addYinHeGradualLayer()
}
......
......@@ -128,7 +128,8 @@ class YHSubmitAllInfoCheckView: UIView {
make.height.equalTo(45)
}
agreeButton.layoutIfNeeded()
agreeButton.backgroundGradient()
agreeButton.addYinHeGradualLayer()
agreeButton.addYinHeGradualLayer()
}
......
......@@ -100,35 +100,6 @@ extension UIButton {
}
}
extension UIButton {
/// 渐变背景
@discardableResult
func backgroundGradient<T: UIButton>() -> T {
let gradientLayer = CAGradientLayer()
//几个颜色
gradientLayer.colors = UIColor.arrBrandGradaterColors.map { $0.cgColor }
//颜色的分界点
gradientLayer.locations = [0, 1.0]
//开始
gradientLayer.startPoint = CGPoint(x: 0.12, y: 0.25)
//结束,主要是控制渐变方向
gradientLayer.endPoint = CGPoint(x: 0.38, y: 0.25)
//多大区域
gradientLayer.frame = bounds
UIGraphicsBeginImageContext(gradientLayer.frame.size)
if let context = UIGraphicsGetCurrentContext() {
gradientLayer.render(in: context)
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
setBackgroundImage(outputImage, for: .normal)
}
return self as! T
}
}
// 扩大点击范围
extension UIButton{
......
......@@ -165,5 +165,7 @@ class YHAllApiName {
static let previewFamilyInfoApi = "infoflow/information/family"
//学历/专业资格
static let previewAcademicAndProfessionalQualificationInfoApi = "infoflow/education/preview"
//工作经验
static let previewWorkExpInfoApi = "infoflow/work/preview"
}
}
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