| | |
| | | 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 |
| | | } |
| | | } |
| | | } |