Commit 4131d0dd authored by Steven杜宇's avatar Steven杜宇

// 我的证件

parent 25ea41f7
...@@ -133,7 +133,7 @@ extension YHCertificateResourceUploadVC: UITableViewDelegate, UITableViewDataSou ...@@ -133,7 +133,7 @@ extension YHCertificateResourceUploadVC: UITableViewDelegate, UITableViewDataSou
if 0 <= indexPath.section && indexPath.section < items.count { if 0 <= indexPath.section && indexPath.section < items.count {
let item = items[indexPath.section] let item = items[indexPath.section]
if item.checkStatus == YHCertificateUploadStatus.preUpload { // 待上传 if item.checkStatus == YHCertificateUploadStatus.preUpload.rawValue { // 待上传
showUploadSheetView(item) showUploadSheetView(item)
return return
} }
...@@ -299,9 +299,11 @@ extension YHCertificateResourceUploadVC { ...@@ -299,9 +299,11 @@ extension YHCertificateResourceUploadVC {
} }
} }
func showUploadSheetView(_ supplementInfo: YHSupplementInfo) { func showUploadSheetView(_ supplementInfo: YHSupplementInfo?) {
let sheetView = YHCertificateUploadSheetView.sheetView guard let supplementInfo = supplementInfo else { return }
let sheetView = YHCertificateUploadSheetView.sheetView
sheetView.templateInfo = supplementInfo.templateInfo sheetView.templateInfo = supplementInfo.templateInfo
sheetView.clickTemplateBlock = { sheetView.clickTemplateBlock = {
[weak self] path in [weak self] path in
......
...@@ -13,7 +13,7 @@ class YHCertificateSearchViewController: YHBaseViewController { ...@@ -13,7 +13,7 @@ class YHCertificateSearchViewController: YHBaseViewController {
var items:[YHSupplementInfo] = [] var items:[YHSupplementInfo] = []
var viewModel: YHCertificateViewModel = YHCertificateViewModel() var viewModel: YHCertificateViewModel = YHCertificateViewModel()
var orderId : Int? var orderId : Int?
var categoryInfo: YHCategoryData = YHCategoryData() var categoryInfo: YHCategoryData?
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
...@@ -35,6 +35,11 @@ class YHCertificateSearchViewController: YHBaseViewController { ...@@ -35,6 +35,11 @@ class YHCertificateSearchViewController: YHBaseViewController {
return tableView return tableView
}() }()
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
}()
lazy var searchView:UIView = { lazy var searchView:UIView = {
let view = UIView() let view = UIView()
view.backgroundColor = .white view.backgroundColor = .white
...@@ -93,6 +98,13 @@ class YHCertificateSearchViewController: YHBaseViewController { ...@@ -93,6 +98,13 @@ class YHCertificateSearchViewController: YHBaseViewController {
createUI() createUI()
} }
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let text = searchBar.textField.text, !text.isEmpty {
self.requestList(keyWord: text)
}
}
func createUI() { func createUI() {
view.addSubview(searchView) view.addSubview(searchView)
view.addSubview(tableView) view.addSubview(tableView)
...@@ -120,9 +132,26 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat ...@@ -120,9 +132,26 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let item = items[indexPath.section]
let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateInfoCell.cellReuseIdentifier, for: indexPath) as! YHCertificateInfoCell let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateInfoCell.cellReuseIdentifier, for: indexPath) as! YHCertificateInfoCell
cell.updateModel(item)
if 0 <= indexPath.section && indexPath.section < items.count {
let item = items[indexPath.section]
cell.updateModel(item)
cell.templateBlock = {
[weak self] in
guard let self = self else { return }
let view = YHCertificateTemplateSheetView.templateView(item.templateInfo)
view.scanTemplateBlock = {
[weak self] path in
guard let self = self else { return }
if let url = path?.url, !url.isEmpty {
print(url)
self.previewFileTool.openXLSXRemoteFile(urlString:url)
}
}
view.show()
}
}
return cell return cell
} }
...@@ -131,9 +160,21 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat ...@@ -131,9 +160,21 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = YHUploadContentVC() if 0 <= indexPath.section && indexPath.section < items.count {
self.navigationController?.pushViewController(vc) let item = items[indexPath.section]
if item.checkStatus == YHCertificateUploadStatus.preUpload.rawValue { // 待上传
showUploadSheetView(item)
return
}
// 非待上传的进入详情
let vc = YHUploadContentVC()
vc.orderId = orderId
vc.categoryInfo = categoryInfo
vc.supplementInfo = item
self.navigationController?.pushViewController(vc)
}
} }
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat { private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
...@@ -173,7 +214,6 @@ extension YHCertificateSearchViewController { ...@@ -173,7 +214,6 @@ extension YHCertificateSearchViewController {
"state": "1", "state": "1",
"supplement_ids": [], "supplement_ids": [],
"order_id" : orderId ?? 0, "order_id" : orderId ?? 0,
"category_id": categoryInfo.categoryId,
"keyword": keywords] "keyword": keywords]
print(params) print(params)
...@@ -185,6 +225,7 @@ extension YHCertificateSearchViewController { ...@@ -185,6 +225,7 @@ extension YHCertificateSearchViewController {
items.removeAll() items.removeAll()
if let listInfo = listInfo { if let listInfo = listInfo {
categoryInfo = listInfo.categoryData
let arr = listInfo.supplementList let arr = listInfo.supplementList
items.append(contentsOf: arr) items.append(contentsOf: arr)
} }
...@@ -196,4 +237,102 @@ extension YHCertificateSearchViewController { ...@@ -196,4 +237,102 @@ extension YHCertificateSearchViewController {
} }
} }
} }
func uploadImage(_ img: UIImage, supplementInfo:YHSupplementInfo) {
// 先OSS上传得到URL
YHHUD.show(.progress(message: "上传中..."))
self.viewModel.uploadImage(img) {
[weak self] url, error in
guard let self = self else { return }
YHHUD.hide()
if let url = url, !url.isEmpty {
let imgName = url.lastPathComponent
var suffix = "jpg"
let suffixName = url.pathExtension.lowercased()
if !suffixName.isEmpty {
suffix = suffixName
}
// 再调用业务接口
let model = YHContentUrl()
model.name = imgName
model.url = url
model.suffix = suffix
self.viewModel.updateCertificateItem(supplementId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
self.requestList(keyWord: self.searchBar.textField.text)
}
return
}
//
var msg = "上传图片失败"
if let errorMsg = error?.errorMsg, !errorMsg.isEmpty {
msg = errorMsg
}
YHHUD.flash(message: msg)
}
}
func uploadFile(_ fileUrl:URL, supplementInfo:YHSupplementInfo) {
if let fileData = try? Data(contentsOf: fileUrl) {
// 将文件数据上传到服务器
let size = String(format: "%.2fM", Double(fileData.count)/(1024.0 * 1024.0))
print("\(size)")
// 先OSS上传得到URL
self.viewModel.uploadFile(fileUrl.absoluteString) {
[weak self] successUrl, error in
guard let self = self else { return }
// 再调用业务接口
if let successUrl = successUrl, !successUrl.isEmpty {
let fileName = successUrl.lastPathComponent
let suffixName = successUrl.pathExtension.lowercased()
let model = YHContentUrl()
model.name = fileName
model.url = successUrl
model.suffix = suffixName
self.viewModel.updateCertificateItem(supplementId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
self.requestList(keyWord: self.searchBar.textField.text)
}
return
}
var msg = "上传图片失败"
if let errorMsg = error?.errorMsg, !errorMsg.isEmpty {
msg = errorMsg
}
YHHUD.flash(message: msg)
}
} else {
YHHUD.flash(message: "识别文件失败")
}
}
func showUploadSheetView(_ supplementInfo: YHSupplementInfo?) {
guard let supplementInfo = supplementInfo else { return }
let sheetView = YHCertificateUploadSheetView.sheetView
sheetView.templateInfo = supplementInfo.templateInfo
sheetView.clickTemplateBlock = {
[weak self] path in
if let url = path?.url, !url.isEmpty {
guard let self = self else { return }
print(url)
self.previewFileTool.openXLSXRemoteFile(urlString:url)
}
}
sheetView.uploadFilesBlock = {
[weak self] fileUrl in
guard let self = self else { return }
print(fileUrl)
uploadFile(fileUrl, supplementInfo: supplementInfo)
}
sheetView.uploadImageBlock = {
[weak self] image in
guard let self = self else { return }
uploadImage(image, supplementInfo: supplementInfo)
}
sheetView.show()
}
} }
...@@ -39,6 +39,7 @@ class YHMaterialListViewController: YHBaseViewController { ...@@ -39,6 +39,7 @@ class YHMaterialListViewController: YHBaseViewController {
static let segmentHeight = 53.0 static let segmentHeight = 53.0
var orderId : Int? var orderId : Int?
var filterDict : [String: Any] = [:]
var categoryInfo: YHCategoryData = YHCategoryData() var categoryInfo: YHCategoryData = YHCategoryData()
lazy var navBar: YHCustomNavigationBar = { lazy var navBar: YHCustomNavigationBar = {
let bar = YHCustomNavigationBar.navBar() let bar = YHCustomNavigationBar.navBar()
...@@ -54,7 +55,6 @@ class YHMaterialListViewController: YHBaseViewController { ...@@ -54,7 +55,6 @@ class YHMaterialListViewController: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
let vc = YHCertificateSearchViewController() let vc = YHCertificateSearchViewController()
vc.orderId = orderId vc.orderId = orderId
vc.categoryInfo = categoryInfo
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
return bar return bar
...@@ -117,6 +117,7 @@ class YHMaterialListViewController: YHBaseViewController { ...@@ -117,6 +117,7 @@ class YHMaterialListViewController: YHBaseViewController {
[weak self] dict in [weak self] dict in
guard let self = self else { return } guard let self = self else { return }
self.segmentedView.selectItemAt(index: 0) self.segmentedView.selectItemAt(index: 0)
self.filterDict = dict
if let vc = itemVCs.first { if let vc = itemVCs.first {
vc.requestList(status:vc.status, extra:dict) vc.requestList(status:vc.status, extra:dict)
} }
...@@ -171,6 +172,14 @@ class YHMaterialListViewController: YHBaseViewController { ...@@ -171,6 +172,14 @@ class YHMaterialListViewController: YHBaseViewController {
super.viewWillAppear(animated) super.viewWillAppear(animated)
//处于第一个item的时候,才允许屏幕边缘手势返回 //处于第一个item的时候,才允许屏幕边缘手势返回
navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0) navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
if 0 <= segmentedView.selectedIndex && segmentedView.selectedIndex < itemVCs.count {
let vc = itemVCs[segmentedView.selectedIndex]
if segmentedView.selectedIndex == 0 {
vc.requestList(status: vc.status, extra:self.filterDict)
} else {
vc.requestList(status: vc.status)
}
}
} }
override func viewWillDisappear(_ animated: Bool) { override func viewWillDisappear(_ animated: Bool) {
...@@ -213,7 +222,10 @@ class YHMaterialListViewController: YHBaseViewController { ...@@ -213,7 +222,10 @@ class YHMaterialListViewController: YHBaseViewController {
extension YHMaterialListViewController: JXSegmentedViewDelegate { extension YHMaterialListViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) { func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging"), object: nil) if 0 <= index && index < itemVCs.count {
let vc = itemVCs[index]
vc.requestList(status: vc.status, extra: self.filterDict)
}
} }
/// 正在滚动中的回调 /// 正在滚动中的回调
...@@ -224,7 +236,7 @@ extension YHMaterialListViewController: JXSegmentedViewDelegate { ...@@ -224,7 +236,7 @@ extension YHMaterialListViewController: JXSegmentedViewDelegate {
/// - rightIndex: 正在滚动中,相对位置处于右边的index /// - rightIndex: 正在滚动中,相对位置处于右边的index
/// - percent: 从左往右计算的百分比 /// - percent: 从左往右计算的百分比
func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) { func segmentedView(_ segmentedView: JXSegmentedView, scrollingFrom leftIndex: Int, to rightIndex: Int, percent: CGFloat) {
NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewWillBeginDragging"), object: nil)
} }
} }
......
...@@ -16,6 +16,25 @@ class YHMineCertificateEntryViewController: YHBaseViewController { ...@@ -16,6 +16,25 @@ class YHMineCertificateEntryViewController: YHBaseViewController {
var orderId : Int? var orderId : Int?
private let certificateReqVM : YHCertificateViewModel = YHCertificateViewModel() private let certificateReqVM : YHCertificateViewModel = YHCertificateViewModel()
lazy var navBar: YHCustomNavigationBar = {
let bar = YHCustomNavigationBar.navBar()
bar.title = "我的证件".local
bar.showLeftSecondButtonType(.search)
bar.backBlock = {
[weak self] in
guard let self = self else { return }
self.navigationController?.popViewController(animated: true)
}
bar.leftSecondBtnClick = {
[weak self] in
guard let self = self else { return }
let vc = YHCertificateSearchViewController()
vc.orderId = orderId
self.navigationController?.pushViewController(vc)
}
return bar
}()
private lazy var topBkg : UIView = { private lazy var topBkg : UIView = {
let imagV = UIImageView() let imagV = UIImageView()
imagV.image = UIImage(named: "service_center_head_bkg") imagV.image = UIImage(named: "service_center_head_bkg")
...@@ -68,10 +87,7 @@ extension YHMineCertificateEntryViewController { ...@@ -68,10 +87,7 @@ extension YHMineCertificateEntryViewController {
} }
func setupUI() { func setupUI() {
gk_navTitle = "我的证件" gk_navigationBar.isHidden = true
gk_navBarAlpha = 1.0
view.addSubview(topBkg) view.addSubview(topBkg)
topBkg.snp.makeConstraints { make in topBkg.snp.makeConstraints { make in
...@@ -96,6 +112,14 @@ extension YHMineCertificateEntryViewController { ...@@ -96,6 +112,14 @@ extension YHMineCertificateEntryViewController {
make.bottom.equalTo(bottomView.snp.top) make.bottom.equalTo(bottomView.snp.top)
} }
// 放在最上面
view.addSubview(navBar)
navBar.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(k_Height_statusBar())
make.height.equalTo(k_Height_NavContentBar)
}
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
......
...@@ -136,20 +136,11 @@ class YHCertificateViewModel: YHBaseViewModel { ...@@ -136,20 +136,11 @@ class YHCertificateViewModel: YHBaseViewModel {
} }
} }
func getCertificateList(params:[String: Any], isSilient:Bool = false, callBack:@escaping (_ listInfo: YHUploadCertificateInfo?, _ error:YHErrorModel?)->()) { func getCertificateList(params:[String: Any], callBack:@escaping (_ listInfo: YHUploadCertificateInfo?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Certificate.certificateListApi let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Certificate.certificateListApi
if !isSilient {
YHHUD.show(.progress(message: "数据加载中..."))
}
let _ = YHNetRequest.getRequest(url: strUrl, params:params) { json, code in let _ = YHNetRequest.getRequest(url: strUrl, params:params) { json, code in
if !isSilient {
YHHUD.hide()
}
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
let dic = json.data let dic = json.data
......
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