Commit b1d9c069 authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

* 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  // sheetView
  // 证书上传sheetView
  123
  我的签字详情接口调试

# Conflicts:
#	galaxy/galaxy.xcodeproj/project.pbxproj
parents fa0cfa66 4e278faa
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -179,6 +179,7 @@ extension YHServiceCenterMainViewController : UITableViewDelegate,UITableViewDat
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
printLog("点击了 tableView Cell \(indexPath.section)")
//获取订单号
let orderId = serviceCenterMainReqVM.arrContactList[indexPath.section].id
......
//
// YHCertificateUploadSheetView.swift
// galaxy
//
// Created by edy on 2024/3/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
/*
【Usage】
YHCertificateUploadSheetView.sheetView.show {
[weak self] actionType in
guard let self = self else { return }
print("%d", actionType.rawValue)
}
*/
import UIKit
enum YHCertificateActionType: Int {
case sample = 1
case camera = 2
case photo = 3
case phoneFile = 4
case cancel = 5
}
class YHCertificateUploadItem {
var type: YHCertificateActionType
var title: String
var subtitle: String
init(type:YHCertificateActionType, title: String, subtitle: String = "") {
self.type = type
self.title = title
self.subtitle = subtitle
}
}
class YHCertificateUploadItemView: UIView {
let item: YHCertificateUploadItem
lazy var topLine:UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.textAlignment = .center
label.font = UIFont.PFSC_M(ofSize:14)
return label
}()
lazy var subTitleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.labelTextColor2
label.textAlignment = .center
label.font = UIFont.PFSC_R(ofSize:11)
return label
}()
init(_ item: YHCertificateUploadItem) {
self.item = item
super.init(frame:CGRect(x: 0, y: 0, width: KScreenWidth, height: 52.0))
self.createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
self.tag = self.item.type.rawValue
self.addSubview(titleLabel)
self.addSubview(subTitleLabel)
self.addSubview(topLine)
titleLabel.text = item.title
subTitleLabel.text = item.subtitle
subTitleLabel.isHidden = item.subtitle.isEmpty
if item.type == .cancel {
titleLabel.textColor = UIColor(hexString:"#909090")
}
titleLabel.snp.makeConstraints { make in
make.height.equalTo(20)
make.left.right.equalToSuperview()
if item.subtitle.isEmpty {
make.centerY.equalToSuperview()
} else {
make.bottom.equalTo(self.snp.centerY)
}
}
subTitleLabel.snp.makeConstraints { make in
make.height.equalTo(16)
make.left.right.equalToSuperview()
make.top.equalTo(titleLabel.snp.bottom)
}
topLine.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalToSuperview()
make.height.equalTo(1)
}
}
}
class YHCertificateSampleTemplateView: UIView {
lazy var iconImgV: UIImageView = {
let imgView = UIImageView(image:UIImage(named:"my_cer_template"))
return imgView
}()
lazy var arrowImgV: UIImageView = {
let imgView = UIImageView(image:UIImage(named:"form_right_arrow"))
return imgView
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.text = "查看证件示例模版".local
label.textColor = UIColor.mainTextColor
label.textAlignment = .left
label.font = UIFont.PFSC_B(ofSize:14)
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
self.addSubview(iconImgV)
self.addSubview(titleLabel)
self.addSubview(arrowImgV)
iconImgV.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(16)
}
titleLabel.snp.makeConstraints { make in
make.height.equalTo(20)
make.centerY.equalToSuperview()
make.left.equalTo(iconImgV.snp.right).offset(12)
make.right.equalTo(arrowImgV.snp.left).offset(-5)
}
arrowImgV.snp.makeConstraints { make in
make.width.height.equalTo(20)
make.centerY.equalToSuperview()
make.right.equalToSuperview().offset(-13)
}
}
}
class YHCertificateUploadSheetView: UIView {
static let sheetView = YHCertificateUploadSheetView(frame:UIScreen.main.bounds)
var action:((YHCertificateActionType)->())?
lazy var blackMaskView: UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0x0F1214, alpha: 0.5)
let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss))
view.addGestureRecognizer(tap)
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var topView:UIView = {
let view = UIView()
view.addSubview(titleLabel)
view.addSubview(closeBtn)
let line = UIView()
line.backgroundColor = .separatorColor
view.addSubview(line)
titleLabel.snp.makeConstraints { make in
make.top.equalToSuperview().offset(16)
make.left.right.equalToSuperview()
make.height.equalTo(24)
}
closeBtn.snp.makeConstraints { make in
make.centerY.equalTo(titleLabel)
make.right.equalToSuperview().offset(-20)
make.width.height.equalTo(24)
}
line.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.height.equalTo(1)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.bottom.equalToSuperview()
}
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.textAlignment = .center
label.font = UIFont.PFSC_B(ofSize:17)
label.text = "请选择上传方式"
return label
}()
lazy var closeBtn: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named:"my_cer_sheet_close"), for: .normal)
btn.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
return btn
}()
lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.textAlignment = .left
label.font = UIFont.PFSC_R(ofSize:14)
label.numberOfLines = 0
label.text = "注意事项:这里是上传应该注意的事项这里是上传应该注意的事项这里是上传应该注意的事项。"
return label
}()
lazy var templateView: YHCertificateSampleTemplateView = {
let view = YHCertificateSampleTemplateView(frame:CGRectZero)
view.tag = YHCertificateActionType.sample.rawValue
view.backgroundColor = .contentBkgColor
view.layer.cornerRadius = 6.0
view.clipsToBounds = true
let tap = UITapGestureRecognizer(target:self, action:#selector(action(_:)))
view.addGestureRecognizer(tap)
return view
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
func createUI() {
self.addSubview(blackMaskView)
self.addSubview(whiteContentView)
whiteContentView.addSubview(topView)
whiteContentView.addSubview(templateView)
whiteContentView.addSubview(tipsLabel)
let itemView1 = YHCertificateUploadItemView(YHCertificateUploadItem(type:.camera, title:"拍照上传"))
let itemView2 = YHCertificateUploadItemView(YHCertificateUploadItem(type:.photo, title:"相册上传"))
let itemView3 = YHCertificateUploadItemView(YHCertificateUploadItem(type:.phoneFile, title:"手机文件上传", subtitle:"从手机文件管理中上传"))
let itemView4 = YHCertificateUploadItemView(YHCertificateUploadItem(type:.cancel, title:"取消"))
let itemViewArr = [itemView1, itemView2, itemView3, itemView4]
whiteContentView.addSubviews(itemViewArr)
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(16.0, 16.0));
let layer = CAShapeLayer();
layer.frame = whiteContentView.bounds;
layer.path = path.cgPath;
whiteContentView.layer.mask = layer;
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalToSuperview().offset(355)
}
topView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
}
tipsLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalTo(topView.snp.bottom).offset(20)
}
templateView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalTo(tipsLabel.snp.bottom).offset(20)
make.height.equalTo(62.0)
}
for (index, itemView) in itemViewArr.enumerated() {
let tap = UITapGestureRecognizer(target:self, action:#selector(action(_:)))
itemView.addGestureRecognizer(tap)
itemView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(templateView.snp.bottom).offset(20 + index * 52)
make.height.equalTo(52.0)
}
}
}
}
extension YHCertificateUploadSheetView {
func show(_ action:((YHCertificateActionType)->())?) {
self.action = action
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
self.removeFromSuperview()
}
@objc func action(_ sender:UITapGestureRecognizer) {
if let targetView = sender.view {
let tag = targetView.tag
if let type = YHCertificateActionType(rawValue:tag), let action = action {
action(type)
}
}
}
}
//
// YHMySignatureDetailViewController.swift
// galaxy
//
// Created by EDY on 2024/3/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMySignatureDetailViewController: YHBaseViewController {
var bottomView: UIView!
var bottomButton: UIButton!
var tableView: UITableView!
var dataSource: [YHWorkItemListModel]?
var viewModel: YHMySignatureDetailViewModel?
var id: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
viewModel = YHMySignatureDetailViewModel()
gk_navTitle = "我的签字"
setView()
getData()
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
getData()
}
func getData() {
viewModel?.requestSignatureDetail("\(id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.tableView.reloadData()
})
}
func updateDataSource() {
self.tableView.reloadData()
}
func setView() {
tableView = {
let tableView = UITableView(frame:.zero, style:.plain)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(cellWithClass: YHMySignatureListTableViewCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.bottom.equalTo(view)
}
bottomView = {
let bottom = UIView()
bottom.backgroundColor = .white
return bottom
}()
view.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(k_Height_safeAreaInsetsBottom() + 64)
}
bottomButton = {
let button = UIButton(type: .custom)
// button.backgroundColor = UIColor(hex:0x2274ee)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
button.contentHorizontalAlignment = .center
button.setTitle("提交", for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = kCornerRadius6
button.clipsToBounds = true
button.addTarget(self, action: #selector(submit), for: .touchUpInside)
return button
}()
bottomView.addSubview(bottomButton)
bottomButton.snp.makeConstraints { make in
make.right.equalTo(-16)
make.top.equalTo(8)
make.height.equalTo(48)
make.left.equalTo(16)
}
bottomButton.layoutIfNeeded()
bottomButton.addYinHeGradualLayer()
}
@objc func submit() {
}
}
extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHMySignatureListTableViewCell.self)
cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return CGFloat(82)
}
}
......@@ -14,9 +14,7 @@ class YHMySignatureListViewController: YHBaseViewController {
var tableView: UITableView!
var dataSource: [YHWorkItemListModel]?
var viewModel: YHMySignatureListViewModel?
var isMore: Bool = false
var orderId: Int = 0
var showPrompt: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
viewModel = YHMySignatureListViewModel()
......@@ -34,6 +32,7 @@ class YHMySignatureListViewController: YHBaseViewController {
func getData() {
viewModel?.requestSignatureList("\(orderId)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.tableView.reloadData()
})
}
......@@ -104,11 +103,12 @@ class YHMySignatureListViewController: YHBaseViewController {
extension YHMySignatureListViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
return viewModel?.mainModel?.list.count ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHMySignatureListTableViewCell.self)
cell.dataSource = viewModel?.mainModel?.list[indexPath.row]
cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear
return cell
......@@ -117,5 +117,12 @@ extension YHMySignatureListViewController: UITableViewDelegate, UITableViewDataS
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return CGFloat(82)
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let model = viewModel?.mainModel?.list[indexPath.row]
let vc = YHMySignatureDetailViewController()
vc.id = model?.id ?? 0
self.navigationController?.pushViewController(vc)
}
}
//
// YHMySignatureDetailModel.swift
// galaxy
//
// Created by EDY on 2024/3/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMySignatureDetailModel: YHBaseModel {
var id: Int = 0
var order_id: Int = 0
var doc_type: Int = 0
var doc_send: String = ""
var doc_type_name: String = ""
var doc_return: [String] = []
var doc_return_manual: [String] = []
var is_upload: Int = 0
var is_show_button: Bool = false
var status: Int = 0
}
......@@ -12,6 +12,11 @@ class YHMySignatureListTableViewCell: UITableViewCell {
var centerView: UIView!
var titleLabel: UILabel!
var subTitleLabel: UILabel!
var dataSource: YHMySignatureModel? {
didSet {
updateAllViews()
}
}
override func awakeFromNib() {
super.awakeFromNib()
......@@ -53,7 +58,6 @@ class YHMySignatureListTableViewCell: UITableViewCell {
titleLabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 17)
label.text = "主申请人工作经历"
label.textColor = UIColor.mainTextColor
return label
}()
......@@ -67,7 +71,6 @@ class YHMySignatureListTableViewCell: UITableViewCell {
subTitleLabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 12)
label.text = "(从最近一份全职工作开始,直至毕业后的第一份工作)"
label.textColor = UIColor.labelTextColor2
label.textAlignment = .right
return label
......@@ -82,7 +85,9 @@ class YHMySignatureListTableViewCell: UITableViewCell {
}
func updateAllViews() {
guard let dataSource = dataSource else { return }
titleLabel.text = dataSource.doc_name
subTitleLabel.text = "\(dataSource.doc_type)"
}
}
//
// YHMySignatureDetailViewModel.swift
// galaxy
//
// Created by EDY on 2024/3/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMySignatureDetailViewModel: YHBaseViewModel {
var mainModel: YHMySignatureDetailModel?
override init() {
super.init()
}
func requestSignatureDetail(_ id: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
// let params: [String : Any] = ["order_id": orderId]
let params: [String : Any] = ["id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Signature.detail
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = YHMySignatureDetailModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false,nil)
return
}
self.mainModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
}
......@@ -10,25 +10,26 @@ import UIKit
class YHMySignatureListViewModel: YHBaseViewModel {
var mainModel: [YHWorkItemListModel]?
var mainModel: YHMySignatureListModel?
override init() {
super.init()
}
func requestSignatureList(_ orderId: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
let params: [String : Any] = ["order_id": orderId]
// let params: [String : Any] = ["order_id": orderId]
let params: [String : Any] = ["order_id": 134154]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Signature.list
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = YHWorkModel.deserialize(from: dic as? Dictionary) else {
guard let result = YHMySignatureListModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false,nil)
return
}
self.mainModel = result.list
self.mainModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
......
......@@ -179,7 +179,8 @@ class YHAllApiName {
struct Signature {
// 签字列表
static let list = "/infoflow/my-sign/list"
static let list = "infoflow/my-sign/list"
// 签字详情
static let detail = "infoflow/my-sign/detail"
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2848@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2848@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Frame@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Frame@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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