Commit d6fefd9e authored by pete谢兆麟's avatar pete谢兆麟

工作经验基础信息选择器

parent 5d453a28
......@@ -16,6 +16,16 @@ enum YHOtherPickerViewType: Int {
case language
// 专业技能行业
case professionalSkill
// 用人单位性质
case nature
// 工作证明文件
case certificate
// 行政架构层级
case structure
// 职位水平类别
case level
// 高管证明文件
case prove
}
......@@ -224,6 +234,16 @@ class YHOtherPickerView: UIView {
return "选择语言能力"
case .professionalSkill:
return "选择专业技能行业"
case .nature:
return "用人单位性质"
case .certificate:
return "工作证明"
case .structure:
return "行政架构层级"
case .level:
return "职位水平类别"
case .prove:
return "高管证明文件"
default:
return "请选择"
}
......@@ -239,13 +259,13 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
return arrData.count
}
// func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
// if 0 <= row && row < arrData.count {
// let item :YHOtherPickerViewItemData = arrData[row]
// return item.title
// }
// return ""
// }
// func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
// if 0 <= row && row < arrData.count {
// let item :YHOtherPickerViewItemData = arrData[row]
// return item.title
// }
// return ""
// }
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if 0 <= row && row < arrData.count {
......@@ -257,34 +277,62 @@ extension YHOtherPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
}
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
return 70
switch type {
case .nature,.certificate,.structure,.level,.prove:
return 50
default:
return 70
}
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize: 14)
label.numberOfLines = 0
if 0 <= row && row < arrData.count {
switch type {
case .nature,.certificate,.structure,.level,.prove:
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize: 14)
label.textAlignment = .center
let item :YHOtherPickerViewItemData = arrData[row]
if item.subTitle.count > 0 {
let a: ASAttributedString = .init(NSAttributedString(string: (item.title + "\n")), .font(UIFont.PFSC_M(ofSize: 14)),.foreground(UIColor.mainTextColor))
let b: ASAttributedString = .init(NSAttributedString(string: item.subTitle), .font(UIFont.PFSC_R(ofSize: 11)),.foreground(UIColor.labelTextColor2))
label.attributed.text = a + b
} else {
let a: ASAttributedString = .init(NSAttributedString(string: item.title), .font(UIFont.PFSC_M(ofSize: 14)),.foreground(UIColor.mainTextColor))
label.attributed.text = a
let a: ASAttributedString = .init(NSAttributedString(string: item.title), .font(UIFont.PFSC_M(ofSize: 14)),.foreground(UIColor.mainTextColor))
label.attributed.text = a
// 选中背景色
if #available(iOS 14.0, *), pickerView.subviews.count > 1 {
pickerView.subviews[1].backgroundColor = UIColor(hex: 0x4487F9, alpha: 0.06)
}
return label
default:
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize: 14)
label.numberOfLines = 0
if 0 <= row && row < arrData.count {
let item :YHOtherPickerViewItemData = arrData[row]
if item.subTitle.count > 0 {
let a: ASAttributedString = .init(NSAttributedString(string: (item.title + "\n")), .font(UIFont.PFSC_M(ofSize: 14)),.foreground(UIColor.mainTextColor))
let b: ASAttributedString = .init(NSAttributedString(string: item.subTitle), .font(UIFont.PFSC_R(ofSize: 11)),.foreground(UIColor.labelTextColor2))
label.attributed.text = a + b
} else {
let a: ASAttributedString = .init(NSAttributedString(string: item.title), .font(UIFont.PFSC_M(ofSize: 14)),.foreground(UIColor.mainTextColor))
label.attributed.text = a
}
}
// 选中背景色
if #available(iOS 14.0, *), pickerView.subviews.count > 1 {
pickerView.subviews[1].backgroundColor = UIColor(hex: 0x4487F9, alpha: 0.06)
}
return label
}
// 选中背景色
if #available(iOS 14.0, *), pickerView.subviews.count > 1 {
pickerView.subviews[1].backgroundColor = UIColor(hex: 0x4487F9, alpha: 0.06)
}
return label
}
}
......@@ -312,6 +360,46 @@ extension YHOtherPickerView {
title = getTitle(type: type)
return
case .nature:
let arr = YHOtherInfoFillViewModel.arrNature
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
case .certificate:
let arr = YHOtherInfoFillViewModel.arrCertificate
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
case .structure:
let arr = YHOtherInfoFillViewModel.arrStructure
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
case .level:
let arr = YHOtherInfoFillViewModel.arrLevel
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
case .prove:
let arr = YHOtherInfoFillViewModel.arrProve
arrData.removeAll()
arr.forEach { item in
let model = YHOtherPickerViewItemData(title: item["title"] ?? "-", subTitle: "", index: item["id"] ?? "-")
arrData.append(model)
}
title = getTitle(type: type)
default:
return
}
......
......@@ -132,6 +132,120 @@ class YHOtherInfoFillViewModel: YHBaseViewModel {
"dec": ""
],
]
static let arrNature : [[String : String]] = [
[ "title": "有限责任公司",
"id": "有限责任公司"
],
[ "title": "股份有限公司",
"id": "股份有限公司"
],
[ "title": "跨国有限责任公司",
"id": "跨国有限责任公司"
],
[ "title": "跨国股份有限公司",
"id": "跨国股份有限公司"
],
[ "title": "上市公司",
"id": "上市公司"
],
[ "title": "上市跨国公司",
"id": "上市跨国公司"
],
[ "title": "教育机构",
"id": "教育机构"
],
[ "title": "半公营企业",
"id": "半公营企业"
],
[ "title": "政府机构",
"id": "政府机构"
],
[ "title": "跨国合伙企业",
"id": "跨国合伙企业"
],
[ "title": "跨国个人独资企业",
"id": "跨国个人独资企业"
],
[ "title": "个人独资企业",
"id": "个人独资企业"
],
[ "title": "国家/政府间组织",
"id": "国家/政府间组织"
],
[ "title": "志愿/慈善/宗教团体",
"id": "志愿/慈善/宗教团体"
],
[ "title": "其他(请备注)",
"id": "其他(请备注)"
]
]
static let arrCertificate : [[String : String]] = [
["id": "盖章并签字的推荐信 (证明效果最强)",
"title": "盖章并签字的推荐信 (证明效果最强)"
],
["id": "签字的推荐信+盖章的工作证明",
"title": "签字的推荐信+盖章的工作证明"
],
["id": "仅有签字的推荐信",
"title": "仅有签字的推荐信"
],
["id": "仅有社保记录/劳动合同/工牌等",
"title": "仅有社保记录/劳动合同/工牌等"
],
["id": "仅提供声明书解释",
"title": "仅提供声明书解释"
],
["id": "仅有工作证明",
"title": "仅有工作证明"
]
]
static let arrStructure : [[String : String]] = [
["title": "组织架构最顶级",
"id": "1"
],
["title": "组织架构第二层级",
"id": "2"
],
["title": "组织架构第三层级",
"id": "3"
],
["title": "组织架构第四层级",
"id": "4"
],
["title": "以上都不是",
"id": "5"
]
]
static let arrLevel : [[String : String]] = [
["title": "高级经理人",
"id": "1"
],
["title": "中级经理人",
"id": "2"
],
["title": "初级经理人",
"id": "3"
],
["title": "专业人士",
"id": "4"
],
["title": "半专业人士",
"id": "5"
],
["title": "其他",
"id": "6"
]
]
static let arrProve : [[String : String]] = [
["title": "盖章且签字的组织架构图和审计报告",
"id": "盖章且签字的组织架构图和审计报告"
]
]
}
extension YHOtherInfoFillViewModel {
......
......@@ -145,21 +145,40 @@ class YHWorkExperienceItemView: UIView {
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:
// messageTextField.text = YHFormPickerViewSubType.certificate(YHPickerViewCertificateType(rawValue: dataSource.message?.int ?? 0) ?? .chineseStatelessTravelPassport).title
// case .country: break
// case .sex:
// messageTextField.text = YHFormPickerViewSubType.gender(YHPickerViewGenderType(rawValue: dataSource.message?.int ?? 0) ?? .female).title
// case .marry:
// messageTextField.text = YHFormPickerViewSubType.marriage(YHPickerViewMarriageType(rawValue: dataSource.message?.int ?? 0) ?? .unmarriage).title
// }
// }
if let type = dataSource.type {
switch type {
case .normal:
break
case .unit:
break
case .nature:
break
case .country:
break
case .address:
break
case .time:
break
case .certificate:
break
case .structure:
let arr = YHOtherInfoFillViewModel.arrStructure
arr.forEach { item in
if item["id"] == dataSource.message {
messageTextField.text = item["title"]
}
}
case .level:
let arr = YHOtherInfoFillViewModel.arrLevel
arr.forEach { item in
if item["id"] == dataSource.message {
messageTextField.text = item["title"]
}
}
case .prove:
break
}
}
nextStepImageView.isHidden = false
centerButton.isHidden = false
}
......@@ -256,35 +275,12 @@ class YHWorkExperienceItemView: UIView {
UIViewController.current?.present(addressPicker, animated: true, completion: nil)
case .time:
YHDatePickView.show(type: .yyyymm) { date in
// let arr = date.components(separatedBy: YHDatePickView.separator)
// [yyyy, mm, dd] eg ["2024", "01", "20"]
self.dataSource?.message = date
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
// case .image:
// let view = YHImagePickerView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
// view.backImage = { [weak self] image in
// guard let self = self else { return }
// self.updateAllViews()
// if let block = block {
// block(dataSource ?? YHWorkExperienceModel())
// }
// }
// let window = UIApplication.shared.yhKeyWindow()
// window?.addSubview(view)
// case .id:
// YHFormPickerView.show(type: .certificate, selectTitle: "公务通行证") { selectType in
// // 选择类型的标题
// self.dataSource?.message = selectType.title
// self.dataSource?.value = ["\(selectType.index)"]
// self.updateAllViews()
// if let block = self.block {
// block(self.dataSource ?? YHWorkExperienceModel())
// }
// }
case .country:
let vc = YHSelectCountryViewController()
vc.backLocationStringController = { (country) in
......@@ -295,26 +291,6 @@ class YHWorkExperienceItemView: UIView {
}
}
UIViewController.current?.navigationController?.pushViewController(vc)
// case .sex:
// YHFormPickerView.show(type: .gender, selectType: .gender(.female)) { selectType in
// // 选择类型的标题
// self.dataSource?.message = selectType.title
// self.dataSource?.value = ["\(selectType.index)"]
// self.updateAllViews()
// if let block = self.block {
// block(self.dataSource ?? YHWorkExperienceModel())
// }
// }
// case .marry:
// YHFormPickerView.show(type: .marriage, selectType: .marriage(.divorced)) { selectType in
// // 选择类型的标题
// self.dataSource?.message = selectType.title
// self.dataSource?.value = ["\(selectType.index)"]
// self.updateAllViews()
// if let block = self.block {
// block(self.dataSource ?? YHWorkExperienceModel())
// }
// }
case .unit:
let vc = YHCompanySelectViewController()
vc.backLocationStringController = { (country) in
......@@ -326,15 +302,52 @@ class YHWorkExperienceItemView: UIView {
}
UIViewController.current?.navigationController?.pushViewController(vc)
case .nature:
break
YHOtherPickerView.show(type: .nature) {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
case .certificate:
break
YHOtherPickerView.show(type: .certificate) {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
case .structure:
break
YHOtherPickerView.show(type: .structure) {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.dataSource?.value = [data.index]
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
case .level:
break
YHOtherPickerView.show(type: .level) {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.dataSource?.value = [data.index]
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
case .prove:
break
YHOtherPickerView.show(type: .prove) {[weak self] data in
guard let self = self else { return }
self.dataSource?.message = data.title
self.updateAllViews()
if let block = self.block {
block(self.dataSource ?? YHWorkExperienceModel())
}
}
}
}
}
......
......@@ -34,7 +34,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
let item7 = YHWorkExperienceModel(id: .id9, isNeed: true, title: "入职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.entry_time ?? "", type: .time)
let item8 = YHWorkExperienceModel(id: .id10, isNeed: true, title: "离职年月", isUserKeyBoard: false, prompts: "请选择", message: mainModel.departure_time ?? "", type: .time)
let item9 = YHWorkExperienceModel(id: .id11, isNeed: true, title: "工作证明文件", isUserKeyBoard: false, prompts: "请选择", message: mainModel.work_certificate ?? "", type: .certificate)
let item10 = YHWorkExperienceModel(id: .id12, isNeed: false, title: "职责性质", isUserKeyBoard: false, prompts: "请选择", message: mainModel.duty ?? "")
let item10 = YHWorkExperienceModel(id: .id12, isNeed: false, title: "职责性质", isUserKeyBoard: true, prompts: "请选择", message: mainModel.duty ?? "")
let item11 = YHWorkExperienceModel(id: .id13, isNeed: false, title: "相关工作经验是否属于国际工作经验", isUserKeyBoard: false, prompts: "", message: "\(mainModel.international_work_experience ?? 0)", leftButtonString: "是", rightButtonString: "否")
let addressCountry = mainModel.location?.country ?? ""
var section = YHSectionWorkExperienceModel()
......
......@@ -22,7 +22,7 @@ extension YHLoginViewModel {
func getLoginCode(_ phone: String, callBackBlock: @escaping (_ success: Bool)->()) {
let params: [String : Any] = ["type": "Phone",
"value": phone]
let strUrl = "http://192.168.35.135:18087/" + "user/verify-code"
let strUrl = "http://test-cuser.galaxy-immi.com/" + "user/verify-code"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in
guard let self = self else { return }
//1. json字符串 转 对象
......@@ -39,7 +39,7 @@ extension YHLoginViewModel {
"sms_code": code,
"channel": "app",
"client": "super_app"]
let strUrl = "http://192.168.25.12:18083/" + "auth/login"
let strUrl = "http://test.api.diymanager.galaxy-immi.com/" + "auth/login"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
......
......@@ -95,7 +95,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"sign",value:sign)
//杜宇的账号
requestHeader.add(name: "token", value: "eyJpdiI6Ik5aeEVDclZTK0FISEFBZUgxN2VkdGc9PSIsInZhbHVlIjoiRFRJOHlObzVrZlp4T2tVYW1MSE1ZK0Z3dXlyK3p4QlczNmxsTXdkdW5GQVY4Q2VqZlNNUDdrdVpsb0JcLytpYmJheUp2MWZTUE5pOWgrVWRLdEtIUkx4R1wvS3F6SmRSQ0dWeFVXanFINGkyRWNMTXB4TVlcLzhjXC9NSzVoMFwvZ1ZOaVIwb0VqWlo1VERPSHY2RWJhME1RdWtkXC8yanBQdm9lMWM4WXJVK1BnMDd6SncwVVlWMDNnbSswSnM3eVwveFRRck03M3pOaDFSc3g0UmlYMTJQdmZpSkhUWHVMa21RV2xRbXBkalVTTUFicmFaN2NVNXl1ZTJOeEJoKzhrMnZtdzdvM1U5Qmh4WXNiSEFERUpiZHNWNkxoM2ZkVVRUdFlMMU1MQnIyaWNxNSt4S1NocDVEbnNqeHphUCtVVk1qTlVnMk1ydVNPamJ0c2tDQ1wvWFk1SkxtSWtDMU9oT3ZqaFpuNU5aVUVicHpYVU56VnlqK01Cb20welJMbkQrcTFWOHFUbzlPK0RGdDRcLzJ1T094MjNjYTVZZmJcL2txRE93cEFUYzlKWWdVWE9cLzFnYnVwTFZ4VUtqMFQ5QlgzZitDQjhyNURpU3p0bktqblBicUxPekNBcWRWM0g0WklSOEc0T0RPVkNBMGZQdEtWV3ZqN3IrcHZDYm9UNjREdnA3U1RZY1Z1dFE3K1RRM2F2eGY0QXc2dGlha0RBUDVpVHdFWE53dzl2eVczVk9VNTJSa1Fzb1J4ZGd0c0RCdktPQ1FWOUQ5Y0krckQ3bFc4NkNJMHliSXlnNGtYU1ZCUHRZWTdCKzA5d1wvdldzWTlpeUdYaEg4eGhITHpRSUthMWpSVlZvZVhwZ3BvamxCTHFSUXJmQ1hQNThYbUNNanZnVGs0b3RDTUFmYkdsYTEzeEtnTXJpZVU0QnJHWDJoUk9sUklzaFFhUkJiNWk0Z2E0cUUwejU4RmF2RnE4Z2U0eEo3VmZ2SmFMTlVacFBvSFlZUmM2N3liVTdhTk5NWU9YS0xtalk3QUN3NWV2UTlPeE5hMmk0aHU4MSt0YjNJQytFczRMa2l6XC9jV0Jxc01QYU0yYXdTXC92RXBxTFNVOVd6SlwvRm9KM21jUHlcL2diRlMyU3REeEl0K1RxSjRuck8xaXlOaWY4NXVzMVBibXpVSEZJWkVZQnFUd2k5TUVJcDUwUEFjTmljTzYyaWFYaFkzZUtkR294d29LUzBUTFF1Y0xxbWtMNFF4ZlZkN2k4YktEUnRGekU3OEdaN2J3TUR4T2FpVHRKaGlqRWNcL2c5dlwvOUVEVmdLNUhBSk1wSGV5UXVoOFJydlczc09HU1EyeXI4SFZZQmJJQWx1cGFIaXhmK1VJNmdoNmwrOElMZXFxSHZtazQreW84RFBlOXFnVDI2bm1tZWl0K01OcU1DSGJEQXdnWW9Hc0ptWFVJbXVXdEpyT2FKUHprTzJ1MkxFSEViZGV4cFpuOWRXK3dUdVR4bmJHZ1VRRGJycFRBME5lWUtaT0JCYjViSWVvcVJ3RXllb2tQZ1VkUWFqVWo0UHQzMUQwWVMwZ05rTTU0Nk1QQUdxTm9rZFNISVYrTG5DWlArNkt5RkZxajdZN1luakRKQVdUaVpnOUhCUExYMEVKRXRRT3QyZTI4cU9TdlBrbWxVZkFLSWZFbXNha3lCZUhFRVpyTmxQOERjbVwvMytCc0JpNnZcL1Nvek9yR2pUWGF2XC9VMzN4OEY5T3VsdUNGRFNWbHZZMnBzNHhMeEdIR21majBOOUJNbEhlK1J4S3dFTnlJamdTeFQyTWlTTlhCUWxnSDF6VmNhWHIzVGpoREY5clB2XC9uZHZjSm1iTHZ1bjFIUUFRait6dUJlUk1WQ1FhdXFoN002YlQ5MVwvQVMzYzJJQ0RFR1czdEtqMFBTQT09IiwibWFjIjoiOGVlZjBmNTVmMzEwNjhkZjVmYTlkYzAwYzllMjJmNjUyZmRmN2U1ODFiZTIzNzRjMDVjMTNiOTNhOWRhMmVkYSJ9")
requestHeader.add(name: "token", value: "eyJpdiI6InhISTlXZjA2cXE5Z2pqMDZDa2NrTkE9PSIsInZhbHVlIjoiR3NkRVR0dVdjWE5GN2N3UmNiU0xobVYzZTR6SXlGXC9XVEhWV0xcL1F1YXVBOU9jRDlFZ2pOanBcL1RBMUVkUDlRQ2xhREx0c3dKeHNJQjMwaVVuYkloZHBiUXQzZkJlS2dTWDJrTE90K2FpM0FDWm10a3FFUGZpdW90TDNscStud0tSenRRV2kyV3JVbEZ6eXppUHZ5ajFQMXpBejh0YUZ4Z0VPZkwwdEtwXC9mNjh4bWQySGpSS2pzVkJ1Y3ZrbGFKdGVsMkhkRXJrTlRHbzkxcVdkcE1yWXRja2xDRHVmRUhhdU9ybkJmXC9VRVJnY2RXeVpXMzZVc2h2eUsxYVRmSXR0QXB1WjVsaDBLTllVOEtKWUhSTE5yNXFvYWlaQzdQSWZ0T0V2VTZwTFJjb25OZGdYbE1lNHZOZ0ZWcWhWWkhnUm8rWGJqSE1Jdm1DY3hlWVliY2F0YkplZFwvQ0pMMndtdHFBQUF0MjJYTFNZYk14Tzh0d0g1K2c2M1U2bXFZY3JUbXptbEhCSXR5R3hFZ0JHNmpXTHgzeTJvc0Z2UXpENk5LOTlBN0VjWE8rNmYzTklBN3d0YVVPb2VyS0lNK3FINUZlTmR6UTlBdENuZEtDKzE3emwxMGxvaEc1Sm1mc0E3Y251cU5xcjd4ZzdSbHNNQ2xoRUc4VUJTR24zQ1lRSE5VRGtUd0s0ZTljSlRxRmdwMFVqY0RsMjQwcm1SaVdSN29lNjYrd1JDSlwvSUtiSWpneFpuR2VzeUFBbzNBUUh2MnNVTFZ5bXVLTGVLNFM5TjdzdXpaM1ZFRDdvRUVlRFF0QUY4d2pXcmF4NkFwMGVodXRVUFlxVGhVRmVpYlwvRUJFT05idFhyeXp4TUtcLzN0MlVcL3ZIc2dWSncxaW55TDVUVXFIWjZZMUdHakJKVnpzRkxGeE52RWdLaW9WT0tCb3pTQW1xelNwaTRaQmtGeEpITjVEUU44Q3VGSnBGdzdOcFRyTE9sYmFTT3RrMDJYU3l0XC9PcVJ1OXo2MUpJdm5XSHZFZ0lIMGh5OGR2TEJkNTZjVHFKM1hSYnVEbm9vVFU1VUUzcmRDZ3JhZWRYQWZ1cU9aajVKMHdOMGpxczBSVU5GejNrNzk3bnVBa210dFdCblVBaUs5Y0VIWmxCdE04UlV6T2NEN3ZTN2E0MEhRYmlCNGk3V2xZN1R2ZUM4cVVZZ1Rlb1BndmFcL2phemNnbEhKb05QeHhxa1BldFFqK2ErcWZmYWs1RnNPWEpNK0x4MFo4MTU4OEttZTNxeDMrcCtkNUVwSUd4b1krOXRFdU1UNVFxZyszXC9Lb21TSG5hSFI2OVRVWmxIRm9UcTRlU2kyNWF6K1pQR3lMK1MyS0FvQ2ZFaTViTmdybm1xQ1BscVMzM2tjeUFCQVlvZFdPMTJTb2ttZDl2Q3BuTXVvTnJkUDRpa0g5cE4rWlRcL1l2MWdNdmY0MFVsMFArWWYzWVNmMW5oUnkwWk1mTVc3WUluU3dyQUM4TTZBbHJac0lOMDNiYVhVWks2TCs3QnN0VDlOXC9xaEwyUEtmblVmOXpcL3hoekQ1K3JKWVozVWxrdElKbTdWTHpaMnk2bXFQQ0VJalR1TVpIc1d4bmJjVVIwdTR1VXY1M1wvMEJMODVTWkNreVpCVmh3MWRDeERROGh5YnVsMkVKV2poMFwvYnZHakMycHJmQjUycDQ3b3laUUlTSjdmaDdFMnFtTHhIN1RvUnhhcUhCWXkybkhoMlFwZUVtM0VPUVZrcXp3S0lLMFwvOUtvZnhibE1ZUnp0bGVkcGdqTlp0dGV0cGhCa3hjUmxZXC96SWRFXC83OWxEUnRma1MyYnZqWGhMN0lSM0x2Z0NCTWxIR0pUYjByWDN4Y3JCT3JLTzFzUWkzS3NYTDVDZVJ3MmhEbXlXSENqYWc9PSIsIm1hYyI6Ijc1YmU5YTE4ZGEwNzExZGJlZWQ0MzZhNGVkNWE1NGMzYmE1YWFjNjBhYTgxYjFlYjUyN2M1Yzc4ZjkwNTcyNmMifQ==")
//明杰的账号
......
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