// // NewCar.m // LN_School // // Created by apple on 2017/12/15. // Copyright © 2017年 Danson. All rights reserved. // #import "NewCar.h" #import "PureCamera.h" #import "HKClipperHelper.h" @interface NewCar () { XLFormRowDescriptor *btnRow;//记录当前添加照片的row NSString *photoPath,*filePath,*filePath2,*filePath3; } @end @implementation NewCar - (void)viewDidLoad { [super viewDidLoad]; photoPath = filePath = filePath2 = filePath3 = @""; XLFormDescriptor *formDescriptor = [XLFormDescriptor formDescriptor]; XLFormSectionDescriptor *section = [XLFormSectionDescriptor formSectionWithTitle:@"必填信息"]; [formDescriptor addFormSection:section]; XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:@"licnum" rowType:XLFormRowDescriptorTypeText title:@"车牌号"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入车牌号" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"manufacture" rowType:XLFormRowDescriptorTypeText title:@"生产厂家"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入生产厂家" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"brand" rowType:XLFormRowDescriptorTypeText title:@"车辆品牌"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入车辆品牌" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"model" rowType:XLFormRowDescriptorTypeText title:@"车辆型号"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入车辆型号" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"franum" rowType:XLFormRowDescriptorTypeText title:@"车架号"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入车架号" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"platecolor" rowType:XLFormRowDescriptorTypeSelectorPush title:@"车辆颜色"]; row.required = YES; row.selectorOptions = @[[XLFormOptionsObject formOptionsObjectWithValue:@(1) displayText:@"蓝色"],[XLFormOptionsObject formOptionsObjectWithValue:@(2) displayText:@"黄色"],[XLFormOptionsObject formOptionsObjectWithValue:@(3) displayText:@"黑色"],[XLFormOptionsObject formOptionsObjectWithValue:@(4) displayText:@"白色"],[XLFormOptionsObject formOptionsObjectWithValue:@(5) displayText:@"绿色"],[XLFormOptionsObject formOptionsObjectWithValue:@(9) displayText:@"其他"]]; row.value = [XLFormOptionsObject formOptionsObjectWithValue:@(1) displayText:@"蓝色"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"perdritype" rowType:XLFormRowDescriptorTypeSelectorPush title:@"培训车型"]; row.required = YES; row.selectorOptions = @[[XLFormOptionsObject formOptionsObjectWithValue:@(0) displayText:@"A1"],[XLFormOptionsObject formOptionsObjectWithValue:@(1) displayText:@"A2"],[XLFormOptionsObject formOptionsObjectWithValue:@(2) displayText:@"A3"],[XLFormOptionsObject formOptionsObjectWithValue:@(3) displayText:@"B1"],[XLFormOptionsObject formOptionsObjectWithValue:@(4) displayText:@"B2"],[XLFormOptionsObject formOptionsObjectWithValue:@(5) displayText:@"C1"],[XLFormOptionsObject formOptionsObjectWithValue:@(6) displayText:@"C2"],[XLFormOptionsObject formOptionsObjectWithValue:@(7) displayText:@"C3"],[XLFormOptionsObject formOptionsObjectWithValue:@(8) displayText:@"C4"],[XLFormOptionsObject formOptionsObjectWithValue:@(9) displayText:@"C5"],[XLFormOptionsObject formOptionsObjectWithValue:@(10) displayText:@"D"],[XLFormOptionsObject formOptionsObjectWithValue:@(11) displayText:@"E"],[XLFormOptionsObject formOptionsObjectWithValue:@(12) displayText:@"F"],[XLFormOptionsObject formOptionsObjectWithValue:@(13) displayText:@"M"],[XLFormOptionsObject formOptionsObjectWithValue:@(14) displayText:@"N"],[XLFormOptionsObject formOptionsObjectWithValue:@(15) displayText:@"P"]]; row.value = [XLFormOptionsObject formOptionsObjectWithValue:@(5) displayText:@"C1"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"buydate" rowType:XLFormRowDescriptorTypeDate title:@"购买日期"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"insuranceNum" rowType:XLFormRowDescriptorTypeText title:@"交强险保单号"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入交强险保单号" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"insuranceMoney" rowType:XLFormRowDescriptorTypeNumber title:@"保险金额(元)"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入保险金额" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"insuranceStartTime" rowType:XLFormRowDescriptorTypeDate title:@"保险缴纳时间"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"insuranceLimitTime" rowType:XLFormRowDescriptorTypeNumber title:@"保险有效时长(年)"]; row.required = YES; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入保险有效时长" forKey:@"textField.placeholder"]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"checkTime1" rowType:XLFormRowDescriptorTypeDate title:@"车辆年检日期"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"nextTime1" rowType:XLFormRowDescriptorTypeDate title:@"下次车辆年检日期"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"checkTime2" rowType:XLFormRowDescriptorTypeDate title:@"车辆综合性能检测日期"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"nextTime2" rowType:XLFormRowDescriptorTypeDate title:@"下次车辆综合性能检测日期"]; row.required = YES; // row.value = [NSDate new]; [section addFormRow:row]; //上传照片 XLFormRowDescriptor *buttonRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"photoPath" rowType:XLFormRowDescriptorTypeButton title:@"车辆照片"]; buttonRow.height = 70; [buttonRow.cellConfig setObject:@(NSTextAlignmentNatural) forKey:@"textLabel.textAlignment"]; [buttonRow.cellConfig setObject:[UIImage imageNamed:@"NOImg"] forKey:@"imageView.image"]; buttonRow.action.formSelector = @selector(getPhotoPath:); [section addFormRow:buttonRow]; buttonRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"filePath" rowType:XLFormRowDescriptorTypeButton title:@"行驶证(正本)"]; buttonRow.height = 70; [buttonRow.cellConfig setObject:@(NSTextAlignmentNatural) forKey:@"textLabel.textAlignment"]; [buttonRow.cellConfig setObject:[UIImage imageNamed:@"NOImg"] forKey:@"imageView.image"]; buttonRow.action.formSelector = @selector(getPhotoPath:); [section addFormRow:buttonRow]; buttonRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"filePath2" rowType:XLFormRowDescriptorTypeButton title:@"行驶证(副本)"]; buttonRow.height = 70; [buttonRow.cellConfig setObject:@(NSTextAlignmentNatural) forKey:@"textLabel.textAlignment"]; [buttonRow.cellConfig setObject:[UIImage imageNamed:@"NOImg"] forKey:@"imageView.image"]; buttonRow.action.formSelector = @selector(getPhotoPath:); [section addFormRow:buttonRow]; buttonRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"filePath3" rowType:XLFormRowDescriptorTypeButton title:@"车辆综合性能检测附件"]; buttonRow.height = 70; [buttonRow.cellConfig setObject:@(NSTextAlignmentNatural) forKey:@"textLabel.textAlignment"]; [buttonRow.cellConfig setObject:[UIImage imageNamed:@"NOImg"] forKey:@"imageView.image"]; buttonRow.action.formSelector = @selector(getPhotoPath:); [section addFormRow:buttonRow]; section = [XLFormSectionDescriptor formSectionWithTitle:@"选填信息"]; [formDescriptor addFormSection:section]; row = [XLFormRowDescriptor formRowDescriptorWithTag:@"engnum" rowType:XLFormRowDescriptorTypeText title:@"发动机号"]; [row.cellConfigAtConfigure setObject:@(NSTextAlignmentRight) forKey:@"textField.textAlignment"]; [row.cellConfigAtConfigure setObject:@"请输入发动机号" forKey:@"textField.placeholder"]; [section addFormRow:row]; self.form = formDescriptor; CGFloat bottomBtnH = 50; self.tableView.height = kSize.height - bottomBtnH - SafeAreaBottomHeight; UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; btn.frame = CGRectMake(0, kSize.height-kNavOffSet-bottomBtnH - SafeAreaBottomHeight, kSize.width, bottomBtnH); [btn setTitle:@"提交" textColor:[UIColor whiteColor] font:Font17 fotState:UIControlStateNormal]; btn.backgroundColor = defGreen; [btn addTarget:self action:@selector(commitAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; self.title = @"新增车辆"; self.view.backgroundColor = KBackGroundColor; [self goBackByNavigation]; } -(void)commitAction { //校验数据 NSArray *arr = [self formValidationErrors]; if ([arr count] != 0) { NSError *error = arr[0]; ShowMsg(error.userInfo[@"NSLocalizedDescription"]); return; } // NSLog(@"%@",[self formValues]); if (filePath.length < 1 || filePath2.length < 1 || filePath3.length < 1 || photoPath.length < 1) { ShowMsg(@"请上传照片附件"); return; } [self addCar]; } - (void)getPhotoPath:(XLFormRowDescriptor *)row { [self deselectFormRow:row]; btnRow = row; UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"选择照片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"相册", nil]; [sheet showInView:self.view]; } -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) {//拍照 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { myDelegate.takePhotoAllRect = YES; PureCamera *homec = [[PureCamera alloc] init]; homec.fininshcapture = ^(UIImage *photo) { //如果拍照过程取消 要另外处理 myDelegate.takePhotoAllRect = NO; if (photo) { [self uploadCarImgWithImage:photo]; } }; [self presentViewController:homec animated:NO completion:nil]; } else { NSLog(@"相机调用失败"); } }else if (buttonIndex == 1){//相册 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { [HKClipperHelper shareManager].nav = self.navigationController; [HKClipperHelper shareManager].clippedImgSize = CGSizeMake(4, 5); [HKClipperHelper shareManager].clipperType = ClipperTypeImgMove; [HKClipperHelper shareManager].systemEditing = NO; [HKClipperHelper shareManager].isSystemType = NO; [HKClipperHelper shareManager].clippedImageHandler = ^(UIImage *photo) { [self uploadCarImgWithImage:photo]; }; [[HKClipperHelper shareManager] photoWithSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; }else{ NSLog(@"相册调用失败"); } } } #pragma mark 数据 - (void)uploadCarImgWithImage:(UIImage *)img{ //判断网络是否连接 if (![NetManager connectedToNetWork]) { showMsgUnconnect(); return; } NSString *type = @""; if ([btnRow.tag isEqualToString:@"photoPath"]) { type = @"1"; } if ([btnRow.tag isEqualToString:@"filePath"]) { type = @"2"; } if ([btnRow.tag isEqualToString:@"filePath2"]) { type = @"3"; } if ([btnRow.tag isEqualToString:@"filePath3"]) { type = @"4"; } NSData *data = UIImageJPEGRepresentation(img,1.0); if (data.length > 50*1024) { //如果图片大于50kb 就压缩 data = UIImageJPEGRepresentation(img,0.5); } NSString *imgString = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; NSMutableDictionary * mdic = [NSMutableDictionary new]; [mdic setValue:@"" forKey:@"carId"]; [mdic setValue:type forKey:@"type"]; [mdic setValue:imgString forKey:@"content"]; NSString *method = @"uploadCarImg"; [MBProgressHUD showLoadToView:self.view]; [NetManager requestAnythingWithURL:method dictionary:mdic dataArray:nil completion:^(NSDictionary *root) { [MBProgressHUD hideHUDForView:self.view]; if (!root) { ShowMsg(@"照片上传失败,请重试"); return; } ShowMsg(root[@"msg"]); if ([root[@"code"] integerValue] == 1) { return; } switch ([type integerValue]) { case 1: photoPath = root[@"body"]; break; case 2: filePath = root[@"body"]; break; case 3: filePath2 = root[@"body"]; break; case 4: filePath3 = root[@"body"]; break; default: break; } [btnRow.cellConfig setObject:img forKey:@"imageView.image"]; [self.tableView reloadData]; }]; } - (void)addCar{ //判断网络是否连接 if (![NetManager connectedToNetWork]) { showMsgUnconnect(); return; } NSMutableDictionary * mdic = [NSMutableDictionary new]; NSDictionary *valueDic = [self formValues]; [mdic setValue:defUser.userDict[@"id"] forKey:@"userId"]; [mdic setValue:valueDic[@"licnum"] forKey:@"licnum"]; [mdic setValue:valueDic[@"manufacture"] forKey:@"manufacture"]; [mdic setValue:valueDic[@"brand"] forKey:@"brand"]; [mdic setValue:valueDic[@"model"] forKey:@"model"]; //颜色 id option = valueDic[@"platecolor"]; if (option != [NSNull null]) { [mdic setValue:[(XLFormOptionsObject *)option formValue] forKey:@"platecolor"]; }else { [mdic setValue:@"" forKey:@"platecolor"]; } //车型 option = valueDic[@"perdritype"]; if (option != [NSNull null]) { [mdic setValue:[(XLFormOptionsObject *)option formDisplayText] forKey:@"perdritype"]; }else { [mdic setValue:@"" forKey:@"perdritype"]; } [mdic setValue:valueDic[@"franum"] forKey:@"franum"]; [mdic setValue:valueDic[@"engnum"] forKey:@"engnum"]; [mdic setValue:valueDic[@"insuranceNum"] forKey:@"insuranceNum"]; [mdic setValue:valueDic[@"insuranceMoney"] forKey:@"insuranceMoney"]; [mdic setValue:valueDic[@"insuranceLimitTime"] forKey:@"insuranceLimitTime"]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd"; NSString *dateString = @""; if (valueDic[@"buydate"]) { dateString = [formatter stringFromDate:valueDic[@"buydate"]]; } [mdic setValue:dateString forKey:@"buydate"]; dateString = @""; if (valueDic[@"insuranceStartTime"]) { dateString = [formatter stringFromDate:valueDic[@"insuranceStartTime"]]; } [mdic setValue:dateString forKey:@"insuranceStartTime"]; dateString = @""; if (valueDic[@"checkTime1"]) { dateString = [formatter stringFromDate:valueDic[@"checkTime1"]]; } [mdic setValue:dateString forKey:@"checkTime1"]; dateString = @""; if (valueDic[@"nextTime1"]) { dateString = [formatter stringFromDate:valueDic[@"nextTime1"]]; } [mdic setValue:dateString forKey:@"nextTime1"]; dateString = @""; if (valueDic[@"checkTime2"]) { dateString = [formatter stringFromDate:valueDic[@"checkTime2"]]; } [mdic setValue:dateString forKey:@"checkTime2"]; dateString = @""; if (valueDic[@"nextTime2"]) { dateString = [formatter stringFromDate:valueDic[@"nextTime2"]]; } [mdic setValue:dateString forKey:@"nextTime2"]; [mdic setValue:photoPath forKey:@"photoPath"]; [mdic setValue:filePath forKey:@"filePath"]; [mdic setValue:filePath2 forKey:@"filePath2"]; [mdic setValue:filePath3 forKey:@"filePath3"]; NSString *method = @"addCar"; [MBProgressHUD showLoadToView:self.view]; [NetManager requestAnythingWithURL:method dictionary:mdic dataArray:nil completion:^(NSDictionary *root) { [MBProgressHUD hideHUDForView:self.view]; if (!root) { ShowMsg(@"数据请求失败,请重试"); return; } if ([root[@"code"] integerValue] == 1) { ShowMsg(root[@"msg"]); return; } [self.navigationController popViewControllerAnimated:YES]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提示" message:root[@"msg"] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; }]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end