diff --git a/Podfile b/Podfile index 4f36f447d570157542aa8586f5c1d498e27a7f5b..2f6600d898b4de68a9412654932a9bed993a1f55 100644 --- a/Podfile +++ b/Podfile @@ -6,4 +6,3 @@ pod 'MBProgressHUD','~>0.9.1' pod 'FMDB', '~> 2.6.2' pod ‘MJRefresh’,’~>3.1.0’ pod ‘ZBarSDK‘,‘~>1.3.1‘ - diff --git a/zhiche--delivery.xcodeproj/project.pbxproj b/zhiche--delivery.xcodeproj/project.pbxproj index bc33848f1746f7cfbab4ffa160254ab6fddc324d..b4766cd5f6a6caec8ff850a3fc79cd315dabc3d9 100644 --- a/zhiche--delivery.xcodeproj/project.pbxproj +++ b/zhiche--delivery.xcodeproj/project.pbxproj @@ -129,6 +129,16 @@ 82F9733C1CF8271F0082F93E /* CancelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F9733B1CF8271F0082F93E /* CancelViewController.m */; }; 82F973421CF8361A0082F93E /* ExecuteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F973411CF8361A0082F93E /* ExecuteViewController.m */; }; C200976B1D0034B700616D05 /* ConfirmOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = C200976A1D0034B700616D05 /* ConfirmOrder.m */; }; + C20A8D9C1D05642700D49597 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8D9B1D05642700D49597 /* CFNetwork.framework */; }; + C20A8D9E1D05642E00D49597 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8D9D1D05642E00D49597 /* SystemConfiguration.framework */; }; + C20A8DA01D05643A00D49597 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8D9F1D05643A00D49597 /* Security.framework */; }; + C20A8DA21D05643F00D49597 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DA11D05643F00D49597 /* QuartzCore.framework */; }; + C20A8DA41D05644700D49597 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DA31D05644700D49597 /* CoreTelephony.framework */; }; + C20A8DA61D05644E00D49597 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DA51D05644E00D49597 /* CoreMotion.framework */; }; + C20A8DA81D05645C00D49597 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DA71D05645C00D49597 /* libc++.tbd */; }; + C20A8DAA1D05646B00D49597 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DA91D05646B00D49597 /* libsqlite3.0.tbd */; }; + C20A8DAC1D05647200D49597 /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DAB1D05647200D49597 /* libstdc++.tbd */; }; + C20A8DAE1D05648700D49597 /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C20A8DAD1D05648700D49597 /* PassKit.framework */; }; C20E0E1E1CFEDAF9006962F6 /* QuoteListVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C20E0E1D1CFEDAF9006962F6 /* QuoteListVC.m */; }; C20E3E721CF6F7D3008B0DBC /* BillVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C20E3E711CF6F7D2008B0DBC /* BillVC.m */; }; C20E3E751CF6FAC1008B0DBC /* BillCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C20E3E741CF6FAC1008B0DBC /* BillCell.m */; }; @@ -410,6 +420,16 @@ A84284A9F034919672A898C9 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; C20097691D0034B700616D05 /* ConfirmOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmOrder.h; sourceTree = ""; }; C200976A1D0034B700616D05 /* ConfirmOrder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmOrder.m; sourceTree = ""; }; + C20A8D9B1D05642700D49597 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + C20A8D9D1D05642E00D49597 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + C20A8D9F1D05643A00D49597 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + C20A8DA11D05643F00D49597 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + C20A8DA31D05644700D49597 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; + C20A8DA51D05644E00D49597 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; + C20A8DA71D05645C00D49597 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + C20A8DA91D05646B00D49597 /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; + C20A8DAB1D05647200D49597 /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; }; + C20A8DAD1D05648700D49597 /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = System/Library/Frameworks/PassKit.framework; sourceTree = SDKROOT; }; C20E0E1C1CFEDAF9006962F6 /* QuoteListVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuoteListVC.h; sourceTree = ""; }; C20E0E1D1CFEDAF9006962F6 /* QuoteListVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuoteListVC.m; sourceTree = ""; }; C20E3E701CF6F7D2008B0DBC /* BillVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BillVC.h; sourceTree = ""; }; @@ -479,6 +499,16 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C20A8DAE1D05648700D49597 /* PassKit.framework in Frameworks */, + C20A8DAC1D05647200D49597 /* libstdc++.tbd in Frameworks */, + C20A8DAA1D05646B00D49597 /* libsqlite3.0.tbd in Frameworks */, + C20A8DA81D05645C00D49597 /* libc++.tbd in Frameworks */, + C20A8DA61D05644E00D49597 /* CoreMotion.framework in Frameworks */, + C20A8DA41D05644700D49597 /* CoreTelephony.framework in Frameworks */, + C20A8DA21D05643F00D49597 /* QuartzCore.framework in Frameworks */, + C20A8DA01D05643A00D49597 /* Security.framework in Frameworks */, + C20A8D9E1D05642E00D49597 /* SystemConfiguration.framework in Frameworks */, + C20A8D9C1D05642700D49597 /* CFNetwork.framework in Frameworks */, 827531661CEAA70000976B85 /* libresolv.tbd in Frameworks */, 827531641CEAA69E00976B85 /* libz.tbd in Frameworks */, 285601500815E25BAE8D5B6D /* libPods.a in Frameworks */, @@ -505,6 +535,16 @@ 5BF1A564F5DBCC22AA83C593 /* Frameworks */ = { isa = PBXGroup; children = ( + C20A8DAD1D05648700D49597 /* PassKit.framework */, + C20A8DAB1D05647200D49597 /* libstdc++.tbd */, + C20A8DA91D05646B00D49597 /* libsqlite3.0.tbd */, + C20A8DA71D05645C00D49597 /* libc++.tbd */, + C20A8DA51D05644E00D49597 /* CoreMotion.framework */, + C20A8DA31D05644700D49597 /* CoreTelephony.framework */, + C20A8DA11D05643F00D49597 /* QuartzCore.framework */, + C20A8D9F1D05643A00D49597 /* Security.framework */, + C20A8D9D1D05642E00D49597 /* SystemConfiguration.framework */, + C20A8D9B1D05642700D49597 /* CFNetwork.framework */, 827531651CEAA70000976B85 /* libresolv.tbd */, 827531631CEAA69E00976B85 /* libz.tbd */, 20458C5A6CF32767D7522CFB /* libPods.a */, diff --git a/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/UserInterfaceState.xcuserstate b/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/UserInterfaceState.xcuserstate index e95c6351f358511921da56c9ecd90126c8c7244c..ccc79b826729ebbcc9cc9da95c9b454b9ec4a6ac 100644 Binary files a/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/UserInterfaceState.xcuserstate and b/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 3235bb1a5ee9ee02d2e1232c4208bb426bc12b07..e2573a5943cb3dfb1b9adf820516fb32def83faa 100644 --- a/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/zhiche--delivery.xcworkspace/xcuserdata/wangyalu.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -13,21 +13,5 @@ stopOnStyle = "0"> - - - - diff --git a/zhiche--delivery/Delivery/Main/1/Cell/AcceptCarCell.m b/zhiche--delivery/Delivery/Main/1/Cell/AcceptCarCell.m index b93b940a1aadea84aea2a49c864677d556531a10..5662928ae0cd448aa9aa3c01c612ea86a2144dd8 100644 --- a/zhiche--delivery/Delivery/Main/1/Cell/AcceptCarCell.m +++ b/zhiche--delivery/Delivery/Main/1/Cell/AcceptCarCell.m @@ -108,6 +108,13 @@ -(void)showInfo:(NSDictionary *)dic_info{ + self.startAddress.text =[NSString stringWithFormat:@"%@",dic_info[@"departCityName"]]; + self.startDetailAddress.text = [NSString stringWithFormat:@"%@",dic_info[@"departUnit"]]; + self.startTimeL.text = [NSString stringWithFormat:@"%@",dic_info[@"deliveryDate"]]; + self.endAddress.text = [NSString stringWithFormat:@"%@",dic_info[@"receiptCityName"]]; + self.endDetailAddress.text = [NSString stringWithFormat:@"%@",dic_info[@"receiptUnit"]]; + self.endTimeL.text = [NSString stringWithFormat:@"%@",dic_info[@"arriveDate"]]; + } diff --git a/zhiche--delivery/Delivery/Main/1/Controller/ActionSheet/FindQuoteVC.m b/zhiche--delivery/Delivery/Main/1/Controller/ActionSheet/FindQuoteVC.m index 972579ab7ce66732f713fb998d90bf61947aeb21..18a2af4366f541aee75359e500af98d9865eda1a 100644 --- a/zhiche--delivery/Delivery/Main/1/Controller/ActionSheet/FindQuoteVC.m +++ b/zhiche--delivery/Delivery/Main/1/Controller/ActionSheet/FindQuoteVC.m @@ -11,13 +11,20 @@ #import "NewBtn.h" #import "Common.h" #import "QuoteListVC.h" +#import +#import "RootViewController.h" + #import "CancelViewController.h" @interface FindQuoteVC () { + Common *Com; UIView * nav; UITableView * table; NSMutableArray * dataSouceArr; NSMutableDictionary * dataSouceDic; + int page ; + RootViewController * TabBar; + } @end @@ -27,6 +34,8 @@ [super viewDidLoad]; nav = [self createNav:@"查看报价"]; [self.view addSubview:nav]; + TabBar = [RootViewController defaultsTabBar]; + dataSouceArr = [[NSMutableArray alloc]init]; dataSouceDic = [[NSMutableDictionary alloc]init]; @@ -34,13 +43,51 @@ [table setSeparatorStyle:UITableViewCellSeparatorStyleNone]; table.delegate = self; table.dataSource = self; - + [table.mj_header beginRefreshing]; + table.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(downRefresh)]; + table.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(upRefresh)]; [self.view addSubview:table]; } +-(void)downRefresh{ + + [table.mj_header endRefreshing]; + [table.mj_footer endRefreshing]; + page = 1; + [self loadData]; + NSLog(@"刷新"); +} +-(void)upRefresh{ + +// if (page!=totalPage) { +// page ++; +// } + [table.mj_header endRefreshing]; + [table.mj_footer endRefreshing]; + [self loadData]; + NSLog(@"加载"); +} +-(void)loadData{ + + int pageSize = 10; + NSString * string = [NSString stringWithFormat:@"%@?pageNo=%d&pageSize=%d",Order_Published_Url,page,pageSize]; + [Common requestWithUrlString:string contentType:@"application/json" finished:^(id responseObj){ + + dataSouceDic = responseObj[@"data"]; + dataSouceArr = dataSouceDic[@"orders"]; + [table reloadData]; + + } failed:^(NSString *errorMsg) { + NSLog(@"%@",errorMsg); + }]; --(void)viewWillAppear:(BOOL)animated{ +} + + +-(void)viewWillAppear:(BOOL)animated{ + [TabBar setTabBarHidden:YES]; + // NSLog(@"%@",Order_Published_Url); // pageNo Integer Y 1 页码 // pageSize Integer Y 10 每页记录数 @@ -86,12 +133,39 @@ -(void)pressBtn2:(NewBtn*)sender{ - CancelViewController * cancel = [[CancelViewController alloc]init]; - cancel.integer = [dataSouceArr[sender.indexpath.row][@"id"] integerValue]; + int status = [dataSouceArr[sender.indexpath.row][@"status"]intValue]; + if (status == 20) { + + CancelViewController * cancel = [[CancelViewController alloc]init]; + cancel.integer = [dataSouceArr[sender.indexpath.row][@"id"] integerValue]; + [self.navigationController pushViewController:cancel animated:YES]; + }else{ + + UIAlertController * alert =[UIAlertController alertControllerWithTitle:@"提示" message:@"确定是否重新发布" preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction * action =[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + + + NSLog(@"点击的确定按钮"); + NSMutableDictionary * dicUrl = [[NSMutableDictionary alloc]init]; + [dicUrl setObject:dataSouceArr[sender.indexpath.row][@"id"] forKey:@"id"]; + + [Com afPostRequestWithUrlString:Order_Publish_Url parms:dicUrl finishedBlock:^(id responseObj) { + + NSMutableDictionary * dicObj =[NSJSONSerialization JSONObjectWithData:responseObj options:NSJSONReadingMutableContainers error:nil]; + NSLog(@"重新发布%@",dicObj); + + } failedBlock:^(NSString *errorMsg) { + }]; + }]; + UIAlertAction * action1 =[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + + }]; + [alert addAction:action1]; + [alert addAction:action]; + [self presentViewController:alert animated:YES completion:nil]; + } - [self.navigationController pushViewController:cancel animated:YES]; NSLog(@"Btn2:%ld",(long)sender.indexpath.row); - } -(void)pressBtn3:(NewBtn*)sender{ @@ -123,14 +197,22 @@ // Dispose of any resources that can be recreated. } -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. +-(void)createUIAlertController:(NSString*)title +{ + UIAlertController * alert =[UIAlertController alertControllerWithTitle:@"提示" message:title preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction * action =[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + + + + }]; + UIAlertAction * action1 =[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + + + + }]; + [alert addAction:action1]; + [alert addAction:action]; + [self presentViewController:alert animated:YES completion:nil]; } -*/ @end diff --git a/zhiche--delivery/Delivery/Main/1/Controller/BillVC.m b/zhiche--delivery/Delivery/Main/1/Controller/BillVC.m index aa83dcf3cf38ff8dd6dfa1de884f55e12c863211..5e98a14a6fabb1b1159dc2ca7da66308435beea5 100644 --- a/zhiche--delivery/Delivery/Main/1/Controller/BillVC.m +++ b/zhiche--delivery/Delivery/Main/1/Controller/BillVC.m @@ -8,10 +8,14 @@ #import "BillVC.h" #import "BillCell.h" +#import "RootViewController.h" + @interface BillVC () { UIImageView * nav; UITableView * table; + RootViewController * TabBar; + } @end @@ -19,6 +23,8 @@ - (void)viewDidLoad { [super viewDidLoad]; + TabBar = [RootViewController defaultsTabBar]; + nav = [self createNav:@"我的账单"]; table = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, Main_Width, Main_height-64) style:UITableViewStylePlain]; @@ -30,6 +36,10 @@ } +-(void)viewWillAppear:(BOOL)animated{ + [TabBar setTabBarHidden:YES]; +} + -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ diff --git a/zhiche--delivery/Delivery/Main/1/Controller/PayMoneyVC.m b/zhiche--delivery/Delivery/Main/1/Controller/PayMoneyVC.m index 0828ff554ad77bcf02f41e82bee62101c7989d3c..f8186e4be7bbae06b883fec1a42a2f2ae095a139 100644 --- a/zhiche--delivery/Delivery/Main/1/Controller/PayMoneyVC.m +++ b/zhiche--delivery/Delivery/Main/1/Controller/PayMoneyVC.m @@ -9,6 +9,7 @@ #import "PayMoneyVC.h" #import "Common.h" #import +#import "RootViewController.h" #import "AcceptCarCell.h" @interface PayMoneyVC () { @@ -17,6 +18,9 @@ NSMutableArray * dataSouceArr; NSMutableArray * imageBtnArr; ZBarReaderView * readview; + RootViewController * TabBar; + NSMutableDictionary * DataSouceDic; + } @property(nonatomic,strong) UIImageView *scanZomeBack; @@ -27,13 +31,15 @@ - (void)viewDidLoad { [super viewDidLoad]; + TabBar = [RootViewController defaultsTabBar]; nav = [self createNav:@"我要接车"]; [self.view addSubview:nav]; [self createUI]; - imageBtnArr = @[@"0",@"0",@"0"].mutableCopy; dataSouceArr = [[NSMutableArray alloc]init]; + DataSouceDic = [[NSMutableDictionary alloc]init]; + imageBtnArr = [[NSMutableArray alloc]init]; } @@ -238,23 +244,46 @@ -(void)pressConfirm{ + [Common requestWithUrlString:Order_receipt contentType:@"application/json" finished:^(id responseObj){ + + DataSouceDic = responseObj[@"data"]; + dataSouceArr = DataSouceDic[@"orders"]; + + + for (int i=0; i +#import "RootViewController.h" #define AddressTag 10000 #define CarTag 20000 #define TimeTag 100 @@ -33,6 +35,7 @@ UIView * backview ; UIScrollView * scroll; NSMutableDictionary * dicUrl; + RootViewController * TabBar; } @property (nonatomic,strong) NSMutableArray *CarName; @property (nonatomic,strong) NSMutableArray *RemoveArr; @@ -52,6 +55,7 @@ - (void)viewDidLoad { [super viewDidLoad]; choiceVC = [[ChoiceCarTypeVC alloc]init]; + TabBar = [RootViewController defaultsTabBar]; com = [[Common alloc]init]; PlaceModel = [[PlaceOrderModel alloc]init]; @@ -67,7 +71,6 @@ [self.view addSubview:nav]; [self createUI]; - [self createData]; self.navigationController.interactivePopGestureRecognizer.delegate = (id)self; NumberArr = [[NSMutableArray alloc]init]; _CarName = [[NSMutableArray alloc]init]; @@ -232,8 +235,9 @@ -(void)viewWillAppear:(BOOL)animated{ - - + [self createData]; + [TabBar setTabBarHidden:YES]; + } @@ -496,6 +500,9 @@ make.top.mas_equalTo(Hline2.mas_bottom).with.offset(30*kHeight); }]; } + + + -(void)textFieldWithText:(UITextField*)field{ UITableViewCell *cell = (UITableViewCell*)[[field superview] superview]; diff --git a/zhiche--delivery/Delivery/Singleton/Header.h b/zhiche--delivery/Delivery/Singleton/Header.h index 656ac9682524cf567db76a5c0b029b1c767112bc..7439b09b56a9b861af2891138b4f5e64b162aa48 100644 --- a/zhiche--delivery/Delivery/Singleton/Header.h +++ b/zhiche--delivery/Delivery/Singleton/Header.h @@ -102,6 +102,9 @@ #define Select_Paylist_Url STR_F2(Main_interface,@"pay/list") #define Order_publish STR_F2(Main_interface,@"order/publish") +//我要接车 +#define Order_receipt STR_F2(Main_interface,@"order/receipt") + // 登录成功返回token #define login_token @"login_token"