Commit 8b892b8ed654d06afc376d1a9cbbd2f851ec0ca1

Authored by Cao yang
2 parents 8a4950fa 4fb40b7e
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
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <key>ParentAssistant.xcscheme</key> 7 <key>ParentAssistant.xcscheme</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>0</integer> 10 + <integer>9</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
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 = ()-&gt;() @@ -82,7 +82,7 @@ public typealias ZLaunchClosure = ()-&gt;()
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
@@ -22,4 +22,5 @@ @@ -22,4 +22,5 @@
22 #import <NIMSDK/NIMSDK.h> 22 #import <NIMSDK/NIMSDK.h>
23 23
24 #import "LZCityPickerController.h" 24 #import "LZCityPickerController.h"
  25 +#import "LaunchIntroductionView.h"
25 26
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>