Commit 671d2de5 authored by pete谢兆麟's avatar pete谢兆麟

Merge branch 'develop' into xiezhaolin

# Conflicts:
#	galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/C/YHServiceCenterMainViewController.swift
parents 830dc0dd 2ca5fb75
......@@ -15,8 +15,10 @@
041B52932B5E6CBA007EBCEB /* YHFormTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52922B5E6CBA007EBCEB /* YHFormTitleCell.swift */; };
041B52952B5E7037007EBCEB /* YHFormAddInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52942B5E7037007EBCEB /* YHFormAddInfoCell.swift */; };
041B52982B5E8EA0007EBCEB /* YHFamilyMemberFormVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52972B5E8EA0007EBCEB /* YHFamilyMemberFormVC.swift */; };
041B52D62B5F899E007EBCEB /* YHConsortFormVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHConsortFormVC.swift */; };
041B52D62B5F899E007EBCEB /* YHSpouseFormVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D52B5F899E007EBCEB /* YHSpouseFormVC.swift */; };
041B52D92B5F8B07007EBCEB /* YHConsortInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52D82B5F8B07007EBCEB /* YHConsortInfo.swift */; };
041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */; };
041B52DD2B60A889007EBCEB /* YHTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52DC2B60A889007EBCEB /* YHTest.swift */; };
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */; };
0468D4222B493A5E00CFB916 /* YHPhoneMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */; };
0468D4242B494BEA00CFB916 /* YHCodeResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */; };
......@@ -39,6 +41,7 @@
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; };
A51044182B493675006B60BB /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = A51044172B493675006B60BB /* README.md */; };
A510441A2B495DD0006B60BB /* UIView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51044192B495DD0006B60BB /* UIView+Extension.swift */; };
A514E5DC2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A514E5DB2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift */; };
A53026902B4E6F2700F35102 /* YHHomeCustomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */; };
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */; };
A5573ED22B317BFF00D98EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573ED12B317BFF00D98EC0 /* AppDelegate.swift */; };
......@@ -46,6 +49,7 @@
A5573EE92B317C0100D98EC0 /* galaxyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573EE82B317C0100D98EC0 /* galaxyTests.swift */; };
A5573EF32B317C0100D98EC0 /* galaxyUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573EF22B317C0100D98EC0 /* galaxyUITests.swift */; };
A5573EF52B317C0100D98EC0 /* galaxyUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573EF42B317C0100D98EC0 /* galaxyUITestsLaunchTests.swift */; };
A56D2D612B62020C009C83A8 /* YHContractMainItemStatusCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56D2D602B62020C009C83A8 /* YHContractMainItemStatusCell.swift */; };
A57F1F252B48F09200B644E6 /* ATAuthSDK_D.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04808C032B4686510056D53C /* ATAuthSDK_D.framework */; };
A58951C52B398D1000225C19 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A58951C42B398D1000225C19 /* Launch Screen.storyboard */; };
A5ACE9272B4564F7002C94D2 /* YHLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACE8DB2B4564F7002C94D2 /* YHLoginViewController.swift */; };
......@@ -159,8 +163,10 @@
041B52922B5E6CBA007EBCEB /* YHFormTitleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormTitleCell.swift; sourceTree = "<group>"; };
041B52942B5E7037007EBCEB /* YHFormAddInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFormAddInfoCell.swift; sourceTree = "<group>"; };
041B52972B5E8EA0007EBCEB /* YHFamilyMemberFormVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyMemberFormVC.swift; sourceTree = "<group>"; };
041B52D52B5F899E007EBCEB /* YHConsortFormVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConsortFormVC.swift; sourceTree = "<group>"; };
041B52D52B5F899E007EBCEB /* YHSpouseFormVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSpouseFormVC.swift; sourceTree = "<group>"; };
041B52D82B5F8B07007EBCEB /* YHConsortInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConsortInfo.swift; sourceTree = "<group>"; };
041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFamilyInitialInfo.swift; sourceTree = "<group>"; };
041B52DC2B60A889007EBCEB /* YHTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHTest.swift; sourceTree = "<group>"; };
0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVerificationCodeLoginController.swift; sourceTree = "<group>"; };
0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPhoneMessageView.swift; sourceTree = "<group>"; };
0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCodeResultViewController.swift; sourceTree = "<group>"; };
......@@ -184,6 +190,7 @@
987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A51044172B493675006B60BB /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
A51044192B495DD0006B60BB /* UIView+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Extension.swift"; sourceTree = "<group>"; };
A514E5DB2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHServiceCenterSecondViewController.swift; sourceTree = "<group>"; };
A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeCustomCell.swift; sourceTree = "<group>"; };
A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHBaseViewModel.swift; sourceTree = "<group>"; };
A5573ECE2B317BFF00D98EC0 /* galaxy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = galaxy.app; sourceTree = BUILT_PRODUCTS_DIR; };
......@@ -195,6 +202,7 @@
A5573EEE2B317C0100D98EC0 /* galaxyUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = galaxyUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
A5573EF22B317C0100D98EC0 /* galaxyUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = galaxyUITests.swift; sourceTree = "<group>"; };
A5573EF42B317C0100D98EC0 /* galaxyUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = galaxyUITestsLaunchTests.swift; sourceTree = "<group>"; };
A56D2D602B62020C009C83A8 /* YHContractMainItemStatusCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHContractMainItemStatusCell.swift; sourceTree = "<group>"; };
A58951C42B398D1000225C19 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
A5ACE8DB2B4564F7002C94D2 /* YHLoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHLoginViewController.swift; sourceTree = "<group>"; };
A5ACE8DE2B4564F7002C94D2 /* YHSmsCodeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHSmsCodeView.swift; sourceTree = "<group>"; };
......@@ -334,7 +342,7 @@
isa = PBXGroup;
children = (
041B52972B5E8EA0007EBCEB /* YHFamilyMemberFormVC.swift */,
041B52D52B5F899E007EBCEB /* YHConsortFormVC.swift */,
041B52D52B5F899E007EBCEB /* YHSpouseFormVC.swift */,
);
path = C;
sourceTree = "<group>";
......@@ -343,6 +351,8 @@
isa = PBXGroup;
children = (
041B52D82B5F8B07007EBCEB /* YHConsortInfo.swift */,
041B52DA2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift */,
041B52DC2B60A889007EBCEB /* YHTest.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -707,6 +717,7 @@
isa = PBXGroup;
children = (
A5ACE9192B4564F7002C94D2 /* YHServiceCenterMainViewController.swift */,
A514E5DB2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift */,
);
path = C;
sourceTree = "<group>";
......@@ -716,6 +727,7 @@
children = (
A5C382C92B5E1F4C00C5E65C /* YHLoginTipsView.swift */,
A5C382CB2B5EA11800C5E65C /* YHContractCell.swift */,
A56D2D602B62020C009C83A8 /* YHContractMainItemStatusCell.swift */,
);
path = V;
sourceTree = "<group>";
......@@ -1018,6 +1030,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A514E5DC2B60A2B700C93951 /* YHServiceCenterSecondViewController.swift in Sources */,
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
A5ACE92C2B4564F7002C94D2 /* YHLoginStyleButton.swift in Sources */,
......@@ -1039,6 +1052,7 @@
A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */,
04AF58C42B4FC51C0066011A /* YHLocalizable.swift in Sources */,
A5C5B2E82B4EC95600A7C5D1 /* YHDavidTestCollectionViewCell.swift in Sources */,
041B52DB2B5FDF8E007EBCEB /* YHFamilyInitialInfo.swift in Sources */,
0468D4222B493A5E00CFB916 /* YHPhoneMessageView.swift in Sources */,
0468D4362B57752F00CFB916 /* YHUserModel.swift in Sources */,
A5ACE9512B4564F7002C94D2 /* YhConstant.swift in Sources */,
......@@ -1058,6 +1072,7 @@
A5C5B2FB2B5535DF00A7C5D1 /* YHHomeBannerView.swift in Sources */,
041B528B2B5E15F1007EBCEB /* YHDoubleChoiceQuestionCell.swift in Sources */,
A5ACE94B2B4564F7002C94D2 /* BsHUDRotatingImageView.swift in Sources */,
041B52DD2B60A889007EBCEB /* YHTest.swift in Sources */,
A5ACE94F2B4564F7002C94D2 /* YhOverlayView.swift in Sources */,
A53026902B4E6F2700F35102 /* YHHomeCustomCell.swift in Sources */,
A5ACE92E2B4564F7002C94D2 /* YHValidateCodeInputView.swift in Sources */,
......@@ -1082,11 +1097,12 @@
A510441A2B495DD0006B60BB /* UIView+Extension.swift in Sources */,
A5ACE93E2B4564F7002C94D2 /* UIImage+Extension.swift in Sources */,
A5ACE94C2B4564F7002C94D2 /* BsHUDErrorView.swift in Sources */,
041B52D62B5F899E007EBCEB /* YHConsortFormVC.swift in Sources */,
041B52D62B5F899E007EBCEB /* YHSpouseFormVC.swift in Sources */,
A5D6AB1B2B46A1CC001C10A5 /* YHHomeModel.swift in Sources */,
A5D6AB1D2B46AAFB001C10A5 /* YHHomePageViewModel.swift in Sources */,
A5ACE9552B4564F7002C94D2 /* YHTabBarViewController.swift in Sources */,
A5C5B3122B57B47D00A7C5D1 /* YHDavidCell0.swift in Sources */,
A56D2D612B62020C009C83A8 /* YHContractMainItemStatusCell.swift in Sources */,
0468D43A2B579EAC00CFB916 /* YHLoginViewModel.swift in Sources */,
041B528F2B5E620E007EBCEB /* YHSingleLineInputCell.swift in Sources */,
A5ACE9402B4564F7002C94D2 /* String+Extension.swift in Sources */,
......
......@@ -67,7 +67,7 @@ extension AppDelegate {
//1.数据解析
#if DEBUG
SmartConfig.debugMode = .verbose
// SmartConfig.debugMode = .verbose
SmartConfig.debugMode = .none //for test hjl
#else
SmartConfig.debugMode = .none
......
......@@ -6,7 +6,6 @@
//
import UIKit
//import SmartCodable
//服务中心
class YHServiceCenterMainViewController: YHBaseViewController {
......@@ -135,13 +134,13 @@ extension YHServiceCenterMainViewController : UITableViewDelegate,UITableViewDat
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHContractCell.cellReuseIdentifier, for: indexPath) as! YHContractCell
cell.selectionStyle = .none
let cell0 = tableView.dequeueReusableCell(withClass: YHContractCell.self)
cell0.selectionStyle = .none
if indexPath.section < self.serviceCenterMainReqVM.arrContactList.count {
cell.dataModel = self.serviceCenterMainReqVM.arrContactList[indexPath.section]
cell0.dataModel = self.serviceCenterMainReqVM.arrContactList[indexPath.section]
}
return cell
return cell0
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
......
//
// YHServiceCenterSecondViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/1/24.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
//服务中心
class YHServiceCenterSecondViewController: YHBaseViewController {
// private let serviceCenterMainReqVM : YHServiceCenterMainViewModel = YHServiceCenterMainViewModel()
private var unfoldFlag : Bool = true //是否展开
private lazy var downArrowImagev : UIImageView = {
let imagV = UIImageView(frame: CGRect(x: KScreenWidth - 16 - 32, y: 17, width: 24, height: 24))
imagV.image = UIImage(named: "service_center_down_arrow")
imagV.contentMode = .scaleAspectFill
return imagV
}()
private lazy var topBkg : UIView = {
let imagV = UIImageView()
imagV.image = UIImage(named: "service_center_head_bkg")
imagV.contentMode = .scaleAspectFill
return imagV
}()
var homeTableView: UITableView = {
let tableView = UITableView(frame: .zero, style: .grouped)
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.showsHorizontalScrollIndicator = false
tableView.showsVerticalScrollIndicator = false
tableView.register(YHContractMainItemStatusCell.self,forCellReuseIdentifier: YHContractMainItemStatusCell.cellReuseIdentifier)
return tableView
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
}
extension YHServiceCenterSecondViewController {
func loadData() {
// self.serviceCenterMainReqVM.getContactList { success, error in
// if success == true {
//
// }
// self.homeTableView.reloadData()
// }
}
func setupUI() {
gk_navTitle = "服务中心"
gk_navBarAlpha = 1.0
gk_navLineHidden = false
view.addSubview(topBkg)
topBkg.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(216)
}
homeTableView.delegate = self
homeTableView.dataSource = self
view.addSubview(homeTableView)
homeTableView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalToSuperview()
}
}
@objc func clickUnfoldView() {
unfoldFlag = !unfoldFlag
if unfoldFlag == true {
UIView.animate(withDuration: 0.25) {
self.downArrowImagev.transform = CGAffineTransform.identity
}
} else {
UIView.animate(withDuration: 0.25) {
self.downArrowImagev.transform = CGAffineTransform(rotationAngle: .pi)
}
}
homeTableView.reloadSections(IndexSet(integer: 0), with: UITableView.RowAnimation.automatic)
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHServiceCenterSecondViewController : UITableViewDelegate,UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if unfoldFlag == true {
return 10
}
return 0
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 60
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 60))
view.backgroundColor = .clear
let lable = UILabel(frame: CGRect(x: 16, y: 0, width: 200, height: 60))
lable.text = "身份申请"
lable.font = kFont(size: 17)
view.addSubview(lable)
view.addSubview(self.downArrowImagev)
let tap = UITapGestureRecognizer(target: self, action: #selector(clickUnfoldView))
view.addGestureRecognizer(tap)
return view
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return YHContractMainItemStatusCell.cellHeight
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let newCell = tableView.dequeueReusableCell(withClass: YHContractMainItemStatusCell.self)
newCell.selectionStyle = .none
return newCell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
printLog("点击了 \(indexPath.section)section --- \(indexPath.row)row")
}
}
......@@ -8,8 +8,20 @@
import UIKit
enum YHFamilyMemberEditType:Int {
case none = 1
case canEdit = 2
case canCancel = 3
}
class YHFamilyMemberFormVC: YHBaseViewController {
var familyMemberInfo: YHFamilyMemberInfo?
var isChildsEditMode: YHFamilyMemberEditType = .none
var isBrothersEditMode: YHFamilyMemberEditType = .none
var items:[[YHFamilyMemberProtocol]] = []
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.plain)
......@@ -47,10 +59,10 @@ class YHFamilyMemberFormVC: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "家庭成员信息填写"
self.gk_navTitle = "家庭成员信息填写"
view.backgroundColor = UIColor(hexString:"#F8F8F8")
createUI()
loadData()
}
......@@ -84,90 +96,510 @@ class YHFamilyMemberFormVC: YHBaseViewController {
@objc func didClickSubmitBtn() {
}
func loadData() {
let dic = [
"father": [
"id": 0,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 0,
"relation": 0,
"has_degree": 0,
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": "",
"used_name": "",
"birthday": "",
"birth_place_aboard": 0,
"birth_place": [],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [],
"hk_identity_card": "",
"sex": 0,
"married": 0,
"nows": 0,
"address": [],
"child_stepchild": [],
"child_in_hk": [],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 0,
"not_fill_num": -1,
"certificates": [],
"is_live_oversea_year": 0
],
"mother": [
"id": 0,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 0,
"relation": 0,
"has_degree": 0,
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": "",
"used_name": "",
"birthday": "",
"birth_place_aboard": 0,
"birth_place": [],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [],
"hk_identity_card": "",
"sex": 0,
"married": 0,
"nows": 0,
"address": [],
"child_stepchild": [],
"child_in_hk": [],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 0,
"not_fill_num": -1,
"certificates": [],
"is_live_oversea_year": 0
],
"spouse": [
"id": 68416,
"deceased": 0,
"custody": 100,
"nationality": "中国-China",
"order_id": 133971,
"relation": "3",
"has_degree": "1",
"has_degree_json": [[
"degree": "1",
"address": "1"
]],
"follow": 1,
"statement": 0,
"subset_name": "林源芳",
"subset_name_pinyin": [
"family_name": "LIN",
"given_name": "YUANFANG"
],
"used_name": "",
"birthday": "2012-01-01",
"birth_place_aboard": 0,
"birth_place": [
"area": ["广东省", "深圳市"],
"country": "",
"details": "",
"foreign": ""
],
"occupation": "在职",
"occupation_name": "工程师",
"operator_ame": "",
"child_has_hk_id": [
"has": "N"
],
"hk_identity_card": "",
"sex": 2,
"married": "未婚",
"nows": 0,
"address": [
"area": ["广东省", "深圳市"],
"country": "中国-China",
"details": "大新地铁站",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "N"
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 0,
"finish_follow": 0,
"step": 3,
"not_fill_num": 0,
"is_live_oversea_year": 0,
"surname": "",
"certificates": [
"cnIdentityCard": [
"id": 116871,
"number": "421087199005010811",
"issue_at": "深圳",
"issue_date_start_at": "2017-01-01",
"issue_date_end_at": "2029-01-01",
"img_front": "",
"img_back": ""
],
"passport": [
"id": 116872,
"number": "",
"issue_at": "",
"issue_date_start_at": "",
"issue_date_end_at": "",
"img_front": "",
"img_back": "",
"passport_type": 11
]
]
]
] as [String : Any]
familyMemberInfo = YHFamilyMemberInfo.deserialize(dict: dic)
loadFamilyMember()
}
func loadFamilyMember() {
items.removeAll()
// 配偶section
if let sponse = familyMemberInfo?.spouse {
let sponseArray:[YHFamilyMemberProtocol] = [YHFamilyMemberFormItem(type: .sponse), sponse]
items.append(sponseArray)
}
// 父母section
var parents = [YHFamilyMemberProtocol]()
if let father = familyMemberInfo?.father {
parents.append(father)
}
if let mother = familyMemberInfo?.mother {
parents.append(mother)
}
if !parents.isEmpty {
let item0 = YHFamilyMemberFormItem(type: .parent)
parents.insert(item0, at: 0)
items.append(parents)
}
// 子女section
var childArr:[YHFamilyMemberProtocol] = [YHFamilyMemberFormItem(type: .child), YHFamilyMemberFormItem(type: .addChild)]
if let childs = familyMemberInfo?.child, !childs.isEmpty {
childArr.insert(contentsOf: childs, at:1)
}
items.append(childArr)
// 兄妹section
var brotherArr:[YHFamilyMemberProtocol] = [YHFamilyMemberFormItem(type: .brother), YHFamilyMemberFormItem(type: .addBrother)]
if let brothers = familyMemberInfo?.brother, !brothers.isEmpty {
brotherArr.insert(contentsOf: brothers, at:1)
}
items.append(brotherArr)
let childCount = familyMemberInfo?.child?.count ?? 0
if isChildsEditMode == .none && childCount > 0 {
isChildsEditMode = .canEdit
}
let brotherCount = familyMemberInfo?.brother?.count ?? 0
if isBrothersEditMode == .none && brotherCount > 0 {
isBrothersEditMode = .canEdit
}
tableView.reloadData()
}
}
extension YHFamilyMemberFormVC {
func addBrother() {
let dict = [
"id": 68470,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 133971,
"relation": "5",
"has_degree": "100",
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": [
"family_name": "",
"given_name": ""
],
"used_name": "",
"birthday": "",
"birth_place_aboard": 100,
"birth_place": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [
"has": "",
"info": ""
],
"hk_identity_card": "",
"sex": 0,
"married": "未婚",
"nows": 100,
"address": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "",
"info": ""
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 100,
"finish_follow": 0,
"step": 0,
"not_fill_num": 9,
"is_live_oversea_year": 0,
"surname": "",
"certificates": []
] as [String : Any]
let brother:YHBrother = YHBrother.deserialize(dict: dict)!
if var brothers = familyMemberInfo?.brother {
brothers.append(brother)
familyMemberInfo!.brother = brothers
} else {
familyMemberInfo?.brother = [brother]
}
loadFamilyMember()
}
func addChild() {
let dict = [
"id": 68493,
"deceased": 0,
"custody": 100,
"nationality": "",
"order_id": 133971,
"relation": "4",
"has_degree": "100",
"has_degree_json": [],
"follow": 0,
"statement": 0,
"subset_name": "",
"subset_name_pinyin": [
"family_name": "",
"given_name": ""
],
"used_name": "",
"birthday": "",
"birth_place_aboard": 100,
"birth_place": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"occupation": "",
"occupation_name": "",
"operator_ame": "",
"child_has_hk_id": [
"has": "",
"info": ""
],
"hk_identity_card": "",
"sex": 0,
"married": "未婚",
"nows": 100,
"address": [
"area": [],
"country": "",
"details": "",
"foreign": ""
],
"child_stepchild": [
"has": "",
"info": ""
],
"child_in_hk": [
"has": "",
"info": ""
],
"country_identity": [],
"hk_identity": "",
"hk_identity_other": "",
"live_country": "",
"is_handled": 100,
"finish_follow": 0,
"step": 0,
"not_fill_num": 10,
"is_live_oversea_year": 0,
"surname": "",
"certificates":[]
] as [String : Any]
let child = YHChild.deserialize(dict: dict)!
if var childs = familyMemberInfo?.child {
childs.append(child)
familyMemberInfo!.child = childs
} else {
familyMemberInfo?.child = [child]
}
loadFamilyMember()
}
}
extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 4
return items.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 1 {
return 2
} else if section == 2 {
return 3
} else if section == 3 {
return 2
}
return 1
if section >= items.count { return 0 }
let arr = items[section]
return arr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: YHSingleLineSelectCell.cellReuseIdentifier, for: indexPath) as! YHSingleLineSelectCell
createCorner(cell: cell, indexPath: indexPath)
cell.title = "配偶".local
cell.detailLabel.text = "(如未婚、离婚、丧偶可不填)".local
return cell
} else if indexPath.section == 1 {
let arr = items[indexPath.section]
let item:YHFamilyMemberProtocol = arr[indexPath.row]
if indexPath.row == 0 {
if item is YHFamilyMemberFormItem { // 是标题或添加项目
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormTitleCell
createCorner(cell: cell, indexPath: indexPath)
cell.titleLabel.text = "子女".local
cell.subTitleLabel.text = "(如无可不填)".local
return cell
} else if indexPath.row == 1 {
let formItem = item as! YHFamilyMemberFormItem
if formItem.type == .addChild || formItem.type == .addBrother { // 新增子女/兄弟姐妹
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormAddInfoCell.cellReuseIdentifier, for: indexPath) as! YHFormAddInfoCell
createCorner(cell: cell, indexPath: indexPath)
createCorner(cell: cell, arr: arr, indexPath: indexPath)
cell.clickBlock = { [weak self] in
if formItem.type == .addBrother {
self?.addBrother()
} else if formItem.type == .addChild {
self?.addChild()
}
}
return cell
}
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormTitleCell
createCorner(cell: cell, arr: arr, indexPath: indexPath)
cell.titleLabel.text = formItem.getTitle()
cell.subTitleLabel.text = formItem.getSubTitle()
} else if indexPath.section == 2 {
// 决定右边按钮显示样式
cell.showEditType(type: .none)
if formItem.type == .child {
cell.showEditType(type: isChildsEditMode)
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormTitleCell
createCorner(cell: cell, indexPath: indexPath)
cell.titleLabel.text = "父母".local
cell.subTitleLabel.text = "(包含已故)".local
return cell
} else if formItem.type == .brother {
cell.showEditType(type: isBrothersEditMode)
}
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: YHSingleLineSelectCell.cellReuseIdentifier, for: indexPath) as! YHSingleLineSelectCell
createCorner(cell: cell, indexPath: indexPath)
// 右边按钮点击事件处理
cell.rightClickBlock = { [weak self] type in
if formItem.type == .child {
if self?.isChildsEditMode == .canCancel {
self?.isChildsEditMode = .canEdit
} else if self?.isChildsEditMode == .canEdit {
self?.isChildsEditMode = .canCancel
}
}
if formItem.type == .brother {
if self?.isBrothersEditMode == .canCancel {
self?.isBrothersEditMode = .canEdit
} else if self?.isBrothersEditMode == .canEdit {
self?.isBrothersEditMode = .canCancel
}
}
self?.loadFamilyMember()
}
return cell
}
} else if indexPath.section == 3 {
// 配偶父母子女兄妹具体条目
if item is YHParent || item is YHChild || item is YHSpouse || item is YHBrother {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormTitleCell
createCorner(cell: cell, indexPath: indexPath)
cell.titleLabel.text = "兄弟姐妹".local
cell.subTitleLabel.text = "(如无可不填)".local
return cell
let cell = tableView.dequeueReusableCell(withIdentifier: YHSingleLineSelectCell.cellReuseIdentifier, for: indexPath) as! YHSingleLineSelectCell
createCorner(cell: cell, arr: arr, indexPath: indexPath)
cell.isShowDeleteBtn = false
cell.deleteBlock = nil
if item is YHChild || item is YHBrother {
if item is YHChild {
cell.isShowDeleteBtn = (isChildsEditMode == .canCancel)
} else if item is YHBrother {
cell.isShowDeleteBtn = (isBrothersEditMode == .canCancel)
}
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormAddInfoCell.cellReuseIdentifier, for: indexPath) as! YHFormAddInfoCell
createCorner(cell: cell, indexPath: indexPath)
return cell
// 删除子女兄妹处理
cell.deleteBlock = { [weak self] in
if item is YHChild {
let childCount = self?.familyMemberInfo?.child?.count ?? 0
if (indexPath.row < childCount) {
// 因为子女兄妹section第一行都是标题所以row-1
self?.familyMemberInfo?.child?.remove(at: indexPath.row-1)
self?.isChildsEditMode = .none
self?.isBrothersEditMode = .none
}
} else if item is YHBrother {
let brotherCount = self?.familyMemberInfo?.brother?.count ?? 0
if (indexPath.row < brotherCount) {
// 因为子女兄妹section第一行都是标题所以row-1
self?.familyMemberInfo?.brother?.remove(at: indexPath.row-1)
self?.isChildsEditMode = .none
self?.isBrothersEditMode = .none
}
}
self?.loadFamilyMember()
}
}
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath) as! UITableViewCell
createCorner(cell: cell, indexPath: indexPath)
let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath)
createCorner(cell: cell, arr: arr, indexPath: indexPath)
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80.0
let arr = items[indexPath.section]
let item:YHFamilyMemberProtocol = arr[indexPath.row]
if item is YHFamilyMemberFormItem { // 是标题或添加项目
let titleItem = item as! YHFamilyMemberFormItem
if titleItem.type == .addChild || titleItem.type == .addBrother {
return 77.0
}
return 52.0
}
return 64.0
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
......@@ -180,17 +612,17 @@ extension YHFamilyMemberFormVC : UITableViewDelegate, UITableViewDataSource {
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = YHConsortFormVC()
let vc = YHSpouseFormVC()
self.navigationController?.pushViewController(vc)
}
func createCorner(cell:UITableViewCell, indexPath:IndexPath) {
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 == 2) {
} 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)
......
......@@ -8,7 +8,7 @@
import UIKit
class YHConsortFormVC: YHBaseViewController {
class YHSpouseFormVC: YHBaseViewController {
lazy var items:[YHTableItemInfo] = [YHTableItemInfo]()
......@@ -118,7 +118,7 @@ class YHConsortFormVC: YHBaseViewController {
}
extension YHConsortFormVC : UITableViewDelegate, UITableViewDataSource {
extension YHSpouseFormVC : UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return items.count
......
//
// YHFamilyInitialInfo.swift
// galaxy
//
// Created by edy on 2024/1/23.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
enum YHFamilyMemberItemType:Int {
case sponse = 1
case parent = 2
case child = 3
case brother = 4
case addChild = 5
case addBrother = 6
}
protocol YHFamilyMemberProtocol {
func getTitle() -> String
func getSubTitle() -> String
}
class YHFamilyMemberFormItem : YHFamilyMemberProtocol {
var type: YHFamilyMemberItemType
init(type: YHFamilyMemberItemType) {
self.type = type
}
func getTitle() -> String {
switch self.type {
case .sponse:
return "配偶".local
case .parent:
return "父母".local
case .brother:
return "兄弟姐妹".local
case .child:
return "子女".local
case .addChild:
return "新增子女".local
case .addBrother:
return "新增兄弟姐妹".local
}
}
func getSubTitle() -> String {
switch self.type {
case .sponse:
return String(format: "(%@)", "如未婚、离婚、丧偶可不填".local)
case .parent:
return String(format: "(%@)", "包含已故".local)
case .brother:
return String(format: "(%@)", "如无可不填".local)
case .child:
return String(format: "(%@)", "如无可不填".local)
case .addChild:
return ""
case .addBrother:
return ""
}
}
}
/* ***** ***** ***** ***** ***** ***** ***** ***** */
// MARK: - YHWelcome
class YHWelcome: SmartCodable {
var code: Int = -1
var msg: String = ""
var data: YHFamilyMemberInfo?
enum CodingKeys: String, CodingKey {
case code = "code"
case msg = "msg"
case data = "data"
}
required init() {
}
}
// MARK: - 家庭成员 YHData
class YHFamilyMemberInfo: SmartCodable {
var father: YHParent?
var mother: YHParent?
var spouse: YHSpouse?
var child: [YHChild]?
var brother: [YHBrother]?
enum CodingKeys: String, CodingKey {
case father = "father"
case mother = "mother"
case spouse = "spouse"
case brother = "brother"
case child = "child"
}
required init() {
}
}
// MARK: - 子女初始信息 YHChild
class YHChild: SmartCodable, YHFamilyMemberProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
var nationality: String?
var orderId: Int = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [SmartAny]?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorAme: SmartAny?
var childHasHkId: YHChildStepchildClass?
var hkIdentityCard: String?
var sex: Int = -1
var married: String?
var nows: Int = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHChildStepchildClass?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int = -1
var finishFollow: Int = -1
var step: Int = -1
var notFillNum: Int = -1
var isLiveOverseaYear: Int = -1
var surname: String?
var certificates: [SmartAny]?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case isLiveOverseaYear = "is_live_oversea_year"
case surname = "surname"
case certificates = "certificates"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "配偶".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - YHBrother
class YHBrother: SmartCodable, YHFamilyMemberProtocol {
var id: Int? = -1
var deceased: Int? = -1
var custody: Int? = -1
var nationality: String?
var orderId: Int? = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [SmartAny]?
var follow: Int? = -1
var statement: Int? = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int? = -1
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorAme: SmartAny?
var childHasHkId: YHChildStepchildClass?
var hkIdentityCard: String?
var sex: Int? = -1
var married: String?
var nows: Int? = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHChildStepchildClass?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int? = -1
var finishFollow: Int? = -1
var step: Int? = -1
var notFillNum: Int? = -1
var isLiveOverseaYear: Int? = -1
var surname: String?
var certificates: [SmartAny]?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case isLiveOverseaYear = "is_live_oversea_year"
case surname = "surname"
case certificates = "certificates"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "兄弟姐妹".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - 居住地址信息 YHAddress
class YHAddress: SmartCodable {
var area: [String]?
var country: String?
var details: String?
var foreign: String?
enum CodingKeys: String, CodingKey {
case area = "area"
case country = "country"
case details = "details"
case foreign = "foreign"
}
required init() {
}
}
// MARK: - YHChildStepchildClass
class YHChildStepchildClass: SmartCodable {
var has: String?
var info: String?
enum CodingKeys: String, CodingKey {
case has = "has"
case info = "info"
}
required init() {
}
}
// MARK: - YHSubsetNamePinyin
class YHSubsetNamePinyin: SmartCodable {
var familyName: String?
var givenName: String?
enum CodingKeys: String, CodingKey {
case familyName = "family_name"
case givenName = "given_name"
}
required init() {
}
}
// MARK: - 父母信息 YHParent
class YHParent: SmartCodable, YHFamilyMemberProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
var nationality: String?
var orderId: Int = -1
var relation: Int = -1
var hasDegree: Int = -1
var hasDegreeJson: [SmartAny]?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: String?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: [SmartAny]?
var occupation: String?
var occupationName: String?
var operatorAme: String?
var childHasHkId: [SmartAny]?
var hkIdentityCard: String?
var sex: Int = -1
var married: Int = -1
var nows: Int = -1
var address: [SmartAny]?
var childStepchild: [SmartAny]?
var childInHk: [SmartAny]?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int = -1
var finishFollow: Int = -1
var step: Int = -1
var notFillNum: Int = -1
var certificates: [SmartAny]?
var isLiveOverseaYear: Int = -1
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case certificates = "certificates"
case isLiveOverseaYear = "is_live_oversea_year"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
if sex == 0 {
return "父亲".local
}
return "母亲".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - 配偶 YHSpouse
class YHSpouse: SmartCodable, YHFamilyMemberProtocol {
var id: Int = -1
var deceased: Int = -1
var custody: Int = -1
var nationality: String?
var orderId: Int = -1
var relation: String?
var hasDegree: String?
var hasDegreeJson: [YHHasDegreeJson]?
var follow: Int = -1
var statement: Int = -1
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var usedName: String?
var birthday: String?
var birthPlaceAboard: Int = -1
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorAme: SmartAny?
var childHasHkId: YHPurpleChild?
var hkIdentityCard: String?
var sex: Int = -1
var married: String?
var nows: Int = -1
var address: YHAddress?
var childStepchild: YHChildStepchildClass?
var childInHk: YHPurpleChild?
var countryIdentity: [SmartAny]?
var hkIdentity: String?
var hkIdentityOther: String?
var liveCountry: String?
var isHandled: Int = -1
var finishFollow: Int = -1
var step: Int = -1
var notFillNum: Int = -1
var isLiveOverseaYear: Int = -1
var surname: String?
var certificates: YHCertificates?
enum CodingKeys: String, CodingKey {
case id = "id"
case deceased = "deceased"
case custody = "custody"
case nationality = "nationality"
case orderId = "order_id"
case relation = "relation"
case hasDegree = "has_degree"
case hasDegreeJson = "has_degree_json"
case follow = "follow"
case statement = "statement"
case subsetName = "subset_name"
case subsetNamePinyin = "subset_name_pinyin"
case usedName = "used_name"
case birthday = "birthday"
case birthPlaceAboard = "birth_place_aboard"
case birthPlace = "birth_place"
case occupation = "occupation"
case occupationName = "occupation_name"
case operatorAme = "operator_ame"
case childHasHkId = "child_has_hk_id"
case hkIdentityCard = "hk_identity_card"
case sex = "sex"
case married = "married"
case nows = "nows"
case address = "address"
case childStepchild = "child_stepchild"
case childInHk = "child_in_hk"
case countryIdentity = "country_identity"
case hkIdentity = "hk_identity"
case hkIdentityOther = "hk_identity_other"
case liveCountry = "live_country"
case isHandled = "is_handled"
case finishFollow = "finish_follow"
case step = "step"
case notFillNum = "not_fill_num"
case isLiveOverseaYear = "is_live_oversea_year"
case surname = "surname"
case certificates = "certificates"
}
required init() {
}
// YHFamilyMemberProtocol
func getTitle() -> String {
return "配偶".local
}
func getSubTitle() -> String {
return ""
}
}
// MARK: - YHCertificates
class YHCertificates: SmartCodable {
required init() {
}
var cnIdentityCard: YHCNIdentityCard?
var passport: YHCNIdentityCard?
enum CodingKeys: String, CodingKey {
case cnIdentityCard = "cnIdentityCard"
case passport = "passport"
}
}
// MARK: - YHCNIdentityCard
class YHCNIdentityCard: SmartCodable {
required init() {
}
var id: Int = -1
var number: String?
var issueAt: String?
var issueDateStartAt: String?
var issueDateEndAt: String?
var imgFront: String?
var imgBack: String?
var passportType: Int = -1
enum CodingKeys: String, CodingKey {
case id = "id"
case number = "number"
case issueAt = "issue_at"
case issueDateStartAt = "issue_date_start_at"
case issueDateEndAt = "issue_date_end_at"
case imgFront = "img_front"
case imgBack = "img_back"
case passportType = "passport_type"
}
}
// MARK: - YHPurpleChild
class YHPurpleChild: SmartCodable {
required init() {
}
var has: String?
enum CodingKeys: String, CodingKey {
case has = "has"
}
}
// MARK: - YHHasDegreeJson
class YHHasDegreeJson: SmartCodable {
var degree: String?
var address: String?
enum CodingKeys: String, CodingKey {
case degree = "degree"
case address = "address"
}
required init() {
}
}
//
// YHTest.swift
// galaxy
//
// Created by edy on 2024/1/24.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
......@@ -16,6 +16,8 @@ class YHFormAddInfoCell: UITableViewCell {
let btnHeight = 44.0
let cornerRadius = 4.0
var clickBlock:(()->Void)?
lazy var addBtn: UIButton = {
let btn = UIButton.bs_button(title: "新增信息", font: UIFont.PFSCR(ofSize: 14), normalColor: btnTitleColor)
btn.iconInLeft(spacing: 10)
......@@ -73,6 +75,8 @@ class YHFormAddInfoCell: UITableViewCell {
@objc func didClickAddBtn() {
if let clickBlock = clickBlock {
clickBlock()
}
}
}
......@@ -11,13 +11,18 @@ import UIKit
class YHFormTitleCell: UITableViewCell {
static let cellReuseIdentifier = "YHFormTitleCell"
let editTag = 9527
let cancelTag = 9528
var rightClickBlock:((YHFamilyMemberEditType)->Void)?
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor(hexString:"#333333")
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSCR(ofSize: 20)
label.font = UIFont.PFSCR(ofSize: 16)
return label
}()
......@@ -26,10 +31,27 @@ class YHFormTitleCell: UITableViewCell {
label.textColor = UIColor(hexString:"#888F98")
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSCR(ofSize: 15)
label.font = UIFont.PFSCR(ofSize: 14)
return label
}()
lazy var cancelButton: UIButton = {
let btn = UIButton.bs_button(title: "取消操作".local, font: UIFont.PFSCR(ofSize: 14), normalColor: UIColor(hex: 0x4487F9))
btn.tag = cancelTag
btn.addTarget(self, action: #selector(didClickOperatorBtn(btn:)), for: .touchUpInside)
btn.isHidden = true
return btn
}()
lazy var editButton: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "form_edit"), for: .normal)
btn.tag = editTag
btn.addTarget(self, action: #selector(didClickOperatorBtn(btn:)), for: .touchUpInside)
btn.isHidden = true
return btn
}()
lazy var bottomLineView:UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
......@@ -51,9 +73,8 @@ class YHFormTitleCell: UITableViewCell {
contentView.addSubview(titleLabel)
contentView.addSubview(subTitleLabel)
contentView.addSubview(bottomLineView)
titleLabel.text = "配偶"
subTitleLabel.text = " (如未婚、离婚、丧偶可不填)"
contentView.addSubview(editButton)
contentView.addSubview(cancelButton)
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
......@@ -66,9 +87,54 @@ class YHFormTitleCell: UITableViewCell {
make.centerY.equalToSuperview()
}
editButton.snp.makeConstraints { make in
make.size.equalTo(CGSizeMake(24, 24))
make.centerY.equalToSuperview()
make.right.equalToSuperview().offset(-18)
}
editButton.snp.makeConstraints { make in
make.size.equalTo(CGSizeMake(24, 24))
make.centerY.equalToSuperview()
make.right.equalToSuperview().offset(-18)
}
cancelButton.snp.makeConstraints { make in
make.size.equalTo(CGSizeMake(92, 40))
make.centerY.equalToSuperview()
make.right.equalToSuperview()
}
bottomLineView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(1.0)
}
}
func showEditType(type: YHFamilyMemberEditType) {
switch type {
case .none:
cancelButton.isHidden = true
editButton.isHidden = true
case .canEdit:
cancelButton.isHidden = true
editButton.isHidden = false
case .canCancel:
cancelButton.isHidden = false
editButton.isHidden = true
}
}
@objc func didClickOperatorBtn(btn:UIButton) {
if let clickBlock = rightClickBlock {
if btn.tag == editTag {
clickBlock(.canEdit)
} else if btn.tag == cancelTag {
clickBlock(.canCancel)
}
}
}
}
......@@ -14,6 +14,15 @@ class YHSingleLineSelectCell: UITableViewCell {
// 是否必填 如必填title会展示红色*
var isMust = false
var deleteBlock:(()->Void)?
var isShowDeleteBtn:Bool = false {
didSet {
deleteButton.isHidden = !isShowDeleteBtn
detailLabel.isHidden = isShowDeleteBtn
arrowImgView.isHidden = isShowDeleteBtn
}
}
var title:String? {
didSet {
......@@ -56,6 +65,12 @@ class YHSingleLineSelectCell: UITableViewCell {
return imgView
}()
lazy var deleteButton: UIButton = {
let btn = UIButton.bs_button(title: "删除".local, font: UIFont.PFSCR(ofSize: 14), normalColor: UIColor(hex: 0xF81D22))
btn.addTarget(self, action: #selector(didClickDeleteBtn(btn:)), for: .touchUpInside)
btn.isHidden = true
return btn
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
......@@ -72,6 +87,7 @@ class YHSingleLineSelectCell: UITableViewCell {
contentView.addSubview(titleLabel)
contentView.addSubview(detailLabel)
contentView.addSubview(arrowImgView)
contentView.addSubview(deleteButton)
title = "婚姻状况"
detailLabel.text = "沙发上发顺丰"
......@@ -91,5 +107,18 @@ class YHSingleLineSelectCell: UITableViewCell {
make.right.equalToSuperview().offset(-16)
make.centerY.equalToSuperview()
}
deleteButton.snp.makeConstraints { make in
make.size.equalTo(CGSizeMake(64, 40))
make.centerY.equalToSuperview()
make.right.equalToSuperview()
}
}
@objc func didClickDeleteBtn(btn:UIButton) {
if let deleteBlock = deleteBlock {
deleteBlock()
}
}
}
//
// YHContractMainItemStatusCell.swift
// galaxy
//
// Created by davidhuangA on 2024/1/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SwifterSwift
class YHContractMainItemStatusCell: UITableViewCell {
static let cellReuseIdentifier = "YHContractMainItemStatusCell"
static let cellHeight :CGFloat = 97.0
var dataModel : YHContactItemModel? {
didSet {
updateUI()
}
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private lazy var iconImageV : UIImageView = {
let nextImgV = UIImageView()
nextImgV.image = UIImage(named: "service_center_finish_info_icon")
nextImgV.contentMode = .scaleAspectFill
return nextImgV
}()
private lazy var itemNameLable : UILabel = {
let lable = UILabel()
lable.textColor = UIColor(red: 0.133, green: 0.133, blue: 0.133, alpha: 1)
lable.font = UIFont(name: "PingFangSC-Medium", size: 17)
lable.text = "信息完善"
return lable
}()
private lazy var goUnfinishHoldView : UIView = {
let view = UIView()
view.layer.cornerRadius = 6
view.clipsToBounds = true
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = [UIColor(red: 0.302, green: 0.624, blue: 0.973, alpha: 1),UIColor(red: 0.231, green: 0.525, blue: 0.969, alpha: 1)].map(\.cgColor)
gradientLayer.locations = [0,1].map { NSNumber(value: $0) }
gradientLayer.startPoint = CGPoint(x: 0.12, y: 0.25)
gradientLayer.endPoint = CGPoint(x: 0.38, y: 0.25)
view.layer.addSublayer(gradientLayer)
let lable = UILabel()
lable.font = kFont(size: 14)
lable.text = "去完善"
lable.textAlignment = .center
lable.textColor = .white
view.addSubview(lable)
lable.snp.makeConstraints { make in
make.edges.equalTo(0)
}
return view
}()
private lazy var gofinishHoldView : UIView = {
let view = UIView()
return view
}()
}
extension YHContractMainItemStatusCell {
func updateUI() {
// contractNameLable.text = dataModel?.productName ?? "-"
// contractIdLable.text = dataModel?.orderSn ?? "-"
}
func setupUI() {
let holdView = UIView()
holdView.backgroundColor = .white
holdView.layer.cornerRadius = 12
holdView.clipsToBounds = true
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(holdView)
holdView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(16)
make.bottom.equalToSuperview()
make.left.equalTo(16)
make.right.equalTo(-16)
}
holdView.addSubview(iconImageV)
iconImageV.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(26)
make.width.height.equalTo(34)
}
holdView.addSubview(itemNameLable)
itemNameLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(iconImageV.snp.right).offset(14)
make.height.equalTo(24)
make.width.equalTo(80)
}
holdView.addSubview(goUnfinishHoldView)
goUnfinishHoldView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(-16)
make.height.equalTo(34)
make.width.equalTo(76)
}
// goUnfinishHoldView.isHidden = true
gofinishHoldView.isHidden = true
holdView.addSubview(gofinishHoldView)
gofinishHoldView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(-16)
make.width.equalTo(82)
}
let nextImgV = UIImageView()
nextImgV.image = UIImage(named: "service_center_right_next_icon")
nextImgV.contentMode = .scaleAspectFill
gofinishHoldView.addSubview(nextImgV)
nextImgV.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalToSuperview()
make.width.height.equalTo(20)
}
let statusLable = UILabel(text: "已完成")
statusLable.textAlignment = .center
statusLable.font = kFont(name: "PingFang SC", size: 14)
statusLable.textColor = .black
gofinishHoldView.addSubview(statusLable)
statusLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(nextImgV.snp.left).offset(-2)
make.height.equalTo(20)
make.width.equalTo(42)
}
let statusIcon = UIImageView()
statusIcon.image = UIImage(named: "service_center_finish_icon")
statusIcon.contentMode = .scaleAspectFill
gofinishHoldView.addSubview(statusIcon)
statusIcon.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(statusLable.snp.left).offset(-4)
make.width.height.equalTo(14)
}
}
}
......@@ -93,7 +93,7 @@ class YHNetRequest: NSObject {
print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6ImFheHNOa3dmYzZ0NUFSQzZUeDh2MVE9PSIsInZhbHVlIjoiblpTOVFWUFwvMHh4am5GUUxmaHkzTWUrZ1Roenk2QXp2V3FtbzJ2cHJSMXo2N2RnMGdpOG9JS3d3RlZtS1cweWhCcUpweVN6dGw5d2s2WldTRDdWODBhTGpFRWZmOFBiWDJib2lkSDNxSjJ2RXdRT2NhcXVLNGQ2ZjlFK1VIOTFRVjhld0F3eUk4amtcL0o1SDM5dm95TTB3RnZwcmVWaGZDU1FQckhCaGd6Y1cxMWNVUm5jRzZNOEhudWRrN1R1UzVreXR3YUhDeEdKNnhMbFlDNkIzendjVGJXRnFZbGpZUm1VRjltNHkxV0VXaUpHWTIwUVU3MjJCd3Z0YmgzTHNEOHRPTW5URks0T0lEdTFOYU5cL1lFZnJVdkpxRmpFSU9Dcms3R3NoQmlnbFRjY1ZpUFFtT0pDeE1SanpPemdoNFhSUUN0TkJ1V1VvXC9XWjdNSGVXMVNsVERHcThiM1dxVmZ1MlZrb3dDSUZLeFQ1SDBlcTl5NU1IUDJRQUtMeXZ4SnJOSjczWDhRWXZoZE1DVVIzclUzdEtNQkRRSHVRejNkSWpJNGZyUXVQOFlTbEd2Ujk1bjRKT3ZValltNXkwKzdTMCtJdDlRc015VDErMmdqQU52ejVcL0FLQ3BwdjJPQUZHeFozRjJKRzlINmxDTWdEcnQyaXZNaEVaZm1laXFMXC80TmJsblh0Q2JGWFVWRzhuWWF1SHc5SkFmMUdENExwR3FtRW1GTGpsZUcwNlFhbkdEU0dIZFQ5aU9FQlJWa2EzajRHOEt6NFwvXC9qNzhnWkpQOEFiOEIwbFdZWUVCcFd2YWZ4NHhcL1ZSOGZvaElnc3R2cVpFRG1GUTlwUEZwdFcxYnJEMjQ0Yk50bVd2ZU52cDlFZTBueEtmam55MUhLbDVlRjJGS0V3djlhQ1huZFU1QU1lYWZ6TEdQQ1wvK2V6VnFwSzJJeTVsZ2RCNE5qZkRRXC9GSzdvVkNcL1wvWUR2a2Q2NE5kVXBHYVloZDhtMlo1SHJFZnBITXlqWUQyZEVjQStGNGZiaXRPMVpJXC9ibDFXbG9HS21GSHhGVmNleG94UW9mQWhwY09qeDRJekpEQk9mMzZpdDNUSFwvUWpCa2xiYjlUcmRSdnZMTVpmajNkMU4zMk9mNWN3Mng2RlBWbEtYMGtwUDVZNjRsRlpTSmMyUWVMelo2K1J6R1VyYU9aYlVCMUFjZ2todm1kOWdcL3JUaXBCMjFleWliRTZhNDJ6d3dxb3llaHlSVmE4TjlkNCszMzJBbEdOY2N6ZE9zRW50K3VMUnV2d0xYMWtxM1RObkRiQTZDUGtpUHYzT01iQ2c1M1hxeEQ2RStTa3JRWUVpOGZ4d3lsOXpISTJzaGpLTHc0Z1NNZ0srRkdjbExET3drbFViVVdmRFhPVUZ2aU5VUkFqUTlkTUNDOHd4aUltUHNTSmtpWXlYMm9hY09JUCtGRlJ2amdYV2pIdEtBd2Frd1hEczA3Wk44T3FDY2t3dEk4RzhMMFJIK0x5WFB5cG9wTUR6dk9xdFZXVDk5eThFNmYzZ2IyTksyTGhDeHc4RlphTHBnc2ZJS2JRcWhtM1FYYm5TdFZLdnluYlZcL2N2TEYwYUNNOVNzMlpId0JKOXZSSEZ6d2tiQUdsdDErdkJYYXdvZnFsTTVnWFRNR1hcL2E2dXkrZ0h5bmRORFwvWW4yOVl1SHdZdjdra042bjBpUGIwWkJwZFZpMkY4RWtqTXpWT243Z0xBVGhLYzNiTStQSWhTQTNUV3BNSENTYXdYVGo0U0Y0WWlXTkRLdjBwend2Q3oySzJiUktKa1d2UlRrXC81emNwb0VEM3MzbFwvc3dLS0ZBcmxuaFladmtnXC9qb0JpOHFpYzlxeWNqVE5pYXNHbVcwajdnQUVPRngwK2xRdnZZOFdSXC9vb056UT09IiwibWFjIjoiN2MxYzYwYzFmMWY4ZmQyNjBjMjhjNTQ2ZGY2ZmY5NDE4MmRmN2IwNDg3ZWNmMWE1ZTk3YzhhMzFkNTBjYjhiMyJ9")
requestHeader.add(name: "token", value: "eyJpdiI6IkhLdkJSZlFKeSswZkJMSEM3c3BieVE9PSIsInZhbHVlIjoiQ0h3eXZPeUZUVnZ5VUtDcmRSRDNFbU1IRURRMnowVTFRSmFOWTZlTTlVYUM1eWZRYXJpOE1HXC9xMlM1NytmVHV2dVQzdzRqdEwwU29VTTJSYlNYcWl3UDRjXC9GVHNLSEM5WU1Eb3Y4ZERNd0Z6QmF1RzdUT01EakZoXC80bjJHUXgycUN6U08xZFdnQ3pRT3IyQUxobDZFZTJzMDFOTXZvdmFtOEJBaHV2Z1NTN0Vldk9Yd1d5TE52U2ZUTzJaSEhGRkJBOEpaMnd0REdycHJOU3p2M1NncEtnY2ZMeG5WT01OekdPV0FNb0hvdjErWXNldHlYYjFaelRyRSthTUhyQWtCSlNTdVNBV1lwbVpnM3FpSUxKeWg0QTgrOTZxWEVNcWk5bVpjYVVHMTZPS05nNnI3WXhQSUh4Nkp5NHVtZGNcL0RIcnBVaUNxOGpwUGhmeWxINTN6bllqMUw4WVJwd0t4VmpqN2pNWGFqajhBQVV0Slp2VmhodTBSMzlEZEdFZlBEWFpOZHlUejRwdlUyRWpvYUdtTmlqdG05TXpqV0VXRXNuTlpzclwvdnpDMlZzWWZBVE5YMExBU29rNmRtXC9oeUZnNHNoU0RoU1pxa0VvRlNHT1ozdVZCRzZTRXVCNXE4RkkxUnlPakpBaTgrXC9McjZ5OWR2ZE8zaWg4R0lkamdVYUNaZFMrMGFvQkdSMnVzeVJZeTQyZmFvYkR2U3FJVW1XZTVcL3hXMGJZNisyK3FrenRFTmlxZ2pCdENEajBtS1RuOGVobHVyU25uMGZXZ1R4ZUdHeHNNMXlFVjNycmZVZ1BKam03KzlwMGFCR2U2aTN3NmNKeXY4Y1lLNWcyQXBFaytwSm1EZ05EZDFNQVZUdzJNTUE5VXRndnhPS3VXbGh2OXBcL1pUTE96V1lnYld6Q1JcL21qOE8yREtJQ1AyMmg4T1RSQ0FweUN0M0tJeDNHd29SK204RmRTbTlrS2NaK2YwTGR4QldxVmZ1cks4UUN5MVBGdzZtWHBGMnB1bzBKY09uYTFQVks2d3VRYzgrRGpiM0lqSnBRR1kxRFdla1BpMEk1dlBzdENqRTlZaGI5RDFVbWdJakhWUVhidWxEZG16cDJBcVB3T3ZIZTlmM0NGQVRIMXdadXR3XC8zbVlrSjVYWk5SVjlDbkhvS0pqNU1MVmFxcmVuWEtLN0w5WGpidFlhZWFUdXhBSnVoT0I1OFhFUGgzdHk1TVRJXC9vYVlyYlwvXC9jcVVVUVVLNndMNW1iU09Xd2JlQ2lMOWo0NHBBXC9DTjFmXC91cjZJZGpEVzJQN3FiN3pzVjMrY1lGQkJxanNnMWdJU3pJZUV4N2FzemhVVnpxb2tpR0NvMCtSMEJRczJUcE5ROUVIRlwvUmtlNEVXT1g0RkZaQUorWnVuTUR4aWNuaFByMHc4UkowMU5JNzdsYlwvK3pya2pucHMyM0ZNVERxQko3Zm41dFgyMDBicFNUTXd6Q0hGNlM0WlI5c3JuR0IzN0d3eVp4WGNVTEJCU2lNQnR4bmE4MXpVbnE0RmUxMjlyK2NNM0JLYjJRZjJYQWRNb0ZhZTFEeDFndnQ0T2p4TTJaUFZtXC9oM1Q4T2FMNnpENkJNXC9zRUxSZjEwSm5POHpHRXYwcmZ5SUxIWUkxbE1UejFINEluWW13V1dpWXdGTzVqN0FXcjEzR0RrUXBqcTIwUUllTjV5Z052UXlCUHdHNE5mMEpNcW5LY1pDQmdQUm9sTzhVVzg3TE94ZnFlK0c0S3VhWnpVNzVXOUZvVkdHenlKK1V3ODArUDQ5MjQ3OExBNjlDcnlnOHNZOVVKV2xRaSthMFNRaVVycFpoXC9ZY1lLa0VPV2xtQ21sQzdyRExTTkNkdzJoa1ZqS0U1QjhQT2RoSUFNdTBBNFdWRGZydWsxUEE9PSIsIm1hYyI6IjNjOGU0ODg2NzA1YTI2NWEyNmU4NGZiNWY3NjVjMTVkZWQ5ZWM2ZTkzNzAwZjI2MmFhYmIzMGE4MWI4MzAyZDkifQ==")
headers = requestHeader
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2894@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2894@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "down-arrow.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "down-arrow@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "down-arrow@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "Group 2499.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2499@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2499@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "Group 3379.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 3379@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 3379@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