SellerOrderManagementVC.m 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. //
  2. // SellerOrderManagementVC.m
  3. // yunbaolive
  4. //
  5. // Created by ybRRR on 2020/2/13.
  6. // Copyright © 2020 cat. All rights reserved.
  7. //
  8. #import "SellerOrderManagementVC.h"
  9. #import "SPPageMenu.h"
  10. #import "SellOrderCell.h"
  11. #import "SellOrderModel.h"
  12. #import "WaitSendGoodsVC.h"
  13. #import "OtherSellOrderDetailVC.h"
  14. #import "RefundDetailVC.h"
  15. @interface SellerOrderManagementVC ()<SPPageMenuDelegate,UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,sellOrderCellDelegate>
  16. {
  17. UIView *selectView;
  18. NSArray *tableArray;
  19. NSArray *lisetTableArray;
  20. UITableView *selectTable;
  21. int selectIndex;
  22. int pageIndex;
  23. NSString *orderType;
  24. NSArray *orderArr;
  25. }
  26. @property(nonatomic, strong)NSArray *titles;
  27. @property (nonatomic, strong) SPPageMenu *pageMenu;
  28. @property (nonatomic, strong) UIScrollView *scrollView;
  29. @property (nonatomic, strong) UITableView *orderTable;
  30. @property (nonatomic, strong)NSMutableArray *dataArr;
  31. @property (nonatomic, strong)NSArray *models;
  32. @end
  33. @implementation SellerOrderManagementVC
  34. -(NSArray *)models{
  35. NSMutableArray *array = [NSMutableArray array];
  36. for (NSDictionary *dic in self.dataArr) {
  37. SellOrderModel *model = [SellOrderModel modelWithDic:dic];
  38. [array addObject:model];
  39. }
  40. _models = array;
  41. return _models;
  42. }
  43. -(void)getGoodsOrderList{
  44. NSDictionary *signdic = @{@"uid":[Config getOwnID],@"token":[Config getOwnToken], @"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]]};
  45. NSString *sign = [PublicObj sortString:signdic];
  46. NSDictionary *dic = @{
  47. @"uid":[Config getOwnID],
  48. @"token":[Config getOwnToken],
  49. @"type":orderType,
  50. @"p":@(pageIndex),
  51. @"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]],
  52. @"sign":sign
  53. };
  54. [YBNetworking postWithUrl:@"Seller.getGoodsOrderList" Dic:dic Suc:^(int code, id info, NSString *msg) {
  55. [self.orderTable.mj_header endRefreshing];
  56. [self.orderTable.mj_footer endRefreshing];
  57. if (code ==0) {
  58. NSArray *listArr = [[info firstObject]valueForKey:@"list"];
  59. NSDictionary*typeNumDic = [[info firstObject] valueForKey:@"type_list_nums"];
  60. [self reloadNum:typeNumDic];
  61. if (pageIndex == 1) {
  62. [self.dataArr removeAllObjects];
  63. if (listArr.count < 1) {
  64. [PublicView showImgNoData:self.orderTable name:@"shop_无数据" text:YZMsg(@"你还没有相关订单")];
  65. [self.orderTable reloadData];
  66. return ;
  67. }else{
  68. [PublicView hiddenImgNoData:self.orderTable];
  69. }
  70. }
  71. [self.dataArr addObjectsFromArray:listArr];
  72. [self.orderTable reloadData];
  73. }else{
  74. [MBProgressHUD showError:msg];
  75. }
  76. } Fail:^(id fail) {
  77. [self.orderTable.mj_header endRefreshing];
  78. [self.orderTable.mj_footer endRefreshing];
  79. }];
  80. }
  81. -(void)reloadNum:(NSDictionary *)typeNumDic{
  82. lisetTableArray = @[YZMsg(@"退款订单"),YZMsg(@"已发货订单"),YZMsg(@"已签收订单"),YZMsg(@"已完成订单"),YZMsg(@"已关闭订单"),YZMsg(@"全部订单")];
  83. tableArray = @[[NSString stringWithFormat:@"%@%@",YZMsg(@"退款订单"),minstr([typeNumDic valueForKey:@"all_refund_nums"])],
  84. [NSString stringWithFormat:@"%@%@",YZMsg(@"已发货订单"),minstr([typeNumDic valueForKey:@"wait_receive_nums"])],
  85. [NSString stringWithFormat:@"%@%@",YZMsg(@"已签收订单"),minstr([typeNumDic valueForKey:@"wait_evaluate_nums"])],
  86. [NSString stringWithFormat:@"%@%@",YZMsg(@"已完成订单"),minstr([typeNumDic valueForKey:@"finished_nums"])],
  87. [NSString stringWithFormat:@"%@%@",YZMsg(@"已关闭订单"),minstr([typeNumDic valueForKey:@"closed_nums"])],
  88. [NSString stringWithFormat:@"%@%@",YZMsg(@"全部订单"),minstr([typeNumDic valueForKey:@"all_nums"])]];
  89. _titles = @[[NSString stringWithFormat:@"%@%@",YZMsg(@"待发货"),minstr([typeNumDic valueForKey:@"wait_shipment_nums"])],
  90. [NSString stringWithFormat:@"%@%@",YZMsg(@"等待退款"),minstr([typeNumDic valueForKey:@"wait_refund_nums"])],
  91. [NSString stringWithFormat:@"%@%@",YZMsg(@"待支付"),minstr([typeNumDic valueForKey:@"wait_payment_nums"])],@"其他"];
  92. [_pageMenu reloadInputViews];
  93. [_pageMenu setTitle:_titles[0] forItemAtIndex:0];
  94. [_pageMenu setTitle:_titles[1] forItemAtIndex:1];
  95. [_pageMenu setTitle:_titles[2] forItemAtIndex:2];
  96. SPPageMenuButtonItem *items = [_pageMenu contentForItemAtIndex:3];
  97. if ([items.title containsString:YZMsg(@"其他")]) {
  98. SPPageMenuButtonItem *item2 = [SPPageMenuButtonItem itemWithTitle:[NSString stringWithFormat:@"%@%@",YZMsg(@"其他"),minstr([typeNumDic valueForKey:@"all_nums"])] image:[UIImage imageNamed:@"order_下拉"] imagePosition:SPItemImagePositionRight];
  99. [_pageMenu setItem:item2 forItemAtIndex:3];
  100. [self hideBtnClick];
  101. }
  102. }
  103. -(void)viewWillAppear:(BOOL)animated
  104. {
  105. [super viewWillAppear:YES];
  106. [self.orderTable.mj_header beginRefreshing];
  107. }
  108. -(void)initData{
  109. //type(订单类型 all 所有订单 wait_payment 待付款 wait_shipment 待发货 wait_refund 待退款 all_refund 全部退款 wait_receive 已发货,待收货 wait_evaluate 已签收,待评价 closed 已关闭 finished 已完成)
  110. orderArr = @[@"all",@"wait_payment",@"wait_shipment",@"wait_refund",@"all_refund",@"wait_receive",@"wait_evaluate",@"closed",@"finished"];
  111. pageIndex = 1;
  112. orderType = @"all";
  113. _titles = @[@"待发货",@"等待退款",@"待支付",@"其他"];
  114. self.dataArr = [NSMutableArray array];
  115. tableArray = @[YZMsg(@"退款订单"),YZMsg(@"已发货订单"),YZMsg(@"已签收订单"),YZMsg(@"已完成订单"),YZMsg(@"已关闭订单"),YZMsg(@"全部订单")];
  116. }
  117. - (UIStatusBarStyle)preferredStatusBarStyle {
  118. if (@available(iOS 13.0,*)) {
  119. return UIStatusBarStyleDarkContent;
  120. }
  121. return UIStatusBarStyleDefault;
  122. }
  123. - (void)viewDidLoad {
  124. [super viewDidLoad];
  125. self.titleL.text = YZMsg(@"订单管理");
  126. self.view.backgroundColor = RGB(250, 250, 250);
  127. self.subNavi.backgroundColor = UIColor.whiteColor;
  128. self.titleL.textColor = UIColor.blackColor;
  129. [self.leftBtn setImage:[UIImage imageNamed:@"pub_back_black"] forState:0];
  130. self.naviLine.hidden = NO;
  131. self.naviLine.backgroundColor = RGB(245, 245, 245);
  132. [self.view addSubview:self.orderTable];
  133. [self initData];
  134. _pageMenu = [SPPageMenu pageMenuWithFrame:CGRectMake(0, 64+statusbarHeight, _window_width, 40) trackerStyle:SPPageMenuTrackerStyleLineAttachment];
  135. [_pageMenu setItems:self.titles selectedItemIndex:self.selectIndex];
  136. if (self.selectIndex == 3) {
  137. SPPageMenuButtonItem *item2 = [SPPageMenuButtonItem itemWithTitle:YZMsg(@"其他") image:[UIImage imageNamed:@"order_下拉"] imagePosition:SPItemImagePositionRight];// YZMsg(@"全部订单")
  138. [_pageMenu setItem:item2 forItemAtIndex:3];
  139. [self hideBtnClick];
  140. }else{
  141. SPPageMenuButtonItem *item2 = [SPPageMenuButtonItem itemWithTitle:YZMsg(@"其他") image:[UIImage imageNamed:@"order_下拉"] imagePosition:SPItemImagePositionRight];
  142. [_pageMenu setItem:item2 forItemAtIndex:3];
  143. }
  144. _pageMenu.delegate = self;
  145. _pageMenu.dividingLine.hidden = YES;
  146. _pageMenu.selectedItemTitleColor = [UIColor blackColor];
  147. _pageMenu.itemTitleFont = [UIFont systemFontOfSize:12];
  148. _pageMenu.unSelectedItemTitleColor = UIColor.grayColor;
  149. _pageMenu.selectedItemTitleFont = [UIFont systemFontOfSize:14];
  150. _pageMenu.unSelectedItemTitleFont = [UIFont systemFontOfSize:14];
  151. _pageMenu.permutationWay = SPPageMenuPermutationWayScrollAdaptContent;
  152. _pageMenu.backgroundColor = RGB(235, 235, 235);
  153. _pageMenu.bridgeScrollView = self.scrollView;
  154. _pageMenu.tracker.backgroundColor = Pink_Cor;
  155. [self.view addSubview:_pageMenu];
  156. [self getGoodsOrderList];
  157. }
  158. - (void)pageMenu:(SPPageMenu *)pageMenu itemSelectedAtIndex:(NSInteger)index {
  159. NSLog(@"sssssss::::%zd",index);
  160. switch (index) {
  161. case 0:
  162. orderType = orderArr[2];
  163. [self hideBtnClick];
  164. [self changeItemtitle];
  165. [self.orderTable.mj_header beginRefreshing];
  166. break;
  167. case 1:
  168. orderType = orderArr[3];
  169. [self hideBtnClick];
  170. [self changeItemtitle];
  171. [self.orderTable.mj_header beginRefreshing];
  172. break;
  173. case 2:
  174. orderType = orderArr[1];
  175. [self hideBtnClick];
  176. [self changeItemtitle];
  177. [self.orderTable.mj_header beginRefreshing];
  178. break;
  179. case 3:{
  180. SPPageMenuButtonItem *item =[_pageMenu itemAtIndex:3];
  181. if ([item.title containsString:YZMsg(@"其他")]) {
  182. [self.dataArr removeAllObjects];
  183. [self.orderTable reloadData];
  184. }
  185. if (!selectView) {
  186. [self creatSelectView];
  187. }else{
  188. [self showSelectTable];
  189. }
  190. }
  191. break;
  192. default:
  193. break;
  194. }
  195. }
  196. -(void)changeItemtitle{
  197. SPPageMenuButtonItem *item2 = [SPPageMenuButtonItem itemWithTitle:YZMsg(@"其他") image:[UIImage imageNamed:@"order_下拉"] imagePosition:SPItemImagePositionRight];
  198. [_pageMenu setItem:item2 forItemAtIndex:3];
  199. }
  200. - (UIScrollView *)scrollView {
  201. if (!_scrollView) {
  202. _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 64+statusbarHeight+40, _window_width, _window_height-64-statusbarHeight-40)];
  203. _scrollView.delegate = self;
  204. _scrollView.pagingEnabled = YES;
  205. _scrollView.showsHorizontalScrollIndicator = NO;
  206. _scrollView.showsVerticalScrollIndicator = NO;
  207. }
  208. return _scrollView;
  209. }
  210. -(UITableView *)orderTable{
  211. if (!_orderTable) {
  212. _orderTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 64+statusbarHeight+40, _window_width, _window_height-64-statusbarHeight-40) style:UITableViewStylePlain];
  213. _orderTable.delegate = self;
  214. _orderTable.dataSource = self;
  215. _orderTable.separatorStyle = 0;
  216. _orderTable.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
  217. pageIndex = 1;
  218. [self getGoodsOrderList];
  219. }];
  220. _orderTable.mj_footer = [MJRefreshBackFooter footerWithRefreshingBlock:^{
  221. pageIndex ++;
  222. [self getGoodsOrderList];
  223. }];
  224. _orderTable.backgroundColor = UIColor.whiteColor;
  225. }
  226. return _orderTable;
  227. }
  228. #pragma mark - scrollViewDelegate
  229. - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  230. // 这一步是实现跟踪器时刻跟随scrollView滑动的效果,如果对self.pageMenu.scrollView赋了值,这一步可省
  231. // [self.pageMenu moveTrackerFollowScrollView:scrollView];
  232. }
  233. #pragma mark ============排列顺序选择页面=============
  234. - (void)creatSelectView{
  235. selectView = [[UIView alloc]initWithFrame:CGRectMake(0, 64+statusbarHeight+40, _window_width, _window_height-64-statusbarHeight-40)];
  236. selectView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.3];
  237. [self.view addSubview:selectView];
  238. if (selectIndex != 9999) {
  239. selectIndex = 0;
  240. }
  241. selectTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, _window_width, 0) style:0];
  242. selectTable.delegate = self;
  243. selectTable.dataSource = self;
  244. selectTable.separatorStyle = 0;
  245. [selectView addSubview:selectTable];
  246. UIButton *hideBtn = [UIButton buttonWithType:0];
  247. hideBtn.frame = CGRectMake(0, 240, _window_width, selectView.height-240);
  248. [hideBtn addTarget:self action:@selector(hideBtnClick) forControlEvents:UIControlEventTouchUpInside];
  249. [selectView addSubview:hideBtn];
  250. [self showSelectTable];
  251. }
  252. - (void)hideBtnClick{
  253. [UIView animateWithDuration:0.1 animations:^{
  254. selectTable.frame = CGRectMake(0, 0, _window_width, 0);
  255. } completion:^(BOOL finished) {
  256. selectView.hidden = YES;
  257. }];
  258. SPPageMenuButtonItem *items = [_pageMenu contentForItemAtIndex:3];
  259. [items setImage:[UIImage imageNamed:@"order_下拉"]];
  260. items.title = [items.title stringByReplacingOccurrencesOfString:YZMsg(@"订单") withString:@""];
  261. [_pageMenu setItem:items forItemAtIndex:3];
  262. }
  263. - (void)showSelectTable{
  264. selectView.hidden = NO;
  265. [selectTable reloadData];
  266. [UIView animateWithDuration:0.1 animations:^{
  267. selectTable.frame = CGRectMake(0, 0, _window_width, 240);
  268. }];
  269. SPPageMenuButtonItem *items = [_pageMenu contentForItemAtIndex:3];
  270. [items setImage:[UIImage imageNamed:@"order_上拉"]];
  271. [_pageMenu setItem:items forItemAtIndex:3];
  272. }
  273. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  274. if (tableView == _orderTable) {
  275. return 185;
  276. }else{
  277. return 40;
  278. }
  279. }
  280. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  281. if (tableView == self.orderTable) {
  282. return self.models.count;
  283. }else{
  284. return 6;
  285. }
  286. }
  287. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  288. if (tableView == self.orderTable) {
  289. SellOrderCell *cell = [SellOrderCell cellWithTab:tableView andIndexPath:indexPath];
  290. cell.model = self.models[indexPath.row];
  291. cell.delegate = self;
  292. cell.contentView.backgroundColor = UIColor.whiteColor;
  293. return cell;
  294. }else{
  295. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"selectClassCELL"];
  296. if (!cell) {
  297. cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"selectClassCELL"];
  298. }
  299. cell.textLabel.text = lisetTableArray[indexPath.row];
  300. cell.textLabel.font = [UIFont systemFontOfSize:14];
  301. cell.textLabel.textColor = [UIColor grayColor];
  302. return cell;
  303. }
  304. }
  305. -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  306. {
  307. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  308. if (tableView == self.orderTable) {
  309. SellOrderModel *model = self.models[indexPath.row];
  310. if ([model.status isEqual:@"1"]) {
  311. WaitSendGoodsVC *wait = [[WaitSendGoodsVC alloc]init];
  312. wait.orderModel = model;
  313. [[YBBaseAppDelegate sharedAppDelegate]pushViewController:wait animated:YES];
  314. }else if ([model.status isEqual:@"5"]){
  315. RefundDetailVC *refund = [[RefundDetailVC alloc]init];
  316. refund.orderModel = model;
  317. [[YBBaseAppDelegate sharedAppDelegate]pushViewController:refund animated:YES];
  318. } else{
  319. OtherSellOrderDetailVC *other = [[OtherSellOrderDetailVC alloc]init];
  320. other.orderModel = model;
  321. [[YBBaseAppDelegate sharedAppDelegate]pushViewController:other animated:YES];
  322. }
  323. }else{
  324. SPPageMenuButtonItem *item2 = [SPPageMenuButtonItem itemWithTitle:tableArray[indexPath.row] image:[UIImage imageNamed:@"order_下拉"] imagePosition:SPItemImagePositionRight];
  325. [_pageMenu setItem:item2 forItemAtIndex:3];
  326. //type(订单类型 all 所有订单 wait_payment 待付款 wait_shipment 待发货 wait_refund 待退款 all_refund 全部退款 wait_receive 已发货,待收货 wait_evaluate 已签收,待评价 closed 已关闭 finished 已完成)
  327. switch (indexPath.row) {
  328. case 0:
  329. orderType = orderArr[4];
  330. break;
  331. case 1:
  332. orderType = orderArr[5];
  333. break;
  334. case 2:
  335. orderType = orderArr[6];
  336. break;
  337. case 3:
  338. orderType = orderArr[8];
  339. break;
  340. case 4:
  341. orderType = orderArr[7];
  342. break;
  343. case 5:
  344. orderType = orderArr[0];
  345. break;
  346. default:
  347. break;
  348. }
  349. [self hideBtnClick];
  350. [self.orderTable.mj_header beginRefreshing];
  351. }
  352. }
  353. #pragma mark-------删除订单-------------
  354. -(void)cellBtnClickWithModel:(SellOrderModel *)model withTitle:(NSString *)title
  355. {
  356. UIAlertController *deleteAlert = [UIAlertController alertControllerWithTitle:YZMsg(@"确定删除订单?") message:nil preferredStyle:UIAlertControllerStyleAlert];
  357. UIAlertAction *cancle = [UIAlertAction actionWithTitle:YZMsg(@"取消") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
  358. }];
  359. UIAlertAction *sureAction = [UIAlertAction actionWithTitle:YZMsg(@"确定") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
  360. [self deleteOrder:model];
  361. }];
  362. [deleteAlert addAction:cancle];
  363. [deleteAlert addAction:sureAction];
  364. [cancle setValue:[UIColor lightGrayColor] forKey:@"titleTextColor"];
  365. [sureAction setValue:Pink_Cor forKey:@"titleTextColor"];
  366. [self presentViewController:deleteAlert animated:YES completion:nil];
  367. }
  368. -(void)deleteOrder:(SellOrderModel *)model{
  369. NSDictionary *signdic = @{@"uid":[Config getOwnID],@"token":[Config getOwnToken], @"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]]};
  370. NSString *sign = [PublicObj sortString:signdic];
  371. NSDictionary *dic = @{
  372. @"uid":[Config getOwnID],
  373. @"token":[Config getOwnToken],
  374. @"orderid":model.idStr,
  375. @"time":[NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]],
  376. @"sign":sign
  377. };
  378. [YBNetworking postWithUrl:@"Seller.delGoodsOrder" Dic:dic Suc:^(int code, id info, NSString *msg) {
  379. if (code ==0) {
  380. [MBProgressHUD showError:YZMsg(@"删除成功")];
  381. [self.orderTable.mj_header beginRefreshing];
  382. }else{
  383. [MBProgressHUD showError:msg];
  384. }
  385. } Fail:^(id fail) {
  386. }];
  387. }
  388. @end