HF_Q 4 年之前
父節點
當前提交
caa0e91d77
共有 100 個文件被更改,包括 3146 次插入562 次删除
  1. 73 9
      smartRhino.xcodeproj/project.pbxproj
  2. 二進制
      smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate
  3. 11 0
      smartRhino/AppConfig.h
  4. 二進制
      smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/ChatMsg_topic_create@2x.png
  5. 二進制
      smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/ChatMsg_topic_create@3x.png
  6. 22 0
      smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/Contents.json
  7. 22 0
      smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/Contents.json
  8. 二進制
      smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/topic_listIcon@2x.png
  9. 二進制
      smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/topic_listIcon@3x.png
  10. 3 1
      smartRhino/FwzAppConfig.h
  11. 10 9
      smartRhino/PhbAppConfig.h
  12. 24 0
      smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.h
  13. 59 0
      smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.m
  14. 116 0
      smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.xib
  15. 3 2
      smartRhino/Project/Base/SubClass/Controller/SearchBaseVC.h
  16. 3 4
      smartRhino/Project/Base/SubClass/Controller/SearchBaseVC.m
  17. 2 3
      smartRhino/Project/Base/SubClass/NavigationBar/TDNavigationBar.m
  18. 34 3
      smartRhino/Project/Base/SubClass/SearchBar/TDSearchBar.m
  19. 1 0
      smartRhino/Project/Base/SubClass/SearchView/InfoSearchView.h
  20. 5 1
      smartRhino/Project/Base/SubClass/SearchView/InfoSearchView.m
  21. 27 3
      smartRhino/Project/Tools/HttpManager/HttpManager.m
  22. 1 1
      smartRhino/Project/Tools/ZYCTool.h
  23. 11 0
      smartRhino/Project/Tools/ZYCTool.m
  24. 22 22
      smartRhino/Project/VCModel/ChatMessage/Chat/EMChatViewController.m
  25. 3 3
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsg/View/ChatInfoUserCollectionCell.xib
  26. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.h
  27. 28 11
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.m
  28. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/NoticeNewGroupVC.m
  29. 24 26
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/View/ChatMsgNoticeCell.m
  30. 2 1
      smartRhino/Project/VCModel/ChatMessage/Controller/ChatNewGroupVC.m
  31. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailAddUserSearch.m
  32. 21 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.h
  33. 216 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.m
  34. 2 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListSerachVC.h
  35. 3 6
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListSerachVC.m
  36. 4 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListVC.h
  37. 19 16
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListVC.m
  38. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.h
  39. 9 8
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.m
  40. 45 7
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListByZuVC.m
  41. 1 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListDetailVC.m
  42. 2 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListSearchVC.h
  43. 60 32
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListSearchVC.m
  44. 4 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListSortVC.m
  45. 35 3
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListVC.m
  46. 23 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailChatModel.h
  47. 13 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailChatModel.m
  48. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailSubModel.h
  49. 1 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListCell.m
  50. 4 4
      smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListDetailCell.xib
  51. 1 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.h
  52. 10 0
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.m
  53. 70 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.xib
  54. 3 3
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/NewRowUserCell.xib
  55. 8 10
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/TDGroupInfoDetailCell.xib
  56. 3 1
      smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/VC/ChatNewRowVC.m
  57. 29 6
      smartRhino/Project/VCModel/ChatMessage/Controller/TDInternalLeter/contoller/TDInterLeterHomeViewController.m
  58. 0 1
      smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/MenuListView.h
  59. 19 0
      smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/TopicShowListView.h
  60. 210 0
      smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/TopicShowListView.m
  61. 4 4
      smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.xib
  62. 2 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MySendInfo/View/SendInfoGroupCell.m
  63. 11 11
      smartRhino/Project/VCModel/Home/OtherHomeVC/MySendInfo/View/SendInfoGroupCell.xib
  64. 25 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/Model/TopicBookModel.h
  65. 13 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/Model/TopicBookModel.m
  66. 338 3
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/MyTDTopicExtent.storyboard
  67. 68 1
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicCreateVC.m
  68. 1 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.h
  69. 16 16
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicDetailVC.m
  70. 24 20
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupManageVC.m
  71. 2 1
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupUserVC.m
  72. 1 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicSelectExtentVC.h
  73. 7 5
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicSelectExtentVC.m
  74. 18 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookEditVC.h
  75. 244 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookEditVC.m
  76. 18 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookVC.h
  77. 215 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookVC.m
  78. 26 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.h
  79. 83 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.m
  80. 211 0
      smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.xib
  81. 6 5
      smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m
  82. 3 3
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookCardPayAlertCell.xib
  83. 8 6
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.xib
  84. 2 2
      smartRhino/Project/VCModel/Home/VC/BookStore/View/BookPeriodicaCell.xib
  85. 14 14
      smartRhino/Project/VCModel/Home/VC/BookStore/View/PayBookAlert.xib
  86. 3 2
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.m
  87. 1 0
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m
  88. 1 0
      smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/OtherFavoriteVC.m
  89. 2 0
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookSearchVC.h
  90. 24 24
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookSearchVC.m
  91. 2 1
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.h
  92. 16 5
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m
  93. 1 0
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/OtherNoteBookVC.h
  94. 3 0
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/OtherNoteBookVC.m
  95. 9 9
      smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.xib
  96. 31 26
      smartRhino/Project/VCModel/Source/Controller/SourceHomeVC.m
  97. 1 1
      smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.h
  98. 364 201
      smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.m
  99. 2 0
      smartRhino/Project/VCModel/WorkFlow/MyWorkCarVC.m
  100. 0 0
      smartRhino/Project/VCModel/WorkFlow/MyWorkWordVC.m

+ 73 - 9
smartRhino.xcodeproj/project.pbxproj

@@ -771,6 +771,9 @@
 		EB18109E2488DB5F009EDEF5 /* BookTextTopCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB18109C2488DB5F009EDEF5 /* BookTextTopCell.xib */; };
 		EB1BA21323FFD6E500202452 /* H6ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1BA21223FFD6E500202452 /* H6ViewController.m */; };
 		EB1D052A24A9EA6C00796A7E /* BookNavModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1D052924A9EA6C00796A7E /* BookNavModel.m */; };
+		EB1D158424C807A800C82FED /* TopicShowListView.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1D158324C807A800C82FED /* TopicShowListView.m */; };
+		EB1D158824C8329D00C82FED /* MoveMegAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1D158524C8329D00C82FED /* MoveMegAlert.m */; };
+		EB1D158924C8329D00C82FED /* MoveMegAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB1D158724C8329D00C82FED /* MoveMegAlert.xib */; };
 		EB1E0F73246CD5A300D4C3DE /* BookAllLookCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1E0F71246CD5A300D4C3DE /* BookAllLookCell.m */; };
 		EB1E0F74246CD5A300D4C3DE /* BookAllLookCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB1E0F72246CD5A300D4C3DE /* BookAllLookCell.xib */; };
 		EB1E0F77246CE49100D4C3DE /* BookContentNavVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1E0F76246CE49100D4C3DE /* BookContentNavVC.m */; };
@@ -847,7 +850,6 @@
 		EB4B652524C003050041A82C /* MailAddUserSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B652424C003050041A82C /* MailAddUserSearch.m */; };
 		EB4B652824C01DCE0041A82C /* MailVerifyVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B652724C01DCE0041A82C /* MailVerifyVC.m */; };
 		EB4B652B24C04DED0041A82C /* MailEditVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B652A24C04DED0041A82C /* MailEditVC.m */; };
-		EB4B652E24C196920041A82C /* MailGroupVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B652D24C196920041A82C /* MailGroupVC.m */; };
 		EB4B653124C19A060041A82C /* MailGroupListVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B653024C19A060041A82C /* MailGroupListVC.m */; };
 		EB4B653424C19E4B0041A82C /* MailGroupListSerachVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4B653324C19E4B0041A82C /* MailGroupListSerachVC.m */; };
 		EB4ECF12241101A000B60F05 /* CountDataVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB4ECF11241101A000B60F05 /* CountDataVC.m */; };
@@ -906,6 +908,11 @@
 		EB77B293239F9A4F0050A3C0 /* ChatNewRowVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB77B292239F9A4F0050A3C0 /* ChatNewRowVC.m */; };
 		EB77B297239FCAF90050A3C0 /* ChatNewRowCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB77B295239FCAF90050A3C0 /* ChatNewRowCell.m */; };
 		EB77B298239FCAF90050A3C0 /* ChatNewRowCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB77B296239FCAF90050A3C0 /* ChatNewRowCell.xib */; };
+		EB7955CB24C695CB00EE9A55 /* MyTDTopicBookVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7955CA24C695CB00EE9A55 /* MyTDTopicBookVC.m */; };
+		EB7955CF24C6B0BB00EE9A55 /* TopicBookCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7955CD24C6B0BB00EE9A55 /* TopicBookCell.m */; };
+		EB7955D024C6B0BB00EE9A55 /* TopicBookCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EB7955CE24C6B0BB00EE9A55 /* TopicBookCell.xib */; };
+		EB7955D324C6BB4E00EE9A55 /* TopicBookModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7955D224C6BB4E00EE9A55 /* TopicBookModel.m */; };
+		EB7955D624C6CA6800EE9A55 /* MyTDTopicBookEditVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7955D524C6CA6800EE9A55 /* MyTDTopicBookEditVC.m */; };
 		EB7DD22C2462620100C6048F /* SourceHomeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7DD22B2462620100C6048F /* SourceHomeVC.m */; };
 		EB7DD23524629A1B00C6048F /* Source.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EB7DD23424629A1B00C6048F /* Source.storyboard */; };
 		EB7DD2382462AB5B00C6048F /* GroupSquareVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7DD2372462AB5B00C6048F /* GroupSquareVC.m */; };
@@ -1254,6 +1261,9 @@
 		EBC7BF9423ED2E5200678A66 /* UILabelCopy.m in Sources */ = {isa = PBXBuildFile; fileRef = EBC7BF9323ED2E5200678A66 /* UILabelCopy.m */; };
 		EBCC209124B6EC7F001BDCDC /* GroupSquareSubModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCC209024B6EC7F001BDCDC /* GroupSquareSubModel.m */; };
 		EBCC209424B726EC001BDCDC /* UILabel+YBAttributeTextTapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCC209224B726EC001BDCDC /* UILabel+YBAttributeTextTapAction.m */; };
+		EBCCD86424C2D7CD000D6689 /* MailGroupVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCCD86224C2D7CC000D6689 /* MailGroupVC.m */; };
+		EBCCD86A24C2DA55000D6689 /* MailChatModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCCD86924C2DA55000D6689 /* MailChatModel.m */; };
+		EBCCD86D24C2DC57000D6689 /* MailChatVC.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCCD86C24C2DC57000D6689 /* MailChatVC.m */; };
 		EBCE636A24AEC7BB004C9B3B /* BookChanelModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCE636924AEC7BB004C9B3B /* BookChanelModel.m */; };
 		EBCE636D24AF2785004C9B3B /* BookChanelleftModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCE636C24AF2785004C9B3B /* BookChanelleftModel.m */; };
 		EBCE637024AF281A004C9B3B /* BookChanelRightModel.m in Sources */ = {isa = PBXBuildFile; fileRef = EBCE636F24AF281A004C9B3B /* BookChanelRightModel.m */; };
@@ -2728,6 +2738,11 @@
 		EB1BA21223FFD6E500202452 /* H6ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = H6ViewController.m; sourceTree = "<group>"; };
 		EB1D052824A9EA6C00796A7E /* BookNavModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookNavModel.h; sourceTree = "<group>"; };
 		EB1D052924A9EA6C00796A7E /* BookNavModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookNavModel.m; sourceTree = "<group>"; };
+		EB1D158224C807A800C82FED /* TopicShowListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopicShowListView.h; sourceTree = "<group>"; };
+		EB1D158324C807A800C82FED /* TopicShowListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopicShowListView.m; sourceTree = "<group>"; };
+		EB1D158524C8329D00C82FED /* MoveMegAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MoveMegAlert.m; sourceTree = "<group>"; };
+		EB1D158624C8329D00C82FED /* MoveMegAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoveMegAlert.h; sourceTree = "<group>"; };
+		EB1D158724C8329D00C82FED /* MoveMegAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MoveMegAlert.xib; sourceTree = "<group>"; };
 		EB1E0F70246CD5A300D4C3DE /* BookAllLookCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookAllLookCell.h; sourceTree = "<group>"; };
 		EB1E0F71246CD5A300D4C3DE /* BookAllLookCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookAllLookCell.m; sourceTree = "<group>"; };
 		EB1E0F72246CD5A300D4C3DE /* BookAllLookCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BookAllLookCell.xib; sourceTree = "<group>"; };
@@ -2863,8 +2878,6 @@
 		EB4B652724C01DCE0041A82C /* MailVerifyVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MailVerifyVC.m; sourceTree = "<group>"; };
 		EB4B652924C04DED0041A82C /* MailEditVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MailEditVC.h; sourceTree = "<group>"; };
 		EB4B652A24C04DED0041A82C /* MailEditVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MailEditVC.m; sourceTree = "<group>"; };
-		EB4B652C24C196920041A82C /* MailGroupVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MailGroupVC.h; sourceTree = "<group>"; };
-		EB4B652D24C196920041A82C /* MailGroupVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MailGroupVC.m; sourceTree = "<group>"; };
 		EB4B652F24C19A060041A82C /* MailGroupListVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MailGroupListVC.h; sourceTree = "<group>"; };
 		EB4B653024C19A060041A82C /* MailGroupListVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MailGroupListVC.m; sourceTree = "<group>"; };
 		EB4B653224C19E4B0041A82C /* MailGroupListSerachVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MailGroupListSerachVC.h; sourceTree = "<group>"; };
@@ -2965,6 +2978,15 @@
 		EB77B294239FCAF90050A3C0 /* ChatNewRowCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatNewRowCell.h; sourceTree = "<group>"; };
 		EB77B295239FCAF90050A3C0 /* ChatNewRowCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatNewRowCell.m; sourceTree = "<group>"; };
 		EB77B296239FCAF90050A3C0 /* ChatNewRowCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatNewRowCell.xib; sourceTree = "<group>"; };
+		EB7955C924C695CB00EE9A55 /* MyTDTopicBookVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyTDTopicBookVC.h; sourceTree = "<group>"; };
+		EB7955CA24C695CB00EE9A55 /* MyTDTopicBookVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyTDTopicBookVC.m; sourceTree = "<group>"; };
+		EB7955CC24C6B0BB00EE9A55 /* TopicBookCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TopicBookCell.h; sourceTree = "<group>"; };
+		EB7955CD24C6B0BB00EE9A55 /* TopicBookCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TopicBookCell.m; sourceTree = "<group>"; };
+		EB7955CE24C6B0BB00EE9A55 /* TopicBookCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TopicBookCell.xib; sourceTree = "<group>"; };
+		EB7955D124C6BB4E00EE9A55 /* TopicBookModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TopicBookModel.h; sourceTree = "<group>"; };
+		EB7955D224C6BB4E00EE9A55 /* TopicBookModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TopicBookModel.m; sourceTree = "<group>"; };
+		EB7955D424C6CA6800EE9A55 /* MyTDTopicBookEditVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyTDTopicBookEditVC.h; sourceTree = "<group>"; };
+		EB7955D524C6CA6800EE9A55 /* MyTDTopicBookEditVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyTDTopicBookEditVC.m; sourceTree = "<group>"; };
 		EB7DD22A2462620100C6048F /* SourceHomeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceHomeVC.h; sourceTree = "<group>"; };
 		EB7DD22B2462620100C6048F /* SourceHomeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SourceHomeVC.m; sourceTree = "<group>"; };
 		EB7DD23424629A1B00C6048F /* Source.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Source.storyboard; sourceTree = "<group>"; };
@@ -3530,6 +3552,12 @@
 		EBCC209024B6EC7F001BDCDC /* GroupSquareSubModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GroupSquareSubModel.m; sourceTree = "<group>"; };
 		EBCC209224B726EC001BDCDC /* UILabel+YBAttributeTextTapAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+YBAttributeTextTapAction.m"; sourceTree = "<group>"; };
 		EBCC209324B726EC001BDCDC /* UILabel+YBAttributeTextTapAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+YBAttributeTextTapAction.h"; sourceTree = "<group>"; };
+		EBCCD86224C2D7CC000D6689 /* MailGroupVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MailGroupVC.m; sourceTree = "<group>"; };
+		EBCCD86324C2D7CC000D6689 /* MailGroupVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MailGroupVC.h; sourceTree = "<group>"; };
+		EBCCD86824C2DA55000D6689 /* MailChatModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MailChatModel.h; sourceTree = "<group>"; };
+		EBCCD86924C2DA55000D6689 /* MailChatModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MailChatModel.m; sourceTree = "<group>"; };
+		EBCCD86B24C2DC57000D6689 /* MailChatVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MailChatVC.h; sourceTree = "<group>"; };
+		EBCCD86C24C2DC57000D6689 /* MailChatVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MailChatVC.m; sourceTree = "<group>"; };
 		EBCE636824AEC7BB004C9B3B /* BookChanelModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookChanelModel.h; sourceTree = "<group>"; };
 		EBCE636924AEC7BB004C9B3B /* BookChanelModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookChanelModel.m; sourceTree = "<group>"; };
 		EBCE636B24AF2785004C9B3B /* BookChanelleftModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookChanelleftModel.h; sourceTree = "<group>"; };
@@ -4346,6 +4374,8 @@
 				EB3B6C8124BD985800FA60F8 /* MailModel.m */,
 				EB3B6C8324BD993B00FA60F8 /* MailSubModel.h */,
 				EB3B6C8424BD993B00FA60F8 /* MailSubModel.m */,
+				EBCCD86824C2DA55000D6689 /* MailChatModel.h */,
+				EBCCD86924C2DA55000D6689 /* MailChatModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -4398,8 +4428,10 @@
 				EB3DCA4624551B0E000A0189 /* ShareListVC.m */,
 				EB3DCA4D24555299000A0189 /* ShareSysVC.h */,
 				EB3DCA4E24555299000A0189 /* ShareSysVC.m */,
-				EB4B652C24C196920041A82C /* MailGroupVC.h */,
-				EB4B652D24C196920041A82C /* MailGroupVC.m */,
+				EBCCD86324C2D7CC000D6689 /* MailGroupVC.h */,
+				EBCCD86224C2D7CC000D6689 /* MailGroupVC.m */,
+				EBCCD86B24C2DC57000D6689 /* MailChatVC.h */,
+				EBCCD86C24C2DC57000D6689 /* MailChatVC.m */,
 				EB4B652F24C19A060041A82C /* MailGroupListVC.h */,
 				EB4B653024C19A060041A82C /* MailGroupListVC.m */,
 				EB4B653224C19E4B0041A82C /* MailGroupListSerachVC.h */,
@@ -5509,6 +5541,7 @@
 		C76DB429236ACAF300369F5C /* VC */ = {
 			isa = PBXGroup;
 			children = (
+				EB7955C824C6959700EE9A55 /* TopicBook */,
 				C76DB42D236ACB4B00369F5C /* MyTDTopicViewController.h */,
 				C76DB42E236ACB4B00369F5C /* MyTDTopicViewController.m */,
 				EB0F64C323A9DA2B00AD56A0 /* MyTDTopicGroupManageVC.h */,
@@ -5552,6 +5585,8 @@
 				EBB83E5123B3668C00A8C4BC /* ChangeTopicModel.m */,
 				EB96B8A523BF73AF00EE09D7 /* TopicListFolderResultModel.h */,
 				EB96B8A623BF73AF00EE09D7 /* TopicListFolderResultModel.m */,
+				EB7955D124C6BB4E00EE9A55 /* TopicBookModel.h */,
+				EB7955D224C6BB4E00EE9A55 /* TopicBookModel.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -5594,6 +5629,9 @@
 				EBB83E4B23B35FD300A8C4BC /* ChangeTopicCell.h */,
 				EBB83E4C23B35FD300A8C4BC /* ChangeTopicCell.m */,
 				EBB83E4D23B35FD300A8C4BC /* ChangeTopicCell.xib */,
+				EB7955CC24C6B0BB00EE9A55 /* TopicBookCell.h */,
+				EB7955CD24C6B0BB00EE9A55 /* TopicBookCell.m */,
+				EB7955CE24C6B0BB00EE9A55 /* TopicBookCell.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -6656,6 +6694,9 @@
 		C7D6BB18235DA18A00770E7C /* Controller */ = {
 			isa = PBXGroup;
 			children = (
+				EB1D158624C8329D00C82FED /* MoveMegAlert.h */,
+				EB1D158524C8329D00C82FED /* MoveMegAlert.m */,
+				EB1D158724C8329D00C82FED /* MoveMegAlert.xib */,
 				EBE1E2C82494BE7500DB80BF /* HFAlert.h */,
 				EBE1E2C72494BE7500DB80BF /* HFAlert.m */,
 				EBE1E2C62494BE7500DB80BF /* HFAlert.xib */,
@@ -7620,15 +7661,17 @@
 		EB581CF123A0F5F200C451B0 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				EBF1A8C923B23A4000FA6F4B /* lock.caf */,
 				EB92E87D23B09AD4008E94CF /* GFCalendar */,
+				EBF1A8C923B23A4000FA6F4B /* lock.caf */,
 				EB3EAFD623A1D1FC00C38AB4 /* MenuListView.h */,
 				EB3EAFD723A1D1FC00C38AB4 /* MenuListView.m */,
+				EB1D158224C807A800C82FED /* TopicShowListView.h */,
+				EB1D158324C807A800C82FED /* TopicShowListView.m */,
+				EB92E89023B0CC77008E94CF /* WaitTimePicker.h */,
+				EB92E89123B0CC77008E94CF /* WaitTimePicker.m */,
 				EB0DBF0B23AE3D9700E977ED /* WaitWorkLevelView.h */,
 				EB0DBF0C23AE3D9700E977ED /* WaitWorkLevelView.m */,
 				EB0DBF0E23AE3DF800E977ED /* WaitWorkLevelView.xib */,
-				EB92E89023B0CC77008E94CF /* WaitTimePicker.h */,
-				EB92E89123B0CC77008E94CF /* WaitTimePicker.m */,
 				EB09BF2E23B1AA19001CCBC7 /* WaitWorkWarnAlert.h */,
 				EB09BF2F23B1AA19001CCBC7 /* WaitWorkWarnAlert.m */,
 			);
@@ -7648,6 +7691,17 @@
 			path = VC;
 			sourceTree = "<group>";
 		};
+		EB7955C824C6959700EE9A55 /* TopicBook */ = {
+			isa = PBXGroup;
+			children = (
+				EB7955C924C695CB00EE9A55 /* MyTDTopicBookVC.h */,
+				EB7955CA24C695CB00EE9A55 /* MyTDTopicBookVC.m */,
+				EB7955D424C6CA6800EE9A55 /* MyTDTopicBookEditVC.h */,
+				EB7955D524C6CA6800EE9A55 /* MyTDTopicBookEditVC.m */,
+			);
+			path = TopicBook;
+			sourceTree = "<group>";
+		};
 		EB7DD226246261E100C6048F /* Source */ = {
 			isa = PBXGroup;
 			children = (
@@ -9009,6 +9063,7 @@
 				EB95268B248A12F1003EFCCE /* 龙王传说.txt in Resources */,
 				C77229A023B6076D00007B21 /* HistoricalWorkFlowDetailsMessageCell.xib in Resources */,
 				EB8E2CE5239666A900CDFBDA /* close_white@3x.png in Resources */,
+				EB1D158924C8329D00C82FED /* MoveMegAlert.xib in Resources */,
 				C6227091236C09FC00E2E3BF /* mj_air@2x.png in Resources */,
 				EB2B5A73242B0CA40087E1E7 /* MyNewFindUserCell.xib in Resources */,
 				EB0A7396247B9F7600DB75CB /* BookBillCell.xib in Resources */,
@@ -9040,6 +9095,7 @@
 				EB7F3750247E63DC00E7FAD6 /* SearchDetailViewCell.xib in Resources */,
 				EB8E2CEB239666A900CDFBDA /* group_avatar@3x.png in Resources */,
 				C7D6BC97235DA1CE00770E7C /* PersonalCertificationViewController.xib in Resources */,
+				EB7955D024C6B0BB00EE9A55 /* TopicBookCell.xib in Resources */,
 				C72F3905236DADDC00933828 /* BlacklistCell.xib in Resources */,
 				EB8E2D92239666A900CDFBDA /* msg_send_audio@2x.png in Resources */,
 				C7D6BCA7235DA1CE00770E7C /* FeedbackViewController.xib in Resources */,
@@ -9278,6 +9334,7 @@
 				C625AAAA236FF23E0010E967 /* ChatMsgSearchReseltContentVC.m in Sources */,
 				C7974A43236C4CD5004D5470 /* MyWorkWordView.m in Sources */,
 				EB95266C248A0A2A003EFCCE /* BookReadVC.m in Sources */,
+				EB7955D624C6CA6800EE9A55 /* MyTDTopicBookEditVC.m in Sources */,
 				C7974A2A236C2617004D5470 /* MyApprovalPageVC.m in Sources */,
 				EBB6887823C9C0C300E24DD9 /* MMPlaceHolderTextView.m in Sources */,
 				C69A8E3123753AD60098FA26 /* ChatSearchFindbyFuJVC.m in Sources */,
@@ -9494,6 +9551,7 @@
 				324F17F4239E57010025CAE7 /* HomeTestViewController.m in Sources */,
 				EB8E2D00239666A900CDFBDA /* PSTCollectionViewController.m in Sources */,
 				C7C0673C236D7BC50049C50C /* InPutTextCell.m in Sources */,
+				EB7955D324C6BB4E00EE9A55 /* TopicBookModel.m in Sources */,
 				EB5E18D3247FAB2100EDB76E /* BookSubPeriodicaCell.m in Sources */,
 				C59D0C4C23825DE1007D0760 /* YYThreadSafeArray.m in Sources */,
 				C622157C237169E3006F5D7F /* NoticeNewGroupMenuCell.m in Sources */,
@@ -9612,6 +9670,7 @@
 				EB8E2D21239666A900CDFBDA /* EMTextViewController.m in Sources */,
 				C701EE4A23C2D97800082463 /* InPutGongWenImageCell.m in Sources */,
 				C7799EF423AB19EA00270988 /* WorkFlowOrderTopCell.m in Sources */,
+				EBCCD86424C2D7CD000D6689 /* MailGroupVC.m in Sources */,
 				EB8E2DA5239666A900CDFBDA /* EMChatViewController.m in Sources */,
 				C59D0C1A23825DE1007D0760 /* YYLabel.m in Sources */,
 				C7799F0823AB5C5A00270988 /* WorkFlowOrderInputCell.m in Sources */,
@@ -9662,6 +9721,7 @@
 				C6F2E19A236C334A009E6903 /* UIImage+Crop.m in Sources */,
 				EBA0FA55249CC22C0022AFA3 /* SSScrollViewController.m in Sources */,
 				C751012823837FB100E4429B /* MyZanCell.m in Sources */,
+				EB1D158424C807A800C82FED /* TopicShowListView.m in Sources */,
 				EB952693248A560E003EFCCE /* BookReadSearchAlert.m in Sources */,
 				C7974A40236C4CC0004D5470 /* MyWorkWordVC.m in Sources */,
 				C7D6BBB2235DA18A00770E7C /* InfoSearchView.m in Sources */,
@@ -9676,6 +9736,7 @@
 				C77E218A23AE3776009A230C /* WorkFlowOrderSelectedTimeCell.m in Sources */,
 				EB9D65A5248E358900636BAC /* BookReadFontNameAlert.m in Sources */,
 				EBF2D55023C2E85600EC35C4 /* MHCommentFrame.m in Sources */,
+				EB7955CB24C695CB00EE9A55 /* MyTDTopicBookVC.m in Sources */,
 				C788F18F236957E70070A6B3 /* FavoriteTextModel.m in Sources */,
 				EBD537AD24908CD3000EDF2B /* HomeTeacherCell.m in Sources */,
 				C7D6BCAD235DA1CE00770E7C /* BlacklistModel.m in Sources */,
@@ -9865,6 +9926,7 @@
 				C62270A9236C09FC00E2E3BF /* UIView+GHBlank.m in Sources */,
 				C752D2192375337E00913F97 /* AgreeApprovalViewControllerSub.m in Sources */,
 				C7DBAE4F237A87E100D427DD /* FwzBaseView.m in Sources */,
+				EBCCD86A24C2DA55000D6689 /* MailChatModel.m in Sources */,
 				C59D0C0D23825DE1007D0760 /* YYWebImageOperation.m in Sources */,
 				C72F3901236DADDC00933828 /* SettingVC.m in Sources */,
 				EBB2402D2480A79700EECD15 /* BookPeriodicaListVC.m in Sources */,
@@ -9916,7 +9978,6 @@
 				EBB6887123C9C0C300E24DD9 /* MMRichTitleModel.m in Sources */,
 				EB44408724A1CA5E00B2E212 /* HomeSubModel.m in Sources */,
 				EBF2D54B23C2E76600EC35C4 /* MHTopicCell.m in Sources */,
-				EB4B652E24C196920041A82C /* MailGroupVC.m in Sources */,
 				C6F2E1B1236D1214009E6903 /* ToolFoundation.m in Sources */,
 				EB952681248A0BA6003EFCCE /* DCPageBottomView.m in Sources */,
 				EBFA5EEE2491FCC400AD38B0 /* ReplayMeSearchVC.m in Sources */,
@@ -10031,6 +10092,7 @@
 				EBFA3765240391A900A584FC /* WebDetailCell.m in Sources */,
 				C7D6BB3E235DA18A00770E7C /* HomeSearchController.m in Sources */,
 				EB8E2DB623989B1900CDFBDA /* chatInfoGroupChatModel.m in Sources */,
+				EB7955CF24C6B0BB00EE9A55 /* TopicBookCell.m in Sources */,
 				C795C62F23744CD00042300F /* GoDisscussView.m in Sources */,
 				C7D6BC7E235DA1CE00770E7C /* MyOrderViewController.m in Sources */,
 				C59D0C1623825DE1007D0760 /* YYTextLine.m in Sources */,
@@ -10069,6 +10131,7 @@
 				EB820AD523BC48CF00B96C6C /* ChatMoveModel.m in Sources */,
 				EB8E2D05239666A900CDFBDA /* NSIndexPath+PSTCollectionViewAdditions.m in Sources */,
 				EBCC209424B726EC001BDCDC /* UILabel+YBAttributeTextTapAction.m in Sources */,
+				EB1D158824C8329D00C82FED /* MoveMegAlert.m in Sources */,
 				EBDF42A324ADB91D00D5F0E4 /* BookSelectSubModel.m in Sources */,
 				C7E17CC0236D7F7800C53DB8 /* InPutGongWenCell.m in Sources */,
 				EB440FCF23A33982006BCB95 /* TDGroupInfoModel.m in Sources */,
@@ -10104,6 +10167,7 @@
 				C7037FF7236FC847008EA3E4 /* SendInfoGroupCell.m in Sources */,
 				C7D6BCBA235DA1CE00770E7C /* LearninglistTableViewCell.m in Sources */,
 				C622156F2371501E006F5D7F /* ChatNewGroupVC.m in Sources */,
+				EBCCD86D24C2DC57000D6689 /* MailChatVC.m in Sources */,
 				EB5E18CC247F969D00EDB76E /* BookPeriodicaDetailVC.m in Sources */,
 				EB3EAFD823A1D1FC00C38AB4 /* MenuListView.m in Sources */,
 				C7D6BBB4235DA18A00770E7C /* BaseModel.m in Sources */,

二進制
smartRhino.xcworkspace/xcuserdata/niuzhen.xcuserdatad/UserInterfaceState.xcuserstate


+ 11 - 0
smartRhino/AppConfig.h

@@ -247,6 +247,11 @@ return;\
 #define  AddressBookGroup_Search_Post       @"/api/app/user/search"
 /// 查找好友
 #define  API_APP_User_Find_friends          @"/api/app/user/find-friends/"
+
+#define  API_APP_User_Group_Chat_Search     @"/api/app/user/group-chat/"
+
+#define  API_APP_User_Chat_List             @"/api/app/group-chat/list"
+
 /// 添加好友
 #define  API_APP_Admin_Verify_Add_Friend    @"/api/app/admin-verify/add-friend"
 
@@ -400,6 +405,10 @@ return;\
 #pragma mark - 话题
 ///话题分组列表
 #define APP_Topic_Group   @"/api/app/topic/group"
+
+///话题分组列表
+#define APP_Topic_List_Group   @"/api/app/topic/list-group"
+
 ///添加话题分组
 #define APP_Topic_Add_Group   @"/api/app/topic/add-group"
 ///根据分组ID查询用户
@@ -440,6 +449,7 @@ return;\
 ///分组排序
 #define API_APP_Topic_Sort   @"/api/app/topic/sort"
 
+#define API_APP_Middle_Search_Note_Folder   @"/api/app/middle/search-note-folder"
 #pragma mark - 待办事项
 ///修改标签
 #define APP_Wait_Handle_Add_Updtae_Label  @"/api/app/wait-handle/add-update-label"
@@ -556,6 +566,7 @@ return;\
 #define COLLECTSUCCESS        @"COLLECTSUCCESS"
 #define MESSAGERETURNSUCCESS  @"MESSAGERETURNSUCCESS"
 #define SHARERETURNSUCCESS    @"SHARERETURNSUCCESS"
+#define MAILSELECT            @"MAILSELECT"
 
 #define kGXScreenHeigh        ([UIScreen mainScreen].bounds.size.height)
 #define kGXScreenWidth        ([UIScreen mainScreen].bounds.size.width)

二進制
smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/ChatMsg_topic_create@2x.png


二進制
smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/ChatMsg_topic_create@3x.png


+ 22 - 0
smartRhino/Assets.xcassets/首页/ChatMsg_topic_create.imageset/Contents.json

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

+ 22 - 0
smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/Contents.json

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

二進制
smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/topic_listIcon@2x.png


二進制
smartRhino/Assets.xcassets/首页/topic_listIcon.imageset/topic_listIcon@3x.png


+ 3 - 1
smartRhino/FwzAppConfig.h

@@ -105,7 +105,7 @@ typedef enum PageTypeFromShou {
 }PageTypeFromShou;
 
 typedef enum MailListType {
-    /// 0 用户 1 单位通讯录 2系统通讯录 3 自建通讯录
+    /// 0 用户 1 单位通讯录 2系统通讯录 3 自建通讯录 4其他
     MailListUserType = 0,
 
     MailListDesType = 1,
@@ -113,6 +113,8 @@ typedef enum MailListType {
     MailListSysType = 2,
 
     MailListCusType = 3,
+    
+    MailListOtherType = 4,
 }MailListType;
 #pragma mark - 我的
 

+ 10 - 9
smartRhino/PhbAppConfig.h

@@ -122,6 +122,7 @@
 
 #define API_APP_Middle_Search_Note_Folder @"/api/app/middle/search-note-folder"
 
+#define API_APP_Middle_Lately_Folder      @"/api/app/middle/lately-folder"
 
 #define API_ChatHome_Seaerch @"/api/app/elastics/search"
 
@@ -142,17 +143,17 @@
 
 #define API_NoteBook_CommentList  @"/api/app/note/comment-list"
 #define API_NoteBook_Comment  @"/api/app/note/add-comment"
-#define API_CreateNoteBook @"/api/app/note/add"
-#define API_NoteBook_Modify  @"/api/app/note/update"
-#define API_CreateCollect @"/api/app/collection/add"
+#define API_CreateNoteBook    @"/api/app/note/add"
+#define API_NoteBook_Modify   @"/api/app/note/update"
+#define API_CreateCollect     @"/api/app/collection/add"
 
 
 
 
-#define API_InterLetter @"/api/app/missive/search"
+#define API_InterLetter       @"/api/app/missive/search"
 #define API_InterLetterDetail @"/api/app/missive/get/"
 #define API_InterLetterModify @"/api/app/missive/add"
-#define API_InterLetterZan @"/api/app/missive/analyze"
+#define API_InterLetterZan    @"/api/app/missive/analyze"
 
 
 ///查询未处理条数
@@ -160,17 +161,17 @@
 ///修改
 #define API_Verti_Modify @"/api/app/admin-verify/update"
 ///清空
-#define API_Verti_Clear @"/api/app/admin-verify/delete"
+#define API_Verti_Clear  @"/api/app/admin-verify/delete"
 ///根据用户查询
-#define API_Verti_Check @"/api/app/admin-verify/search"
+#define API_Verti_Check  @"/api/app/admin-verify/search"
 
 
 #define API_DeleteCustomSection @"/api/app/address-book-group-user/delete"
 #define API_APP_User_Friends    @"/api/app/user/friends"
 
 
-#define API_Notice_Detail @"/api/app/notice/app-detail/"
-#define API_Notice_Praise @"/api/app/notice/praise-page"
+#define API_Notice_Detail       @"/api/app/notice/app-detail/"
+#define API_Notice_Praise       @"/api/app/notice/praise-page"
 #define API_Notice_Comment_List @"/api/app/notice-comment/list"
 
 #endif /* PhbAppConfig_h */

+ 24 - 0
smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.h

@@ -0,0 +1,24 @@
+//
+//  MoveMegAlert.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/30.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "BSAlertView.h"
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MoveMegAlert : BSAlertView
+@property (weak, nonatomic) IBOutlet UIView *AlertView;
+@property (weak, nonatomic) IBOutlet UIButton *disBtn;
+@property (weak, nonatomic) IBOutlet UIButton *doneBtn;
+@property (weak, nonatomic) IBOutlet UIButton *cancelBtn;
+@property (copy, nonatomic) void(^DoneBlock)(void);
++ (instancetype)share;
+- (void)show;
+- (void)dismiss;
+@end
+
+NS_ASSUME_NONNULL_END

+ 59 - 0
smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.m

@@ -0,0 +1,59 @@
+//
+//  MoveMegAlert.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/4/30.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "MoveMegAlert.h"
+
+static UINib *ViewNib = nil;
+@interface MoveMegAlert()
+@end
+static MoveMegAlert *alert = nil;
+static dispatch_once_t onceToken;
+@implementation MoveMegAlert
++ (instancetype)share
+{
+    dispatch_once(&onceToken, ^{
+        if (ViewNib == nil) {
+            ViewNib = [UINib nibWithNibName:@"MoveMegAlert" bundle:nil];
+        }
+        alert = [[ViewNib instantiateWithOwner:nil options:nil] lastObject];
+        [alert setFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
+        alert.backgroundColor = [UIColor clearColor];
+//        [alert.disBtn addTarget:alert action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];
+        [alert.cancelBtn addTarget:alert action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];
+        [alert.doneBtn addTarget:alert action:@selector(doneAction) forControlEvents:UIControlEventTouchUpInside];
+    });
+    return alert;
+}
+- (void)doneAction
+{
+    if (self.DoneBlock) {
+        self.DoneBlock();
+    }
+    [self dismiss];
+}
+- (void)show
+{
+    UIWindow *window = [[UIApplication sharedApplication].windows lastObject];
+    [window addSubview:self];
+    [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
+
+    } completion:^(BOOL finished) {
+        
+    }];
+}
+- (void)dismiss
+{
+    WS(weakSelf);
+    [UIView animateWithDuration:0.1 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
+
+    } completion:^(BOOL finished) {
+        [weakSelf removeFromSuperview];
+    }];
+}
+
+@end

+ 116 - 0
smartRhino/Project/Base/SubClass/Controller/MoveMegAlert.xib

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MoveMegAlert">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Hwm-BA-YR7">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                </button>
+                <view alpha="0.5" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ch2-ew-hQX">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                    <color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HQi-LA-dF0">
+                    <rect key="frame" x="72" y="348" width="270" height="200"/>
+                    <subviews>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UC1-Ef-a9P">
+                            <rect key="frame" x="0.0" y="157" width="135" height="43"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                            <state key="normal" title="取消">
+                                <color key="titleColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            </state>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0it-3x-eje">
+                            <rect key="frame" x="135.5" y="157" width="134.5" height="43"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                            <state key="normal" title="继续移动">
+                                <color key="titleColor" red="0.058823529411764705" green="0.49803921568627452" blue="0.85098039215686272" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            </state>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="选中的单条话题不能移动到 根目录,继续移动将只移动 选中的文件夹,是否继续?" textAlignment="justified" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="utz-FQ-k4P">
+                            <rect key="frame" x="30" y="35" width="210" height="61"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                            <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pTG-5j-JHM">
+                            <rect key="frame" x="0.0" y="156.5" width="270" height="0.5"/>
+                            <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="0.5" id="6fg-Kc-0hD"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b18-iX-CaW">
+                            <rect key="frame" x="135" y="157" width="0.5" height="43"/>
+                            <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="0.5" id="B5e-V8-4Je"/>
+                            </constraints>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="b18-iX-CaW" secondAttribute="bottom" id="0OE-7V-4C1"/>
+                        <constraint firstItem="0it-3x-eje" firstAttribute="leading" secondItem="b18-iX-CaW" secondAttribute="trailing" id="2tM-lU-LMX"/>
+                        <constraint firstAttribute="height" constant="200" id="CT0-oi-VlU"/>
+                        <constraint firstItem="0it-3x-eje" firstAttribute="top" secondItem="pTG-5j-JHM" secondAttribute="bottom" id="Dub-Jb-ZEj"/>
+                        <constraint firstAttribute="trailing" secondItem="pTG-5j-JHM" secondAttribute="trailing" id="FfS-Nr-wto"/>
+                        <constraint firstAttribute="width" constant="270" id="HGv-QA-ahO"/>
+                        <constraint firstItem="UC1-Ef-a9P" firstAttribute="top" secondItem="pTG-5j-JHM" secondAttribute="bottom" id="JT0-de-X9S"/>
+                        <constraint firstAttribute="bottom" secondItem="0it-3x-eje" secondAttribute="bottom" id="Oi1-Pg-FlR"/>
+                        <constraint firstAttribute="bottom" secondItem="UC1-Ef-a9P" secondAttribute="bottom" id="Qmy-h9-UnZ"/>
+                        <constraint firstAttribute="bottom" secondItem="pTG-5j-JHM" secondAttribute="bottom" constant="43" id="VAZ-gf-Dbb"/>
+                        <constraint firstAttribute="trailing" secondItem="0it-3x-eje" secondAttribute="trailing" id="bQ8-KR-LvJ"/>
+                        <constraint firstItem="b18-iX-CaW" firstAttribute="centerX" secondItem="HQi-LA-dF0" secondAttribute="centerX" id="c3v-Ee-jzX"/>
+                        <constraint firstItem="utz-FQ-k4P" firstAttribute="top" secondItem="HQi-LA-dF0" secondAttribute="top" constant="35" id="edo-3N-m9W"/>
+                        <constraint firstItem="b18-iX-CaW" firstAttribute="top" secondItem="pTG-5j-JHM" secondAttribute="bottom" id="eym-9n-Jbc"/>
+                        <constraint firstItem="UC1-Ef-a9P" firstAttribute="leading" secondItem="HQi-LA-dF0" secondAttribute="leading" id="g9Z-Aq-Gqb"/>
+                        <constraint firstItem="utz-FQ-k4P" firstAttribute="leading" secondItem="HQi-LA-dF0" secondAttribute="leading" constant="30" id="lVp-we-Tlr"/>
+                        <constraint firstAttribute="trailing" secondItem="utz-FQ-k4P" secondAttribute="trailing" constant="30" id="uJZ-uq-PtV"/>
+                        <constraint firstItem="pTG-5j-JHM" firstAttribute="leading" secondItem="HQi-LA-dF0" secondAttribute="leading" id="wvf-mN-fbc"/>
+                        <constraint firstItem="b18-iX-CaW" firstAttribute="leading" secondItem="UC1-Ef-a9P" secondAttribute="trailing" id="zPr-GD-E9d"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                            <integer key="value" value="12"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="Hwm-BA-YR7" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="5sV-d7-Ycq"/>
+                <constraint firstItem="ch2-ew-hQX" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="8Qv-uZ-mua"/>
+                <constraint firstItem="ch2-ew-hQX" firstAttribute="leading" secondItem="I5d-tg-Ihi" secondAttribute="leading" id="BjS-Wv-OYw"/>
+                <constraint firstItem="HQi-LA-dF0" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="FaH-aI-dP7"/>
+                <constraint firstAttribute="bottom" secondItem="Hwm-BA-YR7" secondAttribute="bottom" id="Kn0-Mu-jRT"/>
+                <constraint firstAttribute="trailing" secondItem="Hwm-BA-YR7" secondAttribute="trailing" id="QJV-AT-5Sh"/>
+                <constraint firstAttribute="bottom" secondItem="ch2-ew-hQX" secondAttribute="bottom" id="YJ5-vO-mbq"/>
+                <constraint firstItem="I5d-tg-Ihi" firstAttribute="trailing" secondItem="ch2-ew-hQX" secondAttribute="trailing" id="afl-pd-ifV"/>
+                <constraint firstItem="HQi-LA-dF0" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="mk7-ui-g41"/>
+                <constraint firstItem="Hwm-BA-YR7" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="xEH-BX-Ebr"/>
+            </constraints>
+            <viewLayoutGuide key="safeArea" id="I5d-tg-Ihi"/>
+            <connections>
+                <outlet property="AlertView" destination="HQi-LA-dF0" id="dRy-4X-KRc"/>
+                <outlet property="cancelBtn" destination="UC1-Ef-a9P" id="90s-qf-F0E"/>
+                <outlet property="disBtn" destination="Hwm-BA-YR7" id="3cR-aX-KrC"/>
+                <outlet property="doneBtn" destination="0it-3x-eje" id="yPd-ds-enk"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="152.67857142857142"/>
+        </view>
+    </objects>
+</document>

+ 3 - 2
smartRhino/Project/Base/SubClass/Controller/SearchBaseVC.h

@@ -6,7 +6,8 @@
 //  Copyright © 2020 tederen. All rights reserved.
 //
 
-//#import "BaseViewController.h"
+#import "SearchBaseVC.h"
+#import "InfoSearchView.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -22,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (copy, nonatomic) void(^cancelBlock)(void);
 @property (copy, nonatomic) void(^searchBlock)(NSString * text);
 @property (strong, nonatomic) UILabel  * lineL;
-
+@property (nonatomic, strong) InfoSearchView *topNavSearch;
 @property (nonatomic, assign) HistorySearchType historySearchType;
 @end
 

+ 3 - 4
smartRhino/Project/Base/SubClass/Controller/SearchBaseVC.m

@@ -9,7 +9,6 @@
 #import "SearchBaseVC.h"
 #import "SearchCell.h"
 #import "DrawerView.h"
-#import "InfoSearchView.h"
 #import "TabBarController.h"
 
 @interface SearchBaseVC ()<UISearchBarDelegate,UICollectionViewDelegate,UICollectionViewDataSource,InfoSearchViewDelegate>
@@ -20,7 +19,7 @@
 //@property (strong, nonatomic) UIView  * navBarV;
 @property (nonatomic, strong) NSMutableArray * dataDistoryArray;
 @property (strong,nonatomic) DrawerView      *drawerView;
-@property (nonatomic, strong) InfoSearchView *topNavSearch;
+
 
 
 @end
@@ -394,8 +393,7 @@
     label.text = name;
     label.font = Kfont(13);
     CGFloat W = [label sizeThatFits:CGSizeMake(MAXFLOAT, 25)].width;
-    return CGSizeMake(W + 22, 25);
-
+    return CGSizeMake(name.length > 0 ? (W + 22) : 0, 25);
 }
 
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
@@ -453,6 +451,7 @@
         [closeBtn setAction:^{
             [weakSelf.dataDistoryArray removeAllObjects];
             [_TDFileStorage saveHistorySearchBySearchType:self.historySearchType WithArr:@[]];
+            [weakSelf.dataDistoryArray addObject:@""];
             [weakSelf.collectionView reloadData];
         }];
         headerView.backgroundColor = [UIColor whiteColor];

+ 2 - 3
smartRhino/Project/Base/SubClass/NavigationBar/TDNavigationBar.m

@@ -40,7 +40,7 @@
         [_backButton2 mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(self.backButton.mas_right);
                make.centerY.equalTo(self.backButton);
-                make.width.mas_equalTo(19);
+               make.size.mas_equalTo(CGSizeMake(50, 44));
            }];
         [_rightButton mas_makeConstraints:^(MASConstraintMaker *make) {
             make.right.mas_equalTo(self.mas_right).offset(-15);
@@ -48,8 +48,7 @@
         }];
         [_titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
             make.center.equalTo(self);
-            make.left.mas_equalTo(self.backButton2.mas_right).offset(5);
-            make.right.mas_equalTo(self.rightButton.mas_left).offset(-5);
+            make.width.mas_lessThanOrEqualTo(150);
         }];
         _backButton2.contentHorizontalAlignment =UIControlContentHorizontalAlignmentLeft;
          

+ 34 - 3
smartRhino/Project/Base/SubClass/SearchBar/TDSearchBar.m

@@ -31,6 +31,10 @@
                 //设置默认文字颜色
 
                 textField.font = [UIFont fontWithName:@"PingFang-SC-Regular" size:12];
+                NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:self.placeholder];
+                [placeholder addAttribute:NSForegroundColorAttributeName value:UIColorHex(0xA9A9A9) range:NSMakeRange(0, self.placeholder.length)];
+                [placeholder addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(0, self.placeholder.length)];
+                textField.attributedPlaceholder = placeholder;
             }
         }
       UIImage* clearImg = [UtilsTools imageWithColor:[UIColor clearColor] andHeight:20.f];
@@ -41,10 +45,33 @@
 - (instancetype)init
 {
     self = [super init];
+//    if (self) {
+//        self.backgroundImage = [UIImage new];
+//        self.placeholder = @" 搜索";
+//        self.layer.cornerRadius = 5.f;
+//        self.layer.borderWidth = 0.5;
+//        self.layer.borderColor = [UIColor hexStringToColor:@"d8d8d8"].CGColor;
+//        UIImage *searchIcon = [UIImage imageNamed:@"sousuo"];
+//        [self setImage:searchIcon forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
+//        for (UIView *view in self.subviews.lastObject.subviews.lastObject.subviews) {
+//            if([view isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
+//                UITextField *textField = (UITextField *)view;
+//                //设置输入框的背景颜色
+//                textField.clipsToBounds = YES;
+//                //设置输入字体颜色
+//                textField.textColor = kColorFromRGB(0x333333);
+//                //设置默认文字颜色
+//
+//                textField.font = [UIFont fontWithName:@"PingFang-SC-Regular" size:12];
+//            }
+//        }
+//      UIImage* clearImg = [UtilsTools imageWithColor:[UIColor clearColor] andHeight:20.f];
+//      [self setSearchFieldBackgroundImage:clearImg forState:UIControlStateNormal];
+//    }
     if (self) {
         self.backgroundImage = [UIImage new];
         self.placeholder = @" 搜索";
-        self.layer.cornerRadius = 5.f;
+        self.layer.cornerRadius = 18.f;
         self.layer.borderWidth = 0.5;
         self.layer.borderColor = [UIColor hexStringToColor:@"d8d8d8"].CGColor;
         UIImage *searchIcon = [UIImage imageNamed:@"sousuo"];
@@ -55,10 +82,14 @@
                 //设置输入框的背景颜色
                 textField.clipsToBounds = YES;
                 //设置输入字体颜色
-                textField.textColor = kColorFromRGB(0x333333);
+                textField.textColor = kColorFromRGB(0x999999);
                 //设置默认文字颜色
 
-                textField.font = [UIFont fontWithName:@"PingFang-SC-Regular" size:14];
+                textField.font = [UIFont fontWithName:@"PingFang-SC-Regular" size:12];
+                NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:self.placeholder];
+                [placeholder addAttribute:NSForegroundColorAttributeName value:UIColorHex(0xA9A9A9) range:NSMakeRange(0, self.placeholder.length)];
+                [placeholder addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(0, self.placeholder.length)];
+                textField.attributedPlaceholder = placeholder;
             }
         }
       UIImage* clearImg = [UtilsTools imageWithColor:[UIColor clearColor] andHeight:20.f];

+ 1 - 0
smartRhino/Project/Base/SubClass/SearchView/InfoSearchView.h

@@ -40,6 +40,7 @@ typedef void(^TouchBlock)(void);
 
 - (void)showLineView;
 
+- (void)setBarPlaceholder:(NSString *)searchPlaceholder;
 @end
 
 NS_ASSUME_NONNULL_END

+ 5 - 1
smartRhino/Project/Base/SubClass/SearchView/InfoSearchView.m

@@ -87,7 +87,11 @@
     self.searchBar.placeholder = @"";
     return YES;
 }
-
+- (void)setBarPlaceholder:(NSString *)searchPlaceholder
+{
+    self.searchBar.placeholder = searchPlaceholder;
+    self.searchPlaceholder = searchPlaceholder;
+}
 - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
     if (self.searchPlaceholder.length > 0) {
         self.searchBar.placeholder = self.searchPlaceholder;

+ 27 - 3
smartRhino/Project/Tools/HttpManager/HttpManager.m

@@ -108,6 +108,9 @@ TDShareInstance_implementation(HttpManager)
     if (url.length == 0 || [url isEqualToString:@""]) {
            failure(error);
     }
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     self.manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];
 
     //开始请求内容
@@ -155,6 +158,9 @@ TDShareInstance_implementation(HttpManager)
     if (url.length == 0 || [url isEqualToString:@""]) {
            failure(error);
     }
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     //开始请求内容
     [self.manager GET:url parameters:parameters headers:@{@"Authorization":[UserManager token]} progress:^(NSProgress * _Nonnull downloadProgress) {
            //如果需要填充进度内容,可以直接进行内容添加
@@ -239,6 +245,9 @@ TDShareInstance_implementation(HttpManager)
         
      if (url.length == 0 || [url isEqualToString:@""]) {  failure(error);   }
         
+     if (![url hasPrefix:@"http"]) {
+         url = [BaseUrl stringByAppendingString:url];
+     }
         
      [self.manager POST:url parameters:parameters headers:@{@"Authorization":[UserManager token]} progress:^(NSProgress * _Nonnull downloadProgress) {
             
@@ -286,7 +295,9 @@ TDShareInstance_implementation(HttpManager)
     if (pictureKey.length == 0 || [pictureKey isEqualToString:@""]) {
         failure(error);
     }
-    
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     
     [self.manager POST:url parameters:paramters headers:@{@"Authorization":[UserManager token]} constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
         //对上传完文件的配置
@@ -346,7 +357,9 @@ TDShareInstance_implementation(HttpManager)
             failure(error);
         }
         
-        
+        if (![url hasPrefix:@"http"]) {
+            url = [BaseUrl stringByAppendingString:url];
+        }
         [self.manager POST:url parameters:paramters headers:@{@"Authorization":[UserManager token]} constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
             //对上传完文件的配置
             //获取当前时间(int 时间戳转换)
@@ -396,6 +409,9 @@ TDShareInstance_implementation(HttpManager)
     if (fileKey.length == 0 || [fileKey isEqualToString:@""]) {
         failure(error);
     }
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     self.manager.responseSerializer = [AFJSONResponseSerializer serializer];
     [self.manager POST:url parameters:paramters headers:@{@"Authorization":[UserManager token]} constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
         //fileData : 图片资源  name : 预定key   fileName  : 文件名  mimeType    : 资源类型(根据后台进行对应配置)
@@ -487,6 +503,9 @@ TDShareInstance_implementation(HttpManager)
             success:(void (^) (id responseObject))successful
             failure:(void (^) (NSError *error))failure
 {
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     //下载地址
     NSURL *downloadURL = [NSURL URLWithString:url];
     //设置请求
@@ -542,6 +561,9 @@ failure:(void (^) (NSError *error))failure{
     if (url.length == 0 || [url isEqualToString:@""]) {
           failure(error);
       }
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     NSLog(@"url:%@",url);
     [self.manager PUT:url parameters:parameters headers:@{@"Authorization":[UserManager token]} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
         [self reLoginApp:task];
@@ -570,7 +592,9 @@ failure:(void (^) (NSError *error))failure{
     }
    
     NSError *error = nil;
-       
+    if (![url hasPrefix:@"http"]) {
+        url = [BaseUrl stringByAppendingString:url];
+    }
     if (url.length == 0 || [url isEqualToString:@""]) {  failure(error);   }
     
     [self.manager PUT:url parameters:parameters headers:@{@"Authorization":[UserManager token]} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

+ 1 - 1
smartRhino/Project/Tools/ZYCTool.h

@@ -133,7 +133,7 @@ typedef void (^returnNotarizeWithIdx)(NSInteger idx);
 + (NSMutableAttributedString *)checkOfString:(NSString *)infoStr KeyString:(NSString *)keyString;
 
 + (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text;
-
++ (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text withColor:(UIColor *)color;
 + (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text bgtextColor:(UIColor *)bgColor foreTextColor:(UIColor *)foreColor font:(UIFont *)font;
 
 + (NSString *)getFileNameImage:(NSString *)fileName;

+ 11 - 0
smartRhino/Project/Tools/ZYCTool.m

@@ -414,6 +414,17 @@
                        range:[infoStr rangeOfString:text]];
     return attrString;
 }
++ (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text withColor:(UIColor *)color
+{
+    if (infoStr.length == 0) {
+        return nil;
+    }
+    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:infoStr];
+    [attrString addAttribute:(NSString *)NSForegroundColorAttributeName
+                       value:color
+                       range:[infoStr rangeOfString:text]];
+    return attrString;
+}
 + (NSMutableAttributedString *)checkOfString:(NSString *)infoStr withSearchText:(NSString *)text bgtextColor:(UIColor *)bgColor foreTextColor:(UIColor *)foreColor font:(UIFont *)font
 {
     NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:infoStr];

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

@@ -794,28 +794,28 @@
     [[FWZFileGetTool sharedTool] openFileWithCrop:YES showImgBlock:^(NSString * _Nonnull fileUrlStr) {
         
     } choosFileBlock:^(NSData * _Nonnull fileData, NSString * _Nonnull fileName) {
-//        EMFileMessageBody * body = [[EMFileMessageBody alloc] initWithData:fileData displayName:fileName];
-//        [weakSelf _sendMessageWithBody:body ext:nil isUpload:YES];
-        SHOWLOADING
-        [[HttpManager sharedHttpManager] HeaderUploadFileUrl:Host(Modify_UserImages_Post) parameters:@{} fileData:fileData fileKey:@"file" fileName:fileName mimeType:@"multipart/form-data" success:^(id  _Nonnull responseObject) {
-            REMOVESHOW
-            NSDictionary * dict = responseObject[0];
-            if ([dict[@"FileType"] isEqualToString:@"image"]) {
-                [weakSelf _sendImageDataAction:fileData];
-            }else{
-                [weakSelf _sendTextAction:@"[文件]" ext:@{@"app":@(YES),
-                                                        @"app_type":@(CollectModel_file),
-                                                        @"app_title":fileName,
-                                                        @"app_content":@"",
-                                                        @"app_sourceUserId":@([AppUserModel sharedAppUserModel].Id),
-                                                        @"app_id":@([dict[@"FileId"] integerValue]),
-                                                        @"app_min_url":dict[@"MinAbsolutePath"],
-                                                        @"app_url":dict[@"AbsolutePath"]
-                }];
-            }
-        } failure:^(NSError * _Nonnull error) {
-            REMOVESHOW
-        }];
+        EMFileMessageBody * body = [[EMFileMessageBody alloc] initWithData:fileData displayName:fileName];
+        [weakSelf _sendMessageWithBody:body ext:nil isUpload:YES];
+//        SHOWLOADING
+//        [[HttpManager sharedHttpManager] HeaderUploadFileUrl:Host(Modify_UserImages_Post) parameters:@{} fileData:fileData fileKey:@"file" fileName:fileName mimeType:@"multipart/form-data" success:^(id  _Nonnull responseObject) {
+//            REMOVESHOW
+//            NSDictionary * dict = responseObject[0];
+//            if ([dict[@"FileType"] isEqualToString:@"image"]) {
+//                [weakSelf _sendImageDataAction:fileData];
+//            }else{
+//                [weakSelf _sendTextAction:@"[文件]" ext:@{@"app":@(YES),
+//                                                        @"app_type":@(CollectModel_file),
+//                                                        @"app_title":fileName,
+//                                                        @"app_content":@"",
+//                                                        @"app_sourceUserId":@([AppUserModel sharedAppUserModel].Id),
+//                                                        @"app_id":@([dict[@"FileId"] integerValue]),
+//                                                        @"app_min_url":dict[@"MinAbsolutePath"],
+//                                                        @"app_url":dict[@"AbsolutePath"]
+//                }];
+//            }
+//        } failure:^(NSError * _Nonnull error) {
+//            REMOVESHOW
+//        }];
     }];
 }
 - (void)chatBarDidLocationAction

+ 3 - 3
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsg/View/ChatInfoUserCollectionCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15505" 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="15510"/>
+        <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>
@@ -17,7 +17,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="70" height="90"/>
                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fCU-H8-X7F">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="fCU-H8-X7F">
                         <rect key="frame" x="10" y="20" width="50" height="50"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="50" id="YWz-6u-kM8"/>

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

@@ -27,6 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (assign, nonatomic) CollectModelType       type;
 @property (copy, nonatomic)   FlowAttachmentsModel * sendModel;
 @property (assign, nonatomic) BOOL                   isReturn;
+@property (assign, nonatomic) NSInteger              TypeValue;
 @property (nonatomic,assign) NSInteger               SourceUserId;
 
 +(MoveViewController *)initMoveViewController;

+ 28 - 11
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/MoveViewController.m

@@ -12,6 +12,7 @@
 #import "MyFavoriteNewFindVC.h"
 #import "ShowNewGroupAlert.h"
 #import "MyTDGroupView.h"
+#import "MoveMegAlert.h"
 
 @interface MoveViewController ()<UITableViewDelegate,UITableViewDataSource>
 {
@@ -105,7 +106,7 @@
             vc.ParentId = weakSelf.ParentId;
             vc.createFoldType = weakSelf.TypeId;
             vc.modifyTye = CreateType;
-            vc.fileType = NewOtherFileType;
+            vc.fileType = weakSelf.TypeValue == 1 ? NewTopicFileType : NewOtherFileType;
             [weakSelf.navigationController pushViewController:vc animated:YES];
         }
     }];
@@ -121,7 +122,7 @@
     SHOWLOADING
     NSMutableDictionary *dic = [NSMutableDictionary dictionary];
     [dic setValue:@(self.ParentId) forKey:@"ParentId"];
-    [dic setValue:@(self.TypeId) forKey:@"TypeId"];
+    [dic setValue:self.TypeValue == 1 ? @(-4) : @(self.TypeId) forKey:@"TypeId"];
     [dic setValue:self.FolderIds forKey:@"FolderIds"];
     NSLog(@"%@",dic);
     WS(weakSelf);
@@ -172,10 +173,11 @@
             vc.isFromCreateBookVc  = weakSelf.isFromCreateBookVc;
             vc.sendModel = weakSelf.sendModel;
             vc.isReturn = weakSelf.isReturn;
+            vc.TypeValue = weakSelf.TypeValue;
             [weakSelf.navigationController pushViewController:vc animated:YES];
         }];
     }else{
-        [cell.rightImageView setHidden:YES];
+        cell.rightImageView.hidden = YES;
         cell.cell1TimeLabel.hidden = YES;
         cell.enterBtn.hidden = YES;
     }
@@ -216,6 +218,7 @@
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     // 从创建笔记push过来
+    WS(weakSelf);
     if (self.isFromCreateBookVc) {
         if (indexPath.row == 0) {
             NoticeFindModel *tmpModel = [[NoticeFindModel alloc]init];
@@ -244,15 +247,24 @@
                     break;
             }
         }else {
-            if (!self.noticeArray[indexPath.row - _placeholderCellCount].IsDisable) {
-                switch (self.collectType) {
-                    case CollectHanderType_Collect:
-                        [self collectToFindWithSuperModel:self.noticeArray[indexPath.row - _placeholderCellCount]];
-                        break;
-                    default:
+            switch (self.collectType) {
+                case CollectHanderType_Collect:
+                {
+                    [self collectToFindWithSuperModel:self.noticeArray[indexPath.row - _placeholderCellCount]];
+                }
+                    break;
+                default:
+                {
+                    if (self.TypeValue == 1) {
+                        [[MoveMegAlert share] show];
+                        [MoveMegAlert share].DoneBlock = ^{
+                            [weakSelf moveFind:weakSelf.FolderIds withSuperModel:weakSelf.noticeArray[indexPath.row - self->_placeholderCellCount]];
+                        };
+                    }else{
                         [self moveFind:self.FolderIds withSuperModel:self.noticeArray[indexPath.row - _placeholderCellCount]];
-                        break;
+                    }
                 }
+                    break;
             }
         }
     }
@@ -306,7 +318,9 @@
         NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
         [dic setValue:findModelArray forKey:@"Ids"];
         [dic setValue:@(supermodel.Id) forKey:@"ParentId"];
-        
+        if (self.TypeValue == 1) {
+            [dic setValue:@(-4) forKey:@"TypeId"];
+        }
         SHOWLOADING
         WEAKSELF
         [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Move) parameters:dic responseStyle:DATA success:^(id  _Nonnull responseObject) {
@@ -357,6 +371,9 @@
             || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"OtherFavoriteVC")]
             || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"TDInterLeterHomeViewController")]
             || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"NewMeetingFecordDetailsController")]
+            || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"CommonHomeVC")]
+            || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"CommonNoteVC")]
+            || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"MyTDTopicBookVC")]
             || [self.navigationController.viewControllers[i] isKindOfClass:NSClassFromString(@"MyTDTopicDetailVC")]) {
             [self.navigationController popToViewController:self.navigationController.viewControllers[i] animated:YES];
             return;

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/Controller/NoticeNewGroupVC.m

@@ -1045,6 +1045,7 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.titleStr = @"选人";
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 

+ 24 - 26
smartRhino/Project/VCModel/ChatMessage/Controller/ChatMsgNotice/View/ChatMsgNoticeCell.m

@@ -94,7 +94,6 @@
     cell.cell2RedBgView.hidden = YES;
     cell.rightImageView.hidden = YES;
     cell.cell2EditBtn.hidden = YES;
-    cell.isShow = YES;
     [cell.cell2EditBtn setTitle:@"编辑" forState:UIControlStateNormal];
     
     return cell;
@@ -132,34 +131,33 @@
 - (void)layoutSubviews
 {
     [super layoutSubviews];
-    if (self.isShow) {
-        CGRect rect = self.contentView.frame;
-        rect.size.width += rect.origin.x;
-        rect.origin.x = 0;
-        self.contentView.frame = rect;
-        for (UIView *supView in self.subviews){
-            if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
-                for (UIView *view in supView.subviews)
+    CGRect rect = self.contentView.frame;
+    rect.size.width += rect.origin.x;
+    rect.origin.x = 0;
+    self.contentView.frame = rect;
+    for (UIView *supView in self.subviews){
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
+            for (UIView *view in supView.subviews)
+            {
+                if ([view isKindOfClass: [UIImageView class]] && self.isShow)
                 {
-                    if ([view isKindOfClass: [UIImageView class]])
-                    {
-                        UIImageView * imagV = (UIImageView *)view;
-                        [imagV setFrame:CGRectMake(0, 0, 22, 18)];
-                        imagV.center = supView.center;
-                        imagV.contentMode = UIViewContentModeCenter;
-                        imagV.image = [UIImage imageNamed: @"list_sort"];
-                        UILabel * label = [UILabel new];
-                        label.backgroundColor = UIColorHex(#EAEAEA);
-                        [supView addSubview:label];
-                        [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
-                    }else{
-                        [view removeFromSuperview];
-                    }
+                    view.hidden = NO;
+                    UIImageView * imagV = (UIImageView *)view;
+                    [imagV setFrame:CGRectMake(0, 0, 22, 18)];
+                    imagV.center = supView.center;
+                    imagV.contentMode = UIViewContentModeCenter;
+                    imagV.image = [UIImage imageNamed: @"list_sort"];
+                    UILabel * label = [UILabel new];
+                    label.backgroundColor = UIColorHex(#EAEAEA);
+                    [supView addSubview:label];
+                    [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
+                }else{
+                    view.hidden = YES;
                 }
             }
-            if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
-                [supView removeFromSuperview];
-            }
+        }
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
+            [supView removeFromSuperview];
         }
     }
 }

+ 2 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/ChatNewGroupVC.m

@@ -132,7 +132,8 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.grouperArray = self.dataArray;
-    vc.titleStr = @"添加成员";
+    vc.titleStr = @"选人";
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
  - (void)recviveChaoSongRen:(NSNotification *)notification{

+ 1 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailAddUserSearch.m

@@ -24,6 +24,7 @@
     self.historySearchType = HistorySearchType_User;
     self.tableView.delegate = self;
     self.tableView.dataSource = self;
+    [self.topNavSearch setBarPlaceholder:@"姓名/手机号/邮箱"];
     if (self.IsAddUser) {
         [self.cancelBtn setAttributedTitle:[[NSAttributedString alloc] initWithString:@"确定" attributes:@{NSFontAttributeName: [UIFont fontWithName:@"PingFang SC" size: 15],NSForegroundColorAttributeName: UIColorHex(#3979D3)}] forState:UIControlStateNormal];
         WS(weakSelf);

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

@@ -0,0 +1,21 @@
+//
+//  MailChatVC.h
+//  smartRhino
+//
+//  Created by tederen on 2019/10/31.
+//  Copyright © 2019 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+#import "FlowAttachmentsModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MailChatVC : BaseViewController
+@property (nonatomic, assign) NSInteger    ParentId;
+@property (nonatomic, copy) NSString       * titleStr;
+@property (assign, nonatomic) CreateFileFolderType   type;
+@property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
+@end
+
+NS_ASSUME_NONNULL_END

+ 216 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailChatVC.m

@@ -0,0 +1,216 @@
+//
+//  MailChatVC.m
+//  smartRhino
+//
+//  Created by tederen on 2019/10/31.
+//  Copyright © 2019 tederen. All rights reserved.
+//
+
+#import "MailChatVC.h"
+#import "MyTDGroupView.h"
+#import "MailGroupListVC.h"
+#import "ChatNewRowCell.h"
+#import "MailGroupListSerachVC.h"
+#import "MailChatModel.h"
+
+@interface MailChatVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (nonatomic, strong) TDTableView *tableView;
+@property (nonatomic, strong) UIView      *CusNavBar;
+@property (nonatomic, strong) UIView      *HeadView;
+@property (nonatomic, strong) UIView      *SortView;
+@property (strong, nonatomic) MyTDGroupView             *SearchView;
+@property (nonatomic, strong) UILabel     *titleL;
+@property (nonatomic, strong) NSMutableArray  *dataArray;
+@property (nonatomic, copy) NSArray       *addListArray;
+@property (nonatomic, assign) NSUInteger  currentPage;
+@property (nonatomic, assign) NSUInteger  totalPage;
+@property (nonatomic, assign) NSUInteger  totalRecord;
+@property (nonatomic, assign) BOOL        isFresh;
+@end
+
+@implementation MailChatVC
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    [self addNavbarView];
+    [self getData];
+}
+
+- (void)addNavbarView
+{
+
+    [self.view addSubview:self.CusNavBar];
+    [self.CusNavBar mas_makeConstraints:^(MASConstraintMaker *make) {
+        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];
+    
+    
+    [backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.mas_equalTo(self.CusNavBar);
+        make.bottom.mas_equalTo(self.CusNavBar);
+        make.width.offset(50);
+        make.height.offset(44);
+    }];
+    
+    [backBtn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
+    WS(weakSelf);
+
+    [self.CusNavBar addSubview:self.titleL];
+    [self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.centerX.mas_equalTo(self.CusNavBar);
+        make.centerY.mas_equalTo(backBtn);
+        make.height.offset(44);
+        make.width.mas_greaterThanOrEqualTo(10);
+    }];
+    if (self.titleStr) {
+        self.titleL.attributedText = [self stringToAttribuedString:self.titleStr];
+    }
+    [self.view addSubview:self.HeadView];
+    [self.HeadView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.height.mas_offset(46);
+        make.top.mas_equalTo(self.CusNavBar.mas_bottom);
+    }];
+    [self.HeadView addSubview:self.SearchView];
+    [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_offset(6);
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(36);
+    }];
+    [self.SearchView.button setAction:^{
+        MailGroupListSerachVC * vc = [[MailGroupListSerachVC alloc] init];
+        vc.TypeValue = weakSelf.TypeValue;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
+    [self.view addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(self.HeadView.mas_bottom);
+        make.left.right.mas_equalTo(self.view);
+        if (@available(iOS 11.0, *)) {
+            make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
+        } else {
+            make.bottom.equalTo(self.view.mas_bottom);
+        }
+    }];
+    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+}
+
+- (UIView *)CusNavBar
+{
+    if (!_CusNavBar) {
+        _CusNavBar = [UIView new];
+        _CusNavBar.backgroundColor = [UIColor whiteColor];
+    }
+    return _CusNavBar;
+}
+- (UIView *)HeadView
+{
+    if (!_HeadView) {
+        _HeadView = [UIView new];
+        _HeadView.backgroundColor = [UIColor whiteColor];
+    }
+    return _HeadView;
+}
+- (UILabel *)titleL
+{
+    if (!_titleL) {
+        _titleL = [UILabel new];
+        _titleL.textAlignment = NSTextAlignmentCenter;
+    }
+    return _titleL;
+}
+- (NSAttributedString *)stringToAttribuedString:(NSString *)title;
+{
+    NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName: [UIFont fontWithName:@"PingFang SC" size: 18],NSForegroundColorAttributeName: [UIColor colorWithRed:10/255.0 green:10/255.0 blue:10/255.0 alpha:1.0]}];
+    return string;
+}
+- (void)getData{
+    WS(weakSelf);
+    [[HttpManager sharedHttpManager] GETUrl:Host(API_APP_User_Chat_List) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        NSLog(@"%@",responseObject);
+        for (NSDictionary * dic in responseObject) {
+            MailChatModel * model = [MailChatModel modelWithDictionary:dic];
+            [weakSelf.dataArray addObject:model];
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+
+    }];
+}
+
+- (void)backAction:(id)sender{
+    [self.navigationController popViewControllerAnimated:true];
+}
+
+- (void)menuAction:(id)sender{
+    [super menuAction:sender];
+}
+#pragma mark - setter
+- (TDTableView *)tableView{
+    if (!_tableView) {
+        _tableView = [[TDTableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain];
+        _tableView.delegate = self;
+        _tableView.dataSource = self;
+    }
+    return _tableView;
+}
+- (NSMutableArray<NoticeModel *> *)dataArray{
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray new];
+    }
+    return _dataArray;
+}
+- (MyTDGroupView *)SearchView
+{
+    if (!_SearchView) {
+        _SearchView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
+    }
+    return _SearchView;
+}
+
+#pragma mark - UITableViewDelegate,UITableViewDataSource
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataArray.count;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    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;
+}
+- (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];
+}
+
+@end

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

@@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, assign) NSInteger DepartmentId;
 @property (nonatomic, assign) NSInteger SearchType;///搜索类型 1 部门 2 自建 0全部
 @property (strong,nonatomic) NSArray   * dataArray;
+@property (nonatomic, assign) NSInteger  Id;
+@property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
 @end
 
 NS_ASSUME_NONNULL_END

+ 3 - 6
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListSerachVC.m

@@ -25,6 +25,7 @@
     self.historySearchType = HistorySearchType_User;
     self.tableView.delegate = self;
     self.tableView.dataSource = self;
+    [self.topNavSearch setBarPlaceholder:@"姓名/手机号/邮箱"];
     [self addObserver:self forKeyPath:@"searchText" options:NSKeyValueObservingOptionNew context:nil];
 }
 
@@ -47,11 +48,9 @@
 }
 - (void)getData:(NSString *)searchKey
 {
-    NSString * url = [NSString stringWithFormat:@"%@%@",Host(API_APP_User_Find_friends),searchKey];
-    NSString * urlHost = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
     WEAKSELF
     [self.listArray removeAllObjects];
-    [[HttpManager sharedHttpManager] GETWithUrl:urlHost parameters:@{} success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_User_Group_Chat_Search) parameters:@{@"TypeValue":@(self.TypeValue),@"Id":@(self.Id),@"Keyword":searchKey} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
         for (NSDictionary *dic in responseObject) {
             SelectModel * model = [[SelectModel alloc] initDict:dic];
@@ -74,8 +73,7 @@
             }
         });
     } failure:^(NSError * _Nonnull error) {
-          SHOWERROR([ZYCTool handerResultData:error])
-          
+        
     }];
 }
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
@@ -137,7 +135,6 @@
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     MailListDetailVC *vc = [MailListDetailVC initMailListDetailVC];
     vc.indexId = model.SourceId;
-    vc.isAdd = YES;
     [self.navigationController pushViewController:vc animated:YES];
 }
 -(void)back1{

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

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

+ 19 - 16
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupListVC.m

@@ -38,10 +38,10 @@
     return _SearchView;
 }
 
-
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.fd_prefersNavigationBarHidden = YES;
+    self.titleL.text = self.titleStr;
     self.view.backgroundColor = RGB(255, 255, 255);
     [self.HeadView addSubview:self.SearchView];
     [self.SearchView  mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -51,20 +51,17 @@
     }];
     WS(weakSelf);
     [self.SearchView.button setAction:^{
-//        MailGroupListSerachVC *vc = [[MailGroupListSerachVC alloc] init];
-//        [weakSelf.navigationController pushViewController:vc animated:YES];
+        MailGroupListSerachVC *vc = [[MailGroupListSerachVC alloc] init];
+        vc.TypeValue = weakSelf.TypeValue;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
-
     self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
-
     self.tableView.delegate = self;
     self.tableView.dataSource = self;
     self.tableView.backgroundColor = [UIColor clearColor];
-
     [self getData];
 }
 
-
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
     return  self.pinyinArray.count;
@@ -109,9 +106,9 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     NSArray * array = self.cusNameArray[indexPath.section];
-    TDGroupInfoModel * smodel = [array objectAtIndex:indexPath.row];
+    SelectModel * smodel = [array objectAtIndex:indexPath.row];
     MailListByZuCell *cell = [MailListByZuCell configCell0:tableView indexPath:indexPath];
-    cell.cell0TitleLabel.text = smodel.Name;
+    cell.cell0TitleLabel.text = smodel.UserName;
     [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:smodel.AvatarUrl] placeholderImage:[UIImage imageNamed:@"chatmsg_list_testuser_img"]];
     return cell;
 }
@@ -119,7 +116,7 @@
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     NSArray * array = self.cusNameArray[indexPath.section];
-    TDGroupInfoModel * sModel = [array objectAtIndex:indexPath.row];
+    SelectModel * sModel = [array objectAtIndex:indexPath.row];
     MailListDetailVC * userVC = [MailListDetailVC initMailListDetailVC];
     userVC.indexId = sModel.UserId;
     [self.navigationController pushViewController:userVC animated:YES];
@@ -127,10 +124,16 @@
 
 - (void)getData{
     WS(weakSelf);
-    [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Group_Detail) parameters:@{@"GroupId":@(self.Id)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_User_Group_Chat_Search) parameters:@{@"TypeValue":@(self.TypeValue),@"Id":@(self.Id),@"Keyword":@""} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
-        TDGroupInfoListModel *listModel = [TDGroupInfoListModel modelWithDictionary:responseObject];
-        NSMutableArray * array = [NSMutableArray arrayWithArray:listModel.GroupUserListResult];
+        NSMutableArray * array = [NSMutableArray array];
+        for (NSDictionary *dic in responseObject) {
+            SelectModel * model = [[SelectModel alloc] initDict:dic];
+            model.SourceId = model.UserId;
+            model.SourceType = 0;
+            model.SourceName = model.UserName;
+            [array addObject:model];
+        }
         [weakSelf resetDataSource:array];
     } failure:^(NSError * _Nonnull error) {
         
@@ -153,8 +156,8 @@
     if (sArray.count > 0) {
         NSMutableArray *stringsToSort = [[NSMutableArray alloc] init];
         for(int i = 0;i < [sArray count];i++){
-            TDGroupInfoModel * smodel = [sArray objectAtIndex:i];
-            NSString * str = [NSString stringWithFormat:@"%@UserId%ld",smodel.Name,(long)smodel.UserId];
+            SelectModel * smodel = [sArray objectAtIndex:i];
+            NSString * str = [NSString stringWithFormat:@"%@UserId%ld",smodel.UserName,(long)smodel.UserId];
             [stringsToSort addObject:str];
         }
         self.pinyinArray = [ChineseString IndexArray:stringsToSort];
@@ -165,7 +168,7 @@
                 NSInteger  flag = 0;
                 BOOL isAdd = NO;
                 for (NSInteger i = 0; i < sArray.count; i ++) {
-                    TDGroupInfoModel * smodel = [sArray objectAtIndex:i];
+                    SelectModel * smodel = [sArray objectAtIndex:i];
                     if ([string containsString:[NSString stringWithFormat:@"UserId%ld",smodel.UserId]]) {
                         [subAddArray addObject:smodel];
                         isAdd = YES;

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

@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
 @interface MailGroupVC : BaseViewController
 @property (nonatomic, assign) NSInteger    ParentId;
 @property (nonatomic, copy) NSString       * titleStr;
+@property (nonatomic, assign) NSInteger  TypeValue;///1 群聊 2小组 3自建通讯录
 @property (assign, nonatomic) CreateFileFolderType   type;
 @end
 

+ 9 - 8
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailGroupVC.m

@@ -10,6 +10,7 @@
 #import "MyTDGroupView.h"
 #import "MailGroupListVC.h"
 #import "ChatNewRowCell.h"
+#import "MailGroupListSerachVC.h"
 
 @interface MailGroupVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (nonatomic, strong) TDTableView *tableView;
@@ -91,7 +92,9 @@
         make.height.mas_offset(36);
     }];
     [self.SearchView.button setAction:^{
-
+        MailGroupListSerachVC * vc = [[MailGroupListSerachVC alloc] init];
+        vc.TypeValue = 2;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
     [self.view addSubview:self.tableView];
     [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -382,20 +385,16 @@
        case 2:{
            ChatNewRowCell *cell = [ChatNewRowCell configCell1:tableView indexPath:indexPath];
            cell.cell1TitleLabel.text = model.FolderName;
-           cell.IsTopImgV.hidden = !model.IsTop;
+           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 configCell2:tableView indexPath:indexPath];
+           ChatNewRowCell *cell = [ChatNewRowCell configCell3:tableView indexPath:indexPath];
            [cell.cell2UserImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage];
            cell.cell2TitleLabel.text = model.GroupName;
-           cell.IsTopImgV.hidden = !model.IsTop;
-           cell.cell2IntroLabel.text = [NSString stringWithFormat:@"共享给%ld人",(long)model.TopicSharingCount];
-           cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.TopicAllCount];
-           cell.cell2TimeLabel.hidden = model.TopicAllCount == 0 ? YES : NO;
-           cell.cell2RedNumLabel.text = model.UReadTopicCount > 0 ? [NSString stringWithFormat:@"[%ld条新话题]",(long)model.UReadTopicCount] : @"";
+           cell.cell2TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.TopicSharingCount];
            return cell;
        }break;
    }
@@ -417,6 +416,8 @@
             default:{
                 MailGroupListVC * vc = [MailGroupListVC initMailGroupListVC];
                 vc.Id = model.GroupId;
+                vc.TypeValue = self.TypeValue;
+                vc.titleStr = model.GroupName;
                 [self.navigationController pushViewController:vc animated:YES];
             }break;
         }

+ 45 - 7
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListByZuVC.m

@@ -56,7 +56,7 @@
 @property (weak, nonatomic) IBOutlet UIButton *operationBackButton;
 @property (nonatomic, assign) Boolean iSViewEditor;
 @property (assign,nonatomic) BOOL            isAllselect;
-
+@property (strong,nonatomic) UILabel          *noDataL;
 @end
 
 @implementation MailListByZuVC
@@ -79,7 +79,37 @@
     }
     return _SearchView;
 }
-
+- (UILabel *)noDataL
+{
+    if (!_noDataL) {
+        _noDataL = [UILabel new];
+    }
+    return _noDataL;
+}
+- (void)addSubNoDataL
+{
+    [self.view addSubview:self.noDataL];
+    [self.noDataL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_offset(SCREEN_HEIGHT * 0.3);
+        make.centerX.mas_equalTo(self.view);
+    }];
+    NSString * str = @"该分组还没有人,快去 添加 吧";
+    NSMutableAttributedString * astr = [[NSMutableAttributedString alloc] initWithString:str];
+    [astr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"PingFang SC" size:16] range:NSMakeRange(0, str.length)];
+    [astr addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x666666) range:NSMakeRange(0, str.length)];
+    [astr addAttribute:NSForegroundColorAttributeName value:UIColorHex(0x1E7AB9) range:NSMakeRange(11, 2)];
+    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc]init];
+    paraStyle.alignment = NSTextAlignmentCenter;
+    [astr addAttribute:NSParagraphStyleAttributeName value:paraStyle range:NSMakeRange(0, str.length)];
+    self.noDataL.attributedText = astr;
+    self.noDataL.hidden = YES;
+    WS(weakSelf);
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        [weakSelf addCustomPeople];
+    }];
+    [self.noDataL addGestureRecognizer:tap];
+    self.noDataL.userInteractionEnabled = YES;
+}
 -(void)initBottomBgView{
     UIButton *leftCloseBtn = [UIButton buttonWithType:UIButtonTypeCustom];
     [leftCloseBtn setTitle:@"删除" forState:UIControlStateNormal];
@@ -148,7 +178,7 @@
         [self.view layoutIfNeeded];
         [self.tableView layoutIfNeeded];
         self.fd_interactivePopDisabled = YES;
-        self.pageTitleLabel.text = @"批量操作";
+        self.pageTitleLabel.text = @"批量编辑";
     }else{
         
         switch (self.pageType) {
@@ -275,6 +305,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     [self getData];
+    [self addSubNoDataL];
     self.pageTitleLabel.text = self.titleStr;
     if(self.pageType == MailListByZuPageType_Sys){
         self.rightBtn.hidden = YES;
@@ -345,7 +376,7 @@
             else if ([@"一键群聊" isEqualToString:action.title]){
                 [weakSelf createGroup];
             }
-            else if ([@"批量操作" isEqualToString:action.title]){
+            else if ([@"批量编辑" isEqualToString:action.title]){
                 [weakSelf changeToOperation:YES];
             }
         }];
@@ -363,13 +394,14 @@
     defaltGroupSetion.Id = 0;
     
     AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
-    vc.titleStr = @"添加成员";
+    vc.titleStr = @"选人";
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.delegate = self;
     vc.isShow = self.isShow;
     vc.UserIds = self.UserIds;
     vc.grouperArray = self.nameModelArray;
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 #pragma mark - 注册通知 接受抄送人和审批人数据
@@ -415,7 +447,7 @@
 }
 -(NSMutableArray *)taskActionArray{
     if(!_taskActionArray){
-        _taskActionArray = [[NSMutableArray alloc] initWithObjects:@"添加人员",@"一键群聊",@"批量操作", nil];
+        _taskActionArray = [[NSMutableArray alloc] initWithObjects:@"添加人员",@"一键群聊",@"批量编辑", nil];
     }
     return _taskActionArray;
 }
@@ -567,7 +599,7 @@
 
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
     UIView *headerView = [[UIView alloc]init];
-    [headerView setBackgroundColor:RGBA(238, 238, 238, 1)];
+    [headerView setBackgroundColor:UIColorHex(0xF5F6F8)];
     switch (self.pageType) {
         case MailListByZuPageType_Sys:
         {
@@ -979,6 +1011,7 @@
     vc.sendModel = self.sendModel;
     vc.DepartmentId = self.indexId;
     vc.SearchType = self.pageType;
+    vc.Id = self.indexId;
     [self.navigationController pushViewController:vc animated:YES];
 }
 - (void)selecPeopleBack:(NSDictionary *)dic{
@@ -1066,6 +1099,11 @@
                     model.Id = [dic[@"Id"] integerValue];
                     [strongSelf.nameModelArray addObject:model];
                 }
+                if (strongSelf.nameArray.count == 0) {
+                    strongSelf.noDataL.hidden = NO;
+                }else{
+                    strongSelf.noDataL.hidden = YES;
+                }
                 [strongSelf resetDataSource:@""];
             } failure:^(NSError * _Nonnull error) {
                 REMOVESHOW

+ 1 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListDetailVC.m

@@ -286,7 +286,7 @@
                       cell.cell2TitleLabel.text = [AppUserModel sharedAppUserModel].Id == self.indexId ? @"我的收藏" : @"他的收藏";
                   }break;
                   case 1:{
-                      cell.cell2TitleLabel.text = [AppUserModel sharedAppUserModel].Id == self.indexId ? @"我的笔记" : @"他的笔记";
+                      cell.cell2TitleLabel.text = [AppUserModel sharedAppUserModel].Id == self.indexId ? @"我的笔记" : @"他的话题";
                   }break;
                   default:
                       break;

+ 2 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListSearchVC.h

@@ -17,9 +17,10 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, assign) BOOL notChangeColor;
 @property (nonatomic, assign) BOOL IsSearchUser;
 @property (nonatomic, assign) NSInteger DepartmentId;
-@property (nonatomic, assign) NSInteger SearchType;///搜索类型 1 部门 2 自建 0全部
+@property (nonatomic, assign) MailListByZuPageType SearchType;///搜索类型 1 部门 2 自建 0全部
 @property (nonatomic, copy) FlowAttachmentsModel *   sendModel;
 @property (assign, nonatomic) BOOL                   isReturn;
+@property (nonatomic, assign) NSInteger              Id;
 @end
 
 NS_ASSUME_NONNULL_END

+ 60 - 32
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Controller/MailListSearchVC.m

@@ -24,6 +24,7 @@
     self.historySearchType = HistorySearchType_MailList;
     self.tableView.delegate = self;
     self.tableView.dataSource = self;
+    [self.topNavSearch setBarPlaceholder:@"姓名/手机号/邮箱"];
     if (self.IsAddUser) {
         [self.cancelBtn setAttributedTitle:[[NSAttributedString alloc] initWithString:@"确定" attributes:@{NSFontAttributeName: [UIFont fontWithName:@"PingFang SC" size: 15],NSForegroundColorAttributeName: UIColorHex(#3979D3)}] forState:UIControlStateNormal];
         WS(weakSelf);
@@ -67,41 +68,68 @@
 }
 - (void)getData:(NSString *)searchKey
 {
-    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
-    [dict setObject:searchKey ?: @"" forKey:@"Key"];
-    [dict setObject:@(self.DepartmentId) forKey:@"DepartmentId"];
-    [dict setObject:@(self.SearchType) forKey:@"SearchType"];
-    [dict setObject:self.UserIds forKey:@"UserIds"];
-    [dict setObject:@(self.isShow) forKey:@"IsShow"];
-
     WEAKSELF
     [self.listArray removeAllObjects];
-    [[HttpManager sharedHttpManager] POSTWithUrl:AddressBookGroup_Search_Post parameters:dict success:^(id  _Nonnull responseObject) {
-        NSLog(@"%@",responseObject);
-        for (NSDictionary *dic in responseObject) {
-            SelectModel * model = [[SelectModel alloc] initDict:dic];
-            model.SourceId = model.UserId;
-            model.SourceType = 0;
-            model.SourceName = model.UserName;
-            [weakSelf.listArray addObject:model];
-        }
-        dispatch_async(dispatch_get_main_queue(), ^{
-            if (weakSelf.listArray.count > 0) {
-                weakSelf.collectionView.hidden = YES;
-                weakSelf.noDataView.hidden = YES;
-                weakSelf.tableView.hidden = NO;
-                [weakSelf.tableView reloadData];
-            }else{
-                weakSelf.noDataView.hidden = NO;
-                weakSelf.collectionView.hidden = YES;
-                weakSelf.tableView.hidden = YES;
-                weakSelf.noDataL.text = @"暂无用户";
+    if (self.SearchType == MailListByZuPageType_custom) {
+        [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_User_Group_Chat_Search) parameters:@{@"TypeValue":@(self.SearchType),@"Id":@(self.Id),@"Keyword":searchKey} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+            NSLog(@"%@",responseObject);
+            for (NSDictionary *dic in responseObject) {
+                SelectModel * model = [[SelectModel alloc] initDict:dic];
+                model.SourceId = model.UserId;
+                model.SourceType = 0;
+                model.SourceName = model.UserName;
+                [weakSelf.listArray addObject:model];
+            }
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if (weakSelf.listArray.count > 0) {
+                    weakSelf.collectionView.hidden = YES;
+                    weakSelf.noDataView.hidden = YES;
+                    weakSelf.tableView.hidden = NO;
+                    [weakSelf.tableView reloadData];
+                }else{
+                    weakSelf.noDataView.hidden = NO;
+                    weakSelf.collectionView.hidden = YES;
+                    weakSelf.tableView.hidden = YES;
+                    weakSelf.noDataL.text = @"暂无用户";
+                }
+            });
+        } failure:^(NSError * _Nonnull error) {
+            
+        }];
+    }else{
+        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
+        [dict setObject:searchKey ?: @"" forKey:@"Key"];
+        [dict setObject:@(self.DepartmentId) forKey:@"DepartmentId"];
+        [dict setObject:@(self.SearchType) forKey:@"SearchType"];
+        [dict setObject:self.UserIds forKey:@"UserIds"];
+        [dict setObject:@(self.isShow) forKey:@"IsShow"];
+        [[HttpManager sharedHttpManager] POSTWithUrl:AddressBookGroup_Search_Post parameters:dict success:^(id  _Nonnull responseObject) {
+            NSLog(@"%@",responseObject);
+            for (NSDictionary *dic in responseObject) {
+                SelectModel * model = [[SelectModel alloc] initDict:dic];
+                model.SourceId = model.UserId;
+                model.SourceType = 0;
+                model.SourceName = model.UserName;
+                [weakSelf.listArray addObject:model];
             }
-        });
-    } failure:^(NSError * _Nonnull error) {
-          SHOWERROR([ZYCTool handerResultData:error])
-          
-    }];
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if (weakSelf.listArray.count > 0) {
+                    weakSelf.collectionView.hidden = YES;
+                    weakSelf.noDataView.hidden = YES;
+                    weakSelf.tableView.hidden = NO;
+                    [weakSelf.tableView reloadData];
+                }else{
+                    weakSelf.noDataView.hidden = NO;
+                    weakSelf.collectionView.hidden = YES;
+                    weakSelf.tableView.hidden = YES;
+                    weakSelf.noDataL.text = @"暂无用户";
+                }
+            });
+        } failure:^(NSError * _Nonnull error) {
+              SHOWERROR([ZYCTool handerResultData:error])
+              
+        }];
+    }
 }
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {

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

@@ -79,11 +79,14 @@
     MailSubModel *model = self.listArray[sourceIndexPath.row];
     MailSubModel *toModel = self.listArray[destinationIndexPath.row];
     if (sourceIndexPath != destinationIndexPath) {
-        [[HttpManager sharedHttpManager] POSTUrl:Host(AddressBookGroupUser_Sort) parameters:@{@"FristId":@(toModel.Id),@"LastId":@(model.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+        [[HttpManager sharedHttpManager] POSTUrl:Host(AddressBookGroupUser_Sort) parameters:@{@"FristId":@(model.Id),@"LastId":@(toModel.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
             //删除之前行的数据
             [weakSelf.listArray removeObject:model];
             // 插入数据到新的位置
             [weakSelf.listArray insertObject:model atIndex:destinationIndexPath.row];
+            dispatch_async(dispatch_get_main_queue(), ^{
+                [weakSelf.myTableView reloadData];
+            });
         } failure:^(NSError * _Nonnull error) {
             
         }];

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

@@ -24,6 +24,7 @@
 #import "MailEditVC.h"
 #import "MailListMoveVC.h"
 #import "MailGroupVC.h"
+#import "MailChatVC.h"
 
 @interface MailListVC ()<UITableViewDelegate,UITableViewDataSource>
 @property (weak, nonatomic) IBOutlet UIView       *HeadView;
@@ -303,7 +304,7 @@
         make.left.mas_offset(15);
         make.centerY.mas_equalTo(headerView);
     }];
-    sectionTitle.font = [UIFont systemFontOfSize:12];
+    sectionTitle.font = [UIFont systemFontOfSize:13];
     sectionTitle.textColor = RGB(153, 153, 153);
     sectionTitle.textAlignment = NSTextAlignmentLeft;
     if (section <= (self.dataSourceArray.count - 1)) {
@@ -328,6 +329,11 @@
                 }];
             }
                 break;
+            case MailListOtherType:
+            {
+                sectionTitle.text = @"";
+            }
+                break;
             case MailListUserType:
             {
                 sectionTitle.text = @"";
@@ -347,7 +353,28 @@
 }
  
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
-    return 30.f;
+    if (section <= (self.dataSourceArray.count - 1)) {
+        MailModel * model = self.dataSourceArray[section];
+        switch (model.TypeId) {
+            case MailListUserType:
+            {
+                return 0.01f;
+            }
+                break;
+            case MailListOtherType:
+            {
+                return 0.01f;
+            }
+                break;
+            default:
+            {
+                return 30.f;
+            }
+                break;
+        }
+    }else{
+        return 30.f;
+    }
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
@@ -426,12 +453,17 @@
                     case 1:
                     {
                         MailGroupVC * vc = [[MailGroupVC alloc] init];
+                        vc.titleStr = sModel.Name;
+                        vc.TypeValue = 2;
                         [self.navigationController pushViewController:vc animated:YES];
                     }
                         break;
                     case 2:
                     {
-                        
+                        MailChatVC * vc = [[MailChatVC alloc] init];
+                        vc.titleStr = sModel.Name;
+                        vc.TypeValue = 1;
+                        [self.navigationController pushViewController:vc animated:YES];
                     }
                         break;
                     default:

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

@@ -0,0 +1,23 @@
+//
+//  MailChatModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/18.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MailChatModel : BaseModel
+@property (nonatomic, copy) NSString     *Name;
+@property (nonatomic, copy) NSString     *Introduce;
+@property (nonatomic, copy) NSString     *AvatarUrl;
+@property (nonatomic, assign) NSInteger     UserId;
+@property (nonatomic, assign) NSInteger     GroupChatImId;
+@property (nonatomic, assign) NSInteger     Id;
+@property (nonatomic, assign) NSInteger     UserCount;
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/Model/MailChatModel.m

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

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

@@ -16,6 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic,copy) NSString   * Name;
 @property (nonatomic,assign) NSInteger  TypeValue;
 @property (nonatomic,assign) BOOL       IsSelect;
+@property (nonatomic,assign) MailListType  TypeId;
 @end
 
 NS_ASSUME_NONNULL_END

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

@@ -22,7 +22,7 @@
 }
 
 + (CGFloat)configCell0Height{
-    return 65;
+    return 50;
 }
 + (CGFloat)configCell1Height{
     return 50;

+ 4 - 4
smartRhino/Project/VCModel/ChatMessage/Controller/MailList/View/MailListDetailCell.xib

@@ -79,7 +79,7 @@
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YbZ-Ag-pzW">
                         <rect key="frame" x="0.0" y="64" width="320" height="112.5"/>
                         <subviews>
-                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="hds-kr-5J9">
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="hds-kr-5J9">
                                 <rect key="frame" x="132.5" y="0.0" width="55" height="55"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="55" id="j7Q-Rn-Jfg"/>
@@ -160,8 +160,8 @@
                         <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="calibratedRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gfd-d3-vEi">
-                        <rect key="frame" x="72" y="14" width="233" height="15.5"/>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gfd-d3-vEi">
+                        <rect key="frame" x="82" y="14" width="223" height="15.5"/>
                         <fontDescription key="fontDescription" type="system" pointSize="16"/>
                         <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                         <nil key="highlightedColor"/>
@@ -177,7 +177,7 @@
                 <constraints>
                     <constraint firstItem="LRd-MD-SyN" firstAttribute="centerY" secondItem="Dxz-qR-ZV4" secondAttribute="centerY" id="WIn-0d-VFh"/>
                     <constraint firstAttribute="trailing" secondItem="yMx-ej-pLq" secondAttribute="trailing" id="a6h-nr-3mn"/>
-                    <constraint firstItem="gfd-d3-vEi" firstAttribute="leading" secondItem="LRd-MD-SyN" secondAttribute="trailing" constant="15" id="bDe-F8-YHQ"/>
+                    <constraint firstItem="gfd-d3-vEi" firstAttribute="leading" secondItem="LRd-MD-SyN" secondAttribute="trailing" constant="25" id="bDe-F8-YHQ"/>
                     <constraint firstItem="yMx-ej-pLq" firstAttribute="leading" secondItem="Dxz-qR-ZV4" secondAttribute="leading" id="beF-RM-Qma"/>
                     <constraint firstItem="gfd-d3-vEi" firstAttribute="top" secondItem="Dxz-qR-ZV4" secondAttribute="top" constant="14" id="ccT-rj-kid"/>
                     <constraint firstItem="yMx-ej-pLq" firstAttribute="top" secondItem="gfd-d3-vEi" secondAttribute="bottom" constant="14" id="eIH-gX-vYY"/>

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

@@ -41,6 +41,7 @@ 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 *)configCell10:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
 + (ChatNewRowCell *)configCell20:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;

+ 10 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.m

@@ -63,6 +63,16 @@
     cell.cell2TimeLabel.hidden = NO;
     return cell;
 }
++ (ChatNewRowCell *)configCell3:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"ChatNewRowCell3";
+    ChatNewRowCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"ChatNewRowCell" owner:nil options:nil] objectAtIndex:7];
+    }
+    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];

+ 70 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/ChatNewRowCell.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"/>
@@ -505,6 +505,75 @@
             </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">
+            <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">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="SLJ-3u-6zF">
+                        <rect key="frame" x="16.5" y="18" width="40" height="40"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="40" id="i4H-0R-DWh"/>
+                            <constraint firstAttribute="height" constant="40" id="oGc-xJ-vhi"/>
+                        </constraints>
+                        <userDefinedRuntimeAttributes>
+                            <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                <integer key="value" value="4"/>
+                            </userDefinedRuntimeAttribute>
+                            <userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
+                        </userDefinedRuntimeAttributes>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="出版传媒策划部" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ich-dS-yff">
+                        <rect key="frame" x="64.5" y="28" width="121.5" height="20.5"/>
+                        <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="1000" verticalHuggingPriority="251" text="0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="90n-dQ-PDx">
+                        <rect key="frame" x="284" y="33" width="10" height="10"/>
+                        <constraints>
+                            <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="10" id="Zpi-gi-r8h"/>
+                            <constraint firstAttribute="height" constant="10" id="xzV-CM-NsI"/>
+                        </constraints>
+                        <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>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eSp-6g-gvv">
+                        <rect key="frame" x="64.5" y="75.5" width="255.5" 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="bbS-xM-1m4"/>
+                        </constraints>
+                    </view>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_rightArrow_icon" translatesAutoresizingMaskIntoConstraints="NO" id="SrA-0y-IU5">
+                        <rect key="frame" x="298" y="32" width="7" height="12"/>
+                    </imageView>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="ich-dS-yff" firstAttribute="centerY" secondItem="SLJ-3u-6zF" secondAttribute="centerY" id="7Hv-dD-7Ti"/>
+                    <constraint firstAttribute="trailing" secondItem="eSp-6g-gvv" secondAttribute="trailing" id="DIW-PF-Kcb"/>
+                    <constraint firstItem="90n-dQ-PDx" firstAttribute="centerY" secondItem="8dm-OK-jVd" secondAttribute="centerY" id="U21-8O-57C"/>
+                    <constraint firstItem="SLJ-3u-6zF" firstAttribute="centerY" secondItem="8dm-OK-jVd" secondAttribute="centerY" id="X9H-G5-rRi"/>
+                    <constraint firstItem="eSp-6g-gvv" firstAttribute="leading" secondItem="ich-dS-yff" secondAttribute="leading" id="XAF-UR-7CI"/>
+                    <constraint firstItem="SLJ-3u-6zF" firstAttribute="leading" secondItem="8dm-OK-jVd" secondAttribute="leading" constant="16.5" id="efn-X7-anA"/>
+                    <constraint firstItem="SrA-0y-IU5" firstAttribute="leading" secondItem="90n-dQ-PDx" secondAttribute="trailing" constant="4" id="o3f-FU-KsE"/>
+                    <constraint firstAttribute="trailing" secondItem="SrA-0y-IU5" secondAttribute="trailing" constant="15" id="sT2-MU-bII"/>
+                    <constraint firstItem="ich-dS-yff" firstAttribute="leading" secondItem="SLJ-3u-6zF" secondAttribute="trailing" constant="8" id="snE-Z1-gQ5"/>
+                    <constraint firstAttribute="bottom" secondItem="eSp-6g-gvv" secondAttribute="bottom" id="t8s-Vr-J0n"/>
+                    <constraint firstItem="SrA-0y-IU5" firstAttribute="centerY" secondItem="8dm-OK-jVd" secondAttribute="centerY" id="ySp-tl-gjY"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="6Kw-70-gUj"/>
+            <connections>
+                <outlet property="cell2TimeLabel" destination="90n-dQ-PDx" id="Pbc-5J-3RB"/>
+                <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"/>
+        </tableViewCell>
     </objects>
     <resources>
         <image name="chatmsg_list_testuser_img" width="45" height="45"/>

+ 3 - 3
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/NewRowUserCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15505" 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="15510"/>
+        <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>
@@ -17,7 +17,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="320" height="65"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="67y-d7-5Ej">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="67y-d7-5Ej">
                         <rect key="frame" x="15" y="11" width="43" height="43"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="43" id="qwR-vu-bGC"/>

+ 8 - 10
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/Cell/TDGroupInfoDetailCell.xib

@@ -1,9 +1,9 @@
 <?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>
@@ -20,7 +20,7 @@
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="my_qrcode_code_icon" translatesAutoresizingMaskIntoConstraints="NO" id="1vv-hL-yQB">
                         <rect key="frame" x="287" y="23.5" width="18" height="18"/>
                     </imageView>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="jpS-G8-vDC">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="jpS-G8-vDC">
                         <rect key="frame" x="15" y="11" width="43" height="43"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="43" id="10J-fn-5DU"/>
@@ -120,7 +120,7 @@
             <connections>
                 <outlet property="cell1TitleL" destination="GS3-Ox-3BP" id="gMw-28-bKU"/>
             </connections>
-            <point key="canvasLocation" x="-26" y="-2"/>
+            <point key="canvasLocation" x="-43" y="-24"/>
         </tableViewCell>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TDGroupInfoDetailCell2" id="O0H-3k-TJe" userLabel="Group Info Detail Cell2" customClass="TDGroupInfoDetailCell">
             <rect key="frame" x="0.0" y="0.0" width="320" height="65"/>
@@ -170,7 +170,7 @@
                 <outlet property="cell2Switch" destination="B4W-qb-DWy" id="KkB-81-qst"/>
                 <outlet property="cell2TitleL" destination="FSi-Mq-N2z" id="x7g-ei-TfR"/>
             </connections>
-            <point key="canvasLocation" x="-26.086956521739133" y="65.959821428571431"/>
+            <point key="canvasLocation" x="-43" y="78"/>
         </tableViewCell>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TDGroupInfoDetailCell3" id="Zdu-fk-k15" userLabel="Group Info Detail Cell3" customClass="TDGroupInfoDetailCell">
             <rect key="frame" x="0.0" y="0.0" width="322" height="65"/>
@@ -210,7 +210,7 @@
                 <outlet property="cell3AddBtn" destination="dBT-Vg-sQj" id="fDA-uo-3Z8"/>
                 <outlet property="cell3TitleL" destination="LsZ-Hg-V1w" id="UMf-fI-IYU"/>
             </connections>
-            <point key="canvasLocation" x="-45" y="164"/>
+            <point key="canvasLocation" x="-45" y="172"/>
         </tableViewCell>
         <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TDGroupInfoDetailCell4" id="qSk-gr-5em" userLabel="Group Info Detail Cell4" customClass="TDGroupInfoDetailCell">
             <rect key="frame" x="0.0" y="0.0" width="320" height="65"/>
@@ -219,12 +219,10 @@
                 <rect key="frame" x="0.0" y="0.0" width="320" height="65"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Qya-n7-dBG">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Qya-n7-dBG">
                         <rect key="frame" x="15" y="11" width="43" height="43"/>
                         <constraints>
-                            <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="43" id="0yv-5Q-Ysi"/>
                             <constraint firstAttribute="height" constant="43" id="AiR-d2-wYe"/>
-                            <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="43" id="NsU-nq-38c"/>
                             <constraint firstAttribute="width" constant="43" id="m49-82-pMr"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
@@ -316,7 +314,7 @@
                 <outlet property="cell4imgV" destination="Qya-n7-dBG" id="MnD-ay-blk"/>
                 <outlet property="cell4subL" destination="g7p-Kr-1XC" id="MJW-9w-PIE"/>
             </connections>
-            <point key="canvasLocation" x="-57.971014492753625" y="264.84375"/>
+            <point key="canvasLocation" x="-46" y="271"/>
         </tableViewCell>
     </objects>
     <resources>

+ 3 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/MyTDGroup/VC/ChatNewRowVC.m

@@ -130,8 +130,10 @@
     AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
-    vc.titleStr = @"添加成员";
+    vc.titleStr = @"选人";
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     vc.UserIds = self.selectIdArray;
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 - (void)recviveChaoSongRen:(NSNotification *)notification{

+ 29 - 6
smartRhino/Project/VCModel/ChatMessage/Controller/TDInternalLeter/contoller/TDInterLeterHomeViewController.m

@@ -897,6 +897,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -916,6 +917,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -935,6 +937,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -954,6 +957,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -973,6 +977,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -992,6 +997,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1015,6 +1021,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1033,6 +1040,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1051,6 +1059,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1069,6 +1078,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1087,6 +1097,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1105,6 +1116,7 @@
                                         NSLog(@"恢复已删除站内信");
                                         [weakSelf reDoDeleteFind:@[model].mutableCopy];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1129,6 +1141,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1148,6 +1161,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1167,6 +1181,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1186,6 +1201,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1205,6 +1221,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1224,6 +1241,7 @@
                                         [weakSelf sumCount];
                                         [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                     }];
+                                    cell.isShow = model.IsTop;
                                     return cell;
                                 }
                                     break;
@@ -1283,14 +1301,19 @@
 - (void)setIntroLabelWithModel:(NoticeModel *)model introLabel:(UILabel *)introLabel unreadNumberLabel:(UILabel *)unreadNumberLabel {
     //判断是否匿名
     if (model.IsAdmin) {
-        if (model.EnjoyUser.length > 10) {
-            NSRange range1 = NSMakeRange(10, (model.EnjoyUser.length - 10));
-            NSString *resultStr1 = [model.EnjoyUser stringByReplacingCharactersInRange:range1 withString:@"..."];
-            introLabel.text = [NSString stringWithFormat:@"收件人:%@",resultStr1];
+        if (model.TypeValue  == 18) {
+            introLabel.text = @"匿名";
+            unreadNumberLabel.text = nil;
         }else{
-            introLabel.text = [NSString stringWithFormat:@"收件人:%@",model.EnjoyUser];
+            if (model.EnjoyUser.length > 10) {
+                NSRange range1 = NSMakeRange(10, (model.EnjoyUser.length - 10));
+                NSString *resultStr1 = [model.EnjoyUser stringByReplacingCharactersInRange:range1 withString:@"..."];
+                introLabel.text = [NSString stringWithFormat:@"收件人:%@",resultStr1];
+            }else{
+                introLabel.text = [NSString stringWithFormat:@"收件人:%@",model.EnjoyUser];
+            }
+            unreadNumberLabel.text = [NSString stringWithFormat:@"已读:%ld/%ld",(long)model.ReadCount,(long)model.AllCount];
         }
-        unreadNumberLabel.text = [NSString stringWithFormat:@"已读:%ld/%ld",(long)model.ReadCount,(long)model.AllCount];
     }else {
         if (model.TypeValue  == 18) {
             introLabel.text = @"匿名";

+ 0 - 1
smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/MenuListView.h

@@ -23,7 +23,6 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)setViewHeight:(CGFloat)height;
 - (void)show;
 - (void)dismiss;
-
 @end
 
 NS_ASSUME_NONNULL_END

+ 19 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/TopicShowListView.h

@@ -0,0 +1,19 @@
+//
+//  TopicShowListView.h
+//  smartRhino
+//
+//  Created by niuzhen on 2019/12/12.
+//  Copyright © 2019 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface TopicShowListView : UIView
++ (instancetype)share:(UIView *)view;
+- (void)show;
+- (void)dismiss;
+@end
+
+NS_ASSUME_NONNULL_END

+ 210 - 0
smartRhino/Project/VCModel/ChatMessage/Controller/WaitWork/View/TopicShowListView.m

@@ -0,0 +1,210 @@
+//
+//  TopicShowListView.m
+//  smartRhino
+//
+//  Created by niuzhen on 2019/12/12.
+//  Copyright © 2019 tederen. All rights reserved.
+//
+
+#import "TopicShowListView.h"
+#import "TopicBookModel.h"
+#import "TopicBookCell.h"
+
+@interface TopicShowListView()<UITableViewDelegate,UITableViewDataSource>
+@property (nonatomic, strong)NSMutableArray * listArray;
+@property (nonatomic, strong)UIView * topView;
+@property (nonatomic, strong)UIView * bgView;
+@property (nonatomic, strong)UITableView * tableView;
+@end
+@implementation TopicShowListView
+
++ (instancetype)share:(UIView *)view
+{
+    return [[TopicShowListView alloc] initWithView:view];
+}
+- (instancetype)initWithView:(UIView *)view
+{
+    if (self = [super init]) {
+        self.topView = view;
+        [self setCusView];
+    }
+    return self;
+}
+
+- (UIView *)bgView
+{
+    if (!_bgView) {
+        _bgView = [UIView new];
+        _bgView.backgroundColor = [UIColor blackColor];
+        _bgView.alpha = 0.65f;
+    }
+    return _bgView;
+}
+
+- (void)setCusView
+{
+    [self setFrame: CGRectMake(0, CGRectGetMaxY(self.topView.frame) , SCREEN_WIDTH, SCREEN_HEIGHT - CGRectGetMaxY(self.topView.frame))];
+    
+    [self addSubview:self.bgView];
+
+    [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.mas_equalTo(self);
+    }];
+    WS(weakSelf);
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        [weakSelf dismiss];
+    }];
+    [self.bgView addGestureRecognizer:tap];
+    [self addSubview:self.tableView];
+    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.left.top.right.mas_equalTo(self);
+        make.height.mas_offset(380);
+    }];
+    [self getData];
+}
+- (void)getData
+{
+    WS(weakSelf);
+    [self.listArray removeAllObjects];
+    [[HttpManager sharedHttpManager] GETUrl:Host(API_APP_Middle_Lately_Folder) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        for (NSDictionary * dict in responseObject) {
+            TopicBookModel * model = [TopicBookModel modelWithJSON:dict];
+            [weakSelf.listArray addObject:model];
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+- (NSMutableArray *)listArray
+{
+    if (!_listArray) {
+        _listArray = [NSMutableArray array];
+    }
+    return _listArray;
+}
+- (UITableView *)tableView
+{
+    if (!_tableView) {
+        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
+        _tableView.delegate = self;
+        _tableView.dataSource = self;
+    }
+    return _tableView;
+}
+- (void)show
+{
+    [[UIApplication sharedApplication].keyWindow addSubview:self];
+    [UIView animateWithDuration:0.4 animations:^{
+        
+    } completion:^(BOOL finished) {}];
+}
+- (void)dismiss
+{
+    WS(weakSelf);
+    [[UIApplication sharedApplication].keyWindow addSubview:self];
+    [UIView animateWithDuration:0.4 animations:^{
+        
+    } completion:^(BOOL finished) {
+//        if (weakSelf.dismissBlock) {
+//            weakSelf.dismissBlock();
+//        }
+        [weakSelf removeFromSuperview];
+    }];
+}
+#pragma mark - UITableViewDelegate
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 2;
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    switch (section) {
+        case 0:
+        {
+            return 1;
+        }
+            break;
+        default:
+        {
+            return self.listArray.count;
+        }
+            break;
+    }
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return UITableViewAutomaticDimension;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
+{
+    if (section > 0) {
+        return 30.f;
+    }
+    return 0.01f;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
+{
+    return 0.01f;
+}
+- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
+{
+    if (section > 0) {
+        UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 30)];
+        view.backgroundColor = UIColorHex(0xF5F6F8);
+        UILabel * label = [UILabel new];
+        [view addSubview:label];
+        label.text = @"最近使用";
+        label.font = Kfont(14);
+        label.textColor = UIColorHex(0x999999);
+        [label mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_offset(15);
+            make.centerY.mas_equalTo(view);
+        }];
+        return view;
+    }
+    return [UIView new];
+}
+- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
+{
+    return [UIView new];
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+      switch (indexPath.section) {
+          case 0:
+          {
+              TopicBookCell * cell = [TopicBookCell configCell0:tableView indexPath:indexPath];
+              cell.imagV.image = IMG(@"topic_listIcon");
+              cell.titleL.text = @"话题本";
+              cell.countL.hidden = YES;
+              return cell;
+          }
+              break;
+          default:
+          {
+              TopicBookModel * model = [self.listArray objectAtIndex:indexPath.row];
+              TopicBookCell * cell = [TopicBookCell configCell1:tableView indexPath:indexPath];
+              cell.titleL.text = model.Name;
+              switch (model.RoleId) {
+                  case 1:
+                  {
+                      cell.subtitleL.text = @"公开";
+                  }
+                      break;
+                  default:
+                  {
+                      cell.subtitleL.text = [NSString stringWithFormat:@"共享范围:%@",model.EnjoyUser.length > 0 ? model.EnjoyUser : @""];
+                  }
+                      break;
+              }
+              cell.countL.text = [NSString stringWithFormat:@"%ld",model.FileCount];
+              return cell;
+          }
+              break;
+      }
+}
+
+@end

+ 4 - 4
smartRhino/Project/VCModel/ChatMessage/View/ChatMsgListCell.xib

@@ -1,9 +1,9 @@
 <?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>
@@ -182,7 +182,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="jW0-ag-kPY">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="jW0-ag-kPY">
                         <rect key="frame" x="16.5" y="18" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="NJf-yw-PzU"/>
@@ -327,7 +327,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="Ab5-vV-RRj">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chatmsg_list_testuser_img" translatesAutoresizingMaskIntoConstraints="NO" id="Ab5-vV-RRj">
                         <rect key="frame" x="46" y="18" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="40" id="Yym-3z-dq7"/>

+ 2 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MySendInfo/View/SendInfoGroupCell.m

@@ -56,6 +56,8 @@
 //}
 - (void)awakeFromNib {
     [super awakeFromNib];
+    self.iconImageView.layer.cornerRadius = 4.f;
+    self.iconImageView.layer.masksToBounds = YES;
     [self.selectbuton setCurrentButtonHotSize:CGSizeZero];
 }
 

+ 11 - 11
smartRhino/Project/VCModel/Home/OtherHomeVC/MySendInfo/View/SendInfoGroupCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15702" 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="15704"/>
+        <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>
@@ -18,12 +18,12 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fOb-yZ-m5M" customClass="TDButton">
-                        <rect key="frame" x="6" y="7.5" width="50" height="50"/>
+                        <rect key="frame" x="4" y="13.5" width="38" height="38"/>
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="right_img" translatesAutoresizingMaskIntoConstraints="NO" id="p5D-ms-IRn">
-                        <rect key="frame" x="289" y="19" width="15" height="27"/>
+                        <rect key="frame" x="296.5" y="26" width="7.5" height="13.5"/>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xF1-WS-Ksc">
                         <rect key="frame" x="13.5" y="64" width="306.5" height="1"/>
@@ -32,15 +32,15 @@
                             <constraint firstAttribute="height" constant="1" id="ckM-jc-YuB"/>
                         </constraints>
                     </view>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="aZS-br-FWU">
-                        <rect key="frame" x="69" y="12.5" width="40" height="40"/>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="aZS-br-FWU">
+                        <rect key="frame" x="46" y="12.5" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="9mo-mv-pTX"/>
                             <constraint firstAttribute="height" constant="40" id="DGI-DJ-iEo"/>
                         </constraints>
                     </imageView>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YGT-Vf-eVm">
-                        <rect key="frame" x="119" y="20.5" width="43" height="24"/>
+                        <rect key="frame" x="96" y="20.5" width="43" height="24"/>
                         <fontDescription key="fontDescription" name="PingFangSC-Regular" family="PingFang SC" pointSize="17"/>
                         <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
                         <nil key="highlightedColor"/>
@@ -49,14 +49,14 @@
                 <constraints>
                     <constraint firstItem="aZS-br-FWU" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="2Bx-9v-cqk"/>
                     <constraint firstAttribute="trailing" secondItem="xF1-WS-Ksc" secondAttribute="trailing" id="2pL-eK-l2s"/>
-                    <constraint firstItem="aZS-br-FWU" firstAttribute="leading" secondItem="fOb-yZ-m5M" secondAttribute="trailing" constant="13" id="74O-gs-WGv"/>
+                    <constraint firstItem="aZS-br-FWU" firstAttribute="leading" secondItem="fOb-yZ-m5M" secondAttribute="trailing" constant="4" id="74O-gs-WGv"/>
                     <constraint firstItem="YGT-Vf-eVm" firstAttribute="leading" secondItem="aZS-br-FWU" secondAttribute="trailing" constant="10" id="969-F2-RFo"/>
                     <constraint firstItem="YGT-Vf-eVm" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Cce-e9-MR8"/>
                     <constraint firstItem="p5D-ms-IRn" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Ir8-f6-sOD"/>
                     <constraint firstAttribute="bottom" secondItem="xF1-WS-Ksc" secondAttribute="bottom" id="T3o-LV-Z9l"/>
                     <constraint firstItem="fOb-yZ-m5M" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="aGj-Am-GeE"/>
                     <constraint firstItem="xF1-WS-Ksc" firstAttribute="width" secondItem="H2p-sc-9uM" secondAttribute="width" multiplier="359:375" id="aXR-zp-HnK"/>
-                    <constraint firstItem="fOb-yZ-m5M" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="6" id="eoH-ly-lab"/>
+                    <constraint firstItem="fOb-yZ-m5M" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="4" id="eoH-ly-lab"/>
                     <constraint firstAttribute="trailing" secondItem="p5D-ms-IRn" secondAttribute="trailing" constant="16" id="hLd-V1-6k9"/>
                 </constraints>
             </tableViewCellContentView>
@@ -72,7 +72,7 @@
     </objects>
     <resources>
         <image name="right_img" width="7.5" height="13.5"/>
-        <image name="sendinfo_no" width="25" height="25"/>
-        <image name="sendinfo_yes" width="25" height="25"/>
+        <image name="sendinfo_no" width="38" height="38"/>
+        <image name="sendinfo_yes" width="38" height="38"/>
     </resources>
 </document>

+ 25 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/Model/TopicBookModel.h

@@ -0,0 +1,25 @@
+//
+//  TopicBookModel.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface TopicBookModel : BaseModel
+@property (nonatomic, assign) NSInteger      Id;
+@property (nonatomic, assign) NSInteger      RoleId;
+@property (nonatomic, assign) NSInteger      FileCount;
+@property (nonatomic, assign) BOOL        IsTop;
+@property (nonatomic, assign) BOOL        IsFolder;
+@property (nonatomic, assign) BOOL        IsSelect;
+@property (nonatomic, assign) BOOL        IsSystemDefault;
+@property (nonatomic, copy) NSString     *EnjoyUser;
+@property (nonatomic, copy) NSString     *Name;
+@end
+
+NS_ASSUME_NONNULL_END

+ 13 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/Model/TopicBookModel.m

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

+ 338 - 3
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/MyTDTopicExtent.storyboard

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" 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"/>
-        <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>
@@ -353,7 +353,7 @@
                                 <rect key="frame" x="0.0" y="92" width="414" height="644"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pd4-La-7ks">
-                                        <rect key="frame" x="65" y="160" width="284" height="119"/>
+                                        <rect key="frame" x="136" y="160" width="142" height="59.666666666666657"/>
                                         <state key="normal" image="Topic_New_Filed"/>
                                     </button>
                                 </subviews>
@@ -403,6 +403,7 @@
                         <outlet property="noDataBtn" destination="Pd4-La-7ks" id="VeH-eG-Vzb"/>
                         <outlet property="noDataView" destination="W6d-gq-POi" id="iwo-Fk-oXR"/>
                         <outlet property="operationAllSelectButton" destination="Iwd-Vt-2eZ" id="o8q-Lp-K92"/>
+                        <outlet property="showL" destination="SLT-f7-M6F" id="HUs-na-okV"/>
                         <outlet property="tableView" destination="aCX-FT-240" id="rbL-N0-ykL"/>
                         <outlet property="titleL" destination="hpk-yx-3ZD" id="6Fo-fK-8yA"/>
                     </connections>
@@ -515,11 +516,345 @@
             </objects>
             <point key="canvasLocation" x="1246" y="95"/>
         </scene>
+        <!--MyTD Topic BookVC-->
+        <scene sceneID="kMh-eW-Dk6">
+            <objects>
+                <viewController storyboardIdentifier="MyTDTopicBookVC" id="Rtm-D7-nPE" customClass="MyTDTopicBookVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="kRR-Rg-6gz">
+                        <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="g3m-J5-Pj1" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eFL-1r-JxA">
+                                        <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="8pa-ZR-bFn">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="Rg8-tV-8Dx"/>
+                                                    <constraint firstAttribute="width" constant="50" id="ttL-G8-EwU"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="Rtm-D7-nPE" eventType="touchUpInside" id="PiZ-Lx-0Ah"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ktE-5E-KM6">
+                                                <rect key="frame" x="52" y="-3" width="31" height="50"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="50" id="xRm-oE-Uix"/>
+                                                    <constraint firstAttribute="width" constant="31" id="zAl-uT-g0R"/>
+                                                </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="Rtm-D7-nPE" eventType="touchUpInside" id="TfN-So-2ro"/>
+                                                </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="lfS-yL-8Jc">
+                                                <rect key="frame" x="182.66666666666666" y="11.999999999999998" width="49" height="20.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="cM4-xz-dhj">
+                                                <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="2Jh-Dw-Ctb"/>
+                                                </constraints>
+                                            </view>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wZR-8P-T4R">
+                                                <rect key="frame" x="364" y="0.0" width="50" height="43.666666666666664"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="50" id="N6O-40-2q3"/>
+                                                </constraints>
+                                                <state key="normal" image="chatmsg_right_add_icon"/>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dbA-yY-yEa">
+                                                <rect key="frame" x="314" y="0.0" width="50" height="43.666666666666664"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="50" id="7IP-Q1-0un"/>
+                                                </constraints>
+                                                <state key="normal" image="chatmsg_right_edit_icon"/>
+                                            </button>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstItem="cM4-xz-dhj" firstAttribute="top" secondItem="dbA-yY-yEa" secondAttribute="bottom" id="7TB-Y5-MK6"/>
+                                            <constraint firstAttribute="trailing" secondItem="cM4-xz-dhj" secondAttribute="trailing" id="ABD-LT-PHT"/>
+                                            <constraint firstItem="dbA-yY-yEa" firstAttribute="top" secondItem="eFL-1r-JxA" secondAttribute="top" id="Cqe-nV-7Xq"/>
+                                            <constraint firstItem="lfS-yL-8Jc" firstAttribute="centerY" secondItem="ktE-5E-KM6" secondAttribute="centerY" id="JN6-Am-iRE"/>
+                                            <constraint firstAttribute="bottom" secondItem="8pa-ZR-bFn" secondAttribute="bottom" id="Q3Q-qQ-25S"/>
+                                            <constraint firstAttribute="height" constant="44" id="R0p-gI-lcn"/>
+                                            <constraint firstItem="cM4-xz-dhj" firstAttribute="top" secondItem="wZR-8P-T4R" secondAttribute="bottom" id="VHT-Tk-BlV"/>
+                                            <constraint firstAttribute="trailing" secondItem="wZR-8P-T4R" secondAttribute="trailing" id="Vaq-XG-pMl"/>
+                                            <constraint firstItem="lfS-yL-8Jc" firstAttribute="centerX" secondItem="eFL-1r-JxA" secondAttribute="centerX" id="WYz-Ps-7bI"/>
+                                            <constraint firstAttribute="bottom" secondItem="cM4-xz-dhj" secondAttribute="bottom" id="YSl-kW-u1s"/>
+                                            <constraint firstItem="ktE-5E-KM6" firstAttribute="centerY" secondItem="8pa-ZR-bFn" secondAttribute="centerY" id="Z2v-7e-fEl"/>
+                                            <constraint firstItem="cM4-xz-dhj" firstAttribute="leading" secondItem="eFL-1r-JxA" secondAttribute="leading" id="Za6-Oh-sqq"/>
+                                            <constraint firstItem="wZR-8P-T4R" firstAttribute="leading" secondItem="dbA-yY-yEa" secondAttribute="trailing" id="eET-Tb-z82"/>
+                                            <constraint firstItem="wZR-8P-T4R" firstAttribute="top" secondItem="eFL-1r-JxA" secondAttribute="top" id="ors-eG-y25"/>
+                                            <constraint firstItem="8pa-ZR-bFn" firstAttribute="leading" secondItem="eFL-1r-JxA" secondAttribute="leading" id="ufv-vx-R2b"/>
+                                            <constraint firstItem="ktE-5E-KM6" firstAttribute="leading" secondItem="8pa-ZR-bFn" secondAttribute="trailing" constant="2" id="yK3-hg-VoC"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstAttribute="bottom" secondItem="eFL-1r-JxA" secondAttribute="bottom" id="1r4-dM-T0t"/>
+                                    <constraint firstItem="eFL-1r-JxA" firstAttribute="leading" secondItem="g3m-J5-Pj1" secondAttribute="leading" id="E6D-7X-sfy"/>
+                                    <constraint firstAttribute="height" constant="64" id="Ofl-Vv-vgq"/>
+                                    <constraint firstItem="eFL-1r-JxA" firstAttribute="trailing" secondItem="g3m-J5-Pj1" secondAttribute="trailing" id="zlt-J2-9ne"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="g1K-if-pBR"/>
+                                <connections>
+                                    <outlet property="height" destination="Ofl-Vv-vgq" id="H4g-YO-TCW"/>
+                                </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="dtQ-cN-F8x">
+                                <rect key="frame" x="0.0" y="110" width="414" height="626"/>
+                            </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xXK-ea-Oth">
+                                <rect key="frame" x="0.0" y="64" width="414" height="46"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="46" id="5Gw-Ot-rT0"/>
+                                </constraints>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ivt-5J-fKu">
+                                <rect key="frame" x="0.0" y="180" width="414" height="556"/>
+                                <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="fIQ-cs-uZR">
+                                        <rect key="frame" x="57" y="90" width="300" height="38.333333333333343"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="300" id="KDm-V8-fZz"/>
+                                        </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="fIQ-cs-uZR" firstAttribute="centerX" secondItem="Ivt-5J-fKu" secondAttribute="centerX" id="j2A-WM-j08"/>
+                                    <constraint firstItem="fIQ-cs-uZR" firstAttribute="top" secondItem="Ivt-5J-fKu" secondAttribute="top" constant="90" id="kCT-Hz-F6A"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="Ivt-5J-fKu" firstAttribute="bottom" secondItem="lyD-3e-6RU" secondAttribute="bottom" id="3X2-0N-11R"/>
+                            <constraint firstItem="dtQ-cN-F8x" firstAttribute="leading" secondItem="lyD-3e-6RU" secondAttribute="leading" id="E8R-Jl-6i6"/>
+                            <constraint firstItem="lyD-3e-6RU" firstAttribute="trailing" secondItem="xXK-ea-Oth" secondAttribute="trailing" id="NVa-xr-Az0"/>
+                            <constraint firstItem="xXK-ea-Oth" firstAttribute="leading" secondItem="lyD-3e-6RU" secondAttribute="leading" id="TF6-Hh-NJX"/>
+                            <constraint firstItem="dtQ-cN-F8x" firstAttribute="trailing" secondItem="lyD-3e-6RU" secondAttribute="trailing" id="aHt-nd-ucK"/>
+                            <constraint firstItem="Ivt-5J-fKu" firstAttribute="top" secondItem="xXK-ea-Oth" secondAttribute="bottom" constant="70" id="bwu-zm-Cqu"/>
+                            <constraint firstItem="dtQ-cN-F8x" firstAttribute="top" secondItem="xXK-ea-Oth" secondAttribute="bottom" id="iZc-VX-Sq6"/>
+                            <constraint firstItem="Ivt-5J-fKu" firstAttribute="trailing" secondItem="lyD-3e-6RU" secondAttribute="trailing" id="kDC-ns-hkn"/>
+                            <constraint firstAttribute="bottom" secondItem="dtQ-cN-F8x" secondAttribute="bottom" id="kzg-wj-WMc"/>
+                            <constraint firstItem="g3m-J5-Pj1" firstAttribute="trailing" secondItem="lyD-3e-6RU" secondAttribute="trailing" id="qUx-fK-skr"/>
+                            <constraint firstItem="Ivt-5J-fKu" firstAttribute="leading" secondItem="lyD-3e-6RU" secondAttribute="leading" id="ss8-xR-p0L"/>
+                            <constraint firstItem="g3m-J5-Pj1" firstAttribute="top" secondItem="kRR-Rg-6gz" secondAttribute="top" id="ttD-dx-kaz"/>
+                            <constraint firstItem="g3m-J5-Pj1" firstAttribute="leading" secondItem="lyD-3e-6RU" secondAttribute="leading" id="uiJ-rL-vpt"/>
+                            <constraint firstItem="xXK-ea-Oth" firstAttribute="top" secondItem="g3m-J5-Pj1" secondAttribute="bottom" id="vYQ-GM-Ets"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="lyD-3e-6RU"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="znv-3N-bu4"/>
+                    <connections>
+                        <outlet property="HeadView" destination="xXK-ea-Oth" id="bvY-Of-j20"/>
+                        <outlet property="addBtn" destination="wZR-8P-T4R" id="OIq-eL-mFK"/>
+                        <outlet property="createBtn" destination="dbA-yY-yEa" id="Mx5-nd-Noz"/>
+                        <outlet property="noDataL" destination="fIQ-cs-uZR" id="tiB-Ja-mZn"/>
+                        <outlet property="noDataView" destination="Ivt-5J-fKu" id="qOI-32-1AY"/>
+                        <outlet property="tableView" destination="dtQ-cN-F8x" id="X7r-69-Okv"/>
+                        <outlet property="titleL" destination="lfS-yL-8Jc" id="Kij-u7-9cZ"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="FKq-FE-FKo" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-213.04347826086959" y="782.60869565217399"/>
+        </scene>
+        <!--MyTD Topic Book EditVC-->
+        <scene sceneID="aZr-kZ-I6m">
+            <objects>
+                <viewController storyboardIdentifier="MyTDTopicBookEditVC" id="0Vu-zw-V7g" customClass="MyTDTopicBookEditVC" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="LOT-gI-bQU">
+                        <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="CM2-rx-Y9f" customClass="WQNavigationBar">
+                                <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RWq-2p-iX0">
+                                        <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="Yr8-ey-zKD">
+                                                <rect key="frame" x="0.0" y="0.0" width="50" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="0bg-8g-r1r"/>
+                                                    <constraint firstAttribute="width" constant="50" id="zJB-P1-jDd"/>
+                                                </constraints>
+                                                <state key="normal" image="back_black_icon"/>
+                                                <connections>
+                                                    <action selector="backAction:" destination="0Vu-zw-V7g" eventType="touchUpInside" id="8vf-Hu-jF8"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9pl-ty-prH">
+                                                <rect key="frame" x="50" y="0.0" width="33" height="44"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="44" id="qvL-ov-tfP"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
+                                                <state key="normal" title="全选">
+                                                    <color key="titleColor" red="0.22352941179999999" green="0.47450980390000003" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                                                </state>
+                                            </button>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="批量编辑" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ECl-LC-cuJ">
+                                                <rect key="frame" x="174.33333333333334" y="12.333333333333334" width="65.333333333333343" 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>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="44" id="4os-4W-sfx"/>
+                                            <constraint firstItem="9pl-ty-prH" firstAttribute="top" secondItem="Yr8-ey-zKD" secondAttribute="top" id="7Sh-UP-x3f"/>
+                                            <constraint firstItem="ECl-LC-cuJ" firstAttribute="centerX" secondItem="RWq-2p-iX0" secondAttribute="centerX" id="JO2-nH-K0g"/>
+                                            <constraint firstAttribute="bottom" secondItem="Yr8-ey-zKD" secondAttribute="bottom" id="PYg-eX-PjS"/>
+                                            <constraint firstItem="9pl-ty-prH" firstAttribute="leading" secondItem="Yr8-ey-zKD" secondAttribute="trailing" id="Rdw-em-Lk1"/>
+                                            <constraint firstItem="Yr8-ey-zKD" firstAttribute="leading" secondItem="RWq-2p-iX0" secondAttribute="leading" id="Xd6-am-dvt"/>
+                                            <constraint firstItem="9pl-ty-prH" firstAttribute="bottom" secondItem="Yr8-ey-zKD" secondAttribute="bottom" id="eE1-zZ-jdv"/>
+                                            <constraint firstItem="ECl-LC-cuJ" firstAttribute="centerY" secondItem="Yr8-ey-zKD" secondAttribute="centerY" id="q3q-lH-Kf0"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <constraints>
+                                    <constraint firstItem="RWq-2p-iX0" firstAttribute="leading" secondItem="aQL-Xm-RS4" secondAttribute="leading" id="9LM-sd-rfH"/>
+                                    <constraint firstItem="aQL-Xm-RS4" firstAttribute="bottom" secondItem="RWq-2p-iX0" secondAttribute="bottom" id="CTR-Wh-jI6"/>
+                                    <constraint firstItem="RWq-2p-iX0" firstAttribute="trailing" secondItem="aQL-Xm-RS4" secondAttribute="trailing" id="aKX-1b-PoC"/>
+                                    <constraint firstAttribute="height" constant="64" id="yRS-5s-b9n"/>
+                                </constraints>
+                                <viewLayoutGuide key="safeArea" id="aQL-Xm-RS4"/>
+                                <connections>
+                                    <outlet property="height" destination="yRS-5s-b9n" id="SUg-ek-C95"/>
+                                </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="UXX-uU-81U">
+                                <rect key="frame" x="0.0" y="64" width="414" height="622"/>
+                            </tableView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1H8-bJ-X8i">
+                                <rect key="frame" x="0.0" y="686" width="414" height="50"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z6f-nL-0ne">
+                                        <rect key="frame" x="0.0" y="0.0" width="414" height="0.66666666666666663"/>
+                                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="calibratedRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="0.5" id="VNr-hg-RRV"/>
+                                        </constraints>
+                                    </view>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ixw-4d-6Ap">
+                                        <rect key="frame" x="206.66666666666666" y="0.66666666666662877" width="0.66666666666665719" height="49.333333333333336"/>
+                                        <color key="backgroundColor" red="0.8980392157" green="0.8980392157" blue="0.8980392157" alpha="1" colorSpace="calibratedRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="0.5" id="1LJ-kd-Fhm"/>
+                                        </constraints>
+                                    </view>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OwR-gz-RBk">
+                                        <rect key="frame" x="0.0" y="0.66666666666662877" width="206.66666666666666" height="49.333333333333336"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                        <state key="normal" title="删除">
+                                            <color key="titleColor" red="1" green="0.32156862749999998" blue="0.32156862749999998" alpha="1" colorSpace="calibratedRGB"/>
+                                        </state>
+                                    </button>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zyY-kO-VCd">
+                                        <rect key="frame" x="207.33333333333337" y="0.66666666666662877" width="206.66666666666663" height="49.333333333333336"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                        <state key="normal" title="移动">
+                                            <color key="titleColor" red="0.80000000000000004" green="0.80000000000000004" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        </state>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                                <constraints>
+                                    <constraint firstItem="OwR-gz-RBk" firstAttribute="leading" secondItem="1H8-bJ-X8i" secondAttribute="leading" id="3iT-Rf-hH5"/>
+                                    <constraint firstAttribute="bottom" secondItem="ixw-4d-6Ap" secondAttribute="bottom" id="5Bb-5Y-Yei"/>
+                                    <constraint firstItem="ixw-4d-6Ap" firstAttribute="centerX" secondItem="1H8-bJ-X8i" secondAttribute="centerX" id="6Oy-Lk-4Ud"/>
+                                    <constraint firstAttribute="trailing" secondItem="Z6f-nL-0ne" secondAttribute="trailing" id="Ad3-Yk-TUz"/>
+                                    <constraint firstAttribute="bottom" secondItem="zyY-kO-VCd" secondAttribute="bottom" id="Dmm-OO-nTF"/>
+                                    <constraint firstAttribute="bottom" secondItem="OwR-gz-RBk" secondAttribute="bottom" id="EU4-O9-Te3"/>
+                                    <constraint firstItem="ixw-4d-6Ap" firstAttribute="leading" secondItem="OwR-gz-RBk" secondAttribute="trailing" id="Luf-Ie-Y8c"/>
+                                    <constraint firstItem="Z6f-nL-0ne" firstAttribute="leading" secondItem="1H8-bJ-X8i" secondAttribute="leading" id="SkQ-r1-KIp"/>
+                                    <constraint firstItem="ixw-4d-6Ap" firstAttribute="top" secondItem="Z6f-nL-0ne" secondAttribute="bottom" id="fGX-Vt-MuI"/>
+                                    <constraint firstItem="zyY-kO-VCd" firstAttribute="leading" secondItem="ixw-4d-6Ap" secondAttribute="trailing" id="gvb-rv-7zg"/>
+                                    <constraint firstAttribute="trailing" secondItem="zyY-kO-VCd" secondAttribute="trailing" id="jSA-UT-LtS"/>
+                                    <constraint firstItem="OwR-gz-RBk" firstAttribute="top" secondItem="Z6f-nL-0ne" secondAttribute="bottom" id="mSy-JT-45o"/>
+                                    <constraint firstAttribute="height" constant="50" id="vBR-vJ-Asd"/>
+                                    <constraint firstItem="zyY-kO-VCd" firstAttribute="top" secondItem="Z6f-nL-0ne" secondAttribute="bottom" id="vi7-1j-5Hf"/>
+                                    <constraint firstItem="Z6f-nL-0ne" firstAttribute="top" secondItem="1H8-bJ-X8i" secondAttribute="top" id="yFA-i4-hhj"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="UXX-uU-81U" firstAttribute="top" secondItem="CM2-rx-Y9f" secondAttribute="bottom" id="2vs-ks-MB7"/>
+                            <constraint firstItem="CM2-rx-Y9f" firstAttribute="leading" secondItem="bDG-8Q-apR" secondAttribute="leading" id="G7L-dU-w3q"/>
+                            <constraint firstItem="UXX-uU-81U" firstAttribute="leading" secondItem="bDG-8Q-apR" secondAttribute="leading" id="GpO-dt-dYv"/>
+                            <constraint firstItem="CM2-rx-Y9f" firstAttribute="top" secondItem="LOT-gI-bQU" secondAttribute="top" id="I1O-k2-Qgt"/>
+                            <constraint firstItem="1H8-bJ-X8i" firstAttribute="bottom" secondItem="bDG-8Q-apR" secondAttribute="bottom" id="XeF-IS-rBe"/>
+                            <constraint firstItem="1H8-bJ-X8i" firstAttribute="leading" secondItem="bDG-8Q-apR" secondAttribute="leading" id="YNf-nY-v3z"/>
+                            <constraint firstItem="1H8-bJ-X8i" firstAttribute="trailing" secondItem="bDG-8Q-apR" secondAttribute="trailing" id="Yyd-fl-vZH"/>
+                            <constraint firstItem="bDG-8Q-apR" firstAttribute="trailing" secondItem="UXX-uU-81U" secondAttribute="trailing" id="crD-w3-tcZ"/>
+                            <constraint firstItem="CM2-rx-Y9f" firstAttribute="trailing" secondItem="bDG-8Q-apR" secondAttribute="trailing" id="epC-9F-XHg"/>
+                            <constraint firstItem="1H8-bJ-X8i" firstAttribute="top" secondItem="UXX-uU-81U" secondAttribute="bottom" id="vFd-bf-1nh"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="bDG-8Q-apR"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="g19-O7-2r1"/>
+                    <connections>
+                        <outlet property="allSelectBtn" destination="9pl-ty-prH" id="Zzx-yc-pB4"/>
+                        <outlet property="deleteBtn" destination="OwR-gz-RBk" id="nrJ-nf-4N2"/>
+                        <outlet property="moveBtn" destination="zyY-kO-VCd" id="Pjs-y6-j0e"/>
+                        <outlet property="tableView" destination="UXX-uU-81U" id="ROJ-8I-fXE"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="vpX-hj-quU" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="458" y="783"/>
+        </scene>
     </scenes>
     <resources>
         <image name="Topic_New_Filed" width="142" height="59.666667938232422"/>
         <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"/>
         <image name="menu_black_icon" width="16.666666030883789" height="14.666666984558105"/>
     </resources>
 </document>

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

@@ -25,7 +25,6 @@
 #import "TDInterLeterDetailVC.h"
 #import "FileOpenViewController.h"
 #import "EMChatFileShowVC.h"
-#import "MyTDTopicCreateVC.h"
 #import "NoticeUnreadVC.h"
 #import "TDGroupInfoListVC.h"
 #import "DownFileViewController.h"
@@ -38,6 +37,7 @@
 #import "MyApprovalPageDetail.h"
 #import "OtherNoteBookVC.h"
 #import "OtherFavoriteVC.h"
+#import "TopicShowListView.h"
 #import <objc/runtime.h>
 
 @interface MyTDTopicCreateVC ()<WKUIDelegate,WKNavigationDelegate,UIScrollViewDelegate,WKScriptMessageHandler>
@@ -55,14 +55,31 @@
 @property (nonatomic,strong) NSMutableArray <SelectModel *> *shouJianArray;
 @property (nonatomic,strong) NSMutableArray  * MeetingArray;
 @property (strong, nonatomic) ShowBtn        * titleBtn;
+@property (strong, nonatomic) TopicShowListView        * menuListView;
+@property (assign, nonatomic) BOOL                       menuIsShow;
 @property (copy, nonatomic) NSDictionary     * H5JsonDict;
 @end
 
 @implementation MyTDTopicCreateVC
+
 + (MyTDTopicCreateVC *)initMyTDTopicCreateVC{
     MyTDTopicCreateVC *controller = [StoryboardManager.shared.myTDTopicExtent instantiateViewControllerWithIdentifier:@"MyTDTopicCreateVC"];
     return controller;
 }
+- (TopicShowListView *)menuListView
+{
+    if (!_menuListView) {
+        _menuListView = [TopicShowListView share:self.NavBarV];
+    }
+    return _menuListView;
+}
+- (void)viewWillDisappear:(BOOL)animated
+{
+    [super viewWillDisappear:animated];
+    [self.titleBtn dismissCom];
+    self.menuIsShow = NO;
+    [self.menuListView dismiss];
+}
 - (ShowBtn *)titleBtn
 {
     if (!_titleBtn) {
@@ -70,6 +87,53 @@
     }
     return _titleBtn;
 }
+- (void)setShowData
+{
+    self.menuIsShow = NO;
+    WS(weakSelf);
+    [self.titleBtn setAction:^{
+        if (!weakSelf.menuIsShow) {
+            [weakSelf.menuListView show];
+            [weakSelf.titleBtn showCom];
+//            weakSelf.menuListView.SelectBtnblock = ^(NSArray * _Nonnull array) {
+//                [weakSelf.titleBtn dismissCom];
+//                [weakSelf.selectGIdArray removeAllObjects];
+//                NSMutableString * showName = [[NSMutableString alloc] init];
+//                for (NSArray * subArray in array) {
+//                    for (TopicGroupManageModel * model in subArray) {
+//                        if (model.isSelect) {
+//                            [showName appendString:model.Name];
+//                            [weakSelf.selectGIdArray addObject:@(model.Id)];
+//                        }
+//                    }
+//                }
+//
+//                weakSelf.listName = showName;
+//                if (weakSelf.selectGIdArray.count > 0) {
+//                    [weakSelf headRefresh];
+//                }
+//            };
+//            weakSelf.menuListView.dismissBlock = ^{
+//                [weakSelf.showBtn dismissCom];
+//            };
+//            weakSelf.menuListView.SelectGroupblock = ^{
+//                [weakSelf.showBtn dismissCom];
+//                weakSelf.menuIsShow = NO;
+//                [weakSelf.menuListView dismiss];
+//                MyTDTopicGroupManageVC * vc = [MyTDTopicGroupManageVC initMyTDTopicGroupManageVC];
+//                vc.RefreshListBlock = ^{
+//                    [weakSelf getGroupList];
+//                };
+//                [weakSelf.navigationController pushViewController:vc animated:YES];
+//            };
+            weakSelf.menuIsShow = YES;
+        }else{
+            weakSelf.menuIsShow = NO;
+            [weakSelf.titleBtn dismissCom];
+            [weakSelf.menuListView dismiss];
+        }
+    }];
+}
 -(NSMutableArray *)getMenuDataSource{
     NSMutableArray *menuDataSourceArray = [[NSMutableArray alloc] init];
     NSArray * titleArray = @[@"写通知",@"写信件",@"匿名信"];
@@ -186,6 +250,7 @@
             break;
         case CollectModel_NewTopic:
         {
+//            [self setShowData];
             [self setDowntitleBtn];
             self.TitleL.hidden = YES;
             self.titleBtn.hidden = NO;
@@ -377,6 +442,7 @@
     [self.titleBtn setAction:^{
         MyTDTopicSelectExtentVC * vc = [MyTDTopicSelectExtentVC initMyTDTopicSelectExtentVC];
         vc.isSubVC = NO;
+        vc.isNoteBook = weakSelf.type == CollectModel_NoteBook ? YES : NO;
         vc.titleStr = @"选择发布范围";
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
@@ -814,6 +880,7 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.titleStr = self.type == CollectModel_meetMian ? @"发送范围" : @"选人";
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 - (void)recviveChaoSongRen:(NSNotification *)notification{

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

@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
 +(MyTDTopicDetailVC *)initMyTDTopicDetailVC;
 @property (nonatomic, copy) void(^deleteTopicBlock)(void);
 @property (nonatomic, assign) BOOL         isComment;
+@property (nonatomic, assign) BOOL         isNoteBook;
 @property (assign, nonatomic) CollectModelType  type;
 @property (assign, nonatomic) NSInteger  Id;
 @property (strong, nonatomic) NSURL     *URL;

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

@@ -143,7 +143,7 @@
             break;
         case CollectModel_NoteBook:
         {
-            self.titleL.text = @"笔记";
+            self.titleL.text = self.isNoteBook ? @"笔记" : @"话题";
             self.musicBtn.hidden = NO;
             [self setMailBottomView:NO];
         }
@@ -157,7 +157,7 @@
             break;
         default:
         {
-            self.titleL.text = @"话题";
+            self.titleL.text = self.isNoteBook ? @"笔记" : @"话题";
             [self setMailBottomView:NO];
         }
             break;
@@ -416,7 +416,7 @@
         }];
         
         NSDictionary * comParaDict = @{@"ArticleId":@(self.Id),
-                                       @"TypeValue":@(2),//通知 2
+                                       @"TypeValue":@([self backTypeValue]),//通知 2
                                        @"Page":@(self.currentPage),
                                        @"PerPage":@(20),
                                        @"sort":weakSelf.isSort ? @"asc":@"desc"
@@ -445,7 +445,7 @@
         }];
         
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(2),//通知 2
+                                       @"TypeValue":@([self backTypeValue]),//通知 2
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -483,7 +483,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * comParaDict = @{@"ArticleId":@(self.Id),
-                                       @"TypeValue":@(1),//话题 1
+                                       @"TypeValue":@([self backTypeValue]),//话题 1
                                        @"Page":@(self.currentPage),
                                        @"PerPage":@(20),
                                        @"sort":weakSelf.isSort ? @"asc":@"desc"
@@ -511,7 +511,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(1),//话题 1
+                                       @"TypeValue":@([self backTypeValue]),//话题 1
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -549,7 +549,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * comParaDict = @{@"ArticleId":@(self.Id),
-                                       @"TypeValue":@(10),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(self.currentPage),
                                        @"PerPage":@(20),
                                        @"sort":weakSelf.isSort ? @"asc":@"desc"
@@ -577,7 +577,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(10),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -615,7 +615,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * comParaDict = @{@"ArticleId":@(self.Id),
-                                       @"TypeValue":@(4),
+                                       @"TypeValue":@([self backTypeValue]),
                                        @"Page":@(self.currentPage),
                                        @"PerPage":@(20),
                                        @"sort":weakSelf.isSort ? @"asc":@"desc"
@@ -643,7 +643,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(3),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -711,7 +711,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(0),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -774,7 +774,7 @@
         }];
         
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(2),//通知 2
+                                       @"TypeValue":@([self backTypeValue]),//通知 2
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -811,7 +811,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(1),//话题 1
+                                       @"TypeValue":@([self backTypeValue]),//话题 1
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -848,7 +848,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(10),//话题 1
+                                       @"TypeValue":@([self backTypeValue]),//话题 1
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -885,7 +885,7 @@
 //            SHOWERROR([ZYCTool handerResultData:error]);
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(3),//话题 1
+                                       @"TypeValue":@([self backTypeValue]),//话题 1
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""
@@ -923,7 +923,7 @@
             REMOVESHOW
         }];
         NSDictionary * AnaParaDict = @{@"SourceId":@(self.Id),
-                                       @"TypeValue":@(0),//会议 10
+                                       @"TypeValue":@([self backTypeValue]),//会议 10
                                        @"Page":@(1),
                                        @"PerPage":@(20),
                                        @"sort":@""

+ 24 - 20
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicGroupManageVC.m

@@ -372,7 +372,7 @@
 {
     [self.dataArray removeAllObjects];
     WS(weakSelf);
-    [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Topic_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] GETUrl:Host(APP_Topic_List_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
         NSArray * array = responseObject;
         [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
@@ -387,22 +387,22 @@
         
     }];
 }
-- (void)getDataNoRefresh
-{
-    [self.dataArray removeAllObjects];
-    WS(weakSelf);
-    [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Topic_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
-        NSLog(@"%@",responseObject);
-        NSArray * array = responseObject;
-        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-            NSDictionary * dict = (NSDictionary *)obj;
-            TopicGroupManageModel * model = [TopicGroupManageModel modelWithDictionary:dict];
-            [weakSelf.dataArray addObject:model];
-        }];
-    } failure:^(NSError * _Nonnull error) {
-        
-    }];
-}
+//- (void)getDataNoRefresh
+//{
+//    [self.dataArray removeAllObjects];
+//    WS(weakSelf);
+//    [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Topic_List_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+//        NSLog(@"%@",responseObject);
+//        NSArray * array = responseObject;
+//        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+//            NSDictionary * dict = (NSDictionary *)obj;
+//            TopicGroupManageModel * model = [TopicGroupManageModel modelWithDictionary:dict];
+//            [weakSelf.dataArray addObject:model];
+//        }];
+//    } failure:^(NSError * _Nonnull error) {
+//
+//    }];
+//}
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
 {
     return 50.f;
@@ -465,12 +465,16 @@
 {
     TopicGroupManageModel * firstModel = [self.dataArray objectAtIndex:sourceIndexPath.row];
     TopicGroupManageModel * secondModel = [self.dataArray objectAtIndex:destinationIndexPath.row];
-    [self.dataArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
-    [self.tableView moveRowAtIndexPath:sourceIndexPath toIndexPath:destinationIndexPath];
+//    [self.dataArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
+//    [self.tableView moveRowAtIndexPath:sourceIndexPath toIndexPath:destinationIndexPath];
     WS(weakSelf);
     [[HttpManager sharedHttpManager] PUTUrl:Host(API_APP_Topic_Sort) parameters:@{@"FirstId": @(firstModel.Id),
         @"SecondId": @(secondModel.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
-        [weakSelf getDataNoRefresh];
+        [weakSelf.dataArray removeObject:firstModel];
+        [weakSelf.dataArray insertObject:firstModel atIndex:destinationIndexPath.row];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
     } failure:^(NSError * _Nonnull error) {
         
     }];

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

@@ -345,13 +345,14 @@
                 AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init];
                 vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
                 vc.isDefalutPage = 1;
-                vc.titleStr = @"添加成员";
+                vc.titleStr = @"选人";
                 vc.delegate = weakSelf;
                 NSMutableArray * array = [NSMutableArray array];
                 for (SelectModel * model in weakSelf.dataArray) {
                     [array addObject:@(model.UserId)];
                 }
                 vc.UserIds = array;
+                USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }else if ([@"批量编辑" isEqualToString:action.title]){
                 [weakSelf changeToOperation:YES];

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

@@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MyTDTopicSelectExtentVC : BaseViewController
 @property (assign, nonatomic) BOOL          isSubVC;
+@property (assign, nonatomic) BOOL          isNoteBook;
 @property (assign, nonatomic) NSInteger     ParentId;
 @property (assign, nonatomic) NSInteger     folderId;
 @property (copy, nonatomic) NSString      * fileName;

+ 7 - 5
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/MyTDTopicSelectExtentVC.m

@@ -21,6 +21,7 @@
 @property (strong,nonatomic) UIView       *operationBottomBgView;
 @property (weak, nonatomic) IBOutlet UIView *noDataView;
 @property (weak, nonatomic) IBOutlet UIButton *noDataBtn;
+@property (weak, nonatomic) IBOutlet UILabel *showL;
 
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
 @property (strong, nonatomic) NSMutableArray     *dataArray;
@@ -44,13 +45,14 @@
 }
 - (void)viewDidLoad {
     [super viewDidLoad];
+    if (self.isNoteBook) {
+        self.showL.text = @"发布的话题将同步保存到我的笔记中以下相应文件夹";
+    }else{
+        self.showL.text = @"发布的话题将同步保存到我的话题本中以下相应文件夹";
+    }
     self.titleL.text = self.titleStr;
     self.iSViewEditor = NO;
-    if (@available(iOS 11.0, *)) {
-        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
-    }else {
-        self.automaticallyAdjustsScrollViewInsets = NO;
-    }
+    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
     self.fd_prefersNavigationBarHidden = YES;
     [self initBottomBgView];
     [self changeToOperation:NO];

+ 18 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookEditVC.h

@@ -0,0 +1,18 @@
+//
+//  MyTDTopicBookEditVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyTDTopicBookEditVC : BaseViewController
+@property (strong, nonatomic) NSMutableArray  *dataArray;
++(MyTDTopicBookEditVC *)initMyTDTopicBookEditVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 244 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookEditVC.m

@@ -0,0 +1,244 @@
+//
+//  MyTDTopicBookEditVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "MyTDTopicBookEditVC.h"
+#import "TopicBookCell.h"
+#import "TopicBookModel.h"
+#import "MoveViewController.h"
+
+@interface MyTDTopicBookEditVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (weak, nonatomic) IBOutlet UITableView *tableView;
+@property (weak, nonatomic) IBOutlet UIButton *deleteBtn;
+@property (weak, nonatomic) IBOutlet UIButton *moveBtn;
+@property (weak, nonatomic) IBOutlet UIButton *allSelectBtn;
+@property (assign, nonatomic) BOOL             allSelelct;
+
+@end
+
+@implementation MyTDTopicBookEditVC
++(MyTDTopicBookEditVC *)initMyTDTopicBookEditVC
+{
+    MyTDTopicBookEditVC *controller = [StoryboardManager.shared.myTDTopicExtent instantiateViewControllerWithIdentifier:@"MyTDTopicBookEditVC"];
+     return controller;
+}
+- (NSMutableArray *)dataArray
+{
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.fd_prefersNavigationBarHidden = YES;
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    [self.tableView setEditing:YES];
+    [self.tableView setAllowsSelectionDuringEditing:YES];
+    WS(weakSelf);
+    [self.dataArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+        TopicBookModel * model = (TopicBookModel *)obj;
+        if (model.IsSystemDefault) {
+            [weakSelf.dataArray removeObject:obj];
+        }
+    }];
+    [self.deleteBtn setAction:^{
+        NSMutableArray * mArray = [NSMutableArray array];
+        for (TopicBookModel * model in self.dataArray) {
+            if (model.IsSelect) {
+                [mArray addObject:model];
+            }
+        }
+        if (mArray.count > 0) {
+            UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:nil message:@"确认删除" preferredStyle:UIAlertControllerStyleAlert];
+            UIAlertAction *ok = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
+                
+            }];
+            [ok setValue:k9 forKey:@"_titleTextColor"];
+            UIAlertAction *noOk = [UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+                [weakSelf deleteFind:mArray];
+            }];
+            [alertVC addAction:ok];
+            [alertVC addAction:noOk];
+            [weakSelf presentViewController:alertVC animated:YES completion:nil];
+        }
+    }];
+    [self.moveBtn setAction:^{
+        NSMutableArray * mArray = [NSMutableArray array];
+        for (TopicBookModel * model in self.dataArray) {
+            if (model.IsSelect) {
+                [mArray addObject:@(model.Id)];
+            }
+        }
+        if (mArray.count > 0) {
+            [weakSelf launchMoveVC:mArray];
+        }
+    }];
+    [self.allSelectBtn setAction:^{
+        for (TopicBookModel * model in weakSelf.dataArray) {
+            model.IsSelect = !weakSelf.allSelelct;
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    }];
+    [self.tableView reloadData];
+}
+- (void)deleteFind:(NSMutableArray<TopicBookModel *>*)findModelArray{
+    NSMutableArray *MiddleIds = [NSMutableArray array];
+    for (TopicBookModel *model in findModelArray) {
+        [MiddleIds addObject:@(model.Id)];
+    }
+    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
+    [dic setValue:MiddleIds forKey:@"MiddleIds"];
+    [dic setValue:@(4) forKey:@"FolderType"];
+
+    WS(weakSelf);
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_DeleteRecord) parameters:dic responseStyle:DATA success:^(id  _Nonnull responseObject) {
+        [weakSelf.dataArray removeObjectsInArray:findModelArray];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        SHOWERROR([ZYCTool handerResultData:error]);
+    }];
+}
+- (void)launchMoveVC:(NSMutableArray<NSNumber*>*)selectIDArray{
+    MoveViewController * vc = [MoveViewController initMoveViewController];
+    vc.TypeId = CreateNotesType;
+    vc.collectType = CollectHanderType_Move;
+    vc.ParentId = 0;
+    vc.titleStr = @"移动";
+    vc.TypeValue = 1;
+    vc.FolderIds = selectIDArray;
+    [self.navigationController pushViewController:vc animated:YES];
+}
+- (NSMutableArray *)checkArray
+{
+    NSMutableArray * mArray = [NSMutableArray array];
+    for (TopicBookModel * model in self.dataArray) {
+        if (model.IsSelect) {
+            [mArray addObject:@(model.Id)];
+        }
+    }
+    return mArray;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataArray.count;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return UITableViewAutomaticDimension;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
+{
+    return 35.f;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
+{
+    return 0.01f;
+}
+- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
+{
+    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 35)];
+    view.backgroundColor = UIColorHex(0xF0EFF4);
+    UILabel * titleL = [UILabel new];
+    [view addSubview:titleL];
+    titleL.text = @"长按右侧三横,拖动可进行排序";
+    titleL.textColor = UIColorHex(0x666666);
+    titleL.font = Kfont(13);
+    [titleL mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.center.mas_equalTo(view);
+    }];
+    return view;
+}
+- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
+{
+    return [UIView new];
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+    [self checkAllSelect];
+    [self checkSelect];
+    TopicBookModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    TopicBookCell * cell = [TopicBookCell configCell2:tableView indexPath:indexPath];
+    cell.titleL.text = model.Name;
+    switch (model.RoleId) {
+        case 1:
+        {
+            cell.subtitleL.text = @"公开";
+        }
+            break;
+        default:
+        {
+            cell.subtitleL.text = [NSString stringWithFormat:@"共享范围:%@",model.EnjoyUser.length > 0 ? model.EnjoyUser : @""];
+        }
+            break;
+    }
+    [cell.selectBtn setImage:model.IsSelect ? IMG(@"sendinfo_yes") : IMG(@"sendinfo_no") forState:UIControlStateNormal];
+    WS(weakSelf);
+    [cell.selectBtn setAction:^{
+        model.IsSelect = !model.IsSelect;
+        [weakSelf checkSelect];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+        });
+    }];
+    return cell;
+}
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    TopicBookModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    model.IsSelect = !model.IsSelect;
+    [self checkSelect];
+    [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
+}
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+    
+    return tableView.editing;
+}
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
+    TopicBookModel * model = [self.dataArray objectAtIndex:sourceIndexPath.row];
+    TopicBookModel * toModel = [self.dataArray objectAtIndex:destinationIndexPath.row];
+    WS(weakSelf);
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_Sort) parameters:@{@"MiddleIdFirst":@(model.Id),@"MiddleIdSecond":@(toModel.Id)} responseStyle:DATA success:^(id  _Nonnull responseObject) {
+        [weakSelf.dataArray removeObject:model];
+        [weakSelf.dataArray insertObject:model atIndex:destinationIndexPath.row];
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        
+    }];
+}
+- (BOOL)checkAllSelect
+{
+    for (TopicBookModel * model in self.dataArray) {
+        if (!model.IsSelect) {
+            self.allSelelct = NO;
+            [self.allSelectBtn setTitle:@"全选" forState:UIControlStateNormal];
+            return NO;
+        }
+    }
+    [self.allSelectBtn setTitle:@"取消全选" forState:UIControlStateNormal];
+    self.allSelelct = YES;
+    return YES;
+}
+- (void)checkSelect
+{
+    for (TopicBookModel * model in self.dataArray) {
+        if (model.IsSelect) {
+            [self.moveBtn setTitleColor:UIColorHex(0x3979D3) forState:UIControlStateNormal];
+            self.moveBtn.enabled = YES;
+            return;
+        }
+    }
+    [self.moveBtn setTitleColor:UIColorHex(0xCCCCCC) forState:UIControlStateNormal];
+    self.moveBtn.enabled = NO;
+}
+@end

+ 18 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookVC.h

@@ -0,0 +1,18 @@
+//
+//  MyTDTopicBookVC.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "BaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MyTDTopicBookVC : BaseViewController
+@property (nonatomic,assign) NSInteger  FolderId;
++(MyTDTopicBookVC *)initMyTDTopicBookVC;
+@end
+
+NS_ASSUME_NONNULL_END

+ 215 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/VC/TopicBook/MyTDTopicBookVC.m

@@ -0,0 +1,215 @@
+//
+//  MyTDTopicBookVC.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "MyTDTopicBookVC.h"
+#import "MyTDGroupView.h"
+#import "TopicBookCell.h"
+#import "TopicBookModel.h"
+#import "YCMenuView.h"
+#import "MyFavoriteNewFindVC.h"
+#import "MyTDTopicBookEditVC.h"
+#import "NoteBookVC.h"
+#import "NoteBookSearchVC.h"
+
+@interface MyTDTopicBookVC ()<UITableViewDelegate,UITableViewDataSource>
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@property (weak, nonatomic) IBOutlet UITableView *tableView;
+@property (weak, nonatomic) IBOutlet UIView *HeadView;
+@property (weak, nonatomic) IBOutlet UIView *noDataView;
+@property (weak, nonatomic) IBOutlet UIButton *addBtn;
+@property (weak, nonatomic) IBOutlet UILabel *noDataL;
+@property (weak, nonatomic) IBOutlet UIButton *createBtn;
+@property (strong, nonatomic) MyTDGroupView             *SearchView;
+@property (strong, nonatomic) NSMutableArray            *dataArray;
+@property (strong, nonatomic) NSArray                   *addListArray;
+@end
+
+@implementation MyTDTopicBookVC
++(MyTDTopicBookVC *)initMyTDTopicBookVC
+{
+    MyTDTopicBookVC *controller = [StoryboardManager.shared.myTDTopicExtent instantiateViewControllerWithIdentifier:@"MyTDTopicBookVC"];
+     return controller;
+}
+- (MyTDGroupView *)SearchView
+{
+    if (!_SearchView) {
+        _SearchView = [[MyTDGroupView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
+    }
+    return _SearchView;
+}
+- (NSMutableArray *)dataArray
+{
+    if (!_dataArray) {
+        _dataArray = [NSMutableArray array];
+    }
+    return _dataArray;
+}
+- (void)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+    [self getData];
+}
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.tableView.delegate = self;
+    self.tableView.dataSource = self;
+    self.fd_prefersNavigationBarHidden = YES;
+    [self.HeadView addSubview:self.SearchView];
+    [self.SearchView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_offset(6);
+        make.left.right.mas_equalTo(self.HeadView);
+        make.height.mas_offset(36);
+    }];
+    WS(weakSelf);
+    [self.SearchView.button setAction:^{
+        NoteBookSearchVC * vc = [[NoteBookSearchVC alloc] init];
+        vc.IsSelected = NO;
+        vc.TypeValue = 1;
+        vc.FolderId = weakSelf.FolderId;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
+    self.addListArray = @[@"建文件夹",@"批量编辑",@"转发"];
+    [self.addBtn setAction:^{
+        NSMutableArray *menuDataSourceArray = [weakSelf getMenuDataSource:weakSelf.addListArray];
+        YCMenuView *view = [YCMenuView menuWithActions:menuDataSourceArray width:106 relyonView:weakSelf.addBtn];
+        view.menuColor = RGB(255, 255, 255);
+        view.separatorColor = RGB(234, 234, 234);
+        view.textColor = RGB(102, 102, 102);
+        view.textFont = [UIFont systemFontOfSize:16.0];
+        view.menuCellHeight = 43.5;
+        view.maxDisplayCount = 10;
+        view.offset = -6;
+        [view show];
+    }];
+    [self.createBtn setAction:^{
+        MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
+        vc.type = CollectModel_NewTopic;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
+    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+        MyFavoriteNewFindVC *vc = [MyFavoriteNewFindVC initMyFavoriteNewFindVC];
+        vc.ParentId = 0;
+        vc.roleId = 0;
+        vc.createFoldType = CreateNotesType;
+        vc.modifyTye = CreateType;
+        vc.fileType = NewTopicFileType;
+        [weakSelf.navigationController pushViewController:vc animated:YES];
+    }];
+    self.noDataL.userInteractionEnabled = YES;
+    [self.noDataL addGestureRecognizer:tap];
+}
+- (NSMutableArray *)getMenuDataSource:(NSArray *)titleArray{
+    NSMutableArray *menuDataSourceArray = [[NSMutableArray alloc] init];
+    for(int i = 0;i<titleArray.count;i++){
+        NSString *titleStr = [titleArray objectAtIndex:i];
+        WS(weakSelf);
+        YCMenuAction *actionMenu = [YCMenuAction actionWithTitle:titleStr image:nil handler:^(YCMenuAction *action) {
+            if([@"建文件夹" isEqualToString:action.title]){
+                MyFavoriteNewFindVC *vc = [MyFavoriteNewFindVC initMyFavoriteNewFindVC];
+                vc.ParentId = 0;
+                vc.roleId = 0;
+                vc.createFoldType = CreateNotesType;
+                vc.modifyTye = CreateType;
+                vc.fileType = NewTopicFileType;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }else if ([@"批量编辑" isEqualToString:action.title]){
+                MyTDTopicBookEditVC * vc = [MyTDTopicBookEditVC initMyTDTopicBookEditVC];
+                vc.dataArray = weakSelf.dataArray;
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }else if ([@"转发" isEqualToString:action.title]){
+  
+            }
+        }];
+        [menuDataSourceArray addObject:actionMenu];
+    }
+    return menuDataSourceArray;
+}
+- (void)getData
+{
+    NSDictionary * paraDict = @{@"ParentId":@(0),
+                                @"TypeId":@(4),///4笔记
+                                @"RoleId":@(0),
+                                @"KeyWord":@"",
+    };
+    WS(weakSelf);
+    [self.dataArray removeAllObjects];
+    SHOWLOADING
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_Middle_Search_Note_Folder) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+        NSLog(@"%@",responseObject);
+        REMOVESHOW
+        for (NSDictionary * dict in responseObject) {
+            TopicBookModel * model = [TopicBookModel modelWithDictionary:dict];
+            [weakSelf.dataArray addObject:model];
+        }
+        dispatch_async(dispatch_get_main_queue(), ^{
+            if (weakSelf.dataArray.count == 1) {
+                weakSelf.noDataView.hidden = NO;
+                weakSelf.tableView.scrollEnabled = NO;
+            }else{
+                weakSelf.noDataView.hidden = YES;
+                weakSelf.tableView.scrollEnabled = YES;
+            }
+            [weakSelf.tableView reloadData];
+        });
+    } failure:^(NSError * _Nonnull error) {
+        REMOVESHOW
+    }];
+}
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+    return 1;
+}
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+    return self.dataArray.count;
+}
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+    return UITableViewAutomaticDimension;
+}
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    TopicBookModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    if (model.IsSystemDefault) {
+        TopicBookCell * cell = [TopicBookCell configCell0:tableView indexPath:indexPath];
+        cell.titleL.text = model.Name;
+        cell.countL.text = [NSString stringWithFormat:@"%ld",model.FileCount];
+        cell.lineV.hidden = self.dataArray.count == 1 ? YES : NO;
+        return cell;
+    }else{
+        TopicBookCell * cell = [TopicBookCell configCell1:tableView indexPath:indexPath];
+        cell.titleL.text = model.Name;
+        switch (model.RoleId) {
+            case 1:
+            {
+                cell.subtitleL.text = @"公开";
+            }
+                break;
+            default:
+            {
+                cell.subtitleL.text = [NSString stringWithFormat:@"共享范围:%@",model.EnjoyUser.length > 0 ? model.EnjoyUser : @""];
+            }
+                break;
+        }
+        cell.countL.text = [NSString stringWithFormat:@"%ld",model.FileCount];
+        return cell;
+    }
+}
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    [tableView deselectRowAtIndexPath:indexPath animated:YES];
+    TopicBookModel * model = [self.dataArray objectAtIndex:indexPath.row];
+    NoteBookVC *vc = [NoteBookVC initNoteBookVC];
+    vc.listType = MyFavoriteListLevelTypeB;
+    vc.ParentId = 0;
+    vc.FolderId = model.Id;
+    vc.RoleId = model.RoleId;
+    vc.myTitle = model.Name;
+    vc.IsSystemDefault = model.IsSystemDefault;
+    vc.TypeValue = 1;
+    vc.isSubVC = YES;
+    [self.navigationController pushViewController:vc animated:YES];
+}
+@end

+ 26 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.h

@@ -0,0 +1,26 @@
+//
+//  TopicBookCell.h
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface TopicBookCell : UITableViewCell
+@property (weak, nonatomic) IBOutlet UIImageView *imagV;
+@property (weak, nonatomic) IBOutlet UILabel *titleL;
+@property (weak, nonatomic) IBOutlet UILabel *subtitleL;
+@property (weak, nonatomic) IBOutlet UILabel *countL;
+@property (weak, nonatomic) IBOutlet UIView *lineV;
+@property (weak, nonatomic) IBOutlet UIButton *selectBtn;
+
++ (TopicBookCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (TopicBookCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
++ (TopicBookCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath;
+@end
+
+NS_ASSUME_NONNULL_END

+ 83 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.m

@@ -0,0 +1,83 @@
+//
+//  TopicBookCell.m
+//  smartRhino
+//
+//  Created by niuzhen on 2020/7/21.
+//  Copyright © 2020 tederen. All rights reserved.
+//
+
+#import "TopicBookCell.h"
+
+@implementation TopicBookCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
++ (TopicBookCell *)configCell0:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"TopicBookCell0";
+    TopicBookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil || !cell) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"TopicBookCell" owner:nil options:nil] objectAtIndex:0];
+    }
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    return cell;
+}
++ (TopicBookCell *)configCell1:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"TopicBookCell1";
+    TopicBookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil || !cell) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"TopicBookCell" owner:nil options:nil] objectAtIndex:1];
+    }
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    return cell;
+}
++ (TopicBookCell *)configCell2:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath{
+    static NSString *cellIdentifer = @"TopicBookCell2";
+    TopicBookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
+    if (cell == nil || !cell) {
+        cell = [[[NSBundle mainBundle] loadNibNamed:@"TopicBookCell" owner:nil options:nil] objectAtIndex:2];
+    }
+    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    return cell;
+}
+- (void)layoutSubviews
+{
+    [super layoutSubviews];
+    CGRect rect = self.contentView.frame;
+    rect.size.width += rect.origin.x;
+    rect.origin.x = 0;
+    self.contentView.frame = rect;
+    for (UIView *supView in self.subviews){
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellReorderControl")]){
+            for (UIView *view in supView.subviews)
+            {
+                if ([view isKindOfClass: [UIImageView class]])
+                {
+                    view.hidden = NO;
+                    UIImageView * imagV = (UIImageView *)view;
+                    [imagV setFrame:CGRectMake(0, 0, 22, 18)];
+                    imagV.center = supView.center;
+                    imagV.contentMode = UIViewContentModeCenter;
+                    imagV.image = [UIImage imageNamed: @"list_sort"];
+                    UILabel * label = [UILabel new];
+                    label.backgroundColor = UIColorHex(#EAEAEA);
+                    [supView addSubview:label];
+                    [label setFrame:CGRectMake(0, supView.frame.size.height - 0.5, supView.frame.size.width, 0.5)];
+                }else{
+                    view.hidden = YES;
+                }
+            }
+        }
+        if ([supView isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
+            [supView removeFromSuperview];
+        }
+    }
+}
+@end

+ 211 - 0
smartRhino/Project/VCModel/Home/OtherHomeVC/MyTDTopic/View/TopicBookCell.xib

@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="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" reuseIdentifier="TopicBookCell0" id="KGk-i7-Jjw" customClass="TopicBookCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
+            <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="70"/>
+                <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="mmc-qm-fSl">
+                        <rect key="frame" x="78" y="24.5" width="35" height="21"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="find_1" translatesAutoresizingMaskIntoConstraints="NO" id="z9j-iT-NNm">
+                        <rect key="frame" x="15" y="17.5" width="40" height="35"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="40" id="3p7-dx-TI4"/>
+                            <constraint firstAttribute="height" constant="35" id="Gt9-g1-xc0"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sqv-5a-YhQ">
+                        <rect key="frame" x="283" y="27.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="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_rightjian_icon" translatesAutoresizingMaskIntoConstraints="NO" id="Dcm-po-vEH">
+                        <rect key="frame" x="297" y="28" width="8" height="14"/>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZjR-y9-VGl">
+                        <rect key="frame" x="15" y="69.5" width="305" height="0.5"/>
+                        <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="R2p-HO-jgI"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="z9j-iT-NNm" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="5dK-po-ayv"/>
+                    <constraint firstAttribute="trailing" secondItem="ZjR-y9-VGl" secondAttribute="trailing" id="9IH-30-CaV"/>
+                    <constraint firstItem="Sqv-5a-YhQ" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="BmH-rD-P1c"/>
+                    <constraint firstItem="ZjR-y9-VGl" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="DpM-fL-umK"/>
+                    <constraint firstItem="mmc-qm-fSl" firstAttribute="leading" secondItem="z9j-iT-NNm" secondAttribute="trailing" constant="23" id="KZD-MA-kNu"/>
+                    <constraint firstItem="Dcm-po-vEH" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="NTv-IG-icC"/>
+                    <constraint firstAttribute="trailing" secondItem="Dcm-po-vEH" secondAttribute="trailing" constant="15" id="Uvb-Eg-ZND"/>
+                    <constraint firstItem="Dcm-po-vEH" firstAttribute="leading" secondItem="Sqv-5a-YhQ" secondAttribute="trailing" constant="6" id="Zqf-Zc-QiY"/>
+                    <constraint firstItem="z9j-iT-NNm" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="aRR-pK-Kce"/>
+                    <constraint firstItem="ZjR-y9-VGl" firstAttribute="top" secondItem="z9j-iT-NNm" secondAttribute="bottom" constant="17" id="jRc-c7-PxW"/>
+                    <constraint firstItem="mmc-qm-fSl" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="mM0-fU-4FS"/>
+                    <constraint firstAttribute="bottom" secondItem="ZjR-y9-VGl" secondAttribute="bottom" id="tbK-Bc-icD"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="countL" destination="Sqv-5a-YhQ" id="OcL-c6-IaE"/>
+                <outlet property="imagV" destination="z9j-iT-NNm" id="8HB-Dk-dyY"/>
+                <outlet property="lineV" destination="ZjR-y9-VGl" id="ZnM-0h-nOd"/>
+                <outlet property="titleL" destination="mmc-qm-fSl" id="8cn-8R-q3f"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="152.67857142857142"/>
+        </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TopicBookCell1" id="B1H-Nq-5dQ" customClass="TopicBookCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="B1H-Nq-5dQ" id="j8Y-VQ-uob">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
+                <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="DJF-YH-X9q">
+                        <rect key="frame" x="78" y="10" width="35" height="21"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="find_1" translatesAutoresizingMaskIntoConstraints="NO" id="GAY-UR-qLH">
+                        <rect key="frame" x="15" y="17.5" width="40" height="35"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="35" id="C9W-C0-hYZ"/>
+                            <constraint firstAttribute="width" constant="40" id="FFI-8Y-Zr5"/>
+                        </constraints>
+                    </imageView>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GvF-zh-k1F">
+                        <rect key="frame" x="283" y="27.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="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_rightjian_icon" translatesAutoresizingMaskIntoConstraints="NO" id="e2H-4o-iv7">
+                        <rect key="frame" x="297" y="28" width="8" height="14"/>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Vu-bS-qYf">
+                        <rect key="frame" x="15" y="69.5" width="305" height="0.5"/>
+                        <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="bg5-8b-1Ba"/>
+                        </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="6Xz-7t-WEN">
+                        <rect key="frame" x="78" y="39" width="25" 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="GAY-UR-qLH" firstAttribute="centerY" secondItem="j8Y-VQ-uob" secondAttribute="centerY" id="1XZ-RU-u8Q"/>
+                    <constraint firstItem="GAY-UR-qLH" firstAttribute="leading" secondItem="j8Y-VQ-uob" secondAttribute="leading" constant="15" id="4gB-1S-wmN"/>
+                    <constraint firstAttribute="bottom" secondItem="7Vu-bS-qYf" secondAttribute="bottom" id="FDY-Kf-zr3"/>
+                    <constraint firstItem="7Vu-bS-qYf" firstAttribute="top" secondItem="GAY-UR-qLH" secondAttribute="bottom" constant="17" id="KR4-zi-r3b"/>
+                    <constraint firstItem="e2H-4o-iv7" firstAttribute="centerY" secondItem="j8Y-VQ-uob" secondAttribute="centerY" id="Knh-pe-Rd4"/>
+                    <constraint firstItem="e2H-4o-iv7" firstAttribute="leading" secondItem="GvF-zh-k1F" secondAttribute="trailing" constant="6" id="PFD-nu-O9r"/>
+                    <constraint firstAttribute="centerY" secondItem="DJF-YH-X9q" secondAttribute="bottom" constant="4" id="VDO-ON-0Id"/>
+                    <constraint firstItem="6Xz-7t-WEN" firstAttribute="top" secondItem="DJF-YH-X9q" secondAttribute="bottom" constant="8" id="bbv-hH-WQE"/>
+                    <constraint firstItem="GvF-zh-k1F" firstAttribute="centerY" secondItem="j8Y-VQ-uob" secondAttribute="centerY" id="d1x-WB-LWs"/>
+                    <constraint firstItem="6Xz-7t-WEN" firstAttribute="leading" secondItem="DJF-YH-X9q" secondAttribute="leading" id="fty-YU-vQJ"/>
+                    <constraint firstAttribute="trailing" secondItem="e2H-4o-iv7" secondAttribute="trailing" constant="15" id="l78-nX-KLj"/>
+                    <constraint firstItem="7Vu-bS-qYf" firstAttribute="leading" secondItem="j8Y-VQ-uob" secondAttribute="leading" constant="15" id="nas-a0-fhE"/>
+                    <constraint firstItem="DJF-YH-X9q" firstAttribute="leading" secondItem="GAY-UR-qLH" secondAttribute="trailing" constant="23" id="sc7-Ni-Bil"/>
+                    <constraint firstAttribute="trailing" secondItem="7Vu-bS-qYf" secondAttribute="trailing" id="zgB-J5-1MB"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="JR6-gX-sEc"/>
+            <connections>
+                <outlet property="countL" destination="GvF-zh-k1F" id="xez-cM-box"/>
+                <outlet property="lineV" destination="7Vu-bS-qYf" id="7EQ-TW-Rfq"/>
+                <outlet property="subtitleL" destination="6Xz-7t-WEN" id="w7l-Mh-DTX"/>
+                <outlet property="titleL" destination="DJF-YH-X9q" id="QGJ-Z2-pjq"/>
+            </connections>
+            <point key="canvasLocation" x="137.68115942028987" y="251.78571428571428"/>
+        </tableViewCell>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="TopicBookCell2" id="Gpv-EZ-qU8" customClass="TopicBookCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Gpv-EZ-qU8" id="My3-CX-IKJ">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="70"/>
+                <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="f3Q-O4-ynD">
+                        <rect key="frame" x="109" y="10" width="35" height="21"/>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="find_1" translatesAutoresizingMaskIntoConstraints="NO" id="Nhj-AJ-6ky">
+                        <rect key="frame" x="46" y="17.5" width="40" height="35"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="40" id="3ke-KB-xbX"/>
+                            <constraint firstAttribute="height" constant="35" id="8sd-K0-avg"/>
+                        </constraints>
+                    </imageView>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JR3-Vp-vAS">
+                        <rect key="frame" x="46" y="69.5" width="274" height="0.5"/>
+                        <color key="backgroundColor" red="0.89803921568627454" green="0.89803921568627454" blue="0.89803921568627454" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="0.5" id="WFM-x4-LLv"/>
+                        </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="JVt-T5-eOu">
+                        <rect key="frame" x="109" y="39" width="25" 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>
+                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pXV-Ob-ouD">
+                        <rect key="frame" x="4" y="16" width="38" height="38"/>
+                        <state key="normal" image="sendinfo_no"/>
+                    </button>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="JVt-T5-eOu" firstAttribute="top" secondItem="f3Q-O4-ynD" secondAttribute="bottom" constant="8" id="1dX-8s-12E"/>
+                    <constraint firstAttribute="bottom" secondItem="JR3-Vp-vAS" secondAttribute="bottom" id="Gx2-Ot-7JH"/>
+                    <constraint firstItem="Nhj-AJ-6ky" firstAttribute="centerY" secondItem="My3-CX-IKJ" secondAttribute="centerY" id="IyR-D9-pn5"/>
+                    <constraint firstItem="Nhj-AJ-6ky" firstAttribute="leading" secondItem="pXV-Ob-ouD" secondAttribute="trailing" constant="4" id="Rjz-Ei-YSZ"/>
+                    <constraint firstItem="f3Q-O4-ynD" firstAttribute="leading" secondItem="Nhj-AJ-6ky" secondAttribute="trailing" constant="23" id="RwT-8c-wW3"/>
+                    <constraint firstItem="JVt-T5-eOu" firstAttribute="leading" secondItem="f3Q-O4-ynD" secondAttribute="leading" id="aZZ-4P-Wkd"/>
+                    <constraint firstAttribute="centerY" secondItem="f3Q-O4-ynD" secondAttribute="bottom" constant="4" id="e41-Yt-lBt"/>
+                    <constraint firstItem="JR3-Vp-vAS" firstAttribute="top" secondItem="Nhj-AJ-6ky" secondAttribute="bottom" constant="17" id="hjS-CI-R1Q"/>
+                    <constraint firstItem="pXV-Ob-ouD" firstAttribute="leading" secondItem="My3-CX-IKJ" secondAttribute="leading" constant="4" id="jvY-nM-7RE"/>
+                    <constraint firstItem="JR3-Vp-vAS" firstAttribute="leading" secondItem="Nhj-AJ-6ky" secondAttribute="leading" id="lbv-0y-bfa"/>
+                    <constraint firstAttribute="trailing" secondItem="JR3-Vp-vAS" secondAttribute="trailing" id="vNS-DR-TO3"/>
+                    <constraint firstItem="pXV-Ob-ouD" firstAttribute="centerY" secondItem="My3-CX-IKJ" secondAttribute="centerY" id="viM-u9-B4w"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="3NI-qm-v4h"/>
+            <connections>
+                <outlet property="lineV" destination="JR3-Vp-vAS" id="9T7-0I-PSK"/>
+                <outlet property="selectBtn" destination="pXV-Ob-ouD" id="BvB-Uk-GNq"/>
+                <outlet property="subtitleL" destination="JVt-T5-eOu" id="hJN-ve-Yr5"/>
+                <outlet property="titleL" destination="f3Q-O4-ynD" id="ZPe-hz-WOS"/>
+            </connections>
+            <point key="canvasLocation" x="138" y="345"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="Book_rightjian_icon" width="8" height="14"/>
+        <image name="find_1" width="37" height="32"/>
+        <image name="sendinfo_no" width="38" height="38"/>
+    </resources>
+</document>

+ 6 - 5
smartRhino/Project/VCModel/Home/VC/BookStore/VC/BookWeiCourseListVC.m

@@ -203,11 +203,12 @@
     if (tableView == self.leftTableV) {
         BookContentLeftCell * cell = [BookContentLeftCell configCell:tableView indexPath:indexPath];
         BookChanelleftModel * lmodel = [self.dataArray objectAtIndex:indexPath.row];
-        if (lmodel.IsSelect) {
-            cell.height.constant = 60.f;
-        }else{
-            cell.height.constant = 50.f;
-        }
+//        if (lmodel.IsSelect) {
+//            cell.height.constant = 60.f;
+//        }else{
+//            cell.height.constant = 50.f;
+//        }
+        cell.height.constant = 60.f;
         [cell setDataLeftModel:lmodel];
         return cell;
     }else{

+ 3 - 3
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookCardPayAlertCell.xib

@@ -1,9 +1,9 @@
 <?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>
@@ -97,7 +97,7 @@
                         </constraints>
                     </imageView>
                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Book_Videoplay_btn" translatesAutoresizingMaskIntoConstraints="NO" id="kQ1-P7-i6T">
-                        <rect key="frame" x="55.5" y="27" width="49" height="56"/>
+                        <rect key="frame" x="68" y="41" width="24.5" height="28"/>
                     </imageView>
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pmu-z6-Mpy">
                         <rect key="frame" x="159" y="15" width="146" height="80"/>

+ 8 - 6
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookContentLeftCell.xib

@@ -1,9 +1,9 @@
 <?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>
@@ -20,8 +20,8 @@
                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4VE-0O-lnh">
                         <rect key="frame" x="0.0" y="0.0" width="320" height="60"/>
                         <subviews>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="推荐" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fq3-Ri-Fhn">
-                                <rect key="frame" x="143.5" y="20.5" width="33" height="19.5"/>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="推荐" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fq3-Ri-Fhn">
+                                <rect key="frame" x="9" y="10" width="306" height="40"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                 <color key="textColor" red="0.039215686274509803" green="0.039215686274509803" blue="0.039215686274509803" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
@@ -37,11 +37,13 @@
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                         <constraints>
+                            <constraint firstAttribute="trailing" secondItem="fq3-Ri-Fhn" secondAttribute="trailing" constant="5" id="98s-oK-XMJ"/>
                             <constraint firstItem="zx2-9S-OrW" firstAttribute="leading" secondItem="4VE-0O-lnh" secondAttribute="leading" id="ATM-Or-t2u"/>
-                            <constraint firstItem="fq3-Ri-Fhn" firstAttribute="centerX" secondItem="4VE-0O-lnh" secondAttribute="centerX" id="T2x-2n-LHl"/>
                             <constraint firstAttribute="height" constant="60" id="WBk-Mx-zGx"/>
-                            <constraint firstItem="fq3-Ri-Fhn" firstAttribute="centerY" secondItem="4VE-0O-lnh" secondAttribute="centerY" id="mrk-uA-85C"/>
+                            <constraint firstAttribute="bottom" secondItem="fq3-Ri-Fhn" secondAttribute="bottom" constant="10" id="YQI-Q9-j5g"/>
+                            <constraint firstItem="fq3-Ri-Fhn" firstAttribute="leading" secondItem="zx2-9S-OrW" secondAttribute="trailing" constant="5" id="mAn-qV-JtL"/>
                             <constraint firstItem="zx2-9S-OrW" firstAttribute="centerY" secondItem="4VE-0O-lnh" secondAttribute="centerY" id="wY8-QR-ngs"/>
+                            <constraint firstItem="fq3-Ri-Fhn" firstAttribute="top" secondItem="4VE-0O-lnh" secondAttribute="top" constant="10" id="xVp-wU-8UA"/>
                         </constraints>
                     </view>
                 </subviews>

+ 2 - 2
smartRhino/Project/VCModel/Home/VC/BookStore/View/BookPeriodicaCell.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"/>
@@ -17,7 +17,7 @@
                 <rect key="frame" x="0.0" y="0.0" width="320" height="120.5"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="RO9-F4-g65">
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_placeHolder" translatesAutoresizingMaskIntoConstraints="NO" id="RO9-F4-g65">
                         <rect key="frame" x="15" y="15" width="62" height="90"/>
                         <constraints>
                             <constraint firstAttribute="width" secondItem="RO9-F4-g65" secondAttribute="height" multiplier="112:162" priority="750" id="F0M-Rh-TJh"/>

+ 14 - 14
smartRhino/Project/VCModel/Home/VC/BookStore/View/PayBookAlert.xib

@@ -1,9 +1,9 @@
 <?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>
@@ -59,16 +59,16 @@
                                                     <rect key="frame" x="0.0" y="0.0" width="92" height="150"/>
                                                     <subviews>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_book_icon" translatesAutoresizingMaskIntoConstraints="NO" id="TxR-H1-QFe">
-                                                            <rect key="frame" x="-5.5" y="28" width="103" height="103"/>
+                                                            <rect key="frame" x="20.5" y="28" width="51.5" height="51.5"/>
                                                         </imageView>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全场出版书" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P5i-Ub-aXw">
-                                                            <rect key="frame" x="18" y="144" width="56.5" height="13.5"/>
+                                                            <rect key="frame" x="18" y="92.5" width="56.5" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" 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="vEG-C9-K2q">
-                                                            <rect key="frame" x="29" y="165.5" width="34" height="13.5"/>
+                                                            <rect key="frame" x="29" y="114" width="34" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.79607843140000001" green="0.55294117649999996" blue="0.12549019610000001" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>
@@ -99,16 +99,16 @@
                                                     <rect key="frame" x="92" y="0.0" width="92" height="150"/>
                                                     <subviews>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_ting_icon" translatesAutoresizingMaskIntoConstraints="NO" id="yX4-LC-kha">
-                                                            <rect key="frame" x="-5.5" y="28" width="103" height="103"/>
+                                                            <rect key="frame" x="20.5" y="28" width="51.5" height="51.5"/>
                                                         </imageView>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全场有声内容" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sTw-Am-8IW">
-                                                            <rect key="frame" x="12.5" y="144" width="67.5" height="13.5"/>
+                                                            <rect key="frame" x="12.5" y="92.5" width="67.5" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" 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="Kb2-xZ-mJz">
-                                                            <rect key="frame" x="29" y="165.5" width="34" height="13.5"/>
+                                                            <rect key="frame" x="29" y="114" width="34" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.79607843140000001" green="0.55294117649999996" blue="0.12549019610000001" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>
@@ -139,16 +139,16 @@
                                                     <rect key="frame" x="184" y="0.0" width="92" height="150"/>
                                                     <subviews>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_man_icon" translatesAutoresizingMaskIntoConstraints="NO" id="uXq-xt-02f">
-                                                            <rect key="frame" x="-5.5" y="28" width="103" height="103"/>
+                                                            <rect key="frame" x="20.5" y="28" width="51.5" height="51.5"/>
                                                         </imageView>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全场漫画书" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6xF-Lf-ZGc">
-                                                            <rect key="frame" x="18" y="144" width="56.5" height="13.5"/>
+                                                            <rect key="frame" x="18" y="92.5" width="56.5" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" 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="VLX-pe-iWc">
-                                                            <rect key="frame" x="29" y="165.5" width="34" height="13.5"/>
+                                                            <rect key="frame" x="29" y="114" width="34" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.79607843140000001" green="0.55294117649999996" blue="0.12549019610000001" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>
@@ -179,16 +179,16 @@
                                                     <rect key="frame" x="276" y="0.0" width="92" height="150"/>
                                                     <subviews>
                                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_net_icon" translatesAutoresizingMaskIntoConstraints="NO" id="4tW-Ei-ZAz">
-                                                            <rect key="frame" x="-5.5" y="28" width="103" height="103"/>
+                                                            <rect key="frame" x="20.5" y="28" width="51.5" height="51.5"/>
                                                         </imageView>
                                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全场网络小说" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qwn-e5-TR8">
-                                                            <rect key="frame" x="12.5" y="144" width="67.5" height="13.5"/>
+                                                            <rect key="frame" x="12.5" y="92.5" width="67.5" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.039215686270000001" green="0.039215686270000001" blue="0.039215686270000001" 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="9gN-dq-d2F">
-                                                            <rect key="frame" x="23.5" y="165.5" width="45" height="13.5"/>
+                                                            <rect key="frame" x="23.5" y="114" width="45" height="13.5"/>
                                                             <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                             <color key="textColor" red="0.79607843140000001" green="0.55294117649999996" blue="0.12549019610000001" alpha="1" colorSpace="calibratedRGB"/>
                                                             <nil key="highlightedColor"/>

+ 3 - 2
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteNewFindVC.m

@@ -210,7 +210,7 @@
                     cell.subTitleLabel.text = @"仅自己可见";
                     cell.addButton.hidden = YES;
                     if (self.roleId == 2) {
-                        cell.flagButton.selected = YES;;
+                        cell.flagButton.selected = YES;
                     }else{
                         cell.flagButton.selected = NO;
                     }
@@ -453,13 +453,14 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.delegate = self;
-    vc.titleStr = @"添加成员";
+    vc.titleStr = @"选人";
     NSMutableArray * userIds = [NSMutableArray array];
     for (SelectModel * model in self.chaoSongRenArr) {
         [userIds addObject:@(model.UserId)];
     }
     vc.grouperArray = self.chaoSongRenArr;
     vc.UserIds = userIds;
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 

+ 1 - 0
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/MyFavoriteVC.m

@@ -1218,6 +1218,7 @@
                             MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
                             vc.type = CollectModel_NoteBook;
                             vc.Id = model.CollectionDataId;
+                            vc.isNoteBook = YES;
                             [self.navigationController pushViewController:vc animated:YES];
                         }break;
                         case CollectModel_CollectFile:{

+ 1 - 0
smartRhino/Project/VCModel/My_Center/Controller/ColletionVC/Controller/OtherFavoriteVC.m

@@ -916,6 +916,7 @@
                             MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
                             vc.type = CollectModel_NoteBook;
                             vc.Id = model.CollectionDataId;
+                            vc.isNoteBook = YES;
                             [self.navigationController pushViewController:vc animated:YES];
                         }break;
                         case CollectModel_CollectFile:{

+ 2 - 0
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookSearchVC.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 @interface NoteBookSearchVC : SearchBaseVC
 @property (nonatomic,assign) NSInteger  VisitUserId;
 @property (nonatomic,assign) BOOL       IsSelected;
+@property (nonatomic,assign) NSInteger  TypeValue;
+@property (nonatomic,assign) NSInteger  FolderId;
 @end
 
 NS_ASSUME_NONNULL_END

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

@@ -105,7 +105,7 @@
     }
     SHOWLOADING
     WS(weakSelf);
-    [[HttpManager sharedHttpManager] POSTUrl:Host(API_NoteBook) parameters:@{@"FolderId":@(0),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(0),@"SearchKey":self.searchText,@"Sort":@""} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_NoteBook) parameters:@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(0),@"SearchKey":self.searchText,@"Sort":@"",@"TypeValue":@(self.TypeValue)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         REMOVESHOW
         NSLog(@"笔记列表数据 %@",responseObject);
         MyNoteBookModel *listModel = [[MyNoteBookModel alloc] initWithDictionary:responseObject error:nil];
@@ -157,8 +157,8 @@
                     cell.cell1Title.text = model.Name;
                     cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                     cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
-                    cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                    cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                    cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                    cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                     cell.cellZanButton.selected = model.IsPraise;
                     if (model.PraiseCount > 0) {
                         [cell.cellZanButton setTitle:[NSString stringWithFormat:@"%ld",(long)model.PraiseCount] forState:UIControlStateNormal];
@@ -198,8 +198,8 @@
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
                             cell.IsTopV.hidden = !model.IsTop;
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             [cell.cell1IconImageView1 sd_setImageWithURL:[NSURL URLWithString:data0Model.File] placeholderImage:IMG(@"img_placeHolderVertical")];
                             cell.cellZanButton.selected = model.IsPraise;
@@ -231,8 +231,8 @@
                         case 2:{
                             NoteBookCell *cell = [NoteBookCell configCell1:tableView indexPath:indexPath];
                             [cell.cell1IconImage sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:[UIImage imageNamed:@"imagePlaceholder"] ];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             cell.cell1Title.text = model.Name;
                             cell.IsTopV.hidden = !model.IsTop;
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
@@ -274,8 +274,8 @@
                             cell.IsTopV.hidden = !model.IsTop;
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -315,8 +315,8 @@
                             cell.IsTopV.hidden = !model.IsTop;
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -358,8 +358,8 @@
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
                             [cell.cell1IconImage sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:[UIImage imageNamed:@"imagePlaceholder"] ];
                             cell.IsTopV.hidden = !model.IsTop;
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -404,8 +404,8 @@
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
                             [cell.cell1IconImage sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:[UIImage imageNamed:@"imagePlaceholder"] ];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -451,8 +451,8 @@
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
                             [cell.cell1IconImage sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl]placeholderImage:[UIImage imageNamed:@"imagePlaceholder"] ];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -502,8 +502,8 @@
                             cell.IsTopV.hidden = !model.IsTop;
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -554,8 +554,8 @@
                             cell.IsTopV.hidden = !model.IsTop;
                             cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                             cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
-                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                            cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                            cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                             MyNoteBookeDataModel * data0Model = model.Data[0];
                             MyNoteBookeDataModel * data1Model = model.Data[1];
                             MyNoteBookeDataModel * data2Model = model.Data[2];
@@ -611,8 +611,8 @@
                     [cell.cell1IconImage sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:[UIImage imageNamed:@"imagePlaceholder"] ];
                     [cell setDataWithCell:dataModel];
                     cell.cell1Title.text = model.Name;
-                    cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText];
-                    cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText];
+                    cell.cell1contentTitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
+                    cell.cell1contentContentLabel.attributedText = [ZYCTool checkOfString:model.Content withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
                     cell.cell1readNumberLabel.text = [NSString stringWithFormat:@"阅读:%ld",(long)model.ReadCount];
                     cell.cell1ShareType.text = [ZYCTool monthAndDayAndHoursAndMinutes:model.CreatedDate];
                     cell.cellZanButton.selected = model.IsPraise;
@@ -671,7 +671,7 @@
             }
             cell.cell0Number.text = [NSString stringWithFormat:@"%ld",(long)model.FileCount];
             cell.cell0Number.hidden = model.FileCount == 0 ? YES : NO;
-            cell.cell0Title.text = model.FolderName;
+            cell.cell0Title.attributedText = [ZYCTool checkOfString:model.FolderName withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
             cell.cell0TopImageView.hidden = !model.IsTop;
             cell.selectionStyle = UITableViewCellSelectionStyleNone;
             return cell;

+ 2 - 1
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.h

@@ -21,8 +21,9 @@ NS_ASSUME_NONNULL_BEGIN
 ///从通讯录进入
 @property (nonatomic,assign) BOOL       isOnlyFile;
 @property (nonatomic,assign) BOOL       isSubVC;
+@property (nonatomic,assign) BOOL       IsSystemDefault;
 @property (nonatomic,assign) NSInteger  RoleId;
-
+@property (nonatomic,assign) NSInteger  TypeValue;
 // 选择笔记的时候传值
 @property (nonatomic,assign)  OperationStateEnum operationStateEnum;
 +(NoteBookVC *)initNoteBookVC;

+ 16 - 5
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/NoteBookVC.m

@@ -152,9 +152,7 @@
     WS(weakSelf);
     NSArray * sArray = [self getSelectData];
     NSLog(@"%@",@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(self.VisitUserId)});
-    [[HttpManager sharedHttpManager] POSTUrl:Host(API_NoteBook) parameters:@{@"FolderId":@(self.FolderId),@"Page":@(1),@"PerPage":@(99999999),@"VisitUserId":@(self.VisitUserId),@"SearchKey":@"",@"Sort":@""} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
-        
-        //    [[HttpManager sharedHttpManager] POSTUrl:Host(API_NoteBook) parameters:@{@"FolderId":@(self.FolderId),@"Page":@(self.currentPage),@"PerPage":@(10),@"VisitUserId":@(self.VisitUserId),@"SearchKey":@"",@"Sort":@""} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] POSTUrl:Host(API_NoteBook) parameters:@{@"FolderId":@(self.FolderId),@"Page":@(1),@"PerPage":@(99999999),@"VisitUserId":@(self.VisitUserId),@"SearchKey":@"",@"Sort":@"",@"TypeValue":@(self.TypeValue)} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"笔记列表数据 %@",responseObject);
         MyNoteBookModel *listModel = [[MyNoteBookModel alloc] initWithDictionary:responseObject error:nil];
         weakSelf.totalPage = listModel.Total;
@@ -241,7 +239,13 @@
             self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
             break;
         case MyNoteBookListLevelTypeB:
-            self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"共享范围",@"转发", nil];
+        {
+            if (self.IsSystemDefault) {
+                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
+            }else{
+                self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"共享范围",@"转发", nil];
+            }
+        }
             break;
         default:
             self.taskActionArray = [[NSMutableArray alloc] initWithObjects:@"建文件夹",@"批量编辑",@"转发", nil];
@@ -326,6 +330,8 @@
         }
         NoteBookSearchVC * vc = [[NoteBookSearchVC alloc] init];
         vc.IsSelected = NO;
+        vc.FolderId = weakSelf.FolderId;
+        vc.TypeValue = weakSelf.TypeValue;
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
     [[UtilsTools getWindow] addSubview:self.noteBookShareVC.view];
@@ -475,7 +481,7 @@
                 vc.foldId = weakSelf.FolderId;
                 vc.roleId = weakSelf.RoleId;
                 vc.modifyTye = ModifyType;
-                vc.fileType = NewOtherFileType;
+                vc.fileType = weakSelf.TypeValue == 1 ? NewTopicFileType : NewOtherFileType;
                 vc.titleStr = @"修改文件夹";
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }else if ([@"转发" isEqualToString:action.title]){
@@ -2302,6 +2308,7 @@
                     MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
                     vc.Id = model.MiddleId;
                     vc.type = CollectModel_NoteBook;
+                    vc.isNoteBook = YES;
                     [self.navigationController pushViewController:vc animated:YES];
                 }break;
                 case 2:{
@@ -2315,6 +2322,7 @@
                     vc.FolderId = model.Id;
                     vc.RoleId = model.RoleId;
                     vc.myTitle = model.FolderName;
+                    vc.TypeValue = self.TypeValue;
                     vc.isSubVC = YES;
                     [self.navigationController pushViewController:vc animated:YES];
                 }break;
@@ -2352,6 +2360,7 @@
                         vc.myTitle = model.FolderName;
                         vc.isSubVC = YES;
                         vc.RoleId = model.RoleId;
+                        vc.TypeValue = self.TypeValue;
                         vc.VisitUserId = self.VisitUserId;
                         vc.operationStateEnum = OperationStateEnum3;
                         [self.navigationController pushViewController:vc animated:YES];
@@ -2368,6 +2377,7 @@
                             vc.myTitle = model.FolderName;
                             vc.isSubVC = YES;
                             vc.RoleId = model.RoleId;
+                            vc.TypeValue = self.TypeValue;
                             vc.VisitUserId = self.VisitUserId;
                             vc.operationStateEnum = OperationStateEnum3;
                             [self.navigationController pushViewController:vc animated:YES];
@@ -2426,6 +2436,7 @@
     vc.collectType = CollectHanderType_Move;
     vc.ParentId = 0;
     vc.titleStr = @"移动";
+    vc.TypeValue = self.TypeValue;
     vc.FolderIds = selectIDArray;
     [self.navigationController pushViewController:vc animated:YES];
     [self changeToOperation:NO];

+ 1 - 0
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/OtherNoteBookVC.h

@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic,assign) NSInteger   CollectionDataId;
 @property (nonatomic,assign) CollectModelType   CollectionType;
 @property (nonatomic,assign) CreateNoteBookType CreateNoteBookType;
+@property (nonatomic,assign) NSInteger  TypeValue;
 ///从通讯录进入
 @property (nonatomic,assign) BOOL       isOnlyFile;
 @property (nonatomic,copy) NSString * Author;

+ 3 - 0
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/Controller/OtherNoteBookVC.m

@@ -216,6 +216,8 @@
     [self.SearchView.button setAction:^{
         NoteBookSearchVC *  vc = [[NoteBookSearchVC alloc] init];
         vc.VisitUserId = weakSelf.VisitUserId;
+        vc.FolderId = weakSelf.FolderId;
+        vc.TypeValue = weakSelf.TypeValue;
         [weakSelf.navigationController pushViewController:vc animated:YES];
     }];
     
@@ -996,6 +998,7 @@
             MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC];
             vc.Id = model.MiddleId;
             vc.type = CollectModel_NoteBook;
+            vc.isNoteBook = YES;
             [self.navigationController pushViewController:vc animated:YES];
         }break;
         case 2:{

+ 9 - 9
smartRhino/Project/VCModel/My_Center/Controller/NoteBook/View/NoteBookCell.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"/>
@@ -1651,7 +1651,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hb0-tl-jVw">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hb0-tl-jVw">
                         <rect key="frame" x="270" y="246" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="RgE-lA-LbX"/>
@@ -1780,7 +1780,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8ea-YA-pSY">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8ea-YA-pSY">
                         <rect key="frame" x="270" y="163" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="7Hb-2T-UKf"/>
@@ -1915,7 +1915,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5EL-At-aqr">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5EL-At-aqr">
                         <rect key="frame" x="270" y="124" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="40" id="4e3-Na-z1P"/>
@@ -2072,7 +2072,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BfL-Mr-Xqv">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BfL-Mr-Xqv">
                         <rect key="frame" x="270" y="257" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="rLk-au-hNX"/>
@@ -2274,7 +2274,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bEr-Ys-WNr">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bEr-Ys-WNr">
                         <rect key="frame" x="270" y="202.5" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="40" id="3Yn-M0-0FB"/>
@@ -2546,7 +2546,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pWD-pF-Bf3">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pWD-pF-Bf3">
                         <rect key="frame" x="270" y="275.5" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="height" constant="40" id="9er-JI-GHv"/>
@@ -2679,7 +2679,7 @@
                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bBg-Bc-L0l">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bBg-Bc-L0l">
                         <rect key="frame" x="270" y="40.5" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="SWw-tY-rKs"/>
@@ -2774,7 +2774,7 @@
                         <state key="normal" image="sendinfo_no"/>
                         <state key="selected" image="sendinfo_yes"/>
                     </button>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RqU-hP-qip">
+                    <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RqU-hP-qip">
                         <rect key="frame" x="270" y="92" width="40" height="40"/>
                         <constraints>
                             <constraint firstAttribute="width" constant="40" id="cET-NC-8tr"/>

+ 31 - 26
smartRhino/Project/VCModel/Source/Controller/SourceHomeVC.m

@@ -38,6 +38,8 @@
 #import "TopicGroupManageModel.h"
 #import "MyTDTopicGroupManageVC.h"
 #import "WorkNumberModel.h"
+#import "MyTDTopicBookVC.h"
+
 
 @interface SourceHomeVC ()<UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource,NoteBookShareVCDelegate,UIScrollViewDelegate,EMChatManagerDelegate, EMGroupManagerDelegate, EMConversationsDelegate>
 @property (weak, nonatomic) IBOutlet UITableView *tableView;
@@ -62,6 +64,7 @@
 @property (strong, nonatomic) NSMutableArray    *ImArray;
 @property (assign, nonatomic) NSInteger         unReadCount;
 @property (strong, nonatomic) WorkNumberModel       * numModel;
+@property (copy, nonatomic) NSString                * listName;
 
 
 @end
@@ -281,7 +284,7 @@
                                 @"UserId":@([AppUserModel sharedAppUserModel].Id),
                                 @"Keyword": @"",
                                 @"Page":@(self.currentPage),
-                                @"TopicGroupIds": @[],
+                                @"TopicGroupIds": self.selectGIdArray,
                                 @"PerPage": @(10),
                                 @"Sort":@""
     };
@@ -393,6 +396,7 @@
 }
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 {
+    WS(weakSelf);
     CGFloat width = (SCREEN_WIDTH - 20) / (self.collectionDataSource.count > 0 ? self.collectionDataSource.count : 1);
     UILabel * testL = [UILabel new];
     testL.font = [UIFont systemFontOfSize:15];
@@ -410,8 +414,8 @@
             self.sectionView.backgroundColor = UIColorHex(0xF5F5F5);
             UILabel * label = [UILabel new];
             label.font = [UIFont systemFontOfSize:15];
-            label.textColor = UIColorHex(0x666666);
-            label.text = @"话 题";
+            label.textColor = UIColorHex(0x009AFF);
+            label.text = @"话题";
             [self.sectionView addSubview:label];
             CGFloat w = [testL sizeThatFits:CGSizeMake(SCREEN_WIDTH, 20)].width;
             CGFloat left = (width - w) * 0.5 + 10;
@@ -419,9 +423,15 @@
                 make.left.mas_offset(left);
                 make.centerY.mas_equalTo(self.sectionView);
             }];
+            UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
+                MyTDTopicBookVC * vc = [MyTDTopicBookVC initMyTDTopicBookVC];
+                [weakSelf.navigationController pushViewController:vc animated:YES];
+            }];
+            label.userInteractionEnabled = YES;
+            [label addGestureRecognizer:tap];
             UIButton * btn = [UIButton new];
             [self.sectionView addSubview:btn];
-            [btn setImage:IMG(@"ChatMsg_new_topic") forState:UIControlStateNormal];
+            [btn setImage:IMG(@"ChatMsg_topic_create") forState:UIControlStateNormal];
             CGFloat r = [testBtnL sizeThatFits:CGSizeMake(SCREEN_WIDTH, 20)].width;
             CGFloat right = (width - r) * 0.5 - 0.5;
             [btn mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -439,7 +449,7 @@
                 };
                 [weakSelf.navigationController pushViewController:vc animated:YES];
             }];
-            [self autoSizeBtn:@"全部"];
+            [self autoSizeBtn:self.listName.length > 0 ? self.listName : @"全部"];
             [self.sectionView addSubview:self.showBtn];
             [self.showBtn mas_makeConstraints:^(MASConstraintMaker *make) {
                 make.center.mas_equalTo(self.sectionView);
@@ -469,26 +479,26 @@
                     for (TopicGroupManageModel * model in subArray) {
                         if (model.isSelect) {
                             [showName appendString:model.Name];
-                            [showName appendString:@"、"];
+//                            [showName appendString:@"、"];
                             [weakSelf.selectGIdArray addObject:@(model.Id)];
                         }
                     }
                 }
-                if (showName.length > 1) {
-                    [showName deleteCharactersInRange:NSMakeRange(showName.length - 1, 1)];
-                    if (showName.length >= 10) {
-                        NSRange range1 = NSMakeRange(8, showName.length - 8);
-                        NSString *resultStr1 = [showName stringByReplacingCharactersInRange:range1 withString:@"..."];
-                        [weakSelf autoSizeBtn:resultStr1];
-                    }else{
-                        [weakSelf autoSizeBtn:showName];
-                    }
-                }
-//                if (weakSelf.selectGIdArray.count > 0) {
-//                    dispatch_async(dispatch_get_main_queue(), ^{
-//                        [weakSelf headRefresh];
-//                    });
+//                if (showName.length > 1) {
+//                    [showName deleteCharactersInRange:NSMakeRange(showName.length - 1, 1)];
+//                    if (showName.length >= 10) {
+//                        NSRange range1 = NSMakeRange(8, showName.length - 8);
+//                        NSString *resultStr1 = [showName stringByReplacingCharactersInRange:range1 withString:@"..."];
+//                        [weakSelf autoSizeBtn:resultStr1];
+//                    }else{
+//                        [weakSelf autoSizeBtn:showName];
+//                    }
 //                }
+                weakSelf.listName = showName;
+//                [weakSelf autoSizeBtn:showName];
+                if (weakSelf.selectGIdArray.count > 0) {
+                    [weakSelf headRefresh];
+                }
             };
             weakSelf.menuListView.dismissBlock = ^{
                 [weakSelf.showBtn dismissCom];
@@ -514,15 +524,10 @@
 - (void)getGroupList
 {
     WS(weakSelf);
-    [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Topic_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+    [[HttpManager sharedHttpManager] GETUrl:Host(APP_Topic_Group) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"======%@",responseObject);
         [weakSelf.groupListArray removeAllObjects];
         NSArray * array = responseObject;
-        TopicGroupManageModel * allModel = [[TopicGroupManageModel alloc] init];
-        allModel.Name = @"全部";
-        allModel.Id = 0;
-        allModel.isSelect = NO;
-        [weakSelf.groupListArray addObject:allModel];
         [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
             NSDictionary * dict = (NSDictionary *)obj;
             TopicGroupManageModel * model = [TopicGroupManageModel modelWithDictionary:dict];

+ 1 - 1
smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.h

@@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN
 ///  1 默认页  2 根据数据生成页
 @property (nonatomic, assign) NSInteger isDefalutPage;
 ///   1默认分组  2我的分组
-@property (nonatomic, assign) NSInteger isMyGroup;
+@property (nonatomic, assign) MailListByZuPageType isMyGroup;
 /// Navtitle
 @property (nonatomic, copy) NSString  * titleStr;
 /// 是否所有层级都可以被选中

+ 364 - 201
smartRhino/Project/VCModel/WorkFlow/AddLookUpUserSecondVC.m

@@ -25,6 +25,7 @@
 @property (nonatomic, strong) NSMutableArray <Department *>*selectDepartArray;
 @property (nonatomic, strong) NSMutableArray <SelectModel*>*usersSourceDataArray;
 @property (nonatomic, strong) NSMutableArray               *dataSourceArray;
+@property (nonatomic, strong) NSMutableArray               *OtherArray;
 @property (nonatomic, strong) UIView      *SortView;
 @property (nonatomic, strong) UIButton    *allSelectBtn;
 @property (nonatomic, strong) UILabel     *selectCountL;
@@ -72,7 +73,7 @@
     [self.myNavigationBar.rightButton setTitle:@"确定" forState:UIControlStateNormal];
     [[self.myNavigationBar.rightButton titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
     self.myNavigationBar.rightButton.hidden = NO;
-    [self.myNavigationBar.rightButton mas_updateConstraints:^(MASConstraintMaker *make) {
+    [self.myNavigationBar.rightButton mas_remakeConstraints:^(MASConstraintMaker *make) {
         make.centerY.equalTo(self.myNavigationBar.backButton);
         make.height.mas_offset(@44);
         make.right.mas_equalTo(self.myNavigationBar.mas_right).offset(-15);
@@ -120,6 +121,7 @@
                     if (depart.hadSelected) {
                         count ++;
                     }
+                    [self countMailArray:@[depart]];
                 }
             }
             if (i == 1) {
@@ -128,6 +130,7 @@
                     if (model.hadSelected) {
                         count ++;
                     }
+                    [self countMailArray:@[model]];
                 }
             }
         }
@@ -135,10 +138,22 @@
     }else{
         NSInteger count = 0;
         for (NSArray * array in self.dataSourceArray) {
-            for (MailModel * model in array) {
-                model.IsSelect = self.isAllSelected;
-                if (model.IsSelect) {
-                    count ++;
+            for (id sub in array) {
+                if ([sub isKindOfClass:[MailModel class]]) {
+                    MailModel * model = (MailModel *)sub;
+                    model.IsSelect = self.isAllSelected;
+                    if (model.IsSelect) {
+                        count ++;
+                    }
+                    [self countMailArray:@[model]];
+                }
+                if ([sub isKindOfClass:[SelectModel class]]) {
+                    SelectModel * model = (SelectModel *)sub;
+                    model.hadSelected = self.isAllSelected;
+                    if (model.hadSelected) {
+                        count ++;
+                    }
+                    [self countMailArray:@[model]];
                 }
             }
         }
@@ -158,6 +173,76 @@
 }
 
 - (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];
+            for (NSArray * array in self.dataSourceArray) {
+                for (id sub in array) {
+                    if ([sub isKindOfClass:[MailModel class]]) {
+                        MailModel * model = (MailModel *)sub;
+                        if (model.IsSelect) {
+                            [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(0)}];
+                        }
+                    }
+                    if ([sub isKindOfClass:[SelectModel class]]) {
+                        SelectModel * model = (SelectModel *)sub;
+                        if (model.hadSelected) {
+                            [mArray addObject:@{@"SourceType":@(0),@"SourceId":@(model.UserId)}];
+                        }
+                    }
+                }
+            }
+            if (mArray.count > 0) {
+                [paraDict setValue:mArray forKey:@"Item"];
+            }
+        }
+        if (self.departSourceDataArray.count > 0) {
+            NSMutableArray * mArray = [NSMutableArray array];
+            for (Department *model in self.departSourceDataArray) {
+                if (model.hadSelected) {
+                    [mArray addObject:@{@"SourceType":@(1),@"SourceId":@(model.Id)}];
+                }
+            }
+            if (mArray.count > 0) {
+                [paraDict setValue:mArray forKey:@"Item"];
+            }
+        }
+        [self.selectArray removeAllObjects];
+        SHOWLOADING
+        WS(weakSelf);
+        [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_User_Middle) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
+            REMOVESHOW
+            for (NSDictionary *dict in responseObject) {
+                SelectModel * model = [SelectModel modelWithDictionary:dict];
+                model.UserId = model.Id;
+                model.UserName = model.Name;
+                model.SourceType = weakSelf.SourceType;
+                model.SourceId = model.UserId;
+                model.SourceName = model.UserName;
+                [weakSelf.selectArray addObject:model];
+            }
+            [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFI_ChaoSongRen object:nil userInfo:@{@"selectPeople":weakSelf.selectArray}];
+            [weakSelf back1];
+        } failure:^(NSError * _Nonnull error) {
+            SHOWERROR([ZYCTool handerResultData:error]);
+        }];
+    }
+
+ 
+
 //    if (self.isAllSelected) {
 //        //获取所有被选中的分组
 //        NSMutableArray *groupIDArray = [NSMutableArray array];
@@ -243,8 +328,6 @@
 //            }
 //        }
 //        NSLog(@"请求参数1%@",dic);
-        SHOWLOADING
-        WS(weakSelf);
 //        [[HttpManager sharedHttpManager] POSTUrl:[NSString stringWithFormat:@"%@%@",BaseUrl,AddChaoSongRen_Post] parameters:dic responseStyle:JOSN success:^(id  _Nonnull responseObject) {
 //            REMOVESHOW
 //            for (NSDictionary *dict in responseObject) {
@@ -261,45 +344,12 @@
 //        } failure:^(NSError * _Nonnull error) {
 //            SHOWERROR([ZYCTool handerResultData:error]);
 //        }];
-        NSMutableDictionary * paraDict = [NSMutableDictionary dictionary];
-        if (self.dataSourceArray.count > 0) {
-            NSMutableArray * mArray = [NSMutableArray array];
-            for (NSArray * array in self.dataSourceArray) {
-                for (MailModel * model in array) {
-                    [mArray addObject:@{@"SourceType":@(model.TypeId),@"SourceId":@(0)}];
-                }
-            }
-            [paraDict setValue:mArray forKey:@"Item"];
-        }
-        if (self.departSourceDataArray.count > 0) {
-            NSMutableArray * mArray = [NSMutableArray array];
-            for (Department *model in self.departSourceDataArray) {
-                [mArray addObject:@{@"SourceType":@(1),@"SourceId":@(model.Id)}];
-            }
-            [paraDict setValue:mArray forKey:@"Item"];
-        }
-        [self.selectArray removeAllObjects];
-        [[HttpManager sharedHttpManager] POSTUrl:Host(API_APP_User_Middle) parameters:paraDict responseStyle:JOSN success:^(id  _Nonnull responseObject) {
-            REMOVESHOW
-            for (NSDictionary *dict in responseObject) {
-                SelectModel * model = [SelectModel modelWithDictionary:dict];
-                model.UserId = model.Id;
-                model.UserName = model.Name;
-                model.SourceType = weakSelf.SourceType;
-                model.SourceId = model.UserId;
-                model.SourceName = model.UserName;
-                [weakSelf.selectArray addObject:model];
-            }
-            [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFI_ChaoSongRen object:nil userInfo:@{@"selectPeople":weakSelf.selectArray}];
-            [weakSelf back1];
-        } failure:^(NSError * _Nonnull error) {
-            SHOWERROR([ZYCTool handerResultData:error]);
-        }];
+        
 //    }
 }
 
-- (void)setRIghtButtonTitle:(NSInteger)indeflag{
-    [self.myNavigationBar.rightButton setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)indeflag] forState:UIControlStateNormal];
+//- (void)setRIghtButtonTitle:(NSInteger)indeflag{
+//    [self.myNavigationBar.rightButton setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)indeflag] forState:UIControlStateNormal];
 //    if (self.isDefalutPage == 1){
 //        if (indeflag == 2) {
 //            [self.myNavigationBar.backButton2 setTitle:@"取消全选" forState:UIControlStateNormal];
@@ -309,8 +359,7 @@
 //    }else{
 //         [self.myNavigationBar.backButton2 setTitle:@"全选" forState:UIControlStateNormal];
 //    }
-    
-}
+//}
 #pragma mark - setter
 - (TDTableView *)myTableView{
     if (!_myTableView) {
@@ -375,12 +424,7 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
     WS(weakSelf);
-    NSInteger count = [self countOfSelectArray];
-    if (count > 0) {
-        [self.myNavigationBar.rightButton setTitle:[NSString stringWithFormat:@"确定(%ld)",(long)count] forState:UIControlStateNormal];
-    }else{
-        [self.myNavigationBar.rightButton setTitle:@"确定" forState:UIControlStateNormal];
-    }
+
     if (!self.IsSubVC) {
         if ([self checkAllSelect:2]) {
             [self.allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateNormal];
@@ -390,55 +434,72 @@
         NSString *cellIdentifier2 = @"SendGroupBCell";
         SendGroupBCell * cell = (SendGroupBCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier2];
         NSArray * array = self.dataSourceArray[indexPath.section];
-        if (array.count > 0) {
-            MailModel * model = array[indexPath.row];
-            [cell setDataModel:model];
-            [cell.selectbuton setAction:^{
-                model.IsSelect = !model.IsSelect;
-                [weakSelf checkSelectCount:2];
-                [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
-            }];
+        switch (indexPath.section) {
+            case 0:
+            {
+                if (array.count > 0) {
+                    MailModel * model = array[indexPath.row];
+                    [cell setDataModel:model];
+                    [cell.selectbuton setAction:^{
+                        model.IsSelect = !model.IsSelect;
+                        [weakSelf checkSelectCount:model];
+                        [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+                    }];
+                }
+            }
+                break;
+            default:{
+                NSString *cellIdentifier = @"SendInfoGroupCell";
+                SendInfoGroupCell * detailCommentCell = (SendInfoGroupCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
+                SelectModel *model = array[indexPath.row];
+                [detailCommentCell loadDataDepartUserModel:model indexWith:indexPath];
+                [detailCommentCell.selectbuton setAction:^{
+                    model.hadSelected = !model.hadSelected;
+                    [weakSelf checkSelectCount:model];
+                    [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+                }];
+                detailCommentCell.rightImgeView.hidden = YES;
+                return detailCommentCell;
+            }
+                break;
         }
         return cell;
-    }
-    if (indexPath.section == 1) {
-        if ([self checkAllSelect:0]) {
-            [self.allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateNormal];
-        }else{
-            [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
-        }
-        NSString *cellIdentifier = @"SendInfoGroupCell";
-        SendInfoGroupCell * detailCommentCell = (SendInfoGroupCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
-        SelectModel *model = self.usersSourceDataArray[indexPath.row];
-        if (model.IsDisable) {
-            [detailCommentCell.selectbuton setEnabled:NO];
-            [detailCommentCell.contentView setBackgroundColor:[UIColor grayColor]];
-        }
-        [detailCommentCell loadDataDepartUserModel:model indexWith:indexPath];
-        [detailCommentCell.selectbuton setAction:^{
-            model.hadSelected = !model.hadSelected;
-            [weakSelf checkSelectCount:0];
-            [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
-        }];
-        detailCommentCell.rightImgeView.hidden = YES;
-        return detailCommentCell;
     }else{
-        if ([self checkAllSelect:1]) {
-            [self.allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateNormal];
+        if (indexPath.section == 1) {
+            if ([self checkAllSelect:0]) {
+                [self.allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateNormal];
+            }else{
+                [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+            }
+            NSString *cellIdentifier = @"SendInfoGroupCell";
+            SendInfoGroupCell * detailCommentCell = (SendInfoGroupCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
+            SelectModel *model = self.usersSourceDataArray[indexPath.row];
+            [detailCommentCell loadDataDepartUserModel:model indexWith:indexPath];
+            [detailCommentCell.selectbuton setAction:^{
+                model.hadSelected = !model.hadSelected;
+                [weakSelf checkSelectCount:model];
+                [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+            }];
+            detailCommentCell.rightImgeView.hidden = YES;
+            return detailCommentCell;
         }else{
-            [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+            if ([self checkAllSelect:1]) {
+                [self.allSelectBtn setImage:IMG(@"sendinfo_yes") forState:UIControlStateNormal];
+            }else{
+                [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+            }
+            NSString *cellIdentifier2 = @"SendGroupBCell";
+            SendGroupBCell * sendB = (SendGroupBCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier2];
+            Department *model = self.departSourceDataArray[indexPath.row];
+            [sendB loadDataModelDepartment: model WithIndex:indexPath];
+            [sendB.selectbuton setAction:^{
+                model.hadSelected = !model.hadSelected;
+                [weakSelf checkSelectCount:model];
+                [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
+            }];
+            sendB.rightImgeView.hidden = NO;
+            return sendB;
         }
-        NSString *cellIdentifier2 = @"SendGroupBCell";
-        SendGroupBCell * sendB = (SendGroupBCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier2];
-        Department *model = self.departSourceDataArray[indexPath.row];
-        [sendB loadDataModelDepartment: model WithIndex:indexPath];
-        [sendB.selectbuton setAction:^{
-            model.hadSelected = !model.hadSelected;
-            [weakSelf checkSelectCount:1];
-            [weakSelf.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
-        }];
-        sendB.rightImgeView.hidden = NO;
-        return sendB;
     }
 }
 
@@ -459,18 +520,22 @@
 }
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 {
-    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
-    view.backgroundColor = UIColorHex(0xF0EFF4);
-    UILabel * titleL = [UILabel new];
-    [view addSubview:titleL];
-    titleL.textColor = UIColorHex(0x666666);
-    titleL.font = Kfont(13);
-    titleL.text = @"";
-    [titleL mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_offset(48);
-        make.centerY.mas_equalTo(view);
-    }];
-    return view;
+    if (!self.IsSubVC && section > 0) {
+        UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 36)];
+        view.backgroundColor = UIColorHex(0xF0EFF4);
+        UILabel * titleL = [UILabel new];
+        [view addSubview:titleL];
+        titleL.textColor = UIColorHex(0x666666);
+        titleL.font = Kfont(13);
+        titleL.text = @"最近聊天";
+        [titleL mas_makeConstraints:^(MASConstraintMaker *make) {
+            make.left.mas_offset(48);
+            make.centerY.mas_equalTo(view);
+        }];
+        return view;
+    }else{
+        return [UIView new];
+    }
 }
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     if (self.IsSubVC) {
@@ -519,81 +584,75 @@
                 [self.navigationController pushViewController:vc animated:YES];
             }else{
                 SelectModel *model = self.usersSourceDataArray[indexPath.row];
-                if (!model.IsDisable) {
-                    model.hadSelected = !model.hadSelected;
-                    [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
-                }
+                model.hadSelected = !model.hadSelected;
+                [self checkSelectCount:model];
+                [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
             }
         }
     }else{
         NSArray * array = [self.dataSourceArray objectAtIndex:indexPath.section];
-        MailModel * model = [array objectAtIndex:indexPath.row];
-        switch (model.TypeId) {
-            case MailListUserType:
+        switch (indexPath.section) {
+            case 0:
             {
-                
-            }
-                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:
-            {
-                
+                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;
+                }
             }
                 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];
+                SelectModel * model = [array objectAtIndex:indexPath.row];
+                model.hadSelected = !model.hadSelected;
+                [self checkSelectCount:model];
+                [self.myTableView reloadRow:indexPath.row inSection:indexPath.section withRowAnimation:UITableViewRowAnimationNone];
             }
                 break;
         }
     }
 }
-- (NSInteger)countOfSelectArray
-{
-    NSInteger count = 0;
-    for (SelectModel * model in self.usersSourceDataArray) {
-        if (model.hadSelected) {
-            count++;
-        }
-    }
-    for (Department * model in self.departSourceDataArray) {
-        if (model.hadSelected) {
-            count++;
-        }
-    }
-    if (count > 0) {
-        [self.myNavigationBar.rightButton setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
-    }else{
-        [self.myNavigationBar.rightButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
-    }
-    return count;
-}
+
 - (BOOL)checkAllSelect:(NSInteger)index
 {
     switch (index) {
@@ -624,10 +683,20 @@
         default:
         {
             for (NSArray * array in self.dataSourceArray) {
-                for (MailModel * model in array) {
-                    if (!model.IsSelect) {
-                        [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
-                        return NO;
+                for (id sub in array) {
+                    if ([sub isKindOfClass:[MailModel class]]) {
+                        MailModel * model = (MailModel *)sub;
+                        if (!model.IsSelect) {
+                            [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+                            return NO;
+                        }
+                    }
+                    if ([sub isKindOfClass:[SelectModel class]]) {
+                        SelectModel * model = (SelectModel *)sub;
+                        if (!model.hadSelected) {
+                            [self.allSelectBtn setImage:IMG(@"sendinfo_no") forState:UIControlStateNormal];
+                            return NO;
+                        }
                     }
                 }
             }
@@ -637,46 +706,112 @@
             break;
     }
 }
-- (void)checkSelectCount:(NSInteger)index
+- (void)checkSelectCount:(id)detail
 {
     NSInteger count = 0;
-    switch (index) {
-        case 0:
-        {
-            for (SelectModel * model in self.usersSourceDataArray) {
-                if (model.hadSelected) {
+    for (SelectModel * model in self.usersSourceDataArray) {
+        if (model.hadSelected) {
+            count++;
+        }
+    }
+    for (NSArray * subArray in self.dataSourceArray) {
+        for (id sub in subArray) {
+            if ([sub isKindOfClass:[MailModel class]]) {
+                MailModel * model = (MailModel *)sub;
+                if (model.IsSelect) {
                     count++;
                 }
             }
-        }
-            break;
-        case 1:
-        {
-            for (Department * model in self.departSourceDataArray) {
+            if ([sub isKindOfClass:[SelectModel class]]) {
+                SelectModel * model = (SelectModel *)sub;
                 if (model.hadSelected) {
                     count++;
                 }
             }
         }
-            break;
-        default:
-        {
-            for (NSArray * array in self.dataSourceArray) {
-                for (MailModel * model in array) {
-                    if (model.IsSelect) {
-                        count++;
-                    }
-                }
-            }
+    }
+    for (SelectModel * model in self.departSourceDataArray) {
+        if (model.hadSelected) {
+            count++;
         }
-            break;
     }
     self.selectCountL.text = [NSString stringWithFormat:@"%ld",count];
-    if (count > 0) {
-        [self.myNavigationBar.rightButton setTitleColor:UIColorHex(#3979D3) forState:UIControlStateNormal];
-    }else{
-        [self.myNavigationBar.rightButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
+    [self countMailArray:@[detail]];
+}
+- (void)countMailArray:(NSArray *)sssArray
+{
+    for (id detail in sssArray) {
+        NSMutableArray * mailArray = [NSMutableArray arrayWithArray:USERDEFAULTSGET(MAILSELECT)];
+        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) {
+                isEque = YES;
+                [mailArray removeObject:obj];
+            }
+        }];
+        if (!isEque) {
+            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];
+        }
+    }
+}
+- (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;
 }
 #pragma mark - 网络数据请求
 - (void)getdata{
@@ -698,19 +833,39 @@
     SHOWLOADING
     WS(weakSelf);
     [self.dataSourceArray removeAllObjects];
+    [self.OtherArray removeAllObjects];
     [[HttpManager sharedHttpManager] GETUrl:Host(API_APP_User_Link) parameters:@{} responseStyle:JOSN success:^(id  _Nonnull responseObject) {
         NSLog(@"%@",responseObject);
         REMOVESHOW
         NSMutableArray * fArray = [NSMutableArray array];
-        NSMutableArray * sArray = [NSMutableArray array];
         if ([responseObject[@"Items"] isKindOfClass:[NSArray class]]) {
             NSArray * array = responseObject[@"Items"];
             for (NSDictionary * dict in array) {
                 MailModel * model = [MailModel modelWithDictionary:dict];
                 [fArray addObject:model];
             }
-            MailModel * omodel = [MailModel modelWithDictionary:@{@"Name":@"其他",@"TypeId":@(0)}];
-            [fArray addObject:omodel];
+            if ([responseObject[@"FriendUsers"] isKindOfClass:[NSArray class]]) {
+                NSArray * array = responseObject[@"FriendUsers"];
+                for (NSDictionary * dict in array) {
+                    SelectModel * smodel = [[SelectModel alloc] initDict:dict];
+                    smodel.SourceId = smodel.UserId;
+                    smodel.SourceName = smodel.UserName;
+                    smodel.SourceType = 0;
+                    [weakSelf.OtherArray addObject:smodel];
+                }
+            }
+            NSMutableArray * sArray = [NSMutableArray array];
+
+            if ([responseObject[@"LatelyChatUsers"] isKindOfClass:[NSArray class]]) {
+                NSArray * array = responseObject[@"LatelyChatUsers"];
+                for (NSDictionary * dict in array) {
+                    SelectModel * smodel = [[SelectModel alloc] initDict:dict];
+                    smodel.SourceId = smodel.UserId;
+                    smodel.SourceName = smodel.UserName;
+                    smodel.SourceType = 0;
+                    [sArray addObject:smodel];
+                }
+            }
             [weakSelf.dataSourceArray addObject:fArray];
             [weakSelf.dataSourceArray addObject:sArray];
             dispatch_async(dispatch_get_main_queue(), ^{
@@ -914,6 +1069,14 @@
     }
     return _dataSourceArray;
 }
+- (NSMutableArray *)OtherArray
+{
+    if (!_OtherArray) {
+        _OtherArray = [NSMutableArray array];
+    }
+    return _OtherArray;
+}
+
 - (void)viewWillDisappear:(BOOL)animated
 {
     [super viewWillDisappear:animated];

+ 2 - 0
smartRhino/Project/VCModel/WorkFlow/MyWorkCarVC.m

@@ -712,6 +712,7 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.delegate = self;
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 }
 
@@ -730,6 +731,7 @@
     vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy;
     vc.isDefalutPage = 1;
     vc.delegate = self;
+    USERDEFAULTSSET([NSMutableArray array], MAILSELECT);
     [self.navigationController pushViewController:vc animated:YES];
 
 }

+ 0 - 0
smartRhino/Project/VCModel/WorkFlow/MyWorkWordVC.m


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