Browse Source

no message

HF_Q 4 years ago
parent
commit
b8d4863f2a
90 changed files with 4566 additions and 1120 deletions
  1. 42 6
      smartRhino.xcodeproj/project.pbxproj
  2. BIN
      smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate
  3. 10 1
      smartRhino/AppConfig.h
  4. 18 2
      smartRhino/FwzAppConfig.h
  5. 2 2
      smartRhino/Project/Base/SubClass/Button/ShowBtn.m
  6. 8 8
      smartRhino/Project/Other/Third/Swipe/SwipeTableCell.m
  7. 14 14
      smartRhino/Project/VCModel/ChatMessage/Chat/EMChatViewController.m
  8. 44 68
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgListVC.m
  9. 1 1
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.h
  10. 12 3
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.m
  11. 140 18
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgTopSearchVC.m
  12. 2 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.h
  13. 234 13
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.m
  14. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListVC.h
  15. 2 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.h
  16. 313 43
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.m
  17. 4 4
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListVC.m
  18. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShareCusVC.h
  19. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShareSysVC.h
  20. 21 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowDesVC.h
  21. 319 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowDesVC.m
  22. 21 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowSysVC.h
  23. 327 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowSysVC.m
  24. 21 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowUserVC.h
  25. 293 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowUserVC.m
  26. 360 6
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/MailList.storyboard
  27. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/Department.h
  28. 3 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailChatModel.h
  29. 2 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailModel.h
  30. 2 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailSubModel.h
  31. 4 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.h
  32. 11 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.m
  33. 70 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.xib
  34. 2 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.h
  35. 12 2
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.m
  36. 71 2
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.xib
  37. 2 2
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/VC/TDGroupInfoListVC.m
  38. 26 0
      smartRhino/Project/VCModel/ChatMessage/Model/ChatSearchModel.h
  39. 13 0
      smartRhino/Project/VCModel/ChatMessage/Model/ChatSearchModel.m
  40. 3 0
      smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.h
  41. 22 0
      smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.m
  42. 17 4
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/MyTDTopic.storyboard
  43. 6 4
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicCreateVC.m
  44. 1 1
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.h
  45. 130 42
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.m
  46. 22 8
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupManageVC.m
  47. 1 2
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupUserVC.m
  48. 1 1
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicSearchVC.m
  49. 9 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicUserSearchVC.m
  50. 2 2
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicViewController.m
  51. 2 1
      smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard
  52. 27 1
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m
  53. 1 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.h
  54. 8 0
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.m
  55. 95 1
      smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.xib
  56. 20 12
      smartRhino/Project/VCModel/Home/VC/View/HomeDetail/TextInputView.m
  57. 2 2
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteViewCell.h
  58. 5 1
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.h
  59. 140 39
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.m
  60. 6 3
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m
  61. 4 4
      smartRhino/Project/VCModel/My_Center/Controller/EditPhoneOrEmailVC.m
  62. 213 4
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookSearchVC.m
  63. 156 36
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m
  64. 52 60
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/SelectSaveVC.m
  65. 15 4
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/NoteBook.storyboard
  66. 4 0
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.h
  67. 146 2
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.xib
  68. 3 1
      smartRhino/Project/VCModel/Source/Controller/GroupSquareVC.m
  69. 17 0
      smartRhino/Project/VCModel/Source/Controller/ReplayLikeSearchVC.h
  70. 115 0
      smartRhino/Project/VCModel/Source/Controller/ReplayLikeSearchVC.m
  71. 60 13
      smartRhino/Project/VCModel/Source/Controller/ReplayMeLikeVC.m
  72. 6 6
      smartRhino/Project/VCModel/Source/Controller/ReplayMeSearchVC.h
  73. 77 524
      smartRhino/Project/VCModel/Source/Controller/ReplayMeSearchVC.m
  74. 69 15
      smartRhino/Project/VCModel/Source/Controller/ReplayMeVC.m
  75. 4 4
      smartRhino/Project/VCModel/Source/Controller/SourceGroupSearchVC.m
  76. 5 5
      smartRhino/Project/VCModel/Source/Controller/SourceGroupVC.m
  77. 14 8
      smartRhino/Project/VCModel/Source/Controller/SourceHomeVC.m
  78. 35 0
      smartRhino/Project/VCModel/Source/Model/ReplyModel.h
  79. 13 0
      smartRhino/Project/VCModel/Source/Model/ReplyModel.m
  80. 44 0
      smartRhino/Project/VCModel/Source/Source.storyboard
  81. 7 3
      smartRhino/Project/VCModel/Source/View/ReplayMeCell.h
  82. 116 12
      smartRhino/Project/VCModel/Source/View/ReplayMeCell.m
  83. 122 11
      smartRhino/Project/VCModel/Source/View/ReplayMeCell.xib
  84. 74 85
      smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.m
  85. 5 0
      smartRhino/Project/VCModel/WorkFlow/NewMeetingFecordDetailsController.m
  86. 1 0
      smartRhino/Project/VCModel/WorkFlow/SelectModel.h
  87. 1 0
      smartRhino/Project/VCModel/WorkFlow/SelectModel.m
  88. 1 1
      smartRhino/Project/VCModel/common/Controller/CommomSearchVC.m
  89. 235 0
      smartRhino/Project/VCModel/common/Controller/CommonNoteVC.m
  90. 2 2
      smartRhino/Project/VCModel/common/View/CommonListCell.xib

+ 42 - 6
smartRhino.xcodeproj/project.pbxproj

@@ -731,6 +731,9 @@
 		EB03C802249375A400B2EF18 /* BookSelectMusicCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB03C800249375A400B2EF18 /* BookSelectMusicCell.xib */; };
 		EB03C80524937C2000B2EF18 /* BookSelectMusicModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB03C80424937C2000B2EF18 /* BookSelectMusicModel.m */; };
 		EB05E109240CEDAF00D9E276 /* MyPcUpdata.m in Sources */ = {isa = PBXBuildFile; fileRef = EB05E108240CEDAF00D9E276 /* MyPcUpdata.m */; };
+		EB095CDD24D13BBA00493536 /* ReplyModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB095CDC24D13BBA00493536 /* ReplyModel.m */; };
+		EB095CE024D1701600493536 /* ReplayMeSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB095CDF24D1701600493536 /* ReplayMeSearchVC.m */; };
+		EB095CE324D175DA00493536 /* ReplayLikeSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB095CE224D175DA00493536 /* ReplayLikeSearchVC.m */; };
 		EB09BF2D23B1A32B001CCBC7 /* WaitWorkLabelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB09BF2C23B1A32B001CCBC7 /* WaitWorkLabelModel.m */; };
 		EB09BF3023B1AA19001CCBC7 /* WaitWorkWarnAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = EB09BF2F23B1AA19001CCBC7 /* WaitWorkWarnAlert.m */; };
 		EB0A7391247B8B8B00DB75CB /* BookBillboardVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A7390247B8B8B00DB75CB /* BookBillboardVC.m */; };
@@ -1208,6 +1211,9 @@
 		EBA0FA55249CC22C0022AFA3 /* SSScrollViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA0FA54249CC22C0022AFA3 /* SSScrollViewController.m */; };
 		EBA0FA5A249CC34C0022AFA3 /* UIGestureRecognizer+SSUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA0FA57249CC34B0022AFA3 /* UIGestureRecognizer+SSUtil.m */; };
 		EBA0FA5B249CC34C0022AFA3 /* UIView+LYLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA0FA59249CC34C0022AFA3 /* UIView+LYLayout.m */; };
+		EBA25D5024D7FA3800CBEBF2 /* ShowSysVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA25D4E24D7FA3800CBEBF2 /* ShowSysVC.m */; };
+		EBA25D5324D81BC200CBEBF2 /* ShowUserVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA25D5124D81BC200CBEBF2 /* ShowUserVC.m */; };
+		EBA25D5624D8255800CBEBF2 /* ShowDesVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBA25D5524D8255700CBEBF2 /* ShowDesVC.m */; };
 		EBAA1F242463A4F200272F13 /* SourceGroupVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAA1F232463A4F200272F13 /* SourceGroupVC.m */; };
 		EBAACA902406475100F44B67 /* ShowBtn.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAACA8F2406475100F44B67 /* ShowBtn.m */; };
 		EBAACA932406730C00F44B67 /* MyFavoriteSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAACA922406730C00F44B67 /* MyFavoriteSearchVC.m */; };
@@ -1342,6 +1348,7 @@
 		EBF2FB0E24A3457A0028EA09 /* HomeWeiCousreVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF2FB0C24A3457A0028EA09 /* HomeWeiCousreVC.m */; };
 		EBF2FB1124A3498C0028EA09 /* HomeMingShiVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF2FB0F24A3498C0028EA09 /* HomeMingShiVC.m */; };
 		EBF2FB1424A34DD10028EA09 /* HomeUserVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF2FB1324A34DD10028EA09 /* HomeUserVC.m */; };
+		EBF48A3124CFCD0300A91850 /* ChatSearchModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF48A3024CFCD0300A91850 /* ChatSearchModel.m */; };
 		EBF64A76241C73510074FD55 /* WorkFlowFecordSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF64A75241C73510074FD55 /* WorkFlowFecordSearchVC.m */; };
 		EBF64A79241C810A0074FD55 /* FecordSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF64A78241C810A0074FD55 /* FecordSearchVC.m */; };
 		EBF71753247229FB00ED1838 /* PayBookAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBF71750247229FA00ED1838 /* PayBookAlert.xib */; };
@@ -1363,7 +1370,6 @@
 		EBFA5EE72491D8FA00AD38B0 /* ReplayMeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFA5EE52491D8FA00AD38B0 /* ReplayMeCell.m */; };
 		EBFA5EE82491D8FB00AD38B0 /* ReplayMeCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFA5EE62491D8FA00AD38B0 /* ReplayMeCell.xib */; };
 		EBFA5EEB2491F9B100AD38B0 /* ReplayMeLikeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFA5EEA2491F9B100AD38B0 /* ReplayMeLikeVC.m */; };
-		EBFA5EEE2491FCC400AD38B0 /* ReplayMeSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFA5EEC2491FCC400AD38B0 /* ReplayMeSearchVC.m */; };
 		EBFA5EF4246E374A00915D5F /* HomeMusicCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFA5EF2246E374A00915D5F /* HomeMusicCell.m */; };
 		EBFA5EF5246E374A00915D5F /* HomeMusicCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFA5EF3246E374A00915D5F /* HomeMusicCell.xib */; };
 		EBFC605A23FE52DE00A6874B /* HomeCommentView.m in Sources */ = {isa = PBXBuildFile; fileRef = EBFC605923FE52DE00A6874B /* HomeCommentView.m */; };
@@ -2670,6 +2676,12 @@
 		EB03C80424937C2000B2EF18 /* BookSelectMusicModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookSelectMusicModel.m; sourceTree = "<group>"; };
 		EB05E107240CEDAF00D9E276 /* MyPcUpdata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyPcUpdata.h; sourceTree = "<group>"; };
 		EB05E108240CEDAF00D9E276 /* MyPcUpdata.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyPcUpdata.m; sourceTree = "<group>"; };
+		EB095CDB24D13BBA00493536 /* ReplyModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReplyModel.h; sourceTree = "<group>"; };
+		EB095CDC24D13BBA00493536 /* ReplyModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReplyModel.m; sourceTree = "<group>"; };
+		EB095CDE24D1701600493536 /* ReplayMeSearchVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayMeSearchVC.h; sourceTree = "<group>"; };
+		EB095CDF24D1701600493536 /* ReplayMeSearchVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReplayMeSearchVC.m; sourceTree = "<group>"; };
+		EB095CE124D175DA00493536 /* ReplayLikeSearchVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayLikeSearchVC.h; sourceTree = "<group>"; };
+		EB095CE224D175DA00493536 /* ReplayLikeSearchVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReplayLikeSearchVC.m; sourceTree = "<group>"; };
 		EB09BF2B23B1A32B001CCBC7 /* WaitWorkLabelModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WaitWorkLabelModel.h; sourceTree = "<group>"; };
 		EB09BF2C23B1A32B001CCBC7 /* WaitWorkLabelModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WaitWorkLabelModel.m; sourceTree = "<group>"; };
 		EB09BF2E23B1AA19001CCBC7 /* WaitWorkWarnAlert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WaitWorkWarnAlert.h; sourceTree = "<group>"; };
@@ -3437,6 +3449,12 @@
 		EBA0FA57249CC34B0022AFA3 /* UIGestureRecognizer+SSUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIGestureRecognizer+SSUtil.m"; sourceTree = "<group>"; };
 		EBA0FA58249CC34B0022AFA3 /* UIGestureRecognizer+SSUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIGestureRecognizer+SSUtil.h"; sourceTree = "<group>"; };
 		EBA0FA59249CC34C0022AFA3 /* UIView+LYLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+LYLayout.m"; sourceTree = "<group>"; };
+		EBA25D4E24D7FA3800CBEBF2 /* ShowSysVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShowSysVC.m; sourceTree = "<group>"; };
+		EBA25D4F24D7FA3800CBEBF2 /* ShowSysVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowSysVC.h; sourceTree = "<group>"; };
+		EBA25D5124D81BC200CBEBF2 /* ShowUserVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShowUserVC.m; sourceTree = "<group>"; };
+		EBA25D5224D81BC200CBEBF2 /* ShowUserVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowUserVC.h; sourceTree = "<group>"; };
+		EBA25D5424D8255700CBEBF2 /* ShowDesVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShowDesVC.h; sourceTree = "<group>"; };
+		EBA25D5524D8255700CBEBF2 /* ShowDesVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShowDesVC.m; sourceTree = "<group>"; };
 		EBA9F8E9239287180013BDDA /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; };
 		EBA9F8EB239287220013BDDA /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
 		EBA9F8ED2392872F0013BDDA /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
@@ -3700,6 +3718,8 @@
 		EBF2FB1024A3498C0028EA09 /* HomeMingShiVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeMingShiVC.h; sourceTree = "<group>"; };
 		EBF2FB1224A34DD10028EA09 /* HomeUserVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeUserVC.h; sourceTree = "<group>"; };
 		EBF2FB1324A34DD10028EA09 /* HomeUserVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeUserVC.m; sourceTree = "<group>"; };
+		EBF48A2F24CFCD0300A91850 /* ChatSearchModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatSearchModel.h; sourceTree = "<group>"; };
+		EBF48A3024CFCD0300A91850 /* ChatSearchModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatSearchModel.m; sourceTree = "<group>"; };
 		EBF64A74241C73510074FD55 /* WorkFlowFecordSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WorkFlowFecordSearchVC.h; sourceTree = "<group>"; };
 		EBF64A75241C73510074FD55 /* WorkFlowFecordSearchVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WorkFlowFecordSearchVC.m; sourceTree = "<group>"; };
 		EBF64A77241C810A0074FD55 /* FecordSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FecordSearchVC.h; sourceTree = "<group>"; };
@@ -3735,8 +3755,6 @@
 		EBFA5EE62491D8FA00AD38B0 /* ReplayMeCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplayMeCell.xib; sourceTree = "<group>"; };
 		EBFA5EE92491F9B100AD38B0 /* ReplayMeLikeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReplayMeLikeVC.h; sourceTree = "<group>"; };
 		EBFA5EEA2491F9B100AD38B0 /* ReplayMeLikeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReplayMeLikeVC.m; sourceTree = "<group>"; };
-		EBFA5EEC2491FCC400AD38B0 /* ReplayMeSearchVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReplayMeSearchVC.m; sourceTree = "<group>"; };
-		EBFA5EED2491FCC400AD38B0 /* ReplayMeSearchVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayMeSearchVC.h; sourceTree = "<group>"; };
 		EBFA5EF1246E374A00915D5F /* HomeMusicCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMusicCell.h; sourceTree = "<group>"; };
 		EBFA5EF2246E374A00915D5F /* HomeMusicCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMusicCell.m; sourceTree = "<group>"; };
 		EBFA5EF3246E374A00915D5F /* HomeMusicCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeMusicCell.xib; sourceTree = "<group>"; };
@@ -4437,6 +4455,12 @@
 				EB3DCA4624551B0E000A0189 /* ShareListVC.m */,
 				EB3DCA4D24555299000A0189 /* ShareSysVC.h */,
 				EB3DCA4E24555299000A0189 /* ShareSysVC.m */,
+				EBA25D4F24D7FA3800CBEBF2 /* ShowSysVC.h */,
+				EBA25D4E24D7FA3800CBEBF2 /* ShowSysVC.m */,
+				EBA25D5224D81BC200CBEBF2 /* ShowUserVC.h */,
+				EBA25D5124D81BC200CBEBF2 /* ShowUserVC.m */,
+				EBA25D5424D8255700CBEBF2 /* ShowDesVC.h */,
+				EBA25D5524D8255700CBEBF2 /* ShowDesVC.m */,
 				EBCCD86324C2D7CC000D6689 /* MailGroupVC.h */,
 				EBCCD86224C2D7CC000D6689 /* MailGroupVC.m */,
 				EBCCD86B24C2DC57000D6689 /* MailChatVC.h */,
@@ -4829,6 +4853,8 @@
 				EBE36C4323A791A9002BE674 /* ChatMsgWorkModel.m */,
 				EB820AD323BC48CF00B96C6C /* ChatMoveModel.h */,
 				EB820AD423BC48CF00B96C6C /* ChatMoveModel.m */,
+				EBF48A2F24CFCD0300A91850 /* ChatSearchModel.h */,
+				EBF48A3024CFCD0300A91850 /* ChatSearchModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -7733,12 +7759,14 @@
 				EB6D86D324977EFA001D3B6C /* GroupSynopsisVC.m */,
 				EBFA5EE92491F9B100AD38B0 /* ReplayMeLikeVC.h */,
 				EBFA5EEA2491F9B100AD38B0 /* ReplayMeLikeVC.m */,
-				EBFA5EED2491FCC400AD38B0 /* ReplayMeSearchVC.h */,
-				EBFA5EEC2491FCC400AD38B0 /* ReplayMeSearchVC.m */,
 				EBFA5EE12491D6F300AD38B0 /* ReplayMeVC.h */,
 				EBFA5EE22491D6F300AD38B0 /* ReplayMeVC.m */,
 				EB4310B124CE7D1E00481097 /* SourceGroupSearchVC.h */,
 				EB4310B224CE7D1E00481097 /* SourceGroupSearchVC.m */,
+				EB095CDE24D1701600493536 /* ReplayMeSearchVC.h */,
+				EB095CDF24D1701600493536 /* ReplayMeSearchVC.m */,
+				EB095CE124D175DA00493536 /* ReplayLikeSearchVC.h */,
+				EB095CE224D175DA00493536 /* ReplayLikeSearchVC.m */,
 				EBAA1F222463A4F200272F13 /* SourceGroupVC.h */,
 				EBAA1F232463A4F200272F13 /* SourceGroupVC.m */,
 				EB7DD22A2462620100C6048F /* SourceHomeVC.h */,
@@ -7754,6 +7782,8 @@
 				EB7DD23F2462BC8F00C6048F /* GroupSquareModel.m */,
 				EBCC208F24B6EC7F001BDCDC /* GroupSquareSubModel.h */,
 				EBCC209024B6EC7F001BDCDC /* GroupSquareSubModel.m */,
+				EB095CDB24D13BBA00493536 /* ReplyModel.h */,
+				EB095CDC24D13BBA00493536 /* ReplyModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -9252,6 +9282,7 @@
 				EBDE08CD24583D6B005D426C /* CommonToolVC.m in Sources */,
 				C7037FED236FC1E6008EA3E4 /* SendInfoGroupModel.m in Sources */,
 				C625AAA4236FEF130010E967 /* ZLCellFakeView.m in Sources */,
+				EBA25D5024D7FA3800CBEBF2 /* ShowSysVC.m in Sources */,
 				C59D0C0623825DE1007D0760 /* YYFrameImage.m in Sources */,
 				EB0DBF0A23AE1EF200E977ED /* NewWaitWorkVC.m in Sources */,
 				324D961923A233A300C7D9E8 /* MyFavoriteVC.m in Sources */,
@@ -9342,6 +9373,7 @@
 				EBD537B12490A709000EDF2B /* BookTeacherListVC.m in Sources */,
 				C625AA91236FCDEE0010E967 /* ChatMsgSearchResultVC.m in Sources */,
 				C69A8DE02374050D0098FA26 /* ChatMsgDetailChatVC.m in Sources */,
+				EBF48A3124CFCD0300A91850 /* ChatSearchModel.m in Sources */,
 				C72F38FD236DADDC00933828 /* BlacklistVC.m in Sources */,
 				C6F2E1E2236D126B009E6903 /* UIViewController+NavBar.m in Sources */,
 				C72F3906236DADDC00933828 /* SettingCell.m in Sources */,
@@ -9439,6 +9471,7 @@
 				EB5F45092475093C008D316D /* BookChanelCell.m in Sources */,
 				C62270A4236C09FC00E2E3BF /* WQNavigationBar.m in Sources */,
 				EBF64A79241C810A0074FD55 /* FecordSearchVC.m in Sources */,
+				EBA25D5324D81BC200CBEBF2 /* ShowUserVC.m in Sources */,
 				C59D0C2023825DE1007D0760 /* UIPasteboard+YYText.m in Sources */,
 				EB8E2D07239666A900CDFBDA /* PSTGridLayoutSection.m in Sources */,
 				EBEC966C23D69CC5001115FE /* MyFavoriteCell.m in Sources */,
@@ -9595,6 +9628,7 @@
 				EB8E2DA7239666A900CDFBDA /* EMAtGroupMembersViewController.m in Sources */,
 				EB92E89223B0CC77008E94CF /* WaitTimePicker.m in Sources */,
 				32AB488623A5036E00A1E9F7 /* MyFindModel.m in Sources */,
+				EB095CE324D175DA00493536 /* ReplayLikeSearchVC.m in Sources */,
 				EB92E87523B061E8008E94CF /* WaitWorkLabelVC.m in Sources */,
 				C59D0C4723825DE1007D0760 /* YYDispatchQueuePool.m in Sources */,
 				EB1810942488A5DF009EDEF5 /* BookTextBookModel.m in Sources */,
@@ -9707,6 +9741,7 @@
 				C7D6BC89235DA1CE00770E7C /* MyPaperViewController.m in Sources */,
 				C7D6BBAA235DA18A00770E7C /* TDTextView.m in Sources */,
 				C772299B23B5A7A700007B21 /* MyMeetingListModel.m in Sources */,
+				EBA25D5624D8255800CBEBF2 /* ShowDesVC.m in Sources */,
 				EBBEE55E249859E600B135E4 /* UICountingLabel.m in Sources */,
 				EB3EAFD423A10CE600C38AB4 /* WaitWorkCell.m in Sources */,
 				EBB6886D23C9C0C300E24DD9 /* MMRichContentUtil.m in Sources */,
@@ -9978,6 +10013,7 @@
 				EBF2FB0524A327330028EA09 /* HomeDayGoodBookVC.m in Sources */,
 				3274780323A87E97003B5F49 /* FileLookupVC.m in Sources */,
 				C7938E562364446B00746248 /* ClickOKCell.m in Sources */,
+				EB095CDD24D13BBA00493536 /* ReplyModel.m in Sources */,
 				C59D0C0023825DE1007D0760 /* YYMemoryCache.m in Sources */,
 				C7D6BBB0235DA18A00770E7C /* BaseViewController.m in Sources */,
 				EBCE636D24AF2785004C9B3B /* BookChanelleftModel.m in Sources */,
@@ -9998,7 +10034,6 @@
 				EBF2D54B23C2E76600EC35C4 /* MHTopicCell.m in Sources */,
 				C6F2E1B1236D1214009E6903 /* ToolFoundation.m in Sources */,
 				EB952681248A0BA6003EFCCE /* DCPageBottomView.m in Sources */,
-				EBFA5EEE2491FCC400AD38B0 /* ReplayMeSearchVC.m in Sources */,
 				C7D6BC88235DA1CE00770E7C /* NoticeTableViewCell.m in Sources */,
 				C7D6BC9B235DA1CE00770E7C /* PersonalCertificationTableViewCell.m in Sources */,
 				EB674D07242E126C003FEC6D /* MoveSearchVC.m in Sources */,
@@ -10065,6 +10100,7 @@
 				3220A0C223CC7F34005A347C /* shoujianrenResultView.m in Sources */,
 				EB92E88D23B09AD5008E94CF /* NSDate+GFCalendar.m in Sources */,
 				3264781F23BDB47E00E0DC2D /* ChatMsgNoticeDetailVC.m in Sources */,
+				EB095CE024D1701600493536 /* ReplayMeSearchVC.m in Sources */,
 				C69A8E06237513330098FA26 /* GroupManagementVC.m in Sources */,
 				327E376123A9C90900842F47 /* CreateNoteBookVC.m in Sources */,
 				EB03C801249375A400B2EF18 /* BookSelectMusicCell.m in Sources */,

BIN
smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate


+ 10 - 1
smartRhino/AppConfig.h

@@ -244,6 +244,8 @@ return;\
 #define DRAWERPUSHVC             @"DRAWERPUSHVC"
 #define VCINDEX                  @"VCINDEX"
 
+#define  API_APP_Often_Contact_Search       @"/api/app/often-contact/search/"
+
 #define  AddressBookGroup_Search_Post       @"/api/app/user/search"
 /// 查找好友
 #define  API_APP_User_Find_friends          @"/api/app/user/find-friends/"
@@ -290,7 +292,7 @@ return;\
 
 #define AddressBookUser_Detail_Get @"/api/app/user/detail/"
 /// 获取聊天工作组列表
-#define Often_Contact_List @"/api/app/often-contact/list"
+#define Often_Contact_List @"/api/app/often-contact/list/"
 /// 创建工作组
 #define AddIndividual_Group_Post @"/api/app/individual-group/add"
 /// 删除工作组
@@ -339,6 +341,10 @@ return;\
 /// 是否聊天置顶
 #define Group_Chat_User_is_top @"/api/app/group-chat-user/up-is-top"
 
+/// 回复列表
+#define API_APP_Reply_List @"/api/app/reply/list"
+
+#define API_APP_Reply_Praise @"/api/app/reply/praise"
 
 #pragma mark -  Article
 ///列表/通知
@@ -373,6 +379,9 @@ return;\
 #pragma mark -  小组
 ///查看小组列表
 #define APP_Group_Find     @"/api/app/group/find"
+
+#define APP_Group_Lately_Group     @"/api/app/group/lately-group"
+
 ///文件夹类型 1 通知 2话题 3 收藏 4笔记 5 普通站内信 6匿名站内信 7小组 10聊天
 #define APP_Middle_Add_Folder    @"/api/app/middle/add-folder"
 ///新建小组

+ 18 - 2
smartRhino/FwzAppConfig.h

@@ -116,6 +116,18 @@ typedef enum MailListType {
     
     MailListOtherType = 4,
 }MailListType;
+
+typedef enum ChatSearchType {
+    /// 0 用户 1单聊 2群聊 3文件夹
+    ChatSearchUserType = 0,
+
+    ChatSearchOnlyType = 1,
+
+    ChatSearchGroupType = 2,
+
+    ChatSearchFileType = 3,
+
+}ChatSearchType;
 #pragma mark - 我的
 
 
@@ -300,7 +312,7 @@ typedef enum CollectModelType{
     CollectModel_NoteFile = 13,
     CollectModel_work = 14,
     CollectModel_NoSignMail = 18,
-    CollectModel_NewTopic = 21,
+    CollectModel_NewTopic = -4,
     CollectModel_CollectFileAll = 120,
     CollectModel_NoteFileAll = 130,
     CollectModel_Aritle = 100,
@@ -400,7 +412,11 @@ typedef enum HistorySearchType {
     ///
     HistorySearchType_SourceGroup = 14,
     ///
-    HistorySearchType_TopicGroupManager = 14,
+    HistorySearchType_TopicGroupManager = 15,
+    ///
+    HistorySearchType_Reply = 16,
+    ///
+    HistorySearchType_LikeList = 17,
 }HistorySearchType;
 
 /// 书城

+ 2 - 2
smartRhino/Project/Base/SubClass/Button/ShowBtn.m

@@ -39,7 +39,7 @@
 }
 - (void)dismiss
 {
-    NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] initWithString:self.title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:UIColorHex(0x000000)}];
+    NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] initWithString:self.title.length == 0 ? @" " : self.title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:UIColorHex(0x000000)}];
     NSTextAttachment *attach = [[NSTextAttachment alloc] init];
     attach.image = [UIImage imageNamed:@"chatmsg_notice_showAll_icon"];
     NSAttributedString *collegeStr = [NSAttributedString attributedStringWithAttachment:attach];
@@ -49,7 +49,7 @@
 - (void)setcomTitle:(NSString *)title
 {
     self.title = [NSString stringWithFormat:@"%@ ",title];
-    NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] initWithString:self.title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:UIColorHex(0x666666)}];
+    NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] initWithString:self.title.length == 0 ? @" " : self.title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:UIColorHex(0x666666)}];
     NSTextAttachment *attach = [[NSTextAttachment alloc] init];
     attach.image = [UIImage imageNamed:@"chatmsg_notice_showAll_icon"];
     NSAttributedString *collegeStr = [NSAttributedString attributedStringWithAttachment:attach];

+ 8 - 8
smartRhino/Project/Other/Third/Swipe/SwipeTableCell.m

@@ -131,14 +131,14 @@
         NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
         if (indexPath != nil || point.y < 0) return view;
         
-        // 若点击区域在tableView上 而不在cell上,滑动时也会自动隐藏swipeView
-        for(SwipeTableCell *cell in self.tableView.visibleCells) // 滑动cell时,自动隐藏swipeView
-        {
-            if(cell.hideSwipeViewWhenScrollTableView && !cell.swipeOverlayView.hidden)
-            {
-                [cell hiddenSwipeAnimationAtCell:YES];
-            }
-        }
+// 若点击区域在tableView上 而不在cell上,滑动时也会自动隐藏swipeView
+//        for(SwipeTableCell *cell in self.tableView.visibleCells) // 滑动cell时,自动隐藏swipeView
+//        {
+//            if(cell.hideSwipeViewWhenScrollTableView && !cell.swipeOverlayView.hidden)
+//            {
+//                [cell hiddenSwipeAnimationAtCell:YES];
+//            }
+//        }
     }
     return view;
 }

+ 14 - 14
smartRhino/Project/VCModel/ChatMessage/Chat/EMChatViewController.m

@@ -806,7 +806,7 @@
                 [weakSelf _sendTextAction:@"文件" ext:@{@"app":@(YES),
                                                         @"app_type":@(CollectModel_file),
                                                         @"app_title":fileName,
-                                                        @"app_content":@"",
+                                                        @"app_content":@"来自-文件夹",
                                                         @"app_sourceUserId":@([AppUserModel sharedAppUserModel].Id),
                                                         @"app_id":@([dict[@"FileId"] integerValue]),
                                                         @"app_min_url":dict[@"MinAbsolutePath"],
@@ -2548,7 +2548,7 @@
                                                         @"app_type":@(CollectModel_Aritle),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-文章",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2561,7 +2561,7 @@
                                                         @"app_type":@(CollectModel_Notice),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-通知",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2574,7 +2574,7 @@
                                                         @"app_type":@(CollectModel_NoteBook),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-笔记",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2587,7 +2587,7 @@
                                                         @"app_type":@(CollectModel_NewTopic),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-话题",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2600,7 +2600,7 @@
                                                         @"app_type":@(CollectModel_Toipc),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-话题",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2613,7 +2613,7 @@
                                                         @"app_type":@(CollectModel_InterMail),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-站内信",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2626,7 +2626,7 @@
                                                         @"app_type":@(CollectModel_CollectFile),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-收藏文件夹",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2639,7 +2639,7 @@
                                                         @"app_type":@(CollectModel_NoteFile),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-笔记文件夹",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2652,7 +2652,7 @@
                                                         @"app_type":@(CollectModel_meetMian),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-会议纪要",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2665,7 +2665,7 @@
                                                         @"app_type":@(CollectModel_Image),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-审批",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2678,7 +2678,7 @@
                                                         @"app_type":@(CollectModel_file),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":self.sendModel.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@",self.sendModel.Author] : @"",
+                                                        @"app_content":@"来自-文件",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":self.sendModel.MinUrl,
                                                         @"app_url":self.sendModel.Url,
@@ -2691,7 +2691,7 @@
                                                         @"app_type":@(CollectModel_work),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":[NSString stringWithFormat:@"来自-%@",self.sendModel.Author],
+                                                        @"app_content":@"来自-审批",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":@"",
                                                         @"app_url":@""
@@ -2704,7 +2704,7 @@
                                                         @"app_type":@(CollectModel_meetDetail),
                                                         @"app_title":self.sendModel.Title,
                                                         @"app_id":@(self.sendModel.SoureId),
-                                                        @"app_content":[NSString stringWithFormat:@"来自-%@",self.sendModel.Author],
+                                                        @"app_content":@"来自-会议",
                                                         @"app_sourceUserId":@(self.sendModel.SourceUserId),
                                                         @"app_min_url":@"",
                                                         @"app_url":@""

+ 44 - 68
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgListVC.m

@@ -74,6 +74,7 @@ static int kConversation_AtAll = 2;
 @property (strong,nonatomic) NSMutableArray *chatListIMArray;
 @property (strong,nonatomic) NSMutableArray *selectArray;
 @property (assign,nonatomic) BOOL            isAllselect;
+@property (copy,nonatomic) NSString         *ConfirmationDate;
 @end
 
 @implementation ChatMsgListVC
@@ -353,37 +354,21 @@ static int kConversation_AtAll = 2;
     cmodel.Name = @"回复我的";
     cmodel.AvatarUrl = @"chat_replay_me";
     [self.chatListIMArray addObject:cmodel];
-//    @property (copy,nonatomic) NSString *AvatarUrl;
-//    @property (copy,nonatomic) NSString *Name;
-//    @property (copy,nonatomic) NSString *Phone;
-//    @property (copy,nonatomic) NSString *FolderName;
-//    @property (copy,nonatomic) NSAttributedString *ChatText;
-//    @property (copy,nonatomic) NSString *ChatTime;
-//    @property (copy,nonatomic) NSString *LastModifiedDate;
-//    @property (assign,nonatomic) NSInteger redNum;
-//    @property (assign,nonatomic) NSInteger UserId;
-//    @property (assign,nonatomic) NSInteger ToUserId;
-//    @property (assign,nonatomic) NSInteger ImId;
-//    @property (assign,nonatomic) NSInteger Id;
-//    @property (assign,nonatomic) ChatType  ChatType;
-//    @property (assign,nonatomic) MessageType  MsgType;
-//    @property (assign,nonatomic) BOOL IsTop;
-//    @property (assign,nonatomic) BOOL isSelected;
-//    @property (assign,nonatomic) BOOL IsDisturb;
-//    @property (assign,nonatomic) NSInteger AttributeValue;
-    
+
     WS(weakSelf);
     SHOWLOADING
-    [[HttpManager sharedHttpManager] POSTUrl:Host(Often_Contact_List) parameters:@{@"IndividualGroupId":@(0)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    NSString * url = [NSString stringWithFormat:@"%@0",Host(Often_Contact_List)];
+    [[HttpManager sharedHttpManager] GETUrl:url parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
         REMOVESHOW
         [weakSelf.tableView.mj_header endRefreshing];
-        if ([responseObject isKindOfClass:[NSArray class]]) {
-            for (NSDictionary * dict in responseObject) {
+        if ([responseObject[@"OftenContactInfos"] isKindOfClass:[NSArray class]]) {
+            for (NSDictionary * dict in responseObject[@"OftenContactInfos"]) {
                 ChatMsgListImModel * model = [ChatMsgListImModel modelWithDictionary:dict];
                 [weakSelf.chatListIMArray addObject:model];
             }
         }
+        weakSelf.ConfirmationDate = responseObject[@"ConfirmationDate"];
         [weakSelf _loadAllConversationsFromDBWithIsShowHud:NO];
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW
@@ -632,33 +617,49 @@ static int kConversation_AtAll = 2;
 - (void)reCreateTable
 {
     [self.chatListIMArray removeAllObjects];
+    ChatMsgListImModel * amodel = [[ChatMsgListImModel alloc] init];
+    amodel.AttributeValue = 3;
+    amodel.Name = @"通讯录";
+    amodel.AvatarUrl = @"chat_phone_list";
+    [self.chatListIMArray addObject:amodel];
+    ChatMsgListImModel * bmodel = [[ChatMsgListImModel alloc] init];
+    bmodel.AttributeValue = 4;
+    bmodel.Name = @"验证信息";
+    bmodel.AvatarUrl = @"chat_yan_message";
+    [self.chatListIMArray addObject:bmodel];
+    ChatMsgListImModel * cmodel = [[ChatMsgListImModel alloc] init];
+    cmodel.AttributeValue = 5;
+    cmodel.Name = @"回复我的";
+    cmodel.AvatarUrl = @"chat_replay_me";
+    [self.chatListIMArray addObject:cmodel];
     WS(weakSelf);
     [[HttpManager sharedHttpManager] POSTUrl:Host(Often_Contact_List) parameters:@{@"IndividualGroupId":@(0)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
         [weakSelf.tableView.mj_header endRefreshing];
-        if ([responseObject isKindOfClass:[NSArray class]]) {
-            for (NSDictionary * dict in responseObject) {
+        if ([responseObject[@"OftenContactInfos"] isKindOfClass:[NSArray class]]) {
+            for (NSDictionary * dict in responseObject[@"OftenContactInfos"]) {
                 ChatMsgListImModel * model = [ChatMsgListImModel modelWithDictionary:dict];
                 [weakSelf.chatListIMArray addObject:model];
             }
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [weakSelf.tableView removeFromSuperview];
-                weakSelf.tableView = nil;
-                [weakSelf.view addSubview:weakSelf.tableView];
-                weakSelf.tableView.delegate = weakSelf;
-                weakSelf.tableView.dataSource = weakSelf;
-                weakSelf.tableView.backgroundColor = [UIColor clearColor];
-                [weakSelf.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
-                    make.left.right.mas_equalTo(weakSelf.view);
-                    make.top.mas_equalTo(weakSelf.HeadView.mas_bottom);
-                    if (@available(iOS 11.0, *)) {
-                        make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom);
-                    } else {
-                        make.bottom.equalTo(weakSelf.view.mas_bottom);
-                    }
-                }];
-            });
         }
+        weakSelf.ConfirmationDate = responseObject[@"ConfirmationDate"];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView removeFromSuperview];
+            weakSelf.tableView = nil;
+            [weakSelf.view addSubview:weakSelf.tableView];
+            weakSelf.tableView.delegate = weakSelf;
+            weakSelf.tableView.dataSource = weakSelf;
+            weakSelf.tableView.backgroundColor = [UIColor clearColor];
+            [weakSelf.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.right.mas_equalTo(weakSelf.view);
+                make.top.mas_equalTo(weakSelf.HeadView.mas_bottom);
+                if (@available(iOS 11.0, *)) {
+                    make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom);
+                } else {
+                    make.bottom.equalTo(weakSelf.view.mas_bottom);
+                }
+            }];
+        });
         [weakSelf _loadAllConversationsFromDBWithIsShowHud:NO];
     } failure:^(NSError * _Nonnull error) {
         NSLog(@"%@",error);
@@ -675,32 +676,6 @@ static int kConversation_AtAll = 2;
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
     ChatMsgListImModel * model = self.chatListIMArray[indexPath.row];
-//
-//    switch (indexPath.section) {
-//        case 0:{
-//            return [ChatMsgListCell configCell0Height];
-//        }break;
-//        case 1:{
-//            return [ChatMsgListCell configCell1Height];
-//        }break;
-//        case 2:{
-//            return [ChatMsgListCell configCell4Height];
-//        }break;
-//        default:{
-//            switch (model.AttributeValue) {
-//                case 2:
-//                {
-//                    return [ChatMsgListCell configCell2Height];
-//                }
-//                    break;
-//                default:
-//                {
-//                    return [ChatMsgListCell configCell3Height];
-//                }
-//                    break;
-//            }
-//        }break;
-//    }
     switch (model.AttributeValue) {
         case 2:
         {
@@ -799,7 +774,7 @@ static int kConversation_AtAll = 2;
             cell.cell2IconImgView.image = IMG(model.AvatarUrl);
             cell.cell2isTop.hidden = YES;
             cell.cell2TimeLabel.hidden = NO;
-            cell.cell2TimeLabel.text = @"1分钟前";
+            cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:self.ConfirmationDate];
             cell.cell2TimeLabel.textColor = RGB(153, 153, 153);
             cell.enterBtn.hidden = YES;
             return cell;
@@ -1013,6 +988,7 @@ static int kConversation_AtAll = 2;
         controller.GroupId = chatModel.Id;
         controller.ImId = chatModel.ImId;
         controller.chatType = chatModel.ChatType;
+        controller.isTop = chatModel.IsTop;
         controller.hidesBottomBarWhenPushed = YES;
         [weakSelf.navigationController pushViewController:controller animated:YES];
     } failure:^(NSError * _Nonnull error) {

+ 1 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.h

@@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @property (nonatomic,assign) CollectHanderType    collectType;
 ///收藏类型 1文章 2话题 3 收藏 4笔记 5通知 6站内信 8会议纪要
-@property (nonatomic,assign) NSInteger  CollectionType;
+@property (nonatomic,assign) CollectModelType     CollectionType;
 @property (nonatomic,assign) NSInteger  CollectionDataId;
 @property (assign, nonatomic) CollectModelType       type;
 @property (copy, nonatomic)   FlowAttachmentsModel * sendModel;

+ 12 - 3
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.m

@@ -93,9 +93,15 @@
                                             @"TypeId":@(weakSelf.TypeId)
                 };
                 [[HttpManager sharedHttpManager] PUTUrl:Host(APP_Middle_Add_Folder) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
-                    dispatch_async(dispatch_get_main_queue(), ^{
-                        [weakSelf getData];
-                    });
+                    NSLog(@"%@",responseObject);
+                    if (weakSelf.collectType == CollectHanderType_Collect) {
+                        [[NSNotificationCenter defaultCenter] postNotificationName:COLLECTSUCCESS object:nil];
+                        [weakSelf myBack];
+                    }else{
+                        dispatch_async(dispatch_get_main_queue(), ^{
+                            [weakSelf getData];
+                        });
+                    }
                 } failure:^(NSError * _Nonnull error) {
                     NSLog(@"%@",error);
                     SHOWERROR([ZYCTool handerResultData:error])
@@ -107,6 +113,9 @@
             vc.ParentId = weakSelf.ParentId;
             vc.createFoldType = weakSelf.TypeId;
             vc.modifyTye = CreateType;
+            vc.CollectionDataId = weakSelf.CollectionDataId;
+            vc.CollectionType = weakSelf.CollectionType;
+            vc.isCollect = weakSelf.collectType == CollectHanderType_Collect ? YES : NO;
             vc.fileType = weakSelf.TypeValue == 1 ? NewTopicFileType : NewOtherFileType;
             [weakSelf.navigationController pushViewController:vc animated:YES];
         }

+ 140 - 18
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgTopSearchVC.m

@@ -9,6 +9,11 @@
 #import "ChatMsgTopSearchVC.h"
 #import "MailListByZuCell.h"
 #import "MailListDetailVC.h"
+#import "ChatSearchModel.h"
+#import "ChatMsgListCell.h"
+#import "NSDate+Extension.h"
+#import "EMChatViewController.h"
+#import "WorkingGroupMainVC.h"
 
 @interface ChatMsgTopSearchVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (nonatomic, copy) NSMutableArray *listArray;
@@ -40,15 +45,14 @@
 }
 - (void)getData
 {
-    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
-    [dict setObject:self.searchText forKey:@"Key"];
-
     WEAKSELF
     [self.listArray removeAllObjects];
-    [[HttpManager sharedHttpManager] POSTWithUrl:AddressBookGroup_Search_Post parameters:dict success:^(id  _Nonnull responseObject) {
+    NSString * url = [NSString stringWithFormat:@"%@%@",Host(API_APP_Often_Contact_Search),self.searchText];
+    NSString * urlHost = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
+    [[HttpManager sharedHttpManager] GETUrl:urlHost parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"搜索结果:%@",responseObject);
         for (NSDictionary *dic in responseObject) {
-            SelectModel * model = [[SelectModel alloc] initDict:dic];
+            ChatSearchModel * model = [ChatSearchModel modelWithDictionary:dic];
             [weakSelf.listArray addObject:model];
         }
         dispatch_async(dispatch_get_main_queue(), ^{
@@ -75,29 +79,147 @@
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    return [MailListByZuCell configCell2Height];
+    ChatSearchModel * model = [self.listArray objectAtIndex:indexPath.row];
+    switch (model.TypeValue) {
+        case ChatSearchUserType:
+        {
+            return [MailListByZuCell configCell2Height];
+        }
+            break;
+        case ChatSearchOnlyType:
+        {
+            return [ChatMsgListCell configCell3Height];
+        }
+            break;
+        case ChatSearchGroupType:
+        {
+            return [ChatMsgListCell configCell3Height];
+        }
+            break;
+        default:
+        {
+            return [ChatMsgListCell configCell2Height];
+        }
+            break;
+    }
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    SelectModel * model = [self.listArray objectAtIndex:indexPath.row];
-    MailListByZuCell *cell = [MailListByZuCell configCell2:tableView indexPath:indexPath];
-    cell.cell0TitleLabel.text = model.UserName;
-    cell.cell0DepartMentName.text = model.DepartmentName;
-    [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:IMG(@"chatmsg_list_testuser_img")];
-    return cell;
+    ChatSearchModel * model = [self.listArray objectAtIndex:indexPath.row];
+    switch (model.TypeValue) {
+        case ChatSearchUserType:
+        {
+            MailListByZuCell *cell = [MailListByZuCell configCell2:tableView indexPath:indexPath];
+            cell.cell0TitleLabel.text = model.Name;
+            cell.cell0DepartMentName.text = model.DepartmentName;
+            [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:IMG(@"chatmsg_list_testuser_img")];
+            return cell;
+        }
+            break;
+        case ChatSearchOnlyType:
+        {
+            ChatMsgListCell *cell = [ChatMsgListCell configCell3:tableView indexPath:indexPath];
+            [cell setCellSearchModel:model];
+            return cell;
+        }
+            break;
+        case ChatSearchGroupType:
+        {
+            ChatMsgListCell *cell = [ChatMsgListCell configCell3:tableView indexPath:indexPath];
+            [cell setCellSearchModel:model];
+            return cell;
+        }
+            break;
+        default:
+        {
+            ChatMsgListCell *cell = [ChatMsgListCell configCell2:tableView indexPath:indexPath];
+            cell.cell2TitleLabel.text = model.Name;
+            cell.cell2TimeLabel.hidden = NO;
+            cell.IsTopView.hidden = YES;
+            cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.LastModifiedDate];
+            cell.cell2TimeLabel.textColor = RGB(153, 153, 153);
+            cell.enterBtn.hidden = YES;
+            return cell;
+        }
+            break;
+    }
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    SelectModel *model = [self.listArray objectAtIndex:indexPath.row];
-    model.SourceName = model.UserName;
-    model.SourceId = model.UserId;
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
-    MailListDetailVC *vc = [MailListDetailVC initMailListDetailVC];
-    vc.indexId = model.UserId;
-    [self.navigationController pushViewController:vc animated:YES];
+    ChatSearchModel *model = [self.listArray objectAtIndex:indexPath.row];
+    switch (model.TypeValue) {
+        case ChatSearchUserType:
+        {
+            MailListDetailVC *vc = [MailListDetailVC initMailListDetailVC];
+            vc.indexId = model.Id;
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+            break;
+        case ChatSearchOnlyType:
+        {
+            [self enterChatView:model];
+        }
+            break;
+        case ChatSearchGroupType:
+        {
+            [self getGroupInfo:model];
+        }
+            break;
+        default:
+        {
+            WorkingGroupMainVC *vc = [WorkingGroupMainVC initWorkingGroupMainVC];
+            vc.GroupId = [NSString stringWithFormat:@"%ld",(long)model.Id];
+            vc.GroupTitle = model.Name;
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+            break;
+    }
+}
+- (void)enterChatView:(ChatSearchModel *)chatModel
+{
+    EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:[NSString stringWithFormat:@"%ld",(long)chatModel.ImId] type: EMConversationTypeChat createIfNotExist:YES];
+    EMConversationModel *model = [[EMConversationModel alloc] initWithEMModel:conversation];
+    EMChatViewController *controller = [[EMChatViewController alloc] initWithCoversationModel:model];
+
+    if (chatModel.TypeValue == ChatSearchOnlyType) {
+        controller.toUserId = chatModel.ToUserId;
+        controller.ReceiveIcon = chatModel.AvatarUrl;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.UserId = chatModel.ToUserId;
+        sModel.UserName = chatModel.Name;
+        sModel.AvatarUrl = chatModel.AvatarUrl;
+        controller.sModel = sModel;
+    }
+    model.name = chatModel.Name;
+    controller.ImId = chatModel.ImId;
+    controller.GroupId = chatModel.Id;
+    controller.chatType = 1;
+    controller.listId = chatModel.Id;
+    controller.isTop = chatModel.IsTop;
+    [self.navigationController pushViewController:controller animated:YES];
 }
+- (void)getGroupInfo:(ChatSearchModel *)chatModel
+{
+    WS(weakSelf);
+    [[HttpManager sharedHttpManager] POSTUrl:Host(Group_chat_info) parameters:@{@"GroupChatImId":@(chatModel.ImId)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:[NSString stringWithFormat:@"%ld",(long)chatModel.ImId] type: EMConversationTypeGroupChat createIfNotExist:YES];
+        EMConversationModel *model = [[EMConversationModel alloc] initWithEMModel:conversation];
+        EMChatViewController *controller = [[EMChatViewController alloc] initWithCoversationModel:model];
+        controller.toUserId = chatModel.ImId;
+        controller.groupUserInfoArray = responseObject[@"Item"];
+        model.name = chatModel.Name;
+        controller.GroupId = chatModel.Id;
+        controller.ImId = chatModel.ImId;
+        controller.chatType = 2;
+        controller.isTop = chatModel.IsTop;
 
+        [weakSelf.navigationController pushViewController:controller animated:YES];
+    } failure:^(NSError * _Nonnull error) {
+        
+    }];
+}
 - (NSMutableArray *)listArray{
     if (!_listArray) {
         _listArray = [NSMutableArray new];

+ 2 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.h

@@ -13,9 +13,11 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MailChatVC : BaseViewController
 @property (nonatomic, assign) NSInteger    ParentId;
+@property (nonatomic, assign) BOOL         IsSelect;
 @property (nonatomic, copy) NSString       * titleStr;
 @property (assign, nonatomic) CreateFileFolderType   type;
 @property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
+@property (nonatomic, assign) NSInteger  TypeId;
 @end
 
 NS_ASSUME_NONNULL_END

+ 234 - 13
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.m

@@ -26,6 +26,11 @@
 @property (nonatomic, assign) NSUInteger  totalPage;
 @property (nonatomic, assign) NSUInteger  totalRecord;
 @property (nonatomic, assign) BOOL        isFresh;
+@property (nonatomic, assign) BOOL        isAllSelected;
+@property (nonatomic, strong) UIButton      *rightBtn;
+@property (nonatomic, strong) UIButton    *allSelectBtn;
+@property (nonatomic, strong) UILabel     *selectCountL;
+
 @end
 
 @implementation MailChatVC
@@ -36,7 +41,11 @@
     [self addNavbarView];
     [self getData];
 }
-
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
 - (void)addNavbarView
 {
 
@@ -65,7 +74,38 @@
     }];
     
     [backBtn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
+    
+    UIButton * menuBtn  = [UIButton new];
+    [menuBtn setImage:[UIImage imageNamed:@"menu_black_icon"] forState:UIControlStateNormal];
+    menuBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
+    [self.CusNavBar addSubview:menuBtn];
+    
+    
+    [menuBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(backBtn.mas_right);
+        make.bottom.mas_equalTo(self.CusNavBar);
+        make.width.offset(44);
+        make.height.offset(44);
+    }];
+    
+    [menuBtn addTarget:self action:@selector(menuAction:) forControlEvents:UIControlEventTouchUpInside];
+    
+    self.rightBtn = [UIButton new];
+    [self.CusNavBar addSubview:self.rightBtn];
+    [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+    [[self.rightBtn titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
+    self.rightBtn.hidden = !self.IsSelect;
+    [self.rightBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(backBtn);
+        make.height.offset(44);
+        make.right.mas_equalTo(self.CusNavBar.mas_right).offset(-15);
+    }];
     WS(weakSelf);
+    [self.rightBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
 
     [self.CusNavBar addSubview:self.titleL];
     [self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -80,7 +120,7 @@
     [self.view addSubview:self.HeadView];
     [self.HeadView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
-        make.height.mas_offset(46);
+        make.height.mas_offset(self.IsSelect ? 84 : 46);
         make.top.mas_equalTo(self.CusNavBar.mas_bottom);
     }];
     [self.HeadView addSubview:self.SearchView];
@@ -105,6 +145,9 @@
         }
     }];
     self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    if (self.IsSelect) {
+        [self addSortV];
+    }
 }
 
 - (UIView *)CusNavBar
@@ -194,23 +237,201 @@
     return [ChatNewRowCell configCell2Height];
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
-   MailChatModel *model = [self.dataArray objectAtIndex:indexPath.row];
-   ChatNewRowCell *cell = [ChatNewRowCell configCell3:tableView indexPath:indexPath];
-   [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
-   cell.cell2TitleLabel.text = model.Name;
-   cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.UserCount];
-   return cell;
+    MailChatModel *model = [self.dataArray objectAtIndex:indexPath.row];
+    if (self.IsSelect) {
+        ChatNewRowCell *cell = [ChatNewRowCell configCell50:tableView indexPath:indexPath];
+        [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+        cell.cell2TitleLabel.text = model.Name;
+        cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.UserCount];
+        [cell.cell2SelectButton setSelected:model.IsSelect];
+        [cell.cell2SelectButton setAction:^{
+            model.IsSelect = !model.IsSelect;
+            [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+        }];
+        return cell;
+    }else{
+        ChatNewRowCell *cell = [ChatNewRowCell configCell5:tableView indexPath:indexPath];
+        [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+        cell.cell2TitleLabel.text = model.Name;
+        cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.UserCount];
+        return cell;
+    }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath
 {
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     NSLog(@"正常状态的cell");
     MailChatModel *model = [self.dataArray objectAtIndex:indexPath.row];
-    MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
-    vc.Id = model.Id;
-    vc.TypeValue = self.TypeValue;
-    vc.titleStr = model.Name;
-    [self.navigationController pushViewController:vc animated:YES];
+    if (self.IsSelect) {
+        if (model.IsSelect) {
+            model.IsSelect = !model.IsSelect;
+            [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+        }else{
+            MailChatModel *model = [self.dataArray objectAtIndex:indexPath.row];
+            MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
+            vc.Id = model.Id;
+            vc.TypeValue = model.TypeValue;
+            vc.titleStr = model.Name;
+            [self.navigationController pushViewController:vc animated:YES];
+        }
+    }else{
+        MailChatModel *model = [self.dataArray objectAtIndex:indexPath.row];
+        MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
+        vc.Id = model.Id;
+        vc.TypeValue = model.TypeValue;
+        vc.titleStr = model.Name;
+        [self.navigationController pushViewController:vc animated:YES];
+    }
 }
 
+- (UIButton *)allSelectBtn
+{
+    if (!_allSelectBtn) {
+        _allSelectBtn = [UIButton new];
+        [_allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+        [_allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateSelected];
+    }
+    return _allSelectBtn;
+}
+- (UILabel *)selectCountL
+{
+    if (!_selectCountL) {
+        _selectCountL = [UILabel new];
+        _selectCountL.font = Kfont(13);
+        _selectCountL.text = @"0";
+        _selectCountL.textColor = UIColorHex(0x0F88EB);
+    }
+    return _selectCountL;
+}
+- (UIView *)SortView
+{
+    if (!_SortView) {
+        _SortView = [UIView new];
+        _SortView.backgroundColor = UIColorHex(0xF0EFF4);
+    }
+    return _SortView;
+}
+- (void)addSortV
+{
+    [self.HeadView addSubview:self.SortView];
+    [self.SortView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(38);
+        make.top.mas_equalTo(self.SearchView.mas_bottom).offset(4);
+    }];
+    [self.SortView addSubview:self.allSelectBtn];
+    [self.SortView addSubview:self.selectCountL];
+    [self.allSelectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+        make.size.mas_offset(CGSizeMake(38, 38));
+    }];
+    UILabel * leftL = [UILabel new];
+    leftL.text = @"已选:";
+    leftL.textColor = UIColorHex(0x666666);
+    leftL.font = Kfont(13);
+    [self.SortView addSubview:leftL];
+    [leftL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.allSelectBtn.mas_right).offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    [self.selectCountL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(leftL.mas_right).offset(8);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    
+    WS(weakSelf);
+    [self.allSelectBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)selectedAction{
+    [self.allSelectBtn setSelected:self.isAllSelected];
+    NSInteger count = 0;
+    for (MailChatModel * model in self.dataArray) {
+        model.IsSelect = self.isAllSelected;
+        if (model.IsSelect) {
+            count ++;
+        }
+        [self countMailArray:@[model]];
+    }
+    self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
+    [self.tableView reloadData];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+    for (id detail in sssArray) {
+        SelectModel * ssmodel = [self addSelectModel:detail];
+        
+        __block BOOL isEque = NO;
+        [mailArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
+            if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId && sModel.TypeValue == ssmodel.TypeValue) {
+                isEque = YES;
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
+            }
+        }];
+        if (!isEque && ssmodel.hadSelected) {
+            NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
+            [mailArray addObject:ssdata];
+        }
+        USERDEFAULTSSET(mailArray, MAILSELECT);
+    }
+    if (mailArray.count > 0) {
+        self.rightBtn.enabled = YES;
+        [self.rightBtn setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.rightBtn setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.rightBtn.enabled = NO;
+        [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+        [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    }
+}
+- (SelectModel *)addSelectModel:(id)model
+{
+    if ([model isKindOfClass:[SelectModel class]]) {
+        SelectModel * sModel = (SelectModel *)model;
+        sModel.SourceType = 0;
+        sModel.SourceId = sModel.UserId;
+        sModel.SourceName = sModel.UserName;
+        sModel.hadSelected = sModel.hadSelected;
+        sModel.AvatarUrl = sModel.AvatarUrl;
+        return sModel;
+    }
+//    if ([model isKindOfClass:[MailModel class]]) {
+//        MailModel * mModel = (MailModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = 0;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = 0;TypeValue
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+    if ([model isKindOfClass:[MailChatModel class]]) {
+        MailChatModel * mModel = (MailChatModel *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = mModel.TypeId;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = mModel.TypeValue;
+        sModel.hadSelected = mModel.IsSelect;
+        return sModel;
+    }
+    if ([model isKindOfClass:[Department class]]) {
+        Department * mModel = (Department *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = 1;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.hadSelected;
+        return sModel;
+    }
+    return nil;
+}
 @end

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListVC.h

@@ -11,6 +11,7 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @interface MailGroupListVC : BaseViewController
+@property (nonatomic, assign) BOOL         IsSelect;
 @property (nonatomic, assign) NSInteger  Id;
 @property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
 @property (nonatomic, copy) NSString     *titleStr;

+ 2 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.h

@@ -13,9 +13,11 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MailGroupVC : BaseViewController
 @property (nonatomic, assign) NSInteger    ParentId;
+@property (nonatomic, assign) BOOL         IsSelect;
 @property (nonatomic, copy) NSString       * titleStr;
 @property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
 @property (assign, nonatomic) CreateFileFolderType   type;
+@property (nonatomic, assign) NSInteger  TypeId;
 @end
 
 NS_ASSUME_NONNULL_END

+ 313 - 43
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.m

@@ -17,6 +17,7 @@
 @property (nonatomic, strong) UIView      *CusNavBar;
 @property (nonatomic, strong) UIView      *HeadView;
 @property (nonatomic, strong) UIView      *SortView;
+@property (nonatomic, strong) UIButton      *rightBtn;
 @property (strong, nonatomic) MyTDGroupView             *SearchView;
 @property (nonatomic, strong) UILabel     *titleL;
 @property (nonatomic, strong) NSMutableArray <NoticeModel*>*dataArray;
@@ -25,6 +26,9 @@
 @property (nonatomic, assign) NSUInteger  totalPage;
 @property (nonatomic, assign) NSUInteger  totalRecord;
 @property (nonatomic, assign) BOOL        isFresh;
+@property (nonatomic, assign) BOOL        isAllSelected;
+@property (nonatomic, strong) UIButton    *allSelectBtn;
+@property (nonatomic, strong) UILabel     *selectCountL;
 @end
 
 @implementation MailGroupVC
@@ -36,7 +40,11 @@
     [self setTableViewRefresh];
     [self headRefresh];
 }
-
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
 - (void)addNavbarView
 {
 
@@ -45,13 +53,7 @@
         make.top.left.right.mas_equalTo(self.view);
         make.height.mas_offset(kNavigationHeight);
     }];
-//    UILabel * lineL = [UILabel new];
-//    lineL.backgroundColor = LINEBGCOLOR;
-//    [self.CusNavBar addSubview:lineL];
-//    [lineL mas_makeConstraints:^(MASConstraintMaker *make) {
-//        make.left.bottom.right.mas_equalTo(self.CusNavBar);
-//        make.height.offset(0.5);
-//    }];
+
     UIButton * backBtn  = [UIButton new];
     [backBtn setImage:[UIImage imageNamed:@"back_black_icon"] forState:UIControlStateNormal];
     [self.CusNavBar addSubview:backBtn];
@@ -65,7 +67,38 @@
     }];
     
     [backBtn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
+    
+    UIButton * menuBtn  = [UIButton new];
+    [menuBtn setImage:[UIImage imageNamed:@"menu_black_icon"] forState:UIControlStateNormal];
+    menuBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
+    [self.CusNavBar addSubview:menuBtn];
+    
+    
+    [menuBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(backBtn.mas_right);
+        make.bottom.mas_equalTo(self.CusNavBar);
+        make.width.offset(44);
+        make.height.offset(44);
+    }];
+    
+    [menuBtn addTarget:self action:@selector(menuAction:) forControlEvents:UIControlEventTouchUpInside];
+    
+    self.rightBtn = [UIButton new];
+    [self.CusNavBar addSubview:self.rightBtn];
+    [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+    [[self.rightBtn titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
+    self.rightBtn.hidden = !self.IsSelect;
+    [self.rightBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(backBtn);
+        make.height.offset(44);
+        make.right.mas_equalTo(self.CusNavBar.mas_right).offset(-15);
+    }];
     WS(weakSelf);
+    [self.rightBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
 
     [self.CusNavBar addSubview:self.titleL];
     [self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -82,7 +115,7 @@
     [self.view addSubview:self.HeadView];
     [self.HeadView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
-        make.height.mas_offset(46);
+        make.height.mas_offset(self.IsSelect ? 84 : 46);
         make.top.mas_equalTo(self.CusNavBar.mas_bottom);
     }];
     [self.HeadView addSubview:self.SearchView];
@@ -106,6 +139,9 @@
             make.bottom.equalTo(self.view.mas_bottom);
         }
     }];
+    if (self.IsSelect) {
+        [self addSortV];
+    }
     self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
 }
 
@@ -380,24 +416,57 @@
     return [ChatNewRowCell configCell2Height];
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
-   NoticeModel *model = [self.dataArray objectAtIndex:indexPath.row];
-   switch (model.AttributeValue) {
-       case 2:{
-           ChatNewRowCell *cell = [ChatNewRowCell configCell1:tableView indexPath:indexPath];
-           cell.cell1TitleLabel.text = model.FolderName;
-           cell.IsTopImgV.hidden = YES;
-           cell.cell1TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.FileCount];
-           cell.cell1TimeLabel.hidden = model.FileCount == 0 ? YES : NO;
-           return cell;
-       }break;
-       default:{
-           ChatNewRowCell *cell = [ChatNewRowCell configCell3:tableView indexPath:indexPath];
-           [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
-           cell.cell2TitleLabel.text = model.GroupName;
-           cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.TopicSharingCount];
-           return cell;
-       }break;
-   }
+    WS(weakSelf);
+    NoticeModel *model = [self.dataArray objectAtIndex:indexPath.row];
+    if (self.IsSelect) {
+        switch (model.AttributeValue) {
+            case 2:{
+                ChatNewRowCell *cell = [ChatNewRowCell configCell10:tableView indexPath:indexPath];
+                cell.cell1TitleLabel.text = model.FolderName;
+                cell.IsTopImgV.hidden = YES;
+                cell.cell1TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.FileCount];
+                cell.cell1TimeLabel.hidden = model.FileCount == 0 ? YES : NO;
+                [cell.cell1SelectButton setSelected:model.IsSelect];
+                [cell.cell1SelectButton setAction:^{
+                    model.IsSelect = !model.IsSelect;
+                    [weakSelf countMailArray:@[model]];
+                    [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+                }];
+                return cell;
+            }break;
+            default:{
+                ChatNewRowCell *cell = [ChatNewRowCell configCell50:tableView indexPath:indexPath];
+                [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+                cell.cell2TitleLabel.text = model.GroupName;
+                cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.TopicSharingCount];
+                [cell.cell2SelectButton setSelected:model.IsSelect];
+                [cell.cell2SelectButton setAction:^{
+                    model.IsSelect = !model.IsSelect;
+                    [weakSelf countMailArray:@[model]];
+                    [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+                }];
+                return cell;
+            }break;
+        }
+    }else{
+        switch (model.AttributeValue) {
+            case 2:{
+                ChatNewRowCell *cell = [ChatNewRowCell configCell1:tableView indexPath:indexPath];
+                cell.cell1TitleLabel.text = model.FolderName;
+                cell.IsTopImgV.hidden = YES;
+                cell.cell1TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.FileCount];
+                cell.cell1TimeLabel.hidden = model.FileCount == 0 ? YES : NO;
+                return cell;
+            }break;
+            default:{
+                ChatNewRowCell *cell = [ChatNewRowCell configCell5:tableView indexPath:indexPath];
+                [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+                cell.cell2TitleLabel.text = model.GroupName;
+                cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.TopicSharingCount];
+                return cell;
+            }break;
+        }
+    }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath
 {
@@ -406,27 +475,65 @@
     NoticeModel *model = [self.dataArray objectAtIndex:indexPath.row];
     if(model && model != nil)
     {
-        switch (model.AttributeValue) {
-            case 2:{
-                MailGroupVC *vc = [[MailGroupVC alloc] init];
-                vc.ParentId = model.Id;
-                vc.titleStr = model.FolderName;
-                [self.navigationController pushViewController:vc animated:YES];
-            }break;
-            default:{
-                MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
-                vc.Id = model.GroupId;
-                vc.TypeValue = self.TypeValue;
-                vc.titleStr = model.GroupName;
-                [self.navigationController pushViewController:vc animated:YES];
-            }break;
+        if (self.IsSelect) {
+            switch (model.AttributeValue) {
+                case 2:
+                {
+                    if (model.IsSelect) {
+                        model.IsSelect = !model.IsSelect;
+                        [self countMailArray:@[model]];
+                        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+                    }else{
+                        MailGroupVC *vc = [[MailGroupVC alloc] init];
+                        vc.ParentId = model.Id;
+                        vc.titleStr = model.FolderName;
+                        vc.TypeValue = self.TypeValue;
+                        vc.TypeId = self.TypeId;
+                        [self.navigationController pushViewController:vc animated:YES];
+                    }
+                }
+                    break;
+                default:
+                {
+                    if (model.IsSelect) {
+                        model.IsSelect = !model.IsSelect;
+                        [self countMailArray:@[model]];
+                        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+                    }else{
+                        MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
+                        vc.Id = model.GroupId;
+                        vc.TypeValue = self.TypeValue;
+                        vc.titleStr = model.GroupName;
+                        vc.IsSelect = YES;
+                        [self.navigationController pushViewController:vc animated:YES];
+                    }
+                }
+                    break;
+            }
+        }else{
+            switch (model.AttributeValue) {
+                case 2:{
+                    MailGroupVC *vc = [[MailGroupVC alloc] init];
+                    vc.ParentId = model.Id;
+                    vc.titleStr = model.FolderName;
+                    vc.TypeValue = self.TypeValue;
+                    vc.TypeId = self.TypeId;
+                    [self.navigationController pushViewController:vc animated:YES];
+                }break;
+                default:{
+                    MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
+                    vc.Id = model.GroupId;
+                    vc.TypeValue = self.TypeValue;
+                    vc.titleStr = model.GroupName;
+                    [self.navigationController pushViewController:vc animated:YES];
+                }break;
+            }
         }
     }
 }
 
 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
-    
-    return tableView.editing;
+    return self.IsSelect ? !tableView.editing : tableView.editing;
 }
 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
     NoticeModel *model = [self.dataArray objectAtIndex:sourceIndexPath.row];
@@ -450,4 +557,167 @@
         });
     }
 }
+
+- (UIButton *)allSelectBtn
+{
+    if (!_allSelectBtn) {
+        _allSelectBtn = [UIButton new];
+        [_allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+        [_allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateSelected];
+    }
+    return _allSelectBtn;
+}
+- (UILabel *)selectCountL
+{
+    if (!_selectCountL) {
+        _selectCountL = [UILabel new];
+        _selectCountL.font = Kfont(13);
+        _selectCountL.text = @"0";
+        _selectCountL.textColor = UIColorHex(0x0F88EB);
+    }
+    return _selectCountL;
+}
+- (UIView *)SortView
+{
+    if (!_SortView) {
+        _SortView = [UIView new];
+        _SortView.backgroundColor = UIColorHex(0xF0EFF4);
+    }
+    return _SortView;
+}
+- (void)addSortV
+{
+    [self.HeadView addSubview:self.SortView];
+    [self.SortView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(38);
+        make.top.mas_equalTo(self.SearchView.mas_bottom).offset(4);
+    }];
+    [self.SortView addSubview:self.allSelectBtn];
+    [self.SortView addSubview:self.selectCountL];
+    [self.allSelectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+        make.size.mas_offset(CGSizeMake(38, 38));
+    }];
+    UILabel * leftL = [UILabel new];
+    leftL.text = @"已选:";
+    leftL.textColor = UIColorHex(0x666666);
+    leftL.font = Kfont(13);
+    [self.SortView addSubview:leftL];
+    [leftL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.allSelectBtn.mas_right).offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    [self.selectCountL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(leftL.mas_right).offset(8);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    
+    WS(weakSelf);
+    [self.allSelectBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)selectedAction{
+    [self.allSelectBtn setSelected:self.isAllSelected];
+    NSInteger count = 0;
+//    NoticeModel *model = [self.dataArray objectAtIndex:indexPath.row];
+
+    for (NoticeModel * model in self.dataArray) {
+        model.IsSelect = self.isAllSelected;
+        if (model.IsSelect) {
+            count ++;
+        }
+        [self countMailArray:@[model]];
+    }
+    self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
+    [self.tableView reloadData];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+    for (id detail in sssArray) {
+        SelectModel * ssmodel = [self addSelectModel:detail];
+        
+        __block BOOL isEque = NO;
+        [mailArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
+            if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId && sModel.TypeValue == ssmodel.TypeValue) {
+                isEque = YES;
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
+            }
+        }];
+        if (!isEque && ssmodel.hadSelected) {
+            NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
+            [mailArray addObject:ssdata];
+        }
+        USERDEFAULTSSET(mailArray, MAILSELECT);
+    }
+    if (mailArray.count > 0) {
+        self.rightBtn.enabled = YES;
+        [self.rightBtn setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.rightBtn setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.rightBtn.enabled = NO;
+        [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+        [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    }
+}
+- (SelectModel *)addSelectModel:(id)model
+{
+    if ([model isKindOfClass:[SelectModel class]]) {
+        SelectModel * sModel = (SelectModel *)model;
+        sModel.SourceType = 0;
+        sModel.SourceId = sModel.UserId;
+        sModel.SourceName = sModel.UserName;
+        sModel.hadSelected = sModel.hadSelected;
+        sModel.AvatarUrl = sModel.AvatarUrl;
+        return sModel;
+    }
+//    if ([model isKindOfClass:[MailModel class]]) {
+//        MailModel * mModel = (MailModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = 0;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = 0;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+//    if ([model isKindOfClass:[MailSubModel class]]) {
+//        MailSubModel * mModel = (MailSubModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = mModel.Id;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = mModel.TypeValue;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+    if ([model isKindOfClass:[Department class]]) {
+        Department * mModel = (Department *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = 1;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.hadSelected;
+        return sModel;
+    }
+    if ([model isKindOfClass:[NoticeModel class]]) {
+        NoticeModel * mModel = (NoticeModel *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = self.TypeId;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.GroupName;
+        sModel.TypeValue = self.TypeValue;
+        sModel.hadSelected = mModel.IsSelect;
+        return sModel;
+    }
+    return nil;
+}
 @end

+ 4 - 4
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListVC.m

@@ -450,19 +450,19 @@
             {
                 MailSubModel * sModel = [model.Items objectAtIndex:indexPath.row];
                 switch (sModel.TypeValue) {
-                    case 1:
+                    case 20:
                     {
                         MailGroupVC * vc = [[MailGroupVC alloc] init];
                         vc.titleStr = sModel.Name;
-                        vc.TypeValue = 2;
+                        vc.TypeValue = 20;
                         [self.navigationController pushViewController:vc animated:YES];
                     }
                         break;
-                    case 2:
+                    case 21:
                     {
                         MailChatVC * vc = [[MailChatVC alloc] init];
                         vc.titleStr = sModel.Name;
-                        vc.TypeValue = 1;
+                        vc.TypeValue = 21;
                         [self.navigationController pushViewController:vc animated:YES];
                     }
                         break;

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShareCusVC.h

@@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 @interface ShareCusVC : BaseViewController
 @property (nonatomic, copy) FlowAttachmentsModel *   sendModel;
 @property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) BOOL                   IsSelect;
 +(ShareCusVC *)initShareCusVC;
 @end
 

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShareSysVC.h

@@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
 @interface ShareSysVC : BaseViewController
 @property (nonatomic, copy) FlowAttachmentsModel *   sendModel;
 @property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) BOOL                   IsSelect;
 +(ShareSysVC *)initShareSysVC;
 @end
 

+ 21 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowDesVC.h

@@ -0,0 +1,21 @@
+//
+//  ShowDesVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ShowDesVC : BaseViewController
+@property (nonatomic, copy) FlowAttachmentsModel *sendModel;
+@property (strong,nonatomic) NSMutableArray      *dataSourceArray;
+@property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) BOOL                   IsSelect;
++(ShowDesVC *)initShowDesVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 319 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowDesVC.m

@@ -0,0 +1,319 @@
+//
+//  ShowDesVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ShowDesVC.h"
+#import "MailListCell.h"
+#import "MailListSearchVC.h"
+#import "MyTDGroupView.h"
+#import "ChatMsgListImModel.h"
+#import "MailListByZuVC.h"
+#import "EMChatViewController.h"
+#import "MailGroupVC.h"
+#import "MailChatVC.h"
+#import "AddLookUpUserSecondVC.h"
+
+@interface ShowDesVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (strong,nonatomic) IBOutlet UITableView *tableView;
+@property (weak, nonatomic) IBOutlet UIView *CusNavBar;
+@property (weak, nonatomic) IBOutlet UIView *HeadView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
+@property (strong,nonatomic) UIView *   myHeaderView;
+@property (nonatomic, strong) UIButton    *rightBtn;
+@property (nonatomic, strong) UIView      *SortView;
+@property (nonatomic, strong) UIButton    *allSelectBtn;
+@property (nonatomic, strong) UILabel     *selectCountL;
+@property (nonatomic, assign) BOOL        isAllSelected;
+@end
+
+@implementation ShowDesVC
++(ShowDesVC *)initShowDesVC{
+    ShowDesVC *controller = [StoryboardManager.shared.mailList instantiateViewControllerWithIdentifier:@"ShowDesVC"];
+    return controller;
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = RGB(255, 255, 255);
+    [self.HeadView addSubview:self.myHeaderView];
+    if (self.IsSelect) {
+        [self addSortV];
+    }
+    WS(weakSelf);
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        MailListSearchVC *vc = [[MailListSearchVC alloc] init];
+        vc.isReturn = weakSelf.isReturn;
+        vc.sendModel = weakSelf.sendModel;
+        vc.DepartmentId = 0;
+        vc.SearchType = 0;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+     }];
+     [self.myHeaderView addGestureRecognizer:tap];
+    
+    if (@available(iOS 11.0, *)) {
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    } else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    self.tableView.backgroundColor = [UIColor clearColor];
+    [self.tableView reloadData];
+   
+    self.rightBtn = [UIButton new];
+    [self.CusNavBar addSubview:self.rightBtn];
+    [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+    [[self.rightBtn titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
+    self.rightBtn.hidden = !self.IsSelect;
+    [self.rightBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(self.CusNavBar);
+        make.top.bottom.mas_equalTo(self.CusNavBar);
+        make.right.mas_equalTo(self.CusNavBar.mas_right).offset(-15);
+    }];
+    [self.rightBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataSourceArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return [MailListCell configCell0Height];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+    WS(weakSelf);
+    MailListCell *cell = [MailListCell configCell00:tableView indexPath:indexPath];
+    cell.clipsToBounds = YES;
+    MailSubModel * model = self.dataSourceArray[indexPath.row];
+    cell.cell0TitleLabel.text = model.Name;
+    cell.countL.hidden = YES;
+    [cell.selectBtn setSelected:model.IsSelect];
+    [cell.selectBtn setAction:^{
+        model.IsSelect = !model.IsSelect;
+        [weakSelf countMailArray:@[model]];
+        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+    }];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    WS(weakSelf);
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    MailSubModel * model = self.dataSourceArray[indexPath.row];
+    switch (model.TypeId) {
+        case 0:
+        {
+            model.IsSelect = !model.IsSelect;
+            [weakSelf countMailArray:@[model]];
+            [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+        }
+            break;
+        default:{
+            if (model.IsSelect) {
+                model.IsSelect = !model.IsSelect;
+                [weakSelf countMailArray:@[model]];
+                [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+            }else{
+                AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
+                vc.indexId = model.Id;
+                vc.isDefalutPage = 2;
+                vc.isMyGroup = 1;
+                vc.SourceType = 1;
+                vc.IsSubVC = YES;
+                vc.titleStr = model.Name;
+                [self.navigationController pushViewController:vc animated:YES];
+            }
+        }
+            break;
+    }
+}
+
+- (UIView *)myHeaderView
+{
+    if (!_myHeaderView) {
+        _myHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 44)];
+        MyTDGroupView * groupView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 4, SCREEN_WIDTH, 36)];
+        [_myHeaderView addSubview:groupView];
+        _myHeaderView.backgroundColor = UIColorHex(FFFFFF);
+    }
+    return _myHeaderView;
+}
+
+- (NSMutableArray *)dataSourceArray{
+    if (!_dataSourceArray) {
+        _dataSourceArray = [NSMutableArray array];
+    }
+    return _dataSourceArray;
+}
+- (UIButton *)allSelectBtn
+{
+    if (!_allSelectBtn) {
+        _allSelectBtn = [UIButton new];
+        [_allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+        [_allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateSelected];
+    }
+    return _allSelectBtn;
+}
+- (UILabel *)selectCountL
+{
+    if (!_selectCountL) {
+        _selectCountL = [UILabel new];
+        _selectCountL.font = Kfont(13);
+        _selectCountL.text = @"0";
+        _selectCountL.textColor = UIColorHex(0x0F88EB);
+    }
+    return _selectCountL;
+}
+- (UIView *)SortView
+{
+    if (!_SortView) {
+        _SortView = [UIView new];
+        _SortView.backgroundColor = UIColorHex(0xF0EFF4);
+    }
+    return _SortView;
+}
+- (void)addSortV
+{
+    self.height.constant = 82.f;
+    [self.HeadView addSubview:self.SortView];
+    [self.SortView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(38);
+        make.top.mas_equalTo(self.myHeaderView.mas_bottom);
+    }];
+    [self.SortView addSubview:self.allSelectBtn];
+    [self.SortView addSubview:self.selectCountL];
+    [self.allSelectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+        make.size.mas_offset(CGSizeMake(38, 38));
+    }];
+    UILabel * leftL = [UILabel new];
+    leftL.text = @"已选:";
+    leftL.textColor = UIColorHex(0x666666);
+    leftL.font = Kfont(13);
+    [self.SortView addSubview:leftL];
+    [leftL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.allSelectBtn.mas_right).offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    [self.selectCountL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(leftL.mas_right).offset(8);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    
+    WS(weakSelf);
+    [self.allSelectBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)selectedAction{
+    [self.allSelectBtn setSelected:self.isAllSelected];
+    NSInteger count = 0;
+    for (SelectModel * model in self.dataSourceArray) {
+        model.hadSelected = self.isAllSelected;
+        if (model.hadSelected) {
+            count ++;
+        }
+        [self countMailArray:@[model]];
+    }
+    self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
+    [self.tableView reloadData];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+    for (id detail in sssArray) {
+        SelectModel * ssmodel = [self addSelectModel:detail];
+        
+        __block BOOL isEque = NO;
+        [mailArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
+            if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId && sModel.TypeValue == ssmodel.TypeValue) {
+                isEque = YES;
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
+            }
+        }];
+        if (!isEque && ssmodel.hadSelected) {
+            NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
+            [mailArray addObject:ssdata];
+        }
+        USERDEFAULTSSET(mailArray, MAILSELECT);
+    }
+    if (mailArray.count > 0) {
+        self.rightBtn.enabled = YES;
+        [self.rightBtn setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.rightBtn setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.rightBtn.enabled = NO;
+        [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+        [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    }
+}
+- (SelectModel *)addSelectModel:(id)model
+{
+    if ([model isKindOfClass:[SelectModel class]]) {
+        SelectModel * sModel = (SelectModel *)model;
+        sModel.SourceType = 0;
+        sModel.SourceId = sModel.UserId;
+        sModel.SourceName = sModel.UserName;
+        sModel.hadSelected = sModel.hadSelected;
+        sModel.AvatarUrl = sModel.AvatarUrl;
+        return sModel;
+    }
+//    if ([model isKindOfClass:[MailModel class]]) {
+//        MailModel * mModel = (MailModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = 0;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = 0;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+//    if ([model isKindOfClass:[MailSubModel class]]) {
+//        MailSubModel * mModel = (MailSubModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = mModel.Id;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = mModel.TypeValue;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+    if ([model isKindOfClass:[Department class]]) {
+        Department * mModel = (Department *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = 1;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.hadSelected;
+        return sModel;
+    }
+    return nil;
+}
+@end
+
+

+ 21 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowSysVC.h

@@ -0,0 +1,21 @@
+//
+//  ShowSysVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ShowSysVC : BaseViewController
+@property (nonatomic, copy) FlowAttachmentsModel *sendModel;
+@property (strong,nonatomic) NSMutableArray      *dataSourceArray;
+@property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) BOOL                   IsSelect;
++(ShowSysVC *)initShowSysVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 327 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowSysVC.m

@@ -0,0 +1,327 @@
+//
+//  ShowSysVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ShowSysVC.h"
+#import "MailListCell.h"
+#import "MailListSearchVC.h"
+#import "MyTDGroupView.h"
+#import "ChatMsgListImModel.h"
+#import "MailListByZuVC.h"
+#import "EMChatViewController.h"
+#import "MailGroupVC.h"
+#import "MailChatVC.h"
+
+@interface ShowSysVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (strong,nonatomic) IBOutlet UITableView *tableView;
+@property (weak, nonatomic) IBOutlet UIView *CusNavBar;
+@property (weak, nonatomic) IBOutlet UIView *HeadView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
+@property (strong,nonatomic) UIView *   myHeaderView;
+@property (nonatomic, strong) UIButton    *rightBtn;
+@property (nonatomic, strong) UIView      *SortView;
+@property (nonatomic, strong) UIButton    *allSelectBtn;
+@property (nonatomic, strong) UILabel     *selectCountL;
+@property (nonatomic, assign) BOOL        isAllSelected;
+@end
+
+@implementation ShowSysVC
++(ShowSysVC *)initShowSysVC{
+    ShowSysVC *controller = [StoryboardManager.shared.mailList instantiateViewControllerWithIdentifier:@"ShowSysVC"];
+    return controller;
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = RGB(255, 255, 255);
+    [self.HeadView addSubview:self.myHeaderView];
+    if (self.IsSelect) {
+        [self addSortV];
+    }
+    WS(weakSelf);
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        MailListSearchVC *vc = [[MailListSearchVC alloc] init];
+        vc.isReturn = weakSelf.isReturn;
+        vc.sendModel = weakSelf.sendModel;
+        vc.DepartmentId = 0;
+        vc.SearchType = 0;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+     }];
+     [self.myHeaderView addGestureRecognizer:tap];
+    
+    if (@available(iOS 11.0, *)) {
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    } else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    self.tableView.backgroundColor = [UIColor clearColor];
+    [self.tableView reloadData];
+   
+    self.rightBtn = [UIButton new];
+    [self.CusNavBar addSubview:self.rightBtn];
+    [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+    [[self.rightBtn titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
+    self.rightBtn.hidden = !self.IsSelect;
+    [self.rightBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(self.CusNavBar);
+        make.top.bottom.mas_equalTo(self.CusNavBar);
+        make.right.mas_equalTo(self.CusNavBar.mas_right).offset(-15);
+    }];
+    [self.rightBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(messageReturnSuccess) name:MESSAGERETURNSUCCESS object:nil];
+}
+- (void)messageReturnSuccess
+{
+    self.isReturn = NO;
+}
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataSourceArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return [MailListCell configCell0Height];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+    WS(weakSelf);
+    MailListCell *cell = [MailListCell configCell00:tableView indexPath:indexPath];
+    cell.clipsToBounds = YES;
+    MailSubModel * model = self.dataSourceArray[indexPath.row];
+    cell.cell0TitleLabel.text = model.Name;
+    cell.countL.hidden = YES;
+    [cell.selectBtn setSelected:model.IsSelect];
+    [cell.selectBtn setAction:^{
+        model.IsSelect = !model.IsSelect;
+        [weakSelf countMailArray:@[model]];
+        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+    }];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    WS(weakSelf);
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    MailSubModel * model = self.dataSourceArray[indexPath.row];
+    if (model.IsSelect) {
+        model.IsSelect = !model.IsSelect;
+        [weakSelf countMailArray:@[model]];
+        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+    }else{
+        switch (model.TypeValue) {
+            case 20:
+            {
+                MailGroupVC * vc = [[MailGroupVC alloc] init];
+                vc.IsSelect = YES;
+                vc.titleStr = model.Name;
+                vc.TypeValue = model.TypeValue;
+                vc.TypeId = model.TypeId;
+                [self.navigationController pushViewController:vc animated:YES];
+            }
+                break;
+            case 21:
+            {
+                MailChatVC * vc = [[MailChatVC alloc] init];
+                vc.IsSelect = YES;
+                vc.titleStr = model.Name;
+                vc.TypeValue = model.TypeValue;
+                vc.TypeId = model.TypeId;
+                [self.navigationController pushViewController:vc animated:YES];
+            }
+                break;
+            default:
+                break;
+        }
+    }
+}
+
+- (UIView *)myHeaderView
+{
+    if (!_myHeaderView) {
+        _myHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 44)];
+        MyTDGroupView * groupView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 4, SCREEN_WIDTH, 36)];
+        [_myHeaderView addSubview:groupView];
+        _myHeaderView.backgroundColor = UIColorHex(FFFFFF);
+    }
+    return _myHeaderView;
+}
+
+- (NSMutableArray *)dataSourceArray{
+    if (!_dataSourceArray) {
+        _dataSourceArray = [NSMutableArray array];
+    }
+    return _dataSourceArray;
+}
+- (UIButton *)allSelectBtn
+{
+    if (!_allSelectBtn) {
+        _allSelectBtn = [UIButton new];
+        [_allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+        [_allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateSelected];
+    }
+    return _allSelectBtn;
+}
+- (UILabel *)selectCountL
+{
+    if (!_selectCountL) {
+        _selectCountL = [UILabel new];
+        _selectCountL.font = Kfont(13);
+        _selectCountL.text = @"0";
+        _selectCountL.textColor = UIColorHex(0x0F88EB);
+    }
+    return _selectCountL;
+}
+- (UIView *)SortView
+{
+    if (!_SortView) {
+        _SortView = [UIView new];
+        _SortView.backgroundColor = UIColorHex(0xF0EFF4);
+    }
+    return _SortView;
+}
+- (void)addSortV
+{
+    self.height.constant = 82.f;
+    [self.HeadView addSubview:self.SortView];
+    [self.SortView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(38);
+        make.top.mas_equalTo(self.myHeaderView.mas_bottom);
+    }];
+    [self.SortView addSubview:self.allSelectBtn];
+    [self.SortView addSubview:self.selectCountL];
+    [self.allSelectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+        make.size.mas_offset(CGSizeMake(38, 38));
+    }];
+    UILabel * leftL = [UILabel new];
+    leftL.text = @"已选:";
+    leftL.textColor = UIColorHex(0x666666);
+    leftL.font = Kfont(13);
+    [self.SortView addSubview:leftL];
+    [leftL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.allSelectBtn.mas_right).offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    [self.selectCountL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(leftL.mas_right).offset(8);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    
+    WS(weakSelf);
+    [self.allSelectBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)selectedAction{
+    [self.allSelectBtn setSelected:self.isAllSelected];
+    NSInteger count = 0;
+    for (MailSubModel * model in self.dataSourceArray) {
+        model.IsSelect = self.isAllSelected;
+        if (model.IsSelect) {
+            count ++;
+        }
+        [self countMailArray:@[model]];
+    }
+    self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
+    [self.tableView reloadData];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+    for (id detail in sssArray) {
+        SelectModel * ssmodel = [self addSelectModel:detail];
+        
+        __block BOOL isEque = NO;
+        [mailArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
+            if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId && sModel.TypeValue == ssmodel.TypeValue) {
+                isEque = YES;
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
+            }
+        }];
+        if (!isEque && ssmodel.hadSelected) {
+            NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
+            [mailArray addObject:ssdata];
+        }
+        USERDEFAULTSSET(mailArray, MAILSELECT);
+    }
+    if (mailArray.count > 0) {
+        self.rightBtn.enabled = YES;
+        [self.rightBtn setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.rightBtn setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.rightBtn.enabled = NO;
+        [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+        [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    }
+}
+- (SelectModel *)addSelectModel:(id)model
+{
+    if ([model isKindOfClass:[SelectModel class]]) {
+        SelectModel * sModel = (SelectModel *)model;
+        sModel.SourceType = 0;
+        sModel.SourceId = sModel.UserId;
+        sModel.SourceName = sModel.UserName;
+        sModel.hadSelected = sModel.hadSelected;
+        sModel.AvatarUrl = sModel.AvatarUrl;
+        return sModel;
+    }
+    if ([model isKindOfClass:[MailModel class]]) {
+        MailModel * mModel = (MailModel *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = mModel.TypeId;
+        sModel.SourceId = 0;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.IsSelect;
+        return sModel;
+    }
+    if ([model isKindOfClass:[MailSubModel class]]) {
+        MailSubModel * mModel = (MailSubModel *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = mModel.TypeId;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = mModel.TypeValue;
+        sModel.hadSelected = mModel.IsSelect;
+        return sModel;
+    }
+    if ([model isKindOfClass:[Department class]]) {
+        Department * mModel = (Department *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = 1;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.hadSelected;
+        return sModel;
+    }
+    return nil;
+}
+@end
+
+

+ 21 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowUserVC.h

@@ -0,0 +1,21 @@
+//
+//  ShowUserVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ShowUserVC : BaseViewController
+@property (nonatomic, copy) FlowAttachmentsModel *sendModel;
+@property (strong,nonatomic) NSMutableArray      *dataSourceArray;
+@property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) BOOL                   IsSelect;
++(ShowUserVC *)initShowUserVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 293 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/ShowUserVC.m

@@ -0,0 +1,293 @@
+//
+//  ShowUserVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/26.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ShowUserVC.h"
+#import "MailListByZuCell.h"
+#import "MailListSearchVC.h"
+#import "MyTDGroupView.h"
+#import "ChatMsgListImModel.h"
+#import "MailListByZuVC.h"
+#import "EMChatViewController.h"
+#import "MailGroupVC.h"
+#import "MailChatVC.h"
+
+@interface ShowUserVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (strong,nonatomic) IBOutlet UITableView *tableView;
+@property (weak, nonatomic) IBOutlet UIView *CusNavBar;
+@property (weak, nonatomic) IBOutlet UIView *HeadView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
+@property (strong,nonatomic) UIView *   myHeaderView;
+@property (nonatomic, strong) UIButton    *rightBtn;
+@property (nonatomic, strong) UIView      *SortView;
+@property (nonatomic, strong) UIButton    *allSelectBtn;
+@property (nonatomic, strong) UILabel     *selectCountL;
+@property (nonatomic, assign) BOOL        isAllSelected;
+@end
+
+@implementation ShowUserVC
++(ShowUserVC *)initShowUserVC{
+    ShowUserVC *controller = [StoryboardManager.shared.mailList instantiateViewControllerWithIdentifier:@"ShowUserVC"];
+    return controller;
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = RGB(255, 255, 255);
+    [self.HeadView addSubview:self.myHeaderView];
+    if (self.IsSelect) {
+        [self addSortV];
+    }
+    WS(weakSelf);
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        MailListSearchVC *vc = [[MailListSearchVC alloc] init];
+        vc.isReturn = weakSelf.isReturn;
+        vc.sendModel = weakSelf.sendModel;
+        vc.DepartmentId = 0;
+        vc.SearchType = 0;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+     }];
+     [self.myHeaderView addGestureRecognizer:tap];
+    
+    if (@available(iOS 11.0, *)) {
+        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+    } else {
+        self.automaticallyAdjustsScrollViewInsets = NO;
+    }
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    self.tableView.backgroundColor = [UIColor clearColor];
+    [self.tableView reloadData];
+   
+    self.rightBtn = [UIButton new];
+    [self.CusNavBar addSubview:self.rightBtn];
+    [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+    [[self.rightBtn titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
+    self.rightBtn.hidden = !self.IsSelect;
+    [self.rightBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.centerY.equalTo(self.CusNavBar);
+        make.top.bottom.mas_equalTo(self.CusNavBar);
+        make.right.mas_equalTo(self.CusNavBar.mas_right).offset(-15);
+    }];
+    [self.rightBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataSourceArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return [MailListByZuCell configCell1Height];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+    WS(weakSelf);
+    MailListByZuCell *cell = [MailListByZuCell configCell1:tableView indexPath:indexPath];
+    SelectModel * model = self.dataSourceArray[indexPath.row];
+    [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:[UIImage imageNamed:@"chatmsg_list_testuser_img"]];
+    cell.cell0TitleLabel.text = model.UserName;
+    [cell.selectBtn setSelected:model.hadSelected];
+    [cell.selectBtn setAction:^{
+        model.hadSelected = !model.hadSelected;
+        [weakSelf countMailArray:@[model]];
+        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+    }];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    SelectModel * model = self.dataSourceArray[indexPath.row];
+    model.hadSelected = !model.hadSelected;
+    [self countMailArray:@[model]];
+    [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+}
+
+- (UIView *)myHeaderView
+{
+    if (!_myHeaderView) {
+        _myHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 44)];
+        MyTDGroupView * groupView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 4, SCREEN_WIDTH, 36)];
+        [_myHeaderView addSubview:groupView];
+        _myHeaderView.backgroundColor = UIColorHex(FFFFFF);
+    }
+    return _myHeaderView;
+}
+
+- (NSMutableArray *)dataSourceArray{
+    if (!_dataSourceArray) {
+        _dataSourceArray = [NSMutableArray array];
+    }
+    return _dataSourceArray;
+}
+- (UIButton *)allSelectBtn
+{
+    if (!_allSelectBtn) {
+        _allSelectBtn = [UIButton new];
+        [_allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+        [_allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateSelected];
+    }
+    return _allSelectBtn;
+}
+- (UILabel *)selectCountL
+{
+    if (!_selectCountL) {
+        _selectCountL = [UILabel new];
+        _selectCountL.font = Kfont(13);
+        _selectCountL.text = @"0";
+        _selectCountL.textColor = UIColorHex(0x0F88EB);
+    }
+    return _selectCountL;
+}
+- (UIView *)SortView
+{
+    if (!_SortView) {
+        _SortView = [UIView new];
+        _SortView.backgroundColor = UIColorHex(0xF0EFF4);
+    }
+    return _SortView;
+}
+- (void)addSortV
+{
+    self.height.constant = 82.f;
+    [self.HeadView addSubview:self.SortView];
+    [self.SortView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(38);
+        make.top.mas_equalTo(self.myHeaderView.mas_bottom);
+    }];
+    [self.SortView addSubview:self.allSelectBtn];
+    [self.SortView addSubview:self.selectCountL];
+    [self.allSelectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+        make.size.mas_offset(CGSizeMake(38, 38));
+    }];
+    UILabel * leftL = [UILabel new];
+    leftL.text = @"已选:";
+    leftL.textColor = UIColorHex(0x666666);
+    leftL.font = Kfont(13);
+    [self.SortView addSubview:leftL];
+    [leftL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.allSelectBtn.mas_right).offset(5);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    [self.selectCountL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(leftL.mas_right).offset(8);
+        make.centerY.mas_equalTo(self.SortView);
+    }];
+    
+    WS(weakSelf);
+    [self.allSelectBtn setAction:^{
+        weakSelf.isAllSelected = !weakSelf.isAllSelected;
+        [weakSelf selectedAction];
+    }];
+}
+- (void)selectedAction{
+    [self.allSelectBtn setSelected:self.isAllSelected];
+    NSInteger count = 0;
+    for (SelectModel * model in self.dataSourceArray) {
+        model.hadSelected = self.isAllSelected;
+        if (model.hadSelected) {
+            count ++;
+        }
+        [self countMailArray:@[model]];
+    }
+    self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
+    [self.tableView reloadData];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+    for (id detail in sssArray) {
+        SelectModel * ssmodel = [self addSelectModel:detail];
+        
+        __block BOOL isEque = NO;
+        [mailArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
+            if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId && sModel.TypeValue == ssmodel.TypeValue) {
+                isEque = YES;
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
+            }
+        }];
+        if (!isEque && ssmodel.hadSelected) {
+            NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
+            [mailArray addObject:ssdata];
+        }
+        USERDEFAULTSSET(mailArray, MAILSELECT);
+    }
+    if (mailArray.count > 0) {
+        self.rightBtn.enabled = YES;
+        [self.rightBtn setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.rightBtn setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.rightBtn.enabled = NO;
+        [self.rightBtn setTitle:@"确定" forState:UIControlStateNormal];
+        [self.rightBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    }
+}
+- (SelectModel *)addSelectModel:(id)model
+{
+    if ([model isKindOfClass:[SelectModel class]]) {
+        SelectModel * sModel = (SelectModel *)model;
+        sModel.SourceType = 0;
+        sModel.SourceId = sModel.UserId;
+        sModel.SourceName = sModel.UserName;
+        sModel.hadSelected = sModel.hadSelected;
+        sModel.AvatarUrl = sModel.AvatarUrl;
+        return sModel;
+    }
+//    if ([model isKindOfClass:[MailModel class]]) {
+//        MailModel * mModel = (MailModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = 0;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = 0;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+//    if ([model isKindOfClass:[MailSubModel class]]) {
+//        MailSubModel * mModel = (MailSubModel *)model;
+//        SelectModel * sModel = [[SelectModel alloc] init];
+//        sModel.SourceType = mModel.TypeId;
+//        sModel.SourceId = mModel.Id;
+//        sModel.SourceName = mModel.Name;
+//        sModel.TypeValue = mModel.TypeValue;
+//        sModel.hadSelected = mModel.IsSelect;
+//        return sModel;
+//    }
+    if ([model isKindOfClass:[Department class]]) {
+        Department * mModel = (Department *)model;
+        SelectModel * sModel = [[SelectModel alloc] init];
+        sModel.SourceType = 1;
+        sModel.SourceId = mModel.Id;
+        sModel.SourceName = mModel.Name;
+        sModel.TypeValue = 0;
+        sModel.hadSelected = mModel.hadSelected;
+        return sModel;
+    }
+    return nil;
+}
+@end
+
+

+ 360 - 6
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/MailList.storyboard

@@ -35,7 +35,7 @@
                                         <rect key="frame" x="0.0" y="20" width="414" height="44"/>
                                         <subviews>
                                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KIm-tT-1th">
-                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <rect key="frame" x="0.0" y="-0.33333333333333215" width="50" height="44"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="44" id="7Tz-DP-15D"/>
                                                     <constraint firstAttribute="width" constant="50" id="D3K-et-uvO"/>
@@ -46,10 +46,9 @@
                                                 </connections>
                                             </button>
                                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Fb1-Cv-ywn">
-                                                <rect key="frame" x="52" y="-3" width="31" height="50"/>
+                                                <rect key="frame" x="52" y="0.0" width="40" height="43.666666666666664"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="height" constant="50" id="AqQ-aR-ppd"/>
-                                                    <constraint firstAttribute="width" constant="31" id="BOh-qe-Nbd"/>
+                                                    <constraint firstAttribute="width" constant="40" id="BOh-qe-Nbd"/>
                                                 </constraints>
                                                 <state key="normal" image="menu_black_icon">
                                                     <color key="titleColor" red="0.058823529409999999" green="0.49803921569999998" blue="0.85098039219999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -84,15 +83,16 @@
                                         <constraints>
                                             <constraint firstItem="KIm-tT-1th" firstAttribute="leading" secondItem="XCM-oM-KDL" secondAttribute="leading" id="238-ve-rRP"/>
                                             <constraint firstItem="Fb1-Cv-ywn" firstAttribute="centerY" secondItem="KIm-tT-1th" secondAttribute="centerY" id="2pQ-RF-0o2"/>
-                                            <constraint firstAttribute="bottom" secondItem="KIm-tT-1th" secondAttribute="bottom" id="BxF-zU-0pd"/>
+                                            <constraint firstItem="Fb1-Cv-ywn" firstAttribute="leading" secondItem="KIm-tT-1th" secondAttribute="trailing" constant="2" id="3Bf-aR-y28"/>
                                             <constraint firstAttribute="bottom" secondItem="caN-Dk-YtH" secondAttribute="bottom" id="Iql-Xv-Enm"/>
                                             <constraint firstAttribute="trailing" secondItem="caN-Dk-YtH" secondAttribute="trailing" id="LBA-21-l3h"/>
+                                            <constraint firstItem="Kye-rG-08R" firstAttribute="top" secondItem="Fb1-Cv-ywn" secondAttribute="bottom" id="MIm-ng-viY"/>
                                             <constraint firstItem="cY5-AX-PcZ" firstAttribute="centerX" secondItem="XCM-oM-KDL" secondAttribute="centerX" id="Nvk-od-9Ts"/>
                                             <constraint firstItem="cY5-AX-PcZ" firstAttribute="width" secondItem="XCM-oM-KDL" secondAttribute="width" multiplier="0.5" id="SlL-s5-a55"/>
-                                            <constraint firstItem="Fb1-Cv-ywn" firstAttribute="leading" secondItem="KIm-tT-1th" secondAttribute="trailing" constant="2" id="TJj-fU-9Dy"/>
                                             <constraint firstItem="Kye-rG-08R" firstAttribute="leading" secondItem="XCM-oM-KDL" secondAttribute="leading" id="dx8-3v-Fm2"/>
                                             <constraint firstAttribute="bottom" secondItem="Kye-rG-08R" secondAttribute="bottom" id="fl7-ih-95Y"/>
                                             <constraint firstAttribute="trailing" secondItem="Kye-rG-08R" secondAttribute="trailing" id="gcb-Zy-wct"/>
+                                            <constraint firstItem="Fb1-Cv-ywn" firstAttribute="top" secondItem="XCM-oM-KDL" secondAttribute="top" id="oBJ-Ol-dqM"/>
                                             <constraint firstItem="caN-Dk-YtH" firstAttribute="centerY" secondItem="cY5-AX-PcZ" secondAttribute="centerY" id="rfO-G3-nT0"/>
                                             <constraint firstAttribute="height" constant="44" id="uTs-6Y-upH"/>
                                         </constraints>
@@ -1593,6 +1593,360 @@
             </objects>
             <point key="canvasLocation" x="-268" y="1538"/>
         </scene>
+        <!--Show SysVC-->
+        <scene sceneID="qOz-hQ-AKv">
+            <objects>
+                <viewController storyboardIdentifier="ShowSysVC" id="q1W-f9-tFZ" customClass="ShowSysVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="CBf-bU-hiN">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UTW-nd-GP7" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZFC-sg-zhZ">
+                                        <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="d64-XK-A4y">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="BSp-Be-kUo"/>
+                                                    <constraint firstAttribute="width" constant="50" id="wdg-XX-Hht"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="q1W-f9-tFZ" eventType="touchUpInside" id="62b-3Q-vWH"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nJx-o1-Ona">
+                                                <rect key="frame" x="52" y="-3" width="31" height="50"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="31" id="8tE-r1-HYF"/>
+                                                    <constraint firstAttribute="height" constant="50" id="PuR-mH-q5P"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon">
+                                                    <color key="titleColor" red="0.058823529409999999" green="0.49803921569999998" blue="0.85098039219999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="q1W-f9-tFZ" eventType="touchUpInside" id="Klz-0j-PZg"/>
+                                                </connections>
+                                            </button>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选人" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NCm-TK-j2H">
+                                                <rect key="frame" x="190.66666666666666" y="12.333333333333334" width="32.666666666666657" height="19.333333333333329"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QIJ-R8-qIx">
+                                                <rect key="frame" x="0.0" y="43.666666666666664" width="414" height="0.3333333333333357"/>
+                                                <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="0.5" id="LaF-fS-r6T"/>
+                                                </constraints>
+                                            </view>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="bottom" secondItem="QIJ-R8-qIx" secondAttribute="bottom" id="2oZ-Lh-kr6"/>
+                                            <constraint firstItem="QIJ-R8-qIx" firstAttribute="leading" secondItem="ZFC-sg-zhZ" secondAttribute="leading" id="8D5-nr-dVk"/>
+                                            <constraint firstAttribute="trailing" secondItem="QIJ-R8-qIx" secondAttribute="trailing" id="9eb-wJ-lnn"/>
+                                            <constraint firstItem="NCm-TK-j2H" firstAttribute="centerX" secondItem="ZFC-sg-zhZ" secondAttribute="centerX" id="DGA-Ow-TFK"/>
+                                            <constraint firstAttribute="bottom" secondItem="d64-XK-A4y" secondAttribute="bottom" id="Dw4-zw-gaH"/>
+                                            <constraint firstItem="nJx-o1-Ona" firstAttribute="leading" secondItem="d64-XK-A4y" secondAttribute="trailing" constant="2" id="Qef-d6-bLU"/>
+                                            <constraint firstItem="NCm-TK-j2H" firstAttribute="centerY" secondItem="nJx-o1-Ona" secondAttribute="centerY" id="Qq6-Zg-l4H"/>
+                                            <constraint firstItem="nJx-o1-Ona" firstAttribute="centerY" secondItem="d64-XK-A4y" secondAttribute="centerY" id="cR5-2U-X3F"/>
+                                            <constraint firstAttribute="height" constant="44" id="j8f-yF-TS7"/>
+                                            <constraint firstItem="d64-XK-A4y" firstAttribute="leading" secondItem="ZFC-sg-zhZ" secondAttribute="leading" id="rRB-jR-9QV"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="ZFC-sg-zhZ" firstAttribute="leading" secondItem="UTW-nd-GP7" secondAttribute="leading" id="6RF-SR-adn"/>
+                                    <constraint firstAttribute="height" constant="64" id="GJa-Y8-tLw"/>
+                                    <constraint firstAttribute="bottom" secondItem="ZFC-sg-zhZ" secondAttribute="bottom" id="cIW-G9-ddw"/>
+                                    <constraint firstItem="ZFC-sg-zhZ" firstAttribute="trailing" secondItem="UTW-nd-GP7" secondAttribute="trailing" id="fzt-dW-q62"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="FST-AW-jro"/>
+                                <connections>
+                                    <outlet property="height" destination="GJa-Y8-tLw" id="X8c-Kb-HGj"/>
+                                </connections>
+                            </view>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="iY1-SV-Ijj">
+                                <rect key="frame" x="0.0" y="108" width="414" height="628"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                            </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iqB-K4-Ais">
+                                <rect key="frame" x="0.0" y="64" width="414" height="44"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="44" id="9uI-5I-9a2"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="UTW-nd-GP7" firstAttribute="leading" secondItem="agT-Kc-3ep" secondAttribute="leading" id="2SD-D7-S2B"/>
+                            <constraint firstItem="UTW-nd-GP7" firstAttribute="trailing" secondItem="agT-Kc-3ep" secondAttribute="trailing" id="6jj-53-0yo"/>
+                            <constraint firstItem="UTW-nd-GP7" firstAttribute="top" secondItem="CBf-bU-hiN" secondAttribute="top" id="EAb-my-mEG"/>
+                            <constraint firstItem="agT-Kc-3ep" firstAttribute="trailing" secondItem="iY1-SV-Ijj" secondAttribute="trailing" id="Hkm-8Q-XdN"/>
+                            <constraint firstItem="iqB-K4-Ais" firstAttribute="top" secondItem="UTW-nd-GP7" secondAttribute="bottom" id="Jc7-f2-qLU"/>
+                            <constraint firstItem="iY1-SV-Ijj" firstAttribute="leading" secondItem="agT-Kc-3ep" secondAttribute="leading" id="Ri2-a5-n8A"/>
+                            <constraint firstItem="iY1-SV-Ijj" firstAttribute="top" secondItem="iqB-K4-Ais" secondAttribute="bottom" id="So5-QE-DCd"/>
+                            <constraint firstItem="agT-Kc-3ep" firstAttribute="trailing" secondItem="iqB-K4-Ais" secondAttribute="trailing" id="TGb-5F-Nw6"/>
+                            <constraint firstItem="iqB-K4-Ais" firstAttribute="leading" secondItem="agT-Kc-3ep" secondAttribute="leading" id="mCb-7m-17n"/>
+                            <constraint firstItem="agT-Kc-3ep" firstAttribute="bottom" secondItem="iY1-SV-Ijj" secondAttribute="bottom" id="xBb-Ol-B0U"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="agT-Kc-3ep"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="Q1m-Y9-Edu"/>
+                    <connections>
+                        <outlet property="CusNavBar" destination="ZFC-sg-zhZ" id="R6v-zg-jF9"/>
+                        <outlet property="HeadView" destination="iqB-K4-Ais" id="BK0-lK-Pb0"/>
+                        <outlet property="height" destination="9uI-5I-9a2" id="D9V-Zk-ZpF"/>
+                        <outlet property="tableView" destination="iY1-SV-Ijj" id="C22-xk-dyZ"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="3Mu-Hd-BJU" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="457.97101449275368" y="1537.5000000000002"/>
+        </scene>
+        <!--Show UserVC-->
+        <scene sceneID="PtQ-az-z5L">
+            <objects>
+                <viewController storyboardIdentifier="ShowUserVC" id="FqM-WJ-t1L" customClass="ShowUserVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="IvA-NK-saP">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uqh-DY-nHk" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BBa-nA-0I6">
+                                        <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uzs-AA-Aeu">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="FA4-c5-wYr"/>
+                                                    <constraint firstAttribute="width" constant="50" id="I2d-3a-4TW"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="FqM-WJ-t1L" eventType="touchUpInside" id="ZDh-LW-Hkn"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="oXU-jV-Nyb">
+                                                <rect key="frame" x="52" y="-3" width="31" height="50"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="31" id="YTc-Xg-p9m"/>
+                                                    <constraint firstAttribute="height" constant="50" id="h1P-Zz-vNk"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon">
+                                                    <color key="titleColor" red="0.058823529409999999" green="0.49803921569999998" blue="0.85098039219999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="FqM-WJ-t1L" eventType="touchUpInside" id="E19-LT-fON"/>
+                                                </connections>
+                                            </button>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选人" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xIJ-Sx-aaY">
+                                                <rect key="frame" x="190.66666666666666" y="12.333333333333334" width="32.666666666666657" height="19.333333333333329"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="d7L-XO-UPK">
+                                                <rect key="frame" x="0.0" y="43.666666666666664" width="414" height="0.3333333333333357"/>
+                                                <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="0.5" id="t7A-TE-oTh"/>
+                                                </constraints>
+                                            </view>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="44" id="3Fu-ni-dBl"/>
+                                            <constraint firstItem="oXU-jV-Nyb" firstAttribute="centerY" secondItem="uzs-AA-Aeu" secondAttribute="centerY" id="3hz-hz-tf7"/>
+                                            <constraint firstItem="uzs-AA-Aeu" firstAttribute="leading" secondItem="BBa-nA-0I6" secondAttribute="leading" id="7hi-Bc-t3u"/>
+                                            <constraint firstItem="xIJ-Sx-aaY" firstAttribute="centerY" secondItem="oXU-jV-Nyb" secondAttribute="centerY" id="8xU-Md-BIl"/>
+                                            <constraint firstAttribute="trailing" secondItem="d7L-XO-UPK" secondAttribute="trailing" id="Etd-ni-PkF"/>
+                                            <constraint firstItem="xIJ-Sx-aaY" firstAttribute="centerX" secondItem="BBa-nA-0I6" secondAttribute="centerX" id="OMP-ey-gkO"/>
+                                            <constraint firstAttribute="bottom" secondItem="d7L-XO-UPK" secondAttribute="bottom" id="Onh-FX-Dew"/>
+                                            <constraint firstItem="oXU-jV-Nyb" firstAttribute="leading" secondItem="uzs-AA-Aeu" secondAttribute="trailing" constant="2" id="XM3-J9-3QY"/>
+                                            <constraint firstItem="d7L-XO-UPK" firstAttribute="leading" secondItem="BBa-nA-0I6" secondAttribute="leading" id="c2Y-A6-BLu"/>
+                                            <constraint firstAttribute="bottom" secondItem="uzs-AA-Aeu" secondAttribute="bottom" id="vRR-jF-qCG"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="BBa-nA-0I6" firstAttribute="trailing" secondItem="Uqh-DY-nHk" secondAttribute="trailing" id="7VU-pN-btE"/>
+                                    <constraint firstAttribute="bottom" secondItem="BBa-nA-0I6" secondAttribute="bottom" id="LMh-3l-NI1"/>
+                                    <constraint firstAttribute="height" constant="64" id="OVr-4N-m7M"/>
+                                    <constraint firstItem="BBa-nA-0I6" firstAttribute="leading" secondItem="Uqh-DY-nHk" secondAttribute="leading" id="QdH-If-Im5"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="dSG-sv-1JW"/>
+                                <connections>
+                                    <outlet property="height" destination="OVr-4N-m7M" id="jiV-CE-oBV"/>
+                                </connections>
+                            </view>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="PRH-eZ-NyQ">
+                                <rect key="frame" x="0.0" y="108" width="414" height="628"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                            </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3mz-1s-ApM">
+                                <rect key="frame" x="0.0" y="64" width="414" height="44"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="44" id="Szc-DR-teY"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="3mz-1s-ApM" firstAttribute="leading" secondItem="hqK-x5-aIF" secondAttribute="leading" id="3Wd-Y6-FgA"/>
+                            <constraint firstItem="PRH-eZ-NyQ" firstAttribute="top" secondItem="3mz-1s-ApM" secondAttribute="bottom" id="8ed-6b-aaZ"/>
+                            <constraint firstItem="hqK-x5-aIF" firstAttribute="trailing" secondItem="3mz-1s-ApM" secondAttribute="trailing" id="Jz9-jk-cvt"/>
+                            <constraint firstItem="Uqh-DY-nHk" firstAttribute="trailing" secondItem="hqK-x5-aIF" secondAttribute="trailing" id="ZCJ-xB-fJs"/>
+                            <constraint firstItem="3mz-1s-ApM" firstAttribute="top" secondItem="Uqh-DY-nHk" secondAttribute="bottom" id="e3r-W9-Q7x"/>
+                            <constraint firstItem="Uqh-DY-nHk" firstAttribute="leading" secondItem="hqK-x5-aIF" secondAttribute="leading" id="hzP-on-06S"/>
+                            <constraint firstItem="Uqh-DY-nHk" firstAttribute="top" secondItem="IvA-NK-saP" secondAttribute="top" id="jSA-yw-kcj"/>
+                            <constraint firstItem="PRH-eZ-NyQ" firstAttribute="leading" secondItem="hqK-x5-aIF" secondAttribute="leading" id="nJ8-7l-gSr"/>
+                            <constraint firstItem="hqK-x5-aIF" firstAttribute="bottom" secondItem="PRH-eZ-NyQ" secondAttribute="bottom" id="q8P-2N-a0P"/>
+                            <constraint firstItem="hqK-x5-aIF" firstAttribute="trailing" secondItem="PRH-eZ-NyQ" secondAttribute="trailing" id="tJb-ND-VKH"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="hqK-x5-aIF"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="qfi-bK-9ie"/>
+                    <connections>
+                        <outlet property="CusNavBar" destination="BBa-nA-0I6" id="KgW-4b-K70"/>
+                        <outlet property="HeadView" destination="3mz-1s-ApM" id="gz7-NY-xET"/>
+                        <outlet property="height" destination="Szc-DR-teY" id="bqT-xy-U0H"/>
+                        <outlet property="tableView" destination="PRH-eZ-NyQ" id="OB5-Gw-P5E"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="CMK-kJ-koz" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="457.97101449275368" y="1537.5000000000002"/>
+        </scene>
+        <!--Show DesVC-->
+        <scene sceneID="VgT-br-u9d">
+            <objects>
+                <viewController storyboardIdentifier="ShowDesVC" id="AeB-h6-2lf" customClass="ShowDesVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="v9U-4h-f5E">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KhC-lf-xNt" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7mD-Lg-4Qy">
+                                        <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bS6-Qk-oua">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="XRq-rX-pnp"/>
+                                                    <constraint firstAttribute="width" constant="50" id="nwb-A5-Nrp"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="AeB-h6-2lf" eventType="touchUpInside" id="JMZ-kl-9DW"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iTm-1s-6hI">
+                                                <rect key="frame" x="52" y="-3" width="31" height="50"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="31" id="AKi-iF-d6Y"/>
+                                                    <constraint firstAttribute="height" constant="50" id="fPv-4e-0Ys"/>
+                                                </constraints>
+                                                <state key="normal" image="menu_black_icon">
+                                                    <color key="titleColor" red="0.058823529409999999" green="0.49803921569999998" blue="0.85098039219999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="menuAction:" destination="AeB-h6-2lf" eventType="touchUpInside" id="4nt-nM-Yjn"/>
+                                                </connections>
+                                            </button>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选人" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LV2-Wi-fUs">
+                                                <rect key="frame" x="190.66666666666666" y="12.333333333333334" width="32.666666666666657" height="19.333333333333329"/>
+                                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                                <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Tf-eE-exC">
+                                                <rect key="frame" x="0.0" y="43.666666666666664" width="414" height="0.3333333333333357"/>
+                                                <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="0.5" id="jWy-ud-eBt"/>
+                                                </constraints>
+                                            </view>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstItem="iTm-1s-6hI" firstAttribute="leading" secondItem="bS6-Qk-oua" secondAttribute="trailing" constant="2" id="29X-OI-TWv"/>
+                                            <constraint firstItem="iTm-1s-6hI" firstAttribute="centerY" secondItem="bS6-Qk-oua" secondAttribute="centerY" id="3id-f3-hXM"/>
+                                            <constraint firstAttribute="bottom" secondItem="bS6-Qk-oua" secondAttribute="bottom" id="FVY-ee-WMT"/>
+                                            <constraint firstItem="9Tf-eE-exC" firstAttribute="leading" secondItem="7mD-Lg-4Qy" secondAttribute="leading" id="RCP-64-VuU"/>
+                                            <constraint firstItem="bS6-Qk-oua" firstAttribute="leading" secondItem="7mD-Lg-4Qy" secondAttribute="leading" id="iZA-MA-hzt"/>
+                                            <constraint firstAttribute="trailing" secondItem="9Tf-eE-exC" secondAttribute="trailing" id="k0A-fJ-AZf"/>
+                                            <constraint firstAttribute="height" constant="44" id="p8f-cO-ana"/>
+                                            <constraint firstItem="LV2-Wi-fUs" firstAttribute="centerY" secondItem="iTm-1s-6hI" secondAttribute="centerY" id="q1a-Vk-Fcq"/>
+                                            <constraint firstAttribute="bottom" secondItem="9Tf-eE-exC" secondAttribute="bottom" id="qTe-pu-Wky"/>
+                                            <constraint firstItem="LV2-Wi-fUs" firstAttribute="centerX" secondItem="7mD-Lg-4Qy" secondAttribute="centerX" id="yNG-yD-UhA"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="7mD-Lg-4Qy" firstAttribute="leading" secondItem="KhC-lf-xNt" secondAttribute="leading" id="HdJ-Jv-M4S"/>
+                                    <constraint firstAttribute="bottom" secondItem="7mD-Lg-4Qy" secondAttribute="bottom" id="cxH-5S-1EZ"/>
+                                    <constraint firstAttribute="height" constant="64" id="gM0-iL-KrW"/>
+                                    <constraint firstItem="7mD-Lg-4Qy" firstAttribute="trailing" secondItem="KhC-lf-xNt" secondAttribute="trailing" id="jMs-yI-rv3"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="bLa-vb-zWw"/>
+                                <connections>
+                                    <outlet property="height" destination="gM0-iL-KrW" id="QAU-YN-Hnj"/>
+                                </connections>
+                            </view>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="knT-uB-E4K">
+                                <rect key="frame" x="0.0" y="108" width="414" height="628"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                            </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9Zw-Py-Omn">
+                                <rect key="frame" x="0.0" y="64" width="414" height="44"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="44" id="jnu-t7-ytl"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="9Zw-Py-Omn" firstAttribute="leading" secondItem="6Ec-kA-0c2" secondAttribute="leading" id="2hd-w9-Kz8"/>
+                            <constraint firstItem="9Zw-Py-Omn" firstAttribute="top" secondItem="KhC-lf-xNt" secondAttribute="bottom" id="93X-VZ-bps"/>
+                            <constraint firstItem="6Ec-kA-0c2" firstAttribute="bottom" secondItem="knT-uB-E4K" secondAttribute="bottom" id="94L-Ha-5tM"/>
+                            <constraint firstItem="KhC-lf-xNt" firstAttribute="top" secondItem="v9U-4h-f5E" secondAttribute="top" id="CDI-Oi-hLT"/>
+                            <constraint firstItem="6Ec-kA-0c2" firstAttribute="trailing" secondItem="knT-uB-E4K" secondAttribute="trailing" id="LuW-bf-O3L"/>
+                            <constraint firstItem="KhC-lf-xNt" firstAttribute="trailing" secondItem="6Ec-kA-0c2" secondAttribute="trailing" id="NrK-Bi-Z3e"/>
+                            <constraint firstItem="6Ec-kA-0c2" firstAttribute="trailing" secondItem="9Zw-Py-Omn" secondAttribute="trailing" id="Ryl-zA-mhy"/>
+                            <constraint firstItem="KhC-lf-xNt" firstAttribute="leading" secondItem="6Ec-kA-0c2" secondAttribute="leading" id="gtr-TJ-l7w"/>
+                            <constraint firstItem="knT-uB-E4K" firstAttribute="leading" secondItem="6Ec-kA-0c2" secondAttribute="leading" id="h3f-oR-HiS"/>
+                            <constraint firstItem="knT-uB-E4K" firstAttribute="top" secondItem="9Zw-Py-Omn" secondAttribute="bottom" id="vcq-Vw-pTI"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="6Ec-kA-0c2"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="zdx-Lc-4SN"/>
+                    <connections>
+                        <outlet property="CusNavBar" destination="7mD-Lg-4Qy" id="iVa-fy-4rE"/>
+                        <outlet property="HeadView" destination="9Zw-Py-Omn" id="exZ-Ff-adt"/>
+                        <outlet property="height" destination="jnu-t7-ytl" id="qEZ-2e-25w"/>
+                        <outlet property="tableView" destination="knT-uB-E4K" id="2IQ-u6-myA"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="vit-eg-9ue" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="457.97101449275368" y="1537.5000000000002"/>
+        </scene>
     </scenes>
     <resources>
         <image name="Book_rightjian_icon" width="8" height="14"/>

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/Department.h

@@ -15,6 +15,7 @@
 @property (nonatomic ,strong) NSString *Name;
 @property (nonatomic ,strong) NSString *LastModifiedDate;
 @property (nonatomic ,assign) NSInteger Id;
+@property (nonatomic ,assign) NSInteger TypeId;
 @property (nonatomic ,strong) NSString *Guid;
 @property (nonatomic ,assign) NSInteger Sort;
 

+ 3 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailChatModel.h

@@ -18,6 +18,9 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, assign) NSInteger     GroupChatImId;
 @property (nonatomic, assign) NSInteger     Id;
 @property (nonatomic, assign) NSInteger     UserCount;
+@property (nonatomic, assign) NSInteger     TypeId;
+@property (nonatomic, assign) NSInteger     TypeValue;
+@property (nonatomic, assign) BOOL          IsSelect;
 @end
 
 NS_ASSUME_NONNULL_END

+ 2 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailModel.h

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 @interface MailModel : BaseModel
 @property (nonatomic,assign) MailListType  TypeId;
 @property (nonatomic,assign) BOOL          IsSelect;
+@property (nonatomic,assign) NSInteger     Id;
+@property (nonatomic,assign) NSInteger     TypeValue;
 @property (nonatomic,copy) NSString      * Name;
 @property (nonatomic,strong)NSMutableArray<MailSubModel> *Items;
 

+ 2 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailSubModel.h

@@ -14,7 +14,9 @@ NS_ASSUME_NONNULL_BEGIN
 @interface MailSubModel : BaseModel
 @property (nonatomic,assign) NSInteger  Id;
 @property (nonatomic,copy) NSString   * Name;
+@property (nonatomic,copy) NSString   * AvatarUrl;
 @property (nonatomic,assign) NSInteger  TypeValue;
+@property (nonatomic,assign) NSInteger  UserCount;
 @property (nonatomic,assign) BOOL       IsSelect;
 @property (nonatomic,assign) MailListType  TypeId;
 @end

+ 4 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.h

@@ -17,6 +17,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UIImageView *rightView;
 
 @property (weak, nonatomic) IBOutlet UIView *editorVIew;
+@property (weak, nonatomic) IBOutlet UILabel *countL;
+@property (weak, nonatomic) IBOutlet UIButton *selectBtn;
 
 @property (weak,nonatomic) IBOutlet UIView *cell1SearchBgView;
 @property (weak,nonatomic) IBOutlet UIButton *cell1SearchButton;
@@ -26,6 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 + (MailListCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (MailListCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (MailListCell *)configCell00:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+
 - (void)setDataRootModel:(MailModel *)model;
 - (void)setDataModel:(MailSubModel *)model;
 @end

+ 11 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.m

@@ -47,12 +47,23 @@
     cell.selectionStyle = UITableViewCellSelectionStyleNone;
     return cell;
 }
++ (MailListCell *)configCell00:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"MailListCell00";
+    MailListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"MailListCell" owner:nil options:nil] objectAtIndex:2];
+    }
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    return cell;
+}
+
 - (void)setDataRootModel:(MailModel *)model
 {
     self.cell0TitleLabel.text = model.Name;
 }
 - (void)setDataModel:(MailSubModel *)model
 {
+    self.countL.text = [NSString stringWithFormat:@"%ld",model.UserCount];
     self.cell0TitleLabel.text = model.Name;
 }
 - (void)layoutSubviews

+ 70 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.xib

@@ -33,6 +33,12 @@
                             <constraint firstAttribute="height" constant="0.5" id="Fu0-rp-zPG"/>
                         </constraints>
                     </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DlQ-3W-LsB">
+                        <rect key="frame" x="285.5" y="17.5" width="8" height="15"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
                 </subviews>
                 <constraints>
                     <constraint firstAttribute="trailing" secondItem="EOM-XB-NQJ" secondAttribute="trailing" constant="15" id="FBI-GY-cYY"/>
@@ -40,7 +46,9 @@
                     <constraint firstAttribute="bottom" secondItem="UGY-TQ-5ZY" secondAttribute="bottom" id="Hnb-e2-xfJ"/>
                     <constraint firstItem="NI3-gy-CTW" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="KOa-Fc-vnF"/>
                     <constraint firstAttribute="trailing" secondItem="UGY-TQ-5ZY" secondAttribute="trailing" id="MuN-Nr-Mmx"/>
+                    <constraint firstItem="DlQ-3W-LsB" firstAttribute="centerY" secondItem="EOM-XB-NQJ" secondAttribute="centerY" id="eqm-Nu-dcQ"/>
                     <constraint firstItem="EOM-XB-NQJ" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="gCt-Kd-INB"/>
+                    <constraint firstItem="EOM-XB-NQJ" firstAttribute="leading" secondItem="DlQ-3W-LsB" secondAttribute="trailing" constant="4" id="l5y-cB-LGj"/>
                     <constraint firstItem="UGY-TQ-5ZY" firstAttribute="leading" secondItem="NI3-gy-CTW" secondAttribute="leading" id="pfJ-uN-e9b"/>
                 </constraints>
             </tableViewCellContentView>
@@ -48,6 +56,7 @@
             <connections>
                 <outlet property="cell0TitleLabel" destination="NI3-gy-CTW" id="SN0-VZ-e63"/>
                 <outlet property="cell1SearchButton" destination="imM-dP-KU6" id="gIA-jC-zP1"/>
+                <outlet property="countL" destination="DlQ-3W-LsB" id="EI7-By-ckZ"/>
                 <outlet property="rightView" destination="EOM-XB-NQJ" id="cC3-8D-dCs"/>
             </connections>
             <point key="canvasLocation" x="131.8840579710145" y="132.58928571428572"/>
@@ -141,9 +150,70 @@
             </connections>
             <point key="canvasLocation" x="131.8840579710145" y="217.63392857142856"/>
         </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="MailListCell00" id="HId-AB-PrC" customClass="MailListCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="50"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HId-AB-PrC" id="YIe-VO-cgA">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="50"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mDb-wm-mHc">
+                        <rect key="frame" x="48" y="15.5" width="39.5" height="19.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                        <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_conter_rightArrow_hui_icon" translatesAutoresizingMaskIntoConstraints="NO" id="vh7-pM-sOo">
+                        <rect key="frame" x="297.5" y="18" width="7.5" height="14"/>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1qa-Wc-WOh">
+                        <rect key="frame" x="48" y="49.5" width="272" height="0.5"/>
+                        <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="8Fb-At-tfO"/>
+                        </constraints>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KBl-u4-iBa">
+                        <rect key="frame" x="285.5" y="17.5" width="8" height="15"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bGe-rC-685">
+                        <rect key="frame" x="5" y="6" width="38" height="38"/>
+                        <state key="normal" image="sendinfo_no"/>
+                        <state key="selected" image="sendinfo_yes"/>
+                    </button>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="bGe-rC-685" firstAttribute="leading" secondItem="YIe-VO-cgA" secondAttribute="leading" constant="5" id="8Bv-jG-MBd"/>
+                    <constraint firstAttribute="bottom" secondItem="1qa-Wc-WOh" secondAttribute="bottom" id="98R-08-VwV"/>
+                    <constraint firstAttribute="trailing" secondItem="1qa-Wc-WOh" secondAttribute="trailing" id="JQd-OD-WLm"/>
+                    <constraint firstItem="vh7-pM-sOo" firstAttribute="centerY" secondItem="YIe-VO-cgA" secondAttribute="centerY" id="R6g-Oh-QtZ"/>
+                    <constraint firstItem="mDb-wm-mHc" firstAttribute="leading" secondItem="bGe-rC-685" secondAttribute="trailing" constant="5" id="WTg-sA-fcI"/>
+                    <constraint firstItem="bGe-rC-685" firstAttribute="centerY" secondItem="YIe-VO-cgA" secondAttribute="centerY" id="ZPW-Yx-Vyp"/>
+                    <constraint firstItem="mDb-wm-mHc" firstAttribute="centerY" secondItem="YIe-VO-cgA" secondAttribute="centerY" id="clb-Sv-CuN"/>
+                    <constraint firstItem="vh7-pM-sOo" firstAttribute="leading" secondItem="KBl-u4-iBa" secondAttribute="trailing" constant="4" id="tBl-0C-PmM"/>
+                    <constraint firstItem="1qa-Wc-WOh" firstAttribute="leading" secondItem="mDb-wm-mHc" secondAttribute="leading" id="yJo-pL-w6u"/>
+                    <constraint firstItem="KBl-u4-iBa" firstAttribute="centerY" secondItem="vh7-pM-sOo" secondAttribute="centerY" id="zNc-Jd-Ysq"/>
+                    <constraint firstAttribute="trailing" secondItem="vh7-pM-sOo" secondAttribute="trailing" constant="15" id="zSo-3t-9kL"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="Bmo-Hh-Nmo"/>
+            <connections>
+                <outlet property="cell0TitleLabel" destination="mDb-wm-mHc" id="JFE-eb-oH1"/>
+                <outlet property="cell1SearchButton" destination="imM-dP-KU6" id="QRr-Bl-cdu"/>
+                <outlet property="countL" destination="KBl-u4-iBa" id="lcq-uN-HaE"/>
+                <outlet property="rightView" destination="vh7-pM-sOo" id="bJR-u7-Td5"/>
+                <outlet property="selectBtn" destination="bGe-rC-685" id="s6o-KM-Aie"/>
+            </connections>
+            <point key="canvasLocation" x="132" y="299"/>
+        </tableViewCell>
     </objects>
     <resources>
         <image name="my_conter_rightArrow_hui_icon" width="7.5" height="14"/>
+        <image name="sendinfo_no" width="38" height="38"/>
+        <image name="sendinfo_yes" width="38" height="38"/>
         <image name="sousuo" width="17" height="16.5"/>
     </resources>
 </document>

+ 2 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.h

@@ -41,7 +41,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (ChatNewRowCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatNewRowCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatNewRowCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
-+ (ChatNewRowCell *)configCell3:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (ChatNewRowCell *)configCell5:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (ChatNewRowCell *)configCell50:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 
 + (ChatNewRowCell *)configCell10:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatNewRowCell *)configCell20:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;

+ 12 - 2
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.m

@@ -63,8 +63,8 @@
     cell.cell2TimeLabel.hidden = NO;
     return cell;
 }
-+ (ChatNewRowCell *)configCell3:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
-    static NSString *cellIdentifer = @"ChatNewRowCell3";
++ (ChatNewRowCell *)configCell5:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"ChatNewRowCell5";
     ChatNewRowCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
     if (cell == nil) {
         cell = [[[NSBundle mainBundle] loadNibNamed:@"ChatNewRowCell" owner:nil options:nil] objectAtIndex:7];
@@ -73,6 +73,16 @@
     cell.cell2TimeLabel.hidden = NO;
     return cell;
 }
++ (ChatNewRowCell *)configCell50:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"ChatNewRowCell50";
+    ChatNewRowCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"ChatNewRowCell" owner:nil options:nil] objectAtIndex:8];
+    }
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    cell.cell2TimeLabel.hidden = NO;
+    return cell;
+}
 + (ChatNewRowCell *)configCell10:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
     static NSString *cellIdentifer = @"ChatNewRowCell10";
     ChatNewRowCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];

+ 71 - 2
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.xib

@@ -505,7 +505,7 @@
             </connections>
             <point key="canvasLocation" x="132" y="1042"/>
         </tableViewCell>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="ChatNewRowCell3" id="X14-KL-1fM" userLabel="ChatNewRowCell3" customClass="ChatNewRowCell">
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="ChatNewRowCell5" id="X14-KL-1fM" customClass="ChatNewRowCell">
             <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
             <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="X14-KL-1fM" id="8dm-OK-jVd">
@@ -572,7 +572,76 @@
                 <outlet property="cell2TitleLabel" destination="ich-dS-yff" id="w5G-Up-ADA"/>
                 <outlet property="cell2UserImgView" destination="SLJ-3u-6zF" id="qis-an-vgB"/>
             </connections>
-            <point key="canvasLocation" x="846" y="489"/>
+            <point key="canvasLocation" x="131.8840579710145" y="671.65178571428567"/>
+        </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ChatNewRowCell50" id="KvW-hO-Zta" customClass="ChatNewRowCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KvW-hO-Zta" id="Ezy-Td-lvw">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="出版传媒策划部" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nSd-7L-rtW">
+                        <rect key="frame" x="96" y="27.5" width="121.5" height="21"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dXH-kN-dGJ">
+                        <rect key="frame" x="96" y="75.5" width="224" height="0.5"/>
+                        <color key="backgroundColor" red="0.93333333330000001" green="0.93333333330000001" blue="0.93333333330000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="MKh-Y0-5uV"/>
+                        </constraints>
+                    </view>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="J7q-EP-O2t">
+                        <rect key="frame" x="4" y="19" width="38" height="38"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="38" id="PeL-BU-WeP"/>
+                            <constraint firstAttribute="height" constant="38" id="bcw-Bo-qAr"/>
+                        </constraints>
+                        <state key="normal" image="sendinfo_no"/>
+                        <state key="selected" image="sendinfo_yes"/>
+                    </button>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="wgG-hL-vy2">
+                        <rect key="frame" x="46" y="18" width="40" height="40"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="40" id="8vj-3R-MV5"/>
+                            <constraint firstAttribute="height" constant="40" id="FL6-QA-a9h"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="4"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                        </userDefinedRuntimeAttributes>
+                    </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="FDX-ID-2oq">
+                        <rect key="frame" x="227.5" y="30" width="30" height="16"/>
+                    </imageView>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="dXH-kN-dGJ" secondAttribute="trailing" id="1YR-2J-jnk"/>
+                    <constraint firstItem="wgG-hL-vy2" firstAttribute="leading" secondItem="J7q-EP-O2t" secondAttribute="trailing" constant="4" id="1s2-m6-fOz"/>
+                    <constraint firstItem="dXH-kN-dGJ" firstAttribute="leading" secondItem="nSd-7L-rtW" secondAttribute="leading" id="4cZ-Gw-dNC"/>
+                    <constraint firstItem="J7q-EP-O2t" firstAttribute="leading" secondItem="Ezy-Td-lvw" secondAttribute="leading" constant="4" id="Ftb-us-lO4"/>
+                    <constraint firstAttribute="bottom" secondItem="dXH-kN-dGJ" secondAttribute="bottom" id="LeF-yK-43p"/>
+                    <constraint firstItem="FDX-ID-2oq" firstAttribute="centerY" secondItem="nSd-7L-rtW" secondAttribute="centerY" id="MyS-aT-rSs"/>
+                    <constraint firstItem="wgG-hL-vy2" firstAttribute="centerY" secondItem="Ezy-Td-lvw" secondAttribute="centerY" id="U2x-x8-GEs"/>
+                    <constraint firstItem="FDX-ID-2oq" firstAttribute="leading" secondItem="nSd-7L-rtW" secondAttribute="trailing" constant="10" id="exP-Ib-EDj"/>
+                    <constraint firstItem="nSd-7L-rtW" firstAttribute="leading" secondItem="wgG-hL-vy2" secondAttribute="trailing" constant="10" id="hZm-1s-KMx"/>
+                    <constraint firstItem="nSd-7L-rtW" firstAttribute="centerY" secondItem="wgG-hL-vy2" secondAttribute="centerY" id="tv7-Dh-NU9"/>
+                    <constraint firstItem="J7q-EP-O2t" firstAttribute="centerY" secondItem="Ezy-Td-lvw" secondAttribute="centerY" id="xkN-uX-kN2"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="658-V0-uGs"/>
+            <connections>
+                <outlet property="IsTopImgV" destination="FDX-ID-2oq" id="uIc-pg-N28"/>
+                <outlet property="cell2SelectButton" destination="J7q-EP-O2t" id="cWE-Jj-UB2"/>
+                <outlet property="cell2TitleLabel" destination="nSd-7L-rtW" id="Vsw-S9-Lcl"/>
+                <outlet property="cell2UserImgView" destination="wgG-hL-vy2" id="kyG-6z-poK"/>
+            </connections>
+            <point key="canvasLocation" x="132" y="768"/>
         </tableViewCell>
     </objects>
     <resources>

+ 2 - 2
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/VC/TDGroupInfoListVC.m

@@ -946,7 +946,7 @@
     TopicListItemModel * model = [self.dataArray objectAtIndex:(indexPath.section - 1)];
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
     vc.type = CollectModel_Toipc;
-    vc.deleteTopicBlock = ^{
+    vc.RefreshTopicBlock = ^{
         [weakSelf headRefresh];
     };
     vc.Id = model.Id;
@@ -1081,7 +1081,7 @@
 {
     WS(weakSelf);
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
-    vc.deleteTopicBlock = ^{
+    vc.RefreshTopicBlock = ^{
         [weakSelf headRefresh];
     };
     vc.type = CollectModel_Group;

+ 26 - 0
smartRhino/Project/VCModel/ChatMessage/Model/ChatSearchModel.h

@@ -0,0 +1,26 @@
+//
+//  ChatSearchModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/28.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ChatSearchModel : BaseModel
+@property (nonatomic, assign) NSInteger     Id;
+@property (nonatomic, assign) NSInteger     ImId;
+@property (nonatomic, assign) NSInteger     ToUserId;
+@property (nonatomic, assign) BOOL          IsTop;
+@property (nonatomic, assign) ChatSearchType     TypeValue;
+@property (nonatomic, copy) NSString *     AvatarUrl;
+@property (nonatomic, copy) NSString *     DepartmentName;
+@property (nonatomic, copy) NSString *     LastModifiedDate;
+@property (nonatomic, copy) NSString *     Name;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/ChatMessage/Model/ChatSearchModel.m

@@ -0,0 +1,13 @@
+//
+//  ChatSearchModel.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/28.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ChatSearchModel.h"
+
+@implementation ChatSearchModel
+
+@end

+ 3 - 0
smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.h

@@ -10,6 +10,7 @@
 #import "ChatMsgListImModel.h"
 #import "NoticeModel.h"
 #import "ChatMsgWorkModel.h"
+#import "ChatSearchModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -65,6 +66,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (void)setCell2DataWithModel:(NoticeModel *)model;
 
+- (void)setCellSearchModel:(ChatSearchModel *)model;
+
 + (ChatMsgListCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatMsgListCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatMsgListCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;

+ 22 - 0
smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.m

@@ -165,6 +165,28 @@
     self.IsTopView.hidden = !model.IsTop;
     self.cell3TimeLabel.text = [NSDate getTimeStringAutoShort2:model.LastModifiedDate];
 }
+- (void)setCellSearchModel:(ChatSearchModel *)model
+{
+    WS(weakSelf);
+    [SDWebImageManager.sharedManager loadImageWithURL:[NSURL URLWithString:model.AvatarUrl] options:SDWebImageAvoidAutoSetImage progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
+        
+    } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) {
+        weakSelf.cell3UserImgView.image = [UIImage cutImageWithImage:image];
+
+    }];
+    self.cell3TitleLabel.text = model.Name;
+    NSString * infoText = [self getUserInfoInDocument:[NSString stringWithFormat:@"%ld",(long)model.ImId]];
+    if (infoText.length > 0) {
+        self.cell3IntroLabel.hidden = NO;
+        self.cell3IntroLabel.attributedText = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"[草稿]%@",infoText]];
+        self.cell3IntroLabel.attributedText = [self.cell3IntroLabel subhighlightString:@"[草稿]" color:[UIColor redColor]];
+    }else{
+        self.cell3IntroLabel.hidden = YES;
+    }
+    self.cell3RedBgView.hidden = YES;
+    self.IsTopView.hidden = YES;
+    self.cell3TimeLabel.text = [NSDate getTimeStringAutoShort2:model.LastModifiedDate];
+}
 - (void)setCell5DataWithModel:(ChatMsgListImModel *)model
 {
     WS(weakSelf);

+ 17 - 4
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/MyTDTopic.storyboard

@@ -616,9 +616,9 @@
                                                 <nil key="highlightedColor"/>
                                             </label>
                                             <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cix-Oo-wg8">
-                                                <rect key="frame" x="360" y="0.0" width="44" height="44"/>
+                                                <rect key="frame" x="364" y="0.0" width="50" height="44"/>
                                                 <constraints>
-                                                    <constraint firstAttribute="width" constant="44" id="TTG-8K-42W"/>
+                                                    <constraint firstAttribute="width" constant="50" id="TTG-8K-42W"/>
                                                 </constraints>
                                                 <state key="normal" image="home_music_icon"/>
                                             </button>
@@ -629,22 +629,32 @@
                                                     <constraint firstAttribute="height" constant="0.5" id="Xay-jW-zUz"/>
                                                 </constraints>
                                             </view>
+                                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vvj-AU-qLM">
+                                                <rect key="frame" x="414" y="0.0" width="0.0" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" id="C23-MV-9RG"/>
+                                                </constraints>
+                                                <state key="normal" image="Book_Share_Icon"/>
+                                            </button>
                                         </subviews>
                                         <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <constraints>
+                                            <constraint firstItem="Vvj-AU-qLM" firstAttribute="top" secondItem="giH-qQ-oYO" secondAttribute="top" id="1d8-BZ-wWx"/>
                                             <constraint firstItem="ogw-Jp-00F" firstAttribute="top" secondItem="Nmk-kJ-EpI" secondAttribute="top" id="35h-xS-xxz"/>
                                             <constraint firstItem="taA-U3-5jt" firstAttribute="leading" secondItem="giH-qQ-oYO" secondAttribute="leading" id="8Ti-d5-F80"/>
-                                            <constraint firstAttribute="trailing" secondItem="cix-Oo-wg8" secondAttribute="trailing" constant="10" id="Bgr-Rq-J8T"/>
                                             <constraint firstItem="ogw-Jp-00F" firstAttribute="leading" secondItem="Nmk-kJ-EpI" secondAttribute="trailing" id="Hbj-Kc-ucQ"/>
                                             <constraint firstItem="yMl-n2-VaV" firstAttribute="centerX" secondItem="giH-qQ-oYO" secondAttribute="centerX" id="K3M-d2-puy"/>
                                             <constraint firstItem="cix-Oo-wg8" firstAttribute="top" secondItem="giH-qQ-oYO" secondAttribute="top" id="PPj-G5-Eln"/>
                                             <constraint firstAttribute="height" constant="44" id="PWf-fH-uvI"/>
+                                            <constraint firstAttribute="bottom" secondItem="Vvj-AU-qLM" secondAttribute="bottom" id="U1W-E8-mwi"/>
                                             <constraint firstItem="Nmk-kJ-EpI" firstAttribute="leading" secondItem="giH-qQ-oYO" secondAttribute="leading" id="VOw-Qh-c8N"/>
                                             <constraint firstAttribute="bottom" secondItem="Nmk-kJ-EpI" secondAttribute="bottom" id="agf-gs-lED"/>
                                             <constraint firstAttribute="bottom" secondItem="taA-U3-5jt" secondAttribute="bottom" id="bX1-eB-MFl"/>
                                             <constraint firstAttribute="trailing" secondItem="taA-U3-5jt" secondAttribute="trailing" id="hat-0S-fvi"/>
                                             <constraint firstAttribute="bottom" secondItem="cix-Oo-wg8" secondAttribute="bottom" id="iJj-fQ-3su"/>
+                                            <constraint firstItem="Vvj-AU-qLM" firstAttribute="leading" secondItem="cix-Oo-wg8" secondAttribute="trailing" id="krj-hn-JYG"/>
                                             <constraint firstItem="yMl-n2-VaV" firstAttribute="centerY" secondItem="giH-qQ-oYO" secondAttribute="centerY" id="p9E-WQ-Deo"/>
+                                            <constraint firstAttribute="trailing" secondItem="Vvj-AU-qLM" secondAttribute="trailing" id="ufR-sF-puO"/>
                                             <constraint firstItem="ogw-Jp-00F" firstAttribute="bottom" secondItem="Nmk-kJ-EpI" secondAttribute="bottom" id="vun-vU-gsi"/>
                                         </constraints>
                                     </view>
@@ -918,7 +928,6 @@
                                     <constraint firstItem="lao-QK-aUd" firstAttribute="leading" secondItem="bHv-aa-tZb" secondAttribute="leading" constant="20" id="bRh-ob-cFB"/>
                                     <constraint firstItem="4AV-VF-t0j" firstAttribute="top" secondItem="bHv-aa-tZb" secondAttribute="top" id="dBj-0R-W89"/>
                                     <constraint firstItem="OnS-gW-N4F" firstAttribute="top" secondItem="bHv-aa-tZb" secondAttribute="top" id="dFe-gs-C1u"/>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="375" id="faC-WU-KhE"/>
                                     <constraint firstItem="4AV-VF-t0j" firstAttribute="leading" secondItem="bHv-aa-tZb" secondAttribute="leading" id="n2C-Ab-Hlf"/>
                                     <constraint firstItem="OnS-gW-N4F" firstAttribute="leading" secondItem="dbV-jM-4Ru" secondAttribute="trailing" constant="20" id="r46-w8-jqJ"/>
                                 </constraints>
@@ -948,6 +957,7 @@
                         <outlet property="ReplayBtn" destination="lx2-hh-aiG" id="ygF-9C-g5s"/>
                         <outlet property="ReplayView" destination="lao-QK-aUd" id="AOA-BC-4Z0"/>
                         <outlet property="TalkView" destination="dbV-jM-4Ru" id="Qt0-nq-M4D"/>
+                        <outlet property="bottomHeight" destination="HGY-na-pUF" id="0CT-Xd-1cJ"/>
                         <outlet property="collectButton" destination="l8H-QZ-Exq" id="Z1V-iw-E8n"/>
                         <outlet property="collectImgV" destination="fgM-1d-eai" id="45F-Ov-cgy"/>
                         <outlet property="collectL" destination="rBF-Vd-xlV" id="bNk-3C-Qp6"/>
@@ -956,9 +966,11 @@
                         <outlet property="commentNumberLabel" destination="uga-ik-mXW" id="pyB-Mj-4Nb"/>
                         <outlet property="commentScrollBtn" destination="wKT-qF-Nmw" id="NFD-Yj-uLe"/>
                         <outlet property="musicBtn" destination="cix-Oo-wg8" id="J99-yk-z76"/>
+                        <outlet property="shareBtn" destination="Vvj-AU-qLM" id="6Ut-G8-c5E"/>
                         <outlet property="shareButton" destination="gJ7-0m-Qei" id="BZT-ub-PNp"/>
                         <outlet property="shareCountL" destination="Mgv-Zu-uNm" id="6o8-8g-igd"/>
                         <outlet property="shareImgV" destination="k6n-sb-jAd" id="jJn-8p-Nta"/>
+                        <outlet property="shareWidth" destination="C23-MV-9RG" id="Plm-4B-aCy"/>
                         <outlet property="tableView" destination="XUI-zY-2co" id="XUa-1p-hri"/>
                         <outlet property="titleL" destination="yMl-n2-VaV" id="MYA-2c-UzD"/>
                         <outlet property="zanButton" destination="Twb-YZ-7Ru" id="J0I-ZB-vZ0"/>
@@ -1044,6 +1056,7 @@
         </scene>
     </scenes>
     <resources>
+        <image name="Book_Share_Icon" width="20" height="18"/>
         <image name="back_black_icon" width="11" height="20"/>
         <image name="chatmsg_right_add_icon" width="15.666666984558105" height="15.666666984558105"/>
         <image name="chatmsg_right_edit_icon" width="15" height="17"/>

+ 6 - 4
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicCreateVC.m

@@ -77,7 +77,7 @@
 - (void)viewWillDisappear:(BOOL)animated
 {
     [super viewWillDisappear:animated];
-    [self.titleBtn dismissCom];
+    [self.titleBtn dismiss];
     self.menuIsShow = NO;
     [self.menuListView dismiss];
 }
@@ -251,7 +251,7 @@
             [self selectFold];
             self.TitleL.hidden = YES;
             self.titleBtn.hidden = NO;
-            if (self.FolderName.length > 0) {
+            if (self.FolderId > 0) {
                 [self autoSizeBtn:self.FolderName];
             }else{
                 [self getNoteDefault];
@@ -420,8 +420,10 @@
 - (void)selectFolder:(NSNotification *)noti
 {
     NSDictionary * dict = noti.userInfo;
-    [self autoSizeBtn:[dict objectForKey:@"FolderName"]];
-    self.FolderId = [[dict objectForKey:@"FolderId"] integerValue];
+    if (dict) {
+        [self autoSizeBtn:[dict objectForKey:@"FolderName"]];
+        self.FolderId = [[dict objectForKey:@"FolderId"] integerValue];
+    }
 }
 - (void)ChangeTopicBookBtn:(NSNotification *)notification
 {

+ 1 - 1
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.h

@@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MyTDTopicDetailVC : BaseViewController
 +(MyTDTopicDetailVC *)initMyTDTopicDetailVC;
-@property (nonatomic, copy) void(^deleteTopicBlock)(void);
+@property (nonatomic, copy) void(^RefreshTopicBlock)(void);
 @property (nonatomic, assign) BOOL         isComment;
 @property (nonatomic, assign) BOOL         isNoteBook;
 @property (assign, nonatomic) CollectModelType  type;

+ 130 - 42
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.m

@@ -70,6 +70,9 @@
 @property (weak, nonatomic) IBOutlet UIButton *ReplayBtn;
 @property (weak, nonatomic) IBOutlet UIView *BottomView;
 @property (weak, nonatomic) IBOutlet UIButton *musicBtn;
+@property (weak, nonatomic) IBOutlet UIButton *shareBtn;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *shareWidth;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomHeight;
 
 @property (nonatomic, strong) TextInputView *commentInputView;
 @property (assign, nonatomic) NSInteger countComment;
@@ -85,6 +88,7 @@
 @property (nonatomic,assign) NSInteger   commentId;
 @property (nonatomic,copy) NSString    * commentStr;
 @property (nonatomic,assign) BOOL        isSelf;
+@property (nonatomic,assign) BOOL        IsCollect;
 @property (nonatomic,assign) NSInteger   sendUserId;
 @end
 
@@ -126,12 +130,14 @@
         case CollectModel_NewTopic:
         {
             self.titleL.text = @"话题";
+            self.musicBtn.hidden = NO;
             [self setMailBottomView:NO];
         }
             break;
         case CollectModel_Toipc:
         {
             self.titleL.text = @"话题";
+            self.musicBtn.hidden = NO;
             [self setMailBottomView:NO];
         }
             break;
@@ -143,9 +149,15 @@
             break;
         case CollectModel_NoteBook:
         {
-            self.titleL.text = self.isNoteBook ? @"笔记" : @"话题";
+            self.titleL.text = @"笔记";
+            self.shareWidth.constant = 50.f;
+            self.bottomHeight.constant = 0.f;
+            [self.shareBtn setAction:^{
+                [weakSelf shareHander];
+            }];
+            self.BottomView.hidden = YES;
+            self.shareBtn.hidden = NO;
             self.musicBtn.hidden = NO;
-            [self setMailBottomView:NO];
         }
             break;
         case CollectModel_Aritle:
@@ -157,7 +169,8 @@
             break;
         default:
         {
-            self.titleL.text = self.isNoteBook ? @"笔记" : @"话题";
+            self.titleL.text = @"话题";
+            self.musicBtn.hidden = NO;
             [self setMailBottomView:NO];
         }
             break;
@@ -324,6 +337,7 @@
 {
     WS(weakSelf);
     __block MyNoteBookDetailModel * weakModel = model;
+    self.IsCollect = model.IsCollect;
     dispatch_async(dispatch_get_main_queue(), ^{
         weakSelf.countComment = weakModel.CommentCount;
         if (weakModel.CommentCount == 0) {
@@ -681,7 +695,7 @@
 
         }];
         NSDictionary * comParaDict = @{@"ArticleId":@(self.Id),
-                                       @"TypeValue":@(0),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(self.currentPage),
                                        @"PerPage":@(20),
                                        @"sort":weakSelf.isSort ? @"asc":@"desc"
@@ -993,10 +1007,9 @@
         }
         dispatch_async(dispatch_get_main_queue(), ^{
             [weakSelf.tableView reloadData];
-//            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-//                weakSelf.isScrComment = YES;
-//                [weakSelf scrollToCommentViewTop];
-//            });
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                weakSelf.dismissSelf = NO;
+            });
         });
     } failure:^(NSError * _Nonnull error) {
 //        SHOWERROR([ZYCTool handerResultData:error]);
@@ -1101,12 +1114,12 @@
 }
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
     if (self.type == CollectModel_InterMail || self.type == CollectModel_NoSignMail) {
-        return 0;
+        return 1;
     }
     return 2;
 }
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
-    if (self.currentZanModel.Items.count == 0 && self.commentArray.count == 0) {
+    if (self.currentZanModel.Items.count == 0) {
         switch (section) {
             case 0:
                 return 0;
@@ -1481,8 +1494,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_APP_Topic),(long)self.Id];
             [[HttpManager sharedHttpManager] DeleteUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1496,8 +1509,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_NoteBook_Detail),(long)self.Id];
             [[HttpManager sharedHttpManager] DeleteUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1510,8 +1523,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_NoteBook_Detail),(long)self.Id];
             [[HttpManager sharedHttpManager] DeleteUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1523,8 +1536,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_NOTICE_RECALL),(long)self.Id];
             [[HttpManager sharedHttpManager] PUTUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1536,8 +1549,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_NoteBook_Detail),(long)self.Id];
             [[HttpManager sharedHttpManager] DeleteUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1549,8 +1562,8 @@
             NSString * url = [NSString stringWithFormat:@"%@%ld",Host(@"/api/app/meeting/summary/"),(long)self.Id];
             [[HttpManager sharedHttpManager] DeleteUrl:url parameters:@{} responseStyle:DATA success:^(id  _Nonnull responseObject) {
                 SHOWSUCCESS(@"撤回成功");
-                if (weakSelf.deleteTopicBlock) {
-                    weakSelf.deleteTopicBlock();
+                if (weakSelf.RefreshTopicBlock) {
+                    weakSelf.RefreshTopicBlock();
                 }
                 [weakSelf.navigationController popViewControllerAnimated:YES];
             } failure:^(NSError * _Nonnull error) {
@@ -1566,6 +1579,9 @@
 - (void)editorButtonHander{
     self.webH = 0;
     WS(weakSelf);
+    if (self.RefreshTopicBlock) {
+        self.RefreshTopicBlock();
+    }
     MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
     vc.upDateBlock = ^{
         [weakSelf headRefresh];
@@ -1615,6 +1631,9 @@
     WS(weakSelf);
     [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Analyze_Set) parameters:dic responseStyle:DATA success:^(id  _Nonnull responseObject) {
         REMOVESHOW
+        if (weakSelf.RefreshTopicBlock) {
+            weakSelf.RefreshTopicBlock();
+        }
         [weakSelf refreshData];
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
             weakSelf.isScrComment = YES;
@@ -1628,7 +1647,7 @@
 }
 /// 评论正文
 - (void)commentHander{
-    [_commentInputView startEditing];
+    [self.commentInputView startEditing];
     WEAKSELF
     self.commentInputView.inputBlock = ^(NSString * _Nonnull content) {
         NSLog(@"%@",content);
@@ -1650,6 +1669,9 @@
     [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Comment_Add) parameters:dicc responseStyle:DATA success:^(id  _Nonnull responseObject) {
         SHOWSUCCESS(@"评论成功");
         weakSelf.countComment ++;
+        if (weakSelf.RefreshTopicBlock) {
+            weakSelf.RefreshTopicBlock();
+        }
         if (weakSelf.countComment == 0) {
             self.commentCountL.text = [NSString stringWithFormat:@"评 论"];
         }else{
@@ -2008,7 +2030,7 @@
 {
     [self becomeFirstResponder];
     UIMenuController *menu = [UIMenuController sharedMenuController];
-    UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(copyItemAction:)];
+//    UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(copyItemAction:)];
     UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(deleteItemAction:)];
     UIMenuItem *upDateItem = [[UIMenuItem alloc] initWithTitle:@"编辑" action:@selector(upDateItemAction:)];
     [menu setMenuItems: @[deleteItem,upDateItem]];
@@ -2020,7 +2042,6 @@
 {
     [self becomeFirstResponder];
     UIMenuController *menu = [UIMenuController sharedMenuController];
-    UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(copyItemAction:)];
     UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(deleteItemAction:)];
     UIMenuItem *upDateItem = [[UIMenuItem alloc] initWithTitle:@"编辑" action:@selector(upDateItemAction:)];
     [menu setMenuItems: @[deleteItem,upDateItem]];
@@ -2051,6 +2072,9 @@
     [[HttpManager sharedHttpManager] DeleteUrl:Host(API_APP_Comment_Delete) parameters:@{@"ArticleId":@(self.Id),@"CommentId":@(self.commentId)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
         REMOVESHOW
         SHOWSUCCESS(@"删除成功");
+        if (weakSelf.RefreshTopicBlock) {
+            weakSelf.RefreshTopicBlock();
+        }
         [weakSelf headRefresh];
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW
@@ -2061,25 +2085,36 @@
     [self upDateComment];
 }
 - (void)upDateComment{
-    [_commentInputView setViewText:self.commentStr];
-    [_commentInputView startEditing];
+    self.dismissSelf = YES;
+    [self.view endEditing:YES];
+    [self.commentInputView setViewText:self.commentStr];
+    [self.commentInputView startEditing];
     WS(weakSelf);
     self.commentInputView.inputBlock = ^(NSString * _Nonnull content) {
         SHOWLOADING
         [[HttpManager sharedHttpManager] PUTUrl:Host(API_APP_Comment_Update) parameters:@{@"Content":content,@"CommentId":@(weakSelf.commentId)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
             REMOVESHOW
+            if (weakSelf.RefreshTopicBlock) {
+                weakSelf.RefreshTopicBlock();
+            }
             [weakSelf RefreshCommentList];
         } failure:^(NSError * _Nonnull error) {
             REMOVESHOW
+            weakSelf.dismissSelf = NO;
         }];
     };
 }
 - (void)replyCommentName:(NSString *)name andId:(NSString *)commentId{
-    [_commentInputView setPlaceText:[NSString stringWithFormat:@"回复%@:",name]];
-    [_commentInputView startEditing];
-    WEAKSELF
+    WS(weakSelf);
+    self.dismissSelf = YES;
+    [self.commentInputView setPlaceText:[NSString stringWithFormat:@"回复%@:",name]];
+    [self.commentInputView startEditing];
     self.commentInputView.inputBlock = ^(NSString * _Nonnull content) {
         NSLog(@"%@",content);
+        weakSelf.dismissSelf = NO;
+        if (weakSelf.RefreshTopicBlock) {
+            weakSelf.RefreshTopicBlock();
+        }
         [weakSelf replyCommentWithcontent:content andId:commentId];
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
             weakSelf.isScrComment = YES;
@@ -2100,6 +2135,9 @@
     
     [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Comment_Add) parameters:dicc responseStyle:DATA success:^(id  _Nonnull responseObject) {
         SHOWSUCCESS(@"评论成功");
+        if (weakSelf.RefreshTopicBlock) {
+            weakSelf.RefreshTopicBlock();
+        }
         [weakSelf RefreshCommentList];
     } failure:^(NSError * _Nonnull error) {
 //        SHOWERROR([ZYCTool handerResultData:error]);
@@ -2108,16 +2146,16 @@
 - (void)scrollToCommentViewTop
 {
     WS(weakSelf);
-    if (self.isScrComment) {
-        if ((self.commentArray.count > 0 || self.currentZanModel.Items.count > 0) && self.tableView) {
-            NSIndexPath * indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
-            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                [weakSelf.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
-            });
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        if (weakSelf.isScrComment) {
+            if ((weakSelf.commentArray.count > 0 || weakSelf.currentZanModel.Items.count > 0) && weakSelf.tableView) {
+//                NSIndexPath * indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
+                [weakSelf.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:NSNotFound inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
+            }
+        }else{
+            [weakSelf.tableView scrollToTop];
         }
-    }else{
-        [self.tableView scrollToTop];
-    }
+    });
 }
 
 - (WKWebView *)webView
@@ -2136,6 +2174,7 @@
         [userContent addScriptMessageHandler:self name:@"goRead"];
         [userContent addScriptMessageHandler:self name:@"postH"];
         [userContent addScriptMessageHandler:self name:@"postSave"];
+        [userContent addScriptMessageHandler:self name:@"appCollection"];
 
         NSMutableString *javascript = [NSMutableString string];
         [javascript appendString:@"document.documentElement.style.webkitTouchCallout='none';"];//禁止长按
@@ -2281,6 +2320,55 @@
         [self presentViewController:alert animated:YES completion:^{
         }];
     }
+    if ([message.name isEqualToString:@"appCollection"]) {
+        WS(weakSelf);
+        if (self.IsCollect) {
+            dispatch_async(dispatch_get_main_queue(), ^{
+                UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"真的取消收藏吗?" message:nil preferredStyle:UIAlertControllerStyleAlert];
+                UIAlertAction *actionYes = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+                    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
+                    [dic setValue:@(weakSelf.Id) forKey:@"CollectionDataId"];
+                    ///     1文章 2话题 3 收藏 4笔记 5通知 6站内信 7小组 8 会议详情 14工作流审批 300 文件 400 会议纪要
+                    NSInteger type = weakSelf.type;
+                    switch (weakSelf.type) {
+                        case CollectModel_meet:
+                            type = 400;
+                            break;
+                        default:
+                            break;
+                    }
+                    [dic setValue:@(type) forKey:@"CollectionType"];
+                    [dic setValue:@(0) forKey:@"FolderId"];
+                    [dic setValue:@(0) forKey:@"SourceUserId"];
+                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                        [[HttpManager sharedHttpManager] PUTUrl:Host(API_CreateCollect) parameters:dic success:^(id  _Nonnull responseObject) {
+                            [weakSelf refreshData];
+                            NSString *jsonString = [NSString stringWithFormat:@"showCollection('%d')",0];
+                            [weakSelf.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) {
+                                NSLog(@"data:%@",data);
+                                NSLog(@"error:%@",error);
+                            }];
+                        } failure:^(NSError * _Nonnull error) {
+                            //                    SHOWERROR([ZYCTool handerResultData:error]);
+                        }];
+                    });
+                    [weakSelf setCusMenuShare];
+                }];
+                UIAlertAction *actionNo = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+                    [weakSelf setCusMenuShare];
+                }];
+                [alert addAction:actionYes];
+                [alert addAction:actionNo];
+                [weakSelf presentViewController:alert animated:YES completion:^{
+                    
+                }];
+            });
+        }else{
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                [weakSelf gotoCollectHander];
+            });
+        }
+    }
     if ([message.name isEqualToString:@"alreadyRead"]) {
         NSLog(@"msgBody:%@",message.body);
         NSDictionary * dict = (NSDictionary *)message.body;
@@ -2325,7 +2413,7 @@
         NSLog(@"msgBody:%@",message.body);
         NSInteger count = [message.body integerValue];
         ReadListVC * vc = [ReadListVC initReadListVC];
-        vc.type = self.type == CollectModel_Aritle ? 1 : self.type;
+        vc.type = self.type;
         vc.indexId = self.Id;
         vc.ReadTotal = count;
         [self.navigationController pushViewController:vc animated:YES];
@@ -2434,7 +2522,7 @@
             break;
         case CollectModel_NewTopic:
         {
-            return 4;
+            return -4;
         }
             break;
         case CollectModel_NoteBook:
@@ -2555,7 +2643,7 @@
 - (void)setCusMenuShare
 {
     self.dismissSelf = NO;
-    [self createMenuItems];
+//    [self createMenuItems];
 }
 - (void)copyAction:(UIMenuController *)menu
 {

+ 22 - 8
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupManageVC.m

@@ -51,6 +51,11 @@
 - (void)viewWillAppear:(BOOL)animated
 {
     [super viewWillAppear:animated];
+    if (self.iSViewEditor) {
+        self.operationBottomBgView.hidden = NO;
+    }else{
+        self.operationBottomBgView.hidden = YES;
+    }
     [self getData];
 }
 - (void)viewDidLoad {
@@ -100,6 +105,7 @@
         }
         [weakSelf.tableView reloadData];
     }];
+    self.fd_interactivePopDisabled = YES;
     [self.HeadView addSubview:self.SearchView];
     [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
         make.top.mas_offset(5);
@@ -107,6 +113,7 @@
         make.height.mas_offset(36);
     }];
     [self.SearchView.button setAction:^{
+        weakSelf.operationBottomBgView.hidden = YES;
         MyTDTopicGroupSearchVC * vc = [[MyTDTopicGroupSearchVC alloc] init];
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
@@ -320,6 +327,8 @@
         self.tableView.height -= self.tabBarController.tabBar.height;
         [self.view layoutIfNeeded];
         [self.tableView layoutIfNeeded];
+        self.fd_interactivePopDisabled = YES;
+
     }else{
         [self.AddBtn setImage:[UIImage imageNamed:@"chatmsg_right_add_icon"] forState:UIControlStateNormal];
         self.iSViewEditor = NO;
@@ -334,6 +343,7 @@
         [self.view layoutIfNeeded];
         [self.tableView layoutIfNeeded];
         self.operationBottomBgView.hidden = YES;
+        self.fd_interactivePopDisabled = NO;
     }
     [self.tableView reloadData];
 }
@@ -405,6 +415,10 @@
         self.titleL.text = @"分组管理";
         [self changeToOperation:NO];
     }else{
+        [self changeToOperation:NO];
+        if (self.RefreshListBlock) {
+            self.RefreshListBlock();
+        }
         [self.navigationController popViewControllerAnimated:true];
     }
 }
@@ -604,12 +618,12 @@
     return _selectArray;
 }
 
-- (void)viewWillDisappear:(BOOL)animated
-{
-    [super viewWillDisappear:animated];
-    [self changeToOperation:NO];
-    if (self.RefreshListBlock) {
-        self.RefreshListBlock();
-    }
-}
+//- (void)viewWillDisappear:(BOOL)animated
+//{
+//    [super viewWillDisappear:animated];
+//    [self changeToOperation:NO];
+//    if (self.RefreshListBlock) {
+//        self.RefreshListBlock();
+//    }
+//}
 @end

+ 1 - 2
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupUserVC.m

@@ -438,7 +438,7 @@
         MyTDGroupView * view = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
         [headerView addSubview:view];
         WS(weakSelf);
-        UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        [view.button setAction:^{
             MyTDTopicUserSearchVC * vc = [[MyTDTopicUserSearchVC alloc] init];
             vc.listArray = [NSMutableArray arrayWithArray:weakSelf.listArray];
             vc.upDateBlock = ^{
@@ -446,7 +446,6 @@
             };
             [weakSelf.navigationController pushViewController:vc animated:YES];
         }];
-        [headerView addGestureRecognizer:tap];
     }
     return headerView;
 }

+ 1 - 1
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicSearchVC.m

@@ -808,7 +808,7 @@
     WS(weakSelf);
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
     vc.type = self.searchType == TDTopicSearch ? CollectModel_NewTopic : CollectModel_Toipc;
-    vc.deleteTopicBlock = ^{
+    vc.RefreshTopicBlock = ^{
         [weakSelf headRefresh];
     };
     vc.Id = model.Id;

+ 9 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicUserSearchVC.m

@@ -10,6 +10,7 @@
 #import "SelectModel.h"
 #import "MyTDTopicUserMoveVC.h"
 #import "MailListByZuCell.h"
+#import "MailListDetailVC.h"
 
 @interface MyTDTopicUserSearchVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (nonatomic, copy) NSString  * text;
@@ -85,6 +86,14 @@
     [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
     return cell;
 }
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    SelectModel * model = [self.searchArray objectAtIndex:indexPath.row];
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    MailListDetailVC *vc = [MailListDetailVC initMailListDetailVC];
+    vc.indexId = model.UserId;
+    [self.navigationController pushViewController:vc animated:YES];
+}
 #pragma Mark 左滑按钮 iOS8以上
 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_11_0
 - (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos){// delete action

+ 2 - 2
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicViewController.m

@@ -1011,7 +1011,7 @@
     TopicListItemModel * model = [self.dataArray objectAtIndex:(indexPath.section - 1)];
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
     vc.type = CollectModel_NewTopic;
-    vc.deleteTopicBlock = ^{
+    vc.RefreshTopicBlock = ^{
         [weakSelf headRefresh];
     };
     vc.Id = model.Id;
@@ -1071,7 +1071,7 @@
     WS(weakSelf);
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
     vc.type = CollectModel_NewTopic;
-    vc.deleteTopicBlock = ^{
+    vc.RefreshTopicBlock = ^{
         [weakSelf headRefresh];
     };
     vc.Id = model.Id;

+ 2 - 1
smartRhino/Project/VCModel/Home/VC/BookStore/BookStore.storyboard

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="ap2-Fm-VRO">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="ap2-Fm-VRO">
     <device id="retina5_5" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
@@ -1080,6 +1080,7 @@
                     <navigationItem key="navigationItem" id="QIt-Cz-Efj"/>
                     <connections>
                         <outlet property="HeadView" destination="oW3-nG-TfH" id="R5g-dD-u3t"/>
+                        <outlet property="height" destination="xYa-t7-itt" id="7b8-ky-TL8"/>
                         <outlet property="leftTableV" destination="huj-97-wP6" id="RDx-rG-wVW"/>
                         <outlet property="rightTableV" destination="Yxd-Gf-hH9" id="7T6-DL-WYW"/>
                         <outlet property="titleL" destination="J9C-DU-7Mo" id="S9e-yq-8JS"/>

+ 27 - 1
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m

@@ -26,6 +26,7 @@
 @property (weak, nonatomic) IBOutlet UITableView *rightTableV;
 @property (weak, nonatomic) IBOutlet UILabel     *titleL;
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *width;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *height;
 @property (strong, nonatomic) MyTDGroupView      *SearchView;
 @property (assign,nonatomic) BOOL         isRow;
 @property (copy,nonatomic) NSMutableArray      *dataArray;
@@ -209,6 +210,31 @@
 //            cell.height.constant = 50.f;
 //        }
         cell.height.constant = 60.f;
+        
+        if (lmodel.IsSelect) {
+            if (indexPath.row == 0) {
+                if (lmodel.Name.length > 4) {
+                    if (self.type == BookChanelPublic) {
+                        self.height.constant = 14.f;
+                    }else{
+                        self.height.constant = 10.f;
+                    }
+                }else{
+                    if (self.type == BookChanelPublic) {
+                        self.height.constant = 6.f;
+                    }else{
+                        self.height.constant = 2.f;
+                    }
+                }
+            }else{
+                if (self.type == BookChanelPublic) {
+                    self.height.constant = 26.f;
+                }else{
+                    self.height.constant = 22.f;
+                }
+            }
+            [self.leftTableV layoutIfNeeded];
+        }
         [cell setDataLeftModel:lmodel];
         return cell;
     }else{
@@ -235,7 +261,7 @@
                     break;
                 default:
                 {
-                    HomeWeiCousreCell * cell = [HomeWeiCousreCell configCell0:tableView indexPath:indexPath];
+                    HomeWeiCousreCell * cell = [HomeWeiCousreCell configCell4:tableView indexPath:indexPath];
                     cell.lineLeft.constant = 15.f;
                     cell.lineRight.constant = 15.f;
                     [cell setDataVideoModel:rmodel];

+ 1 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.h

@@ -33,6 +33,7 @@ NS_ASSUME_NONNULL_BEGIN
 + (HomeWeiCousreCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (HomeWeiCousreCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (HomeWeiCousreCell *)configCell3:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (HomeWeiCousreCell *)configCell4:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 - (void)setCollData;
 - (void)setDataVideoModel:(BookChanelRightModel *)model;
 - (void)setDataRightModel:(BookChanelRightModel *)model;

+ 8 - 0
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.m

@@ -55,6 +55,14 @@
     }
     return cell;
 }
++ (HomeWeiCousreCell *)configCell4:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"HomeWeiCousreCell4";
+    HomeWeiCousreCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"HomeWeiCousreCell" owner:nil options:nil] objectAtIndex:4];
+    }
+    return cell;
+}
 - (void)setDataWithModel:(HomeSubItemModel *)model
 {
     [self.imgV sd_setImageWithURL:[NSURL URLWithString:model.ImageUrls] placeholderImage:IMG(@"img_placeHolder")];

+ 95 - 1
smartRhino/Project/VCModel/Home/VC/View/Cell/HomeWeiCousreCell.xib

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
@@ -307,6 +307,100 @@
             </connections>
             <point key="canvasLocation" x="111.59420289855073" y="347.54464285714283"/>
         </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="HomeWeiCousreCell4" rowHeight="130" id="91l-XX-Lyg" customClass="HomeWeiCousreCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="110.5"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="91l-XX-Lyg" id="B29-Nk-6lM">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="110.5"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bZM-XU-n5i">
+                        <rect key="frame" x="15" y="15" width="130" height="80"/>
+                        <subviews>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="d81-lp-DFW">
+                                <rect key="frame" x="0.0" y="0.0" width="130" height="80"/>
+                            </imageView>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_video_leftIcon" translatesAutoresizingMaskIntoConstraints="NO" id="ajT-CT-7WK">
+                                <rect key="frame" x="5" y="61" width="12" height="12"/>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="02:14:27" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TXB-zZ-Xv3">
+                                <rect key="frame" x="19.5" y="61" width="42.5" height="12"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="10"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="TXB-zZ-Xv3" firstAttribute="centerY" secondItem="ajT-CT-7WK" secondAttribute="centerY" id="29r-tL-rRG"/>
+                            <constraint firstAttribute="width" constant="130" id="3th-K8-Yqt"/>
+                            <constraint firstItem="d81-lp-DFW" firstAttribute="leading" secondItem="bZM-XU-n5i" secondAttribute="leading" id="931-uj-GJv"/>
+                            <constraint firstItem="ajT-CT-7WK" firstAttribute="leading" secondItem="d81-lp-DFW" secondAttribute="leading" constant="5" id="9Kn-fU-MMB"/>
+                            <constraint firstAttribute="height" constant="80" id="Fv1-C6-tZa"/>
+                            <constraint firstAttribute="trailing" secondItem="d81-lp-DFW" secondAttribute="trailing" id="HM4-3S-1oY"/>
+                            <constraint firstItem="d81-lp-DFW" firstAttribute="top" secondItem="bZM-XU-n5i" secondAttribute="top" id="MYI-6h-cnl"/>
+                            <constraint firstItem="TXB-zZ-Xv3" firstAttribute="leading" secondItem="ajT-CT-7WK" secondAttribute="trailing" constant="2.5" id="N9r-7k-Y2u"/>
+                            <constraint firstAttribute="bottom" secondItem="d81-lp-DFW" secondAttribute="bottom" id="VzW-QR-IUU"/>
+                            <constraint firstItem="ajT-CT-7WK" firstAttribute="bottom" secondItem="d81-lp-DFW" secondAttribute="bottom" constant="-7" id="rcr-tH-SkQ"/>
+                        </constraints>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="理科思维记古诗——中国诗词 大会冠军陈更独家开讲" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ylM-sq-9Ba">
+                        <rect key="frame" x="160" y="15" width="145" height="41"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="梅倩" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cdA-sd-wGq">
+                        <rect key="frame" x="160" y="80.5" width="145" height="14.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3vg-Et-rWE">
+                        <rect key="frame" x="0.0" y="110" width="320" height="0.5"/>
+                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="MJz-p6-NRa"/>
+                        </constraints>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="浅谈如何在大学英语教学中提高" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7V0-cn-IqN">
+                        <rect key="frame" x="160" y="60" width="145" height="14.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="3vg-Et-rWE" firstAttribute="top" secondItem="bZM-XU-n5i" secondAttribute="bottom" constant="15" id="0gi-Cm-I2J"/>
+                    <constraint firstItem="7V0-cn-IqN" firstAttribute="leading" secondItem="ylM-sq-9Ba" secondAttribute="leading" id="3IK-L4-F7y"/>
+                    <constraint firstItem="ylM-sq-9Ba" firstAttribute="top" secondItem="d81-lp-DFW" secondAttribute="top" id="4qT-sK-8xl"/>
+                    <constraint firstItem="bZM-XU-n5i" firstAttribute="leading" secondItem="B29-Nk-6lM" secondAttribute="leading" constant="15" id="CtQ-K5-9VV"/>
+                    <constraint firstItem="7V0-cn-IqN" firstAttribute="top" secondItem="ylM-sq-9Ba" secondAttribute="bottom" constant="4" id="HT1-G1-bC7"/>
+                    <constraint firstAttribute="trailing" secondItem="ylM-sq-9Ba" secondAttribute="trailing" constant="15" id="Jlw-kt-Cgi"/>
+                    <constraint firstAttribute="trailing" secondItem="7V0-cn-IqN" secondAttribute="trailing" constant="15" id="NKv-fN-ffI"/>
+                    <constraint firstItem="bZM-XU-n5i" firstAttribute="top" secondItem="B29-Nk-6lM" secondAttribute="top" constant="15" id="S2u-t4-cK1"/>
+                    <constraint firstAttribute="trailing" secondItem="cdA-sd-wGq" secondAttribute="trailing" constant="15" id="THD-1Q-Bdn"/>
+                    <constraint firstItem="cdA-sd-wGq" firstAttribute="leading" secondItem="ylM-sq-9Ba" secondAttribute="leading" id="a6c-5Q-Zfg"/>
+                    <constraint firstAttribute="bottom" secondItem="3vg-Et-rWE" secondAttribute="bottom" id="eQe-Jt-J9H"/>
+                    <constraint firstItem="ylM-sq-9Ba" firstAttribute="leading" secondItem="bZM-XU-n5i" secondAttribute="trailing" constant="15" id="fJV-TI-q0I"/>
+                    <constraint firstItem="cdA-sd-wGq" firstAttribute="bottom" secondItem="d81-lp-DFW" secondAttribute="bottom" id="ocp-of-5Qd"/>
+                    <constraint firstAttribute="trailing" secondItem="3vg-Et-rWE" secondAttribute="trailing" id="sk2-sb-HVh"/>
+                    <constraint firstItem="3vg-Et-rWE" firstAttribute="leading" secondItem="B29-Nk-6lM" secondAttribute="leading" id="vts-Dd-KN1"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="9FH-DI-UKs"/>
+            <connections>
+                <outlet property="imgV" destination="d81-lp-DFW" id="CKB-QM-T0D"/>
+                <outlet property="lineLeft" destination="vts-Dd-KN1" id="kdI-Ah-mXP"/>
+                <outlet property="lineRight" destination="sk2-sb-HVh" id="69j-GV-DZe"/>
+                <outlet property="lineV" destination="3vg-Et-rWE" id="U3O-sP-nL6"/>
+                <outlet property="nameL" destination="7V0-cn-IqN" id="wEM-ck-QvD"/>
+                <outlet property="playTimeL" destination="TXB-zZ-Xv3" id="bN8-KF-chA"/>
+                <outlet property="subTitleL" destination="cdA-sd-wGq" id="DOL-T3-go3"/>
+                <outlet property="titleL" destination="ylM-sq-9Ba" id="SOL-tu-9gh"/>
+            </connections>
+            <point key="canvasLocation" x="112" y="469"/>
+        </tableViewCell>
     </objects>
     <resources>
         <image name="Book_rightjian_icon" width="8" height="14"/>

+ 20 - 12
smartRhino/Project/VCModel/Home/VC/View/HomeDetail/TextInputView.m

@@ -22,10 +22,10 @@
 
 @implementation TextInputView
 
-- (void)dealloc
-{
-    [_Notif removeObserver:self name:UIKeyboardDidShowNotification object:nil];
-}
+//- (void)dealloc
+//{
+//    [_Notif removeObserver:self name:UIKeyboardDidShowNotification object:nil];
+//}
 
 - (instancetype)initWithFrame:(CGRect)frame
 {
@@ -36,9 +36,14 @@
         [self.bottomView addSubview:self.tipLabel];
         [self.bottomView addSubview:self.numLabel];
         [self.bottomView addSubview:self.enterButton];
+        [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.right.mas_equalTo(self);
+            make.bottom.mas_equalTo(self.mas_safeAreaLayoutGuideBottom);
+            make.height.mas_offset(150);
+        }];
         UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss)];
         [self addGestureRecognizer:tap];
-        [_Notif addObserver:self selector:@selector(keyboardUp:) name:UIKeyboardDidShowNotification object:nil];
+//        [_Notif addObserver:self selector:@selector(keyboardUp:) name:UIKeyboardDidShowNotification object:nil];
         
         [self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
             make.top.mas_equalTo(10);
@@ -65,8 +70,8 @@
 }
 - (void)dismiss
 {
-    [self.textView resignFirstResponder];
     self.hidden = YES;
+    [self.textView resignFirstResponder];
 }
 - (void)enterButtonAction:(TDButton *)sender {
     if (_textView.text.length < 1) {
@@ -85,10 +90,10 @@
 }
 
 #pragma mark - keyboardNotif
-- (void)keyboardUp:(NSNotification *)notification {
-//    CGRect frame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
-//    self.bottomView.transform = CGAffineTransformMakeTranslation(0,-30);
-}
+//- (void)keyboardUp:(NSNotification *)notification {
+////    CGRect frame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
+////    self.bottomView.transform = CGAffineTransformMakeTranslation(0,-30);
+//}
 
 #pragma mark - UITextViewDelegate
 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
@@ -109,7 +114,7 @@
     if (!_bottomView) {
         _bottomView = [UIView new];
         //原代码kGXScreenHeigh-150
-        _bottomView.frame = CGRectMake(0, kGXScreenHeigh, kGXScreenWidth, 150.f);
+//        _bottomView.frame = CGRectMake(0, kGXScreenHeigh-150, kGXScreenWidth, 150.f);
         _bottomView.backgroundColor = UIColorHex(F5F5F5);
     }
     return _bottomView;
@@ -167,5 +172,8 @@
     }
     return _enterButton;
 }
-
+- (void)dealloc
+{
+    [self removeAllSubviews];
+}
 @end

+ 2 - 2
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Cell/MyFavoriteViewCell.h

@@ -7,12 +7,12 @@
 //
 
 #import <UIKit/UIKit.h>
-#import "SwipeTableCell.h"
+//#import "SwipeTableCell.h"
 #import "MyFavoriteSubModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface MyFavoriteViewCell : SwipeTableCell
+@interface MyFavoriteViewCell : UITableViewCell
 @property (strong, nonatomic) IBOutlet UIImageView *cell0IconImage;
 @property (weak, nonatomic) IBOutlet UILabel *cell0Title;
 @property (weak, nonatomic) IBOutlet UILabel *cell0ShareType;

+ 5 - 1
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.h

@@ -11,7 +11,8 @@
 typedef enum NewFileType{
     NewOtherFileType = 0,
     NewTopicFileType = 1,
-    NewSubFileType = 2,
+    NewCollectFileType = 2,
+    NewNotFileType = 3,
 }NewFileType;
 
 NS_ASSUME_NONNULL_BEGIN
@@ -21,6 +22,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic,assign) NSInteger ParentId;
 /// 修改文件夹 时用
 @property (nonatomic,assign) NSInteger foldId;
+@property (nonatomic,assign) NSInteger CollectionDataId;
 
 @property (nonatomic,assign) CreateFileFolderType createFoldType;
 @property (nonatomic,assign) ModiFyFileFolderType modifyTye;
@@ -28,7 +30,9 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic,copy) NSString            *titleStr;
 @property (nonatomic,copy) NSString            *fileName;
 @property (nonatomic,assign) BOOL               isSubVC;
+@property (nonatomic,assign) BOOL               isCollect;
 @property (nonatomic,assign) NSInteger            roleId;
+@property (nonatomic,assign) CollectModelType     CollectionType;
 
 +(MyFavoriteNewFindVC *)initMyFavoriteNewFindVC;
 @end

+ 140 - 39
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.m

@@ -142,6 +142,9 @@
         case NewTopicFileType:
             return 2 + self.chaoSongRenArr.count;
             break;
+        case NewCollectFileType:
+            return 3 + self.chaoSongRenArr.count;
+            break;
         default:
             return 0;
             break;
@@ -264,8 +267,75 @@
 //                    }];
 //                    return cell;
 //                }
-//                    break;
-//            }
+            //                    break;
+            //            }
+        }
+            break;
+        case NewCollectFileType:
+        {
+            switch (indexPath.row) {
+                case 0:{
+                    FindShareTypeCell *cell = [FindShareTypeCell configCell0:tableView indexPath:indexPath];
+                    cell.titleLabel.text = @"私有";
+                    cell.subTitleLabel.text = @"仅自己可见";
+                    cell.addButton.hidden = YES;
+                    cell.flagButton.selected = YES;
+                    if (self.roleId == 2) {
+                        cell.flagButton.selected = YES;
+                    }else{
+                        cell.flagButton.selected = NO;
+                    }
+                    [cell.flagButton setAction:^{
+                        [weakSelf setSelectBtnwithIndexPath:indexPath];
+                    }];
+                    return cell;
+                }break;
+                case 1:{
+                    FindShareTypeCell *cell = [FindShareTypeCell configCell0:tableView indexPath:indexPath];
+                    cell.titleLabel.text = @"公开";
+                    cell.subTitleLabel.text = @"所有人可见";
+                    cell.addButton.hidden = YES;
+                    if (self.roleId == 1) {
+                        cell.flagButton.selected = YES;;
+                    }else{
+                        cell.flagButton.selected = NO;
+                    }
+                    [cell.flagButton setAction:^{
+                        [weakSelf setSelectBtnwithIndexPath:indexPath];
+                    }];
+                    return cell;
+                }break;
+                case 2:{
+                    FindShareTypeCell *cell = [FindShareTypeCell configCell0:tableView indexPath:indexPath];
+                    cell.titleLabel.text = @"共享给...";
+                    cell.subTitleLabel.text = @"指定人可见";
+                    WS(weakSelf);
+                    [cell.addButton setAction:^{
+                        [weakSelf addPeople:indexPath];
+                    }];
+                    if (self.roleId == 3) {
+                        cell.flagButton.selected = YES;;
+                    }else{
+                        cell.flagButton.selected = NO;
+                    }
+                    [cell.flagButton setAction:^{
+                        [weakSelf setSelectBtnwithIndexPath:indexPath];
+                    }];
+                    return cell;
+                }break;
+                default:
+                {
+                    SelectModel * model = self.chaoSongRenArr[indexPath.row - 3];
+                    MyNewFindUserCell * cell = [tableView dequeueReusableCellWithIdentifier:@"MyNewFindUserCellId"];
+                    cell.titleL.text = model.SourceName;
+                    [cell.closeBtn setAction:^{
+                        [weakSelf.chaoSongRenArr removeObjectAtIndex:(indexPath.row - 3)];
+                        [weakSelf.tableView reloadData];
+                    }];
+                    return cell;
+                }
+                    break;
+            }
         }
             break;
         default:
@@ -306,45 +376,48 @@
             }
         }
             break;
-        default:
+        case NewOtherFileType:
         {
             FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
             cell0.flagButton.selected = YES;
             self.roleId = 2;
-            
-//            switch (indexPath.row) {
-//                case 0:{
-//                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
-//                    cell0.flagButton.selected = YES;
-////                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
-////                    cell1.flagButton.selected = NO;
-////                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
-////                    cell2.flagButton.selected = NO;
-//                    self.roleId = 2;
-//                }break;
-//                case 1:
-//                {
-//                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
-//                    cell0.flagButton.selected = NO;
-//                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
-//                    cell1.flagButton.selected = YES;
-//                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
-//                    cell2.flagButton.selected = NO;
-//                    self.roleId = 1;
-//                }
-//                    break;
-//                default:
-//                {
-//                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
-//                    cell0.flagButton.selected = NO;
-//                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
-//                    cell1.flagButton.selected = NO;
-//                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
-//                    cell2.flagButton.selected = YES;
-//                    self.roleId = 3;
-//                }
-//                    break;
-//            }
+        }
+            break;
+        default:
+        {
+            switch (indexPath.row) {
+                case 0:{
+                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
+                    cell0.flagButton.selected = YES;
+                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
+                    cell1.flagButton.selected = NO;
+                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
+                    cell2.flagButton.selected = NO;
+                    self.roleId = 2;
+                }break;
+                case 1:
+                {
+                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
+                    cell0.flagButton.selected = NO;
+                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
+                    cell1.flagButton.selected = YES;
+                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
+                    cell2.flagButton.selected = NO;
+                    self.roleId = 1;
+                }
+                    break;
+                default:
+                {
+                    FindShareTypeCell *cell0 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
+                    cell0.flagButton.selected = NO;
+                    FindShareTypeCell *cell1 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
+                    cell1.flagButton.selected = NO;
+                    FindShareTypeCell *cell2 = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]];
+                    cell2.flagButton.selected = YES;
+                    self.roleId = 3;
+                }
+                    break;
+            }
         }
             break;
     }
@@ -505,6 +578,9 @@
     [[HttpManager sharedHttpManager] PUTUrl:Host(APP_Middle_Add_Folder) parameters:dic responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         REMOVESHOW
         [[NSNotificationCenter defaultCenter] postNotificationName:NEWFILESUCCESS object:nil userInfo:responseObject];
+        if (weakSelf.isCollect) {
+            [weakSelf collectToFindWithSuperModel:responseObject];
+        }
         [weakSelf backViewController];
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW;
@@ -518,12 +594,37 @@
 //        SHOWERROR([ZYCTool handerResultData:error]);
 //    }];
 }
-
+- (void)collectToFindWithSuperModel:(NSDictionary *)dict{
+    
+    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
+    [dic setValue:@(self.CollectionDataId) forKey:@"CollectionDataId"];
+///     1文章 2话题 3 收藏 4笔记 5通知 6站内信 7小组 8 会议详情 14工作流审批 300 文件 400 会议纪要
+    [dic setValue:@(self.CollectionType) forKey:@"CollectionType"];
+    [dic setValue:dict[@"Id"] forKey:@"FolderId"];
+    [dic setValue:@(0) forKey:@"SourceUserId"];
+    
+//    [dic setValue:@(self.currentModel.Id) forKey:@"CollectionDataId"];
+//              ///     1文章 2话题 3 收藏 4笔记 5通知 6站内信 7小组 8 会议详情 14工作流审批 300 文件 400 会议纪要
+//              [dic setValue:@(1) forKey:@"CollectionType"];
+//              [dic setValue:@(0) forKey:@"FolderId"];
+//              [dic setValue:@([AppUserModel sharedAppUserModel].Id) forKey:@"SourceUserId"];
+    SHOWLOADING
+    WEAKSELF
+    [[HttpManager sharedHttpManager] PUTUrl:Host(API_CreateCollect) parameters:dic success:^(id  _Nonnull responseObject) {
+        REMOVESHOW
+        SHOWSUCCESS(@"收藏成功");
+        [[NSNotificationCenter defaultCenter] postNotificationName:COLLECTSUCCESS object:nil];
+        [weakSelf backViewController];
+    } failure:^(NSError * _Nonnull error) {
+        SHOWERROR([ZYCTool handerResultData:error]);
+    }];
+}
 -(void)backViewController
 {
     BOOL isFind = NO;
     for (NSInteger i = (self.navigationController.viewControllers.count - 1); i > 0 ;i --) {
-        if ([self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"MyTDTopicCreateVC")]) {
+        if ([self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"MyTDTopicCreateVC")]
+            ||[self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"MyTDTopicDetailVC")]) {
             [self.navigationController popToViewController:self.navigationController.viewControllers[i] animated:YES];
             isFind = YES;
             return;

+ 6 - 3
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m

@@ -483,9 +483,9 @@
                 vc.modifyTye = CreateType;
                 vc.roleId = weakSelf.RoleId;
                 if (weakSelf.isSubVC) {
-                    vc.fileType = NewSubFileType;
+                    vc.fileType = NewNotFileType;
                 }else{
-                    vc.fileType = NewOtherFileType;
+                    vc.fileType = NewCollectFileType;
                 }
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }
@@ -499,7 +499,7 @@
                 vc.createFoldType = CreateCollectionType;
                 vc.foldId = weakSelf.FolderId;
                 vc.modifyTye = ModifyType;
-                vc.fileType = NewOtherFileType;
+                vc.fileType = NewCollectFileType;
                 vc.roleId = weakSelf.RoleId;
                 vc.titleStr = @"修改文件夹";
                 [weakSelf.navigationController pushViewController:vc animated:YES];
@@ -548,6 +548,9 @@
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     WS(weakSelf);
     MyFavoriteSubModel *model  = self.shouCangArray[indexPath.row];
+    if (!model) {
+        return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DefaultCell"];
+    }
     switch (self.operationStateEnum) {
         case OperationStateEnum0:{
             switch (model.AttributeValue) {

+ 4 - 4
smartRhino/Project/VCModel/My_Center/Controller/EditPhoneOrEmailVC.m

@@ -240,12 +240,12 @@
     NSLog(@"⚠️ 更换手机获取验证码 %@",self.changeOneTextField.text);
     SHOWLOADING
     WS(weakSelf);
-    [[HttpManager sharedHttpManager] GETUrl:[NSString stringWithFormat:@"%@%@",BaseUrl,LoginSendCodeGet] parameters:@{@"phone":self.changeOneTextField.text} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] GETUrl:Host(Modify_UserPhone_SendCode_Post) parameters:@{@"phone":self.changeOneTextField.text} responseStyle:DATA success:^(id  _Nonnull responseObject) {
         REMOVESHOW
         [weakSelf startTime];
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW
-        SHOWERROR([ZYCTool handerResultData:error])
+        SHOWERROR([ZYCTool handerResultData:error]);
     }];
 }
 /// 修改手机号 提交数据
@@ -270,11 +270,11 @@
                       [strongSelf.navigationController popToViewController:strongSelf.navigationController.viewControllers[1] animated:YES];
                } failure:^(NSError * _Nonnull error) {
                    REMOVESHOW
-                   SHOWERROR([ZYCTool handerResultData:error])
+                   SHOWERROR([ZYCTool handerResultData:error]);
                }];
     } failure:^(NSError * _Nonnull error) {
         REMOVESHOW
-        SHOWERROR([ZYCTool handerResultData:error])
+        SHOWERROR([ZYCTool handerResultData:error]);
     }];
 }
 #pragma mark - 修改邮箱

+ 213 - 4
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookSearchVC.m

@@ -183,7 +183,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                    cell.FileBtn.hidden = NO;
+                    cell.FileRightV.hidden = NO;
+                    [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                    [cell.FileBtn setAction:^{
+                        NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                        if (model.FolderId == 0) {
+                            vc.listType = MyFavoriteListLevelTypeB;
+                            vc.myTitle = @"笔记本";
+                        }else{
+                            vc.listType = MyFavoriteListLevelTypeC;
+                            vc.myTitle = model.FolderName;
+                        }
+                        vc.ParentId = model.ParentId;
+                        vc.FolderId = model.FolderId;
+                        vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                        [weakSelf.navigationController pushViewController:vc animated:YES];
+                    }];
                     return cell;
                 }
                     break;
@@ -225,7 +244,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 2:{
@@ -264,7 +302,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 3:{
@@ -305,7 +362,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 4:{
@@ -348,7 +424,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 5:{
@@ -394,7 +489,26 @@
                                 [weakSelf showUserInfo:model.UserId];
                             };
                             cell.cell1IconImageView6.hidden = YES;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 6:{
@@ -441,7 +555,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 7:{
@@ -492,7 +625,26 @@
                             };
                             cell.cell1IconImageView8.hidden = YES;
                             cell.cell1IconImageView9.hidden = YES;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         case 8:{
@@ -544,7 +696,26 @@
                                 [weakSelf showUserInfo:model.UserId];
                             };
                             cell.cell1IconImageView9.hidden = YES;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }break;
                         default:{
@@ -597,7 +768,26 @@
                             cell.ClickUserBlock = ^{
                                 [weakSelf showUserInfo:model.UserId];
                             };
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.FileBtn.hidden = NO;
+                            cell.FileRightV.hidden = NO;
+                            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                            [cell.FileBtn setAction:^{
+                                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                                if (model.FolderId == 0) {
+                                    vc.listType = MyFavoriteListLevelTypeB;
+                                    vc.myTitle = @"笔记本";
+                                }else{
+                                    vc.listType = MyFavoriteListLevelTypeC;
+                                    vc.myTitle = model.FolderName;
+                                }
+                                vc.ParentId = model.ParentId;
+                                vc.FolderId = model.FolderId;
+                                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                                [weakSelf.navigationController pushViewController:vc animated:YES];
+                            }];
                             return cell;
                         }
                             break;
@@ -641,7 +831,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                    cell.FileBtn.hidden = NO;
+                    cell.FileRightV.hidden = NO;
+                    [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+                    [cell.FileBtn setAction:^{
+                        NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                        if (model.FolderId == 0) {
+                            vc.listType = MyFavoriteListLevelTypeB;
+                            vc.myTitle = @"笔记本";
+                        }else{
+                            vc.listType = MyFavoriteListLevelTypeC;
+                            vc.myTitle = model.FolderName;
+                        }
+                        vc.ParentId = model.ParentId;
+                        vc.FolderId = model.FolderId;
+                        vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                        [weakSelf.navigationController pushViewController:vc animated:YES];
+                    }];
                     return cell;
                 }
                     break;
@@ -685,7 +894,7 @@
     [self.navigationController pushViewController:vc animated:YES];
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
-   MyNoteBookSubModel *model  = self.listArray[indexPath.row];
+    MyNoteBookSubModel *model  = self.listArray[indexPath.row];
     if (self.IsSelected) {
         [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFI_NoteBookSelectNoteBook object:nil userInfo:@{@"noteBooks":@[model]}];
         [self back1];
@@ -765,9 +974,9 @@
             [[HttpManager sharedHttpManager] GETWithUrl:[NSString stringWithFormat:@"%@%ld",Article_Detail_Get,(long)model.Id] parameters:@{} success:^(id  _Nonnull responseObject) {
                 REMOVESHOW;
                 Item *itemModel = [[Item alloc]initWithDictionary:responseObject error:nil];
-//                HomeDetailController *homeDetail = [[HomeDetailController alloc] init];
-//                [homeDetail loadCurrentModel:itemModel];
-//                [weakSelf.navigationController pushViewController:homeDetail animated:YES];
+                //                HomeDetailController *homeDetail = [[HomeDetailController alloc] init];
+                //                [homeDetail loadCurrentModel:itemModel];
+                //                [weakSelf.navigationController pushViewController:homeDetail animated:YES];
                 MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
                 vc.type = CollectModel_Aritle;
                 vc.Id = itemModel.Id;

+ 156 - 36
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m

@@ -236,19 +236,19 @@
     self.vcTitleLabel.text = self.myTitle;
     switch (self.listType) {
         case MyNoteBookListLevelTypeA :
-            self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
+            self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑", nil];
             break;
         case MyNoteBookListLevelTypeB:
         {
             if (self.IsSystemDefault) {
-                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
+                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑", nil];
             }else{
-                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"共享范围",@"转发", nil];
+                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑", nil];
             }
         }
             break;
         default:
-            self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
+            self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑", nil];
             break;
     }
     switch (self.operationStateEnum) {
@@ -465,9 +465,9 @@
                 vc.createFoldType = CreateNotesType;
                 vc.modifyTye = CreateType;
                 if (weakSelf.isSubVC) {
-                    vc.fileType = NewSubFileType;
+                    vc.fileType = NewNotFileType;
                 }else{
-                    vc.fileType = NewOtherFileType;
+                    vc.fileType = weakSelf.TypeValue == 1 ? NewTopicFileType : NewOtherFileType;
                 }
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }
@@ -564,6 +564,9 @@
                                 model.IsSelect = !model.IsSelect;
                                 [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -596,7 +599,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 2:{
                                     NoteBookCell *cell = [NoteBookCell configCell10:tableView indexPath:indexPath];
@@ -625,7 +631,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 3:{
                                     NoteBookCell *cell = [NoteBookCell configCell20:tableView indexPath:indexPath];
@@ -656,7 +665,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 4:{
                                     NoteBookCell *cell = [NoteBookCell configCell30:tableView indexPath:indexPath];
@@ -689,7 +701,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 5:{
                                     NoteBookCell *cell = [NoteBookCell configCell40:tableView indexPath:indexPath];
@@ -725,7 +740,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 6:{
                                     NoteBookCell *cell = [NoteBookCell configCell40:tableView indexPath:indexPath];
@@ -762,7 +780,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 7:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -803,7 +824,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 8:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -845,7 +869,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 default:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -888,7 +915,10 @@
                                         model.IsSelect = !model.IsSelect;
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }
                                     break;
                             }
@@ -928,6 +958,9 @@
                                 [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -963,7 +996,7 @@
                         model.IsSelect = !model.IsSelect;
                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                     }];
-                    return cell;
+                            return cell;
                 }break;
             }break;
         case OperationStateEnum0:{ // 正常
@@ -1019,6 +1052,10 @@
                                 [weakSelf showUserInfo:model.UserId];
                             };
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                             
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -1070,7 +1107,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 2:{
                                     NoteBookCell *cell = [NoteBookCell configCell1:tableView indexPath:indexPath];
@@ -1118,7 +1160,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 3:{
                                     NoteBookCell *cell = [NoteBookCell configCell2:tableView indexPath:indexPath];
@@ -1168,7 +1215,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 4:{
                                     NoteBookCell *cell = [NoteBookCell configCell3:tableView indexPath:indexPath];
@@ -1220,7 +1272,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 5:{
                                     NoteBookCell *cell = [NoteBookCell configCell4:tableView indexPath:indexPath];
@@ -1275,7 +1332,12 @@
                                     };
                                     cell.cell1IconImageView6.hidden = YES;
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 6:{
                                     NoteBookCell *cell = [NoteBookCell configCell4:tableView indexPath:indexPath];
@@ -1331,7 +1393,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 7:{
                                     NoteBookCell *cell = [NoteBookCell configCell5:tableView indexPath:indexPath];
@@ -1391,7 +1458,12 @@
                                     cell.cell1IconImageView8.hidden = YES;
                                     cell.cell1IconImageView9.hidden = YES;
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 8:{
                                     NoteBookCell *cell = [NoteBookCell configCell5:tableView indexPath:indexPath];
@@ -1452,7 +1524,12 @@
                                     };
                                     cell.cell1IconImageView9.hidden = YES;
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 default:{
                                     NoteBookCell *cell = [NoteBookCell configCell5:tableView indexPath:indexPath];
@@ -1514,7 +1591,12 @@
                                         [weakSelf showUserInfo:model.UserId];
                                     };
                                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                                     
+
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }
                                     break;
                             }
@@ -1574,6 +1656,10 @@
                                 [weakSelf showUserInfo:model.UserId];
                             };
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                             
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -1606,7 +1692,7 @@
                     cell.cell0Number.hidden = model.FileCount == 0 ? YES : NO;
                     cell.cell0Title.text = model.FolderName;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                    return cell;
+                            return cell;
                 }break;
             }
         }break;
@@ -1648,6 +1734,9 @@
                                 }
                                 [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -1683,7 +1772,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 2:{
                                     NoteBookCell *cell = [NoteBookCell configCell10:tableView indexPath:indexPath];
@@ -1715,7 +1807,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 3:{
                                     NoteBookCell *cell = [NoteBookCell configCell20:tableView indexPath:indexPath];
@@ -1749,7 +1844,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 4:{
                                     NoteBookCell *cell = [NoteBookCell configCell30:tableView indexPath:indexPath];
@@ -1785,7 +1883,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 5:{
                                     NoteBookCell *cell = [NoteBookCell configCell40:tableView indexPath:indexPath];
@@ -1824,7 +1925,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 6:{
                                     NoteBookCell *cell = [NoteBookCell configCell40:tableView indexPath:indexPath];
@@ -1864,7 +1968,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 7:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -1908,7 +2015,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 case 8:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -1953,7 +2063,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }break;
                                 default:{
                                     NoteBookCell *cell = [NoteBookCell configCell50:tableView indexPath:indexPath];
@@ -1999,7 +2112,10 @@
                                         }
                                         [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
-                                    return cell;
+                                    cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            return cell;
                                 }
                                     break;
                             }
@@ -2042,6 +2158,9 @@
                                 [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                             }];
                             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+                            cell.bottomView.hidden = YES;
+                            cell.bottomHeight.constant = 0.f;
+                            cell.selectionStyle = UITableViewCellSelectionStyleNone;
                             return cell;
                         }
                             break;
@@ -2097,7 +2216,7 @@
                         cell.selectButton.hidden = YES;
                     }
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
-                    return cell;
+                            return cell;
                 }break;
             }
         }
@@ -2222,6 +2341,7 @@
                 }];
                 [alertVC addAction:ok];
                 [alertVC addAction:noOk];
+                completionHandler(YES);
                 [weakSelf presentViewController:alertVC animated:YES completion:nil];
             }];
             action1.backgroundColor = RGB(255, 59, 47);

+ 52 - 60
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/SelectSaveVC.m

@@ -11,21 +11,17 @@
 #import "MyFavoriteViewCell.h"
 #import "ChatMsgSearchHistoryVC.h"
 #import "MyFavoriteNewFindVC.h"
-
+#import "MyTDGroupView.h"
 
 @interface SelectSaveVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
-
-@property (weak, nonatomic) IBOutlet UILabel *titleL;
-
-@property (weak, nonatomic) IBOutlet UIButton *rightAddBtn;
-@property (strong, nonatomic) NSMutableArray *taskActionArray;
-
-
-@property (assign, nonatomic) PageTypeFromShou pageType;
-
+@property (weak, nonatomic) IBOutlet UIView      *HeadView;
+@property (weak, nonatomic) IBOutlet UILabel     *titleL;
+@property (weak, nonatomic) IBOutlet UIButton    *rightAddBtn;
+@property (strong, nonatomic) NSMutableArray     *taskActionArray;
+@property (strong, nonatomic) MyTDGroupView      *SearchView;
+@property (assign, nonatomic) PageTypeFromShou    pageType;
 @property (nonatomic, strong) NSMutableArray <MyNoteBookSubModel*>*noticeArray ;
-
 @property (nonatomic, assign) NSUInteger currentPage ;
 @property (nonatomic, assign) NSUInteger totalPage ;
 @property (nonatomic, assign) NSUInteger totalRecord ;
@@ -50,6 +46,13 @@
     SelectSaveVC *controller = [StoryboardManager.shared.myNoteBook instantiateViewControllerWithIdentifier:@"SelectSaveVC"];
     return controller;
 }
+- (MyTDGroupView *)SearchView
+{
+    if (!_SearchView) {
+        _SearchView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
+    }
+    return _SearchView;
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.fd_prefersNavigationBarHidden = YES;
@@ -57,12 +60,23 @@
     WS(weakSelf);
     [self.rightAddBtn setAction:^{
         MyFavoriteNewFindVC *vc = [MyFavoriteNewFindVC initMyFavoriteNewFindVC];
-        vc.ParentId = self.ParentId;
+        vc.ParentId = weakSelf.ParentId;
         vc.createFoldType = CreateNotesType;
         vc.modifyTye = CreateType;
         vc.fileType = NewOtherFileType;
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
+    [self.HeadView addSubview:self.SearchView];
+    [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_offset(5);
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(36);
+    }];
+    [self.SearchView.button setAction:^{
+        ChatMsgSearchHistoryVC *vc = [ChatMsgSearchHistoryVC initChatMsgSearchHistoryVC];
+        vc.fromModular = PageTypeFromModular2;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
 }
 
 - (void)viewWillAppear:(BOOL)animated {
@@ -95,31 +109,15 @@
     return 1;
 }
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
-    return self.noticeArray.count + 2;
+    return self.noticeArray.count + 1;
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
-    if (indexPath.row == 0) {
-        ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell0:tableView indexPath:indexPath];
-                      
-        WS(weakSelf);
-                       
-        [cell.cell0SearchBtn setAction:^{
-                           
-            ChatMsgSearchHistoryVC *vc = [ChatMsgSearchHistoryVC initChatMsgSearchHistoryVC];
-                           
-            vc.fromModular = PageTypeFromModular2;
-                           
-            [weakSelf.navigationController pushViewController:vc animated:YES];
-                       
-        }];
-                       
-        return cell;
-    }else if (indexPath.row == 1){
+    if (indexPath.row == 0){
         ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell30:tableView indexPath:indexPath];
         return cell;
     }else{
         MyFavoriteViewCell *cell = [MyFavoriteViewCell configCell0:tableView indexPath:indexPath];
-        MyNoteBookSubModel * model = self.noticeArray[indexPath.row -2];
+        MyNoteBookSubModel * model = self.noticeArray[indexPath.row - 1];
         switch (model.RoleId) {
             case 1:
                 cell.cell0IconImage.image = IMG(@"find_1");
@@ -171,48 +169,42 @@
     // 从创建笔记push过来
     if (self.isFromCreateBookVc) {
         if (indexPath.row == 0) {
-            return;
-        }
-        else if (indexPath.row == 1) {
             MyNoteBookSubModel *tmpModel = [[MyNoteBookSubModel alloc]init];
             tmpModel.Name = @"根目录";
             tmpModel.Id = self.ParentId;
             [self selectFolder:tmpModel];
         }
         else {
-            MyNoteBookSubModel *tmpModel = self.noticeArray[indexPath.row - 2];
+            MyNoteBookSubModel *tmpModel = self.noticeArray[indexPath.row - 1];
             [self selectFolder:tmpModel];
         }
     }
     else {
-        if (indexPath.row == 0) {
-                return;
-            }else if(indexPath.row == 1){
-                MyNoteBookSubModel * model = [[MyNoteBookSubModel alloc] init];
-                model.Id = self.ParentId;
-                switch (self.collectType) {
-                    case CollectHanderType_Collect:
-                        [self collectToFindWithSuperModel:model];
-                        break;
-                    default:
-                    {
-                        [self moveFind:self.FolderIds withSuperModel:model];
-                    }break;
+        if(indexPath.row == 1){
+            MyNoteBookSubModel * model = [[MyNoteBookSubModel alloc] init];
+            model.Id = self.ParentId;
+            switch (self.collectType) {
+                case CollectHanderType_Collect:
+                {
+                    [self collectToFindWithSuperModel:model];
                 }
-            }else {
-                if (self.noticeArray[indexPath.row - 2].IsDisable) {
-                    
-                }else{
-                    switch (self.collectType) {
-                        case CollectHanderType_Collect:
-                            [self collectToFindWithSuperModel:self.noticeArray[indexPath.row - 2]];
-                            break;
-                        default:
-                            [self moveFind:self.FolderIds withSuperModel:self.noticeArray[indexPath.row - 2]];
-                            break;
-                    }
+                    break;
+                default:
+                {
+                    [self moveFind:self.FolderIds withSuperModel:model];
                 }
+                    break;
             }
+        }else {
+            switch (self.collectType) {
+                case CollectHanderType_Collect:
+                    [self collectToFindWithSuperModel:self.noticeArray[indexPath.row - 1]];
+                    break;
+                default:
+                    [self moveFind:self.FolderIds withSuperModel:self.noticeArray[indexPath.row - 1]];
+                    break;
+            }
+        }
     }
 }
 

+ 15 - 4
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/NoteBook.storyboard

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Yvd-ib-FvZ">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Yvd-ib-FvZ">
     <device id="retina4_7" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
@@ -1801,28 +1801,39 @@
                                 </connections>
                             </view>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="U35-kL-exJ">
-                                <rect key="frame" x="0.0" y="64" width="375" height="603"/>
+                                <rect key="frame" x="0.0" y="110" width="375" height="557"/>
                                 <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                                 <connections>
                                     <outlet property="dataSource" destination="G8x-uu-qqn" id="aB9-wM-oJK"/>
                                     <outlet property="delegate" destination="G8x-uu-qqn" id="Cx5-Mn-Jes"/>
                                 </connections>
                             </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KKw-qA-U4k">
+                                <rect key="frame" x="0.0" y="64" width="375" height="46"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="46" id="IRB-Qm-Agg"/>
+                                </constraints>
+                            </view>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                         <constraints>
+                            <constraint firstItem="U35-kL-exJ" firstAttribute="top" secondItem="KKw-qA-U4k" secondAttribute="bottom" id="5mT-Go-yHm"/>
                             <constraint firstItem="J9O-lq-fSR" firstAttribute="top" secondItem="vaD-YL-7zt" secondAttribute="top" id="9cr-ba-a93"/>
-                            <constraint firstItem="U35-kL-exJ" firstAttribute="top" secondItem="J9O-lq-fSR" secondAttribute="bottom" id="Akb-3o-bS2"/>
+                            <constraint firstItem="kFk-dI-gzL" firstAttribute="trailing" secondItem="KKw-qA-U4k" secondAttribute="trailing" id="NJb-gj-EgQ"/>
                             <constraint firstItem="J9O-lq-fSR" firstAttribute="trailing" secondItem="kFk-dI-gzL" secondAttribute="trailing" id="O6H-lH-hO8"/>
                             <constraint firstAttribute="bottom" secondItem="U35-kL-exJ" secondAttribute="bottom" id="Q2H-i2-uML"/>
                             <constraint firstItem="U35-kL-exJ" firstAttribute="leading" secondItem="kFk-dI-gzL" secondAttribute="leading" id="QvJ-YB-eZX"/>
                             <constraint firstItem="kFk-dI-gzL" firstAttribute="trailing" secondItem="U35-kL-exJ" secondAttribute="trailing" id="eXz-Jp-DbT"/>
+                            <constraint firstItem="KKw-qA-U4k" firstAttribute="leading" secondItem="kFk-dI-gzL" secondAttribute="leading" id="lr7-Oz-RAK"/>
                             <constraint firstItem="J9O-lq-fSR" firstAttribute="leading" secondItem="kFk-dI-gzL" secondAttribute="leading" id="nQO-cQ-LUd"/>
+                            <constraint firstItem="KKw-qA-U4k" firstAttribute="top" secondItem="J9O-lq-fSR" secondAttribute="bottom" id="qiY-Lf-TbL"/>
                         </constraints>
                         <viewLayoutGuide key="safeArea" id="kFk-dI-gzL"/>
                     </view>
                     <navigationItem key="navigationItem" id="RlK-rj-0SF"/>
                     <connections>
+                        <outlet property="HeadView" destination="KKw-qA-U4k" id="eWK-xT-86o"/>
                         <outlet property="operationBackButton" destination="mT7-Yy-Zvj" id="PBD-dF-5bf"/>
                         <outlet property="rightAddBtn" destination="urZ-tr-o3r" id="BG8-62-T09"/>
                         <outlet property="tableView" destination="U35-kL-exJ" id="xOV-Ug-oHB"/>
@@ -1831,7 +1842,7 @@
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="V5i-hf-pvU" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="-532" y="2246"/>
+            <point key="canvasLocation" x="-532" y="2245.7271364317844"/>
         </scene>
         <!--Read ListVC-->
         <scene sceneID="gLg-Gr-eYZ">

+ 4 - 0
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.h

@@ -49,6 +49,10 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentHeight;
 
 @property (weak, nonatomic) IBOutlet UIView *ImgShowView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomHeight;
+@property (weak, nonatomic) IBOutlet UIView *bottomView;
+@property (weak, nonatomic) IBOutlet UIButton *FileBtn;
+@property (weak, nonatomic) IBOutlet UIImageView *FileRightV;
 
 @property (assign, nonatomic)BOOL                 isShowList;
 @property (copy, nonatomic) void(^ClickUserBlock)(void);

+ 146 - 2
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.xib

@@ -106,7 +106,6 @@
                         <constraints>
                             <constraint firstAttribute="trailing" secondItem="6j0-Y4-5EH" secondAttribute="trailing" id="M0c-V9-wyV"/>
                             <constraint firstItem="6j0-Y4-5EH" firstAttribute="top" secondItem="OGo-jF-1c2" secondAttribute="top" id="SkW-wE-yDE"/>
-                            <constraint firstAttribute="height" constant="50" id="Tc6-dj-r9A"/>
                             <constraint firstAttribute="bottom" secondItem="6j0-Y4-5EH" secondAttribute="bottom" id="oZa-MC-LgM"/>
                             <constraint firstAttribute="height" constant="50" id="s5X-mn-Iqh"/>
                             <constraint firstItem="6j0-Y4-5EH" firstAttribute="leading" secondItem="OGo-jF-1c2" secondAttribute="leading" id="uoi-60-xuw"/>
@@ -115,11 +114,24 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="w4r-wy-TfI">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="Z4m-kU-fhj">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ahW-Nd-D6H">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
                     <constraint firstItem="abt-St-Veu" firstAttribute="top" secondItem="IAB-LU-o2C" secondAttribute="top" constant="12" id="4zr-q8-dlQ"/>
                     <constraint firstItem="dyl-TL-3df" firstAttribute="leading" secondItem="IAB-LU-o2C" secondAttribute="leadingMargin" id="6Ov-SY-xJn"/>
+                    <constraint firstItem="Z4m-kU-fhj" firstAttribute="centerY" secondItem="OaO-nY-DGa" secondAttribute="centerY" id="AGX-xH-ba9"/>
+                    <constraint firstItem="ahW-Nd-D6H" firstAttribute="centerY" secondItem="Z4m-kU-fhj" secondAttribute="centerY" id="CUr-Y7-nRQ"/>
                     <constraint firstItem="jgV-HT-IXs" firstAttribute="top" secondItem="OaO-nY-DGa" secondAttribute="bottom" constant="6" id="DQ0-AK-MUp"/>
+                    <constraint firstAttribute="trailing" secondItem="Z4m-kU-fhj" secondAttribute="trailing" constant="15" id="DeI-ki-Wfh"/>
                     <constraint firstAttribute="trailing" secondItem="N1e-rn-YSi" secondAttribute="trailing" id="GmV-wy-zhi"/>
                     <constraint firstItem="aUB-C7-5ft" firstAttribute="leading" secondItem="jgV-HT-IXs" secondAttribute="trailing" constant="16" id="NBQ-6V-WZZ"/>
                     <constraint firstItem="N1e-rn-YSi" firstAttribute="top" secondItem="OGo-jF-1c2" secondAttribute="bottom" id="NWF-dR-v9g"/>
@@ -128,6 +140,7 @@
                     <constraint firstItem="w4r-wy-TfI" firstAttribute="leading" secondItem="OaO-nY-DGa" secondAttribute="trailing" constant="10" id="VhO-IJ-QQj"/>
                     <constraint firstItem="jgV-HT-IXs" firstAttribute="leading" secondItem="OaO-nY-DGa" secondAttribute="leading" id="YkK-Cz-Hbb"/>
                     <constraint firstItem="dyl-TL-3df" firstAttribute="top" secondItem="jgV-HT-IXs" secondAttribute="bottom" constant="17" id="atJ-9i-d5z"/>
+                    <constraint firstItem="Z4m-kU-fhj" firstAttribute="leading" secondItem="ahW-Nd-D6H" secondAttribute="trailing" constant="3" id="eCT-dS-v3w"/>
                     <constraint firstAttribute="bottom" secondItem="N1e-rn-YSi" secondAttribute="bottom" id="fdd-B0-n5n"/>
                     <constraint firstItem="N1e-rn-YSi" firstAttribute="leading" secondItem="IAB-LU-o2C" secondAttribute="leading" id="iHx-jf-a5A"/>
                     <constraint firstItem="aUB-C7-5ft" firstAttribute="centerY" secondItem="jgV-HT-IXs" secondAttribute="centerY" id="mAm-3U-9j3"/>
@@ -143,8 +156,12 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="Klp-5r-rz0"/>
             <connections>
+                <outlet property="FileBtn" destination="ahW-Nd-D6H" id="7Dl-Tm-p4l"/>
+                <outlet property="FileRightV" destination="Z4m-kU-fhj" id="IbJ-LY-Ux0"/>
                 <outlet property="ImgShowView" destination="hnw-Cp-jlX" id="rLb-uU-2no"/>
                 <outlet property="IsTopV" destination="w4r-wy-TfI" id="Akt-Fb-PSi"/>
+                <outlet property="bottomHeight" destination="s5X-mn-Iqh" id="fSh-gC-CXu"/>
+                <outlet property="bottomView" destination="OGo-jF-1c2" id="mKy-it-9FH"/>
                 <outlet property="cell1IconImage" destination="abt-St-Veu" id="enQ-S3-TJo"/>
                 <outlet property="cell1IconImageView1" destination="JaZ-7O-dgA" id="Bc6-Vb-Zmh"/>
                 <outlet property="cell1ShareType" destination="jgV-HT-IXs" id="8YH-PU-0rd"/>
@@ -281,6 +298,16 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="8T7-Cn-RrH">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="Pe0-an-Oyn">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="M48-1g-6WP">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
                     <constraint firstAttribute="bottom" secondItem="NdI-dP-fMG" secondAttribute="bottom" id="2Jd-aY-4AX"/>
@@ -288,6 +315,7 @@
                     <constraint firstItem="9sU-0G-5dz" firstAttribute="leading" secondItem="rmK-ze-xqi" secondAttribute="trailing" constant="16" id="9Tt-ao-xWA"/>
                     <constraint firstItem="9sU-0G-5dz" firstAttribute="centerY" secondItem="rmK-ze-xqi" secondAttribute="centerY" id="9bd-f0-YVx"/>
                     <constraint firstItem="hnw-Cp-jlX" firstAttribute="leading" secondItem="nFh-yA-Cpy" secondAttribute="leading" constant="15" id="9he-rW-06D"/>
+                    <constraint firstItem="Pe0-an-Oyn" firstAttribute="leading" secondItem="M48-1g-6WP" secondAttribute="trailing" constant="3" id="H48-kn-bnX"/>
                     <constraint firstItem="NdI-dP-fMG" firstAttribute="top" secondItem="hnw-Cp-jlX" secondAttribute="bottom" constant="5" id="KNU-CL-u6J"/>
                     <constraint firstItem="B7M-jR-123" firstAttribute="leading" secondItem="nFh-yA-Cpy" secondAttribute="leadingMargin" id="Lnk-DM-8P6"/>
                     <constraint firstItem="NdI-dP-fMG" firstAttribute="leading" secondItem="nFh-yA-Cpy" secondAttribute="leading" constant="15" id="M0i-CM-CGb"/>
@@ -297,6 +325,8 @@
                     <constraint firstItem="Ztf-Au-gja" firstAttribute="leading" secondItem="bRg-pR-Aem" secondAttribute="trailing" constant="13" id="ULs-kH-utD"/>
                     <constraint firstItem="bRg-pR-Aem" firstAttribute="top" secondItem="nFh-yA-Cpy" secondAttribute="top" constant="12" id="UlQ-q3-O5D"/>
                     <constraint firstItem="X75-GN-9be" firstAttribute="leading" secondItem="nFh-yA-Cpy" secondAttribute="leading" id="VU9-IM-cWx"/>
+                    <constraint firstItem="Pe0-an-Oyn" firstAttribute="centerY" secondItem="Ztf-Au-gja" secondAttribute="centerY" id="ZLk-XW-rnr"/>
+                    <constraint firstItem="M48-1g-6WP" firstAttribute="centerY" secondItem="Pe0-an-Oyn" secondAttribute="centerY" id="ah6-aX-da6"/>
                     <constraint firstItem="bRg-pR-Aem" firstAttribute="leading" secondItem="nFh-yA-Cpy" secondAttribute="leading" constant="15" id="dTz-VM-gcH"/>
                     <constraint firstItem="hnw-Cp-jlX" firstAttribute="top" secondItem="B7M-jR-123" secondAttribute="bottom" constant="10" id="fPT-R7-ij3"/>
                     <constraint firstItem="Ztf-Au-gja" firstAttribute="top" secondItem="bRg-pR-Aem" secondAttribute="top" id="l2L-Qb-cLr"/>
@@ -304,13 +334,18 @@
                     <constraint firstItem="B7M-jR-123" firstAttribute="top" secondItem="rmK-ze-xqi" secondAttribute="bottom" constant="17" id="oOq-cZ-7w1"/>
                     <constraint firstAttribute="trailing" secondItem="NdI-dP-fMG" secondAttribute="trailing" constant="15" id="p5c-ig-aV4"/>
                     <constraint firstAttribute="trailing" secondItem="X75-GN-9be" secondAttribute="trailing" id="pVw-Ol-dKc"/>
+                    <constraint firstAttribute="trailing" secondItem="Pe0-an-Oyn" secondAttribute="trailing" constant="15" id="pb3-qJ-VEE"/>
                     <constraint firstAttribute="bottom" secondItem="X75-GN-9be" secondAttribute="bottom" id="qCQ-cz-abc"/>
                     <constraint firstAttribute="trailing" secondItem="hnw-Cp-jlX" secondAttribute="trailing" constant="15" id="rQG-g8-ga8"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="vyt-tm-Zjp"/>
             <connections>
+                <outlet property="FileBtn" destination="M48-1g-6WP" id="44N-3Y-vqN"/>
+                <outlet property="FileRightV" destination="Pe0-an-Oyn" id="usG-Jr-aKa"/>
                 <outlet property="IsTopV" destination="8T7-Cn-RrH" id="rzw-dd-hyw"/>
+                <outlet property="bottomHeight" destination="abc-l4-dab" id="P09-QK-nbr"/>
+                <outlet property="bottomView" destination="NdI-dP-fMG" id="J0h-Hf-SwM"/>
                 <outlet property="cell1IconImage" destination="bRg-pR-Aem" id="qQ7-bQ-ZS0"/>
                 <outlet property="cell1IconImageView1" destination="Gnp-RJ-Hmh" id="FMb-ub-I0A"/>
                 <outlet property="cell1IconImageView2" destination="gxO-TH-2Hc" id="eoh-2E-rfj"/>
@@ -449,8 +484,19 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="zAV-S6-Jz6">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="kgF-cl-wUa">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bqm-GI-TGN">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
+                    <constraint firstItem="kgF-cl-wUa" firstAttribute="centerY" secondItem="3xG-IS-faC" secondAttribute="centerY" id="2I1-Om-1Jb"/>
                     <constraint firstItem="tTZ-2z-MKa" firstAttribute="leading" secondItem="UMj-Bj-0VW" secondAttribute="leading" constant="15" id="2cD-UN-0kP"/>
                     <constraint firstItem="zAV-S6-Jz6" firstAttribute="centerY" secondItem="3xG-IS-faC" secondAttribute="centerY" id="6ao-O6-MvU"/>
                     <constraint firstItem="i3I-zC-ySX" firstAttribute="leading" secondItem="UMj-Bj-0VW" secondAttribute="leading" constant="15" id="7Qg-G9-XMh"/>
@@ -468,17 +514,24 @@
                     <constraint firstItem="t5f-iA-ivo" firstAttribute="leading" secondItem="3xG-IS-faC" secondAttribute="leading" id="Wed-a6-jsl"/>
                     <constraint firstItem="zAV-S6-Jz6" firstAttribute="leading" secondItem="3xG-IS-faC" secondAttribute="trailing" constant="10" id="aUC-hE-EJI"/>
                     <constraint firstItem="3xG-IS-faC" firstAttribute="leading" secondItem="tTZ-2z-MKa" secondAttribute="trailing" constant="13" id="e8R-PN-n2h"/>
+                    <constraint firstAttribute="trailing" secondItem="kgF-cl-wUa" secondAttribute="trailing" constant="15" id="eJz-5h-iRa"/>
                     <constraint firstItem="tTZ-2z-MKa" firstAttribute="top" secondItem="UMj-Bj-0VW" secondAttribute="top" constant="12" id="fkZ-cq-fC7"/>
                     <constraint firstItem="3xG-IS-faC" firstAttribute="top" secondItem="tTZ-2z-MKa" secondAttribute="top" id="gGX-yi-R3V"/>
                     <constraint firstItem="t5f-iA-ivo" firstAttribute="top" secondItem="3xG-IS-faC" secondAttribute="bottom" constant="6" id="n7w-d2-7s7"/>
                     <constraint firstItem="DmC-KE-m07" firstAttribute="centerY" secondItem="t5f-iA-ivo" secondAttribute="centerY" id="ndU-Vm-v6r"/>
+                    <constraint firstItem="bqm-GI-TGN" firstAttribute="centerY" secondItem="kgF-cl-wUa" secondAttribute="centerY" id="ofO-U2-UQp"/>
+                    <constraint firstItem="kgF-cl-wUa" firstAttribute="leading" secondItem="bqm-GI-TGN" secondAttribute="trailing" constant="3" id="qb1-yq-JrD"/>
                     <constraint firstItem="QXm-bX-Ebp" firstAttribute="top" secondItem="t5f-iA-ivo" secondAttribute="bottom" constant="17" id="qyL-vi-tUC"/>
                     <constraint firstAttribute="trailingMargin" secondItem="QXm-bX-Ebp" secondAttribute="trailing" id="zJI-bJ-pvl"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="Mmp-rH-TFW"/>
             <connections>
+                <outlet property="FileBtn" destination="bqm-GI-TGN" id="JXz-jb-6ZU"/>
+                <outlet property="FileRightV" destination="kgF-cl-wUa" id="ewL-Oa-u9h"/>
                 <outlet property="IsTopV" destination="zAV-S6-Jz6" id="ZWj-kQ-RcY"/>
+                <outlet property="bottomHeight" destination="zN9-p5-oAD" id="LxG-be-hMy"/>
+                <outlet property="bottomView" destination="i3I-zC-ySX" id="fav-le-wCk"/>
                 <outlet property="cell1IconImage" destination="tTZ-2z-MKa" id="ZXx-Sk-dg7"/>
                 <outlet property="cell1IconImageView1" destination="JIP-D8-aty" id="tqK-nC-yHJ"/>
                 <outlet property="cell1IconImageView2" destination="WnT-Sw-zlc" id="eiZ-HK-gUS"/>
@@ -639,8 +692,19 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="nAn-1q-PQA">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="6uq-eu-E6N">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xxv-kD-7gH">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
+                    <constraint firstAttribute="trailing" secondItem="6uq-eu-E6N" secondAttribute="trailing" constant="15" id="1qM-9I-4ML"/>
                     <constraint firstItem="anS-FN-zTh" firstAttribute="top" secondItem="Rlm-JQ-4tz" secondAttribute="bottom" constant="10" id="2pb-cp-Lhp"/>
                     <constraint firstItem="nAn-1q-PQA" firstAttribute="centerY" secondItem="A5s-4n-RNi" secondAttribute="centerY" id="5DH-Ev-tEq"/>
                     <constraint firstAttribute="bottom" secondItem="Aig-51-5sN" secondAttribute="bottom" id="6Rn-Z5-ngu"/>
@@ -657,8 +721,10 @@
                     <constraint firstItem="Rlm-JQ-4tz" firstAttribute="top" secondItem="7No-py-wjc" secondAttribute="bottom" constant="17" id="KSJ-DF-hju"/>
                     <constraint firstItem="5io-1J-LUN" firstAttribute="leading" secondItem="1Rh-gc-0Ly" secondAttribute="leading" constant="15" id="NIh-6h-X7T"/>
                     <constraint firstItem="iUl-hn-P1Q" firstAttribute="leading" secondItem="1Rh-gc-0Ly" secondAttribute="leading" constant="15" id="PcE-A5-OOk"/>
+                    <constraint firstItem="6uq-eu-E6N" firstAttribute="leading" secondItem="Xxv-kD-7gH" secondAttribute="trailing" constant="3" id="Qc2-jD-OuN"/>
                     <constraint firstItem="7No-py-wjc" firstAttribute="leading" secondItem="A5s-4n-RNi" secondAttribute="leading" id="SMT-XM-l12"/>
                     <constraint firstAttribute="trailing" secondItem="Aig-51-5sN" secondAttribute="trailing" id="buI-8g-sZE"/>
+                    <constraint firstItem="6uq-eu-E6N" firstAttribute="centerY" secondItem="A5s-4n-RNi" secondAttribute="centerY" id="gAs-ck-Xi5"/>
                     <constraint firstItem="vzb-D1-5VR" firstAttribute="leading" secondItem="1Rh-gc-0Ly" secondAttribute="leading" constant="15" id="hSC-2z-eir"/>
                     <constraint firstItem="A5s-4n-RNi" firstAttribute="top" secondItem="iUl-hn-P1Q" secondAttribute="top" id="iCF-Pl-OY8"/>
                     <constraint firstItem="anS-FN-zTh" firstAttribute="leading" secondItem="1Rh-gc-0Ly" secondAttribute="leading" constant="15" id="jSo-ZC-N9F"/>
@@ -666,12 +732,17 @@
                     <constraint firstItem="5io-1J-LUN" firstAttribute="top" secondItem="vzb-D1-5VR" secondAttribute="bottom" constant="5" id="llC-VQ-dgG"/>
                     <constraint firstItem="Jpv-qS-zSM" firstAttribute="centerY" secondItem="7No-py-wjc" secondAttribute="centerY" id="prZ-Dw-zLC"/>
                     <constraint firstItem="nAn-1q-PQA" firstAttribute="leading" secondItem="A5s-4n-RNi" secondAttribute="trailing" constant="10" id="qR9-Vo-dHK"/>
+                    <constraint firstItem="Xxv-kD-7gH" firstAttribute="centerY" secondItem="6uq-eu-E6N" secondAttribute="centerY" id="wEy-J7-Ob1"/>
                     <constraint firstAttribute="trailingMargin" secondItem="Rlm-JQ-4tz" secondAttribute="trailing" id="yfu-oW-vc2"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="vJs-D4-gXh"/>
             <connections>
+                <outlet property="FileBtn" destination="Xxv-kD-7gH" id="g5k-SB-JJX"/>
+                <outlet property="FileRightV" destination="6uq-eu-E6N" id="OD3-EL-Gtf"/>
                 <outlet property="IsTopV" destination="nAn-1q-PQA" id="i8F-60-2k3"/>
+                <outlet property="bottomHeight" destination="8Pv-7A-FmG" id="JLe-BV-RGd"/>
+                <outlet property="bottomView" destination="5io-1J-LUN" id="ehW-fF-Pzj"/>
                 <outlet property="cell1IconImage" destination="iUl-hn-P1Q" id="UbE-BK-g35"/>
                 <outlet property="cell1IconImageView1" destination="1ea-cP-0uV" id="2YO-Ed-5Gm"/>
                 <outlet property="cell1IconImageView2" destination="APD-Z4-U17" id="WlH-qt-oEh"/>
@@ -875,13 +946,27 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="9uR-Tb-op3">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="Sje-iN-egP">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nFM-fc-BN5">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
+                    <constraint firstItem="nFM-fc-BN5" firstAttribute="centerY" secondItem="Sje-iN-egP" secondAttribute="centerY" id="0df-WY-Byj"/>
+                    <constraint firstItem="Sje-iN-egP" firstAttribute="centerY" secondItem="HNa-dD-fZJ" secondAttribute="centerY" id="21K-Zn-sIA"/>
                     <constraint firstItem="esu-bb-zMU" firstAttribute="top" secondItem="QDz-Wl-3rV" secondAttribute="bottom" constant="5" id="2tg-jg-lEs"/>
                     <constraint firstItem="aM3-BG-9PX" firstAttribute="centerY" secondItem="c9Y-Ie-Jbz" secondAttribute="centerY" id="5Gj-vm-u3k"/>
                     <constraint firstAttribute="bottom" secondItem="wTS-6T-sYZ" secondAttribute="bottom" id="9UH-TW-ynv"/>
+                    <constraint firstAttribute="trailing" secondItem="Sje-iN-egP" secondAttribute="trailing" constant="15" id="AL4-uq-Zfg"/>
                     <constraint firstItem="wTS-6T-sYZ" firstAttribute="top" secondItem="esu-bb-zMU" secondAttribute="bottom" id="BmX-Sd-alx"/>
                     <constraint firstAttribute="trailing" secondItem="esu-bb-zMU" secondAttribute="trailing" constant="15" id="Cdc-2K-L9b"/>
+                    <constraint firstItem="Sje-iN-egP" firstAttribute="leading" secondItem="nFM-fc-BN5" secondAttribute="trailing" constant="3" id="Gq6-J4-7CM"/>
                     <constraint firstItem="esu-bb-zMU" firstAttribute="leading" secondItem="fBP-d8-VtT" secondAttribute="leading" constant="15" id="KNQ-O1-mlc"/>
                     <constraint firstItem="QDz-Wl-3rV" firstAttribute="leading" secondItem="fBP-d8-VtT" secondAttribute="leading" constant="15" id="MqQ-9f-29D"/>
                     <constraint firstItem="9uR-Tb-op3" firstAttribute="centerY" secondItem="HNa-dD-fZJ" secondAttribute="centerY" id="Scm-Tm-4gX"/>
@@ -907,7 +992,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="8Js-tY-ia6"/>
             <connections>
+                <outlet property="FileBtn" destination="nFM-fc-BN5" id="WNW-Su-Llo"/>
+                <outlet property="FileRightV" destination="Sje-iN-egP" id="alS-ez-laX"/>
                 <outlet property="IsTopV" destination="9uR-Tb-op3" id="5c4-B9-mgb"/>
+                <outlet property="bottomHeight" destination="0zD-1I-nsJ" id="S2L-08-JTA"/>
+                <outlet property="bottomView" destination="esu-bb-zMU" id="Q7P-Od-ghF"/>
                 <outlet property="cell1IconImage" destination="TDI-HR-MPi" id="VFc-Uq-weQ"/>
                 <outlet property="cell1IconImageView1" destination="Pan-ZT-uCq" id="K3i-gb-hwN"/>
                 <outlet property="cell1IconImageView2" destination="dth-6Y-ISB" id="EId-3j-zQI"/>
@@ -1179,8 +1268,19 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="qah-Ml-5et">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="6S9-rp-cyK">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p7Q-Ty-ROv">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
+                    <constraint firstItem="p7Q-Ty-ROv" firstAttribute="centerY" secondItem="6S9-rp-cyK" secondAttribute="centerY" id="4Mm-eB-dnF"/>
                     <constraint firstItem="irG-n8-gGN" firstAttribute="leading" secondItem="VE5-nb-HOf" secondAttribute="trailing" constant="16" id="58w-aA-saa"/>
                     <constraint firstItem="d2G-jo-hBB" firstAttribute="leading" secondItem="ked-P8-2OT" secondAttribute="leading" constant="15" id="7Bf-a2-Sev"/>
                     <constraint firstItem="fXP-VM-MSG" firstAttribute="leading" secondItem="ked-P8-2OT" secondAttribute="leading" constant="15" id="Csh-qy-7ix"/>
@@ -1192,6 +1292,7 @@
                     <constraint firstItem="VE5-nb-HOf" firstAttribute="top" secondItem="x2y-Tl-1UP" secondAttribute="bottom" constant="6" id="Qje-iA-JiJ"/>
                     <constraint firstItem="x2y-Tl-1UP" firstAttribute="leading" secondItem="fXP-VM-MSG" secondAttribute="trailing" constant="13" id="SLx-aR-lSL"/>
                     <constraint firstItem="I9z-hw-Pfa" firstAttribute="leading" secondItem="ked-P8-2OT" secondAttribute="leading" constant="15" id="Uwy-mO-GxG"/>
+                    <constraint firstAttribute="trailing" secondItem="6S9-rp-cyK" secondAttribute="trailing" constant="15" id="VGM-uc-FbF"/>
                     <constraint firstAttribute="trailingMargin" secondItem="0Dy-qD-ayg" secondAttribute="trailing" id="VX5-yM-5Dr"/>
                     <constraint firstAttribute="bottom" secondItem="I9z-hw-Pfa" secondAttribute="bottom" id="VnO-cy-jXU"/>
                     <constraint firstAttribute="trailing" secondItem="xM6-Wx-uby" secondAttribute="trailing" id="XXY-xD-00W"/>
@@ -1200,6 +1301,8 @@
                     <constraint firstItem="I9z-hw-Pfa" firstAttribute="top" secondItem="d2G-jo-hBB" secondAttribute="bottom" constant="5" id="d4d-Va-7gk"/>
                     <constraint firstAttribute="trailing" secondItem="1M9-M4-WAh" secondAttribute="trailing" constant="15" id="diz-p3-VOA"/>
                     <constraint firstItem="1M9-M4-WAh" firstAttribute="leading" secondItem="ked-P8-2OT" secondAttribute="leading" constant="15" id="ecc-v5-x7F"/>
+                    <constraint firstItem="6S9-rp-cyK" firstAttribute="centerY" secondItem="x2y-Tl-1UP" secondAttribute="centerY" id="esf-zB-c1c"/>
+                    <constraint firstItem="6S9-rp-cyK" firstAttribute="leading" secondItem="p7Q-Ty-ROv" secondAttribute="trailing" constant="3" id="jDh-Dv-lv6"/>
                     <constraint firstAttribute="trailing" secondItem="d2G-jo-hBB" secondAttribute="trailing" constant="15" id="kHE-9i-0M8"/>
                     <constraint firstItem="co0-Dp-HQm" firstAttribute="leading" secondItem="ked-P8-2OT" secondAttribute="leading" constant="15" id="kyT-BA-rZQ"/>
                     <constraint firstItem="irG-n8-gGN" firstAttribute="centerY" secondItem="VE5-nb-HOf" secondAttribute="centerY" id="lzf-BN-wQj"/>
@@ -1214,7 +1317,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="jBb-yd-IhK"/>
             <connections>
+                <outlet property="FileBtn" destination="p7Q-Ty-ROv" id="DYO-Uh-Rf7"/>
+                <outlet property="FileRightV" destination="6S9-rp-cyK" id="ZaM-Te-AgX"/>
                 <outlet property="IsTopV" destination="qah-Ml-5et" id="bEM-jR-8gm"/>
+                <outlet property="bottomHeight" destination="Qqf-6J-PzC" id="bIe-te-4dD"/>
+                <outlet property="bottomView" destination="I9z-hw-Pfa" id="fDa-XK-3Hm"/>
                 <outlet property="cell1IconImage" destination="fXP-VM-MSG" id="P8F-gT-Ek6"/>
                 <outlet property="cell1IconImageView1" destination="WZQ-Bd-Bvr" id="Sbd-kc-Pew"/>
                 <outlet property="cell1IconImageView2" destination="CLy-vl-7yM" id="4d3-7w-08n"/>
@@ -1345,13 +1452,26 @@
                     <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="tY2-w5-DSv">
                         <rect key="frame" x="134.5" y="13" width="30" height="16"/>
                     </imageView>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="P39-j5-iSR">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8ZN-qf-Aot">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
                     <constraint firstItem="OCX-6S-0eN" firstAttribute="top" secondItem="muw-5L-WYU" secondAttribute="bottom" constant="17" id="7P4-06-zJM"/>
                     <constraint firstAttribute="bottom" secondItem="iCq-bl-xzg" secondAttribute="bottom" id="Ei0-Dy-i8E"/>
                     <constraint firstItem="YO5-Zn-eWn" firstAttribute="leading" secondItem="muw-5L-WYU" secondAttribute="trailing" constant="16" id="HOX-ff-b5W"/>
+                    <constraint firstAttribute="trailing" secondItem="P39-j5-iSR" secondAttribute="trailing" constant="15" id="Iea-2I-Smf"/>
+                    <constraint firstItem="P39-j5-iSR" firstAttribute="centerY" secondItem="JoT-KW-q1O" secondAttribute="centerY" id="LsX-X3-qrd"/>
                     <constraint firstItem="muw-5L-WYU" firstAttribute="top" secondItem="JoT-KW-q1O" secondAttribute="bottom" constant="6" id="MQB-FI-7Ek"/>
                     <constraint firstAttribute="trailingMargin" secondItem="OCX-6S-0eN" secondAttribute="trailing" id="MWg-pP-q3V"/>
+                    <constraint firstItem="P39-j5-iSR" firstAttribute="leading" secondItem="8ZN-qf-Aot" secondAttribute="trailing" constant="3" id="OgO-6W-QOY"/>
                     <constraint firstItem="JoT-KW-q1O" firstAttribute="leading" secondItem="nq2-4g-9Im" secondAttribute="trailing" constant="13" id="SdV-gH-UYt"/>
                     <constraint firstAttribute="trailing" secondItem="OG7-Rl-wHW" secondAttribute="trailing" constant="15" id="UHC-39-yRP"/>
                     <constraint firstItem="tY2-w5-DSv" firstAttribute="centerY" secondItem="JoT-KW-q1O" secondAttribute="centerY" id="Ycs-2j-mgi"/>
@@ -1363,6 +1483,7 @@
                     <constraint firstItem="YO5-Zn-eWn" firstAttribute="centerY" secondItem="muw-5L-WYU" secondAttribute="centerY" id="iUX-gz-D5p"/>
                     <constraint firstItem="iCq-bl-xzg" firstAttribute="top" secondItem="OG7-Rl-wHW" secondAttribute="bottom" id="j9s-qs-Dn5"/>
                     <constraint firstItem="OG7-Rl-wHW" firstAttribute="top" secondItem="Cj7-fa-RHP" secondAttribute="bottom" constant="10" id="jWM-bQ-Wdz"/>
+                    <constraint firstItem="8ZN-qf-Aot" firstAttribute="centerY" secondItem="JoT-KW-q1O" secondAttribute="centerY" id="kfE-rA-FBq"/>
                     <constraint firstItem="OG7-Rl-wHW" firstAttribute="leading" secondItem="OaC-UY-c0s" secondAttribute="leading" constant="15" id="khg-uh-xEi"/>
                     <constraint firstItem="tY2-w5-DSv" firstAttribute="leading" secondItem="JoT-KW-q1O" secondAttribute="trailing" constant="10" id="tia-Lt-CkY"/>
                     <constraint firstItem="muw-5L-WYU" firstAttribute="leading" secondItem="JoT-KW-q1O" secondAttribute="leading" id="u0S-oW-Usp"/>
@@ -1374,7 +1495,11 @@
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="drM-s5-4kI"/>
             <connections>
+                <outlet property="FileBtn" destination="8ZN-qf-Aot" id="zYp-Qw-qhb"/>
+                <outlet property="FileRightV" destination="P39-j5-iSR" id="Zg7-cJ-rK6"/>
                 <outlet property="IsTopV" destination="tY2-w5-DSv" id="NnW-5A-wBA"/>
+                <outlet property="bottomHeight" destination="jnn-l8-kDU" id="3us-LM-mFd"/>
+                <outlet property="bottomView" destination="OG7-Rl-wHW" id="UYO-Qj-ylf"/>
                 <outlet property="cell1IconImage" destination="nq2-4g-9Im" id="Ci5-7l-pHX"/>
                 <outlet property="cell1ShareType" destination="muw-5L-WYU" id="iRj-Ez-NI2"/>
                 <outlet property="cell1Title" destination="JoT-KW-q1O" id="gNe-0p-pQD"/>
@@ -1387,7 +1512,7 @@
                 <outlet property="contentHeight" destination="jWM-bQ-Wdz" id="dkw-Kv-038"/>
                 <outlet property="titleHeight" destination="fLL-LD-7XE" id="qfY-md-MDb"/>
             </connections>
-            <point key="canvasLocation" x="-1904" y="64"/>
+            <point key="canvasLocation" x="-1904.3478260869567" y="63.616071428571423"/>
         </tableViewCell>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="NoteBookCell7" rowHeight="498" id="XcK-Hb-zTU" customClass="NoteBookCell">
             <rect key="frame" x="0.0" y="0.0" width="320" height="244"/>
@@ -1544,6 +1669,16 @@
                             <constraint firstAttribute="height" constant="0.5" id="eRq-K5-gJw"/>
                         </constraints>
                     </view>
+                    <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="ozb-QH-WTz">
+                        <rect key="frame" x="298.5" y="15" width="6.5" height="12"/>
+                    </imageView>
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Enh-xB-kai">
+                        <rect key="frame" x="265.5" y="7.5" width="30" height="27"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <state key="normal" title="公开">
+                            <color key="titleColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                        </state>
+                    </button>
                 </subviews>
                 <constraints>
                     <constraint firstItem="ffe-TK-asJ" firstAttribute="leading" secondItem="aN3-FQ-670" secondAttribute="trailing" constant="10" id="21d-n8-Oxr"/>
@@ -1553,6 +1688,7 @@
                     <constraint firstAttribute="trailing" secondItem="C7y-ky-kWb" secondAttribute="trailing" id="75D-qN-v1h"/>
                     <constraint firstAttribute="trailingMargin" secondItem="a2O-7B-mRD" secondAttribute="trailing" id="8UW-14-fB0"/>
                     <constraint firstItem="7W1-e9-ySZ" firstAttribute="top" secondItem="a2O-7B-mRD" secondAttribute="bottom" constant="5" id="9Qt-Mm-zxt"/>
+                    <constraint firstItem="ozb-QH-WTz" firstAttribute="centerY" secondItem="aN3-FQ-670" secondAttribute="centerY" id="ChB-z2-a3D"/>
                     <constraint firstAttribute="trailing" secondItem="kcg-hU-WlZ" secondAttribute="trailing" constant="15" id="FQZ-ik-wpW"/>
                     <constraint firstAttribute="bottom" secondItem="C7y-ky-kWb" secondAttribute="bottom" id="JYy-pK-KDv"/>
                     <constraint firstItem="C7y-ky-kWb" firstAttribute="leading" secondItem="ehg-WN-hFf" secondAttribute="leading" id="Jth-1r-3Lp"/>
@@ -1562,22 +1698,29 @@
                     <constraint firstItem="6Bo-Al-CUT" firstAttribute="top" secondItem="ehg-WN-hFf" secondAttribute="top" constant="12" id="S4Y-cE-0Gk"/>
                     <constraint firstItem="54m-Rs-Jie" firstAttribute="bottom" secondItem="6Bo-Al-CUT" secondAttribute="bottom" id="Vfj-DU-aiZ"/>
                     <constraint firstItem="n21-3m-DCr" firstAttribute="leading" secondItem="54m-Rs-Jie" secondAttribute="trailing" constant="16" id="a7o-ij-cDc"/>
+                    <constraint firstItem="Enh-xB-kai" firstAttribute="centerY" secondItem="ozb-QH-WTz" secondAttribute="centerY" id="ayH-8Y-mSm"/>
                     <constraint firstItem="aN3-FQ-670" firstAttribute="top" secondItem="6Bo-Al-CUT" secondAttribute="top" id="c95-H8-AhO"/>
                     <constraint firstItem="kcg-hU-WlZ" firstAttribute="top" secondItem="7W1-e9-ySZ" secondAttribute="bottom" constant="5" id="dYP-f5-Ie6"/>
+                    <constraint firstAttribute="trailing" secondItem="ozb-QH-WTz" secondAttribute="trailing" constant="15" id="daq-HB-hYt"/>
                     <constraint firstAttribute="trailing" secondItem="7W1-e9-ySZ" secondAttribute="trailing" constant="15" id="gEa-Sr-0JB"/>
                     <constraint firstItem="aN3-FQ-670" firstAttribute="leading" secondItem="6Bo-Al-CUT" secondAttribute="trailing" constant="13" id="hqe-Hr-hxb"/>
                     <constraint firstItem="7W1-e9-ySZ" firstAttribute="leading" secondItem="ehg-WN-hFf" secondAttribute="leading" constant="15" id="iYD-GL-fJ9"/>
                     <constraint firstItem="a2O-7B-mRD" firstAttribute="top" secondItem="6Bo-Al-CUT" secondAttribute="bottom" constant="10" id="kSF-d0-uCg"/>
+                    <constraint firstItem="ozb-QH-WTz" firstAttribute="leading" secondItem="Enh-xB-kai" secondAttribute="trailing" constant="3" id="nWO-00-8VP"/>
                     <constraint firstItem="n21-3m-DCr" firstAttribute="centerY" secondItem="54m-Rs-Jie" secondAttribute="centerY" id="r6j-Rd-vVz"/>
                     <constraint firstItem="a2O-7B-mRD" firstAttribute="leading" secondItem="ehg-WN-hFf" secondAttribute="leadingMargin" id="yce-kY-L72"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="S80-hQ-rKo"/>
             <connections>
+                <outlet property="FileBtn" destination="Enh-xB-kai" id="wWg-Yl-eQk"/>
+                <outlet property="FileRightV" destination="ozb-QH-WTz" id="xgP-jH-Q6t"/>
                 <outlet property="IsTopV" destination="ffe-TK-asJ" id="E4k-MW-asb"/>
                 <outlet property="addImageV" destination="5bG-UN-hPN" id="Iz6-8u-jpZ"/>
                 <outlet property="addSubTitleL" destination="WAM-cf-NKl" id="Ykz-oX-bfh"/>
                 <outlet property="addTitleL" destination="Ox6-ka-h7a" id="l92-KP-gfU"/>
+                <outlet property="bottomHeight" destination="pBu-Uj-PI1" id="2ot-Q8-aLs"/>
+                <outlet property="bottomView" destination="kcg-hU-WlZ" id="z7A-oI-RYP"/>
                 <outlet property="cell1IconImage" destination="6Bo-Al-CUT" id="2M7-xA-S0S"/>
                 <outlet property="cell1ShareType" destination="54m-Rs-Jie" id="j7h-RK-ZLy"/>
                 <outlet property="cell1Title" destination="aN3-FQ-670" id="Rbw-Nc-07Z"/>
@@ -2896,6 +3039,7 @@
         </tableViewCell>
     </objects>
     <resources>
+        <image name="chatmsg_rightArrow_icon" width="6.5" height="12"/>
         <image name="icon_shareae" width="44" height="44"/>
         <image name="img_placeHolderHorizon" width="345" height="170"/>
         <image name="img_placeHolderVertical" width="75" height="100"/>

+ 3 - 1
smartRhino/Project/VCModel/Source/Controller/GroupSquareVC.m

@@ -43,6 +43,8 @@
     }];
     self.leftTable.delegate = self;
     self.leftTable.dataSource = self;
+    self.leftTable.showsHorizontalScrollIndicator = NO;
+    self.leftTable.showsVerticalScrollIndicator = NO;
     self.rightTable.delegate = self;
     self.rightTable.dataSource = self;
     self.leftTable.estimatedRowHeight = 0;
@@ -80,8 +82,8 @@
     [self.rightArray removeAllObjects];
     NSString * url = [NSString stringWithFormat:@"%@%ld",Host(API_APP_GROUP_Category_list),listID];
     [[HttpManager sharedHttpManager] GET:url parameters:@{} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
-        NSLog(@"%@",responseObject);
         NSArray * array = responseObject;
+        NSLog(@"====== %ld",array.count);
         for (NSInteger i = 0; i < array.count; i ++) {
             GroupSquareSubModel * model = [GroupSquareSubModel modelWithDictionary:array[i]];
             [weakSelf.rightArray addObject:model];

+ 17 - 0
smartRhino/Project/VCModel/Source/Controller/ReplayLikeSearchVC.h

@@ -0,0 +1,17 @@
+//
+//  ReplayLikeSearchVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/1/17.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "SearchBaseVC.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ReplayLikeSearchVC : SearchBaseVC
+@property (nonatomic, assign) BOOL     IsReplyMe;
+@end
+
+NS_ASSUME_NONNULL_END

+ 115 - 0
smartRhino/Project/VCModel/Source/Controller/ReplayLikeSearchVC.m

@@ -0,0 +1,115 @@
+//
+//  ReplayLikeSearchVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/1/17.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ReplayLikeSearchVC.h"
+#import "ReplayMeCell.h"
+#import "ReplyModel.h"
+
+@interface ReplayLikeSearchVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (nonatomic, strong) NSMutableArray *listArray;
+@end
+
+@implementation ReplayLikeSearchVC
+- (NSMutableArray *)listArray
+{
+    if (!_listArray) {
+        _listArray = [NSMutableArray array];
+    }
+    return _listArray;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = RGB(255, 255, 255);
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+//    [self.topNavSearch setBarPlaceholder:@"姓名/手机号/邮箱"];
+
+    self.historySearchType = HistorySearchType_LikeList;
+    [self addObserver:self forKeyPath:@"searchText" options:NSKeyValueObservingOptionNew context:nil];
+}
+
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
+{
+    id obj = [change objectForKey:@"new"];
+    NSString * text = @"";
+    if ([obj isKindOfClass:[NSString class]]) {
+        text = obj;
+    }else{
+        text  = [obj stringValue];
+    }
+    if (text.length > 0) {
+        [self getData:text];
+    }
+}
+
+- (void)getData:(NSString *)searchKey
+{
+    [self.listArray removeAllObjects];
+    WS(weakSelf);
+    NSDictionary * paraDict = @{@"KeyWord":self.searchText,
+                                @"TypeValue":@(0),
+    };
+    SHOWLOADING
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Reply_Praise) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        REMOVESHOW
+        if ([responseObject isKindOfClass:[NSArray class]]) {
+            for (NSDictionary * dict in responseObject) {
+                ReplyModel * model = [ReplyModel modelWithDictionary:dict];
+                [weakSelf.listArray addObject:model];
+            }
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        REMOVESHOW
+    }];
+}
+
+#pragma mark - UITableViewDelegate
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.listArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return UITableViewAutomaticDimension;
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+   ReplyModel * model = [self.listArray objectAtIndex:indexPath.row];
+   if (model.IsComment) {
+       ReplayMeCell * cell = [ReplayMeCell configCell0:tableView indexPath:indexPath];
+       cell.redV.hidden = YES;
+       [cell setDataCommentModel:model];
+       return cell;
+   }else{
+       ReplayMeCell * cell = [ReplayMeCell configCell1:tableView indexPath:indexPath];
+       cell.redV.hidden = YES;
+       [cell setDataModel:model];
+       return cell;
+   }
+}
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    ReplyModel * model = [self.listArray objectAtIndex:indexPath.row];
+    MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
+    vc.type = model.TypeValue;
+    vc.Id = model.SourceId;
+    [self.navigationController pushViewController:vc animated:YES];
+}
+
+@end

+ 60 - 13
smartRhino/Project/VCModel/Source/Controller/ReplayMeLikeVC.m

@@ -9,7 +9,7 @@
 #import "ReplayMeLikeVC.h"
 #import "MyTDGroupView.h"
 #import "ReplayMeCell.h"
-#import "ReplayMeSearchVC.h"
+#import "ReplayLikeSearchVC.h"
 
 @interface ReplayMeLikeVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (weak, nonatomic) IBOutlet UIView *navBar;
@@ -17,6 +17,7 @@
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
 @property (weak, nonatomic) IBOutlet UILabel *titleL;
 @property (strong, nonatomic) MyTDGroupView      *SearchView;
+@property (strong, nonatomic) NSMutableArray     *dataArray;
 @end
 
 @implementation ReplayMeLikeVC
@@ -24,7 +25,12 @@
     ReplayMeLikeVC *controller = [StoryboardManager.shared.Source instantiateViewControllerWithIdentifier:@"ReplayMeLikeVC"];
     return controller;
 }
-
+-(NSMutableArray *)dataArray{
+    if(!_dataArray){
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
 - (MyTDGroupView *)SearchView
 {
     if (!_SearchView) {
@@ -44,20 +50,47 @@
         make.left.right.mas_equalTo(self.HeadView);
         make.height.mas_offset(36);
     }];
-    self.titleL.text = @"共收到赞(346)";
+    self.titleL.text = @"共收到赞";
     WS(weakSelf);
     [self.SearchView.button setAction:^{
-        ReplayMeSearchVC * vc = [[ReplayMeSearchVC alloc] init];
+        ReplayLikeSearchVC * vc = [[ReplayLikeSearchVC alloc] init];
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
 
-    [self.tableView reloadData];
+    [self getData];
+}
+- (void)getData
+{
+    [self.dataArray removeAllObjects];
+    NSDictionary * paraDict = @{@"KeyWord":@"",
+                                @"TypeValue":@(0),
+    };
+    WS(weakSelf);
+    SHOWLOADING
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Reply_Praise) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        REMOVESHOW
+        if ([responseObject isKindOfClass:[NSArray class]]) {
+            for (NSDictionary * dict in responseObject) {
+                ReplyModel * model = [ReplyModel modelWithDictionary:dict];
+                [weakSelf.dataArray addObject:model];
+            }
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            if (weakSelf.dataArray.count > 0) {
+                weakSelf.titleL.text = [NSString stringWithFormat:@"共收到赞(%ld)",weakSelf.dataArray.count];
+            }else{
+                weakSelf.titleL.text = @"共收到赞";
+            }
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        REMOVESHOW
+    }];
 }
-
 #pragma mark -UITableViewDelegate
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
-    return 20;
+    return self.dataArray.count;
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
@@ -65,16 +98,30 @@
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    ReplayMeCell * cell = [ReplayMeCell configCell:tableView indexPath:indexPath];
-    cell.contentL.text = @"点赞了你的笔记";
-    [cell setDatasubText];
-    if (indexPath.row >= 3) {
-        cell.redV.hidden = YES;
+    ReplyModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    if (model.IsComment) {
+        ReplayMeCell * cell = [ReplayMeCell configCell0:tableView indexPath:indexPath];
+        cell.redV.hidden = model.IsRead;
+        [cell setDataCommentModel:model];
+        return cell;
+    }else{
+        ReplayMeCell * cell = [ReplayMeCell configCell1:tableView indexPath:indexPath];
+        cell.redV.hidden = model.IsRead;
+        [cell setDataModel:model];
+        return cell;
     }
-    return cell;
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    ReplyModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    model.IsRead = YES;
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+    });
+    MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
+    vc.type = model.TypeValue;
+    vc.Id = model.SourceId;
+    [self.navigationController pushViewController:vc animated:YES];
 }
 @end

+ 6 - 6
smartRhino/Project/VCModel/Source/Controller/ReplayMeSearchVC.h

@@ -1,17 +1,17 @@
 //
 //  ReplayMeSearchVC.h
-//  TheoryNetwork
+//  smartRhino
 //
-//  Created by tederen on 2019/9/20.
-//  Copyright © 2019 tederen. All rights reserved.
+//  Created by niuzhen on 2020/1/17.
+//  Copyright © 2020 tederen. All rights reserved.
 //
 
-#import "BaseViewController.h"
+#import "SearchBaseVC.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface ReplayMeSearchVC : UIViewController
-
+@interface ReplayMeSearchVC : SearchBaseVC
+@property (nonatomic, assign) BOOL     IsReplyMe;
 @end
 
 NS_ASSUME_NONNULL_END

+ 77 - 524
smartRhino/Project/VCModel/Source/Controller/ReplayMeSearchVC.m

@@ -1,562 +1,115 @@
 //
-//  ReplayMeSearchVC.m
-//  TheoryNetwork
+//  SourceGroupSearchVC.m
+//  smartRhino
 //
-//  Created by tederen on 2019/9/20.
-//  Copyright © 2019 tederen. All rights reserved.
+//  Created by niuzhen on 2020/1/17.
+//  Copyright © 2020 tederen. All rights reserved.
 //
 
 #import "ReplayMeSearchVC.h"
-#import "InfoSearchView.h"
-#import "SearchTypeSection.h"
-#import "SearchTypeCell.h"
-#import "SearchHistoryCell.h"
 #import "ReplayMeCell.h"
-#import "HomeDetailController.h"
-#import "MyApprovalBCell.h"
-#import <YYModel/YYModel.h>
-#import "MyApprovalPageDetail.h"
-#import "DrawerView.h"
-#import "TabBarController.h"
-
-#define PYSEARCH_MARGIN 10
-static NSString * SearchDetailViewCellID = @"SearchDetailViewCellId";
-static NSString * MyApprovalBCellID = @"MyApprovalBCell";
-@interface ReplayMeSearchVC () <InfoSearchViewDelegate, UITableViewDataSource, UITableViewDelegate>
-@property (nonatomic, strong) InfoSearchView *topNavSearch;
-@property (nonatomic, strong) UIView         *hisNoView;
-
-@property (strong,nonatomic) DrawerView      *drawerView;
-@property (nonatomic, copy) NSArray *warmArray;
-@property (nonatomic, copy) NSArray *coldArray;
-
-// 历史记录tableView
-@property (nonatomic, strong) TDTableView *historyTableView;
-// 历史记录tableViewHeaderContainer
-@property (nonatomic, strong) UIView *historyHeaderContainer;
-// 历史记录tableHeaderView
-@property (nonatomic, strong) UIView *historyTableHeaderView;
-@property (nonatomic, strong)SearchTypeSection *historyHeaderTitleView;
-
-// 搜索结果tableView
-@property (nonatomic, strong) UITableView *resultTableView;
-
-
-// 历史记录
-@property (nonatomic, strong) NSMutableArray *historyArray;
-
-// 搜索结果
-@property (nonatomic, strong) NSMutableArray<Item *> *resultArray;
-
-@property (nonatomic, copy) NSString *searchStr;
-
-@property (nonatomic, strong) UIView *noDataView;
-
-@property (nonatomic, strong) UILabel *noDataTipLabel;
+#import "ReplyModel.h"
 
+@interface ReplayMeSearchVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (nonatomic, strong) NSMutableArray *listArray;
 @end
 
 @implementation ReplayMeSearchVC
--(DrawerView *)drawerView{
-    if(!_drawerView){
-        _drawerView = [[DrawerView alloc] init];
+- (NSMutableArray *)listArray
+{
+    if (!_listArray) {
+        _listArray = [NSMutableArray array];
     }
-    return _drawerView;
+    return _listArray;
 }
 - (void)viewDidLoad {
     [super viewDidLoad];
-    self.view.backgroundColor = [UIColor whiteColor];
-    
-    //TODO:测试数据
-    _warmArray = @[@"信仰的力量", @"牛顿改革"];
-    _coldArray = @[@"科技", @"国家组织", @"泰德仁和"];
-    [self.view addSubview:self.topNavSearch];
-    
-    [self.view addSubview:self.historyTableView];
-    [self initHistoryTableHeaderView];
-    
-//    [self.view addSubview:self.thinkTableView];
-    [self.view addSubview:self.resultTableView];
-    [self.resultTableView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.view);
-        make.top.mas_equalTo(self.topNavSearch.mas_bottom);
-        if (@available(iOS 11.0, *)) {
-            make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
-        } else {
-            make.bottom.equalTo(self.view.mas_bottom);
-        }
-    }];
-    [self.view addSubview:self.noDataView];
-    self.noDataView.frame = self.historyTableView.frame;
-    [self.noDataView addSubview:self.noDataTipLabel];
-    
-    [self.noDataTipLabel mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.equalTo(self.noDataView);
-        make.top.mas_offset(32);
-    }];
-    [self.noDataView setHidden:YES];
-    
-    [self.resultTableView registerNib:[UINib nibWithNibName:@"MyApprovalBCell" bundle:nil] forCellReuseIdentifier:MyApprovalBCellID];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.view.backgroundColor = RGB(255, 255, 255);
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+//    [self.topNavSearch setBarPlaceholder:@"姓名/手机号/邮箱"];
 
-    [self.topNavSearch.searchBar becomeFirstResponder];
-    [self.historyTableView setHidden:NO];
-    [self.resultTableView setHidden:YES];
+    self.historySearchType = HistorySearchType_Reply;
+    [self addObserver:self forKeyPath:@"searchText" options:NSKeyValueObservingOptionNew context:nil];
 }
 
-// 请求列表
-- (void)getListData:(NSString *)keyword IsClickSearchAction:(BOOL)isClickSearchAction{
-    [self.topNavSearch.searchBar resignFirstResponder];
-    [self.historyTableView setHidden:YES];
-    [self.resultTableView reloadData];
-    [self.resultTableView setHidden:NO];
-//    WEAKSELF
-//    if (isClickSearchAction) {
-//        SHOWLOADING
-//        [weakSelf.noDataView setHidden:YES];
-//        [self.resultTableView setHidden:NO];
-//        [self.historyTableView setHidden:YES];
-//    }
-//    [self.resultArray removeAllObjects];
-//
-//    [[HttpManager sharedHttpManager] POSTUrl:[NSString stringWithFormat:@"%@%@",BaseUrl,Article_Notice_list_Post] parameters: @{@"page":@1,@"perPage":@100,@"keyword":keyword} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
-//        REMOVESHOW
-//        NSDictionary *dic = (NSDictionary *)responseObject;
-//        NSLog(@"首页搜索列表数据%@=====================================",dic[@"total"]);
-//        HomeArticleModel *model = [HomeArticleModel yy_modelWithDictionary:dic];
-//        weakSelf.resultArray = [NSMutableArray arrayWithArray: model.Items];
-//
-//
-//        [weakSelf.noDataView setHidden:YES];
-//        if (ISEmptyString(self.searchStr)) {
-//            //显示历史记录
-//            [weakSelf.historyTableView setHidden:NO];
-//            [weakSelf.resultTableView reloadData];
-//            [weakSelf.resultTableView setHidden:YES];
-//        } else {
-//            [weakSelf.historyTableView setHidden:YES];
-//            [weakSelf.resultTableView reloadData];
-//            [weakSelf.resultTableView setHidden:NO];
-//                // 点击搜索按钮
-////                if (!model.Items.count) {
-////                    // 文章列表为空,显示无结果
-////                    [self.noDataView setHidden:NO];
-////                } else {
-////                    // 文章列表不为空
-////                    [weakSelf.historyTableView setHidden:YES];
-////                    [weakSelf.resultTableView reloadData];
-////                    [weakSelf.resultTableView setHidden:NO];
-////                }
-//        }
-//      } failure:^(NSError * _Nonnull error) {
-//          SHOWERROR([ZYCTool handerResultData:error])
-//      }];
-}
-
-- (BOOL)hidesBottomBarWhenPushed
+- (void)dealloc
 {
-    return YES;
-}
-
-- (void)viewWillAppear:(BOOL)animated {
-    [super viewWillAppear:animated];
-    [self.navigationController.navigationBar setHidden:YES];
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
 }
-
-
-#pragma mark - InfoSearchViewDelegate
-// 点击搜索按钮
-- (void)searchButtonAction:(UISearchBar *)searchBar {
-    self.searchStr = searchBar.text;
-    // 添加历史记录,刷新historyTable
-    [self insertHistorySearchStr:self.searchStr];
-    // 更新本地历史记录
-    self.historyArray = [NSMutableArray arrayWithArray:[_TDFileStorage loadHistorySearchBySearchType:HistorySearchType_Home]];
-    // 更新tableViewHeader的高度
-    if (self.historyArray.count == 0) {
-        self.hisNoView.hidden = NO;
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
+{
+    id obj = [change objectForKey:@"new"];
+    NSString * text = @"";
+    if ([obj isKindOfClass:[NSString class]]) {
+        text = obj;
     }else{
-        self.hisNoView.hidden = YES;
-    }
-    [self addAndLayoutTagsWithTagsContentView:self.historyTableHeaderView tagTexts:self.historyArray];
-    [self resetHistoryHeaderViewHeight];
-    [self.historyTableView reloadData];
-    // 网络请求
-    [self getListData:self.searchStr IsClickSearchAction:YES];
-    [self.view endEditing:YES];
-}
-
-// 文本改变回调
-- (void)textDidChange:(NSString *)text {
-    self.searchStr = text;
-    if (ISEmptyString(text)) {
-        // 没有文本显示历史记录cell
-        [self.noDataView setHidden:YES];
-        [self.historyTableView setHidden:NO];
-//        [self.thinkTableView setHidden:YES];
-        [self.resultTableView setHidden:YES];
-    } else {
-        // 有文本,就去搜索文章列表,有联想显示联想,没有联想显示历史记录
-        [self getListData:text IsClickSearchAction:NO];
-    }
-}
-
-#pragma mark - UITableViewDataSource && UITableViewDelegate
-- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
-    return 1;
-}
-
--  (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
-    return 0.1;
-}
-
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    if ([tableView isEqual:self.historyTableView]) {
-        return 0;
-    }else {
-        return 4;
-    }
-}
-
-- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
-    
-    if ([tableView isEqual:self.historyTableView]) {
-        return 34;
-    }else {
-        return UITableViewAutomaticDimension;
-    }
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
-    
-    if ([tableView isEqual:self.historyTableView]) {
-        SearchHistoryCell * searchHistoryCell = (SearchHistoryCell *)[tableView dequeueReusableCellWithIdentifier:@"SearchHistoryCell"];
-        if (!searchHistoryCell) {
-            searchHistoryCell = [[SearchHistoryCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SearchHistoryCell"];
-        }
-        [searchHistoryCell setCurrentHistoryData:_historyArray[indexPath.row]];
-        return searchHistoryCell;
-    }
-    else {
-        ReplayMeCell * cell = [ReplayMeCell configCell:tableView indexPath:indexPath];
-        [cell setDataWithText:@"会议"];
-        if (indexPath.row >= 3) {
-            cell.redV.hidden = YES;
-        }
-        return cell;
-    }
-}
-
-- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    [self.view endEditing:YES];
-    if ([tableView isEqual:self.historyTableView]) {
-        self.searchStr = self.historyArray[indexPath.row];
-        [self.topNavSearch setNowSearchData:self.searchStr];
-        [self getListData:self.searchStr IsClickSearchAction:YES];
-    } else {
-
-    }
-}
-
-#pragma mark - 查重
-- (void)insertHistorySearchStr:(NSString *)string {
-    for (NSString *cache in _historyArray) {
-        // 查重
-        if ([cache isEqualToString:string]) {
-            return;
-        }
-    }
-    [_historyArray insertObject:string atIndex:0];
-    if (_historyArray.count > 10) {
-        NSArray *orderArray = [_historyArray subarrayWithRange:NSMakeRange(0, 10)];
-        _historyArray = orderArray.mutableCopy;
-    }
-    [_TDFileStorage saveHistorySearchBySearchType:HistorySearchType_Home WithArr:_historyArray];
-}
-
-
-#pragma mark -  getter
-- (InfoSearchView *)topNavSearch {
-    if (!_topNavSearch) {
-        _topNavSearch = [[InfoSearchView alloc] initWithFrame:CGRectMake(0, (IS_IPHONEX?40:20), kGXScreenWidth, 45) type:InfoSearchViewTypeDefault];
-        _topNavSearch.delegate = self;
-        WEAKSELF
-        _topNavSearch.backBlock = ^{
-            [weakSelf.navigationController popViewControllerAnimated:YES];
-        };
-        _topNavSearch.menuBlock = ^{
-            [weakSelf.view endEditing:YES];
-            [[UtilsTools getWindow] addSubview:weakSelf.drawerView];
-            weakSelf.drawerView.SelectDrawerBlock = ^(NSIndexPath * _Nonnull indexPath) {
-                if (![weakSelf.tabBarController isKindOfClass:[TabBarController class]]) {
-                    [TabBarController sharedTabBarController].tabBar.hidden = NO;
-                    [weakSelf.tabBarController.navigationController popViewControllerAnimated:NO];
-                }
-                if ([weakSelf.navigationController.viewControllers count] > 1) {
-                    [weakSelf.navigationController popToRootViewControllerAnimated:NO];
-                }
-                switch (indexPath.section) {
-                    case 0:
-                    {
-                        [[TabBarController sharedTabBarController] setSelectedIndex:indexPath.row];
-                    }
-                        break;
-                    case 1:
-                    {
-                        switch (indexPath.row) {
-                            case 0:
-                            {
-                                [[TabBarController sharedTabBarController] setSelectedIndex:2];
-                            }
-                                break;
-                            case 1:
-                            {
-                                [[TabBarController sharedTabBarController] setSelectedIndex:2];
-                            }
-                                break;
-                            default:
-                            {
-                                [[TabBarController sharedTabBarController] setSelectedIndex:3];
-                            }
-                                break;
-                        }
-                        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                            [[NSNotificationCenter defaultCenter] postNotificationName:DRAWERPUSHVC object:nil userInfo:@{VCINDEX:@(indexPath.row)}];
-                        });
-                    }
-                        break;
-                    default:
-                    {
-                        [[TabBarController sharedTabBarController] setSelectedIndex:3];
-                        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                            [[NSNotificationCenter defaultCenter] postNotificationName:DRAWERPUSHVC object:nil userInfo:@{VCINDEX:@(4 + indexPath.row)}];
-                        });
-                    }
-                        break;
-                }
-            };
-            weakSelf.drawerView.frame = CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);// - kNavigationHeight
-        };
-    }
-    return _topNavSearch;
-}
-
-- (TDTableView *)historyTableView {
-    if (!_historyTableView) {
-        _historyTableView = [[TDTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
-        _historyTableView.dataSource = self;
-        _historyTableView.delegate = self;
-        _historyTableView.frame = CGRectMake(0, (IS_IPHONEX?40:20)+45, kGXScreenWidth, kGXScreenHeigh-(IS_IPHONEX?40:20)-45);
-    }
-    return _historyTableView;
-}
-
-- (UITableView *)resultTableView {
-    if (!_resultTableView) {
-        _resultTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        _resultTableView.dataSource = self;
-        _resultTableView.delegate = self;
-        _resultTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+        text  = [obj stringValue];
     }
-    return _resultTableView;
-}
-
-
-- (NSMutableArray *)historyArray {
-    if (!_historyArray) {
-        _historyArray = [_TDFileStorage loadHistorySearchBySearchType:HistorySearchType_XinYuan].mutableCopy;
-    }
-    return _historyArray;
-}
-
-- (NSMutableArray<Item *> *)resultArray {
-    if (!_resultArray) {
-        _resultArray = [NSMutableArray<Item *> array];
-    }
-    return _resultArray;
-}
-
-- (UIView *)noDataView {
-    if (!_noDataView) {
-        _noDataView = [UIView new];
-        _noDataView.backgroundColor = [UIColor whiteColor];
-    }
-    return _noDataView;
-}
-
-- (UILabel *)noDataTipLabel {
-    if (!_noDataTipLabel) {
-        _noDataTipLabel = [UILabel new];
-        _noDataTipLabel.text = @"暂无搜索结果";
-        _noDataTipLabel.font = Kfont(15);
-        _noDataTipLabel.textColor = kColorFromRGB(0x999999);
-        _noDataTipLabel.textAlignment = NSTextAlignmentCenter;
-    }
-    return _noDataTipLabel;
-}
-
-- (UIView *)historyTableHeaderView {
-    if (!_historyTableHeaderView) {
-        _historyTableHeaderView = [UIView new];
-        _historyTableHeaderView.backgroundColor = [UIColor whiteColor];;
-    }
-    return _historyTableHeaderView;
-}
-
-- (SearchTypeSection *)historyHeaderTitleView {
-    if (!_historyHeaderTitleView) {
-        _historyHeaderTitleView = [[SearchTypeSection alloc] initWithFrame:CGRectMake(0, 0, kGXScreenWidth, 44)];
+    if (text.length > 0) {
+        [self getData:text];
     }
-    return _historyHeaderTitleView;
 }
 
-
-
-#pragma mark - historyHeaderView
-
-// 添加tagView
-- (void)addAndLayoutTagsWithTagsContentView:(UIView *)contentView tagTexts:(NSArray<NSString *> *)tagTexts;
+- (void)getData:(NSString *)searchKey
 {
-    [contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
-    NSMutableArray *tagsM = [NSMutableArray array];
-    for (int i = 0; i < tagTexts.count; i++) {
-        UILabel *label = [self labelWithTitle:tagTexts[i]];
-        [label addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tagDidCLick:)]];
-        [contentView addSubview:label];
-        [tagsM addObject:label];
-    }
-    
-    CGFloat currentX = 0;
-    CGFloat currentY = 0;
-    CGFloat countRow = 0;
-    CGFloat countCol = 0;
-    
-    CGFloat leftMargin = 12;
-    
-    for (int i = 0; i < contentView.subviews.count; i++) {
-        UILabel *subView = contentView.subviews[i];
-        // When the number of search words is too large, the width is width of the contentView
-        if (subView.width > contentView.width) {
-            subView.width = contentView.width;
-        }
-        
-        if (leftMargin + currentX + subView.width + PYSEARCH_MARGIN * countRow > contentView.width) {
-            subView.x = leftMargin;
-            subView.y = (currentY += subView.height) + PYSEARCH_MARGIN * ++countCol;
-            currentX = subView.width;
-            countRow = 1;
-        } else {
-            subView.x = leftMargin + (currentX += subView.width) - subView.width + PYSEARCH_MARGIN * countRow;
-            subView.y = currentY + PYSEARCH_MARGIN * countCol;
-            countRow ++;
+    [self.listArray removeAllObjects];
+    WS(weakSelf);
+    NSDictionary * paraDict = @{@"KeyWord":searchKey,
+                                @"TypeValue":self.IsReplyMe ? @(1) : @(0),
+    };
+    SHOWLOADING
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Reply_List) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        REMOVESHOW
+        if ([responseObject isKindOfClass:[NSDictionary class]]) {
+            for (NSDictionary * dict in responseObject[@"Item"]) {
+                ReplyModel * model = [ReplyModel modelWithDictionary:dict];
+                [weakSelf.listArray addObject:model];
+            }
         }
-    }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        REMOVESHOW
+    }];
 }
 
-
-
-// 创建label
-- (UILabel *)labelWithTitle:(NSString *)title
-{
-    UILabel *label = [[UILabel alloc] init];
-    label.userInteractionEnabled = YES;
-    label.font = [UIFont systemFontOfSize:14];
-    label.text = title;
-    label.textColor = [UIColor grayColor];
-    label.backgroundColor = kColorFromRGB(0xfafafa);
-    label.textAlignment = NSTextAlignmentCenter;
-    [label sizeToFit];
-    label.width += 20;
-    label.height += 14;
-    label.layer.cornerRadius = label.height / 2;
-    label.clipsToBounds = YES;
-    return label;
+#pragma mark - UITableViewDelegate
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    return 1;
 }
 
-- (void)tagDidCLick:(UITapGestureRecognizer *)gr
-{
-    UILabel *label = (UILabel *)gr.view;
-    self.searchStr = label.text;
-    [self.topNavSearch setNowSearchData:self.searchStr];
-    [self getListData:self.searchStr IsClickSearchAction:YES];
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.listArray.count;
 }
 
-- (UIView *)historyHeaderContainer {
-    if (!_historyHeaderContainer) {
-        _historyHeaderContainer = [UIView new];
-        _historyHeaderContainer.backgroundColor = [UIColor whiteColor];
-    }
-    return _historyHeaderContainer;
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return UITableViewAutomaticDimension;
 }
 
-
-// 创建historyTableView的headerView
-- (void)initHistoryTableHeaderView {
-    [self.historyHeaderTitleView setSectionTitle:@"最近搜索"];
-    WEAKSELF
-    self.historyHeaderTitleView.rightAction = ^{
-        
-       
-        UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
-        UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-            // 清空历史记录
-            [_TDFileStorage saveHistorySearchBySearchType:HistorySearchType_Home WithArr:@[]];
-            weakSelf.historyArray = [NSMutableArray arrayWithArray:[_TDFileStorage loadHistorySearchBySearchType:HistorySearchType_Home]];
-            [weakSelf addAndLayoutTagsWithTagsContentView:weakSelf.historyTableHeaderView tagTexts:weakSelf.historyArray];
-            [weakSelf resetHistoryHeaderViewHeight];
-            if (weakSelf.historyArray.count == 0) {
-                weakSelf.hisNoView.hidden = NO;
-            }else{
-                weakSelf.hisNoView.hidden = YES;
-            }
-            [weakSelf.historyTableView reloadData];
-        }];
-        UIAlertController *tmpVc = [UIAlertController alertControllerWithTitle:@"提示" message:@"确定要删除最近搜索?" preferredStyle:UIAlertControllerStyleAlert];
-        [tmpVc addAction:action1];
-        [tmpVc addAction:action2];
-        [weakSelf presentViewController:tmpVc animated:YES completion:nil];
-    };
-    [self.historyHeaderContainer addSubview:self.historyHeaderTitleView];
-    
-    self.historyTableHeaderView.frame = CGRectMake(0, self.historyHeaderTitleView.height + 13, kScreenWidth, 0);
-    [self addAndLayoutTagsWithTagsContentView:self.historyTableHeaderView tagTexts:self.historyArray];
-    CGFloat height = CGRectGetMaxY(self.historyTableHeaderView.subviews.lastObject.frame);
-    self.historyTableHeaderView.frame = CGRectMake(0, self.historyHeaderTitleView.height + 13, kScreenWidth, height);
-    [self.historyHeaderContainer addSubview:self.historyTableHeaderView];
-    [self resetHistoryHeaderViewHeight];
-    self.historyTableView.tableHeaderView = self.historyHeaderContainer;
-    
-    self.historyTableView.tableFooterView = self.hisNoView;
-    if (self.historyArray.count == 0) {
-        self.hisNoView.hidden = NO;
-    }else{
-        self.hisNoView.hidden = YES;
-    }
-    UILabel * label = [UILabel new];
-    label.text = @"暂无搜索记录!";
-    label.font = [UIFont systemFontOfSize:14];
-    label.textColor = UIColorHex(0x999999);
-    [self.hisNoView addSubview:label];
-    [label mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.center.mas_equalTo(self.hisNoView);
-    }];
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+   ReplyModel * model = [self.listArray objectAtIndex:indexPath.row];
+   if (model.IsComment) {
+       ReplayMeCell * cell = [ReplayMeCell configCell0:tableView indexPath:indexPath];
+       cell.redV.hidden = YES;
+       [cell setDataCommentModel:model];
+       return cell;
+   }else{
+       ReplayMeCell * cell = [ReplayMeCell configCell1:tableView indexPath:indexPath];
+       cell.redV.hidden = YES;
+       [cell setDataModel:model];
+       return cell;
+   }
 }
-- (UIView *)hisNoView
-{
-    if (!_hisNoView) {
-        _hisNoView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 200)];
-        _hisNoView.hidden = YES;
-    }
-    return _hisNoView;
-}
-// 更新header高度
-- (void)resetHistoryHeaderViewHeight {
-    CGFloat containerHeight = CGRectGetMaxY(self.historyHeaderContainer.subviews.lastObject.frame);
-    self.historyHeaderContainer.frame = CGRectMake(0, 0, kScreenWidth, containerHeight);
-}
-
-- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
-{
-    [self.topNavSearch.searchBar resignFirstResponder];
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    ReplyModel * model = [self.listArray objectAtIndex:indexPath.row];
+    MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
+    vc.type = model.TypeValue;
+    vc.Id = model.Id;
+    [self.navigationController pushViewController:vc animated:YES];
 }
 
 @end

+ 69 - 15
smartRhino/Project/VCModel/Source/Controller/ReplayMeVC.m

@@ -13,6 +13,7 @@
 #import "YCMenuView.h"
 #import "ReplayMeLikeVC.h"
 #import "ReplayMeSearchVC.h"
+#import "ReplyModel.h"
 
 @interface ReplayMeVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (weak, nonatomic) IBOutlet UIView *navBar;
@@ -21,7 +22,10 @@
 @property (strong, nonatomic) ShowBtn            *titleBtn;
 @property (strong, nonatomic) MyTDGroupView      *SearchView;
 @property (strong, nonatomic) NSMutableArray     *taskActionArray;
+@property (strong, nonatomic) NSMutableArray     *dataArray;
 @property (assign, nonatomic) BOOL                replayMe;
+@property (assign, nonatomic) NSInteger           PraiseCount;
+
 @end
 
 @implementation ReplayMeVC
@@ -47,6 +51,35 @@
 {
     [self.titleBtn setLabelTitle:title];
 }
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self getData];
+}
+- (void)getData
+{
+    [self.dataArray removeAllObjects];
+    NSDictionary * paraDict = @{@"KeyWord":@"",
+                                @"TypeValue":self.replayMe ? @(1) : @(0),
+    };
+    WS(weakSelf);
+    SHOWLOADING
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Reply_List) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        REMOVESHOW
+        if ([responseObject isKindOfClass:[NSDictionary class]]) {
+            for (NSDictionary * dict in responseObject[@"Item"]) {
+                ReplyModel * model = [ReplyModel modelWithDictionary:dict];
+                [weakSelf.dataArray addObject:model];
+            }
+            weakSelf.PraiseCount = [responseObject[@"PraiseCount"] integerValue];
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        REMOVESHOW
+    }];
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.fd_prefersNavigationBarHidden = YES;
@@ -61,13 +94,18 @@
     WS(weakSelf);
     [self.SearchView.button setAction:^{
         ReplayMeSearchVC * vc = [[ReplayMeSearchVC alloc] init];
+        vc.IsReplyMe = weakSelf.replayMe;
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
     [self.navBar addSubview:self.titleBtn];
     [self.titleBtn mas_makeConstraints:^(MASConstraintMaker *make) {
         make.center.mas_equalTo(self.navBar);
     }];
-    [self autoSizeBtn:@"我回复的"];
+    if (self.replayMe) {
+        [self autoSizeBtn:@"我回复的"];
+    }else{
+        [self autoSizeBtn:@"回复我的"];
+    }
     [self.titleBtn setAction:^{
         [weakSelf.titleBtn show];
         NSMutableArray *menuDataSourceArray = [weakSelf getMenuDataSource:weakSelf.taskActionArray];
@@ -81,7 +119,12 @@
         view.offset = - 6;
         [view show];
     }];
-    [self.tableView reloadData];
+}
+-(NSMutableArray *)dataArray{
+    if(!_dataArray){
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
 }
 -(NSMutableArray *)taskActionArray{
     if(!_taskActionArray){
@@ -98,13 +141,11 @@
             [weakSelf.titleBtn dismiss];
             [weakSelf autoSizeBtn:titleStr];
             if([@"回复我的" isEqualToString:action.title]){
-                weakSelf.replayMe = YES;
-            }else{
                 weakSelf.replayMe = NO;
+            }else{
+                weakSelf.replayMe = YES;
             }
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [weakSelf.tableView reloadData];
-            });
+            [weakSelf getData];
         }];
         [menuDataSourceArray addObject:actionMenu];
     }
@@ -113,11 +154,11 @@
 #pragma mark -UITableViewDelegate
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
-    return 20;
+    return self.dataArray.count;
 }
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
-    if (self.replayMe) {
+    if (!self.replayMe) {
         return 45.f;
     }else{
         return 0.01f;
@@ -130,7 +171,7 @@
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 {
     UIView * view = [UIView new];
-    if (self.replayMe) {
+    if (!self.replayMe) {
         UILabel * label = [UILabel new];
         label.font = Kfont(16);
         label.textColor = UIColorHex(0x0a0a0a);
@@ -151,7 +192,7 @@
         redL.font = Kfont(11);
         redL.textColor = UIColorHex(0xFFFFFF);
         redL.backgroundColor = [UIColor redColor];
-        redL.text = @"3";
+        redL.text = [NSString stringWithFormat:@"%ld",self.PraiseCount];
         redL.textAlignment = NSTextAlignmentCenter;
         [view addSubview:redL];
         [redL mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -187,13 +228,26 @@
 }
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
-    ReplayMeCell * cell = [ReplayMeCell configCell:tableView indexPath:indexPath];
-    cell.redV.hidden = YES;
-    [cell setDatasubText];
-    return cell;
+    ReplyModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    if (model.IsComment) {
+        ReplayMeCell * cell = [ReplayMeCell configCell0:tableView indexPath:indexPath];
+        cell.redV.hidden = YES;
+        [cell setDataCommentModel:model];
+        return cell;
+    }else{
+        ReplayMeCell * cell = [ReplayMeCell configCell1:tableView indexPath:indexPath];
+        cell.redV.hidden = YES;
+        [cell setDataModel:model];
+        return cell;
+    }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    ReplyModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
+    vc.type = model.TypeValue;
+    vc.Id = model.SourceId;
+    [self.navigationController pushViewController:vc animated:YES];
 }
 @end

+ 4 - 4
smartRhino/Project/VCModel/Source/Controller/SourceGroupSearchVC.m

@@ -560,8 +560,8 @@
 - (void)CommentPush:(TopicListItemModel *)model
 {
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
-    vc.type = CollectModel_NewTopic;
-    vc.deleteTopicBlock = ^{
+    vc.type = CollectModel_Toipc;
+    vc.RefreshTopicBlock = ^{
 
     };
     vc.Id = model.Id;
@@ -571,7 +571,7 @@
 - (void)reSend:(TopicListItemModel *)model
 {
     FlowAttachmentsModel * topicModel = [[FlowAttachmentsModel alloc] init];
-    topicModel.SoureTypeId = CollectModel_NewTopic;
+    topicModel.SoureTypeId = CollectModel_Toipc;
     topicModel.Title = model.Title;
     topicModel.SoureId = model.Id;
     topicModel.Title = model.Title;
@@ -685,7 +685,7 @@
 - (void)returnToTopic
 {
     MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
-    vc.type = CollectModel_NewTopic;
+    vc.type = CollectModel_Toipc;
     vc.sendModel = self.sendModel;
     vc.isReturn = YES;
     [self.navigationController pushViewController:vc animated:YES];

+ 5 - 5
smartRhino/Project/VCModel/Source/Controller/SourceGroupVC.m

@@ -67,7 +67,7 @@
     }];
     [self.editBtn setAction:^{
         MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
-        vc.type = CollectModel_NewTopic;
+        vc.type = CollectModel_Toipc;
         vc.upDateBlock = ^{
             [weakSelf getData];
         };
@@ -626,8 +626,8 @@
 - (void)CommentPush:(TopicListItemModel *)model
 {
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
-    vc.type = CollectModel_NewTopic;
-    vc.deleteTopicBlock = ^{
+    vc.type = CollectModel_Toipc;
+    vc.RefreshTopicBlock = ^{
 
     };
     vc.Id = model.Id;
@@ -637,7 +637,7 @@
 - (void)reSend:(TopicListItemModel *)model
 {
     FlowAttachmentsModel * topicModel = [[FlowAttachmentsModel alloc] init];
-    topicModel.SoureTypeId = CollectModel_NewTopic;
+    topicModel.SoureTypeId = CollectModel_Toipc;
     topicModel.Title = model.Title;
     topicModel.SoureId = model.Id;
     topicModel.Title = model.Title;
@@ -751,7 +751,7 @@
 - (void)returnToTopic
 {
     MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
-    vc.type = CollectModel_NewTopic;
+    vc.type = CollectModel_Toipc;
     vc.sendModel = self.sendModel;
     vc.isReturn = YES;
     [self.navigationController pushViewController:vc animated:YES];

+ 14 - 8
smartRhino/Project/VCModel/Source/Controller/SourceHomeVC.m

@@ -217,7 +217,6 @@
 {
     [super viewWillAppear:animated];
     [self getUnreadCount];
-    [self headRefresh];
 }
 - (void)conversationListDidUpdate:(NSArray *)aConversationList
 {
@@ -236,6 +235,7 @@
     self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
         [weakSelf footerRefresh];
     }];
+    [self.tableView.mj_header beginRefreshing];
 }
 
 - (void)headRefresh{
@@ -557,6 +557,9 @@
         default:
         {
             TopicListItemModel * model = [self.dataArray objectAtIndex:indexPath.row];
+            if (!model) {
+                return [TDGroupInfoListCell configCell1:tableView indexPath:indexPath];
+            }
             switch (model.DataType) {
                 case TopiclistCellImage:
                 {
@@ -959,9 +962,9 @@
         TopicListItemModel * model = [self.dataArray objectAtIndex:indexPath.row];
         if (model) {
             MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
-            vc.type = CollectModel_NoteBook;
-            vc.deleteTopicBlock = ^{
-                //        [weakSelf headRefresh];
+            vc.type = CollectModel_NewTopic;
+            vc.RefreshTopicBlock = ^{
+                [weakSelf headRefresh];
             };
             vc.Id = model.Id;
             [self.navigationController pushViewController:vc animated:YES];
@@ -1190,7 +1193,7 @@
 {
     WS(weakSelf);
     NSDictionary * paraDict = @{@"SourceId":@(model.Id),
-                                @"TypeValue":@(4),///
+                                @"TypeValue":@(-4),///
                                 @"AnalyzeType":@(1)
     };
     btn.enabled = NO;
@@ -1199,7 +1202,9 @@
         model.IsPraise = !model.IsPraise;
         model.PraiseCount = model.IsPraise ? (model.PraiseCount + 1) : (model.PraiseCount - 1);
         dispatch_async(dispatch_get_main_queue(), ^{
-            [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+            if (weakSelf.dataArray.count > 0) {
+                [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
+            }
         });
     } failure:^(NSError * _Nonnull error) {
         btn.enabled = YES;
@@ -1207,10 +1212,11 @@
 }
 - (void)CommentPush:(TopicListItemModel *)model
 {
+    WS(weakSelf);
     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
     vc.type = CollectModel_NewTopic;
-    vc.deleteTopicBlock = ^{
-
+    vc.RefreshTopicBlock = ^{
+        [weakSelf headRefresh];
     };
     vc.Id = model.Id;
     vc.isComment = YES;

+ 35 - 0
smartRhino/Project/VCModel/Source/Model/ReplyModel.h

@@ -0,0 +1,35 @@
+//
+//  ReplyModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/29.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface ReplyModel : BaseModel
+@property (nonatomic, copy) NSString   * CommentContent;
+@property (nonatomic, copy) NSString   * Title;
+@property (nonatomic, copy) NSString   * Content;
+@property (nonatomic, copy) NSString   * UserName;
+@property (nonatomic, copy) NSString   * AvatarUrl;
+@property (nonatomic, copy) NSString   * Name;
+@property (nonatomic, copy) NSString   * GroupName;
+@property (nonatomic, copy) NSString   * Remark;
+@property (nonatomic, copy) NSString   * CreatedDate;
+@property (nonatomic, assign) NSInteger   Id;
+@property (nonatomic, assign) NSInteger   SourceId;
+@property (nonatomic, assign) NSInteger   GroupId;
+@property (nonatomic, assign) NSInteger   Pid;
+@property (nonatomic, assign) CollectModelType   TypeValue;
+@property (nonatomic, assign) NSInteger   UserId;
+@property (nonatomic, assign) BOOL       IsRead;
+@property (nonatomic, assign) BOOL       IsTopic;
+@property (nonatomic, assign) BOOL       IsComment;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/Source/Model/ReplyModel.m

@@ -0,0 +1,13 @@
+//
+//  ReplyModel.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/29.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "ReplyModel.h"
+
+@implementation ReplyModel
+
+@end

+ 44 - 0
smartRhino/Project/VCModel/Source/Source.storyboard

@@ -68,14 +68,58 @@
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="P7O-Ou-oGU">
                                 <rect key="frame" x="0.0" y="64" width="414" height="672"/>
                             </tableView>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Id2-WT-fgc">
+                                <rect key="frame" x="0.0" y="264" width="414" height="472"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7gU-4y-lth">
+                                        <rect key="frame" x="57" y="0.0" width="300" height="38.333333333333336"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="300" id="JaH-BF-FQ4"/>
+                                        </constraints>
+                                        <attributedString key="attributedText">
+                                            <fragment content="您还没有可控制范围的话题发布文件夹, 立即 ">
+                                                <attributes>
+                                                    <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                                                    <font key="NSFont" metaFont="system" size="16"/>
+                                                    <paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                                </attributes>
+                                            </fragment>
+                                            <fragment content="新建">
+                                                <attributes>
+                                                    <color key="NSColor" red="0.11764705882352941" green="0.47843137254901957" blue="0.72549019607843135" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                    <font key="NSFont" metaFont="system" size="16"/>
+                                                    <paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                                </attributes>
+                                            </fragment>
+                                            <fragment content=" 一个">
+                                                <attributes>
+                                                    <color key="NSColor" name="textColor" catalog="System" colorSpace="catalog"/>
+                                                    <font key="NSFont" metaFont="system" size="16"/>
+                                                    <paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
+                                                </attributes>
+                                            </fragment>
+                                        </attributedString>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstItem="7gU-4y-lth" firstAttribute="top" secondItem="Id2-WT-fgc" secondAttribute="top" id="0yu-fP-Dvv"/>
+                                    <constraint firstItem="7gU-4y-lth" firstAttribute="centerX" secondItem="Id2-WT-fgc" secondAttribute="centerX" id="eTV-uW-CDL"/>
+                                </constraints>
+                            </view>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                         <constraints>
                             <constraint firstItem="P7O-Ou-oGU" firstAttribute="top" secondItem="hCB-eT-rx4" secondAttribute="bottom" id="3ny-1c-9He"/>
                             <constraint firstItem="P7O-Ou-oGU" firstAttribute="leading" secondItem="7c1-e0-9St" secondAttribute="leading" id="FLs-xl-Waa"/>
+                            <constraint firstItem="Id2-WT-fgc" firstAttribute="trailing" secondItem="7c1-e0-9St" secondAttribute="trailing" id="WXJ-3n-64A"/>
                             <constraint firstItem="hCB-eT-rx4" firstAttribute="trailing" secondItem="7c1-e0-9St" secondAttribute="trailing" id="aeX-EI-pWy"/>
                             <constraint firstItem="7c1-e0-9St" firstAttribute="bottom" secondItem="P7O-Ou-oGU" secondAttribute="bottom" id="b3y-bO-csP"/>
+                            <constraint firstItem="Id2-WT-fgc" firstAttribute="leading" secondItem="7c1-e0-9St" secondAttribute="leading" id="bwX-kg-CvM"/>
+                            <constraint firstItem="7c1-e0-9St" firstAttribute="bottom" secondItem="Id2-WT-fgc" secondAttribute="bottom" id="cTW-aB-LY3"/>
                             <constraint firstItem="hCB-eT-rx4" firstAttribute="top" secondItem="DUl-bS-JUQ" secondAttribute="top" id="dLA-cp-dy0"/>
+                            <constraint firstItem="Id2-WT-fgc" firstAttribute="top" secondItem="hCB-eT-rx4" secondAttribute="bottom" constant="200" id="f2v-HI-hie"/>
                             <constraint firstItem="7c1-e0-9St" firstAttribute="trailing" secondItem="P7O-Ou-oGU" secondAttribute="trailing" id="g3z-GR-Hbx"/>
                             <constraint firstItem="hCB-eT-rx4" firstAttribute="leading" secondItem="7c1-e0-9St" secondAttribute="leading" id="rMd-z6-kZq"/>
                         </constraints>

+ 7 - 3
smartRhino/Project/VCModel/Source/View/ReplayMeCell.h

@@ -7,6 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "ReplyModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -19,9 +20,12 @@ NS_ASSUME_NONNULL_BEGIN
 @property (weak, nonatomic) IBOutlet UILabel *subTitleL;
 @property (weak, nonatomic) IBOutlet UILabel *subComeL;
 @property (weak, nonatomic) IBOutlet UIView *redV;
-+ (ReplayMeCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
-- (void)setDataWithText:(NSString *)text;
-- (void)setDatasubText;
+@property (weak, nonatomic) IBOutlet UIImageView *FileImgV;
++ (ReplayMeCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (ReplayMeCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+
+- (void)setDataModel:(ReplyModel *)model;
+- (void)setDataCommentModel:(ReplyModel *)model;
 @end
 
 NS_ASSUME_NONNULL_END

+ 116 - 12
smartRhino/Project/VCModel/Source/View/ReplayMeCell.m

@@ -14,6 +14,8 @@
     [super awakeFromNib];
     self.iconV.layer.cornerRadius = 5.f;
     self.iconV.layer.masksToBounds = YES;
+    self.FileImgV.layer.cornerRadius = 2.f;
+    self.FileImgV.layer.masksToBounds = YES;
     self.subView.layer.cornerRadius = 5.f;
     self.subView.layer.masksToBounds = YES;
     self.subView.layer.borderColor = UIColorHex(0xE5E5E5).CGColor;
@@ -24,30 +26,132 @@
 
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
-
+    
     // Configure the view for the selected state
 }
-+ (ReplayMeCell *)configCell:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
-    static NSString *cellIdentifer = @"ReplayMeCell";
++ (ReplayMeCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"ReplayMeCell0";
     ReplayMeCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
     if (cell == nil) {
         cell = [[[NSBundle mainBundle] loadNibNamed:@"ReplayMeCell" owner:nil options:nil] objectAtIndex:0];
     }
     return cell;
 }
-- (void)setDatasubText
++ (ReplayMeCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"ReplayMeCell1";
+    ReplayMeCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"ReplayMeCell" owner:nil options:nil] objectAtIndex:1];
+    }
+    return cell;
+}
+- (void)setDataModel:(ReplyModel *)model
 {
-    NSString * str = @"童文洁: 这群孩子用思维导图刷新了学习力";
-    NSString * substr = @"来自 话题";
-
-    self.subTitleL.attributedText = [self checkOfString:str withSearchText:@"童文洁:"];
-    self.subComeL.attributedText = [self checkOfString:substr withSearchText:@"话题"];
+    NSString * comStr = [NSString stringWithFormat:@"来自 %@",model.Remark];
+    
+    [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+    self.nameL.text = model.UserName;
+    self.timeL.text = [model.CreatedDate substringWithRange:NSMakeRange(5, 11)];
+    self.contentL.text = model.CommentContent;
+    self.subTitleL.text = model.Title;
+    self.subComeL.attributedText = [self checkOfString:comStr withSearchText:model.Remark];
+    switch (model.TypeValue) {
+        case CollectModel_Aritle:
+        {
+            self.FileImgV.image = IMG(@"文章");
+        }
+            break;
+        case CollectModel_Toipc:
+        {
+            self.FileImgV.image = IMG(@"话题");
+        }
+            break;
+        case CollectModel_NewTopic:
+        {
+            self.FileImgV.image = IMG(@"话题");
+        }
+            break;
+        case CollectModel_Collect:
+        {
+            self.FileImgV.image = IMG(@"收藏");
+        }
+            break;
+        case CollectModel_NoteBook:
+        {
+            self.FileImgV.image = IMG(@"noteBook_icon");
+        }
+            break;
+        case CollectModel_Notice:
+        {
+            self.FileImgV.image = IMG(@"通知图标");
+        }
+            break;
+        case CollectModel_InterMail:
+        {
+            self.FileImgV.image = IMG(@"站内信");
+        }
+            break;
+        case CollectModel_Group:
+        {
+            self.FileImgV.image = IMG(@"笔记小组");
+        }
+            break;
+        case CollectModel_meetDetail:
+        {
+            self.FileImgV.image = IMG(@"会议");
+        }
+            break;
+        case CollectModel_meetMian:
+        {
+            self.FileImgV.image = IMG(@"会议");
+        }
+            break;
+        case CollectModel_CollectFile:
+        {
+            self.FileImgV.image = IMG(@"find_1");
+        }
+            break;
+        case CollectModel_NoteFile:
+        {
+            self.FileImgV.image = IMG(@"find_1");
+        }
+            break;
+        case CollectModel_work:
+        {
+            self.FileImgV.image = IMG(@"审批");
+        }
+            break;
+        case CollectModel_financeCount:
+        {
+            self.FileImgV.image = IMG(@"报表");
+        }
+            break;
+        case CollectModel_affairsCount:
+        {
+            self.FileImgV.image = IMG(@"报表");
+        }
+            break;
+        default:
+        {
+            self.FileImgV.image = IMG(@"报表");
+        }
+            break;
+    }
 }
-- (void)setDataWithText:(NSString *)text
+- (void)setDataCommentModel:(ReplyModel *)model
 {
-    NSString * str = @"数字出版行业会议的积极推动者";
-    self.contentL.attributedText = [self checkOfString:str withSearchText:text];
+    NSString * str = [NSString stringWithFormat:@"%@:%@",model.Name,model.Title];
+    NSString * subtr = [NSString stringWithFormat:@"%@:",model.Name];
+    NSString * comStr = [NSString stringWithFormat:@"来自 %@",model.Remark];
+    [self.iconV sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
+    self.nameL.text = model.UserName;
+    self.timeL.text = [model.CreatedDate substringWithRange:NSMakeRange(5, 11)];
+    self.contentL.text = model.CommentContent;
+    self.subTitleL.attributedText = [self checkOfString:str withSearchText:subtr];
+    self.subComeL.attributedText = [self checkOfString:comStr withSearchText:model.Remark];
+    
 }
+
 - (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text
 {
     if (infoStr.length == 0) {

+ 122 - 11
smartRhino/Project/VCModel/Source/View/ReplayMeCell.xib

@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <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="none" indentationWidth="10" rowHeight="250" id="KGk-i7-Jjw" customClass="ReplayMeCell">
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ReplayMeCell0" rowHeight="250" id="KGk-i7-Jjw" customClass="ReplayMeCell">
             <rect key="frame" x="0.0" y="0.0" width="320" height="250"/>
             <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="250"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="imagePlaceholder" translatesAutoresizingMaskIntoConstraints="NO" id="ySR-Fa-Phr">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="imagePlaceholder" translatesAutoresizingMaskIntoConstraints="NO" id="ySR-Fa-Phr">
                         <rect key="frame" x="15" y="20" width="35" height="35"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="35" id="4Zl-4z-zCN"/>
@@ -119,14 +119,125 @@
             </connections>
             <point key="canvasLocation" x="137.68115942028987" y="219.64285714285714"/>
         </tableViewCell>
-        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="gRs-gc-lC9">
-            <rect key="frame" x="0.0" y="0.0" width="42" height="50"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="ReplayMeCell1" rowHeight="250" id="AoR-45-4li" customClass="ReplayMeCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="250"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-            <fontDescription key="fontDescription" type="system" pointSize="17"/>
-            <nil key="textColor"/>
-            <nil key="highlightedColor"/>
-            <point key="canvasLocation" x="779.71014492753625" y="245.08928571428569"/>
-        </label>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="AoR-45-4li" id="8Ar-6h-h9X">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="250"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="imagePlaceholder" translatesAutoresizingMaskIntoConstraints="NO" id="X0y-tg-SK2">
+                        <rect key="frame" x="15" y="20" width="35" height="35"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="35" id="9b9-qN-RUe"/>
+                            <constraint firstAttribute="width" constant="35" id="xwM-eM-ijC"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="徐文娟" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JYc-ds-1MH">
+                        <rect key="frame" x="61" y="20" width="46" height="18"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="10-27 12:43" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rmq-Ql-TfS">
+                        <rect key="frame" x="61" y="43" width="68" height="14.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                        <color key="textColor" red="0.61960784310000006" green="0.61960784310000006" blue="0.61960784310000006" alpha="1" colorSpace="calibratedRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K2x-dT-Cpd">
+                        <rect key="frame" x="15" y="154.5" width="290" height="75"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="周黎明:这群孩子用思维导图刷新了学习力" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="atH-DB-NwV">
+                                <rect key="frame" x="73" y="17" width="202" height="18"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="来自 话题" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FHn-Dz-fLr">
+                                <rect key="frame" x="73" y="48" width="202" height="14.5"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                <color key="textColor" red="0.61960784310000006" green="0.61960784310000006" blue="0.61960784310000006" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="asu-rT-TlX">
+                                <rect key="frame" x="11" y="12.5" width="50" height="50"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="50" id="Jmy-75-st5"/>
+                                    <constraint firstAttribute="height" constant="50" id="nXd-Ug-Hcu"/>
+                                </constraints>
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="0.97647058819999999" green="0.98039215690000003" blue="0.98039215690000003" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstItem="atH-DB-NwV" firstAttribute="leading" secondItem="asu-rT-TlX" secondAttribute="trailing" constant="12" id="2em-eI-F8n"/>
+                            <constraint firstAttribute="trailing" secondItem="atH-DB-NwV" secondAttribute="trailing" constant="15" id="3li-WH-Zf5"/>
+                            <constraint firstItem="FHn-Dz-fLr" firstAttribute="leading" secondItem="atH-DB-NwV" secondAttribute="leading" id="Cm3-Dk-QU6"/>
+                            <constraint firstItem="asu-rT-TlX" firstAttribute="centerY" secondItem="K2x-dT-Cpd" secondAttribute="centerY" id="Fme-9q-gAe"/>
+                            <constraint firstAttribute="trailing" secondItem="FHn-Dz-fLr" secondAttribute="trailing" constant="15" id="Igr-1i-nAG"/>
+                            <constraint firstItem="FHn-Dz-fLr" firstAttribute="top" secondItem="atH-DB-NwV" secondAttribute="bottom" constant="13" id="NSh-Qd-Y4s"/>
+                            <constraint firstItem="atH-DB-NwV" firstAttribute="top" secondItem="K2x-dT-Cpd" secondAttribute="top" constant="17" id="YIb-bl-I8Q"/>
+                            <constraint firstItem="asu-rT-TlX" firstAttribute="leading" secondItem="K2x-dT-Cpd" secondAttribute="leading" constant="11" id="Zwj-hS-cNj"/>
+                            <constraint firstAttribute="height" constant="75" id="pRQ-pW-B3J"/>
+                        </constraints>
+                    </view>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" text="关于会议室防火安全通知" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="czK-ej-Kfo">
+                        <rect key="frame" x="15" y="70" width="290" height="74.5"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zvo-S7-g1E">
+                        <rect key="frame" x="0.0" y="249.5" width="320" height="0.5"/>
+                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="KOG-JD-oUg"/>
+                        </constraints>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7oq-eT-WQ9">
+                        <rect key="frame" x="295" y="24" width="10" height="10"/>
+                        <color key="backgroundColor" systemColor="systemRedColor" red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="10" id="eJZ-9B-ZzH"/>
+                            <constraint firstAttribute="height" constant="10" id="tfO-uu-Xtf"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="K2x-dT-Cpd" secondAttribute="trailing" constant="15" id="1Uk-Vr-BsP"/>
+                    <constraint firstItem="X0y-tg-SK2" firstAttribute="leading" secondItem="8Ar-6h-h9X" secondAttribute="leading" constant="15" id="4MP-Oc-Kod"/>
+                    <constraint firstItem="X0y-tg-SK2" firstAttribute="top" secondItem="8Ar-6h-h9X" secondAttribute="top" constant="20" id="786-Al-jQg"/>
+                    <constraint firstItem="zvo-S7-g1E" firstAttribute="leading" secondItem="8Ar-6h-h9X" secondAttribute="leading" id="8ym-fB-tQh"/>
+                    <constraint firstItem="rmq-Ql-TfS" firstAttribute="leading" secondItem="JYc-ds-1MH" secondAttribute="leading" id="9bK-PZ-vgs"/>
+                    <constraint firstAttribute="trailing" secondItem="zvo-S7-g1E" secondAttribute="trailing" id="H7O-iZ-k2z"/>
+                    <constraint firstAttribute="bottom" secondItem="zvo-S7-g1E" secondAttribute="bottom" id="Ihz-8L-HGG"/>
+                    <constraint firstItem="czK-ej-Kfo" firstAttribute="leading" secondItem="X0y-tg-SK2" secondAttribute="leading" id="Kjf-cb-fNj"/>
+                    <constraint firstItem="rmq-Ql-TfS" firstAttribute="top" secondItem="JYc-ds-1MH" secondAttribute="bottom" constant="5" id="NqA-Pw-wcx"/>
+                    <constraint firstItem="7oq-eT-WQ9" firstAttribute="centerY" secondItem="JYc-ds-1MH" secondAttribute="centerY" id="QJy-ea-omM"/>
+                    <constraint firstItem="JYc-ds-1MH" firstAttribute="top" secondItem="X0y-tg-SK2" secondAttribute="top" id="bNq-gs-9wQ"/>
+                    <constraint firstItem="K2x-dT-Cpd" firstAttribute="leading" secondItem="8Ar-6h-h9X" secondAttribute="leading" constant="15" id="bl5-Mh-RNA"/>
+                    <constraint firstItem="zvo-S7-g1E" firstAttribute="top" secondItem="K2x-dT-Cpd" secondAttribute="bottom" constant="20" id="dMO-u3-xoX"/>
+                    <constraint firstItem="K2x-dT-Cpd" firstAttribute="top" secondItem="czK-ej-Kfo" secondAttribute="bottom" constant="10" id="iYQ-Rq-1pc"/>
+                    <constraint firstItem="JYc-ds-1MH" firstAttribute="leading" secondItem="X0y-tg-SK2" secondAttribute="trailing" constant="11" id="lBc-wq-x5L"/>
+                    <constraint firstAttribute="trailing" secondItem="czK-ej-Kfo" secondAttribute="trailing" constant="15" id="nv4-Ik-AB6"/>
+                    <constraint firstAttribute="trailing" secondItem="7oq-eT-WQ9" secondAttribute="trailing" constant="15" id="rTz-yi-LTa"/>
+                    <constraint firstItem="czK-ej-Kfo" firstAttribute="top" secondItem="X0y-tg-SK2" secondAttribute="bottom" constant="15" id="u5V-q8-JDD"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="vZO-mK-3Cg"/>
+            <connections>
+                <outlet property="FileImgV" destination="asu-rT-TlX" id="clW-di-CBs"/>
+                <outlet property="contentL" destination="czK-ej-Kfo" id="qio-Jy-c9g"/>
+                <outlet property="iconV" destination="X0y-tg-SK2" id="J1I-Dx-RcW"/>
+                <outlet property="nameL" destination="JYc-ds-1MH" id="s5B-NE-pES"/>
+                <outlet property="redV" destination="7oq-eT-WQ9" id="wk1-GV-GRx"/>
+                <outlet property="subComeL" destination="FHn-Dz-fLr" id="Mc5-R2-rjG"/>
+                <outlet property="subTitleL" destination="atH-DB-NwV" id="M1c-Sj-th1"/>
+                <outlet property="subView" destination="K2x-dT-Cpd" id="zx0-vU-5v5"/>
+                <outlet property="timeL" destination="rmq-Ql-TfS" id="cvd-Ie-hbw"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="465.40178571428567"/>
+        </tableViewCell>
     </objects>
     <resources>
         <image name="imagePlaceholder" width="1024" height="1024"/>

+ 74 - 85
smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.m

@@ -13,6 +13,11 @@
 #import "MyTDGroupView.h"
 #import "MailModel.h"
 #import "MailListCell.h"
+#import "ShareSysVC.h"
+#import "ShareCusVC.h"
+#import "ShowSysVC.h"
+#import "ShowUserVC.h"
+#import "ShowDesVC.h"
 
 @interface AddLookUpUserSecondVC ()<UITableViewDelegate,UITableViewDataSource>
 
@@ -32,7 +37,11 @@
 @end
 
 @implementation AddLookUpUserSecondVC
-
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self countMailArray:@[]];
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     [self getdata];
@@ -78,7 +87,6 @@
         make.height.mas_offset(@44);
         make.right.mas_equalTo(self.myNavigationBar.mas_right).offset(-15);
     }];
-
 }
 
 #pragma mark - 导航事件处理
@@ -173,19 +181,6 @@
 }
 
 - (void)confirmAction:(UIButton*)btn{
-    if (self.isAllSelected) {
-        NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
-        NSMutableArray * addArray = [NSMutableArray array];
-        for (id mail in mailArray) {
-            NSData * data = (NSData *)mail;
-            SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:data];
-            [addArray addObject:sModel];
-        }
-        if (addArray.count > 0) {
-            [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFI_ChaoSongRen object:nil userInfo:@{@"selectPeople":addArray}];
-            [self back1];
-        }
-    }else{
         NSMutableDictionary * paraDict = [NSMutableDictionary dictionary];
         if (self.dataSourceArray.count > 0) {
             NSMutableArray * mArray = [NSMutableArray array];
@@ -194,13 +189,13 @@
                     if ([sub isKindOfClass:[MailModel class]]) {
                         MailModel * model = (MailModel *)sub;
                         if (model.IsSelect) {
-                            [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(0)}];
+                            [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(model.Id),@"SourceTypeValue":@(model.TypeValue),@"SourceName":model.Name}];
                         }
                     }
                     if ([sub isKindOfClass:[SelectModel class]]) {
                         SelectModel * model = (SelectModel *)sub;
                         if (model.hadSelected) {
-                            [mArray addObject:@{@"SourceType":@(0),@"SourceId":@(model.UserId)}];
+                            [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(model.Id),@"SourceTypeValue":@(model.TypeValue),@"SourceName":model.Name}];
                         }
                     }
                 }
@@ -213,7 +208,7 @@
             NSMutableArray * mArray = [NSMutableArray array];
             for (Department *model in self.departSourceDataArray) {
                 if (model.hadSelected) {
-                    [mArray addObject:@{@"SourceType":@(1),@"SourceId":@(model.Id)}];
+                    [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(model.Id),@"SourceTypeValue":@(0),@"SourceName":model.Name}];
                 }
             }
             if (mArray.count > 0) {
@@ -239,9 +234,6 @@
         } failure:^(NSError * _Nonnull error) {
             SHOWERROR([ZYCTool handerResultData:error]);
         }];
-    }
-
- 
 
 //    if (self.isAllSelected) {
 //        //获取所有被选中的分组
@@ -591,62 +583,59 @@
         }
     }else{
         NSArray * array = [self.dataSourceArray objectAtIndex:indexPath.section];
-        switch (indexPath.section) {
-            case 0:
+        MailModel * model = [array objectAtIndex:indexPath.row];
+        switch (model.TypeId) {
+            case MailListUserType:
             {
-                MailModel * model = [array objectAtIndex:indexPath.row];
-                switch (model.TypeId) {
-                    case MailListUserType:
-                    {
-                        
-                    }
-                        break;
-                    case MailListDesType:
-                    {
-                        AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
-                        vc.indexId = self.departSourceDataArray[indexPath.row].Id;
-                        vc.isDefalutPage = 2;
-                        vc.isMyGroup = 1;
-                        vc.SourceType = 1;
-                        vc.isShow = self.isShow;
-                        vc.IsSubVC = YES;
-                        vc.UserIds = self.UserIds;
-                        vc.titleStr = self.titleStr;
-                        vc.grouperArray = self.grouperArray;
-                        vc.isAllSelected = self.isAllSelected;
-                        [self.navigationController pushViewController:vc animated:YES];
-                    }
-                        break;
-                    case MailListSysType:
-                    {
-                        
-                    }
-                        break;
-                    default:
-                    {
-                        AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
-                        vc.indexId = self.departSourceDataArray[indexPath.row].Id;
-                        vc.isDefalutPage = 2;
-                        vc.isMyGroup = 2;
-                        vc.titleStr = self.titleStr;
-                        vc.SourceType = 3;
-                        vc.IsSubVC = YES;
-                        vc.isShow = self.isShow;
-                        vc.UserIds = self.UserIds;
-                        vc.grouperArray = self.grouperArray;
-                        vc.isAllSelected = self.isAllSelected;
-                        [self.navigationController pushViewController:vc animated:YES];
-                    }
-                        break;
+                SelectModel * smodel = [array objectAtIndex:indexPath.row];
+                smodel.hadSelected = !smodel.hadSelected;
+                [self checkSelectCount:smodel];
+                [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+            }
+                break;
+            case MailListDesType:
+            {
+                if (model.IsSelect) {
+                    model.IsSelect = !model.IsSelect;
+                    [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+                }else{
+                    ShowDesVC * vc = [ShowDesVC initShowDesVC];
+                    vc.dataSourceArray = model.Items.mutableCopy;
+                    vc.IsSelect = YES;
+                    [self.navigationController pushViewController:vc animated:YES];
                 }
             }
                 break;
+            case MailListSysType:
+            {
+                ShowSysVC * vc = [ShowSysVC initShowSysVC];
+                vc.dataSourceArray = model.Items.mutableCopy;
+                vc.IsSelect = YES;
+                [self.navigationController pushViewController:vc animated:YES];
+            }
+                break;
+            case MailListOtherType:
+            {
+                ShowUserVC * vc = [ShowUserVC initShowUserVC];
+                vc.IsSelect = YES;
+                vc.dataSourceArray = self.OtherArray.mutableCopy;
+                [self.navigationController pushViewController:vc animated:YES];
+            }
+                break;
             default:
             {
-                SelectModel * model = [array objectAtIndex:indexPath.row];
-                model.hadSelected = !model.hadSelected;
-                [self checkSelectCount:model];
-                [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+                AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
+                vc.indexId = self.departSourceDataArray[indexPath.row].Id;
+                vc.isDefalutPage = 2;
+                vc.isMyGroup = 2;
+                vc.titleStr = self.titleStr;
+                vc.SourceType = 3;
+                vc.IsSubVC = YES;
+                vc.isShow = self.isShow;
+                vc.UserIds = self.UserIds;
+                vc.grouperArray = self.grouperArray;
+                vc.isAllSelected = self.isAllSelected;
+                [self.navigationController pushViewController:vc animated:YES];
             }
                 break;
         }
@@ -740,8 +729,8 @@
 }
 - (void)countMailArray:(NSArray *)sssArray
 {
+    NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
     for (id detail in sssArray) {
-        NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
         SelectModel * ssmodel = [self addSelectModel:detail];
         
         __block BOOL isEque = NO;
@@ -749,25 +738,25 @@
             SelectModel * sModel = (SelectModel*) [NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)obj];
             if (sModel.SourceType == ssmodel.SourceType && sModel.SourceId == ssmodel.SourceId) {
                 isEque = YES;
-                [mailArray removeObject:obj];
+                if (!ssmodel.hadSelected) {
+                    [mailArray removeObject:obj];
+                }
             }
         }];
-        if (!isEque) {
+        if (!isEque && ssmodel.hadSelected) {
             NSData * ssdata  = [NSKeyedArchiver archivedDataWithRootObject:ssmodel];
             [mailArray addObject:ssdata];
         }
         USERDEFAULTSSET(mailArray, MAILSELECT);
-        
-        
-        if (mailArray.count > 0) {
-            self.myNavigationBar.rightButton.enabled = YES;
-            [self.myNavigationBar.rightButton setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
-            [self.myNavigationBar.rightButton setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
-        }else{
-            self.myNavigationBar.rightButton.enabled = NO;
-            [self.myNavigationBar.rightButton setTitle:@"确定" forState:UIControlStateNormal];
-            [self.myNavigationBar.rightButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
-        }
+    }
+    if (mailArray.count > 0) {
+        self.myNavigationBar.rightButton.enabled = YES;
+        [self.myNavigationBar.rightButton setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
+        [self.myNavigationBar.rightButton setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)mailArray.count] forState:UIControlStateNormal];
+    }else{
+        self.myNavigationBar.rightButton.enabled = NO;
+        [self.myNavigationBar.rightButton setTitle:@"确定" forState:UIControlStateNormal];
+        [self.myNavigationBar.rightButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
     }
 }
 - (SelectModel *)addSelectModel:(id)model

+ 5 - 0
smartRhino/Project/VCModel/WorkFlow/NewMeetingFecordDetailsController.m

@@ -438,6 +438,11 @@ static NSString *imageID = @"ArticleImageCell";
 }
 - (void)collectSuccess
 {
+    NSString *jsonString = [NSString stringWithFormat:@"showCollection('%d')",1];
+    [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) {
+        NSLog(@"data:%@",data);
+        NSLog(@"error:%@",error);
+    }];
     self.commentView.collectButton.selected = YES;
     _currentModel.CollectionCount ++;
 }

+ 1 - 0
smartRhino/Project/VCModel/WorkFlow/SelectModel.h

@@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic ,assign) NSInteger Guid;
 @property (nonatomic ,assign) NSInteger UserId;
 @property (nonatomic ,assign) NSInteger Id;
+@property (nonatomic ,assign) NSInteger TypeId;
 @property (nonatomic ,assign) NSInteger MiddleId;
 @property (nonatomic ,assign) NSInteger TypeValue;
 @property (nonatomic ,assign) NSInteger SourceType;

+ 1 - 0
smartRhino/Project/VCModel/WorkFlow/SelectModel.m

@@ -15,6 +15,7 @@
         self.Nick = ISEmpty(dict[@"Nick"]) ? @"" : [dict objectForKey:@"Nick"];
         self.Phone = ISEmpty(dict[@"Phone"]) ? @"" : [dict objectForKey:@"Phone"];
         self.ImId = ISEmpty(dict[@"ImId"]) ? @"" : [dict objectForKey:@"ImId"];
+        self.Name = ISEmpty(dict[@"Name"]) ? @"" : [dict objectForKey:@"Name"];
         self.UserName = ISEmpty(dict[@"Name"]) ? @"" : [dict objectForKey:@"Name"];
         self.CreatedDate = ISEmpty(dict[@"CreatedDate"]) ? @"" : [dict objectForKey:@"CreatedDate"];
         self.LastModifiedDate = ISEmpty(dict[@"LastModifiedDate"]) ? @"" : [dict objectForKey:@"LastModifiedDate"];

+ 1 - 1
smartRhino/Project/VCModel/common/Controller/CommomSearchVC.m

@@ -74,7 +74,7 @@
     [self.listArray removeAllObjects];
     WS(weakSelf);
     SHOWLOADING
-    [[HttpManager sharedHttpManager] POSTUrl:Host(API_Collection_List) parameters:@{@"FolderId":@(0),@"Page":@(1),@"PerPage":@(99999999),@"VisitUserId":@(0),@"Keyword":searchKey} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_Collection_List) parameters:@{@"FolderId":@(0),@"Page":@(1),@"PerPage":@(99999999),@"VisitUserId":@(0),@"SearchKey":searchKey} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
          REMOVESHOW
         MyFavoriteModel *listModel = [[MyFavoriteModel alloc] initWithDictionary:responseObject error:nil];
         [weakSelf.listArray addObjectsFromArray:listModel.Items];

+ 235 - 0
smartRhino/Project/VCModel/common/Controller/CommonNoteVC.m

@@ -276,7 +276,26 @@
             cell.ClickUserBlock = ^{
                 [weakSelf showUserInfo:model.UserId];
             };
+            cell.bottomView.hidden = YES;
+            cell.bottomHeight.constant = 0.f;
             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
             return cell;
         }
             break;
@@ -332,7 +351,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 2:{
@@ -385,7 +423,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 3:{
@@ -440,7 +497,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 4:{
@@ -497,7 +573,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 5:{
@@ -557,7 +652,26 @@
                         [weakSelf showUserInfo:model.UserId];
                     };
                     cell.cell1IconImageView6.hidden = YES;
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 6:{
@@ -618,7 +732,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 7:{
@@ -683,7 +816,26 @@
                     };
                     cell.cell1IconImageView8.hidden = YES;
                     cell.cell1IconImageView9.hidden = YES;
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 case 8:{
@@ -749,7 +901,26 @@
                         [weakSelf showUserInfo:model.UserId];
                     };
                     cell.cell1IconImageView9.hidden = YES;
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }break;
                 default:{
@@ -816,7 +987,26 @@
                     cell.ClickUserBlock = ^{
                         [weakSelf showUserInfo:model.UserId];
                     };
+                    cell.bottomView.hidden = YES;
+                    cell.bottomHeight.constant = 0.f;
                     cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
                     return cell;
                 }
                     break;
@@ -875,7 +1065,26 @@
             cell.ClickUserBlock = ^{
                 [weakSelf showUserInfo:model.UserId];
             };
+            cell.bottomView.hidden = YES;
+            cell.bottomHeight.constant = 0.f;
             cell.selectionStyle = UITableViewCellSelectionStyleNone;
+            cell.FileBtn.hidden = NO;
+            cell.FileRightV.hidden = NO;
+            [cell.FileBtn setTitle:model.FolderName forState:UIControlStateNormal];
+            [cell.FileBtn setAction:^{
+                NoteBookVC * vc = [NoteBookVC initNoteBookVC];
+                if (model.FolderId == 0) {
+                    vc.listType = MyFavoriteListLevelTypeB;
+                    vc.myTitle = @"笔记本";
+                }else{
+                    vc.listType = MyFavoriteListLevelTypeC;
+                    vc.myTitle = model.FolderName;
+                }
+                vc.ParentId = model.ParentId;
+                vc.FolderId = model.FolderId;
+                vc.isSubVC = model.FolderId == 0 ? NO : YES;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
             return cell;
         }
             break;
@@ -962,6 +1171,32 @@
 
 - (void)reCreateTable
 {
+    WS(weakSelf);
+    [self.noteBookArray removeAllObjects];
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_Note_List) parameters:@{@"FolderId":@(0),@"Page":@(1),@"PerPage":@(99999999),@"VisitUserId":@(0),@"SearchKey":@"",@"Sort":@""} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        NSLog(@"笔记列表数据 %@",responseObject);
+        MyNoteBookModel *listModel = [[MyNoteBookModel alloc] initWithDictionary:responseObject error:nil];
+        weakSelf.totalPage = listModel.Total;
+        [weakSelf.noteBookArray addObjectsFromArray:listModel.Items];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView removeFromSuperview];
+            [weakSelf.view addSubview:self.tableView];
+            weakSelf.tableView.delegate = weakSelf;
+            weakSelf.tableView.dataSource = weakSelf;
+            [weakSelf.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+                make.left.right.mas_equalTo(weakSelf.view);
+                make.top.mas_equalTo(weakSelf.headerView.mas_bottom);
+                if (@available(iOS 11.0, *)) {
+                    make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom);
+                } else {
+                    make.bottom.equalTo(weakSelf.view.mas_bottom);
+                }
+            }];
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        
+    }];
 //    self.currentPage = 1;
 //    self.totalPage = 1;
 //    [self.noteBookArray removeAllObjects];

+ 2 - 2
smartRhino/Project/VCModel/common/View/CommonListCell.xib

@@ -69,7 +69,7 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="置顶" translatesAutoresizingMaskIntoConstraints="NO" id="QxE-nS-rLu">
-                        <rect key="frame" x="160" y="12" width="30" height="16"/>
+                        <rect key="frame" x="160" y="21" width="30" height="16"/>
                     </imageView>
                 </subviews>
                 <constraints>
@@ -78,7 +78,6 @@
                     <constraint firstItem="7id-tv-Nnd" firstAttribute="leading" secondItem="cCf-ee-0J6" secondAttribute="trailing" constant="15" id="9Xy-Dc-JrN"/>
                     <constraint firstItem="3d7-xH-uiA" firstAttribute="leading" secondItem="8Mf-6v-eUM" secondAttribute="leading" id="B83-7R-eRX"/>
                     <constraint firstItem="3d7-xH-uiA" firstAttribute="top" secondItem="wln-0c-dGh" secondAttribute="bottom" constant="8" id="DPq-4a-bXp"/>
-                    <constraint firstItem="QxE-nS-rLu" firstAttribute="top" secondItem="7id-tv-Nnd" secondAttribute="top" id="KkN-JK-GzX"/>
                     <constraint firstItem="QxE-nS-rLu" firstAttribute="leading" secondItem="7id-tv-Nnd" secondAttribute="trailing" constant="10" id="LDS-P6-o7G"/>
                     <constraint firstItem="wln-0c-dGh" firstAttribute="top" secondItem="84L-UB-7zZ" secondAttribute="bottom" constant="15" id="bNR-qP-d5g"/>
                     <constraint firstItem="cCf-ee-0J6" firstAttribute="leading" secondItem="8Mf-6v-eUM" secondAttribute="leading" constant="15" id="dVe-Nj-QOF"/>
@@ -86,6 +85,7 @@
                     <constraint firstItem="7id-tv-Nnd" firstAttribute="top" secondItem="8Mf-6v-eUM" secondAttribute="top" constant="12" id="nin-UW-Lrc"/>
                     <constraint firstAttribute="bottom" secondItem="3d7-xH-uiA" secondAttribute="bottom" id="r09-ZB-T6w"/>
                     <constraint firstItem="cCf-ee-0J6" firstAttribute="centerY" secondItem="7id-tv-Nnd" secondAttribute="centerY" constant="13.25" id="uaJ-Uh-xUy"/>
+                    <constraint firstItem="QxE-nS-rLu" firstAttribute="centerY" secondItem="7id-tv-Nnd" secondAttribute="centerY" id="waU-ZC-4bn"/>
                     <constraint firstItem="84L-UB-7zZ" firstAttribute="top" secondItem="7id-tv-Nnd" secondAttribute="bottom" constant="8" id="zJM-BC-iaP"/>
                 </constraints>
             </tableViewCellContentView>