Commit c3a66192c4e5738a3949921b8cbf28e6046e83d9
1 parent
3099124a
获奖情况列表页面 , 新增获奖情况页面 , 数字简历页面获奖数据同步
Showing
12 changed files
with
764 additions
and
115 deletions
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/工作相关页面/CNLiveVitaeAddWorkController.swift
| ... | ... | @@ -3,13 +3,23 @@ |
| 3 | 3 | // metaCode |
| 4 | 4 | // |
| 5 | 5 | // Created by zx on 2024/7/29. |
| 6 | -// 数字简历-添加工作记录页面 | |
| 6 | +// 数字简历-添加工作记录页面/添加获奖情况页面 | |
| 7 | 7 | |
| 8 | 8 | import Foundation |
| 9 | 9 | import SnapKit |
| 10 | 10 | |
| 11 | +///数字简历工作/获奖类型 | |
| 12 | +enum CNLiveViateWorkAwardType { | |
| 13 | + ///工作记录 | |
| 14 | + case work | |
| 15 | + ///获奖情况 | |
| 16 | + case award | |
| 17 | +} | |
| 18 | + | |
| 11 | 19 | class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ |
| 12 | 20 | |
| 21 | + var workAwardType:CNLiveViateWorkAwardType = .work | |
| 22 | + | |
| 13 | 23 | var hangHeight:CGFloat = (KSreenWidth-90)/3.0+10 |
| 14 | 24 | var secCell:CNLiveVitaeAddWorkSecCell? |
| 15 | 25 | var seleArr:Array<String>? |
| ... | ... | @@ -26,7 +36,16 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 26 | 36 | _workModel = newValue! |
| 27 | 37 | } |
| 28 | 38 | } |
| 29 | - | |
| 39 | + //简历awardModel | |
| 40 | + var _awardModel : CNLiveVitaeAwardsModel? | |
| 41 | + var awardModel : CNLiveVitaeAwardsModel? { | |
| 42 | + get{ | |
| 43 | + _awardModel | |
| 44 | + } | |
| 45 | + set{ | |
| 46 | + _awardModel = newValue! | |
| 47 | + } | |
| 48 | + } | |
| 30 | 49 | |
| 31 | 50 | let kCNLiveVitaeAddWorkFirCellIdentifier = "kCNLiveVitaeAddWorkFirCellIdentifier" |
| 32 | 51 | let kCNLiveVitaeAddWorkSecCellIdentifier = "kCNLiveVitaeAddWorkSecCellIdentifier" |
| ... | ... | @@ -71,11 +90,15 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 71 | 90 | |
| 72 | 91 | override func viewDidLoad() { |
| 73 | 92 | super.viewDidLoad() |
| 74 | - titleName = "新增工作记录" | |
| 93 | + if self.workAwardType == .work{ | |
| 94 | + titleName = "新增工作记录" | |
| 95 | + }else{ | |
| 96 | + titleName = "新增获奖情况" | |
| 97 | + } | |
| 75 | 98 | navigationBarHidden = false |
| 76 | 99 | self.initUI() |
| 77 | 100 | |
| 78 | - if self.workModel != nil{ | |
| 101 | + if self.workModel != nil || self.awardModel != nil{ | |
| 79 | 102 | self.tableView.reloadData() |
| 80 | 103 | } |
| 81 | 104 | } |
| ... | ... | @@ -117,7 +140,11 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 117 | 140 | } |
| 118 | 141 | |
| 119 | 142 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| 120 | - return 3 | |
| 143 | + if self.workAwardType == .work{ | |
| 144 | + return 3 | |
| 145 | + }else{ | |
| 146 | + return 2 | |
| 147 | + } | |
| 121 | 148 | } |
| 122 | 149 | |
| 123 | 150 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| ... | ... | @@ -128,9 +155,18 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 128 | 155 | let cell = CNLiveVitaeAddWorkFirCell() |
| 129 | 156 | return cell |
| 130 | 157 | } |
| 131 | - if self.workModel != nil{ | |
| 132 | - cell.workModel = self.workModel! | |
| 158 | + if self.workAwardType == .work{ | |
| 159 | + if self.workModel != nil{ | |
| 160 | + cell.workModel = self.workModel! | |
| 161 | + } | |
| 162 | + cell.workAwardType = .work | |
| 163 | + }else{ | |
| 164 | + if self.awardModel != nil{ | |
| 165 | + cell.awardModel = self.awardModel! | |
| 166 | + } | |
| 167 | + cell.workAwardType = .award | |
| 133 | 168 | } |
| 169 | + | |
| 134 | 170 | return cell |
| 135 | 171 | }else if indexPath.row == 1{ |
| 136 | 172 | //SecCell |
| ... | ... | @@ -139,15 +175,23 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 139 | 175 | let cell = CNLiveVitaeAddWorkSecCell() |
| 140 | 176 | return cell |
| 141 | 177 | } |
| 142 | - if self.workModel != nil && self.isFirstEdit == true{ | |
| 143 | - cell.workModel = self.workModel! | |
| 144 | - self.isFirstEdit = false | |
| 178 | + if self.workAwardType == .work{ | |
| 179 | + | |
| 180 | + if self.workModel != nil && self.isFirstEdit == true{ | |
| 181 | + cell.workModel = self.workModel! | |
| 182 | + self.isFirstEdit = false | |
| 183 | + } | |
| 184 | + }else{ | |
| 185 | + if self.awardModel != nil && self.isFirstEdit == true{ | |
| 186 | + cell.awardModel = self.awardModel! | |
| 187 | + self.isFirstEdit = false | |
| 188 | + } | |
| 145 | 189 | } |
| 146 | 190 | cell.uploadImageSuceessBlock = { imageUrl in |
| 147 | 191 | |
| 148 | 192 | } |
| 149 | 193 | cell.selectUploadImageView?.changeUploadDataCallBack = { imageUrls , videoUrl in |
| 150 | - self.seleVideoUrl = videoUrl | |
| 194 | + self.seleVideoUrl = videoUrl | |
| 151 | 195 | self.seleArr = imageUrls |
| 152 | 196 | } |
| 153 | 197 | |
| ... | ... | @@ -160,6 +204,7 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 160 | 204 | self.seleArr = arr |
| 161 | 205 | self.tableView.reloadData() |
| 162 | 206 | } |
| 207 | + | |
| 163 | 208 | return cell |
| 164 | 209 | }else if indexPath.row == 2{ |
| 165 | 210 | //ThreeCell |
| ... | ... | @@ -183,7 +228,11 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 183 | 228 | |
| 184 | 229 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| 185 | 230 | if indexPath.row == 0{ |
| 186 | - return 276+15 | |
| 231 | + if self.workAwardType == .work{ | |
| 232 | + return 276+15 | |
| 233 | + }else{ | |
| 234 | + return 184+15 | |
| 235 | + } | |
| 187 | 236 | }else if indexPath.row == 1{ |
| 188 | 237 | if self.secCell == nil{ |
| 189 | 238 | return self.hangHeight+268+15 |
| ... | ... | @@ -199,74 +248,138 @@ class CNLiveVitaeAddWorkController:CNLiveBaseViewController,UITableViewDataSourc |
| 199 | 248 | |
| 200 | 249 | //确认提交证书 |
| 201 | 250 | @objc func addWorkBtnAction() { |
| 202 | - let firCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as? CNLiveVitaeAddWorkFirCell | |
| 203 | - let secCell = self.tableView.cellForRow(at: IndexPath(row: 1, section: 0)) as? CNLiveVitaeAddWorkSecCell | |
| 204 | - let threeCell = self.tableView.cellForRow(at: IndexPath(row: 2, section: 0)) as? CNLiveVitaeAddWorkThreeCell | |
| 205 | - //判断非空 | |
| 206 | - if firCell?.weizhiRightTitleLabel.text?.count == 0 || firCell?.weizhiRightTitleLabel.text == "请选择"{ | |
| 207 | - showMessage(message: "请选择职业") | |
| 208 | - return | |
| 209 | - } | |
| 210 | - if firCell?.phoneTextFiled.text?.count == 0 || firCell?.phoneTextFiled.text == "请填写"{ | |
| 211 | - showMessage(message: "请填写岗位名称") | |
| 212 | - return | |
| 213 | - } | |
| 214 | - if firCell?.canjiaRightTitleLabel.text?.count == 0 || firCell?.canjiaRightTitleLabel.text == "请选择"{ | |
| 215 | - showMessage(message: "请选择开始时间") | |
| 216 | - return | |
| 217 | - } | |
| 218 | - if firCell?.endTimeRightTitleLabel.text?.count == 0 || firCell?.endTimeRightTitleLabel.text == "请选择"{ | |
| 219 | - showMessage(message: "请选择结束时间") | |
| 220 | - return | |
| 221 | - } | |
| 222 | - if secCell?.huoJiangtextView.text?.count == 0 || secCell?.huoJiangtextView.text == "获奖描述"{ | |
| 223 | - showMessage(message: "请填写经历描述") | |
| 224 | - return | |
| 225 | - } | |
| 226 | 251 | |
| 227 | - var newString = "" | |
| 228 | - if self.seleArr?.count ?? 0 > 0{ | |
| 229 | - if self.seleVideoUrl.count > 0{ | |
| 230 | - self.seleArr!.append(self.seleVideoUrl) | |
| 252 | + if self.workAwardType == .work{ | |
| 253 | + let firCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as? CNLiveVitaeAddWorkFirCell | |
| 254 | + let secCell = self.tableView.cellForRow(at: IndexPath(row: 1, section: 0)) as? CNLiveVitaeAddWorkSecCell | |
| 255 | + let threeCell = self.tableView.cellForRow(at: IndexPath(row: 2, section: 0)) as? CNLiveVitaeAddWorkThreeCell | |
| 256 | + | |
| 257 | + //判断非空 | |
| 258 | + if firCell?.weizhiRightTitleLabel.text?.count == 0 || firCell?.weizhiRightTitleLabel.text == "请选择"{ | |
| 259 | + showMessage(message: "请选择职业") | |
| 260 | + return | |
| 231 | 261 | } |
| 232 | - newString = self.seleArr!.joined(separator: ",") | |
| 233 | - }else{ | |
| 234 | - if self.seleArr == nil || self.seleArr?.count ?? 0 == 0{ | |
| 235 | - if self.seleVideoUrl.count == 0{ | |
| 236 | - // | |
| 237 | - showMessage(message: "请上传凭证") | |
| 238 | - return | |
| 262 | + if firCell?.phoneTextFiled.text?.count == 0 || firCell?.phoneTextFiled.text == "请填写"{ | |
| 263 | + showMessage(message: "请填写岗位名称") | |
| 264 | + return | |
| 265 | + } | |
| 266 | + if firCell?.canjiaRightTitleLabel.text?.count == 0 || firCell?.canjiaRightTitleLabel.text == "请选择"{ | |
| 267 | + showMessage(message: "请选择开始时间") | |
| 268 | + return | |
| 269 | + } | |
| 270 | + if firCell?.endTimeRightTitleLabel.text?.count == 0 || firCell?.endTimeRightTitleLabel.text == "请选择"{ | |
| 271 | + showMessage(message: "请选择结束时间") | |
| 272 | + return | |
| 273 | + } | |
| 274 | + if secCell?.huoJiangtextView.text?.count == 0 || secCell?.huoJiangtextView.text == "获奖描述"{ | |
| 275 | + showMessage(message: "请填写经历描述") | |
| 276 | + return | |
| 277 | + } | |
| 278 | + | |
| 279 | + var newString = "" | |
| 280 | + if self.seleArr?.count ?? 0 > 0{ | |
| 281 | + if self.seleVideoUrl.count > 0{ | |
| 282 | + self.seleArr!.append(self.seleVideoUrl) | |
| 283 | + } | |
| 284 | + newString = self.seleArr!.joined(separator: ",") | |
| 285 | + }else{ | |
| 286 | + if self.seleArr == nil || self.seleArr?.count ?? 0 == 0{ | |
| 287 | + if self.seleVideoUrl.count == 0{ | |
| 288 | + // | |
| 289 | + showMessage(message: "请上传凭证") | |
| 290 | + return | |
| 291 | + }else{ | |
| 292 | + if self.seleVideoUrl.count > 0{ | |
| 293 | + newString = self.seleVideoUrl | |
| 294 | + } | |
| 295 | + } | |
| 239 | 296 | }else{ |
| 240 | - if self.seleVideoUrl.count > 0{ | |
| 241 | - newString = self.seleVideoUrl | |
| 297 | + | |
| 298 | + } | |
| 299 | + } | |
| 300 | + let danWei = threeCell?.phoneTextFiled.text ?? "" | |
| 301 | + let workDiDian = threeCell?.weizhiRightTitleLabel.text ?? "" | |
| 302 | + if let userDic = UserDefaults.standard.dictionary(forKey: UserInfoManager.shared.userInfo.uid){ | |
| 303 | + let jianli_vitaeId = userDic["jianli_vitaeId"] as? String | |
| 304 | + let vsid = userDic["vsid"] as? String | |
| 305 | + let startTime = self.convertDateStringToMillisecondsString(dateString: firCell?.canjiaRightTitleLabel.text ?? "") | |
| 306 | + let endTime = self.convertDateStringToMillisecondsString(dateString: firCell?.endTimeRightTitleLabel.text ?? "") | |
| 307 | + //提交工作记录 | |
| 308 | + var id = "" | |
| 309 | + if self.workModel != nil{ | |
| 310 | + id = self.workModel!.id | |
| 311 | + } | |
| 312 | + CNLiveVitaeViewModel.saveWork(city: workDiDian, companyName: danWei, imgs: newString, jobDuties: secCell?.huoJiangtextView.text ?? "", startWorkingDate:startTime ?? "" , endWorkingDate: endTime ?? "" , position: firCell?.phoneTextFiled.text ?? "", profession: firCell?.weizhiRightTitleLabel.text ?? "", vsid: vsid ?? "", vitaeId: jianli_vitaeId ?? "", id: id) { result, status in | |
| 313 | + if status == .success{ | |
| 314 | + self.navigationController?.viewControllers.forEach({ item in | |
| 315 | + if (item.isKind(of: CNLiveDigitalResumeController.self)) { | |
| 316 | + self.navigationController?.popToViewController(item, animated: true) | |
| 317 | + } | |
| 318 | + }) | |
| 242 | 319 | } |
| 243 | 320 | } |
| 244 | - }else{ | |
| 245 | - | |
| 246 | 321 | } |
| 247 | - } | |
| 248 | - let danWei = threeCell?.phoneTextFiled.text ?? "" | |
| 249 | - let workDiDian = threeCell?.weizhiRightTitleLabel.text ?? "" | |
| 250 | - if let userDic = UserDefaults.standard.dictionary(forKey: UserInfoManager.shared.userInfo.uid){ | |
| 251 | - let jianli_vitaeId = userDic["jianli_vitaeId"] as? String | |
| 252 | - let vsid = userDic["vsid"] as? String | |
| 253 | - let startTime = self.convertDateStringToMillisecondsString(dateString: firCell?.canjiaRightTitleLabel.text ?? "") | |
| 254 | - let endTime = self.convertDateStringToMillisecondsString(dateString: firCell?.endTimeRightTitleLabel.text ?? "") | |
| 255 | - //提交工作记录 | |
| 256 | - var id = "" | |
| 257 | - if self.workModel != nil{ | |
| 258 | - id = self.workModel!.id | |
| 322 | + }else{ | |
| 323 | + //获奖 | |
| 324 | + let firCell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as? CNLiveVitaeAddWorkFirCell | |
| 325 | + let secCell = self.tableView.cellForRow(at: IndexPath(row: 1, section: 0)) as? CNLiveVitaeAddWorkSecCell | |
| 326 | + //判断非空 | |
| 327 | + if firCell?.phoneTextFiled.text?.count == 0 || firCell?.phoneTextFiled.text == "请填写"{ | |
| 328 | + showMessage(message: "请填写获奖名称") | |
| 329 | + return | |
| 259 | 330 | } |
| 260 | - CNLiveVitaeViewModel.saveWork(city: workDiDian, companyName: danWei, imgs: newString, jobDuties: secCell?.huoJiangtextView.text ?? "", startWorkingDate:startTime ?? "" , endWorkingDate: endTime ?? "" , position: firCell?.phoneTextFiled.text ?? "", profession: firCell?.weizhiRightTitleLabel.text ?? "", vsid: vsid ?? "", vitaeId: jianli_vitaeId ?? "", id: id) { result, status in | |
| 261 | - if status == .success{ | |
| 262 | - self.navigationController?.viewControllers.forEach({ item in | |
| 263 | - if (item.isKind(of: CNLiveDigitalResumeController.self)) { | |
| 264 | - self.navigationController?.popToViewController(item, animated: true) | |
| 265 | - } | |
| 266 | - }) | |
| 267 | - } | |
| 331 | + if firCell?.canjiaRightTitleLabel.text?.count == 0 || firCell?.canjiaRightTitleLabel.text == "请选择"{ | |
| 332 | + showMessage(message: "请选择开始时间") | |
| 333 | + return | |
| 334 | + } | |
| 335 | + if secCell?.huoJiangtextView.text?.count == 0 || secCell?.huoJiangtextView.text == "描述"{ | |
| 336 | + showMessage(message: "请填写描述") | |
| 337 | + return | |
| 268 | 338 | } |
| 269 | 339 | |
| 340 | + var newString = "" | |
| 341 | + if self.seleArr?.count ?? 0 > 0{ | |
| 342 | + if self.seleVideoUrl.count > 0{ | |
| 343 | + self.seleArr!.append(self.seleVideoUrl) | |
| 344 | + } | |
| 345 | + newString = self.seleArr!.joined(separator: ",") | |
| 346 | + }else{ | |
| 347 | + if self.seleArr == nil || self.seleArr?.count ?? 0 == 0{ | |
| 348 | + if self.seleVideoUrl.count == 0{ | |
| 349 | + // | |
| 350 | + showMessage(message: "请上传凭证") | |
| 351 | + return | |
| 352 | + }else{ | |
| 353 | + if self.seleVideoUrl.count > 0{ | |
| 354 | + newString = self.seleVideoUrl | |
| 355 | + } | |
| 356 | + } | |
| 357 | + }else{ | |
| 358 | + | |
| 359 | + } | |
| 360 | + } | |
| 361 | + | |
| 362 | + if let userDic = UserDefaults.standard.dictionary(forKey: UserInfoManager.shared.userInfo.uid){ | |
| 363 | + let jianli_vitaeId = userDic["jianli_vitaeId"] as? String | |
| 364 | + let vsid = userDic["vsid"] as? String | |
| 365 | + let startTime = self.convertDateStringToMillisecondsString(dateString: firCell?.canjiaRightTitleLabel.text ?? "") | |
| 366 | + //提交工作记录 | |
| 367 | + var id = "" | |
| 368 | + if self.awardModel != nil{ | |
| 369 | + id = self.awardModel!.id | |
| 370 | + } | |
| 371 | + CNLiveVitaeViewModel.saveAward(company: firCell?.banfaTextFiled.text ?? "", description: secCell?.huoJiangtextView.text ?? "", time: startTime ?? "", title: firCell?.phoneTextFiled.text ?? "", imgs: newString, vsid: vsid ?? "", vitaeId: jianli_vitaeId ?? "", id: id) { result, status in | |
| 372 | + if status == .success{ | |
| 373 | + self.navigationController?.viewControllers.forEach({ item in | |
| 374 | + if (item.isKind(of: CNLiveDigitalResumeController.self)) { | |
| 375 | + self.navigationController?.popToViewController(item, animated: true) | |
| 376 | + } | |
| 377 | + }) | |
| 378 | + } | |
| 379 | + | |
| 380 | + } | |
| 381 | + | |
| 382 | + } | |
| 270 | 383 | } |
| 271 | 384 | |
| 272 | 385 | } | ... | ... |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/工作相关页面/CNLiveVitaeWorkDetailController.swift
| ... | ... | @@ -11,6 +11,8 @@ import JFHeroBrowser |
| 11 | 11 | class CNLiveVitaeWorkDetailController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ |
| 12 | 12 | var jianjieLblHeight:CGFloat = 40 |
| 13 | 13 | var cellHeights:Array<CGFloat> = Array() |
| 14 | + | |
| 15 | + var workAwardType:CNLiveViateWorkAwardType = .work | |
| 14 | 16 | |
| 15 | 17 | lazy var bgImgView :UIImageView = { |
| 16 | 18 | let iconImgView = UIImageView() |
| ... | ... | @@ -61,8 +63,8 @@ class CNLiveVitaeWorkDetailController:CNLiveBaseViewController,UITableViewDataSo |
| 61 | 63 | nextBtn.addTarget(self, action: #selector(addWorkBtnAction), for: .touchUpInside) |
| 62 | 64 | return nextBtn |
| 63 | 65 | }() |
| 64 | - lazy var workListArr :Array<CNLiveVitaeWorksModel> = { | |
| 65 | - let dataArray = Array<CNLiveVitaeWorksModel>() | |
| 66 | + lazy var workListArr :Array<Any> = { | |
| 67 | + let dataArray = Array<Any>() | |
| 66 | 68 | return dataArray |
| 67 | 69 | }() |
| 68 | 70 | |
| ... | ... | @@ -72,9 +74,19 @@ class CNLiveVitaeWorkDetailController:CNLiveBaseViewController,UITableViewDataSo |
| 72 | 74 | } |
| 73 | 75 | override func viewDidLoad() { |
| 74 | 76 | super.viewDidLoad() |
| 75 | - titleName = "工作记录" | |
| 76 | 77 | navigationBarHidden = false |
| 77 | 78 | self.initUI() |
| 79 | + if self.workAwardType == .work{ | |
| 80 | + titleName = "工作记录" | |
| 81 | + self.bgImgView.image = UIImage(named: "mine_jianli_workBg") | |
| 82 | + self.yuanmaLabel.text = "工作记录" | |
| 83 | + self.addWorkBtn.setTitle("添加工作记录", for: .normal) | |
| 84 | + }else{ | |
| 85 | + titleName = "获奖情况" | |
| 86 | + self.bgImgView.image = UIImage(named: "mine_jianli_awardBg") | |
| 87 | + self.yuanmaLabel.text = "获奖情况" | |
| 88 | + self.addWorkBtn.setTitle("添加获奖记录", for: .normal) | |
| 89 | + } | |
| 78 | 90 | } |
| 79 | 91 | |
| 80 | 92 | deinit {} |
| ... | ... | @@ -131,17 +143,28 @@ class CNLiveVitaeWorkDetailController:CNLiveBaseViewController,UITableViewDataSo |
| 131 | 143 | let cell = CNLiveVitaeWorkCell() |
| 132 | 144 | return cell |
| 133 | 145 | } |
| 134 | - let model = workListArr[indexPath.row] | |
| 135 | - cell.workModel = model | |
| 146 | + if self.workAwardType == .work{ | |
| 147 | + let model = workListArr[indexPath.row] as! CNLiveVitaeWorksModel | |
| 148 | + cell.workModel = model | |
| 149 | + }else{ | |
| 150 | + let model = workListArr[indexPath.row] as! CNLiveVitaeAwardsModel | |
| 151 | + cell.awardModel = model | |
| 152 | + } | |
| 136 | 153 | cell.vitaeWorkCellChangedBlock = { workCell,jianjieHeight in |
| 137 | 154 | let res = self.workListArr |
| 138 | - var tempArr = Array<CNLiveVitaeWorksModel>() | |
| 155 | + var tempArr = Array<Any>() | |
| 139 | 156 | let idxPath = tableView.indexPath(for: workCell) |
| 140 | 157 | for (idx,mdl) in res.enumerated() { |
| 141 | 158 | if idx == idxPath?.row{ |
| 142 | - let layout = CNLiveViateWorkModelLayout(model: mdl,descH: Float(jianjieHeight)) | |
| 143 | - let newWorkModel = layout.getCellHModel() | |
| 144 | - tempArr.append(newWorkModel) | |
| 159 | + if self.workAwardType == .work{ | |
| 160 | + let layout = CNLiveViateWorkModelLayout(model: mdl as! CNLiveVitaeWorksModel,descH: Float(jianjieHeight)) | |
| 161 | + let newWorkModel = layout.getCellHModel() | |
| 162 | + tempArr.append(newWorkModel) | |
| 163 | + }else{ | |
| 164 | + let layout = CNLiveViateAwardModelLayout(model: mdl as! CNLiveVitaeAwardsModel,descH: Float(jianjieHeight)) | |
| 165 | + let newWorkModel = layout.getCellHModel() | |
| 166 | + tempArr.append(newWorkModel) | |
| 167 | + } | |
| 145 | 168 | }else{ |
| 146 | 169 | tempArr.append(mdl) |
| 147 | 170 | } |
| ... | ... | @@ -171,32 +194,59 @@ class CNLiveVitaeWorkDetailController:CNLiveBaseViewController,UITableViewDataSo |
| 171 | 194 | } |
| 172 | 195 | |
| 173 | 196 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| 174 | - let model = self.workListArr[indexPath.row] | |
| 175 | - return CGFloat(model.cellH) | |
| 197 | + if self.workAwardType == .work{ | |
| 198 | + let model = self.workListArr[indexPath.row] as! CNLiveVitaeWorksModel | |
| 199 | + return CGFloat(model.cellH) | |
| 200 | + }else{ | |
| 201 | + let model = self.workListArr[indexPath.row] as! CNLiveVitaeAwardsModel | |
| 202 | + return CGFloat(model.cellH) | |
| 203 | + } | |
| 176 | 204 | } |
| 177 | 205 | |
| 178 | 206 | @objc func addWorkBtnAction(){ |
| 179 | - self.navigationController?.pushViewController(CNLiveVitaeAddWorkController(), animated: true) | |
| 207 | + let vc = CNLiveVitaeAddWorkController() | |
| 208 | + vc.workAwardType = self.workAwardType | |
| 209 | + self.navigationController?.pushViewController(vc, animated: true) | |
| 180 | 210 | } |
| 181 | 211 | |
| 182 | 212 | func getWorkList(){ |
| 183 | 213 | let vsid = UserInfoManager.shared.userInfo.currentUser?.vsid ?? "" |
| 184 | - CNLiveVitaeViewModel.getWorkList(vsid: vsid){ result, respStatus in | |
| 185 | - if respStatus == .success{ | |
| 186 | - if let res = result as? [CNLiveVitaeWorksModel]{ | |
| 187 | - self.workListArr = Array() | |
| 188 | - for mdl in res { | |
| 189 | - let layout = CNLiveViateWorkModelLayout(model: mdl,descH: 40.0) | |
| 190 | - let newWorkModel = layout.getCellHModel() | |
| 191 | - self.workListArr.append(newWorkModel) | |
| 214 | + if self.workAwardType == .work{ | |
| 215 | + CNLiveVitaeViewModel.getWorkList(vsid: vsid){ result, respStatus in | |
| 216 | + if respStatus == .success{ | |
| 217 | + if let res = result as? [CNLiveVitaeWorksModel]{ | |
| 218 | + self.workListArr = Array() | |
| 219 | + for mdl in res { | |
| 220 | + let layout = CNLiveViateWorkModelLayout(model: mdl,descH: 40.0) | |
| 221 | + let newWorkModel = layout.getCellHModel() | |
| 222 | + self.workListArr.append(newWorkModel) | |
| 223 | + } | |
| 224 | + self.tableView.reloadData() | |
| 225 | + self.yuanmaDescLabel.text = "共 \(res.count) 条" | |
| 226 | + } | |
| 227 | + }else{ | |
| 228 | + showMessage(message: "数据异常") | |
| 229 | + } | |
| 230 | + | |
| 231 | + } | |
| 232 | + }else{ | |
| 233 | + CNLiveVitaeViewModel.getAwardList(vsid: vsid){ result, respStatus in | |
| 234 | + if respStatus == .success{ | |
| 235 | + if let res = result as? [CNLiveVitaeAwardsModel]{ | |
| 236 | + self.workListArr = Array() | |
| 237 | + for mdl in res { | |
| 238 | + let layout = CNLiveViateAwardModelLayout(model: mdl,descH: 40.0) | |
| 239 | + let newWorkModel = layout.getCellHModel() | |
| 240 | + self.workListArr.append(newWorkModel) | |
| 241 | + } | |
| 242 | + self.tableView.reloadData() | |
| 243 | + self.yuanmaDescLabel.text = "共 \(res.count) 条" | |
| 192 | 244 | } |
| 193 | - self.tableView.reloadData() | |
| 194 | - self.yuanmaDescLabel.text = "共 \(res.count) 条" | |
| 245 | + }else{ | |
| 246 | + showMessage(message: "数据异常") | |
| 195 | 247 | } |
| 196 | - }else{ | |
| 197 | - showMessage(message: "数据异常") | |
| 248 | + | |
| 198 | 249 | } |
| 199 | - | |
| 200 | 250 | } |
| 201 | 251 | } |
| 202 | 252 | } | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/DigitalResume/CNLiveDigitalResumeCell.swift
| ... | ... | @@ -553,7 +553,19 @@ class CNLiveDigitalResumeCell: UITableViewCell { |
| 553 | 553 | } |
| 554 | 554 | } |
| 555 | 555 | @objc func huojiangDetailTitleLabelAciton(){ |
| 556 | - | |
| 556 | + //获奖情况 | |
| 557 | + let works = self.vitaeModel?.awards | |
| 558 | + if works?.count ?? 0 > 0{ | |
| 559 | + //有获奖->获奖情况页面 | |
| 560 | + let vc = CNLiveVitaeWorkDetailController() | |
| 561 | + vc.workAwardType = .award | |
| 562 | + navigationViewController().pushViewController(vc, animated: true) | |
| 563 | + }else{ | |
| 564 | + //无获奖->新增获奖情况页面 | |
| 565 | + let vc = CNLiveVitaeAddWorkController() | |
| 566 | + vc.workAwardType = .award | |
| 567 | + navigationViewController().pushViewController(vc, animated: true) | |
| 568 | + } | |
| 557 | 569 | } |
| 558 | 570 | @objc func chakanTitleLabelAciton(){ |
| 559 | 571 | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/Vitae/Work/CNLiveVitaeAddWorkFirCell.swift
| ... | ... | @@ -11,6 +11,24 @@ import SnapKit |
| 11 | 11 | |
| 12 | 12 | class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 13 | 13 | var zhiyeStr:String = "" |
| 14 | + | |
| 15 | +// var workAwardType:CNLiveViateWorkAwardType = .work | |
| 16 | + var _workAwardType:CNLiveViateWorkAwardType = .work | |
| 17 | + var workAwardType : CNLiveViateWorkAwardType { | |
| 18 | + get{ | |
| 19 | + _workAwardType | |
| 20 | + } | |
| 21 | + set{ | |
| 22 | + _workAwardType = newValue | |
| 23 | + if _workAwardType == .work{ | |
| 24 | + self.initUI() | |
| 25 | + }else{ | |
| 26 | + self.awardUI() | |
| 27 | + } | |
| 28 | + } | |
| 29 | + } | |
| 30 | + | |
| 31 | + | |
| 14 | 32 | //简历workModel |
| 15 | 33 | var _workModel : CNLiveVitaeWorksModel? |
| 16 | 34 | var workModel : CNLiveVitaeWorksModel? { |
| ... | ... | @@ -22,6 +40,17 @@ class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 22 | 40 | setupNewUI(model: _workModel!) |
| 23 | 41 | } |
| 24 | 42 | } |
| 43 | + //简历awardModel | |
| 44 | + var _awardModel : CNLiveVitaeAwardsModel? | |
| 45 | + var awardModel : CNLiveVitaeAwardsModel? { | |
| 46 | + get{ | |
| 47 | + _awardModel | |
| 48 | + } | |
| 49 | + set{ | |
| 50 | + _awardModel = newValue! | |
| 51 | + setupNewAwardUI(model: _awardModel!) | |
| 52 | + } | |
| 53 | + } | |
| 25 | 54 | |
| 26 | 55 | lazy var topWhiteView :UIView = { |
| 27 | 56 | let bottomNavView = UIView() |
| ... | ... | @@ -64,6 +93,7 @@ class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 64 | 93 | bottomNavView.backgroundColor = HexColor("#EAEAEA") |
| 65 | 94 | return bottomNavView |
| 66 | 95 | }() |
| 96 | + //"岗位名称"或"获奖名称" | |
| 67 | 97 | lazy var lianxiTitleLabel: UILabel = { |
| 68 | 98 | let titleLabel = UILabel.init() |
| 69 | 99 | titleLabel.textColor = HexColor("#333333") |
| ... | ... | @@ -166,13 +196,43 @@ class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 166 | 196 | closeBtn.addTarget(self, action: #selector(zhiJinBtnAction), for: .touchUpInside) |
| 167 | 197 | return closeBtn |
| 168 | 198 | }() |
| 199 | + | |
| 200 | + //获奖-颁发单位 | |
| 201 | + lazy var banfaTitleLabel: UILabel = { | |
| 202 | + let titleLabel = UILabel.init() | |
| 203 | + titleLabel.textColor = HexColor("#333333") | |
| 204 | + titleLabel.text = "颁发单位" | |
| 205 | + titleLabel.textAlignment = .left | |
| 206 | + titleLabel.font = BoldFont_15 | |
| 207 | + titleLabel.adjustsFontSizeToFitWidth=true | |
| 208 | + return titleLabel | |
| 209 | + }() | |
| 210 | + lazy var xuantianTitleLabel: UILabel = { | |
| 211 | + let titleLabel = UILabel.init() | |
| 212 | + titleLabel.textColor = HexColor("#B4B4B4") | |
| 213 | + titleLabel.text = "(选填)" | |
| 214 | + titleLabel.textAlignment = .left | |
| 215 | + titleLabel.font = Font_13 | |
| 216 | + titleLabel.adjustsFontSizeToFitWidth=true | |
| 217 | + return titleLabel | |
| 218 | + }() | |
| 219 | + lazy var banfaTextFiled :UITextField = { | |
| 220 | + let textFiled = UITextField() | |
| 221 | + textFiled.textAlignment = .right | |
| 222 | + textFiled.font = Font_15 | |
| 223 | + textFiled.attributedPlaceholder = NSAttributedString(string: "请输入", attributes: [.foregroundColor: HexColor("#B4B4B4")!]) | |
| 224 | + textFiled.textColor = HexColor("#333333") | |
| 225 | + textFiled.delegate = self | |
| 226 | + textFiled.returnKeyType = .done | |
| 227 | + textFiled.clearButtonMode = .whileEditing | |
| 228 | + return textFiled | |
| 229 | + }() | |
| 169 | 230 | |
| 170 | 231 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { |
| 171 | 232 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 172 | 233 | self.selectionStyle = .none |
| 173 | 234 | self.backgroundColor = .clear |
| 174 | 235 | self.contentView.backgroundColor = .clear |
| 175 | - self.initUI() | |
| 176 | 236 | } |
| 177 | 237 | |
| 178 | 238 | required init?(coder: NSCoder) { |
| ... | ... | @@ -301,6 +361,92 @@ class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 301 | 361 | |
| 302 | 362 | } |
| 303 | 363 | |
| 364 | + func awardUI(){ | |
| 365 | + | |
| 366 | + self.contentView.addSubview(self.topWhiteView) | |
| 367 | + self.topWhiteView.snp.makeConstraints { make in | |
| 368 | + make.top.equalTo(15) | |
| 369 | + make.left.equalTo(15) | |
| 370 | + make.right.equalToSuperview().offset(-15) | |
| 371 | + make.height.equalTo(184) | |
| 372 | + } | |
| 373 | + self.topWhiteView.addSubview(self.lianxiTitleLabel) | |
| 374 | + self.lianxiTitleLabel.text = "获奖名称" | |
| 375 | + self.lianxiTitleLabel.snp.makeConstraints { make in | |
| 376 | + make.top.equalTo(20) | |
| 377 | + make.left.equalTo(15) | |
| 378 | + make.width.equalTo(62) | |
| 379 | + make.height.equalTo(21) | |
| 380 | + } | |
| 381 | + self.topWhiteView.addSubview(self.phoneTextFiled) | |
| 382 | + self.phoneTextFiled.snp.makeConstraints { make in | |
| 383 | + make.centerY.equalTo(self.lianxiTitleLabel.snp.centerY) | |
| 384 | + make.left.equalTo(self.lianxiTitleLabel.snp.right).offset(10) | |
| 385 | + make.right.equalToSuperview().offset(-15) | |
| 386 | + make.height.equalTo(21) | |
| 387 | + } | |
| 388 | + self.topWhiteView.addSubview(self.topLine2View) | |
| 389 | + self.topLine2View.snp.makeConstraints { make in | |
| 390 | + make.top.equalTo(self.lianxiTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 391 | + make.left.equalTo(15) | |
| 392 | + make.height.equalTo(0.5) | |
| 393 | + make.right.equalToSuperview().offset(-15) | |
| 394 | + } | |
| 395 | + self.topWhiteView.addSubview(self.canjiaTitleLabel) | |
| 396 | + self.canjiaTitleLabel.snp.makeConstraints { make in | |
| 397 | + make.top.equalTo(self.topLine2View.snp.bottom).offset(adapt_length(length: 20)) | |
| 398 | + make.left.equalTo(15) | |
| 399 | + } | |
| 400 | + self.topWhiteView.addSubview(self.canjiaRightTitleLabel) | |
| 401 | + self.canjiaRightTitleLabel.snp.makeConstraints { make in | |
| 402 | + make.centerY.equalTo(self.canjiaTitleLabel.snp.centerY) | |
| 403 | + make.right.equalToSuperview().offset(-28) | |
| 404 | + make.left.equalTo(self.canjiaTitleLabel.snp.right).offset(5) | |
| 405 | + make.height.equalTo(21) | |
| 406 | + } | |
| 407 | + self.topWhiteView.addSubview(self.canjiaRightImgView) | |
| 408 | + self.canjiaRightImgView.snp.makeConstraints { make in | |
| 409 | + make.width.height.equalTo(13) | |
| 410 | + make.centerY.equalTo(self.canjiaRightTitleLabel.snp.centerY) | |
| 411 | + make.left.equalTo(self.canjiaRightTitleLabel.snp.right) | |
| 412 | + } | |
| 413 | + self.topWhiteView.addSubview(self.canjiaTapView) | |
| 414 | + self.canjiaTapView.snp.makeConstraints { make in | |
| 415 | + make.left.right.equalToSuperview() | |
| 416 | + make.top.equalTo(self.topLine2View.snp.bottom) | |
| 417 | + make.bottom.equalTo(self.canjiaTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 418 | + } | |
| 419 | + self.topWhiteView.addSubview(self.topLine3View) | |
| 420 | + self.topLine3View.snp.makeConstraints { make in | |
| 421 | + make.top.equalTo(self.canjiaTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 422 | + make.left.equalTo(15) | |
| 423 | + make.height.equalTo(0.5) | |
| 424 | + make.right.equalToSuperview().offset(-15) | |
| 425 | + } | |
| 426 | + | |
| 427 | + self.topWhiteView.addSubview(self.banfaTitleLabel) | |
| 428 | + self.banfaTitleLabel.snp.makeConstraints { make in | |
| 429 | + make.top.equalTo(self.topLine3View.snp.bottom).offset(adapt_length(length: 20)) | |
| 430 | + make.left.equalTo(15) | |
| 431 | + make.width.equalTo(62) | |
| 432 | + make.height.equalTo(21) | |
| 433 | + } | |
| 434 | + self.topWhiteView.addSubview(self.xuantianTitleLabel) | |
| 435 | + self.xuantianTitleLabel.snp.makeConstraints { make in | |
| 436 | + make.centerY.equalTo(self.banfaTitleLabel.snp.centerY) | |
| 437 | + make.width.equalTo(50) | |
| 438 | + make.left.equalTo(self.banfaTitleLabel.snp.right).offset(5) | |
| 439 | + make.height.equalTo(21) | |
| 440 | + } | |
| 441 | + self.topWhiteView.addSubview(self.banfaTextFiled) | |
| 442 | + self.banfaTextFiled.snp.makeConstraints { make in | |
| 443 | + make.centerY.equalTo(self.xuantianTitleLabel.snp.centerY) | |
| 444 | + make.left.equalTo(self.xuantianTitleLabel.snp.right).offset(10) | |
| 445 | + make.right.equalToSuperview().offset(-15) | |
| 446 | + make.height.equalTo(21) | |
| 447 | + } | |
| 448 | + } | |
| 449 | + | |
| 304 | 450 | // MARK: - UITextFieldDelegate |
| 305 | 451 | func textFieldDidEndEditing(_ textField: UITextField) { |
| 306 | 452 | currentViewController()?.view.endEditing(true) |
| ... | ... | @@ -357,6 +503,23 @@ class CNLiveVitaeAddWorkFirCell:UITableViewCell, UITextFieldDelegate{ |
| 357 | 503 | } |
| 358 | 504 | } |
| 359 | 505 | |
| 506 | + //获奖 | |
| 507 | + func setupNewAwardUI(model:CNLiveVitaeAwardsModel){ | |
| 508 | + | |
| 509 | + self.weizhiRightTitleLabel.text = model.title | |
| 510 | + self.banfaTextFiled.text = model.company | |
| 511 | + | |
| 512 | + let startStr = self.convertMillisecondsStringToDateString(millisecondsString: model.time) | |
| 513 | + if startStr?.count ?? 0 > 0{ | |
| 514 | + self.canjiaRightTitleLabel.text = startStr | |
| 515 | + self.canjiaRightTitleLabel.textColor = HexColor("#333333") | |
| 516 | + }else{ | |
| 517 | + self.canjiaRightTitleLabel.text = "请选择" | |
| 518 | + self.canjiaRightTitleLabel.textColor = HexColor("#B4B4B4") | |
| 519 | + } | |
| 520 | + } | |
| 521 | + | |
| 522 | + //工作记录 | |
| 360 | 523 | func setupNewUI(model:CNLiveVitaeWorksModel){ |
| 361 | 524 | self.weizhiRightTitleLabel.text = model.profession |
| 362 | 525 | self.phoneTextFiled.text = model.position | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/Vitae/Work/CNLiveVitaeAddWorkSecCell.swift
| ... | ... | @@ -13,6 +13,7 @@ typealias UpdateAddWorkSecCellHeightBlock = (_ currentCell: CNLiveVitaeAddWorkSe |
| 13 | 13 | |
| 14 | 14 | class CNLiveVitaeAddWorkSecCell:UITableViewCell, UITextViewDelegate{ |
| 15 | 15 | var updateAddWorkSecCellHeightBlock:UpdateAddWorkSecCellHeightBlock? |
| 16 | + var workAwardType:CNLiveViateWorkAwardType = .work | |
| 16 | 17 | |
| 17 | 18 | //简历workModel |
| 18 | 19 | var _workModel : CNLiveVitaeWorksModel? |
| ... | ... | @@ -25,6 +26,17 @@ class CNLiveVitaeAddWorkSecCell:UITableViewCell, UITextViewDelegate{ |
| 25 | 26 | setupNewUI(model: _workModel!) |
| 26 | 27 | } |
| 27 | 28 | } |
| 29 | + //简历awardModel | |
| 30 | + var _awardModel : CNLiveVitaeAwardsModel? | |
| 31 | + var awardModel : CNLiveVitaeAwardsModel? { | |
| 32 | + get{ | |
| 33 | + _awardModel | |
| 34 | + } | |
| 35 | + set{ | |
| 36 | + _awardModel = newValue! | |
| 37 | + setupNewAwardUI(model: _awardModel!) | |
| 38 | + } | |
| 39 | + } | |
| 28 | 40 | |
| 29 | 41 | lazy var topWhiteView :UIView = { |
| 30 | 42 | let bottomNavView = UIView() |
| ... | ... | @@ -53,7 +65,7 @@ class CNLiveVitaeAddWorkSecCell:UITableViewCell, UITextViewDelegate{ |
| 53 | 65 | let p_textView = UITextView.init() |
| 54 | 66 | p_textView.backgroundColor = .clear |
| 55 | 67 | p_textView.font = Font_15 |
| 56 | - p_textView.text = "获奖描述" | |
| 68 | + p_textView.text = "描述" | |
| 57 | 69 | p_textView.textColor = HexColor("#B3B3B3") |
| 58 | 70 | p_textView.delegate = self |
| 59 | 71 | return p_textView |
| ... | ... | @@ -200,6 +212,23 @@ class CNLiveVitaeAddWorkSecCell:UITableViewCell, UITextViewDelegate{ |
| 200 | 212 | |
| 201 | 213 | } |
| 202 | 214 | |
| 215 | + //获奖 | |
| 216 | + func setupNewAwardUI(model:CNLiveVitaeAwardsModel){ | |
| 217 | + self.huoJiangtextView.text = model.description | |
| 218 | + self.huoJiangNumberLabel.text = "\(model.description.count)/1000" | |
| 219 | + let imgArr = model.imgs.components(separatedBy: ",") | |
| 220 | + var tempImgArr = Array<String>() | |
| 221 | + var tempVideoUrl = "" | |
| 222 | + for (_,imgUrl) in imgArr.enumerated() { | |
| 223 | + if imgUrl.contains("vitae_video_"){ | |
| 224 | + tempVideoUrl = imgUrl | |
| 225 | + }else{ | |
| 226 | + tempImgArr.append(imgUrl) | |
| 227 | + } | |
| 228 | + } | |
| 229 | + self.selectUploadImageView?.networkImageArr = tempImgArr | |
| 230 | + self.selectUploadImageView?.networkVideoUrl = tempVideoUrl | |
| 231 | + } | |
| 203 | 232 | func setupNewUI(model:CNLiveVitaeWorksModel){ |
| 204 | 233 | self.huoJiangtextView.text = model.jobDuties |
| 205 | 234 | self.huoJiangNumberLabel.text = "\(model.jobDuties.count)/1000" |
| ... | ... | @@ -220,13 +249,13 @@ class CNLiveVitaeAddWorkSecCell:UITableViewCell, UITextViewDelegate{ |
| 220 | 249 | |
| 221 | 250 | func textViewDidEndEditing(_ textView: UITextView) { |
| 222 | 251 | if textView.text.lengthOfBytes(using: .utf8) < 1 { |
| 223 | - textView.text = textView_placeholder | |
| 252 | + textView.text = "描述" | |
| 224 | 253 | textView.textColor = HexColor("#B3B3B3") |
| 225 | 254 | // setupWithSendBtnStatue(statue: false) |
| 226 | 255 | } |
| 227 | 256 | } |
| 228 | 257 | func textViewDidBeginEditing(_ textView: UITextView) { |
| 229 | - if textView.text == "获奖描述" { | |
| 258 | + if textView.text == "描述" { | |
| 230 | 259 | textView.text = "" |
| 231 | 260 | textView.textColor = .black |
| 232 | 261 | // setupWithSendBtnStatue(statue: true) | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/Vitae/Work/CNLiveVitaeWorkCell.swift
| ... | ... | @@ -40,6 +40,18 @@ class CNLiveVitaeWorkCell: UITableViewCell{ |
| 40 | 40 | setupNewUI(model: _workModel!) |
| 41 | 41 | } |
| 42 | 42 | } |
| 43 | + //简历awardModel | |
| 44 | + var _awardModel : CNLiveVitaeAwardsModel? | |
| 45 | + var awardModel : CNLiveVitaeAwardsModel? { | |
| 46 | + get{ | |
| 47 | + _awardModel | |
| 48 | + } | |
| 49 | + set{ | |
| 50 | + _awardModel = newValue! | |
| 51 | + setupNewAwardUI(model: _awardModel!) | |
| 52 | + } | |
| 53 | + } | |
| 54 | + | |
| 43 | 55 | |
| 44 | 56 | lazy var whiteBgView :UIView = { |
| 45 | 57 | let whiteBgView = UIView() |
| ... | ... | @@ -52,7 +64,7 @@ class CNLiveVitaeWorkCell: UITableViewCell{ |
| 52 | 64 | let titleLabel = UILabel() |
| 53 | 65 | titleLabel.textColor = HexColor("#333333") |
| 54 | 66 | titleLabel.textAlignment = .left |
| 55 | - titleLabel.text = "职业" | |
| 67 | + titleLabel.text = "" | |
| 56 | 68 | titleLabel.font = BoldFont_16 |
| 57 | 69 | return titleLabel |
| 58 | 70 | }() |
| ... | ... | @@ -259,6 +271,91 @@ class CNLiveVitaeWorkCell: UITableViewCell{ |
| 259 | 271 | fatalError("init(coder:) has not been implemented") |
| 260 | 272 | } |
| 261 | 273 | |
| 274 | + //获奖 | |
| 275 | + func setupNewAwardUI(model:CNLiveVitaeAwardsModel){ | |
| 276 | + self.whiteBgView.subviews.forEach { view in | |
| 277 | + if view.tag >= 1000{ | |
| 278 | + view.removeFromSuperview() | |
| 279 | + } | |
| 280 | + } | |
| 281 | + self.workTitleLabel.text = model.title | |
| 282 | + | |
| 283 | + let startDateString = convertTimestampStringToDateString(timestampString: model.time) | |
| 284 | + self.workNameTitleLabel.text = startDateString ?? "" | |
| 285 | + | |
| 286 | + self.workPositionTitleLabel.text = model.company | |
| 287 | + | |
| 288 | + self.jianjieLabel.text = model.description//"描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述" | |
| 289 | + let lines = jianjieLabel.getRealLabelTextLines() | |
| 290 | + let height = jianjieLabel.qmui_lineHeight | |
| 291 | + if lines <= 2{ | |
| 292 | + self.expandBtn.isHidden = true | |
| 293 | + }else{ | |
| 294 | + self.expandBtn.isHidden = false | |
| 295 | + } | |
| 296 | + | |
| 297 | + if self.expandBtn.isSelected{ | |
| 298 | + //展开状态 | |
| 299 | + self.jianjieLabel.height = height*CGFloat(lines) | |
| 300 | + | |
| 301 | + }else{ | |
| 302 | + //收起状态 | |
| 303 | + if lines <= 2{ | |
| 304 | + //小于2行,按实际行数 | |
| 305 | + self.jianjieLabel.height = CGFloat(lines)*height | |
| 306 | + }else{ | |
| 307 | + //大于2行, 显示2行 | |
| 308 | + self.jianjieLabel.height = 2*height | |
| 309 | + } | |
| 310 | + } | |
| 311 | + | |
| 312 | + let imgArr = model.imgs.components(separatedBy: ",") | |
| 313 | + if imgArr.count > 0{ | |
| 314 | + for i in 0..<imgArr.count { | |
| 315 | + let imgWH:Float = Float((KSreenWidth-60-15)/3.0) | |
| 316 | + let imgGap:Float = 7.5 | |
| 317 | + let imgLeftGap:Float = 15 | |
| 318 | + let lie = i%3 | |
| 319 | + let hang = i/3 | |
| 320 | + let imgView = UIImageView(frame: CGRect(x: CGFloat(imgLeftGap+(imgGap+imgWH)*Float(lie)), y: CGFloat((imgWH+10)*Float(hang))+self.jianjieLabel.bottom+10, width: CGFloat(imgWH), height: CGFloat(imgWH))) | |
| 321 | + imgView.isUserInteractionEnabled = true | |
| 322 | + imgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imgViewTapAciton))) | |
| 323 | + imgView.tag = 1000+i | |
| 324 | + imgView.contentMode = .center | |
| 325 | + let imgUrl = imgArr[i] | |
| 326 | + imgView.clipsToBounds = true | |
| 327 | + imgView.layer.cornerRadius = 5 | |
| 328 | + self.whiteBgView.addSubview(imgView) | |
| 329 | + | |
| 330 | + if imgUrl.contains("vitae_video_"){ | |
| 331 | + //是视频 | |
| 332 | + let thumbailImgUrl = "http://wjjtest.ys2.cnliveimg.com/802/mateCode/img/vitae_photo_0/2024/08/02/3977195366.jpg" | |
| 333 | + let vm = HeroBrowserVideoViewModule(thumbailImgUrl: thumbailImgUrl, videoUrl: imgUrl, provider: HeroNetworkImageProvider.shared, autoPlay: true) | |
| 334 | + self.images.append(vm) | |
| 335 | + imgView.kf.setImage(with: URL(string: thumbailImgUrl),placeholder: UIImage(color: UIColor.lightGray, size: imgView.size)) | |
| 336 | + | |
| 337 | + let playBtn = UIButton(type: .custom) | |
| 338 | + playBtn.frame = imgView.bounds | |
| 339 | + playBtn.setImage(UIImage(named: "short_video_play"), for: .normal) | |
| 340 | + playBtn.addTarget(self, action: #selector(playBtnAction(btn:)), for: .touchUpInside) | |
| 341 | + playBtn.clipsToBounds = true | |
| 342 | + playBtn.layer.cornerRadius = 5 | |
| 343 | + playBtn.tag = 1000+i | |
| 344 | + imgView.addSubview(playBtn) | |
| 345 | + }else if imgUrl.contains("vitae_photo_"){ | |
| 346 | + //是图片 | |
| 347 | + self.images.append(HeroBrowserNetworkImageViewModule(thumbailImgUrl: nil, originImgUrl: imgUrl)) | |
| 348 | + imgView.kf.setImage(with: URL(string: imgUrl)) | |
| 349 | + }else{ | |
| 350 | + //默认图片 | |
| 351 | + self.images.append(HeroBrowserNetworkImageViewModule(thumbailImgUrl: nil, originImgUrl: imgUrl)) | |
| 352 | + imgView.kf.setImage(with: URL(string: imgUrl)) | |
| 353 | + } | |
| 354 | + } | |
| 355 | + } | |
| 356 | + self.workDingWeiTitleLabel.isHidden = true | |
| 357 | + } | |
| 358 | + //工作 | |
| 262 | 359 | func setupNewUI(model:CNLiveVitaeWorksModel){ |
| 263 | 360 | self.whiteBgView.subviews.forEach { view in |
| 264 | 361 | if view.tag >= 1000{ |
| ... | ... | @@ -392,12 +489,28 @@ class CNLiveVitaeWorkCell: UITableViewCell{ |
| 392 | 489 | } |
| 393 | 490 | @objc func editBtnAction(){ |
| 394 | 491 | let vc = CNLiveVitaeAddWorkController() |
| 395 | - vc.workModel = self.workModel | |
| 492 | + if self.workModel != nil{ | |
| 493 | + vc.workModel = self.workModel | |
| 494 | + } | |
| 495 | + if self.awardModel != nil{ | |
| 496 | + vc.awardModel = self.awardModel | |
| 497 | + } | |
| 396 | 498 | navigationViewController().pushViewController(vc, animated: true) |
| 397 | 499 | } |
| 398 | 500 | @objc func deleteBtnAction(){ |
| 399 | - | |
| 400 | - CNLiveVitaeViewModel.deleteVitae(id: self.workModel?.id ?? "", vsid: self.workModel?.vsid ?? "", type: "4") { result, status in | |
| 501 | + var type = "4" | |
| 502 | + var id = "" | |
| 503 | + var vsid = "" | |
| 504 | + if self.workModel != nil{ | |
| 505 | + type = "4" | |
| 506 | + id = self.workModel?.id ?? "" | |
| 507 | + vsid = self.workModel?.vsid ?? "" | |
| 508 | + }else{ | |
| 509 | + type = "5" | |
| 510 | + id = self.awardModel?.id ?? "" | |
| 511 | + vsid = self.workModel?.vsid ?? "" | |
| 512 | + } | |
| 513 | + CNLiveVitaeViewModel.deleteVitae(id: id, vsid: vsid, type: type) { result, status in | |
| 401 | 514 | if status == .success{ |
| 402 | 515 | showMessage(message: "删除成功") |
| 403 | 516 | self.vitaeWorkListBlock?() | ... | ... |
metaCode/Classes/Main/HomePage/ViewModel/Vitae/CNLiveVitaeViewModel.swift
| ... | ... | @@ -376,6 +376,105 @@ class CNLiveVitaeViewModel:NSObject{ |
| 376 | 376 | |
| 377 | 377 | } |
| 378 | 378 | |
| 379 | + /* | |
| 380 | + 保存简历-获奖情况(新增获奖情况) | |
| 381 | + 参数 vsid 实名对象id | |
| 382 | + */ | |
| 383 | + static func saveAward(company:String,description:String,time:String,title:String,imgs:String,vsid:String,vitaeId:String,id:String,resultBlock: @escaping downSlideResultBlock) { | |
| 384 | + let values = NSMutableDictionary() | |
| 385 | + values.addEntries(from: ["company":company]) | |
| 386 | + values.addEntries(from: ["description":description]) | |
| 387 | + values.addEntries(from: ["time":time]) | |
| 388 | + values.addEntries(from: ["title":title]) | |
| 389 | + values.addEntries(from: ["imgs":imgs]) | |
| 390 | + values.addEntries(from: ["vsid":vsid]) | |
| 391 | + values.addEntries(from: ["vitaeId":vitaeId]) | |
| 392 | + if id.count > 0{ | |
| 393 | + values.addEntries(from: ["id":id]) | |
| 394 | + } | |
| 395 | + do { | |
| 396 | + let request = URLRequest.init(url: URL.init(string: APPBaseMCUrl+"/userApi/saveVitaeAwards")!) as! NSMutableURLRequest | |
| 397 | + request.httpMethod = "POST" | |
| 398 | + request.timeoutInterval = 10 | |
| 399 | + request.setValue("application/json", forHTTPHeaderField: "Content-Type") | |
| 400 | + let data = try JSONSerialization.data(withJSONObject: values, options: .prettyPrinted) | |
| 401 | + request.httpBody = data | |
| 402 | + showLoading(message: "") | |
| 403 | + let custom_param = NSMutableDictionary() | |
| 404 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | |
| 405 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | |
| 406 | + | |
| 407 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | |
| 408 | + CNLiveNetworking.setAllowRequestDefaultArgument(false) | |
| 409 | + CNLiveNetworking.setupShowDataResult(false) | |
| 410 | + CNLiveNetworking.setBuildCustomUrlRequest(request as URLRequest) { task, result, error in | |
| 411 | + hiddenLoading() | |
| 412 | + if (error == nil) { | |
| 413 | + let resp = result as! NSDictionary | |
| 414 | + let errorCode = "\(resp["errorCode"] ?? "0")" | |
| 415 | + if (errorCode == "0") { | |
| 416 | + resultBlock(true,.success) | |
| 417 | + } else { | |
| 418 | + showMessage(message: resp["errorMessage"] as! String) | |
| 419 | + resultBlock(NSNull(),.failed) | |
| 420 | + } | |
| 421 | + } else { | |
| 422 | + if CNLiveNetworking.isNetworking() { | |
| 423 | + showMessage(message: "上传失败") | |
| 424 | + resultBlock(NSNull(),.failed) | |
| 425 | + } else { | |
| 426 | + showMessage(message: "似乎与网络断开链接") | |
| 427 | + resultBlock(NSNull(),.noNetwork) | |
| 428 | + } | |
| 429 | + } | |
| 430 | + } | |
| 431 | + } catch { | |
| 432 | + showMessage(message: "上传失败") | |
| 433 | + resultBlock(NSNull(),.failed) | |
| 434 | + } | |
| 435 | + | |
| 436 | + } | |
| 437 | + /* | |
| 438 | + 获取获奖情况列表 | |
| 439 | + 参数 vsid 实名对象id | |
| 440 | + 参数 type 1简历信息 2官方认证 3证书 4工作经历 5获奖情况 | |
| 441 | + */ | |
| 442 | + static func getAwardList(vsid:String,resultBlock: @escaping downSlideResultBlock) { | |
| 443 | + let param = NSMutableDictionary() | |
| 444 | + param.setValue(vsid, forKey: "vsid") | |
| 445 | + param.setValue("5", forKey: "type") | |
| 446 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | |
| 447 | + CNLiveNetworking.setupShowDataResult(false) | |
| 448 | + CNLiveNetworking.setupDSRequest(true) | |
| 449 | + let custom_param = NSMutableDictionary() | |
| 450 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | |
| 451 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | |
| 452 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | |
| 453 | + | |
| 454 | + CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseMCUrl+"/userApi/getVitae", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in | |
| 455 | + hiddenLoading() | |
| 456 | + if (error == nil) { | |
| 457 | + let resp = result as! NSDictionary | |
| 458 | + if resp["errorCode"] as! Int == 0{ | |
| 459 | + let dataArr = resp["data"] as! Array<[String : Any]> | |
| 460 | + var worksArr = Array<CNLiveVitaeAwardsModel>() | |
| 461 | + for (_,dic) in dataArr.enumerated() { | |
| 462 | + let model = newDictionaryToModel(dic, CNLiveVitaeAwardsModel.self) as! CNLiveVitaeAwardsModel | |
| 463 | + worksArr.append(model) | |
| 464 | + } | |
| 465 | + resultBlock(worksArr,.success) | |
| 466 | + }else{ | |
| 467 | + resultBlock(NSNull(),.failed) | |
| 468 | + } | |
| 469 | + }else{ | |
| 470 | + resultBlock(NSNull(),.failed) | |
| 471 | + } | |
| 472 | + } | |
| 473 | + | |
| 474 | + | |
| 475 | + } | |
| 476 | + | |
| 477 | + | |
| 379 | 478 | } |
| 380 | 479 | |
| 381 | 480 | ... | ... |
metaCode/Classes/Main/Model/Vitae/CNLiveViateWorkModelLayout.swift
| ... | ... | @@ -57,3 +57,48 @@ class CNLiveViateWorkModelLayout:NSObject{ |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | } |
| 60 | + | |
| 61 | + | |
| 62 | +//获奖 | |
| 63 | +class CNLiveViateAwardModelLayout:NSObject{ | |
| 64 | + | |
| 65 | + ///cell高度 | |
| 66 | + var cellH:CGFloat = 0.0 | |
| 67 | +// var descH:Float = 40.0 | |
| 68 | + | |
| 69 | + var _awardModel : CNLiveVitaeAwardsModel? | |
| 70 | + var awardModel : CNLiveVitaeAwardsModel? { | |
| 71 | + get{ | |
| 72 | + _awardModel | |
| 73 | + } | |
| 74 | + set{ | |
| 75 | + _awardModel = newValue | |
| 76 | + } | |
| 77 | + } | |
| 78 | + | |
| 79 | + init(model:CNLiveVitaeAwardsModel,descH:Float){ | |
| 80 | + super.init() | |
| 81 | + self.awardModel = model | |
| 82 | + let imgArr = model.imgs.components(separatedBy: ",") | |
| 83 | + var hang:Float = 1 | |
| 84 | + if imgArr.count > 0{ | |
| 85 | + if imgArr.count <= 3{ | |
| 86 | + hang = 1 | |
| 87 | + }else if imgArr.count <= 6{ | |
| 88 | + hang = 2 | |
| 89 | + }else if imgArr.count <= 9{ | |
| 90 | + hang = 3 | |
| 91 | + }else{ | |
| 92 | + hang = 4 | |
| 93 | + } | |
| 94 | + }else{ | |
| 95 | + hang = 0 | |
| 96 | + } | |
| 97 | + let imgWH:Float = Float((KSreenWidth-60-15)/3.0+10) | |
| 98 | + _awardModel?.cellH = Float(123)+descH+Float(hang*imgWH)+55 | |
| 99 | + } | |
| 100 | + func getCellHModel()->CNLiveVitaeAwardsModel{ | |
| 101 | + return _awardModel! | |
| 102 | + } | |
| 103 | + | |
| 104 | +} | ... | ... |
metaCode/Classes/Main/Model/Vitae/CNLiveVitaeModel.swift
| ... | ... | @@ -137,22 +137,25 @@ class CNLiveVitaeCertificatesModel:BaseModel{ |
| 137 | 137 | |
| 138 | 138 | //简历奖模块 |
| 139 | 139 | class CNLiveVitaeAwardsModel:BaseModel{ |
| 140 | - /// | |
| 141 | - var id: Int = 0 | |
| 142 | - /// | |
| 140 | + ///获奖id | |
| 141 | + var id:String = "" | |
| 142 | + ///实名sid | |
| 143 | 143 | var vsid:String = "" |
| 144 | - /// | |
| 144 | + ///简历id | |
| 145 | 145 | var vitaeId:String = "" |
| 146 | - /// | |
| 146 | + ///获奖名称 | |
| 147 | 147 | var title:String = "" |
| 148 | - /// | |
| 148 | + ///获奖时间-时间戳 | |
| 149 | 149 | var time:String = "" |
| 150 | - /// | |
| 151 | - var company:Int = 0 | |
| 152 | - /// | |
| 150 | + ///获奖单位 | |
| 151 | + var company:String = "" | |
| 152 | + ///获奖经历描述 | |
| 153 | 153 | var description:String = "" |
| 154 | - /// | |
| 154 | + ///图片和视频 str,分隔 | |
| 155 | 155 | var imgs:String = "" |
| 156 | + | |
| 157 | + ///cell高度 | |
| 158 | + var cellH: Float = 0 | |
| 156 | 159 | } |
| 157 | 160 | /** |
| 158 | 161 | "data": { | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_awardBg.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_awardBg@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_awardBg@3x.png", | |
| 14 | + "idiom" : "universal", | |
| 15 | + "scale" : "3x" | |
| 16 | + } | |
| 17 | + ], | |
| 18 | + "info" : { | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | + } | |
| 22 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_awardBg.imageset/mine_jianli_awardBg@2x.png
0 → 100644
320 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_awardBg.imageset/mine_jianli_awardBg@3x.png
0 → 100644
847 KB