瀏覽代碼

完成近期需求的开发

Kevin 1 年之前
父節點
當前提交
3c8923a6a7
共有 39 個文件被更改,包括 1483 次插入999 次删除
  1. 1 0
      Podfile
  2. 5 1
      Podfile.lock
  3. 5 1
      Pods/Manifest.lock
  4. 927 889
      Pods/Pods.xcodeproj/project.pbxproj
  5. 25 0
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-acknowledgements.markdown
  6. 31 0
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-acknowledgements.plist
  7. 2 1
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Debug-input-files.xcfilelist
  8. 2 1
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Debug-output-files.xcfilelist
  9. 2 1
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Release-input-files.xcfilelist
  10. 2 1
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Release-output-files.xcfilelist
  11. 2 0
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks.sh
  12. 4 4
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature.debug.xcconfig
  13. 4 4
      Pods/Target Support Files/Pods-Temperature/Pods-Temperature.release.xcconfig
  14. 20 8
      Temperature.xcodeproj/project.pbxproj
  15. 5 4
      Temperature/AppConfig/RDSConfig.h
  16. 22 0
      Temperature/Assets.xcassets/devCtl/menu_edit.imageset/Contents.json
  17. 二進制
      Temperature/Assets.xcassets/devCtl/menu_edit.imageset/menu_edit@2x.png
  18. 二進制
      Temperature/Assets.xcassets/devCtl/menu_edit.imageset/menu_edit@3x.png
  19. 22 0
      Temperature/Assets.xcassets/devCtl/menu_info.imageset/Contents.json
  20. 二進制
      Temperature/Assets.xcassets/devCtl/menu_info.imageset/menu_info@2x.png
  21. 二進制
      Temperature/Assets.xcassets/devCtl/menu_info.imageset/menu_info@3x.png
  22. 1 0
      Temperature/ControlModule/Home/Controller/RDSAddRoomVC.m
  23. 53 10
      Temperature/ControlModule/Home/Controller/RDSAirControlVC.m
  24. 70 42
      Temperature/ControlModule/Home/Controller/RDSAirControlVC.xib
  25. 8 0
      Temperature/ControlModule/Home/Controller/RDSHomeVC.m
  26. 8 0
      Temperature/ControlModule/Home/Controller/RDSSelectDeviceSubVC.m
  27. 19 6
      Temperature/ControlModule/Home/Controller/RDSSubControlVC.m
  28. 19 7
      Temperature/ControlModule/Home/Controller/RDSSubControlVC.xib
  29. 25 0
      Temperature/ControlModule/Home/Model/RDSSystemParameterModel.h
  30. 39 0
      Temperature/ControlModule/Home/Model/RDSSystemParameterModel.m
  31. 117 10
      Temperature/ControlModule/Home/View/RDSDeviceTypeCell.m
  32. 4 0
      Temperature/ControlModule/Home/View/RDSHomeTopView.h
  33. 6 0
      Temperature/ControlModule/Home/View/RDSHomeTopView.m
  34. 3 2
      Temperature/ControlModule/Home/View/RDSHomeTopView.xib
  35. 8 5
      Temperature/ControlModule/Home/View/RDSRoomCell.m
  36. 2 0
      Temperature/ControlModule/Room/Model/RDSRoomModel.h
  37. 4 0
      Temperature/NetWork/RDSDemoApiHelper.h
  38. 9 0
      Temperature/NetWork/RDSDemoApiHelper.m
  39. 7 2
      Temperature/Tools/Slider/RDSlider.m

+ 1 - 0
Podfile

@@ -26,6 +26,7 @@ pod 'Masonry'
 pod 'FDFullscreenPopGesture'   #全屏侧滑返回
 pod 'MMKV'
 pod 'TYPagerController'
+pod 'YBPopupMenu'
 
 end
 

+ 5 - 1
Podfile.lock

@@ -29,6 +29,7 @@ PODS:
   - SDWebImage/Core (5.17.0)
   - SVProgressHUD (2.2.5)
   - TYPagerController (2.1.2)
+  - YBPopupMenu (1.3.0)
 
 DEPENDENCIES:
   - AFNetworking
@@ -41,6 +42,7 @@ DEPENDENCIES:
   - SDWebImage
   - SVProgressHUD
   - TYPagerController
+  - YBPopupMenu
 
 SPEC REPOS:
   trunk:
@@ -55,6 +57,7 @@ SPEC REPOS:
     - SDWebImage
     - SVProgressHUD
     - TYPagerController
+    - YBPopupMenu
 
 SPEC CHECKSUMS:
   AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
@@ -68,7 +71,8 @@ SPEC CHECKSUMS:
   SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TYPagerController: 262556ecef99986d26ed77fb1288a198ed42f4af
+  YBPopupMenu: ace6d58993c6013e44eea203fd5d1e00a039a0b6
 
-PODFILE CHECKSUM: e9f5334d2f48eff5ab9b395b38e9cee0a773a62b
+PODFILE CHECKSUM: 96ec02f9a00e3e05a9a2917980004495ccdc3317
 
 COCOAPODS: 1.12.1

+ 5 - 1
Pods/Manifest.lock

@@ -29,6 +29,7 @@ PODS:
   - SDWebImage/Core (5.17.0)
   - SVProgressHUD (2.2.5)
   - TYPagerController (2.1.2)
+  - YBPopupMenu (1.3.0)
 
 DEPENDENCIES:
   - AFNetworking
@@ -41,6 +42,7 @@ DEPENDENCIES:
   - SDWebImage
   - SVProgressHUD
   - TYPagerController
+  - YBPopupMenu
 
 SPEC REPOS:
   trunk:
@@ -55,6 +57,7 @@ SPEC REPOS:
     - SDWebImage
     - SVProgressHUD
     - TYPagerController
+    - YBPopupMenu
 
 SPEC CHECKSUMS:
   AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
@@ -68,7 +71,8 @@ SPEC CHECKSUMS:
   SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9
   SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
   TYPagerController: 262556ecef99986d26ed77fb1288a198ed42f4af
+  YBPopupMenu: ace6d58993c6013e44eea203fd5d1e00a039a0b6
 
-PODFILE CHECKSUM: e9f5334d2f48eff5ab9b395b38e9cee0a773a62b
+PODFILE CHECKSUM: 96ec02f9a00e3e05a9a2917980004495ccdc3317
 
 COCOAPODS: 1.12.1

文件差異過大導致無法顯示
+ 927 - 889
Pods/Pods.xcodeproj/project.pbxproj


+ 25 - 0
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-acknowledgements.markdown

@@ -617,4 +617,29 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
+
+## YBPopupMenu
+
+MIT License
+
+Copyright (c) 2016 yuanbo li
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
 Generated by CocoaPods - https://cocoapods.org

+ 31 - 0
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-acknowledgements.plist

@@ -695,6 +695,37 @@ SOFTWARE.
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>MIT License
+
+Copyright (c) 2016 yuanbo li
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>YBPopupMenu</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>Generated by CocoaPods - https://cocoapods.org</string>

+ 2 - 1
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Debug-input-files.xcfilelist

@@ -9,4 +9,5 @@ ${BUILT_PRODUCTS_DIR}/MMKVCore/MMKVCore.framework
 ${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework
 ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework
 ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework
-${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework
+${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework
+${BUILT_PRODUCTS_DIR}/YBPopupMenu/YBPopupMenu.framework

+ 2 - 1
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Debug-output-files.xcfilelist

@@ -8,4 +8,5 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MMKVCore.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TYPagerController.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TYPagerController.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YBPopupMenu.framework

+ 2 - 1
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Release-input-files.xcfilelist

@@ -9,4 +9,5 @@ ${BUILT_PRODUCTS_DIR}/MMKVCore/MMKVCore.framework
 ${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework
 ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework
 ${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework
-${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework
+${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework
+${BUILT_PRODUCTS_DIR}/YBPopupMenu/YBPopupMenu.framework

+ 2 - 1
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks-Release-output-files.xcfilelist

@@ -8,4 +8,5 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MMKVCore.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework
-${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TYPagerController.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TYPagerController.framework
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YBPopupMenu.framework

+ 2 - 0
Pods/Target Support Files/Pods-Temperature/Pods-Temperature-frameworks.sh

@@ -187,6 +187,7 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then
   install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/YBPopupMenu/YBPopupMenu.framework"
 fi
 if [[ "$CONFIGURATION" == "Release" ]]; then
   install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework"
@@ -200,6 +201,7 @@ if [[ "$CONFIGURATION" == "Release" ]]; then
   install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/TYPagerController/TYPagerController.framework"
+  install_framework "${BUILT_PRODUCTS_DIR}/YBPopupMenu/YBPopupMenu.framework"
 fi
 if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
   wait

+ 4 - 4
Pods/Target Support Files/Pods-Temperature/Pods-Temperature.debug.xcconfig

@@ -1,10 +1,10 @@
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu/YBPopupMenu.framework/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController"
-OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "AFNetworking" -framework "CoreFoundation" -framework "FDFullscreenPopGesture" -framework "FMDB" -framework "Foundation" -framework "ImageIO" -framework "MJExtension" -framework "MJRefresh" -framework "MMKV" -framework "MMKVCore" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SVProgressHUD" -framework "TYPagerController" -framework "UIKit"
+OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu/YBPopupMenu.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu"
+OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "AFNetworking" -framework "CoreFoundation" -framework "FDFullscreenPopGesture" -framework "FMDB" -framework "Foundation" -framework "ImageIO" -framework "MJExtension" -framework "MJRefresh" -framework "MMKV" -framework "MMKVCore" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SVProgressHUD" -framework "TYPagerController" -framework "UIKit" -framework "YBPopupMenu"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

+ 4 - 4
Pods/Target Support Files/Pods-Temperature/Pods-Temperature.release.xcconfig

@@ -1,10 +1,10 @@
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController" "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu/YBPopupMenu.framework/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
-OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController"
-OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "AFNetworking" -framework "CoreFoundation" -framework "FDFullscreenPopGesture" -framework "FMDB" -framework "Foundation" -framework "ImageIO" -framework "MJExtension" -framework "MJRefresh" -framework "MMKV" -framework "MMKVCore" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SVProgressHUD" -framework "TYPagerController" -framework "UIKit"
+OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture/FDFullscreenPopGesture.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FMDB/FMDB.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKV/MMKV.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore/MMKVCore.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController/TYPagerController.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu/YBPopupMenu.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FDFullscreenPopGesture" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FMDB" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKV" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/MMKVCore" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/TYPagerController" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/YBPopupMenu"
+OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "AFNetworking" -framework "CoreFoundation" -framework "FDFullscreenPopGesture" -framework "FMDB" -framework "Foundation" -framework "ImageIO" -framework "MJExtension" -framework "MJRefresh" -framework "MMKV" -framework "MMKVCore" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SVProgressHUD" -framework "TYPagerController" -framework "UIKit" -framework "YBPopupMenu"
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
 PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

+ 20 - 8
Temperature.xcodeproj/project.pbxproj

@@ -10,6 +10,7 @@
 		03245AF92A8E5448003DF602 /* RDSSelectDeviceMainVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 03245AF82A8E5448003DF602 /* RDSSelectDeviceMainVC.m */; };
 		03245AFC2A8E5459003DF602 /* RDSSelectDeviceSubVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 03245AFB2A8E5459003DF602 /* RDSSelectDeviceSubVC.m */; };
 		03245AFF2A8E5E2B003DF602 /* RDSDeviceTypeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 03245AFE2A8E5E2B003DF602 /* RDSDeviceTypeModel.m */; };
+		0364165B2A9F84BB00FE8629 /* RDSSystemParameterModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 0364165A2A9F84BB00FE8629 /* RDSSystemParameterModel.m */; };
 		03D1A3712A8CF47700106033 /* UIFont+Temperature.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D1A3702A8CF47700106033 /* UIFont+Temperature.m */; };
 		03D1A3742A8CF5B200106033 /* UIColor+Temperature.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D1A3732A8CF5B200106033 /* UIColor+Temperature.m */; };
 		03DB89162A9789A900718F10 /* RDSDeviceTypeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 03DB89152A9789A900718F10 /* RDSDeviceTypeCell.m */; };
@@ -205,6 +206,8 @@
 		03245AFB2A8E5459003DF602 /* RDSSelectDeviceSubVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RDSSelectDeviceSubVC.m; sourceTree = "<group>"; };
 		03245AFD2A8E5E2B003DF602 /* RDSDeviceTypeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RDSDeviceTypeModel.h; sourceTree = "<group>"; };
 		03245AFE2A8E5E2B003DF602 /* RDSDeviceTypeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RDSDeviceTypeModel.m; sourceTree = "<group>"; };
+		036416592A9F84BB00FE8629 /* RDSSystemParameterModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RDSSystemParameterModel.h; sourceTree = "<group>"; };
+		0364165A2A9F84BB00FE8629 /* RDSSystemParameterModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RDSSystemParameterModel.m; sourceTree = "<group>"; };
 		03D1A36F2A8CF47700106033 /* UIFont+Temperature.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIFont+Temperature.h"; sourceTree = "<group>"; };
 		03D1A3702A8CF47700106033 /* UIFont+Temperature.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIFont+Temperature.m"; sourceTree = "<group>"; };
 		03D1A3722A8CF5B200106033 /* UIColor+Temperature.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIColor+Temperature.h"; sourceTree = "<group>"; };
@@ -547,6 +550,8 @@
 				22C68A1C296803D400996E26 /* ModelImg.m */,
 				22534EC429F911E200E4EBC2 /* WeatherModel.h */,
 				22534EC529F911E200E4EBC2 /* WeatherModel.m */,
+				036416592A9F84BB00FE8629 /* RDSSystemParameterModel.h */,
+				0364165A2A9F84BB00FE8629 /* RDSSystemParameterModel.m */,
 				03245AFD2A8E5E2B003DF602 /* RDSDeviceTypeModel.h */,
 				03245AFE2A8E5E2B003DF602 /* RDSDeviceTypeModel.m */,
 			);
@@ -1565,6 +1570,7 @@
 				22CC23772907921300E627E9 /* RDSTools.m in Sources */,
 				22CC23012907830B00E627E9 /* RDSHomeTopView.m in Sources */,
 				22B5FBC829309F3400AD4BCE /* RDSDeallocWatcher.m in Sources */,
+				0364165B2A9F84BB00FE8629 /* RDSSystemParameterModel.m in Sources */,
 				2240830C295E755F007C859E /* RDSlider.m in Sources */,
 				22F9FFE7292F010F00BAB3F6 /* NSObject+FIDProperty.m in Sources */,
 				22534EBD29F2693C00E4EBC2 /* RDSMapHelper.m in Sources */,
@@ -1825,9 +1831,11 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = Temperature/Temperature.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2023061215;
-				DEVELOPMENT_TEAM = Z675BR2K4U;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
+				CURRENT_PROJECT_VERSION = 20230904;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = FBAS2Y3Z2S;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/Temperature/Tools/Location/BaiduMapSDK",
@@ -1852,10 +1860,11 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.2.2;
+				MARKETING_VERSION = 1.2.3;
 				PRODUCT_BUNDLE_IDENTIFIER = com.YXLJ.fiveContant;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = fiveContant;
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
@@ -1872,9 +1881,11 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = Temperature/Temperature.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2023061215;
-				DEVELOPMENT_TEAM = Z675BR2K4U;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
+				CURRENT_PROJECT_VERSION = 20230904;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = FBAS2Y3Z2S;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/Temperature/Tools/Location/BaiduMapSDK",
@@ -1899,10 +1910,11 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.2.2;
+				MARKETING_VERSION = 1.2.3;
 				PRODUCT_BUNDLE_IDENTIFIER = com.YXLJ.fiveContant;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = fiveContant;
 				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
 				SUPPORTS_MACCATALYST = NO;
 				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;

+ 5 - 4
Temperature/AppConfig/RDSConfig.h

@@ -22,12 +22,13 @@
 // 测试环境
 #define kBaseUrlHost_test        @"http://yongxu.yehaoji.cn:8199/api/v1" // API地址
 #define kBaseUrlHeadImg_test      @"http://yongxu.yehaoji.cn:18199" // 头像地址
+//#define kBaseUrlHost_test        @"http://114.115.251.196:8299/api/v1" // API地址
 
 // 生产环境
-//#define kBaseUrlHost        @"https://app.yongxulvjian.com/api/v1"
-//#define kBaseUrlHeadImg     @"https://app.yongxulvjian.com"
-#define kBaseUrlHost        @"http://114.115.251.196:8299/api/v1"
-#define kBaseUrlHeadImg     @"http://yongxu.yehaoji.cn:18199"
+#define kBaseUrlHost        @"https://app.yongxulvjian.com/api/v1"
+#define kBaseUrlHeadImg     @"https://app.yongxulvjian.com"
+//#define kBaseUrlHost        @"http://114.115.251.196:8299/api/v1"
+//#define kBaseUrlHeadImg     @"http://yongxu.yehaoji.cn:18199"
 
 
 

+ 22 - 0
Temperature/Assets.xcassets/devCtl/menu_edit.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "menu_edit@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "menu_edit@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
Temperature/Assets.xcassets/devCtl/menu_edit.imageset/menu_edit@2x.png


二進制
Temperature/Assets.xcassets/devCtl/menu_edit.imageset/menu_edit@3x.png


+ 22 - 0
Temperature/Assets.xcassets/devCtl/menu_info.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "menu_info@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "menu_info@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
Temperature/Assets.xcassets/devCtl/menu_info.imageset/menu_info@2x.png


二進制
Temperature/Assets.xcassets/devCtl/menu_info.imageset/menu_info@3x.png


+ 1 - 0
Temperature/ControlModule/Home/Controller/RDSAddRoomVC.m

@@ -74,6 +74,7 @@
         RDSBindSubDeviceVC *vc = [[RDSBindSubDeviceVC alloc] init];
         vc.roomName = _roomNameTF.text;
         vc.deviceID = _deviceIDTF.text;
+        vc.deviceTypeModel = self.deviceTypeModel;
         [self pushViewController:vc animated:YES];
     }
     

+ 53 - 10
Temperature/ControlModule/Home/Controller/RDSAirControlVC.m

@@ -13,8 +13,10 @@
 #import "SPAlertController.h"
 #import "GCDTimer.h"// 轮询定时器
 #import "RDSRoomSetVC.h"
+#import <YBPopupMenu/YBPopupMenu.h>
+#import "RDSUserProtocolViewController.h"
 
-@interface RDSAirControlVC ()<senderValueChangeDelegate,UIGestureRecognizerDelegate,UIPickerViewDataSource,UIPickerViewDelegate>
+@interface RDSAirControlVC () <senderValueChangeDelegate, UIGestureRecognizerDelegate, UIPickerViewDataSource, UIPickerViewDelegate, YBPopupMenuDelegate>
 
 // 工作模式(0:制冷,1:制热,2:除湿3:送风4:加湿)
 @property (nonatomic, strong) RDSCtrlModeView *modeView;
@@ -78,8 +80,10 @@
 }
 
 - (void)p_navEditItem{
-    UIBarButtonItem *item = [RDSBarButtonItem barButtonItemWithImage:@"icon_edit" target:self action:@selector(onEditAction)];
-    [self.navigationItem setRightBarButtonItem:item];
+    UIButton *editButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
+    [editButton setImage:[UIImage imageNamed:@"icon_edit"] forState:UIControlStateNormal];
+    [editButton addTarget:self action:@selector(onEditAction:) forControlEvents:UIControlEventTouchUpInside];
+    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:editButton];
 }
 
 
@@ -102,7 +106,7 @@
     
 
     
-    CGFloat width = 220;
+    CGFloat width = 260;
     _cirSlider =[[CYCircularSlider alloc]initWithFrame:CGRectMake((246 - width) / 2, (246 - width) / 2, width, width)];
     _cirSlider.delegate = self;
     _cirSlider.backgroundColor = UIColor.clearColor;
@@ -119,6 +123,9 @@
     [_fanSlider setThumbImage:[UIImage imageNamed:@"icon_point"] forState:UIControlStateNormal];
     [_fanSlider setThumbImage:[UIImage imageNamed:@"icon_point"] forState:UIControlStateHighlighted];
     
+    if ([self.roomModel.code isEqualToString:@"YXK-Z/86-FG-A"]) {
+        self.sleepBtn.hidden = YES;
+    }
     
 //    UIBezierPath *path = [UIBezierPath bezierPath];
 //
@@ -177,18 +184,54 @@
 }
 
 
+- (IBAction)didTapIcon:(id)sender {
+    [self openPageWithType:@"temp" title:@"温度"];
+}
 
+- (IBAction)didTapHumidity:(id)sender {
+    [self openPageWithType:@"humidity" title:@"湿度"];
+}
 
-#pragma mark - Action 设备控制
+- (IBAction)didTapPm25:(id)sender {
+    [self openPageWithType:@"pm25" title:@"PM 2.5"];
+}
 
-- (void)onEditAction{
-    
-    RDSRoomSetVC *vc = [[RDSRoomSetVC alloc] init];
-    vc.roomModel = _roomModel;
+- (IBAction)didTapCo2:(id)sender {
+    [self openPageWithType:@"co2" title:@"二氧化碳"];
+}
+
+- (void)openPageWithType:(NSString *)type title:(NSString *)title {
+    NSString *urlStr = [NSString stringWithFormat:@"%@/#/DataChart/%@/%@", kBaseUrlHeadImg, self.roomModel.record_id, type];
+    RDSUserProtocolViewController *vc = [[RDSUserProtocolViewController alloc] init];
+    vc.url = urlStr;
+    vc.vcTitle = title;
     [self pushViewController:vc animated:YES];
-    
 }
 
+#pragma mark - Action 设备控制
+
+- (void)onEditAction:(UIButton *)button {
+    [YBPopupMenu showRelyOnView:button titles:@[@"编辑名称", @"设备信息"] icons:@[@"menu_edit", @"menu_info"] menuWidth:150 otherSettings:^(YBPopupMenu *popupMenu) {
+        popupMenu.delegate = self;
+        popupMenu.animationManager.duration = 0.25;
+        popupMenu.textColor = [UIColor colorWithHexString:@"#333333"];
+    }];
+}
+
+#pragma mark - YPPopupMenuDelegate
+- (void)ybPopupMenu:(YBPopupMenu *)ybPopupMenu didSelectedAtIndex:(NSInteger)index {
+    if (index == 0) {
+        // 编辑名称
+        RDSRoomSetVC *vc = [[RDSRoomSetVC alloc] init];
+        vc.roomModel = _roomModel;
+        [self pushViewController:vc animated:YES];
+        return;
+    }
+    RDSUserProtocolViewController *vc = [[RDSUserProtocolViewController alloc] init];
+    vc.url = [NSString stringWithFormat:@"%@/#/DeviceInfo/%@", kBaseUrlHeadImg, self.roomModel.record_id];
+    vc.vcTitle = @"设备信息";
+    [self pushViewController:vc animated:YES];
+}
 
 
 // 点击模式

+ 70 - 42
Temperature/ControlModule/Home/Controller/RDSAirControlVC.xib

@@ -33,48 +33,42 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5d0-gu-6DK">
-                    <rect key="frame" x="0.0" y="0.0" width="405.33333333333331" height="491"/>
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="524.33333333333337"/>
                     <subviews>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kbl-WG-ZWC">
-                            <rect key="frame" x="52" y="96" width="301.33333333333331" height="256.33333333333331"/>
+                            <rect key="frame" x="53" y="96" width="308" height="261.66666666666669"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zyq-Wi-E9C">
-                                    <rect key="frame" x="27.666666666666686" y="0.0" width="246" height="246"/>
-                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <rect key="frame" x="31" y="0.0" width="246" height="246"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="246" id="DcU-y6-orW"/>
                                         <constraint firstAttribute="width" constant="246" id="ZYE-41-BFr"/>
                                     </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
-                                            <integer key="value" value="123"/>
-                                        </userDefinedRuntimeAttribute>
-                                        <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
-                                    </userDefinedRuntimeAttributes>
                                 </view>
                                 <view userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uRf-pJ-KLN">
-                                    <rect key="frame" x="42.666666666666686" y="0.0" width="216" height="216.33333333333334"/>
+                                    <rect key="frame" x="43.333333333333329" y="0.0" width="221.66666666666669" height="221.66666666666666"/>
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="28" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q5M-Lo-zcy">
-                                            <rect key="frame" x="78.333333333333329" y="80" width="59.666666666666671" height="56.333333333333343"/>
+                                            <rect key="frame" x="81.000000000000014" y="82.666666666666657" width="59.666666666666671" height="56.333333333333343"/>
                                             <fontDescription key="fontDescription" type="boldSystem" pointSize="47"/>
                                             <color key="textColor" red="0.15294117647058825" green="0.1803921568627451" blue="0.23137254901960785" alpha="1" colorSpace="calibratedRGB"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="℃" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9yS-2d-GcF">
-                                            <rect key="frame" x="138" y="86" width="29.666666666666657" height="30"/>
+                                            <rect key="frame" x="140.66666666666669" y="88.666666666666657" width="29.666666666666657" height="30"/>
                                             <fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
                                             <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="制冷 一档" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V8e-c8-QWi">
-                                            <rect key="frame" x="79.999999999999986" y="139.33333333333331" width="56.333333333333329" height="15.666666666666657"/>
+                                            <rect key="frame" x="82.666666666666671" y="142" width="56.333333333333329" height="15.666666666666657"/>
                                             <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                             <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="定时:开" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9CL-54-bjP">
-                                            <rect key="frame" x="81.333333333333329" y="160" width="53.333333333333329" height="15.666666666666657"/>
+                                            <rect key="frame" x="84.000000000000014" y="162.66666666666669" width="53.333333333333329" height="15.666666666666657"/>
                                             <fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
                                             <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                             <nil key="highlightedColor"/>
@@ -94,7 +88,7 @@
                                     </constraints>
                                 </view>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9uN-a5-kmu">
-                                    <rect key="frame" x="7.6666666666666643" y="216.33333333333331" width="40" height="40"/>
+                                    <rect key="frame" x="20" y="221.66666666666669" width="40" height="40"/>
                                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="40" id="JZk-up-fMK"/>
@@ -107,7 +101,7 @@
                                     </connections>
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Exg-z6-gwm">
-                                    <rect key="frame" x="238.66666666666669" y="216.33333333333331" width="40" height="40"/>
+                                    <rect key="frame" x="248" y="221.66666666666669" width="40" height="40"/>
                                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="40" id="m2H-WE-Mc7"/>
@@ -126,16 +120,16 @@
                                 <constraint firstItem="uRf-pJ-KLN" firstAttribute="top" secondItem="Kbl-WG-ZWC" secondAttribute="top" id="5x9-zr-gli"/>
                                 <constraint firstAttribute="bottom" secondItem="Exg-z6-gwm" secondAttribute="bottom" id="Bgl-gA-6SV"/>
                                 <constraint firstAttribute="width" secondItem="Kbl-WG-ZWC" secondAttribute="height" multiplier="10:8.5" id="F8E-TE-bs0"/>
+                                <constraint firstItem="9uN-a5-kmu" firstAttribute="leading" secondItem="Kbl-WG-ZWC" secondAttribute="leading" constant="20" id="H3X-qB-CRS"/>
                                 <constraint firstItem="Zyq-Wi-E9C" firstAttribute="top" secondItem="Kbl-WG-ZWC" secondAttribute="top" id="KRs-vo-blP"/>
                                 <constraint firstAttribute="bottom" secondItem="9uN-a5-kmu" secondAttribute="bottom" id="MGU-rb-05L"/>
-                                <constraint firstItem="Exg-z6-gwm" firstAttribute="leading" secondItem="uRf-pJ-KLN" secondAttribute="trailing" constant="-20" id="Q6d-Hv-WMO"/>
-                                <constraint firstItem="Zyq-Wi-E9C" firstAttribute="leading" secondItem="9uN-a5-kmu" secondAttribute="trailing" constant="-20" id="W6q-c7-kPw"/>
                                 <constraint firstItem="Zyq-Wi-E9C" firstAttribute="centerX" secondItem="Kbl-WG-ZWC" secondAttribute="centerX" id="pM3-GX-BLI"/>
+                                <constraint firstAttribute="trailing" secondItem="Exg-z6-gwm" secondAttribute="trailing" constant="20" id="slE-rI-uRZ"/>
                                 <constraint firstItem="9uN-a5-kmu" firstAttribute="top" secondItem="uRf-pJ-KLN" secondAttribute="bottom" id="tDm-DK-4cL"/>
                             </constraints>
                         </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uPo-GP-WtY">
-                            <rect key="frame" x="22" y="306" width="361.33333333333331" height="80"/>
+                            <rect key="frame" x="26.666666666666657" y="339.33333333333331" width="360.66666666666674" height="80"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="13℃" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="waa-oO-0Y0">
                                     <rect key="frame" x="23.666666666666668" y="42" width="34.666666666666657" height="25.333333333333329"/>
@@ -144,38 +138,54 @@
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="52%" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VS1-fQ-gMA">
-                                    <rect key="frame" x="114.99999999999999" y="42" width="39.333333333333329" height="25.333333333333329"/>
+                                    <rect key="frame" x="114.66666666666667" y="42" width="39.333333333333329" height="25.333333333333329"/>
                                     <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="18"/>
                                     <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_temperature_g" translatesAutoresizingMaskIntoConstraints="NO" id="1DD-Tr-TNt">
+                                <imageView clipsSubviews="YES" tag="100" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_temperature_g" translatesAutoresizingMaskIntoConstraints="NO" id="1DD-Tr-TNt">
                                     <rect key="frame" x="27" y="12" width="28" height="28"/>
+                                    <gestureRecognizers/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="28" id="Kw1-iD-FQk"/>
                                         <constraint firstAttribute="height" constant="28" id="LUY-AY-Oly"/>
                                     </constraints>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="TG0-7g-YTD" appends="YES" id="iYH-fQ-9oo"/>
+                                    </connections>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_humidity_g" translatesAutoresizingMaskIntoConstraints="NO" id="Byx-CF-qt6">
-                                    <rect key="frame" x="120.66666666666666" y="12" width="28" height="28"/>
+                                <imageView clipsSubviews="YES" tag="101" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_humidity_g" translatesAutoresizingMaskIntoConstraints="NO" id="Byx-CF-qt6">
+                                    <rect key="frame" x="120.33333333333331" y="12" width="28" height="28"/>
+                                    <gestureRecognizers/>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="0yy-fo-dxO" appends="YES" id="OYw-K0-d8d"/>
+                                    </connections>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_pm2.5_g" translatesAutoresizingMaskIntoConstraints="NO" id="QY3-Lp-b97">
-                                    <rect key="frame" x="212.66666666666666" y="12" width="28" height="28"/>
+                                <imageView clipsSubviews="YES" tag="102" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_pm2.5_g" translatesAutoresizingMaskIntoConstraints="NO" id="QY3-Lp-b97">
+                                    <rect key="frame" x="212.33333333333334" y="12" width="28" height="28"/>
+                                    <gestureRecognizers/>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="5Kr-OV-gFo" appends="YES" id="GY8-V0-Hc0"/>
+                                    </connections>
                                 </imageView>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_co2_g" translatesAutoresizingMaskIntoConstraints="NO" id="FUb-zI-XCf">
-                                    <rect key="frame" x="311.33333333333331" y="12" width="28" height="28"/>
+                                <imageView clipsSubviews="YES" tag="103" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_co2_g" translatesAutoresizingMaskIntoConstraints="NO" id="FUb-zI-XCf">
+                                    <rect key="frame" x="310.66666666666663" y="12" width="28" height="28"/>
+                                    <gestureRecognizers/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="28" id="wKf-yq-LUl"/>
                                     </constraints>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="y2h-fj-csE" appends="YES" id="k2t-yH-93j"/>
+                                    </connections>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="400" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ppq-FP-eCW">
-                                    <rect key="frame" x="210.33333333333334" y="42" width="32.666666666666657" height="25.333333333333329"/>
+                                    <rect key="frame" x="210" y="42" width="32.666666666666657" height="25.333333333333329"/>
                                     <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="18"/>
                                     <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="480" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zAt-Qd-zbU">
-                                    <rect key="frame" x="309" y="42" width="32.666666666666686" height="25.333333333333329"/>
+                                    <rect key="frame" x="308.33333333333331" y="42" width="32.666666666666686" height="25.333333333333329"/>
                                     <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="18"/>
                                     <color key="textColor" red="0.1529411765" green="0.18039215689999999" blue="0.23137254900000001" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
@@ -209,17 +219,17 @@
                             </userDefinedRuntimeAttributes>
                         </view>
                         <view multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8ya-bf-jnR">
-                            <rect key="frame" x="22" y="406" width="361.33333333333331" height="85"/>
+                            <rect key="frame" x="26.666666666666657" y="439.33333333333331" width="360.66666666666674" height="84.999999999999943"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_fan" translatesAutoresizingMaskIntoConstraints="NO" id="xJ6-9s-4Dp">
-                                    <rect key="frame" x="18" y="31.666666666666686" width="22" height="22"/>
+                                    <rect key="frame" x="17.999999999999996" y="31.333333333333314" width="22.000000000000004" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="22" id="egO-gM-gaS"/>
                                         <constraint firstAttribute="height" constant="22" id="kFy-1K-rQv"/>
                                     </constraints>
                                 </imageView>
                                 <slider opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1" minValue="0.0" maxValue="5" translatesAutoresizingMaskIntoConstraints="NO" id="bsh-mP-EHO" customClass="RDSlider">
-                                    <rect key="frame" x="47" y="27.666666666666686" width="298.33333333333331" height="31"/>
+                                    <rect key="frame" x="47" y="27.333333333333314" width="297.66666666666669" height="31"/>
                                     <connections>
                                         <action selector="onFanSliderValueChanged:" destination="-1" eventType="valueChanged" id="b5Z-LI-KwP"/>
                                         <action selector="onFanSliderValueDidChanged:" destination="-1" eventType="touchUpInside" id="mve-tQ-Mbn"/>
@@ -233,12 +243,10 @@
                                 <constraint firstItem="xJ6-9s-4Dp" firstAttribute="centerY" secondItem="8ya-bf-jnR" secondAttribute="centerY" id="QRo-N3-bft"/>
                                 <constraint firstItem="xJ6-9s-4Dp" firstAttribute="leading" secondItem="8ya-bf-jnR" secondAttribute="leading" constant="18" id="Qno-pJ-qLk"/>
                                 <constraint firstAttribute="trailing" secondItem="bsh-mP-EHO" secondAttribute="trailing" constant="18" id="RHT-fW-csw"/>
-                                <constraint firstAttribute="width" secondItem="8ya-bf-jnR" secondAttribute="height" multiplier="34:8" id="rcN-wW-Qcw"/>
                                 <constraint firstItem="bsh-mP-EHO" firstAttribute="centerY" secondItem="8ya-bf-jnR" secondAttribute="centerY" id="xs3-4R-DGx"/>
                             </constraints>
                             <userDefinedRuntimeAttributes>
                                 <userDefinedRuntimeAttribute type="string" keyPath="layer.cornerRadius" value="16"/>
-                                <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
                             </userDefinedRuntimeAttributes>
                         </view>
                     </subviews>
@@ -256,10 +264,10 @@
                     </constraints>
                 </view>
                 <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="dih-XE-4lS">
-                    <rect key="frame" x="23" y="551" width="359.33333333333331" height="70"/>
+                    <rect key="frame" x="23" y="568.33333333333337" width="368" height="71.666666666666629"/>
                     <subviews>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VkB-sk-GuN">
-                            <rect key="frame" x="0.0" y="0.0" width="82.333333333333329" height="70"/>
+                            <rect key="frame" x="0.0" y="0.0" width="84.666666666666671" height="71.666666666666671"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" image="icon_newair"/>
                             <state key="selected" image="icon_newair_sel"/>
@@ -272,7 +280,7 @@
                             </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4FE-si-qMp">
-                            <rect key="frame" x="92.333333333333343" y="0.0" width="82.333333333333343" height="70"/>
+                            <rect key="frame" x="94.666666666666686" y="0.0" width="84.333333333333314" height="71.666666666666671"/>
                             <constraints>
                                 <constraint firstAttribute="width" secondItem="4FE-si-qMp" secondAttribute="height" multiplier="100:85" id="uoc-6y-T8v"/>
                             </constraints>
@@ -288,7 +296,7 @@
                             </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bXy-UU-gfP">
-                            <rect key="frame" x="184.66666666666666" y="0.0" width="82.333333333333343" height="70"/>
+                            <rect key="frame" x="189" y="0.0" width="84.666666666666686" height="71.666666666666671"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" image="icon_sleep"/>
                             <state key="selected" image="icon_sleep_sel"/>
@@ -297,7 +305,7 @@
                             </connections>
                         </button>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eIS-2H-B8e">
-                            <rect key="frame" x="277" y="0.0" width="82.333333333333314" height="70"/>
+                            <rect key="frame" x="283.66666666666669" y="0.0" width="84.333333333333314" height="71.666666666666671"/>
                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                             <state key="normal" title="" image="icon_time"/>
                             <state key="selected" image="icon_time_sel"/>
@@ -326,14 +334,34 @@
                 <constraint firstItem="Kbl-WG-ZWC" firstAttribute="width" secondItem="i5M-Pr-FkT" secondAttribute="width" multiplier="290:390" id="GUZ-Ao-18M"/>
                 <constraint firstItem="dih-XE-4lS" firstAttribute="leading" secondItem="Q5M-cg-NOt" secondAttribute="leading" constant="23" id="SxW-2a-T3Q"/>
                 <constraint firstItem="8ya-bf-jnR" firstAttribute="width" secondItem="Q5M-cg-NOt" secondAttribute="width" multiplier="340:390" id="XBc-qX-5yd"/>
-                <constraint firstItem="Q5M-cg-NOt" firstAttribute="bottom" secondItem="dih-XE-4lS" secondAttribute="bottom" constant="51" id="hxc-Od-O5B"/>
-                <constraint firstItem="dih-XE-4lS" firstAttribute="top" secondItem="5d0-gu-6DK" secondAttribute="bottom" constant="60" id="j74-Kh-aju"/>
+                <constraint firstItem="Q5M-cg-NOt" firstAttribute="bottom" secondItem="dih-XE-4lS" secondAttribute="bottom" constant="32" id="hxc-Od-O5B"/>
+                <constraint firstItem="dih-XE-4lS" firstAttribute="top" secondItem="5d0-gu-6DK" secondAttribute="bottom" constant="44" id="j74-Kh-aju"/>
                 <constraint firstItem="5d0-gu-6DK" firstAttribute="top" secondItem="Q5M-cg-NOt" secondAttribute="top" id="leH-Yn-2Sh"/>
                 <constraint firstItem="Q5M-cg-NOt" firstAttribute="trailing" secondItem="dih-XE-4lS" secondAttribute="trailing" constant="23" id="mUt-ir-gUR"/>
             </constraints>
             <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" translucent="NO" prompted="NO"/>
             <point key="canvasLocation" x="130.40000000000001" y="18.440779610194905"/>
         </view>
+        <tapGestureRecognizer id="TG0-7g-YTD">
+            <connections>
+                <action selector="didTapIcon:" destination="-1" id="kMX-gO-ce1"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="0yy-fo-dxO">
+            <connections>
+                <action selector="didTapHumidity:" destination="-1" id="Vqn-vK-VDX"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="5Kr-OV-gFo">
+            <connections>
+                <action selector="didTapPm25:" destination="-1" id="sVK-ZT-765"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="y2h-fj-csE">
+            <connections>
+                <action selector="didTapCo2:" destination="-1" id="Zq9-zm-OMQ"/>
+            </connections>
+        </tapGestureRecognizer>
     </objects>
     <resources>
         <image name="icon_add_1" width="40" height="40"/>

+ 8 - 0
Temperature/ControlModule/Home/Controller/RDSHomeVC.m

@@ -81,6 +81,7 @@ static NSString * const RDSRoomCellID = @"RDSRoomCellID";
             [weakSelf p_refreshUserInfo];
             [weakSelf p_getHomeDetail];
             [weakSelf p_getWeather];
+            [weakSelf p_getWelcomeMessage];
         }
     }];
 }
@@ -96,6 +97,13 @@ static NSString * const RDSRoomCellID = @"RDSRoomCellID";
     }];
 }
 
+- (void)p_getWelcomeMessage {
+    RDS_WEAKSELF(weakSelf)
+    [RDSSystemParameterModel rds_getWelcomeMessageFinished:^(RDSSystemParameterModel * _Nullable systemParameter, NSError * _Nullable error) {
+        weakSelf.topView.systemParameter = systemParameter;
+    }];
+}
+
 // 弃用
 - (void)p_getRoomList{
     RDS_WEAKSELF(weakSelf)

+ 8 - 0
Temperature/ControlModule/Home/Controller/RDSSelectDeviceSubVC.m

@@ -72,6 +72,14 @@
     [self.parentViewController.navigationController pushViewController:resetDeviceVC animated:YES];
 }
 
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
+    return 20;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
+    return CGFLOAT_MIN;
+}
+
 - (NSArray *)dataSource {
     if (!_dataSource) {
         _dataSource = [NSArray array];

+ 19 - 6
Temperature/ControlModule/Home/Controller/RDSSubControlVC.m

@@ -10,10 +10,10 @@
 #import "RDSlider.h"
 #import "GCDTimer.h"// 轮询定时器
 #import "RDSRoomSetVC.h"
-
+#import "RDSUserProtocolViewController.h"
 #import "UIImage+Extension.h"
 
-@interface RDSSubControlVC ()<senderValueChangeDelegate,UIGestureRecognizerDelegate>
+@interface RDSSubControlVC () <senderValueChangeDelegate, UIGestureRecognizerDelegate>
 
 @property (nonatomic,strong) CYCircularSlider *cirSlider;// 温度圆形滑条
 
@@ -74,7 +74,7 @@
     
 
     
-    CGFloat width = 220;
+    CGFloat width = 300;
     _cirSlider =[[CYCircularSlider alloc]initWithFrame:CGRectMake((246 - width) / 2, (246 - width) / 2, width, width)];
     _cirSlider.delegate = self;
     _cirSlider.backgroundColor = UIColor.clearColor;
@@ -109,14 +109,27 @@
 }
 
 
-- (void)onEditAction{
-    
+- (void)onEditAction {
     RDSRoomSetVC *vc = [[RDSRoomSetVC alloc] init];
     vc.roomModel = _roomModel;
     [self pushViewController:vc animated:YES];
-    
 }
 
+- (IBAction)didTapTemperature:(id)sender {
+    [self openPageWithType:@"temp" title:@"温度"];
+}
+
+- (IBAction)didTapHumidity:(id)sender {
+    [self openPageWithType:@"humidity" title:@"湿度"];
+}
+
+- (void)openPageWithType:(NSString *)type title:(NSString *)title {
+    NSString *urlStr = [NSString stringWithFormat:@"%@/#/DataChart/%@/%@", kBaseUrlHeadImg, self.roomModel.record_id, type];
+    RDSUserProtocolViewController *vc = [[RDSUserProtocolViewController alloc] init];
+    vc.url = urlStr;
+    vc.vcTitle = title;
+    [self pushViewController:vc animated:YES];
+}
 
 #pragma mark - Action 设备控制
 

+ 19 - 7
Temperature/ControlModule/Home/Controller/RDSSubControlVC.xib

@@ -33,17 +33,11 @@
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kGa-cc-CSP">
                                     <rect key="frame" x="16.5" y="0.0" width="246" height="246"/>
-                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="246" id="36f-Yf-hnQ"/>
                                         <constraint firstAttribute="width" constant="246" id="3LX-zs-txc"/>
                                     </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
-                                            <integer key="value" value="123"/>
-                                        </userDefinedRuntimeAttribute>
-                                        <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
-                                    </userDefinedRuntimeAttributes>
                                 </view>
                                 <view userInteractionEnabled="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dfv-82-UbI">
                                     <rect key="frame" x="34" y="0.0" width="211" height="211"/>
@@ -149,9 +143,17 @@
                                 </label>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_temperature" translatesAutoresizingMaskIntoConstraints="NO" id="uiD-01-wNT">
                                     <rect key="frame" x="60" y="16" width="24" height="24"/>
+                                    <gestureRecognizers/>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="iNx-oW-8av" appends="YES" id="vKc-bh-6WZ"/>
+                                    </connections>
                                 </imageView>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_humidity_g" translatesAutoresizingMaskIntoConstraints="NO" id="Lpc-I3-FYW">
                                     <rect key="frame" x="154" y="14" width="28" height="28"/>
+                                    <gestureRecognizers/>
+                                    <connections>
+                                        <outletCollection property="gestureRecognizers" destination="Vn4-0R-ux8" appends="YES" id="tN5-14-1rr"/>
+                                    </connections>
                                 </imageView>
                             </subviews>
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@@ -247,6 +249,16 @@
             </constraints>
             <point key="canvasLocation" x="93.599999999999994" y="20.239880059970016"/>
         </view>
+        <tapGestureRecognizer id="iNx-oW-8av">
+            <connections>
+                <action selector="didTapTemperature:" destination="-1" id="nmB-PJ-xWC"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="Vn4-0R-ux8">
+            <connections>
+                <action selector="didTapHumidity:" destination="-1" id="ive-Ny-Xjm"/>
+            </connections>
+        </tapGestureRecognizer>
     </objects>
     <resources>
         <image name="icon_add_1" width="40" height="40"/>

+ 25 - 0
Temperature/ControlModule/Home/Model/RDSSystemParameterModel.h

@@ -0,0 +1,25 @@
+//
+//  RDSSystemParameterModel.h
+//  Temperature
+//
+//  Created by 姓二名哈字富贵儿 on 2023/8/30.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface RDSSystemParameterModel : NSObject
+
+@property (nonatomic, copy) NSString *record_id;
+@property (nonatomic, copy) NSString *code;
+@property (nonatomic, copy) NSString *name;
+@property (nonatomic, copy) NSString *nameValue;
+@property (nonatomic, copy) NSString *status;
+@property (nonatomic, copy) NSString *memo;
+
++ (void)rds_getWelcomeMessageFinished:(void(^)(RDSSystemParameterModel * _Nullable systemParameter, NSError * _Nullable error))finished;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 39 - 0
Temperature/ControlModule/Home/Model/RDSSystemParameterModel.m

@@ -0,0 +1,39 @@
+//
+//  RDSSystemParameterModel.m
+//  Temperature
+//
+//  Created by 姓二名哈字富贵儿 on 2023/8/30.
+//
+
+#import "RDSSystemParameterModel.h"
+
+@implementation RDSSystemParameterModel
+
+- (instancetype)init {
+    self = [super init];
+    if (self) {
+        self.nameValue = @"感谢使用五恒健康系统";
+    }
+    return self;
+}
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName {
+    return @{@"nameValue": @"value"};
+}
+
++ (void)rds_getWelcomeMessageFinished:(void (^)(RDSSystemParameterModel * _Nullable, NSError * _Nullable))finished {
+    [RDSDemoApiHelper rds_getWelcomeMessageSuccess:^(id responseObject) {
+        if ([responseObject[@"code"] intValue] == 0) {
+            NSDictionary *data = responseObject[@"data"];
+            RDSSystemParameterModel *model = [RDSSystemParameterModel mj_objectWithKeyValues:data];
+            BLOCK_SAFE_RUN(finished, model, nil)
+        } else{
+            NSError *error = [NSError errorWithDomain:responseObject[@"message"] code:[responseObject[@"code"] intValue] userInfo:nil];
+            BLOCK_SAFE_RUN(finished, nil, error)
+        }
+    } failure:^(NSError *error) {
+        BLOCK_SAFE_RUN(finished, nil, error)
+    }];
+}
+
+@end

+ 117 - 10
Temperature/ControlModule/Home/View/RDSDeviceTypeCell.m

@@ -6,11 +6,19 @@
 //
 
 #import "RDSDeviceTypeCell.h"
+#import <SDWebImage/UIImageView+WebCache.h>
 
 @interface RDSDeviceTypeCell ()
 
+@property (nonatomic, strong) UIView *containerView;
 @property (nonatomic, strong) UIImageView *deviceTypeView;
+@property (nonatomic, strong) UILabel *nameLabel;
+@property (nonatomic, strong) UILabel *englishNameLabel;
+@property (nonatomic, strong) UIView *circularView;
+
 @property (nonatomic, strong) NSDictionary *codeToNameDic;
+@property (nonatomic, strong) NSDictionary *codeToContainerColorDic;
+@property (nonatomic, strong) NSDictionary *codeToCircularColorDic;
 
 @end
 
@@ -20,30 +28,129 @@
     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
     if (self) {
         self.contentView.backgroundColor = [UIColor colorWithHexString:@"#FBFBFB"];
-        self.deviceTypeView = [[UIImageView alloc] init];
-        [self.contentView addSubview:self.deviceTypeView];
-        [self.deviceTypeView mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        self.containerView = [[UIView alloc] initWithFrame:CGRectMake(20, 0, SCREEN_WIDTH - 40, 110 * SCREEN_WIDTH / 375)];
+        self.containerView.layer.cornerRadius = 6;
+        self.containerView.layer.masksToBounds = YES;
+        [self.contentView addSubview:self.containerView];
+        [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
             make.edges.mas_equalTo(UIEdgeInsetsMake(0, 20, 0, 20));
-            make.height.equalTo(self.deviceTypeView.mas_width).multipliedBy(0.328);
+            make.height.mas_equalTo(110.0 * SCREEN_WIDTH / 375.0);
+        }];
+        
+        CGRect deviceTypeViewFrame = CGRectMake(36, (self.containerView.frame.size.height - 45) / 2, 45, 45);
+        
+        self.circularView = [[UIView alloc] initWithFrame:CGRectMake(deviceTypeViewFrame.origin.x + 27, deviceTypeViewFrame.origin.y + 25, 30, 30)];
+        self.circularView.layer.cornerRadius = 15;
+        self.circularView.layer.masksToBounds = YES;
+        [self.containerView addSubview:self.circularView];
+        
+        self.deviceTypeView = [[UIImageView alloc] initWithFrame:deviceTypeViewFrame];
+        [self.containerView addSubview:self.deviceTypeView];
+        [self.deviceTypeView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.centerY.mas_equalTo(0);
+            make.left.mas_equalTo(36);
+            make.size.mas_equalTo(45);
+        }];
+        
+        self.nameLabel = [[UILabel alloc] init];
+        self.nameLabel.font = [UIFont pingFangSCMediumOfSize:18];
+        self.nameLabel.textColor = [UIColor colorWithHexString:@"#31517D"];
+        [self.containerView addSubview:self.nameLabel];
+        [self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.equalTo(self.deviceTypeView.mas_right).offset(40);
+            make.centerY.mas_equalTo(-11);
+            make.height.mas_equalTo(25);
+            make.right.mas_equalTo(-36);
         }];
+        
+        self.englishNameLabel = [[UILabel alloc] init];
+        self.englishNameLabel.font = [UIFont pingFangSCRegularOfSize:13];
+        self.englishNameLabel.textColor = [UIColor colorWithHexString:@"#31517D"];
+        [self.containerView addSubview:self.englishNameLabel];
+        [self.englishNameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.right.equalTo(self.nameLabel);
+            make.height.mas_equalTo(18);
+            make.top.equalTo(self.nameLabel.mas_bottom).offset(5);
+        }];
+        
+        
     }
     return self;
 }
 
 - (void)setDeviceTypeModel:(RDSDeviceTypeModel *)deviceTypeModel {
     _deviceTypeModel = deviceTypeModel;
-    self.deviceTypeView.image = [UIImage imageNamed:self.codeToNameDic[deviceTypeModel.code]];
+    for (CALayer *sublayer in self.containerView.layer.sublayers) {
+        if ([sublayer isKindOfClass:[CAGradientLayer class]]) {
+            [sublayer removeFromSuperlayer];
+            break;
+        }
+    }
+    [self.containerView.layer addSublayer:self.codeToContainerColorDic[deviceTypeModel.code]];
+    
+    for (CALayer *sublayer in self.circularView.layer.sublayers) {
+        if ([sublayer isKindOfClass:[CAGradientLayer class]]) {
+            [sublayer removeFromSuperlayer];
+            break;
+        }
+    }
+    [self.circularView.layer addSublayer:self.codeToCircularColorDic[deviceTypeModel.code]];
+    
+    [self.deviceTypeView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@", TheApiHelper.baseUrlHeadImg, deviceTypeModel.icon]] placeholderImage:[UIImage imageNamed:@"icon_fluorine_sub_controller"]];
+    self.nameLabel.text = deviceTypeModel.name;
+    self.englishNameLabel.text = self.codeToNameDic[deviceTypeModel.code];
 }
 
 - (NSDictionary *)codeToNameDic {
     if (!_codeToNameDic) {
-        _codeToNameDic = @{@"YXK-Z/86-FG-A": @"type_fluorine_main_controller",
-                           @"YXK-F/86-FG-A": @"type_fluorine_sub_controller",
-                           @"YXK-Z/86-FC-B": @"type_water_main_controller",
-                           @"YXK-F/86-FC-B": @"type_water_sub_controller",
-                           @"YXK-P/DN-JF-8": @"type_intelligent_water_collector"};
+        _codeToNameDic = @{@"YXK-Z/86-FG-A": @"main controller",
+                           @"YXK-F/86-FG-A": @"sub controller",
+                           @"YXK-Z/86-FC-B": @"main controller",
+                           @"YXK-F/86-FC-B": @"sub controller",
+                           @"YXK-P/DN-JF-8": @"intelligent water collector"};
     }
     return _codeToNameDic;
 }
 
+- (NSDictionary *)codeToContainerColorDic {
+    if (!_codeToContainerColorDic) {
+        _codeToContainerColorDic = @{@"YXK-Z/86-FG-A": [self containerViewLayerWithColorStart:@"#97C2FF" colorEnd:@"#5198FD"],
+                                     @"YXK-F/86-FG-A": [self containerViewLayerWithColorStart:@"#FAE06A" colorEnd:@"#F0B756"],
+                                     @"YXK-Z/86-FC-B": [self containerViewLayerWithColorStart:@"#8BFAE1" colorEnd:@"#21B191"],
+                                     @"YXK-F/86-FC-B": [self containerViewLayerWithColorStart:@"#55DCDF" colorEnd:@"#4AB0E4"],
+                                     @"YXK-P/DN-JF-8": [self containerViewLayerWithColorStart:@"#B1EB5C" colorEnd:@"#60A736"]};
+    }
+    return _codeToContainerColorDic;
+}
+
+- (NSDictionary *)codeToCircularColorDic {
+    if (!_codeToCircularColorDic) {
+        _codeToCircularColorDic = @{@"YXK-Z/86-FG-A": [self circularViewLayerWithColorStart:@"#97C2FF" colorEnd:@"#5198FD"],
+                                    @"YXK-F/86-FG-A": [self circularViewLayerWithColorStart:@"#FAE06A" colorEnd:@"#F0B756"],
+                                    @"YXK-Z/86-FC-B": [self circularViewLayerWithColorStart:@"#8BFAE1" colorEnd:@"#21B191"],
+                                    @"YXK-F/86-FC-B": [self circularViewLayerWithColorStart:@"#55DCDF" colorEnd:@"#4AB0E4"],
+                                    @"YXK-P/DN-JF-8": [self circularViewLayerWithColorStart:@"#B1EB5C" colorEnd:@"#60A736"]};
+    }
+    return _codeToCircularColorDic;
+}
+
+- (CAGradientLayer *)containerViewLayerWithColorStart:(NSString *)colorStart colorEnd:(NSString *)colorEnd {
+    return [self createGradientLayerWithColorStart:colorStart colorEnd:colorEnd frame:self.containerView.bounds alpha:0.1];
+}
+
+- (CAGradientLayer *)circularViewLayerWithColorStart:(NSString *)colorStart colorEnd:(NSString *)colorEnd {
+    return [self createGradientLayerWithColorStart:colorStart colorEnd:colorEnd frame:self.circularView.bounds alpha:0.2];
+}
+
+- (CAGradientLayer *)createGradientLayerWithColorStart:(NSString *)colorStart colorEnd:(NSString *)colorEnd frame:(CGRect)frame alpha:(CGFloat)alpha {
+    CAGradientLayer *gl = [CAGradientLayer layer];
+    gl.frame = frame;
+    gl.startPoint = CGPointMake(0.5, 0);
+    gl.endPoint = CGPointMake(0.5, 1);
+    gl.colors = @[(__bridge id)[UIColor colorWithHexString:colorStart alpha:alpha].CGColor, (__bridge id)[UIColor colorWithHexString:colorEnd alpha:alpha].CGColor];
+    gl.locations = @[@(0), @(1.0f)];
+    return gl;
+}
+
 @end

+ 4 - 0
Temperature/ControlModule/Home/View/RDSHomeTopView.h

@@ -7,6 +7,8 @@
 
 #import "RDSBaseXibView.h"
 #import "WeatherModel.h"
+#import "RDSSystemParameterModel.h"
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface RDSHomeTopView : RDSBaseXibView
@@ -16,6 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, copy) void(^onHeadClick)(void);
 
 @property (nonatomic, strong) WeatherModel *model;
+@property (nonatomic, strong) RDSSystemParameterModel *systemParameter;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 6 - 0
Temperature/ControlModule/Home/View/RDSHomeTopView.m

@@ -10,6 +10,7 @@
 
 @interface RDSHomeTopView ()
 @property (weak, nonatomic) IBOutlet UILabel *titleLab;
+@property (weak, nonatomic) IBOutlet UILabel *welcomeMessageLabel;
 
 @property (weak, nonatomic) IBOutlet UILabel *timeLab;
 
@@ -44,6 +45,11 @@
     _imgView.image = [UIImage imageNamed:[NSString stringWithFormat:@"icon_weather_%@", model.now.icon_code]];
 }
 
+- (void)setSystemParameter:(RDSSystemParameterModel *)systemParameter {
+    _systemParameter = systemParameter;
+    self.welcomeMessageLabel.text = systemParameter.nameValue;
+}
+
 - (IBAction)onHeadClickAction:(id)sender {
     BLOCK_SAFE_RUN(_onHeadClick)
 }

+ 3 - 2
Temperature/ControlModule/Home/View/RDSHomeTopView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -177,6 +177,7 @@
                 <outlet property="timeLab" destination="yPu-0P-vRr" id="lik-LY-XaI"/>
                 <outlet property="titleLab" destination="NBv-Ow-Fm1" id="vUb-bi-0yG"/>
                 <outlet property="weateherTextLab" destination="LWy-SL-mSE" id="4fs-0v-eAj"/>
+                <outlet property="welcomeMessageLabel" destination="Hrs-zT-bwP" id="Wvn-Ah-Kzu"/>
             </connections>
             <point key="canvasLocation" x="137.68115942028987" y="20.758928571428569"/>
         </view>

+ 8 - 5
Temperature/ControlModule/Home/View/RDSRoomCell.m

@@ -6,6 +6,7 @@
 //
 
 #import "RDSRoomCell.h"
+#import <SDWebImage/SDWebImage.h>
 
 @interface RDSRoomCell()
 
@@ -38,11 +39,13 @@
 - (void)setModel:(RDSRoomModel *)model {
     _model = model;
     self.roomNameLabel.text = model.name;
-    if (isEmptyString(model.code)) {
-        self.iconView.image = [UIImage imageNamed:@"icon_fluorine_sub_controller"];
-    } else {
-        self.iconView.image = [UIImage imageNamed:self.codeToNameDic[model.code]];
-    }
+//    if (isEmptyString(model.code)) {
+//        self.iconView.image = [UIImage imageNamed:@"icon_fluorine_sub_controller"];
+//    } else {
+//        self.iconView.image = [UIImage imageNamed:self.codeToNameDic[model.code]];
+//    }
+    [self.iconView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@", TheApiHelper.baseUrlHeadImg, model.icon]] placeholderImage:[UIImage imageNamed:@"icon_fluorine_sub_controller"]];
+    
     
     if (isEmptyString(model.device_type_name)) {
         self.deviceTypeLabel.text = @"分控制器";

+ 2 - 0
Temperature/ControlModule/Room/Model/RDSRoomModel.h

@@ -36,6 +36,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, strong) NSString *control_number; // 分控编号
 @property (nonatomic, strong) NSString *code;           // 设备类型 code
 @property (nonatomic, strong) NSString *device_type_name;
+@property (nonatomic, strong) NSString *icon;
+
 
 
 @property (nonatomic, strong) NSString *home_name;      // 家名称

+ 4 - 0
Temperature/NetWork/RDSDemoApiHelper.h

@@ -114,6 +114,10 @@ AS_SINGLETON(RDSDemoApiHelper)
 + (void)rds_getWeatherSuccess:(void (^)(id responseObject))success
                       failure:(void (^)(NSError *error))failure;
 
+/// 获取主页欢迎语
++ (void)rds_getWelcomeMessageSuccess:(void (^)(id responseObject))success
+                             failure:(void (^)(NSError *error))failure;
+
 #pragma mark - 用户信息
 /// 获取当前用户信息
 + (void)rds_getCurrentUserInfoSuccess:(void (^)(id responseObject))success

+ 9 - 0
Temperature/NetWork/RDSDemoApiHelper.m

@@ -314,6 +314,15 @@ DEF_SINGLETON(RDSDemoApiHelper)
                               progress:nil];
 }
 
++ (void)rds_getWelcomeMessageSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure {
+    [RDSDemoApiHelper getWithUrlString:@"system_parameter/app_homepage"
+                             paraments:nil
+                               headers:nil
+                               success:success
+                                  fail:failure
+                              progress:nil];
+}
+
 #pragma mark - 用户信息
 + (void)rds_getCurrentUserInfoSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
     

+ 7 - 2
Temperature/Tools/Slider/RDSlider.m

@@ -9,7 +9,7 @@
 
 @implementation RDSlider
 
-// 改变slider滑道的高
+// 改变slider滑道的高
 - (CGRect)trackRectForBounds:(CGRect)bounds {
     CGRect rect = bounds;
     rect.size.height = 10;
@@ -17,6 +17,11 @@
     return rect;
 }
 
-
+- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value {
+    CGRect tempRect = rect;
+    tempRect.origin.x = rect.origin.x - 40;
+    tempRect.size.width = rect.size.width + 80;
+    return CGRectInset([super thumbRectForBounds:bounds trackRect:tempRect value:value], 40, 40);
+}
 
 @end

部分文件因文件數量過多而無法顯示