优惠券swift版马甲包

YMListViewController.swift 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. //
  2. // YMListViewController.swift
  3. // MvpGoods
  4. //
  5. // Created by 小花 on 2019/4/17.
  6. // Copyright © 2019 MVP. All rights reserved.
  7. //
  8. import UIKit
  9. import ObjectMapper
  10. import MJRefresh
  11. class YMListViewController: YMBaseViewController {
  12. var KGoodsCell = "KGoodsCell"
  13. var page = 1
  14. var id: Int!
  15. var name: String?
  16. var collectionView: UICollectionView?
  17. var dataArr = [YMMainGoodModel]()
  18. var requestType: Int?
  19. override func viewDidLoad() {
  20. super.viewDidLoad()
  21. self.view.backgroundColor = UIColor.white
  22. self.title = name
  23. self.view.makeLoading(offY: navBarHeight)
  24. configCollectionView()
  25. loadGoodsData()
  26. }
  27. func loadGoodsData() {
  28. //为1时加载大分类下数据
  29. if self.requestType == 1 {
  30. let url = BASE_URL + "/api/v2/goods/stockTopCategoryList"
  31. let para: [String: Any] = ["page":self.page,
  32. "category_id":self.id ?? 0,
  33. "sort":1,
  34. "is_has_coupon":1,
  35. "stype":"0"]
  36. NetWorkTool.postRequest(url: url, param: para, success: { (json) in
  37. let items = json["rst"]?["data"]["list"].arrayObject
  38. for item in items ?? [] {
  39. let model = Mapper<YMMainGoodModel>().map(JSON: item as! [String : Any])
  40. self.dataArr.append(model ?? YMMainGoodModel())
  41. }
  42. self.view.dismissLoading()
  43. self.view.addSubview(self.collectionView!)
  44. self.collectionView?.reloadData()
  45. self.collectionView?.mj_footer.endRefreshing()
  46. }) { (error) in
  47. }
  48. }else {
  49. let url = BASE_URL + "/api/v2/goods/stocklistByCategoryId"
  50. let para: [String: Any] = ["page":self.page,
  51. "category_id":self.id,
  52. "sort":1,
  53. "is_has_coupon":1,
  54. "stype":"0"]
  55. NetWorkTool.postRequest(url: url, param: para, success: { (json) in
  56. let items = json["rst"]?["data"].arrayObject
  57. for item in items ?? [] {
  58. let model = Mapper<YMMainGoodModel>().map(JSON: item as! [String : Any])
  59. self.dataArr.append(model ?? YMMainGoodModel())
  60. }
  61. self.view.addSubview(self.collectionView!)
  62. self.view.dismissLoading()
  63. self.collectionView?.reloadData()
  64. self.collectionView?.mj_footer.endRefreshing()
  65. }) { (error) in
  66. self.view.dismissLoading()
  67. }
  68. }
  69. }
  70. func configCollectionView() {
  71. let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: SCREENW, height: SCREENH-navHeight), collectionViewLayout:UICollectionViewFlowLayout())
  72. collectionView.delegate = self
  73. collectionView.dataSource = self
  74. collectionView.backgroundColor = UIColor.gloadGrayColor()
  75. collectionView.showsVerticalScrollIndicator = false
  76. collectionView.register(YMMainGoodCollectionCell.self, forCellWithReuseIdentifier: KGoodsCell)
  77. self.collectionView = collectionView
  78. let footer = MJRefreshAutoNormalFooter()
  79. footer.setRefreshingTarget(self, refreshingAction: #selector(self.loadMoreData))
  80. collectionView.mj_footer = footer
  81. }
  82. @objc func loadMoreData() {
  83. self.page+=1
  84. loadGoodsData()
  85. }
  86. }
  87. extension YMListViewController: UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
  88. func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  89. return self.dataArr.count
  90. }
  91. func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
  92. let cell = collectionView.dequeueReusableCell(withReuseIdentifier: KGoodsCell, for: indexPath) as! YMMainGoodCollectionCell
  93. cell.model = self.dataArr[indexPath.row]
  94. return cell
  95. }
  96. func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
  97. return CGSize(width: SCREEN_WIDTH, height: fitSize(x: 135))
  98. }
  99. //最小 item 间距
  100. func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
  101. return 0;
  102. }
  103. //最小行间距
  104. func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
  105. return 5;
  106. }
  107. func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
  108. let detail = YMDetailViewController()
  109. detail.goodModel = self.dataArr[indexPath.row]
  110. self.navigationController?.pushViewController(detail, animated: true)
  111. }
  112. }