Browse Source

Merge branch 'master' of ssh://10.10.100.21/source/iOSUU

# Conflicts:
#	shiku_im/Podfile.lock
#	shiku_im/shiku_im.xcodeproj/project.pbxproj
#	shiku_im/shiku_im/RN/Controllers/YRReactVC.m
huangyp 6 years ago
parent
commit
574561a7fd
33 changed files with 794 additions and 31 deletions
  1. 2 0
      shiku_im/Podfile
  2. 10 2
      shiku_im/Podfile.lock
  3. 172 7
      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. BIN
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen.png
  10. BIN
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@2x.png
  11. BIN
      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. BIN
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon.png
  14. BIN
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@2x.png
  15. BIN
      shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@3x.png
  16. 2 0
      shiku_im/shiku_im/RN/Controllers/YRReactVC.h
  17. 129 14
      shiku_im/shiku_im/RN/Controllers/YRReactVC.m
  18. 18 0
      shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.h
  19. 92 0
      shiku_im/shiku_im/RN/Controllers/YRRnChartsAllVC.m
  20. 27 0
      shiku_im/shiku_im/RN/Models/YRRnBridge.h
  21. 50 1
      shiku_im/shiku_im/RN/Models/YRRnBridge.m
  22. 22 0
      shiku_im/shiku_im/RN/Models/YRRnInteraction.h
  23. 37 0
      shiku_im/shiku_im/RN/Models/YRRnInteraction.m
  24. 0 2
      shiku_im/shiku_im/controller/JOAddressBookVC.m
  25. 0 1
      shiku_im/shiku_im/controller/JOMsgViewController.m
  26. 1 0
      shiku_im/shiku_im/controller/UASBaseVC.m
  27. 39 1
      shiku_im/shiku_im/controller/UASMainVC.m
  28. 21 0
      shiku_im/shiku_im/controller/myOA/UIDevice+extension.h
  29. 26 0
      shiku_im/shiku_im/controller/myOA/UIDevice+extension.m
  30. 48 0
      shiku_im/shiku_im/controller/myOA/WorkTools/UASWorkManager.m
  31. 0 1
      shiku_im/shiku_im/shiku_im-Info.plist
  32. 4 2
      shiku_im/shiku_im/文件夹1/ReportMenuVC.m
  33. 11 0
      shiku_im/shiku_im/文件夹3/MainView/UserInfo/UASUserInfo.h

+ 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'

+ 10 - 2
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:
@@ -208,7 +213,10 @@ SPEC CHECKSUMS:
   MJExtension: d86aacb740c87519d20e3cca55b6fa4be6cc7548
   MJRefresh: ed450d6eb9d3346a2cb033ab7eb6de090aeef437
   pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
-  React: a86b92f00edbe1873a63e4a212c29b7a7ad5224f
+
+  React: 1d605e098d69bdf08960787f3446f0a9dc2e2ccf
+  react-native-orientation: 3d9a0a8273d18260f7528414093a6a36491382b6
+
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
   RNGestureHandler: 5329a942fce3d41c68b84c2c2276ce06a696d8b0
   SDWebImage: 3f3f0c02f09798048c47a5ed0a13f17b063572d8
@@ -218,6 +226,6 @@ SPEC CHECKSUMS:
   WechatOpenSDK: 9b721089507c895d05f997408c30bb6e6f5f9b60
   yoga: 03ff42a6f223fb88deeaed60249020d80c3091ee
 
-PODFILE CHECKSUM: a7427ed79027131c798a61cdaacdfea73b1b9f9c
+PODFILE CHECKSUM: a42707a0298bb0bf53d873026337e053bfdbf4e0
 
 COCOAPODS: 1.6.0

+ 172 - 7
shiku_im/shiku_im.xcodeproj/project.pbxproj

@@ -1447,6 +1447,11 @@
 		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"; }; };
+<<<<<<< HEAD
+=======
+		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"; }; };
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 		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"; }; };
@@ -1483,16 +1488,23 @@
 		99C399C22146660B004D3306 /* UASClientMaSecHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C399C12146660B004D3306 /* UASClientMaSecHeaderView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		99C399C521466EC9004D3306 /* UASClientMaSecFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C399C421466EC9004D3306 /* UASClientMaSecFooterView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
 		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 */; };
+		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 */; };
 		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"; }; };
@@ -5108,6 +5120,13 @@
 		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>"; };
+<<<<<<< HEAD
+=======
+		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>"; };
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 		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>"; };
@@ -5191,6 +5210,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>"; };
@@ -5198,6 +5223,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>"; };
@@ -12153,6 +12180,18 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+<<<<<<< HEAD
+=======
+		9911B8E92308D5CE0064F498 /* UIDevice */ = {
+			isa = PBXGroup;
+			children = (
+				9911B8EA2308D6110064F498 /* UIDevice+extension.h */,
+				9911B8EB2308D6110064F498 /* UIDevice+extension.m */,
+			);
+			name = UIDevice;
+			sourceTree = "<group>";
+		};
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 		99B02ADC22EED6650014A144 /* RN */ = {
 			isa = PBXGroup;
 			children = (
@@ -12167,7 +12206,11 @@
 		99B02ADD22EED6650014A144 /* Others */ = {
 			isa = PBXGroup;
 			children = (
+<<<<<<< HEAD
 				27B14B762303B88F00F8F6A8 /* bundle */,
+=======
+				99E5956A2307E1120026D51A /* bundle */,
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 			);
 			path = Others;
 			sourceTree = "<group>";
@@ -12177,6 +12220,8 @@
 			children = (
 				99C8A816230397940073EF99 /* YRRnBridge.h */,
 				99C8A817230397940073EF99 /* YRRnBridge.m */,
+				99ED88C3230A3D8D0091B202 /* YRRnInteraction.h */,
+				99ED88C4230A3D8D0091B202 /* YRRnInteraction.m */,
 			);
 			path = Models;
 			sourceTree = "<group>";
@@ -12186,6 +12231,8 @@
 			children = (
 				99B02AE022EED6650014A144 /* YRReactVC.h */,
 				99B02AE122EED6650014A144 /* YRReactVC.m */,
+				9911B8ED2308D93C0064F498 /* YRRnChartsAllVC.h */,
+				9911B8EE2308D93C0064F498 /* YRRnChartsAllVC.m */,
 			);
 			path = Controllers;
 			sourceTree = "<group>";
@@ -12344,6 +12391,108 @@
 			path = TIPopGesture;
 			sourceTree = "<group>";
 		};
+		99E5956A2307E1120026D51A /* bundle */ = {
+			isa = PBXGroup;
+			children = (
+				99E5956B2307E1120026D51A /* main.jsbundle */,
+				99E5956C2307E1120026D51A /* assets */,
+			);
+			name = bundle;
+			path = UU_RN/bundle;
+			sourceTree = SOURCE_ROOT;
+		};
+		99E5956C2307E1120026D51A /* assets */ = {
+			isa = PBXGroup;
+			children = (
+				99E5956D2307E1120026D51A /* node_modules */,
+			);
+			path = assets;
+			sourceTree = "<group>";
+		};
+		99E5956D2307E1120026D51A /* node_modules */ = {
+			isa = PBXGroup;
+			children = (
+				99E5956E2307E1120026D51A /* react-navigation-stack */,
+				99E595772307E1120026D51A /* native-echarts */,
+			);
+			path = node_modules;
+			sourceTree = "<group>";
+		};
+		99E5956E2307E1120026D51A /* react-navigation-stack */ = {
+			isa = PBXGroup;
+			children = (
+				99E5956F2307E1120026D51A /* lib */,
+			);
+			path = "react-navigation-stack";
+			sourceTree = "<group>";
+		};
+		99E5956F2307E1120026D51A /* lib */ = {
+			isa = PBXGroup;
+			children = (
+				99E595702307E1120026D51A /* module */,
+			);
+			path = lib;
+			sourceTree = "<group>";
+		};
+		99E595702307E1120026D51A /* module */ = {
+			isa = PBXGroup;
+			children = (
+				99E595712307E1120026D51A /* views */,
+			);
+			path = module;
+			sourceTree = "<group>";
+		};
+		99E595712307E1120026D51A /* views */ = {
+			isa = PBXGroup;
+			children = (
+				99E595722307E1120026D51A /* assets */,
+			);
+			path = views;
+			sourceTree = "<group>";
+		};
+		99E595722307E1120026D51A /* assets */ = {
+			isa = PBXGroup;
+			children = (
+				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 = (
@@ -14063,6 +14212,7 @@
 		B858A46C1D62E4D800BAA0E2 /* lib(工具类) */ = {
 			isa = PBXGroup;
 			children = (
+				9911B8E92308D5CE0064F498 /* UIDevice */,
 				99D0B9F721378E4C0002DFC4 /* TIPopGesture */,
 				276522AC20F5DC3300AA0F67 /* CLSlider */,
 				2010A94420D26DF1000DB402 /* RSA */,
@@ -17672,7 +17822,11 @@
 				CC30175C1951BABF0059BADA /* f095.png in Resources */,
 				2732E7EC1D1A248900B2789F /* uu_crm_round.png in Resources */,
 				CC6E182319794BC7006ADA8A /* RegistrationHighlight@2x.png in Resources */,
+<<<<<<< HEAD
 				27B14B842303B88F00F8F6A8 /* main.jsbundle in Resources */,
+=======
+				99E5957C2307E1130026D51A /* main.jsbundle in Resources */,
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 				CC6E186F19794BC7006ADA8A /* pub_record_button@2x.png in Resources */,
 				CCE2415018FFB8EB00A3CB5A /* recorder_trash_can2.png in Resources */,
 				20EA4C4220AD34960055577D /* loadingAd46.png in Resources */,
@@ -18088,6 +18242,7 @@
 				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 */,
@@ -18165,6 +18320,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 */,
@@ -18379,6 +18535,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 */,
@@ -18418,6 +18575,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 */,
@@ -18661,7 +18819,10 @@
 				20EA4C3C20AD34960055577D /* loadingAd51.png in Resources */,
 				CC3A1427195851280054127B /* v_cammer@2x.png in Resources */,
 				CCE2415118FFB8EB00A3CB5A /* recorder_trash_can2@2x.png in Resources */,
+<<<<<<< HEAD
 				27B14B852303B88F00F8F6A8 /* app.json in Resources */,
+=======
+>>>>>>> 3c700ea12b2d7ae1b6e133774f62967384293a96
 				CC6E186119794BC7006ADA8A /* feeds_play_btn@2x.png in Resources */,
 				7D736AE81E0BE3DE0035B25B /* icon_banci_nor3.png in Resources */,
 				272F120A1CC4D95100452A0D /* uu_work_chaxun_press.png in Resources */,
@@ -18778,6 +18939,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 */,
@@ -19098,6 +19260,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 */,
@@ -19318,6 +19481,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 */,
@@ -20168,6 +20332,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 */,
@@ -20322,8 +20487,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 = "";
@@ -20450,7 +20615,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;
@@ -20481,8 +20646,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 = "";
@@ -20572,7 +20737,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///: "
@@ -550,7 +551,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"
+  }
+}

BIN
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen.png


BIN
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/bi_allScreen.imageset/bi_allScreen@2x.png


BIN
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"
+  }
+}

BIN
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon.png


BIN
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@2x.png


BIN
shiku_im/shiku_im/Images.xcassets/ReactNative/bi/uu_back-icon.imageset/uu_back-icon@3x.png


+ 2 - 0
shiku_im/shiku_im/RN/Controllers/YRReactVC.h

@@ -11,6 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface YRReactVC : UASBaseVC
 
+@property(copy,nonatomic)NSString *moduleName;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 129 - 14
shiku_im/shiku_im/RN/Controllers/YRReactVC.m

@@ -6,6 +6,11 @@
 //
 
 #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>
 #import <CodePush/CodePush.h>
@@ -16,14 +21,17 @@
 //├────────────┼───────────────────────────────────────┤
 //│ Staging    │ if4T49oStVOr08rU6SJaPJQmFK3O4ksvOXqog │
 
+//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.
@@ -33,45 +41,152 @@
 
 -(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.97:8081/index.bundle?platform=ios";
+//    NSString * strUrl = @"http://10.1.80.96:8081/index.bundle?platform=ios";
 //    jsCodeLocation = [NSURL URLWithString:strUrl] ;
     
-    RCTRootView * rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"UU_RN"
-                                                  initialProperties:@{@"UU":@"UU_RN"}
-                                                      launchOptions:nil];
+    if (!rootDic) {
+        
+        rootDic = [NSMutableDictionary dictionary];
+        
+        
+        RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"UU_RN"
+                                                     initialProperties:@{@"UU":@"UU_RN"}
+                                                         launchOptions:nil];
+        
+        [rootDic setObject:rootView forKey:self.moduleName];
+        
+        rootView.loadingView.hidden = NO;
+        
+        
+    }else{
+        
+        if (!rootDic[self.moduleName]) {
+            
+            RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"UU_RN"
+                                                         initialProperties:@{@"UU":@"UU_RN"}
+                                                             launchOptions:nil];
+            
+            [rootDic setObject:rootView forKey:self.moduleName];
+            
+            
+            rootView.loadingView.hidden = NO;
+            
+        }else{
+            
+            RCTRootView *rootView = (RCTRootView *)rootDic[self.moduleName];
+            //改变该属性时ReactNative重新渲染
+            rootView.appProperties = @{@"one":@"one"};
+            
+        }
+        
+    }
+    
+    
+    
+    self.view = (RCTRootView *)rootDic[self.moduleName];
     
+}
+
+#pragma mark -- YRRnBridgeDelegate
+
+-(void)addNotification{
+    //返回跳入界面
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bridgeHasBeenCreated:) name:@"YRReactNativeBridgeInited" object:nil];
     
-    self.view = rootView;
+
+}
+
+-(void)bridgeHasBeenCreated:(NSNotification *)notifacation{
+
     
-    [self addNotification];
+    YRRnBridge *bridge = (YRRnBridge *)notifacation.object;
+    
+    bridge.delegate = self;
     
 }
 
--(void)addNotification{
-    //返回跳入界面
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(backAction) name:@"YRReactNativeShouldBack" object:nil];
+-(void)reactNativeControllerShouldBack{
+    
+    [self backAction];
     
 }
 
--(void)dealloc{
+-(void)reactNativeControllerGestureEnabled:(BOOL)enabled{
+    
+    self.im_interactivePopDisabled = !enabled;
+    
+}
+
+-(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];
+//
+//    }
     
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"YRReactNativeShouldBack" object: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

+ 50 - 1
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,8 +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){
+    
+    if ([self.delegate respondsToSelector:@selector(reactNativeControllerGestureEnabled:)]) {
+        
+        [self.delegate reactNativeControllerGestureEnabled:enabled];
+        
+    }
     
 }
 
+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

+ 0 - 2
shiku_im/shiku_im/controller/JOAddressBookVC.m

@@ -26,12 +26,10 @@
 
 #import "MJExtension.h"//json解析
 
-
 #import "JXGroupViewController.h"//管理群
 
 #import "JONewPersonDetailVC.h"//个人资料新界面
 
-
 #import "ChineseString.h"//指示条
 
 #import "JOABFriendsVC.h"//UU好友

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

@@ -4762,7 +4762,6 @@
      - (void)buttonAction
      {
          
-         
          //LYHealthKitManage *manage = [LYHealthKitManage shareInstance];
          // __weak typeof(self) weakSelf = self;
          

+ 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

+ 48 - 0
shiku_im/shiku_im/controller/myOA/WorkTools/UASWorkManager.m

@@ -3605,6 +3605,7 @@
         [self loadPunchWorkClassCompleted:nil];
         [self loadPunchAlreadData];
         [self loadPunchAdminData];
+        [self loadIsAdmin];
         
     });
     
@@ -4192,6 +4193,53 @@
     
 }
 
+-(void)loadIsAdmin{
+    
+    
+    dispatch_async(dispatch_get_global_queue(0, 0), ^{
+        
+        NSString *sessionId=[[NSUserDefaults standardUserDefaults] stringForKey:@"sessionId"];
+        NSString *ip=[[NSUserDefaults standardUserDefaults] objectForKey:@"ipAndPort"];
+        NSString *emcode=[[NSUserDefaults standardUserDefaults] stringForKey:@"erpaccount"];
+        NSString *master = [[[NSUserDefaults standardUserDefaults] objectForKey:@"masterDic"]objectForKey:@"ma_user"];
+        NSString *sessionUser = [[NSUserDefaults standardUserDefaults] objectForKey:@"erpaccount"];
+        
+        NSString *url = [NSString stringWithFormat:@"%@mobile/crm/isSysAdmin.action?em_code=%@&master=%@&sessionUser=%@&sessionId=%@",ip,emcode,master,sessionUser,sessionId];
+        
+        
+        url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+        
+        UASNetworkManager *manager = [UASNetworkManager shareManager];
+        manager.responseSerializer = [AFJSONResponseSerializer serializer];
+        
+        //拼接sessionID
+        NSString *paramSessionId=[@"" stringByAppendingFormat:@"JSESSIONID=%@",sessionId];
+        //设置cookie
+        [manager.requestSerializer setValue:paramSessionId forHTTPHeaderField:@"Cookie"];
+        [manager.requestSerializer setValue:[NSString stringWithFormat:@"%@",g_sessionUser] forHTTPHeaderField:@"sessionUser"];
+        [manager request:url method:POST parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
+            NSString *sessionId = [NSString stringWithFormat:@"%@",responseObject[@"sessionId"]];
+            if (![sessionId isEqualToString:@"(null)"]) {
+                [[NSUserDefaults standardUserDefaults] setObject:sessionId forKey:@"sessionId"];
+            }
+            
+            NSString *admin = [NSString stringWithFormat:@"%@",responseObject[@"result"]];
+            
+            
+            [UASUserInfo shareManager].isAdmin = [admin isEqualToString:@"admin"]?YES:NO;
+            
+            
+        } failure:^(NSURLSessionDataTask *task, NSError *error) {
+            
+            
+        }];
+        
+    });
+    
+}
+
+
+
 -(void)loadPunchAdminData{
     
     dispatch_async(dispatch_get_global_queue(0, 0), ^{

+ 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/>

+ 4 - 2
shiku_im/shiku_im/文件夹1/ReportMenuVC.m

@@ -333,11 +333,13 @@ NSString * cellID = @"cellID";
     
     //    DataSearcherModel * model = _alldataArr[section];
     if ([_alldataArr[section] count] > 9) {
+        
         return 9;
-    }
-    else{
+        
+    }else{
         
         return  [_alldataArr[section] count];
+        
     }
     
     

+ 11 - 0
shiku_im/shiku_im/文件夹3/MainView/UserInfo/UASUserInfo.h

@@ -87,4 +87,15 @@ static NSString * const UserDefaultRemindRepeatStr = @"UserDefaultRemindRepeatSt
  */
 @property(assign,nonatomic)CGFloat scale;
 
+/**
+ 当前账号是否是管理员
+ */
+@property(assign,nonatomic)BOOL isAdmin;
+
+
+/**
+ 测试用,是否用新表单
+ */
+@property(assign,nonatomic)BOOL isNewDocu;
+
 @end