Commit 1267b7ed authored by Steven杜宇's avatar Steven杜宇

// 搜索

parent 9616fc14
...@@ -47,7 +47,7 @@ class YHSearchInfomationVC: YHBaseViewController { ...@@ -47,7 +47,7 @@ class YHSearchInfomationVC: YHBaseViewController {
searchStr = "香港身份" searchStr = "香港身份"
self.searchBar.textField.text = "香港身份" self.searchBar.textField.text = "香港身份"
} }
searchText(searchStr) searchText()
if searchStr.count > 0 { if searchStr.count > 0 {
self.saveSearchHistory(searchStr) self.saveSearchHistory(searchStr)
} }
...@@ -81,6 +81,12 @@ class YHSearchInfomationVC: YHBaseViewController { ...@@ -81,6 +81,12 @@ class YHSearchInfomationVC: YHBaseViewController {
tableView.backgroundColor = .white tableView.backgroundColor = .white
tableView.backgroundView = emptyDataTipsView tableView.backgroundView = emptyDataTipsView
tableView.register(YHSearchInfoCell.self, forCellReuseIdentifier: YHSearchInfoCell.cellReuseIdentifier) tableView.register(YHSearchInfoCell.self, forCellReuseIdentifier: YHSearchInfoCell.cellReuseIdentifier)
tableView.es.addPullToRefresh {
self.loadFirstData()
}
tableView.es.addInfiniteScrolling {
self.loadMoreData()
}
return tableView return tableView
}() }()
...@@ -92,7 +98,8 @@ class YHSearchInfomationVC: YHBaseViewController { ...@@ -92,7 +98,8 @@ class YHSearchInfomationVC: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
self.searchHistoryView.isHidden = true self.searchHistoryView.isHidden = true
self.searchBar.textField.text = text self.searchBar.textField.text = text
searchText(text) self.searchStr = text
searchText()
self.saveSearchHistory(text) self.saveSearchHistory(text)
} }
return view return view
...@@ -167,14 +174,53 @@ class YHSearchInfomationVC: YHBaseViewController { ...@@ -167,14 +174,53 @@ class YHSearchInfomationVC: YHBaseViewController {
} }
} }
func searchText(_ text:String) { func searchText() {
self.tableView.scrollToTop()
YHHUD.show(.progress(message: "搜索中...")) YHHUD.show(.progress(message: "搜索中..."))
// 去除两端的空格 viewModel.searchArticleList(self.searchStr, isFirstPage : true) {
let targetText = text.trimmingCharacters(in: .whitespaces)
self.viewModel.searchArticleList(targetText) {
[weak self] success, error in [weak self] success, error in
YHHUD.hide() YHHUD.hide()
guard let self = self else { return } guard let self = self else { return }
items.removeAll()
if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr)
}
emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true
self.tableView.reloadData()
tableView.es.stopPullToRefresh()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
}
}
func loadMoreData() {
viewModel.searchArticleList(self.searchStr, isFirstPage : false) {
[weak self] success, error in
guard let self = self else { return }
items.removeAll()
if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr)
}
emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true
self.tableView.reloadData()
tableView.es.stopLoadingMore()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
}
}
func loadFirstData() {
viewModel.searchArticleList(self.searchStr, isFirstPage : true) {
[weak self] success, error in
guard let self = self else { return }
items.removeAll() items.removeAll()
if let arr = self.viewModel.arrHomeNewsData { if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr) items.append(contentsOf: arr)
...@@ -182,6 +228,10 @@ class YHSearchInfomationVC: YHBaseViewController { ...@@ -182,6 +228,10 @@ class YHSearchInfomationVC: YHBaseViewController {
emptyDataTipsView.isHidden = (items.count > 0) emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true searchHistoryView.isHidden = true
self.tableView.reloadData() self.tableView.reloadData()
tableView.es.stopPullToRefresh()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
} }
} }
......
...@@ -255,34 +255,61 @@ extension YHHomePageViewModel { ...@@ -255,34 +255,61 @@ extension YHHomePageViewModel {
} }
// 搜索 // 搜索
func searchArticleList(_ title: String, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func searchArticleList(_ title: String, isFirstPage:Bool, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1,
"page_size": 10, var params: [String : Any] = [:]
"title": title]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.article if isFirstPage {
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in curPageIndex = 1
guard let self = self else { return } params = ["page": curPageIndex,
//1. json字符串 转 对象 "page_size": 10,
if json.code == 200 { "title": title]
let dic = json.data } else {
guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else { params = ["page": curPageIndex + 1,
self.arrHomeNewsData = [] "page_size": 10,
callBackBlock(false,nil) "title": title]
return }
} let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.article
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
for item in result.data { guard let self = self else { return }
item.calHeightParam() //1. json字符串 转 对象
} if json.code == 200 {
let dic = json.data
guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else {
self.arrHomeNewsData = []
callBackBlock(false,nil)
return
}
for item in result.data {
item.calHeightParam()
}
if isFirstPage {
self.totalCount = result.total
self.arrHomeNewsData = result.data self.arrHomeNewsData = result.data
callBackBlock(true, nil) curPageIndex = 1
} else { } else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) curPageIndex = curPageIndex + 1
callBackBlock(false, error) self.arrHomeNewsData?.append(contentsOf: result.data)
}
if let count = self.arrHomeNewsData?.count {
if count == self.totalCount {
self.hasMoreForHomeNews = false
} else {
self.hasMoreForHomeNews = true
}
} }
} failBlock: { err in callBackBlock(true, nil)
callBackBlock(false,err) } else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
} }
} failBlock: { err in
self.arrHomeNewsData = []
callBackBlock(false,err)
} }
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment