InterMailEditSearchVC.m 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730
  1. //
  2. // InterMailEditSearchVC.m
  3. // smartRhino
  4. //
  5. // Created by niuzhen on 2020/2/26.
  6. // Copyright © 2020 tederen. All rights reserved.
  7. //
  8. #import "InterMailEditSearchVC.h"
  9. #import "ChatMsgNoticeCell.h"
  10. #import "NSDate+Extension.h"
  11. #import "TDInterLeterHomeViewController.h"
  12. #import "MyApprovalPageDetail.h"
  13. #import "MoveViewController.h"
  14. @interface InterMailEditSearchVC ()<UITableViewDelegate,UITableViewDataSource>
  15. @property (nonatomic, copy) NSMutableArray *interLetterArray;
  16. @property (nonatomic, assign) NSUInteger currentPage;
  17. @property (nonatomic, assign) NSUInteger totalPage;
  18. @property (nonatomic, assign) NSUInteger totalRecord;
  19. @property (nonatomic, strong) NSMutableArray <NoticeModel*>*listArray;
  20. @property (strong, nonatomic) UIButton *moveButton;
  21. @property (nonatomic,strong) UIView * operationBottomBgView;
  22. @end
  23. @implementation InterMailEditSearchVC
  24. - (NSMutableArray *)interLetterArray
  25. {
  26. if (!_interLetterArray) {
  27. _interLetterArray = [NSMutableArray array];
  28. }
  29. return _interLetterArray;
  30. }
  31. - (void)viewDidLoad {
  32. [super viewDidLoad];
  33. self.fd_prefersNavigationBarHidden = YES;
  34. self.view.backgroundColor = RGB(255, 255, 255);
  35. self.lineL.hidden = YES;
  36. self.tableView.delegate = self;
  37. self.tableView.dataSource = self;
  38. [self addRefresh];
  39. [self initBottomBgView];
  40. self.historySearchType = HistorySearchType_InterMail;
  41. self.operationBottomBgView.hidden = YES;
  42. [self addObserver:self forKeyPath:@"searchText" options:NSKeyValueObservingOptionNew context:nil];
  43. [self addObserver:self forKeyPath:@"IsBViewHidden" options:NSKeyValueObservingOptionNew context:nil];
  44. }
  45. - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
  46. {
  47. if ([keyPath isEqualToString:@"searchText"]) {
  48. id obj = [change objectForKey:@"new"];
  49. NSString * text = @"";
  50. if ([obj isKindOfClass:[NSString class]]) {
  51. text = obj;
  52. }else{
  53. text = [obj stringValue];
  54. }
  55. if (text.length > 0) {
  56. [self headRefresh];
  57. }
  58. }
  59. if ([keyPath isEqualToString:@"IsBViewHidden"]) {
  60. self.operationBottomBgView.hidden = YES;
  61. }
  62. }
  63. - (void)addRefresh
  64. {
  65. WS(weakSelf);
  66. if (self.searchText.length > 0) {
  67. self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  68. [weakSelf headRefresh];
  69. }];
  70. self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
  71. [weakSelf footerRefresh];
  72. }];
  73. }
  74. }
  75. - (void)headRefresh{
  76. self.currentPage = 1;
  77. [self.interLetterArray removeAllObjects];
  78. [self getData:self.searchText];
  79. }
  80. - (void)footerRefresh{
  81. self.currentPage += 1;
  82. if (self.totalRecord == self.interLetterArray.count) {
  83. self.currentPage --;
  84. return ;
  85. }
  86. [self getData:self.searchText];
  87. }
  88. - (void)getData:(NSString *)text
  89. {
  90. if (text.length == 0) {
  91. return;
  92. }
  93. NSLog(@"%@",@"刷新数据");
  94. NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
  95. [dict setObject:@(self.currentPage) forKey:@"Page"];
  96. [dict setObject:@"20" forKey:@"PerPage"];
  97. [dict setObject:@(self.type) forKey:@"SearchType"];
  98. [dict setObject:text forKey:@"Keyword"];
  99. [dict setObject:@(self.FolderId) forKey:@"NoticeFolderId"];
  100. WS(weakSelf);
  101. [[HttpManager sharedHttpManager] POSTUrl:Host(API_NOTICE_LIST) parameters:dict responseStyle:JOSN success:^(id _Nonnull responseObject) {
  102. NSLog(@"站内信返回数据%@",responseObject);
  103. NoticeListModel *listModel = [[NoticeListModel alloc] initWithDictionary:responseObject error:nil];
  104. [weakSelf.tableView.mj_header endRefreshing];
  105. [weakSelf.tableView.mj_footer endRefreshing];
  106. weakSelf.totalRecord = listModel.Total;
  107. [weakSelf.interLetterArray addObjectsFromArray:listModel.Items];
  108. if (weakSelf.totalRecord == weakSelf.interLetterArray.count) {
  109. [weakSelf.tableView.mj_footer resetNoMoreData];
  110. [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];
  111. }
  112. [weakSelf.tableView reloadData];
  113. } failure:^(NSError * _Nonnull error) {
  114. SHOWERROR([ZYCTool handerResultData:error]);
  115. [weakSelf.tableView.mj_header endRefreshing];
  116. [weakSelf.tableView.mj_footer endRefreshing];
  117. }];
  118. }
  119. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  120. return 1;
  121. }
  122. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  123. return self.interLetterArray.count;
  124. }
  125. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  126. return UITableViewAutomaticDimension;
  127. }
  128. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  129. WS(weakSelf);
  130. NoticeModel *model = self.interLetterArray[indexPath.row];
  131. switch (model.AttributeValue) {
  132. case 1:{
  133. switch (model.NoticeStatus) {
  134. case 1:///正常
  135. {
  136. switch (model.TypeValue){
  137. case PageTypeFromTitleMail:
  138. {
  139. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  140. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  141. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  142. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  143. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  144. cell.IsTopImgV.hidden = !model.IsTop;
  145. cell.cell2RedBgView.hidden = model.IsRead;
  146. cell.cell1SelectButton.selected = model.IsSelect;
  147. [cell.cell1SelectButton setAction:^{
  148. model.IsSelect = !model.IsSelect;
  149. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  150. }];
  151. return cell;
  152. }
  153. break;
  154. case PageTypeFromTitleNotice:
  155. {
  156. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  157. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"通知图标");
  158. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  159. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  160. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  161. cell.cell2RedBgView.hidden = model.IsRead;
  162. cell.IsTopImgV.hidden = !model.IsTop;
  163. cell.cell1SelectButton.selected = model.IsSelect;
  164. [cell.cell1SelectButton setAction:^{
  165. model.IsSelect = !model.IsSelect;
  166. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  167. }];
  168. return cell;
  169. }
  170. break;
  171. case PageTypeFromTitleMeShen:
  172. {
  173. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  174. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  175. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  176. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  177. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  178. cell.cell2RedBgView.hidden = model.IsRead;
  179. cell.IsTopImgV.hidden = !model.IsTop;
  180. cell.cell1SelectButton.selected = model.IsSelect;
  181. [cell.cell1SelectButton setAction:^{
  182. model.IsSelect = !model.IsSelect;
  183. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  184. }];
  185. return cell;
  186. }
  187. break;
  188. case PageTypeFromTitleMeSend:
  189. {
  190. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  191. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  192. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  193. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  194. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  195. cell.cell2RedBgView.hidden = model.IsRead;
  196. cell.IsTopImgV.hidden = !model.IsTop;
  197. cell.cell1SelectButton.selected = model.IsSelect;
  198. [cell.cell1SelectButton setAction:^{
  199. model.IsSelect = !model.IsSelect;
  200. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  201. }];
  202. return cell;
  203. }
  204. break;
  205. case PageTypeFromTitleChao:
  206. {
  207. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  208. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  209. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  210. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  211. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  212. cell.cell2RedBgView.hidden = model.IsRead;
  213. cell.IsTopImgV.hidden = !model.IsTop;
  214. cell.cell1SelectButton.selected = model.IsSelect;
  215. [cell.cell1SelectButton setAction:^{
  216. model.IsSelect = !model.IsSelect;
  217. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  218. }];
  219. return cell;
  220. }
  221. break;
  222. default:///匿名
  223. {
  224. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  225. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  226. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  227. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  228. cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.CreatedDate];
  229. cell.cell2RedBgView.hidden = model.IsRead;
  230. cell.IsTopImgV.hidden = !model.IsTop;
  231. cell.cell1SelectButton.selected = model.IsSelect;
  232. [cell.cell1SelectButton setAction:^{
  233. model.IsSelect = !model.IsSelect;
  234. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  235. }];
  236. return cell;
  237. }
  238. break;
  239. }
  240. }
  241. break;
  242. case 0:///删除
  243. {
  244. switch (model.TypeValue) {
  245. case PageTypeFromTitleMail:{
  246. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  247. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  248. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  249. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  250. cell.IsTopImgV.hidden = !model.IsTop;
  251. cell.cell2EditBtn.hidden = NO;
  252. cell.cell2RedBgView.hidden = YES;
  253. cell.cell2TimeLabel.hidden = YES;
  254. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  255. [cell.cell2EditBtn setAction:^{
  256. NSLog(@"恢复已删除站内信");
  257. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  258. }];
  259. cell.cell1SelectButton.selected = model.IsSelect;
  260. [cell.cell1SelectButton setAction:^{
  261. model.IsSelect = !model.IsSelect;
  262. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  263. }];
  264. return cell;
  265. }
  266. break;
  267. case PageTypeFromTitleNotice:
  268. {
  269. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  270. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"通知图标");
  271. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  272. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  273. cell.IsTopImgV.hidden = !model.IsTop;
  274. cell.cell2EditBtn.hidden = NO;
  275. cell.cell2RedBgView.hidden = YES;
  276. cell.cell2TimeLabel.hidden = YES;
  277. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  278. [cell.cell2EditBtn setAction:^{
  279. NSLog(@"恢复已删除站内信");
  280. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  281. }];
  282. cell.cell1SelectButton.selected = model.IsSelect;
  283. [cell.cell1SelectButton setAction:^{
  284. model.IsSelect = !model.IsSelect;
  285. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  286. }];
  287. return cell;
  288. }
  289. break;
  290. case PageTypeFromTitleMeShen:
  291. {
  292. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  293. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  294. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  295. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  296. cell.IsTopImgV.hidden = !model.IsTop;
  297. cell.cell2EditBtn.hidden = NO;
  298. cell.cell2RedBgView.hidden = YES;
  299. cell.cell2TimeLabel.hidden = YES;
  300. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  301. [cell.cell2EditBtn setAction:^{
  302. NSLog(@"恢复已删除站内信");
  303. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  304. }];
  305. cell.cell1SelectButton.selected = model.IsSelect;
  306. [cell.cell1SelectButton setAction:^{
  307. model.IsSelect = !model.IsSelect;
  308. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  309. }];
  310. return cell;
  311. }
  312. break;
  313. case PageTypeFromTitleMeSend:
  314. {
  315. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  316. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  317. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  318. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  319. cell.IsTopImgV.hidden = !model.IsTop;
  320. cell.cell2EditBtn.hidden = NO;
  321. cell.cell2RedBgView.hidden = YES;
  322. cell.cell2TimeLabel.hidden = YES;
  323. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  324. [cell.cell2EditBtn setAction:^{
  325. NSLog(@"恢复已删除站内信");
  326. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  327. }];
  328. cell.cell1SelectButton.selected = model.IsSelect;
  329. [cell.cell1SelectButton setAction:^{
  330. model.IsSelect = !model.IsSelect;
  331. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  332. }];
  333. return cell;
  334. }
  335. break;
  336. case PageTypeFromTitleChao:
  337. {
  338. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  339. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  340. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  341. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  342. cell.IsTopImgV.hidden = !model.IsTop;
  343. cell.cell2EditBtn.hidden = NO;
  344. cell.cell2RedBgView.hidden = YES;
  345. cell.cell2TimeLabel.hidden = YES;
  346. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  347. [cell.cell2EditBtn setAction:^{
  348. NSLog(@"恢复已删除站内信");
  349. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  350. }];
  351. cell.cell1SelectButton.selected = model.IsSelect;
  352. [cell.cell1SelectButton setAction:^{
  353. model.IsSelect = !model.IsSelect;
  354. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  355. }];
  356. return cell;
  357. }
  358. break;
  359. default:///匿名
  360. {
  361. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  362. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  363. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  364. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  365. cell.IsTopImgV.hidden = !model.IsTop;
  366. cell.cell2EditBtn.hidden = NO;
  367. cell.cell2RedBgView.hidden = YES;
  368. cell.cell2TimeLabel.hidden = YES;
  369. [cell.cell2EditBtn setTitle:@"恢复" forState:UIControlStateNormal];
  370. [cell.cell2EditBtn setAction:^{
  371. NSLog(@"恢复已删除站内信");
  372. [weakSelf reDoDeleteFind:@[model].mutableCopy];
  373. }];
  374. cell.cell1SelectButton.selected = model.IsSelect;
  375. [cell.cell1SelectButton setAction:^{
  376. model.IsSelect = !model.IsSelect;
  377. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  378. }];
  379. return cell;
  380. }
  381. break;
  382. }
  383. }
  384. break;
  385. default:
  386. {
  387. switch (model.TypeValue) {
  388. case PageTypeFromTitleMail:{
  389. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  390. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  391. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  392. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  393. cell.IsTopImgV.hidden = !model.IsTop;
  394. cell.cell2EditBtn.hidden = NO;
  395. [cell.cell2EditBtn setAction:^{
  396. [weakSelf editorButtonHander:indexPath];
  397. }];
  398. cell.cell2RedBgView.hidden = model.IsRead;
  399. cell.cell2TimeLabel.hidden = YES;
  400. cell.cell1SelectButton.selected = model.IsSelect;
  401. [cell.cell1SelectButton setAction:^{
  402. model.IsSelect = !model.IsSelect;
  403. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  404. }];
  405. return cell;
  406. }
  407. break;
  408. case PageTypeFromTitleNotice:
  409. {
  410. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  411. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"通知图标");
  412. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  413. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  414. cell.IsTopImgV.hidden = !model.IsTop;
  415. cell.cell2EditBtn.hidden = NO;
  416. [cell.cell2EditBtn setAction:^{
  417. [weakSelf editorButtonHander:indexPath];
  418. }];
  419. cell.cell2RedBgView.hidden = model.IsRead;
  420. cell.cell2TimeLabel.hidden = YES;
  421. cell.cell1SelectButton.selected = model.IsSelect;
  422. [cell.cell1SelectButton setAction:^{
  423. model.IsSelect = !model.IsSelect;
  424. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  425. }];
  426. return cell;
  427. }
  428. break;
  429. case PageTypeFromTitleMeShen:
  430. {
  431. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  432. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  433. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  434. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  435. cell.IsTopImgV.hidden = !model.IsTop;
  436. cell.cell2EditBtn.hidden = NO;
  437. [cell.cell2EditBtn setAction:^{
  438. [weakSelf editorButtonHander:indexPath];
  439. }];
  440. cell.cell2RedBgView.hidden = model.IsRead;
  441. cell.cell2TimeLabel.hidden = YES;
  442. cell.cell1SelectButton.selected = model.IsSelect;
  443. [cell.cell1SelectButton setAction:^{
  444. model.IsSelect = !model.IsSelect;
  445. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  446. }];
  447. return cell;
  448. }
  449. break;
  450. case PageTypeFromTitleMeSend:
  451. {
  452. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  453. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  454. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  455. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  456. cell.IsTopImgV.hidden = !model.IsTop;
  457. cell.cell2EditBtn.hidden = NO;
  458. [cell.cell2EditBtn setAction:^{
  459. [weakSelf editorButtonHander:indexPath];
  460. }];
  461. cell.cell2RedBgView.hidden = model.IsRead;
  462. cell.cell2TimeLabel.hidden = YES;
  463. cell.cell1SelectButton.selected = model.IsSelect;
  464. [cell.cell1SelectButton setAction:^{
  465. model.IsSelect = !model.IsSelect;
  466. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  467. }];
  468. return cell;
  469. }
  470. break;
  471. case PageTypeFromTitleChao:
  472. {
  473. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  474. [self setShenIcon:model withCellImgV:cell.cell2UserImgView];
  475. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  476. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  477. cell.IsTopImgV.hidden = !model.IsTop;
  478. cell.cell2EditBtn.hidden = NO;
  479. [cell.cell2EditBtn setAction:^{
  480. [weakSelf editorButtonHander:indexPath];
  481. }];
  482. cell.cell2RedBgView.hidden = model.IsRead;
  483. cell.cell2TimeLabel.hidden = YES;
  484. cell.cell1SelectButton.selected = model.IsSelect;
  485. [cell.cell1SelectButton setAction:^{
  486. model.IsSelect = !model.IsSelect;
  487. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  488. }];
  489. return cell;
  490. }
  491. break;
  492. default:///匿名
  493. {
  494. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  495. cell.cell2UserImgView.image = model.IsRecall ? IMG(@"IsRecall_Icon") : IMG(@"站内信图");
  496. cell.cell2TitleLabel.attributedText = [ZYCTool checkOfString:model.Title withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  497. [self setIntroLabelWithModel:model introLabel:cell.cell2IntroLabel unreadNumberLabel:cell.cell2UnReadNumberLbl];
  498. cell.IsTopImgV.hidden = !model.IsTop;
  499. cell.cell2EditBtn.hidden = NO;
  500. [cell.cell2EditBtn setAction:^{
  501. [weakSelf editorButtonHander:indexPath];
  502. }];
  503. cell.cell2RedBgView.hidden = model.IsRead;
  504. cell.cell2TimeLabel.hidden = YES;
  505. cell.cell1SelectButton.selected = model.IsSelect;
  506. [cell.cell1SelectButton setAction:^{
  507. model.IsSelect = !model.IsSelect;
  508. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  509. }];
  510. return cell;
  511. }
  512. break;
  513. }
  514. }
  515. break;
  516. }
  517. }
  518. break;
  519. case 2:{
  520. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell10:tableView indexPath:indexPath];
  521. cell.cell1TitleLabel.attributedText = [ZYCTool checkOfString:model.FolderName withSearchText:self.searchText withColor:UIColorHex(0xFF5252)];
  522. cell.IsTopImgV.hidden = !model.IsTop;
  523. cell.cell1TimeLabel.text = [NSString stringWithFormat:@"%ld",(long)model.FileCount];
  524. cell.cell1SelectButton.selected = model.IsSelect;
  525. [cell.cell1SelectButton setAction:^{
  526. model.IsSelect = !model.IsSelect;
  527. [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  528. }];
  529. return cell;
  530. }break;
  531. default:{
  532. ChatMsgNoticeCell *cell = [ChatMsgNoticeCell configCell20:tableView indexPath:indexPath];
  533. return cell;
  534. }
  535. break;
  536. }
  537. }
  538. - (void)thoroughDelete:(NSMutableArray<NoticeModel *>*)array isDelete:(BOOL)isDelete
  539. {
  540. NSMutableArray * addArray = [NSMutableArray array];
  541. for (NoticeModel *model in array) {
  542. [addArray addObject:@(model.Id)];
  543. }
  544. NSDictionary * dict = @{@"MiddleIds":addArray,
  545. @"FolderType":@(800), ///1 通知
  546. @"IsDelete":@(isDelete)
  547. };
  548. WS(weakSelf);
  549. SHOWLOADING
  550. [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_DeleteRecord) parameters:dict responseStyle:DATA success:^(id _Nonnull responseObject) {
  551. REMOVESHOW
  552. SHOWSUCCESS(@"删除成功");
  553. [weakSelf.interLetterArray removeObjectsInArray:array];
  554. dispatch_async(dispatch_get_main_queue(), ^{
  555. [weakSelf.tableView reloadData];
  556. });
  557. } failure:^(NSError * _Nonnull error) {
  558. REMOVESHOW
  559. }];
  560. }
  561. - (void)setShenIcon:(NoticeModel *)model withCellImgV:(UIImageView *)imagV
  562. {
  563. if (model.IsRecall) {
  564. imagV.image = IMG(@"shenpi_reCall");
  565. }else{
  566. if ([model.FlowState isEqualToString:@"Checking"]) {
  567. imagV.image = IMG(@"审批");
  568. }else{
  569. imagV.image = IMG(@"shenpi_icon");
  570. }
  571. }
  572. }
  573. - (void)reDoDeleteFind:(NSMutableArray<NoticeModel *>*)findModelArray{
  574. NSMutableArray *MiddleIds = [NSMutableArray array];
  575. for (NoticeModel *model in findModelArray) {
  576. [MiddleIds addObject:@(model.Id)];
  577. }
  578. NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
  579. [dic setValue:MiddleIds forKey:@"MiddleIds"];
  580. [dic setValue:@(5) forKey:@"FolderType"];
  581. [dic setValue:@(0) forKey:@"IsDelete"];
  582. [dic setValue:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"];
  583. SHOWLOADING
  584. WEAKSELF
  585. [[HttpManager sharedHttpManager] POSTUrl:Host(API_Find_DeleteRecord_Redo) parameters:dic responseStyle:DATA success:^(id _Nonnull responseObject) {
  586. STRONGSELF
  587. REMOVESHOW
  588. [strongSelf headRefresh];
  589. } failure:^(NSError * _Nonnull error) {
  590. SHOWERROR([ZYCTool handerResultData:error]);
  591. }];
  592. }
  593. - (void)editorButtonHander:(NSIndexPath *)indexpath{
  594. WS(weakSelf);
  595. NoticeModel *model = self.interLetterArray[indexpath.row];
  596. MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
  597. vc.type = CollectModel_InterMail;
  598. vc.isEdit = YES;
  599. vc.replayType = MailReplayEdit;
  600. vc.Id = model.MiddleId;
  601. vc.isFromDraft = (model.SourceId == 0 ? YES : NO);
  602. vc.MailType = model.TypeValue;
  603. vc.upDateBlock = ^{
  604. [weakSelf headRefresh];
  605. };
  606. [self.navigationController pushViewController:vc animated:YES];
  607. }
  608. - (void)setIntroLabelWithModel:(NoticeModel *)model introLabel:(UILabel *)introLabel unreadNumberLabel:(UILabel *)unreadNumberLabel {
  609. //判断是否匿名
  610. if (model.IsAdmin) {
  611. if (model.EnjoyUser.length > 10) {
  612. NSRange range1 = NSMakeRange(10, (model.EnjoyUser.length - 10));
  613. NSString *resultStr1 = [model.EnjoyUser stringByReplacingCharactersInRange:range1 withString:@"..."];
  614. introLabel.text = [NSString stringWithFormat:@"收件人:%@",resultStr1];
  615. }else{
  616. introLabel.text = [NSString stringWithFormat:@"收件人:%@",model.EnjoyUser];
  617. }
  618. unreadNumberLabel.text = [NSString stringWithFormat:@"已读:%ld/%ld",(long)model.ReadCount,(long)model.AllCount];
  619. }else {
  620. if (model.TypeValue == 18) {
  621. introLabel.text = @"匿名";
  622. unreadNumberLabel.text = nil;
  623. }else{
  624. introLabel.text = [NSString stringWithFormat:@"发件人:%@",model.UserName];
  625. unreadNumberLabel.text = [NSString stringWithFormat:@"已读:%ld/%ld",(long)model.ReadCount,(long)model.AllCount];
  626. }
  627. }
  628. }
  629. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  630. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  631. NoticeModel *model = self.interLetterArray[indexPath.row];
  632. model.IsSelect = !model.IsSelect;
  633. [tableView reloadRowAtIndexPath:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
  634. }
  635. -(void)initBottomBgView{
  636. UIButton *leftCloseBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  637. [leftCloseBtn setTitle:@"删除" forState:UIControlStateNormal];
  638. [leftCloseBtn setTitleColor:RGB(255, 82, 82) forState:UIControlStateNormal];
  639. leftCloseBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  640. [self.operationBottomBgView addSubview:leftCloseBtn];
  641. [leftCloseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  642. make.top.left.bottom.mas_equalTo(self.operationBottomBgView);
  643. make.width.mas_equalTo(self.operationBottomBgView.mas_width).multipliedBy(0.5);
  644. }];
  645. UIButton *rightMoveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  646. [rightMoveBtn setTitle:@"移动" forState:UIControlStateNormal];
  647. [rightMoveBtn setTitleColor:RGB(57, 121, 211) forState:UIControlStateNormal];
  648. rightMoveBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  649. [self.operationBottomBgView addSubview:rightMoveBtn];
  650. self.moveButton = rightMoveBtn;
  651. [rightMoveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  652. make.top.right.bottom.mas_equalTo(self.operationBottomBgView);
  653. make.width.mas_equalTo(self.operationBottomBgView.mas_width).multipliedBy(0.5);
  654. }];
  655. UIView *line = [[UIView alloc] init];
  656. line.backgroundColor = RGB(240, 239, 244);
  657. [self.operationBottomBgView addSubview:line];
  658. [line mas_makeConstraints:^(MASConstraintMaker *make) {
  659. make.top.bottom.mas_equalTo(self.operationBottomBgView);
  660. make.width.mas_offset(0.5);
  661. make.centerX.mas_equalTo(self.operationBottomBgView);
  662. }];
  663. UIView *topline = [[UIView alloc] init];
  664. topline.backgroundColor = RGB(240, 239, 244);
  665. [self.operationBottomBgView addSubview:topline];
  666. [topline mas_makeConstraints:^(MASConstraintMaker *make) {
  667. make.top.left.right.mas_equalTo(self.operationBottomBgView);
  668. make.height.mas_offset(0.5);
  669. }];
  670. WS(weakSelf);
  671. [leftCloseBtn setAction:^{
  672. NSMutableArray *selectIDArray = [NSMutableArray array];
  673. for (NoticeModel * model in weakSelf.listArray) {
  674. if (model.IsSelect) {
  675. [selectIDArray addObject:model];
  676. }
  677. }
  678. if (selectIDArray.count == 0) {
  679. SHOWERROR(@"请选择要删除的通知");
  680. return ;
  681. }else{
  682. [weakSelf thoroughDelete:selectIDArray isDelete:NO];
  683. }
  684. }];
  685. [rightMoveBtn setAction:^{
  686. NSMutableArray *selectIDArray = [NSMutableArray array];
  687. for (NoticeModel * model in weakSelf.listArray) {
  688. if (model.IsSelect) {
  689. [selectIDArray addObject:@(model.Id)];
  690. }
  691. }
  692. if (selectIDArray.count == 0) {
  693. SHOWERROR(@"请选择要移动的通知或者文件夹");
  694. return ;
  695. }
  696. [weakSelf launchMoveVC:selectIDArray];
  697. }];
  698. [self.view addSubview:self.operationBottomBgView];
  699. }
  700. - (void)launchMoveVC:(NSMutableArray<NSNumber*>*)selectIDArray{
  701. MoveViewController * vc = [MoveViewController initMoveViewController];
  702. vc.TypeId = CreateShouType;
  703. vc.collectType = CollectHanderType_Move;
  704. vc.ParentId = 0;
  705. vc.titleStr = @"移动到";
  706. vc.FolderIds = selectIDArray;
  707. [self.navigationController pushViewController:vc animated:YES];
  708. }
  709. @end