fix
无故事王国
2024-02-28 4468d9f9b3b8c70597f04e5f1ecb61118c404d2c
WanPai/Root/Search/VC/CustomerSubListVC.swift
@@ -11,113 +11,113 @@
import RxRelay
class CustomerContentViewModel:RefreshModel<NoticeItemModel>{
    var type = BehaviorRelay<CustomerSubListVC.CustomerSubType>.init(value: .notice)
    override func api() -> (Observable<BaseResponse<[NoticeItemModel]>>)? {
        return Services.exploreNoticeList(type: type.value)
    }
            var type = BehaviorRelay<CustomerSubListVC.CustomerSubType>.init(value: .notice)
            override func api() -> (Observable<BaseResponse<[NoticeItemModel]>>)? {
                        return Services.exploreNoticeList(type: type.value)
            }
}
class CustomerSubListVC: BaseVC {
    private let viewModel = CustomerContentViewModel()
            private let viewModel = CustomerContentViewModel()
    public enum CustomerSubType {
        case notice,QA
    }
    lazy var tableView:BaseTableView = {
        let table = BaseTableView(frame: .zero, style: .plain)
        table.separatorStyle = .none
        table.delegate = self
        table.dataSource = self
        table.register(UINib(nibName: "CustomerContentTCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentTCell")
        table.register(UINib(nibName: "CustomerContentQATCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentQATCell")
        return table
    }()
    init(type: CustomerSubType!) {
        super.init(nibName: nil, bundle: nil)
        viewModel.type.accept(type)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        if viewModel.type.value == .QA{
         Services.bannerList(position: .qusition).subscribe(onNext: {[weak self]data in
            if let models = data.data,models.count > 0{
               let bannberView = CommonBannerView(frame: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.564))
               self?.tableView.tableHeaderView = bannberView
               let imgs = models.map({$0.img})
               var items = [CommonBannerModel]()
               for (index,img) in imgs.enumerated(){
                  items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
               }
               bannberView.setItems(items: items) { m in
                  let model = models[m.index]
                  jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
               }
               self?.tableView.reloadData()
            public enum CustomerSubType {
                        case notice,QA
            }
         }) { error in
         }.disposed(by: disposeBag)
        }
            lazy var tableView:BaseTableView = {
                        let table = BaseTableView(frame: .zero, style: .plain)
                        table.separatorStyle = .none
                        table.delegate = self
                        table.dataSource = self
                        table.register(UINib(nibName: "CustomerContentTCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentTCell")
                        table.register(UINib(nibName: "CustomerContentQATCell", bundle: nil), forCellReuseIdentifier: "_CustomerContentQATCell")
        viewModel.configure(tableView,needMore: false)
        viewModel.beginRefresh()
//      tableView.jq_setEmptyView()
    }
                        return table
            }()
    override func setUI() {
        view.addSubview(tableView)
        tableView.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }
            init(type: CustomerSubType!) {
                        super.init(nibName: nil, bundle: nil)
                        viewModel.type.accept(type)
            }
            required init?(coder: NSCoder) {
                        fatalError("init(coder:) has not been implemented")
            }
            override func viewDidLoad() {
                        super.viewDidLoad()
                        if viewModel.type.value == .QA{
                                    Services.bannerList(position: .qusition).subscribe(onNext: {[weak self]data in
                                                if let models = data.data,models.count > 0{
                                                            let bannberView = CommonBannerView(frame: CGRect(x: 0, y: 0, width: JQ_ScreenW, height: JQ_ScreenW * 0.564))
                                                            self?.tableView.tableHeaderView = bannberView
                                                            let imgs = models.map({$0.img})
                                                            var items = [CommonBannerModel]()
                                                            for (index,img) in imgs.enumerated(){
                                                                        items.append(CommonBannerModel(index: index,resource: img,mediaType: .imageUrl))
                                                            }
                                                            bannberView.setItems(items: items) { m in
                                                                        let model = models[m.index]
                                                                        jumpPage(model: model.model, page: model.page, type: model.type, id: model.turnId)
                                                            }
                                                            self?.tableView.reloadData()
                                                }
                                    }) { error in
                                    }.disposed(by: disposeBag)
                        }
                        viewModel.configure(tableView,needMore: false)
                        viewModel.beginRefresh()
                        //      tableView.jq_setEmptyView()
            }
            override func setUI() {
                        view.addSubview(tableView)
                        tableView.snp.makeConstraints { make in
                                    make.edges.equalToSuperview()
                        }
            }
}
extension CustomerSubListVC:UITableViewDelegate{
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let model = viewModel.dataSource.value[indexPath.row]
            func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                        let model = viewModel.dataSource.value[indexPath.row]
      var id = 0
      if  viewModel.type.value == .notice{
         id = model.noticeId
      }else{
         id = model.quesId
      }
                        var id = 0
                        if  viewModel.type.value == .notice{
                                    id = model.noticeId
                        }else{
                                    id = model.quesId
                        }
        let vc = CustomerContentDetailVC(id: id, type: viewModel.type.value)
      push(vc: vc)
    }
                        let vc = CustomerContentDetailVC(id: id, type: viewModel.type.value)
                        push(vc: vc)
            }
}
extension CustomerSubListVC:UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return viewModel.dataSource.value.count
    }
            func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
                        return viewModel.dataSource.value.count
            }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let model = viewModel.dataSource.value[indexPath.row]
        if  viewModel.type.value == .notice{
        let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentTCell") as! CustomerContentTCell
            cell.noticeItemModel = model
        return cell
        }else{
            let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentQATCell") as! CustomerContentQATCell
            cell.noticeItemModel = model
            return cell
        }
    }
            func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                        let model = viewModel.dataSource.value[indexPath.row]
                        if  viewModel.type.value == .notice{
                                    let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentTCell") as! CustomerContentTCell
                                    cell.noticeItemModel = model
                                    return cell
                        }else{
                                    let cell = tableView.dequeueReusableCell(withIdentifier: "_CustomerContentQATCell") as! CustomerContentQATCell
                                    cell.noticeItemModel = model
                                    return cell
                        }
            }
}