Commit 8b892b8ed654d06afc376d1a9cbbd2f851ec0ca1
Exists in
parentassistant
Merge branch 'parentassistant' of http://git.shunzhi.net/iosgroup/parentassistan…
…t into parentassistant # Conflicts: # ParentAssistant/ParentAssistant/Supporting Files/Base.lproj/Main.storyboard
Showing
27 changed files
with
491 additions
and
70 deletions
 
Show diff stats
ParentAssistant/ParentAssistant.xcodeproj/project.pbxproj
| @@ -105,6 +105,7 @@ | @@ -105,6 +105,7 @@ | ||
| 105 | BFBC06CC2063AE8900CCFAFF /* ZLaunchAdWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C22063AE8800CCFAFF /* ZLaunchAdWindow.swift */; }; | 105 | BFBC06CC2063AE8900CCFAFF /* ZLaunchAdWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C22063AE8800CCFAFF /* ZLaunchAdWindow.swift */; }; | 
| 106 | BFBC06CD2063AE8900CCFAFF /* ZLaunchImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C32063AE8800CCFAFF /* ZLaunchImageView.swift */; }; | 106 | BFBC06CD2063AE8900CCFAFF /* ZLaunchImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C32063AE8800CCFAFF /* ZLaunchImageView.swift */; }; | 
| 107 | BFBC06CE2063AE8900CCFAFF /* ZLaunchLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C42063AE8800CCFAFF /* ZLaunchLog.swift */; }; | 107 | BFBC06CE2063AE8900CCFAFF /* ZLaunchLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06C42063AE8800CCFAFF /* ZLaunchLog.swift */; }; | 
| 108 | + BFBC06D22064FDDE00CCFAFF /* LaunchIntroductionView.m in Sources */ = {isa = PBXBuildFile; fileRef = BFBC06D12064FDDE00CCFAFF /* LaunchIntroductionView.m */; }; | ||
| 108 | BFCED888205280B700055373 /* MyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFCED887205280B700055373 /* MyViewController.swift */; }; | 109 | BFCED888205280B700055373 /* MyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFCED887205280B700055373 /* MyViewController.swift */; }; | 
| 109 | BFCED88B20528DE700055373 /* MyViewControllerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFCED88A20528DE700055373 /* MyViewControllerModel.swift */; }; | 110 | BFCED88B20528DE700055373 /* MyViewControllerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFCED88A20528DE700055373 /* MyViewControllerModel.swift */; }; | 
| 110 | BFEAAAA7205118370072FAAF /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFEAAAA6205118370072FAAF /* TabBarController.swift */; }; | 111 | BFEAAAA7205118370072FAAF /* TabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFEAAAA6205118370072FAAF /* TabBarController.swift */; }; | 
| @@ -254,6 +255,8 @@ | @@ -254,6 +255,8 @@ | ||
| 254 | BFBC06C22063AE8800CCFAFF /* ZLaunchAdWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchAdWindow.swift; sourceTree = "<group>"; }; | 255 | BFBC06C22063AE8800CCFAFF /* ZLaunchAdWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchAdWindow.swift; sourceTree = "<group>"; }; | 
| 255 | BFBC06C32063AE8800CCFAFF /* ZLaunchImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchImageView.swift; sourceTree = "<group>"; }; | 256 | BFBC06C32063AE8800CCFAFF /* ZLaunchImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchImageView.swift; sourceTree = "<group>"; }; | 
| 256 | BFBC06C42063AE8800CCFAFF /* ZLaunchLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchLog.swift; sourceTree = "<group>"; }; | 257 | BFBC06C42063AE8800CCFAFF /* ZLaunchLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZLaunchLog.swift; sourceTree = "<group>"; }; | 
| 258 | + BFBC06D02064FDDE00CCFAFF /* LaunchIntroductionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchIntroductionView.h; sourceTree = "<group>"; }; | ||
| 259 | + BFBC06D12064FDDE00CCFAFF /* LaunchIntroductionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchIntroductionView.m; sourceTree = "<group>"; }; | ||
| 257 | BFCED887205280B700055373 /* MyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyViewController.swift; sourceTree = "<group>"; }; | 260 | BFCED887205280B700055373 /* MyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyViewController.swift; sourceTree = "<group>"; }; | 
| 258 | BFCED88A20528DE700055373 /* MyViewControllerModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyViewControllerModel.swift; sourceTree = "<group>"; }; | 261 | BFCED88A20528DE700055373 /* MyViewControllerModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyViewControllerModel.swift; sourceTree = "<group>"; }; | 
| 259 | BFEAAAA6205118370072FAAF /* TabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = "<group>"; }; | 262 | BFEAAAA6205118370072FAAF /* TabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarController.swift; sourceTree = "<group>"; }; | 
| @@ -622,6 +625,15 @@ | @@ -622,6 +625,15 @@ | ||
| 622 | path = ZLaunchAd; | 625 | path = ZLaunchAd; | 
| 623 | sourceTree = "<group>"; | 626 | sourceTree = "<group>"; | 
| 624 | }; | 627 | }; | 
| 628 | + BFBC06CF2064FDDE00CCFAFF /* LaunchIntroduction */ = { | ||
| 629 | + isa = PBXGroup; | ||
| 630 | + children = ( | ||
| 631 | + BFBC06D02064FDDE00CCFAFF /* LaunchIntroductionView.h */, | ||
| 632 | + BFBC06D12064FDDE00CCFAFF /* LaunchIntroductionView.m */, | ||
| 633 | + ); | ||
| 634 | + path = LaunchIntroduction; | ||
| 635 | + sourceTree = "<group>"; | ||
| 636 | + }; | ||
| 625 | BFCED886205280B700055373 /* Controller */ = { | 637 | BFCED886205280B700055373 /* Controller */ = { | 
| 626 | isa = PBXGroup; | 638 | isa = PBXGroup; | 
| 627 | children = ( | 639 | children = ( | 
| @@ -663,6 +675,7 @@ | @@ -663,6 +675,7 @@ | ||
| 663 | BFEAAAAC205257270072FAAF /* libs */ = { | 675 | BFEAAAAC205257270072FAAF /* libs */ = { | 
| 664 | isa = PBXGroup; | 676 | isa = PBXGroup; | 
| 665 | children = ( | 677 | children = ( | 
| 678 | + BFBC06CF2064FDDE00CCFAFF /* LaunchIntroduction */, | ||
| 666 | BFBC06BA2063AE8800CCFAFF /* ZLaunchAd */, | 679 | BFBC06BA2063AE8800CCFAFF /* ZLaunchAd */, | 
| 667 | 5980BF5F2061048A00F4A35E /* LZCityPickerClass */, | 680 | 5980BF5F2061048A00F4A35E /* LZCityPickerClass */, | 
| 668 | BFEAAAAD205257460072FAAF /* LXCalendar */, | 681 | BFEAAAAD205257460072FAAF /* LXCalendar */, | 
| @@ -932,6 +945,7 @@ | @@ -932,6 +945,7 @@ | ||
| 932 | BFEAAAA9205248AC0072FAAF /* TaskPresentationTableViewCell.swift in Sources */, | 945 | BFEAAAA9205248AC0072FAAF /* TaskPresentationTableViewCell.swift in Sources */, | 
| 933 | AD24AA202065FBAF00ECA428 /* SceneTopCell.swift in Sources */, | 946 | AD24AA202065FBAF00ECA428 /* SceneTopCell.swift in Sources */, | 
| 934 | 5980BF6A2061048A00F4A35E /* LZPickerModel.m in Sources */, | 947 | 5980BF6A2061048A00F4A35E /* LZPickerModel.m in Sources */, | 
| 948 | + BFBC06D22064FDDE00CCFAFF /* LaunchIntroductionView.m in Sources */, | ||
| 935 | BFEAAAA7205118370072FAAF /* TabBarController.swift in Sources */, | 949 | BFEAAAA7205118370072FAAF /* TabBarController.swift in Sources */, | 
| 936 | BF67F3C020590A2F002FDC61 /* SwiftyJSON.swift in Sources */, | 950 | BF67F3C020590A2F002FDC61 /* SwiftyJSON.swift in Sources */, | 
| 937 | 599364ED204E62E700C8B371 /* InformationViewController.swift in Sources */, | 951 | 599364ED204E62E700C8B371 /* InformationViewController.swift in Sources */, | 
ParentAssistant/ParentAssistant.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/xcschememanagement.plist
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ParentAssistant/ParentAssistant/AppDelegate.swift
| @@ -38,8 +38,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | @@ -38,8 +38,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||
| 38 | }) | 38 | }) | 
| 39 | } | 39 | } | 
| 40 | setShareSDKSetting() | 40 | setShareSDKSetting() | 
| 41 | + let tabbarVC = Story.instantiateViewControllerWithIdentifier("TabBarController", storyName: "Main") as! TabBarController | ||
| 42 | + self.window?.rootViewController = tabbarVC | ||
| 43 | + self.window?.makeKeyAndVisible() | ||
| 41 | // 加载广告 | 44 | // 加载广告 | 
| 42 | - requestAD() | 45 | + requestAD(vc: tabbarVC) | 
| 43 | return true | 46 | return true | 
| 44 | } | 47 | } | 
| 45 | //设置云信的appkey | 48 | //设置云信的appkey | 
| @@ -60,33 +63,53 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | @@ -60,33 +63,53 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | ||
| 60 | YXMessageManager.share.addYXDelegate() | 63 | YXMessageManager.share.addYXDelegate() | 
| 61 | } | 64 | } | 
| 62 | // MARK: - 加载广告页 | 65 | // MARK: - 加载广告页 | 
| 63 | - func requestAD() -> Void { | 66 | + func requestAD(vc:TabBarController) -> Void { | 
| 64 | var position:Int = 0 | 67 | var position:Int = 0 | 
| 65 | - if Setting.getString("isFirst") == "true" {//是否是第一次下载 | 68 | + if Setting.getString("isFirst") == "\(AppDelegate.version())" {//是否是第一次下载 | 
| 66 | position = 1 | 69 | position = 1 | 
| 70 | + let adView = ZLaunchAd.create() | ||
| 71 | + //position 广告位置0-首次广告位1-开屏广告位2-资讯首页3-频道首页4-频道内容5-文章内容页 AccountManager.shared.address | ||
| 72 | + HTTPServer.shared.getAds(["position":position as AnyObject], completionHandler: { (str, error) in | ||
| 73 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 74 | + if json["status"] == 1 && error == nil{ | ||
| 75 | + if json.contentData().arrayValue.count>0 { | ||
| 76 | + let imageResource = ZLaunchAdImageResourceConfigure() | ||
| 77 | + imageResource.imageNameOrImageURL = HTTPServer.HOSTImage+json.contentData().arrayValue[0]["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 78 | + imageResource.imageDuration = 5 | ||
| 79 | + imageResource.imageFrame = UIScreen.main.bounds | ||
| 80 | + adView.setImageResource(imageResource, action: { | ||
| 81 | + /// 广告点击 | ||
| 82 | + }) | ||
| 83 | + } | ||
| 84 | + } | ||
| 85 | + }, failHandler: { (error) in | ||
| 86 | + }) | ||
| 87 | + }) | ||
| 67 | }else{ | 88 | }else{ | 
| 89 | +// Thread.sleep(forTimeInterval: 5.0)//延长启动页面10秒 | ||
| 90 | + let view = UIView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight())) | ||
| 91 | + view.backgroundColor = UIColor.white | ||
| 92 | + vc.view.addSubview(view) | ||
| 68 | position = 0 | 93 | position = 0 | 
| 69 | - Setting.save("true", forKey: "isFirst") | ||
| 70 | - } | ||
| 71 | - //position 广告位置0-首次广告位1-开屏广告位2-资讯首页3-频道首页4-频道内容5-文章内容页 AccountManager.shared.address | ||
| 72 | - HTTPServer.shared.getAds(["position":position as AnyObject,"areaName":"" as AnyObject], completionHandler: { (str, error) in | ||
| 73 | - httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 74 | - if json["status"] == 1 && error == nil{ | ||
| 75 | - if json.contentData().arrayValue.count>0 { | ||
| 76 | - let adView = ZLaunchAd.create() | ||
| 77 | - let imageResource = ZLaunchAdImageResourceConfigure() | ||
| 78 | - imageResource.imageNameOrImageURL = HTTPServer.HOSTImage+json.contentData().arrayValue[0]["fileSrc"].stringValue | ||
| 79 | - imageResource.imageDuration = 5 | ||
| 80 | - imageResource.imageFrame = UIScreen.main.bounds | ||
| 81 | - adView.setImageResource(imageResource, action: { | ||
| 82 | - /// 广告点击 | ||
| 83 | - }) | 94 | + let _ = Setting.save("\(AppDelegate.version())", forKey: "isFirst") | 
| 95 | + //position 广告位置0-首次广告位1-开屏广告位2-资讯首页3-频道首页4-频道内容5-文章内容页 AccountManager.shared.address | ||
| 96 | + HTTPServer.shared.getAds(["position":position as AnyObject], completionHandler: { (str, error) in | ||
| 97 | + view.removeFromSuperview() | ||
| 98 | + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in | ||
| 99 | + if json["status"] == 1 && error == nil{ | ||
| 100 | + var images:[String] = [] | ||
| 101 | + if json.contentData().arrayValue.count>0 { | ||
| 102 | + for item in json.contentData().arrayValue { | ||
| 103 | + NSLog("************\(HTTPServer.HOSTImage+item["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)"); images.append(HTTPServer.HOSTImage+item["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!) | ||
| 104 | + } | ||
| 105 | + LaunchIntroductionView.shared(withImages: images, buttonImage: "icon_getin", buttonFrame: CGRect(x: getScreenWidth()/2-551/4, y: getScreenHeight()-150, width: 551/2, height: 45)) | ||
| 106 | + } | ||
| 84 | } | 107 | } | 
| 85 | - } | ||
| 86 | - }, failHandler: { (error) in | ||
| 87 | - | 108 | + }, failHandler: { (error) in | 
| 109 | + }) | ||
| 88 | }) | 110 | }) | 
| 89 | - }) | 111 | + | 
| 112 | + } | ||
| 90 | } | 113 | } | 
| 91 | // MARK: - 设置网络 | 114 | // MARK: - 设置网络 | 
| 92 | @objc func networkStatusChange() { | 115 | @objc func networkStatusChange() { | 
ParentAssistant/ParentAssistant/Classes/controllers/Information/InformationViewController.swift
| @@ -31,7 +31,7 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | @@ -31,7 +31,7 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | ||
| 31 | searchView.placeholder = "请输入搜索内容" | 31 | searchView.placeholder = "请输入搜索内容" | 
| 32 | searchView.showsCancelButton = false | 32 | searchView.showsCancelButton = false | 
| 33 | self.navigationItem.titleView = searchView | 33 | self.navigationItem.titleView = searchView | 
| 34 | - | 34 | + self.configTheme() | 
| 35 | 35 | ||
| 36 | } | 36 | } | 
| 37 | 37 | ||
| @@ -182,8 +182,11 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | @@ -182,8 +182,11 @@ class InformationViewController: UIViewController,UISearchBarDelegate { | ||
| 182 | //点击资讯进入详情 | 182 | //点击资讯进入详情 | 
| 183 | func pushToInfoView(index:Int){ | 183 | func pushToInfoView(index:Int){ | 
| 184 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 184 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 
| 185 | - vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(data.channelContent[index].id)"+"&areaname="+AccountManager.shared.address)//.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 186 | - | 185 | + if data.channelContent[index].url != "" { | 
| 186 | + vcs.webURL = data.channelContent[index].url | ||
| 187 | + }else{ | ||
| 188 | + vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(data.channelContent[index].id)"+"&areaname="+AccountManager.shared.address).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 189 | + } | ||
| 187 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 190 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 
| 188 | } | 191 | } | 
| 189 | 192 | ||
| @@ -262,7 +265,7 @@ extension InformationViewController:UICollectionViewDataSource,UICollectionViewD | @@ -262,7 +265,7 @@ extension InformationViewController:UICollectionViewDataSource,UICollectionViewD | ||
| 262 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "contentCell", for: indexPath) as! ChannelCollectionViewCell | 265 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "contentCell", for: indexPath) as! ChannelCollectionViewCell | 
| 263 | cell.title.text = item.title | 266 | cell.title.text = item.title | 
| 264 | cell.option.text = item.content | 267 | cell.option.text = item.content | 
| 265 | - cell.optionNum.text = "\(item.talkNum)" | 268 | + cell.optionNum.text = "\(item.lookNum)" | 
| 266 | cell.shareNum.text = "\(item.forwardingNum)" | 269 | cell.shareNum.text = "\(item.forwardingNum)" | 
| 267 | cell.picture.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+item.image).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "navigationBar_backgrounImage")) | 270 | cell.picture.sd_setImage(with: URL(string: (HTTPServer.HOSTImage+item.image).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "navigationBar_backgrounImage")) | 
| 268 | return cell | 271 | return cell | 
| @@ -283,10 +286,14 @@ extension InformationViewController:UICollectionViewDataSource,UICollectionViewD | @@ -283,10 +286,14 @@ extension InformationViewController:UICollectionViewDataSource,UICollectionViewD | ||
| 283 | break | 286 | break | 
| 284 | default: | 287 | default: | 
| 285 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 288 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 
| 286 | - vcs.webURL = data.channelContent[indexPath.row].url//"\(HTTPServer.HOSTWAP!)/ParentOrderCenter.aspx?userid=\(AccountManager.shared.id())" | 289 | + if data.channelContent[indexPath.row].url != "" { | 
| 290 | + vcs.webURL = data.channelContent[indexPath.row].url | ||
| 291 | + }else{ | ||
| 292 | + vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(data.channelContent[indexPath.row].id)"+"&areaname="+AccountManager.shared.address).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 293 | + } | ||
| 287 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 294 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 
| 288 | 295 | ||
| 289 | - pushToInfoView(index: indexPath.row) | 296 | +// pushToInfoView(index: indexPath.row) | 
| 290 | } | 297 | } | 
| 291 | } | 298 | } | 
| 292 | 299 | ||
| @@ -407,6 +414,7 @@ class ChannelContentDemol: NSObject { | @@ -407,6 +414,7 @@ class ChannelContentDemol: NSObject { | ||
| 407 | var content:String=""// 资讯内容 , | 414 | var content:String=""// 资讯内容 , | 
| 408 | var forwardingNum:Int=0// 资讯转发数 , | 415 | var forwardingNum:Int=0// 资讯转发数 , | 
| 409 | var talkNum:Int=0 // 评论数 , | 416 | var talkNum:Int=0 // 评论数 , | 
| 417 | + var lookNum:Int = 0 //浏览数 | ||
| 410 | var orderById:Int=0// 资讯排序 | 418 | var orderById:Int=0// 资讯排序 | 
| 411 | var isAds:Int=0// 是否为广告 1是广告 | 419 | var isAds:Int=0// 是否为广告 1是广告 | 
| 412 | init(j:JSON){ | 420 | init(j:JSON){ | 
| @@ -417,6 +425,7 @@ class ChannelContentDemol: NSObject { | @@ -417,6 +425,7 @@ class ChannelContentDemol: NSObject { | ||
| 417 | content = j["content"].stringValue | 425 | content = j["content"].stringValue | 
| 418 | forwardingNum = j["forwardingNum"].intValue | 426 | forwardingNum = j["forwardingNum"].intValue | 
| 419 | talkNum = j["talkNum"].intValue | 427 | talkNum = j["talkNum"].intValue | 
| 428 | + lookNum = j["lookNum"].intValue | ||
| 420 | orderById = j["orderById"].intValue | 429 | orderById = j["orderById"].intValue | 
| 421 | isAds = j["isAds"].intValue | 430 | isAds = j["isAds"].intValue | 
| 422 | } | 431 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/Information/view/ChannelCollectionViewCell.xib
| @@ -38,25 +38,25 @@ | @@ -38,25 +38,25 @@ | ||
| 38 | <color key="textColor" red="0.27503338459999999" green="0.50970917940000005" blue="0.90092128520000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | 38 | <color key="textColor" red="0.27503338459999999" green="0.50970917940000005" blue="0.90092128520000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | 
| 39 | <nil key="highlightedColor"/> | 39 | <nil key="highlightedColor"/> | 
| 40 | </label> | 40 | </label> | 
| 41 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评论:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lvp-kr-OuU"> | ||
| 42 | - <rect key="frame" x="8" y="72" width="24" height="12"/> | 41 | + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="浏览量:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lvp-kr-OuU"> | 
| 42 | + <rect key="frame" x="8" y="72" width="34" height="12"/> | ||
| 43 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 43 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 
| 44 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 44 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 
| 45 | <nil key="highlightedColor"/> | 45 | <nil key="highlightedColor"/> | 
| 46 | </label> | 46 | </label> | 
| 47 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3KK-be-Vix"> | 47 | <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="30" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3KK-be-Vix"> | 
| 48 | - <rect key="frame" x="40" y="72" width="13" height="12"/> | 48 | + <rect key="frame" x="50" y="72" width="13" height="12"/> | 
| 49 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 49 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 
| 50 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 50 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 
| 51 | <nil key="highlightedColor"/> | 51 | <nil key="highlightedColor"/> | 
| 52 | </label> | 52 | </label> | 
| 53 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="转发:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wMQ-5O-LNi"> | 53 | + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="转发:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wMQ-5O-LNi"> | 
| 54 | <rect key="frame" x="182" y="72" width="24" height="12"/> | 54 | <rect key="frame" x="182" y="72" width="24" height="12"/> | 
| 55 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 55 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 
| 56 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 56 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 
| 57 | <nil key="highlightedColor"/> | 57 | <nil key="highlightedColor"/> | 
| 58 | </label> | 58 | </label> | 
| 59 | - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="15" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dfn-o9-z6k"> | 59 | + <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="15" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dfn-o9-z6k"> | 
| 60 | <rect key="frame" x="214" y="72" width="11.5" height="12"/> | 60 | <rect key="frame" x="214" y="72" width="11.5" height="12"/> | 
| 61 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 61 | <fontDescription key="fontDescription" type="system" pointSize="10"/> | 
| 62 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 62 | <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> | 
ParentAssistant/ParentAssistant/Classes/controllers/evaluation/EvaluationViewController.swift
| @@ -229,7 +229,11 @@ class EvaluationViewController: UIViewController,CLLocationManagerDelegate,Selec | @@ -229,7 +229,11 @@ class EvaluationViewController: UIViewController,CLLocationManagerDelegate,Selec | ||
| 229 | return | 229 | return | 
| 230 | } | 230 | } | 
| 231 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 231 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 
| 232 | + if activityArr[sender.tag-3000].toolUrl != "" { | ||
| 232 | vcs.webURL = activityArr[sender.tag-3000].toolUrl | 233 | vcs.webURL = activityArr[sender.tag-3000].toolUrl | 
| 234 | + }else{ | ||
| 235 | + vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(activityArr[sender.tag-3000].toolId)"+"&areaname="+AccountManager.shared.address).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 236 | + } | ||
| 233 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 237 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 
| 234 | } | 238 | } | 
| 235 | 239 | ||
| @@ -267,7 +271,11 @@ extension EvaluationViewController:UICollectionViewDataSource,UICollectionViewDe | @@ -267,7 +271,11 @@ extension EvaluationViewController:UICollectionViewDataSource,UICollectionViewDe | ||
| 267 | 271 | ||
| 268 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 272 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { | 
| 269 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 273 | let vcs = Story.instantiateViewControllerWithIdentifier("JSViewController", storyName: "JS") as! JSViewController | 
| 270 | - vcs.webURL = toolArr[indexPath.row].toolUrl | 274 | + if toolArr[indexPath.row].toolUrl != "" { | 
| 275 | + vcs.webURL = toolArr[indexPath.row].toolUrl | ||
| 276 | + }else{ | ||
| 277 | + vcs.webURL = (HTTPServer.HOSTWAP+"/InformationDetail.aspx?id="+"\(toolArr[indexPath.row].toolId)"+"&areaname="+AccountManager.shared.address).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! | ||
| 278 | + } | ||
| 271 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 279 | self.navigationController?.present(vcs.wrapWithNavigationController(), animated: true, completion: nil) | 
| 272 | } | 280 | } | 
| 273 | } | 281 | } | 
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/LoginViewController.swift
| @@ -14,6 +14,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate { | @@ -14,6 +14,7 @@ class LoginViewController: UIViewController,UITextFieldDelegate { | ||
| 14 | @IBOutlet var phoneTextField: UITextField!//电话号码 | 14 | @IBOutlet var phoneTextField: UITextField!//电话号码 | 
| 15 | @IBOutlet var passwordTextField: UITextField!//密码 | 15 | @IBOutlet var passwordTextField: UITextField!//密码 | 
| 16 | @IBOutlet var passwordHiddenBtn: UIButton!//查看密码按钮 | 16 | @IBOutlet var passwordHiddenBtn: UIButton!//查看密码按钮 | 
| 17 | + @IBOutlet var loginBtn: UIButton! | ||
| 17 | override func viewDidLoad() { | 18 | override func viewDidLoad() { | 
| 18 | super.viewDidLoad() | 19 | super.viewDidLoad() | 
| 19 | layoutSubViews() | 20 | layoutSubViews() | 
| @@ -61,6 +62,15 @@ class LoginViewController: UIViewController,UITextFieldDelegate { | @@ -61,6 +62,15 @@ class LoginViewController: UIViewController,UITextFieldDelegate { | ||
| 61 | self.view.endEditing(true) | 62 | self.view.endEditing(true) | 
| 62 | return true | 63 | return true | 
| 63 | } | 64 | } | 
| 65 | + func textFieldDidEndEditing(_ textField: UITextField) { | ||
| 66 | + if textField==passwordTextField && phoneTextField.text! != "" && passwordTextField.text! != ""{ | ||
| 67 | + loginBtn.isUserInteractionEnabled = true | ||
| 68 | + loginBtn.backgroundColor = UIColorFromRGB(0xC5DAFF) | ||
| 69 | + }else{ | ||
| 70 | + loginBtn.isUserInteractionEnabled = false | ||
| 71 | + loginBtn.backgroundColor = UIColor.lightGray | ||
| 72 | + } | ||
| 73 | + } | ||
| 64 | func isMobilePhoneNumber(_ mobile:String)->Bool { | 74 | func isMobilePhoneNumber(_ mobile:String)->Bool { | 
| 65 | let str="^1[0-9]{10}" | 75 | let str="^1[0-9]{10}" | 
| 66 | return NSPredicate(format: "SELF MATCHES %@", str).evaluate(with: mobile) | 76 | return NSPredicate(format: "SELF MATCHES %@", str).evaluate(with: mobile) | 
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/My.storyboard
| @@ -654,9 +654,9 @@ | @@ -654,9 +654,9 @@ | ||
| 654 | <constraint firstAttribute="trailing" secondItem="1J2-p5-3X1" secondAttribute="trailing" constant="16" id="zP0-t8-7QU"/> | 654 | <constraint firstAttribute="trailing" secondItem="1J2-p5-3X1" secondAttribute="trailing" constant="16" id="zP0-t8-7QU"/> | 
| 655 | </constraints> | 655 | </constraints> | 
| 656 | </view> | 656 | </view> | 
| 657 | - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8rh-jr-h8p"> | 657 | + <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8rh-jr-h8p"> | 
| 658 | <rect key="frame" x="8" y="198" width="359" height="40"/> | 658 | <rect key="frame" x="8" y="198" width="359" height="40"/> | 
| 659 | - <color key="backgroundColor" red="0.7725490196" green="0.85490196080000003" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | 659 | + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> | 
| 660 | <constraints> | 660 | <constraints> | 
| 661 | <constraint firstAttribute="height" constant="40" id="EUp-oS-yvq"/> | 661 | <constraint firstAttribute="height" constant="40" id="EUp-oS-yvq"/> | 
| 662 | </constraints> | 662 | </constraints> | 
| @@ -746,6 +746,7 @@ | @@ -746,6 +746,7 @@ | ||
| 746 | <nil key="simulatedTopBarMetrics"/> | 746 | <nil key="simulatedTopBarMetrics"/> | 
| 747 | <connections> | 747 | <connections> | 
| 748 | <outlet property="iconImageView" destination="MuP-eU-u8t" id="PTg-zh-c8A"/> | 748 | <outlet property="iconImageView" destination="MuP-eU-u8t" id="PTg-zh-c8A"/> | 
| 749 | + <outlet property="loginBtn" destination="8rh-jr-h8p" id="sCl-jk-qmI"/> | ||
| 749 | <outlet property="passwordHiddenBtn" destination="1J2-p5-3X1" id="nRt-UB-PLr"/> | 750 | <outlet property="passwordHiddenBtn" destination="1J2-p5-3X1" id="nRt-UB-PLr"/> | 
| 750 | <outlet property="passwordTextField" destination="IOQ-sk-Ckx" id="WdM-7n-kAj"/> | 751 | <outlet property="passwordTextField" destination="IOQ-sk-Ckx" id="WdM-7n-kAj"/> | 
| 751 | <outlet property="phoneTextField" destination="zJR-4G-Ym9" id="9rT-Uj-tRY"/> | 752 | <outlet property="phoneTextField" destination="zJR-4G-Ym9" id="9rT-Uj-tRY"/> | 
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MyViewController.swift
| @@ -19,7 +19,7 @@ class MyViewController: UIViewController { | @@ -19,7 +19,7 @@ class MyViewController: UIViewController { | ||
| 19 | @IBOutlet var loginBtn: UIButton!//登录按钮 | 19 | @IBOutlet var loginBtn: UIButton!//登录按钮 | 
| 20 | @IBOutlet var currentInfoBtn: UIButton!//查看个人信息按钮 | 20 | @IBOutlet var currentInfoBtn: UIButton!//查看个人信息按钮 | 
| 21 | @IBOutlet var logoutBtn: UIButton! | 21 | @IBOutlet var logoutBtn: UIButton! | 
| 22 | - var titleDataSet:[String]=["消息","订购详情","家校通订购","我的孩子","空白","意见与反馈","清除缓存","关于"] | 22 | + var titleDataSet:[String]=["消息","订购详情","订购中心","我的孩子","空白","意见与反馈","清除缓存","关于"] | 
| 23 | var iconDataSet:[String] = ["my_icon_orderMessage","my_icon_orderDetail","my_icon_order","my_icon_children","","my_icon_service","my_icon_cachingClear","my_icon_about"] | 23 | var iconDataSet:[String] = ["my_icon_orderMessage","my_icon_orderDetail","my_icon_order","my_icon_children","","my_icon_service","my_icon_cachingClear","my_icon_about"] | 
| 24 | override func viewDidLoad() { | 24 | override func viewDidLoad() { | 
| 25 | super.viewDidLoad() | 25 | super.viewDidLoad() | 
| @@ -71,7 +71,7 @@ class MyViewController: UIViewController { | @@ -71,7 +71,7 @@ class MyViewController: UIViewController { | ||
| 71 | let info = AccountManager.shared | 71 | let info = AccountManager.shared | 
| 72 | personNameLabel.text = info.name() | 72 | personNameLabel.text = info.name() | 
| 73 | personNumberLabel.text = info.phone() | 73 | personNumberLabel.text = info.phone() | 
| 74 | - personIconImageView.sd_setImage(with: URL(string: AccountManager.shared.photo().addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "my_defphoto")) | 74 | + personIconImageView.sd_setImage(with: URL(string: AccountManager.shared.photo().addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!), placeholderImage: UIImage(named: "defphoto")) | 
| 75 | }else{ | 75 | }else{ | 
| 76 | logoutBtn.isHidden = true | 76 | logoutBtn.isHidden = true | 
| 77 | personNameLabel.isHidden = true | 77 | personNameLabel.isHidden = true | 
ParentAssistant/ParentAssistant/Classes/controllers/report/ReportViewController.swift
| @@ -20,14 +20,22 @@ class ReportViewController: UIViewController { | @@ -20,14 +20,22 @@ class ReportViewController: UIViewController { | ||
| 20 | //设置顶部按钮 | 20 | //设置顶部按钮 | 
| 21 | setupNavigationBar() | 21 | setupNavigationBar() | 
| 22 | //设置日期页面 | 22 | //设置日期页面 | 
| 23 | - setupDateView() | 23 | +// setupDateView() | 
| 24 | } | 24 | } | 
| 25 | // MARK: - 设置顶部按钮 | 25 | // MARK: - 设置顶部按钮 | 
| 26 | func setupNavigationBar(){ | 26 | func setupNavigationBar(){ | 
| 27 | self.navigationController?.navigationBar.barStyle = UIBarStyle.default// UIColorFromRGB(0xC5DAFF) | 27 | self.navigationController?.navigationBar.barStyle = UIBarStyle.default// UIColorFromRGB(0xC5DAFF) | 
| 28 | let backImage = UIImage(named: "navigationBar_backgrounImage") | 28 | let backImage = UIImage(named: "navigationBar_backgrounImage") | 
| 29 | self.navigationController?.navigationBar.setBackgroundImage(backImage, for: UIBarMetrics.default) | 29 | self.navigationController?.navigationBar.setBackgroundImage(backImage, for: UIBarMetrics.default) | 
| 30 | - setuptitleView() | 30 | + self.configTheme() | 
| 31 | + self.navigationItem.title = "报告" | ||
| 32 | +// setuptitleView() | ||
| 33 | + | ||
| 34 | + } | ||
| 35 | + func setuptitleView(){ | ||
| 36 | + // MARK: - 设置顶部的titleView | ||
| 37 | + titleView = Bundle.main.loadNibNamed("ReportHeaderView", owner: nil, options: nil)![0] as! ReportHeaderView | ||
| 38 | + titleView.delegate = self | ||
| 31 | titleView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: 44) | 39 | titleView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: 44) | 
| 32 | self.navigationItem.titleView = titleView | 40 | self.navigationItem.titleView = titleView | 
| 33 | titleView.layoutSubviews() | 41 | titleView.layoutSubviews() | 
| @@ -42,11 +50,6 @@ class ReportViewController: UIViewController { | @@ -42,11 +50,6 @@ class ReportViewController: UIViewController { | ||
| 42 | titleView.nameButton.setTitle("未登录", for: UIControlState.normal) | 50 | titleView.nameButton.setTitle("未登录", for: UIControlState.normal) | 
| 43 | } | 51 | } | 
| 44 | } | 52 | } | 
| 45 | - func setuptitleView(){ | ||
| 46 | - // MARK: - 设置顶部的titleView | ||
| 47 | - titleView = Bundle.main.loadNibNamed("ReportHeaderView", owner: nil, options: nil)![0] as! ReportHeaderView | ||
| 48 | - titleView.delegate = self | ||
| 49 | - } | ||
| 50 | // MARK: - 设置日期页面 | 53 | // MARK: - 设置日期页面 | 
| 51 | func setupDateView(){ | 54 | func setupDateView(){ | 
| 52 | titleView.dateButton.setTitle("\(getCurrentDate())", for: UIControlState.normal) | 55 | titleView.dateButton.setTitle("\(getCurrentDate())", for: UIControlState.normal) | 
| @@ -55,9 +58,6 @@ class ReportViewController: UIViewController { | @@ -55,9 +58,6 @@ class ReportViewController: UIViewController { | ||
| 55 | dateAry = getCurrentWeeks() | 58 | dateAry = getCurrentWeeks() | 
| 56 | //添加日历 | 59 | //添加日历 | 
| 57 | dateView = LXCalendarView(frame: CGRect(x: 0, y: 0, width: screenWidth, height: screenWidth/2)) | 60 | dateView = LXCalendarView(frame: CGRect(x: 0, y: 0, width: screenWidth, height: screenWidth/2)) | 
| 58 | -// dateView.currentMonthTitleColor = UIColorFromRGB(0xC5DAFF) | ||
| 59 | -// dateView.lastMonthTitleColor = UIColorFromRGB(0xC5DAFF) | ||
| 60 | -// dateView.nextMonthTitleColor = UIColorFromRGB(0xC5DAFF) | ||
| 61 | dateView.isHaveAnimation = true | 61 | dateView.isHaveAnimation = true | 
| 62 | dateView.isCanScroll = true | 62 | dateView.isCanScroll = true | 
| 63 | dateView.isShowLastAndNextBtn = false | 63 | dateView.isShowLastAndNextBtn = false | 
| @@ -138,7 +138,6 @@ extension ReportViewController: ReportHeaderViewDelegate{ | @@ -138,7 +138,6 @@ extension ReportViewController: ReportHeaderViewDelegate{ | ||
| 138 | func selectTypeButton() { | 138 | func selectTypeButton() { | 
| 139 | appDelegate.window!.makeToast("该功能暂不开放", duration: 1, position: CSToastPositionCenter) | 139 | appDelegate.window!.makeToast("该功能暂不开放", duration: 1, position: CSToastPositionCenter) | 
| 140 | return | 140 | return | 
| 141 | - appDelegate.window!.makeToast("筛选", duration: 3, position: CSToastPositionCenter) | ||
| 142 | } | 141 | } | 
| 143 | } | 142 | } | 
| 144 | // MARK: - 顶部展示日期 | 143 | // MARK: - 顶部展示日期 | 
| @@ -147,7 +146,7 @@ extension ReportViewController: UICollectionViewDelegate,UICollectionViewDataSou | @@ -147,7 +146,7 @@ extension ReportViewController: UICollectionViewDelegate,UICollectionViewDataSou | ||
| 147 | return CGSize(width: getScreenWidth()/7, height: getScreenWidth()/7) | 146 | return CGSize(width: getScreenWidth()/7, height: getScreenWidth()/7) | 
| 148 | } | 147 | } | 
| 149 | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | 148 | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { | 
| 150 | - return 7 | 149 | + return 0 | 
| 151 | } | 150 | } | 
| 152 | 151 | ||
| 153 | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | 152 | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | 
ParentAssistant/ParentAssistant/Classes/libs/LaunchIntroduction/LaunchIntroductionView.h
0 → 100755
| @@ -0,0 +1,63 @@ | @@ -0,0 +1,63 @@ | ||
| 1 | +// | ||
| 2 | +// LaunchIntroductionView.h | ||
| 3 | +// ZYGLaunchIntroductionDemo | ||
| 4 | +// | ||
| 5 | +// Created by ZhangYunguang on 16/4/7. | ||
| 6 | +// Copyright © 2016年 ZhangYunguang. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import <UIKit/UIKit.h> | ||
| 10 | + | ||
| 11 | +#define kScreen_height [[UIScreen mainScreen] bounds].size.height | ||
| 12 | +#define kScreen_width [[UIScreen mainScreen] bounds].size.width | ||
| 13 | + | ||
| 14 | +@interface LaunchIntroductionView : UIView | ||
| 15 | +/** | ||
| 16 | + * 选中page的指示器颜色,默认白色 | ||
| 17 | + */ | ||
| 18 | +@property (nonatomic, strong) UIColor *currentColor; | ||
| 19 | +/** | ||
| 20 | + * 其他状态下的指示器的颜色,默认 | ||
| 21 | + */ | ||
| 22 | +@property (nonatomic, strong) UIColor *nomalColor; | ||
| 23 | +/** | ||
| 24 | + * 不带按钮的引导页,滑动到最后一页,再向右滑直接隐藏引导页 | ||
| 25 | + * | ||
| 26 | + * @param imageNames 背景图片数组 | ||
| 27 | + * | ||
| 28 | + * @return LaunchIntroductionView对象 | ||
| 29 | + */ | ||
| 30 | ++(instancetype)sharedWithImages:(NSArray *) imageNames; | ||
| 31 | +/** | ||
| 32 | + * 带按钮的引导页 | ||
| 33 | + * | ||
| 34 | + * @param imageNames 背景图片数组 | ||
| 35 | + * @param buttonImageName 按钮的图片 | ||
| 36 | + * @param frame 按钮的frame | ||
| 37 | + * | ||
| 38 | + * @return LaunchIntroductionView对象 | ||
| 39 | + */ | ||
| 40 | ++(instancetype)sharedWithImages:(NSArray *) imageNames buttonImage:(NSString *) buttonImageName buttonFrame:(CGRect ) frame; | ||
| 41 | + | ||
| 42 | +/** | ||
| 43 | + 用storyboard创建的project调用此方法 | ||
| 44 | + | ||
| 45 | + @param storyboardName storyboardName | ||
| 46 | + @param imageNames 图片名字数组 | ||
| 47 | + @return LaunchIntroductionView对象 | ||
| 48 | + */ | ||
| 49 | ++ (instancetype)sharedWithStoryboardName:(NSString *)storyboardName images:(NSArray *)imageNames; | ||
| 50 | + | ||
| 51 | +/** | ||
| 52 | + 用storyboard创建的project调用此方法 | ||
| 53 | + | ||
| 54 | + @param storyboardName storyboardName | ||
| 55 | + @param imageNames 图片名字数组 | ||
| 56 | + @param buttonImageName 按钮图片名字 | ||
| 57 | + @param frame 按钮的frame | ||
| 58 | + @return LaunchIntroductionView对象 | ||
| 59 | + */ | ||
| 60 | ++(instancetype)sharedWithStoryboard:(NSString *)storyboardName images:(NSArray *) imageNames buttonImage:(NSString *) buttonImageName buttonFrame:(CGRect ) frame; | ||
| 61 | + | ||
| 62 | + | ||
| 63 | +@end | 
ParentAssistant/ParentAssistant/Classes/libs/LaunchIntroduction/LaunchIntroductionView.m
0 → 100755
| @@ -0,0 +1,199 @@ | @@ -0,0 +1,199 @@ | ||
| 1 | +// | ||
| 2 | +// LaunchIntroductionView.m | ||
| 3 | +// ZYGLaunchIntroductionDemo | ||
| 4 | +// | ||
| 5 | +// Created by ZhangYunguang on 16/4/7. | ||
| 6 | +// Copyright © 2016年 ZhangYunguang. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import "LaunchIntroductionView.h" | ||
| 10 | +#import "UIImageView+WebCache.h" | ||
| 11 | +static NSString *const kAppVersion = @"appVersion"; | ||
| 12 | + | ||
| 13 | +@interface LaunchIntroductionView ()<UIScrollViewDelegate> | ||
| 14 | +{ | ||
| 15 | + UIScrollView *launchScrollView; | ||
| 16 | + UIPageControl *page; | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +@end | ||
| 20 | + | ||
| 21 | +@implementation LaunchIntroductionView | ||
| 22 | +NSArray *images; | ||
| 23 | +BOOL isScrollOut;//在最后一页再次滑动是否隐藏引导页 | ||
| 24 | +CGRect enterBtnFrame; | ||
| 25 | +NSString *enterBtnImage; | ||
| 26 | +static LaunchIntroductionView *launch = nil; | ||
| 27 | +NSString *storyboard; | ||
| 28 | + | ||
| 29 | +#pragma mark - 创建对象-->>不带button | ||
| 30 | ++(instancetype)sharedWithImages:(NSArray *)imageNames{ | ||
| 31 | + images = imageNames; | ||
| 32 | + isScrollOut = YES; | ||
| 33 | + launch = [[LaunchIntroductionView alloc] initWithFrame:CGRectMake(0, 0, kScreen_width, kScreen_height)]; | ||
| 34 | + launch.backgroundColor = [UIColor whiteColor]; | ||
| 35 | + return launch; | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +#pragma mark - 创建对象-->>带button | ||
| 39 | ++(instancetype)sharedWithImages:(NSArray *)imageNames buttonImage:(NSString *)buttonImageName buttonFrame:(CGRect)frame{ | ||
| 40 | + images = imageNames; | ||
| 41 | + isScrollOut = NO; | ||
| 42 | + enterBtnFrame = frame; | ||
| 43 | + enterBtnImage = buttonImageName; | ||
| 44 | + launch = [[LaunchIntroductionView alloc] initWithFrame:CGRectMake(0, 0, kScreen_width, kScreen_height)]; | ||
| 45 | + launch.backgroundColor = [UIColor whiteColor]; | ||
| 46 | + return launch; | ||
| 47 | +} | ||
| 48 | +#pragma mark - 用storyboard创建的项目时调用,不带button | ||
| 49 | ++ (instancetype)sharedWithStoryboardName:(NSString *)storyboardName images:(NSArray *)imageNames { | ||
| 50 | + images = imageNames; | ||
| 51 | + storyboard = storyboardName; | ||
| 52 | + isScrollOut = YES; | ||
| 53 | + launch = [[LaunchIntroductionView alloc] initWithFrame:CGRectMake(0, 0, kScreen_width, kScreen_height)]; | ||
| 54 | + launch.backgroundColor = [UIColor whiteColor]; | ||
| 55 | + return launch; | ||
| 56 | +} | ||
| 57 | +#pragma mark - 用storyboard创建的项目时调用,带button | ||
| 58 | ++ (instancetype)sharedWithStoryboard:(NSString *)storyboardName images:(NSArray *)imageNames buttonImage:(NSString *)buttonImageName buttonFrame:(CGRect)frame{ | ||
| 59 | + images = imageNames; | ||
| 60 | + isScrollOut = NO; | ||
| 61 | + enterBtnFrame = frame; | ||
| 62 | + storyboard = storyboardName; | ||
| 63 | + enterBtnImage = buttonImageName; | ||
| 64 | + launch = [[LaunchIntroductionView alloc] initWithFrame:CGRectMake(0, 0, kScreen_width, kScreen_height)]; | ||
| 65 | + launch.backgroundColor = [UIColor whiteColor]; | ||
| 66 | + return launch; | ||
| 67 | +} | ||
| 68 | +#pragma mark - 初始化 | ||
| 69 | +- (instancetype)initWithFrame:(CGRect)frame | ||
| 70 | +{ | ||
| 71 | + self = [super initWithFrame:frame]; | ||
| 72 | + if (self) { | ||
| 73 | + [self addObserver:self forKeyPath:@"currentColor" options:NSKeyValueObservingOptionNew context:nil]; | ||
| 74 | + [self addObserver:self forKeyPath:@"nomalColor" options:NSKeyValueObservingOptionNew context:nil]; | ||
| 75 | + if ([self isFirstLauch]) { | ||
| 76 | + UIStoryboard *story; | ||
| 77 | + if (storyboard) { | ||
| 78 | + story = [UIStoryboard storyboardWithName:storyboard bundle:nil]; | ||
| 79 | + } | ||
| 80 | + UIWindow *window = [UIApplication sharedApplication].windows.lastObject; | ||
| 81 | + if (story) { | ||
| 82 | + UIViewController * vc = story.instantiateInitialViewController; | ||
| 83 | + window.rootViewController = vc; | ||
| 84 | + [vc.view addSubview:self]; | ||
| 85 | + }else { | ||
| 86 | + [window addSubview:self]; | ||
| 87 | + } | ||
| 88 | + [self addImages]; | ||
| 89 | + }else{ | ||
| 90 | + [self removeFromSuperview]; | ||
| 91 | + } | ||
| 92 | + } | ||
| 93 | + return self; | ||
| 94 | +} | ||
| 95 | +#pragma mark - 判断是不是首次登录或者版本更新 | ||
| 96 | +-(BOOL )isFirstLauch{ | ||
| 97 | + //获取当前版本号 | ||
| 98 | + NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; | ||
| 99 | + NSString *currentAppVersion = infoDic[@"CFBundleShortVersionString"]; | ||
| 100 | + //获取上次启动应用保存的appVersion | ||
| 101 | + NSString *version = [[NSUserDefaults standardUserDefaults] objectForKey:kAppVersion]; | ||
| 102 | + //版本升级或首次登录 | ||
| 103 | + if (version == nil || ![version isEqualToString:currentAppVersion]) { | ||
| 104 | + [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:kAppVersion]; | ||
| 105 | + [[NSUserDefaults standardUserDefaults] synchronize]; | ||
| 106 | + return YES; | ||
| 107 | + }else{ | ||
| 108 | + return NO; | ||
| 109 | + } | ||
| 110 | +} | ||
| 111 | +#pragma mark - 添加引导页图片 | ||
| 112 | +-(void)addImages{ | ||
| 113 | + [self createScrollView]; | ||
| 114 | +} | ||
| 115 | +#pragma mark - 创建滚动视图 | ||
| 116 | +-(void)createScrollView{ | ||
| 117 | + launchScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreen_width, kScreen_height)]; | ||
| 118 | + launchScrollView.showsHorizontalScrollIndicator = NO; | ||
| 119 | + launchScrollView.bounces = NO; | ||
| 120 | + launchScrollView.pagingEnabled = YES; | ||
| 121 | + launchScrollView.delegate = self; | ||
| 122 | + launchScrollView.contentSize = CGSizeMake(kScreen_width * images.count, kScreen_height); | ||
| 123 | + [self addSubview:launchScrollView]; | ||
| 124 | + for (int i = 0; i < images.count; i ++) { | ||
| 125 | + UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * kScreen_width, 0, kScreen_width, kScreen_height)]; | ||
| 126 | + imageView.contentMode = UIViewContentModeScaleAspectFit; | ||
| 127 | +// imageView.image = [UIImage imageNamed:images[i]]; | ||
| 128 | + [imageView sd_setImageWithURL:[NSURL URLWithString:images[i]]]; | ||
| 129 | + [launchScrollView addSubview:imageView]; | ||
| 130 | + if (i == images.count - 1) { | ||
| 131 | + //判断要不要添加button | ||
| 132 | + if (!isScrollOut) { | ||
| 133 | + UIButton *enterButton = [[UIButton alloc] initWithFrame:CGRectMake(enterBtnFrame.origin.x, enterBtnFrame.origin.y, enterBtnFrame.size.width, enterBtnFrame.size.height)]; | ||
| 134 | + [enterButton setImage:[UIImage imageNamed:enterBtnImage] forState:UIControlStateNormal]; | ||
| 135 | + [enterButton addTarget:self action:@selector(enterBtnClick) forControlEvents:UIControlEventTouchUpInside]; | ||
| 136 | + [imageView addSubview:enterButton]; | ||
| 137 | + imageView.userInteractionEnabled = YES; | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + page = [[UIPageControl alloc] initWithFrame:CGRectMake(0, kScreen_height - 50, kScreen_width, 30)]; | ||
| 142 | + page.numberOfPages = images.count; | ||
| 143 | + page.backgroundColor = [UIColor clearColor]; | ||
| 144 | + page.currentPage = 0; | ||
| 145 | + page.defersCurrentPageDisplay = YES; | ||
| 146 | + [self addSubview:page]; | ||
| 147 | +} | ||
| 148 | +#pragma mark - 进入按钮 | ||
| 149 | +-(void)enterBtnClick{ | ||
| 150 | + [self hideGuidView]; | ||
| 151 | +} | ||
| 152 | +#pragma mark - 隐藏引导页 | ||
| 153 | +-(void)hideGuidView{ | ||
| 154 | + [UIView animateWithDuration:0.5 animations:^{ | ||
| 155 | + self.alpha = 0; | ||
| 156 | + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ | ||
| 157 | + [self removeFromSuperview]; | ||
| 158 | + }); | ||
| 159 | + | ||
| 160 | + }]; | ||
| 161 | +} | ||
| 162 | +#pragma mark - scrollView Delegate | ||
| 163 | +-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ | ||
| 164 | + int cuttentIndex = (int)(scrollView.contentOffset.x + kScreen_width/2)/kScreen_width; | ||
| 165 | + if (cuttentIndex == images.count - 1) { | ||
| 166 | + if ([self isScrolltoLeft:scrollView]) { | ||
| 167 | + if (!isScrollOut) { | ||
| 168 | + return ; | ||
| 169 | + } | ||
| 170 | + [self hideGuidView]; | ||
| 171 | + } | ||
| 172 | + } | ||
| 173 | +} | ||
| 174 | +-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ | ||
| 175 | + if (scrollView == launchScrollView) { | ||
| 176 | + int cuttentIndex = (int)(scrollView.contentOffset.x + kScreen_width/2)/kScreen_width; | ||
| 177 | + page.currentPage = cuttentIndex; | ||
| 178 | + } | ||
| 179 | +} | ||
| 180 | +#pragma mark - 判断滚动方向 | ||
| 181 | +-(BOOL )isScrolltoLeft:(UIScrollView *) scrollView{ | ||
| 182 | + //返回YES为向左反动,NO为右滚动 | ||
| 183 | + if ([scrollView.panGestureRecognizer translationInView:scrollView.superview].x < 0) { | ||
| 184 | + return YES; | ||
| 185 | + }else{ | ||
| 186 | + return NO; | ||
| 187 | + } | ||
| 188 | +} | ||
| 189 | +#pragma mark - KVO监测值的变化 | ||
| 190 | +-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{ | ||
| 191 | + if ([keyPath isEqualToString:@"currentColor"]) { | ||
| 192 | + page.currentPageIndicatorTintColor = self.currentColor; | ||
| 193 | + } | ||
| 194 | + if ([keyPath isEqualToString:@"nomalColor"]) { | ||
| 195 | + page.pageIndicatorTintColor = self.nomalColor; | ||
| 196 | + } | ||
| 197 | +} | ||
| 198 | + | ||
| 199 | +@end | 
ParentAssistant/ParentAssistant/Classes/libs/ZLaunchAd/ZLaunchAd.swift
| @@ -20,7 +20,7 @@ public class ZLaunchAd: NSObject { | @@ -20,7 +20,7 @@ public class ZLaunchAd: NSObject { | ||
| 20 | /// - adNetRequest: 广告网络请求。如果需要每次进入前台是显示不同的广告图片,网络请求写在此闭包中 | 20 | /// - adNetRequest: 广告网络请求。如果需要每次进入前台是显示不同的广告图片,网络请求写在此闭包中 | 
| 21 | /// - Returns: ZLaunchAdView | 21 | /// - Returns: ZLaunchAdView | 
| 22 | @discardableResult | 22 | @discardableResult | 
| 23 | - @objc public class func create(waitTime: Int = 3, showEnterForeground: Bool = false, adNetRequest: ((ZLaunchAdView)->())? = nil) -> ZLaunchAdView { | 23 | + @objc public class func create(waitTime: Int = 5, showEnterForeground: Bool = false, adNetRequest: ((ZLaunchAdView)->())? = nil) -> ZLaunchAdView { | 
| 24 | let launchAdView: ZLaunchAdView | 24 | let launchAdView: ZLaunchAdView | 
| 25 | if showEnterForeground { | 25 | if showEnterForeground { | 
| 26 | launchAdView = ZLaunchAdView.default | 26 | launchAdView = ZLaunchAdView.default | 
ParentAssistant/ParentAssistant/Classes/libs/ZLaunchAd/ZLaunchAdConfig.swift
| @@ -82,7 +82,7 @@ public typealias ZLaunchClosure = ()->() | @@ -82,7 +82,7 @@ public typealias ZLaunchClosure = ()->() | ||
| 82 | /// 数字大小 | 82 | /// 数字大小 | 
| 83 | @objc public var timeFont = UIFont.systemFont(ofSize: 15) | 83 | @objc public var timeFont = UIFont.systemFont(ofSize: 15) | 
| 84 | /// 数字颜色 | 84 | /// 数字颜色 | 
| 85 | - @objc public var timeColor = UIColor.red | 85 | + @objc public var timeColor = UIColor.white | 
| 86 | /// 跳过按钮类型 | 86 | /// 跳过按钮类型 | 
| 87 | @objc public var skipBtnType: ZLaunchSkipButtonType = .textLeftTimerRight | 87 | @objc public var skipBtnType: ZLaunchSkipButtonType = .textLeftTimerRight | 
| 88 | /// 圆形进度颜色 | 88 | /// 圆形进度颜色 | 
ParentAssistant/ParentAssistant/Classes/libs/ZLaunchAd/ZLaunchAdView.swift
| @@ -91,6 +91,7 @@ extension ZLaunchAdView { | @@ -91,6 +91,7 @@ extension ZLaunchAdView { | ||
| 91 | guard let imageResource = imageResource, | 91 | guard let imageResource = imageResource, | 
| 92 | let imageNameOrImageURL = imageResource.imageNameOrImageURL else { return } | 92 | let imageNameOrImageURL = imageResource.imageNameOrImageURL else { return } | 
| 93 | launchAdImgView.frame = imageResource.imageFrame | 93 | launchAdImgView.frame = imageResource.imageFrame | 
| 94 | + launchAdImgView.contentMode = UIViewContentMode.scaleAspectFit | ||
| 94 | addSubview(launchAdImgView) | 95 | addSubview(launchAdImgView) | 
| 95 | if imageNameOrImageURL.contains("http://") || imageNameOrImageURL.contains("https://") { | 96 | if imageNameOrImageURL.contains("http://") || imageNameOrImageURL.contains("https://") { | 
| 96 | launchAdImgView.setImage(with: imageNameOrImageURL, options: imageResource.imageOptions) { | 97 | launchAdImgView.setImage(with: imageNameOrImageURL, options: imageResource.imageOptions) { | 
ParentAssistant/ParentAssistant/Classes/util/network.swift
| @@ -85,14 +85,10 @@ final class HTTPServer{ | @@ -85,14 +85,10 @@ final class HTTPServer{ | ||
| 85 | static let shared = HTTPServer() | 85 | static let shared = HTTPServer() | 
| 86 | init() {} | 86 | init() {} | 
| 87 | 87 | ||
| 88 | - static let WEB_HELP="http://60.190.202.57:8101/FeedBack.aspx?userid=" | ||
| 89 | - static let WEB_ABOUT="http://60.190.202.57:8101/About.html" | ||
| 90 | - | ||
| 91 | - | ||
| 92 | let appsecret="sincere:3a530f39f99411b454e667d69693c127" | 88 | let appsecret="sincere:3a530f39f99411b454e667d69693c127" | 
| 93 | static var ReleaseHOST:String!="http://campus.myjxt.com"//正式网址 | 89 | static var ReleaseHOST:String!="http://campus.myjxt.com"//正式网址 | 
| 94 | - static var ReleaseHOSTWap:String!="http://hxy.myjxt.com" | ||
| 95 | - static var ReleaseHOSTImage:String!="http://60.190.202.57:8196" | 90 | + static var ReleaseHOSTWap:String!="http://parent.myjxt.com" | 
| 91 | + static var ReleaseHOSTImage:String!="http://manage.myjxt.com" | ||
| 96 | static var DebugHOST:String!="http://60.190.202.57:1000"//测试网址 | 92 | static var DebugHOST:String!="http://60.190.202.57:1000"//测试网址 | 
| 97 | static var DebugHOSTWap:String!="http://60.190.202.57:8101" | 93 | static var DebugHOSTWap:String!="http://60.190.202.57:8101" | 
| 98 | static var DebugHOSTImage:String!="http://60.190.202.57:8196" | 94 | static var DebugHOSTImage:String!="http://60.190.202.57:8196" | 
ParentAssistant/ParentAssistant/NIM/YXMessageManager.swift
| @@ -144,6 +144,13 @@ class YXMessageManager: NSObject,NIMLoginManagerDelegate,NIMSystemNotificationMa | @@ -144,6 +144,13 @@ class YXMessageManager: NSObject,NIMLoginManagerDelegate,NIMSystemNotificationMa | ||
| 144 | attachItem.ownId = AccountManager.shared.userid | 144 | attachItem.ownId = AccountManager.shared.userid | 
| 145 | attachItem.save() | 145 | attachItem.save() | 
| 146 | NotificationCenter.default.post(name: Notification.Name(rawValue: MessageNotification.receiveMessage), object: nil, userInfo: nil) | 146 | NotificationCenter.default.post(name: Notification.Name(rawValue: MessageNotification.receiveMessage), object: nil, userInfo: nil) | 
| 147 | + }else if info["type"].stringValue=="ordermess"{//订购通知 | ||
| 148 | + let attachItem = NSManagedObject.creatWith(identifier: "Message") as! Message | ||
| 149 | + attachItem.date=Date(timeIntervalSince1970: notification.timestamp) | ||
| 150 | + attachItem.content = info["content"].stringValue | ||
| 151 | + attachItem.ownId = AccountManager.shared.userid | ||
| 152 | + attachItem.save() | ||
| 153 | + NotificationCenter.default.post(name: Notification.Name(rawValue: MessageNotification.receiveMessage), object: nil, userInfo: nil) | ||
| 147 | } | 154 | } | 
| 148 | } | 155 | } | 
| 149 | } | 156 | } | 
ParentAssistant/ParentAssistant/ParentAssistant-Bridging-Header.h
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_camera.imageset/Contents.json
0 → 100644
| @@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "camera.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file | 
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_camera.imageset/camera.png
0 → 100644
1.08 KB
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/icon_getin.imageset/Contents.json
0 → 100644
| @@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "icon.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file | 
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/icon_getin.imageset/icon.png
0 → 100644
2.94 KB
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/report/report_none_icon.imageset/Contents.json
0 → 100644
| @@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "baogao_back.jpg", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file | 
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/report/report_none_icon.imageset/baogao_back.jpg
0 → 100644
8.63 KB
ParentAssistant/ParentAssistant/Supporting Files/Base.lproj/Main.storyboard
| @@ -456,7 +456,7 @@ | @@ -456,7 +456,7 @@ | ||
| 456 | <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> | 456 | <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> | 
| 457 | </view> | 457 | </view> | 
| 458 | <navigationItem key="navigationItem" title="测评" id="1Lk-x4-9OW"> | 458 | <navigationItem key="navigationItem" title="测评" id="1Lk-x4-9OW"> | 
| 459 | - <barButtonItem key="rightBarButtonItem" systemItem="camera" id="e8u-Kr-J32"> | 459 | + <barButtonItem key="rightBarButtonItem" image="evaluation_icon_camera" id="e8u-Kr-J32"> | 
| 460 | <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | 460 | <color key="tintColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | 
| 461 | <connections> | 461 | <connections> | 
| 462 | <action selector="selectCamareAction:" destination="BYZ-38-t0r" id="ePR-Ms-0ze"/> | 462 | <action selector="selectCamareAction:" destination="BYZ-38-t0r" id="ePR-Ms-0ze"/> | 
| @@ -491,7 +491,7 @@ | @@ -491,7 +491,7 @@ | ||
| 491 | <!--Tab Bar Controller--> | 491 | <!--Tab Bar Controller--> | 
| 492 | <scene sceneID="6yA-8W-l0b"> | 492 | <scene sceneID="6yA-8W-l0b"> | 
| 493 | <objects> | 493 | <objects> | 
| 494 | - <tabBarController automaticallyAdjustsScrollViewInsets="NO" id="PbF-i7-G0s" customClass="TabBarController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> | 494 | + <tabBarController storyboardIdentifier="TabBarController" automaticallyAdjustsScrollViewInsets="NO" id="PbF-i7-G0s" customClass="TabBarController" customModule="ParentAssistant" customModuleProvider="target" sceneMemberID="viewController"> | 
| 495 | <toolbarItems/> | 495 | <toolbarItems/> | 
| 496 | <navigationItem key="navigationItem" id="Xea-Ll-sGg"/> | 496 | <navigationItem key="navigationItem" id="Xea-Ll-sGg"/> | 
| 497 | <tabBar key="tabBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="6Bt-XK-CLv"> | 497 | <tabBar key="tabBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="6Bt-XK-CLv"> | 
| @@ -848,19 +848,38 @@ | @@ -848,19 +848,38 @@ | ||
| 848 | <constraint firstAttribute="bottom" secondItem="wGp-kr-l5S" secondAttribute="bottom" id="p0u-d2-Uig"/> | 848 | <constraint firstAttribute="bottom" secondItem="wGp-kr-l5S" secondAttribute="bottom" id="p0u-d2-Uig"/> | 
| 849 | </constraints> | 849 | </constraints> | 
| 850 | </view> | 850 | </view> | 
| 851 | + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A43-XP-A41"> | ||
| 852 | + <rect key="frame" x="0.0" y="64" width="375" height="554"/> | ||
| 853 | + <subviews> | ||
| 854 | + <imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="report_none_icon" translatesAutoresizingMaskIntoConstraints="NO" id="UQe-Gr-lR7"> | ||
| 855 | + <rect key="frame" x="0.0" y="0.0" width="375" height="554"/> | ||
| 856 | + </imageView> | ||
| 857 | + </subviews> | ||
| 858 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> | ||
| 859 | + <constraints> | ||
| 860 | + <constraint firstItem="UQe-Gr-lR7" firstAttribute="leading" secondItem="A43-XP-A41" secondAttribute="leading" id="IUB-AR-Uxa"/> | ||
| 861 | + <constraint firstAttribute="trailing" secondItem="UQe-Gr-lR7" secondAttribute="trailing" id="JhX-yG-EaC"/> | ||
| 862 | + <constraint firstItem="UQe-Gr-lR7" firstAttribute="top" secondItem="A43-XP-A41" secondAttribute="top" id="Uj3-Gn-cME"/> | ||
| 863 | + <constraint firstAttribute="bottom" secondItem="UQe-Gr-lR7" secondAttribute="bottom" id="aTh-Mz-V0s"/> | ||
| 864 | + </constraints> | ||
| 865 | + </view> | ||
| 851 | </subviews> | 866 | </subviews> | 
| 852 | <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | 867 | <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> | 
| 853 | <constraints> | 868 | <constraints> | 
| 854 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="5Q0-Yi-ShV"/> | 869 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="5Q0-Yi-ShV"/> | 
| 855 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="top" secondItem="9O4-jf-dgu" secondAttribute="top" id="61Z-vW-5DV"/> | 870 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="top" secondItem="9O4-jf-dgu" secondAttribute="top" id="61Z-vW-5DV"/> | 
| 871 | + <constraint firstItem="A43-XP-A41" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="Iba-zi-BPh"/> | ||
| 856 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="bottom" secondItem="9O4-jf-dgu" secondAttribute="bottom" id="JYY-zh-cHV"/> | 872 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="bottom" secondItem="9O4-jf-dgu" secondAttribute="bottom" id="JYY-zh-cHV"/> | 
| 857 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="JtI-9e-igF"/> | 873 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="JtI-9e-igF"/> | 
| 858 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="MzB-kU-gbs"/> | 874 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="MzB-kU-gbs"/> | 
| 859 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="NPL-F1-7Sg"/> | 875 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="NPL-F1-7Sg"/> | 
| 876 | + <constraint firstItem="A43-XP-A41" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="NsR-AG-Nxb"/> | ||
| 860 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="QZG-IF-A8F"/> | 877 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="leading" secondItem="9O4-jf-dgu" secondAttribute="leading" id="QZG-IF-A8F"/> | 
| 861 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="top" secondItem="k9z-2G-Fhx" secondAttribute="bottom" constant="5" id="SBe-2c-H4J"/> | 878 | <constraint firstItem="EEs-Ae-t7U" firstAttribute="top" secondItem="k9z-2G-Fhx" secondAttribute="bottom" constant="5" id="SBe-2c-H4J"/> | 
| 879 | + <constraint firstItem="A43-XP-A41" firstAttribute="bottom" secondItem="9O4-jf-dgu" secondAttribute="bottom" id="ShD-0u-kTc"/> | ||
| 862 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="top" secondItem="9O4-jf-dgu" secondAttribute="top" id="UIi-qU-PBc"/> | 880 | <constraint firstItem="k9z-2G-Fhx" firstAttribute="top" secondItem="9O4-jf-dgu" secondAttribute="top" id="UIi-qU-PBc"/> | 
| 863 | <constraint firstAttribute="bottom" secondItem="hwJ-Xg-tKm" secondAttribute="bottom" id="YjS-6f-Gk9"/> | 881 | <constraint firstAttribute="bottom" secondItem="hwJ-Xg-tKm" secondAttribute="bottom" id="YjS-6f-Gk9"/> | 
| 882 | + <constraint firstItem="A43-XP-A41" firstAttribute="top" secondItem="9O4-jf-dgu" secondAttribute="top" id="hu6-HC-sc0"/> | ||
| 864 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="sNr-ZT-Lsy"/> | 883 | <constraint firstItem="hwJ-Xg-tKm" firstAttribute="trailing" secondItem="9O4-jf-dgu" secondAttribute="trailing" id="sNr-ZT-Lsy"/> | 
| 865 | </constraints> | 884 | </constraints> | 
| 866 | <viewLayoutGuide key="safeArea" id="9O4-jf-dgu"/> | 885 | <viewLayoutGuide key="safeArea" id="9O4-jf-dgu"/> | 
| @@ -2129,6 +2148,7 @@ | @@ -2129,6 +2148,7 @@ | ||
| 2129 | <image name="Information_bar_icon_select" width="22" height="20"/> | 2148 | <image name="Information_bar_icon_select" width="22" height="20"/> | 
| 2130 | <image name="evaluation_bar_icon" width="22" height="21"/> | 2149 | <image name="evaluation_bar_icon" width="22" height="21"/> | 
| 2131 | <image name="evaluation_bar_icon_select" width="22" height="21"/> | 2150 | <image name="evaluation_bar_icon_select" width="22" height="21"/> | 
| 2151 | + <image name="evaluation_icon_camera" width="32" height="32"/> | ||
| 2132 | <image name="evaluation_icon_learningManagement" width="45" height="47"/> | 2152 | <image name="evaluation_icon_learningManagement" width="45" height="47"/> | 
| 2133 | <image name="evaluation_icon_play" width="59" height="59"/> | 2153 | <image name="evaluation_icon_play" width="59" height="59"/> | 
| 2134 | <image name="evaluation_icon_training" width="47" height="47"/> | 2154 | <image name="evaluation_icon_training" width="47" height="47"/> | 
| @@ -2142,6 +2162,13 @@ | @@ -2142,6 +2162,13 @@ | ||
| 2142 | <image name="navigationBar_backgrounImage" width="375" height="139"/> | 2162 | <image name="navigationBar_backgrounImage" width="375" height="139"/> | 
| 2143 | <image name="report_bar_icon" width="22" height="20"/> | 2163 | <image name="report_bar_icon" width="22" height="20"/> | 
| 2144 | <image name="report_bar_icon_select" width="22" height="20"/> | 2164 | <image name="report_bar_icon_select" width="22" height="20"/> | 
| 2165 | +<<<<<<< HEAD | ||
| 2145 | <image name="report_teacher" width="130" height="155"/> | 2166 | <image name="report_teacher" width="130" height="155"/> | 
| 2167 | +======= | ||
| 2168 | + <image name="report_none_icon" width="250" height="250"/> | ||
| 2169 | + <image name="test001" width="540" height="278"/> | ||
| 2170 | + <image name="test002" width="216" height="282"/> | ||
| 2171 | + <image name="test003" width="732" height="388"/> | ||
| 2172 | +>>>>>>> 4fb40b7e2b0f90beefc905d0446c771fddf19fc0 | ||
| 2146 | </resources> | 2173 | </resources> | 
| 2147 | </document> | 2174 | </document> | 
ParentAssistant/Pods/Pods.xcodeproj/xcuserdata/caoyang.xcuserdatad/xcschemes/xcschememanagement.plist
| @@ -7,47 +7,47 @@ | @@ -7,47 +7,47 @@ | ||
| 7 | <key>Alamofire.xcscheme</key> | 7 | <key>Alamofire.xcscheme</key> | 
| 8 | <dict> | 8 | <dict> | 
| 9 | <key>orderHint</key> | 9 | <key>orderHint</key> | 
| 10 | - <integer>1</integer> | 10 | + <integer>0</integer> | 
| 11 | </dict> | 11 | </dict> | 
| 12 | <key>DZNEmptyDataSet.xcscheme</key> | 12 | <key>DZNEmptyDataSet.xcscheme</key> | 
| 13 | <dict> | 13 | <dict> | 
| 14 | <key>orderHint</key> | 14 | <key>orderHint</key> | 
| 15 | - <integer>2</integer> | 15 | + <integer>1</integer> | 
| 16 | </dict> | 16 | </dict> | 
| 17 | <key>Pods-ParentAssistant.xcscheme</key> | 17 | <key>Pods-ParentAssistant.xcscheme</key> | 
| 18 | <dict> | 18 | <dict> | 
| 19 | <key>orderHint</key> | 19 | <key>orderHint</key> | 
| 20 | - <integer>3</integer> | 20 | + <integer>2</integer> | 
| 21 | </dict> | 21 | </dict> | 
| 22 | <key>Reachability.xcscheme</key> | 22 | <key>Reachability.xcscheme</key> | 
| 23 | <dict> | 23 | <dict> | 
| 24 | <key>orderHint</key> | 24 | <key>orderHint</key> | 
| 25 | - <integer>4</integer> | 25 | + <integer>3</integer> | 
| 26 | </dict> | 26 | </dict> | 
| 27 | <key>SDWebImage.xcscheme</key> | 27 | <key>SDWebImage.xcscheme</key> | 
| 28 | <dict> | 28 | <dict> | 
| 29 | <key>orderHint</key> | 29 | <key>orderHint</key> | 
| 30 | - <integer>5</integer> | 30 | + <integer>4</integer> | 
| 31 | </dict> | 31 | </dict> | 
| 32 | <key>SVProgressHUD.xcscheme</key> | 32 | <key>SVProgressHUD.xcscheme</key> | 
| 33 | <dict> | 33 | <dict> | 
| 34 | <key>orderHint</key> | 34 | <key>orderHint</key> | 
| 35 | - <integer>6</integer> | 35 | + <integer>5</integer> | 
| 36 | </dict> | 36 | </dict> | 
| 37 | <key>SwiftHash.xcscheme</key> | 37 | <key>SwiftHash.xcscheme</key> | 
| 38 | <dict> | 38 | <dict> | 
| 39 | <key>orderHint</key> | 39 | <key>orderHint</key> | 
| 40 | - <integer>7</integer> | 40 | + <integer>6</integer> | 
| 41 | </dict> | 41 | </dict> | 
| 42 | <key>Toast.xcscheme</key> | 42 | <key>Toast.xcscheme</key> | 
| 43 | <dict> | 43 | <dict> | 
| 44 | <key>orderHint</key> | 44 | <key>orderHint</key> | 
| 45 | - <integer>8</integer> | 45 | + <integer>7</integer> | 
| 46 | </dict> | 46 | </dict> | 
| 47 | <key>XRCarouselView.xcscheme</key> | 47 | <key>XRCarouselView.xcscheme</key> | 
| 48 | <dict> | 48 | <dict> | 
| 49 | <key>orderHint</key> | 49 | <key>orderHint</key> | 
| 50 | - <integer>9</integer> | 50 | + <integer>8</integer> | 
| 51 | </dict> | 51 | </dict> | 
| 52 | </dict> | 52 | </dict> | 
| 53 | </dict> | 53 | </dict> |