Commit 592687ba authored by Steven杜宇's avatar Steven杜宇

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

# Conflicts:
#	galaxy/galaxy.xcodeproj/project.pbxproj
parents 8d7a1c8c 13ddc79e
This diff is collapsed.
...@@ -182,9 +182,9 @@ extension AppDelegate { ...@@ -182,9 +182,9 @@ extension AppDelegate {
window?.makeKeyAndVisible() window?.makeKeyAndVisible()
if YHLoginManager.shared.needJumpToMsgTabFlag { if YHLoginManager.shared.needJumpToMsgTabFlag {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: { // DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
goTabBarBy(tabType: .message) // goTabBarBy(tabType: .message)//todo for test hjl
}) // })
} }
} }
......
...@@ -78,9 +78,9 @@ extension AppDelegate: JPUSHRegisterDelegate { ...@@ -78,9 +78,9 @@ extension AppDelegate: JPUSHRegisterDelegate {
// 转换到消息tab // 转换到消息tab
YHLoginManager.shared.needJumpToMsgTabFlag = true YHLoginManager.shared.needJumpToMsgTabFlag = true
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: { // DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
goTabBarBy(tabType: .message) // goTabBarBy(tabType: .message) //todo for test hjl
}) // })
} }
...@@ -120,9 +120,9 @@ extension AppDelegate: JPUSHRegisterDelegate { ...@@ -120,9 +120,9 @@ extension AppDelegate: JPUSHRegisterDelegate {
// 转换到消息tab // 转换到消息tab
YHLoginManager.shared.needJumpToMsgTabFlag = true YHLoginManager.shared.needJumpToMsgTabFlag = true
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: { // DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
goTabBarBy(tabType: .message) // goTabBarBy(tabType: .message)//todo for test hjl
}) // })
} }
......
//
// YHInformationAuthorizationStepOneViewController.swift
// galaxy
//
// Created by EDY on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHInformationAuthorizationStepOneViewController: YHBaseViewController {
var stepOneView: UIView!
var stepTwoView: UIView!
var photoImageView: UIImageView!
var photoButton: UIButton!
var changeButton: UIButton!
var nextButton: UIButton!
var tableView: UITableView!
var promptView: YHFailPromptView!
var items: [YHUserInformationModel] = []
var viewModel: YHInformationAuthorizeViewModel = YHInformationAuthorizeViewModel()
override func viewDidLoad() {
super.viewDidLoad()
setView()
getData()
}
func getData() {
items = viewModel.getBaseDataSource()
tableView.reloadData()
}
func setView() {
gk_navTitle = "设置"
view.backgroundColor = .white
stepOneView = {
let view = UIView()
view.backgroundColor = UIColor.brandMainColor
return view
}()
view.addSubview(stepOneView)
stepOneView.snp.makeConstraints { make in
make.left.equalTo(21)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(3)
make.right.equalTo(view.snp.centerX).offset(-3)
}
stepTwoView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xf4f6fa)
return view
}()
view.addSubview(stepTwoView)
stepTwoView.snp.makeConstraints { make in
make.right.equalTo(-21)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(3)
make.left.equalTo(view.snp.centerX).offset(3)
}
photoImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "user_photo_default")
imageView.contentMode = .scaleAspectFill
imageView.isUserInteractionEnabled = true
imageView.layer.cornerRadius = 46.5
imageView.layer.masksToBounds = true
return imageView
}()
view.addSubview(photoImageView)
photoImageView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 59)
make.height.width.equalTo(93)
}
photoButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "user_take_photo"), for: .normal)
button.addTarget(self, action: #selector(takePhoto), for: .touchUpInside)
return button
}()
view.addSubview(photoButton)
photoButton.snp.makeConstraints { make in
make.bottom.equalTo(photoImageView.snp.bottom)
make.right.equalTo(photoImageView.snp.right)
make.width.height.equalTo(28)
}
changeButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "user_change_photo"), for: .normal)
button.addTarget(self, action: #selector(changeHead), for: .touchUpInside)
return button
}()
view.addSubview(changeButton)
changeButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(photoImageView.snp.bottom).offset(20)
make.width.equalTo(68.5)
make.height.equalTo(20)
}
nextButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.brandMainColor.withAlphaComponent(0.4)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
button.contentHorizontalAlignment = .center
button.setTitle("下一步", for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.addTarget(self, action: #selector(nextStep), for: .touchUpInside)
button.isEnabled = false
return button
}()
view.addSubview(nextButton)
nextButton.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.bottom.equalTo(-8 - k_Height_safeAreaInsetsBottom())
make.height.equalTo(48)
}
tableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.backgroundColor = .white
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(cellWithClass: YHMyInformationItemCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.equalTo(changeButton.snp.bottom).offset(24)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64 - 36)
make.left.right.equalTo(view)
}
promptView = {
let view = YHFailPromptView()
view.titleLable.text = "温馨提示:请填写真实信息,AI人脉匹配更精准"
view.backgroundColor = UIColor(hex: 0xf0f4fb)
view.titleLable.textColor = UIColor.brandMainColor
view.alertImageView.image = UIImage(named: "user_prompt_image")
return view
}()
view.addSubview(promptView)
promptView.snp.makeConstraints { make in
make.height.equalTo(36)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view)
}
}
@objc func takePhoto() {
view.endEditing(true)
YHImagePickerView.show() {[weak self] image in
guard let self = self else { return }
self.photoImageView.image = image
}
}
@objc func changeHead() {
}
@objc func nextStep() {
let vc = YHInformationAuthorizationStepTwoViewController()
self.navigationController?.pushViewController(vc)
}
}
extension YHInformationAuthorizationStepOneViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHMyInformationItemCell.self)
cell.dataSource = items[indexPath.row]
cell.block = { [weak self] model in
guard let self = self else { return }
self.viewModel.updateModel(model)
if self.viewModel.isCanNext() {
nextButton.isEnabled = true
nextButton.backgroundColor = UIColor.brandMainColor
} else {
nextButton.isEnabled = false
nextButton.backgroundColor = UIColor.brandMainColor.withAlphaComponent(0.4)
}
if model.id != .id1 && model.id != .id3 && model.id != .id5 {
self.getData()
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 61.0
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.01))
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
}
//
// YHInformationAuthorizationStepTwoViewController.swift
// galaxy
//
// Created by EDY on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHInformationAuthorizationStepTwoViewController: UIViewController {
var stepOneView: UIView!
var stepTwoView: UIView!
var nextButton: UIButton!
var tableView: UITableView!
var items: [YHSettingItem] = [YHSettingItem(type: .normal, title: "允许您的信息在名片中使用", subTitle: "开启后,您的信息将自动同步至您的个人名片,并对您的好友公开可见", isSelect: true, isShowAlert: false)]
var viewModel: YHInformationAuthorizeViewModel = YHInformationAuthorizeViewModel()
var stepFlag: Bool = true
override func viewDidLoad() {
super.viewDidLoad()
setView()
getData()
}
func getData() {
items = viewModel.getBaseSetDataSource()
tableView.reloadData()
}
func setView() {
gk_navTitle = "设置"
view.backgroundColor = .white
stepOneView = {
let view = UIView()
view.backgroundColor = UIColor.brandMainColor
return view
}()
view.addSubview(stepOneView)
stepOneView.snp.makeConstraints { make in
make.left.equalTo(21)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(3)
make.right.equalTo(view.snp.centerX).offset(-3)
}
stepTwoView = {
let view = UIView()
view.backgroundColor = UIColor.brandMainColor
return view
}()
view.addSubview(stepTwoView)
stepTwoView.snp.makeConstraints { make in
make.right.equalTo(-21)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + 16)
make.height.equalTo(3)
make.left.equalTo(view.snp.centerX).offset(3)
}
nextButton = {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.brandMainColor
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
button.contentHorizontalAlignment = .center
button.setTitle("下一步", for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.layer.cornerRadius = kCornerRadius3
button.addTarget(self, action: #selector(nextStep), for: .touchUpInside)
return button
}()
view.addSubview(nextButton)
nextButton.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.bottom.equalTo(-8 - k_Height_safeAreaInsetsBottom())
make.height.equalTo(48)
}
tableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.backgroundColor = .white
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(cellWithClass: YHAllowSettingTableViewCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.equalTo(35 + k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view)
}
if !stepFlag {
tableView.snp.remakeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view)
}
}
}
@objc func nextStep() {
}
}
extension YHInformationAuthorizationStepTwoViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHAllowSettingTableViewCell.self)
cell.item = items[indexPath.row]
cell.block = { [weak self] model in
guard let self = self else { return }
self.viewModel.updateSetModel(model)
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 98.0
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.01))
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
}
//
// YHUserInformationModel.swift
// galaxy
//
// Created by EDY on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHUserInformationID: Int {
case id1 = 0 // 真实姓名
case id2 = 1 // 所在地
case id3 = 2 // 毕业院校
case id4 = 3 // 所属行业
case id5 = 4 // 职位
}
struct YHUserInformationModel {
var id: YHUserInformationID?
var title: String?
var isUserKeyBoard: Bool?
var prompts: String?
var message: String?
var type: YHItemSelectType?
var value: [String]?
init(id: YHUserInformationID? = nil, title: String? = nil, isUserKeyBoard: Bool? = nil, prompts: String? = nil, message: String? = nil, type: YHItemSelectType? = nil, value: [String]? = nil) {
self.id = id
self.title = title
self.isUserKeyBoard = isUserKeyBoard
self.prompts = prompts
self.message = message
self.type = type
self.value = value
}
}
class YHMainUserInformationModel: YHBaseModel {
var headUrl: String = ""
var username: String = ""
var area: [String] = []
var school: String = ""
var industry: String = ""
var position: String = ""
}
class YHMainUserInformationSetModel: YHBaseModel {
var isRea: Bool = true
var isWork: Bool = true
var isSchool: Bool = true
}
//
// YHMyInformationItemCell.swift
// galaxy
//
// Created by EDY on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHMyInformationItemCell: UITableViewCell {
typealias ItemBlock = (_ model: YHUserInformationModel) -> ()
var block: ItemBlock?
var titleLabel: UILabel!
var messageTextField: UITextField!
var nextStepImageView: UIImageView!
var centerButton: UIButton!
var dataSource: YHUserInformationModel? {
didSet {
updateAllViews()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
selectionStyle = .none
setUpView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUpView() {
titleLabel = {
let label = UILabel()
label.numberOfLines = 0
return label
}()
contentView.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.top.bottom.equalToSuperview()
make.width.equalTo(112)
make.left.equalTo(21)
}
messageTextField = {
let textField = UITextField()
textField.delegate = self
textField.textColor = UIColor.mainTextColor
textField.font = UIFont.PFSC_M(ofSize: 14)
textField.adjustsFontSizeToFitWidth = true
//最小字体
textField.minimumFontSize = 12
return textField
}()
contentView.addSubview(messageTextField)
messageTextField.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview()
make.left.equalTo(129)
}
nextStepImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "form_right_arrow")
return imageView
}()
contentView.addSubview(nextStepImageView)
nextStepImageView.snp.makeConstraints { make in
make.right.equalTo(-21)
make.centerY.equalToSuperview()
make.height.width.equalTo(20)
}
centerButton = {
let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(centerClick), for: .touchUpInside)
return button
}()
contentView.addSubview(centerButton)
centerButton.snp.makeConstraints { make in
make.right.top.bottom.equalToSuperview()
make.left.equalTo(112)
}
let lineView = UIView()
lineView.backgroundColor = UIColor.separatorColor
contentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.right.equalTo(-21)
make.left.equalTo(21)
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
func updateAllViews() {
guard let dataSource = dataSource else { return }
let str = dataSource.title ?? ""
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
titleLabel.attributedText = questionAttrStr
messageTextField.placeholder = dataSource.prompts
messageTextField.text = dataSource.message
if dataSource.isUserKeyBoard ?? false {
nextStepImageView.isHidden = true
centerButton.isHidden = true
} else {
if let type = dataSource.type {
switch type {
case .normal: break
case .address: break
case .time: break
case .image: break
case .id: break
case .country: break
case .sex: break
case .marry: break
}
}
nextStepImageView.isHidden = false
centerButton.isHidden = false
messageTextField.snp.remakeConstraints { make in
make.top.bottom.equalToSuperview()
make.right.equalTo(-20)
make.left.equalTo(129)
}
}
}
@objc func centerClick() {
UIViewController.current?.view.endEditing(true) // 收起键盘
guard let type = dataSource?.type else { return }
switch type {
case .normal:
printLog("不需要跳转")
case .address:
let provice = ""
let addressPicker = YHAddressViewController(selectProvince: provice)
addressPicker.backLocationStringController = { (address,province,city,area) in
self.dataSource?.message = address
self.dataSource?.value = [province, city]
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHUserInformationModel())
}
}
UIViewController.current?.present(addressPicker, animated: true, completion: nil)
case .time: break
case .image: break
case .id:
YHOtherPickerView.show(type: .professionalSkill, selectTitle: self.dataSource?.message ?? "") { item in
print(item)
self.dataSource?.message = item.title
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHUserInformationModel())
}
}
case .country: break
case .sex: break
case .marry: break
}
}
}
extension YHMyInformationItemCell: UITextFieldDelegate {
func textFieldDidEndEditing(_ textField: UITextField) {
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.isEmpty == true {
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
var data = dataSource ?? YHUserInformationModel()
data.message = newText
if let block = block {
block(data)
}
return true
}
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if newText.count > 30 {
return false
}
var data = dataSource ?? YHUserInformationModel()
data.message = newText
if let block = block {
block(data)
}
return true
}
}
//
// YHInformationAuthorizeViewModel.swift
// galaxy
//
// Created by EDY on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHInformationAuthorizeViewModel: YHBaseViewModel {
var mainModel: YHMainUserInformationModel = YHMainUserInformationModel()
var setModel: YHMainUserInformationSetModel = YHMainUserInformationSetModel()
override init() {
super.init()
}
func getBaseDataSource() -> [YHUserInformationModel] {
let item1 = YHUserInformationModel(id: .id1, title: "真实姓名", isUserKeyBoard: true, prompts: "请输入您的真实姓名", message: mainModel.username)
var string = ""
let array = mainModel.area
for item in array {
if string.count != 0 {
string = string + "/" + item
} else {
string = string + item
}
}
let item2 = YHUserInformationModel(id: .id2, title: "所在地", isUserKeyBoard: false, prompts: "请选择您的所在地", message: string, type: .address, value: mainModel.area)
let item3 = YHUserInformationModel(id: .id3, title: "毕业院校", isUserKeyBoard: true, prompts: "请输入您的毕业院校", message: mainModel.school)
let item4 = YHUserInformationModel(id: .id4, title: "所属行业", isUserKeyBoard: false, prompts: "请选择您的所属行业", message: mainModel.industry, type: .id)
let item5 = YHUserInformationModel(id: .id5, title: "职位", isUserKeyBoard: true, prompts: "请输入您的职位", message: mainModel.position)
return [item1, item2, item3, item4, item5]
}
func updateModel(_ item: YHUserInformationModel) {
guard let type = item.id else { return }
switch type {
case .id1:
mainModel.username = item.message ?? ""
case .id2:
mainModel.area = item.value ?? []
case .id3:
mainModel.school = item.message ?? ""
case .id4:
mainModel.industry = item.message ?? ""
case .id5:
mainModel.position = item.message ?? ""
}
}
func isCanNext() -> Bool {
let username = mainModel.username
let school = mainModel.school
let area = mainModel.area
let industry = mainModel.industry
let position = mainModel.position
guard username.count > 0 else { return false }
guard school.count > 0 else { return false }
guard industry.count > 0 else { return false }
guard position.count > 0 else { return false }
guard area.count > 0 else { return false }
return true
}
func getBaseSetDataSource() -> [YHSettingItem] {
let item1 = YHSettingItem(type: .people, title: "授权AI人脉匹配", subTitle: "开启后,您的信息将用于AI人脉匹配,为您构建高质量的人脉网络", isSelect: setModel.isRea, isShowAlert: true)
let item2 = YHSettingItem(type: .people, title: "允许向好友公开您的教育经历", subTitle: "开启后,您的教育经历将在您的个人名片上对已交换名片的好友可见", isSelect: setModel.isSchool, isShowAlert: true)
let item3 = YHSettingItem(type: .people, title: "允许向好友公开您的工作经历", subTitle: "开启后,您的工作经历将在您的个人名片上对已交换名片的好友可见", isSelect: setModel.isWork, isShowAlert: true)
return [item1, item2, item3]
}
func updateSetModel(_ item: YHSettingItem) {
switch item.type {
case .normal: break
case .people:
setModel.isRea = item.isSelect
case .school:
setModel.isSchool = item.isSelect
case .work:
setModel.isWork = item.isSelect
}
}
}
...@@ -285,7 +285,7 @@ private extension YHHomePageViewController { ...@@ -285,7 +285,7 @@ private extension YHHomePageViewController {
view.addSubview(homeCollectView) view.addSubview(homeCollectView)
homeCollectView.snp.makeConstraints { make in homeCollectView.snp.makeConstraints { make in
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.top.equalTo(searchView.snp.bottom).offset(6+20) make.top.equalTo(searchView.snp.bottom).offset(20)
make.bottom.equalToSuperview().offset(-k_Height_TabBar) make.bottom.equalToSuperview().offset(-k_Height_TabBar)
} }
......
...@@ -43,11 +43,11 @@ class YHOtherServiceListViewController: YHBaseViewController { ...@@ -43,11 +43,11 @@ class YHOtherServiceListViewController: YHBaseViewController {
super.viewDidLoad() super.viewDidLoad()
view.backgroundColor = .white view.backgroundColor = .white
setupUI() setupUI()
loadData()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
loadData()
} }
} }
......
...@@ -196,9 +196,9 @@ private extension YHStartPageViewController { ...@@ -196,9 +196,9 @@ private extension YHStartPageViewController {
window?.makeKeyAndVisible() window?.makeKeyAndVisible()
if YHLoginManager.shared.needJumpToMsgTabFlag { if YHLoginManager.shared.needJumpToMsgTabFlag {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: { // DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
goTabBarBy(tabType: .message) // goTabBarBy(tabType: .message)//todo for test hjl
}) // })
} }
} }
} }
...@@ -72,7 +72,7 @@ class YHAiRadarAreaView: UIView { ...@@ -72,7 +72,7 @@ class YHAiRadarAreaView: UIView {
extension YHAiRadarAreaView { extension YHAiRadarAreaView {
@objc func tapButton(gestureRecognizer:UITapGestureRecognizer) { @objc func tapButton(gestureRecognizer:UITapGestureRecognizer) {
goTabBarBy(tabType: .service) goTabBarBy(tabType: .community)
} }
func setupUI() { func setupUI() {
......
...@@ -86,8 +86,8 @@ private extension YHHomeBannerView { ...@@ -86,8 +86,8 @@ private extension YHHomeBannerView {
//服务中心 //服务中心
goTabBarBy(tabType: .service) goTabBarBy(tabType: .service)
} else if tabBarName.contains("tabBarMsg",caseSensitive: false) { } else if tabBarName.contains("tabBarMsg",caseSensitive: false) {
//消息 //社区
goTabBarBy(tabType: .message) goTabBarBy(tabType: .community)
} else if tabBarName.contains("tabBarMine",caseSensitive: false) { } else if tabBarName.contains("tabBarMine",caseSensitive: false) {
//我的 //我的
goTabBarBy(tabType: .mine) goTabBarBy(tabType: .mine)
......
...@@ -10,7 +10,7 @@ import UIKit ...@@ -10,7 +10,7 @@ import UIKit
class YHHomeHeadView: UIView { class YHHomeHeadView: UIView {
// 不包含订单提示视图的总高度 // 不包含订单提示视图的总高度
static let fixViewH : CGFloat = (YHHomeBannerView.viewH) + (20 + YHHkLifeAndIdView.viewH) + (20 + YHHomeKingKongBlockView.viewH) + 20 + 20 + 1 + (YHAiRadarAreaView.viewH + 20) + 1 static let fixViewH : CGFloat = (YHHomeBannerView.viewH) + (20 + YHHkLifeAndIdView.viewH) + (20 + YHHomeKingKongBlockView.viewH) + (20 + 1) + (20 + YHAiRadarAreaView.viewH) + (20 + YHHomeSalonAreaView.viewH) + (20 + 1) + 20
// 包含订单提示视图的总高度 // 包含订单提示视图的总高度
static let viewHWithOrderTips: CGFloat = YHHomeHeadView.fixViewH + (20 + YHOrderTipsView.viewH) static let viewHWithOrderTips: CGFloat = YHHomeHeadView.fixViewH + (20 + YHOrderTipsView.viewH)
...@@ -65,6 +65,10 @@ class YHHomeHeadView: UIView { ...@@ -65,6 +65,10 @@ class YHHomeHeadView: UIView {
//6.银河线下沙龙 //6.银河线下沙龙
lazy var salonArea: YHHomeSalonAreaView = {
let view = YHHomeSalonAreaView(frame: .zero)
return view
}()
...@@ -137,14 +141,21 @@ private extension YHHomeHeadView { ...@@ -137,14 +141,21 @@ private extension YHHomeHeadView {
make.height.equalTo(YHAiRadarAreaView.viewH) make.height.equalTo(YHAiRadarAreaView.viewH)
} }
addSubview(salonArea)
salonArea.snp.makeConstraints { make in
make.top.equalTo(aiRadarArea.snp.bottom).offset(20)
make.left.right.equalToSuperview()
make.height.equalTo(YHHomeSalonAreaView.viewH)
}
addSubview(bannerLineBottom) addSubview(bannerLineBottom)
bannerLineBottom.snp.makeConstraints { make in bannerLineBottom.snp.makeConstraints { make in
make.top.equalTo(aiRadarArea.snp.bottom).offset(20) make.top.equalTo(salonArea.snp.bottom).offset(20)
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.height.equalTo(1) make.height.equalTo(1)
} }
} }
} }
//
// YHHomeSalonAreaView.swift
// galaxy
//
// Created by davidhuangA on 2024/6/18.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHHomeSalonAreaView: UIView {
static let viewH = 259.0
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
let tap : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapButton(gestureRecognizer:)))
addGestureRecognizer(tap)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
lazy var bkgImageV: UIImageView = {
let imgV : UIImageView = UIImageView()
imgV.contentMode = .scaleAspectFill
imgV.image = UIImage(named: "home_salon_bkg")
return imgV
}()
lazy var lable1: UILabel = {
let lable : UILabel = UILabel()
lable.text = "银河线下沙龙"
lable.font = UIFont.PFSC_B(ofSize: 17)
lable.textColor = UIColor.black
return lable
}()
lazy var lable2: UILabel = {
let lable : UILabel = UILabel()
lable.text = "线上预约,线下参加"
lable.font = UIFont.PFSC_R(ofSize: 12)
lable.textColor = UIColor.yhGreyColor
return lable
}()
lazy var lable3: UILabel = {
let lable : UILabel = UILabel()
lable.text = "前往预约"
lable.font = UIFont.PFSC_R(ofSize: 13)
lable.textColor = UIColor.mainTextColor
lable.textAlignment = .center
lable.layer.borderColor = UIColor.mainTextColor30.cgColor
lable.layer.borderWidth = 1
return lable
}()
}
extension YHHomeSalonAreaView {
@objc func tapButton(gestureRecognizer:UITapGestureRecognizer) {
goTabBarBy(tabType: .community)
}
func setupUI() {
backgroundColor = UIColor(hex: 0xF8FAFB)
addSubview(bkgImageV)
bkgImageV.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(166)
}
let subView : UIView = UIView()
addSubview(subView)
subView.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.top.equalTo(bkgImageV.snp.bottom)
}
subView.addSubview(lable1)
lable1.snp.makeConstraints { make in
make.top.left.equalTo(24)
make.height.equalTo(24)
}
subView.addSubview(lable2)
lable2.snp.makeConstraints { make in
make.top.equalTo(lable1.snp.bottom).offset(4)
make.left.equalTo(lable1.snp.left)
make.height.equalTo(17)
}
subView.addSubview(lable3)
lable3.snp.makeConstraints { make in
make.right.equalTo(-24)
make.centerY.equalToSuperview()
make.width.equalTo(76)
make.height.equalTo(34)
}
}
}
...@@ -24,7 +24,7 @@ class YHFailPromptView: UIView { ...@@ -24,7 +24,7 @@ class YHFailPromptView: UIView {
return button return button
}() }()
private lazy var titleLable : UILabel = { lazy var titleLable : UILabel = {
let lable0 = UILabel(text: "") let lable0 = UILabel(text: "")
lable0.textColor = UIColor.failColor lable0.textColor = UIColor.failColor
lable0.font = UIFont.PFSC_R(ofSize: 12) lable0.font = UIFont.PFSC_R(ofSize: 12)
......
...@@ -79,8 +79,8 @@ private extension YHServiceBannerView { ...@@ -79,8 +79,8 @@ private extension YHServiceBannerView {
//服务中心 //服务中心
goTabBarBy(tabType: .service) goTabBarBy(tabType: .service)
} else if tabBarName.contains("tabBarMsg",caseSensitive: false) { } else if tabBarName.contains("tabBarMsg",caseSensitive: false) {
//消息 //社区
goTabBarBy(tabType: .message) goTabBarBy(tabType: .community)
} else if tabBarName.contains("tabBarMine",caseSensitive: false) { } else if tabBarName.contains("tabBarMine",caseSensitive: false) {
//我的 //我的
goTabBarBy(tabType: .mine) goTabBarBy(tabType: .mine)
......
...@@ -11,7 +11,8 @@ import UIKit ...@@ -11,7 +11,8 @@ import UIKit
class YHAllowUseMyInfoViewController: YHBaseViewController { class YHAllowUseMyInfoViewController: YHBaseViewController {
var tableView: UITableView! var tableView: UITableView!
var nextButton: UIButton! var nextButton: UIButton!
let items: [YHSettingItem] = [YHSettingItem(title: "允许您的信息在名片中使用", subTitle: "开启后,您的信息将自动同步至您的个人名片,并对您的好友公开可见", isSelect: true, isShowAlert: false)] let items: [YHSettingItem] = [YHSettingItem(type: .normal, title: "允许您的信息在名片中使用", subTitle: "开启后,您的信息将自动同步至您的个人名片,并对您的好友公开可见", isSelect: true, isShowAlert: false)]
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
gk_navTitle = "设置" gk_navTitle = "设置"
...@@ -64,7 +65,8 @@ class YHAllowUseMyInfoViewController: YHBaseViewController { ...@@ -64,7 +65,8 @@ class YHAllowUseMyInfoViewController: YHBaseViewController {
} }
@objc func nextStep() { @objc func nextStep() {
let vc = YHInformationAuthorizationStepOneViewController()
self.navigationController?.pushViewController(vc)
} }
} }
......
...@@ -156,30 +156,46 @@ class YHOtherLoginViewController: YHBaseViewController { ...@@ -156,30 +156,46 @@ class YHOtherLoginViewController: YHBaseViewController {
make.width.equalTo(260) make.width.equalTo(260)
} }
wechatButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "login_wechat"), for: .normal)
button.addTarget(self, action: #selector(wechatLogin), for: .touchUpInside)
return button
}()
view.addSubview(wechatButton)
wechatButton.snp.makeConstraints { make in
make.right.equalTo(view.snp.centerX).offset(-22)
make.bottom.equalTo(-58)
make.height.width.equalTo(44)
}
appleButton = { if WXApi.isWXAppInstalled() {
let button = UIButton(type: .custom) wechatButton = {
button.setImage(UIImage(named: "login_apple"), for: .normal) let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(appleLogin), for: .touchUpInside) button.setImage(UIImage(named: "login_wechat"), for: .normal)
return button button.addTarget(self, action: #selector(wechatLogin), for: .touchUpInside)
}() return button
view.addSubview(appleButton) }()
appleButton.snp.makeConstraints { make in view.addSubview(wechatButton)
make.left.equalTo(view.snp.centerX).offset(22) wechatButton.snp.makeConstraints { make in
make.bottom.equalTo(-58) make.right.equalTo(view.snp.centerX).offset(-22)
make.height.width.equalTo(44) make.bottom.equalTo(-58)
make.height.width.equalTo(44)
}
appleButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "login_apple"), for: .normal)
button.addTarget(self, action: #selector(appleLogin), for: .touchUpInside)
return button
}()
view.addSubview(appleButton)
appleButton.snp.makeConstraints { make in
make.left.equalTo(view.snp.centerX).offset(22)
make.bottom.equalTo(-58)
make.height.width.equalTo(44)
}
} else {
appleButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "login_apple"), for: .normal)
button.addTarget(self, action: #selector(appleLogin), for: .touchUpInside)
return button
}()
view.addSubview(appleButton)
appleButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.bottom.equalTo(-58)
make.height.width.equalTo(44)
}
} }
} }
......
...@@ -8,13 +8,22 @@ ...@@ -8,13 +8,22 @@
import UIKit import UIKit
enum YHSettingType: Int {
case normal
case people
case school
case work
}
class YHSettingItem: NSObject { class YHSettingItem: NSObject {
var type: YHSettingType = .normal
var title: String = "" var title: String = ""
var subTitle: String = "" var subTitle: String = ""
var isSelect: Bool = true var isSelect: Bool = true
var isShowAlert: Bool = true var isShowAlert: Bool = true
init(title: String, subTitle: String, isSelect: Bool, isShowAlert: Bool) { init(type: YHSettingType, title: String, subTitle: String, isSelect: Bool, isShowAlert: Bool) {
self.type = type
self.title = title self.title = title
self.subTitle = subTitle self.subTitle = subTitle
self.isSelect = isSelect self.isSelect = isSelect
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import UIKit import UIKit
class YHAllowSettingTableViewCell: UITableViewCell { class YHAllowSettingTableViewCell: UITableViewCell {
typealias ItemBlock = (_ model: YHSettingItem) -> ()
var block: ItemBlock?
var titleLabel: UILabel! var titleLabel: UILabel!
var exampleButton: UIButton! var exampleButton: UIButton!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
...@@ -106,7 +108,77 @@ class YHAllowSettingTableViewCell: UITableViewCell { ...@@ -106,7 +108,77 @@ class YHAllowSettingTableViewCell: UITableViewCell {
} }
@objc func switchViewChange() { @objc func switchViewChange() {
guard let model = item else { return }
switch model.type {
case .normal:
model.isSelect = detailSwitch.isOn
if let block = block {
block(model)
}
case .people:
if !detailSwitch.isOn {
YHCommonAlertView.show("", "关闭后,您将无法体验AI人脉匹配功能?", "仍然关闭", "开启") {
self.detailSwitch.isOn = false
model.isSelect = self.detailSwitch.isOn
if let block = self.block {
block(model)
}
} callBack: {
model.isSelect = self.detailSwitch.isOn
self.detailSwitch.isOn = true
if let block = self.block {
block(model)
}
}
} else {
model.isSelect = detailSwitch.isOn
if let block = block {
block(model)
}
}
case .school:
if !detailSwitch.isOn {
YHCommonAlertView.show("", "关闭后,您的好友将无法从您的名片中查看您的教育经历", "仍然关闭", "开启") {
self.detailSwitch.isOn = false
model.isSelect = self.detailSwitch.isOn
if let block = self.block {
block(model)
}
} callBack: {
model.isSelect = self.detailSwitch.isOn
self.detailSwitch.isOn = true
if let block = self.block {
block(model)
}
}
} else {
model.isSelect = detailSwitch.isOn
if let block = block {
block(model)
}
}
case .work:
if !detailSwitch.isOn {
YHCommonAlertView.show("", "关闭后,您的好友将无法从您的名片中查看您的工作经历", "仍然关闭", "开启") {
self.detailSwitch.isOn = false
model.isSelect = self.detailSwitch.isOn
if let block = self.block {
block(model)
}
} callBack: {
model.isSelect = self.detailSwitch.isOn
self.detailSwitch.isOn = true
if let block = self.block {
block(model)
}
}
} else {
model.isSelect = detailSwitch.isOn
if let block = block {
block(model)
}
}
}
} }
func updateData() { func updateData() {
......
...@@ -30,6 +30,7 @@ extension UIColor { ...@@ -30,6 +30,7 @@ extension UIColor {
// static let mainTextColor : UIColor = UIColor(hexString: "#222222")! // static let mainTextColor : UIColor = UIColor(hexString: "#222222")!
static let mainTextColor : UIColor = UIColor(hexString: "#121A26")! static let mainTextColor : UIColor = UIColor(hexString: "#121A26")!
static let mainTextColor5 : UIColor = UIColor(hexString: "#121A26",transparency: 0.05)! static let mainTextColor5 : UIColor = UIColor(hexString: "#121A26",transparency: 0.05)!
static let mainTextColor18 : UIColor = UIColor(hexString: "#121A26",transparency: 0.18)!
static let mainTextColor30 : UIColor = UIColor(hexString: "#121A26",transparency: 0.3)! static let mainTextColor30 : UIColor = UIColor(hexString: "#121A26",transparency: 0.3)!
static let mainTextColor50 : UIColor = UIColor(hexString: "#121A26",transparency: 0.5)! static let mainTextColor50 : UIColor = UIColor(hexString: "#121A26",transparency: 0.5)!
static let mainTextColor70 : UIColor = UIColor(hexString: "#121A26",transparency: 0.7)! static let mainTextColor70 : UIColor = UIColor(hexString: "#121A26",transparency: 0.7)!
......
...@@ -128,10 +128,11 @@ func isIphoneX() -> Bool { ...@@ -128,10 +128,11 @@ func isIphoneX() -> Bool {
enum tabBarPageType : Int { enum tabBarPageType : Int {
case home case home //首页
case service case service //服务
case message // case message //消息
case mine case mine //我的
case community //社区
} }
func goTabBarBy(tabType : tabBarPageType) { func goTabBarBy(tabType : tabBarPageType) {
...@@ -142,7 +143,7 @@ func goTabBarBy(tabType : tabBarPageType) { ...@@ -142,7 +143,7 @@ func goTabBarBy(tabType : tabBarPageType) {
tabIndex = 0 tabIndex = 0
case .service: case .service:
tabIndex = 1 tabIndex = 1
case .message: case .community:
tabIndex = 2 tabIndex = 2
case .mine: case .mine:
tabIndex = 3 tabIndex = 3
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "九宫格6(1) 1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "九宫格6(1) 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "user_prompt_image@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "user_prompt_image@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