Commit 467967d6 authored by Steven杜宇's avatar Steven杜宇

Merge branch 'develop' into duyu

parents cab70569 d8500052
This diff is collapsed.
...@@ -59,14 +59,14 @@ extension YHBasicInfoFillCell { ...@@ -59,14 +59,14 @@ extension YHBasicInfoFillCell {
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
let sessionView = YHPersonInfoSessionView() let sessionView = YHPreviewInfoSingleLineTitleView()
sessionView.updateTitle(title: dataModel.sessionTitle) sessionView.updateTitle(title: dataModel.sessionTitle)
holdView1.addSubview(sessionView) holdView1.addSubview(sessionView)
sessionView.snp.makeConstraints { make in sessionView.snp.makeConstraints { make in
make.top.equalToSuperview() make.top.equalToSuperview()
make.right.equalToSuperview().offset(-18) make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
make.height.equalTo(YHPersonInfoSessionView.viewH) make.height.equalTo(YHPreviewInfoSingleLineTitleView.viewH)
} }
......
//
// YHFamilyMemberViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/1/29.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*家庭成员信息
*/
class YHFamilyMemberViewController: YHPersonInfoBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
// Do any additional setup after loading the view.
}
}
//
// YHPersonInfoBaseModel.swift
// galaxy
//
// Created by davidhuangA on 2024/1/30.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
struct YHPersonInfoBaseModel: SmartCodable {
var name : String = ""
var description : String = ""
}
...@@ -7,12 +7,11 @@ ...@@ -7,12 +7,11 @@
// //
import UIKit import UIKit
import JXSegmentedView
/* /*
*主申请人信息 *主申请人信息 预览
*/ */
class YHMainApplicantInfoViewController: YHPersonInfoBaseViewController { class YHMainApplicantInfoPreviewViewController: YHPersonInfoBaseViewController {
var arrData : [YHPersonInfoCellModel] = [] var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
...@@ -21,66 +20,66 @@ class YHMainApplicantInfoViewController: YHPersonInfoBaseViewController { ...@@ -21,66 +20,66 @@ class YHMainApplicantInfoViewController: YHPersonInfoBaseViewController {
} }
private extension YHMainApplicantInfoViewController { private extension YHMainApplicantInfoPreviewViewController {
func installData() { func installData() {
do { do {
//国家信息 //国家信息
let tmp0 = YHPersonInfoBaseModel(name: "国家/国籍:", description: "中国-China") let tmp0 = YHPreviewQuestionAndAnswerModel(question: "国家/国籍:", answer: "中国-China")
let tmp1 = YHPersonInfoBaseModel(name: "港澳通行证:", description: "未办理") let tmp1 = YHPreviewQuestionAndAnswerModel(question: "港澳通行证:", answer: "未办理")
let arr = [tmp0,tmp1] let arr = [tmp0,tmp1]
let model1 = YHPersonInfoCellModel(cellType: 0, cellTitle: "国籍信息", cellData0: arr) let model1 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "国籍信息", cellData0: arr)
arrData.append(model1) arrData.append(model1)
} }
do { do {
//基本信息 //基本信息
let tmp0 = YHPersonInfoBaseModel(name: "主申请人:", description: "DavidHuang") let tmp0 = YHPreviewQuestionAndAnswerModel(question: "主申请人:", answer: "DavidHuang")
let tmp1 = YHPersonInfoBaseModel(name: "曾用名:", description: "--") let tmp1 = YHPreviewQuestionAndAnswerModel(question: "曾用名:", answer: "--")
let tmp2 = YHPersonInfoBaseModel(name: "婚前姓氏:", description: "--") let tmp2 = YHPreviewQuestionAndAnswerModel(question: "婚前姓氏:", answer: "--")
let tmp3 = YHPersonInfoBaseModel(name: "出生日期:", description: "1990年8月18日") let tmp3 = YHPreviewQuestionAndAnswerModel(question: "出生日期:", answer: "1990年8月18日")
let tmp4 = YHPersonInfoBaseModel(name: "出生城市:", description: "国内 吉林省/吉林市") let tmp4 = YHPreviewQuestionAndAnswerModel(question: "出生城市:", answer: "国内 吉林省/吉林市")
let tmp5 = YHPersonInfoBaseModel(name: "性别:", description: "男") let tmp5 = YHPreviewQuestionAndAnswerModel(question: "性别:", answer: "男")
let tmp6 = YHPersonInfoBaseModel(name: "婚姻状况:", description: "已婚") let tmp6 = YHPreviewQuestionAndAnswerModel(question: "婚姻状况:", answer: "已婚")
let tmp7 = YHPersonInfoBaseModel(name: "手机号:", description: "13572984488") let tmp7 = YHPreviewQuestionAndAnswerModel(question: "手机号:", answer: "13572984488")
let tmp8 = YHPersonInfoBaseModel(name: "邮箱:", description: "13572984488@nn.com") let tmp8 = YHPreviewQuestionAndAnswerModel(question: "邮箱:", answer: "13572984488@nn.com")
let tmp9 = YHPersonInfoBaseModel(name: "现居住地址:", description: "现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:") let tmp9 = YHPreviewQuestionAndAnswerModel(question: "现居住地址:", answer: "现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:")
let tmp10 = YHPersonInfoBaseModel(name: "详细地址:", description: "锐度公园世家北区10-1-701锐度公园世家北区10-1-701") let tmp10 = YHPreviewQuestionAndAnswerModel(question: "详细地址:", answer: "锐度公园世家北区10-1-701锐度公园世家北区10-1-701")
let tmp11 = YHPersonInfoBaseModel(name: "是否办理过香港身份证:", description: "是") let tmp11 = YHPreviewQuestionAndAnswerModel(question: "是否办理过香港身份证:", answer: "是")
let tmp12 = YHPersonInfoBaseModel(name: "香港身份证:", description: "否") let tmp12 = YHPreviewQuestionAndAnswerModel(question: "香港身份证:", answer: "否")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,tmp11,tmp12] let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,tmp11,tmp12]
let model2 = YHPersonInfoCellModel(cellType: 0, cellTitle: "基本信息", cellData0: arr) let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "基本信息", cellData0: arr)
arrData.append(model2) arrData.append(model2)
} }
do { do {
//证件信息 //证件信息
let tmp0 = YHPersonInfoBaseModel(name: "中国身份证号码:", description: "2203381990287633390") let tmp0 = YHPreviewQuestionAndAnswerModel(question: "中国身份证号码:", answer: "2203381990287633390")
let tmp1 = YHPersonInfoBaseModel(name: "签发地:", description: "北京市分局") let tmp1 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp2 = YHPersonInfoBaseModel(name: "签发日期:", description: "2018-07-17") let tmp2 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2018-07-17")
let tmp3 = YHPersonInfoBaseModel(name: "届满日期:", description: "2028-07-31") let tmp3 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model0 = YHPersonInfoCellModel1(cellTitle: "中国身份证", cellData: [tmp0,tmp1,tmp2,tmp3]) let model0 = YHPersonInfoCellModel1(cellTitle: "中国身份证", cellData: [tmp0,tmp1,tmp2,tmp3])
let tmp4 = YHPersonInfoBaseModel(name: "旅行社证件号码:", description: "c2345639") let tmp4 = YHPreviewQuestionAndAnswerModel(question: "旅行社证件号码:", answer: "c2345639")
let tmp5 = YHPersonInfoBaseModel(name: "签发地:", description: "北京市分局") let tmp5 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp6 = YHPersonInfoBaseModel(name: "签发日期:", description: "2018-07-17") let tmp6 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2018-07-17")
let tmp7 = YHPersonInfoBaseModel(name: "届满日期:", description: "2028-07-31") let tmp7 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model1 = YHPersonInfoCellModel1(cellTitle: "港澳通行证", cellData: [tmp4,tmp5,tmp6,tmp7]) let model1 = YHPersonInfoCellModel1(cellTitle: "港澳通行证", cellData: [tmp4,tmp5,tmp6,tmp7])
let tmp8 = YHPersonInfoBaseModel(name: "证件类别:", description: "护照") let tmp8 = YHPreviewQuestionAndAnswerModel(question: "证件类别:", answer: "护照")
let tmp9 = YHPersonInfoBaseModel(name: "证件号码:", description: "p2345639") let tmp9 = YHPreviewQuestionAndAnswerModel(question: "证件号码:", answer: "p2345639")
let tmp10 = YHPersonInfoBaseModel(name: "签发地:", description: "北京市分局") let tmp10 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp11 = YHPersonInfoBaseModel(name: "签发日期:", description: "2028-07-31") let tmp11 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2028-07-31")
let tmp12 = YHPersonInfoBaseModel(name: "届满日期:", description: "2028-07-31") let tmp12 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model2 = YHPersonInfoCellModel1(cellTitle: "护照及其他旅行证件", cellData: [tmp8,tmp9,tmp10,tmp11,tmp12]) let model2 = YHPersonInfoCellModel1(cellTitle: "护照及其他旅行证件", cellData: [tmp8,tmp9,tmp10,tmp11,tmp12])
let arr = [model0,model1,model2] let arr = [model0,model1,model2]
let model3 = YHPersonInfoCellModel(cellType: 1, cellTitle: "证件信息", cellData1: arr) let model3 = YHPreviewInfoSessionModel(cellType: .idCardInfoType, cellTitle: "证件信息", cellData1: arr)
arrData.append(model3) arrData.append(model3)
} }
...@@ -91,7 +90,7 @@ private extension YHMainApplicantInfoViewController { ...@@ -91,7 +90,7 @@ private extension YHMainApplicantInfoViewController {
let model2 = YHPersonInfoCellModel2(cellTitle: "港澳通行证",frontUrl: "", backUrl: "", idType: 2) let model2 = YHPersonInfoCellModel2(cellTitle: "港澳通行证",frontUrl: "", backUrl: "", idType: 2)
let arr = [model1,model2] let arr = [model1,model2]
let model4 = YHPersonInfoCellModel(cellType: 2, cellTitle: "证件照片", cellData2: arr) let model4 = YHPreviewInfoSessionModel(cellType: .idPictureType, cellTitle: "证件照片", cellData2: arr)
arrData.append(model4) arrData.append(model4)
} }
} }
...@@ -99,7 +98,7 @@ private extension YHMainApplicantInfoViewController { ...@@ -99,7 +98,7 @@ private extension YHMainApplicantInfoViewController {
func setupUI() { func setupUI() {
installData() installData()
self.homeTableView.register(YHPersonInfoCommonCell.self,forCellReuseIdentifier: YHPersonInfoCommonCell.cellReuseIdentifier) self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData() self.homeTableView.reloadData()
} }
} }
...@@ -107,13 +106,13 @@ private extension YHMainApplicantInfoViewController { ...@@ -107,13 +106,13 @@ private extension YHMainApplicantInfoViewController {
// MARK: - UITableViewDelegate 和 UITableViewDataSource // MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHMainApplicantInfoViewController { extension YHMainApplicantInfoPreviewViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count return arrData.count
} }
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPersonInfoCommonCell.self) let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none cell.selectionStyle = .none
cell.model = arrData[indexPath.row] cell.model = arrData[indexPath.row]
return cell return cell
......
...@@ -49,27 +49,31 @@ class YHPersonInfoControllerHoldViewController: UIViewController { ...@@ -49,27 +49,31 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
super.viewDidLoad() super.viewDidLoad()
do { do {
let vc = YHMainApplicantInfoViewController() //主申请人
let vc = YHMainApplicantInfoPreviewViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
do { do {
let vc = YHFamilyMemberViewController()
let vc = YHPreviewFamilyMemberViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
do { do {
let vc = YHFamilyMemberViewController() //基本资料
let vc = YHPreviewBasiceInformationViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
do { do {
let vc = YHFamilyMemberViewController() let vc = YHPreviewFamilyMemberViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
do { do {
let vc = YHFamilyMemberViewController() let vc = YHPreviewFamilyMemberViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
do { do {
let vc = YHFamilyMemberViewController() //其他信息
let vc = YHPreviewOtherInformationViewController()
arrItemVCs.append(vc) arrItemVCs.append(vc)
} }
......
//
// YHPreviewBasiceInformationViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/2/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*基本资料信息 预览
*/
class YHPreviewBasiceInformationViewController: YHPersonInfoBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
private extension YHPreviewBasiceInformationViewController {
func installData() {
do {
//主申请人
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾在香港或其他地方因任何罪行或违法行为被被定罪:", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾在香港或其他地方被拒入境/递解/遣送或要求离境?", answer: "否")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "3、是否曾被拒绝签发香港或其他地方的签证/进入许可?", answer: "否")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "4、是否曾触犯香港或任何地方的入境法例?", answer: "是",remark: "我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈")
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "5、是否曾经使用另一个姓名或身份申请香港入境签证/进入许可或进入香港?", answer: "否")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "主申请人", cellData0: arr)
arrData.append(model1)
}
do {
//配偶
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "配偶", cellData0: arr)
arrData.append(model1)
}
do {
//子女-1
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "子女-1", cellData0: arr)
arrData.append(model1)
}
do {
//子女-2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "子女-2", cellData0: arr)
arrData.append(model1)
}
do {
//家庭背景
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、至少一名直系家庭成员(已婚配偶、父母、兄弟姐妹、子女)是现居于香港的香港永久性居民", answer: "不满足")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "家庭背景", cellData0: arr)
arrData.append(model1)
}
do {
//家庭背景2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、至少一名直系家庭成员(已婚配偶、父母、兄弟姐妹、子女)是现居于香港的香港永久性居民", answer: "满足",remark: "张三、李四、王五")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "家庭背景2-测试满足的情况", cellData0: arr)
arrData.append(model1)
}
}
func setupUI() {
installData()
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData()
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewBasiceInformationViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none
cell.model = arrData[indexPath.row]
return cell
}
}
//
// YHOtherInfoPreviewViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/2/24.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*其他信息 预览
*/
class YHPreviewOtherInformationViewController: YHPersonInfoBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
private extension YHPreviewOtherInformationViewController {
func installData() {
do {
//居住信息
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "开始时间:", answer: "1990年8月")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "结束时间:", answer: "2013年7月")
let model0 = YHPersonInfoCellModel1(cellTitle: "国家1:中国", cellData: [tmp0,tmp1])
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "开始时间:", answer: "1990年8月")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "结束时间:", answer: "2013年7月")
let model1 = YHPersonInfoCellModel1(cellTitle: "国家1:中国2", cellData: [tmp2,tmp3])
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "开始时间:", answer: "1990年8月")
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "结束时间:", answer: "2013年7月")
let model2 = YHPersonInfoCellModel1(cellTitle: "国家1:中国3", cellData: [tmp4,tmp5])
let arr = [model0,model1,model2]
let model3 = YHPreviewInfoSessionModel(cellType: .idCardInfoType, cellTitle: "居住信息", cellData1: arr)
arrData.append(model3)
}
do {
//语言能力
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "中文及英文", answer: "国外大学(英语国家)毕业,英文授课,获得学位证。(如为中外联合办学,在中国上课的,不算)")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "语言能力", cellData0: arr)
arrData.append(model1)
}
do {
//专业技能行业
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、最能代表你的专业技能的行业是?(单选)", answer: "无",remark: "我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业我的自定义专业")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "专业技能行业", cellData0: arr)
arrData.append(model1)
}
do {
//专业技能行业
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、您是否有行业内的专业资格证书?", answer: "否")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、您是否在期刊或杂志上发表论文、文章、书籍等(与工作、资质有关的)?", answer: "是")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?", answer: "是")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?", answer: "是")
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "5、专业奖项:", answer: "这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例")
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "6、学业奖项:", answer: "--")
let tmp6 = YHPreviewQuestionAndAnswerModel(question: "7、其他资料:", answer: "这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明说明示例,这里是一片文案说明。")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "辅助资料", cellData0: arr)
arrData.append(model1)
}
}
func setupUI() {
installData()
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData()
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewOtherInformationViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none
cell.model = arrData[indexPath.row]
return cell
}
}
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
// //
import UIKit import UIKit
import SmartCodable //import SmartCodable
struct YHPersonInfoCellModel1: SmartCodable { struct YHPersonInfoCellModel1 {
var cellTitle : String = "" var cellTitle : String = ""
var cellData : [YHPersonInfoBaseModel] = [] var cellData : [YHPreviewQuestionAndAnswerModel] = []
} }
...@@ -9,10 +9,19 @@ ...@@ -9,10 +9,19 @@
import UIKit import UIKit
import SmartCodable import SmartCodable
struct YHPersonInfoCellModel: SmartCodable { enum YHPreviewInfoSessionModelType: Int {
var cellType : Int = 0 // 0-国籍信息 类型 1-证件信息 类型 2-证件照片 类型 case countryInfoType = 0 //0-国籍信息 类型
case idCardInfoType = 1 //1-证件信息 类型
case idPictureType = 2 //2-证件照片 类型
case questionAndAnswer = 3 //3-问答 类型
}
struct YHPreviewInfoSessionModel {
var cellType : YHPreviewInfoSessionModelType = .countryInfoType
var cellTitle : String = "" var cellTitle : String = ""
var cellData0 : [YHPersonInfoBaseModel]? = nil var cellData0 : [YHPreviewQuestionAndAnswerModel]? = nil
var cellData1 : [YHPersonInfoCellModel1]? = nil var cellData1 : [YHPersonInfoCellModel1]? = nil
var cellData2 : [YHPersonInfoCellModel2]? = nil var cellData2 : [YHPersonInfoCellModel2]? = nil
} }
//
// YHPreviewQuestionAndAnswerModel.swift
// galaxy
//
// Created by davidhuangA on 2024/2/24.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
//import SmartCodable
struct YHPreviewQuestionAndAnswerModel {
var question : String = ""
var answer : String = ""
var remark : String?
init(question: String, answer: String, remark: String? = nil) {
self.question = question
self.answer = answer
self.remark = remark
}
}
//
// YHPreviewInfoCommonCell.swift
// galaxy
//
// Created by davidhuangA on 2024/1/30.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPreviewInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHPreviewInfoCell"
var model : YHPreviewInfoSessionModel? {
didSet{
updateUI()
}
}
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
}
private lazy var holdView : YHPreviewInfoHoldView = {
let contryInfoView = YHPreviewInfoHoldView()
return contryInfoView
}()
}
extension YHPreviewInfoCell {
func updateUI() {
contentView.removeSubviews()
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(holdView)
holdView.removeSubviews()
holdView.snp.makeConstraints { make in
make.top.equalTo(14)
make.left.bottom.equalToSuperview()
make.width.equalTo(contentView.snp.width)
}
if model?.cellType == .countryInfoType {
guard let model = model else { return }
let view = YHPreviewInfoNameAndSubNameItemsView(frame: .zero)
view.dataModel = model
holdView.addSubview(view)
view.snp.makeConstraints { make in
make.edges.equalTo(0)
}
}
else if model?.cellType == .idCardInfoType {
guard let model = model else { return }
let view = YHPreviewInfoCertificateInformationItemsView(frame: .zero)
view.dataModel = model
holdView.addSubview(view)
view.snp.makeConstraints { make in
make.edges.equalTo(0)
}
}
else if model?.cellType == .idPictureType {
guard let model = model else { return }
let view = YHPreviewInfoCertificatePictureItemsView(frame: .zero)
view.dataModel = model
holdView.addSubview(view)
view.snp.makeConstraints { make in
make.edges.equalTo(0)
}
}
else if model?.cellType == .questionAndAnswer {
guard let model = model else { return }
let view = YHPreviewInfoQuestionAndAnswerItemsView(frame: .zero)
view.dataModel = model
holdView.addSubview(view)
view.snp.makeConstraints { make in
make.edges.equalTo(0)
}
}
else {
}
}
}
//
// YHPreviewInfoCertificateInformationItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*证件信息 类型 view
*/
class YHPreviewInfoCertificateInformationItemsView: UIView {
var dataModel : YHPreviewInfoSessionModel? {
didSet {
updateUI()
}
}
}
extension YHPreviewInfoCertificateInformationItemsView {
func updateUI() {
guard let model = dataModel else { return }
guard let arrData = model.cellData1,arrData.count > 0 else { return }
let sessionView = YHPreviewInfoSingleLineTitleView()
sessionView.updateTitle(title: model.cellTitle)
addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.height.equalTo(YHPreviewInfoSingleLineTitleView.viewH)
}
var tmp : UIView = sessionView
for (index0,item0) in arrData.enumerated() {
let lable = UILabel()
lable.text = item0.cellTitle
lable.textColor = UIColor.mainTextColor
lable.font = UIFont.PFSC_M(ofSize: 14)
addSubview(lable)
lable.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom).offset(18)
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(17)
}
tmp = lable
let arrData0 = item0.cellData
if arrData0.count > 0 {
for(index,item) in arrData0.enumerated() {
let cellView = YHPreviewInfoNameAndSubNameItemView()
cellView.update(title: item.question, subtitle: item.answer)
addSubview(cellView)
if index == 0 {
//第一个
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom).offset(10) //for test hjl
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
}
} else if index == arrData0.count - 1 {
//最后一个
if index0 == arrData.count - 1 {
//最后一个cell
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.bottom.equalToSuperview().offset(-21)
}
} else {
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
}
let bottomLine = UIView()
bottomLine.backgroundColor = UIColor(hex: 0xF0F0F0)
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.top.equalTo(cellView.snp.bottom).offset(28)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.height.equalTo(0.5)
}
tmp = bottomLine
continue
}
} else {
//中间
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
}
}
tmp = cellView
}
}
}
}
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPersonInfoIdentificationCardView: UIView { class YHPreviewInfoCertificatePictureItemView: UIView {
var dataModel : YHPersonInfoCellModel2? { var dataModel : YHPersonInfoCellModel2? {
didSet { didSet {
...@@ -25,7 +25,7 @@ class YHPersonInfoIdentificationCardView: UIView { ...@@ -25,7 +25,7 @@ class YHPersonInfoIdentificationCardView: UIView {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
private lazy var titleLable : UILabel = { private lazy var cellTitleLable : UILabel = {
let lable = UILabel() let lable = UILabel()
lable.textColor = UIColor.mainTextColor lable.textColor = UIColor.mainTextColor
lable.font = UIFont.PFSC_M(ofSize: 14) lable.font = UIFont.PFSC_M(ofSize: 14)
...@@ -53,7 +53,7 @@ class YHPersonInfoIdentificationCardView: UIView { ...@@ -53,7 +53,7 @@ class YHPersonInfoIdentificationCardView: UIView {
}() }()
private lazy var subtitleFrontLable : UILabel = { private lazy var frontLable : UILabel = {
let lable = UILabel() let lable = UILabel()
lable.textColor = UIColor.labelTextColor2 lable.textColor = UIColor.labelTextColor2
lable.font = UIFont.PFSC_R(ofSize: 14) lable.font = UIFont.PFSC_R(ofSize: 14)
...@@ -63,7 +63,7 @@ class YHPersonInfoIdentificationCardView: UIView { ...@@ -63,7 +63,7 @@ class YHPersonInfoIdentificationCardView: UIView {
}() }()
private lazy var subtitleBackLable : UILabel = { private lazy var backLable : UILabel = {
let lable = UILabel() let lable = UILabel()
lable.textColor = UIColor.labelTextColor2 lable.textColor = UIColor.labelTextColor2
lable.font = UIFont.PFSC_R(ofSize: 14) lable.font = UIFont.PFSC_R(ofSize: 14)
...@@ -81,10 +81,10 @@ class YHPersonInfoIdentificationCardView: UIView { ...@@ -81,10 +81,10 @@ class YHPersonInfoIdentificationCardView: UIView {
} }
extension YHPersonInfoIdentificationCardView { extension YHPreviewInfoCertificatePictureItemView {
func setupUI() { func setupUI() {
addSubview(titleLable) addSubview(cellTitleLable)
titleLable.snp.makeConstraints { make in cellTitleLable.snp.makeConstraints { make in
make.top.equalTo(18) make.top.equalTo(18)
make.left.equalTo(18) make.left.equalTo(18)
make.right.equalTo(-18) make.right.equalTo(-18)
...@@ -92,27 +92,27 @@ extension YHPersonInfoIdentificationCardView { ...@@ -92,27 +92,27 @@ extension YHPersonInfoIdentificationCardView {
} }
addSubview(subtitleFrontLable) addSubview(frontLable)
subtitleFrontLable.snp.makeConstraints { make in frontLable.snp.makeConstraints { make in
make.top.equalTo(titleLable.snp.bottom).offset(18) make.top.equalTo(cellTitleLable.snp.bottom).offset(18)
make.height.equalTo(20) make.height.equalTo(20)
make.left.equalTo(titleLable.snp.left) make.left.equalTo(cellTitleLable.snp.left)
make.right.equalTo(self.snp.centerX).offset(-4) make.right.equalTo(self.snp.centerX).offset(-4)
} }
addSubview(frontImagV) addSubview(frontImagV)
frontImagV.snp.makeConstraints { make in frontImagV.snp.makeConstraints { make in
make.top.equalTo(subtitleFrontLable.snp.bottom).offset(11) make.top.equalTo(frontLable.snp.bottom).offset(11)
make.height.equalTo(95) make.height.equalTo(95)
make.left.equalTo(subtitleFrontLable.snp.left) make.left.equalTo(frontLable.snp.left)
make.right.equalTo(subtitleFrontLable.snp.right) make.right.equalTo(frontLable.snp.right)
} }
addSubview(subtitleBackLable) addSubview(backLable)
subtitleBackLable.snp.makeConstraints { make in backLable.snp.makeConstraints { make in
make.top.equalTo(subtitleFrontLable.snp.top) make.top.equalTo(frontLable.snp.top)
make.height.equalTo(20) make.height.equalTo(20)
make.right.equalTo(-18) make.right.equalTo(-18)
make.left.equalTo(self.snp.centerX).offset(4) make.left.equalTo(self.snp.centerX).offset(4)
...@@ -121,10 +121,10 @@ extension YHPersonInfoIdentificationCardView { ...@@ -121,10 +121,10 @@ extension YHPersonInfoIdentificationCardView {
addSubview(backImagV) addSubview(backImagV)
backImagV.snp.makeConstraints { make in backImagV.snp.makeConstraints { make in
make.top.equalTo(subtitleBackLable.snp.bottom).offset(11) make.top.equalTo(backLable.snp.bottom).offset(11)
make.height.equalTo(95) make.height.equalTo(95)
make.left.equalTo(subtitleBackLable.snp.left) make.left.equalTo(backLable.snp.left)
make.right.equalTo(subtitleBackLable.snp.right) make.right.equalTo(backLable.snp.right)
} }
...@@ -141,12 +141,12 @@ extension YHPersonInfoIdentificationCardView { ...@@ -141,12 +141,12 @@ extension YHPersonInfoIdentificationCardView {
} }
extension YHPersonInfoIdentificationCardView { extension YHPreviewInfoCertificatePictureItemView {
func updateUI() { func updateUI() {
guard let dataModel = dataModel else { return } guard let dataModel = dataModel else { return }
titleLable.text = dataModel.cellTitle cellTitleLable.text = dataModel.cellTitle
subtitleFrontLable.text = dataModel.idType == 1 ? "身份证头像面" : "港澳通行证正面" frontLable.text = dataModel.idType == 1 ? "身份证头像面" : "港澳通行证正面"
subtitleBackLable.text = dataModel.idType == 1 ? "身份证国徽面" : "港澳通行证反面" backLable.text = dataModel.idType == 1 ? "身份证国徽面" : "港澳通行证反面"
} }
} }
......
//
// YHPreviewInfoCertificatePictureItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*证件照片 类型 view
*/
class YHPreviewInfoCertificatePictureItemsView: UIView {
var dataModel : YHPreviewInfoSessionModel? {
didSet {
updateUI()
}
}
}
extension YHPreviewInfoCertificatePictureItemsView {
func updateUI() {
guard let model = dataModel else { return }
guard let arrData = model.cellData2,arrData.count > 0 else { return }
let sessionView = YHPreviewInfoSingleLineTitleView()
sessionView.updateTitle(title: model.cellTitle)
addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.height.equalTo(YHPreviewInfoSingleLineTitleView.viewH)
}
var tmp : UIView = sessionView
for (index0,item0) in arrData.enumerated() {
let view = YHPreviewInfoCertificatePictureItemView()
view.dataModel = item0
addSubview(view)
if index0 == arrData.count - 1 {
view.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview()
make.left.equalToSuperview()
make.bottom.equalToSuperview()
view.bottomLine.isHidden = true
}
} else {
view.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview()
make.left.equalToSuperview()
}
view.bottomLine.isHidden = false
}
tmp = view
}
}
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPersonInfoSessionHoldView: UIView { class YHPreviewInfoHoldView: UIView {
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
backgroundColor = .white backgroundColor = .white
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
// //
import UIKit import UIKit
class YHPersonInfoCellView: UIView { class YHPreviewInfoNameAndSubNameItemView: UIView {
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
setupUI() setupUI()
...@@ -60,7 +60,7 @@ class YHPersonInfoCellView: UIView { ...@@ -60,7 +60,7 @@ class YHPersonInfoCellView: UIView {
} }
} }
extension YHPersonInfoCellView { extension YHPreviewInfoNameAndSubNameItemView {
func update(title : String,subtitle : String) { func update(title : String,subtitle : String) {
nameLable.text = title nameLable.text = title
subtitleLable.text = subtitle subtitleLable.text = subtitle
......
//
// YHPreviewInfoNameAndSubNameItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPreviewInfoNameAndSubNameItemsView: UIView {
var dataModel : YHPreviewInfoSessionModel? {
didSet {
updateUI()
}
}
}
extension YHPreviewInfoNameAndSubNameItemsView {
func updateUI() {
guard let model = dataModel else { return }
guard let arrData = model.cellData0,arrData.count > 0 else { return }
let sessionView = YHPreviewInfoSingleLineTitleView()
sessionView.updateTitle(title: model.cellTitle)
addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.height.equalTo(YHPreviewInfoSingleLineTitleView.viewH)
}
if arrData.count == 1 {
let item = arrData[0]
let cellView = YHPreviewInfoNameAndSubNameItemView()
cellView.update(title: item.question, subtitle: item.answer)
addSubview(cellView)
cellView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.bottom.equalToSuperview().offset(-21)
}
} else {
var tmp : UIView = sessionView
for(index,item) in arrData.enumerated() {
let cellView = YHPreviewInfoNameAndSubNameItemView()
cellView.update(title: item.question, subtitle: item.answer)
addSubview(cellView)
if index == arrData.count - 1 {
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.bottom.equalToSuperview().offset(-21)
}
} else {
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
}
}
tmp = cellView
}
}
}
}
//
// YHPreviewInfoQuestionAndAnswerView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/24.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPreviewInfoQuestionAndAnswerItemView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//title
private lazy var nameLable : UILabel = {
let lable0 = UILabel(text: "--")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 14)
lable0.numberOfLines = 0
lable0.lineBreakMode = .byCharWrapping
return lable0
}()
//subtitleLable
private lazy var subtitleLable : UILabel = {
let lable0 = UILabel(text: "--")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_R(ofSize: 14)
lable0.numberOfLines = 0
lable0.lineBreakMode = .byWordWrapping
// lable0.textAlignment = .right
return lable0
}()
//remarkLable
private lazy var remarkLable : UILabel = {
let lable0 = UILabel(text: "--")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 14)
lable0.numberOfLines = 0
lable0.lineBreakMode = .byWordWrapping
lable0.text = "--"
return lable0
}()
private lazy var remarkHoldView : UIView = {
let view = UIView()
view.backgroundColor = .contentBkgColor
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
view.isHidden = true
return view
}()
// private lazy var remarkTextField : UITextView = {
// let lable0 = UITextView(frame: .zero)
// lable0.contentInset = UIEdgeInsets(top: 20, left: 12, bottom: 12, right: 12)
// lable0.textColor = UIColor.labelTextColor2
// lable0.font = UIFont.PFSC_R(ofSize: 14)
// lable0.backgroundColor = .contentBkgColor
// lable0.layer.cornerRadius = kCornerRadius6
// lable0.clipsToBounds = true
// lable0.isEditable = false
// lable0.isSelectable = false
// lable0.isScrollEnabled = false
// lable0.text = "我是测试数据哈"
// lable0.isHidden = true
// return lable0
// }()
private func setupUI() {
addSubview(nameLable)
nameLable.snp.makeConstraints { make in
make.top.equalToSuperview().offset(18)
make.left.equalToSuperview()
make.right.equalToSuperview()
make.height.equalTo(20)
}
addSubview(subtitleLable)
// subtitleLable.snp.makeConstraints { make in
// make.top.equalTo(nameLable.snp.bottom).offset(8)
// make.right.equalToSuperview()
// make.left.equalToSuperview()
//
// make.bottom.equalToSuperview()
// }
}
var dataModel : YHPreviewQuestionAndAnswerModel? {
didSet {
updateUI()
}
}
}
extension YHPreviewInfoQuestionAndAnswerItemView {
func updateUI() {
guard let model = dataModel else { return }
removeSubviews()
setupUI()
nameLable.text = model.question
subtitleLable.text = model.answer
if let remark = model.remark {
subtitleLable.snp.makeConstraints { make in
make.top.equalTo(nameLable.snp.bottom).offset(8)
make.right.equalToSuperview()
make.left.equalToSuperview()
}
addSubview(remarkHoldView)
remarkHoldView.snp.makeConstraints { make in
make.top.equalTo(subtitleLable.snp.bottom).offset(8)
make.right.equalToSuperview()
make.left.equalToSuperview()
}
remarkHoldView.addSubview(remarkLable)
remarkLable.snp.makeConstraints { make in
make.top.left.equalTo(12)
make.bottom.right.equalTo(-12)
}
remarkLable.text = remark
remarkHoldView.isHidden = false
remarkHoldView.snp.makeConstraints { make in
make.top.equalTo(subtitleLable.snp.bottom).offset(8)
make.right.equalToSuperview()
make.left.equalToSuperview()
make.bottom.equalToSuperview()
}
} else {
subtitleLable.snp.makeConstraints { make in
make.top.equalTo(nameLable.snp.bottom).offset(8)
make.right.equalToSuperview()
make.left.equalToSuperview()
make.bottom.equalToSuperview()
}
}
}
}
//
// YHPreviewInfoQuestionAndAnswerItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPreviewInfoQuestionAndAnswerItemsView: UIView {
var dataModel : YHPreviewInfoSessionModel? {
didSet {
updateUI()
}
}
}
extension YHPreviewInfoQuestionAndAnswerItemsView {
func updateUI() {
guard let model = dataModel else { return }
guard let arrData = model.cellData0,arrData.count > 0 else { return }
let sessionView = YHPreviewInfoSingleLineTitleView()
sessionView.updateTitle(title: model.cellTitle)
addSubview(sessionView)
sessionView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.height.equalTo(YHPreviewInfoSingleLineTitleView.viewH)
}
if arrData.count == 1 {
let item = arrData[0]
let cellView = YHPreviewInfoQuestionAndAnswerItemView()
cellView.dataModel = item
addSubview(cellView)
cellView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.bottom.equalToSuperview().offset(-21)
}
} else {
var tmp : UIView = sessionView
for(index,item) in arrData.enumerated() {
let cellView = YHPreviewInfoQuestionAndAnswerItemView()
cellView.dataModel = item
addSubview(cellView)
if index == arrData.count - 1 {
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
make.bottom.equalToSuperview().offset(-21)
}
} else {
cellView.snp.makeConstraints { make in
make.top.equalTo(tmp.snp.bottom)
make.right.equalToSuperview().offset(-18)
make.left.equalToSuperview().offset(18)
}
}
tmp = cellView
}
}
}
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import UIKit import UIKit
class YHPersonInfoSessionView: UIView { class YHPreviewInfoSingleLineTitleView: UIView {
static let viewH : CGFloat = 52 static let viewH : CGFloat = 52
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
...@@ -49,7 +49,7 @@ class YHPersonInfoSessionView: UIView { ...@@ -49,7 +49,7 @@ class YHPersonInfoSessionView: UIView {
} }
} }
extension YHPersonInfoSessionView { extension YHPreviewInfoSingleLineTitleView {
func updateTitle(title : String) { func updateTitle(title : String) {
nameLable.text = title nameLable.text = title
} }
......
...@@ -15,6 +15,8 @@ enum YHWorkExampleType: Int { ...@@ -15,6 +15,8 @@ enum YHWorkExampleType: Int {
} }
class YHWorkExampleViewController: YHBaseViewController { class YHWorkExampleViewController: YHBaseViewController {
typealias ExampleBlock = (_ message: String) -> ()
var exampleBlock: ExampleBlock?
var closeButton: UIButton! var closeButton: UIButton!
var titleLabel: UILabel! var titleLabel: UILabel!
var lineView: UIView! var lineView: UIView!
...@@ -105,6 +107,12 @@ class YHWorkExampleViewController: YHBaseViewController { ...@@ -105,6 +107,12 @@ class YHWorkExampleViewController: YHBaseViewController {
view.isHidden = true view.isHidden = true
self.typeView.isHidden = false self.typeView.isHidden = false
} }
view.exampleBlock = { [weak self] message in
if let block = self?.exampleBlock {
block(message)
}
self?.close()
}
view.isHidden = true view.isHidden = true
return view return view
}() }()
...@@ -138,11 +146,6 @@ class YHWorkExampleViewController: YHBaseViewController { ...@@ -138,11 +146,6 @@ class YHWorkExampleViewController: YHBaseViewController {
return dataSource?[index].industry ?? "" return dataSource?[index].industry ?? ""
} }
@objc func getCode() {
}
@objc func close() { @objc func close() {
self.dismiss(animated: true) self.dismiss(animated: true)
} }
......
...@@ -15,10 +15,11 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -15,10 +15,11 @@ class YHWorkExperienceViewController: YHBaseViewController {
var tableView: UITableView! var tableView: UITableView!
var viewModel: YHWorkExperienceViewModel! var viewModel: YHWorkExperienceViewModel!
var baseDataSource: [YHSectionWorkExperienceModel]? var baseDataSource: [YHSectionWorkExperienceModel]?
var introductionDataSource: [YHWorkItemListModel]? var introductionDataSource: [YHWorkExperienceProjectModel]?
var fileDataSource: [String]? var fileDataSource: [String]?
var workExperienceID: String? var workExperienceID: String?
var isMore: Bool = false
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
viewModel = YHWorkExperienceViewModel() viewModel = YHWorkExperienceViewModel()
...@@ -34,8 +35,13 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -34,8 +35,13 @@ class YHWorkExperienceViewController: YHBaseViewController {
} }
viewModel.requestWorkDetail(workExperienceID ?? "") {[weak self] success, error in viewModel.requestWorkDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.viewModel.mainModel.step ?? 0
self.updateDataSource() self.updateDataSource()
self.viewModel.requestWorkInfoProject("\(self.viewModel.mainModel.id ?? 0)") {[weak self] success, error in
guard let self = self else { return }
self.introductionDataSource = success
self.updateDataSource()
}
} }
updateDataSource() updateDataSource()
} }
...@@ -95,12 +101,17 @@ class YHWorkExperienceViewController: YHBaseViewController { ...@@ -95,12 +101,17 @@ class YHWorkExperienceViewController: YHBaseViewController {
let bottom = YHBottomNextView() let bottom = YHBottomNextView()
bottom.nextblock = { [weak self] in bottom.nextblock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1 self.viewModel.saveWorkDetail(1, callBackBlock: {[weak self] flag, model in
self.updateDataSource() guard let self = self else { return }
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
})
} }
bottom.saveBlock = { [weak self] in bottom.saveBlock = { [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.viewModel.saveWorkDetail(0, callBackBlock: {[weak self] flag, model in
guard let self = self else { return }
})
} }
return bottom return bottom
}() }()
...@@ -119,6 +130,9 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -119,6 +130,9 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return 1 return 1
} }
if stepView.currentIndex == 4 { if stepView.currentIndex == 4 {
if viewModel.mainModel.not_need_upload_file == 1 {
return 1
}
return 2 return 2
} }
return baseDataSource?.count ?? 0 return baseDataSource?.count ?? 0
...@@ -127,37 +141,99 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo ...@@ -127,37 +141,99 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if stepView.currentIndex == 1 { if stepView.currentIndex == 1 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self)
cell.dataSource = viewModel.mainModel.wduty
cell.exampleBlock = {[weak self] in cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self?.viewModel.exampleModels mainVc.dataSource = self.viewModel.exampleModels
mainVc.type = .wduty mainVc.type = .wduty
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
cell.dataSource = message
self.viewModel.updateWduty(message)
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self?.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
}
cell.messageBlock = {[weak self] message in
self?.viewModel.updateWduty(message)
} }
return cell return cell
} else if stepView.currentIndex == 2 { } else if stepView.currentIndex == 2 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self)
cell.dataSource = viewModel.mainModel.highlights
cell.exampleBlock = {[weak self] in cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self?.viewModel.exampleModels mainVc.dataSource = self.viewModel.exampleModels
mainVc.type = .highlight mainVc.type = .highlight
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
cell.dataSource = message
self.viewModel.updateHighlights(message)
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self?.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
}
cell.messageBlock = {[weak self] message in
self?.viewModel.updateHighlights(message)
}
cell.switchBlock = {[weak self] isOn in
self?.viewModel.updateIsProjectIntroduction(isOn: isOn)
} }
return cell return cell
} else if stepView.currentIndex == 3 { } else if stepView.currentIndex == 3 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkIntroductionTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkIntroductionTableViewCell.self)
cell.dataSource = introductionDataSource
if isMore {
cell.more()
} else {
cell.cannal()
}
cell.clickBlock = {[weak self] model in
guard let self = self else { return }
let vc = YHWorkIntroductionViewController()
vc.dataSource = model
vc.workModel = self.viewModel.mainModel
vc.saveBlock = {[weak self] in
guard let self = self else { return }
self.getData()
}
self.navigationController?.pushViewController(vc, animated: true)
}
cell.deleteBlock = {[weak self] model in
guard let self = self else { return }
self.viewModel?.requestDeleteWorkExperienceProject("\(model.id ?? 0)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.getData()
})
}
cell.isMoreBlock = {[weak self] isMore in
guard let self = self else { return }
self.isMore = isMore
}
cell.addIntroductionBlock = {[weak self] in cell.addIntroductionBlock = {[weak self] in
guard let self = self else { return } guard let self = self else { return }
let vc = YHWorkIntroductionViewController() let vc = YHWorkIntroductionViewController()
vc.workModel = self.viewModel.mainModel
vc.saveBlock = {[weak self] in
guard let self = self else { return }
self.getData()
}
self.navigationController?.pushViewController(vc, animated: true) self.navigationController?.pushViewController(vc, animated: true)
} }
return cell return cell
} else if stepView.currentIndex == 4 { } else if stepView.currentIndex == 4 {
if indexPath.row == 0 { if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkMessageSelectTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkMessageSelectTableViewCell.self)
cell.dataSource = viewModel.mainModel.not_need_upload_file
cell.isNeedFileBlock = { [weak self] value in
guard let self = self else { return }
self.viewModel.updateNotNeedUploadFile(value: value)
self.tableView.reloadData()
}
return cell return cell
} else { } else {
let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkFileSyncTableViewCell.self)
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import UIKit import UIKit
class YHWorkIntroductionViewController: YHBaseViewController { class YHWorkIntroductionViewController: YHBaseViewController {
typealias SaveBlock = () -> ()
var saveBlock: SaveBlock?
var nameTextField: UITextField! var nameTextField: UITextField!
var startTextField: UITextField! var startTextField: UITextField!
var endTextField: UITextField! var endTextField: UITextField!
...@@ -17,15 +19,17 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -17,15 +19,17 @@ class YHWorkIntroductionViewController: YHBaseViewController {
var actionView: YHWorkActionView! var actionView: YHWorkActionView!
var bottomView: UIView! var bottomView: UIView!
var bottomButton: UIButton! var bottomButton: UIButton!
var viewModel: YHWorkIntroductionViewModel? var viewModel: YHWorkIntroductionViewModel?
var workModel: YHWorkExperienceDetailModel?
var dataSource: YHWorkExperienceProjectModel = YHWorkExperienceProjectModel()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
gk_navTitle = "工作经验信息填写" gk_navTitle = "工作经验信息填写"
viewModel = YHWorkIntroductionViewModel() viewModel = YHWorkIntroductionViewModel()
setView() setView()
getData() getData()
isShowPromptsLabel()
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
} }
...@@ -67,6 +71,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -67,6 +71,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
let textField = UITextField() let textField = UITextField()
textField.font = UIFont.PFSC_R(ofSize: 14) textField.font = UIFont.PFSC_R(ofSize: 14)
textField.placeholder = "如方便提供,请填写" textField.placeholder = "如方便提供,请填写"
textField.text = dataSource.project_name
return textField return textField
}() }()
view.addSubview(nameTextField) view.addSubview(nameTextField)
...@@ -83,6 +88,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -83,6 +88,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.placeholder = "开始时间" textField.placeholder = "开始时间"
textField.isEnabled = false textField.isEnabled = false
textField.isUserInteractionEnabled = false textField.isUserInteractionEnabled = false
textField.text = dataSource.project_start_time
return textField return textField
}() }()
view.addSubview(startTextField) view.addSubview(startTextField)
...@@ -112,6 +118,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -112,6 +118,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.placeholder = "结束时间" textField.placeholder = "结束时间"
textField.isEnabled = false textField.isEnabled = false
textField.isUserInteractionEnabled = false textField.isUserInteractionEnabled = false
textField.text = dataSource.project_end_time
return textField return textField
}() }()
view.addSubview(endTextField) view.addSubview(endTextField)
...@@ -151,6 +158,7 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -151,6 +158,7 @@ class YHWorkIntroductionViewController: YHBaseViewController {
textField.font = UIFont.PFSC_R(ofSize: 14) textField.font = UIFont.PFSC_R(ofSize: 14)
textField.layer.cornerRadius = 6 textField.layer.cornerRadius = 6
textField.delegate = self textField.delegate = self
textField.text = dataSource.project_highlights
return textField return textField
}() }()
view.addSubview(messageTextField) view.addSubview(messageTextField)
...@@ -182,6 +190,12 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -182,6 +190,12 @@ class YHWorkIntroductionViewController: YHBaseViewController {
let mainVc = YHWorkExampleViewController() let mainVc = YHWorkExampleViewController()
mainVc.dataSource = self.viewModel?.introducetionExampleModels mainVc.dataSource = self.viewModel?.introducetionExampleModels
mainVc.type = .introduction mainVc.type = .introduction
mainVc.exampleBlock = {[weak self] message in
guard let self = self else { return }
self.dataSource.project_highlights = message
self.messageTextField.text = message
self.isShowPromptsLabel()
}
let vc = UINavigationController(rootVC: mainVc) let vc = UINavigationController(rootVC: mainVc)
vc.modalPresentationStyle = .pageSheet vc.modalPresentationStyle = .pageSheet
self.navigationController?.present(vc, animated: true) self.navigationController?.present(vc, animated: true)
...@@ -226,26 +240,46 @@ class YHWorkIntroductionViewController: YHBaseViewController { ...@@ -226,26 +240,46 @@ class YHWorkIntroductionViewController: YHBaseViewController {
} }
@objc func submit() { @objc func submit() {
let vc = YHWorkExperienceViewController() viewModel?.saveWorkProjectDetail(workModel ?? YHWorkExperienceDetailModel(), projectModel: dataSource, callBackBlock: {[weak self] success, error in
self.navigationController?.pushViewController(vc, animated: true) guard let self = self else { return }
if let block = self.saveBlock {
block()
}
self.navigationController?.popViewController(animated: true)
})
} }
@objc func startClick() { @objc func startClick() {
YHDatePickView.show(type: .yyyymmdd) { date in YHDatePickView.show(type: .yyyymmdd) { date in
self.startTextField.text = date self.startTextField.text = date
self.dataSource.project_start_time = date
} }
} }
@objc func endClick() { @objc func endClick() {
YHDatePickView.show(type: .yyyymmdd) { date in YHDatePickView.show(type: .yyyymmdd) { date in
self.endTextField.text = date self.endTextField.text = date
self.dataSource.project_end_time = date
}
}
func isShowPromptsLabel() {
if messageTextField.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
} }
} }
} }
extension YHWorkIntroductionViewController: UITextViewDelegate { extension YHWorkIntroductionViewController: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
self.dataSource.project_highlights = textView.text
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
} }
//
// YHWorkExperienceProjectModel.swift
// galaxy
//
// Created by EDY on 2024/2/23.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
struct YHWorkExperienceProjectModel: SmartCodable {
var id: Int?
var order_id: Int?
var work_id: Int?
var project_name: String?
var project_start_time: String?
var project_end_time: String?
var project_highlights: String?
var update_from_appid: Int?
var create_from_appid: Int?
var customer_center_id: Int?
var created_at: String?
var updated_at: String?
var deleted_at: String?
}
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
import UIKit import UIKit
class YHWorkExampleMessageTableViewCell: UITableViewCell { class YHWorkExampleMessageTableViewCell: UITableViewCell {
typealias IndexBlock = (_ index: Int) -> () typealias MessageBlock = (_ message: String) -> ()
var indexBlock: IndexBlock? var messageBlock: MessageBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var useButton: UIButton! var useButton: UIButton!
...@@ -81,7 +81,7 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell { ...@@ -81,7 +81,7 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell {
button.setTitle("使用此模板", for: .normal) button.setTitle("使用此模板", for: .normal)
button.setTitleColor( UIColor(hex:0x2f7ef6), for: .normal) button.setTitleColor( UIColor(hex:0x2f7ef6), for: .normal)
button.layer.cornerRadius = 3 button.layer.cornerRadius = 3
// button.addTarget(self, action: #selector(submit), for: .touchUpInside) button.addTarget(self, action: #selector(submit), for: .touchUpInside)
return button return button
}() }()
centerView.addSubview(useButton) centerView.addSubview(useButton)
...@@ -119,6 +119,12 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell { ...@@ -119,6 +119,12 @@ class YHWorkExampleMessageTableViewCell: UITableViewCell {
} }
} }
@objc func submit() {
if let block = messageBlock {
block(dataSource ?? "")
}
}
func updateAllViews() { func updateAllViews() {
messageLabel.text = dataSource messageLabel.text = dataSource
} }
......
...@@ -108,6 +108,11 @@ extension YHWorkExampleMessageView: UITableViewDelegate, UITableViewDataSource { ...@@ -108,6 +108,11 @@ extension YHWorkExampleMessageView: UITableViewDelegate, UITableViewDataSource {
let cell = tableView.dequeueReusableCell(withClass: YHWorkExampleMessageTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHWorkExampleMessageTableViewCell.self)
cell.titleLabel.text = "范例\(indexPath.row + 1)" cell.titleLabel.text = "范例\(indexPath.row + 1)"
cell.dataSource = dataSource?[indexPath.row] cell.dataSource = dataSource?[indexPath.row]
cell.messageBlock = { [weak self] message in
if let block = self?.exampleBlock {
block(message)
}
}
return cell return cell
} }
......
...@@ -10,7 +10,11 @@ import UIKit ...@@ -10,7 +10,11 @@ import UIKit
class YHWorkHighlightsTableViewCell: UITableViewCell { class YHWorkHighlightsTableViewCell: UITableViewCell {
typealias ExampleBlock = () -> () typealias ExampleBlock = () -> ()
typealias MessageBlock = (_ message: String) -> ()
typealias SwitchBlock = (_ isOn: Bool) -> ()
var exampleBlock: ExampleBlock? var exampleBlock: ExampleBlock?
var messageBlock: MessageBlock?
var switchBlock: SwitchBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -20,7 +24,7 @@ class YHWorkHighlightsTableViewCell: UITableViewCell { ...@@ -20,7 +24,7 @@ class YHWorkHighlightsTableViewCell: UITableViewCell {
var detailLabel: UILabel! var detailLabel: UILabel!
var detailSwitch: UISwitch! var detailSwitch: UISwitch!
var bottomView: YHWorkActionView! var bottomView: YHWorkActionView!
var dataSource: YHSectionWorkExperienceModel?{//模型待定 var dataSource: String?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -187,16 +191,38 @@ class YHWorkHighlightsTableViewCell: UITableViewCell { ...@@ -187,16 +191,38 @@ class YHWorkHighlightsTableViewCell: UITableViewCell {
} }
func updateAllViews() { func updateAllViews() {
messageTextField.text = dataSource
if dataSource?.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
@objc func switchViewChange() { @objc func switchViewChange() {
if let block = switchBlock {
block(detailSwitch.isOn)
}
}
func setSwitchState(_ isOn: Int) {
if isOn == 1 {
detailSwitch.isOn = true
} else {
detailSwitch.isOn = false
}
} }
} }
extension YHWorkHighlightsTableViewCell: UITextViewDelegate { extension YHWorkHighlightsTableViewCell: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
if let block = messageBlock {
block(textView.text ?? "")
}
} }
} }
...@@ -9,15 +9,16 @@ ...@@ -9,15 +9,16 @@
import UIKit import UIKit
class YHWorkIntroductionItemView: UIView { class YHWorkIntroductionItemView: UIView {
typealias ItemBlock = (_ model: YHItemModel) -> () typealias ItemBlock = (_ model: YHWorkExperienceProjectModel) -> ()
var block: ItemBlock? var clickBlock: ItemBlock?
var deleteBlock: ItemBlock?
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
var nextStepImageView: UIImageView! var nextStepImageView: UIImageView!
var deleteButton: UIButton! var deleteButton: UIButton!
var centerButton: UIButton! var centerButton: UIButton!
var dataSource: YHWorkItemListModel? { var dataSource: YHWorkExperienceProjectModel? {
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -91,13 +92,13 @@ class YHWorkIntroductionItemView: UIView { ...@@ -91,13 +92,13 @@ class YHWorkIntroductionItemView: UIView {
button.contentHorizontalAlignment = .center button.contentHorizontalAlignment = .center
button.setTitle("删除", for: .normal) button.setTitle("删除", for: .normal)
button.setTitleColor( UIColor(hex:0xf81d22), for: .normal) button.setTitleColor( UIColor(hex:0xf81d22), for: .normal)
button.addTarget(self, action: #selector(centerClick), for: .touchUpInside) button.addTarget(self, action: #selector(deleteClick), for: .touchUpInside)
button.isHidden = true button.isHidden = true
return button return button
}() }()
addSubview(deleteButton) addSubview(deleteButton)
deleteButton.snp.makeConstraints { make in deleteButton.snp.makeConstraints { make in
make.right.equalTo(-24) make.right.equalToSuperview()
make.height.equalTo(20) make.height.equalTo(20)
make.width.equalTo(28) make.width.equalTo(28)
make.centerY.equalTo(titleLabel.snp.centerY) make.centerY.equalTo(titleLabel.snp.centerY)
...@@ -106,17 +107,30 @@ class YHWorkIntroductionItemView: UIView { ...@@ -106,17 +107,30 @@ class YHWorkIntroductionItemView: UIView {
func updateAllViews() { func updateAllViews() {
guard let dataSource = dataSource else { return } guard let dataSource = dataSource else { return }
// titleLabel.text = dataSource.title titleLabel.text = dataSource.project_name
// subTitleLabel.text = dataSource.subTitle subTitleLabel.text = "\(dataSource.project_start_time ?? "")" + "-" + "\(dataSource.project_end_time ?? "")"
// if dataSource.isShowDelete ?? false {
// deleteButton.isHidden = false
// } else {
// deleteButton.isHidden = true
// }
} }
@objc func centerClick() { @objc func centerClick() {
if let block = clickBlock {
block(self.dataSource ?? YHWorkExperienceProjectModel())
}
}
@objc func deleteClick() {
if let block = deleteBlock {
block(self.dataSource ?? YHWorkExperienceProjectModel())
}
}
func isShowDelete(isShow: Bool) {
if isShow {
nextStepImageView.isHidden = true
deleteButton.isHidden = false
} else {
nextStepImageView.isHidden = false
deleteButton.isHidden = true
}
} }
} }
...@@ -9,10 +9,13 @@ ...@@ -9,10 +9,13 @@
import UIKit import UIKit
class YHWorkIntroductionTableViewCell: UITableViewCell { class YHWorkIntroductionTableViewCell: UITableViewCell {
typealias ExperienceListBlock = (_ model: YHItemModel) -> () typealias ExperienceListBlock = (_ model: YHWorkExperienceProjectModel) -> ()
typealias IsMoreBlock = (_ isMore: Bool) -> ()
typealias AddIntroductionBlock = () -> () typealias AddIntroductionBlock = () -> ()
var experienceListBlock: ExperienceListBlock? var clickBlock: ExperienceListBlock?
var deleteBlock: ExperienceListBlock?
var addIntroductionBlock: AddIntroductionBlock? var addIntroductionBlock: AddIntroductionBlock?
var isMoreBlock: IsMoreBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -20,7 +23,7 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -20,7 +23,7 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
var moreButton: UIButton! var moreButton: UIButton!
var mainItemView: UIView! var mainItemView: UIView!
var bottomView: YHWorkItemAddView! var bottomView: YHWorkItemAddView!
var dataSource: [YHWorkItemListModel]?{ var dataSource: [YHWorkExperienceProjectModel]?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -156,9 +159,17 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -156,9 +159,17 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
} }
let itemView = YHWorkIntroductionItemView() let itemView = YHWorkIntroductionItemView()
itemView.dataSource = dataSource?[i] itemView.dataSource = dataSource?[i]
itemView.block = {[weak self] model in itemView.tag = 4000 + i
itemView.clickBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
if let block = self.experienceListBlock { if let block = self.clickBlock {
block(model)
}
}
itemView.deleteBlock = {[weak self] model in
guard let self = self else { return }
if let block = self.deleteBlock {
block(model) block(model)
} }
} }
...@@ -173,10 +184,26 @@ class YHWorkIntroductionTableViewCell: UITableViewCell { ...@@ -173,10 +184,26 @@ class YHWorkIntroductionTableViewCell: UITableViewCell {
} }
@objc func cannal() { @objc func cannal() {
moreButton.isHidden = false
cannalButton.isHidden = true
for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkIntroductionItemView
view.isShowDelete(isShow: false)
}
if let block = isMoreBlock {
block(false)
}
} }
@objc func more() { @objc func more() {
moreButton.isHidden = true
cannalButton.isHidden = false
for i in 0..<(dataSource?.count ?? 0) {
let view = mainItemView.viewWithTag(4000 + i) as! YHWorkIntroductionItemView
view.isShowDelete(isShow: true)
}
if let block = isMoreBlock {
block(true)
}
} }
} }
...@@ -9,12 +9,23 @@ ...@@ -9,12 +9,23 @@
import UIKit import UIKit
class YHWorkMessageSelectTableViewCell: UITableViewCell { class YHWorkMessageSelectTableViewCell: UITableViewCell {
typealias IsNeedFileBlock = (_ isNeed: Int) -> ()
var isNeedFileBlock: IsNeedFileBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var lineView: UIView! var lineView: UIView!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
var leftButton: UIButton! var leftButton: UIButton!
var rightButton: UIButton! var rightButton: UIButton!
var dataSource: Int?{
didSet {
var flag = true
if dataSource == 1 {
flag = false
}
buttonState(isLeft: flag)
}
}
override func awakeFromNib() { override func awakeFromNib() {
super.awakeFromNib() super.awakeFromNib()
...@@ -173,6 +184,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell { ...@@ -173,6 +184,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell {
rightButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08) rightButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08)
leftButton.backgroundColor = UIColor.contentBkgColor leftButton.backgroundColor = UIColor.contentBkgColor
leftButton.layer.borderWidth = 0 leftButton.layer.borderWidth = 0
if let block = isNeedFileBlock {
block(1)
}
} }
@objc func leftClick() { @objc func leftClick() {
...@@ -183,6 +197,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell { ...@@ -183,6 +197,9 @@ class YHWorkMessageSelectTableViewCell: UITableViewCell {
leftButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08) leftButton.backgroundColor = UIColor(hex: 0x2f7ef6).withAlphaComponent(0.08)
rightButton.backgroundColor = UIColor.contentBkgColor rightButton.backgroundColor = UIColor.contentBkgColor
rightButton.layer.borderWidth = 0 rightButton.layer.borderWidth = 0
if let block = isNeedFileBlock {
block(0)
}
} }
} }
...@@ -10,7 +10,9 @@ import UIKit ...@@ -10,7 +10,9 @@ import UIKit
class YHWorkResponsibilitiesTableViewCell: UITableViewCell { class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
typealias ExampleBlock = () -> () typealias ExampleBlock = () -> ()
typealias MessageBlock = (_ message: String) -> ()
var exampleBlock: ExampleBlock? var exampleBlock: ExampleBlock?
var messageBlock: MessageBlock?
var centerView: UIView! var centerView: UIView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -18,7 +20,7 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell { ...@@ -18,7 +20,7 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
var messageTextField: UITextView! var messageTextField: UITextView!
var promptsLabel: UILabel! var promptsLabel: UILabel!
var bottomView: YHWorkActionView! var bottomView: YHWorkActionView!
var dataSource: YHSectionWorkExperienceModel?{//模型待定 var dataSource: String?{
didSet { didSet {
updateAllViews() updateAllViews()
} }
...@@ -154,11 +156,24 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell { ...@@ -154,11 +156,24 @@ class YHWorkResponsibilitiesTableViewCell: UITableViewCell {
} }
func updateAllViews() { func updateAllViews() {
messageTextField.text = dataSource
if dataSource?.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
} }
} }
extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate { extension YHWorkResponsibilitiesTableViewCell: UITextViewDelegate {
func textViewDidChange(_ textView: UITextView) { func textViewDidChange(_ textView: UITextView) {
if textView.text.count != 0 {
promptsLabel.isHidden = true
} else {
promptsLabel.isHidden = false
}
if let block = messageBlock {
block(textView.text ?? "")
}
} }
} }
...@@ -11,7 +11,7 @@ import UIKit ...@@ -11,7 +11,7 @@ import UIKit
class YHWorkExperienceViewModel: YHBaseViewModel { class YHWorkExperienceViewModel: YHBaseViewModel {
var mainModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel() var mainModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
var exampleModels: [YHWorkExampleModel]? var exampleModels: [YHWorkExampleModel]?
var projectModels: [YHWorkExperienceProjectModel]?
override init() { override init() {
super.init() super.init()
} }
...@@ -114,6 +114,26 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -114,6 +114,26 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
} }
} }
func updateWduty(_ value: String) {
mainModel.wduty = value
}
func updateHighlights(_ value: String) {
mainModel.highlights = value
}
func updateIsProjectIntroduction(isOn: Bool) {
if isOn {
mainModel.is_project_introduction = 1
} else {
mainModel.is_project_introduction = 0
}
}
func updateNotNeedUploadFile(value: Int) {
mainModel.not_need_upload_file = value
}
func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) { func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/example" let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/example"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
...@@ -159,4 +179,113 @@ class YHWorkExperienceViewModel: YHBaseViewModel { ...@@ -159,4 +179,113 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// 0保存 1下一步
func saveWorkDetail(_ saveType: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let area: [String] = mainModel.location?.area ?? []
let location = ["area": area,
"country": mainModel.location?.country ?? "",
"details": mainModel.location?.details ?? "",
"foreign": mainModel.location?.foreign ?? ""] as [String : Any]
let params: [String : Any] = ["administrative_level": mainModel.administrative_level ?? 0,
"business_nature": mainModel.business_nature ?? "",
"business_remark":mainModel.business_remark ?? "",
"company_introduce": mainModel.company_introduce ?? "",
"company_manage_total": mainModel.company_manage_total ?? 0,
"company_member_total": mainModel.company_member_total ?? 0,
"company_name": mainModel.company_name ?? "",
"company_website": mainModel.company_website ?? "",
"create_from_appid": mainModel.create_from_appid ?? 0,
"created_at": mainModel.created_at ?? "",
"customer_center_id": mainModel.customer_center_id ?? 0,
"deleted_at": mainModel.deleted_at ?? "",
"departure_time": mainModel.departure_time ?? "",
"duty": mainModel.duty ?? "",
"entry_time": mainModel.entry_time ?? "",
"executives_certificate": mainModel.executives_certificate ?? "",
"file": mainModel.file ?? [],
"highlights": mainModel.highlights ?? "",
"id": mainModel.id ?? 0,
"industry": mainModel.industry ?? "",
"international_work_experience": mainModel.international_work_experience ?? 0,
"is_executives": mainModel.is_executives ?? 0,
"is_famous_enterprise": mainModel.is_famous_enterprise ?? 0,
"is_project_introduction": mainModel.is_project_introduction ?? 0,
"is_show": mainModel.is_show ?? 0,
"is_synthetic": mainModel.is_synthetic ?? 0,
"location": location,
"location_aboard": mainModel.location_aboard ?? 0,
"master_of_important_project": mainModel.master_of_important_project ?? 0,
"match_listing": mainModel.match_listing ?? 0,
"not_need_upload_file": mainModel.not_need_upload_file ?? 0,
"old_id": mainModel.old_id ?? 0,
"operator_english_name": mainModel.operator_english_name ?? "",
"operator_id": mainModel.operator_id ?? 0,
"operator_name": mainModel.operator_name ?? "",
"order_id": mainModel.order_id ?? 0,
"position": mainModel.position ?? "",
"professional_level": mainModel.professional_level ?? 0,
"professional_other": mainModel.professional_other ?? "",
"projects": mainModel.projects ?? [],
"remark": mainModel.remark ?? "",
"step": mainModel.step ?? 0,
"top_manager_end_at": mainModel.top_manager_end_at ?? "",
"top_manager_start_at": mainModel.top_manager_start_at ?? "",
"turnover": mainModel.turnover ?? 0,
"update_from_appid": mainModel.update_from_appid ?? 0,
"updated_at": mainModel.updated_at ?? "",
"wduty": mainModel.wduty ?? "",
"work_certificate": mainModel.work_certificate ?? "",
"verify": saveType
]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/save"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestWorkInfoProject(_ workId: String, callBackBlock:@escaping (_ success: [YHWorkExperienceProjectModel]?, _ error:YHErrorModel?)->()){
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/list?work_id=\(workId)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock([],error)
return
}
let dic = model.data?.peel
guard let resultArray = [YHWorkExperienceProjectModel].deserialize(array: dic as? [Any]) else {
callBackBlock([],nil)
return
}
self.projectModels = resultArray as? [YHWorkExperienceProjectModel]
callBackBlock(self.projectModels, nil)
} failBlock: { err in
callBackBlock([],err)
}
}
func requestDeleteWorkExperienceProject(_ orderId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["id": orderId]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/del"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
} }
...@@ -37,5 +37,25 @@ class YHWorkIntroductionViewModel: YHBaseViewModel { ...@@ -37,5 +37,25 @@ class YHWorkIntroductionViewModel: YHBaseViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// 0保存 1下一步
func saveWorkProjectDetail(_ workModel: YHWorkExperienceDetailModel, projectModel: YHWorkExperienceProjectModel, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["app_id": workModel.create_from_appid ?? 0,
"id": projectModel.id ?? 0,
"order_id": workModel.order_id ?? 0,
"project_end_time": projectModel.project_end_time ?? "",
"project_highlights": projectModel.project_highlights ?? 0,
"project_name": projectModel.project_name ?? 0,
"project_start_time": projectModel.project_start_time ?? "",
"work_id": workModel.id ?? 0
]
let strUrl = YHBaseUrlManager.shared.curURL() + "frontend/workInfo/project/save"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
callBackBlock(true, nil)
} failBlock: { err in
callBackBlock(false, err)
}
}
} }
...@@ -99,7 +99,7 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -99,7 +99,7 @@ class YHCodeSueecssViewController: YHBaseViewController {
self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in
guard let self = self else { return } guard let self = self else { return }
if success == false { if success == false {
YHHUD.flash(message: "登录失败") YHHUD.flash(message: error?.errorMsg ?? "")
} else { } else {
YHHUD.flash(message: "登录成功") YHHUD.flash(message: "登录成功")
self.dismiss(animated: true) self.dismiss(animated: true)
......
...@@ -179,7 +179,7 @@ class YHPhoneLoginViewController: YHBaseViewController { ...@@ -179,7 +179,7 @@ class YHPhoneLoginViewController: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
if success == true { if success == true {
YHHUD.flash(message: "验证码已下发,请注意查收") // YHHUD.flash(message: "验证码已下发,请注意查收")
let vc = YHCodeSueecssViewController() let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text vc.phoneNumber = self.phoneMessageView.phoneTextField.text
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
......
...@@ -39,7 +39,7 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD ...@@ -39,7 +39,7 @@ class YHWebViewViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
// 加载网页的进度条 // 加载网页的进度条
progBar = UIProgressView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 30)) progBar = UIProgressView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 30))
progBar.progress = 0.0 progBar.progress = 0.0
progBar.tintColor = UIColor.red progBar.tintColor = UIColor.brandMainColor
webview.addSubview(progBar) webview.addSubview(progBar)
// 监听网页加载的进度 // 监听网页加载的进度
webview.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil) webview.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)
......
...@@ -67,22 +67,28 @@ extension YHLoginViewModel { ...@@ -67,22 +67,28 @@ extension YHLoginViewModel {
return return
} }
if resultModel.token?.count != 0 { if model.code == 200 {
//token 正常 if resultModel.token?.count != 0 {
self.userModel = resultModel //token 正常
YHLoginManager.shared.userModel = resultModel self.userModel = resultModel
YHLoginManager.shared.userModel = resultModel
//数据保存到本地
YHLoginManager.shared.saveLocalUserInfo() //数据保存到本地
YHLoginManager.shared.saveLocalUserInfo()
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
//回调
callBackBlock(true,nil) //回调
} else { callBackBlock(true,nil)
let error : YHErrorModel = YHErrorModel(errorCode:-2,errorMsg: "token 不合法") } else {
let error : YHErrorModel = YHErrorModel(errorCode:-2,errorMsg: "token 不合法")
callBackBlock(false,error)
}
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(model.code), errorMsg: model.msg)
callBackBlock(false,error) callBackBlock(false,error)
} }
} failBlock: { err in } failBlock: { err in
callBackBlock(false,err) callBackBlock(false,err)
} }
......
...@@ -93,7 +93,24 @@ class YHNetRequest: NSObject { ...@@ -93,7 +93,24 @@ 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: YHLoginManager.shared.userModel?.token ?? "-") requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-") //for test hjl
// requestHeader.add(name: "token", value: "eyJpdiI6InhISTlXZjA2cXE5Z2pqMDZDa2NrTkE9PSIsInZhbHVlIjoiR3NkRVR0dVdjWE5GN2N3UmNiU0xobVYzZTR6SXlGXC9XVEhWV0xcL1F1YXVBOU9jRDlFZ2pOanBcL1RBMUVkUDlRQ2xhREx0c3dKeHNJQjMwaVVuYkloZHBiUXQzZkJlS2dTWDJrTE90K2FpM0FDWm10a3FFUGZpdW90TDNscStud0tSenRRV2kyV3JVbEZ6eXppUHZ5ajFQMXpBejh0YUZ4Z0VPZkwwdEtwXC9mNjh4bWQySGpSS2pzVkJ1Y3ZrbGFKdGVsMkhkRXJrTlRHbzkxcVdkcE1yWXRja2xDRHVmRUhhdU9ybkJmXC9VRVJnY2RXeVpXMzZVc2h2eUsxYVRmSXR0QXB1WjVsaDBLTllVOEtKWUhSTE5yNXFvYWlaQzdQSWZ0T0V2VTZwTFJjb25OZGdYbE1lNHZOZ0ZWcWhWWkhnUm8rWGJqSE1Jdm1DY3hlWVliY2F0YkplZFwvQ0pMMndtdHFBQUF0MjJYTFNZYk14Tzh0d0g1K2c2M1U2bXFZY3JUbXptbEhCSXR5R3hFZ0JHNmpXTHgzeTJvc0Z2UXpENk5LOTlBN0VjWE8rNmYzTklBN3d0YVVPb2VyS0lNK3FINUZlTmR6UTlBdENuZEtDKzE3emwxMGxvaEc1Sm1mc0E3Y251cU5xcjd4ZzdSbHNNQ2xoRUc4VUJTR24zQ1lRSE5VRGtUd0s0ZTljSlRxRmdwMFVqY0RsMjQwcm1SaVdSN29lNjYrd1JDSlwvSUtiSWpneFpuR2VzeUFBbzNBUUh2MnNVTFZ5bXVLTGVLNFM5TjdzdXpaM1ZFRDdvRUVlRFF0QUY4d2pXcmF4NkFwMGVodXRVUFlxVGhVRmVpYlwvRUJFT05idFhyeXp4TUtcLzN0MlVcL3ZIc2dWSncxaW55TDVUVXFIWjZZMUdHakJKVnpzRkxGeE52RWdLaW9WT0tCb3pTQW1xelNwaTRaQmtGeEpITjVEUU44Q3VGSnBGdzdOcFRyTE9sYmFTT3RrMDJYU3l0XC9PcVJ1OXo2MUpJdm5XSHZFZ0lIMGh5OGR2TEJkNTZjVHFKM1hSYnVEbm9vVFU1VUUzcmRDZ3JhZWRYQWZ1cU9aajVKMHdOMGpxczBSVU5GejNrNzk3bnVBa210dFdCblVBaUs5Y0VIWmxCdE04UlV6T2NEN3ZTN2E0MEhRYmlCNGk3V2xZN1R2ZUM4cVVZZ1Rlb1BndmFcL2phemNnbEhKb05QeHhxa1BldFFqK2ErcWZmYWs1RnNPWEpNK0x4MFo4MTU4OEttZTNxeDMrcCtkNUVwSUd4b1krOXRFdU1UNVFxZyszXC9Lb21TSG5hSFI2OVRVWmxIRm9UcTRlU2kyNWF6K1pQR3lMK1MyS0FvQ2ZFaTViTmdybm1xQ1BscVMzM2tjeUFCQVlvZFdPMTJTb2ttZDl2Q3BuTXVvTnJkUDRpa0g5cE4rWlRcL1l2MWdNdmY0MFVsMFArWWYzWVNmMW5oUnkwWk1mTVc3WUluU3dyQUM4TTZBbHJac0lOMDNiYVhVWks2TCs3QnN0VDlOXC9xaEwyUEtmblVmOXpcL3hoekQ1K3JKWVozVWxrdElKbTdWTHpaMnk2bXFQQ0VJalR1TVpIc1d4bmJjVVIwdTR1VXY1M1wvMEJMODVTWkNreVpCVmh3MWRDeERROGh5YnVsMkVKV2poMFwvYnZHakMycHJmQjUycDQ3b3laUUlTSjdmaDdFMnFtTHhIN1RvUnhhcUhCWXkybkhoMlFwZUVtM0VPUVZrcXp3S0lLMFwvOUtvZnhibE1ZUnp0bGVkcGdqTlp0dGV0cGhCa3hjUmxZXC96SWRFXC83OWxEUnRma1MyYnZqWGhMN0lSM0x2Z0NCTWxIR0pUYjByWDN4Y3JCT3JLTzFzUWkzS3NYTDVDZVJ3MmhEbXlXSENqYWc9PSIsIm1hYyI6Ijc1YmU5YTE4ZGEwNzExZGJlZWQ0MzZhNGVkNWE1NGMzYmE1YWFjNjBhYTgxYjFlYjUyN2M1Yzc4ZjkwNTcyNmMifQ==")
//杜宇的账号
// requestHeader.add(name: "token", value: "eyJpdiI6Ik5aeEVDclZTK0FISEFBZUgxN2VkdGc9PSIsInZhbHVlIjoiRFRJOHlObzVrZlp4T2tVYW1MSE1ZK0Z3dXlyK3p4QlczNmxsTXdkdW5GQVY4Q2VqZlNNUDdrdVpsb0JcLytpYmJheUp2MWZTUE5pOWgrVWRLdEtIUkx4R1wvS3F6SmRSQ0dWeFVXanFINGkyRWNMTXB4TVlcLzhjXC9NSzVoMFwvZ1ZOaVIwb0VqWlo1VERPSHY2RWJhME1RdWtkXC8yanBQdm9lMWM4WXJVK1BnMDd6SncwVVlWMDNnbSswSnM3eVwveFRRck03M3pOaDFSc3g0UmlYMTJQdmZpSkhUWHVMa21RV2xRbXBkalVTTUFicmFaN2NVNXl1ZTJOeEJoKzhrMnZtdzdvM1U5Qmh4WXNiSEFERUpiZHNWNkxoM2ZkVVRUdFlMMU1MQnIyaWNxNSt4S1NocDVEbnNqeHphUCtVVk1qTlVnMk1ydVNPamJ0c2tDQ1wvWFk1SkxtSWtDMU9oT3ZqaFpuNU5aVUVicHpYVU56VnlqK01Cb20welJMbkQrcTFWOHFUbzlPK0RGdDRcLzJ1T094MjNjYTVZZmJcL2txRE93cEFUYzlKWWdVWE9cLzFnYnVwTFZ4VUtqMFQ5QlgzZitDQjhyNURpU3p0bktqblBicUxPekNBcWRWM0g0WklSOEc0T0RPVkNBMGZQdEtWV3ZqN3IrcHZDYm9UNjREdnA3U1RZY1Z1dFE3K1RRM2F2eGY0QXc2dGlha0RBUDVpVHdFWE53dzl2eVczVk9VNTJSa1Fzb1J4ZGd0c0RCdktPQ1FWOUQ5Y0krckQ3bFc4NkNJMHliSXlnNGtYU1ZCUHRZWTdCKzA5d1wvdldzWTlpeUdYaEg4eGhITHpRSUthMWpSVlZvZVhwZ3BvamxCTHFSUXJmQ1hQNThYbUNNanZnVGs0b3RDTUFmYkdsYTEzeEtnTXJpZVU0QnJHWDJoUk9sUklzaFFhUkJiNWk0Z2E0cUUwejU4RmF2RnE4Z2U0eEo3VmZ2SmFMTlVacFBvSFlZUmM2N3liVTdhTk5NWU9YS0xtalk3QUN3NWV2UTlPeE5hMmk0aHU4MSt0YjNJQytFczRMa2l6XC9jV0Jxc01QYU0yYXdTXC92RXBxTFNVOVd6SlwvRm9KM21jUHlcL2diRlMyU3REeEl0K1RxSjRuck8xaXlOaWY4NXVzMVBibXpVSEZJWkVZQnFUd2k5TUVJcDUwUEFjTmljTzYyaWFYaFkzZUtkR294d29LUzBUTFF1Y0xxbWtMNFF4ZlZkN2k4YktEUnRGekU3OEdaN2J3TUR4T2FpVHRKaGlqRWNcL2c5dlwvOUVEVmdLNUhBSk1wSGV5UXVoOFJydlczc09HU1EyeXI4SFZZQmJJQWx1cGFIaXhmK1VJNmdoNmwrOElMZXFxSHZtazQreW84RFBlOXFnVDI2bm1tZWl0K01OcU1DSGJEQXdnWW9Hc0ptWFVJbXVXdEpyT2FKUHprTzJ1MkxFSEViZGV4cFpuOWRXK3dUdVR4bmJHZ1VRRGJycFRBME5lWUtaT0JCYjViSWVvcVJ3RXllb2tQZ1VkUWFqVWo0UHQzMUQwWVMwZ05rTTU0Nk1QQUdxTm9rZFNISVYrTG5DWlArNkt5RkZxajdZN1luakRKQVdUaVpnOUhCUExYMEVKRXRRT3QyZTI4cU9TdlBrbWxVZkFLSWZFbXNha3lCZUhFRVpyTmxQOERjbVwvMytCc0JpNnZcL1Nvek9yR2pUWGF2XC9VMzN4OEY5T3VsdUNGRFNWbHZZMnBzNHhMeEdIR21majBOOUJNbEhlK1J4S3dFTnlJamdTeFQyTWlTTlhCUWxnSDF6VmNhWHIzVGpoREY5clB2XC9uZHZjSm1iTHZ1bjFIUUFRait6dUJlUk1WQ1FhdXFoN002YlQ5MVwvQVMzYzJJQ0RFR1czdEtqMFBTQT09IiwibWFjIjoiOGVlZjBmNTVmMzEwNjhkZjVmYTlkYzAwYzllMjJmNjUyZmRmN2U1ODFiZTIzNzRjMDVjMTNiOTNhOWRhMmVkYSJ9")
//明杰的账号
// requestHeader.add(name: "token", value: "eyJpdiI6InM0a3dcL1hQYUtPOENKOXNJYzRoMHJnPT0iLCJ2YWx1ZSI6Ik12dW9PUWI2SGRIZDF1cGVrREZ0b2tyd3ZLeUJkVXp5am9vRWhhYVVNRnRyT0FNNWdlNW9cL1BpMFBSS1RKd3B6Y2dyaVM0aHV0NXlIcXJkc1MxdG11d3hMZ3RsZHJ4aGNiRnZLZDJ0Q0NSYndUMUNuODRaYW1lQk1KZ0FqTFFVbTZ1TllMTGdtY1dlV0ZkRm5TeW9Vc1FYY09ZMFMrbGo4TmRnZ0syOWRhUFFRbjBjWDFDKzEwQWxLWjExNWJ5R3VxRGNEbWN0K0Z6Z1VieFIrMmdSbTZ6dU9CZGdFcDJlTktPMTY2cHYyeGhKVXpSNVhxT0VTQjRCa05OTE9aalQzWVFPczRpS1lldk16Zk9BUmZYbnRybDVoVXdRZWM3V1BUV3J0NkIxRHBCT3JDd1czQ0Q3YjU4cnVxVE5Lb0ZnbnlmMWN1RU9ocnU1ZE5pUmVDS21CbmhWTDdxTmYrRCtNNHZLQzdNXC9Bb0lRWXdNcE5HNW5ielwvWGtCZmpKNlNHWW9MaE94TXNSOURlemVSSkNkUXVveFJkUHVWbFIyeXNVZFJ3K0pXNElUWVhLSXpvUGNQek1cLzRBc3BaRE1lUVdKSENCS0FJdjFyeUVBSnNXeTZcL0RNajJIeFF0QUdndzBWRllOQ2R5UzZMK3lqdFZTanRxbXhmeGFrRVRJOE95enA1cUl0VzVjUytpVnBkRTFXMm9uQytobG1vWTlRQWhvNGN4THdRSTUyS0tub29xK25VZkNIb1FVOEh6YktGbjgzdjQ0NlA1cVc0aWNqYWp6OElSb3Vlb0ZPWmVzdVRLQW5SejVJa09kUDIrZW5jbmVtTzYyOFwvQnRTV3ExZVFhOWh4XC9BbDUxaHNRSDlIXC96QThkVGlBcEVkOUZCelBIV21WVXZ0OFlQaWtsclFPOXJzOXFoeGc1QXcyeEgwU2NqcWxXb2g4aTJBK2tCZkxoNjBTU1VrNDEwWWxVUW50STcyMFwvQjlCU2lxc3RSRGFOemdJTDN5NGRhN1RLSHVXVlFVRHdWN1dIVGppTVFNZEkzMWU4ckpXZ1lcL3BKRENnZGpuR0ZaTlpBVFowMVRWc1dpOFEzcERUY3RjXC9nUGYrTkxLdkFGSlc3b0dSUWVuQkRVR2tzZVN2UDFEdCtKNnNMMHNQZnJaT0tGV293OHMxXC9WZ1V5Z0dmM1VLeFM5QVdvVGVcL2IrS0Y3M0Zya0tQbXl6ZTNkWm00V1hZUUdiY3p5UVwvZWthUVlkNGV6cVlNaDMwazJNS0FoejlLT3FlZlBzWklnWkRZclhwUmFqTzk1VWF2eHJ1c1pqYzI2eThqOEJVZDZIbUt1dE81VjZoM0xiWm1NOVBrcjlhM1djOUJvb3VLTjJ2VTJvMzd3MHA1cmRuSWxTMGgzclYrUHF0NnFRN1BPSE4rM1ZTWWF5VlBTWE56aTV0U3Y5M0NrcDNBYVFHTTJvOUsyR1Y4S2k3N05CZUFDMk4xUVwvVWZKSUdiMjdmOXIxSXZjSTdvaGhMSHFISk12N2xDdlRrZUloaVBMS0cyMkVrclhcL3loenQ1MTF2V0lORDZyVmZMaytiWVJyMnk4SzhDRktQSFRQR1FoTFpQZHBzUllRbUUza3NaXC9lMXFSSFZud05JTWo1UkVTTXZjZmZucUF3Mzh2OVpkT2QyaVQ2VXRFVHltRW1MQjlzaHh1Ym02YW1LRUphSVNUeEltMWN5WGxRdlgzSE96V0ErbDdldnQ0ZkRjdGxsQVVpRFZCdnlMSnVrSW5aS3BrT3FRbDh0NWR0TWoxdjNMb3ZUVEJwbkVMbzJjeHRibGJJTGlMOHhSU0tNaTk5VHJxSk9xanRIOTMreVVmZm5lXC82SThIXC9iVXFudW9VOVd1S1RNYlwvbzF5b2V0bDVtRWNkalBTdkVVRGFPVlE9PSIsIm1hYyI6IjNkOTZlZDhiOTVlNmUxZmVlMzZmNDIyYmMzYTc4N2Y2ZmE0ZTI3MGI2YjQxZGVkZGRmMTY0N2IyOGZiM2RhNjYifQ==")
//金龙的账号
requestHeader.add(name: "token", value: "eyJpdiI6IlwvcVM1VkFpcSs3amtVbTB2Mzh0SWl3PT0iLCJ2YWx1ZSI6IisrRVlDN1p4RkFETG56Y2M2Wmo5OVBXbzhseDJcL3NRRWhCTG02UGZ0b1pPODh6M2pqZCtFUVNWcDJmOHE5eFI0K3U5TnZ3cjI1MnkrbDZpUElsNGZ3WEZWNTJ3bGt4NFQ2enBOK2h4bE41NHZWeFBkSEF3bjlHZG44dlRQYXhrQXpvNmpFSWowNDZPcjRUcFFGZDNleWs4NEU1bG5Lb0FuelU3Slg5VjdcL2g1aU93U01wbGdZU2tUbWhYRUdUaUEzWW1pUUNGbjBkS1NaM09LTGxTeDZ0QVB1dEJZaTRjaVhBXC9scXdzS3djZGNUamgwR3NwbWdwMDkzeE90UVV0cnlBTUVxSHZuclZxN1dIdzZueTY0dEJKMERWcTE1NlVNckdLNE9jMHkrbVZqRm14QXp0aVd3bUhwOEdHQklXVzREdUhrNFI4WW0ybVNDTXhqeDdnTlwvVzhrZlwvQW9EelVOSzZGVFZIWlpcL2dNdjVGa1o0ampQWks2dmk4V1JDWjJjbU5vVFwvZjd4NXlUdWp1ZVVYcXdjK0E1MzQyYTd4WHdGRitsQ0NQMjJmNGUyM0piaXJPcTRYNmhqSm9EMmVLZ0RscHpqRlU5WEtYUE9PSTBsM3FBK09jYVdtZHlpWnJSbWtFUXZYdGNCSlZvTUxmTFlLWm9SUURieW5TbWE3RGFHUXlYTkI0OWo5eVVLODVcL0ZXMGxkaHpibm1Fa2Z2ZmZ3N2V0SWQxREZqQ1MyV3JaWjZkc2RHbVRkTmoyTW9oOHdcL1BBRCt2WHo4V0hJdzdiNFlYWlBSTUNIOCtxNXp3dStveks4SGNqR0x6SjBmcThBSXhtSklYT2d4ZEFtck9ibzExazVuXC8wT2NCRW1sXC9kbnRaaTRYV3dPVjVwQlVpOFcwTktDUFkxdkUxZWJnSkxvXC84XC9BRHNhaUttUnZ0c2dhYTF2VXFtQkcwdkFLeHJZR29qQkxtRFhpZW1tK2dOU1hYVGRmRWM4U0xhY3lSRW01bTdJS3ZCdUF6Z051OUNVekNrWjUxN0diZ3R6T3BySytqWktCcmRxcldnOEZLQzMrRTlLWWZSaTU2OTlTVkZoZFErSHRBSldRVW9HSnB3OGR5S0l2V2U0anE5NU9kWVIrNmFBWkc4UnlBVDBwQmxBNjRySzBITzluZnZVNWJJOGQ4MmJPeU1PSklmSkdncXpJQ3BcL1BkaUswZkJZSlVid0UydUxkWEhKcWtkWmV2dml0Rkh4cnQxNENwVDdVb0x0eUFBXC9VMmlPTDI0OVJ4VHpHMEN6RENWa3hORG9RTXhTcDM1M0xHdE5pcWx1dU55YzBHKzZxOWdEYVcreSt3dmdGaG9kaDQrMXhsTTd0ZFl1OTMySlNxNTRxXC9uVzBvR3RrK3AxZGxaZmJma0ZQMkxlRUlwXC83OHE4T2hTMkF0U2wrdXlzalJXaEhXSnNDMEZqWmt6RGNKbFhUblpcL3lyRGxnQW9nanNja1FsYlwvZUpDUmJtWVhsZzIzY3lUSDhudWRvRmp5TkpJbEN5WEZTTFA4OGpoUVVkdHRqcHFsWVZkXC85d1hIUEpGMkZRbHAyeFphWTJud2FZejRCdkFUK0lSTDlicnZiUDFcL3lhMEFPQVFYQTMxdXJla0tpbDdibmkycGxOU05wY1ZjeTZzdTN0NjdLNk9IUHhOYTZnaUR3VW1iVXJEbmJvMmN3WTZYUFllbHd2Y0J2cnVsUzVvVitHMFFxSGFzc2x3K2ErVUpaaFZkbHVqRG5Ua3NzTTNSZTNRdGtwNnFiS2wyRkVTUEJVVjluZ1ZGN3RHT0VWQjR4MVpXNnBFWnU2bHU1Z2dqOUNuMlNwMUljXC9ZZk5EWjhiXC9sdUVnVUhYelJSQVwvK1FXcytPb3ZYMXZrVVBScmN5YU0rNWR3a0pqcm1BPT0iLCJtYWMiOiJhOGM2NjQwNDVjYjNmMjhiZjI5MWU5YTdiODE0MGVkOGQ2YzIzNWVkYjUzYjkwNjU3OTFiN2U5YTliZWQ1NGQ1In0")
headers = requestHeader headers = requestHeader
} }
......
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