Commit c3a66192c4e5738a3949921b8cbf28e6046e83d9

Authored by “张旭”
1 parent 3099124a

获奖情况列表页面 , 新增获奖情况页面 , 数字简历页面获奖数据同步

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