Commit 156e63ee authored by pete谢兆麟's avatar pete谢兆麟

Merge commit '4131d0dd' into xiezhaolin

parents a07b74e9 4131d0dd
......@@ -220,6 +220,7 @@
049A48A82B49417300D0C641 /* YHAboutUsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */; };
049A48AA2B49536000D0C641 /* YHAboutUsAdvantageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */; };
04A271232BABFF3200652B1B /* YHCertificateUploadTypeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A271222BABFF3200652B1B /* YHCertificateUploadTypeCell.swift */; };
04A271252BAC33BB00652B1B /* YHFilePreviewTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A271242BAC33BB00652B1B /* YHFilePreviewTool.swift */; };
04A671592B9F18C800C1FB91 /* YHCertificateUploadSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A671582B9F18C800C1FB91 /* YHCertificateUploadSheetView.swift */; };
04A6715C2B9FE9EA00C1FB91 /* YHUploadContentVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A6715B2B9FE9EA00C1FB91 /* YHUploadContentVC.swift */; };
04A6715E2B9FFCA700C1FB91 /* YHCertificateNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04A6715D2B9FFCA700C1FB91 /* YHCertificateNameCell.swift */; };
......@@ -262,6 +263,8 @@
A58A8C8F2BA6978100632765 /* YHMineCertificateEntryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58A8C8E2BA6978100632765 /* YHMineCertificateEntryViewController.swift */; };
A58A8C942BA6C7C600632765 /* YHCertificateEntryModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58A8C932BA6C7C600632765 /* YHCertificateEntryModel.swift */; };
A58AC09D2BABD59600A30FA9 /* YHFileListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58AC09C2BABD59600A30FA9 /* YHFileListModel.swift */; };
A58AC09F2BAC05BA00A30FA9 /* YHFileListItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58AC09E2BAC05BA00A30FA9 /* YHFileListItemsView.swift */; };
A58AC0A12BAC0B2900A30FA9 /* YHFileListItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58AC0A02BAC0B2900A30FA9 /* YHFileListItemView.swift */; };
A592BFEF2B9AB720004C04A9 /* YHWholeScreenTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A592BFEE2B9AB720004C04A9 /* YHWholeScreenTipsView.swift */; };
A592FE912BA6CC010062FACA /* YHCertificateEntryHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A592FE902BA6CC010062FACA /* YHCertificateEntryHeadView.swift */; };
A592FE932BA6CFFC0062FACA /* YHCertificateEntryBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A592FE922BA6CFFC0062FACA /* YHCertificateEntryBottomView.swift */; };
......@@ -601,6 +604,7 @@
049A48A72B49417300D0C641 /* YHAboutUsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsViewController.swift; sourceTree = "<group>"; };
049A48A92B49536000D0C641 /* YHAboutUsAdvantageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAboutUsAdvantageCell.swift; sourceTree = "<group>"; };
04A271222BABFF3200652B1B /* YHCertificateUploadTypeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadTypeCell.swift; sourceTree = "<group>"; };
04A271242BAC33BB00652B1B /* YHFilePreviewTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFilePreviewTool.swift; sourceTree = "<group>"; };
04A671582B9F18C800C1FB91 /* YHCertificateUploadSheetView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadSheetView.swift; sourceTree = "<group>"; };
04A6715B2B9FE9EA00C1FB91 /* YHUploadContentVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadContentVC.swift; sourceTree = "<group>"; };
04A6715D2B9FFCA700C1FB91 /* YHCertificateNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateNameCell.swift; sourceTree = "<group>"; };
......@@ -647,6 +651,8 @@
A58A8C8E2BA6978100632765 /* YHMineCertificateEntryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMineCertificateEntryViewController.swift; sourceTree = "<group>"; };
A58A8C932BA6C7C600632765 /* YHCertificateEntryModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateEntryModel.swift; sourceTree = "<group>"; };
A58AC09C2BABD59600A30FA9 /* YHFileListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFileListModel.swift; sourceTree = "<group>"; };
A58AC09E2BAC05BA00A30FA9 /* YHFileListItemsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFileListItemsView.swift; sourceTree = "<group>"; };
A58AC0A02BAC0B2900A30FA9 /* YHFileListItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFileListItemView.swift; sourceTree = "<group>"; };
A592BFEE2B9AB720004C04A9 /* YHWholeScreenTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWholeScreenTipsView.swift; sourceTree = "<group>"; };
A592FE902BA6CC010062FACA /* YHCertificateEntryHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateEntryHeadView.swift; sourceTree = "<group>"; };
A592FE922BA6CFFC0062FACA /* YHCertificateEntryBottomView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateEntryBottomView.swift; sourceTree = "<group>"; };
......@@ -1646,6 +1652,7 @@
isa = PBXGroup;
children = (
A592FE962BA6DB340062FACA /* YHCertificateViewModel.swift */,
04A271242BAC33BB00652B1B /* YHFilePreviewTool.swift */,
);
path = VM;
sourceTree = "<group>";
......@@ -2000,6 +2007,8 @@
A520124E2BABCE05008655EA /* YHFileListContentView.swift */,
A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */,
A5D001292BABC84A001F003C /* YHFileListBottomView.swift */,
A58AC0A02BAC0B2900A30FA9 /* YHFileListItemView.swift */,
A58AC09E2BAC05BA00A30FA9 /* YHFileListItemsView.swift */,
);
path = V;
sourceTree = "<group>";
......@@ -2299,6 +2308,7 @@
0435FA812BA186D600024EAE /* YHMyFileMethodTableViewCell.swift in Sources */,
0468D4282B50D4AF00CFB916 /* YHPrivacyAlertView.swift in Sources */,
045EEEB22B9F171A0022A143 /* YHWorkActionView.swift in Sources */,
A58AC09F2BAC05BA00A30FA9 /* YHFileListItemsView.swift in Sources */,
045EEE8C2B9F171A0022A143 /* YHPreviewMainViewController.swift in Sources */,
0468D4342B56587B00CFB916 /* YHOSSManager.swift in Sources */,
A5C382D12B5FAAB300C5E65C /* YHContactItemModel.swift in Sources */,
......@@ -2407,6 +2417,7 @@
045EEF1B2B9F171A0022A143 /* YHAddressPickViewTableViewCell.swift in Sources */,
045EEE932B9F171A0022A143 /* YHPreviewInfoSingleLineTitleView.swift in Sources */,
045EEF1D2B9F171A0022A143 /* YHAddressPickView.swift in Sources */,
A58AC0A12BAC0B2900A30FA9 /* YHFileListItemView.swift in Sources */,
045EEED12B9F171A0022A143 /* YHScorePersonInfoCell.swift in Sources */,
045EEF0D2B9F171A0022A143 /* YHBasicInfoFillCell.swift in Sources */,
045EEEEC2B9F171A0022A143 /* YHBrotherInfoVC.swift in Sources */,
......@@ -2486,6 +2497,7 @@
045EEE922B9F171A0022A143 /* YHPreviewInfoNameAndSubNameItemView.swift in Sources */,
045EEEF92B9F171A0022A143 /* YHFormItemTitleCell.swift in Sources */,
0425E6482BA96B4100A5E763 /* YHSchemeHeadScoreItemView.swift in Sources */,
04A271252BAC33BB00652B1B /* YHFilePreviewTool.swift in Sources */,
045EEEC32B9F171A0022A143 /* YHOtherResidenceFillView.swift in Sources */,
045EEE792B9F171A0022A143 /* YHPreviewViewModel.swift in Sources */,
0493B3DE2BA80C2300AF9393 /* YHCertificateFilterButton.swift in Sources */,
......@@ -2699,7 +2711,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 7;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -2719,7 +2731,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.2;
MARKETING_VERSION = 0.2.3;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -2741,7 +2753,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 7;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -2761,7 +2773,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.2;
MARKETING_VERSION = 0.2.3;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......
......@@ -411,6 +411,13 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
}
private func handleJumpLogicDebug(tapIndex : Int) {
if self.serviceCenterMainReqVM.myInfoFillStep > 6 {
goInfoListVCOp(index:tapIndex)
return
}
if tapIndex == 0 {
if self.serviceCenterMainReqVM.informationFillStepModel?.sweet_notify_status == 0 {
self.showTipsAlert()
......
......@@ -33,7 +33,7 @@ class YHFileListViewController: YHBaseViewController {
private lazy var myContentView : YHFileListContentView = {
let view = YHFileListContentView()
view.backgroundColor = .yellow
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
return view
......@@ -60,13 +60,11 @@ extension YHFileListViewController {
let tttt = "11758" //for test hjl
let param = ["order_id":tttt,"node":"1","state":"1"]
certificateReqVM.getCertificateFileListData(params: param) { success, error in
// if success == true {
// self.headerView.dataModel = self.certificateReqVM.certificateEntryModel
// } else {
// YHHUD.flash(message: error?.errorMsg ?? "请求出错")
// }
// self.homeTableView.reloadData()
if success == true {
self.myContentView.dataModel = self.certificateReqVM.arrFileListData
} else {
YHHUD.flash(message: error?.errorMsg ?? "请求出错")
}
}
} else {
printLog("error : orderID 为空")
......@@ -110,7 +108,7 @@ extension YHFileListViewController {
make.top.equalTo(217)
make.left.equalTo(kMargin)
make.width.equalTo(KScreenWidth - 2*kMargin)
make.height.equalTo(1700) //for test hjl
// make.height.equalTo(1700) //for test hjl
}
let footLable = UILabel()
......
......@@ -17,14 +17,44 @@ class YHFileListContentView: UIView {
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var dataModel : [YHFileListModel?]? {
didSet {
updataUI()
}
}
}
private extension YHFileListContentView {
func initView() {
// let he
backgroundColor = .clear
}
}
extension YHFileListContentView {
func updataUI() {
guard let arrData = dataModel,arrData.count > 0 else { return }
let sessionBkgImageV : UIImageView = UIImageView(image: UIImage(named: "file_list_head_bkg"))
sessionBkgImageV.contentMode = .scaleAspectFill
addSubview(sessionBkgImageV)
sessionBkgImageV.snp.makeConstraints { make in
make.top.equalToSuperview().offset(2)
make.left.equalToSuperview().offset(2)
make.right.equalToSuperview().offset(-2)
make.height.equalTo(70)
make.bottom.equalToSuperview().offset(-20)
}
for (index,item) in arrData.enumerated() {
}
}
}
//
// YHFileListItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/3/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFileListItemView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
initView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//index
private lazy var indexLable : UILabel = {
let lable0 = UILabel(text: "index")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_B(ofSize: 19)
return lable0
}()
//title
private lazy var titleLable : UILabel = {
let lable0 = UILabel(text: "title")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 15)
return lable0
}()
//subtitle
private lazy var subtitleLable : UILabel = {
let lable0 = UILabel(text: "subtitle")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_R(ofSize: 12)
lable0.numberOfLines = 0
lable0.lineBreakMode = .byWordWrapping
lable0.textAlignment = .right
return lable0
}()
//status
private lazy var statusLable : UILabel = {
let lable0 = UILabel(text: "状态")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_R(ofSize: 12)
lable0.numberOfLines = 0
lable0.lineBreakMode = .byWordWrapping
lable0.textAlignment = .right
return lable0
}()
//line
private lazy var line : UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
}
private extension YHFileListItemView {
func initView() {
addSubview(indexLable)
indexLable.snp.makeConstraints { make in
make.left.equalTo(8)
make.width.equalTo(26)
make.centerY.equalToSuperview()
}
addSubview(statusLable)
statusLable.snp.makeConstraints { make in
make.right.equalTo(-26)
make.centerY.equalToSuperview()
make.height.equalTo(18)
}
addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.equalTo(40)
make.right.equalTo(statusLable.snp.left).offset(6)
}
addSubview(subtitleLable)
subtitleLable.snp.makeConstraints { make in
make.top.equalTo(titleLable.snp.bottom).offset(2)
make.left.equalTo(titleLable.snp.left)
make.right.equalTo(titleLable.snp.right)
}
addSubview(line)
line.snp.makeConstraints { make in
make.top.equalTo(subtitleLable.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
}
//
// YHFileListItems.swift
// galaxy
//
// Created by davidhuangA on 2024/3/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFileListItemsView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var dataModel : YHFileListModel? {
didSet {
updateUI()
}
}
}
private extension YHFileListItemsView {
func updateUI() {
}
}
......@@ -19,6 +19,10 @@ class YHCertificateResourceUploadVC: YHBaseViewController {
var items:[YHSupplementInfo] = []
var viewModel: YHCertificateViewModel = YHCertificateViewModel()
var categoryInfo: YHCategoryData!
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
}()
lazy var tableView: UITableView = {
......@@ -107,10 +111,12 @@ extension YHCertificateResourceUploadVC: UITableViewDelegate, UITableViewDataSou
guard let self = self else { return }
let view = YHCertificateTemplateSheetView.templateView(item.templateInfo)
view.scanTemplateBlock = {
[weak self] temlateInfo in
[weak self] path in
guard let self = self else { return }
let vc = UIViewController()
self.navigationController?.pushViewController(vc)
if let url = path?.url, !url.isEmpty {
print(url)
self.previewFileTool.openXLSXRemoteFile(urlString:url)
}
}
view.show()
}
......@@ -127,15 +133,15 @@ extension YHCertificateResourceUploadVC: UITableViewDelegate, UITableViewDataSou
if 0 <= indexPath.section && indexPath.section < items.count {
let item = items[indexPath.section]
// if item.checkStatus == YHCertificateUploadStatus.preUpload { // 待上传
showUploadSheetView(item.templateInfo)
if item.checkStatus == YHCertificateUploadStatus.preUpload.rawValue { // 待上传
showUploadSheetView(item)
return
// }
}
// 非待上传的进入详情
let vc = YHUploadContentVC()
vc.orderId = orderId
vc.categoryInfo = categoryInfo
vc.uploadInfo = item
vc.supplementInfo = item
self.navigationController?.pushViewController(vc)
}
}
......@@ -223,29 +229,102 @@ extension YHCertificateResourceUploadVC {
}
}
func showUploadSheetView(_ template: YHTemplateInfo) {
func uploadImage(_ img: UIImage, supplementInfo:YHSupplementInfo) {
let sheetView = YHCertificateUploadSheetView.sheetView
sheetView.templateInfo = template
sheetView.uploadFilesBlock = {
[weak self] fileUrl in
// 先OSS上传得到URL
YHHUD.show(.progress(message: "上传中..."))
self.viewModel.uploadImage(img) {
[weak self] url, error in
guard let self = self else { return }
print(fileUrl)
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(status: self.status)
}
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)")
self.viewModel.uploadFile(fileUrl.absoluteString) {[weak self] success, error in
// 先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(status:self.status)
}
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)
uploadImage(image, supplementInfo: supplementInfo)
}
sheetView.show()
}
}
......@@ -13,7 +13,7 @@ class YHCertificateSearchViewController: YHBaseViewController {
var items:[YHSupplementInfo] = []
var viewModel: YHCertificateViewModel = YHCertificateViewModel()
var orderId : Int?
var categoryInfo: YHCategoryData = YHCategoryData()
var categoryInfo: YHCategoryData?
lazy var tableView: UITableView = {
......@@ -35,6 +35,11 @@ class YHCertificateSearchViewController: YHBaseViewController {
return tableView
}()
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
}()
lazy var searchView:UIView = {
let view = UIView()
view.backgroundColor = .white
......@@ -93,6 +98,13 @@ class YHCertificateSearchViewController: YHBaseViewController {
createUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let text = searchBar.textField.text, !text.isEmpty {
self.requestList(keyWord: text)
}
}
func createUI() {
view.addSubview(searchView)
view.addSubview(tableView)
......@@ -120,9 +132,26 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let item = items[indexPath.section]
let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateInfoCell.cellReuseIdentifier, for: indexPath) as! YHCertificateInfoCell
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
}
......@@ -132,9 +161,21 @@ extension YHCertificateSearchViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
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 {
return 14.0
......@@ -173,7 +214,6 @@ extension YHCertificateSearchViewController {
"state": "1",
"supplement_ids": [],
"order_id" : orderId ?? 0,
"category_id": categoryInfo.categoryId,
"keyword": keywords]
print(params)
......@@ -185,6 +225,7 @@ extension YHCertificateSearchViewController {
items.removeAll()
if let listInfo = listInfo {
categoryInfo = listInfo.categoryData
let arr = listInfo.supplementList
items.append(contentsOf: arr)
}
......@@ -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 {
static let segmentHeight = 53.0
var orderId : Int?
var filterDict : [String: Any] = [:]
var categoryInfo: YHCategoryData = YHCategoryData()
lazy var navBar: YHCustomNavigationBar = {
let bar = YHCustomNavigationBar.navBar()
......@@ -54,7 +55,6 @@ class YHMaterialListViewController: YHBaseViewController {
guard let self = self else { return }
let vc = YHCertificateSearchViewController()
vc.orderId = orderId
vc.categoryInfo = categoryInfo
self.navigationController?.pushViewController(vc)
}
return bar
......@@ -117,6 +117,7 @@ class YHMaterialListViewController: YHBaseViewController {
[weak self] dict in
guard let self = self else { return }
self.segmentedView.selectItemAt(index: 0)
self.filterDict = dict
if let vc = itemVCs.first {
vc.requestList(status:vc.status, extra:dict)
}
......@@ -171,6 +172,14 @@ class YHMaterialListViewController: YHBaseViewController {
super.viewWillAppear(animated)
//处于第一个item的时候,才允许屏幕边缘手势返回
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) {
......@@ -213,7 +222,10 @@ class YHMaterialListViewController: YHBaseViewController {
extension YHMaterialListViewController: JXSegmentedViewDelegate {
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 {
/// - rightIndex: 正在滚动中,相对位置处于右边的index
/// - percent: 从左往右计算的百分比
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 {
var orderId : Int?
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 = {
let imagV = UIImageView()
imagV.image = UIImage(named: "service_center_head_bkg")
......@@ -68,10 +87,7 @@ extension YHMineCertificateEntryViewController {
}
func setupUI() {
gk_navTitle = "我的证件"
gk_navBarAlpha = 1.0
gk_navigationBar.isHidden = true
view.addSubview(topBkg)
topBkg.snp.makeConstraints { make in
......@@ -96,6 +112,14 @@ extension YHMineCertificateEntryViewController {
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.dataSource = self
......
......@@ -184,7 +184,7 @@ class YHTemplateInfo: SmartCodable {
var guideFilePath: [YHMaterialPath] = []
func isNeedShowTemplate() -> Bool {
if self.description.isEmpty && self.materialPath.isEmpty {
if self.description.isEmpty && self.materialPath.isEmpty && self.guideFilePath.isEmpty {
return false
}
return true
......
......@@ -89,6 +89,7 @@ class YHCertificateNameCell: UITableViewCell {
nameLabel = UILabel()
nameLabel.textColor = UIColor.mainTextColor
nameLabel.textAlignment = .left
nameLabel.numberOfLines = 0
nameLabel.font = UIFont.PFSC_M(ofSize:14)
nameLabel.text = "文档名称.doc"
whiteView.addSubview(nameLabel)
......@@ -109,8 +110,8 @@ class YHCertificateNameCell: UITableViewCell {
whiteView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.height.equalTo(55)
make.top.equalToSuperview().offset(15)
make.bottom.equalToSuperview()
}
iconImgV.snp.makeConstraints { make in
......@@ -121,14 +122,14 @@ class YHCertificateNameCell: UITableViewCell {
nameLabel.snp.makeConstraints { make in
make.left.equalTo(iconImgV.snp.right).offset(18)
make.height.equalTo(20)
make.bottom.equalTo(whiteView.snp.centerY).offset(-1)
make.top.equalToSuperview().offset(7)
make.right.equalTo(editBtn.snp.left)
}
timeLabel.snp.makeConstraints { make in
make.left.right.equalTo(nameLabel)
make.top.equalTo(whiteView.snp.centerY).offset(1)
make.top.equalTo(nameLabel.snp.bottom).offset(2)
make.bottom.equalToSuperview().offset(-7)
make.height.equalTo(20)
}
......
......@@ -72,22 +72,13 @@ class YHCertificateSampleTemplateView: UIView {
class YHCertificateTemplateCell: UITableViewCell {
static let cellReuseIdentifier = "YHCertificateTemplateCell"
var templateClick:((YHMaterialPath?)->())?
var templatePath: YHMaterialPath?
lazy var templateView: YHCertificateSampleTemplateView = {
let view = YHCertificateSampleTemplateView(frame:CGRectZero)
let tap = UITapGestureRecognizer(target:self, action:#selector(didTemplateTap))
view.addGestureRecognizer(tap)
return view
}()
@objc func didTemplateTap() {
templateClick?(templatePath)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
......
......@@ -28,7 +28,7 @@ class YHCertificateTemplateSheetView: UIView {
var templateArr: [YHMaterialPath] = []
var templateInfo: YHTemplateInfo?
var scanTemplateBlock: ((YHTemplateInfo?)->())?
var scanTemplateBlock: ((YHMaterialPath?)->())?
lazy var blackMaskView: UIView = {
let view = UIView()
......@@ -203,13 +203,6 @@ class YHCertificateTemplateSheetView: UIView {
self.removeFromSuperview()
}
@objc func didTemplateViewClicked() {
if let scanTemplateBlock = scanTemplateBlock {
scanTemplateBlock(templateInfo)
}
dismiss()
}
@objc func didClickKnownBtn() {
dismiss()
}
......@@ -229,18 +222,23 @@ extension YHCertificateTemplateSheetView: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateTemplateCell.cellReuseIdentifier, for: indexPath) as! YHCertificateTemplateCell
cell.update(bottomMargin: 20)
if 0 <= indexPath.row && indexPath.row < templateArr.count {
cell.templatePath = templateArr[indexPath.row]
cell.templateClick = {
[weak self] path in
}
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.row && indexPath.row < templateArr.count {
let path = templateArr[indexPath.row]
scanTemplateBlock?(path)
dismiss()
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 62.0
return 82.0
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
......@@ -253,7 +251,7 @@ extension YHCertificateTemplateSheetView: UITableViewDelegate, UITableViewDataSo
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 20.0
return 1.0
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
......
......@@ -58,6 +58,8 @@ class YHCertificateUploadSheetView: UIView {
var uploadFilesBlock:((URL)->())?
// 上传图片
var uploadImageBlock:((UIImage)->())?
// 点击模版
var clickTemplateBlock:((YHMaterialPath?)->())?
lazy var blackMaskView: UIView = {
let view = UIView()
......@@ -236,21 +238,48 @@ extension YHCertificateUploadSheetView: UITableViewDelegate, UITableViewDataSour
if indexPath.section == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateTemplateCell.cellReuseIdentifier, for: indexPath) as! YHCertificateTemplateCell
cell.update(bottomMargin:20)
if 0 <= indexPath.row && indexPath.row < templateArr.count {
cell.templatePath = templateArr[indexPath.row]
cell.templateClick = {
[weak self] path in
}
}
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: YHCertificateUploadTypeCell.cellReuseIdentifier, for: indexPath) as! YHCertificateUploadTypeCell
if 0 <= indexPath.row && indexPath.row < uploadTypeArr.count {
cell.item = uploadTypeArr[indexPath.row]
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 0 { // 模版列表
if 0 <= indexPath.row && indexPath.row < templateArr.count {
let path = templateArr[indexPath.row]
clickTemplateBlock?(path)
dismiss()
}
} else if indexPath.section == 1 { // 操作列表
if 0 <= indexPath.row && indexPath.row < uploadTypeArr.count {
let operationItem = uploadTypeArr[indexPath.row]
if operationItem.type == .cancel {
dismiss()
} else if operationItem.type == .photo {
selectPhoto()
} else if operationItem.type == .camera {
takePhoto()
} else if operationItem.type == .phoneFile {
selectFile()
}
}
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.section == 0 {
return 82.0
......@@ -362,6 +391,7 @@ extension YHCertificateUploadSheetView: (UIImagePickerControllerDelegate & UINav
} else {
printLog("pick image wrong")
self.dismiss()
}
// 收回图库选择界面
picker.dismiss(animated: true, completion: nil)
......
......@@ -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
if !isSilient {
YHHUD.show(.progress(message: "数据加载中..."))
}
let _ = YHNetRequest.getRequest(url: strUrl, params:params) { json, code in
if !isSilient {
YHHUD.hide()
}
printLog("model 是 ==> \(json)")
let dic = json.data
......@@ -198,4 +189,76 @@ class YHCertificateViewModel: YHBaseViewModel {
callBack(false, err)
}
}
// 更改证件
// operation参数必填,必须是:add(上传)、del(删除)、rename(重命名)
func updateCertificateItem(supplementId:Int, urlModel: YHContentUrl, operation:String, rename:String, callBack:(()->())?) {
var name = urlModel.name
if operation == "rename" {
name = rename
}
let dic:[String : Any] = [
"id" : supplementId,
"content_url": [
"name": name,
"url": urlModel.url,
"suffix": urlModel.suffix]]
let params: [String: Any] = [
"file_info" : [dic],
"operation" : operation,
]
YHHUD.show(.progress(message: "数据加载中..."))
self.updateCertificates(params: params) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
if operation == "del" {
if success {
YHHUD.flash(message: "删除成功")
} else {
var msg = "删除失败"
if let errorMsg = error?.errorMsg, !errorMsg.isEmpty {
msg = errorMsg
}
YHHUD.flash(message:msg)
}
callBack?()
return
}
if operation == "rename" {
if success {
YHHUD.flash(message: "重命名成功")
} else {
var msg = "重命名失败"
if let errorMsg = error?.errorMsg, !errorMsg.isEmpty {
msg = errorMsg
}
YHHUD.flash(message:msg)
}
callBack?()
return
}
if operation == "add" {
if success {
YHHUD.flash(message: "添加成功")
} else {
var msg = "添加失败"
if let errorMsg = error?.errorMsg, !errorMsg.isEmpty {
msg = errorMsg
}
YHHUD.flash(message:msg)
}
callBack?()
return
}
}
}
}
//
// YHFilePreviewTool.swift
// galaxy
//
// Created by edy on 2024/3/21.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFilePreviewTool: NSObject {
weak var targetVC: UIViewController!
init(targetVC: UIViewController!) {
self.targetVC = targetVC
}
func openXLSXRemoteFile(urlString: String) {
guard let url = URL(string: urlString) else { return }
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
DispatchQueue.main.async {
YHHUD.show(.progress(message: "加载文件中..."))
}
let task = session.downloadTask(with: url) { (tempLocalUrl, response, error) in
DispatchQueue.main.async {
YHHUD.hide()
}
if let tempLocalUrl = tempLocalUrl, error == nil {
// 下载完成,尝试打开文件
let fileManager = FileManager.default
let destination = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(response?.suggestedFilename ?? UUID().uuidString)
try? fileManager.moveItem(at: tempLocalUrl, to: destination)
// 打开文件
self.openXLSXFile(at: destination)
} else {
print("Error downloading the file: \(error?.localizedDescription ?? "Unknown error")")
DispatchQueue.main.async {
YHHUD.flash(message: "加载文件失败")
}
}
}
task.resume()
}
func openXLSXFile(at fileURL: URL) {
let controller = UIDocumentInteractionController(url: fileURL)
controller.delegate = self
DispatchQueue.main.async {
controller.presentPreview(animated: true)
}
}
}
extension YHFilePreviewTool: UIDocumentInteractionControllerDelegate {
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return targetVC
}
}
......@@ -84,9 +84,7 @@ extension YHBasicInfoFillViewController {
self.homeTableView.reloadData()
} else {
YHHUD.flash(message: error?.errorMsg ?? "发生错误,请重试")
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 1.5) {[weak self] in
self?.navigationController?.popViewController(animated: true)
}
self.navigationController?.popViewController(animated: true)
}
self.homeTableView.reloadData()
}
......@@ -226,10 +224,8 @@ extension YHBasicInfoFillViewController {
YHHUD.flash(message: title)
if isSaveFlag == false {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
self?.navigationController?.popViewController(animated: true)
}
}
} else {
let title = isSaveFlag ? "保存失败" : "提交失败"
......
......@@ -126,9 +126,7 @@ extension YHOtherInfoFillViewController {
YHHUD.flash(message:msg)
if flag == true {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 1.5) {[weak self] in
self?.navigationController?.popViewController(animated: true)
}
self.navigationController?.popViewController(animated: true)
}
} else {
......
......@@ -8,6 +8,7 @@
import UIKit
import AttributedString
import IQKeyboardManagerSwift
struct YHOtherPickerViewItemData {
let title : String
......@@ -47,7 +48,6 @@ class YHOtherPickerView: UIView {
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view
return view
}()
......@@ -136,6 +136,9 @@ class YHOtherPickerView: UIView {
}
static func show(type:YHOtherPickerViewType, selectType:YHFormPickerViewSubType? = nil, callBack: @escaping ((YHOtherPickerViewItemData)->Void)) {
IQKeyboardManager.shared.resignFirstResponder()
let picker = YHOtherPickerView(type: type)
picker.selectBlock = callBack
picker.show()
......
......@@ -21,7 +21,7 @@ class YHPreviewControllerHoldViewController: UIViewController {
var myDefaultNavItemIndex : Int = 0 {
didSet {
self.segmentedView.selectItemAt(index: myDefaultNavItemIndex)
self.segmentedView.selectItemAt(index: self.myDefaultNavItemIndex)
}
}
......
......@@ -113,13 +113,6 @@ private extension YHPreviewFamilyMemberViewController {
}
homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
homeTableView.reloadData()
//延迟刷新
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.clickButton(sender: self.parentButton)
self.homeTableView.reloadData()
}
}
......@@ -276,12 +269,15 @@ private extension YHPreviewFamilyMemberViewController {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
previewVM.getPreviewForFamilyInfo(params: ["order_id" : orderID]) { success, error in
if success == true {
} else {
}
self.layouButtons()
//延迟刷新
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.clickButton(sender: self.parentButton)
self.homeTableView.reloadData()
}
return
}
} else {
......
......@@ -23,13 +23,19 @@ class YHPreviewMainViewController: YHBaseViewController {
var myDefaultIndex : Int = 0 {
didSet {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 0.25) {[weak self] in
DispatchQueue.global().asyncAfter(wallDeadline: .now() ) {[weak self] in
DispatchQueue.main.async {
self?.cellView.myDefaultNavItemIndex = self?.myDefaultIndex ?? 0
}
}
}
}
let cellView: YHPreviewControllerHoldViewController = YHPreviewControllerHoldViewController()
lazy var cellView: YHPreviewControllerHoldViewController = {
let ttt = YHPreviewControllerHoldViewController()
ttt.myDefaultNavItemIndex = self.myDefaultIndex
return ttt
}()
var homeTableView: YHGestureTableView = {
let tableView = YHGestureTableView(frame: .zero, style: .grouped)
......
......@@ -7,6 +7,7 @@
//
import UIKit
import IQKeyboardManagerSwift
class YHPhoneLoginViewController: YHBaseViewController {
......@@ -171,6 +172,9 @@ class YHPhoneLoginViewController: YHBaseViewController {
}
@objc func getCode() {
IQKeyboardManager.shared.resignFirstResponder()
let phoneNumer = phoneMessageView.phoneTextField.text ?? ""
guard phoneNumer.isMobile() == true else {
YHHUD.flash(message: "请输入正确的手机号")
......
......@@ -16,6 +16,9 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
// var url = "https://www.baidu.com"
var url = "https://upload-cdn.galaxy-immi.com/crm/production/1620271613711.pdf"
// var url = "https://upload-cdn.galaxy-immi.com/crm/development/1616581669271.xlsx"
override func viewDidLoad() {
super.viewDidLoad()
......
......@@ -144,12 +144,7 @@ class YHAllApiName {
//获取验证
struct User {
#if DEBUG
// static let verifyCode = "user/verify-code"
//#else
static let verifyCode = "cuser/user/verify-code"
#endif
}
//预览相关接口
......
......@@ -20,7 +20,6 @@ class YHBaseUrlManager {
static let baseOSSUrlTest : String = "https://test-comserver.galaxy-immi.com/"
//正式环境-OSS
static let baseOSSUrlRelease : String = "http://comserver.galaxy-immi.com/"
// static let baseOSSUrlRelease : String = "http://comserver.galaxy-immi.com/" //正式环境
//h5开发环境-H5
static let h5UrlDev : String = ""
......@@ -29,6 +28,7 @@ class YHBaseUrlManager {
// MARK: - 当前使用的url
func curURL() -> String {
// return YHBaseUrlManager.baseUrlRelease //for test hjl
#if DEBUG
return YHBaseUrlManager.baseUrlTest
#else
......@@ -37,6 +37,7 @@ class YHBaseUrlManager {
}
func curOssURL() -> String {
// return YHBaseUrlManager.baseOSSUrlRelease //for test hjl
#if DEBUG
return YHBaseUrlManager.baseOSSUrlTest
#else
......@@ -52,6 +53,4 @@ class YHBaseUrlManager {
return YHBaseUrlManager.h5UrlRelease
#endif
}
}
{
"images" : [
{
"filename" : "a1ee8b3bd2c4f4969fd48d8db3c66fd 93.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Vector.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "fa969293-cb4c-490e-b597-3345266ff912 54.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "功能.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Rectangle 8294.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "摄图网_402396259_banner_职业商务女性精英形象(企业商用) 8.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Rectangle 2429.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Rectangle 8235.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Rectangle 2422.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group 33335186.png",
"idiom" : "universal",
"scale" : "1x"
},
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "Group 2843.png",
"filename" : "港澳通行证反面@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2842.png",
"filename" : "港澳通行证反面@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "Group 2842.png",
"filename" : "港澳通行证正面@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2841.png",
"filename" : "港澳通行证正面@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
{
"images" : [
{
"filename" : "Frame 3459.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3459.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3457.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3457.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group 3431.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3459.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3459.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group 2499.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group 3117.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Frame 3459.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Applicant.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"filename" : "Group 2918.png",
"idiom" : "universal",
"scale" : "1x"
},
......
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