Commit e2bed55c56f85f04791c0b888055b8445bca9ea8

Authored by Cao yang
1 parent 866dc83e
Exists in parentassistant

commit

Showing 23 changed files with 175 additions and 22 deletions   Show diff stats
ParentAssistant/ParentAssistant.xcworkspace/xcuserdata/caoyang.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ParentAssistant/ParentAssistant/AppDelegate.swift
@@ -73,6 +73,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { @@ -73,6 +73,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
73 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in 73 httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
74 if json["status"] == 1 && error == nil{ 74 if json["status"] == 1 && error == nil{
75 if json.contentData().arrayValue.count>0 { 75 if json.contentData().arrayValue.count>0 {
  76 + NSLog("************\(HTTPServer.HOSTImage+json.contentData().arrayValue[0]["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)")
76 let imageResource = ZLaunchAdImageResourceConfigure() 77 let imageResource = ZLaunchAdImageResourceConfigure()
77 imageResource.imageNameOrImageURL = HTTPServer.HOSTImage+json.contentData().arrayValue[0]["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! 78 imageResource.imageNameOrImageURL = HTTPServer.HOSTImage+json.contentData().arrayValue[0]["fileSrc"].stringValue.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
78 imageResource.imageDuration = 5 79 imageResource.imageDuration = 5
@@ -80,13 +81,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate { @@ -80,13 +81,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
80 adView.setImageResource(imageResource, action: { 81 adView.setImageResource(imageResource, action: {
81 /// 广告点击 82 /// 广告点击
82 }) 83 })
  84 + }else{
  85 + NSLog("************\(json.contentData())");
83 } 86 }
84 } 87 }
85 }, failHandler: { (error) in 88 }, failHandler: { (error) in
86 }) 89 })
87 }) 90 })
88 }else{ 91 }else{
89 -// Thread.sleep(forTimeInterval: 5.0)//延长启动页面10秒  
90 let view = UIView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight())) 92 let view = UIView(frame: CGRect(x: 0, y: 0, width: getScreenWidth(), height: getScreenHeight()))
91 view.backgroundColor = UIColor.white 93 view.backgroundColor = UIColor.white
92 vc.view.addSubview(view) 94 vc.view.addSubview(view)
ParentAssistant/ParentAssistant/Classes/controllers/Information/InformationViewController.swift
@@ -31,8 +31,7 @@ class InformationViewController: UIViewController,UISearchBarDelegate { @@ -31,8 +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 - self.configTheme()  
35 - 34 + self.navigationController?.navigationBar.tintColor=UIColor.white
36 } 35 }
37 36
38 func getData(){ 37 func getData(){
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/LoginViewController.swift
@@ -18,14 +18,19 @@ class LoginViewController: UIViewController,UITextFieldDelegate { @@ -18,14 +18,19 @@ class LoginViewController: UIViewController,UITextFieldDelegate {
18 override func viewDidLoad() { 18 override func viewDidLoad() {
19 super.viewDidLoad() 19 super.viewDidLoad()
20 layoutSubViews() 20 layoutSubViews()
  21 +
  22 + }
  23 + override func loadView() {
  24 + super.loadView()
  25 + //防止tabbar隐藏导致页面跳一下
  26 + self.tabBarController?.tabBar.isHidden = true
  27 + self.navigationController?.setNavigationBarHidden(false, animated: true)
21 } 28 }
22 override func viewWillAppear(_ animated: Bool) { 29 override func viewWillAppear(_ animated: Bool) {
23 super.viewWillAppear(animated) 30 super.viewWillAppear(animated)
24 - self.navigationController?.navigationBar.isHidden = false  
25 } 31 }
26 // MARK: - 设置控件属性 32 // MARK: - 设置控件属性
27 func layoutSubViews(){ 33 func layoutSubViews(){
28 - self.navigationController?.navigationBar.isHidden = false  
29 self.navigationItem.title = "登录" 34 self.navigationItem.title = "登录"
30 topView.constant = (getScreenHeight()-325)/3 35 topView.constant = (getScreenHeight()-325)/3
31 passwordHiddenBtn.setImage(UIImage(named: "my_password_look"), for: UIControlState.selected) 36 passwordHiddenBtn.setImage(UIImage(named: "my_password_look"), for: UIControlState.selected)
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MessageViewController.swift
@@ -17,6 +17,12 @@ class MessageViewController: UIViewController { @@ -17,6 +17,12 @@ class MessageViewController: UIViewController {
17 setupWithModel() 17 setupWithModel()
18 NotificationCenter.default.addObserver(self, selector: #selector(MessageViewController.receivedNewNotificationAction), name: NSNotification.Name(rawValue: MessageNotification.receiveMessage), object: nil) 18 NotificationCenter.default.addObserver(self, selector: #selector(MessageViewController.receivedNewNotificationAction), name: NSNotification.Name(rawValue: MessageNotification.receiveMessage), object: nil)
19 } 19 }
  20 + override func loadView() {
  21 + super.loadView()
  22 + //防止tabbar隐藏导致页面跳一下
  23 + self.tabBarController?.tabBar.isHidden = true
  24 + self.navigationController?.setNavigationBarHidden(false, animated: true)
  25 + }
20 //本地数据查找并赋值显示 26 //本地数据查找并赋值显示
21 func setupWithModel(){ 27 func setupWithModel(){
22 dataSet = NSManagedObject.fetchModel(identifier: "Message", ownid: AccountManager.shared.id()) as! [Message] 28 dataSet = NSManagedObject.fetchModel(identifier: "Message", ownid: AccountManager.shared.id()) as! [Message]
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MyChildrenViewController.swift
@@ -16,6 +16,12 @@ class MyChildrenViewController: UIViewController{ @@ -16,6 +16,12 @@ class MyChildrenViewController: UIViewController{
16 super.viewDidLoad() 16 super.viewDidLoad()
17 layoutSubViews() 17 layoutSubViews()
18 } 18 }
  19 + override func loadView() {
  20 + super.loadView()
  21 + //防止tabbar隐藏导致页面跳一下
  22 + self.tabBarController?.tabBar.isHidden = true
  23 + self.navigationController?.setNavigationBarHidden(false, animated: true)
  24 + }
19 // MARK: - 设置控件属性 25 // MARK: - 设置控件属性
20 func layoutSubViews(){ 26 func layoutSubViews(){
21 self.childrenTableView.emptyDataSetSource = self 27 self.childrenTableView.emptyDataSetSource = self
@@ -27,6 +33,7 @@ class MyChildrenViewController: UIViewController{ @@ -27,6 +33,7 @@ class MyChildrenViewController: UIViewController{
27 for j in AccountManager.shared.rawUserInfo!.contentData()["studentClass"].arrayValue { 33 for j in AccountManager.shared.rawUserInfo!.contentData()["studentClass"].arrayValue {
28 myChildrens.append(StudentClassInfo(json: j)) 34 myChildrens.append(StudentClassInfo(json: j))
29 } 35 }
  36 +
30 } 37 }
31 // MARK: - 添加绑定账号 38 // MARK: - 添加绑定账号
32 @IBAction func addChildrenAction(_ sender: UIButton) { 39 @IBAction func addChildrenAction(_ sender: UIButton) {
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/MyViewController.swift
@@ -49,14 +49,14 @@ class MyViewController: UIViewController { @@ -49,14 +49,14 @@ class MyViewController: UIViewController {
49 // MARK: - 页面将要显示时隐藏navigationbar显示自定义的顶部view 49 // MARK: - 页面将要显示时隐藏navigationbar显示自定义的顶部view
50 override func viewWillAppear(_ animated: Bool) { 50 override func viewWillAppear(_ animated: Bool) {
51 super.viewWillAppear(animated) 51 super.viewWillAppear(animated)
52 - self.navigationController?.isNavigationBarHidden = true 52 + self.navigationController?.setNavigationBarHidden(true, animated: true)
53 // MARK: - 设置是否登录及个人信息 53 // MARK: - 设置是否登录及个人信息
54 setupCurrentInfo() 54 setupCurrentInfo()
55 } 55 }
56 // MARK: - 页面将要消失时显示navigationbar 56 // MARK: - 页面将要消失时显示navigationbar
57 override func viewWillDisappear(_ animated: Bool) { 57 override func viewWillDisappear(_ animated: Bool) {
58 super.viewWillDisappear(animated) 58 super.viewWillDisappear(animated)
59 - self.navigationController?.isNavigationBarHidden = false 59 + self.navigationController?.setNavigationBarHidden(false, animated: true)
60 } 60 }
61 // MARK: - 设置是否登录及个人信息 61 // MARK: - 设置是否登录及个人信息
62 func setupCurrentInfo() { 62 func setupCurrentInfo() {
@@ -180,7 +180,8 @@ extension MyViewController: UITableViewDelegate,UITableViewDataSource{ @@ -180,7 +180,8 @@ extension MyViewController: UITableViewDelegate,UITableViewDataSource{
180 if !AccountManager.shared.isOnline() { 180 if !AccountManager.shared.isOnline() {
181 return 0 181 return 0
182 } 182 }
183 - if AccountManager.shared.isOnline() && AccountManager.shared.name()=="葛建军" && (indexPath.row == 1 || indexPath.row == 2){//隐藏支付相关功能 183 + //"zy105428"
  184 + if AccountManager.shared.isOnline() && AccountManager.shared.id()=="zy10542" && (indexPath.row == 1 || indexPath.row == 2){//隐藏支付相关功能
184 return 0 185 return 0
185 }else{ 186 }else{
186 return 44 187 return 44
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/OrderDetailViewController.swift
@@ -15,6 +15,12 @@ class OrderDetailViewController: UIViewController { @@ -15,6 +15,12 @@ class OrderDetailViewController: UIViewController {
15 super.viewDidLoad() 15 super.viewDidLoad()
16 setUpWithModel() 16 setUpWithModel()
17 } 17 }
  18 + override func loadView() {
  19 + super.loadView()
  20 + //防止tabbar隐藏导致页面跳一下
  21 + self.tabBarController?.tabBar.isHidden = true
  22 + self.navigationController?.setNavigationBarHidden(false, animated: true)
  23 + }
18 // MARK: - 获取数据并刷新页面 24 // MARK: - 获取数据并刷新页面
19 func setUpWithModel(){ 25 func setUpWithModel(){
20 SVProgressHUD.show() 26 SVProgressHUD.show()
ParentAssistant/ParentAssistant/Classes/controllers/my/Controller/RegisterViewController.swift
@@ -112,7 +112,6 @@ class RegisterViewController: UIViewController,UITextFieldDelegate { @@ -112,7 +112,6 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
112 self.navigationController?.popViewController(animated: true) 112 self.navigationController?.popViewController(animated: true)
113 } 113 }
114 let showBtn = UIAlertAction(title: "进入首页", style: UIAlertActionStyle.default) { (action) in 114 let showBtn = UIAlertAction(title: "进入首页", style: UIAlertActionStyle.default) { (action) in
115 - self.navigationController?.popToRootViewController(animated: true)  
116 //登录 115 //登录
117 SVProgressHUD.show(withStatus: "登录中...") 116 SVProgressHUD.show(withStatus: "登录中...")
118 HTTPServer.shared.login(completionHandler: { (str, error) in 117 HTTPServer.shared.login(completionHandler: { (str, error) in
@@ -151,6 +150,7 @@ class RegisterViewController: UIViewController,UITextFieldDelegate { @@ -151,6 +150,7 @@ class RegisterViewController: UIViewController,UITextFieldDelegate {
151 AccountManager.shared.logOut() 150 AccountManager.shared.logOut()
152 appDelegate.window!.makeToast("聊天服务登录失败,请连接网络重试") 151 appDelegate.window!.makeToast("聊天服务登录失败,请连接网络重试")
153 }else{ 152 }else{
  153 + self.navigationController?.popToRootViewController(animated: true)
154 //云信登录成功 154 //云信登录成功
155 self.dismiss(animated: true, completion: nil) 155 self.dismiss(animated: true, completion: nil)
156 } 156 }
ParentAssistant/ParentAssistant/Classes/util/network.swift
@@ -111,7 +111,7 @@ final class HTTPServer{ @@ -111,7 +111,7 @@ final class HTTPServer{
111 static var URL_IDENTITYCONFRIM = HOST+"/api/Account/IdentityConfrim" 111 static var URL_IDENTITYCONFRIM = HOST+"/api/Account/IdentityConfrim"
112 112
113 static var URL_PARENTREGISTER = HOST+"/api/ParentHelper/ParentRegister"//家长注册 113 static var URL_PARENTREGISTER = HOST+"/api/ParentHelper/ParentRegister"//家长注册
114 - static var URL_CAPTCHA=HOST+"/api/Account/Captcha"//获取注册验证码 114 + static var URL_CAPTCHA=HOST+"/api/Account/ChangePhoneCaptcha"//获取注册验证码
115 static var URL_GETPARENTINFO = HOST+"/api/ParentHelper/GetParentInfo"//登录获取家长信息(包括关联的孩子信息区分绑定状态) 115 static var URL_GETPARENTINFO = HOST+"/api/ParentHelper/GetParentInfo"//登录获取家长信息(包括关联的孩子信息区分绑定状态)
116 static var URL_UPDATEPARENTINFO = HOST+"/api/ParentHelper/UpdateParentInfo"//更新姓名和性别 116 static var URL_UPDATEPARENTINFO = HOST+"/api/ParentHelper/UpdateParentInfo"//更新姓名和性别
117 static var URL_GETORDERLIST = HOST+"/api/ParentHelper/GetOrderList"//获取我的短信包列表 117 static var URL_GETORDERLIST = HOST+"/api/ParentHelper/GetOrderList"//获取我的短信包列表
ParentAssistant/ParentAssistant/Classes/util/utils.swift
@@ -12,7 +12,7 @@ import Photos @@ -12,7 +12,7 @@ import Photos
12 //MARK: - 服务器和log打印设置 12 //MARK: - 服务器和log打印设置
13 class Debug{ 13 class Debug{
14 static let enable=false//是否打印log 14 static let enable=false//是否打印log
15 - static let isFormal=false//是否是正式服务器 15 + static let isFormal=true//是否是正式服务器
16 class func log(_ msg:String){ 16 class func log(_ msg:String){
17 if(!Debug.enable){ 17 if(!Debug.enable){
18 return 18 return
ParentAssistant/ParentAssistant/Classes/util/view/TableEmptyView.xib
@@ -18,8 +18,8 @@ @@ -18,8 +18,8 @@
18 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r6f-bH-pWm"> 18 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r6f-bH-pWm">
19 <rect key="frame" x="10" y="149" width="300" height="230"/> 19 <rect key="frame" x="10" y="149" width="300" height="230"/>
20 <subviews> 20 <subviews>
21 - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" image="emptyset_2" translatesAutoresizingMaskIntoConstraints="NO" id="h6u-NQ-lUD">  
22 - <rect key="frame" x="83" y="8" width="134" height="179"/> 21 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" image="icon" translatesAutoresizingMaskIntoConstraints="NO" id="h6u-NQ-lUD">
  22 + <rect key="frame" x="142" y="8" width="16" height="179"/>
23 </imageView> 23 </imageView>
24 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8YM-oz-SdO"> 24 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8YM-oz-SdO">
25 <rect key="frame" x="129" y="205" width="42" height="21"/> 25 <rect key="frame" x="129" y="205" width="42" height="21"/>
@@ -68,6 +68,6 @@ @@ -68,6 +68,6 @@
68 </view> 68 </view>
69 </objects> 69 </objects>
70 <resources> 70 <resources>
71 - <image name="emptyset_2" width="134" height="133"/> 71 + <image name="icon" width="16" height="16"/>
72 </resources> 72 </resources>
73 </document> 73 </document>
ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_activite1.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" : "activite1.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_activite1.imageset/activite1.png 0 → 100644

83.3 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_activite2.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" : "activite2.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_activite2.imageset/activite2.png 0 → 100644

101 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_activite3.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" : "activite3.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_activite3.imageset/activite3.png 0 → 100644

119 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_detection_back.imageset/3_01.png 0 → 100644

57.3 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_detection_back.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" : "3_01.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_training_back.imageset/3_02.png 0 → 100644

45.5 KB

ParentAssistant/ParentAssistant/Supporting Files/Assets.xcassets/evaluation/evaluation_icon_training_back.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" : "3_02.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/Base.lproj/Main.storyboard
@@ -64,14 +64,17 @@ @@ -64,14 +64,17 @@
64 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CKI-XD-Eo7"> 64 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CKI-XD-Eo7">
65 <rect key="frame" x="15" y="49.5" width="150" height="150"/> 65 <rect key="frame" x="15" y="49.5" width="150" height="150"/>
66 <subviews> 66 <subviews>
67 - <imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_training" translatesAutoresizingMaskIntoConstraints="NO" id="jM3-pe-HNZ"> 67 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_training_back" translatesAutoresizingMaskIntoConstraints="NO" id="Ck8-NZ-jI4">
  68 + <rect key="frame" x="0.0" y="-0.5" width="150" height="150"/>
  69 + </imageView>
  70 + <imageView hidden="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_training" translatesAutoresizingMaskIntoConstraints="NO" id="jM3-pe-HNZ">
68 <rect key="frame" x="50" y="50" width="50" height="50"/> 71 <rect key="frame" x="50" y="50" width="50" height="50"/>
69 <constraints> 72 <constraints>
70 <constraint firstAttribute="width" secondItem="jM3-pe-HNZ" secondAttribute="height" multiplier="1:1" id="9C5-F1-Q52"/> 73 <constraint firstAttribute="width" secondItem="jM3-pe-HNZ" secondAttribute="height" multiplier="1:1" id="9C5-F1-Q52"/>
71 <constraint firstAttribute="width" constant="50" id="OAh-S9-pJU"/> 74 <constraint firstAttribute="width" constant="50" id="OAh-S9-pJU"/>
72 </constraints> 75 </constraints>
73 </imageView> 76 </imageView>
74 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="专项训练" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lMI-9m-Zal"> 77 + <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="lMI-9m-Zal">
75 <rect key="frame" x="44.5" y="121" width="61.5" height="21"/> 78 <rect key="frame" x="44.5" y="121" width="61.5" height="21"/>
76 <constraints> 79 <constraints>
77 <constraint firstAttribute="height" constant="21" id="Ygr-K0-eFk"/> 80 <constraint firstAttribute="height" constant="21" id="Ygr-K0-eFk"/>
@@ -87,7 +90,7 @@ @@ -87,7 +90,7 @@
87 </connections> 90 </connections>
88 </button> 91 </button>
89 </subviews> 92 </subviews>
90 - <color key="backgroundColor" red="0.39705835388445299" green="1" blue="0.97920779819417048" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 93 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
91 <constraints> 94 <constraints>
92 <constraint firstItem="lMI-9m-Zal" firstAttribute="top" secondItem="jM3-pe-HNZ" secondAttribute="bottom" constant="21" id="2yg-E5-PY1"/> 95 <constraint firstItem="lMI-9m-Zal" firstAttribute="top" secondItem="jM3-pe-HNZ" secondAttribute="bottom" constant="21" id="2yg-E5-PY1"/>
93 <constraint firstItem="DjB-iQ-LaT" firstAttribute="leading" secondItem="CKI-XD-Eo7" secondAttribute="leading" id="4dA-Mq-Ul4"/> 96 <constraint firstItem="DjB-iQ-LaT" firstAttribute="leading" secondItem="CKI-XD-Eo7" secondAttribute="leading" id="4dA-Mq-Ul4"/>
@@ -95,10 +98,14 @@ @@ -95,10 +98,14 @@
95 <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerY" secondItem="CKI-XD-Eo7" secondAttribute="centerY" id="HP1-hk-di8"/> 98 <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerY" secondItem="CKI-XD-Eo7" secondAttribute="centerY" id="HP1-hk-di8"/>
96 <constraint firstAttribute="trailing" secondItem="DjB-iQ-LaT" secondAttribute="trailing" id="OIA-L4-g1n"/> 99 <constraint firstAttribute="trailing" secondItem="DjB-iQ-LaT" secondAttribute="trailing" id="OIA-L4-g1n"/>
97 <constraint firstAttribute="width" constant="150" id="RGQ-Uh-sQh"/> 100 <constraint firstAttribute="width" constant="150" id="RGQ-Uh-sQh"/>
  101 + <constraint firstItem="Ck8-NZ-jI4" firstAttribute="leading" secondItem="CKI-XD-Eo7" secondAttribute="leading" id="Spi-nv-14s"/>
  102 + <constraint firstAttribute="trailing" secondItem="Ck8-NZ-jI4" secondAttribute="trailing" id="cgp-Iz-RSU"/>
98 <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="fPw-Rq-f06"/> 103 <constraint firstItem="jM3-pe-HNZ" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="fPw-Rq-f06"/>
99 <constraint firstItem="lMI-9m-Zal" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="mOJ-4Z-xW1"/> 104 <constraint firstItem="lMI-9m-Zal" firstAttribute="centerX" secondItem="CKI-XD-Eo7" secondAttribute="centerX" id="mOJ-4Z-xW1"/>
100 <constraint firstAttribute="bottom" secondItem="DjB-iQ-LaT" secondAttribute="bottom" id="pta-jf-lKE"/> 105 <constraint firstAttribute="bottom" secondItem="DjB-iQ-LaT" secondAttribute="bottom" id="pta-jf-lKE"/>
101 <constraint firstAttribute="width" secondItem="CKI-XD-Eo7" secondAttribute="height" multiplier="1:1" id="qLV-s3-y6S"/> 106 <constraint firstAttribute="width" secondItem="CKI-XD-Eo7" secondAttribute="height" multiplier="1:1" id="qLV-s3-y6S"/>
  107 + <constraint firstAttribute="bottom" secondItem="Ck8-NZ-jI4" secondAttribute="bottom" id="r5M-3o-ycB"/>
  108 + <constraint firstItem="Ck8-NZ-jI4" firstAttribute="top" secondItem="CKI-XD-Eo7" secondAttribute="top" id="tG5-lG-ekP"/>
102 </constraints> 109 </constraints>
103 <userDefinedRuntimeAttributes> 110 <userDefinedRuntimeAttributes>
104 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 111 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -121,7 +128,10 @@ @@ -121,7 +128,10 @@
121 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1z3-Uc-my7"> 128 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1z3-Uc-my7">
122 <rect key="frame" x="15" y="49.5" width="150" height="150"/> 129 <rect key="frame" x="15" y="49.5" width="150" height="150"/>
123 <subviews> 130 <subviews>
124 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学情检测" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2RT-ZA-65V"> 131 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_detection_back" translatesAutoresizingMaskIntoConstraints="NO" id="ApZ-G6-QJ9">
  132 + <rect key="frame" x="0.0" y="0.0" width="150" height="150"/>
  133 + </imageView>
  134 + <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="2RT-ZA-65V">
125 <rect key="frame" x="45" y="121" width="61.5" height="21"/> 135 <rect key="frame" x="45" y="121" width="61.5" height="21"/>
126 <constraints> 136 <constraints>
127 <constraint firstAttribute="height" constant="21" id="6RD-Df-Mm4"/> 137 <constraint firstAttribute="height" constant="21" id="6RD-Df-Mm4"/>
@@ -130,7 +140,7 @@ @@ -130,7 +140,7 @@
130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 140 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131 <nil key="highlightedColor"/> 141 <nil key="highlightedColor"/>
132 </label> 142 </label>
133 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_learningManagement" translatesAutoresizingMaskIntoConstraints="NO" id="9ln-nr-VzA"> 143 + <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_learningManagement" translatesAutoresizingMaskIntoConstraints="NO" id="9ln-nr-VzA">
134 <rect key="frame" x="50.5" y="50" width="50" height="50"/> 144 <rect key="frame" x="50.5" y="50" width="50" height="50"/>
135 <constraints> 145 <constraints>
136 <constraint firstAttribute="width" constant="50" id="4wp-cr-ltM"/> 146 <constraint firstAttribute="width" constant="50" id="4wp-cr-ltM"/>
@@ -144,13 +154,17 @@ @@ -144,13 +154,17 @@
144 </connections> 154 </connections>
145 </button> 155 </button>
146 </subviews> 156 </subviews>
147 - <color key="backgroundColor" red="0.61174042456188515" green="0.82746609543490623" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 157 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
148 <constraints> 158 <constraints>
  159 + <constraint firstItem="ApZ-G6-QJ9" firstAttribute="leading" secondItem="1z3-Uc-my7" secondAttribute="leading" id="05A-25-nEo"/>
149 <constraint firstItem="9ln-nr-VzA" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="KfB-Qi-0ZA"/> 160 <constraint firstItem="9ln-nr-VzA" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="KfB-Qi-0ZA"/>
150 <constraint firstItem="ROd-Hw-Km6" firstAttribute="leading" secondItem="1z3-Uc-my7" secondAttribute="leading" id="TCz-AY-Zqd"/> 161 <constraint firstItem="ROd-Hw-Km6" firstAttribute="leading" secondItem="1z3-Uc-my7" secondAttribute="leading" id="TCz-AY-Zqd"/>
151 <constraint firstItem="9ln-nr-VzA" firstAttribute="centerY" secondItem="1z3-Uc-my7" secondAttribute="centerY" id="Tfz-CR-wHW"/> 162 <constraint firstItem="9ln-nr-VzA" firstAttribute="centerY" secondItem="1z3-Uc-my7" secondAttribute="centerY" id="Tfz-CR-wHW"/>
152 <constraint firstItem="2RT-ZA-65V" firstAttribute="top" secondItem="9ln-nr-VzA" secondAttribute="bottom" constant="21" id="Vq7-Vh-JcW"/> 163 <constraint firstItem="2RT-ZA-65V" firstAttribute="top" secondItem="9ln-nr-VzA" secondAttribute="bottom" constant="21" id="Vq7-Vh-JcW"/>
  164 + <constraint firstAttribute="trailing" secondItem="ApZ-G6-QJ9" secondAttribute="trailing" id="Wex-Un-omp"/>
  165 + <constraint firstItem="ApZ-G6-QJ9" firstAttribute="top" secondItem="1z3-Uc-my7" secondAttribute="top" id="Zup-39-h6x"/>
153 <constraint firstAttribute="bottom" secondItem="ROd-Hw-Km6" secondAttribute="bottom" id="l1w-4Q-Zlk"/> 166 <constraint firstAttribute="bottom" secondItem="ROd-Hw-Km6" secondAttribute="bottom" id="l1w-4Q-Zlk"/>
  167 + <constraint firstAttribute="bottom" secondItem="ApZ-G6-QJ9" secondAttribute="bottom" id="mZC-Vg-luo"/>
154 <constraint firstAttribute="width" constant="150" id="mdM-Dj-z5q"/> 168 <constraint firstAttribute="width" constant="150" id="mdM-Dj-z5q"/>
155 <constraint firstItem="2RT-ZA-65V" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="nTc-V9-qbv"/> 169 <constraint firstItem="2RT-ZA-65V" firstAttribute="centerX" secondItem="1z3-Uc-my7" secondAttribute="centerX" id="nTc-V9-qbv"/>
156 <constraint firstAttribute="width" secondItem="1z3-Uc-my7" secondAttribute="height" multiplier="1:1" id="otI-Su-s6E"/> 170 <constraint firstAttribute="width" secondItem="1z3-Uc-my7" secondAttribute="height" multiplier="1:1" id="otI-Su-s6E"/>
@@ -253,6 +267,7 @@ @@ -253,6 +267,7 @@
253 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kkx-lN-sfK"> 267 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kkx-lN-sfK">
254 <rect key="frame" x="0.0" y="0.0" width="176" height="176"/> 268 <rect key="frame" x="0.0" y="0.0" width="176" height="176"/>
255 <subviews> 269 <subviews>
  270 +
256 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Jql-zY-Zqo"> 271 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Jql-zY-Zqo">
257 <rect key="frame" x="0.0" y="0.0" width="176" height="176"/> 272 <rect key="frame" x="0.0" y="0.0" width="176" height="176"/>
258 </imageView> 273 </imageView>
@@ -305,6 +320,7 @@ @@ -305,6 +320,7 @@
305 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6YE-Yx-A8r"> 320 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6YE-Yx-A8r">
306 <rect key="frame" x="184" y="92" width="176" height="84"/> 321 <rect key="frame" x="184" y="92" width="176" height="84"/>
307 <subviews> 322 <subviews>
  323 +
308 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qMv-R9-Qa3"> 324 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qMv-R9-Qa3">
309 <rect key="frame" x="0.0" y="0.0" width="176" height="84"/> 325 <rect key="frame" x="0.0" y="0.0" width="176" height="84"/>
310 </imageView> 326 </imageView>
@@ -356,8 +372,9 @@ @@ -356,8 +372,9 @@
356 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nTE-Oc-4PW"> 372 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nTE-Oc-4PW">
357 <rect key="frame" x="184" y="0.0" width="176" height="84"/> 373 <rect key="frame" x="184" y="0.0" width="176" height="84"/>
358 <subviews> 374 <subviews>
359 - <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="P7A-gb-DMF">  
360 - <rect key="frame" x="0.0" y="0.0" width="176" height="84"/> 375 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="evaluation_icon_activite2" translatesAutoresizingMaskIntoConstraints="NO" id="P7A-gb-DMF">
  376 + <rect key="frame" x="0.0" y="0.0" width="175.5" height="84"/>
  377 +
361 </imageView> 378 </imageView>
362 <button opaque="NO" tag="3001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="l93-Wh-xSB"> 379 <button opaque="NO" tag="3001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="l93-Wh-xSB">
363 <rect key="frame" x="8" y="48" width="70" height="28"/> 380 <rect key="frame" x="8" y="48" width="70" height="28"/>
@@ -2149,10 +2166,15 @@ @@ -2149,10 +2166,15 @@
2149 <image name="Information_bar_icon_select" width="22" height="20"/> 2166 <image name="Information_bar_icon_select" width="22" height="20"/>
2150 <image name="evaluation_bar_icon" width="22" height="21"/> 2167 <image name="evaluation_bar_icon" width="22" height="21"/>
2151 <image name="evaluation_bar_icon_select" width="22" height="21"/> 2168 <image name="evaluation_bar_icon_select" width="22" height="21"/>
  2169 + <image name="evaluation_icon_activite1" width="200" height="300"/>
  2170 + <image name="evaluation_icon_activite2" width="200" height="100"/>
  2171 + <image name="evaluation_icon_activite3" width="200" height="100"/>
2152 <image name="evaluation_icon_camera" width="32" height="32"/> 2172 <image name="evaluation_icon_camera" width="32" height="32"/>
  2173 + <image name="evaluation_icon_detection_back" width="150" height="140"/>
2153 <image name="evaluation_icon_learningManagement" width="45" height="47"/> 2174 <image name="evaluation_icon_learningManagement" width="45" height="47"/>
2154 <image name="evaluation_icon_play" width="59" height="59"/> 2175 <image name="evaluation_icon_play" width="59" height="59"/>
2155 <image name="evaluation_icon_training" width="47" height="47"/> 2176 <image name="evaluation_icon_training" width="47" height="47"/>
  2177 + <image name="evaluation_icon_training_back" width="150" height="140"/>
2156 <image name="moral_bg" width="690" height="430"/> 2178 <image name="moral_bg" width="690" height="430"/>
2157 <image name="my_bar_icon" width="19" height="22"/> 2179 <image name="my_bar_icon" width="19" height="22"/>
2158 <image name="my_bar_icon_select" width="19" height="22"/> 2180 <image name="my_bar_icon_select" width="19" height="22"/>