Browse Source

卖铺宝 新增扫码签到 新增 活动列表 新增我的活动 新增活动详情

youke 3 years ago
parent
commit
188b98a4b2
100 changed files with 4943 additions and 32 deletions
  1. BIN
      .DS_Store
  2. 236 22
      upAPP.xcodeproj/project.pbxproj
  3. BIN
      upAPP.xcworkspace/xcuserdata/youke.xcuserdatad/UserInterfaceState.xcuserstate
  4. 44 0
      upAPP.xcworkspace/xcuserdata/youke.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  5. BIN
      upAPP/Assets.xcassets/.DS_Store
  6. 8 5
      upAPP/Assets.xcassets/Mine/about.imageset/Contents.json
  7. 22 0
      upAPP/Assets.xcassets/Mine/saoma.imageset/Contents.json
  8. BIN
      upAPP/Assets.xcassets/Mine/saoma.imageset/saoma@2x.png
  9. BIN
      upAPP/Assets.xcassets/Mine/saoma.imageset/saoma@3x.png
  10. 21 0
      upAPP/Assets.xcassets/home/activityBanner.imageset/Contents.json
  11. BIN
      upAPP/Assets.xcassets/home/activityBanner.imageset/activityBanner.png
  12. 22 0
      upAPP/Assets.xcassets/home/again_icon.imageset/Contents.json
  13. BIN
      upAPP/Assets.xcassets/home/again_icon.imageset/进行中拷贝@2x.png
  14. BIN
      upAPP/Assets.xcassets/home/again_icon.imageset/进行中拷贝@3x.png
  15. 22 0
      upAPP/Assets.xcassets/home/end_icon.imageset/Contents.json
  16. BIN
      upAPP/Assets.xcassets/home/end_icon.imageset/已结束@2x.png
  17. BIN
      upAPP/Assets.xcassets/home/end_icon.imageset/已结束@3x.png
  18. 21 0
      upAPP/Assets.xcassets/home/monthBanner.imageset/Contents.json
  19. BIN
      upAPP/Assets.xcassets/home/monthBanner.imageset/monthBanner.png
  20. 21 0
      upAPP/Assets.xcassets/home/monthBanner2.imageset/Contents.json
  21. BIN
      upAPP/Assets.xcassets/home/monthBanner2.imageset/monthBanner2.png
  22. 22 0
      upAPP/Assets.xcassets/huodong.imageset/Contents.json
  23. BIN
      upAPP/Assets.xcassets/huodong.imageset/huodong@2x.png
  24. BIN
      upAPP/Assets.xcassets/huodong.imageset/huodong@3x.png
  25. 22 0
      upAPP/Assets.xcassets/wanshanxinxi.imageset/Contents.json
  26. BIN
      upAPP/Assets.xcassets/wanshanxinxi.imageset/wanshanxinxi@2x.png
  27. BIN
      upAPP/Assets.xcassets/wanshanxinxi.imageset/wanshanxinxi@3x.png
  28. 21 5
      upAPP/PrefixHeader(宏文件)/All_URL.h
  29. BIN
      upAPP/main/AddNewFile/.DS_Store
  30. 13 0
      upAPP/main/AddNewFile/ActivityModule/Controller/ActivityTableController.h
  31. 319 0
      upAPP/main/AddNewFile/ActivityModule/Controller/ActivityTableController.m
  32. 13 0
      upAPP/main/AddNewFile/ActivityModule/Controller/MyActivityController.h
  33. 248 0
      upAPP/main/AddNewFile/ActivityModule/Controller/MyActivityController.m
  34. 29 0
      upAPP/main/AddNewFile/ActivityModule/Controller/activityDetailVController.h
  35. 593 0
      upAPP/main/AddNewFile/ActivityModule/Controller/activityDetailVController.m
  36. 14 0
      upAPP/main/AddNewFile/ActivityModule/Controller/eventActivityVController.h
  37. 393 0
      upAPP/main/AddNewFile/ActivityModule/Controller/eventActivityVController.m
  38. 59 0
      upAPP/main/AddNewFile/ActivityModule/Model/InfoModel.h
  39. 40 0
      upAPP/main/AddNewFile/ActivityModule/Model/InfoModel.m
  40. 21 0
      upAPP/main/AddNewFile/ActivityModule/Model/MyActivityModel.h
  41. 22 0
      upAPP/main/AddNewFile/ActivityModule/Model/MyActivityModel.m
  42. 24 0
      upAPP/main/AddNewFile/ActivityModule/Model/activityModel.h
  43. 35 0
      upAPP/main/AddNewFile/ActivityModule/Model/activityModel.m
  44. 18 0
      upAPP/main/AddNewFile/ActivityModule/Model/newModel.h
  45. 25 0
      upAPP/main/AddNewFile/ActivityModule/Model/newModel.m
  46. 24 0
      upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.h
  47. 33 0
      upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.m
  48. 128 0
      upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.xib
  49. 22 0
      upAPP/main/AddNewFile/ActivityModule/View/activityCell.h
  50. 172 0
      upAPP/main/AddNewFile/ActivityModule/View/activityCell.m
  51. 25 0
      upAPP/main/AddNewFile/ActivityModule/View/newImageCell.h
  52. 163 0
      upAPP/main/AddNewFile/ActivityModule/View/newImageCell.m
  53. 22 0
      upAPP/main/AddNewFile/ActivityModule/View/newNoImageCell.h
  54. 108 0
      upAPP/main/AddNewFile/ActivityModule/View/newNoImageCell.m
  55. 0 0
      upAPP/main/AddNewFile/Cell/NewSaleTableViewCell.h
  56. 0 0
      upAPP/main/AddNewFile/Cell/NewSaleTableViewCell.m
  57. 0 0
      upAPP/main/AddNewFile/Controller/NewListVC.h
  58. 0 0
      upAPP/main/AddNewFile/Controller/NewListVC.m
  59. 0 0
      upAPP/main/AddNewFile/Controller/NewSignVC.h
  60. 0 0
      upAPP/main/AddNewFile/Controller/NewSignVC.m
  61. 0 0
      upAPP/main/AddNewFile/Controller/SaleWriteReportVC.h
  62. 0 0
      upAPP/main/AddNewFile/Controller/SaleWriteReportVC.m
  63. 0 0
      upAPP/main/AddNewFile/Controller/setupVC.h
  64. 0 0
      upAPP/main/AddNewFile/Controller/setupVC.m
  65. 0 0
      upAPP/main/AddNewFile/Controller/setupVC.xib
  66. 0 0
      upAPP/main/AddNewFile/Controller/subscribePutVC.h
  67. 0 0
      upAPP/main/AddNewFile/Controller/subscribePutVC.m
  68. 0 0
      upAPP/main/AddNewFile/Model/yetaiModel.h
  69. 0 0
      upAPP/main/AddNewFile/Model/yetaiModel.m
  70. 32 0
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD+SGQRCode.h
  71. 124 0
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD+SGQRCode.m
  72. BIN
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/error.png
  73. BIN
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/error@2x.png
  74. BIN
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/success.png
  75. BIN
      upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/success@2x.png
  76. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLine@2x.png
  77. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLine@3x.png
  78. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLineGrid@2x.png
  79. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLineGrid@3x.png
  80. 61 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/Root.plist
  81. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/en.lproj/Root.strings
  82. BIN
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/sound.caf
  83. 12 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.h
  84. 91 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtain.h
  85. 386 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtain.m
  86. 27 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtainConfigure.h
  87. 31 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtainConfigure.m
  88. 50 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeScanView.h
  89. 328 0
      upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeScanView.m
  90. 45 0
      upAPP/main/AddNewFile/SGToolThird/SGWebView.h
  91. 147 0
      upAPP/main/AddNewFile/SGToolThird/SGWebView.m
  92. 24 0
      upAPP/main/AddNewFile/SGToolThird/ScanSuccessJumpVC.h
  93. 114 0
      upAPP/main/AddNewFile/SGToolThird/ScanSuccessJumpVC.m
  94. 13 0
      upAPP/main/AddNewFile/SGToolThird/WBQRCodeVC.h
  95. 175 0
      upAPP/main/AddNewFile/SGToolThird/WBQRCodeVC.m
  96. 13 0
      upAPP/main/AddNewFile/SGToolThird/WCQRCodeVC.h
  97. 225 0
      upAPP/main/AddNewFile/SGToolThird/WCQRCodeVC.m
  98. 0 0
      upAPP/main/AddNewFile/View/README.md
  99. 0 0
      upAPP/main/AddNewFile/View/UIExPickerView.h
  100. 0 0
      upAPP/main/AddNewFile/UIExPickerView.m

BIN
.DS_Store


+ 236 - 22
upAPP.xcodeproj/project.pbxproj

@@ -232,6 +232,10 @@
 		9CE29FF1212F9CE800FBA0B4 /* FileCache.h in Sources */ = {isa = PBXBuildFile; fileRef = 9CE29F3D212D6BC000FBA0B4 /* FileCache.h */; };
 		9CE29FF2212F9D5F00FBA0B4 /* Digest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CE29F3C212D6BC000FBA0B4 /* Digest.m */; };
 		CC00FA062547C39F00BE0A7D /* VisitNoteVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CC00FA052547C39F00BE0A7D /* VisitNoteVC.m */; };
+		CC0C8BC6259974EA00D86549 /* activityDetailVController.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0C8BC1259974EA00D86549 /* activityDetailVController.m */; };
+		CC0C8BC7259974EA00D86549 /* eventActivityVController.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0C8BC3259974EA00D86549 /* eventActivityVController.m */; };
+		CC0C8BC8259974EA00D86549 /* ActivityTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0C8BC5259974EA00D86549 /* ActivityTableController.m */; };
+		CC0C8BCE25998B2F00D86549 /* InfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0C8BCD25998B2F00D86549 /* InfoModel.m */; };
 		CC1093A02574DC6700D9C089 /* MobApm.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1093682574DC6700D9C089 /* MobApm.framework */; };
 		CC1093A12574DC6700D9C089 /* MOBFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1093692574DC6700D9C089 /* MOBFoundation.framework */; };
 		CC1093A22574DC6700D9C089 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = CC10936D2574DC6700D9C089 /* README.txt */; };
@@ -366,6 +370,16 @@
 		CC263552213677D1004687DB /* SalesDetailController.m in Sources */ = {isa = PBXBuildFile; fileRef = CC263551213677D1004687DB /* SalesDetailController.m */; };
 		CC26355621378F0F004687DB /* DetailsHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = CC26355521378F0F004687DB /* DetailsHeaderView.m */; };
 		CC26355921379460004687DB /* KScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = CC26355821379460004687DB /* KScrollView.m */; };
+		CC27ECBD2591E750003ACDE6 /* MBProgressHUD+SGQRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECBA2591E74F003ACDE6 /* MBProgressHUD+SGQRCode.m */; };
+		CC27ECBE2591E750003ACDE6 /* MBProgressHUD.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CC27ECBC2591E750003ACDE6 /* MBProgressHUD.bundle */; };
+		CC27ECC72591E790003ACDE6 /* ScanSuccessJumpVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECC12591E78F003ACDE6 /* ScanSuccessJumpVC.m */; };
+		CC27ECC82591E790003ACDE6 /* WBQRCodeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECC42591E78F003ACDE6 /* WBQRCodeVC.m */; };
+		CC27ECC92591E790003ACDE6 /* WCQRCodeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECC52591E790003ACDE6 /* WCQRCodeVC.m */; };
+		CC27ECD42591E7CD003ACDE6 /* SGQRCode.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CC27ECCD2591E7CD003ACDE6 /* SGQRCode.bundle */; };
+		CC27ECD52591E7CD003ACDE6 /* SGQRCodeObtainConfigure.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECCE2591E7CD003ACDE6 /* SGQRCodeObtainConfigure.m */; };
+		CC27ECD62591E7CD003ACDE6 /* SGQRCodeObtain.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECD22591E7CD003ACDE6 /* SGQRCodeObtain.m */; };
+		CC27ECD72591E7CD003ACDE6 /* SGQRCodeScanView.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECD32591E7CD003ACDE6 /* SGQRCodeScanView.m */; };
+		CC27ECDA2591F1E7003ACDE6 /* SGWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = CC27ECD82591F1E7003ACDE6 /* SGWebView.m */; };
 		CC2FEE9B2143668500F6E16D /* RadioButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CC2FEE9A2143668500F6E16D /* RadioButton.m */; };
 		CC2FEEA1214368FA00F6E16D /* unchecked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CC2FEE9D214368F900F6E16D /* unchecked@2x.png */; };
 		CC2FEEA2214368FA00F6E16D /* checked.png in Resources */ = {isa = PBXBuildFile; fileRef = CC2FEE9E214368F900F6E16D /* checked.png */; };
@@ -526,6 +540,15 @@
 		CC95328D25885FFA00ABCE00 /* setupVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = CC95328A25885FFA00ABCE00 /* setupVC.xib */; };
 		CC95328E25885FFA00ABCE00 /* setupVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CC95328C25885FFA00ABCE00 /* setupVC.m */; };
 		CCB27FE3258B31D400A6B91D /* subscribePutVC.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB27FE2258B31D400A6B91D /* subscribePutVC.m */; };
+		CCB4683F25932180006CE2E1 /* activityModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4683D25932180006CE2E1 /* activityModel.m */; };
+		CCB4684225932188006CE2E1 /* activityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4684125932188006CE2E1 /* activityCell.m */; };
+		CCB4685325932222006CE2E1 /* newImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4684F25932221006CE2E1 /* newImageCell.m */; };
+		CCB4685425932222006CE2E1 /* newNoImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4685125932221006CE2E1 /* newNoImageCell.m */; };
+		CCB4685725932280006CE2E1 /* newModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4685625932280006CE2E1 /* newModel.m */; };
+		CCB468602593255B006CE2E1 /* MyActivityController.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4685F2593255B006CE2E1 /* MyActivityController.m */; };
+		CCB4686325932595006CE2E1 /* MyActivityModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB4686125932594006CE2E1 /* MyActivityModel.m */; };
+		CCB46867259325FC006CE2E1 /* JoinOrActivityCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = CCB46864259325FB006CE2E1 /* JoinOrActivityCell.xib */; };
+		CCB46868259325FC006CE2E1 /* JoinOrActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CCB46866259325FB006CE2E1 /* JoinOrActivityCell.m */; };
 		CCE7D79F213F826A00D60E80 /* XWDetailsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE7D79D213F826900D60E80 /* XWDetailsCell.m */; };
 		CCE7D7A3213F82C400D60E80 /* labelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE7D7A2213F82C400D60E80 /* labelModel.m */; };
 		CCE7D7AC213F87BC00D60E80 /* UILabel+Alignment_h.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE7D7AA213F87BB00D60E80 /* UILabel+Alignment_h.m */; };
@@ -952,6 +975,14 @@
 		B16F7B2D567660320FC49DD1 /* libPods-upAPP.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-upAPP.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		CC00FA042547C39F00BE0A7D /* VisitNoteVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VisitNoteVC.h; sourceTree = "<group>"; };
 		CC00FA052547C39F00BE0A7D /* VisitNoteVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VisitNoteVC.m; sourceTree = "<group>"; };
+		CC0C8BC0259974E900D86549 /* activityDetailVController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = activityDetailVController.h; sourceTree = "<group>"; };
+		CC0C8BC1259974EA00D86549 /* activityDetailVController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = activityDetailVController.m; sourceTree = "<group>"; };
+		CC0C8BC2259974EA00D86549 /* ActivityTableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActivityTableController.h; sourceTree = "<group>"; };
+		CC0C8BC3259974EA00D86549 /* eventActivityVController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = eventActivityVController.m; sourceTree = "<group>"; };
+		CC0C8BC4259974EA00D86549 /* eventActivityVController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eventActivityVController.h; sourceTree = "<group>"; };
+		CC0C8BC5259974EA00D86549 /* ActivityTableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ActivityTableController.m; sourceTree = "<group>"; };
+		CC0C8BCC25998B2F00D86549 /* InfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoModel.h; sourceTree = "<group>"; };
+		CC0C8BCD25998B2F00D86549 /* InfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoModel.m; sourceTree = "<group>"; };
 		CC1093682574DC6700D9C089 /* MobApm.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MobApm.framework; sourceTree = "<group>"; };
 		CC1093692574DC6700D9C089 /* MOBFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MOBFoundation.framework; sourceTree = "<group>"; };
 		CC10936B2574DC6700D9C089 /* WXApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApi.h; sourceTree = "<group>"; };
@@ -1185,6 +1216,25 @@
 		CC26355521378F0F004687DB /* DetailsHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DetailsHeaderView.m; sourceTree = "<group>"; };
 		CC26355721379460004687DB /* KScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KScrollView.h; sourceTree = "<group>"; };
 		CC26355821379460004687DB /* KScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KScrollView.m; sourceTree = "<group>"; };
+		CC27ECBA2591E74F003ACDE6 /* MBProgressHUD+SGQRCode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD+SGQRCode.m"; sourceTree = "<group>"; };
+		CC27ECBB2591E750003ACDE6 /* MBProgressHUD+SGQRCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD+SGQRCode.h"; sourceTree = "<group>"; };
+		CC27ECBC2591E750003ACDE6 /* MBProgressHUD.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MBProgressHUD.bundle; sourceTree = "<group>"; };
+		CC27ECBF2591E78E003ACDE6 /* ScanSuccessJumpVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanSuccessJumpVC.h; sourceTree = "<group>"; };
+		CC27ECC12591E78F003ACDE6 /* ScanSuccessJumpVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanSuccessJumpVC.m; sourceTree = "<group>"; };
+		CC27ECC22591E78F003ACDE6 /* WBQRCodeVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WBQRCodeVC.h; sourceTree = "<group>"; };
+		CC27ECC32591E78F003ACDE6 /* WCQRCodeVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WCQRCodeVC.h; sourceTree = "<group>"; };
+		CC27ECC42591E78F003ACDE6 /* WBQRCodeVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WBQRCodeVC.m; sourceTree = "<group>"; };
+		CC27ECC52591E790003ACDE6 /* WCQRCodeVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WCQRCodeVC.m; sourceTree = "<group>"; };
+		CC27ECCC2591E7CD003ACDE6 /* SGQRCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGQRCode.h; sourceTree = "<group>"; };
+		CC27ECCD2591E7CD003ACDE6 /* SGQRCode.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = SGQRCode.bundle; sourceTree = "<group>"; };
+		CC27ECCE2591E7CD003ACDE6 /* SGQRCodeObtainConfigure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGQRCodeObtainConfigure.m; sourceTree = "<group>"; };
+		CC27ECCF2591E7CD003ACDE6 /* SGQRCodeObtain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGQRCodeObtain.h; sourceTree = "<group>"; };
+		CC27ECD02591E7CD003ACDE6 /* SGQRCodeScanView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGQRCodeScanView.h; sourceTree = "<group>"; };
+		CC27ECD12591E7CD003ACDE6 /* SGQRCodeObtainConfigure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGQRCodeObtainConfigure.h; sourceTree = "<group>"; };
+		CC27ECD22591E7CD003ACDE6 /* SGQRCodeObtain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGQRCodeObtain.m; sourceTree = "<group>"; };
+		CC27ECD32591E7CD003ACDE6 /* SGQRCodeScanView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGQRCodeScanView.m; sourceTree = "<group>"; };
+		CC27ECD82591F1E7003ACDE6 /* SGWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGWebView.m; sourceTree = "<group>"; };
+		CC27ECD92591F1E7003ACDE6 /* SGWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGWebView.h; sourceTree = "<group>"; };
 		CC2FEE992143668400F6E16D /* RadioButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadioButton.h; sourceTree = "<group>"; };
 		CC2FEE9A2143668500F6E16D /* RadioButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RadioButton.m; sourceTree = "<group>"; };
 		CC2FEE9D214368F900F6E16D /* unchecked@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "unchecked@2x.png"; sourceTree = "<group>"; };
@@ -1435,6 +1485,23 @@
 		CC95328C25885FFA00ABCE00 /* setupVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = setupVC.m; sourceTree = "<group>"; };
 		CCB27FE1258B31D400A6B91D /* subscribePutVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = subscribePutVC.h; sourceTree = "<group>"; };
 		CCB27FE2258B31D400A6B91D /* subscribePutVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = subscribePutVC.m; sourceTree = "<group>"; };
+		CCB4683D25932180006CE2E1 /* activityModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = activityModel.m; sourceTree = "<group>"; };
+		CCB4683E25932180006CE2E1 /* activityModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = activityModel.h; sourceTree = "<group>"; };
+		CCB4684025932188006CE2E1 /* activityCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = activityCell.h; sourceTree = "<group>"; };
+		CCB4684125932188006CE2E1 /* activityCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = activityCell.m; sourceTree = "<group>"; };
+		CCB4684F25932221006CE2E1 /* newImageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = newImageCell.m; sourceTree = "<group>"; };
+		CCB4685025932221006CE2E1 /* newImageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newImageCell.h; sourceTree = "<group>"; };
+		CCB4685125932221006CE2E1 /* newNoImageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = newNoImageCell.m; sourceTree = "<group>"; };
+		CCB4685225932221006CE2E1 /* newNoImageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newNoImageCell.h; sourceTree = "<group>"; };
+		CCB4685525932280006CE2E1 /* newModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = newModel.h; sourceTree = "<group>"; };
+		CCB4685625932280006CE2E1 /* newModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = newModel.m; sourceTree = "<group>"; };
+		CCB4685E2593255B006CE2E1 /* MyActivityController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyActivityController.h; sourceTree = "<group>"; };
+		CCB4685F2593255B006CE2E1 /* MyActivityController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyActivityController.m; sourceTree = "<group>"; };
+		CCB4686125932594006CE2E1 /* MyActivityModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyActivityModel.m; sourceTree = "<group>"; };
+		CCB4686225932594006CE2E1 /* MyActivityModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyActivityModel.h; sourceTree = "<group>"; };
+		CCB46864259325FB006CE2E1 /* JoinOrActivityCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = JoinOrActivityCell.xib; sourceTree = "<group>"; };
+		CCB46865259325FB006CE2E1 /* JoinOrActivityCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JoinOrActivityCell.h; sourceTree = "<group>"; };
+		CCB46866259325FB006CE2E1 /* JoinOrActivityCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JoinOrActivityCell.m; sourceTree = "<group>"; };
 		CCE7D79D213F826900D60E80 /* XWDetailsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XWDetailsCell.m; sourceTree = "<group>"; };
 		CCE7D79E213F826A00D60E80 /* XWDetailsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XWDetailsCell.h; sourceTree = "<group>"; };
 		CCE7D7A1213F82C400D60E80 /* labelModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = labelModel.h; sourceTree = "<group>"; };
@@ -2827,6 +2894,88 @@
 			path = view;
 			sourceTree = "<group>";
 		};
+		CC27ECB52591E594003ACDE6 /* SGToolThird */ = {
+			isa = PBXGroup;
+			children = (
+				CC27ECD92591F1E7003ACDE6 /* SGWebView.h */,
+				CC27ECD82591F1E7003ACDE6 /* SGWebView.m */,
+				CC27ECCB2591E7CD003ACDE6 /* SGQRCode */,
+				CC27ECBF2591E78E003ACDE6 /* ScanSuccessJumpVC.h */,
+				CC27ECC12591E78F003ACDE6 /* ScanSuccessJumpVC.m */,
+				CC27ECC22591E78F003ACDE6 /* WBQRCodeVC.h */,
+				CC27ECC42591E78F003ACDE6 /* WBQRCodeVC.m */,
+				CC27ECC32591E78F003ACDE6 /* WCQRCodeVC.h */,
+				CC27ECC52591E790003ACDE6 /* WCQRCodeVC.m */,
+				CC27ECBC2591E750003ACDE6 /* MBProgressHUD.bundle */,
+				CC27ECBB2591E750003ACDE6 /* MBProgressHUD+SGQRCode.h */,
+				CC27ECBA2591E74F003ACDE6 /* MBProgressHUD+SGQRCode.m */,
+			);
+			path = SGToolThird;
+			sourceTree = "<group>";
+		};
+		CC27ECB62591E5B3003ACDE6 /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				CC95328B25885FFA00ABCE00 /* setupVC.h */,
+				CC95328C25885FFA00ABCE00 /* setupVC.m */,
+				CC95328A25885FFA00ABCE00 /* setupVC.xib */,
+				CC928AFD254F9ECC00E82724 /* NewListVC.h */,
+				CC928AFE254F9ECC00E82724 /* NewListVC.m */,
+				CCFE408C2550F7BA00F58DC5 /* NewSignVC.h */,
+				CCFE408D2550F7BA00F58DC5 /* NewSignVC.m */,
+				CCB27FE1258B31D400A6B91D /* subscribePutVC.h */,
+				CCB27FE2258B31D400A6B91D /* subscribePutVC.m */,
+				CCEB6074258C78D0008CFE39 /* SaleWriteReportVC.h */,
+				CCEB6075258C78D0008CFE39 /* SaleWriteReportVC.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		CC27ECB72591E5BF003ACDE6 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				CC928B00254FE65B00E82724 /* README.md */,
+				CC928B01254FE65B00E82724 /* UIExPickerView.h */,
+				CC928B02254FE65B00E82724 /* UIExPickerView.m */,
+				CCFE408F255134AB00F58DC5 /* signPopView.h */,
+				CCFE4090255134AB00F58DC5 /* signPopView.m */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		CC27ECB82591E5C4003ACDE6 /* Cell */ = {
+			isa = PBXGroup;
+			children = (
+				CCFE40922551505200F58DC5 /* NewSaleTableViewCell.h */,
+				CCFE40932551505200F58DC5 /* NewSaleTableViewCell.m */,
+			);
+			path = Cell;
+			sourceTree = "<group>";
+		};
+		CC27ECB92591E5CB003ACDE6 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				CC928B05254FEE9E00E82724 /* yetaiModel.h */,
+				CC928B06254FEE9E00E82724 /* yetaiModel.m */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		CC27ECCB2591E7CD003ACDE6 /* SGQRCode */ = {
+			isa = PBXGroup;
+			children = (
+				CC27ECCC2591E7CD003ACDE6 /* SGQRCode.h */,
+				CC27ECCD2591E7CD003ACDE6 /* SGQRCode.bundle */,
+				CC27ECCE2591E7CD003ACDE6 /* SGQRCodeObtainConfigure.m */,
+				CC27ECCF2591E7CD003ACDE6 /* SGQRCodeObtain.h */,
+				CC27ECD02591E7CD003ACDE6 /* SGQRCodeScanView.h */,
+				CC27ECD12591E7CD003ACDE6 /* SGQRCodeObtainConfigure.h */,
+				CC27ECD22591E7CD003ACDE6 /* SGQRCodeObtain.m */,
+				CC27ECD32591E7CD003ACDE6 /* SGQRCodeScanView.m */,
+			);
+			path = SGQRCode;
+			sourceTree = "<group>";
+		};
 		CC2FEE9C2143669E00F6E16D /* view */ = {
 			isa = PBXGroup;
 			children = (
@@ -3120,31 +3269,73 @@
 		CC928AFC254F9E8100E82724 /* AddNewFile */ = {
 			isa = PBXGroup;
 			children = (
-				CC95328B25885FFA00ABCE00 /* setupVC.h */,
-				CC95328C25885FFA00ABCE00 /* setupVC.m */,
-				CC95328A25885FFA00ABCE00 /* setupVC.xib */,
+				CCB4683925931FBB006CE2E1 /* ActivityModule */,
+				CC27ECB92591E5CB003ACDE6 /* Model */,
+				CC27ECB82591E5C4003ACDE6 /* Cell */,
+				CC27ECB72591E5BF003ACDE6 /* View */,
+				CC27ECB62591E5B3003ACDE6 /* Controller */,
 				CCFE4096255252FC00F58DC5 /* NewWebviewBase */,
-				CC928B00254FE65B00E82724 /* README.md */,
-				CC928B01254FE65B00E82724 /* UIExPickerView.h */,
-				CC928B02254FE65B00E82724 /* UIExPickerView.m */,
-				CC928AFD254F9ECC00E82724 /* NewListVC.h */,
-				CC928AFE254F9ECC00E82724 /* NewListVC.m */,
-				CC928B05254FEE9E00E82724 /* yetaiModel.h */,
-				CC928B06254FEE9E00E82724 /* yetaiModel.m */,
-				CCFE408C2550F7BA00F58DC5 /* NewSignVC.h */,
-				CCFE408D2550F7BA00F58DC5 /* NewSignVC.m */,
-				CCFE408F255134AB00F58DC5 /* signPopView.h */,
-				CCFE4090255134AB00F58DC5 /* signPopView.m */,
-				CCFE40922551505200F58DC5 /* NewSaleTableViewCell.h */,
-				CCFE40932551505200F58DC5 /* NewSaleTableViewCell.m */,
-				CCB27FE1258B31D400A6B91D /* subscribePutVC.h */,
-				CCB27FE2258B31D400A6B91D /* subscribePutVC.m */,
-				CCEB6074258C78D0008CFE39 /* SaleWriteReportVC.h */,
-				CCEB6075258C78D0008CFE39 /* SaleWriteReportVC.m */,
+				CC27ECB52591E594003ACDE6 /* SGToolThird */,
 			);
 			path = AddNewFile;
 			sourceTree = "<group>";
 		};
+		CCB4683925931FBB006CE2E1 /* ActivityModule */ = {
+			isa = PBXGroup;
+			children = (
+				CCB4683C25931FD6006CE2E1 /* Model */,
+				CCB4683B25931FD0006CE2E1 /* View */,
+				CCB4683A25931FC7006CE2E1 /* Controller */,
+			);
+			path = ActivityModule;
+			sourceTree = "<group>";
+		};
+		CCB4683A25931FC7006CE2E1 /* Controller */ = {
+			isa = PBXGroup;
+			children = (
+				CC0C8BC0259974E900D86549 /* activityDetailVController.h */,
+				CC0C8BC1259974EA00D86549 /* activityDetailVController.m */,
+				CC0C8BC2259974EA00D86549 /* ActivityTableController.h */,
+				CC0C8BC5259974EA00D86549 /* ActivityTableController.m */,
+				CC0C8BC4259974EA00D86549 /* eventActivityVController.h */,
+				CC0C8BC3259974EA00D86549 /* eventActivityVController.m */,
+				CCB4685E2593255B006CE2E1 /* MyActivityController.h */,
+				CCB4685F2593255B006CE2E1 /* MyActivityController.m */,
+			);
+			path = Controller;
+			sourceTree = "<group>";
+		};
+		CCB4683B25931FD0006CE2E1 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				CCB46865259325FB006CE2E1 /* JoinOrActivityCell.h */,
+				CCB46866259325FB006CE2E1 /* JoinOrActivityCell.m */,
+				CCB46864259325FB006CE2E1 /* JoinOrActivityCell.xib */,
+				CCB4685025932221006CE2E1 /* newImageCell.h */,
+				CCB4684F25932221006CE2E1 /* newImageCell.m */,
+				CCB4685225932221006CE2E1 /* newNoImageCell.h */,
+				CCB4685125932221006CE2E1 /* newNoImageCell.m */,
+				CCB4684025932188006CE2E1 /* activityCell.h */,
+				CCB4684125932188006CE2E1 /* activityCell.m */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		CCB4683C25931FD6006CE2E1 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				CCB4686225932594006CE2E1 /* MyActivityModel.h */,
+				CCB4686125932594006CE2E1 /* MyActivityModel.m */,
+				CCB4685525932280006CE2E1 /* newModel.h */,
+				CCB4685625932280006CE2E1 /* newModel.m */,
+				CCB4683E25932180006CE2E1 /* activityModel.h */,
+				CCB4683D25932180006CE2E1 /* activityModel.m */,
+				CC0C8BCC25998B2F00D86549 /* InfoModel.h */,
+				CC0C8BCD25998B2F00D86549 /* InfoModel.m */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
 		CCE7D7A0213F82BA00D60E80 /* model */ = {
 			isa = PBXGroup;
 			children = (
@@ -3360,6 +3551,7 @@
 				CC822633216AFD2A00D29890 /* 1.png in Resources */,
 				CC4C8A27214FB3F40029CF0D /* DealDetailCellC.xib in Resources */,
 				CC563566214282D000448812 /* ImageSelectedSmallOn@3x.png in Resources */,
+				CCB46867259325FC006CE2E1 /* JoinOrActivityCell.xib in Resources */,
 				CC56356A214282D000448812 /* ImageSelectedSmallOn@2x.png in Resources */,
 				CC25249B21229C8C008CD0C5 /* 1.jpg in Resources */,
 				CC56354E214282D000448812 /* UIBarButtonItemGrid@2x.png in Resources */,
@@ -3400,6 +3592,7 @@
 				CC56355F214282D000448812 /* UIBarButtonItemArrowLeft@2x.png in Resources */,
 				CC563563214282D000448812 /* ImageSelectedOff@3x.png in Resources */,
 				9CA6A5AD21478EDA008AB586 /* EstateLocationView.xib in Resources */,
+				CC27ECD42591E7CD003ACDE6 /* SGQRCode.bundle in Resources */,
 				CC2FEEA2214368FA00F6E16D /* checked.png in Resources */,
 				9CA6A571214277D9008AB586 /* getCashBottomView.xib in Resources */,
 				CC95328D25885FFA00ABCE00 /* setupVC.xib in Resources */,
@@ -3448,6 +3641,7 @@
 				CC563558214282D000448812 /* UIBarButtonItemArrowRight.png in Resources */,
 				9CA6A562214277D9008AB586 /* BalanceDetailsCell.xib in Resources */,
 				9CA6A5C92148DECB008AB586 /* keyuanpeopleDetailCell.xib in Resources */,
+				CC27ECBE2591E750003ACDE6 /* MBProgressHUD.bundle in Resources */,
 				9CA6A590214277D9008AB586 /* recommandCell.xib in Resources */,
 				9CA6A5B22147948E008AB586 /* EstateLocationTableViewCell.xib in Resources */,
 				CC584123213E66C300ADA6E5 /* LBLoadError.jpg in Resources */,
@@ -3595,6 +3789,7 @@
 				CC559E992133D5C0001B2C20 /* homeViewCell.h in Sources */,
 				CC58411F213E66C300ADA6E5 /* UIView+LBFrame.m in Sources */,
 				CC227BC92149178800E73C69 /* serachViewController.m in Sources */,
+				CC0C8BC6259974EA00D86549 /* activityDetailVController.m in Sources */,
 				CC1FDA9A23B32DB5007DB6E2 /* CustomButtonView.m in Sources */,
 				CC1DA698214B6602007D1A11 /* BusinessHomeCell.m in Sources */,
 				9CA6A595214277D9008AB586 /* SelctCityView.m in Sources */,
@@ -3618,6 +3813,7 @@
 				CC4C8A30214FB4150029CF0D /* DealDetailCellD.m in Sources */,
 				475300A92439BDFD00EA5B53 /* QudaoDetailCell.m in Sources */,
 				9CE29FEF212F9CAE00FBA0B4 /* LSActionSheet.m in Sources */,
+				CC27ECD72591E7CD003ACDE6 /* SGQRCodeScanView.m in Sources */,
 				9CA85B9A216DCFED005A76C0 /* BaseSearchController.m in Sources */,
 				9CA6A577214277D9008AB586 /* MyBrandCellHeader.m in Sources */,
 				CC56353D214282D000448812 /* TZImagePickerController.m in Sources */,
@@ -3643,6 +3839,7 @@
 				CCFE409C2553963100F58DC5 /* LMWebviewController.m in Sources */,
 				CC4229C724751A2600DA8AA4 /* shareMModel.m in Sources */,
 				9CA6A554214277D9008AB586 /* personalVerifiedController.m in Sources */,
+				CC27ECC92591E790003ACDE6 /* WCQRCodeVC.m in Sources */,
 				CC4F108F2134F0530077F5DC /* investmentVController.m in Sources */,
 				9CA6A569214277D9008AB586 /* CardManagementCell.m in Sources */,
 				CC563543214282D000448812 /* MWZoomingScrollView.m in Sources */,
@@ -3654,7 +3851,9 @@
 				CC4C8A21214FB3960029CF0D /* DealDetailCellB.m in Sources */,
 				9CA6A575214277D9008AB586 /* joinTeamTableViewCell.m in Sources */,
 				9CE29F57212D6BC000FBA0B4 /* DKGlobal.m in Sources */,
+				CC0C8BCE25998B2F00D86549 /* InfoModel.m in Sources */,
 				CC2FEEAB2143A00E00F6E16D /* sendSalesViewController.m in Sources */,
+				CC0C8BC8259974EA00D86549 /* ActivityTableController.m in Sources */,
 				9C177DA5215CDE75001DD503 /* ErJiteamHeaderModel.m in Sources */,
 				CC250EE92147640E000E2E92 /* mySendViewController.m in Sources */,
 				CC6A51182154CA05002A896E /* upLoadSpareViewController.m in Sources */,
@@ -3692,6 +3891,7 @@
 				CC559E9E2133E7BD001B2C20 /* salesController.m in Sources */,
 				9CA6A558214277D9008AB586 /* TeamMenmberDetailController.m in Sources */,
 				9CA6A55C214277D9008AB586 /* GetCashModel.m in Sources */,
+				CCB4685725932280006CE2E1 /* newModel.m in Sources */,
 				9CA6A542214277D9008AB586 /* DemandDetailController.m in Sources */,
 				CC584122213E66C300ADA6E5 /* LBPhotoBrowserManager.m in Sources */,
 				CC563549214282D000448812 /* MWGridCell.m in Sources */,
@@ -3716,8 +3916,10 @@
 				CC563541214282D000448812 /* MWPhotoBrowser.m in Sources */,
 				CC4C8A32214FB4150029CF0D /* DealDetailCellE.m in Sources */,
 				9C177D88215B2BFC001DD503 /* cardMangeModel.m in Sources */,
+				CCB4686325932595006CE2E1 /* MyActivityModel.m in Sources */,
 				9CA6A593214277D9008AB586 /* recommendHeader.m in Sources */,
 				CC1FDA9623B32DB5007DB6E2 /* UIView+CBExtension.m in Sources */,
+				CC27ECBD2591E750003ACDE6 /* MBProgressHUD+SGQRCode.m in Sources */,
 				CC563542214282D000448812 /* MWCaptionView.m in Sources */,
 				4752944C2436CE63001DCF47 /* LXFHouseLoanCalculator.m in Sources */,
 				CC2523B821227653008CD0C5 /* ViewController.m in Sources */,
@@ -3768,6 +3970,7 @@
 				9CE29F6A212D79D100FBA0B4 /* NSDictionary+Extention.m in Sources */,
 				CC18E1962123248A003556CB /* EasyNavigationUtils.m in Sources */,
 				CC563545214282D000448812 /* MWTapDetectingImageView.m in Sources */,
+				CCB4683F25932180006CE2E1 /* activityModel.m in Sources */,
 				9CA6A549214277D9008AB586 /* MyOrderViewController.m in Sources */,
 				475294B92436CE91001DCF47 /* LCActionSheetCell.m in Sources */,
 				9CA6A57F214277D9008AB586 /* MyRewardCell.m in Sources */,
@@ -3788,6 +3991,7 @@
 				9CA6A55B214277D9008AB586 /* allOrderListModel.m in Sources */,
 				CC563528214282D000448812 /* UIView+ACMediaExt.m in Sources */,
 				9C177DB1215E5053001DD503 /* sourceDetailHeaderModel.m in Sources */,
+				CCB468602593255B006CE2E1 /* MyActivityController.m in Sources */,
 				CC250F1F2147B571000E2E92 /* mapItemModel.m in Sources */,
 				CC584121213E66C300ADA6E5 /* LBPhotoBrowserView.m in Sources */,
 				4752949F2436CE91001DCF47 /* LXFCalculatorCalcBtnView.m in Sources */,
@@ -3810,6 +4014,7 @@
 				9CA6A54D214277D9008AB586 /* NewsDetailController.m in Sources */,
 				9CA6A589214277D9008AB586 /* OrderListTableViewHeader.m in Sources */,
 				9CA6A573214277D9008AB586 /* joinTeamHeader.m in Sources */,
+				CC27ECDA2591F1E7003ACDE6 /* SGWebView.m in Sources */,
 				CC4229C3247519A900DA8AA4 /* GBShareButton.m in Sources */,
 				CCFE408E2550F7BA00F58DC5 /* NewSignVC.m in Sources */,
 				9C177DC9215F6D11001DD503 /* brandListModel.m in Sources */,
@@ -3824,6 +4029,7 @@
 				9CA6A587214277D9008AB586 /* OrderListEmptyView.m in Sources */,
 				9CA6A596214277D9008AB586 /* selectStatusView.m in Sources */,
 				CC4C8A1C214FB35D0029CF0D /* DealDetailCellA.m in Sources */,
+				CC27ECC72591E790003ACDE6 /* ScanSuccessJumpVC.m in Sources */,
 				9CA6A5B82147DAF9008AB586 /* keyuanHeader.m in Sources */,
 				CC18E19B2123248A003556CB /* EasyKVOInfo.m in Sources */,
 				9CA6A5E1214A5651008AB586 /* LogInViewController.m in Sources */,
@@ -3844,6 +4050,7 @@
 				CC2389C3216F6C5C005DCC74 /* DetailsOtherHeaderView.m in Sources */,
 				CC606BA92150E2AC004A2EA9 /* RecordSignVController.m in Sources */,
 				9CE29F63212D6BC000FBA0B4 /* PINDiskCache.m in Sources */,
+				CCB4685425932222006CE2E1 /* newNoImageCell.m in Sources */,
 				9CA6A54B214277D9008AB586 /* MyVipViewController.m in Sources */,
 				9CA6A58B214277D9008AB586 /* OrderTableViewCell.m in Sources */,
 				CC250F242147C528000E2E92 /* BFRoundAnnotationView.m in Sources */,
@@ -3866,6 +4073,7 @@
 				CCB27FE3258B31D400A6B91D /* subscribePutVC.m in Sources */,
 				CC25248C21228807008CD0C5 /* HWNewfeatureViewController.m in Sources */,
 				CC18E19A2123248A003556CB /* UIView+EasyNavigationExt.m in Sources */,
+				CCB46868259325FC006CE2E1 /* JoinOrActivityCell.m in Sources */,
 				CC4229C4247519A900DA8AA4 /* GBShareView.m in Sources */,
 				CC58411E213E66C300ADA6E5 /* LBPhotoBrowserConst.m in Sources */,
 				CC563547214282D000448812 /* MWTapDetectingView.m in Sources */,
@@ -3878,6 +4086,7 @@
 				CC563539214282D000448812 /* TZProgressView.m in Sources */,
 				9CA6A547214277D9008AB586 /* MyAttentionController.m in Sources */,
 				9C5A883A21746EE2005C9A6F /* NewsModel.m in Sources */,
+				CC27ECD52591E7CD003ACDE6 /* SGQRCodeObtainConfigure.m in Sources */,
 				CC563532214282D000448812 /* TZAssetCell.m in Sources */,
 				9C177D92215C6906001DD503 /* TeamProtocolController.m in Sources */,
 				9C177D96215C7F90001DD503 /* recommandTeamWeb.m in Sources */,
@@ -3888,6 +4097,7 @@
 				CC2524A921229D9D008CD0C5 /* BusinessViewController.m in Sources */,
 				9CA6A58D214277D9008AB586 /* reasonView.m in Sources */,
 				4752949C2436CE91001DCF47 /* LXFCalcSelectStrCell.m in Sources */,
+				CC27ECD62591E7CD003ACDE6 /* SGQRCodeObtain.m in Sources */,
 				475294AA2436CE91001DCF47 /* UITableViewCell+LXF.m in Sources */,
 				CC1FF39721468CE900F94268 /* merchantsDetailVController.m in Sources */,
 				CC17531A215B2883009607AB /* ProjectsModel.m in Sources */,
@@ -3908,10 +4118,14 @@
 				9CE29F61212D6BC000FBA0B4 /* XWYoupuManger.m in Sources */,
 				9CA6A536214277D9008AB586 /* BalanceDetailsController.m in Sources */,
 				9CA6A567214277D9008AB586 /* CardAddBtnCell.m in Sources */,
+				CCB4684225932188006CE2E1 /* activityCell.m in Sources */,
+				CC27ECC82591E790003ACDE6 /* WBQRCodeVC.m in Sources */,
 				CC4F3043215CD721005F9B92 /* myUILabel.m in Sources */,
 				CC563540214282D000448812 /* SDWebImageDecoder.m in Sources */,
 				CC606BA62150D810004A2EA9 /* InputInforViewController.m in Sources */,
+				CCB4685325932222006CE2E1 /* newImageCell.m in Sources */,
 				475294A62436CE91001DCF47 /* LXFCalculatorViewController.m in Sources */,
+				CC0C8BC7259974EA00D86549 /* eventActivityVController.m in Sources */,
 				CC18E19D2123248A003556CB /* UIViewController+EasyNavigationExt.m in Sources */,
 				CC2FEEA82143947600F6E16D /* entryInfoController.m in Sources */,
 				9CE29F5B212D6BC000FBA0B4 /* FileManager.m in Sources */,
@@ -4141,7 +4355,7 @@
 					"$(PROJECT_DIR)/other/SDK/OpenSDK1.8.7.1",
 					"$(PROJECT_DIR)/other/SDK/ShareSDK/Support/PlatformSDK/WeChatSDK",
 				);
-				MARKETING_VERSION = 3.6.6;
+				MARKETING_VERSION = 3.7.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.bupts.youpu;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE = "";
@@ -4209,7 +4423,7 @@
 					"$(PROJECT_DIR)/other/SDK/OpenSDK1.8.7.1",
 					"$(PROJECT_DIR)/other/SDK/ShareSDK/Support/PlatformSDK/WeChatSDK",
 				);
-				MARKETING_VERSION = 3.6.6;
+				MARKETING_VERSION = 3.7.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.bupts.youpu;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE = "";

BIN
upAPP.xcworkspace/xcuserdata/youke.xcuserdatad/UserInterfaceState.xcuserstate


+ 44 - 0
upAPP.xcworkspace/xcuserdata/youke.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -1125,5 +1125,49 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
+         <BreakpointContent
+            uuid = "B1F5F787-1209-4BDD-9DC3-E47F3129352B"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            breakpointStackSelectionBehavior = "1"
+            scope = "1"
+            stopOnStyle = "0">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "DB057994-7800-4E83-A0EF-FBC575825C10"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "upAPP/main/AddNewFile/ActivityModule/Controller/activityDetailVController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "565"
+            endingLineNumber = "565"
+            landmarkName = "-loadActivityStatus"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "CB8544D6-ADDD-4E12-AF94-95088B664669"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "upAPP/main/AddNewFile/ActivityModule/Controller/MyActivityController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "233"
+            endingLineNumber = "233"
+            landmarkName = "-tableView:didSelectRowAtIndexPath:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

BIN
upAPP/Assets.xcassets/.DS_Store


+ 8 - 5
upAPP/Assets.xcassets/Mine/about.imageset/Contents.json

@@ -5,18 +5,21 @@
       "scale" : "1x"
     },
     {
-      "idiom" : "universal",
       "filename" : "about@2x.png",
+      "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "idiom" : "universal",
       "filename" : "about@3x.png",
+      "idiom" : "universal",
       "scale" : "3x"
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
+  },
+  "properties" : {
+    "template-rendering-intent" : "original"
   }
-}
+}

+ 22 - 0
upAPP/Assets.xcassets/Mine/saoma.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/Mine/saoma.imageset/saoma@2x.png


BIN
upAPP/Assets.xcassets/Mine/saoma.imageset/saoma@3x.png


+ 21 - 0
upAPP/Assets.xcassets/home/activityBanner.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/home/activityBanner.imageset/activityBanner.png


+ 22 - 0
upAPP/Assets.xcassets/home/again_icon.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/home/again_icon.imageset/进行中拷贝@2x.png


BIN
upAPP/Assets.xcassets/home/again_icon.imageset/进行中拷贝@3x.png


+ 22 - 0
upAPP/Assets.xcassets/home/end_icon.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/home/end_icon.imageset/已结束@2x.png


BIN
upAPP/Assets.xcassets/home/end_icon.imageset/已结束@3x.png


+ 21 - 0
upAPP/Assets.xcassets/home/monthBanner.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/home/monthBanner.imageset/monthBanner.png


+ 21 - 0
upAPP/Assets.xcassets/home/monthBanner2.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/home/monthBanner2.imageset/monthBanner2.png


+ 22 - 0
upAPP/Assets.xcassets/huodong.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/huodong.imageset/huodong@2x.png


BIN
upAPP/Assets.xcassets/huodong.imageset/huodong@3x.png


+ 22 - 0
upAPP/Assets.xcassets/wanshanxinxi.imageset/Contents.json

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

BIN
upAPP/Assets.xcassets/wanshanxinxi.imageset/wanshanxinxi@2x.png


BIN
upAPP/Assets.xcassets/wanshanxinxi.imageset/wanshanxinxi@3x.png


+ 21 - 5
upAPP/PrefixHeader(宏文件)/All_URL.h

@@ -12,9 +12,9 @@
 //#define RootDomain @"http://api.zpb.yingshangchina.com"
 #define RootDimainForFlight @"http://api.gobonni.com/api"
 //正式环境
-#define RootDomain @"http://api.youpuglobal.com"
+//#define RootDomain @"http://api.youpuglobal.com"
 //卖铺宝测试环境
-//#define RootDomain @"http://test-api-mpb.yingshangchina.com"
+#define RootDomain @"http://test-api-mpb.yingshangchina.com"
 //卓琳
 //#define RootDomain @"http://192.168.1.217:8080"
 //李冰
@@ -26,9 +26,9 @@
 //测试服务器
 //#define RootDomain @"http://59.110.226.236:9090"
 //线上H5ip
-#define tuijiantuanduiIp  @"http://m.youpuglobal.com"
-//颜冰月ip
-//#define tuijiantuanduiIp  @"http://test-m-mpb.yingshangchina.com"
+//#define tuijiantuanduiIp  @"http://m.youpuglobal.com"
+//测试H5IP
+#define tuijiantuanduiIp  @"http://test-m-mpb.yingshangchina.com"
 //田瑞慈ip
 //#define tuijiantuanduiIp  @"http://192.168.1.91:8090"
 
@@ -141,6 +141,22 @@
 
 #define getOrderTrackId @"/customer/auth/getOrderTrackId"   //新增根据oderno获取ordertrackid接口
 
+#define activityList @"/activity/selectActivityList"   //新增活动列表
+
+#define createActivityOrder @"/activity/auth/createActivityOrder"   //新增活动报名接口
+
+#define isSignUp @"/activity/auth/isSignUp"
+
+#define selectMemberInfo @"/member/auth/memberInfo"   //新增活动详情个人信息回显报名
+
+#define selectActivityStatus @"/activity/selectActivityStatus"
+
+#define ActivityAuditList @"/member/auth/selectActivityAuditList"
+
+
+
+
+
 
 
 #endif /* All_URL_h */

BIN
upAPP/main/AddNewFile/.DS_Store


+ 13 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/ActivityTableController.h

@@ -0,0 +1,13 @@
+//
+//  ActivityTableController.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ActivityTableController : UIViewController
+@property(nonatomic ,strong)NSString *typeString;
+@end

+ 319 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/ActivityTableController.m

@@ -0,0 +1,319 @@
+//
+//  ActivityTableController.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "ActivityTableController.h"
+#import "newImageCell.h"
+#import "activityCell.h"
+#import "newModel.h"
+//#import "newsDetailVController.h"
+#import "activityDetailVController.h"
+#import "activityModel.h"
+@interface ActivityTableController ()<UITableViewDelegate,UITableViewDataSource>{
+        int _page;
+ 
+}
+@property(nonatomic, strong) UILabel *titleLab;
+@property(nonatomic,strong)UITableView *tableView;
+@property(nonatomic,strong)NSMutableArray *listArray;
+@property(nonatomic,strong)NSMutableArray *dataArray;
+@property(nonatomic,strong)HttpRequestManger *sessionManager;
+
+@property(nonatomic,strong)UIImageView *iconImgView;
+@property(nonatomic,strong)UILabel *jieKuanLb;
+@property(nonatomic,strong)UIView *backgroundView;
+@end
+
+@implementation ActivityTableController
+- (HttpRequestManger*) sessionManager{
+    if (!_sessionManager) {
+        _sessionManager = [[HttpRequestManger alloc]init];
+    }
+    return _sessionManager;
+}
+-(NSMutableArray *)listArray{
+    if (!_listArray) {
+        _listArray = [NSMutableArray array];
+    }
+    return _listArray;
+}
+-(NSMutableArray *)dataArray{
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
+-(void)viewWillAppear:(BOOL)animated{
+    
+    [super viewWillAppear:YES];
+
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+//    [self.navigationView setNavigationBackgroundColor:[UIColor colorWithHexValue:0x3C915C]];
+    self.view.backgroundColor = [UIColor whiteColor];
+    [self.navigationView removeAllLeftButton];
+   _titleLab = [[UILabel alloc]init];
+   _titleLab.frame = CGRectMake(0,0, kGScreenWidth-60, 30);
+   _titleLab.text = @"卖铺宝活动中心";
+   [self.navigationView addTitleView:_titleLab];
+     kWeakSelf(self);
+    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+        [weakself.navigationController popViewControllerAnimated:YES];
+    }];
+     _page = 1;
+    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0,NaviHeight, kGScreenWidth, kGScreenHeight-NaviHeight) style:UITableViewStylePlain];
+    _tableView.backgroundColor = [UIColor colorWithHexValue:0xFFFFFF];
+    self.view.backgroundColor = [UIColor colorWithHexValue:0xFFFFFF];//cell不对齐
+    [self.view addSubview:_tableView];
+    _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+
+    if (@available(iOS 11.0, *)) {
+        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    }else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    _dataArray = [NSMutableArray array];
+    [self loadStutasList:self.typeString];
+    _tableView.delegate = self;
+    _tableView.dataSource = self;
+    
+    _tableView.mj_header=[MJRefreshNormalHeader headerWithRefreshingBlock:^{
+        
+        [self.dataArray removeAllObjects];
+        _page = 1;
+        [self loadStutasList:_typeString];
+        
+    }];
+    // 设置自动切换透明度(在导航栏下面自动隐藏)
+    _tableView.mj_header.automaticallyChangeAlpha = YES;
+    
+    // 上拉加载
+    _tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
+        
+        _page++;
+        [self loadStutasList:_typeString];
+    }];
+    
+    // Do any additional setup after loading the view.
+}
+
+-(void)loadStutasList:(NSString *)typeStr{
+    
+    if (_backgroundView) {
+        
+        [_backgroundView removeFromSuperview];
+    }
+    
+    NSMutableDictionary *parme = [NSMutableDictionary dictionary];
+    parme[@"type"] = typeStr;
+    parme[@"pageNum"] = [NSString stringWithFormat:@"%d",_page];
+    parme[@"pageSize"] = @10;
+    [ProgressHUD show];
+    kWeakSelf(self);
+    [self.sessionManager sendPostHttpRequestWithUrl:activityList params:parme bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+        [ProgressHUD hide];
+        NSLog(@"%@",response);
+
+        NSArray *arr = [NSArray arrayWithArray:response[@"activityList"]];
+
+        if (arr.count !=0 ) {
+
+            _listArray = [activityModel mj_objectArrayWithKeyValuesArray:arr];
+            [_dataArray addObjectsFromArray:_listArray];
+
+        }else if([arr count] ==0 && _page !=1){
+
+            _listArray = [NSMutableArray arrayWithArray:arr];
+
+        }else{
+
+            _backgroundView = [[UIView alloc]initWithFrame:CGRectMake(0,NaviHeight +44, kGScreenWidth, kGScreenHeight)];
+            [self.view addSubview:_backgroundView];
+            _iconImgView = [[UIImageView alloc] init];
+            _iconImgView.image = [UIImage imageNamed:@"searchEmptyImg"];
+            _iconImgView.contentMode = UIViewContentModeScaleAspectFit;
+            [_backgroundView addSubview:_iconImgView];
+            [_iconImgView mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.size.mas_equalTo(CGSizeMake(167, 90));
+                make.centerY.mas_equalTo(self.view.mas_centerY).with.offset(IS_IPHONE_4_OR_LESS?-60:-140);
+                make.centerX.mas_equalTo(self.view.mas_centerX).with.offset(0);
+            }];
+            _jieKuanLb = [[UILabel alloc] init];
+            _jieKuanLb.text = @"抱歉,暂无内容~";
+            _jieKuanLb.font = [UIFont systemFontOfSize:18];
+            _jieKuanLb.textAlignment = NSTextAlignmentCenter;
+            [_backgroundView addSubview:_jieKuanLb];
+            [_jieKuanLb mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.size.mas_equalTo(CGSizeMake(kGScreenWidth, 24));
+                make.top.mas_equalTo(_iconImgView.mas_bottom).with.offset(10);
+                make.centerX.mas_equalTo(self.view.mas_centerX).with.offset(0);
+            }];
+        }
+
+        [weakself reloadTableView];
+
+    } failure:^(NSError *error) {
+        [ProgressHUD hide];
+        NSLog(@"%@",error);
+    }];
+}
+-(void)reloadTableView{
+    [_tableView reloadData];
+    [_tableView.mj_header endRefreshing];
+    [_tableView.mj_footer endRefreshing];
+    if (self.dataArray.count%10!=0||self.listArray.count%10!=0) {
+        [_tableView.mj_footer endRefreshingWithNoMoreData];
+    }
+}
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    
+    if ([_typeString isEqualToString:@"1"]) {
+
+        return _dataArray.count;
+    }else{
+        return 1;
+    }
+    
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    if ([_typeString isEqualToString:@"1"]) {
+
+        return 1;
+    }else{
+
+        return _dataArray.count;
+    }
+
+    
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if ([_typeString isEqualToString:@"1"]) {
+
+        return 260;
+    }else{
+
+        return 115;
+    }
+    
+    
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if ([_typeString isEqualToString:@"1"]) {
+        
+        activityModel *model = _dataArray[indexPath.section];
+        
+        activityCell *cell = [activityCell cellWith:model tableView:tableView];
+        
+        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+        
+        return cell;
+       
+    }else{
+
+        activityModel *model = _dataArray[indexPath.row];
+
+        newImageCell *cell = [newImageCell cell1With:model tableView:tableView];
+        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+        return cell;
+
+    }
+}
+-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
+    if (section == 0) {
+        return 0.0001;
+    }else{
+        
+         return 15;
+    }
+   
+}
+-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
+    
+    return 0.0001;
+}
+-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
+    if (section == 0) {
+        
+        return nil;
+    }else{
+        
+        UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kGScreenWidth, 15)];
+        view.backgroundColor = [UIColor whiteColor];
+        
+        return view;
+    }
+    
+    
+}
+-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
+    return nil;
+}
+
+-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    
+    if ([_typeString isEqualToString:@"1"]) {
+        
+        activityModel *model = self.dataArray[indexPath.section];
+        activityDetailVController *activityDetail = [[activityDetailVController alloc]init];
+        activityDetail.newsId = model.news_Id;
+        activityDetail.titleStr = model.title;
+        activityDetail.shareTitle = model.title;
+        activityDetail.activityStatus = model.status;
+        activityDetail.index =@"0";
+        activityDetail.urlStr = [NSString stringWithFormat:@"%@/applyDetail?id=%@&move=ios",tuijiantuanduiIp,model.news_Id];
+        activityDetail.shareUrl = [NSString stringWithFormat:@"%@/applyDetail?id=%@",tuijiantuanduiIp,model.news_Id];
+        [self.navigationController pushViewController:activityDetail animated:YES];
+ 
+    }else{
+        
+//        activityModel *model = self.dataArray[indexPath.row];
+//        newsDetailVController *newsDetail = [[newsDetailVController alloc]init];
+//        newsDetail.newsId = model.news_Id;
+//        newsDetail.titleStr = model.title;
+//        newsDetail.shareTitle = model.title;
+//
+//        newsDetail.typeStr = @"2";
+//        newsDetail.index =@"0";
+//        newsDetail.urlStr = [NSString stringWithFormat:@"%@/reviewDetail?id=%@",baseH5,model.news_Id];
+//        newsDetail.shareUrl = [NSString stringWithFormat:@"%@/reviewDetail?id=%@",baseH5,model.news_Id];
+//        [self.navigationController pushViewController:newsDetail animated:YES];
+    }
+   
+}
+
+
+- (void)dealloc {
+    if (_sessionManager) {
+        [_sessionManager cancelAllTask];
+    }
+    DebugLog(@"%@没有造成循环引用", [self class]);
+}
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 13 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/MyActivityController.h

@@ -0,0 +1,13 @@
+//
+//  MyActivityController.h
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/11/16.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface MyActivityController : UIViewController
+@property(nonatomic,strong)NSString *isType;
+@end

+ 248 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/MyActivityController.m

@@ -0,0 +1,248 @@
+//
+//  MyActivityController.m
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/11/16.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import "MyActivityController.h"
+#import "HttpRequestManger.h"
+#import "JoinOrActivityCell.h"
+#import "OrderListEmptyView.h"
+#import "MyActivityModel.h"
+#import "activityDetailVController.h"
+//#import "activityDetailVController.h"
+@interface MyActivityController ()<UITableViewDelegate,UITableViewDataSource>
+{
+    CGFloat viewHeight;
+}
+@property (nonatomic, strong) UITableView *TableView;
+@property (nonatomic, strong) NSMutableArray *listArray;
+@property (nonatomic, strong) NSMutableArray *ListDataSource;
+@property (strong, nonatomic) HttpRequestManger *sessionManager;
+@property (strong, nonatomic) OrderListEmptyView *saleEmpty;
+//列表上一次的请求参数
+@property (nonatomic, strong) NSDictionary *params;
+//当前页码
+@property (nonatomic, assign) NSInteger Page;
+@property (nonatomic, assign) BOOL isLoading;
+@property (strong, nonatomic) MyActivityModel *MyActivityModel;
+@end
+
+@implementation MyActivityController
+- (OrderListEmptyView *)saleEmpty
+{
+    if (!_saleEmpty) {
+        _saleEmpty = [[NSBundle mainBundle]loadNibNamed:@"OrderListEmptyView" owner:self options:nil].firstObject;
+        _saleEmpty.signLabel.text = @"暂无数据";
+        [_saleEmpty.actionButton setTitle:@"立即关注" forState:UIControlStateNormal];
+        _saleEmpty.actionButton.layer.masksToBounds = YES;
+        _saleEmpty.actionButton.layer.cornerRadius = 2.0f;
+        //        [_collectEmpty.actionButton addTarget:self action:@selector(actionButtonClick:) forControlEvents:UIControlEventTouchUpInside];
+    }
+    return _saleEmpty;
+}
+- (HttpRequestManger*) sessionManager{
+    if (!_sessionManager) {
+        _sessionManager = [[HttpRequestManger alloc]init];
+    }
+    return _sessionManager;
+}
+- (NSMutableArray *)ListDataSource
+{
+    if (!_ListDataSource) {
+        _ListDataSource = [NSMutableArray array];
+    }
+    return _ListDataSource;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    WS(weakSelf);
+//    self.navigationView.hidden = NO;
+//    [self.navigationView setNavigationBackgroundColor:[UIColor colorWithHexValue:0x3C915C]];
+//    [self.navigationView removeAllLeftButton];
+
+    self.navigationView.hidden = NO;
+    [self.navigationView removeAllLeftButton];
+//    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+//        [weakSelf.navigationController popViewControllerAnimated:YES];
+//    }];
+    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+        if ([weakSelf.isType isEqualToString:@"1"]) {
+
+            UIViewController *viewCtl = weakSelf.navigationController.viewControllers[0];
+
+            [weakSelf.navigationController popToViewController:viewCtl animated:YES];
+        }else{
+            [weakSelf.navigationController popViewControllerAnimated:YES];
+
+        }
+    }];
+    self.navigationView.titleLabel.textColor=[UIColor blackColor];
+    [self.navigationView setTitle:@"我的活动"];
+    if (IS_IPHONE_X) {
+        viewHeight =88;
+    }else{
+        viewHeight = 64;
+    }
+    [self setupView];
+}
+
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self TabSetupRefresh];
+}
+#pragma 列表数据请求
+- (void)TabSetupRefresh
+{
+    [self.TableView.mj_header beginRefreshing];
+}
+//加载最新数据
+- (void)TabloadNews
+{
+    WS(weakSelf);
+    NSMutableDictionary *params = [NSMutableDictionary dictionary];
+    params[@"pageNum"] = @"1";
+    params[@"pageSize"] = @"10";
+    weakSelf.params = params;
+    [ProgressHUD show];
+    [self.sessionManager sendPostHttpRequestWithUrl:ActivityAuditList params:params bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+        [ProgressHUD hide];
+        [weakSelf.TableView.mj_header endRefreshing];
+        weakSelf.listArray = [response objectForKeySafely:@"activityAuditLis"];
+        weakSelf.ListDataSource = [MyActivityModel mj_objectArrayWithKeyValuesArray:weakSelf.listArray];
+        if (weakSelf.listArray.count == 0) {
+            weakSelf.saleEmpty.frame = weakSelf.view.bounds;
+            weakSelf.saleEmpty.actionButton.hidden = YES;
+            [weakSelf.TableView addSubview:weakSelf.saleEmpty];
+        }else{
+            [weakSelf.saleEmpty removeFromSuperview];
+        }
+        [weakSelf.TableView reloadData];
+        weakSelf.Page = 1;
+    } failure:^(NSError *error) {
+        [ProgressHUD hide];
+        [weakSelf.TableView.mj_header endRefreshing];
+    }];
+}
+//加载更多
+- (void)TabloadMoreTopics
+{
+    WS(weakSelf);
+    _isLoading = YES;
+    self.Page ++;
+    NSNumber *current = [NSNumber numberWithInt:(int)self.Page];
+    NSMutableDictionary *params = [NSMutableDictionary dictionary];
+    params[@"pageNum"] = current;
+    params[@"pageSize"] = @"10";
+    [ProgressHUD show];
+    weakSelf.params = params;
+    [self.sessionManager sendPostHttpRequestWithUrl:ActivityAuditList params:params bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+        [ProgressHUD hide];
+        [weakSelf.TableView.mj_footer endRefreshing];
+        if (weakSelf.params != params) return;
+        weakSelf.listArray = [response objectForKeySafely:@"activityAuditLis"];
+        if (weakSelf.listArray.count > 0) {
+            NSArray *array = [MyActivityModel mj_objectArrayWithKeyValuesArray:weakSelf.listArray];
+            [weakSelf.ListDataSource addObjectsFromArray:array];
+        }else{
+            if (weakSelf.Page > 1) {
+                weakSelf.Page--;
+                [ToastView showToast:@"暂无更多数据"];
+            }
+        }
+        [weakSelf.TableView reloadData];
+    } failure:^(NSError *error) {
+        [ProgressHUD hide];
+        [weakSelf.TableView.mj_footer endRefreshing];
+    }];
+}
+- (void)setupView
+{
+    _TableView = [[UITableView alloc] initWithFrame:CGRectMake(0, viewHeight, SCREEN_WIDTH, SCREEN_HEIGHT - viewHeight)];
+    _TableView.delegate = self;
+    _TableView.dataSource = self;
+    _TableView.showsVerticalScrollIndicator = NO;
+    _TableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+    _TableView.backgroundColor = RGBColor(243, 244, 246);
+    //去掉多余的分割线
+    WS(weakSelf);
+    weakSelf.TableView.tableFooterView = [[UIView alloc]init];
+    // 下拉刷新
+    weakSelf.TableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(TabloadNews)];
+    weakSelf.TableView.mj_header.automaticallyChangeAlpha = YES;
+    // 上拉加载
+    weakSelf.TableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(TabloadMoreTopics)];
+    if (@available(iOS 11.0, *)) {
+        _TableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    }else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    [self.view addSubview:_TableView];
+}
+#pragma mark - TableViewDelegate & TableViewDataSource
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return self.ListDataSource.count;
+//    return 10;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return UITableViewAutomaticDimension;
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    _MyActivityModel = self.ListDataSource[indexPath.row];
+    JoinOrActivityCell *cell = [JoinOrActivityCell JoinOrActivityCellWithTableView:tableView];
+    cell.selectionStyle = UITableViewCellEditingStyleNone;
+    cell.titleLabel.text = @"卖铺宝活动报名";
+    cell.contentLabel.text = _MyActivityModel.title;
+    if ([_MyActivityModel.flag isEqualToString:@"2"]) {
+        cell.zhuangtaiLabel.textColor = [UIColor colorWithHexValue:0xCC5836];
+    }else{
+        cell.zhuangtaiLabel.textColor = AllMainColor;
+    }
+    cell.zhuangtaiLabel.text = [NSString stringWithFormat:@"(%@)",_MyActivityModel.type];
+    cell.timeLabel.text = _MyActivityModel.create_time;
+    cell.moneyLabel.text = _MyActivityModel.cost;
+    cell.moneYtYPElabel.text = @"";
+    return cell;
+}
+- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return 200;
+}
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    _MyActivityModel = self.ListDataSource[indexPath.row];
+    activityDetailVController *activityDetail = [[activityDetailVController alloc]init];
+    activityDetail.newsId = _MyActivityModel.ActivityId;
+    activityDetail.titleStr = _MyActivityModel.title;
+    activityDetail.shareTitle = _MyActivityModel.title;
+    activityDetail.index =@"0";
+    activityDetail.activityStatus = _MyActivityModel.activityStatus;
+    activityDetail.urlStr = [NSString stringWithFormat:@"%@/applyDetail?id=%@&move=ios",tuijiantuanduiIp,_MyActivityModel.ActivityId];
+    activityDetail.shareUrl = [NSString stringWithFormat:@"%@/applyDetail?id=%@",tuijiantuanduiIp,_MyActivityModel.ActivityId];
+    [self.navigationController pushViewController:activityDetail animated:YES];
+}
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (void)dealloc {
+    if (_sessionManager) {
+        [_sessionManager cancelAllTask];
+    }
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    DebugLog(@"%@没有造成循环引用", [self class]);
+}
+
+@end

+ 29 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/activityDetailVController.h

@@ -0,0 +1,29 @@
+//
+//  activityDetailVController.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/12/6.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface activityDetailVController : UIViewController
+
+@property(nonatomic,strong)NSString *urlStr;
+
+@property(nonatomic,strong)NSString *newsId;
+
+@property(nonatomic,strong)NSString *titleStr;
+
+@property(nonatomic,strong)NSString *shareTitle;
+
+@property(nonatomic,strong)NSString *shareUrl;
+
+@property(nonatomic,strong)NSString *index;
+
+@property(nonatomic,strong)NSString *typeStr;
+
+@property(nonatomic,strong)NSString *activityStatus;
+
+@end

+ 593 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/activityDetailVController.m

@@ -0,0 +1,593 @@
+//
+//  activityDetailVController.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/12/6.
+//  Copyright © 2018 youke. All rights reserved.
+//
+#import "activityDetailVController.h"
+#import "UIAlertController+LY.h"
+#import <JavaScriptCore/JavaScriptCore.h>
+#import <ShareSDK/ShareSDK.h>
+#import <ShareSDKUI/ShareSDK+SSUI.h>
+#import "ZLCWebView.h"
+#import<ShareSDKUI/SSUIShareActionSheetStyle.h>//设置简单分享菜单样式
+#import "logInViewController.h"
+#import "UserInfoModel.h"
+#import "eventActivityVController.h"
+#import "OrderAirportPayCancelView.h"
+//#import "joinAllianceVController.h"
+//#import "VIPXuFeiController.h"
+//#import "applyForDirectorController.h"
+@interface activityDetailVController ()<ZLCWebViewDelegate>
+@property (nonatomic, strong) ZLCWebView *webView;
+@property(nonatomic,strong) JSContext *jsContext;
+@property(nonatomic,strong)UIButton *collectionBtn;
+@property(nonatomic,strong)UIButton *sendBtn;
+@property (strong, nonatomic) HttpRequestManger *sessionManager;
+@property(nonatomic,strong)NSString *collectionStaus;
+@property(nonatomic,strong)InfoModel *userInfoModel;
+@property (strong, nonatomic) OrderAirportPayCancelView *cancelView;
+@property (strong, nonatomic) OrderAirportPayCancelView *vipContinueView;
+@end
+@implementation activityDetailVController
+- (HttpRequestManger*) sessionManager{
+    if (!_sessionManager) {
+        _sessionManager = [[HttpRequestManger alloc]init];
+    }
+    return _sessionManager;
+}
+-(void)viewWillAppear:(BOOL)animated{
+    
+    [super viewWillAppear:YES];
+    
+    [self loadSelectActivityStatus];
+
+    [self loadIsCollection];
+    
+}
+
+-(void)loadSelectActivityStatus{
+    
+    kWeakSelf(self);
+    
+    NSMutableDictionary *parma = [NSMutableDictionary dictionary];
+
+    parma[@"id"] = weakself.newsId;
+
+    self.sessionManager = [[HttpRequestManger alloc]init];
+
+    [self.sessionManager sendPostHttpRequestWithUrl:selectActivityStatus params:parma bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+
+        NSLog(@"%@",response);
+        weakself.activityStatus =[NSString stringWithFormat:@"%@", response[@"activityStatus"]];
+        if ([weakself.activityStatus isEqualToString:@"0"]) {
+
+            [weakself.sendBtn setTitle:@"活动报名" forState:UIControlStateNormal];
+            weakself.sendBtn.userInteractionEnabled = YES;
+        }else{
+
+            [weakself.sendBtn setTitle:@"活动已结束" forState:UIControlStateNormal];
+
+            weakself.sendBtn.userInteractionEnabled = NO;
+        }
+
+    } failure:^(NSError *error) {
+
+        NSLog(@"%@",error);
+    }];
+    
+    
+}
+
+-(void)loadIsCollection{
+    
+//    kWeakSelf(self);
+//
+//    NSMutableDictionary *parma = [NSMutableDictionary dictionary];
+//
+//    parma[@"id"] = weakself.newsId;
+//    parma[@"type"] = @"1";
+//    self.sessionManager = [[HttpRequestManger alloc]init];
+    
+//    [self.sessionManager sendPostHttpRequestWithUrl:isCollection params:parma bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+//
+//        weakself.collectionStaus = response[@"isCollected"];
+//
+//        if ([weakself.collectionStaus isEqualToString:@"1"]) {
+//
+//            [weakself.collectionBtn setImage:[UIImage imageNamed:@"collectionIng"] forState:UIControlStateNormal];
+//
+//            [_collectionBtn setTitle:@"取消收藏" forState:UIControlStateNormal];
+//
+//        }else{
+//
+//            [weakself.collectionBtn setImage:[UIImage imageNamed:@"collectionNo"] forState:UIControlStateNormal];
+//
+//            [_collectionBtn setTitle:@"收藏" forState:UIControlStateNormal];
+//
+//        }
+//    } failure:^(NSError *error) {
+//
+//        NSLog(@"%@",error);
+//    }];
+    
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self.navigationView removeAllLeftButton];
+    
+    self.navigationView.titleLabel.text = self.titleStr;
+    
+    self.navigationView.titleLabel.textColor = [UIColor blackColor];
+    
+    self.view.backgroundColor = [UIColor whiteColor];
+    
+    kWeakSelf(self);
+    
+   [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+       [weakself.navigationController popViewControllerAnimated:YES];
+   }];
+    [self.navigationView addRightButtonWithImage:[UIImage imageNamed:@"share"] clickCallBack:^(UIView *view) {
+        
+        [weakself showShareView];
+        
+    }];
+    
+    UIView *bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, kGScreenHeight -50, kGScreenWidth, 50)];
+    
+    bottomView.backgroundColor = [UIColor whiteColor];
+    
+    [self.view addSubview:bottomView];
+    
+//    UIView *btnView = [[UIView alloc]init];
+//    btnView.backgroundColor = [UIColor whiteColor];
+//    [bottomView addSubview:btnView];
+//    [btnView mas_makeConstraints:^(MASConstraintMaker *make) {
+//
+//        make.size.mas_equalTo(CGSizeMake(kGScreenWidth -264, 50));
+//
+//        make.left.equalTo(bottomView.mas_left).offset(0);
+//
+//        make.top.equalTo(bottomView.mas_top).offset(0);
+//    }];
+    
+    
+//    _collectionBtn  =[UIButton buttonWithType:UIButtonTypeCustom];
+//
+//    [_collectionBtn setImage:[UIImage imageNamed:@"collectionNo"] forState:UIControlStateNormal];
+//
+//    [_collectionBtn setTitle:@"收藏" forState:UIControlStateNormal];
+//
+//    _collectionBtn.titleLabel.size = CGSizeMake(30, 15);
+//
+//    _collectionBtn.titleLabel.font = TextFont(12);
+//
+//    [_collectionBtn setTitleColor:[UIColor colorWithHexValue:0x333333] forState:UIControlStateNormal];
+//
+//    [_collectionBtn setImageEdgeInsets:UIEdgeInsetsMake(-10, 10, 0, 0)];
+//
+//    [_collectionBtn setTitleEdgeInsets:UIEdgeInsetsMake(_collectionBtn.currentImage.size.height + 10, -_collectionBtn.currentImage.size.width, 0, 0)];
+//
+//    [_collectionBtn addTarget:self action:@selector(collectionClick:) forControlEvents:UIControlEventTouchUpInside];
+//
+//    [btnView addSubview:_collectionBtn];
+//
+//    [_collectionBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+//
+//        make.size.mas_equalTo(CGSizeMake(50, 50));
+//
+//        make.centerX.mas_equalTo(btnView.mas_centerX).offset(0);
+//
+//        make.centerY.mas_equalTo(btnView.mas_centerY).offset(0);
+//
+//    }];
+//
+    _sendBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    
+//    if ([self.activityStatus isEqualToString:@"0"]) {
+//
+//         [_sendBtn setTitle:@"活动报名" forState:UIControlStateNormal];
+//        _sendBtn.userInteractionEnabled = YES;
+//    }else{
+//
+//         [_sendBtn setTitle:@"活动已结束" forState:UIControlStateNormal];
+//
+//        _sendBtn.userInteractionEnabled = NO;
+//    }
+
+    _sendBtn.titleLabel.size = CGSizeMake(30, 15);
+    
+    _sendBtn.titleLabel.font = TextFont(15);
+    
+    [_sendBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
+    _sendBtn.backgroundColor = AllMainColor;
+    [_sendBtn addTarget:self action:@selector(OrderToClick:) forControlEvents:UIControlEventTouchUpInside];
+    [bottomView addSubview:_sendBtn];
+    [_sendBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(SCREEN_WIDTH, 50));
+        make.left.equalTo(bottomView.mas_left).offset(0);
+        make.right.equalTo(bottomView.mas_right).offset(0);
+        make.top.equalTo(bottomView.mas_top).offset(0);
+    }];
+    self.webView = [[ZLCWebView alloc] initWithFrame:CGRectMake(0,isFullScreen?35:20, kGScreenWidth,isFullScreen?kGScreenHeight -35 -90: kGScreenHeight-20 -70)];
+    if (@available(iOS 11.0, *)) {
+        
+        self.webView.wkWebView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    }else {
+        
+        self.automaticallyAdjustsScrollViewInsets = NO;
+        
+    }
+    self.webView.delegate = self;
+    
+    [self.view addSubview:self.webView];
+    
+    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlStr]]];
+    
+    self.webView.wkWebView.scrollView.backgroundColor = [UIColor whiteColor];
+    self.webView.wkWebView.scrollView.showsVerticalScrollIndicator = NO;
+    //    self.webView.wkWebView.scrollView.showsHorizontalScrollIndicator = NO;
+    _webView.wkWebView.scrollView.bounces = NO;
+    // Do any additional setup after loading the view.
+}
+-(void)collectionClick:(UIButton *)sender{
+    
+//    if (!IsStrEmpty([DKGlobal sharedInstance].token)) {
+//
+//        kWeakSelf(self);
+//
+//        if (![weakself.collectionStaus isEqualToString:@"0"]) {
+//
+//            NSMutableDictionary *parma = [NSMutableDictionary dictionary];
+//
+//            parma[@"id"] = weakself.newsId;
+//
+//            parma[@"collectType"] = @"1";
+//
+//            self.sessionManager = [[HttpRequestManger alloc]init];
+//
+//            [self.sessionManager sendPostHttpRequestWithUrl:cancelCollection params:parma bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+//
+//                [MBProgressHUD showSuccess:@"取消收藏"];
+//
+//                weakself.collectionStaus = @"0";
+//
+//                [weakself.collectionBtn setImage:[UIImage imageNamed:@"collectionNo"] forState:UIControlStateNormal];
+//
+//                [_collectionBtn setTitle:@"收藏" forState:UIControlStateNormal];
+//            } failure:^(NSError *error) {
+//
+//                NSLog(@"%@",error);
+//            }];
+//        }else{
+//            kWeakSelf(self);
+//            NSMutableDictionary *parma = [NSMutableDictionary dictionary];
+//
+//            parma[@"id"] = weakself.newsId;
+//
+//            parma[@"type"] = @"1";
+//
+//            self.sessionManager = [[HttpRequestManger alloc]init];
+//
+//            [self.sessionManager sendPostHttpRequestWithUrl:collectionNews params:parma bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+//                [MBProgressHUD showSuccess:@"收藏成功"];
+//
+//                weakself.collectionStaus = @"1";
+//
+//                [weakself.collectionBtn setImage:[UIImage imageNamed:@"collectionIng"] forState:UIControlStateNormal];
+//
+//                [_collectionBtn setTitle:@"取消收藏" forState:UIControlStateNormal];
+//
+//
+//            } failure:^(NSError *error) {
+//                NSLog(@"%@",error);
+//            }];
+//        }
+//    }else{
+//        [MBProgressHUD showError:@"请先登录"];
+//        logInViewController *loginVC = [[logInViewController alloc]init];
+//        [self.navigationController pushViewController:loginVC animated:YES];
+//
+//    }
+//
+}
+
+- (void)zlcwebViewDidStartLoad:(ZLCWebView *)webview
+{
+    [SVProgressHUD show];
+    NSLog(@"页面开始加载");
+}
+
+- (void)zlcwebView:(ZLCWebView *)webview shouldStartLoadWithURL:(NSURL *)URL
+
+{
+    
+    NSLog(@"截取到URL:%@",URL);
+}
+
+- (void)zlcwebView:(ZLCWebView *)webview didFinishLoadingURL:(NSURL *)URL
+{
+    [SVProgressHUD dismiss];
+    
+    NSLog(@"页面加载完成%@",URL);
+}
+
+- (void)zlcwebView:(ZLCWebView *)webview didFailToLoadURL:(NSURL *)URL error:(NSError *)error
+{
+    
+    [SVProgressHUD dismiss];
+    NSLog(@"加载出现错误");
+}
+
+//}
+-(void)viewWillDisappear:(BOOL)animated{
+    
+    [super viewWillDisappear:YES];
+    
+    _webView = nil;
+    
+    [self cleanCacheAndCookie];
+    
+}
+/**清除缓存和cookie*/
+- (void)cleanCacheAndCookie{
+    //清除cookies
+    NSHTTPCookie *cookie;
+    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
+    for (cookie in [storage cookies]){
+        [storage deleteCookie:cookie];
+    }
+    //清除UIWebView的缓存
+    [[NSURLCache sharedURLCache] removeAllCachedResponses];
+    NSURLCache * cache = [NSURLCache sharedURLCache];
+    [cache removeAllCachedResponses];
+    [cache setDiskCapacity:0];
+    [cache setMemoryCapacity:0];
+}
+-(void)showShareView{
+    
+    NSArray *arr =@[[UIImage imageNamed:@"AppIcon"]];
+    if (IsStrEmpty(_shareTitle)) {
+        _shareTitle = @"";
+    }
+    if (arr) {
+        
+        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
+        [shareParams SSDKSetupShareParamsByText:@"卖铺宝"
+                                         images:arr
+                                            url:[NSURL URLWithString:[NSString stringWithFormat:@"%@",_shareUrl]]
+                                          title:_shareTitle
+                                           type:SSDKContentTypeAuto];
+        //        [shareParams SSDKEnableUseClientShare];
+        
+        
+        [ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
+                                 items:@[@(SSDKPlatformSubTypeWechatSession),@(SSDKPlatformSubTypeWechatTimeline)]
+                           shareParams:shareParams
+                   onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
+                       
+                       switch (platformType) {
+                           case SSDKPlatformSubTypeWechatSession:
+                               
+                               break;
+                           case SSDKPlatformSubTypeWechatTimeline:
+                               
+                               break;
+                           default:
+                               break;
+                       }
+                       
+                       switch (state) {
+                           case SSDKResponseStateSuccess:
+                               //                           {
+                               //                               UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
+                               //                                                                                   message:nil
+                               //                                                                                  delegate:nil
+                               //                                                                         cancelButtonTitle:@"确定"
+                               //                                                                         otherButtonTitles:nil];
+                               //                               [alertView show];
+                               break;
+                               //                           }
+                           case SSDKResponseStateFail:
+                               //                           {
+                               //                               UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败"
+                               //                                                                               message:nil
+                               //                                                                              delegate:nil
+                               //                                                                     cancelButtonTitle:@"OK"
+                               //                                                                     otherButtonTitles:nil, nil];
+                               //                               [alert show];
+                               //
+                               //
+                               //                               NSLog(@"%@",error);
+                               break;
+                               //                           }
+                           default:
+                               break;
+                       }
+                   }
+         ];
+    }
+    
+}
+
+-(void)OrderToClick:(UIButton *)sender{
+    
+//    if (![DKGlobal sharedInstance].token ) {
+//        logInViewController *control = [[logInViewController alloc] init];
+//        [self.navigationController pushViewController:control animated:YES];
+//    }else{
+//        [self isSpeicialStatus];
+//
+//    }
+    if (![DKGlobal sharedInstance].token) {
+        LogInViewController *control = [[LogInViewController alloc] init];
+        control.hidesBottomBarWhenPushed = YES;
+        EasyNavigationController *nav = [[EasyNavigationController alloc]initWithRootViewController:control];
+        [[DKGlobal sharedInstance].rootNavController presentViewController:nav animated:YES completion:nil];
+    }else{
+         [self loadActivityStatus];
+    }
+   
+}
+- (OrderAirportPayCancelView*)cancelView{
+    WS(weakSelf);
+    if (!_cancelView) {
+        _cancelView = [[NSBundle mainBundle]loadNibNamed:@"OrderAirportPayCancelView" owner:self options:nil].firstObject;
+        _cancelView.frame = self.view.bounds;
+        //        _cancelView.isFromOrder = self.isFromOrder;
+        _cancelView.tipLabel.hidden = YES;
+        _cancelView.contentLabel.hidden = YES;
+        _cancelView.titleLabel.text = @"您还未加入会员";
+        _cancelView.titleLabelTop.constant = 35;
+        [_cancelView.rightBtn setBackgroundColor:[UIColor colorWithHexValue:0x3C915C]];
+        [_cancelView.leftBtn setTitle:@"继续报名" forState:UIControlStateNormal];
+        [_cancelView.rightBtn setTitle:@"加入会员" forState:UIControlStateNormal];
+        
+        _cancelView.leftBtnCallback = ^{
+            eventActivityVController *control = [[eventActivityVController alloc] init];
+            control.activityId = weakSelf.newsId;
+            [weakSelf.navigationController pushViewController:control animated:YES];
+//             [weakSelf.cancelView removeFromSuperview];
+        };
+//        _cancelView.rightBtnCallback = ^{
+//            joinAllianceVController *joinVC = [[joinAllianceVController alloc]init];
+//            joinVC.phone = weakSelf.userInfoModel.phone;
+//            joinVC.model = weakSelf.userInfoModel;
+//            [weakSelf.navigationController pushViewController:joinVC animated:YES];
+//
+//        };
+    }
+    return _cancelView;
+}
+
+
+- (OrderAirportPayCancelView*)vipContinueView{
+    WS(weakSelf);
+    if (!_vipContinueView) {
+        _vipContinueView = [[NSBundle mainBundle]loadNibNamed:@"OrderAirportPayCancelView" owner:self options:nil].firstObject;
+        _vipContinueView.frame = self.view.bounds;
+        //        _cancelView.isFromOrder = self.isFromOrder;
+        _vipContinueView.tipLabel.hidden = YES;
+        _vipContinueView.contentLabel.hidden = YES;
+        _vipContinueView.titleLabel.text = @"您的会员已经到期";
+        _vipContinueView.titleLabelTop.constant = 35;
+        [_vipContinueView.rightBtn setBackgroundColor:[UIColor colorWithHexValue:0x3C915C]];
+        [_vipContinueView.leftBtn setTitle:@"待会再说" forState:UIControlStateNormal];
+        [_vipContinueView.rightBtn setTitle:@"申请续费" forState:UIControlStateNormal];
+        
+        _vipContinueView.leftBtnCallback = ^{
+             [weakSelf.cancelView removeFromSuperview];
+        };
+//        _vipContinueView.rightBtnCallback = ^{
+//            if ([weakSelf.userInfoModel.level isEqualToString:@"3"]){
+//                applyForDirectorController *applyFor = [[applyForDirectorController alloc]init];
+//               applyFor.model = self.userInfoModel;
+//               [self.navigationController pushViewController:applyFor animated:YES];
+//            }else{
+//                VIPXuFeiController *control = [[VIPXuFeiController alloc] init];
+//                [weakSelf.navigationController pushViewController:control animated:YES];
+//            }
+//        };
+    }
+    return _vipContinueView;
+}
+-(void)isSpeicialStatus{
+//    kWeakSelf(self);
+//
+//       [ProgressHUD show];
+//
+//       _sessionManager  =[[HttpRequestManger alloc]init];
+//
+//       [_sessionManager sendPostHttpRequestWithUrl:getMemberInfo params:nil bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+//
+//           [ProgressHUD hide];
+//
+//           NSLog(@"%@",response);
+//
+//           NSDictionary *dic = [response objectForKeySafely:@"memberInfo"];
+//
+//           weakself.userInfoModel = [UserInfoModel mj_objectWithKeyValues:dic];
+//           //判断是否会员到期
+//           if ([weakself.userInfoModel.term isEqualToString:@"2"]){
+//
+//               UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
+//
+//               [window addSubview: weakself.vipContinueView];
+//           }else{
+//               if ([weakself.userInfoModel.level isEqualToString:@"1"]||[weakself.userInfoModel.level isEqualToString:@"2"]||[weakself.userInfoModel.level isEqualToString:@"3"]){
+//
+//                             //是会员的话 走 loadActivityStatus 方法
+//                             [self loadActivityStatus];
+//
+//                         }else{
+//                            //弹窗
+//                             UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
+//
+//                           [window addSubview: weakself.cancelView];
+//                         }
+//           }
+//
+//
+//       } failure:^(NSError *error) {
+//           NSLog(@"%@",error);
+//           [ProgressHUD hide];
+//       }];
+}
+
+-(void)loadActivityStatus{
+    
+    WS(weakSelf)
+    [ProgressHUD show];
+    _sessionManager = [[HttpRequestManger alloc] init];
+    NSMutableDictionary *parma = [NSMutableDictionary dictionary];
+    parma[@"id"] = weakSelf.newsId;
+    
+    [self.sessionManager sendPostHttpRequestWithUrl:isSignUp params:parma bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+       [ProgressHUD hide];
+        NSLog(@"%@",response);
+        NSString *flag = [NSString stringWithFormat:@"%@",response[@"flag"]];
+        if ([flag isEqualToString:@"0"]) {
+            eventActivityVController *control = [[eventActivityVController alloc] init];
+            control.activityId = weakSelf.newsId;
+            [self.navigationController pushViewController:control animated:YES];
+        }else{
+
+            [ToastView showToast:@"已报名该活动,不能重复报名"];
+        }
+//        }else{
+//
+//            [ToastView showToast:@"请不要重复报名"];
+//        }
+        
+    } failure:^(NSError *error) {
+         [ProgressHUD hide];
+        NSLog(@"%@",error);
+    }];
+    
+}
+
+
+
+- (void)dealloc {
+    if (_sessionManager) {
+        [_sessionManager cancelAllTask];
+    }
+    DebugLog(@"%@没有造成循环引用", [self class]);
+}
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 14 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/eventActivityVController.h

@@ -0,0 +1,14 @@
+//
+//  eventActivityVController.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/12/7.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class InfoModel;
+@interface eventActivityVController : UIViewController
+@property(nonatomic,strong)InfoModel *model;
+@property(nonatomic,strong)NSString *activityId;
+@end

+ 393 - 0
upAPP/main/AddNewFile/ActivityModule/Controller/eventActivityVController.m

@@ -0,0 +1,393 @@
+//
+//  eventActivityVController.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/12/7.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "eventActivityVController.h"
+#import "OrderAirportPayCancelView.h"
+//#import "UserInfoModel.h"
+#import "OrderPayViewController.h"
+#import "MyOrderViewController.h"
+#import "MyActivityController.h"
+#import "InfoModel.h"
+@interface eventActivityVController ()<UITableViewDelegate,UITableViewDataSource,UITextViewDelegate>
+@property(nonatomic,strong)UILabel *titleLab;
+
+@property(nonatomic,strong)NSArray *arr1;
+@property(nonatomic,strong)UITableView *tab;
+@property(nonatomic,strong)UITextField *nameField;
+@property(nonatomic,strong)UITextField *companyField;
+@property(nonatomic,strong)UITextField *jobField;
+
+@property(nonatomic,strong)UILabel *phoneLab;
+@property(nonatomic,strong)UITextView *beiZhuText;
+@property(nonatomic,strong)UILabel *lab2;
+@property(nonatomic,strong)UIButton *sendBtn;
+@property(nonatomic,strong)HttpRequestManger *sessionManager;
+@property (strong, nonatomic) OrderAirportPayCancelView *cancelView;
+@property (nonatomic, copy) NSString *versionNum;
+@property (nonatomic, copy) NSString *Auditing;
+@end
+
+@implementation eventActivityVController
+- (HttpRequestManger*) sessionManager{
+    if (!_sessionManager) {
+        _sessionManager = [[HttpRequestManger alloc]init];
+    }
+    return _sessionManager;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self VipLevelBystr];
+    [self.navigationView removeAllLeftButton];
+    _titleLab = [[UILabel alloc]init];
+    
+    _titleLab.frame = CGRectMake(0,0, kGScreenWidth-60, 30);
+    
+    
+    _titleLab.text = @"活动报名";
+    
+//    [self.navigationView setNavigationBackgroundColor:[UIColor colorWithHexValue:0x3C915C]];
+    
+    
+    [self.navigationView addTitleView:_titleLab];
+    
+    kWeakSelf(self);
+    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+        
+        UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
+        
+        [window addSubview: weakself.cancelView];
+    }];
+    _tab = [[UITableView alloc]initWithFrame:CGRectMake(0, NaviHeight, kGScreenWidth, kGScreenHeight -NaviHeight -50) style:UITableViewStylePlain];
+    _tab.delegate = self;
+    _tab.dataSource = self;
+    _tab.backgroundColor = KRGB_COLOR(247, 249,251);
+    
+    [self.view addSubview:_tab];
+    if (@available(iOS 11.0, *)) {
+        _tab.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    }else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    
+    _arr1 = @[@"*真实姓名",@"*所在公司",@"*职位",@"*手机号",@"留言"];
+    
+    UIView *bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, kGScreenHeight -50, kGScreenWidth, 50)];
+    bottomView.backgroundColor = [UIColor colorWithHexValue:0x3C915C];
+    [self.view addSubview:bottomView];
+    _sendBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+    _sendBtn.frame = CGRectMake(0, 0, kGScreenWidth, 50);
+    [_sendBtn setTitle:@"确认报名" forState:UIControlStateNormal];
+    _sendBtn.backgroundColor = AllMainColor;
+    [_sendBtn setTintColor:[UIColor whiteColor]];
+    [_sendBtn addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside];
+    [bottomView addSubview:_sendBtn];
+    // Do any additional setup after loading the view.
+}
+
+- (OrderAirportPayCancelView*)cancelView{
+    WS(weakSelf);
+    if (!_cancelView) {
+        _cancelView = [[NSBundle mainBundle]loadNibNamed:@"OrderAirportPayCancelView" owner:self options:nil].firstObject;
+        _cancelView.frame = self.view.bounds;
+        //        _cancelView.isFromOrder = self.isFromOrder;
+        _cancelView.tipLabel.hidden = YES;
+        _cancelView.contentLabel.hidden = YES;
+        _cancelView.titleLabel.text = @"确定要取消报名吗";
+        _cancelView.titleLabelTop.constant = 35;
+        [_cancelView.rightBtn setBackgroundColor:AllMainColor];
+        [_cancelView.leftBtn setTitle:@"确定取消" forState:UIControlStateNormal];
+        [_cancelView.rightBtn setTitle:@"继续报名" forState:UIControlStateNormal];
+        
+        _cancelView.leftBtnCallback = ^{
+            [weakSelf.navigationController popViewControllerAnimated:YES];
+        };
+//        _cancelView.rightBtnCallback = ^{
+//            [weakSelf.cancelView removeFromSuperview];
+//        };
+    }
+    return _cancelView;
+}
+-(void)VipLevelBystr{
+    
+    WS(weakSelf)
+    [ProgressHUD show];
+    _sessionManager = [[HttpRequestManger alloc] init];
+    [self.sessionManager sendPostHttpRequestWithUrl:selectMemberInfo params:nil bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+        [ProgressHUD hide];
+        DebugLog(@"正确方法");
+        DebugLog(@"++++++%@",response);
+        NSDictionary *dic = [response objectForKeySafely:@"memberInfo"];
+        weakSelf.model = [InfoModel mj_objectWithKeyValues:dic];
+        [weakSelf.tab reloadData];
+
+    } failure:^(NSError *error) {
+        [ProgressHUD hide];
+        DebugLog(@"错误方法");
+    }];
+    
+}
+-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    
+    return 1;
+}
+
+-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    
+    return _arr1.count;
+}
+
+-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
+    
+    return 0.0001;
+}
+-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
+    
+    return 0.0001;
+}
+-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    if (indexPath.row == 4) {
+         return 150;
+    }else{
+         return 45;
+    }
+   
+}
+
+-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
+    return nil;
+}
+
+-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
+    
+    return nil;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+    
+    UITableViewCell *cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
+                                                  reuseIdentifier:@"cell12"];
+    if (cell ==nil) {
+        cell =
+        [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
+                               reuseIdentifier:@"cell12"];
+    }
+    
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    tableView.separatorColor = [UIColor colorWithHexValue:0xEAEAEA];
+    //    tableView.separatorInset = UIEdgeInsetsMake(0, 10, 0, 10);
+    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+    
+    
+    UILabel *titleLa = [[UILabel alloc]initWithFrame:CGRectMake(15, 8, 70, 30)];
+    titleLa.textColor = [UIColor blackColor];
+    titleLa.font = TextFont(15);
+    [cell addSubview:titleLa];
+    titleLa.text = _arr1[indexPath.row];
+    titleLa.textAlignment = NSTextAlignmentLeft;
+    
+    UIView *lineView =[[UIView alloc]init];
+    lineView.backgroundColor = [[UIColor colorWithHexValue:0xEAEAEA]colorWithAlphaComponent:0.6];
+    [cell addSubview:lineView];
+    [lineView mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.bottom.equalTo(cell.mas_bottom);
+        make.left.equalTo(cell.mas_left).offset(10);
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth-20, 1));
+    }];
+    
+    if (indexPath.row == 0) {
+        _nameField = [[UITextField alloc]init];
+        _nameField.textAlignment = NSTextAlignmentLeft;
+        _nameField.textColor = [UIColor blackColor];
+        _nameField.font = TextFont(14);
+        [cell addSubview:_nameField];
+        if ([self.model.userName isEqualToString:@""]) {
+             _nameField.placeholder =@"请输入真实姓名";
+        }else{
+            _nameField.text = self.model.userName;
+        }
+        [_nameField mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 150, 30));
+            make.left.equalTo(titleLa.mas_right).offset(18);
+            make.top.equalTo(cell.mas_top).offset(8);
+        }];
+    }else if (indexPath.row ==1){
+        
+        _companyField = [[UITextField alloc]init];
+        _companyField.textAlignment = NSTextAlignmentLeft;
+        _companyField.textColor = [UIColor blackColor];
+        _companyField.font = TextFont(14);
+        [cell addSubview:_companyField];
+        if ([self.model.company isEqualToString:@""]) {
+             _companyField.placeholder =@"请输入所在公司";
+        }else{
+            _companyField.text = self.model.company;
+        }
+        [_companyField mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 150, 30));
+            make.left.equalTo(titleLa.mas_right).offset(18);
+            make.top.equalTo(cell.mas_top).offset(8);
+        }];
+        
+    }else if (indexPath.row ==2){
+        
+        _jobField = [[UITextField alloc]init];
+      
+        _jobField.textAlignment = NSTextAlignmentLeft;
+        _jobField.textColor = [UIColor blackColor];
+        _jobField.font = TextFont(14);
+        [cell addSubview:_jobField];
+        if ([self.model.position isEqualToString:@""]) {
+            _jobField.placeholder =@"请输入职位";
+        }else{
+            _jobField.text = self.model.position;
+        }
+        [_jobField mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 150, 30));
+            make.left.equalTo(titleLa.mas_right).offset(18);
+            make.top.equalTo(cell.mas_top).offset(8);
+        }];
+        
+    }else if(indexPath.row == 3){
+        
+        _phoneLab = [[UILabel alloc]init];
+        _phoneLab.textAlignment = NSTextAlignmentLeft;
+        _phoneLab.font = TextFont(14);
+        _phoneLab.text = self.model.mobile;
+        _phoneLab.textColor = [UIColor blackColor];
+        [cell addSubview:_phoneLab];
+        [_phoneLab mas_makeConstraints:^(MASConstraintMaker *make) {
+            
+            make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 150, 30));
+            make.left.equalTo(titleLa.mas_right).offset(18);
+            make.top.equalTo(cell.mas_top).offset(8);
+            
+        }];
+        
+    }else{
+        
+        _beiZhuText = [[UITextView alloc]init];
+        _beiZhuText.backgroundColor = [UIColor whiteColor];
+        _beiZhuText.textColor = [UIColor blackColor];
+        _beiZhuText.font = TextFont(15);
+        _beiZhuText.textAlignment = NSTextAlignmentLeft;
+        [cell addSubview:_beiZhuText];
+        [_beiZhuText mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 90,100));
+            make.left.equalTo(titleLa.mas_right).offset(15);
+            make.top.equalTo(cell.mas_top).offset(8);
+        }];
+        
+        _lab2 = [[UILabel alloc]initWithFrame:CGRectMake(0,10, 200, 20)];
+        _lab2.enabled = NO;
+        _lab2.text = @"最多不超过30个字";
+        _lab2.font =  [UIFont systemFontOfSize:15];
+        _lab2.textColor = [[UIColor colorWithHexValue:0xD3D6DD]colorWithAlphaComponent:0.5];
+        [_beiZhuText addSubview:_lab2];
+        _beiZhuText.delegate = self;
+        
+        
+    }
+    return cell;
+}
+
+- (void)textViewDidChange:(UITextView *)textView
+{
+    if ([textView.text length] == 0) {
+        [_lab2 setHidden:NO];
+    }else{
+        [_lab2 setHidden:YES];
+    }
+    
+}
+
+-(void)buttonEvent:(UIButton *)sender{
+    //审核时候,弹窗提示。
+//    WS(weakSelf);
+//    NSMutableDictionary *params = [NSMutableDictionary dictionary];
+//    params[@"platform"] = @"2";
+//    _sessionManager = [[HttpRequestManger alloc] init];
+//    [self.sessionManager sendPostHttpRequestWithUrl:getUpgradeVersionInfo params:params bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+//        DebugLog(@"请求成功");
+//        NSDictionary *data = [response objectForKeySafely:@"data"];
+//        weakSelf.versionNum = [data objectForKeySafely:@"versionNum"];
+//        weakSelf.Auditing = [NSString stringWithFormat:@"%@",[data objectForKeySafely:@"isAudit"]];
+//        //        NSInteger versionNumBer = [[KAPP_VERSION stringByReplacingOccurrencesOfString:@"."withString:@""] integerValue];
+//        //  0未审核  1审核中
+//        if ([_Auditing isEqualToString:@"1"] && [KAPP_VERSION isEqualToString:_versionNum]) {
+//            [ToastView showToast:@"您的报名已提交,请保持通话畅通,已便客服联系~~~"];
+//        }else{
+            [self activityBtn];
+//        }
+//    } failure:^(NSError *error) {
+//        DebugLog(@"请求失败");
+//    }];
+    
+}
+- (void)activityBtn
+{
+    NSMutableDictionary *params = [NSMutableDictionary dictionary];
+    params[@"name"] = self.nameField.text;
+    params[@"company"] = self.companyField.text;
+    params[@"position"] = self.jobField.text;
+    params[@"orderSource"] = @"2";
+    params[@"id"] = self.activityId;
+    params[@"message"] = self.beiZhuText.text;
+    [ProgressHUD show];
+    [self.sessionManager sendPostHttpRequestWithUrl:createActivityOrder params:params bodyBlock:nil progress:nil success:^(NSDictionary *response) {
+        [ProgressHUD hide];
+        NSLog(@"%@",response);
+        if ([response[@"activityOrder"][@"orderStatus"] isEqualToString:@"0"]) {
+
+            OrderPayViewController *orderVC =[[OrderPayViewController alloc]init];
+            orderVC.orderId =[NSString stringWithFormat:@"%@",response[@"activityOrder"][@"orderNo"]];
+            orderVC.type = @"1";
+            [self.navigationController pushViewController:orderVC animated:YES];
+
+        }else if ([response[@"activityOrder"][@"orderStatus"] isEqualToString:@"1"]){
+
+            MyOrderViewController *control = [[MyOrderViewController alloc] init];
+            [self.navigationController pushViewController:control animated:YES];
+
+        }else if ([response[@"activityOrder"][@"orderStatus"] isEqualToString:@"2"]){
+
+            MyActivityController *control = [[MyActivityController alloc] init];
+            control.isType = @"1";
+            [self.navigationController pushViewController:control animated:YES];
+        }
+
+    } failure:^(NSError *error) {
+        [ProgressHUD hide];
+        NSLog(@"%@",error);
+    }];
+}
+
+
+- (void)dealloc {
+    if (_sessionManager) {
+        [_sessionManager cancelAllTask];
+    }
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    DebugLog(@"%@没有造成循环引用", [self class]);
+}
+- (void)didReceiveMemoryWarning {
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

+ 59 - 0
upAPP/main/AddNewFile/ActivityModule/Model/InfoModel.h

@@ -0,0 +1,59 @@
+//
+//  InfoModel.h
+//  upAPP
+//
+//  Created by youke on 2020/12/28.
+//  Copyright © 2020 youke. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface InfoModel : NSObject
+
+@property (nonatomic, copy) NSString *birthday;
+@property (nonatomic, copy) NSString *mobile;
+@property (nonatomic, copy) NSString *level;
+@property (nonatomic, copy) NSString *iconPath;
+@property (nonatomic, copy) NSString *sex;
+@property (nonatomic, copy) NSString *organization_id;
+@property (nonatomic, copy) NSString *userName;
+@property (nonatomic, copy) NSString *company;
+@property (nonatomic, copy) NSString *position;
+@property (nonatomic, copy) NSString *type;
+@property (nonatomic, copy) NSString *category;
+@property (nonatomic, copy) NSString *committee_id;
+@property (nonatomic, copy) NSString *pushStatus;
+@property (nonatomic, copy) NSString *pushCount;
+@property (nonatomic, copy) NSString *committeeId;
+@property (nonatomic, copy) NSString *isExpires;
+@property (nonatomic, copy) NSString *organizationId;
+@property (nonatomic, copy) NSString *committeeText;
+@property (nonatomic, copy) NSString *typeText;
+@property (nonatomic, copy) NSString *categoryText;
+@property (nonatomic, copy) NSString *organizationText;
+@property (nonatomic, copy) NSString *fee;
+@property (nonatomic, copy) NSString *orderServiceId;
+@property(nonatomic,copy) NSString *auditStatus;
+@property(nonatomic,copy) NSString *positionLm;//联盟职务
+@property(nonatomic,copy) NSString *proportion;//信息完成度
+@property(nonatomic,copy) NSString *term;//0/查看历史记录/1马上到期/2/欠费3/申请加入
+@property(nonatomic,copy) NSString *endTime;//到期时间
+@property(nonatomic,copy) NSString *endTimeStr;
+@property(nonatomic,copy) NSString *years;//
+@property(nonatomic,copy) NSString *photo;//
+@property(nonatomic,copy) NSString *introduction;//
+@property(nonatomic,copy) NSString *Mid;//
+
+@end
+
+@interface memberFeeModel : NSObject
+
+@property (nonatomic, copy) NSString *Mid;
+@property (nonatomic, copy) NSString *name;
+@property (nonatomic, copy) NSString *endTime;
+@property (nonatomic, copy) NSString *iconPath;
+@property (nonatomic, copy) NSString *betweenTime;
+@property (nonatomic, copy) NSString *committeeText;
+
+@end
+

+ 40 - 0
upAPP/main/AddNewFile/ActivityModule/Model/InfoModel.m

@@ -0,0 +1,40 @@
+//
+//  InfoModel.m
+//  upAPP
+//
+//  Created by youke on 2020/12/28.
+//  Copyright © 2020 youke. All rights reserved.
+//
+
+#import "InfoModel.h"
+
+@implementation InfoModel
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"Mid" : @"id",
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+
+
+@end
+
+
+@implementation memberFeeModel
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"Mid" : @"id",
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+@end

+ 21 - 0
upAPP/main/AddNewFile/ActivityModule/Model/MyActivityModel.h

@@ -0,0 +1,21 @@
+//
+//  MyActivityModel.h
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/12/6.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface MyActivityModel : NSObject
+@property (nonatomic, copy) NSString *cost;
+@property (nonatomic, copy) NSString *create_time;
+@property (nonatomic, copy) NSString *title;
+@property (nonatomic, copy) NSString *type;
+@property (nonatomic, copy) NSString *status;
+@property (nonatomic, copy) NSString *flag;
+@property (nonatomic, copy) NSString *ActivityId;
+@property (nonatomic, copy) NSString *activityStatus;
+
+@end

+ 22 - 0
upAPP/main/AddNewFile/ActivityModule/Model/MyActivityModel.m

@@ -0,0 +1,22 @@
+//
+//  MyActivityModel.m
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/12/6.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import "MyActivityModel.h"
+
+@implementation MyActivityModel
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"ActivityId" : @"id",
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+@end

+ 24 - 0
upAPP/main/AddNewFile/ActivityModule/Model/activityModel.h

@@ -0,0 +1,24 @@
+//
+//  activityModel.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface activityModel : NSObject
+@property (nonatomic, copy) NSString *img_path;
+@property (nonatomic, copy) NSString *news_Id;
+@property (nonatomic, copy) NSString *title;
+@property (nonatomic, copy) NSString *create_time;
+@property (nonatomic, copy) NSString *status;
+@end
+
+@interface activity_Model : NSObject
+@property (nonatomic, copy) NSString *img_path;
+@property (nonatomic, copy) NSString *news_Id;
+@property (nonatomic, copy) NSString *title;
+@property (nonatomic, copy) NSString *create_time;
+@end

+ 35 - 0
upAPP/main/AddNewFile/ActivityModule/Model/activityModel.m

@@ -0,0 +1,35 @@
+//
+//  activityModel.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "activityModel.h"
+
+@implementation activityModel
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"news_Id" : @"id"
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+@end
+
+@implementation activity_Model
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"news_Id" : @"id"
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+@end

+ 18 - 0
upAPP/main/AddNewFile/ActivityModule/Model/newModel.h

@@ -0,0 +1,18 @@
+//
+//  newModel.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface newModel : NSObject
+
+@property (nonatomic, copy) NSString *img_path;
+@property (nonatomic, copy) NSString *news_Id;
+@property (nonatomic, copy) NSString *title;
+@property (nonatomic, copy) NSString *createTime;
+
+@end

+ 25 - 0
upAPP/main/AddNewFile/ActivityModule/Model/newModel.m

@@ -0,0 +1,25 @@
+//
+//  newModel.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "newModel.h"
+
+@implementation newModel
+
++ (NSDictionary *)mj_replacedKeyFromPropertyName
+{
+    return @{
+             @"news_Id" : @"id"
+             };
+}
+
+MJExtensionCodingImplementation
+// 容错处理
+- (void)setValue:(id)value forUndefinedKey:(NSString *)key {}
+
+
+@end

+ 24 - 0
upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.h

@@ -0,0 +1,24 @@
+//
+//  JoinOrActivityCell.h
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/11/16.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface JoinOrActivityCell : UITableViewCell
+
+@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
+@property (weak, nonatomic) IBOutlet UILabel *zhuangtaiLabel;
+@property (weak, nonatomic) IBOutlet UILabel *contentLabel;
+@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
+@property (weak, nonatomic) IBOutlet UILabel *moneYtYPElabel;
+@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
+
+
++ (instancetype)JoinOrActivityCellWithTableView:(UITableView *)tableView;
+
+
+@end

+ 33 - 0
upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.m

@@ -0,0 +1,33 @@
+//
+//  JoinOrActivityCell.m
+//  ZhongJingLianMeng
+//
+//  Created by vinDesel on 2018/11/16.
+//  Copyright © 2018年 youke. All rights reserved.
+//
+
+#import "JoinOrActivityCell.h"
+
+@implementation JoinOrActivityCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
++ (instancetype)JoinOrActivityCellWithTableView:(UITableView *)tableView
+{
+    static NSString *iden = @"JoinOrActivityCell";
+    JoinOrActivityCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];
+    if (!cell) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
+    }
+    return cell;
+}
+@end

+ 128 - 0
upAPP/main/AddNewFile/ActivityModule/View/JoinOrActivityCell.xib

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="JoinOrActivityCell" rowHeight="135" id="KGk-i7-Jjw" customClass="JoinOrActivityCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="135"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="135"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Xq-i5-hvw">
+                        <rect key="frame" x="13" y="8" width="294" height="127"/>
+                        <subviews>
+                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="juxing" translatesAutoresizingMaskIntoConstraints="NO" id="cli-78-a6M">
+                                <rect key="frame" x="-3" y="-2" width="300" height="132"/>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="加入联盟" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kN0-iF-XDD">
+                                <rect key="frame" x="15" y="14" width="65.5" height="19.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="待审核(已申请加盟)" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GMf-Sh-dwa">
+                                <rect key="frame" x="147.5" y="15" width="133.5" height="18"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.23529411759999999" green="0.56862745100000001" blue="0.36078431370000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="普通会员-个人-非开发商" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zUW-Hp-F0g">
+                                <rect key="frame" x="15" y="53.5" width="266" height="18.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8uq-Fs-HcM">
+                                <rect key="frame" x="0.0" y="85" width="294" height="1"/>
+                                <color key="backgroundColor" red="0.91764705882352937" green="0.91764705882352937" blue="0.91764705882352937" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="1" id="HDN-IL-0IA"/>
+                                </constraints>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sEF-el-by9">
+                                <rect key="frame" x="0.0" y="86" width="294" height="41"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2018-10-10 " lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K5J-EB-weU">
+                                        <rect key="frame" x="15" y="11.5" width="84" height="18"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <color key="textColor" red="0.53725490200000003" green="0.53725490200000003" blue="0.53725490200000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="联盟会费" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Rc-6Z-0tY">
+                                        <rect key="frame" x="223.5" y="12" width="57.5" height="17"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                        <color key="textColor" red="0.53725490200000003" green="0.53725490200000003" blue="0.53725490200000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100元" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="40x-0Y-meR">
+                                        <rect key="frame" x="163" y="10" width="45.5" height="21"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                        <color key="textColor" red="0.23529411759999999" green="0.56862745100000001" blue="0.36078431370000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="8Rc-6Z-0tY" firstAttribute="leading" secondItem="40x-0Y-meR" secondAttribute="trailing" constant="15" id="2Zw-IE-yAk"/>
+                                    <constraint firstItem="40x-0Y-meR" firstAttribute="centerY" secondItem="sEF-el-by9" secondAttribute="centerY" id="C5t-Cr-FAx"/>
+                                    <constraint firstItem="8Rc-6Z-0tY" firstAttribute="centerY" secondItem="sEF-el-by9" secondAttribute="centerY" id="EXM-00-OTS"/>
+                                    <constraint firstItem="K5J-EB-weU" firstAttribute="centerY" secondItem="sEF-el-by9" secondAttribute="centerY" id="J1f-En-n6R"/>
+                                    <constraint firstAttribute="height" constant="41" id="drr-0E-fuh"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="zUW-Hp-F0g" firstAttribute="trailing" secondItem="GMf-Sh-dwa" secondAttribute="trailing" id="0VJ-4t-dHF"/>
+                            <constraint firstItem="cli-78-a6M" firstAttribute="leading" secondItem="9Xq-i5-hvw" secondAttribute="leading" constant="-3" id="10d-GD-ZD5"/>
+                            <constraint firstAttribute="trailing" secondItem="cli-78-a6M" secondAttribute="trailing" constant="-3" id="44J-EF-nzf"/>
+                            <constraint firstItem="8uq-Fs-HcM" firstAttribute="top" secondItem="zUW-Hp-F0g" secondAttribute="bottom" constant="13" id="7J2-Rx-O9K"/>
+                            <constraint firstItem="cli-78-a6M" firstAttribute="top" secondItem="9Xq-i5-hvw" secondAttribute="top" constant="-2" id="E7d-Ri-lgh"/>
+                            <constraint firstItem="8Rc-6Z-0tY" firstAttribute="trailing" secondItem="GMf-Sh-dwa" secondAttribute="trailing" id="IpA-1R-FVv"/>
+                            <constraint firstAttribute="trailing" secondItem="sEF-el-by9" secondAttribute="trailing" id="KOh-Dm-uz3"/>
+                            <constraint firstAttribute="bottom" secondItem="cli-78-a6M" secondAttribute="bottom" constant="-3" id="R4x-DC-VsZ"/>
+                            <constraint firstItem="K5J-EB-weU" firstAttribute="leading" secondItem="zUW-Hp-F0g" secondAttribute="leading" id="TUJ-8d-Q6N"/>
+                            <constraint firstItem="kN0-iF-XDD" firstAttribute="leading" secondItem="9Xq-i5-hvw" secondAttribute="leading" constant="15" id="XFN-9r-Z08"/>
+                            <constraint firstItem="zUW-Hp-F0g" firstAttribute="top" secondItem="kN0-iF-XDD" secondAttribute="bottom" constant="20" id="ZV3-nf-wwn"/>
+                            <constraint firstItem="sEF-el-by9" firstAttribute="top" secondItem="8uq-Fs-HcM" secondAttribute="bottom" id="bDq-d3-NW3"/>
+                            <constraint firstAttribute="trailing" secondItem="GMf-Sh-dwa" secondAttribute="trailing" constant="13" id="ihH-s3-Egw"/>
+                            <constraint firstItem="sEF-el-by9" firstAttribute="leading" secondItem="9Xq-i5-hvw" secondAttribute="leading" id="nDu-5u-068"/>
+                            <constraint firstItem="8uq-Fs-HcM" firstAttribute="leading" secondItem="9Xq-i5-hvw" secondAttribute="leading" id="sbU-Sp-oTI"/>
+                            <constraint firstItem="zUW-Hp-F0g" firstAttribute="leading" secondItem="kN0-iF-XDD" secondAttribute="leading" id="t2O-Xy-zd4"/>
+                            <constraint firstItem="kN0-iF-XDD" firstAttribute="top" secondItem="9Xq-i5-hvw" secondAttribute="top" constant="14" id="uSp-45-qLc"/>
+                            <constraint firstAttribute="bottom" secondItem="sEF-el-by9" secondAttribute="bottom" id="uoO-7E-k0s"/>
+                            <constraint firstItem="GMf-Sh-dwa" firstAttribute="centerY" secondItem="kN0-iF-XDD" secondAttribute="centerY" id="wGR-0T-Mi8"/>
+                            <constraint firstAttribute="trailing" secondItem="8uq-Fs-HcM" secondAttribute="trailing" id="z1V-B1-mKc"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <color key="backgroundColor" red="0.96862745100000003" green="0.97254901959999995" blue="0.98039215690000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                <constraints>
+                    <constraint firstAttribute="bottom" secondItem="9Xq-i5-hvw" secondAttribute="bottom" id="6Vm-qu-r1K"/>
+                    <constraint firstItem="9Xq-i5-hvw" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="13" id="B4X-8h-75w"/>
+                    <constraint firstAttribute="trailing" secondItem="9Xq-i5-hvw" secondAttribute="trailing" constant="13" id="gHr-rD-Qig"/>
+                    <constraint firstItem="9Xq-i5-hvw" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="m1D-jB-NmL"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="contentLabel" destination="zUW-Hp-F0g" id="AW0-hs-na4"/>
+                <outlet property="moneYtYPElabel" destination="8Rc-6Z-0tY" id="ijC-Ed-9vE"/>
+                <outlet property="moneyLabel" destination="40x-0Y-meR" id="WxC-0J-fbX"/>
+                <outlet property="timeLabel" destination="K5J-EB-weU" id="6f5-qf-ZjD"/>
+                <outlet property="titleLabel" destination="kN0-iF-XDD" id="PwG-VX-5Hg"/>
+                <outlet property="zhuangtaiLabel" destination="GMf-Sh-dwa" id="nua-Ay-yY4"/>
+            </connections>
+            <point key="canvasLocation" x="-24" y="-144.5"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="juxing" width="320" height="33"/>
+    </resources>
+</document>

+ 22 - 0
upAPP/main/AddNewFile/ActivityModule/View/activityCell.h

@@ -0,0 +1,22 @@
+//
+//  activityCell.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class  activityModel;
+@interface activityCell : UITableViewCell
+@property (nonatomic, strong) UILabel *titleLb;
+
+@property (nonatomic, strong) UILabel *timeLb;
+
+@property (nonatomic, strong)UIImageView *ImageNew;
+
+@property(nonatomic ,strong) UIImageView *statusImage;
+
++ (activityCell *)cellWith:(activityModel*)model
+                 tableView:(UITableView *)tableView;
+@end

+ 172 - 0
upAPP/main/AddNewFile/ActivityModule/View/activityCell.m

@@ -0,0 +1,172 @@
+//
+//  activityCell.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/19.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "activityCell.h"
+#import "activityModel.h"
+@implementation activityCell
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        // Initialization code
+        [self makeUI];
+    }
+    return self;
+}
+-(void)makeUI{
+    
+    UIView *layerView = [[UIView alloc]init];
+    
+    layerView.layer.shadowColor = [[UIColor colorWithHexValue:0x000000]colorWithAlphaComponent:0.5].CGColor;
+    
+    layerView.layer.cornerRadius = 10;
+    
+    layerView.layer.shadowOffset = CGSizeMake(2, 2);
+    
+    layerView.layer.shadowOpacity = 0.5;
+    
+    layerView.layer.shadowRadius = 2;
+    
+    [self.contentView addSubview:layerView];
+    
+    [layerView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 30, 250));
+        make.left.equalTo(self.mas_left).offset(15);
+        make.top.equalTo(self.mas_top);
+    }];
+    
+    
+    UIView *backGroundView = [[UIView alloc]init];
+    backGroundView.backgroundColor = [UIColor whiteColor];
+    backGroundView.layer.masksToBounds = YES;
+    backGroundView.layer.cornerRadius = 10;
+    backGroundView.layer.borderColor = [[[UIColor colorWithHexValue:0x000000]colorWithAlphaComponent:0.1] CGColor];
+    backGroundView.layer.borderWidth = 1;
+//    backGroundView.layer.shadowColor = [UIColor blackColor].CGColor;;
+//    backGroundView.layer.shadowOffset = CGSizeMake(4, 4);
+//    backGroundView.layer.shadowOpacity = 0.5;
+//    backGroundView.layer.shadowRadius = 2;
+    [layerView addSubview:backGroundView];
+    
+    [backGroundView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 30, 250));
+        make.left.equalTo(layerView.mas_left);
+        make.top.equalTo(layerView.mas_top);
+    }];
+    
+    _ImageNew = [[UIImageView alloc]init];
+    
+    _ImageNew.image = [UIImage imageNamed:@"projectItem"];
+    
+    [backGroundView addSubview:_ImageNew];
+    
+    [_ImageNew mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.equalTo(backGroundView.mas_left);
+        make.top.equalTo(backGroundView.mas_top);
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 30, 172));
+    }];
+    
+    
+    _statusImage = [[UIImageView alloc]init];
+    
+//    _statusImage.image = [UIImage imageNamed:@"end_icon"];
+    
+    [_ImageNew addSubview:_statusImage];
+    
+    [_statusImage mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.right.equalTo(_ImageNew.mas_right);
+        make.top.equalTo(_ImageNew.mas_top).offset(18);
+        make.size.mas_equalTo(CGSizeMake(60, 25));
+    }];
+    
+    
+    _titleLb= [[UILabel alloc]init];
+    
+    _titleLb.textAlignment = NSTextAlignmentLeft;
+    
+    _titleLb.font = TextFont(16);
+    
+    _titleLb.textColor = [UIColor colorWithHexValue:0x333333];
+    
+    _titleLb.numberOfLines = 0;
+    
+    _titleLb.text =@"中经联盟武汉分盟正式成立!关于中经联盟地产杰出人物于中经联盟地产杰出人物武汉分盟正式成立!";
+    
+    [_titleLb setRowSpace:4];
+    
+    [backGroundView addSubview:_titleLb];
+    
+    [_titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth - 30 -20, 55));
+        make.left.equalTo(backGroundView.mas_left).with.offset(10);
+        make.top.equalTo(_ImageNew.mas_bottom);
+        
+    }];
+    
+    _timeLb = [[UILabel alloc]init];
+    _timeLb.textAlignment = NSTextAlignmentLeft;
+    _timeLb.font = TextFont(12);
+    _timeLb.textColor = [UIColor colorWithHexValue:0x898989];
+    _timeLb.text = @"2018-11-15";
+    [self.contentView addSubview:_timeLb];
+    [_timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.size.mas_equalTo(CGSizeMake(80, 10));
+        make.right.equalTo(backGroundView.mas_right).offset(-15);
+        make.bottom.equalTo(backGroundView.mas_bottom).offset(-10);
+    }];
+
+}
+
++ (activityCell *)cellWith:(activityModel*)model
+                 tableView:(UITableView *)tableView{
+    static NSString *cellID = @"CellID3";
+    activityCell *cell =
+    [tableView dequeueReusableCellWithIdentifier:cellID];
+    if (!cell) {
+        cell =
+        [[activityCell alloc] initWithStyle:UITableViewCellStyleDefault
+                            reuseIdentifier:cellID];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    [cell fillData:model];
+    return cell;
+}
+
+-(void)fillData:(activityModel*)model{
+    
+    _titleLb.text = model.title;
+    
+    _timeLb.text = model.create_time;
+    
+    [_ImageNew sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",model.img_path]] placeholderImage:[UIImage imageNamed:@"projectItem"]];
+    
+    if ([model.status isEqualToString:@"0"]) {
+        
+        _statusImage.image =[UIImage imageNamed:@"again_icon"];
+    }else{
+        _statusImage.image =[UIImage imageNamed:@"end_icon"];
+
+    }
+    
+}
+
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 25 - 0
upAPP/main/AddNewFile/ActivityModule/View/newImageCell.h

@@ -0,0 +1,25 @@
+//
+//  newImageCell.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class newModel;
+@class activityModel;
+@interface newImageCell : UITableViewCell
+
+@property (nonatomic, strong) UILabel *titleLb;
+
+@property (nonatomic, strong) UILabel *timeLb;
+
+@property (nonatomic, strong)UIImageView *ImageNew;
+
++ (newImageCell *)cellWith:(newModel*)model
+                   tableView:(UITableView *)tableView;
+
++ (newImageCell *)cell1With:(activityModel*)model
+                 tableView:(UITableView *)tableView;
+@end

+ 163 - 0
upAPP/main/AddNewFile/ActivityModule/View/newImageCell.m

@@ -0,0 +1,163 @@
+//
+//  newImageCell.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "newImageCell.h"
+#import "activityModel.h"
+#import "newModel.h"
+@implementation newImageCell
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        // Initialization code
+        [self makeUI];
+    }
+    return self;
+}
+-(void)makeUI{
+    _titleLb= [[UILabel alloc]init];
+    
+    _titleLb.textAlignment = NSTextAlignmentLeft;
+    
+    _titleLb.font = TextFont(16);
+    
+    _titleLb.textColor = [UIColor colorWithHexValue:0x333333];
+    
+    _titleLb.numberOfLines = 0;
+    
+    _titleLb.text =@"中经联盟武汉分盟正式成立!关于中经联盟地产杰出人物于中经联盟地产杰出人物武汉分盟正式成立!";
+    
+    [_titleLb setRowSpace:8];
+    
+    [self.contentView addSubview:_titleLb];
+    
+    [_titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth -40 -110, 55));
+        make.left.equalTo(self.mas_left).with.offset(15);
+        make.top.equalTo(self.mas_top).with.offset(10);
+        
+    }];
+    
+//    NSMutableParagraphStyle  *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+//    [paragraphStyle  setLineSpacing:5];
+//    NSString  *testString = @"中经联盟武汉分盟正式成立!关于中经联盟地产杰出人物于中经联盟地产杰出人物武汉分盟正式成立!";
+//    NSMutableAttributedString  *setString = [[NSMutableAttributedString alloc] initWithString:testString];
+//    [setString  addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [testString length])];
+//
+//    [_titleLb setAttributedText:setString];
+    
+    
+    _ImageNew = [[UIImageView alloc]init];
+    
+//    _ImageNew.image = [UIImage imageNamed:@"projectItem"];
+    
+    [self.contentView addSubview:_ImageNew];
+    
+    [_ImageNew mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.right.equalTo(self.mas_right).offset(-15);
+        make.top.equalTo(self.mas_top).offset(15);
+        make.size.mas_equalTo(CGSizeMake(110, 85));
+    }];
+    
+    _ImageNew.layer.masksToBounds = YES;
+    _ImageNew.layer.cornerRadius = 5;
+    
+    
+    _timeLb = [[UILabel alloc]init];
+    _timeLb.textAlignment = NSTextAlignmentLeft;
+    _timeLb.font = TextFont(12);
+    _timeLb.textColor = [UIColor colorWithHexValue:0x898989];
+    _timeLb.text = @"2018-11-15";
+    [self.contentView addSubview:_timeLb];
+    [_timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.size.mas_equalTo(CGSizeMake(80, 10));
+        make.left.equalTo(self.mas_left).offset(15);
+        make.bottom.equalTo(self.mas_bottom).offset(-15);
+    }];
+    
+    UIView *lineView =[[UIView alloc]init];
+    lineView.backgroundColor = [[UIColor colorWithHexValue:0xEAEAEA]colorWithAlphaComponent:0.6];
+    [self.contentView addSubview:lineView];
+    [lineView mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.bottom.equalTo(self.mas_bottom).offset(0);
+        make.left.equalTo(self.mas_left).offset(10);
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth-20, 1));
+    }];
+}
+
+
+
++ (newImageCell *)cellWith:(newModel*)model
+                   tableView:(UITableView *)tableView{
+    static NSString *cellID = @"CellID1";
+    newImageCell *cell =
+    [tableView dequeueReusableCellWithIdentifier:cellID];
+    if (!cell) {
+        cell =
+        [[newImageCell alloc] initWithStyle:UITableViewCellStyleDefault
+                              reuseIdentifier:cellID];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    [cell fillData:model];
+    return cell;
+}
+
+
++ (newImageCell *)cell1With:(activityModel*)model
+                  tableView:(UITableView *)tableView{
+    
+    static NSString *cellID = @"CellID2";
+    newImageCell *cell =
+    [tableView dequeueReusableCellWithIdentifier:cellID];
+    if (!cell) {
+        cell =
+        [[newImageCell alloc] initWithStyle:UITableViewCellStyleDefault
+                            reuseIdentifier:cellID];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    [cell fillData1:model];
+    return cell;
+    
+    
+    
+    
+}
+
+-(void)fillData:(newModel*)model{
+    
+    _titleLb.text = model.title;
+    _timeLb.text = model.createTime;
+    [_ImageNew sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",model.img_path]] placeholderImage:[UIImage imageNamed:@"projectItem"]];
+    
+}
+
+-(void)fillData1:(activityModel*)model{
+    
+    _titleLb.text = model.title;
+    _timeLb.text = model.create_time;
+    [_ImageNew sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",model.img_path]] placeholderImage:[UIImage imageNamed:@"projectItem"]];
+    
+}
+
+
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

+ 22 - 0
upAPP/main/AddNewFile/ActivityModule/View/newNoImageCell.h

@@ -0,0 +1,22 @@
+//
+//  newNoImageCell.h
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class newModel;
+@interface newNoImageCell : UITableViewCell
+
+@property (nonatomic, strong) UILabel *titleLb;
+
+@property (nonatomic, strong) UILabel *timeLb;
+
+//@property(nonatomic,strong)newModel *model;
+
++ (newNoImageCell *)cellWith:(newModel*)model
+                         tableView:(UITableView *)tableView;
+
+@end

+ 108 - 0
upAPP/main/AddNewFile/ActivityModule/View/newNoImageCell.m

@@ -0,0 +1,108 @@
+//
+//  newNoImageCell.m
+//  ZhongJingLianMeng
+//
+//  Created by youke on 2018/11/15.
+//  Copyright © 2018 youke. All rights reserved.
+//
+
+#import "newNoImageCell.h"
+#import "newModel.h"
+@implementation newNoImageCell
+- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        // Initialization code
+        [self makeUI];
+    }
+    return self;
+}
+
+-(void)makeUI{
+    
+    
+    _titleLb= [[UILabel alloc]init];
+    
+    _titleLb.textAlignment = NSTextAlignmentLeft;
+    
+    _titleLb.font = TextFont(16);
+    
+    _titleLb.textColor = [UIColor colorWithHexValue:0x333333];
+    
+    _titleLb.numberOfLines = 0;
+    
+    _titleLb.text =@"中经联盟武汉分盟正式成立!关于中经联盟地产杰出人物于中经联盟地产杰出人物武汉分盟正式成立!";
+    
+    [_titleLb setRowSpace:8];
+    
+    [self.contentView addSubview:_titleLb];
+    
+    [_titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth -30, 55));
+        make.left.equalTo(self.mas_left).with.offset(15);
+        make.top.equalTo(self.mas_top).with.offset(10);
+        
+    }];
+
+    _timeLb = [[UILabel alloc]init];
+    _timeLb.textAlignment = NSTextAlignmentLeft;
+    _timeLb.font = TextFont(12);
+    _timeLb.textColor = [UIColor colorWithHexValue:0x898989];
+    _timeLb.text = @"2018-11-15";
+    [self.contentView addSubview:_timeLb];
+    [_timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
+       
+        make.size.mas_equalTo(CGSizeMake(80, 10));
+        make.left.equalTo(self.mas_left).offset(15);
+        make.bottom.equalTo(self.mas_bottom).offset(-15);
+    }];
+    
+    UIView *lineView =[[UIView alloc]init];
+    lineView.backgroundColor = [[UIColor colorWithHexValue:0xEAEAEA]colorWithAlphaComponent:0.6];
+    [self.contentView addSubview:lineView];
+    [lineView mas_makeConstraints:^(MASConstraintMaker *make) {
+        
+        make.bottom.equalTo(self.mas_bottom).offset(0);
+        make.left.equalTo(self.mas_left).offset(10);
+        make.size.mas_equalTo(CGSizeMake(kGScreenWidth-20, 1));
+    }];
+    
+}
+
++ (newNoImageCell *)cellWith:(newModel*)model
+                   tableView:(UITableView *)tableView{
+    static NSString *cellID = @"CellID2";
+    newNoImageCell *cell =
+    [tableView dequeueReusableCellWithIdentifier:cellID];
+    if (!cell) {
+        cell =
+        [[newNoImageCell alloc] initWithStyle:UITableViewCellStyleDefault
+                                    reuseIdentifier:cellID];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    [cell fillData:model];
+    return cell;
+}
+
+-(void)fillData:(newModel*)model{
+
+        _titleLb.text = model.title;
+        _timeLb.text = model.createTime;
+    
+   
+    
+}
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+@end

upAPP/main/AddNewFile/NewSaleTableViewCell.h → upAPP/main/AddNewFile/Cell/NewSaleTableViewCell.h


upAPP/main/AddNewFile/NewSaleTableViewCell.m → upAPP/main/AddNewFile/Cell/NewSaleTableViewCell.m


upAPP/main/AddNewFile/NewListVC.h → upAPP/main/AddNewFile/Controller/NewListVC.h


upAPP/main/AddNewFile/NewListVC.m → upAPP/main/AddNewFile/Controller/NewListVC.m


upAPP/main/AddNewFile/NewSignVC.h → upAPP/main/AddNewFile/Controller/NewSignVC.h


upAPP/main/AddNewFile/NewSignVC.m → upAPP/main/AddNewFile/Controller/NewSignVC.m


upAPP/main/AddNewFile/SaleWriteReportVC.h → upAPP/main/AddNewFile/Controller/SaleWriteReportVC.h


upAPP/main/AddNewFile/SaleWriteReportVC.m → upAPP/main/AddNewFile/Controller/SaleWriteReportVC.m


upAPP/main/AddNewFile/setupVC.h → upAPP/main/AddNewFile/Controller/setupVC.h


upAPP/main/AddNewFile/setupVC.m → upAPP/main/AddNewFile/Controller/setupVC.m


upAPP/main/AddNewFile/setupVC.xib → upAPP/main/AddNewFile/Controller/setupVC.xib


upAPP/main/AddNewFile/subscribePutVC.h → upAPP/main/AddNewFile/Controller/subscribePutVC.h


upAPP/main/AddNewFile/subscribePutVC.m → upAPP/main/AddNewFile/Controller/subscribePutVC.m


upAPP/main/AddNewFile/yetaiModel.h → upAPP/main/AddNewFile/Model/yetaiModel.h


upAPP/main/AddNewFile/yetaiModel.m → upAPP/main/AddNewFile/Model/yetaiModel.m


+ 32 - 0
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD+SGQRCode.h

@@ -0,0 +1,32 @@
+//
+//  MBProgressHUD+SGQRCode.h
+//  MBProgressHUD+SGQRCode
+//
+//  Created by kingsic on 2015/7/13.
+//  Copyright © 2015年 kingsic. All rights reserved.
+//
+
+#import "MBProgressHUD.h"
+
+@interface MBProgressHUD (SGQRCode)
+
+/** MBProgressHUD修改后的样式 添加到self.navigationController.view上,导航栏不能被点击 */
++ (MBProgressHUD *)SG_showMBProgressHUDWithModifyStyleMessage:(NSString *)message toView:(UIView *)view;
+/** MBProgressHUD系统自带样式 添加到self.navigationController.view上,导航栏不能被点击 */
++ (MBProgressHUD *)SG_showMBProgressHUDWithSystemComesStyleMessage:(NSString *)message toView:(UIView *)view;
+/** 10s之后隐藏 */
++ (MBProgressHUD *)SG_showMBProgressHUD10sHideWithModifyStyleMessage:(NSString *)message toView:(UIView *)view;
+
+/** 显示加载成功的 MBProgressHUD */
++ (void)SG_showMBProgressHUDOfSuccessMessage:(NSString *)message toView:(UIView *)view;
+
+/** 显示加载失败的 MBProgressHUD */
++ (void)SG_showMBProgressHUDOfErrorMessage:(NSString *)message toView:(UIView *)view;
+
+/** 隐藏MBProgressHUD 要与添加的view保持一致 */
++ (void)SG_hideHUDForView:(UIView *)view;
+
+/** 只显示文字的 15 号字体(文字最好不要超过 14 个汉字) MBProgressHUD */
++ (void)SG_showMBProgressHUDWithOnlyMessage:(NSString *)message delayTime:(CGFloat)time;
+
+@end

+ 124 - 0
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD+SGQRCode.m

@@ -0,0 +1,124 @@
+//
+//  MBProgressHUD+SGQRCode.m
+//  MBProgressHUD+SGQRCode
+//
+//  Created by kingsic on 2015/7/13.
+//  Copyright © 2015年 kingsic. All rights reserved.
+//
+
+#import "MBProgressHUD+SGQRCode.h"
+
+@implementation MBProgressHUD (SGQRCode)
+
+/** MBProgressHUD 修改后的样式 */
++ (MBProgressHUD *)SG_showMBProgressHUDWithModifyStyleMessage:(NSString *)message toView:(UIView *)view {
+    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
+    // 快速显示一个提示信息
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+    hud.label.text = message;
+    hud.label.font = [UIFont systemFontOfSize:15];
+    
+    // bezelView.color 自定义progress背景色(默认为白色)
+    hud.bezelView.color = [UIColor blackColor];
+    // 内容的颜色
+    hud.contentColor = [UIColor whiteColor];
+    
+    [hud hideAnimated:YES afterDelay:5];
+    // 隐藏时从父控件上移除
+    hud.removeFromSuperViewOnHide = YES;
+    return hud;
+}
+/** MBProgressHUD 自带样式 */
++ (MBProgressHUD *)SG_showMBProgressHUDWithSystemComesStyleMessage:(NSString *)message toView:(UIView *)view {
+    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
+    // 快速显示一个提示信息
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+    hud.label.text = message;
+    hud.label.font = [UIFont systemFontOfSize:15];
+    [hud hideAnimated:YES afterDelay:5];
+    // 隐藏时从父控件上移除
+    hud.removeFromSuperViewOnHide = YES;
+    return hud;
+}
+
+#pragma mark - - - 显示信息
++ (void)showMessage:(NSString *)message icon:(NSString *)icon toView:(UIView *)view {
+    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
+    // 快速显示一个提示信息
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+    hud.label.text = message;
+    hud.label.font = [UIFont systemFontOfSize:15];
+    
+    // bezelView.color 自定义progress背景色(默认为白色)
+    hud.bezelView.color = [UIColor blackColor];
+    // 内容的颜色
+    hud.contentColor = [UIColor whiteColor];
+    
+    // 设置图片
+    hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MBProgressHUD.bundle/%@", icon]]];
+    
+    // 再设置模式
+    hud.mode = MBProgressHUDModeCustomView;
+    
+    // 隐藏时候从父控件中移除
+    hud.removeFromSuperViewOnHide = YES;
+    
+    // 1秒之后再消失
+    [hud hideAnimated:YES afterDelay:1.0];
+}
+
+/** 显示加载成功的 MBProgressHUD */
++ (void)SG_showMBProgressHUDOfSuccessMessage:(NSString *)message toView:(UIView *)view {
+    [self showMessage:message icon:@"success" toView:view];
+}
+
+/** 显示加载失败的 MBProgressHUD */
++ (void)SG_showMBProgressHUDOfErrorMessage:(NSString *)message toView:(UIView *)view {
+    [self showMessage:message icon:@"error" toView:view];
+}
+
+#pragma mark - - - 隐藏MBProgressHUD
+/** 隐藏 MBProgressHUD */
++ (void)SG_hideHUDForView:(UIView *)view {
+    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
+    [self hideHUDForView:view animated:YES];
+}
+
+/** MBProgressHUD 修改后的样式 (10s) */
++ (MBProgressHUD *)SG_showMBProgressHUD10sHideWithModifyStyleMessage:(NSString *)message toView:(UIView *)view {
+    if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
+    // 快速显示一个提示信息
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+    hud.label.text = message;
+    hud.label.font = [UIFont systemFontOfSize:15];
+    
+    // bezelView.color 自定义progress背景色(默认为白色)
+    hud.bezelView.color = [UIColor blackColor];
+    // 内容的颜色
+    hud.contentColor = [UIColor whiteColor];
+    
+    [hud hideAnimated:YES afterDelay:10];
+    // 隐藏时从父控件上移除
+    hud.removeFromSuperViewOnHide = YES;
+    return hud;
+}
+
+
+/** 只显示文字的 15 号字体(文字最好不要超过 14 个汉字) MBProgressHUD */
++ (void)SG_showMBProgressHUDWithOnlyMessage:(NSString *)message delayTime:(CGFloat)time {
+    MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]] ;
+    hud.mode = MBProgressHUDModeText;
+    hud.label.text = message;
+    hud.label.font = [UIFont systemFontOfSize:15.0];
+    hud.removeFromSuperViewOnHide = YES;
+    hud.bezelView.color = [UIColor blackColor];
+    hud.contentColor = [UIColor whiteColor];
+    [hud showAnimated:YES];
+    [[[[UIApplication sharedApplication] delegate] window] addSubview:hud];
+    
+    [hud hideAnimated:YES afterDelay:time];
+}
+
+
+@end
+

BIN
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/error.png


BIN
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/error@2x.png


BIN
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/success.png


BIN
upAPP/main/AddNewFile/SGToolThird/MBProgressHUD.bundle/success@2x.png


BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLine@2x.png


BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLine@3x.png


BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLineGrid@2x.png


BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/QRCodeScanLineGrid@3x.png


+ 61 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/Root.plist

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>StringsTable</key>
+	<string>Root</string>
+	<key>PreferenceSpecifiers</key>
+	<array>
+		<dict>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+			<key>Title</key>
+			<string>Group</string>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>PSTextFieldSpecifier</string>
+			<key>Title</key>
+			<string>Name</string>
+			<key>Key</key>
+			<string>name_preference</string>
+			<key>DefaultValue</key>
+			<string></string>
+			<key>IsSecure</key>
+			<false/>
+			<key>KeyboardType</key>
+			<string>Alphabet</string>
+			<key>AutocapitalizationType</key>
+			<string>None</string>
+			<key>AutocorrectionType</key>
+			<string>No</string>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>PSToggleSwitchSpecifier</string>
+			<key>Title</key>
+			<string>Enabled</string>
+			<key>Key</key>
+			<string>enabled_preference</string>
+			<key>DefaultValue</key>
+			<true/>
+		</dict>
+		<dict>
+			<key>Type</key>
+			<string>PSSliderSpecifier</string>
+			<key>Key</key>
+			<string>slider_preference</string>
+			<key>DefaultValue</key>
+			<real>0.5</real>
+			<key>MinimumValue</key>
+			<integer>0</integer>
+			<key>MaximumValue</key>
+			<integer>1</integer>
+			<key>MinimumValueImage</key>
+			<string></string>
+			<key>MaximumValueImage</key>
+			<string></string>
+		</dict>
+	</array>
+</dict>
+</plist>

BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/en.lproj/Root.strings


BIN
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.bundle/sound.caf


+ 12 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCode.h

@@ -0,0 +1,12 @@
+//
+//  SGQRCode.h
+//  Version 3.0.1
+//  https://github.com/kingsic/SGQRCode
+//
+//  Created by kingsic on 2016/8/16.
+//  Copyright © 2016年 kingsic. All rights reserved.
+//
+
+#import "SGQRCodeObtainConfigure.h"
+#import "SGQRCodeObtain.h"
+#import "SGQRCodeScanView.h"

+ 91 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtain.h

@@ -0,0 +1,91 @@
+//
+//  SGQRCodeObtain.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2016/8/16.
+//  Copyright © 2016年 kingsic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+@class SGQRCodeObtainConfigure, SGQRCodeObtain;
+
+typedef void(^SGQRCodeObtainScanResultBlock)(SGQRCodeObtain *obtain, NSString *result);
+typedef void(^SGQRCodeObtainScanBrightnessBlock)(SGQRCodeObtain *obtain, CGFloat brightness);
+typedef void(^SGQRCodeObtainAlbumDidCancelImagePickerControllerBlock)(SGQRCodeObtain *obtain);
+typedef void(^SGQRCodeObtainAlbumResultBlock)(SGQRCodeObtain *obtain, NSString *result);
+
+@interface SGQRCodeObtain : NSObject
+/** 类方法创建 */
++ (instancetype)QRCodeObtain;
+
+#pragma mark - - 生成二维码相关方法
+/**
+ *  生成二维码
+ *
+ *  @param data    二维码数据
+ *  @param size    二维码大小
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size;
+/**
+ *  生成二维码(自定义颜色)
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param color    二维码颜色
+ *  @param backgroundColor    二维码背景颜色
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor;
+/**
+ *  生成带 logo 的二维码(推荐使用)
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param logoImage    logo
+ *  @param ratio        logo 相对二维码的比例(取值范围 0.0 ~ 0.5f)
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size logoImage:(UIImage *)logoImage ratio:(CGFloat)ratio;
+/**
+ *  生成带 logo 的二维码(拓展)
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param logoImage    logo
+ *  @param ratio        logo 相对二维码的比例(取值范围 0.0 ~ 0.5f)
+ *  @param logoImageCornerRadius    logo 外边框圆角(取值范围 0.0 ~ 10.0f)
+ *  @param logoImageBorderWidth     logo 外边框宽度(取值范围 0.0 ~ 10.0f)
+ *  @param logoImageBorderColor     logo 外边框颜色
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size logoImage:(UIImage *)logoImage ratio:(CGFloat)ratio logoImageCornerRadius:(CGFloat)logoImageCornerRadius logoImageBorderWidth:(CGFloat)logoImageBorderWidth logoImageBorderColor:(UIColor *)logoImageBorderColor;
+
+#pragma mark - - 扫描二维码相关方法
+/** 创建扫描二维码方法 */
+- (void)establishQRCodeObtainScanWithController:(UIViewController *)controller configure:(SGQRCodeObtainConfigure *)configure;
+/** 扫描二维码回调方法 */
+- (void)setBlockWithQRCodeObtainScanResult:(SGQRCodeObtainScanResultBlock)block;
+/** 扫描二维码光线强弱回调方法;调用之前配置属性 sampleBufferDelegate 必须为 YES */
+- (void)setBlockWithQRCodeObtainScanBrightness:(SGQRCodeObtainScanBrightnessBlock)block;
+/** 开启扫描回调方法 */
+- (void)startRunningWithBefore:(void (^)(void))before completion:(void (^)(void))completion;
+/** 停止扫描方法 */
+- (void)stopRunning;
+
+/** 播放音效文件 */
+- (void)playSoundName:(NSString *)name;
+
+#pragma mark - - 相册中读取二维码相关方法
+/** 创建相册并获取相册授权方法 */
+- (void)establishAuthorizationQRCodeObtainAlbumWithController:(UIViewController *)controller;
+/** 判断相册访问权限是否授权 */
+@property (nonatomic, assign) BOOL isPHAuthorization;
+/** 图片选择控制器取消按钮的点击回调方法 */
+- (void)setBlockWithQRCodeObtainAlbumDidCancelImagePickerController:(SGQRCodeObtainAlbumDidCancelImagePickerControllerBlock)block;
+/** 相册中读取图片二维码信息回调方法 */
+- (void)setBlockWithQRCodeObtainAlbumResult:(SGQRCodeObtainAlbumResultBlock)block;
+
+#pragma mark - - 手电筒相关方法
+/** 打开手电筒 */
+- (void)openFlashlight;
+/** 关闭手电筒 */
+- (void)closeFlashlight;
+
+@end

+ 386 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtain.m

@@ -0,0 +1,386 @@
+//
+//  SGQRCodeObtain.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2016/8/16.
+//  Copyright © 2016年 kingsic. All rights reserved.
+//
+
+#import "SGQRCodeObtain.h"
+#import "SGQRCodeObtainConfigure.h"
+#import <Photos/Photos.h>
+
+@interface SGQRCodeObtain () <AVCaptureMetadataOutputObjectsDelegate, AVCaptureVideoDataOutputSampleBufferDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate>
+@property (nonatomic, weak) UIViewController *controller;
+@property (nonatomic, strong) SGQRCodeObtainConfigure *configure;
+@property (nonatomic, strong) AVCaptureSession *captureSession;
+@property (nonatomic, copy) SGQRCodeObtainScanResultBlock scanResultBlock;
+@property (nonatomic, copy) SGQRCodeObtainScanBrightnessBlock scanBrightnessBlock;
+@property (nonatomic, copy) SGQRCodeObtainAlbumDidCancelImagePickerControllerBlock albumDidCancelImagePickerControllerBlock;
+@property (nonatomic, copy) SGQRCodeObtainAlbumResultBlock albumResultBlock;
+@property (nonatomic, copy) NSString *detectorString;
+
+@end
+
+@implementation SGQRCodeObtain
+
++ (instancetype)QRCodeObtain {
+    return [[self alloc] init];
+}
+
+- (void)dealloc {
+    if (_configure.openLog == YES) {
+        NSLog(@"SGQRCodeObtain - - dealloc");
+    }
+}
+
+#pragma mark - - 生成二维码相关方法
+/**
+ *  生成二维码
+ *
+ *  @param data    二维码数据
+ *  @param size    二维码大小
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size {
+    return [self generateQRCodeWithData:data size:size color:[UIColor blackColor] backgroundColor:[UIColor whiteColor]];
+}
+/**
+ *  生成二维码
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param color    二维码颜色
+ *  @param backgroundColor    二维码背景颜色
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor {
+    NSData *string_data = [data dataUsingEncoding:NSUTF8StringEncoding];
+    // 1、二维码滤镜
+    CIFilter *fileter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
+    [fileter setValue:string_data forKey:@"inputMessage"];
+    [fileter setValue:@"H" forKey:@"inputCorrectionLevel"];
+    CIImage *ciImage = fileter.outputImage;
+    // 2、颜色滤镜
+    CIFilter *color_filter = [CIFilter filterWithName:@"CIFalseColor"];
+    [color_filter setValue:ciImage forKey:@"inputImage"];
+    [color_filter setValue:[CIColor colorWithCGColor:color.CGColor] forKey:@"inputColor0"];
+    [color_filter setValue:[CIColor colorWithCGColor:backgroundColor.CGColor] forKey:@"inputColor1"];
+    // 3、生成处理
+    CIImage *outImage = color_filter.outputImage;
+    CGFloat scale = size / outImage.extent.size.width;
+    outImage = [outImage imageByApplyingTransform:CGAffineTransformMakeScale(scale, scale)];
+    return [UIImage imageWithCIImage:outImage];
+}
+/**
+ *  生成带 logo 的二维码(推荐使用)
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param logoImage    logo
+ *  @param ratio        logo 相对二维码的比例
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size logoImage:(UIImage *)logoImage ratio:(CGFloat)ratio {
+    return [self generateQRCodeWithData:data size:size logoImage:logoImage ratio:ratio logoImageCornerRadius:5 logoImageBorderWidth:5 logoImageBorderColor:[UIColor whiteColor]];
+}
+/**
+ *  生成带 logo 的二维码(拓展)
+ *
+ *  @param data     二维码数据
+ *  @param size     二维码大小
+ *  @param logoImage    logo
+ *  @param ratio        logo 相对二维码的比例
+ *  @param logoImageCornerRadius    logo 外边框圆角
+ *  @param logoImageBorderWidth     logo 外边框宽度
+ *  @param logoImageBorderColor     logo 外边框颜色
+ */
++ (UIImage *)generateQRCodeWithData:(NSString *)data size:(CGFloat)size logoImage:(UIImage *)logoImage ratio:(CGFloat)ratio logoImageCornerRadius:(CGFloat)logoImageCornerRadius logoImageBorderWidth:(CGFloat)logoImageBorderWidth logoImageBorderColor:(UIColor *)logoImageBorderColor {
+    UIImage *image = [self generateQRCodeWithData:data size:size color:[UIColor blackColor] backgroundColor:[UIColor whiteColor]];
+    if (logoImage == nil) return image;
+    if (ratio < 0.0 || ratio > 0.5) {
+        ratio = 0.25;
+    }
+    CGFloat logoImageW = ratio * size;
+    CGFloat logoImageH = logoImageW;
+    CGFloat logoImageX = 0.5 * (image.size.width - logoImageW);
+    CGFloat logoImageY = 0.5 * (image.size.height - logoImageH);
+    CGRect logoImageRect = CGRectMake(logoImageX, logoImageY, logoImageW, logoImageH);
+    // 绘制logo
+    UIGraphicsBeginImageContextWithOptions(image.size, false, [UIScreen mainScreen].scale);
+    [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
+    if (logoImageCornerRadius < 0.0 || logoImageCornerRadius > 10) {
+        logoImageCornerRadius = 5;
+    }
+    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:logoImageRect cornerRadius:logoImageCornerRadius];
+    if (logoImageBorderWidth < 0.0 || logoImageBorderWidth > 10) {
+        logoImageBorderWidth = 5;
+    }
+    path.lineWidth = logoImageBorderWidth;
+    [logoImageBorderColor setStroke];
+    [path stroke];
+    [path addClip];
+    [logoImage drawInRect:logoImageRect];
+    UIImage *QRCodeImage = UIGraphicsGetImageFromCurrentImageContext();
+    UIGraphicsEndImageContext();
+    return QRCodeImage;
+}
+
+#pragma mark - - 扫描二维码相关方法
+- (void)establishQRCodeObtainScanWithController:(UIViewController *)controller configure:(SGQRCodeObtainConfigure *)configure {
+    if (controller == nil) {
+        @throw [NSException exceptionWithName:@"SGQRCode" reason:@"SGQRCodeObtain 中 establishQRCodeObtainScanWithController:configuration:方法的 controller 参数不能为空" userInfo:nil];
+    }
+    if (configure == nil) {
+        @throw [NSException exceptionWithName:@"SGQRCode" reason:@"SGQRCodeObtain 中 establishQRCodeObtainScanWithController:configure:方法的 configure 参数不能为空" userInfo:nil];
+    }
+    
+    _controller = controller;
+    _configure = configure;
+    
+    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
+    // 1、捕获设备输入流
+    AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
+    // 2、捕获元数据输出流
+    AVCaptureMetadataOutput *metadataOutput = [[AVCaptureMetadataOutput alloc] init];
+    [metadataOutput setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
+    
+    // 设置扫描范围(每一个取值 0 ~ 1,以屏幕右上角为坐标原点)
+    // 注:微信二维码的扫描范围是整个屏幕,这里并没有做处理(可不用设置)
+    if (configure.rectOfInterest.origin.x == 0 && configure.rectOfInterest.origin.y == 0 && configure.rectOfInterest.size.width == 0 && configure.rectOfInterest.size.height == 0) {
+    } else {
+        metadataOutput.rectOfInterest = configure.rectOfInterest;
+    }
+
+    // 3、设置会话采集率
+    self.captureSession.sessionPreset = configure.sessionPreset;
+    
+    // 4(1)、添加捕获元数据输出流到会话对象
+    [_captureSession addOutput:metadataOutput];
+    // 4(2)、添加捕获输出流到会话对象;构成识了别光线强弱
+    if (configure.sampleBufferDelegate == YES) {
+        AVCaptureVideoDataOutput *videoDataOutput = [[AVCaptureVideoDataOutput alloc] init];
+        [videoDataOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
+        [_captureSession addOutput:videoDataOutput];
+    }
+    // 4(3)、添加捕获设备输入流到会话对象
+    [_captureSession addInput:deviceInput];
+    
+    // 5、设置数据输出类型,需要将数据输出添加到会话后,才能指定元数据类型,否则会报错
+    metadataOutput.metadataObjectTypes = configure.metadataObjectTypes;
+    
+    // 6、预览图层
+    AVCaptureVideoPreviewLayer *videoPreviewLayer = [AVCaptureVideoPreviewLayer layerWithSession:_captureSession];
+    // 保持纵横比,填充层边界
+    videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
+    videoPreviewLayer.frame = controller.view.frame;
+    [controller.view.layer insertSublayer:videoPreviewLayer atIndex:0];
+}
+
+- (AVCaptureSession *)captureSession {
+    if (!_captureSession) {
+        _captureSession = [[AVCaptureSession alloc] init];
+    }
+    return _captureSession;
+}
+
+- (void)startRunningWithBefore:(void (^)(void))before completion:(void (^)(void))completion {
+    if (before) {
+        before();
+    }
+    dispatch_async(dispatch_get_global_queue(0, 0), ^{
+        [self.captureSession startRunning];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            if (completion) {
+                completion();
+            }
+        });
+    });
+}
+- (void)stopRunning {
+    if (self.captureSession.isRunning) {
+        [self.captureSession stopRunning];
+    }
+}
+
+#pragma mark - - AVCaptureMetadataOutputObjectsDelegate 的方法
+- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection {
+    NSString *resultString = nil;
+    if (metadataObjects != nil && metadataObjects.count > 0) {
+        AVMetadataMachineReadableCodeObject *obj = metadataObjects[0];
+        resultString = [obj stringValue];
+        if (_scanResultBlock) {
+            _scanResultBlock(self, resultString);
+        }
+    }
+}
+#pragma mark - - AVCaptureVideoDataOutputSampleBufferDelegate 的方法
+- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
+    CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL,sampleBuffer, kCMAttachmentMode_ShouldPropagate);
+    NSDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:(__bridge NSDictionary*)metadataDict];
+    CFRelease(metadataDict);
+    NSDictionary *exifMetadata = [[metadata objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];
+    CGFloat brightnessValue = [[exifMetadata objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue] floatValue];
+    if (_scanBrightnessBlock) {
+        _scanBrightnessBlock(self, brightnessValue);
+    }
+}
+
+- (void)setBlockWithQRCodeObtainScanResult:(SGQRCodeObtainScanResultBlock)block {
+    _scanResultBlock = block;
+}
+- (void)setBlockWithQRCodeObtainScanBrightness:(SGQRCodeObtainScanBrightnessBlock)block {
+    _scanBrightnessBlock = block;
+}
+
+- (void)playSoundName:(NSString *)name {
+    /// 静态库 path 的获取
+    NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];
+    if (!path) {
+        /// 动态库 path 的获取
+        path = [[NSBundle bundleForClass:[self class]] pathForResource:name ofType:nil];
+    }
+    NSURL *fileUrl = [NSURL fileURLWithPath:path];
+    
+    SystemSoundID soundID = 0;
+    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);
+    AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
+    AudioServicesPlaySystemSound(soundID);
+}
+void soundCompleteCallback(SystemSoundID soundID, void *clientData){
+    
+}
+
+#pragma mark - - 相册中读取二维码相关方法
+- (void)establishAuthorizationQRCodeObtainAlbumWithController:(UIViewController *)controller {
+    if (controller == nil && _controller == nil) {
+        @throw [NSException exceptionWithName:@"SGQRCode" reason:@"SGQRCodeObtain 中 establishAuthorizationQRCodeObtainAlbumWithController: 方法的 controller 参数不能为空" userInfo:nil];
+    }
+    if (_controller == nil) {
+        _controller = controller;
+    }
+    
+    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
+    if (device) {
+        // 判断授权状态
+        PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
+        if (status == PHAuthorizationStatusNotDetermined) { // 用户还没有做出选择
+            // 弹框请求用户授权
+            [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
+                if (status == PHAuthorizationStatusAuthorized) { // 用户第一次同意了访问相册权限
+                    self.isPHAuthorization = YES;
+                    dispatch_sync(dispatch_get_main_queue(), ^{
+                        [self P_enterImagePickerController];
+                    });
+                    if (self.configure.openLog == YES) {
+                        NSLog(@"用户第一次同意了访问相册权限");
+                    }
+                } else { // 用户第一次拒绝了访问相机权限
+                    if (self.configure.openLog == YES) {
+                        NSLog(@"用户第一次拒绝了访问相册权限");
+                    }
+                }
+            }];
+        } else if (status == PHAuthorizationStatusAuthorized) { // 用户允许当前应用访问相册
+            self.isPHAuthorization = YES;
+            if (self.configure.openLog == YES) {
+                NSLog(@"用户允许访问相册权限");
+            }
+            [self P_enterImagePickerController];
+        } else if (status == PHAuthorizationStatusDenied) { // 用户拒绝当前应用访问相册
+            NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
+            NSString *app_Name = [infoDict objectForKey:@"CFBundleDisplayName"];
+            if (app_Name == nil) {
+                app_Name = [infoDict objectForKey:@"CFBundleName"];
+            }
+            
+            NSString *messageString = [NSString stringWithFormat:@"[前往:设置 - 隐私 - 照片 - %@] 允许应用访问", app_Name];
+            UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@"温馨提示" message:messageString preferredStyle:(UIAlertControllerStyleAlert)];
+            UIAlertAction *alertA = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {
+                
+            }];
+            
+            [alertC addAction:alertA];
+            [_controller presentViewController:alertC animated:YES completion:nil];
+        } else if (status == PHAuthorizationStatusRestricted) {
+            UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"由于系统原因, 无法访问相册" preferredStyle:(UIAlertControllerStyleAlert)];
+            UIAlertAction *alertA = [UIAlertAction actionWithTitle:@"确定" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * _Nonnull action) {
+                
+            }];
+            
+            [alertC addAction:alertA];
+            [_controller presentViewController:alertC animated:YES completion:nil];
+        }
+    }
+}
+
+- (void)P_enterImagePickerController {
+    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
+    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
+    imagePicker.delegate = self;
+    [_controller presentViewController:imagePicker animated:YES completion:nil];
+}
+
+#pragma mark - - UIImagePickerControllerDelegate 的方法
+- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
+    [_controller dismissViewControllerAnimated:YES completion:nil];
+    if (_albumDidCancelImagePickerControllerBlock) {
+        _albumDidCancelImagePickerControllerBlock(self);
+    }
+}
+- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
+    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
+    // 创建 CIDetector,并设定识别类型:CIDetectorTypeQRCode
+    CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy: CIDetectorAccuracyHigh}];
+    // 获取识别结果
+    NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
+    if (features.count == 0) {
+        [_controller dismissViewControllerAnimated:YES completion:^{
+            if (self.albumResultBlock) {
+                self.albumResultBlock(self, nil);
+            }
+        }];
+        return;
+    } else {
+        for (int index = 0; index < [features count]; index ++) {
+            CIQRCodeFeature *feature = [features objectAtIndex:index];
+            NSString *resultStr = feature.messageString;
+            if (_configure.openLog == YES) {
+                NSLog(@"相册中读取二维码数据信息 - - %@", resultStr);
+            }
+            self.detectorString = resultStr;
+        }
+        [_controller dismissViewControllerAnimated:YES completion:^{
+            if (self.albumResultBlock) {
+                self.albumResultBlock(self, self.detectorString);
+            }
+        }];
+    }
+}
+
+- (void)setBlockWithQRCodeObtainAlbumDidCancelImagePickerController:(SGQRCodeObtainAlbumDidCancelImagePickerControllerBlock)block {
+    _albumDidCancelImagePickerControllerBlock = block;
+}
+- (void)setBlockWithQRCodeObtainAlbumResult:(SGQRCodeObtainAlbumResultBlock)block {
+    _albumResultBlock = block;
+}
+
+#pragma mark - - 手电筒相关方法
+- (void)openFlashlight {
+    AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
+    NSError *error = nil;
+    if ([captureDevice hasTorch]) {
+        BOOL locked = [captureDevice lockForConfiguration:&error];
+        if (locked) {
+            [captureDevice setTorchMode:AVCaptureTorchModeOn];
+            [captureDevice unlockForConfiguration];
+        }
+    }
+}
+- (void)closeFlashlight {
+    AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
+    if ([captureDevice hasTorch]) {
+        [captureDevice lockForConfiguration:nil];
+        [captureDevice setTorchMode:AVCaptureTorchModeOff];
+        [captureDevice unlockForConfiguration];
+    }
+}
+
+@end

+ 27 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtainConfigure.h

@@ -0,0 +1,27 @@
+//
+//  SGQRCodeObtainConfigure.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2018/7/29.
+//  Copyright © 2018年 kingsic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <AVFoundation/AVFoundation.h>
+
+@interface SGQRCodeObtainConfigure : NSObject
+/** 类方法创建 */
++ (instancetype)QRCodeObtainConfigure;
+
+/** 会话预置,默认为:AVCaptureSessionPreset1920x1080 */
+@property (nonatomic, copy) NSString *sessionPreset;
+/** 元对象类型,默认为:AVMetadataObjectTypeQRCode */
+@property (nonatomic, strong) NSArray *metadataObjectTypes;
+/** 扫描范围,默认整个视图(每一个取值 0 ~ 1,以屏幕右上角为坐标原点)*/
+@property (nonatomic, assign) CGRect rectOfInterest;
+/** 是否需要样本缓冲代理(光线强弱),默认为:NO */
+@property (nonatomic, assign) BOOL sampleBufferDelegate;
+/** 打印信息,默认为:NO */
+@property (nonatomic, assign) BOOL openLog;
+
+@end

+ 31 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeObtainConfigure.m

@@ -0,0 +1,31 @@
+//
+//  SGQRCodeObtainConfigure.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2018/7/29.
+//  Copyright © 2018年 kingsic. All rights reserved.
+//
+
+#import "SGQRCodeObtainConfigure.h"
+
+@implementation SGQRCodeObtainConfigure
+
++ (instancetype)QRCodeObtainConfigure {
+    return [[self alloc] init];
+}
+
+- (NSString *)sessionPreset {
+    if (!_sessionPreset) {
+        _sessionPreset = AVCaptureSessionPreset1920x1080;
+    }
+    return _sessionPreset;
+}
+
+- (NSArray *)metadataObjectTypes {
+    if (!_metadataObjectTypes) {
+        _metadataObjectTypes = @[AVMetadataObjectTypeQRCode];
+    }
+    return _metadataObjectTypes;
+}
+
+@end

+ 50 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeScanView.h

@@ -0,0 +1,50 @@
+//
+//  SGQRCodeScanView.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2017/8/23.
+//  Copyright © 2017年 kingsic All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef enum : NSUInteger {
+    /// 默认与边框线同中心点
+    CornerLoactionDefault,
+    /// 在边框线内部
+    CornerLoactionInside,
+    /// 在边框线外部
+    CornerLoactionOutside
+} CornerLoaction;
+
+typedef enum : NSUInteger {
+    /// 单线扫描样式
+    ScanAnimationStyleDefault,
+    /// 网格扫描样式
+    ScanAnimationStyleGrid
+} ScanAnimationStyle;
+
+@interface SGQRCodeScanView : UIView
+/** 扫描样式,默认 ScanAnimationStyleDefault */
+@property (nonatomic, assign) ScanAnimationStyle scanAnimationStyle;
+/** 扫描线名 */
+@property (nonatomic, copy) NSString *scanImageName;
+/** 边框颜色,默认白色 */
+@property (nonatomic, strong) UIColor *borderColor;
+/** 边角位置,默认 CornerLoactionDefault */
+@property (nonatomic, assign) CornerLoaction cornerLocation;
+/** 边角颜色,默认微信颜色 */
+@property (nonatomic, strong) UIColor *cornerColor;
+/** 边角宽度,默认 2.f */
+@property (nonatomic, assign) CGFloat cornerWidth;
+/** 扫描区周边颜色的 alpha 值,默认 0.2f */
+@property (nonatomic, assign) CGFloat backgroundAlpha;
+/** 扫描线动画时间,默认 0.02s */
+@property (nonatomic, assign) NSTimeInterval animationTimeInterval;
+
+/** 添加定时器 */
+- (void)addTimer;
+/** 移除定时器 */
+- (void)removeTimer;
+
+@end

+ 328 - 0
upAPP/main/AddNewFile/SGToolThird/SGQRCode/SGQRCodeScanView.m

@@ -0,0 +1,328 @@
+//
+//  SGQRCodeScanView.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2017/8/23.
+//  Copyright © 2017年 kingsic All rights reserved.
+//
+
+#import "SGQRCodeScanView.h"
+
+/** 扫描内容的 W 值 */
+#define scanBorderW 0.7 * self.frame.size.width
+/** 扫描内容的 x 值 */
+#define scanBorderX 0.5 * (1 - 0.7) * self.frame.size.width
+/** 扫描内容的 Y 值 */
+#define scanBorderY 0.5 * (self.frame.size.height - scanBorderW)
+
+@interface SGQRCodeScanView ()
+@property (nonatomic, strong) UIView *contentView;
+@property (nonatomic, strong) NSTimer *timer;
+@property (nonatomic, strong) UIImageView *scanningline;
+@end
+
+@implementation SGQRCodeScanView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        self.backgroundColor = [UIColor clearColor];
+        
+        [self initialization];
+    }
+    return self;
+}
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    [self initialization];
+}
+
+- (void)initialization {
+    _scanAnimationStyle = ScanAnimationStyleDefault;
+    _borderColor = [UIColor whiteColor];
+    _cornerLocation = CornerLoactionDefault;
+    _cornerColor = [UIColor colorWithRed:85/255.0f green:183/255.0 blue:55/255.0 alpha:1.0];
+    _cornerWidth = 2.0;
+    _backgroundAlpha = 0.5;
+    _animationTimeInterval = 0.02;
+    _scanImageName = @"QRCodeScanLine";
+}
+
+- (UIView *)contentView {
+    if (!_contentView) {
+        _contentView = [[UIView alloc] init];
+        _contentView.frame = CGRectMake(scanBorderX, scanBorderY, scanBorderW, scanBorderW);
+        _contentView.clipsToBounds = YES;
+        _contentView.backgroundColor = [UIColor clearColor];
+    }
+    return _contentView;
+}
+
+- (void)drawRect:(CGRect)rect {
+    [super drawRect:rect];
+    
+    /// 边框 frame
+    CGFloat borderW = scanBorderW;
+    CGFloat borderH = borderW;
+    CGFloat borderX = scanBorderX;
+    CGFloat borderY = scanBorderY;
+    CGFloat borderLineW = 0.2;
+
+    /// 空白区域设置
+    [[[UIColor blackColor] colorWithAlphaComponent:self.backgroundAlpha] setFill];
+    UIRectFill(rect);
+    // 获取上下文,并设置混合模式 -> kCGBlendModeDestinationOut
+    CGContextRef context = UIGraphicsGetCurrentContext();
+    CGContextSetBlendMode(context, kCGBlendModeDestinationOut);
+    // 设置空白区
+    UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRect:CGRectMake(borderX + 0.5 * borderLineW, borderY + 0.5 *borderLineW, borderW - borderLineW, borderH - borderLineW)];
+    [bezierPath fill];
+    // 执行混合模式
+    CGContextSetBlendMode(context, kCGBlendModeNormal);
+    
+    /// 边框设置
+    UIBezierPath *borderPath = [UIBezierPath bezierPathWithRect:CGRectMake(borderX, borderY, borderW, borderH)];
+    borderPath.lineCapStyle = kCGLineCapButt;
+    borderPath.lineWidth = borderLineW;
+    [self.borderColor set];
+    [borderPath stroke];
+    
+    
+    CGFloat cornerLenght = 20;
+    /// 左上角小图标
+    UIBezierPath *leftTopPath = [UIBezierPath bezierPath];
+    leftTopPath.lineWidth = self.cornerWidth;
+    [self.cornerColor set];
+    
+    CGFloat insideExcess = fabs(0.5 * (self.cornerWidth - borderLineW));
+    CGFloat outsideExcess = 0.5 * (borderLineW + self.cornerWidth);
+    if (self.cornerLocation == CornerLoactionInside) {
+        [leftTopPath moveToPoint:CGPointMake(borderX + insideExcess, borderY + cornerLenght + insideExcess)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX + insideExcess, borderY + insideExcess)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX + cornerLenght + insideExcess, borderY + insideExcess)];
+    } else if (self.cornerLocation == CornerLoactionOutside) {
+        [leftTopPath moveToPoint:CGPointMake(borderX - outsideExcess, borderY + cornerLenght - outsideExcess)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX - outsideExcess, borderY - outsideExcess)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX + cornerLenght - outsideExcess, borderY - outsideExcess)];
+    } else {
+        [leftTopPath moveToPoint:CGPointMake(borderX, borderY + cornerLenght)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX, borderY)];
+        [leftTopPath addLineToPoint:CGPointMake(borderX + cornerLenght, borderY)];
+    }
+
+    [leftTopPath stroke];
+    
+    /// 左下角小图标
+    UIBezierPath *leftBottomPath = [UIBezierPath bezierPath];
+    leftBottomPath.lineWidth = self.cornerWidth;
+    [self.cornerColor set];
+    
+    if (self.cornerLocation == CornerLoactionInside) {
+        [leftBottomPath moveToPoint:CGPointMake(borderX + cornerLenght + insideExcess, borderY + borderH - insideExcess)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX + insideExcess, borderY + borderH - insideExcess)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX + insideExcess, borderY + borderH - cornerLenght - insideExcess)];
+    } else if (self.cornerLocation == CornerLoactionOutside) {
+        [leftBottomPath moveToPoint:CGPointMake(borderX + cornerLenght - outsideExcess, borderY + borderH + outsideExcess)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX - outsideExcess, borderY + borderH + outsideExcess)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX - outsideExcess, borderY + borderH - cornerLenght + outsideExcess)];
+    } else {
+        [leftBottomPath moveToPoint:CGPointMake(borderX + cornerLenght, borderY + borderH)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX, borderY + borderH)];
+        [leftBottomPath addLineToPoint:CGPointMake(borderX, borderY + borderH - cornerLenght)];
+    }
+
+    [leftBottomPath stroke];
+    
+    /// 右上角小图标
+    UIBezierPath *rightTopPath = [UIBezierPath bezierPath];
+    rightTopPath.lineWidth = self.cornerWidth;
+    [self.cornerColor set];
+    
+    if (self.cornerLocation == CornerLoactionInside) {
+        [rightTopPath moveToPoint:CGPointMake(borderX + borderW - cornerLenght - insideExcess, borderY + insideExcess)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW - insideExcess, borderY + insideExcess)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW - insideExcess, borderY + cornerLenght + insideExcess)];
+    } else if (self.cornerLocation == CornerLoactionOutside) {
+        [rightTopPath moveToPoint:CGPointMake(borderX + borderW - cornerLenght + outsideExcess, borderY - outsideExcess)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW + outsideExcess, borderY - outsideExcess)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW + outsideExcess, borderY + cornerLenght - outsideExcess)];
+    } else {
+        [rightTopPath moveToPoint:CGPointMake(borderX + borderW - cornerLenght, borderY)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW, borderY)];
+        [rightTopPath addLineToPoint:CGPointMake(borderX + borderW, borderY + cornerLenght)];
+    }
+
+    [rightTopPath stroke];
+    
+    /// 右下角小图标
+    UIBezierPath *rightBottomPath = [UIBezierPath bezierPath];
+    rightBottomPath.lineWidth = self.cornerWidth;
+    [self.cornerColor set];
+    
+    if (self.cornerLocation == CornerLoactionInside) {
+        [rightBottomPath moveToPoint:CGPointMake(borderX + borderW - insideExcess, borderY + borderH - cornerLenght - insideExcess)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW - insideExcess, borderY + borderH - insideExcess)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW - cornerLenght - insideExcess, borderY + borderH - insideExcess)];
+    } else if (self.cornerLocation == CornerLoactionOutside) {
+        [rightBottomPath moveToPoint:CGPointMake(borderX + borderW + outsideExcess, borderY + borderH - cornerLenght + outsideExcess)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW + outsideExcess, borderY + borderH + outsideExcess)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW - cornerLenght + outsideExcess, borderY + borderH + outsideExcess)];
+    } else {
+        [rightBottomPath moveToPoint:CGPointMake(borderX + borderW, borderY + borderH - cornerLenght)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW, borderY + borderH)];
+        [rightBottomPath addLineToPoint:CGPointMake(borderX + borderW - cornerLenght, borderY + borderH)];
+    }
+
+    [rightBottomPath stroke];
+}
+
+#pragma mark - - - 添加定时器
+- (void)addTimer {
+    CGFloat scanninglineX = 0;
+    CGFloat scanninglineY = 0;
+    CGFloat scanninglineW = 0;
+    CGFloat scanninglineH = 0;
+    if (self.scanAnimationStyle == ScanAnimationStyleGrid) {
+        [self addSubview:self.contentView];
+        [_contentView addSubview:self.scanningline];
+        scanninglineW = scanBorderW;
+        scanninglineH = scanBorderW;
+        scanninglineX = 0;
+        scanninglineY = - scanBorderW;
+        _scanningline.frame = CGRectMake(scanninglineX, scanninglineY, scanninglineW, scanninglineH);
+
+    } else {
+        [self addSubview:self.scanningline];
+        scanninglineW = scanBorderW;
+        scanninglineH = 12;
+        scanninglineX = scanBorderX;
+        scanninglineY = scanBorderY;
+        _scanningline.frame = CGRectMake(scanninglineX, scanninglineY, scanninglineW, scanninglineH);
+    }
+    self.timer = [NSTimer timerWithTimeInterval:self.animationTimeInterval target:self selector:@selector(beginRefreshUI) userInfo:nil repeats:YES];
+    [[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
+}
+#pragma mark - - - 移除定时器
+- (void)removeTimer {
+    [self.timer invalidate];
+    self.timer = nil;
+    [_scanningline removeFromSuperview];
+    _scanningline = nil;
+}
+#pragma mark - - - 执行定时器方法
+- (void)beginRefreshUI {
+    __block CGRect frame = _scanningline.frame;
+    static BOOL flag = YES;
+    
+    __weak typeof(self) weakSelf = self;
+
+    if (self.scanAnimationStyle == ScanAnimationStyleGrid) {
+        if (flag) {
+            frame.origin.y = - scanBorderW;
+            flag = NO;
+            [UIView animateWithDuration:self.animationTimeInterval animations:^{
+                frame.origin.y += 2;
+                weakSelf.scanningline.frame = frame;
+            } completion:nil];
+        } else {
+            if (_scanningline.frame.origin.y >= - scanBorderW) {
+                CGFloat scanContent_MaxY = - scanBorderW + self.frame.size.width - 2 * scanBorderX;
+                if (_scanningline.frame.origin.y >= scanContent_MaxY) {
+                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                        frame.origin.y = - scanBorderW;
+                        weakSelf.scanningline.frame = frame;
+                        flag = YES;
+                    });
+                } else {
+                    [UIView animateWithDuration:self.animationTimeInterval animations:^{
+                        frame.origin.y += 2;
+                        weakSelf.scanningline.frame = frame;
+                    } completion:nil];
+                }
+            } else {
+                flag = !flag;
+            }
+        }
+    } else {
+        if (flag) {
+            frame.origin.y = scanBorderY;
+            flag = NO;
+            [UIView animateWithDuration:self.animationTimeInterval animations:^{
+                frame.origin.y += 2;
+                weakSelf.scanningline.frame = frame;
+            } completion:nil];
+        } else {
+            if (_scanningline.frame.origin.y >= scanBorderY) {
+                CGFloat scanContent_MaxY = scanBorderY + self.frame.size.width - 2 * scanBorderX;
+                if (_scanningline.frame.origin.y >= scanContent_MaxY - 10) {
+                    frame.origin.y = scanBorderY;
+                    weakSelf.scanningline.frame = frame;
+                    flag = YES;
+                } else {
+                    [UIView animateWithDuration:self.animationTimeInterval animations:^{
+                        frame.origin.y += 2;
+                        weakSelf.scanningline.frame = frame;
+                    } completion:nil];
+                }
+            } else {
+                flag = !flag;
+            }
+        }
+    }
+}
+
+- (UIImageView *)scanningline {
+    if (!_scanningline) {
+        _scanningline = [[UIImageView alloc] init];
+        
+        /// 静态库 url 的获取
+        NSURL *url = [[NSBundle mainBundle] URLForResource:@"SGQRCode" withExtension:@"bundle"];
+        if (!url) {
+            /// 动态库 url 的获取
+            url = [[NSBundle bundleForClass:[self class]] URLForResource:@"SGQRCode" withExtension:@"bundle"];
+        }
+        NSBundle *bundle = [NSBundle bundleWithURL:url];
+        
+        UIImage *image = [UIImage imageNamed:self.scanImageName inBundle:bundle compatibleWithTraitCollection:nil];
+        if (!image) {
+            image = [UIImage imageNamed:self.scanImageName];
+        }
+        _scanningline.image = image;
+    }
+    return _scanningline;
+}
+
+#pragma mark - - - set
+- (void)setScanAnimationStyle:(ScanAnimationStyle)scanAnimationStyle {
+    _scanAnimationStyle = scanAnimationStyle;
+}
+
+- (void)setScanImageName:(NSString *)scanImageName {
+    _scanImageName = scanImageName;
+}
+
+- (void)setBorderColor:(UIColor *)borderColor {
+    _borderColor = borderColor;
+}
+
+- (void)setCornerLocation:(CornerLoaction)cornerLocation {
+    _cornerLocation = cornerLocation;
+}
+
+- (void)setCornerColor:(UIColor *)cornerColor {
+    _cornerColor = cornerColor;
+}
+
+- (void)setCornerWidth:(CGFloat)cornerWidth {
+    _cornerWidth = cornerWidth;
+}
+
+- (void)setBackgroundAlpha:(CGFloat)backgroundAlpha {
+    _backgroundAlpha = backgroundAlpha;
+}
+
+- (void)setAnimationTimeInterval:(NSTimeInterval)animationTimeInterval {
+    _animationTimeInterval = animationTimeInterval;
+}
+
+@end

+ 45 - 0
upAPP/main/AddNewFile/SGToolThird/SGWebView.h

@@ -0,0 +1,45 @@
+//
+//  SGWebView.h
+//  SGWebViewExample
+//
+//  Created by kingsic on 17/3/27.
+//  Copyright © 2017年 kingsic. All rights reserved.
+//
+//  SGWebView 使用注意点:
+//  如果 self.navigationController.navigationBar.translucent = NO;或者导航栏不存在; 那么 SGWebView 的 isNavigationBarOrTranslucent属性 必须设置 NO)
+
+#import <UIKit/UIKit.h>
+@class SGWebView;
+
+@protocol SGWebViewDelegate <NSObject>
+@optional
+/** 页面开始加载时调用 */
+- (void)webViewDidStartLoad:(SGWebView *)webView;
+/** 内容开始返回时调用 */
+- (void)webView:(SGWebView *)webView didCommitWithURL:(NSURL *)url;
+/** 页面加载失败时调用 */
+- (void)webView:(SGWebView *)webView didFinishLoadWithURL:(NSURL *)url;
+/** 页面加载完成之后调用 */
+- (void)webView:(SGWebView *)webView didFailLoadWithError:(NSError *)error;
+@end
+
+@interface SGWebView : UIView
+/** SGDelegate */
+@property (nonatomic, weak) id<SGWebViewDelegate> SGQRCodeDelegate;
+/** 进度条颜色(默认蓝色) */
+@property (nonatomic, strong) UIColor *progressViewColor;
+/** 导航栏标题 */
+@property (nonatomic, copy) NSString *navigationItemTitle;
+/** 导航栏存在且有穿透效果(默认导航栏存在且有穿透效果) */
+@property (nonatomic, assign) BOOL isNavigationBarOrTranslucent;
+
+/** 类方法创建 SGWebView */
++ (instancetype)webViewWithFrame:(CGRect)frame;
+/** 加载 web */
+- (void)loadRequest:(NSURLRequest *)request;
+/** 加载 HTML */
+- (void)loadHTMLString:(NSString *)HTMLString;
+/** 刷新数据 */
+- (void)reloadData;
+
+@end

+ 147 - 0
upAPP/main/AddNewFile/SGToolThird/SGWebView.m

@@ -0,0 +1,147 @@
+//
+//  SGWebView.m
+//  SGWebViewExample
+//
+//  Created by kingsic on 17/3/27.
+//  Copyright © 2017年 kingsic. All rights reserved.
+//
+
+#import "SGWebView.h"
+#import <WebKit/WebKit.h>
+
+@interface SGWebView () <WKNavigationDelegate, WKUIDelegate>
+/// WKWebView
+@property (nonatomic, strong) WKWebView *wkWebView;
+/// 进度条
+@property (nonatomic, strong) UIProgressView *progressView;
+@end
+
+@implementation SGWebView
+
+static CGFloat const navigationBarHeight = 64;
+static CGFloat const progressViewHeight = 2;
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        [self addSubview:self.wkWebView];
+        [self addSubview:self.progressView];
+    }
+    return self;
+}
+
++ (instancetype)webViewWithFrame:(CGRect)frame {
+    return [[self alloc] initWithFrame:frame];
+}
+
+- (WKWebView *)wkWebView {
+    if (!_wkWebView) {
+        _wkWebView = [[WKWebView alloc] initWithFrame:self.bounds];
+        _wkWebView.navigationDelegate = self;
+        _wkWebView.UIDelegate = self;
+        // KVO
+        [self.wkWebView addObserver:self forKeyPath:NSStringFromSelector(@selector(estimatedProgress)) options:0 context:nil];
+    }
+    return _wkWebView;
+}
+
+- (UIProgressView *)progressView {
+    if (!_progressView) {
+        _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
+        _progressView.trackTintColor = [UIColor clearColor];
+        // 高度默认有导航栏且有穿透效果
+        _progressView.frame = CGRectMake(0, 0, self.frame.size.width, progressViewHeight);
+        // 设置进度条颜色
+        _progressView.tintColor = [UIColor greenColor];
+    }
+    return _progressView;
+}
+
+- (void)setProgressViewColor:(UIColor *)progressViewColor {
+    _progressViewColor = progressViewColor;
+    
+    if (progressViewColor) {
+        _progressView.tintColor = progressViewColor;
+    }
+}
+
+- (void)setIsNavigationBarOrTranslucent:(BOOL)isNavigationBarOrTranslucent {
+    _isNavigationBarOrTranslucent = isNavigationBarOrTranslucent;
+    
+    if (isNavigationBarOrTranslucent == YES) { // 导航栏存在且有穿透效果
+        _progressView.frame = CGRectMake(0, navigationBarHeight, self.frame.size.width, progressViewHeight);
+    } else { // 导航栏不存在或者没有有穿透效果
+        _progressView.frame = CGRectMake(0, 0, self.frame.size.width, progressViewHeight);
+    }
+}
+
+/// KVO
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
+    if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))] && object == self.wkWebView) {
+        self.progressView.alpha = 1.0;
+        BOOL animated = self.wkWebView.estimatedProgress > self.progressView.progress;
+        [self.progressView setProgress:self.wkWebView.estimatedProgress animated:animated];
+        if(self.wkWebView.estimatedProgress >= 0.97) {
+            [UIView animateWithDuration:0.1 delay:0.3 options:UIViewAnimationOptionCurveEaseOut animations:^{
+                self.progressView.alpha = 0.0;
+            } completion:^(BOOL finished) {
+                [self.progressView setProgress:0.0 animated:NO];
+            }];
+        }
+    } else {
+        [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
+    }
+}
+
+#pragma mark - - - 加载的状态回调(WKNavigationDelegate)
+/// 页面开始加载时调用
+- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
+    if (self.SGQRCodeDelegate && [self.SGQRCodeDelegate respondsToSelector:@selector(webViewDidStartLoad:)]) {
+        [self.SGQRCodeDelegate webViewDidStartLoad:self];
+    }
+}
+/// 当内容开始返回时调用
+- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
+    if (self.SGQRCodeDelegate && [self.SGQRCodeDelegate respondsToSelector:@selector(webView:didCommitWithURL:)]) {
+        [self.SGQRCodeDelegate webView:self didCommitWithURL:self.wkWebView.URL];
+    }
+    
+    self.navigationItemTitle = self.wkWebView.title;
+}
+/// 页面加载完成之后调用
+- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
+    self.navigationItemTitle = self.wkWebView.title;
+    if (self.SGQRCodeDelegate && [self.SGQRCodeDelegate respondsToSelector:@selector(webView:didFinishLoadWithURL:)]) {
+        [self.SGQRCodeDelegate webView:self didFinishLoadWithURL:self.wkWebView.URL];
+    }
+    
+    self.progressView.alpha = 0.0;
+}
+/// 页面加载失败时调用
+- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error {
+    if (self.SGQRCodeDelegate && [self.SGQRCodeDelegate respondsToSelector:@selector(webView:didFailLoadWithError:)]) {
+        [self.SGQRCodeDelegate webView:self didFailLoadWithError:error];
+    }
+    
+    self.progressView.alpha = 0.0;
+}
+
+/// 加载 web
+- (void)loadRequest:(NSURLRequest *)request {
+    [self.wkWebView loadRequest:request];
+}
+/// 加载 HTML
+- (void)loadHTMLString:(NSString *)HTMLString {
+    [self.wkWebView loadHTMLString:HTMLString baseURL:nil];
+}
+/// 刷新数据
+- (void)reloadData {
+    [self.wkWebView reload];
+}
+
+/// dealloc
+- (void)dealloc {    
+    [self.wkWebView removeObserver:self forKeyPath:NSStringFromSelector(@selector(estimatedProgress))];
+}
+
+
+@end

+ 24 - 0
upAPP/main/AddNewFile/SGToolThird/ScanSuccessJumpVC.h

@@ -0,0 +1,24 @@
+//
+//  ScanSuccessJumpVC.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 16/8/29.
+//  Copyright © 2016年 kingsic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef enum : NSUInteger {
+    ScanSuccessJumpComeFromWB,
+    ScanSuccessJumpComeFromWC
+} ScanSuccessJumpComeFrom;
+
+@interface ScanSuccessJumpVC : UIViewController
+/** 判断从哪个控制器 push 过来 */
+@property (nonatomic, assign) ScanSuccessJumpComeFrom comeFromVC;
+/** 接收扫描的二维码信息 */
+@property (nonatomic, copy) NSString *jump_URL;
+/** 接收扫描的条形码信息 */
+@property (nonatomic, copy) NSString *jump_bar_code;
+
+@end

+ 114 - 0
upAPP/main/AddNewFile/SGToolThird/ScanSuccessJumpVC.m

@@ -0,0 +1,114 @@
+//
+//  ScanSuccessJumpVC.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 16/8/29.
+//  Copyright © 2016年 kingsic. All rights reserved.
+//
+
+#import "ScanSuccessJumpVC.h"
+#import "SGWebView.h"
+#define NAV_HEIGHT (([[UIApplication sharedApplication] statusBarFrame].size.height)+44.0f)
+@interface ScanSuccessJumpVC () <SGWebViewDelegate>
+@property (nonatomic , strong) SGWebView *webView;
+@property(nonatomic,strong)UILabel *titleLab;
+@end
+
+@implementation ScanSuccessJumpVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view.
+    self.view.backgroundColor = [UIColor whiteColor];
+    [self.navigationView removeAllLeftButton];
+        _titleLab = [[UILabel alloc]init];
+    
+        _titleLab.frame = CGRectMake(0,0, kGScreenWidth-60, 30);
+    
+        _titleLab.text = @"欢迎您参加卖铺宝活动";
+    
+        [self.navigationView addTitleView:_titleLab];
+    
+        kWeakSelf(self);
+        [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+    
+    //        [weakself.navigationController popViewControllerAnimated:YES];
+             [weakself.navigationController popToRootViewControllerAnimated:YES];
+    
+        }];
+//    [self setupNavigationItem];
+   
+    if (self.jump_bar_code) {
+        [self setupLabel];
+    } else {
+        [self setupWebView];
+    }
+}
+
+- (void)setupNavigationItem {
+    UIButton *left_Button = [[UIButton alloc] init];
+    [left_Button setTitle:@"btn_back" forState:UIControlStateNormal];
+    [left_Button setTitleColor:[UIColor colorWithRed: 21/ 255.0f green: 126/ 255.0f blue: 251/ 255.0f alpha:1.0] forState:(UIControlStateNormal)];
+    [left_Button sizeToFit];
+    [left_Button addTarget:self action:@selector(left_BarButtonItemAction) forControlEvents:UIControlEventTouchUpInside];
+    UIBarButtonItem *left_BarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:left_Button];
+    self.navigationItem.leftBarButtonItem = left_BarButtonItem;
+
+    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:(UIBarButtonSystemItemRefresh) target:self action:@selector(right_BarButtonItemAction)];
+
+}
+
+- (void)left_BarButtonItemAction {
+    if (self.comeFromVC == ScanSuccessJumpComeFromWB) {
+        [self.navigationController popViewControllerAnimated:YES];
+    }
+    
+    if (self.comeFromVC == ScanSuccessJumpComeFromWC) {
+        [self.navigationController popToRootViewControllerAnimated:YES];
+    }
+}
+
+- (void)right_BarButtonItemAction {
+    [self.webView reloadData];
+}
+
+// 添加Label,加载扫描过来的内容
+- (void)setupLabel {
+    // 提示文字
+    UILabel *prompt_message = [[UILabel alloc] init];
+    prompt_message.frame = CGRectMake(0, 200, self.view.frame.size.width, 30);
+    prompt_message.text = @"您扫描的条形码结果如下: ";
+    prompt_message.textColor = [UIColor redColor];
+    prompt_message.textAlignment = NSTextAlignmentCenter;
+    [self.view addSubview:prompt_message];
+    
+    // 扫描结果
+    CGFloat label_Y = CGRectGetMaxY(prompt_message.frame);
+    UILabel *label = [[UILabel alloc] init];
+    label.frame = CGRectMake(0, label_Y, self.view.frame.size.width, 30);
+    label.text = self.jump_bar_code;
+    label.textAlignment = NSTextAlignmentCenter;
+    [self.view addSubview:label];
+}
+
+// 添加webView,加载扫描过来的内容
+- (void)setupWebView {
+//    CGFloat webViewX = 0;
+//    CGFloat webViewY = 0;
+//    CGFloat webViewW = [UIScreen mainScreen].bounds.size.width;
+//    CGFloat webViewH = [UIScreen mainScreen].bounds.size.height;
+    self.webView = [SGWebView webViewWithFrame:CGRectMake(0, NAV_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT-NAV_HEIGHT)];
+    if (self.comeFromVC == ScanSuccessJumpComeFromWB) {
+        _webView.progressViewColor = [UIColor orangeColor];
+    };
+    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.jump_URL]]];
+    _webView.SGQRCodeDelegate = self;
+    [self.view addSubview:_webView];
+}
+
+- (void)webView:(SGWebView *)webView didFinishLoadWithURL:(NSURL *)url {
+    NSLog(@"didFinishLoad");
+    self.title = webView.navigationItemTitle;
+}
+
+@end

+ 13 - 0
upAPP/main/AddNewFile/SGToolThird/WBQRCodeVC.h

@@ -0,0 +1,13 @@
+//
+//  WBQRCodeVC.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2018/2/8.
+//  Copyright © 2018年 kingsic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface WBQRCodeVC : UIViewController
+
+@end

+ 175 - 0
upAPP/main/AddNewFile/SGToolThird/WBQRCodeVC.m

@@ -0,0 +1,175 @@
+//
+//  WBQRCodeVC.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 2018/2/8.
+//  Copyright © 2018年 kingsic. All rights reserved.
+//
+
+#import "WBQRCodeVC.h"
+#import "SGQRCode.h"
+#import "ScanSuccessJumpVC.h"
+#import "MBProgressHUD+SGQRCode.h"
+
+@interface WBQRCodeVC () {
+    SGQRCodeObtain *obtain;
+}
+@property (nonatomic, strong) SGQRCodeScanView *scanView;
+@property (nonatomic, strong) UILabel *promptLabel;
+@property (nonatomic, assign) BOOL stop;
+@property(nonatomic,strong)UILabel *titleLab;
+@end
+
+@implementation WBQRCodeVC
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    
+    if (_stop) {
+        [obtain startRunningWithBefore:nil completion:nil];
+    }
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+    [super viewDidAppear:animated];
+    [self.scanView addTimer];
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+    [super viewWillDisappear:animated];
+    [self.scanView removeTimer];
+}
+
+- (void)dealloc {
+    NSLog(@"WBQRCodeVC - dealloc");
+    [self removeScanningView];
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self.navigationView removeAllLeftButton];
+    
+    _titleLab = [[UILabel alloc]init];
+    
+    _titleLab.frame = CGRectMake(0,0, kGScreenWidth-60, 30);
+    
+    _titleLab.text = @"扫码签到";
+    
+    [self.navigationView addTitleView:_titleLab];
+    
+    kWeakSelf(self);
+    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+        
+        [weakself.navigationController popViewControllerAnimated:YES];
+        
+    }];
+    // Do any additional setup after loading the view from its nib.
+    self.view.backgroundColor = [UIColor blackColor];
+    obtain = [SGQRCodeObtain QRCodeObtain];
+    
+    [self setupQRCodeScan];
+    [self setupNavigationBar];
+    [self.view addSubview:self.scanView];
+    [self.view addSubview:self.promptLabel];
+}
+
+- (void)setupQRCodeScan {
+    __weak typeof(self) weakSelf = self;
+
+    SGQRCodeObtainConfigure *configure = [SGQRCodeObtainConfigure QRCodeObtainConfigure];
+    configure.openLog = YES;
+    configure.rectOfInterest = CGRectMake(0.05, 0.2, 0.7, 0.6);
+    // 这里只是提供了几种作为参考(共:13);需什么类型添加什么类型即可
+    NSArray *arr = @[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
+    configure.metadataObjectTypes = arr;
+    
+    [obtain establishQRCodeObtainScanWithController:self configure:configure];
+    [obtain startRunningWithBefore:^{
+        [MBProgressHUD SG_showMBProgressHUDWithModifyStyleMessage:@"正在加载..." toView:weakSelf.view];
+    } completion:^{
+        [MBProgressHUD SG_hideHUDForView:weakSelf.view];
+    }];
+    [obtain setBlockWithQRCodeObtainScanResult:^(SGQRCodeObtain *obtain, NSString *result) {
+        if (result) {
+            [obtain stopRunning];
+            weakSelf.stop = YES;
+            [obtain playSoundName:@"SGQRCode.bundle/sound.caf"];
+
+            ScanSuccessJumpVC *jumpVC = [[ScanSuccessJumpVC alloc] init];
+            jumpVC.comeFromVC = ScanSuccessJumpComeFromWB;
+            jumpVC.jump_URL = result;
+            [weakSelf.navigationController pushViewController:jumpVC animated:YES];
+        }
+    }];
+}
+
+- (void)setupNavigationBar {
+    self.navigationItem.title = @"扫一扫";
+}
+
+- (void)rightBarButtonItenAction {
+    __weak typeof(self) weakSelf = self;
+
+    [obtain establishAuthorizationQRCodeObtainAlbumWithController:nil];
+    if (obtain.isPHAuthorization == YES) {
+        [self.scanView removeTimer];
+    }
+    [obtain setBlockWithQRCodeObtainAlbumDidCancelImagePickerController:^(SGQRCodeObtain *obtain) {
+        [weakSelf.view addSubview:weakSelf.scanView];
+    }];
+    [obtain setBlockWithQRCodeObtainAlbumResult:^(SGQRCodeObtain *obtain, NSString *result) {
+        if (result == nil) {
+            NSLog(@"暂未识别出二维码");
+        } else {
+            if ([result hasPrefix:@"http"]) {
+                ScanSuccessJumpVC *jumpVC = [[ScanSuccessJumpVC alloc] init];
+                jumpVC.comeFromVC = ScanSuccessJumpComeFromWB;
+                jumpVC.jump_URL = result;
+                [weakSelf.navigationController pushViewController:jumpVC animated:YES];
+                
+            } else {
+                ScanSuccessJumpVC *jumpVC = [[ScanSuccessJumpVC alloc] init];
+                jumpVC.comeFromVC = ScanSuccessJumpComeFromWB;
+                jumpVC.jump_bar_code = result;
+                [weakSelf.navigationController pushViewController:jumpVC animated:YES];
+            }
+        }
+    }];
+}
+
+- (SGQRCodeScanView *)scanView {
+    if (!_scanView) {
+        _scanView = [[SGQRCodeScanView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
+        // 静态库加载 bundle 里面的资源使用 SGQRCode.bundle/QRCodeScanLineGrid
+        // 动态库加载直接使用 QRCodeScanLineGrid
+        _scanView.scanImageName = @"SGQRCode.bundle/QRCodeScanLineGrid";
+        _scanView.scanAnimationStyle = ScanAnimationStyleGrid;
+        _scanView.cornerLocation = CornerLoactionOutside;
+        _scanView.cornerColor = [UIColor orangeColor];
+    }
+    return _scanView;
+}
+- (void)removeScanningView {
+    [self.scanView removeTimer];
+    [self.scanView removeFromSuperview];
+    self.scanView = nil;
+}
+
+- (UILabel *)promptLabel {
+    if (!_promptLabel) {
+        _promptLabel = [[UILabel alloc] init];
+        _promptLabel.backgroundColor = [UIColor clearColor];
+        CGFloat promptLabelX = 0;
+        CGFloat promptLabelY = 0.73 * self.view.frame.size.height;
+        CGFloat promptLabelW = self.view.frame.size.width;
+        CGFloat promptLabelH = 25;
+        _promptLabel.frame = CGRectMake(promptLabelX, promptLabelY, promptLabelW, promptLabelH);
+        _promptLabel.textAlignment = NSTextAlignmentCenter;
+        _promptLabel.font = [UIFont boldSystemFontOfSize:13.0];
+        _promptLabel.textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.6];
+        _promptLabel.text = @"将二维码/条码放入框内, 即可自动扫描";
+    }
+    return _promptLabel;
+}
+
+@end

+ 13 - 0
upAPP/main/AddNewFile/SGToolThird/WCQRCodeVC.h

@@ -0,0 +1,13 @@
+//
+//  WCQRCodeVC.h
+//  SGQRCodeExample
+//
+//  Created by kingsic on 17/3/20.
+//  Copyright © 2017年 kingsic. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface WCQRCodeVC : UIViewController
+
+@end

+ 225 - 0
upAPP/main/AddNewFile/SGToolThird/WCQRCodeVC.m

@@ -0,0 +1,225 @@
+//
+//  WCQRCodeVC.m
+//  SGQRCodeExample
+//
+//  Created by kingsic on 17/3/20.
+//  Copyright © 2017年 kingsic. All rights reserved.
+//
+
+#import "WCQRCodeVC.h"
+#import "SGQRCode.h"
+#import "ScanSuccessJumpVC.h"
+#import "MBProgressHUD+SGQRCode.h"
+
+@interface WCQRCodeVC () {
+    SGQRCodeObtain *obtain;
+}
+@property (nonatomic, strong) SGQRCodeScanView *scanView;
+@property (nonatomic, strong) UIButton *flashlightBtn;
+@property (nonatomic, strong) UILabel *promptLabel;
+@property (nonatomic, assign) BOOL isSelectedFlashlightBtn;
+@property (nonatomic, strong) UIView *bottomView;
+@property(nonatomic,strong)UILabel *titleLab;
+@end
+
+@implementation WCQRCodeVC
+
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+
+    /// 二维码开启方法
+    [obtain startRunningWithBefore:nil completion:nil];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+    [super viewDidAppear:animated];
+    [self.scanView addTimer];
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+    [super viewWillDisappear:animated];
+    [self.scanView removeTimer];
+    [self removeFlashlightBtn];
+    [obtain stopRunning];
+}
+
+- (void)dealloc {
+    NSLog(@"WCQRCodeVC - dealloc");
+    [self removeScanningView];
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do any additional setup after loading the view from its nib.
+    self.view.backgroundColor = [UIColor blackColor];
+    [self.navigationView removeAllLeftButton];
+    
+    _titleLab = [[UILabel alloc]init];
+    
+    _titleLab.frame = CGRectMake(0,0, kGScreenWidth-60, 30);
+    
+    _titleLab.text = @"扫码签到";
+    
+    [self.navigationView addTitleView:_titleLab];
+    
+    kWeakSelf(self);
+    [self.navigationView addLeftButtonWithImage:[UIImage imageNamed:@"btn_back"] clickCallBack:^(UIView *view) {
+        
+        [weakself.navigationController popViewControllerAnimated:YES];
+        
+    }];
+    obtain = [SGQRCodeObtain QRCodeObtain];
+    
+    [self setupQRCodeScan];
+    [self setupNavigationBar];
+    [self.view addSubview:self.scanView];
+    [self.view addSubview:self.promptLabel];
+    /// 为了 UI 效果
+    [self.view addSubview:self.bottomView];
+}
+
+- (void)setupQRCodeScan {
+    __weak typeof(self) weakSelf = self;
+    
+    SGQRCodeObtainConfigure *configure = [SGQRCodeObtainConfigure QRCodeObtainConfigure];
+    configure.sampleBufferDelegate = YES;
+    [obtain establishQRCodeObtainScanWithController:self configure:configure];
+    [obtain setBlockWithQRCodeObtainScanResult:^(SGQRCodeObtain *obtain, NSString *result) {
+        if (result) {
+            [MBProgressHUD SG_showMBProgressHUDWithModifyStyleMessage:@"正在处理..." toView:weakSelf.view];
+            [obtain stopRunning];
+            [obtain playSoundName:@"SGQRCode.bundle/sound.caf"];
+            
+            ScanSuccessJumpVC *jumpVC = [[ScanSuccessJumpVC alloc] init];
+            jumpVC.comeFromVC = ScanSuccessJumpComeFromWC;
+            jumpVC.jump_URL = result;
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [MBProgressHUD SG_hideHUDForView:weakSelf.view];
+                [weakSelf.navigationController pushViewController:jumpVC animated:YES];
+            });
+        }
+    }];
+    [obtain setBlockWithQRCodeObtainScanBrightness:^(SGQRCodeObtain *obtain, CGFloat brightness) {
+        if (brightness < - 1) {
+            [weakSelf.view addSubview:weakSelf.flashlightBtn];
+        } else {
+            if (weakSelf.isSelectedFlashlightBtn == NO) {
+                [weakSelf removeFlashlightBtn];
+            }
+        }
+    }];
+}
+
+- (void)setupNavigationBar {
+    self.navigationItem.title = @"扫一扫";
+    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"相册" style:(UIBarButtonItemStyleDone) target:self action:@selector(rightBarButtonItenAction)];
+}
+
+- (void)rightBarButtonItenAction {
+    __weak typeof(self) weakSelf = self;
+    
+    [obtain establishAuthorizationQRCodeObtainAlbumWithController:nil];
+    if (obtain.isPHAuthorization == YES) {
+        [self.scanView removeTimer];
+    }
+    [obtain setBlockWithQRCodeObtainAlbumDidCancelImagePickerController:^(SGQRCodeObtain *obtain) {
+        [weakSelf.view addSubview:weakSelf.scanView];
+    }];
+    [obtain setBlockWithQRCodeObtainAlbumResult:^(SGQRCodeObtain *obtain, NSString *result) {
+        [MBProgressHUD SG_showMBProgressHUDWithModifyStyleMessage:@"正在处理..." toView:weakSelf.view];
+        if (result == nil) {
+            NSLog(@"暂未识别出二维码");
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [MBProgressHUD SG_hideHUDForView:weakSelf.view];
+                [MBProgressHUD SG_showMBProgressHUDWithOnlyMessage:@"未发现二维码/条形码" delayTime:1.0];
+            });
+        } else {
+            ScanSuccessJumpVC *jumpVC = [[ScanSuccessJumpVC alloc] init];
+            jumpVC.comeFromVC = ScanSuccessJumpComeFromWC;
+            if ([result hasPrefix:@"http"]) {
+                jumpVC.jump_URL = result;
+            } else {
+                jumpVC.jump_bar_code = result;
+            }
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [MBProgressHUD SG_hideHUDForView:weakSelf.view];
+                [weakSelf.navigationController pushViewController:jumpVC animated:YES];
+            });
+        }
+    }];
+}
+
+- (SGQRCodeScanView *)scanView {
+    if (!_scanView) {
+        _scanView = [[SGQRCodeScanView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0.9 * self.view.frame.size.height)];
+    }
+    return _scanView;
+}
+- (void)removeScanningView {
+    [self.scanView removeTimer];
+    [self.scanView removeFromSuperview];
+    self.scanView = nil;
+}
+
+- (UILabel *)promptLabel {
+    if (!_promptLabel) {
+        _promptLabel = [[UILabel alloc] init];
+        _promptLabel.backgroundColor = [UIColor clearColor];
+        CGFloat promptLabelX = 0;
+        CGFloat promptLabelY = 0.73 * self.view.frame.size.height;
+        CGFloat promptLabelW = self.view.frame.size.width;
+        CGFloat promptLabelH = 25;
+        _promptLabel.frame = CGRectMake(promptLabelX, promptLabelY, promptLabelW, promptLabelH);
+        _promptLabel.textAlignment = NSTextAlignmentCenter;
+        _promptLabel.font = [UIFont boldSystemFontOfSize:13.0];
+        _promptLabel.textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.6];
+        _promptLabel.text = @"将二维码/条码放入框内, 即可自动扫描";
+    }
+    return _promptLabel;
+}
+
+- (UIView *)bottomView {
+    if (!_bottomView) {
+        _bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.scanView.frame), self.view.frame.size.width, self.view.frame.size.height - CGRectGetMaxY(self.scanView.frame))];
+        _bottomView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
+    }
+    return _bottomView;
+}
+
+#pragma mark - - - 闪光灯按钮
+- (UIButton *)flashlightBtn {
+    if (!_flashlightBtn) {
+        // 添加闪光灯按钮
+        _flashlightBtn = [UIButton buttonWithType:(UIButtonTypeCustom)];
+        CGFloat flashlightBtnW = 30;
+        CGFloat flashlightBtnH = 30;
+        CGFloat flashlightBtnX = 0.5 * (self.view.frame.size.width - flashlightBtnW);
+        CGFloat flashlightBtnY = 0.55 * self.view.frame.size.height;
+        _flashlightBtn.frame = CGRectMake(flashlightBtnX, flashlightBtnY, flashlightBtnW, flashlightBtnH);
+        [_flashlightBtn setBackgroundImage:[UIImage imageNamed:@"SGQRCodeFlashlightOpenImage"] forState:(UIControlStateNormal)];
+        [_flashlightBtn setBackgroundImage:[UIImage imageNamed:@"SGQRCodeFlashlightCloseImage"] forState:(UIControlStateSelected)];
+        [_flashlightBtn addTarget:self action:@selector(flashlightBtn_action:) forControlEvents:UIControlEventTouchUpInside];
+    }
+    return _flashlightBtn;
+}
+
+- (void)flashlightBtn_action:(UIButton *)button {
+    if (button.selected == NO) {
+        [obtain openFlashlight];
+        self.isSelectedFlashlightBtn = YES;
+        button.selected = YES;
+    } else {
+        [self removeFlashlightBtn];
+    }
+}
+
+- (void)removeFlashlightBtn {
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        [obtain closeFlashlight];
+        self.isSelectedFlashlightBtn = NO;
+        self.flashlightBtn.selected = NO;
+        [self.flashlightBtn removeFromSuperview];
+    });
+}
+
+@end

upAPP/main/AddNewFile/README.md → upAPP/main/AddNewFile/View/README.md


upAPP/main/AddNewFile/UIExPickerView.h → upAPP/main/AddNewFile/View/UIExPickerView.h


+ 0 - 0
upAPP/main/AddNewFile/UIExPickerView.m


Some files were not shown because too many files changed in this diff