Commit 47024c9e authored by David黄金龙's avatar David黄金龙

Merge commit '7845195c' into davidhuang

* commit '7845195c':
  列表
  工作经验列表UI
  // 专业资格
  // 学历信息
  // 我的设置
  // 我的设置

# Conflicts:
#	galaxy/galaxy/Classes/Tools/NetWork/YHNetRequest.swift
parents db6cafb9 7845195c
This diff is collapsed.
...@@ -333,9 +333,13 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource ...@@ -333,9 +333,13 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 3 { } else if indexPath.row == 3 {
//学历/专业资格 //学历/专业资格
let vc = YHEducationalQualificationVC()
navigationController?.pushViewController(vc)
} else if indexPath.row == 4 { } else if indexPath.row == 4 {
//工作经历 //工作经历
let vc = YHWorkExperienceListViewController()
navigationController?.pushViewController(vc)
} else if indexPath.row == 5 { } else if indexPath.row == 5 {
//其他信息 //其他信息
let vc = YHOtherInfoFillViewController() let vc = YHOtherInfoFillViewController()
......
...@@ -64,6 +64,14 @@ enum YHFormTitleItemType:Int, CaseIterable { ...@@ -64,6 +64,14 @@ enum YHFormTitleItemType:Int, CaseIterable {
case isPreviousMarriageChild case isPreviousMarriageChild
// 兄弟姐妹信息 // 兄弟姐妹信息
case brotherInfo case brotherInfo
// 主申请人学历
case mainApplicantEducation
// 主申请人专业资格及会员资格
case mainApplicantProfessionalQualification
// 学历证书姓名及出生日期正确性
case edutionalCertificateNameAndBirthday
} }
...@@ -160,7 +168,37 @@ enum YHFormDetailItemType:Int { ...@@ -160,7 +168,37 @@ enum YHFormDetailItemType:Int {
// 兄弟姐妹姓名 // 兄弟姐妹姓名
case brotherName case brotherName
// 学历信息相关
case educationInfo
// 学校全称
case universityFullName
// 授课形式
case educationStyle
// 入学年月
case educationTime
// 毕业年月
case graduateTime
// 专业
case educationMajor
// 学位
case educationDegree
// 学位类型
case degreeType
// 上课国家/地区
case educationCountry
// 上课城市
case educationCity
// 资格证书名称
case qualificationCertificateName
// 颁授机构全称
case conferAgencyFullName
// 颁授年份
case conferTime
// 颁授国家/地区
case conferCountry
// 颁授城市
case conferCity
} }
//添加item //添加item
...@@ -242,6 +280,12 @@ class YHFormTitleItem : YHFormItemProtocol { ...@@ -242,6 +280,12 @@ class YHFormTitleItem : YHFormItemProtocol {
return "是否前次婚姻子女".local return "是否前次婚姻子女".local
case .brotherInfo: case .brotherInfo:
return "兄弟姐妹信息".local return "兄弟姐妹信息".local
case .mainApplicantEducation:
return "主申请人学历".local
case .mainApplicantProfessionalQualification:
return "主申请人专业资格及会员资格".local
case .edutionalCertificateNameAndBirthday:
return "学历证书姓名及出生日期正确性".local
} }
} }
...@@ -256,6 +300,12 @@ class YHFormTitleItem : YHFormItemProtocol { ...@@ -256,6 +300,12 @@ class YHFormTitleItem : YHFormItemProtocol {
return String(format: "(%@)", "如无可不填".local) return String(format: "(%@)", "如无可不填".local)
case .child: case .child:
return String(format: "(%@)", "如无可不填".local) return String(format: "(%@)", "如无可不填".local)
case .mainApplicantEducation:
return "(请从大专开始写起)".local
case .mainApplicantProfessionalQualification:
return "(如有,非必填)".local
case .edutionalCertificateNameAndBirthday:
return "".local
case .isPreviousMarriageChild: case .isPreviousMarriageChild:
return "".local return "".local
case .accompany: case .accompany:
...@@ -429,6 +479,39 @@ class YHFormDetailItem : YHFormItemProtocol { ...@@ -429,6 +479,39 @@ class YHFormDetailItem : YHFormItemProtocol {
case .onlyDoubleChoice: case .onlyDoubleChoice:
return "".local return "".local
case .educationInfo:
return "".local
case .universityFullName:
return "学校全称".local
case .educationStyle:
return "授课形式".local
case .educationTime:
return "入学年月".local
case .graduateTime:
return "毕业年月".local
case .educationMajor:
return "专业".local
case .educationDegree:
return "学位".local
case .degreeType:
return "学位类型".local
case .educationCountry:
return "上课国家/地区".local
case .educationCity:
return "上课城市".local
case .qualificationCertificateName:
return "资格证书名称".local
case .conferAgencyFullName:
return "颁授机构全称".local
case .conferTime:
return "颁授年份".local
case .conferCountry:
return "颁授国家/地区".local
case .conferCity:
return "颁授城市".local
} }
} }
...@@ -879,8 +962,6 @@ class YHCertificates: SmartCodable { ...@@ -879,8 +962,6 @@ class YHCertificates: SmartCodable {
// MARK: - YHCNIdentityCard // MARK: - YHCNIdentityCard
class YHCNIdentityCard: SmartCodable { class YHCNIdentityCard: SmartCodable {
var id: Int = 0 var id: Int = 0
var number: String? var number: String?
var issueAt: String? var issueAt: String?
......
...@@ -289,6 +289,8 @@ class HKDegreeInfoItemView: UIView { ...@@ -289,6 +289,8 @@ class HKDegreeInfoItemView: UIView {
make.bottom.equalToSuperview().offset(-16) make.bottom.equalToSuperview().offset(-16)
} }
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
@objc func tap() { @objc func tap() {
......
...@@ -215,6 +215,8 @@ class YHFormItemDoubleChoiceCell: UITableViewCell { ...@@ -215,6 +215,8 @@ class YHFormItemDoubleChoiceCell: UITableViewCell {
make.bottom.equalToSuperview().offset(-16) make.bottom.equalToSuperview().offset(-16)
} }
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
// 更新答案按钮选中状态 // 更新答案按钮选中状态
......
...@@ -181,6 +181,8 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -181,6 +181,8 @@ class YHFormItemExpireDateCell: UITableViewCell {
make.bottom.equalToSuperview().offset(-16) make.bottom.equalToSuperview().offset(-16)
} }
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
func updateUI() { func updateUI() {
......
...@@ -158,6 +158,8 @@ class YHFormItemInputTextCell: UITableViewCell { ...@@ -158,6 +158,8 @@ class YHFormItemInputTextCell: UITableViewCell {
make.bottom.equalToSuperview().offset(-16) make.bottom.equalToSuperview().offset(-16)
} }
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
......
...@@ -167,5 +167,7 @@ class YHFormItemSelectSheetCell: UITableViewCell { ...@@ -167,5 +167,7 @@ class YHFormItemSelectSheetCell: UITableViewCell {
make.bottom.equalToSuperview().offset(-16) make.bottom.equalToSuperview().offset(-16)
} }
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
} }
//
// YHWorkExperienceListViewController.swift
// galaxy
//
// Created by EDY on 2024/2/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWorkExperienceListViewController: YHBaseViewController {
var bottomView: UIView!
var bottomButton: UIButton!
var tableView: UITableView!
var dataSource: [YHWorkItemListModel]?
var viewModel: YHWorkItemListViewModel?
override func viewDidLoad() {
super.viewDidLoad()
viewModel = YHWorkItemListViewModel()
gk_navTitle = "工作经验信息填写"
setView()
getData()
// Do any additional setup after loading the view.
}
func getData() {
dataSource = viewModel?.getBaseDataSource()
updateDataSource()
}
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: YHWorkExperienceListTableViewCell.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 = kBoldFont(size: 16)
button.contentHorizontalAlignment = .center
button.setTitle("提交", for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = 6
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)
}
}
@objc func submit() {
}
}
extension YHWorkExperienceListViewController: 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: YHWorkExperienceListTableViewCell.self)
cell.dataSource = dataSource
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let number = dataSource?.count ?? 0
if number == 0 {
return CGFloat(16 + 216)
} else {
return CGFloat(16 + 154 + 76 * number)
}
}
}
//
// YHWorkItemListModel.swift
// galaxy
//
// Created by EDY on 2024/2/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
struct YHWorkItemListModel {
var title: String?
var subTitle: String?
var message: String?
var isShowDelete: Bool?
init(title: String? = nil, subTitle: String? = nil, message: String? = nil, isShowDelete: Bool? = nil) {
self.title = title
self.subTitle = subTitle
self.message = message
self.isShowDelete = isShowDelete
}
}
//
// YHWorkExperienceListTableViewCell.swift
// galaxy
//
// Created by EDY on 2024/2/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWorkExperienceListTableViewCell: UITableViewCell {
typealias ExperienceListBlock = (_ model: YHItemModel) -> ()
var experienceListBlock: ExperienceListBlock?
var centerView: UIView!
var titleLabel: UILabel!
var subTitleLabel: UILabel!
var cannalButton: UIButton!
var moreButton: UIButton!
var mainItemView: UIView!
var bottomView: YHWorkItemAddView!
var dataSource: [YHWorkItemListModel]?{
didSet {
updateAllViews()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setupUI()
}
func setupUI() {
backgroundColor = UIColor(hex: 0xe9e9e9)
centerView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = 12
return view
}()
contentView.addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(7)
make.bottom.equalTo(-7)
}
titleLabel = {
let label = UILabel()
label.font = kFont(size: 16)
label.text = "主申请人工作经历"
label.textColor = UIColor(hex:0x222222)
return label
}()
centerView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(20)
make.top.equalTo(23)
make.height.equalTo(24)
make.right.equalTo(-20)
}
subTitleLabel = {
let label = UILabel()
label.font = kFont(size: 12)
label.text = "(从最近一份全职工作开始,直至毕业后的第一份工作)"
label.textColor = UIColor(hex:0x888f98)
return label
}()
centerView.addSubview(subTitleLabel)
subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(20)
make.top.equalTo(50)
make.height.equalTo(20)
make.right.equalTo(-20)
}
cannalButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = kBoldFont(size: 14)
button.contentHorizontalAlignment = .center
button.setTitle("取消操作", for: .normal)
button.setTitleColor( UIColor(hex:0x2f7ef6), for: .normal)
button.addTarget(self, action: #selector(cannal), for: .touchUpInside)
button.isHidden = true
return button
}()
centerView.addSubview(cannalButton)
cannalButton.snp.makeConstraints { make in
make.right.equalTo(-18)
make.top.equalTo(24)
make.height.equalTo(20)
make.width.equalTo(60)
}
moreButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage(named: "work_more"), for: .normal)
button.addTarget(self, action: #selector(more), for: .touchUpInside)
return button
}()
centerView.addSubview(moreButton)
moreButton.snp.makeConstraints { make in
make.right.equalTo(-18)
make.top.equalTo(24)
make.height.equalTo(24)
make.width.equalTo(24)
}
mainItemView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = 12
return view
}()
centerView.addSubview(mainItemView)
mainItemView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(-65)
make.top.equalTo(85)
}
bottomView = {
let view = YHWorkItemAddView()
return view
}()
centerView.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.right.bottom.equalTo(-18)
make.left.equalTo(18)
make.height.equalTo(45)
}
}
func updateAllViews() {
mainItemView.removeSubviews()
guard let dataSource = dataSource else {
let line = UIView()
line.backgroundColor = UIColor(hex: 0xf0f0f0)
mainItemView.addSubview(line)
line.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalToSuperview()
make.height.equalTo(1)
make.right.equalTo(-18)
}
let itemView = YHWorkItemView()
itemView.dataSource = YHWorkItemListModel(title: "工作经历1", subTitle: "", message: "有16项未填写", isShowDelete: false)
itemView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.experienceListBlock {
block(model)
}
}
mainItemView.addSubview(itemView)
itemView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(1)
make.height.equalTo(51)
make.right.equalTo(-18)
}
return
}
for i in 0 ..< dataSource.count {
let line = UIView()
line.backgroundColor = UIColor(hex: 0xf0f0f0)
mainItemView.addSubview(line)
line.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(76 * i)
make.height.equalTo(1)
make.right.equalTo(-18)
}
let itemView = YHWorkItemView()
itemView.dataSource = dataSource[i]
itemView.block = {[weak self] model in
guard let self = self else { return }
if let block = self.experienceListBlock {
block(model)
}
}
mainItemView.addSubview(itemView)
itemView.snp.makeConstraints { make in
make.left.equalTo(18)
make.top.equalTo(76 * i + 1)
make.height.equalTo(75)
make.right.equalTo(-18)
}
}
}
@objc func cannal() {
}
@objc func more() {
}
}
//
// YHWorkItemAddView.swift
// galaxy
//
// Created by EDY on 2024/2/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWorkItemAddView: UIView {
let btnTitleColor:UIColor = .brandMainColor
let btnHeight = 44.0
let cornerRadius = 4.0
var clickBlock:(()->Void)?
var title:String? {
didSet {
addBtn.setTitle(title, for: .normal)
}
}
lazy var addBtn: UIButton = {
let btn = UIButton()
btn.setTitle("新增信息".local, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 14)
btn.setTitleColor(btnTitleColor, for: .normal)
btn.iconInLeft(spacing: 6)
btn.setImage(UIImage(named: "form_add_info"), for: .normal)
btn.addTarget(self, action: #selector(didClickAddBtn), for: .touchUpInside)
return btn
}()
lazy var dotLineLayer:CAShapeLayer = {
let borderLayer = CAShapeLayer()
borderLayer.position = CGPoint(x: addBtn.bounds.midX, y: addBtn.bounds.midY);
borderLayer.path = UIBezierPath(roundedRect: borderLayer.bounds, cornerRadius: addBtn.layer.cornerRadius).cgPath
borderLayer.lineWidth = 1
//[数组第一个数字表示单个虚线长度,第二个数字表示间隔]
borderLayer.lineDashPattern = [3,1] as [NSNumber]?
//前边是虚线的长度,后边是虚线之间空隙的长度
borderLayer.lineDashPhase = 0.1
//实线边框
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = btnTitleColor.cgColor
return borderLayer
}()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupUI() {
addSubview(addBtn)
addBtn.layer.addSublayer(dotLineLayer)
addBtn.snp.makeConstraints { make in
make.left.top.equalToSuperview()
make.right.bottom.equalToSuperview()
}
}
override func layoutSubviews() {
super.layoutSubviews()
print(addBtn.bounds)
dotLineLayer.path = UIBezierPath(roundedRect: addBtn.bounds, cornerRadius: cornerRadius).cgPath
}
@objc func didClickAddBtn() {
if let clickBlock = clickBlock {
clickBlock()
}
}
}
//
// YHWorkItemView.swift
// galaxy
//
// Created by EDY on 2024/2/7.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWorkItemView: UIView {
typealias ItemBlock = (_ model: YHItemModel) -> ()
var block: ItemBlock?
var titleLabel: UILabel!
var subTitleLabel: UILabel!
var explainLabel: UILabel!
var nextStepImageView: UIImageView!
var deleteButton: UIButton!
var centerButton: UIButton!
var dataSource: YHWorkItemListModel? {
didSet {
updateAllViews()
}
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
titleLabel = {
let label = UILabel()
label.font = kBoldFont(size: 14)
label.textAlignment = .left
label.textColor = UIColor(hex:0x222222)
return label
}()
addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview()
make.top.equalTo(16)
make.width.equalTo(112)
make.height.equalTo(20)
}
subTitleLabel = {
let label = UILabel()
label.font = kBoldFont(size: 12)
label.textAlignment = .left
label.textColor = UIColor(hex:0x888f98)
return label
}()
addSubview(subTitleLabel)
subTitleLabel.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.height.equalTo(20)
make.top.equalTo(40)
}
explainLabel = {
let label = UILabel()
label.font = kBoldFont(size: 14)
label.textAlignment = .right
label.textColor = UIColor(hex:0x888f98)
return label
}()
addSubview(explainLabel)
explainLabel.snp.makeConstraints { make in
make.right.equalTo(-24)
make.left.equalTo(titleLabel.snp.right)
make.height.equalTo(20)
make.centerY.equalTo(titleLabel.snp.centerY)
}
nextStepImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "form_right_arrow")
return imageView
}()
addSubview(nextStepImageView)
nextStepImageView.snp.makeConstraints { make in
make.right.equalToSuperview()
make.centerY.equalToSuperview()
make.height.width.equalTo(20)
}
centerButton = {
let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(centerClick), for: .touchUpInside)
return button
}()
addSubview(centerButton)
centerButton.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview()
make.left.equalTo(112)
}
deleteButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = kFont(size: 14)
button.contentHorizontalAlignment = .center
button.setTitle("删除", for: .normal)
button.setTitleColor( UIColor(hex:0xf81d22), for: .normal)
button.addTarget(self, action: #selector(centerClick), for: .touchUpInside)
button.isHidden = true
return button
}()
addSubview(deleteButton)
deleteButton.snp.makeConstraints { make in
make.right.equalTo(-24)
make.height.equalTo(20)
make.width.equalTo(28)
make.centerY.equalTo(titleLabel.snp.centerY)
}
}
func updateAllViews() {
guard let dataSource = dataSource else { return }
titleLabel.text = dataSource.title
subTitleLabel.text = dataSource.subTitle
explainLabel.text = dataSource.message
if dataSource.isShowDelete ?? false {
deleteButton.isHidden = false
explainLabel.isHidden = true
} else {
deleteButton.isHidden = true
explainLabel.isHidden = false
}
}
@objc func centerClick() {
}
}
//
// YHWorkItemListViewModel.swift
// galaxy
//
// Created by EDY on 2024/2/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWorkItemListViewModel: YHBaseViewModel {
var mainModel: YHMainInformationModel = YHMainInformationModel()
override init() {
super.init()
}
func getBaseDataSource() -> [YHWorkItemListModel] {
let item = YHWorkItemListModel(title: "华为有限公司", subTitle: "后端开发工程师", message: "2019.07-至今", isShowDelete: false)
return [item]
}
}
//
// YHEducationalQualificationVC.swift
// galaxy
//
// Created by edy on 2024/2/7.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHEducationalQualificationVC: YHBaseViewController {
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel()
var familyMemberInfo: YHFamilyMemberGroupInfo?
var isChildsEditMode: YHFormTitleItemEditType = .none
var isBrothersEditMode: YHFormTitleItemEditType = .none
var items:[[YHFormItemProtocol]] = []
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.plain)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.showsVerticalScrollIndicator = false
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHEducationInfoCell.self, forCellReuseIdentifier: YHEducationInfoCell.cellReuseIdentifier)
tableView.register(YHFormItemTitleCell.self, forCellReuseIdentifier: YHFormItemTitleCell.cellReuseIdentifier)
tableView.register(YHFormItemAddCell.self, forCellReuseIdentifier: YHFormItemAddCell.cellReuseIdentifier)
return tableView
}()
var bottomView: YHSaveAndSubmitView = {
let view = YHSaveAndSubmitView.createView()
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.gk_navTitle = "学历/专业资格填写".local
view.backgroundColor = UIColor(hexString:"#F8F8F8")
createUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
func createUI() {
view.addSubview(tableView);
view.addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-k_Height_safeAreaInsetsBottom())
make.height.equalTo(YHSaveAndSubmitView.height)
}
tableView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(bottomView.snp.top)
make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-16)
}
loadInfo()
}
func loadInfo() {
items.removeAll()
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .educationInfo)
let arr0:[YHFormItemProtocol] = [title0, item00]
items.append(arr0)
self.tableView.reloadData()
}
}
extension YHEducationalQualificationVC : UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section >= items.count { return 0 }
let arr = items[section]
return arr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section >= items.count { return createDefaultCell(indexPath) }
let arr:[YHFormItemProtocol] = items[indexPath.section]
if indexPath.row >= arr.count { return createDefaultCell(indexPath) }
let item:YHFormItemProtocol = arr[indexPath.row]
if item is YHFormTitleItem { // 是标题
let formItem = item as! YHFormTitleItem
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
cell.titleLabel.text = formItem.getTitle()
cell.subTitleLabel.text = formItem.getSubTitle()
// 决定右边按钮显示样式
cell.showEditType(type: .none)
// if formItem.type == .child {
// cell.showEditType(type: isChildsEditMode)
//
// } else if formItem.type == .brother {
// cell.showEditType(type: isBrothersEditMode)
// }
// 右边按钮点击事件处理
cell.rightClickBlock = { [weak self] type in
guard let self = self else { return }
}
return cell
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .educationInfo {
let cell = tableView.dequeueReusableCell(withIdentifier: YHEducationInfoCell.cellReuseIdentifier, for: indexPath) as! YHEducationInfoCell
return cell
}
}
let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath)
return cell
}
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.section >= items.count { return }
let arr:[YHFormItemProtocol] = items[indexPath.section]
if indexPath.row >= arr.count { return }
createCorner(cell: cell, arr: arr, indexPath: indexPath)
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let arr = items[indexPath.section]
let item:YHFormItemProtocol = arr[indexPath.row]
if item is YHFormTitleItem { // 是标题
return 52.0
} else if item is YHFormAddItem { // 新增子女兄妹
return 70.0
}
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 14.0
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let arr = items[indexPath.section]
let item:YHFormItemProtocol = arr[indexPath.row]
// 标题
if item is YHFormTitleItem {
return
}
let vc = YHEducationDetailVC()
self.navigationController?.pushViewController(vc)
}
func createDefaultCell(_ indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath)
return cell
}
func createCorner(cell:UITableViewCell, arr:Array<Any>, indexPath:IndexPath) {
// 设置每块section圆角
if (indexPath.row == 0) {
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
cell.createCorner(CGSizeMake(12.0, 12.0), corner)
} else if (indexPath.row == arr.count-1) {
let corner = UIRectCorner(rawValue: UIRectCorner.bottomLeft.rawValue | UIRectCorner.bottomRight.rawValue)
cell.createCorner(CGSizeMake(12.0, 12.0), corner)
} else {
cell.layer.mask = nil
}
}
}
//
// YHEducationInfoCell.swift
// galaxy
//
// Created by edy on 2024/2/7.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHEducationInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHEducationInfoCell"
let horizonalGap = 18.0
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.font = UIFont.PFSC_B(ofSize: 14)
return label
}()
private lazy var subTitleLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
return label
}()
private lazy var timeLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .right
label.font = UIFont.PFSC_R(ofSize: 12)
return label
}()
private lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
label.isHidden = true
return label
}()
private lazy var arrowImgView: UIImageView = {
let imgView = UIImageView(image: UIImage(named: "form_right_arrow"))
return imgView
}()
private lazy var bottomLine:UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
view.isHidden = true
return view
}()
// 是否展示底部分割线
var isShowBottomLine:Bool = false {
didSet {
bottomLine.isHidden = !isShowBottomLine
}
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
contentView.addSubview(titleLabel)
contentView.addSubview(subTitleLabel)
contentView.addSubview(timeLabel)
contentView.addSubview(arrowImgView)
contentView.addSubview(tipsLabel)
contentView.addSubview(bottomLine)
titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
titleLabel.text = "啊发沙发沙发"
subTitleLabel.text = "法术法"
timeLabel.text = "2141234124214123412421412341242141234124"
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalTo(timeLabel.snp.left).offset(-8)
make.top.equalToSuperview().offset(16)
}
timeLabel.snp.makeConstraints { make in
make.right.equalTo(arrowImgView.snp.left)
make.centerY.equalTo(titleLabel)
}
arrowImgView.snp.makeConstraints { make in
make.width.height.equalTo(20.0)
make.centerY.equalTo(titleLabel)
make.right.equalToSuperview().offset(-horizonalGap)
}
subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(titleLabel)
make.top.equalTo(titleLabel.snp.bottom).offset(4)
make.right.equalToSuperview().offset(-horizonalGap)
}
bottomLine.snp.makeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.height.equalTo(1.0)
make.bottom.equalToSuperview()
}
setTips("asdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfa", isShow: true)
}
func setTips(_ tips:String?, isShow:Bool) {
tipsLabel.text = tips
tipsLabel.isHidden = !isShow
if isShow {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(subTitleLabel.snp.bottom)
make.bottom.equalToSuperview().offset(-16)
}
} else {
tipsLabel.snp.remakeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalToSuperview().offset(-horizonalGap)
make.top.equalTo(subTitleLabel.snp.bottom)
make.height.equalTo(0)
make.bottom.equalToSuperview().offset(-16)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
//
// YHMySettingViewController.swift
// galaxy
//
// Created by edy on 2024/2/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SnapKit
import NEConversationUIKit
class YHMySettingViewController: YHBaseViewController, ConstraintRelatableTarget {
lazy var tableView: UITableView = {
let tableView = UITableView(frame: CGRect.zero, style:.plain)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.register(YHMySettingCell.self, forCellReuseIdentifier: YHMySettingCell.cellReuseIdentifier)
tableView.delegate = self
tableView.dataSource = self
return tableView
}()
lazy var items: [PersonalModuleItem] = {
return [PersonalModuleItem(title: "调整颜色".local.local),
PersonalModuleItem(title: "深色模式".local),
PersonalModuleItem(title: "个人信息收集清单".local),
PersonalModuleItem(title: "第三方信息共享清单".local),
PersonalModuleItem(title: "关于我们".local)]
}()
override func viewDidLoad() {
super.viewDidLoad()
initView()
}
func initView() {
self.gk_navTitle = "设置".local
self.view.backgroundColor = .white
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar)
make.left.right.bottom.equalToSuperview()
}
}
}
extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHMySettingCell.cellReuseIdentifier, for: indexPath) as! YHMySettingCell
let item : PersonalModuleItem = items[indexPath.row];
cell.titleLabel.text = item.title
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 53.0
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if (indexPath.row >= items.count) { return }
}
}
...@@ -10,8 +10,12 @@ import SnapKit ...@@ -10,8 +10,12 @@ import SnapKit
import NEConversationUIKit import NEConversationUIKit
struct PersonalModuleItem { struct PersonalModuleItem {
var icon: String var icon: String?
var title: String var title: String
init(icon: String? = nil, title: String) {
self.icon = icon
self.title = title
}
} }
class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
...@@ -41,7 +45,14 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -41,7 +45,14 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
}() }()
lazy var headerView: YHUserInfoHeaderView = { lazy var headerView: YHUserInfoHeaderView = {
return YHUserInfoHeaderView.createView() let view = YHUserInfoHeaderView.createView()
view.settingBlock = {
[weak self] in
guard let self = self else { return }
let vc = YHMySettingViewController()
self.navigationController?.pushViewController(vc)
}
return view
}() }()
private lazy var bgImgView:UIImageView = { private lazy var bgImgView:UIImageView = {
...@@ -56,8 +67,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -56,8 +67,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
func initView() { func initView() {
self.title = "个人中心" gk_navigationBar.isHidden = true
view.addSubview(bgImgView) view.addSubview(bgImgView)
view.addSubview(tableView) view.addSubview(tableView)
......
//
// YHMySettingCell.swift
// galaxy
//
// Created by edy on 2024/2/6.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMySettingCell: UITableViewCell {
static let cellReuseIdentifier = "YHMySettingCell"
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor(hexString:"#141414")
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 15)
return label
}()
lazy var arrowImgView:UIImageView = {
let arrowImgView = UIImageView(image: UIImage(named: "mine_arrow_right"))
return arrowImgView
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
contentView.addSubview(titleLabel)
contentView.addSubview(arrowImgView)
titleLabel.snp.makeConstraints { make in
make.centerY.equalTo(contentView)
make.left.equalToSuperview().offset(20)
make.right.equalTo(arrowImgView.snp.left)
}
arrowImgView.snp.makeConstraints { make in
make.width.equalTo(20)
make.height.equalTo(20)
make.centerY.equalTo(contentView)
make.right.equalTo(contentView).offset(-20)
}
}
}
...@@ -40,7 +40,11 @@ class YHPersonalCenterCell: UITableViewCell { ...@@ -40,7 +40,11 @@ class YHPersonalCenterCell: UITableViewCell {
} }
func updateItem(item : PersonalModuleItem) { func updateItem(item : PersonalModuleItem) {
iconImgView.image = UIImage(named: item.icon) if let icon = item.icon, !icon.isEmpty {
iconImgView.image = UIImage(named:icon)
} else {
iconImgView.image = nil
}
titleLabel.text = item.title; titleLabel.text = item.title;
} }
......
...@@ -12,6 +12,11 @@ class YHUserInfoHeaderView: UIView { ...@@ -12,6 +12,11 @@ class YHUserInfoHeaderView: UIView {
static let bgRatio = 312.0/375.0 // 背景图高宽比 static let bgRatio = 312.0/375.0 // 背景图高宽比
static let height = (KScreenWidth*bgRatio + 24) static let height = (KScreenWidth*bgRatio + 24)
var settingBlock:(()->Void)?
var evaluateBlock:(()->Void)?
private lazy var avarImgView:UIImageView = { private lazy var avarImgView:UIImageView = {
let img = UIImageView(image: UIImage(named: "mine_head_default")) let img = UIImageView(image: UIImage(named: "mine_head_default"))
return img return img
...@@ -73,7 +78,7 @@ class YHUserInfoHeaderView: UIView { ...@@ -73,7 +78,7 @@ class YHUserInfoHeaderView: UIView {
private lazy var settingBtn: UIButton = { private lazy var settingBtn: UIButton = {
let btn = UIButton() let btn = UIButton()
btn.setImage(UIImage(named: "mine_btn_setting"), for: .normal) btn.setImage(UIImage(named: "mine_btn_setting"), for: .normal)
btn.addTarget(self, action: #selector(didClickEvaluateBtn(btn:)), for: .touchUpInside) btn.addTarget(self, action: #selector(didClickSettingBtn(btn:)), for: .touchUpInside)
return btn return btn
}() }()
...@@ -178,7 +183,16 @@ class YHUserInfoHeaderView: UIView { ...@@ -178,7 +183,16 @@ class YHUserInfoHeaderView: UIView {
@objc func didClickEvaluateBtn(btn: UIButton) { @objc func didClickEvaluateBtn(btn: UIButton) {
if let evaluateBlock = evaluateBlock {
evaluateBlock()
}
}
@objc func didClickSettingBtn(btn: UIButton) {
if let settingBlock = settingBlock {
settingBlock()
}
} }
} }
...@@ -93,8 +93,9 @@ class YHNetRequest: NSObject { ...@@ -93,8 +93,9 @@ class YHNetRequest: NSObject {
print("sign = \(sign)") print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign) requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6IkduSzJuR09VZFB6azU2OU9FRXZcL2JRPT0iLCJ2YWx1ZSI6IkZ1VWZjY1NoZVRHdnh1R2pjZUZ2eGdyU0JVWFJcL1hFemhWYlR3QzA5TnRLVkVCaEREbmpLNk5HenZCVERlaFdXY0J0czFxUlpwTFdkQnV3ckVMU01neDhERlwvSUc4bGprQk9QdzlIaGJaVGd4TjZcL1VMelFidmhrTklhbXZCSkpVVFp1KzQ1VnRYbDByaGwwV0lSNmtpRnJza29aSFJ6Wis4MXFVRWRQSElNNWRFbjF5bTdINlpKTlFhXC9LNExhQ2k0RzNyTFhxR3JKcjB2YzhMaW85WVhhU0dPNmhhUmhRbHVzTXh1Vjd0anc4NjdYWGdWWFBiMm15WGJCR0IyZlJ5NjFGQ0UyaVdXNjB6bXNScFpJXC81SVQ3ZFZkVWlcL1dJV09iMFhtUjBuSSt3NllSMER2aTNmVXNCa1NqWGZQTnBXRmVHaStpSHRhK2lYRHNyRXBzWE9kSE9BMkcwcWFHTzcwYjlNVlwvN2xoallsSVwvbkxkYzVQdUhCcW84K3FsQ25VakRJUXRIUHk3NHQ5ZGpETWRNUVlZOFduV01ZVDZBVGJnMm1RcTRuR0pJU24rN1c1YW05UFJGTXI3Z0xETnlVQWRQTlpvK2IrZlY5bGFIbUpGaHBuUnJkMlU0NGg3Kys1SGlaZENBZTdQXC9YVTM4MW9ONkVvVVg4QzYzVmRNT3l2QTE3U3JpamJzRFFTYlplbUE1VlRjYkNsaVhUdUczdTgxamhQVm1cL0RYZzBFeDQ0R1U1YjFBYXhkWmNWSDc2MXlrQlYzMjJzK0FoMnFyWWxKRVhZaTN0NTVkVm5QcFd2TTdaMUloVjA1TDNKVWN0eUo5QTZGcHJuenpNeFwvSnNpTFJjQW1YbUNvNUJmRHRKXC9ldnFET2JTYVFlSlgwNkF5dmpOOG9ZdW1VSGZtWnlFbzhQQURGc01DclhEM2NoYjVqd0lOb3hIMUcxcmVDdzhQZGdGc1dNSUtsWUpKR081SGtFUmpDWElkcXlaR21rbktWRkV4V0lwNDRrSFNOcnpzRkw2N2ZuS0RVT1wvWTk4TUo5dktaSCtYeENzRjM0c1Z3MGtjVXBzVGxxMGlUVVVDMTFldGlxREVzV2ZLRkNnWVZMWTRsSGFtNHZMSWJ3ZlBXSzA3c0FnWXp0Z2VKY1wvYm9IYkI0WWVUZVQ4OG1KMXZQaFJmMXc3Mjdqc1N1dFNjYkJNYVhjN1AwNmtJcXlVMTYxK1BoRVIrUFwvVTVRVWdvc3kwR1AzdHdlQXIzUzFyb1NBbXFlakxaV21uYmZ0Y29LQW1RVEJrZXpueWtnWE1hMkthY3F3Z0FOYjVFaDZZVFhJZ0VnVzhNOFVJYVZWR3RjNGp3cUUxdGdxR25rbGt4RUZjb1wvbEdiVVZ1d2l1UExjU1RWMVBGbXd1cWo0and0M1U5aGtHWm1RUGoranpjTjd5cUR3Z05cL25pUG5lY1wvUmgrbFRzXC9qZVZwVlNiM0FmK1Y0bTVHYk93OGtHMitUTzdSOWFHQlFnZXhqWmRwR2trZ1ZIZjJDNVFITnNXRm5jNmJzK1lqRFFwWWxEQnhFR2FLUStiZEJsbDV4Vit2dDc0cURiVVwvS2ExVkE4RmMxZEpJMkNJK01kWm9aajJjOUJaUGkzTjRNOVpTeHdQZW1UOUlCSTNacDlUSHNDOVwvN1B0U1dSUWFyalJqTis2SW5GckUrT0cxN2pmSDZ3RlJ4bDdSVVhBMWdocjM1RlVaOCtHYkw0RVoyYXVEOFhNNEpVa2Rzd3prM0hKSjFqQnlQYUsyaTJNNmVsbE1HbXZwR1RGNmxlK2ltU3Jka2lVN3VEeGtwQ0NYWlZEOFFOaHgzWHQ0YjdnMU1yeVhNMFwvRm1FSFhVMmpxZ2p2TlpYQitPZGxrS2s4dmoyWnhRMGg5d0Vld2x5MVIrZz09IiwibWFjIjoiMGNjNWM2OWIzMmJlZGNjZGRjNDBkY2RhMGQzMTk2ODg4MmRlNWEwNzZlNDc5MGVkMWRmNDBmOWVkMDA4YzQzZCJ9")
requestHeader.add(name: "token", value: "eyJpdiI6IkduSzJuR09VZFB6azU2OU9FRXZcL2JRPT0iLCJ2YWx1ZSI6IkZ1VWZjY1NoZVRHdnh1R2pjZUZ2eGdyU0JVWFJcL1hFemhWYlR3QzA5TnRLVkVCaEREbmpLNk5HenZCVERlaFdXY0J0czFxUlpwTFdkQnV3ckVMU01neDhERlwvSUc4bGprQk9QdzlIaGJaVGd4TjZcL1VMelFidmhrTklhbXZCSkpVVFp1KzQ1VnRYbDByaGwwV0lSNmtpRnJza29aSFJ6Wis4MXFVRWRQSElNNWRFbjF5bTdINlpKTlFhXC9LNExhQ2k0RzNyTFhxR3JKcjB2YzhMaW85WVhhU0dPNmhhUmhRbHVzTXh1Vjd0anc4NjdYWGdWWFBiMm15WGJCR0IyZlJ5NjFGQ0UyaVdXNjB6bXNScFpJXC81SVQ3ZFZkVWlcL1dJV09iMFhtUjBuSSt3NllSMER2aTNmVXNCa1NqWGZQTnBXRmVHaStpSHRhK2lYRHNyRXBzWE9kSE9BMkcwcWFHTzcwYjlNVlwvN2xoallsSVwvbkxkYzVQdUhCcW84K3FsQ25VakRJUXRIUHk3NHQ5ZGpETWRNUVlZOFduV01ZVDZBVGJnMm1RcTRuR0pJU24rN1c1YW05UFJGTXI3Z0xETnlVQWRQTlpvK2IrZlY5bGFIbUpGaHBuUnJkMlU0NGg3Kys1SGlaZENBZTdQXC9YVTM4MW9ONkVvVVg4QzYzVmRNT3l2QTE3U3JpamJzRFFTYlplbUE1VlRjYkNsaVhUdUczdTgxamhQVm1cL0RYZzBFeDQ0R1U1YjFBYXhkWmNWSDc2MXlrQlYzMjJzK0FoMnFyWWxKRVhZaTN0NTVkVm5QcFd2TTdaMUloVjA1TDNKVWN0eUo5QTZGcHJuenpNeFwvSnNpTFJjQW1YbUNvNUJmRHRKXC9ldnFET2JTYVFlSlgwNkF5dmpOOG9ZdW1VSGZtWnlFbzhQQURGc01DclhEM2NoYjVqd0lOb3hIMUcxcmVDdzhQZGdGc1dNSUtsWUpKR081SGtFUmpDWElkcXlaR21rbktWRkV4V0lwNDRrSFNOcnpzRkw2N2ZuS0RVT1wvWTk4TUo5dktaSCtYeENzRjM0c1Z3MGtjVXBzVGxxMGlUVVVDMTFldGlxREVzV2ZLRkNnWVZMWTRsSGFtNHZMSWJ3ZlBXSzA3c0FnWXp0Z2VKY1wvYm9IYkI0WWVUZVQ4OG1KMXZQaFJmMXc3Mjdqc1N1dFNjYkJNYVhjN1AwNmtJcXlVMTYxK1BoRVIrUFwvVTVRVWdvc3kwR1AzdHdlQXIzUzFyb1NBbXFlakxaV21uYmZ0Y29LQW1RVEJrZXpueWtnWE1hMkthY3F3Z0FOYjVFaDZZVFhJZ0VnVzhNOFVJYVZWR3RjNGp3cUUxdGdxR25rbGt4RUZjb1wvbEdiVVZ1d2l1UExjU1RWMVBGbXd1cWo0and0M1U5aGtHWm1RUGoranpjTjd5cUR3Z05cL25pUG5lY1wvUmgrbFRzXC9qZVZwVlNiM0FmK1Y0bTVHYk93OGtHMitUTzdSOWFHQlFnZXhqWmRwR2trZ1ZIZjJDNVFITnNXRm5jNmJzK1lqRFFwWWxEQnhFR2FLUStiZEJsbDV4Vit2dDc0cURiVVwvS2ExVkE4RmMxZEpJMkNJK01kWm9aajJjOUJaUGkzTjRNOVpTeHdQZW1UOUlCSTNacDlUSHNDOVwvN1B0U1dSUWFyalJqTis2SW5GckUrT0cxN2pmSDZ3RlJ4bDdSVVhBMWdocjM1RlVaOCtHYkw0RVoyYXVEOFhNNEpVa2Rzd3prM0hKSjFqQnlQYUsyaTJNNmVsbE1HbXZwR1RGNmxlK2ltU3Jka2lVN3VEeGtwQ0NYWlZEOFFOaHgzWHQ0YjdnMU1yeVhNMFwvRm1FSFhVMmpxZ2p2TlpYQitPZGxrS2s4dmoyWnhRMGg5d0Vld2x5MVIrZz09IiwibWFjIjoiMGNjNWM2OWIzMmJlZGNjZGRjNDBkY2RhMGQzMTk2ODg4MmRlNWEwNzZlNDc5MGVkMWRmNDBmOWVkMDA4YzQzZCJ9")
headers = requestHeader headers = requestHeader
} }
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "work_more@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "work_more@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