浏览代码

上拉加载 更多up

openlockPPP 1 年之前
父节点
当前提交
cf3dd1a51a

+ 1 - 1
JiaPeiManage/Sources/Main/Base/BaseGroupTableViewController.swift

@@ -89,7 +89,7 @@ class BaseGroupTableViewController: BaseViewController,Refreshable {
     }
     
     //MARK: Private Method
-    private func stopLoad() {
+    func stopLoad() {
         
         guard let isLoading = tableView.footer?.isRefreshing else { return }
         

+ 1 - 1
JiaPeiManage/Sources/Main/Base/BaseTableViewController.swift

@@ -89,7 +89,7 @@ class BaseTableViewController: BaseViewController,Refreshable {
     }
     
     //MARK: Private Method
-    private func stopLoad() {
+    func stopLoad() {
         
         guard let isLoading = tableView.footer?.isRefreshing else { return }
         

+ 1 - 2
JiaPeiManage/Sources/Modulars/Home/Controllers/HomeViewController.swift

@@ -56,8 +56,7 @@ final class HomeViewController: BaseViewController {
         }).disposed(by: disposeBag)
         //在校学员-action
         self.onSchoolAction_button.rx.tap.subscribe ({ [unowned self] (_)  in
-           
-            
+            NYSwRouter.push(NYSwPushType.trainee_list_school,context: LocalManager.userInfo.schoolId)
         }).disposed(by: disposeBag)
         //生成二维码-action
         self.codeQrAction_button.rx.tap.subscribe ({ [unowned self] (_)  in

+ 30 - 4
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeDetails/MeTraineeDetails01Controller.swift

@@ -18,6 +18,7 @@ final class MeTraineeDetails01Controller: BaseTableViewController {
    
     // MARK: UI属性
     var groupList:[String : [String:String]] = [:]
+    var groupColorList:[String:String] = [:]
     let keys = ["个人信息","培训信息"]
     let keyArray = [["证件类型","证件号码","推荐人","国籍","地区","县区","联系地址","培训车型","是否激活","备案时间","所属机构"],
                     ["阶段一学时","阶段二学时", "阶段三学时", "阶段四学时", "科一已打/所需学时", "科二已打/所需学时", "科三已打/所需学时","科四已打/所需学时", "科二总里程", "科三总里程", "总里程",]]
@@ -57,10 +58,28 @@ final class MeTraineeDetails01Controller: BaseTableViewController {
                               "是否激活":(info.active=="1" ? "是":"否"),
                               "备案时间":info.recordDate,
                               "所属机构":info.schoolName,]
-        let onetime:String = info.trainOneExamStatus=="1" ? "运管已签章\(info.trainOneExamTime)":info.trainOneExamTime
-        let twotime:String = info.trainTwoExamStatus=="1" ? "运管已签章\(info.trainTwoExamTime)":info.trainTwoExamTime
-        let threetime:String = info.trainThreeExamTime=="1" ? "运管已签章\(info.trainThreeExamTime)":info.trainThreeExamTime
-        let fourtime:String = info.trainFourExamStatus=="1" ? "运管已签章\(info.trainFourExamTime)":info.trainFourExamTime
+        let onetime:String = info.trainOneExamStatus=="1" ? "运管已签章"+info.trainOneExamTime.prefix(10):info.trainOneExamTime.prefix(10)+""
+        let twotime:String = info.trainTwoExamStatus=="1" ? "运管已签章"+info.trainTwoExamTime.prefix(10):info.trainTwoExamTime.prefix(10)+""
+        let threetime:String = info.trainThreeExamStatus=="1" ? "运管已签章"+info.trainThreeExamTime.prefix(10):info.trainThreeExamTime.prefix(10)+""
+        let fourtime:String = info.trainFourExamStatus=="1" ? "运管已签章"+info.trainFourExamTime.prefix(10):info.trainFourExamTime.prefix(10)+""
+
+        if (info.trainOneExamStatus=="1"){
+            groupColorList["阶段一学时"] = "#35BF5E"
+            groupColorList["科一已打/所需学时"] = "#35BF5E"
+        }
+        if(info.trainTwoExamStatus=="1"){
+            groupColorList["阶段二学时"] = "#35BF5E"
+            groupColorList["科二已打/所需学时"] = "#35BF5E"
+        }
+        if(info.trainThreeExamStatus=="1"){
+            groupColorList["阶段三学时"] = "#35BF5E"
+            groupColorList["科三已打/所需学时"] = "#35BF5E"
+        }
+        if(info.trainFourExamStatus=="1"){
+            groupColorList["阶段四学时"] = "#35BF5E"
+            groupColorList["科四已打/所需学时"] = "#35BF5E"
+        }
+        
         groupList["培训信息"] = ["阶段一学时":onetime,
                               "阶段二学时":twotime,
                               "阶段三学时":threetime,
@@ -123,6 +142,13 @@ extension MeTraineeDetails01Controller:UITableViewDataSource {
         cell.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D")
         cell.type_label.text = type
         cell.value_label.text = value
+        if let color = groupColorList[type] {
+            // key 存在,执行相应的逻辑
+            cell.value_label.textColor = UIColor(color)
+        }else {
+            // key 不存在,执行相应的逻辑
+            cell.value_label.textColor = .db_fontSelColor
+        }
         return cell
     }
 }

+ 1 - 1
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeDetails/MeTraineeDetails02Controller.swift

@@ -26,7 +26,7 @@ final class MeTraineeDetails02Controller: BaseTableViewController {
     var stuResultDataModel:StuResultDataModel?
     
     var page:Int = 1
-    var pageSize:Int = 10
+    var pageSize:Int = 50
     var stuOutId:Int = 0
     
     override func viewDidLoad() {

+ 39 - 16
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeDetails/MeTraineeDetails03Controller.swift

@@ -22,11 +22,12 @@ final class MeTraineeDetails03Controller: BaseGroupTableViewController {
     
     // MARK: 数据
     var stuLogFacDataModel:StuLogFacDataModel?
-    
+    var rows : [StuLogFacInfoModel] = []
     var page:Int = 1
     var pageSize:Int = 10
     var stuOutId:Int = 0
     
+    
     init(stuOutId:Int) {
         super.init()
         self.stuOutId = stuOutId
@@ -40,20 +41,18 @@ final class MeTraineeDetails03Controller: BaseGroupTableViewController {
         super.viewDidLoad()
         //绑定
         biandView()
-//        if(self.stuOutId>0){getStuResultList()}
+        if(self.stuOutId>0){getStuResultList()}
     }
     
     // MARK: 私有方法
-//    func setStuOutId(stuId:Int){
-//        stuOutId = stuId
-//        getStuResultList()
-//    }
     
     func getStuResultList(){
-        
+        page = 1
         self.cocahService.stuLogFacListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!)
             .subscribe(onSuccess: {[unowned self] stuLogFacDataModel in
+                self.rows.removeAll()
                 self.stuLogFacDataModel = stuLogFacDataModel
+                self.rows+=stuLogFacDataModel.rows
                 print("resultInfoModel成功")
                 self.hideLoadAnimation()
                 self.tableView.reloadData()
@@ -63,7 +62,32 @@ final class MeTraineeDetails03Controller: BaseGroupTableViewController {
             })
             .disposed(by: disposeBag)
     }
-    
+    //更多
+    func getLoadMore(){
+        //计算-页数
+        if (stuLogFacDataModel != nil){
+            let total = pageSize*self.page
+            if(total<(stuLogFacDataModel?.total)!){
+                self.page+=1
+            }else{
+                self.stopLoad()
+                return //已经显示完
+            }
+        }
+        //请求网络-加载
+        self.cocahService.stuLogFacListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!)
+            .subscribe(onSuccess: {[unowned self] stuLogFacDataModel in
+                self.stuLogFacDataModel = stuLogFacDataModel
+                self.rows+=stuLogFacDataModel.rows
+                print("resultInfoModel成功")
+                self.tableView.reloadData()
+                self.stopLoad()
+            }, onError: { error in
+                self.stopLoad()
+            })
+            .disposed(by: disposeBag)
+
+    }
     func biandView(){
         tableView.delegate = self
         tableView.dataSource = self
@@ -72,15 +96,14 @@ final class MeTraineeDetails03Controller: BaseGroupTableViewController {
         tableView.rowHeight = 92.f
         tableView.contentInset = UIEdgeInsets(top: -25, left: 0, bottom: -25, right: 0)
         setupRefreshHeader(tableView) {[unowned self] in
-//            DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
-//                // 在延迟 1 秒后执行的代码
-//
-//            }
             self.getStuResultList()
         }
         self.isEmptyDisplay = false
         self.hideLoadAnimation()
-        
+        // 设置上拉加载更多
+        tableView.es.addInfiniteScrolling { [weak self] in
+            self?.getLoadMore()
+        }
     }
 }
 
@@ -89,8 +112,8 @@ extension MeTraineeDetails03Controller:UITableViewDataSource {
     
     
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        if (stuLogFacDataModel != nil && (stuLogFacDataModel?.rows.count)!>0){
-            return (stuLogFacDataModel?.rows.count)!
+        if (rows.count>0){
+            return rows.count
         }
         return 0
     }
@@ -107,7 +130,7 @@ extension MeTraineeDetails03Controller:UITableViewDataSource {
         let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeDetails03Cell
         cell.contentView.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D")
         cell.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D")
-        let info = (stuLogFacDataModel?.rows[indexPath.row])! as StuLogFacInfoModel
+        let info = rows[indexPath.row] as StuLogFacInfoModel
         cell.stutime_label.text = info.crdate
         cell.user_imageview.sd_setImage(with: info.sourceimg?.urlValue)
         cell.similar_label.text = info.similar

+ 39 - 15
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeDetails/MeTraineeDetails04Controller.swift

@@ -24,7 +24,7 @@ final class MeTraineeDetails04Controller: BaseTableViewController {
     
     // MARK: 数据
     var stuTmsSignDataModel:StuTmsSignDataModel?
-    
+    var rows : [StuTmsSignInfoModel] = []
     var page:Int = 1
     var pageSize:Int = 10
     var stuOutId:Int = 0
@@ -46,16 +46,14 @@ final class MeTraineeDetails04Controller: BaseTableViewController {
     }
     
     // MARK: 私有方法
-//    func setStuOutId(stuId:Int){
-//        stuOutId = stuId
-//        getStuResultList()
-//    }
-    
+
     func getStuResultList(){
-        
+        page=1
         self.cocahService.stuTmsSignListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!)
             .subscribe(onSuccess: {[unowned self] stuTmsSignDataModel in
+                self.rows.removeAll()
                 self.stuTmsSignDataModel = stuTmsSignDataModel
+                self.rows+=stuTmsSignDataModel.rows
                 print("resultInfoModel成功")
                 self.hideLoadAnimation()
                 self.tableView.reloadData()
@@ -66,6 +64,33 @@ final class MeTraineeDetails04Controller: BaseTableViewController {
             .disposed(by: disposeBag)
     }
     
+    //更多
+    func getLoadMore(){
+        //计算-页数
+        if (stuTmsSignDataModel != nil){
+            let total = pageSize*self.page
+            if(total<(stuTmsSignDataModel?.total)!){
+                self.page+=1
+            }else{
+                self.stopLoad()
+                return //已经显示完
+            }
+        }
+        //请求网络-加载
+        self.cocahService.stuTmsSignListByStuIdRequest(pageNum: page, pageSize: pageSize, stuOutId: stuOutId, city: LocalManager.userInfo.city!)
+            .subscribe(onSuccess: {[unowned self] stuTmsSignDataModel in
+                self.stuTmsSignDataModel = stuTmsSignDataModel
+                self.rows+=stuTmsSignDataModel.rows
+                print("resultInfoModel成功")
+                self.tableView.reloadData()
+                self.stopLoad()
+            }, onError: { error in
+                self.stopLoad()
+            })
+            .disposed(by: disposeBag)
+
+    }
+    
     func biandView(){
         tableView.delegate = self
         tableView.dataSource = self
@@ -73,15 +98,14 @@ final class MeTraineeDetails04Controller: BaseTableViewController {
         tableView.register(UINib(nibName: "MeTraineeDetails04Cell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
         tableView.rowHeight = 62.f
         setupRefreshHeader(tableView) {[unowned self] in
-//            DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
-//                // 在延迟 1 秒后执行的代码
-//
-//            }
             self.getStuResultList()
         }
         self.isEmptyDisplay = false
         self.hideLoadAnimation()
-        
+        // 设置上拉加载更多
+        tableView.es.addInfiniteScrolling { [weak self] in
+            self?.getLoadMore()
+        }
     }
 }
 
@@ -90,8 +114,8 @@ extension MeTraineeDetails04Controller:UITableViewDataSource {
     
     
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        if (stuTmsSignDataModel != nil && (stuTmsSignDataModel?.rows.count)!>0){
-            return (stuTmsSignDataModel?.rows.count)!
+        if (rows.count>0){
+            return rows.count
         }
         return 0
     }
@@ -122,7 +146,7 @@ extension MeTraineeDetails04Controller:UITableViewDataSource {
         let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeDetails04Cell
         cell.contentView.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D")
         cell.backgroundColor = ((indexPath.row%2) != 0) ? UIColor("#113357") : UIColor("#0B2B4D")
-        let info = (stuTmsSignDataModel?.rows[indexPath.row])! as StuTmsSignInfoModel
+        let info = rows[indexPath.row] as StuTmsSignInfoModel
         cell.trainCarLicnum_label.text = info.trainCarLicnum
         cell.sim_label.text = info.sim
         cell.logintime_label.text = info.loginTime

+ 7 - 5
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeListViewController.swift

@@ -25,6 +25,8 @@ final class MeTraineeListViewController: BaseViewController {
     
     private var menuItemCurrentBtn : UIButton?
     
+    var schoolId:Int = 0
+    
     // MARK: UI let
     let statusBar = UIView().then {
         $0.backgroundColor = UIColor.db_theme
@@ -199,31 +201,31 @@ extension MeTraineeListViewController : VTMagicViewDataSource{
         if pageIndex == 0 {
             var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController01")
             if meTraineeSubjectPageViewController == nil {
-                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "1")
+                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "1",schoolId: schoolId)
             }
             return meTraineeSubjectPageViewController ?? UIViewController()
         } else if pageIndex == 1 {
             var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController02")
             if meTraineeSubjectPageViewController == nil {
-                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "2")
+                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "2",schoolId: schoolId)
             }
             return meTraineeSubjectPageViewController ?? UIViewController()
         } else if pageIndex == 2 {
             var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController03")
             if meTraineeSubjectPageViewController == nil {
-                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "3")
+                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "3",schoolId: schoolId)
             }
             return meTraineeSubjectPageViewController ?? UIViewController()
         } else if pageIndex == 3{
             var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController04")
             if meTraineeSubjectPageViewController == nil {
-                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "4")
+                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "4",schoolId: schoolId)
             }
             return meTraineeSubjectPageViewController ?? UIViewController()
         } else {
             var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController05")
             if meTraineeSubjectPageViewController == nil {
-                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "5")
+                meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController(state: "5",schoolId: schoolId)
             }
             return meTraineeSubjectPageViewController ?? UIViewController()
         }

+ 49 - 12
JiaPeiManage/Sources/Modulars/学员/Controllers/MeTraineeSubjectPageViewController.swift

@@ -21,14 +21,17 @@ final class MeTraineeSubjectPageViewController: BaseTableViewController {
     
     // MARK: 数据
     var traineeDataModel:TraineeDataModel?
+    var rows:[RowInfo] = []
     
     var page:Int = 1
     var pageSize:Int = 10
     var state = "1"
+    var schoolId:Int = 0
     
-    init(state:String) {
+    init(state:String,schoolId:Int) {
         super.init()
         self.state = state
+        self.schoolId = schoolId
     }
     
     required convenience init?(coder aDecoder: NSCoder) {
@@ -41,23 +44,58 @@ final class MeTraineeSubjectPageViewController: BaseTableViewController {
         getCoachInfoList()
         //绑定
         biandView()
+        
     }
     
     // MARK: 私有方法
     
     func getCoachInfoList()
     {
-        self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: 0, state: state)
+        page = 1
+        self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
             .subscribe(onSuccess: { traineeDataModel in
+                self.rows.removeAll()
                 self.traineeDataModel = traineeDataModel
+                self.rows += traineeDataModel.rows!
                 print("coachInfoListRequest成功")
                 self.hideLoadAnimation()
                 self.tableView.reloadData()
+                self.stopRefresh()
             }, onError: { error in
+                self.stopRefresh()
             })
             .disposed(by: disposeBag)
     }
     
+    //更多
+    func getLoadMore(){
+        //计算-页数
+        if (traineeDataModel != nil){
+            let total = pageSize*self.page
+            if(total<(traineeDataModel?.total)!){
+                self.page+=1
+            }else{
+                self.stopLoad()
+                return //已经显示完
+            }
+        }
+        //请求网络-加载
+        self.cocahService.coachInfoListRequest(city: LocalManager.userInfo.city!, appCoachId: "", coachId: "\(LocalManager.userInfo.id)", field: "", pageNum: page, pageSize: pageSize, schoolId: schoolId, state: state)
+            .subscribe(onSuccess: { traineeDataModel in
+                self.traineeDataModel = traineeDataModel
+                if(traineeDataModel.rows!.count>0){
+                    self.rows += traineeDataModel.rows!
+                }
+                print("coachInfoListRequest成功")
+                self.tableView.reloadData()
+                self.stopLoad()
+            }, onError: { error in
+                self.stopLoad()
+            })
+            .disposed(by: disposeBag)
+
+    }
+    
     func biandView(){
         tableView.delegate = self
         tableView.dataSource = self
@@ -65,14 +103,13 @@ final class MeTraineeSubjectPageViewController: BaseTableViewController {
         tableView.register(UINib(nibName: "MeTraineeSubjectCell", bundle: nil), forCellReuseIdentifier: cellIdentifier)
         tableView.rowHeight = 288.f
         setupRefreshHeader(tableView) {[unowned self] in
-            DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
-                // 在延迟 1 秒后执行的代码
-                self.stopRefresh()
-            }
-            NSLog("AAAAAAA")
+            self.getCoachInfoList()
         }
         self.isEmptyDisplay = false
-        
+        // 设置上拉加载更多
+        tableView.es.addInfiniteScrolling { [weak self] in
+            self?.getLoadMore()
+        }
     }
     
 }
@@ -81,13 +118,13 @@ final class MeTraineeSubjectPageViewController: BaseTableViewController {
 extension MeTraineeSubjectPageViewController:UITableViewDataSource {
     
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return self.traineeDataModel?.rows?.count ?? 0
+        return self.rows.count ?? 0
     }
     
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! MeTraineeSubjectCell
         cell.index_button.setTitle("\(indexPath.row+1)", for: .normal)
-        cell.setRowInfo(rowInfo: (self.traineeDataModel?.rows?[indexPath.row])!)
+        cell.setRowInfo(rowInfo: (self.rows[indexPath.row]))
         return cell
     }
 }
@@ -97,9 +134,9 @@ extension MeTraineeSubjectPageViewController:UITableViewDelegate {
     
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         tableView.deselectRow(at: indexPath, animated: false)
-        let rowInfo = self.traineeDataModel?.rows![indexPath.row]
+        let rowInfo = self.rows[indexPath.row]
         if rowInfo != nil {
-            let context: Int = rowInfo?.id ?? 0
+            let context: Int = rowInfo.id ?? 0
             NYSwRouter.push(NYSwPushType.trainee_info,context: context)
         }
     }

+ 3 - 0
JiaPeiManage/Sources/Utils/NYSwRouter.swift

@@ -16,6 +16,7 @@ enum NYSwPushType {
     case trainee_list
     case mine_center
     case mine_uppassword
+    case trainee_list_school
 }
 
 
@@ -36,6 +37,8 @@ extension NYSwPushType {
             return "JiaPeiManage://me/trainee/list"
         case .trainee_search:
             return "JiaPeiManage://me/trainee/search"
+        case .trainee_list_school:
+            return "JiaPeiManage://me/trainee/list/school"
         case .mine_center:
             return "JiaPeiManage://mine/center"
         case .mine_uppassword:

+ 7 - 0
JiaPeiManage/Sources/Utils/URLNavigationMap.swift

@@ -31,6 +31,13 @@ final class URLNavigationMap {
             return meTraineeListViewController
         }
         
+        navigator.register(NYSwPushType.trainee_list_school.path) { (url, values, context) -> UIViewController? in
+            
+            let meTraineeListViewController = MeTraineeListViewController()
+            meTraineeListViewController.schoolId = context as! Int
+            return meTraineeListViewController
+        }
+        
         navigator.register(NYSwPushType.mine_uppassword.path) { (url, values, context) -> UIViewController? in
             let updatePasswordViewController = UpdatePasswordViewController(nibName: "UpdatePasswordViewController")
             return updatePasswordViewController