time 6 年之前
父節點
當前提交
3c700ea12b
共有 27 個文件被更改,包括 608 次插入81 次删除
  1. 2 0
      shiku_im/Podfile
  2. 7 1
      shiku_im/Podfile.lock
  3. 104 58
      shiku_im/shiku_im.xcodeproj/project.pbxproj
  4. 4 0
      shiku_im/shiku_im/AppDelegate.h
  5. 21 0
      shiku_im/shiku_im/AppDelegate.mm
  6. 6 0
      shiku_im/shiku_im/Images.xcassets/ReactNative/Contents.json
  7. 6 0
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/Contents.json
  8. 23 0
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/Contents.json
  9. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen.png
  10. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@2x.png
  11. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@3x.png
  12. 23 0
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/Contents.json
  13. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon.png
  14. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@2x.png
  15. 二進制
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@3x.png
  16. 88 16
      shiku_im/shiku_im/RN/Controllers/YRReactVC.m
  17. 18 0
      shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.h
  18. 92 0
      shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.m
  19. 27 0
      shiku_im/shiku_im/RN/Models/YRRnBridge.h
  20. 41 4
      shiku_im/shiku_im/RN/Models/YRRnBridge.m
  21. 22 0
      shiku_im/shiku_im/RN/Models/YRRnInteraction.h
  22. 37 0
      shiku_im/shiku_im/RN/Models/YRRnInteraction.m
  23. 1 0
      shiku_im/shiku_im/controller/UASBaseVC.m
  24. 39 1
      shiku_im/shiku_im/controller/UASMainVC.m
  25. 21 0
      shiku_im/shiku_im/controller/myOA/UIDevice+extension.h
  26. 26 0
      shiku_im/shiku_im/controller/myOA/UIDevice+extension.m
  27. 0 1
      shiku_im/shiku_im/shiku_im-Info.plist

+ 2 - 0
shiku_im/Podfile

@@ -49,6 +49,8 @@ target 'shiku_im' do
   pod 'glog', podspec: './UU_RN/node_modules/react-native/third-party-podspecs/glog.podspec'
   pod 'Folly', podspec: './UU_RN/node_modules/react-native/third-party-podspecs/Folly.podspec'
   pod 'CodePush', :path => './UU_RN/node_modules/react-native-code-push'
+  pod 'react-native-orientation', :path => './UU_RN/node_modules/react-native-orientation'
+  
   #0.60.0以上新版本使用
 #  pod 'React', :path => './UU_RN/node_modules/react-native/'
 #  pod 'React-Core', :path => './UU_RN/node_modules/react-native/React'

+ 7 - 1
shiku_im/Podfile.lock

@@ -45,6 +45,8 @@ PODS:
   - pop (1.0.12)
   - React (0.59.9):
     - React/Core (= 0.59.9)
+  - react-native-orientation (3.1.3):
+    - React
   - React/Core (0.59.9):
     - yoga (= 0.59.9.React)
   - React/CxxBridge (0.59.9):
@@ -129,6 +131,7 @@ DEPENDENCIES:
   - MJExtension (= 3.0.10)
   - MJRefresh
   - pop
+  - react-native-orientation (from `./UU_RN/node_modules/react-native-orientation`)
   - React/Core (from `./UU_RN/node_modules/react-native`)
   - React/CxxBridge (from `./UU_RN/node_modules/react-native`)
   - React/DevSupport (from `./UU_RN/node_modules/react-native`)
@@ -184,6 +187,8 @@ EXTERNAL SOURCES:
     :podspec: "./UU_RN/node_modules/react-native/third-party-podspecs/glog.podspec"
   React:
     :path: "./UU_RN/node_modules/react-native"
+  react-native-orientation:
+    :path: "./UU_RN/node_modules/react-native-orientation"
   RNGestureHandler:
     :path: "./UU_RN/node_modules/react-native-gesture-handler"
   yoga:
@@ -209,6 +214,7 @@ SPEC CHECKSUMS:
   MJRefresh: ed450d6eb9d3346a2cb033ab7eb6de090aeef437
   pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
   React: 1d605e098d69bdf08960787f3446f0a9dc2e2ccf
+  react-native-orientation: 3d9a0a8273d18260f7528414093a6a36491382b6
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
   RNGestureHandler: 7ccf2f3f60458e084f9ada01fbaf610f6fef073c
   SDWebImage: 3f3f0c02f09798048c47a5ed0a13f17b063572d8
@@ -218,6 +224,6 @@ SPEC CHECKSUMS:
   WechatOpenSDK: 9b721089507c895d05f997408c30bb6e6f5f9b60
   yoga: 128daf064cacaede0c3bb27424b6b4c71052e6cd
 
-PODFILE CHECKSUM: a7427ed79027131c798a61cdaacdfea73b1b9f9c
+PODFILE CHECKSUM: a42707a0298bb0bf53d873026337e053bfdbf4e0
 
 COCOAPODS: 1.5.2

+ 104 - 58
shiku_im/shiku_im.xcodeproj/project.pbxproj

@@ -1434,6 +1434,8 @@
 		8472A9F217B697E900129DBB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8472A9F117B697E900129DBB /* QuartzCore.framework */; };
 		8472A9F417B6980E00129DBB /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8472A9F317B6980E00129DBB /* CoreData.framework */; };
 		99040D7F2149F745004F5503 /* UASClientMapCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 99040D7E2149F745004F5503 /* UASClientMapCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		9911B8EC2308D6110064F498 /* UIDevice+extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 9911B8EB2308D6110064F498 /* UIDevice+extension.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		9911B8EF2308D93C0064F498 /* YRRnChartsAllVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9911B8EE2308D93C0064F498 /* YRRnChartsAllVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		9952309E21476AF900BBEFAD /* UASClientMaBoardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9952309D21476AF900BBEFAD /* UASClientMaBoardCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		995230A121476B2400BBEFAD /* UASClientMaForgetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 995230A021476B2400BBEFAD /* UASClientMaForgetCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		995230A421476B4000BBEFAD /* UASClientMaCarefulCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 995230A321476B4000BBEFAD /* UASClientMaCarefulCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
@@ -1472,23 +1474,21 @@
 		99C4544A217730DA0013FFC3 /* UASClientNodataCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C45449217730D90013FFC3 /* UASClientNodataCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99C8A818230397940073EF99 /* YRRnBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C8A817230397940073EF99 /* YRRnBridge.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99D0B9FA21378E4D0002DFC4 /* UINavigationController+popGes.m in Sources */ = {isa = PBXBuildFile; fileRef = 99D0B9F821378E4C0002DFC4 /* UINavigationController+popGes.m */; };
-		99D68BEE2304E7D600BB781A /* main.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BE12304E7D500BB781A /* main.jsbundle */; };
-		99D68BEF2304E7D600BB781A /* app.json in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BE32304E7D500BB781A /* app.json */; };
-		99D68BF02304E7D600BB781A /* back-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BEA2304E7D500BB781A /* back-icon@3x.png */; };
-		99D68BF12304E7D600BB781A /* back-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BEB2304E7D500BB781A /* back-icon@2x.png */; };
-		99D68BF22304E7D600BB781A /* back-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BEC2304E7D500BB781A /* back-icon.png */; };
-		99D68BF32304E7D600BB781A /* back-icon-mask.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BED2304E7D500BB781A /* back-icon-mask.png */; };
-		99D68BF72305501E00BB781A /* back-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BF42305501D00BB781A /* back-icon.png */; };
-		99D68BF82305501E00BB781A /* back-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BF52305501D00BB781A /* back-icon@2x.png */; };
-		99D68BF92305501E00BB781A /* back-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99D68BF62305501E00BB781A /* back-icon@3x.png */; };
 		99D9586721211D0100B44CA7 /* UASCountDownView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99D9586621211D0100B44CA7 /* UASCountDownView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99D9586D2121231B00B44CA7 /* UASAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99D9586C2121231B00B44CA7 /* UASAdView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99E43E212152294100779FA5 /* UASClientForgetVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E43E202152294100779FA5 /* UASClientForgetVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99E43E242152295A00779FA5 /* UASClientCarefulVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E43E232152295A00779FA5 /* UASClientCarefulVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99E43E272152443200779FA5 /* UASClientTotalVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E43E262152443200779FA5 /* UASClientTotalVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		99E5957C2307E1130026D51A /* main.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 99E5956B2307E1120026D51A /* main.jsbundle */; };
+		99E5957D2307E1130026D51A /* back-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99E595732307E1120026D51A /* back-icon@3x.png */; };
+		99E5957E2307E1130026D51A /* back-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 99E595742307E1120026D51A /* back-icon@2x.png */; };
+		99E5957F2307E1130026D51A /* back-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 99E595752307E1120026D51A /* back-icon.png */; };
+		99E595802307E1130026D51A /* back-icon-mask.png in Resources */ = {isa = PBXBuildFile; fileRef = 99E595762307E1120026D51A /* back-icon-mask.png */; };
+		99E595812307E1130026D51A /* tpl.html in Resources */ = {isa = PBXBuildFile; fileRef = 99E5957B2307E1120026D51A /* tpl.html */; };
 		99E760F2212E8C3200A7A271 /* UASAddToScheVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E760F1212E8C3200A7A271 /* UASAddToScheVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99E760F8212E9E7800A7A271 /* FBShimmeringLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E760F3212E9E7600A7A271 /* FBShimmeringLayer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99E760F9212E9E7800A7A271 /* FBShimmeringView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E760F7212E9E7800A7A271 /* FBShimmeringView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+		99ED88C5230A3D8D0091B202 /* YRRnInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 99ED88C4230A3D8D0091B202 /* YRRnInteraction.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99EFABEC2148A15D00729D9A /* UASMyVisitVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99EFABEB2148A15D00729D9A /* UASMyVisitVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99EFABF22148E15500729D9A /* UASClientListVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 99EFABF12148E15500729D9A /* UASClientListVC.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99EFABF52148E38E00729D9A /* UASClientListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 99EFABF42148E38E00729D9A /* UASClientListCell.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
@@ -5084,6 +5084,10 @@
 		8472A9F317B6980E00129DBB /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
 		99040D7D2149F745004F5503 /* UASClientMapCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASClientMapCell.h; sourceTree = "<group>"; };
 		99040D7E2149F745004F5503 /* UASClientMapCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASClientMapCell.m; sourceTree = "<group>"; };
+		9911B8EA2308D6110064F498 /* UIDevice+extension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIDevice+extension.h"; sourceTree = "<group>"; };
+		9911B8EB2308D6110064F498 /* UIDevice+extension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIDevice+extension.m"; sourceTree = "<group>"; };
+		9911B8ED2308D93C0064F498 /* YRRnChartsAllVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YRRnChartsAllVC.h; sourceTree = "<group>"; };
+		9911B8EE2308D93C0064F498 /* YRRnChartsAllVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRRnChartsAllVC.m; sourceTree = "<group>"; };
 		9952309C21476AF900BBEFAD /* UASClientMaBoardCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASClientMaBoardCell.h; sourceTree = "<group>"; };
 		9952309D21476AF900BBEFAD /* UASClientMaBoardCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASClientMaBoardCell.m; sourceTree = "<group>"; };
 		9952309F21476B2400BBEFAD /* UASClientMaForgetCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASClientMaForgetCell.h; sourceTree = "<group>"; };
@@ -5157,15 +5161,6 @@
 		99C8A817230397940073EF99 /* YRRnBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRRnBridge.m; sourceTree = "<group>"; };
 		99D0B9F821378E4C0002DFC4 /* UINavigationController+popGes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UINavigationController+popGes.m"; sourceTree = "<group>"; };
 		99D0B9F921378E4C0002DFC4 /* UINavigationController+popGes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationController+popGes.h"; sourceTree = "<group>"; };
-		99D68BE12304E7D500BB781A /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
-		99D68BE32304E7D500BB781A /* app.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = app.json; sourceTree = "<group>"; };
-		99D68BEA2304E7D500BB781A /* back-icon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon@3x.png"; sourceTree = "<group>"; };
-		99D68BEB2304E7D500BB781A /* back-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon@2x.png"; sourceTree = "<group>"; };
-		99D68BEC2304E7D500BB781A /* back-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon.png"; sourceTree = "<group>"; };
-		99D68BED2304E7D500BB781A /* back-icon-mask.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon-mask.png"; sourceTree = "<group>"; };
-		99D68BF42305501D00BB781A /* back-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "back-icon.png"; path = "node_modules/react-navigation-stack/lib/module/views/assets/back-icon.png"; sourceTree = "<group>"; };
-		99D68BF52305501D00BB781A /* back-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "back-icon@2x.png"; path = "node_modules/react-navigation-stack/lib/module/views/assets/back-icon@2x.png"; sourceTree = "<group>"; };
-		99D68BF62305501E00BB781A /* back-icon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "back-icon@3x.png"; path = "node_modules/react-navigation-stack/lib/module/views/assets/back-icon@3x.png"; sourceTree = "<group>"; };
 		99D9586521211D0100B44CA7 /* UASCountDownView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASCountDownView.h; sourceTree = "<group>"; };
 		99D9586621211D0100B44CA7 /* UASCountDownView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASCountDownView.m; sourceTree = "<group>"; };
 		99D9586B2121231B00B44CA7 /* UASAdView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASAdView.h; sourceTree = "<group>"; };
@@ -5176,6 +5171,12 @@
 		99E43E232152295A00779FA5 /* UASClientCarefulVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASClientCarefulVC.m; sourceTree = "<group>"; };
 		99E43E252152443200779FA5 /* UASClientTotalVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASClientTotalVC.h; sourceTree = "<group>"; };
 		99E43E262152443200779FA5 /* UASClientTotalVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASClientTotalVC.m; sourceTree = "<group>"; };
+		99E5956B2307E1120026D51A /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
+		99E595732307E1120026D51A /* back-icon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon@3x.png"; sourceTree = "<group>"; };
+		99E595742307E1120026D51A /* back-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon@2x.png"; sourceTree = "<group>"; };
+		99E595752307E1120026D51A /* back-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon.png"; sourceTree = "<group>"; };
+		99E595762307E1120026D51A /* back-icon-mask.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "back-icon-mask.png"; sourceTree = "<group>"; };
+		99E5957B2307E1120026D51A /* tpl.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tpl.html; sourceTree = "<group>"; };
 		99E760F0212E8C3200A7A271 /* UASAddToScheVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASAddToScheVC.h; sourceTree = "<group>"; };
 		99E760F1212E8C3200A7A271 /* UASAddToScheVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASAddToScheVC.m; sourceTree = "<group>"; };
 		99E760F3212E9E7600A7A271 /* FBShimmeringLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBShimmeringLayer.m; sourceTree = "<group>"; };
@@ -5183,6 +5184,8 @@
 		99E760F5212E9E7700A7A271 /* FBShimmering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBShimmering.h; sourceTree = "<group>"; };
 		99E760F6212E9E7700A7A271 /* FBShimmeringView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBShimmeringView.h; sourceTree = "<group>"; };
 		99E760F7212E9E7800A7A271 /* FBShimmeringView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBShimmeringView.m; sourceTree = "<group>"; };
+		99ED88C3230A3D8D0091B202 /* YRRnInteraction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YRRnInteraction.h; sourceTree = "<group>"; };
+		99ED88C4230A3D8D0091B202 /* YRRnInteraction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YRRnInteraction.m; sourceTree = "<group>"; };
 		99EFABEA2148A15D00729D9A /* UASMyVisitVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASMyVisitVC.h; sourceTree = "<group>"; };
 		99EFABEB2148A15D00729D9A /* UASMyVisitVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UASMyVisitVC.m; sourceTree = "<group>"; };
 		99EFABF02148E15500729D9A /* UASClientListVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UASClientListVC.h; sourceTree = "<group>"; };
@@ -12054,6 +12057,15 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+		9911B8E92308D5CE0064F498 /* UIDevice */ = {
+			isa = PBXGroup;
+			children = (
+				9911B8EA2308D6110064F498 /* UIDevice+extension.h */,
+				9911B8EB2308D6110064F498 /* UIDevice+extension.m */,
+			);
+			name = UIDevice;
+			sourceTree = "<group>";
+		};
 		99B02ADC22EED6650014A144 /* RN */ = {
 			isa = PBXGroup;
 			children = (
@@ -12068,7 +12080,7 @@
 		99B02ADD22EED6650014A144 /* Others */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE02304E7D500BB781A /* bundle */,
+				99E5956A2307E1120026D51A /* bundle */,
 			);
 			path = Others;
 			sourceTree = "<group>";
@@ -12078,6 +12090,8 @@
 			children = (
 				99C8A816230397940073EF99 /* YRRnBridge.h */,
 				99C8A817230397940073EF99 /* YRRnBridge.m */,
+				99ED88C3230A3D8D0091B202 /* YRRnInteraction.h */,
+				99ED88C4230A3D8D0091B202 /* YRRnInteraction.m */,
 			);
 			path = Models;
 			sourceTree = "<group>";
@@ -12087,6 +12101,8 @@
 			children = (
 				99B02AE022EED6650014A144 /* YRReactVC.h */,
 				99B02AE122EED6650014A144 /* YRReactVC.m */,
+				9911B8ED2308D93C0064F498 /* YRRnChartsAllVC.h */,
+				9911B8EE2308D93C0064F498 /* YRRnChartsAllVC.m */,
 			);
 			path = Controllers;
 			sourceTree = "<group>";
@@ -12245,79 +12261,108 @@
 			path = TIPopGesture;
 			sourceTree = "<group>";
 		};
-		99D68BE02304E7D500BB781A /* bundle */ = {
+		99E5956A2307E1120026D51A /* bundle */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE12304E7D500BB781A /* main.jsbundle */,
-				99D68BE22304E7D500BB781A /* assets */,
+				99E5956B2307E1120026D51A /* main.jsbundle */,
+				99E5956C2307E1120026D51A /* assets */,
 			);
 			name = bundle;
 			path = UU_RN/bundle;
 			sourceTree = SOURCE_ROOT;
 		};
-		99D68BE22304E7D500BB781A /* assets */ = {
+		99E5956C2307E1120026D51A /* assets */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BF42305501D00BB781A /* back-icon.png */,
-				99D68BF52305501D00BB781A /* back-icon@2x.png */,
-				99D68BF62305501E00BB781A /* back-icon@3x.png */,
-				99D68BE32304E7D500BB781A /* app.json */,
-				99D68BE42304E7D500BB781A /* node_modules */,
+				99E5956D2307E1120026D51A /* node_modules */,
 			);
 			path = assets;
 			sourceTree = "<group>";
 		};
-		99D68BE42304E7D500BB781A /* node_modules */ = {
+		99E5956D2307E1120026D51A /* node_modules */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE52304E7D500BB781A /* react-navigation-stack */,
+				99E5956E2307E1120026D51A /* react-navigation-stack */,
+				99E595772307E1120026D51A /* native-echarts */,
 			);
 			path = node_modules;
 			sourceTree = "<group>";
 		};
-		99D68BE52304E7D500BB781A /* react-navigation-stack */ = {
+		99E5956E2307E1120026D51A /* react-navigation-stack */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE62304E7D500BB781A /* lib */,
+				99E5956F2307E1120026D51A /* lib */,
 			);
 			path = "react-navigation-stack";
 			sourceTree = "<group>";
 		};
-		99D68BE62304E7D500BB781A /* lib */ = {
+		99E5956F2307E1120026D51A /* lib */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE72304E7D500BB781A /* module */,
+				99E595702307E1120026D51A /* module */,
 			);
 			path = lib;
 			sourceTree = "<group>";
 		};
-		99D68BE72304E7D500BB781A /* module */ = {
+		99E595702307E1120026D51A /* module */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE82304E7D500BB781A /* views */,
+				99E595712307E1120026D51A /* views */,
 			);
 			path = module;
 			sourceTree = "<group>";
 		};
-		99D68BE82304E7D500BB781A /* views */ = {
+		99E595712307E1120026D51A /* views */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BE92304E7D500BB781A /* assets */,
+				99E595722307E1120026D51A /* assets */,
 			);
 			path = views;
 			sourceTree = "<group>";
 		};
-		99D68BE92304E7D500BB781A /* assets */ = {
+		99E595722307E1120026D51A /* assets */ = {
 			isa = PBXGroup;
 			children = (
-				99D68BEA2304E7D500BB781A /* back-icon@3x.png */,
-				99D68BEB2304E7D500BB781A /* back-icon@2x.png */,
-				99D68BEC2304E7D500BB781A /* back-icon.png */,
-				99D68BED2304E7D500BB781A /* back-icon-mask.png */,
+				99E595732307E1120026D51A /* back-icon@3x.png */,
+				99E595742307E1120026D51A /* back-icon@2x.png */,
+				99E595752307E1120026D51A /* back-icon.png */,
+				99E595762307E1120026D51A /* back-icon-mask.png */,
 			);
 			path = assets;
 			sourceTree = "<group>";
 		};
+		99E595772307E1120026D51A /* native-echarts */ = {
+			isa = PBXGroup;
+			children = (
+				99E595782307E1120026D51A /* src */,
+			);
+			path = "native-echarts";
+			sourceTree = "<group>";
+		};
+		99E595782307E1120026D51A /* src */ = {
+			isa = PBXGroup;
+			children = (
+				99E595792307E1120026D51A /* components */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		99E595792307E1120026D51A /* components */ = {
+			isa = PBXGroup;
+			children = (
+				99E5957A2307E1120026D51A /* Echarts */,
+			);
+			path = components;
+			sourceTree = "<group>";
+		};
+		99E5957A2307E1120026D51A /* Echarts */ = {
+			isa = PBXGroup;
+			children = (
+				99E5957B2307E1120026D51A /* tpl.html */,
+			);
+			path = Echarts;
+			sourceTree = "<group>";
+		};
 		99F0A0F921266BC000B38B47 /* 日程管理 */ = {
 			isa = PBXGroup;
 			children = (
@@ -14037,6 +14082,7 @@
 		B858A46C1D62E4D800BAA0E2 /* lib(工具类) */ = {
 			isa = PBXGroup;
 			children = (
+				9911B8E92308D5CE0064F498 /* UIDevice */,
 				99D0B9F721378E4C0002DFC4 /* TIPopGesture */,
 				276522AC20F5DC3300AA0F67 /* CLSlider */,
 				2010A94420D26DF1000DB402 /* RSA */,
@@ -17377,7 +17423,6 @@
 				CC30170F1951BABF0059BADA /* f056@2x.png in Resources */,
 				4D7953671DDEF0D6008C1899 /* Newnoread.png in Resources */,
 				276302921FDA964D0047C922 /* Images.xcassets in Resources */,
-				99D68BEF2304E7D600BB781A /* app.json in Resources */,
 				7D0797A31DFF877E00993C5A /* icon_dingwei_nor3.png in Resources */,
 				CC6E181619794BC7006ADA8A /* LoginHighlight@2x.png in Resources */,
 				4DCC89F41DAA321B00C1FDCA /* oa_daka_tableViewsss.png in Resources */,
@@ -17446,7 +17491,6 @@
 				B8812F421D2A442100ACF898 /* dianping.png in Resources */,
 				AA5E65D31F8F440B00B020F2 /* del22.png in Resources */,
 				272A8F5C1CC5FF4400D5EC7B /* uu_work_xinzeng_press.png in Resources */,
-				99D68BF12304E7D600BB781A /* back-icon@2x.png in Resources */,
 				20EA4C3220AD34960055577D /* loadingAd9.png in Resources */,
 				273811281D64128300E95044 /* crm_main_titleBgShort.png in Resources */,
 				7D1889831F6795DB009E79ED /* icon_customCenter_nor3.png in Resources */,
@@ -17506,7 +17550,6 @@
 				CC30169E1951BABF0059BADA /* f000.png in Resources */,
 				CC22EAFD1A6E6F8800FAB7AF /* 呕吐.png in Resources */,
 				27DB549C20DB827F00BAB4C7 /* idl-license.face-ios in Resources */,
-				99D68BF32304E7D600BB781A /* back-icon-mask.png in Resources */,
 				274816901D3CCCE500F0186F /* gpsselected.png in Resources */,
 				CC3AC3D619834415000BB7E8 /* im_photo_camera_press.png in Resources */,
 				7D2DA5481DF55FAF00C2C4A8 /* icon_zan_nor333.png in Resources */,
@@ -17545,9 +17588,7 @@
 				B856778C1CD8AFBD0082F244 /* f_static_003.png in Resources */,
 				4D6D46ED1E308DFE0086ABD2 /* JOKaoQshang.png in Resources */,
 				B887D5801CACFFA1001B29AB /* ZFChooseTimeCollectionViewCell.xib in Resources */,
-				99D68BF72305501E00BB781A /* back-icon.png in Resources */,
 				A75FA3B91C72FB86004B2D32 /* cb_green_off.png in Resources */,
-				99D68BF22304E7D600BB781A /* back-icon.png in Resources */,
 				CC3016EC1951BABF0059BADA /* f039.png in Resources */,
 				CC6E182F19794BC7006ADA8A /* SignUpPasswordIcon@2x.png in Resources */,
 				27ED47401CBB4D1800CAB797 /* uu_me_uaszhanghu.png in Resources */,
@@ -17650,6 +17691,7 @@
 				CC30175C1951BABF0059BADA /* f095.png in Resources */,
 				2732E7EC1D1A248900B2789F /* uu_crm_round.png in Resources */,
 				CC6E182319794BC7006ADA8A /* RegistrationHighlight@2x.png in Resources */,
+				99E5957C2307E1130026D51A /* main.jsbundle in Resources */,
 				CC6E186F19794BC7006ADA8A /* pub_record_button@2x.png in Resources */,
 				CCE2415018FFB8EB00A3CB5A /* recorder_trash_can2.png in Resources */,
 				20EA4C4220AD34960055577D /* loadingAd46.png in Resources */,
@@ -17809,7 +17851,6 @@
 				B8812F3A1D2A355000ACF898 /* xingxing_anxin.png in Resources */,
 				CC3017351951BABF0059BADA /* f075@2x.png in Resources */,
 				A71DE5141C895FEA009C53FD /* contractCompanyFriend.jpeg in Resources */,
-				99D68BEE2304E7D600BB781A /* main.jsbundle in Resources */,
 				20EA4C5920AD34960055577D /* loadingAd19.png in Resources */,
 				B856778D1CD8AFBD0082F244 /* f_static_004.png in Resources */,
 				27F608541C7ED9CF00948A9D /* icon_write_bule.png in Resources */,
@@ -17843,7 +17884,6 @@
 				CC875A4B19361892007D2DA1 /* pub.txt in Resources */,
 				2722D1B41CB791CF0039D916 /* uu_background_chabai.png in Resources */,
 				CC6E181D19794BC7006ADA8A /* new_top@2x.png in Resources */,
-				99D68BF92305501E00BB781A /* back-icon@3x.png in Resources */,
 				2721E9131D2E4303000A6F5A /* uu_pengyouquan_jiantou.png in Resources */,
 				CC1CE4E61A0CD0FC00F9A713 /* icon_not_found@2x.png in Resources */,
 				7D40E25B1EEF8BFA00D40535 /* icon_delete3_nor3.png in Resources */,
@@ -18060,13 +18100,13 @@
 				278AAA9D1C8D0BC5002F8C81 /* im_myvideo.png in Resources */,
 				27259F9D1D2A37C900E30D1F /* uu_crm_state9.png in Resources */,
 				CCC7B037197FA18900A828A8 /* im_tab_normal.png in Resources */,
-				99D68BF82305501E00BB781A /* back-icon@2x.png in Resources */,
 				20AF4B9220ABBA2700C341CB /* loading29.png in Resources */,
 				B85677AF1CD8AFBD0082F244 /* f_static_038.png in Resources */,
 				B8ED16F11CDAEE8900BD9371 /* Newguanzhu.png in Resources */,
 				4DEA59381D800AF70059C355 /* oa_huiyi_huntiao.png in Resources */,
 				7D2ADFAF1DFEA6400025BC16 /* icon_disagree_nor3.png in Resources */,
 				A75FA3611C72ABC5004B2D32 /* quest.png in Resources */,
+				99E5957E2307E1130026D51A /* back-icon@2x.png in Resources */,
 				CCC7B03B197FA18900A828A8 /* new_tips.png in Resources */,
 				CCE242ED18FFB8EB00A3CB5A /* README.txt in Resources */,
 				CC6E17A019794BC7006ADA8A /* title_set@2x.png in Resources */,
@@ -18144,6 +18184,7 @@
 				CC6E17C119794BC7006ADA8A /* avatar_icon_boy@2x.png in Resources */,
 				7D2DA5431DF55FAF00C2C4A8 /* icon_comment_nor111.png in Resources */,
 				20A828AC1F5D50CE0081F3D0 /* ic_menu_retract(1).png in Resources */,
+				99E5957D2307E1130026D51A /* back-icon@3x.png in Resources */,
 				CC6E17B019794BC7006ADA8A /* im_input_expression_press@2x.png in Resources */,
 				20AF4BA320ABBA2700C341CB /* loading8.png in Resources */,
 				20AF4B9A20ABBA2700C341CB /* loading60.png in Resources */,
@@ -18358,6 +18399,7 @@
 				27D63BD31C5A2D8E0034EDDC /* im_gif.png in Resources */,
 				20AF4BA120ABBA2700C341CB /* loading59.png in Resources */,
 				B8DB0BD11CBF367700A19BAC /* uu_note_gonggao.png in Resources */,
+				99E5957F2307E1130026D51A /* back-icon.png in Resources */,
 				273316A41D2C9CEF00BD978C /* down_dark1.png in Resources */,
 				7D5DE9832148E5F5005822C8 /* photograph@3x.png in Resources */,
 				CC6E184419794BC7006ADA8A /* tabbar_mainframeHL@2x.png in Resources */,
@@ -18397,6 +18439,7 @@
 				27CB42E81D6ECD07006983B2 /* crm_main_client.png in Resources */,
 				7D26699A1E5FC5DD00F16C15 /* btn_shensu_nor1.png in Resources */,
 				CC8A0ADB1A0E0D870051396C /* more_flag@2x.png in Resources */,
+				99E595812307E1130026D51A /* tpl.html in Resources */,
 				CC3016991951BABF0059BADA /* AlbumTriangleB@2x.png in Resources */,
 				CC3016D31951BABF0059BADA /* f026@2x.png in Resources */,
 				27DB549D20DB827F00BAB4C7 /* com.baidu.idl.face.model.bundle in Resources */,
@@ -18755,6 +18798,7 @@
 				B856779B1CD8AFBD0082F244 /* f_static_018.png in Resources */,
 				2744A4B41F5FC965004704A9 /* UU_book_sharebookList.png in Resources */,
 				27DB549B20DB827F00BAB4C7 /* com.baidu.idl.face.faceSDK.bundle in Resources */,
+				99E595802307E1130026D51A /* back-icon-mask.png in Resources */,
 				27701F921CC4F6C2007AFDD7 /* uu_work_kucunchaxun.png in Resources */,
 				20AF4B9120ABBA2700C341CB /* loading28.png in Resources */,
 				20AF4B7420ABBA2700C341CB /* loading52.png in Resources */,
@@ -18771,7 +18815,6 @@
 				CC6E17DB19794BC7006ADA8A /* im_video_play_press_@2x.jpeg in Resources */,
 				7D3443B61DEE6DEB00B1FAD8 /* icon_back_nor2.png in Resources */,
 				CC6E17E619794BC7006ADA8A /* 4_button_n@2x.png in Resources */,
-				99D68BF02304E7D600BB781A /* back-icon@3x.png in Resources */,
 				20AF4B7720ABBA2700C341CB /* loading44.png in Resources */,
 				20AF4B7920ABBA2700C341CB /* loading51.png in Resources */,
 				CC6E179419794BC7006ADA8A /* set_fans@2x.png in Resources */,
@@ -19072,6 +19115,7 @@
 				AAD7EF531E8BB65C00D8B0B3 /* B2BHandleTaskModle.m in Sources */,
 				AA1763111F8CCE4D0051D6AF /* ServiceSiteSettingVC.m in Sources */,
 				AA12F9C31FB5ACF800688D9F /* UASLoginViewModel.m in Sources */,
+				99ED88C5230A3D8D0091B202 /* YRRnInteraction.m in Sources */,
 				CC875A4219361892007D2DA1 /* JXServer.m in Sources */,
 				AA3412E31E9F021300031171 /* NewAddPeopleTableViewCell.m in Sources */,
 				CCE242DD18FFB8EB00A3CB5A /* SBJsonStreamParserState.m in Sources */,
@@ -19291,6 +19335,7 @@
 				AA5677351FB3FADE00539107 /* LYYACtivityCenterCell.m in Sources */,
 				CC18E7FD1A53AE040046FAC0 /* ASIDataDecompressor.m in Sources */,
 				7D20D6601F960182006FFC73 /* LYYWorkReportEditeVC.m in Sources */,
+				9911B8EF2308D93C0064F498 /* YRRnChartsAllVC.m in Sources */,
 				2733169D1D2C907800BD978C /* VisitPlanVC.m in Sources */,
 				27DB548920DB7EEC00BAB4C7 /* ImageUtils.m in Sources */,
 				273F3F561D373B9E00160ECE /* ZFCirque.m in Sources */,
@@ -20138,6 +20183,7 @@
 				AAAF7BB41FC8009B00B512FB /* EnterPriseWageViewModel.m in Sources */,
 				AA12F9BB1FB5AA6B00688D9F /* EnterPriseWageCell.m in Sources */,
 				7D4F194D1E710349006E0E18 /* B2BJOComposeViewController.m in Sources */,
+				9911B8EC2308D6110064F498 /* UIDevice+extension.m in Sources */,
 				7DCE1491214B817600F2CA80 /* UASCRMALTableViewcell2.m in Sources */,
 				20A5C84E20845646003637F6 /* UASAccountGet.m in Sources */,
 				20C834B9200F067000ABF361 /* UASVoiceView.m in Sources */,
@@ -20292,8 +20338,8 @@
 				CODEPUSH_URL = "https://uu-update.ubtob.com";
 				CODE_SIGN_ENTITLEMENTS = shiku_im/shiku_im.entitlements;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer: QUANMING LV (83764JWNLL)";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: QUANMING LV (83764JWNLL)";
+				"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Manual;
 				DEVELOPMENT_TEAM = D49MF83EK7;
 				DOUBANGO_LIBS = "";
@@ -20420,7 +20466,7 @@
 				PODS_ROOT = "$(inherited)";
 				PRODUCT_BUNDLE_IDENTIFIER = com.usoftchina.Youxin;
 				PRODUCT_NAME = shiku_im;
-				PROVISIONING_PROFILE = "af54956a-228b-46bc-9e39-d1f6c104440b";
+				PROVISIONING_PROFILE = "";
 				PROVISIONING_PROFILE_SPECIFIER = YouxinKaiFaTest;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = 1;
@@ -20451,8 +20497,8 @@
 				CODEPUSH_URL = "https://uu-update.ubtob.com";
 				CODE_SIGN_ENTITLEMENTS = shiku_im/shiku_im.entitlements;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer: QUANMING LV (83764JWNLL)";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: QUANMING LV (83764JWNLL)";
+				"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Manual;
 				DEVELOPMENT_TEAM = D49MF83EK7;
 				DOUBANGO_LIBS = "";
@@ -20542,7 +20588,7 @@
 				PODS_ROOT = "$(inherited)";
 				PRODUCT_BUNDLE_IDENTIFIER = com.usoftchina.Youxin;
 				PRODUCT_NAME = shiku_im;
-				PROVISIONING_PROFILE = "af54956a-228b-46bc-9e39-d1f6c104440b";
+				PROVISIONING_PROFILE = "";
 				PROVISIONING_PROFILE_SPECIFIER = YouxinKaiFaTest;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = 1;

+ 4 - 0
shiku_im/shiku_im/AppDelegate.h

@@ -50,6 +50,10 @@
 @property (strong, nonatomic) UIWindow *window;
 @property (strong,nonatomic)UASMainVC *tabMain;
 
+/**
+ * 是否允许转向
+ */
+@property(nonatomic,assign)BOOL allowRotation;
 
 -(void)pushAnSecondNotifaction:(NSString *)message;
 -(void) showAlert: (NSString *) message;

+ 21 - 0
shiku_im/shiku_im/AppDelegate.mm

@@ -59,6 +59,7 @@
 #import "NSString+secri.h"
 #import <MapKit/MapKit.h>
 #import <React/RCTDevLoadingView.h>
+#import <Orientation.h>
 //#import "UICKeyChainStore.h"
 #undef TAG
 #define kTAG @"AppDelegate///: "
@@ -549,7 +550,27 @@
     
 
 }
+
+#pragma mark - 横竖屏设置
+- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
+
+{
+    
+    
+    
+    if (self.allowRotation == YES) {
+        //横屏
+       return [Orientation getOrientation];
+        
+    }else{
+        //竖屏
+        return UIInterfaceOrientationMaskPortrait;
+        
+    }
     
+}
+
+#pragma mark - 是否是管理员
 - (void)isAdmin
 {
     NSString *url;

+ 6 - 0
shiku_im/shiku_im/Images.xcassets/ReactNative/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 6 - 0
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 23 - 0
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/Contents.json

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

二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen.png


二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@2x.png


二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@3x.png


+ 23 - 0
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/Contents.json

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

二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon.png


二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@2x.png


二進制
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@3x.png


+ 88 - 16
shiku_im/shiku_im/RN/Controllers/YRReactVC.m

@@ -6,6 +6,10 @@
 //
 
 #import "YRReactVC.h"
+#import "YRRnChartsAllVC.h"
+#import "UIDevice+extension.h"
+#import "AppDelegate.h"
+#import "YRRnBridge.h"
 #import "UINavigationController+popGes.h"
 #import <React/RCTRootView.h>
 #import <React/RCTBundleURLProvider.h>
@@ -20,13 +24,14 @@
 //ReactNative使用过的内存不释放,因此采用缓存机制控制内存
 static NSMutableDictionary * rootDic = nil;
 
-@interface YRReactVC ()
+@interface YRReactVC ()<YRRnBridgeDelegate>
+
+@property(weak,nonatomic)YRRnChartsAllVC *chartVC;
 
 @end
 
 @implementation YRReactVC
 
-
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
@@ -36,14 +41,17 @@ static NSMutableDictionary * rootDic = nil;
 
 -(void)createUI{
     
+    
+    [self addNotification];
+    
     NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
     
     jsCodeLocation = [CodePush bundleURL];
-    
+//
     self.moduleName = self.moduleName?:@"UU_RN";
     
-    NSString * strUrl = @"http://10.1.80.96:8081/index.bundle?platform=ios";
-    jsCodeLocation = [NSURL URLWithString:strUrl] ;
+//    NSString * strUrl = @"http://10.1.80.96:8081/index.bundle?platform=ios";
+//    jsCodeLocation = [NSURL URLWithString:strUrl] ;
     
     if (!rootDic) {
         
@@ -72,47 +80,111 @@ static NSMutableDictionary * rootDic = nil;
             
             rootView.loadingView.hidden = NO;
             
+        }else{
+            
+            RCTRootView *rootView = (RCTRootView *)rootDic[self.moduleName];
+            //改变该属性时ReactNative重新渲染
+            rootView.appProperties = @{@"one":@"one"};
+            
         }
         
     }
     
     
-    self.view = (RCTRootView *)rootDic[self.moduleName];
     
-    [self addNotification];
+    self.view = (RCTRootView *)rootDic[self.moduleName];
     
 }
 
+#pragma mark -- YRRnBridgeDelegate
+
 -(void)addNotification{
     //返回跳入界面
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(backAction) name:@"YRReactNativeShouldBack" object:nil];
-    //侧滑返回支持
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gestureEnabled:) name:@"YRReactNativeGestureEnabled" object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bridgeHasBeenCreated:) name:@"YRReactNativeBridgeInited" object:nil];
     
 }
 
+-(void)bridgeHasBeenCreated:(NSNotification *)notifacation{
+    
+    YRRnBridge *bridge = (YRRnBridge *)notifacation.object;
+    
+    bridge.delegate = self;
+    
+}
 
--(void)gestureEnabled:(NSNotification *)notification{
+-(void)reactNativeControllerShouldBack{
     
-    self.im_interactivePopDisabled = ![notification.object boolValue];
+    [self backAction];
     
 }
 
--(void)dealloc{
+-(void)reactNativeControllerGestureEnabled:(BOOL)enabled{
     
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"YRReactNativeShouldBack" object:nil];
+    self.im_interactivePopDisabled = !enabled;
     
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"YRReactNativeGestureEnabled" object:nil];
- 
 }
 
+-(void)reactNativeControllerShouldAutorotateParams:(NSDictionary *)params{
+    
+//    BOOL enable = [params[@"enable"] boolValue];
+//
+//    if (enable) {
+//
+//        YRRnChartsAllVC *chartVC = [YRRnChartsAllVC new];
+//
+//        chartVC.params = params;
+//
+//        self.chartVC = chartVC;
+//
+//        [self presentViewController:chartVC animated:YES completion:nil];
+//
+//    }else{
+//
+//        AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+//        //关闭横屏仅允许竖屏
+//        appDelegate.allowRotation = NO;
+//        //切换到竖屏
+//        [UIDevice switchNewOrientation:UIInterfaceOrientationPortrait];
+//
+//        [self.chartVC dismissViewControllerAnimated:YES completion:nil];
+//
+//    }
+    
+    
+}
+
+
+#pragma mark -- 旋转屏设置
 -(void)viewWillAppear:(BOOL)animated{
     
     [super viewWillAppear:animated];
     
     self.navigationController.navigationBar.hidden = YES;
     
+    AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    //允许转成横屏
+    appDelegate.allowRotation = YES;
+    
+    
+    
 }
 
 
+-(void)viewDidDisappear:(BOOL)animated{
+    
+    [super viewDidDisappear:animated];
+    
+    AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    //允许转成横屏
+    appDelegate.allowRotation = NO;
+    
+}
+
+
+-(void)dealloc{
+    
+    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"YRReactNativeBridgeInited" object:nil];
+    
+}
+
 @end

+ 18 - 0
shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.h

@@ -0,0 +1,18 @@
+//
+//  YRRnChartsAllVC.h
+//  shiku_im
+//
+//  Created by liujl on 2019/8/18.
+//
+
+#import "UASBaseVC.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface YRRnChartsAllVC : UASBaseVC
+
+@property(strong,nonatomic)NSDictionary *params;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 92 - 0
shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.m

@@ -0,0 +1,92 @@
+//
+//  YRRnChartsAllVC.m
+//  shiku_im
+//
+//  Created by liujl on 2019/8/18.
+//
+
+#import "YRRnChartsAllVC.h"
+#import "UIDevice+extension.h"
+#import "AppDelegate.h"
+#import "YRRnBridge.h"
+#import "UINavigationController+popGes.h"
+#import <React/RCTRootView.h>
+#import <React/RCTBundleURLProvider.h>
+#import "YRRnInteraction.h"
+#import <CodePush/CodePush.h>
+
+//ReactNative使用过的内存不释放,因此采用缓存机制控制内存
+static RCTRootView *rootView = nil;
+
+@interface YRRnChartsAllVC ()
+
+@end
+
+@implementation YRRnChartsAllVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+}
+
+-(void)createUI{
+    
+    AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+    //允许转成横屏
+    appDelegate.allowRotation = YES;
+    //调用横屏代码
+    [UIDevice switchNewOrientation:UIInterfaceOrientationLandscapeRight];
+    
+    NSMutableDictionary *params = self.params.mutableCopy;
+    
+    NSMutableDictionary *options = ((NSDictionary *)params[@"options"]).mutableCopy;
+    
+    NSMutableDictionary *legend = ((NSDictionary *)options[@"legend"]).mutableCopy;
+    
+    NSArray *padding = @[@(0),@(10),@(10),@(10)];
+    
+    [legend setObject:padding forKey:@"padding"];
+    
+    [options setObject:legend forKey:@"legend"];
+    
+    [params setObject:options forKey:@"options"];
+    
+    if (!rootView) {
+    
+        NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
+    
+        jsCodeLocation = [CodePush bundleURL];
+    
+//        NSString * strUrl = @"http://10.1.80.96:8081/index.bundle?platform=ios";
+//        jsCodeLocation = [NSURL URLWithString:strUrl] ;
+    
+    
+       rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"UU_RN_BIChart"
+                                                    initialProperties:params
+                                                         launchOptions:nil];
+        
+        
+        [YRRnInteraction shareInstance].bridge = rootView.bridge;
+        
+    }else{
+
+        rootView.appProperties = params;
+        
+        [[YRRnInteraction shareInstance] chartRefresh:params];
+        
+    }
+    
+    self.view = rootView;
+    
+    
+}
+
+
+
+-(void)dealloc{
+    
+    
+    
+}
+
+@end

+ 27 - 0
shiku_im/shiku_im/RN/Models/YRRnBridge.h

@@ -7,11 +7,38 @@
 
 #import <Foundation/Foundation.h>
 
+@protocol YRRnBridgeDelegate <NSObject>
+
+@required
+
+/**
+ 返回上一页
+ */
+-(void)reactNativeControllerShouldBack;
+
+/**
+ 是否禁用侧滑手势,防止手势冲突
+
+ */
+-(void)reactNativeControllerGestureEnabled:(BOOL)enabled;
+
+/**
+ 是否应该旋转屏幕为全屏
+
+ */
+-(void)reactNativeControllerShouldAutorotateParams:(NSDictionary *)params;
+
+
+@optional
+
+@end
 
 NS_ASSUME_NONNULL_BEGIN
 
 @interface YRRnBridge : NSObject
 
+@property(weak,nonatomic)id<YRRnBridgeDelegate> delegate;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 41 - 4
shiku_im/shiku_im/RN/Models/YRRnBridge.m

@@ -16,6 +16,30 @@
 @implementation YRRnBridge
 
 
+-(void)defalutDelegateSet{
+    
+    [[NSNotificationCenter defaultCenter] postNotificationName:@"YRReactNativeBridgeInited" object:self];
+    
+}
+
+-(id<YRRnBridgeDelegate>)delegate{
+    
+    if (!_delegate) {
+        
+        [self defalutDelegateSet];
+        
+    }
+    
+    return _delegate;
+    
+}
+
+-(void)dealloc{
+    
+    
+    
+}
+
 #pragma mark - ReactNative交互
 
 RCT_EXPORT_MODULE();
@@ -29,20 +53,33 @@ RCT_EXPORT_MODULE();
 
 RCT_EXPORT_METHOD(goBack){
     
-    [[NSNotificationCenter defaultCenter] postNotificationName:@"YRReactNativeShouldBack" object:nil];
+    if ([self.delegate respondsToSelector:@selector(reactNativeControllerShouldBack)]) {
+        
+        [self.delegate reactNativeControllerShouldBack];
+        
+    }
     
 }
 
 RCT_EXPORT_METHOD(gestureEnabled:(BOOL)enabled){
     
-    [[NSNotificationCenter defaultCenter] postNotificationName:@"YRReactNativeGestureEnabled" object:@(enabled)];
+    if ([self.delegate respondsToSelector:@selector(reactNativeControllerGestureEnabled:)]) {
+        
+        [self.delegate reactNativeControllerGestureEnabled:enabled];
+        
+    }
     
 }
 
--(void)dealloc{
-    
+RCT_EXPORT_METHOD(shouldAutorotateParams:(NSDictionary *)params){
     
+    if ([self.delegate respondsToSelector:@selector(reactNativeControllerShouldAutorotateParams:)]) {
+        
+        [self.delegate reactNativeControllerShouldAutorotateParams:params];
+        
+    }
     
 }
 
+
 @end

+ 22 - 0
shiku_im/shiku_im/RN/Models/YRRnInteraction.h

@@ -0,0 +1,22 @@
+//
+//  YRRnInteraction.h
+//  shiku_im
+//
+//  Created by liujl on 2019/8/19.
+//
+
+#import <Foundation/Foundation.h>
+#import <React/RCTBridgeModule.h>
+#import <React/RCTEventEmitter.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface YRRnInteraction : RCTEventEmitter<RCTBridgeModule>
+
++ (instancetype)shareInstance;
+
+-(void)chartRefresh:(NSDictionary *)param;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 37 - 0
shiku_im/shiku_im/RN/Models/YRRnInteraction.m

@@ -0,0 +1,37 @@
+//
+//  YRRnInteraction.m
+//  shiku_im
+//
+//  Created by liujl on 2019/8/19.
+//
+
+#import "YRRnInteraction.h"
+
+@implementation YRRnInteraction
+
+static YRRnInteraction *instance = nil;
+
+RCT_EXPORT_MODULE();
+
++ (instancetype)shareInstance {
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        instance = [[self alloc] init];
+    });
+    return instance;
+}
+
+- (NSArray<NSString *> *)supportedEvents
+{
+    return @[@"chartRefresh"];
+}
+
+RCT_EXPORT_METHOD(chartRefresh:(NSDictionary *)param) {
+    [self.bridge enqueueJSCall:@"RCTDeviceEventEmitter"
+                        method:@"emit"
+                          args:@[@"chartRefresh",param]
+                    completion:NULL];
+}
+
+
+@end

+ 1 - 0
shiku_im/shiku_im/controller/UASBaseVC.m

@@ -93,4 +93,5 @@
     
 }
 
+
 @end

+ 39 - 1
shiku_im/shiku_im/controller/UASMainVC.m

@@ -23,7 +23,7 @@
 #import "UASScheDisMissAni.h"
 #import "ScheduleListModel.h"
 #import "ScheduleRemindVC.h"
-
+#import <CodePush/CodePush.h>
 @interface UASMainVC ()<UIAlertViewDelegate,UITabBarDelegate,UITabBarControllerDelegate,UIViewControllerTransitioningDelegate>
 
 @property(strong,nonatomic)NSMutableArray<UIView *> *tarArr;
@@ -79,6 +79,9 @@
     [self scheduleRemindView];
     self.tabBar.tintColor = HexColor(@"#1084D1");
     SLog(@"百度推送ID:%@",[BPush getChannelId]);
+    
+
+    
 }
 
 - (void)didReceiveMemoryWarning {
@@ -146,6 +149,12 @@
     [self.tarArr[index].layer addAnimation:anima forKey:@"scaleAnimation"];
     
     
+    if (index == 2) {
+        
+        [self checkReactNativeShouldUpdate];
+        
+    }
+    
 }
 
 
@@ -713,7 +722,36 @@
     }
 }
 
+-(void)checkReactNativeShouldUpdate{
+    
+    NSError *packErr = nil;
+    
+    NSDictionary *packageInfo = [CodePushPackage  getCurrentPackage:&packErr];
+    
+    NSDictionary *prePackage = [CodePushPackage getPreviousPackage:nil];
+    
+    NSString *filePath = [CodePushPackage getCurrentPackageHash:nil];
+    
+    
+    CodePushConfig *config = [CodePushConfig current];
+    
+    [CodePushPackage installPackage:packageInfo removePendingUpdate:YES error:nil];
+    
+//    [CodePushPackage downloadPackage:packageInfo expectedBundleFileName:nil publicKey:nil operationQueue:dispatch_get_global_queue(0, 0) progressCallback:^(long long curr, long long total) {
+//        
+//        DLog(@"%lf  ---   %lf",curr,total);
+//        
+//    } doneCallback:^{
+//        
+//        DLog(@"完成了");
+//        
+//    } failCallback:^(NSError *err) {
+//        
+//        DLog(@"失败了");
+//        
+//    }];
 
+}
 
 -(void)dealloc{
     

+ 21 - 0
shiku_im/shiku_im/controller/myOA/UIDevice+extension.h

@@ -0,0 +1,21 @@
+//
+//  UIDevice+extension.h
+//  shiku_im
+//
+//  Created by liujl on 2019/8/18.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface UIDevice (extension)
+
+/**
+ * @interfaceOrientation 输入要强制转屏的方向
+ */
++ (void)switchNewOrientation:(UIInterfaceOrientation)interfaceOrientation;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 26 - 0
shiku_im/shiku_im/controller/myOA/UIDevice+extension.m

@@ -0,0 +1,26 @@
+//
+//  UIDevice+extension.m
+//  shiku_im
+//
+//  Created by liujl on 2019/8/18.
+//
+
+#import "UIDevice+extension.h"
+
+@implementation UIDevice (extension)
+
++ (void)switchNewOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+    
+    NSNumber *resetOrientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
+    
+    [[UIDevice currentDevice] setValue:resetOrientationTarget forKey:@"orientation"];
+    
+    NSNumber *orientationTarget = [NSNumber numberWithInt:interfaceOrientation];
+    
+    [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];
+    
+}
+
+
+@end

+ 0 - 1
shiku_im/shiku_im/shiku_im-Info.plist

@@ -324,7 +324,6 @@
 	<key>UISupportedInterfaceOrientations</key>
 	<array>
 		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
 	</array>
 	<key>UIViewControllerBasedStatusBarAppearance</key>
 	<false/>