MyApprovalPageVC.m 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
  1. //
  2. // MyApprovalPageVC.m
  3. // smartRhino
  4. //
  5. // Created by tederen on 2019/11/1.
  6. // Copyright © 2019 tederen. All rights reserved.
  7. //
  8. #import "MyApprovalPageVC.h"
  9. #import "DrawerView.h"
  10. #import "WorkListCell.h"
  11. #import "MyApprovalModel.h"
  12. #import "MyApprovalBCell.h"
  13. #import "MyApprovalPageDetail.h"
  14. #import "WorkFlowSearchVC.h"
  15. #import "TDNavigationBar.h"
  16. #import "WorkFLowCollectionSelectView.h"
  17. #import "TabBarController.h"
  18. @interface MyApprovalPageVC ()<UITableViewDelegate,UITableViewDataSource,TDNavigationBarDelegate,WorkFLowCollectionSelectViewDelegate>
  19. @property (nonatomic, strong) TDNavigationBar *myNavigationBar;
  20. @property (nonatomic, strong) TDTableView *mytableView;
  21. @property (nonatomic, assign) ApprovalPageSelectType apprvovalType;
  22. @property (nonatomic, strong) UIView *header1;
  23. @property (nonatomic, strong) UIView *header2;
  24. @property (nonatomic, strong) TDButton *waitApprovalButton;
  25. @property (nonatomic, strong) UIView *waitApprovalButtonBottomLine;
  26. @property (nonatomic, strong) TDButton *approvalButton;
  27. @property (nonatomic, strong) UIView *approvalButtonBottomLine;
  28. @property (nonatomic, strong) TDButton *searchButton;
  29. @property (nonatomic, strong) TDButton *selectButton;
  30. @property (nonatomic, strong) NSMutableArray <MyApprovalModel*>*waitApprovalDataArray;
  31. @property (nonatomic, strong) NSMutableArray <MyApprovalModel*>*approvalDataArray;
  32. @property (nonatomic, strong) UIView *myBackImageView;
  33. @property (nonatomic, strong) WorkFLowCollectionSelectView *workFLowCollectionSelectView;
  34. @property (nonatomic, assign) NSInteger haveRedFlag;
  35. @property (nonatomic, strong) NSString *approvalTypeStr;
  36. @property (nonatomic, assign) NSInteger page;
  37. @property (nonatomic, assign) NSInteger dataCount;
  38. @property (nonatomic, strong) NSArray<WorkFilterModel *> *selectedMyApprovalModel;
  39. @property (nonatomic, strong) NSMutableArray<WorkFilterModel *> *selectModelArray;
  40. @property (nonatomic, strong) DrawerView *drawerView;
  41. @property (nonatomic, strong) NSMutableArray * selectArray;
  42. @end
  43. @implementation MyApprovalPageVC
  44. - (void)viewWillAppear:(BOOL)animated
  45. {
  46. [super viewWillAppear:animated];
  47. [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
  48. [self getCount];
  49. [self headerRefresh];
  50. }
  51. - (void)viewDidLoad {
  52. [super viewDidLoad];
  53. [self.myNavigationBar setTitle:self.title];
  54. [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithBgColor:[UIColor colorWithRed:92/255.0 green:118.0/255.0 blue:167.0/255.f alpha:1.0] alpha:1.0] forBarMetrics:UIBarMetricsDefault];
  55. [self.view addSubview:self.myBackImageView];
  56. [self.view addSubview:self.myNavigationBar];
  57. self.view.backgroundColor = UIColorHex(EEEEEE);
  58. self.fd_prefersNavigationBarHidden = YES;
  59. CGFloat listTopSpace = 96 + kNavigationHeight;
  60. self.apprvovalType = WaitApprovalType;
  61. // 头部处理
  62. switch (self.pageType) {
  63. case Type_ONEA:
  64. [self myapprovall];
  65. self.waitApprovalButtonBottomLine.hidden = NO;
  66. self.approvalButtonBottomLine.hidden = YES;
  67. self.waitApprovalButton.selected = YES;
  68. self.approvalButton.selected = NO;
  69. self.approvalTypeStr = @"MyChecking";
  70. break;
  71. case Type_ONEB:
  72. [self myapprovallB];
  73. self.haveRedFlag = 1;
  74. self.approvalTypeStr = @"SubmittedChecked";
  75. self.waitApprovalButtonBottomLine.hidden = NO;
  76. self.approvalButtonBottomLine.hidden = YES;
  77. self.waitApprovalButton.selected = YES;
  78. self.approvalButton.selected = NO;
  79. break;
  80. case Type_ONEC:
  81. [self myapprovallC];
  82. self.waitApprovalButtonBottomLine.hidden = NO;
  83. self.approvalButtonBottomLine.hidden = YES;
  84. self.waitApprovalButton.selected = YES;
  85. self.approvalButton.selected = NO;
  86. self.approvalTypeStr = @"CcUnread";
  87. break;
  88. default:
  89. break;
  90. }
  91. // [self getData];
  92. [self getFilterModelData];
  93. [self.view addSubview:self.mytableView];
  94. [self.mytableView mas_makeConstraints:^(MASConstraintMaker *make) {
  95. make.left.equalTo(self.view);
  96. make.right.equalTo(self.view);
  97. make.top.equalTo(self.view).offset(listTopSpace);
  98. make.bottom.equalTo(self.view);
  99. }];
  100. [self setTableViewRefresh];
  101. [self addNoDataMessageToViewCenter:self.mytableView message:@"暂无审核内容"];
  102. self.selectArray = [NSMutableArray array];
  103. for (NSInteger i = 0; i < 3; i ++) {
  104. NSMutableDictionary * dict = [NSMutableDictionary dictionaryWithDictionary:@{@"waitTitle":@"筛选",@"Title":@"筛选",@"waitIds":@[],@"ids":@[]}];
  105. [self.selectArray addObject:dict];
  106. }
  107. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(headerRefresh) name:WORKREUPDATA object:nil];
  108. }
  109. - (void)dealloc
  110. {
  111. [[NSNotificationCenter defaultCenter] removeObserver:self];
  112. }
  113. - (void)setTableViewRefresh{
  114. WeakSelf(self)
  115. self.mytableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  116. [weakself headerRefresh];
  117. }];
  118. self.mytableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
  119. [weakself footerRefresh];
  120. }];
  121. }
  122. - (void)headerRefresh
  123. {
  124. [self.waitApprovalDataArray removeAllObjects];
  125. [self.approvalDataArray removeAllObjects];
  126. self.page = 1;
  127. [self getFromePage:self.page WithType:self.approvalTypeStr];
  128. }
  129. - (void)footerRefresh{
  130. switch (self.apprvovalType) {
  131. case WaitApprovalType:{
  132. if (self.waitApprovalDataArray.count == self.dataCount) {
  133. [self.mytableView.mj_footer endRefreshingWithNoMoreData];
  134. }else{
  135. self.page ++;
  136. [self getFromePage:self.page WithType:self.approvalTypeStr];
  137. }
  138. }break;
  139. case ApprovalType:{
  140. if (self.approvalDataArray.count == self.dataCount) {
  141. [self.mytableView.mj_footer endRefreshingWithNoMoreData];
  142. }else{
  143. self.page ++;
  144. [self getFromePage:self.page WithType:self.approvalTypeStr];
  145. }
  146. }break;
  147. }
  148. }
  149. #pragma mark - 界面头部异化处理
  150. - (void)myapprovall{
  151. self.view.backgroundColor = UIColorHex(EEEEEE);
  152. [self.view addSubview:self.header1];
  153. [self.header1 mas_makeConstraints:^(MASConstraintMaker *make) {
  154. make.left.equalTo(self.view);
  155. make.top.equalTo(self.view).offset(kNavigationHeight);
  156. make.right.equalTo(self.view);
  157. make.height.mas_equalTo(44);
  158. }];
  159. [self.view addSubview:self.header2];
  160. [self.header2 mas_makeConstraints:^(MASConstraintMaker *make) {
  161. make.left.equalTo(self.view);
  162. make.top.equalTo(self.header1.mas_bottom).offset(9);
  163. make.right.equalTo(self.view);
  164. make.height.mas_equalTo(32);
  165. }];
  166. }
  167. - (void)myapprovallB{
  168. self.view.backgroundColor = UIColorHex(EEEEEE);
  169. [self.view addSubview:self.header1];
  170. [self.header1 mas_makeConstraints:^(MASConstraintMaker *make) {
  171. make.left.equalTo(self.view);
  172. make.top.equalTo(self.view).offset(kNavigationHeight);
  173. make.right.equalTo(self.view);
  174. make.height.mas_equalTo(44);
  175. }];
  176. [self.view addSubview:self.header2];
  177. [self.header2 mas_makeConstraints:^(MASConstraintMaker *make) {
  178. make.left.equalTo(self.view);
  179. make.top.equalTo(self.header1.mas_bottom).offset(9);
  180. make.right.equalTo(self.view);
  181. make.height.mas_equalTo(32);
  182. }];
  183. }
  184. - (void)myapprovallC{
  185. self.view.backgroundColor = UIColorHex(EEEEEE);
  186. [self.view addSubview:self.header1];
  187. [self.header1 mas_makeConstraints:^(MASConstraintMaker *make) {
  188. make.left.equalTo(self.view);
  189. make.top.equalTo(self.view).offset(kNavigationHeight);
  190. make.right.equalTo(self.view);
  191. make.height.mas_equalTo(44);
  192. }];
  193. [self.waitApprovalButton setTitle:@"未读" forState:UIControlStateNormal];
  194. [self.approvalButton setTitle:@"己读" forState:UIControlStateNormal];
  195. [self.view addSubview:self.header2];
  196. [self.header2 mas_makeConstraints:^(MASConstraintMaker *make) {
  197. make.left.equalTo(self.view);
  198. make.top.equalTo(self.header1.mas_bottom).offset(9);
  199. make.right.equalTo(self.view);
  200. make.height.mas_equalTo(32);
  201. }];
  202. }
  203. #pragma mark - 导航栏事件处理
  204. - (void)backButtonAction{
  205. [self back];
  206. }
  207. - (void)rightButtonAction:(TDButton *)sender{
  208. }
  209. -(void)back{
  210. if (self.navigationController.viewControllers.count > 1) {
  211. [self.navigationController popViewControllerAnimated:YES];
  212. }else{
  213. [self dismissViewControllerAnimated:YES completion:nil];
  214. }
  215. }
  216. - (void)backButtonAction2:(UIButton *)sender {
  217. [self secondBarButtonItems];
  218. }
  219. - (void)secondBarButtonItems{
  220. [self.view endEditing:YES];
  221. [[UtilsTools getWindow] addSubview:self.drawerView];
  222. WS(weakSelf);
  223. self.drawerView.SelectDrawerBlock = ^(NSIndexPath * _Nonnull indexPath) {
  224. if (![weakSelf.tabBarController isKindOfClass:[TabBarController class]]) {
  225. [TabBarController sharedTabBarController].tabBar.hidden = NO;
  226. [weakSelf.tabBarController.navigationController popViewControllerAnimated:NO];
  227. }
  228. if ([weakSelf.navigationController.viewControllers count] > 1) {
  229. [weakSelf.navigationController popToRootViewControllerAnimated:NO];
  230. }
  231. switch (indexPath.section) {
  232. case 0:
  233. {
  234. [[TabBarController sharedTabBarController] setSelectedIndex:indexPath.row];
  235. }
  236. break;
  237. case 1:
  238. {
  239. switch (indexPath.row) {
  240. case 0:
  241. {
  242. [[TabBarController sharedTabBarController] setSelectedIndex:2];
  243. }
  244. break;
  245. case 1:
  246. {
  247. [[TabBarController sharedTabBarController] setSelectedIndex:2];
  248. }
  249. break;
  250. default:
  251. {
  252. [[TabBarController sharedTabBarController] setSelectedIndex:3];
  253. }
  254. break;
  255. }
  256. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  257. [[NSNotificationCenter defaultCenter] postNotificationName:DRAWERPUSHVC object:nil userInfo:@{VCINDEX:@(indexPath.row)}];
  258. });
  259. }
  260. break;
  261. default:
  262. {
  263. [[TabBarController sharedTabBarController] setSelectedIndex:3];
  264. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  265. [[NSNotificationCenter defaultCenter] postNotificationName:DRAWERPUSHVC object:nil userInfo:@{VCINDEX:@(4 + indexPath.row)}];
  266. });
  267. }
  268. break;
  269. }
  270. };
  271. self.drawerView.frame = CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT);// - kNavigationHeight
  272. }
  273. - (void)viewWillDisappear:(BOOL)animated{
  274. [super viewWillDisappear:animated];
  275. [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
  276. }
  277. - (UIStatusBarStyle)preferredStatusBarStyle{
  278. return UIStatusBarStyleLightContent;
  279. }
  280. #pragma mark - 数据加载
  281. - (void)setCountNumWithDict:(NSDictionary *)dict
  282. {
  283. switch (self.pageType) {
  284. case Type_ONEA:
  285. if ([dict[@"MyCheckingCount"] integerValue] == 0) {
  286. [self.waitApprovalButton setTitle:@"待审批" forState:UIControlStateNormal];
  287. }else{
  288. [self.waitApprovalButton setTitle:[NSString stringWithFormat:@"待审批(%ld)",(long)[dict[@"MyCheckingCount"] integerValue]] forState:UIControlStateNormal];
  289. }
  290. if ([dict[@"MyCheckedCount"] integerValue] == 0) {
  291. [self.approvalButton setTitle:@"已审批" forState:UIControlStateNormal];
  292. }else{
  293. [self.approvalButton setTitle:[NSString stringWithFormat:@"已审批(%ld)",(long)[dict[@"MyCheckedCount"] integerValue]] forState:UIControlStateNormal];
  294. }
  295. break;
  296. case Type_ONEB:
  297. if ([dict[@"SubmittedCheckingCount"] integerValue] > 0) {
  298. [self.approvalButton setTitle:[NSString stringWithFormat:@"待批复(%ld)",(long)[dict[@"SubmittedCheckingCount"] integerValue]] forState:UIControlStateNormal];
  299. }else {
  300. [self.approvalButton setTitle:@"待批复" forState:UIControlStateNormal];
  301. }
  302. if ([dict[@"SubmittedCheckedCount"] integerValue] > 0) {
  303. [self.waitApprovalButton setTitle:[NSString stringWithFormat:@"已批复(%ld)",(long)[dict[@"SubmittedCheckedCount"] integerValue]] forState:UIControlStateNormal];
  304. }else {
  305. [self.waitApprovalButton setTitle:@"已批复" forState:UIControlStateNormal];
  306. }
  307. break;
  308. case Type_ONEC:
  309. if ([dict[@"CcUnreadCount"] integerValue] > 0) {
  310. [self.waitApprovalButton setTitle:[NSString stringWithFormat:@"未读(%ld)",(long)[dict[@"CcUnreadCount"] integerValue]] forState:UIControlStateNormal];
  311. }else {
  312. [self.waitApprovalButton setTitle:@"未读" forState:UIControlStateNormal];
  313. }
  314. if ([dict[@"CcAllCount"] integerValue] > 0) {
  315. [self.approvalButton setTitle:[NSString stringWithFormat:@"已读(%ld)",(long)[dict[@"CcAllCount"] integerValue]] forState:UIControlStateNormal];
  316. }else {
  317. [self.approvalButton setTitle:@"已读" forState:UIControlStateNormal];
  318. }
  319. break;
  320. default:
  321. break;
  322. }
  323. }
  324. - (void)getCount
  325. {
  326. WS(weakSelf);
  327. [[HttpManager sharedHttpManager] GETUrl:Host(WorkFlowNumberCount_Get) parameters:@{} responseStyle:JOSN success:^(id _Nonnull responseObject) {
  328. dispatch_async(dispatch_get_main_queue(), ^{
  329. [weakSelf setCountNumWithDict:responseObject];
  330. });
  331. } failure:^(NSError * _Nonnull error) {
  332. }];
  333. }
  334. //- (void)getData{
  335. // [self getFromMe];
  336. // [self getFilterModelData];
  337. //}
  338. //- (void)getFromMe{
  339. // if ([self.approvalTypeStr isEqualToString:@"MyChecking"]) {
  340. // [self getFromePage:1 WithType:self.approvalTypeStr];
  341. // }
  342. // if ([self.approvalTypeStr isEqualToString:@"SubmittedChecked"]) {
  343. // [self getFromePage:1 WithType:self.approvalTypeStr];
  344. // }
  345. // if ([self.approvalTypeStr isEqualToString:@"CcUnread"]) {
  346. // [self getFromePage:1 WithType:self.approvalTypeStr];
  347. // }
  348. //}
  349. - (void)getFromePage:(NSInteger)page WithType:(NSString *)type{
  350. NSArray * ids = @[];
  351. switch (self.pageType) {
  352. case Type_ONEA:{
  353. NSMutableDictionary * dict = self.selectArray[0];
  354. if (self.apprvovalType == WaitApprovalType) {
  355. ids = dict[@"waitIds"];
  356. }else{
  357. ids = dict[@"ids"];
  358. }
  359. }break;
  360. case Type_ONEB: {
  361. NSMutableDictionary * dict = self.selectArray[1];
  362. if (self.apprvovalType == WaitApprovalType) {
  363. ids = dict[@"waitIds"];
  364. }else{
  365. ids = dict[@"ids"];
  366. }
  367. }break;
  368. case Type_ONEC:{
  369. NSMutableDictionary * dict = self.selectArray[2];
  370. if (self.apprvovalType == WaitApprovalType) {
  371. ids = dict[@"waitIds"];
  372. }else{
  373. ids = dict[@"ids"];
  374. }
  375. }break;
  376. default:
  377. break;
  378. }
  379. NSLog(@"=======%@",type);
  380. NSLog(@"%@",ids);
  381. WS(weakSelf);
  382. //原来的接口WorkFlowAddApproval_Post
  383. [[HttpManager sharedHttpManager] POSTUrl:[NSString stringWithFormat:@"%@%@",BaseUrl,@"/api/app/flow/list"] parameters:@{@"PerPage":@(10),
  384. @"Page":@(page),
  385. @"Type":type,
  386. @"ProcessIds":ids} responseStyle:JOSN
  387. success:^(id _Nonnull responseObject) {
  388. NSLog(@"%@",responseObject);
  389. if (weakSelf.page == 1) {
  390. [weakSelf.waitApprovalDataArray removeAllObjects];
  391. [weakSelf.approvalDataArray removeAllObjects];
  392. }
  393. NSDictionary *dic = responseObject;
  394. weakSelf.dataCount = [dic[@"Count"] integerValue];
  395. id arr = dic[@"Items"];
  396. NSMutableArray *array = [NSMutableArray array];
  397. if (arr != [NSNull null]) {
  398. for (NSDictionary *dic2 in arr) {
  399. MyApprovalModel *model = [[MyApprovalModel alloc]initWithDictionary:dic2 error:nil];
  400. [array addObject:model];
  401. }
  402. }
  403. switch (weakSelf.apprvovalType) {
  404. case WaitApprovalType:{
  405. [weakSelf.waitApprovalDataArray addObjectsFromArray:array];
  406. }break;
  407. case ApprovalType:{
  408. [weakSelf.approvalDataArray addObjectsFromArray:array];
  409. }break;
  410. }
  411. [weakSelf.mytableView.mj_header endRefreshing];
  412. [weakSelf.mytableView.mj_footer endRefreshing];
  413. [weakSelf changeMessageStatusWithNumber:array.count];
  414. [weakSelf.mytableView reloadData];
  415. } failure:^(NSError * _Nonnull error) {
  416. SHOWERROR([ZYCTool handerResultData:error])
  417. }];
  418. }
  419. - (NSMutableArray<WorkFilterModel *>*)selectModelArray
  420. {
  421. if (!_selectModelArray) {
  422. _selectModelArray = [NSMutableArray array];
  423. }
  424. return _selectModelArray;
  425. }
  426. - (void)getFilterModelData{
  427. WS(weakSelf);
  428. [self.selectModelArray removeAllObjects];
  429. [[HttpManager sharedHttpManager] GETUrl:[NSString stringWithFormat:@"%@%@",BaseUrl,WorkFlowFilter_Get] parameters:@{} responseStyle:JOSN success:^(id _Nonnull responseObject) {
  430. NSArray *arr = responseObject;
  431. for (NSDictionary *dic in arr) {
  432. WorkFilterModel *model = [[WorkFilterModel alloc]initWithDictionary:dic error:nil];
  433. [weakSelf.selectModelArray addObject:model];
  434. }
  435. weakSelf.workFLowCollectionSelectView.approvalNameArray = weakSelf.selectModelArray;
  436. dispatch_async(dispatch_get_main_queue(), ^{
  437. [weakSelf.workFLowCollectionSelectView.collectionView reloadData] ;
  438. });
  439. } failure:^(NSError * _Nonnull error) {
  440. SHOWERROR([ZYCTool handerResultData:error]);
  441. }];
  442. }
  443. #pragma mark -
  444. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  445. return 1;
  446. }
  447. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  448. switch (self.apprvovalType) {
  449. case WaitApprovalType:
  450. return self.waitApprovalDataArray.count;
  451. case ApprovalType:
  452. return self.approvalDataArray.count;
  453. }
  454. return 5;
  455. }
  456. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  457. MyApprovalModel *model;
  458. switch (self.apprvovalType) {
  459. case WaitApprovalType:
  460. model = self.waitApprovalDataArray[indexPath.row];
  461. break;
  462. case ApprovalType:
  463. model = self.approvalDataArray[indexPath.row];
  464. break;
  465. }
  466. NSString *cellIdentifier = @"MyApprovalBCell";
  467. MyApprovalBCell *cell = (MyApprovalBCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  468. [cell loadApprovalData:model];
  469. // if ([self.approvalTypeStr isEqualToString:@"MyChecking"] ||
  470. // [self.approvalTypeStr isEqualToString:@"SubmittedChecked"] ||
  471. // [self.approvalTypeStr isEqualToString:@"CcUnread"] ||
  472. // [self.approvalTypeStr isEqualToString:@"SubmittedChecking"] ) {
  473. // cell.falgLab.hidden = model.IsRead;
  474. // }else {
  475. // cell.falgLab.hidden = YES;
  476. // }
  477. return cell;
  478. }
  479. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  480. return 159.f;
  481. }
  482. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  483. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  484. MyApprovalModel *model;
  485. switch (self.apprvovalType) {
  486. case WaitApprovalType:
  487. model = self.waitApprovalDataArray[indexPath.row];
  488. break;
  489. case ApprovalType:
  490. model = self.approvalDataArray[indexPath.row];
  491. break;
  492. }
  493. if (model.Id > 0) {
  494. MyApprovalPageDetail * myApprovalPageDetail = [[MyApprovalPageDetail alloc]init];
  495. myApprovalPageDetail.pageType = self.pageType;
  496. myApprovalPageDetail.indexId = model.Id;
  497. myApprovalPageDetail.title = model.Title;
  498. myApprovalPageDetail.TodoId = model.TodoId;
  499. myApprovalPageDetail.userId = model.UserId;
  500. WS(weakSelf);
  501. [myApprovalPageDetail setActionSussBlock:^{
  502. //重新获取数据
  503. [weakSelf headerRefresh];
  504. }];
  505. [self.navigationController pushViewController:myApprovalPageDetail animated:YES];
  506. }
  507. }
  508. #pragma mark - setter
  509. - (TDTableView *)mytableView{
  510. if (!_mytableView) {
  511. _mytableView = [[TDTableView alloc]init];
  512. _mytableView.backgroundColor = [UIColor clearColor];
  513. _mytableView.delegate = self;
  514. _mytableView.dataSource = self;
  515. [_mytableView registerNib:[UINib nibWithNibName:@"MyApprovalBCell" bundle:nil] forCellReuseIdentifier:@"MyApprovalBCell"];
  516. }
  517. return _mytableView;
  518. }
  519. - (UIView *)header1{
  520. if (!_header1) {
  521. _header1 = [[UIView alloc]init];
  522. _header1.backgroundColor = [UIColor whiteColor];
  523. [_header1 addSubview:self.waitApprovalButton];
  524. [self.waitApprovalButton mas_makeConstraints:^(MASConstraintMaker *make) {
  525. make.centerX.equalTo(self.header1.mas_centerX).multipliedBy(0.5);
  526. make.centerY.equalTo(self.header1.mas_centerY);
  527. }];
  528. [_header1 addSubview:self.waitApprovalButtonBottomLine];
  529. [self.waitApprovalButtonBottomLine mas_makeConstraints:^(MASConstraintMaker *make) {
  530. make.centerX.equalTo(self.waitApprovalButton.mas_centerX);
  531. make.bottom.equalTo(self.header1.mas_bottom).offset(-1);
  532. make.width.equalTo(self.waitApprovalButton);
  533. make.height.mas_equalTo(2);
  534. }];
  535. self.waitApprovalButtonBottomLine.backgroundColor = UIColorHex(3795FD);
  536. [_header1 addSubview:self.approvalButton];
  537. [self.approvalButton mas_makeConstraints:^(MASConstraintMaker *make) {
  538. make.centerX.equalTo(self.header1.mas_centerX).multipliedBy(1.5);
  539. make.centerY.equalTo(self.header1.mas_centerY);
  540. }];
  541. [_header1 addSubview:self.approvalButtonBottomLine];
  542. [self.approvalButtonBottomLine mas_makeConstraints:^(MASConstraintMaker *make) {
  543. make.centerX.equalTo(self.approvalButton.mas_centerX);
  544. make.bottom.equalTo(self.header1.mas_bottom).offset(-1);
  545. make.bottom.equalTo(@10);
  546. make.width.equalTo(self.approvalButton);
  547. make.height.mas_equalTo(2);
  548. }];
  549. self.approvalButtonBottomLine.backgroundColor = UIColorHex(3795FD);
  550. }
  551. return _header1;
  552. }
  553. - (UIView *)approvalButtonBottomLine{
  554. if (!_approvalButtonBottomLine) {
  555. _approvalButtonBottomLine = [[UIView alloc]init];
  556. }
  557. return _approvalButtonBottomLine;
  558. }
  559. - (UIView *)waitApprovalButtonBottomLine{
  560. if (!_waitApprovalButtonBottomLine) {
  561. _waitApprovalButtonBottomLine = [UIView new];
  562. }
  563. return _waitApprovalButtonBottomLine;
  564. }
  565. - (TDButton *)waitApprovalButton{
  566. if (!_waitApprovalButton) {
  567. _waitApprovalButton = [[TDButton alloc]init];
  568. [_waitApprovalButton setTitle:@"待审批" forState:UIControlStateNormal];
  569. [_waitApprovalButton setTitleColor:UIColorHex(333333) forState:UIControlStateNormal];
  570. [[_waitApprovalButton titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
  571. [_waitApprovalButton setTitleColor:UIColorHex(3795FD) forState:UIControlStateSelected];
  572. [_waitApprovalButton addTarget:self action:@selector(waitApprovalButtonHander:) forControlEvents:UIControlEventTouchDown];
  573. }
  574. return _waitApprovalButton;
  575. }
  576. - (TDButton *)approvalButton{
  577. if (!_approvalButton) {
  578. _approvalButton =[[TDButton alloc] init];
  579. [_approvalButton setTitle:@"已审批" forState:UIControlStateNormal];
  580. [_approvalButton setTitleColor:UIColorHex(333333) forState:UIControlStateNormal];
  581. [[_approvalButton titleLabel] setFont:[UIFont systemFontOfSize:15.f]];
  582. [_approvalButton setTitleColor:UIColorHex(3795FD) forState:UIControlStateSelected];
  583. [_approvalButton addTarget:self action:@selector(approvalButtonHander:) forControlEvents:UIControlEventTouchDown];
  584. }
  585. return _approvalButton;
  586. }
  587. - (UIView *)header2{
  588. if (!_header2) {
  589. _header2 = [[UIView alloc] init];
  590. _header2.backgroundColor = [UIColor whiteColor];
  591. [_header2 addSubview:self.searchButton];
  592. [self.searchButton mas_makeConstraints:^(MASConstraintMaker *make) {
  593. make.centerX.equalTo(self.header2.mas_centerX).multipliedBy(0.5);
  594. make.centerY.equalTo(self.header2.mas_centerY);
  595. make.width.mas_equalTo(self.header2.mas_width).multipliedBy(0.25);
  596. make.height.mas_equalTo(self.header2.mas_height);
  597. }];
  598. UIView *verticalView = [[UIView alloc]init];
  599. verticalView.backgroundColor = UIColorHex(E6E6E6);
  600. [_header2 addSubview:verticalView];
  601. [verticalView mas_makeConstraints:^(MASConstraintMaker *make) {
  602. make.centerX.equalTo(self.header2);
  603. make.centerY.equalTo(self.header2);
  604. make.width.mas_equalTo(0.5);
  605. make.height.equalTo(self.header2.mas_height).multipliedBy(0.7);
  606. }];
  607. [_header2 addSubview:self.selectButton];
  608. [self.selectButton mas_makeConstraints:^(MASConstraintMaker *make) {
  609. make.centerX.equalTo(self.header2.mas_centerX).multipliedBy(1.5);
  610. make.centerY.equalTo(self.header2.mas_centerY);
  611. make.width.mas_equalTo(self.header2.mas_width).multipliedBy(0.25);
  612. make.height.mas_equalTo(self.header2.mas_height);
  613. }];
  614. }
  615. return _header2;
  616. }
  617. - (TDButton *)searchButton{
  618. if (!_searchButton) {
  619. _searchButton = [[TDButton alloc] init];
  620. [_searchButton setTitle:@"搜索" forState:UIControlStateNormal];
  621. [_searchButton addTarget:self action:@selector(searchApprovalButtonHander) forControlEvents:UIControlEventTouchDown];
  622. [_searchButton setImage:IMG(@"approval_sousuo") forState:UIControlStateNormal];
  623. // [[_searchButton imageView] setSize:CGSizeMake(14.f, 14.f)];
  624. [_searchButton setTitleColor:UIColorHex(666666) forState:UIControlStateNormal];
  625. [[_searchButton titleLabel] setFont:[UIFont systemFontOfSize:14.f weight:UIFontWeightRegular]];
  626. [_searchButton layoutButtonWithEdgeInsetsStyle:GLButtonEdgeInsetsStyleLeft imageTitleSpace:6.5];
  627. }
  628. return _searchButton;
  629. }
  630. - (TDButton *)selectButton{
  631. if (!_selectButton) {
  632. _selectButton = [[TDButton alloc] init];
  633. [_selectButton setTitle:@"筛选" forState:UIControlStateNormal];
  634. [_selectButton setImage:IMG(@"筛选") forState:UIControlStateNormal];
  635. [_selectButton setTitleColor:UIColorHex(666666) forState:UIControlStateNormal];
  636. [[_selectButton titleLabel] setFont:[UIFont systemFontOfSize:14.f weight:UIFontWeightRegular]];
  637. // [[_selectButton imageView] setSize:CGSizeMake(14.f, 14.f)];
  638. [_selectButton addTarget:self action:@selector(selectButtonHander) forControlEvents:UIControlEventTouchDown];
  639. [_selectButton layoutButtonWithEdgeInsetsStyle:GLButtonEdgeInsetsStyleLeft imageTitleSpace:6.5];
  640. }
  641. return _selectButton;
  642. }
  643. - (NSMutableArray <MyApprovalModel *>*)approvalDataArray{
  644. if (!_approvalDataArray) {
  645. _approvalDataArray = [NSMutableArray array];
  646. }
  647. return _approvalDataArray;
  648. }
  649. - (NSMutableArray <MyApprovalModel *>*)waitApprovalDataArray{
  650. if (!_waitApprovalDataArray) {
  651. _waitApprovalDataArray = [NSMutableArray array];
  652. }
  653. return _waitApprovalDataArray;
  654. }
  655. #pragma mark - 已审批事件处理
  656. - (void)approvalButtonHander:(TDButton *)approvalButton{
  657. self.approvalButton.selected = YES;
  658. self.waitApprovalButton.selected = NO;
  659. self.approvalButtonBottomLine.hidden = NO;
  660. self.waitApprovalButtonBottomLine.hidden = YES;
  661. self.apprvovalType = ApprovalType;
  662. switch (self.pageType) {
  663. case Type_ONEA:{
  664. self.approvalTypeStr = @"MyChecked";
  665. NSMutableDictionary * dict = self.selectArray[0];
  666. [self.selectButton setTitle:dict[@"Title"] forState:UIControlStateNormal];
  667. }break;
  668. case Type_ONEB: {
  669. self.approvalTypeStr = @"SubmittedChecking";
  670. NSMutableDictionary * dict = self.selectArray[1];
  671. [self.selectButton setTitle:dict[@"Title"] forState:UIControlStateNormal];
  672. }break;
  673. case Type_ONEC:{
  674. self.approvalTypeStr = @"CcAll";
  675. NSMutableDictionary * dict = self.selectArray[2];
  676. [self.selectButton setTitle:dict[@"Title"] forState:UIControlStateNormal];
  677. }break;
  678. default:
  679. break;
  680. }
  681. [self headerRefresh];
  682. [self.mytableView reloadData];
  683. }
  684. #pragma mark - 待审批事件处理
  685. - (void)waitApprovalButtonHander:(TDButton *)waitApprovalButton{
  686. self.approvalButton.selected = NO;
  687. self.waitApprovalButton.selected = YES;
  688. self.approvalButtonBottomLine.hidden = YES;
  689. self.waitApprovalButtonBottomLine.hidden = NO;
  690. self.apprvovalType = WaitApprovalType;
  691. switch (self.pageType) {
  692. case Type_ONEA:{
  693. self.approvalTypeStr = @"MyChecking";
  694. NSMutableDictionary * dict = self.selectArray[0];
  695. [self.selectButton setTitle:dict[@"waitTitle"] forState:UIControlStateNormal];
  696. }break;
  697. case Type_ONEB:{
  698. self.approvalTypeStr = @"SubmittedChecked";
  699. NSMutableDictionary * dict = self.selectArray[1];
  700. [self.selectButton setTitle:dict[@"waitTitle"] forState:UIControlStateNormal];
  701. }break;
  702. case Type_ONEC:{
  703. self.approvalTypeStr = @"CcUnread";
  704. NSMutableDictionary * dict = self.selectArray[2];
  705. [self.selectButton setTitle:dict[@"waitTitle"] forState:UIControlStateNormal];
  706. }break;
  707. default:
  708. break;
  709. }
  710. [self headerRefresh];
  711. [self.mytableView reloadData];
  712. }
  713. #pragma mark - 搜索事件处理
  714. - (void)searchApprovalButtonHander{
  715. WorkFlowSearchVC *workFlowSearchVC = [[WorkFlowSearchVC alloc]init];
  716. workFlowSearchVC.typeString = self.approvalTypeStr;
  717. workFlowSearchVC.apprvovalType = self.apprvovalType;
  718. workFlowSearchVC.pageType = self.pageType;
  719. [self.navigationController pushViewController:workFlowSearchVC animated:YES];
  720. }
  721. #pragma mark - 筛选事件处理
  722. - (void)selectButtonHander{
  723. if(self.workFLowCollectionSelectView != nil){
  724. NSMutableDictionary * dict = nil;
  725. switch (self.pageType) {
  726. case Type_ONEA:{
  727. dict = self.selectArray[0];
  728. }break;
  729. case Type_ONEB:{
  730. dict = self.selectArray[1];
  731. }break;
  732. case Type_ONEC:{
  733. dict = self.selectArray[2];
  734. }break;
  735. default:
  736. break;
  737. }
  738. for (WorkFilterModel * model in self.selectModelArray) {
  739. model.isSelected = NO;
  740. }
  741. if (self.apprvovalType == WaitApprovalType) {
  742. for (id obj in dict[@"waitIds"]) {
  743. NSInteger ids = [obj integerValue];
  744. for (WorkFilterModel * model in self.selectModelArray) {
  745. if (model.Value == ids) {
  746. model.isSelected = YES;
  747. }
  748. }
  749. self.workFLowCollectionSelectView.approvalNameArray = self.selectModelArray.mutableCopy;
  750. }
  751. }else{
  752. for (id obj in dict[@"ids"]) {
  753. NSInteger ids = [obj integerValue];
  754. for (WorkFilterModel * model in self.selectModelArray) {
  755. if (model.Value == ids) {
  756. model.isSelected = YES;
  757. }
  758. }
  759. self.workFLowCollectionSelectView.approvalNameArray = self.selectModelArray.mutableCopy;
  760. }
  761. }
  762. [self.workFLowCollectionSelectView collectionViewReloadData];
  763. }
  764. }
  765. - (void)selecetWorkFLow:(NSIndexPath *)path withModel:(NSArray<WorkFilterModel *> *)modle {
  766. NSLog(@"%@",self.workFLowCollectionSelectView.approvalNameArray[path.item]);
  767. self.selectedMyApprovalModel = modle;
  768. NSMutableString *labelStr = [[NSMutableString alloc] initWithString:@""];
  769. NSMutableArray *ids = [NSMutableArray array];
  770. [modle enumerateObjectsUsingBlock:^(WorkFilterModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  771. WorkFilterModel *filterModel = obj;
  772. if ((idx + 1) < modle.count) {
  773. [labelStr appendFormat:@"%@,",filterModel.Label];
  774. }else {
  775. [labelStr appendFormat:@"%@",filterModel.Label];
  776. }
  777. [ids addObject:@(filterModel.Value)];
  778. }];
  779. [self.selectButton setTitle:labelStr forState:UIControlStateNormal];
  780. switch (self.pageType) {
  781. case Type_ONEA:
  782. {
  783. NSMutableDictionary * dict = self.selectArray[0];
  784. if (self.apprvovalType == WaitApprovalType) {
  785. [dict setObject:labelStr forKey:@"waitTitle"];
  786. [dict setObject:ids forKey:@"waitIds"];
  787. }else{
  788. [dict setObject:labelStr forKey:@"Title"];
  789. [dict setObject:ids forKey:@"ids"];
  790. }
  791. }
  792. break;
  793. case Type_ONEB:
  794. {
  795. NSMutableDictionary * dict = self.selectArray[1];
  796. if (self.apprvovalType == WaitApprovalType) {
  797. [dict setObject:labelStr forKey:@"waitTitle"];
  798. [dict setObject:ids forKey:@"waitIds"];
  799. }else{
  800. [dict setObject:labelStr forKey:@"Title"];
  801. [dict setObject:ids forKey:@"ids"];
  802. }
  803. }
  804. break;
  805. case Type_ONEC:
  806. {
  807. NSMutableDictionary * dict = self.selectArray[2];
  808. if (self.apprvovalType == WaitApprovalType) {
  809. [dict setObject:labelStr forKey:@"waitTitle"];
  810. [dict setObject:ids forKey:@"waitIds"];
  811. }else{
  812. [dict setObject:labelStr forKey:@"Title"];
  813. [dict setObject:ids forKey:@"ids"];
  814. }
  815. }
  816. break;
  817. default:
  818. break;
  819. }
  820. [self headerRefresh];
  821. }
  822. - (TDNavigationBar *)myNavigationBar{
  823. if (!_myNavigationBar) {
  824. _myNavigationBar = [[TDNavigationBar alloc]initNavigationBar];
  825. _myNavigationBar.delegate = self;
  826. _myNavigationBar.backButton2.hidden = NO;
  827. _myNavigationBar.titleLabel.textColor = UIColorHex(#FFFFFF);
  828. _myNavigationBar.titleLabel.font = [UIFont systemFontOfSize:19.f];
  829. [_myNavigationBar.backButton2 setImage:IMG(@"快捷跳转") forState:UIControlStateNormal];
  830. [_myNavigationBar.backButton setImage:IMG(@"工作_返回") forState:UIControlStateNormal];
  831. }
  832. return _myNavigationBar;
  833. }
  834. - (UIView *)myBackImageView{
  835. if (!_myBackImageView) {
  836. _myBackImageView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kGXScreenHeigh, kNavigationHeight)];
  837. _myBackImageView.backgroundColor = [UIColor colorWithRed:92/255.0 green:118.0/255.0 blue:167.0/255.f alpha:1.0];
  838. }
  839. return _myBackImageView;
  840. }
  841. - (WorkFLowCollectionSelectView *)workFLowCollectionSelectView{
  842. if(!_workFLowCollectionSelectView){
  843. _workFLowCollectionSelectView = [[WorkFLowCollectionSelectView alloc] init];
  844. _workFLowCollectionSelectView.delegate = self;
  845. }
  846. return _workFLowCollectionSelectView;
  847. }
  848. - (DrawerView *)drawerView {
  849. if(!_drawerView) {
  850. _drawerView = [[DrawerView alloc] init];
  851. }
  852. return _drawerView;
  853. }
  854. @end