Commit d15c81e6 authored by David黄金龙's avatar David黄金龙

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

* 'qmas-1130' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  工作经验步骤流程接口
parents 9740701d 2f5b9ae2
...@@ -112,12 +112,25 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -112,12 +112,25 @@ class YHWorkExperienceViewController: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
self.updateDataSource() self.updateDataSource()
} }
viewModel.requestWorkStep("\(orderID)", workExperienceID ?? "") { success, error in
if self.stepView.currentIndex < 3 {
self.stepView.currentIndex = self.viewModel.stepModel.step
self.stepView.maxIndex = self.viewModel.mainModel.step
} else {
self.stepView.currentIndex = 3
self.stepView.maxIndex = 3
}
self.stepView.dataSource = ["基本信息", "工作职责", "工作亮点", "简历/工作总结"]
}
viewModel.requestworkDutyDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
}
viewModel.requestWorkHighlightsDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
}
viewModel.requestWorkDetail("\(orderID)", workExperienceID ?? "") {[weak self] success, error in viewModel.requestWorkDetail("\(orderID)", workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.viewModel.mainModel.step
self.stepView.maxIndex = self.viewModel.mainModel.step
self.updateDataSource() self.updateDataSource()
self.stepView.dataSource = ["基本信息", "工作职责", "工作亮点", "简历/工作总结"]
self.viewModel.requestWorkInfoProject("\(self.viewModel.mainModel.word_id)") {[weak self] success, error in self.viewModel.requestWorkInfoProject("\(self.viewModel.mainModel.word_id)") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.introductionDataSource = success self.introductionDataSource = success
...@@ -125,7 +138,6 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -125,7 +138,6 @@ class YHWorkExperienceViewController: YHBaseViewController {
self.updateDataSource() self.updateDataSource()
} }
} }
updateDataSource() updateDataSource()
} }
...@@ -227,7 +239,40 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -227,7 +239,40 @@ class YHWorkExperienceViewController: YHBaseViewController {
bottom.nextButton.isEnabled = false bottom.nextButton.isEnabled = false
guard let self = self else { return } guard let self = self else { return }
if self.viewModel.isCanNext(self.stepView.currentIndex) { if self.viewModel.isCanNext(self.stepView.currentIndex) {
self.viewModel.mainModel.step = self.stepView.currentIndex if self.stepView.currentIndex == 0 {
self.viewModel.saveWorkData(orderID, workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else {
self.viewModel.saveWorkDetail(1, orderID: self.orderID, callBackBlock: {[weak self] flag, error in self.viewModel.saveWorkDetail(1, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return } guard let self = self else { return }
bottom.nextButton.isEnabled = true bottom.nextButton.isEnabled = true
...@@ -240,10 +285,10 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -240,10 +285,10 @@ class YHWorkExperienceViewController: YHBaseViewController {
self.navigationController?.popViewController() self.navigationController?.popViewController()
} else { } else {
self.stepView.currentIndex = self.stepView.currentIndex + 1 self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
} }
} }
}) })
}
} else { } else {
bottom.nextButton.isEnabled = true bottom.nextButton.isEnabled = true
self.isShowPrompt = true self.isShowPrompt = true
...@@ -253,6 +298,38 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -253,6 +298,38 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
bottom.saveBlock = { [weak self] in bottom.saveBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
if self.stepView.currentIndex == 0 {
self.viewModel.saveWorkData(orderID, workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
}
}
} else if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
}
}
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else {
self.viewModel.saveWorkDetail(0, orderID: self.orderID, callBackBlock: {[weak self] flag, error in self.viewModel.saveWorkDetail(0, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return } guard let self = self else { return }
if let error = error { if let error = error {
...@@ -262,6 +339,7 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -262,6 +339,7 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
}) })
} }
}
return bottom return bottom
}() }()
view.addSubview(bottomView) view.addSubview(bottomView)
...@@ -482,7 +560,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -482,7 +560,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if stepView.currentIndex == 1 { if stepView.currentIndex == 1 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self)
cell.dataSource = viewModel.mainModel.wduty cell.dataSource = viewModel.dutyModel.work_duty
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()
...@@ -518,7 +596,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -518,7 +596,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return cell return cell
} else if stepView.currentIndex == 2 { } else if stepView.currentIndex == 2 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self)
cell.dataSource = viewModel.mainModel.highlights cell.dataSource = viewModel.helightModel.work_highlights
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()
...@@ -772,7 +850,6 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -772,7 +850,6 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
} }
return CGFloat(h + 52 + 14 + 386) return CGFloat(h + 52 + 14 + 386)
} else { } else {
let number = viewModel.positionList.count
var height = 23 + 154 var height = 23 + 154
for item in viewModel.positionList { for item in viewModel.positionList {
if item.position_name == "" { if item.position_name == "" {
......
...@@ -16,6 +16,8 @@ class YHWorkExperienceDetailModel: SmartCodable { ...@@ -16,6 +16,8 @@ class YHWorkExperienceDetailModel: SmartCodable {
var professional_level: Int = 0 var professional_level: Int = 0
var work_certificate: String = "" var work_certificate: String = ""
var has_finish_basic_question: Int = 0 var has_finish_basic_question: Int = 0
var work_duty: String = ""
var work_highlights: String = ""
var is_famous_enterprise: Int = 0 var is_famous_enterprise: Int = 0
var duty: String = "" var duty: String = ""
...@@ -73,3 +75,11 @@ class YHWorkExperienceFileModel: SmartCodable { ...@@ -73,3 +75,11 @@ class YHWorkExperienceFileModel: SmartCodable {
required init() { required init() {
} }
} }
class YHWorkExperienceStepModel: SmartCodable {
var step: Int = 0
var step_name: String = ""
required init() {
}
}
...@@ -18,7 +18,7 @@ class YHWorkExperiencePositionModel: SmartCodable { ...@@ -18,7 +18,7 @@ class YHWorkExperiencePositionModel: SmartCodable {
var entry_time: String = "" var entry_time: String = ""
var departure_time: String = "" var departure_time: String = ""
var experience_scope: String = "" var experience_scope: String = ""
var experience_sub_scope: String = "" var experience_sub_scope: String = " "
var is_international_work_experience: Int = 0 var is_international_work_experience: Int = 0
var provide_certificate_type: Int = 0 var provide_certificate_type: Int = 0
var work_country: String = "" var work_country: String = ""
......
...@@ -15,6 +15,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -15,6 +15,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
var projectModels: [YHWorkExperienceProjectModel]? var projectModels: [YHWorkExperienceProjectModel]?
var fileList: [YHWorkExperienceFileModel] = [] var fileList: [YHWorkExperienceFileModel] = []
var positionList: [YHWorkExperiencePositionModel] = [] var positionList: [YHWorkExperiencePositionModel] = []
var stepModel: YHWorkExperienceStepModel = YHWorkExperienceStepModel()
var dutyModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
var helightModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
override init() { override init() {
super.init() super.init()
} }
...@@ -35,7 +38,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -35,7 +38,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
case .id1: // 用人单位 case .id1: // 用人单位
mainModel.company_name = item.message ?? "" mainModel.company_name = item.message ?? ""
case .id2: // 用人单位性质 case .id2: // 用人单位性质
mainModel.industry = item.message ?? "" mainModel.has_finish_basic_question = 1
case .id3: // 职位水平类型 case .id3: // 职位水平类型
mainModel.professional_level = Int(item.value?.first ?? "0") ?? 0 mainModel.professional_level = Int(item.value?.first ?? "0") ?? 0
default : break default : break
...@@ -43,15 +46,11 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -43,15 +46,11 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
func updateWduty(_ value: String) { func updateWduty(_ value: String) {
mainModel.wduty = value dutyModel.work_duty = value
} }
func updateHighlights(_ value: String) { func updateHighlights(_ value: String) {
mainModel.highlights = value helightModel.work_highlights = value
}
func updateNotNeedUploadFile(value: Int) {
mainModel.not_need_upload_file = value
} }
func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) { func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
...@@ -100,6 +99,30 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -100,6 +99,30 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
} }
func requestWorkStep(_ orderId: String, _ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workStep
let param: [String: Any] = ["work_id": workId, "order_id": orderId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceStepModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.stepModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
// 0保存 1下一步 // 0保存 1下一步
func saveWorkDetail(_ saveType: Int, orderID: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) { func saveWorkDetail(_ saveType: Int, orderID: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
if mainModel.location.country.contains("中国") { if mainModel.location.country.contains("中国") {
...@@ -279,50 +302,20 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -279,50 +302,20 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
func isCanNext(_ step: Int) -> Bool { func isCanNext(_ step: Int) -> Bool {
if step == 0 { if step == 0 {
let companyName = mainModel.company_name //公司名称 let companyName = mainModel.company_name //公司名称
let industry = mainModel.industry //用人单位性质 let professional_level = mainModel.professional_level
let country = mainModel.location.country //工作国家 let work_certificate = mainModel.work_certificate
let area = mainModel.location.area //工作城市
let foreign = mainModel.location.foreign //工作城市 国外
let entryTime = mainModel.entry_time //入职年月
let departureTime = mainModel.departure_time //离职年月
let workCertificate = mainModel.work_certificate //工作证明文件
let duty = mainModel.duty //职责性质
let companyMemberTotal = mainModel.company_member_total //企业人数规模
let companyManageTotal = mainModel.company_manage_total //下属管理人数
let professionalLevel = mainModel.professional_level //职位水平类别
let executivesCertificate = mainModel.executives_certificate //高管证明文件
let topManagerStartAt = mainModel.top_manager_start_at //高管在职开始时间
let topManagerEndAt = mainModel.top_manager_end_at //高管在职开始时间
guard companyName.count > 0 else { return false } guard companyName.count > 0 else { return false }
guard industry.count > 0 else { return false } guard professional_level > 0 else { return false }
guard country.count > 0 else { return false } guard work_certificate.count > 0 else { return false }
guard entryTime.count > 0 else { return false }
guard workCertificate.count > 0 else { return false }
guard duty.count > 0 else { return false }
guard companyMemberTotal >= 0 else { return false }
guard companyManageTotal >= 0 else { return false }
guard professionalLevel > 0 else { return false }
if country.contains("中国") {
guard area.count > 0 else { return false }
} else {
guard foreign.count > 0 else { return false }
}
if professionalLevel == 1 {
guard executivesCertificate.count > 0 else { return false }
guard topManagerStartAt.count > 0 else { return false }
guard topManagerEndAt.count > 0 else { return false }
}
return true return true
} else if step == 1 { } else if step == 1 {
let message = mainModel.wduty let message = dutyModel.work_duty
guard message.count > 0 else { return false } guard message.count > 0 else { return false }
return true return true
} else if step == 2 { } else if step == 2 {
let message = mainModel.highlights let message = helightModel.work_highlights
guard message.count > 0 else { return false } guard message.count > 0 else { return false }
return true return true
} else if step == 3 {
return true
} else { } else {
return true return true
} }
...@@ -350,4 +343,128 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -350,4 +343,128 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
func saveWorkData(_ orderId: Int, workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["order_id": orderId,
"work_id": workId,
"company_name":mainModel.company_name,
"professional_level": mainModel.professional_level,
"work_certificate": mainModel.work_certificate,
"next_step": 1,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkData
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestworkDutyDetail(_ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workDutyDetail
let param: [String: Any] = ["work_id": workId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.dutyModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func saveWorkDuty(workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["work_id": workId,
"work_duty":dutyModel.duty,
"next_step": 2,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkDuty
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestWorkHighlightsDetail(_ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workHighlightsDetail
let param: [String: Any] = ["work_id": workId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.helightModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func saveWorkHighlights(workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["work_id": workId,
"work_highlights": helightModel.work_highlights,
"next_step": 4,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkHighlights
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
} }
...@@ -229,6 +229,7 @@ class YHAllApiName { ...@@ -229,6 +229,7 @@ class YHAllApiName {
static let list = "infoflow/work/v1/list" static let list = "infoflow/work/v1/list"
//工作经验详情 //工作经验详情
static let detail = "infoflow/work/v1/workDetail" static let detail = "infoflow/work/v1/workDetail"
static let workStep = "infoflow/work/v1/WorkStep"
//工作经验保存 //工作经验保存
static let save = "infoflow/work/save" static let save = "infoflow/work/save"
static let saveAll = "infoflow/work/save-all" static let saveAll = "infoflow/work/save-all"
...@@ -260,6 +261,12 @@ class YHAllApiName { ...@@ -260,6 +261,12 @@ class YHAllApiName {
static let workQuestionDetail = "infoflow/work/v1/workQuestionDetail" static let workQuestionDetail = "infoflow/work/v1/workQuestionDetail"
static let saveWorkQuestion = "infoflow/work/v1/SaveWorkQuestion" static let saveWorkQuestion = "infoflow/work/v1/SaveWorkQuestion"
static let saveWorkData = "infoflow/work/v1/saveWorkData"
static let workDutyDetail = "infoflow/work/v1/workDutyDetail"
static let saveWorkDuty = "infoflow/work/v1/saveWorkDuty"
static let workHighlightsDetail = "infoflow/work/v1/workHighlightsDetail"
static let saveWorkHighlights = "infoflow/work/v1/saveWorkHighlights"
} }
//登录 //登录
......
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