Commit 4ed6e7a7dc766754c90c492010b3ff594eb18404
1 parent
75b5e01a
短剧,课程 详情页添加分页请求
Showing
9 changed files
with
202 additions
and
65 deletions
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideDetailViewController.swift
| @@ -3,8 +3,8 @@ | @@ -3,8 +3,8 @@ | ||
| 3 | // metaCode | 3 | // metaCode |
| 4 | // | 4 | // |
| 5 | // Created by zx on 2023/10/16. | 5 | // Created by zx on 2023/10/16. |
| 6 | -// 认证-下滑页原生页--课程 大图点击详情页 | ||
| 7 | -// 首页原生页--短剧 大图点击详情页 | 6 | +// 认证-下滑页原生页--课程 大图课程详情页/全部课程详情页 |
| 7 | +// 首页原生页--短剧 大图详情页 | ||
| 8 | 8 | ||
| 9 | import Foundation | 9 | import Foundation |
| 10 | import MJRefresh | 10 | import MJRefresh |
| @@ -91,35 +91,38 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -91,35 +91,38 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 91 | override func viewDidLoad() { | 91 | override func viewDidLoad() { |
| 92 | super.viewDidLoad() | 92 | super.viewDidLoad() |
| 93 | setupUI() | 93 | setupUI() |
| 94 | - getImageFromCell() | ||
| 95 | - if self.cellType == .playlet{ | 94 | +// getImageFromCell() |
| 95 | +// if self.cellType == .playlet{ | ||
| 96 | self.getBlockContents(page: 1) | 96 | self.getBlockContents(page: 1) |
| 97 | - } | 97 | +// } |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | private func setupUI() { | 100 | private func setupUI() { |
| 101 | self.view.layer.masksToBounds = true | 101 | self.view.layer.masksToBounds = true |
| 102 | + self.view.addSubview(self.tableView) | ||
| 103 | + self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) | ||
| 104 | + | ||
| 102 | if self.cellType == .playlet{//短剧 大图 | 105 | if self.cellType == .playlet{//短剧 大图 |
| 103 | - self.view.addSubview(self.tableView) | ||
| 104 | - self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) | ||
| 105 | - }else{//课程 大图 | ||
| 106 | - view.addSubview(scrollView) | ||
| 107 | - scrollView.slideModel = _slideModel | 106 | +// self.view.addSubview(self.tableView) |
| 107 | +// self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) | ||
| 108 | + }else if self.cellType == .course{//课程 大图 | ||
| 109 | + if self.slideModel!.type == SlideModelTypeAllCourse12{ | ||
| 110 | + //全部课程 | ||
| 111 | + | ||
| 112 | + }else if self.slideModel!.type == SlideModelTypeOneCourse75{ | ||
| 113 | + //大图课程 | ||
| 114 | + | ||
| 115 | + } | ||
| 116 | +// view.addSubview(scrollView) | ||
| 117 | +// scrollView.slideModel = _slideModel | ||
| 118 | + }else if self.cellType == .playletToCourse{ | ||
| 119 | + //首页->课程 | ||
| 120 | + | ||
| 108 | } | 121 | } |
| 109 | view.addSubview(closeBtn) | 122 | view.addSubview(closeBtn) |
| 110 | view.addGestureRecognizer(dismissPanGesture) | 123 | view.addGestureRecognizer(dismissPanGesture) |
| 111 | - | ||
| 112 | - if #available(iOS 11.0, *) { | ||
| 113 | - scrollView.contentInsetAdjustmentBehavior = .never | ||
| 114 | - } else { | ||
| 115 | - automaticallyAdjustsScrollViewInsets = false | ||
| 116 | - } | ||
| 117 | - } | ||
| 118 | - | ||
| 119 | - private func getImageFromCell() { | ||
| 120 | - scrollView.imageView.image = cell.bgImageView.image | ||
| 121 | } | 124 | } |
| 122 | - | 125 | + |
| 123 | @objc private func closeAction() { | 126 | @objc private func closeAction() { |
| 124 | dismiss(animated: true, completion: nil) | 127 | dismiss(animated: true, completion: nil) |
| 125 | let nav = self.navigationController as! CNSlideBaseNavigationController | 128 | let nav = self.navigationController as! CNSlideBaseNavigationController |
| @@ -162,12 +165,9 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -162,12 +165,9 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 162 | 165 | ||
| 163 | switch gesture.state { | 166 | switch gesture.state { |
| 164 | case .began,.changed: | 167 | case .began,.changed: |
| 165 | - scrollView.isScrollEnabled = false | ||
| 166 | gesture.view?.transform = CGAffineTransform(scaleX: currentScale, y: currentScale) | 168 | gesture.view?.transform = CGAffineTransform(scaleX: currentScale, y: currentScale) |
| 167 | gesture.view?.layer.cornerRadius = GlobalConstants.toDayCardCornerRadius * (progress) | 169 | gesture.view?.layer.cornerRadius = GlobalConstants.toDayCardCornerRadius * (progress) |
| 168 | - scrollView.showsVerticalScrollIndicator = false | ||
| 169 | case .cancelled,.ended: | 170 | case .cancelled,.ended: |
| 170 | - scrollView.isScrollEnabled = true | ||
| 171 | stopDismissPanGesture(gesture) | 171 | stopDismissPanGesture(gesture) |
| 172 | default: | 172 | default: |
| 173 | break | 173 | break |
| @@ -178,18 +178,18 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -178,18 +178,18 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 178 | private func stopDismissPanGesture(_ gesture: UIPanGestureRecognizer) { | 178 | private func stopDismissPanGesture(_ gesture: UIPanGestureRecognizer) { |
| 179 | draggingDownToDismiss = false | 179 | draggingDownToDismiss = false |
| 180 | interactiveStartingPoint = nil | 180 | interactiveStartingPoint = nil |
| 181 | - scrollView.showsVerticalScrollIndicator = true | ||
| 182 | 181 | ||
| 183 | UIView.animate(withDuration: 0.2) { | 182 | UIView.animate(withDuration: 0.2) { |
| 184 | gesture.view?.transform = CGAffineTransform.identity | 183 | gesture.view?.transform = CGAffineTransform.identity |
| 185 | } | 184 | } |
| 186 | } | 185 | } |
| 187 | 186 | ||
| 188 | - // MARK: - 短剧cell列表详情页 | 187 | + // MARK: - 列表详情页 |
| 188 | + let kCNLiveCourseTitleCellIdentifier = "kCNLiveCourseTitleCellIdentifier" | ||
| 189 | let kCNLiveAlbumImageCellIdentifier = "kCNLiveAlbumImageCellIdentifier" | 189 | let kCNLiveAlbumImageCellIdentifier = "kCNLiveAlbumImageCellIdentifier" |
| 190 | let kCNLiveAlbumCellIdentifier = "kCNLiveAlbumCellIdentifier" | 190 | let kCNLiveAlbumCellIdentifier = "kCNLiveAlbumCellIdentifier" |
| 191 | 191 | ||
| 192 | - var pageNum: NSInteger | 192 | + var pageNum: NSInteger = 1 |
| 193 | var network_type: CNLiveMineResponseType! | 193 | var network_type: CNLiveMineResponseType! |
| 194 | // MARK: - 懒加载 | 194 | // MARK: - 懒加载 |
| 195 | ///数据源 | 195 | ///数据源 |
| @@ -207,6 +207,8 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -207,6 +207,8 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 207 | tableView.tableFooterView = UIView.init() | 207 | tableView.tableFooterView = UIView.init() |
| 208 | tableView.register(CNLiveAlbumCell.self, forCellReuseIdentifier: kCNLiveAlbumCellIdentifier) | 208 | tableView.register(CNLiveAlbumCell.self, forCellReuseIdentifier: kCNLiveAlbumCellIdentifier) |
| 209 | tableView.register(CNLiveAlbumImageCell.self, forCellReuseIdentifier: kCNLiveAlbumImageCellIdentifier) | 209 | tableView.register(CNLiveAlbumImageCell.self, forCellReuseIdentifier: kCNLiveAlbumImageCellIdentifier) |
| 210 | + tableView.register(CNLiveDuanjuTitleCell.self, forCellReuseIdentifier: kCNLiveCourseTitleCellIdentifier) | ||
| 211 | + | ||
| 210 | return tableView | 212 | return tableView |
| 211 | }() | 213 | }() |
| 212 | 214 | ||
| @@ -225,14 +227,43 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -225,14 +227,43 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 225 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | 227 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| 226 | 228 | ||
| 227 | if indexPath.section == 0{ | 229 | if indexPath.section == 0{ |
| 228 | - guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumImageCellIdentifier) as? CNLiveAlbumImageCell | ||
| 229 | - else { | ||
| 230 | - let cell = CNLiveAlbumImageCell() | 230 | + if self.cellType == .playlet{ |
| 231 | + //短剧大图 | ||
| 232 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumImageCellIdentifier) as? CNLiveAlbumImageCell | ||
| 233 | + else { | ||
| 234 | + let cell = CNLiveAlbumImageCell() | ||
| 235 | + return cell | ||
| 236 | + } | ||
| 237 | + cell.iconImgView.image = self.cell.bgImageView.image | ||
| 231 | return cell | 238 | return cell |
| 239 | + }else if self.cellType == .course || self.cellType == .playletToCourse{ | ||
| 240 | + | ||
| 241 | + if self.slideModel?.type == SlideModelTypeAllCourse12{ | ||
| 242 | + //全部课程 | ||
| 243 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveCourseTitleCellIdentifier) as? CNLiveDuanjuTitleCell | ||
| 244 | + else { | ||
| 245 | + let cell = CNLiveDuanjuTitleCell() | ||
| 246 | + return cell | ||
| 247 | + } | ||
| 248 | + cell.cellType = .course | ||
| 249 | + cell.blockName = self.slideModel?.blockName | ||
| 250 | + return cell | ||
| 251 | + | ||
| 252 | + }else if self.slideModel?.type == SlideModelTypeOneCourse75{ | ||
| 253 | + //大图课程 | ||
| 254 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumImageCellIdentifier) as? CNLiveAlbumImageCell | ||
| 255 | + else { | ||
| 256 | + let cell = CNLiveAlbumImageCell() | ||
| 257 | + return cell | ||
| 258 | + } | ||
| 259 | + cell.iconImgView.image = self.cell.bgImageView.image | ||
| 260 | + return cell | ||
| 261 | + | ||
| 262 | + } | ||
| 232 | } | 263 | } |
| 233 | - cell.iconImgView.image = self.cell.bgImageView.image | ||
| 234 | - return cell | 264 | + |
| 235 | }else{ | 265 | }else{ |
| 266 | + //列表cell | ||
| 236 | let albumModel = self.dataArray[indexPath.row] as! CNLiveAlbumModel | 267 | let albumModel = self.dataArray[indexPath.row] as! CNLiveAlbumModel |
| 237 | 268 | ||
| 238 | guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumCellIdentifier) as? CNLiveAlbumCell | 269 | guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumCellIdentifier) as? CNLiveAlbumCell |
| @@ -241,42 +272,60 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -241,42 +272,60 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 241 | return cell | 272 | return cell |
| 242 | } | 273 | } |
| 243 | cell.albumModel = albumModel | 274 | cell.albumModel = albumModel |
| 275 | + cell.enterBlock = { albumModel in | ||
| 276 | + CNLiveDownSlideTool.pushWebVCWithCNLiveAlbumMdl(albumModel: albumModel,controller: self) | ||
| 277 | + } | ||
| 244 | return cell | 278 | return cell |
| 245 | } | 279 | } |
| 280 | + return UITableViewCell() | ||
| 246 | } | 281 | } |
| 247 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | 282 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| 248 | if indexPath.section == 0{ | 283 | if indexPath.section == 0{ |
| 249 | - return KSreenWidth | 284 | + if self.cellType == .playlet{ |
| 285 | + //短剧大图 | ||
| 286 | + return KSreenWidth | ||
| 287 | + }else if self.cellType == .course || self.cellType == .playletToCourse{ | ||
| 288 | + if self.slideModel?.type == SlideModelTypeAllCourse12{ | ||
| 289 | + //全部课程 | ||
| 290 | + return 75 | ||
| 291 | + }else if self.slideModel?.type == SlideModelTypeOneCourse75{ | ||
| 292 | + //大图课程 | ||
| 293 | + return KSreenWidth | ||
| 294 | + } | ||
| 295 | + } | ||
| 250 | }else{ | 296 | }else{ |
| 251 | return 75 | 297 | return 75 |
| 252 | } | 298 | } |
| 299 | + return 75 | ||
| 253 | } | 300 | } |
| 254 | 301 | ||
| 255 | - // MARK: - 获取全部专辑列表 | 302 | + // MARK: - 在追短剧--获取全部专辑列表 |
| 256 | func getBlockContents(page:NSInteger){ | 303 | func getBlockContents(page:NSInteger){ |
| 257 | showLoading(message: "") | 304 | showLoading(message: "") |
| 258 | CNLiveHomePageViewModel.getBlockContents(blockId: self.slideModel!.blockId ?? "", page: page) {[weak self] result, status in | 305 | CNLiveHomePageViewModel.getBlockContents(blockId: self.slideModel!.blockId ?? "", page: page) {[weak self] result, status in |
| 259 | hiddenLoading() | 306 | hiddenLoading() |
| 260 | if status == .success{ | 307 | if status == .success{ |
| 261 | - if self!.pageNum > 1 { | ||
| 262 | - self!.dataArray.addObjects(from: result as! [CNLiveAlbumModel]) | 308 | + let albumBaseModel = result as! CNLiveAlbumBaseModel |
| 309 | + if self!.pageNum > 1 && albumBaseModel.list.count > 0 { | ||
| 310 | + self!.dataArray.addObjects(from: albumBaseModel.list) | ||
| 263 | } | 311 | } |
| 264 | if self!.pageNum == 1 { | 312 | if self!.pageNum == 1 { |
| 265 | self!.dataArray.removeAllObjects() | 313 | self!.dataArray.removeAllObjects() |
| 266 | - self!.dataArray.addObjects(from: result as! [CNLiveAlbumModel]) | 314 | + self!.dataArray.addObjects(from: albumBaseModel.list) |
| 267 | if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil { | 315 | if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil { |
| 268 | self!.addRefreshView() | 316 | self!.addRefreshView() |
| 269 | - self!.pageNum = self!.pageNum + 1 | ||
| 270 | - self!.getBlockContents(page: self!.pageNum) | 317 | +// self!.pageNum = self!.pageNum + 1 |
| 318 | +// self!.getBlockContents(page: self!.pageNum) | ||
| 271 | } | 319 | } |
| 272 | } | 320 | } |
| 273 | 321 | ||
| 274 | self!.tableView.mj_header?.endRefreshing() | 322 | self!.tableView.mj_header?.endRefreshing() |
| 275 | - self!.tableView.mj_footer?.endRefreshing() | 323 | + |
| 276 | self!.tableView.reloadData() | 324 | self!.tableView.reloadData() |
| 277 | - if (result as! Array<Any>).count == 0 { | 325 | + if albumBaseModel.hasNextPage{ |
| 326 | + self!.tableView.mj_footer?.endRefreshing() | ||
| 327 | + }else{ | ||
| 278 | self!.tableView.mj_footer?.endRefreshingWithNoMoreData() | 328 | self!.tableView.mj_footer?.endRefreshingWithNoMoreData() |
| 279 | - self!.tableView.reloadData() | ||
| 280 | } | 329 | } |
| 281 | 330 | ||
| 282 | }else if (status == .noNetwork) { | 331 | }else if (status == .noNetwork) { |
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideViewController.swift
| @@ -187,7 +187,6 @@ class CNUpSlideViewController: CNLiveBaseViewController,UITableViewDelegate,UITa | @@ -187,7 +187,6 @@ class CNUpSlideViewController: CNLiveBaseViewController,UITableViewDelegate,UITa | ||
| 187 | StrongSelf.updateStatusBarAndTabbarFrame(visible: true) | 187 | StrongSelf.updateStatusBarAndTabbarFrame(visible: true) |
| 188 | } | 188 | } |
| 189 | updateStatusBarAndTabbarFrame(visible: false) | 189 | updateStatusBarAndTabbarFrame(visible: false) |
| 190 | - | ||
| 191 | present(detailVC, animated: true, completion: nil) | 190 | present(detailVC, animated: true, completion: nil) |
| 192 | }else if slideModel.type == SlideModelTypeOneCourse75{ | 191 | }else if slideModel.type == SlideModelTypeOneCourse75{ |
| 193 | guard let cell = tableView.cellForRow(at: indexPath) as? CNDownSlideSingleCourseCell else { return } | 192 | guard let cell = tableView.cellForRow(at: indexPath) as? CNDownSlideSingleCourseCell else { return } |
metaCode/Classes/Main/HomePages/Controller/AuthController/push相关/CNHomepageDuanJuDetailViewController.swift
| @@ -121,6 +121,8 @@ class CNHomepageDuanJuDetailViewController: CNLiveBaseViewController ,UITableVi | @@ -121,6 +121,8 @@ class CNHomepageDuanJuDetailViewController: CNLiveBaseViewController ,UITableVi | ||
| 121 | let cell = CNLiveDuanjuTitleCell() | 121 | let cell = CNLiveDuanjuTitleCell() |
| 122 | return cell | 122 | return cell |
| 123 | } | 123 | } |
| 124 | + cell.cellType = .playlet | ||
| 125 | + cell.blockName = "在追短剧" | ||
| 124 | return cell | 126 | return cell |
| 125 | }else{ | 127 | }else{ |
| 126 | let albumModel = self.dataArray[indexPath.row] as! CNLiveAlbumMsgModel | 128 | let albumModel = self.dataArray[indexPath.row] as! CNLiveAlbumMsgModel |
metaCode/Classes/Main/HomePages/Model/CNLiveAlbumModel.swift
| @@ -7,6 +7,28 @@ | @@ -7,6 +7,28 @@ | ||
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | 9 | ||
| 10 | +class CNLiveAlbumBaseModel:BaseModel{ | ||
| 11 | + var endRow = 0 | ||
| 12 | + var firstPage = 0 | ||
| 13 | + var hasNextPage = false | ||
| 14 | + var nextPage = 0 | ||
| 15 | + var hasPreviousPage = false | ||
| 16 | + var isFirstPage = true | ||
| 17 | + var isLastPage = true | ||
| 18 | + var lastPage = 0 | ||
| 19 | + var list = [CNLiveAlbumModel]() | ||
| 20 | + var navigateFirstPage = 0 | ||
| 21 | + var navigateLastPage = 0 | ||
| 22 | + var navigatePages = 0 | ||
| 23 | + var navigatepageNums:Array<Any> = [] | ||
| 24 | + var pageNum = 0 | ||
| 25 | + var pageSize = 0 | ||
| 26 | + var pages = 0 | ||
| 27 | + var prePage = 0 | ||
| 28 | + var size = 0 | ||
| 29 | + var startRow = 0 | ||
| 30 | + var total = 0 | ||
| 31 | +} | ||
| 10 | class CNLiveAlbumModel:BaseModel{ | 32 | class CNLiveAlbumModel:BaseModel{ |
| 11 | var title = "" | 33 | var title = "" |
| 12 | var subTitle = "" | 34 | var subTitle = "" |
metaCode/Classes/Main/HomePages/Model/CNLiveHomePageModel.swift
| @@ -11,6 +11,7 @@ class CNLiveHomePageModel:BaseModel{ | @@ -11,6 +11,7 @@ class CNLiveHomePageModel:BaseModel{ | ||
| 11 | var endRow = 0 | 11 | var endRow = 0 |
| 12 | var firstPage = 0 | 12 | var firstPage = 0 |
| 13 | var hasNextPage = false | 13 | var hasNextPage = false |
| 14 | + var nextPage = 0 | ||
| 14 | var hasPreviousPage = false | 15 | var hasPreviousPage = false |
| 15 | var isFirstPage = true | 16 | var isFirstPage = true |
| 16 | var isLastPage = true | 17 | var isLastPage = true |
| @@ -20,7 +21,6 @@ class CNLiveHomePageModel:BaseModel{ | @@ -20,7 +21,6 @@ class CNLiveHomePageModel:BaseModel{ | ||
| 20 | var navigateLastPage = 0 | 21 | var navigateLastPage = 0 |
| 21 | var navigatePages = 0 | 22 | var navigatePages = 0 |
| 22 | var navigatepageNums:Array<Any> = [] | 23 | var navigatepageNums:Array<Any> = [] |
| 23 | - var nextPage = 0 | ||
| 24 | var pageNum = 0 | 24 | var pageNum = 0 |
| 25 | var pageSize = 0 | 25 | var pageSize = 0 |
| 26 | var pages = 0 | 26 | var pages = 0 |
metaCode/Classes/Main/HomePages/View/HomepageDetail/CNLiveAlbumCell.swift
| @@ -7,11 +7,16 @@ | @@ -7,11 +7,16 @@ | ||
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | import QMUIKit | 9 | import QMUIKit |
| 10 | + | ||
| 11 | +typealias CNLiveAlbumCellEnterBlock = (_ albumModel:CNLiveAlbumModel)->Void; | ||
| 12 | + | ||
| 10 | class CNLiveAlbumCell:UITableViewCell{ | 13 | class CNLiveAlbumCell:UITableViewCell{ |
| 11 | 14 | ||
| 15 | + var enterBlock:CNLiveAlbumCellEnterBlock? | ||
| 12 | var albumModelArr:Array<CNLiveAlbumListModel>? | 16 | var albumModelArr:Array<CNLiveAlbumListModel>? |
| 13 | 17 | ||
| 14 | var isDetail:Bool = false | 18 | var isDetail:Bool = false |
| 19 | + var cellType:CNLiveHomePageCellType = .course | ||
| 15 | 20 | ||
| 16 | var _albumMsgModel : CNLiveAlbumMsgModel? | 21 | var _albumMsgModel : CNLiveAlbumMsgModel? |
| 17 | var albumMsgModel : CNLiveAlbumMsgModel? { | 22 | var albumMsgModel : CNLiveAlbumMsgModel? { |
| @@ -88,7 +93,15 @@ class CNLiveAlbumCell:UITableViewCell{ | @@ -88,7 +93,15 @@ class CNLiveAlbumCell:UITableViewCell{ | ||
| 88 | fatalError("init(coder:) has not been implemented") | 93 | fatalError("init(coder:) has not been implemented") |
| 89 | } | 94 | } |
| 90 | func setupNewUI(model:CNLiveAlbumModel){ | 95 | func setupNewUI(model:CNLiveAlbumModel){ |
| 91 | - | 96 | + if model.model == "1" || model.model == "2" || model.model == "3" || model.model == "4"{ |
| 97 | + //课程-跳转h5网页 | ||
| 98 | + self.cellType = .course | ||
| 99 | + self.playBtn.setTitle("进入", for: .normal) | ||
| 100 | + }else if model.model == "album_ugc"{ | ||
| 101 | + //短剧-跳转短剧播放页 | ||
| 102 | + self.cellType = .playlet | ||
| 103 | + self.playBtn.setTitle("播放", for: .normal) | ||
| 104 | + } | ||
| 92 | self.titleLabl.text = model.title | 105 | self.titleLabl.text = model.title |
| 93 | self.subTitleLabel.text = model.subTitle | 106 | self.subTitleLabel.text = model.subTitle |
| 94 | self.iconImgView.kf.setImage(with: URL(string: model.poster)) | 107 | self.iconImgView.kf.setImage(with: URL(string: model.poster)) |
| @@ -109,7 +122,6 @@ class CNLiveAlbumCell:UITableViewCell{ | @@ -109,7 +122,6 @@ class CNLiveAlbumCell:UITableViewCell{ | ||
| 109 | } | 122 | } |
| 110 | } | 123 | } |
| 111 | @objc func playBtnAction(){ | 124 | @objc func playBtnAction(){ |
| 112 | - showLoading(message: "") | ||
| 113 | var aid = "" | 125 | var aid = "" |
| 114 | if self.albumModel != nil{ | 126 | if self.albumModel != nil{ |
| 115 | aid = self.albumModel!.contentId | 127 | aid = self.albumModel!.contentId |
| @@ -118,6 +130,19 @@ class CNLiveAlbumCell:UITableViewCell{ | @@ -118,6 +130,19 @@ class CNLiveAlbumCell:UITableViewCell{ | ||
| 118 | }else{ | 130 | }else{ |
| 119 | aid = "" | 131 | aid = "" |
| 120 | } | 132 | } |
| 121 | - navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid), animated: pushAnimated) | 133 | + if (self.albumModel != nil){ |
| 134 | + if (self.albumModel?.model == "1" || self.albumModel?.model == "2" || self.albumModel?.model == "3" || self.albumModel?.model == "4"){ | ||
| 135 | + //课程-跳转h5网页 | ||
| 136 | + self.enterBlock!(self.albumModel!) | ||
| 137 | + }else if self.albumModel?.model == "album_ugc"{ | ||
| 138 | + //短剧-跳转短剧播放页 | ||
| 139 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid), animated: pushAnimated) | ||
| 140 | + } | ||
| 141 | + }else if (self.albumMsgModel != nil){ | ||
| 142 | + //短剧-跳转短剧播放页 | ||
| 143 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid), animated: pushAnimated) | ||
| 144 | + | ||
| 145 | + } | ||
| 146 | + | ||
| 122 | } | 147 | } |
| 123 | } | 148 | } |
metaCode/Classes/Main/HomePages/View/HomepageDetail/CNLiveDuanjuTitleCell.swift
| @@ -3,12 +3,31 @@ | @@ -3,12 +3,31 @@ | ||
| 3 | // metaCode | 3 | // metaCode |
| 4 | // | 4 | // |
| 5 | // Created by zx on 2024/1/10. | 5 | // Created by zx on 2024/1/10. |
| 6 | -// 在追短剧详情页-title cell | 6 | +// 在追短剧详情页/全部课程详情页 --title cell |
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | 9 | ||
| 10 | class CNLiveDuanjuTitleCell:UITableViewCell{ | 10 | class CNLiveDuanjuTitleCell:UITableViewCell{ |
| 11 | - | 11 | + var _blockName:String? |
| 12 | + var blockName:String?{ | ||
| 13 | + get{ | ||
| 14 | + _blockName | ||
| 15 | + } | ||
| 16 | + set{ | ||
| 17 | + _blockName = newValue! | ||
| 18 | + | ||
| 19 | + if self.cellType == .course || self.cellType == .playletToCourse{ | ||
| 20 | + self.blockTitleLabl.text = _blockName ?? "全部课程" | ||
| 21 | + self.blockTitleLabl.top = KStatusBarHeight+10 | ||
| 22 | + }else if self.cellType == .playlet{ | ||
| 23 | + self.blockTitleLabl.text = _blockName ?? "在追短剧" | ||
| 24 | + self.blockTitleLabl.top = 10 | ||
| 25 | + | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + var cellType:CNLiveHomePageCellType = .course | ||
| 30 | + | ||
| 12 | //MARK: - 懒加载 | 31 | //MARK: - 懒加载 |
| 13 | ///区块标题 | 32 | ///区块标题 |
| 14 | lazy var blockTitleLabl: UILabel = { | 33 | lazy var blockTitleLabl: UILabel = { |
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
| @@ -90,7 +90,7 @@ class CNLiveHomePageViewModel:NSObject{ | @@ -90,7 +90,7 @@ class CNLiveHomePageViewModel:NSObject{ | ||
| 90 | } | 90 | } |
| 91 | } | 91 | } |
| 92 | } | 92 | } |
| 93 | - /// 获取首页-全部专辑列表 | 93 | + /// 获取首页-全部专辑列表,区块内容分页 |
| 94 | static func getBlockContents(blockId:String,page:NSInteger,resultBlock: @escaping downSlideResultBlock) { | 94 | static func getBlockContents(blockId:String,page:NSInteger,resultBlock: @escaping downSlideResultBlock) { |
| 95 | let param = NSMutableDictionary() | 95 | let param = NSMutableDictionary() |
| 96 | param.setValue(blockId, forKey: "blockId") | 96 | param.setValue(blockId, forKey: "blockId") |
| @@ -105,14 +105,8 @@ class CNLiveHomePageViewModel:NSObject{ | @@ -105,14 +105,8 @@ class CNLiveHomePageViewModel:NSObject{ | ||
| 105 | let errorCode = "\(resp["errorCode"] ?? "0")" | 105 | let errorCode = "\(resp["errorCode"] ?? "0")" |
| 106 | if (errorCode == "0") { | 106 | if (errorCode == "0") { |
| 107 | let dataDic = resp["data"] as! Dictionary<String, Any> | 107 | let dataDic = resp["data"] as! Dictionary<String, Any> |
| 108 | - let dataList = dataDic["list"] as! Array<Any> | ||
| 109 | - var listArr = Array<Any>() | ||
| 110 | - for listDic in dataList{ | ||
| 111 | - let dataMdl = newDictionaryToModel(listDic as! [String : Any], CNLiveAlbumModel.self) | ||
| 112 | - listArr.append(dataMdl) | ||
| 113 | - } | ||
| 114 | - | ||
| 115 | - resultBlock(listArr,.success) | 108 | + let dataMdl = newDictionaryToModel(dataDic , CNLiveAlbumBaseModel.self) |
| 109 | + resultBlock(dataMdl,.success) | ||
| 116 | } | 110 | } |
| 117 | else{ | 111 | else{ |
| 118 | resultBlock(NSNull(),.failed) | 112 | resultBlock(NSNull(),.failed) |
metaCode/Classes/Main/Util/CNLiveDownSlideTool.swift
| @@ -19,14 +19,11 @@ class CNLiveDownSlideTool:NSObject{ | @@ -19,14 +19,11 @@ class CNLiveDownSlideTool:NSObject{ | ||
| 19 | let regURL = urlComponents.url | 19 | let regURL = urlComponents.url |
| 20 | let webVC = CNWebViewController() | 20 | let webVC = CNWebViewController() |
| 21 | webVC.url = regURL | 21 | webVC.url = regURL |
| 22 | - navigationViewController().pushViewController(webVC, animated: pushAnimated) | ||
| 23 | -// currentViewController()?.navigationController?.pushViewController(webVC, animated: pushAnimated) | ||
| 24 | - | 22 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(webVC, animated: pushAnimated) |
| 25 | }else if (contentMdl.model == kCNDownSlideContentsModelModel3) || (contentMdl.model == kCNDownSlideContentsModelModel4){ | 23 | }else if (contentMdl.model == kCNDownSlideContentsModelModel3) || (contentMdl.model == kCNDownSlideContentsModelModel4){ |
| 26 | let webVC = CNWebViewController() | 24 | let webVC = CNWebViewController() |
| 27 | webVC.url = URL(string: (contentMdl.thirdUrl)!) | 25 | webVC.url = URL(string: (contentMdl.thirdUrl)!) |
| 28 | - navigationViewController().pushViewController(webVC, animated: pushAnimated) | ||
| 29 | -// currentViewController()?.navigationController?.pushViewController(webVC, animated: pushAnimated) | 26 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(webVC, animated: pushAnimated) |
| 30 | }else if (contentMdl.model == kCNDownSlideContentsModelModelAlbum) || (contentMdl.model == kCNDownSlideContentsModelModelAlbum_ugc) || (contentMdl.model == kCNDownSlideContentsModelModelAlbum_video){ | 27 | }else if (contentMdl.model == kCNDownSlideContentsModelModelAlbum) || (contentMdl.model == kCNDownSlideContentsModelModelAlbum_ugc) || (contentMdl.model == kCNDownSlideContentsModelModelAlbum_video){ |
| 31 | 28 | ||
| 32 | let urlString = "http://wjjh5.cnlive.com/cnYmAlbumVideoList.html" | 29 | let urlString = "http://wjjh5.cnlive.com/cnYmAlbumVideoList.html" |
| @@ -37,8 +34,38 @@ class CNLiveDownSlideTool:NSObject{ | @@ -37,8 +34,38 @@ class CNLiveDownSlideTool:NSObject{ | ||
| 37 | let regURL = urlComponents?.url | 34 | let regURL = urlComponents?.url |
| 38 | let webVC = CNWebViewController() | 35 | let webVC = CNWebViewController() |
| 39 | webVC.url = regURL | 36 | webVC.url = regURL |
| 40 | - navigationViewController().pushViewController(webVC, animated: pushAnimated) | ||
| 41 | -// currentViewController()?.navigationController?.pushViewController(webVC, animated: pushAnimated) | 37 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(webVC, animated: pushAnimated) |
| 38 | + }else{ | ||
| 39 | + return | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | + class func pushWebVCWithCNLiveAlbumMdl(albumModel:CNLiveAlbumModel,controller:UIViewController){ | ||
| 43 | + | ||
| 44 | + if (albumModel.model == kCNDownSlideContentsModelModel1) || (albumModel.model == kCNDownSlideContentsModelModel2){ | ||
| 45 | + | ||
| 46 | + let queryItem = URLQueryItem(name: "contentId", value: albumModel.contentId) | ||
| 47 | + let queryItem1 = URLQueryItem(name: "videoId", value: albumModel.pid) | ||
| 48 | + let urlComponents = NSURLComponents(string: (albumModel.shareUrl))! | ||
| 49 | + urlComponents.queryItems = [queryItem, queryItem1] | ||
| 50 | + let regURL = urlComponents.url | ||
| 51 | + let webVC = CNWebViewController() | ||
| 52 | + webVC.url = regURL | ||
| 53 | + controller.navigationController?.pushViewController(webVC, animated: pushAnimated) | ||
| 54 | + }else if (albumModel.model == kCNDownSlideContentsModelModel3) || (albumModel.model == kCNDownSlideContentsModelModel4){ | ||
| 55 | + let webVC = CNWebViewController() | ||
| 56 | + webVC.url = URL(string: (albumModel.thirdUrl)) | ||
| 57 | + controller.navigationController?.pushViewController(webVC, animated: pushAnimated) | ||
| 58 | + }else if (albumModel.model == kCNDownSlideContentsModelModelAlbum) || (albumModel.model == kCNDownSlideContentsModelModelAlbum_ugc) || (albumModel.model == kCNDownSlideContentsModelModelAlbum_video){ | ||
| 59 | + | ||
| 60 | + let urlString = "http://wjjh5.cnlive.com/cnYmAlbumVideoList.html" | ||
| 61 | + let queryItem = URLQueryItem(name: "aid", value: albumModel.contentId) | ||
| 62 | + let queryItem1 = URLQueryItem(name: "title", value: albumModel.title) | ||
| 63 | + let urlComponents = NSURLComponents(string: urlString) | ||
| 64 | + urlComponents!.queryItems = [queryItem, queryItem1] | ||
| 65 | + let regURL = urlComponents?.url | ||
| 66 | + let webVC = CNWebViewController() | ||
| 67 | + webVC.url = regURL | ||
| 68 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(webVC, animated: pushAnimated) | ||
| 42 | }else{ | 69 | }else{ |
| 43 | return | 70 | return |
| 44 | } | 71 | } |