diff --git a/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj b/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj index 331729e..c7f2e4d 100644 --- a/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj +++ b/ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj @@ -61,6 +61,7 @@ AD5681CF2080449A0034A948 /* GrowCheckDownTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD5681CD2080449A0034A948 /* GrowCheckDownTableViewCell.xib */; }; AD639F0520897CBC0028BE73 /* AlertShowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD639F0420897CBC0028BE73 /* AlertShowView.swift */; }; AD639F072089C3950028BE73 /* LocationManger.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD639F062089C3950028BE73 /* LocationManger.swift */; }; + AD639F092089D8670028BE73 /* PickSelectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD639F082089D8670028BE73 /* PickSelectView.swift */; }; AD64A2C0207F289400B25E80 /* ProgramVacateTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD64A2BE207F289400B25E80 /* ProgramVacateTableViewCell.swift */; }; AD64A2C1207F289400B25E80 /* ProgramVacateTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD64A2BF207F289400B25E80 /* ProgramVacateTableViewCell.xib */; }; AD64A2C3207F28CF00B25E80 /* ProgramVacateBodyTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD64A2C2207F28CF00B25E80 /* ProgramVacateBodyTableViewCell.swift */; }; @@ -241,6 +242,7 @@ AD5681CD2080449A0034A948 /* GrowCheckDownTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GrowCheckDownTableViewCell.xib; sourceTree = ""; }; AD639F0420897CBC0028BE73 /* AlertShowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertShowView.swift; sourceTree = ""; }; AD639F062089C3950028BE73 /* LocationManger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationManger.swift; sourceTree = ""; }; + AD639F082089D8670028BE73 /* PickSelectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickSelectView.swift; sourceTree = ""; }; AD64A2BE207F289400B25E80 /* ProgramVacateTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgramVacateTableViewCell.swift; sourceTree = ""; }; AD64A2BF207F289400B25E80 /* ProgramVacateTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ProgramVacateTableViewCell.xib; sourceTree = ""; }; AD64A2C2207F28CF00B25E80 /* ProgramVacateBodyTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgramVacateBodyTableViewCell.swift; sourceTree = ""; }; @@ -889,6 +891,7 @@ BFF9B7F12057A28900F39B3E /* TableEmptyView.swift */, BFF9B7F32057A29D00F39B3E /* TableEmptyView.xib */, AD639F0420897CBC0028BE73 /* AlertShowView.swift */, + AD639F082089D8670028BE73 /* PickSelectView.swift */, ); path = view; sourceTree = ""; @@ -1196,6 +1199,7 @@ BFF9B7F62057A4C900F39B3E /* ChildrenDetailViewController.swift in Sources */, 599364FF204E945600C8B371 /* BindingViewController.swift in Sources */, 590944E020579CFA004478B5 /* InvitationCodeVerificationViewController.swift in Sources */, + AD639F092089D8670028BE73 /* PickSelectView.swift in Sources */, AD122AC120843FAF00C7D0AD /* ProgramVacateTextFieldCell.swift in Sources */, ADC9AB77207C65FC00348EF1 /* GrowSubjectCell.swift in Sources */, AD122AC5208442BC00C7D0AD /* ProgramVacateImageCell.swift in Sources */, diff --git a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate index 1a89df8..ad9faed 100644 Binary files a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate and b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index e2573a5..9d557ab 100644 --- a/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -13,5 +13,21 @@ stopOnStyle = "0"> + + + + diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift index 11e508f..805733d 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/GrowViewController.swift @@ -54,6 +54,8 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { var titleLeftLab = UILabel() + var childDataModel = StudentClassInfoModel() + //是否显示右侧按钮 var rightBtn = UIBarButtonItem() @@ -71,8 +73,7 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { setUpTitle() //顶部左右按钮 drawHeadView() - //子控制器 - setChildViewContent() + //设置导航栏样式 self.configTheme() } @@ -95,6 +96,9 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { title = "未绑定" }else{ title = array[0].studentName + self.childDataModel = array[0] + //子控制器 + setChildViewContent() } }else{ title = "未登录" @@ -156,6 +160,7 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { if object is StudentClassInfoModel { let model = object as! StudentClassInfoModel self.titleLeftLab.text = model.studentName + self.childDataModel = model } } }else{ @@ -189,10 +194,12 @@ class GrowViewController: UIViewController,UIScrollViewDelegate { for i in 0.. UIView in let view = UIView.init(frame: CGRect.init(x: 10, y: 10, width: screenWidth-20, height: 100)) @@ -50,10 +53,10 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { super.viewDidLoad() self.view.addSubview(self.rootView) - self.rootView.addSubview(self.cardView) self.rootView.addSubview(self.bottomBtn) self.rootView.contentSize = CGSize.init(width: 0, height: screenHeight+1) + setUpContentView() // Do any additional setup after loading the view. @@ -76,13 +79,18 @@ class ProgramCardViewController: UIViewController,UITextFieldDelegate { cardLable.text = "补卡人:" let cardName = UILabel.init(frame: CGRect.init(x: 110, y: 10, width: 100, height: 30)) - cardName.text = "张三" + cardName.text = self.studentData.studentName let cardNumberLab = UILabel.init(frame: CGRect.init(x: 10, y: 50, width: 100, height: 30)) cardNumberLab.text = "卡号:" let cardNumberInput = UITextField.init(frame: CGRect.init(x: 110, y: 50, width: screenWidth-120, height: 30)) cardNumberInput.placeholder = "请输入卡号" + let card = self.studentData.cardNumber + if card.count>0 { + cardNumberInput.text = card + } + cardNumberInput.keyboardType = .numbersAndPunctuation cardNumberInput.delegate = self self.cardInputTextField = cardNumberInput diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift index d703311..5aae8d5 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramCheckViewController.swift @@ -22,30 +22,36 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi return table }() - var studentName:String? lazy var formatter = {()->DateFormatter in let matter = DateFormatter.init() matter.dateFormat = "yyyy-MM-dd" return matter }() + //考勤数据 var viewData = Array() - + //孩子数据模型 + var studentModel = StudentClassInfoModel() + //时间选择器 + var addAlertView = PickSelectView() + //选择的时间 + var timeSelectString = String() override func viewDidLoad() { super.viewDidLoad() - self.studentName = AccountManager.shared.rawUserInfo?.contentData()["studentClass"][0]["studentName"].string - - self.view.addSubview(self.tableView) + timeSelectString = self.formatter.string(from:Date()) + self.addAlertView = PickSelectView.init(frame: CGRect.init(x: 0, y: screenHeight-200, width: screenWidth, height: 200)) + self.view.addSubview(self.tableView) + // Do any additional setup after loading the view. - downLoadDataFromNet() + downLoadDataFromNet(time: self.formatter.string(from: Date())) } /// 获取数据 - private func downLoadDataFromNet(){ + private func downLoadDataFromNet(time:String){ SVProgressHUD.show() - let params = ["studentid":185,"schoolid":1,"starttime":"2017-07-19"] as [String : Any] + let params = ["studentid":studentModel.studentId,"schoolid":studentModel.schollId,"starttime":time] as [String : Any] HTTPServer.shared.getStudentCheckList(parameters: params as [String : AnyObject]) { (backData, error) in SVProgressHUD.dismiss() if error == nil && JSON.fromString(backData)!["status"].intValue == 1 { @@ -61,7 +67,7 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi } } } - + //MARK: - TableView Delegate && DataSource func numberOfSections(in tableView: UITableView) -> Int { @@ -82,18 +88,33 @@ class ProgramCheckViewController: UIViewController,UITableViewDelegate,UITableVi if indexPath.row == 0 { let cell = tableView.dequeueReusableCell(withIdentifier: "GrowCheckUpTableViewCell", for: indexPath) as! GrowCheckUpTableViewCell cell.checkCount.text = "\(self.viewData.count)" - cell.checkDate.text = self.formatter.string(from: Date()) - cell.checkName.text = studentName + cell.timeSelectBtn.setTitle(timeSelectString, for: UIControlState.normal) + cell.checkName.text = studentModel.studentName + cell.backBlock = { + print("选择日期") + self.selectTimeAction() + } return cell }else{ let cell = tableView.dequeueReusableCell(withIdentifier: "GrowCheckDownTableViewCell", for: indexPath) as! GrowCheckDownTableViewCell let model = self.viewData[indexPath.row-1] - cell.studentParents.text = "尊敬的\(studentName!)家长" + cell.studentParents.text = "尊敬的\(studentModel.studentName)家长" cell.setCellData(model: model) return cell } } + /// 展示时间选择器 + func selectTimeAction() { + self.addAlertView.setRowAndTitle(title: [], type: PickSelectView.AlertType.TimeDateType) + self.addAlertView.showView() + self.addAlertView.alertTimeBlock = {str in + print("backdata= \(str)") + self.timeSelectString = str + self.downLoadDataFromNet(time: str) + } + } + override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift index acfa3f0..b7dd1c9 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/Program/ProgramViewController.swift @@ -50,8 +50,10 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat //Data var tableData = Array() - var titleImage = Array() + //孩子数据 + var studentModel = StudentClassInfoModel() + var titleImage = Array() override func viewWillAppear(_ animated: Bool) { @@ -69,7 +71,6 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = backGroundColor - self.view.addSubview(self.tableView) self.tableData = ["考勤","补卡","请假"] @@ -118,10 +119,12 @@ class ProgramViewController: UIViewController,UITableViewDelegate,UITableViewDat case 0: let vc = ProgramCheckViewController() vc.title = "考勤" + vc.studentModel = self.studentModel self.navigationController?.pushViewController(vc, animated: true) case 1: let vc = ProgramCardViewController() vc.title = "补卡" + vc.studentData = self.studentModel self.navigationController?.pushViewController(vc, animated: true) case 2: let vc = ProgramVacateViewController() diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.swift b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.swift index f16c6a1..d0c437e 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.swift +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.swift @@ -8,11 +8,14 @@ import UIKit +public typealias cellBackBlock = ()->Void + class GrowCheckUpTableViewCell: UITableViewCell { @IBOutlet weak var checkName: UILabel! - @IBOutlet weak var checkDate: UILabel! + @IBOutlet weak var timeSelectBtn: UIButton! @IBOutlet weak var checkCount: UILabel! + var backBlock : cellBackBlock? override func awakeFromNib() { super.awakeFromNib() self.backgroundColor = backGroundColor @@ -20,6 +23,9 @@ class GrowCheckUpTableViewCell: UITableViewCell { // Initialization code } + @IBAction func SelectAction(_ sender: Any) { + self.backBlock!() + } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) diff --git a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.xib b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.xib index ec6a157..1b0d927 100644 --- a/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.xib +++ b/ParentAssistant/ParentAssistant/Classes/controllers/Grow/View/ProgramView/GrowCheckUpTableViewCell.xib @@ -20,7 +20,7 @@ - + - + - - - - + + + @@ -73,6 +79,7 @@ + @@ -86,8 +93,8 @@ - + diff --git a/ParentAssistant/ParentAssistant/Classes/util/view/PickSelectView.swift b/ParentAssistant/ParentAssistant/Classes/util/view/PickSelectView.swift new file mode 100644 index 0000000..68ff75e --- /dev/null +++ b/ParentAssistant/ParentAssistant/Classes/util/view/PickSelectView.swift @@ -0,0 +1,145 @@ +// +// PickSelectView.swift +// ParentAssistant +// +// Created by Cao yang on 2018/4/20. +// Copyright © 2018年 HANGZHOUTEAM. All rights reserved. +// + +import UIKit + + + +/// 返回数据block +typealias AlertViewBackData = (Dictionary)->() +/// 返回时间block +typealias AlertTimeBlock = (String)->() +/// 选择器 +class PickSelectView:UIView,UIPickerViewDelegate,UIPickerViewDataSource { + + enum AlertType { + case NormalType + case TimeDateType + } + + var keyWindow = UIWindow() + var backBtn = UIButton() + var leftBtn = UIButton() + + var datePicker = UIDatePicker() + var alertView = UIPickerView() + var alertBlock : AlertViewBackData? + var alertTimeBlock : AlertTimeBlock? + var selfType = AlertType.NormalType + + //data + //一般类型数据 + var titleArr = Array() + var Components = Int() + var Rows = Int() + var selectStr = String() //normal + //日期类型数据 + var selectDate = String() //date + //日期格式 + lazy var formatter = {()-> DateFormatter in + let forma = DateFormatter() + forma.dateFormat = "yyyy-MM-dd" + return forma + }() + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = UIColor.white + } + + func setRowAndTitle(title:Array,type:AlertType){ + + self.selfType = type + + switch type { + case .NormalType: + self.alertView = UIPickerView.init(frame: self.bounds) + self.Components = 1 + self.Rows = title.count + self.titleArr = title + self.alertView.delegate = self + self.alertView.dataSource = self + self.addSubview(self.alertView) + + case .TimeDateType: + self.datePicker = UIDatePicker.init(frame: self.bounds) + self.datePicker.locale = Locale.init(identifier: "zh_CN") + self.datePicker.datePickerMode = .date + self.datePicker.addTarget(self, action: #selector(dateChanged), for: UIControlEvents.valueChanged) + self.addSubview(self.datePicker) + self.selectDate = self.formatter.string(from: Date()) + self.alertTimeBlock?(self.selectDate) + } + } + + @objc func dateChanged(datePicker:UIDatePicker) { + + self.selectDate = self.formatter.string(from: datePicker.date) + } + + @objc func showView(){ + + keyWindow = UIApplication.shared.keyWindow! + backBtn = UIButton.init(frame: CGRect.init(x: 0,y: 0, width: screenWidth, height: screenHeight-200)) + backBtn.backgroundColor = UIColor.black + backBtn.alpha = 0.4 + + backBtn.addTarget(self, action: #selector(closeView), for: UIControlEvents.allEvents) + + + leftBtn = UIButton.init(frame: CGRect.init(x: 0, y: screenHeight-200, width: 80, height: 40)) + leftBtn.setTitle("确定", for: UIControlState.normal) + leftBtn.titleLabel?.textAlignment = .center + leftBtn.setTitleColor(UIColor.black, for: UIControlState.normal) + leftBtn.tag = 1 + leftBtn.addTarget(self, action: #selector(closeView), for: UIControlEvents.touchUpInside) + + keyWindow.addSubview(backBtn) + keyWindow.addSubview(self) + keyWindow.addSubview(leftBtn) + self.isHidden = false + } + + @objc func closeView() { + + switch self.selfType { + case .TimeDateType: + self.alertTimeBlock?(self.selectDate) + default: + break + } + UIView.animate(withDuration: 0.3) { + self.backBtn.removeFromSuperview() + self.leftBtn.removeFromSuperview() + self.alertView.removeFromSuperview() + self.datePicker.removeFromSuperview() + self.isHidden = true + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func numberOfComponents(in pickerView: UIPickerView) -> Int { + return Components + } + + func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + return Rows + } + func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { + let dic = titleArr[row].dictionaryValue + return dic["dimensionName"]?.stringValue + } + func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { + let dic = titleArr[row].dictionaryValue + self.alertBlock?(dic) + } +} + -- libgit2 0.21.0