| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689 |
- //
- // NewRepairReceiptVC.m
- // IBOSS
- //
- // Created by apple on 16/1/8.
- // Copyright © 2017年 沈阳东科云信软件有限公司. All rights reserved.
- //
- // 功能描述:新增维修回执控制器
- #import "NewRepairReceiptVC.h"
- #import "StatusInfo.h"
- #import "StatusInfoTextVC.h"
- #import "NIDropDown.h"
- #import "NewRepairItemModel.h"
- #import "NewRepairDetailListsCell.h"
- #import "DKUICollectionViewCell.h"
- #import "DKPhotoPickerViewController.h"
- #import "DateFormat.h"
- #import "RegularExpression.h"
- #import "Util.h"
- #import "DKCamera.h"
- #import "DKCameraViewController.h"
- #import "LeslieAsyncImageDownloader.h"
- #import "CustomButton.h"
- #define kTextFont [UIFont systemFontOfSize:LabelAndTextFontOfSize]
- @interface NewRepairReceiptVC ()<StatusInfoTextDelegate,UITextFieldDelegate,NewRepairDetailListsCellDelegate,SettlementTypeProtocol,UITableViewDataSource,UITableViewDelegate,UICollectionViewDataSource,UICollectionViewDelegate,DKPhotoPickerBrowserViewControllerDataSource,DKPhotoPickerViewControllerDelegate, DKPhotoPickerBrowserViewControllerDelegate>
- {
- //回执类型
- NSMutableArray* _arrayStatus;
-
- //是否有小数点
- BOOL _isHaveDian;
-
- //content view
- UIView *_contentView;
-
- //scroll view
- UIScrollView *_scroll;
-
- //collection view视图
- UIView *_vCollectionView;
-
- //拍照和相册视图
- UIView *_vImage;
-
- //地图位置的高度
- NSInteger _positionHeight;
-
- //地图定位视图
- UIView *_positionImage;
-
- //地图定位文本
- UILabel *_lblPosition;
-
- //地图定位图片标识
- UIImageView *_ivPosition;
-
- //是否弹出键盘
- BOOL _keyboardShow;
- }
- /**
- 下载管理器
- */
- @property (nonatomic,strong) ASIDownManager *mDownManager;
- /**
- 保存管理器
- */
- @property (nonatomic,strong) ASIDownManager *mSaveManager;
- @end
- @implementation NewRepairReceiptVC
- @synthesize vCustomTableView;
- #pragma 公有函数
- /**
- 视图加载后函数
- */
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self initUI];
- [self initStatus];
- self.model = [[ParseNewRepairItem alloc]init];
- self.model.detailsArr = [[NSMutableArray alloc]init];
- self.mSaveManager = [[ASIDownManager alloc] init];
- self.mSaveManager.delegate=self;
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFocusPeopleEditingChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.receiptAmount ];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFocusPeopleEditingChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.code ];
-
- self.navigationItem.title = @"新增维修回执";
- //返回
- UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
- [button setImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal];
- [button addTarget:self action:@selector(goBack)
- forControlEvents:UIControlEventTouchUpInside];
- button.frame = CGRectMake(0, 0,45,22);
- UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:button];
- self.navigationItem.leftBarButtonItem = menuButton;
-
- if(self.sCode != nil&&self.sCode.length>0){
- self.code.enabled=NO;
- [self reloadDataWithOnlyCode:self.sCode];
- }
- }
- /**
- 安全区视图发生变化
- */
- -(void)viewSafeAreaInsetsDidChange{
- [self.view setBackgroundColor:[UIColor whiteColor]];
- UIImage *pic = [UIImage imageNamed:@"bt_datasave"];
- CGFloat h = (Screen_Width - 40) * pic.size.height / pic.size.width;
- _scroll.frame =CGRectMake(0, 0, Screen_Width, self.view.safeAreaLayoutGuide.layoutFrame.size.height-h);
- _saveBtn.frame = CGRectMake(20,
- self.view.safeAreaLayoutGuide.layoutFrame.size.height -h-15,
- Screen_Width-40,
- h);
- [super viewSafeAreaInsetsDidChange];
- }
- /**
- 内存释放函数
- */
- - (void)dealloc{
- // [self cancel];
- //[[NSNotificationCenter defaultCenter]removeObserver:self name:@"UITextFieldTextDidChangeNotification" object:self.receiptAmount];
- }
- /**
- 初始化相册数组
- @return <#return value description#>
- */
- - (NSMutableArray *)assets{
- if (!_assets) {
- _assets = [NSMutableArray array];
- }
- return _assets;
- }
- /**
- 初始化图片路径数组
- @return <#return value description#>
- */
- - (NSMutableArray *)imagePaths{
- if (!_imagePaths) {
- _imagePaths = [NSMutableArray array];
- }
- return _imagePaths;
- }
- /**
- 初始化回执类型
- */
- - (void)initStatus{
- _arrayStatus = [[NSMutableArray alloc]init];
- StatusInfo* s = [[StatusInfo alloc]init];
- s.statusId = @"1";
- s.name = @"完成";
- [_arrayStatus addObject:s];
- s = [[StatusInfo alloc]init];
- s.statusId = @"5";
- s.name = @"再次安排";
- [_arrayStatus addObject:s];
- }
- /**
- 初始化collection view
- */
- - (void)setupCollectionView{
- UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
- flowLayout.itemSize = CGSizeMake(85, 85);
- flowLayout.minimumInteritemSpacing = 5;
- flowLayout.minimumLineSpacing = 10;
-
- flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
- flowLayout.sectionInset = UIEdgeInsetsMake(7, 20, 0, 20);
-
- self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, Screen_Width, (85+15)*3) collectionViewLayout:flowLayout];
-
- self.collectionView.backgroundColor = [UIColor clearColor];
- self.collectionView.dataSource = self;
- self.collectionView.delegate = self;
- [self.collectionView registerNib:[UINib nibWithNibName:@"DKUICollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"DKUICollectionViewCell"];
- [_vCollectionView addSubview:self.collectionView];
- }
- #pragma 委托函数
- /**
- 保存数据完成更新画面
- @param sender <#sender description#>
- */
- - (void)onLoadFinish:(ASIDownManager *)sender {
-
- RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr];
- [self cancel];
- int iStatus = resultModel.status;
- NSString *message =resultModel.message;
- self.navigationItem.rightBarButtonItem.enabled=YES;
- if (iStatus == 0) {
- [self clearData];//新增后 清除画面的值
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"保存成功!" preferredStyle:UIAlertControllerStyleAlert ];
- [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
- [_parentVC ReloadList];
- [self.navigationController popViewControllerAnimated:YES];
- }]];
- // 3.显示alertController:presentViewController
- [self presentViewController:alert animated:YES completion:nil];
-
- }
- else if(iStatus == ActionResultStatusAuthError
- ||iStatus == ActionResultStatusNoLogin
- ||iStatus == ActionResultStatusLogined||iStatus==ActionResultSessionOverdue){
- [self showReLoginDialog:message];
- return;
- }
-
- else {
-
- [self showAlertViewText:message];
- }
-
- }
- /**
- 数据加载成功回调
- @param sender <#sender description#>
- */
- - (void)onRequestLoadSuccess:(ASIDownManager *)sender {
- RequestResultModel *resultModel = [RequestResultModel dk_modelWithJSON:sender.mWebStr]; self.sCode = @"";
- [self cancel];
- int iStatus =resultModel.status;
- NSString *message = resultModel.message;
- if (iStatus == 0) {
- self.sCode=self.code.text;
- NSArray * infoArr;
- NSArray * infoHead;
- NSDictionary *dicResult =(NSDictionary*)resultModel.result;
- [self.model.detailsArr removeAllObjects];
-
- if(dicResult != nil){
- infoArr = [dicResult objectForKey:@"Table1"];
- infoHead = [dicResult objectForKey:@"Table"];
- }
-
-
- if (infoHead == nil|| infoHead.count == 0) {
- self.code.text = @"";
- self.sCode = @"";
- [self clearData];
- [self showAlertViewText:@"该维修单未建安排单,请重新建安排单"];
- return;
- }
-
- //单据信息 一条数据
- BOOL receiptFlag=false;
- for (int i=0; i<infoHead.count; i++) {
- NSDictionary *h=infoHead[i];
- receiptFlag = [[h objectForKey:@"ReceiptFlag"] boolValue] ;
- if (receiptFlag ) {
- self.sReceiptType = @"1";
- break;
- }else{
- self.sReceiptType = @"0";
- }
-
- self.customerId = [[h objectForKey:@"CustomerID"]stringValue];
- _questionDesc= [h objectForKey:@"Question"];
- self.arrangementId = [[h objectForKey:@"ArrangementID"]stringValue];
- self.repairId = [[h objectForKey:@"RepairID"]stringValue];
- self.organizationId = [[h objectForKey:@"BusinessOrganization"]stringValue];
- self.salesman = [[h objectForKey:@"SalesMan"]stringValue];
- self.lblStaffNameValue.text = [h objectForKey:@"CustomerServiceStaffName"];
- self.lblReceivablesValue.text = [[h objectForKey:@"Receivables"]stringValue];
- self.lblCompleteAmountValue.text = [[h objectForKey:@"ReceiptedAmount"]stringValue];
- if ([h objectForKey:@"RepairDate"] != nil) {
- self.lblRepairDateValue.text = [DateFormat dateFormatSplit:[h objectForKey:@"RepairDate"]] ;
- }else{
- self.lblRepairDateValue.text = @"";
- }
- [self.delayDate setTitle:@"请选择再次安排日期" forState:UIControlStateNormal];
- self.sDelayDate = @"";
-
- if ([self.sReceiptType isEqualToString: @"5"]) {
- [self.receiptType setTitle:@"再次安排" forState:UIControlStateNormal];
-
- }else{
- [self.receiptType setTitle:@"完成" forState:UIControlStateNormal];
- self.sReceiptType = @"1";
- }
-
- if(self.questionDesc==nil||[self.questionDesc isEqualToString:@""]){
- _vQuestionDesc.frame=CGRectMake(0,CGRectGetMaxY(_vRescheduleDate.frame), Screen_Width, 0);
- _vQuestionDesc.hidden=YES;
- _vMiddleSeparator.frame=CGRectMake(0,CGRectGetMaxY(_vRescheduleDate.frame), Screen_Width, 2);
- }
- else
- {
- _vQuestionDesc.hidden=NO;
- NSDictionary *unRepairDict = @{NSFontAttributeName:kTextFont};
- CGRect questionDescFrame = [_questionDesc textRectWithSize:CGSizeMake(Screen_Width-95-15, MAXFLOAT) attributes:unRepairDict];
- questionDescFrame.origin.x =95;
- questionDescFrame.origin.y= 6;
- _lblQuestionDesc.font=kTextFont;
- _lblQuestionDesc.numberOfLines=0;
- _lblQuestionDesc.frame=questionDescFrame;
-
- _vQuestionDesc.frame=CGRectMake(0,CGRectGetMaxY(_vRescheduleDate.frame), Screen_Width,CGRectGetMaxY(_lblQuestionDesc.frame));
- _lblQuestionDesc.text=_questionDesc;
- _lblTitleQuestionDesc.frame=CGRectMake(20, 3,90, 25);
- _lblTitleQuestionDesc.text = @"问题描述:";
- _vMiddleSeparator.frame=CGRectMake(0,CGRectGetMaxY(_vQuestionDesc.frame)+10, Screen_Width, 2);
- }
-
- if (self.lblReceivablesValue.text != nil && [self.lblReceivablesValue.text doubleValue]>0) {
- self.receiptAmount.enabled=YES;
-
- }else{
- self.receiptAmount.enabled=NO;
- }
- self.receiptAmount.text = @"0";
- self.sSettlementType = @"";
-
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
-
-
- }
- if (receiptFlag) {
- self.code.text = @"";
- self.sCode = @"";
- [self clearData];
- [self showAlertViewText:@"该维修单已经回执"];
- return;
- }
-
-
- for (int i=0; i<infoArr.count; i++) {
- NSDictionary *info=infoArr[i];
- NewRepairItemModel * m = [NewRepairItemModel dk_modelWithDictionary:info];
- [self.model.detailsArr addObject:m];
- }
-
- vCustomTableView.hidden=NO;
- _vImage.hidden=NO;
- [self.vCustomTableView reloadData];
-
- }
-
- else {
-
- [self showAlertViewText:message];
-
-
- }
-
-
-
- }
- /**
- 数据加载失败函数回调
- @param sender <#sender description#>
- */
- - (void)onRequestLoadFail:(ASIDownManager *)sender{
- [self cancel];
- [self showAlertViewText:@"网络异常"];
- }
- /**
- 数据加载失败函数回调
- @param sender <#sender description#>
- */
- - (void)onLoadFail:(ASIDownManager *)sender {
- [self cancel];
- [self showAlertViewText:@"网络异常"];
- }
- /**
- 键盘隐藏
- @param cell <#cell description#>
- */
- - (void)keyboardWillHide:(NewRepairDetailListsCell *)cell{
- if (cell.cellIndex == self.model.detailsArr.count-1) {
- [self keyboardWillHide];
- }
- }
- /**
- 键盘弹出
- @param cell <#cell description#>
- */
- - (void)keyboardWillShow:(NewRepairDetailListsCell *)cell{
- if (cell.cellIndex == self.model.detailsArr.count-1) {
- [self keyboardWillShow];
- }
- }
- /**
- 编辑完成
- @param cell <#cell description#>
- */
- - (void)endEdit:(NewRepairDetailListsCell *)cell{
- NewRepairItemModel *m = self.model.detailsArr[self.cellIndex];
- cell.receiptQuantity.text=m.receiptQuantity;
- }
- /**
- 限制用户输入小数点后位数的方法
- @param textField <#textField description#>
- @param range <#range description#>
- @param string <#string description#>
- @return <#return value description#>
- */
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
-
-
- if ([textField.text rangeOfString:@"."].location == NSNotFound) {
- _isHaveDian = NO;
- }
- if ([string length] > 0) {
-
- unichar single = [string characterAtIndex:0];//当前输入的字符
- if ((single >= '0' && single <= '9') || single == '.') {//数据格式正确
-
- //首字母不能为0和小数点
- if([textField.text length] == 0){
- if(single == '.') {
- [self showAlertViewText:@"第一个数字不能为小数点"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
-
- }
- if([textField.text length] == 1 && [[textField.text substringToIndex:1] isEqualToString: @"0"]){
- if(!(single == '.')) {
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
-
- }
-
- //输入的字符是否是小数点
- if (single == '.') {
- if(!_isHaveDian)//text中还没有小数点
- {
- _isHaveDian = YES;
- return YES;
-
- }else{
- [self showAlertViewText:@"您已经输入过小数点了"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }else{
- if (_isHaveDian) {//存在小数点
-
- //判断小数点的位数
- NSRange ran = [textField.text rangeOfString:@"."];
- if (range.location - ran.location <= 6) {
- return YES;
- }else{
- //[self showAlertViewText:@"亲,您最多输入两位小数"];
- return NO;
- }
- }else{
- return YES;
- }
- }
- }else{//输入的数据格式不正确
- [self showAlertViewText:@"您输入的格式不正确"];
- [textField.text stringByReplacingCharactersInRange:range withString:@""];
- return NO;
- }
- }
- else
- {
- return YES;
- }
-
- }
- /**
- 点击位置后回调
- @param name <#name description#>
- */
- - (void)relocationData:(NSString *)name{
- _lblPosition.text=name;
- _positionImage.hidden=NO;
- if (_lblPosition.text.length>0){
- _ivPosition.image = [UIImage imageNamed:@"log_position"];
- _positionHeight=40;
- self.vCustomTableView.frame=CGRectMake(0,CGRectGetMaxY(_vMiddleSeparator.frame), self.view.frame.size.width,[self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame=CGRectMake(0, CGRectGetMaxY(self.vCustomTableView.frame), self.view.frame.size.width,[Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
- _positionImage.frame=CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame)-10, Screen_Width, _positionHeight);
- _vImage.frame=CGRectMake(0,CGRectGetMaxY(_positionImage.frame), Screen_Width,30);
- _contentView.frame=CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize=CGSizeMake(Screen_Width, _contentView.frame.size.height+150);
- }
- }
- /**
- 单据信息中收款方式的回调函数
- @param model <#model description#>
- */
- - (void)showProtocolValue:(SettlementTypeModel *)model{
- self.sSettlementType=model.settlementId;
- self.sSettlementTypeName=model.settlementName;
- self.sExistHandleFee=model.isNotHand;
- self.sEarnestFee=model.handAmount;
- self.sRemarks=model.remark;
- [self.settlementType setTitle:model.settlementName forState:UIControlStateNormal];
- }
- /**
- 详细信息中铺贴方式,回执类型,单据信息中回执类型的回调函数
- @param s <#s description#>
- */
- - (void)showStatusValue:(StatusInfo *)s{
- if (s == nil) {
- return;
- }
- if ([s.tagName isEqualToString: @"PayStyle"]) {
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.cellIndex inSection:0];
- [self.vCustomTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
-
- }
- else if ([s.tagName isEqualToString: @"ReceiptType"]) {
- NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.cellIndex inSection:0];
- [self.vCustomTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
-
- }else{
- self.sReceiptType=s.statusId;
- [self.receiptType setTitle:s.name forState:UIControlStateNormal];
- if (![self.sReceiptType isEqualToString:@"5"]) {
- self.sDelayDate = @"";
- [self.delayDate setTitle:@"请选择再次安排日期" forState:UIControlStateNormal];
- [self.model updateCellInfo:NO];
- }else{
- [self.model updateCellInfo:YES];
- }
- [self.vCustomTableView reloadData];
- }
- }
- /**
- 选中图片回调事件
- @param assets <#assets description#>
- */
- - (void)pickerViewControllerDoneAsstes:(NSArray *)assets{
-
- // __weak typeof(self) weakSelf = self;
- for (int i=(int)self.assets.count-1;i>=0;i-- ) {
- if ([self.assets[i] isKindOfClass:[DKPhotoAssets class]]) {
- [self.assets removeObject:self.assets[i]];
- }
- }
- for (DKPhotoAssets* asset in assets ) {
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- [self.assets addObject:asset];
- }
- }
-
- //self.assets = [NSMutableArray arrayWithArray:assets];
- [self.collectionView reloadData];
- }
- /**
- 详细信息中文本信息编辑
- @param cell <#cell description#>
- @param txtfield <#txtfield description#>
- @param qualityTxt <#qualityTxt description#>
- @param remark <#remark description#>
- */
- - (void)textValueChange:(NewRepairDetailListsCell *)cell txtField:(UITextField *)txtfield qualityField:(UITextField *)qualityTxt remarkField:(UITextField *)remark{
- // NSLog(@"textValueChange......");
- self.cellIndex=cell.cellIndex;
- [self.model updateCellText:txtfield CellIndex:cell.cellIndex qualityField:qualityTxt remarkField:remark];
- }
- /**
- table view分区数
- @param tableView <#tableView description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
- }
- /**
- table view的行数
- @param tableView <#tableView description#>
- @param section <#section description#>
- @return <#return value description#>
- */
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- {
- NSInteger rowcount = [self.model.detailsArr count];
- self.vCustomTableView.frame=CGRectMake(0,CGRectGetMaxY(_vMiddleSeparator.frame), self.view.frame.size.width,[self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame=CGRectMake(0, CGRectGetMaxY(self.vCustomTableView.frame), self.view.frame.size.width,[Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
-
- _positionImage.frame=CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, _positionHeight);
- _vImage.frame=CGRectMake(0,CGRectGetMaxY(_positionImage.frame), Screen_Width,30);
- _contentView.frame=CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize=CGSizeMake(Screen_Width, _contentView.frame.size.height+150);
- return rowcount;
- }
- /**
- table view的高度
- @param tableView <#tableView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- return 260;
- }
- /**
- 获取table view的cell
- @param tableView <#tableView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
-
- static NSString *identifier = @"NewRepairDetailListsCell";
- NewRepairDetailListsCell* cell = [[NewRepairDetailListsCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
- NSUInteger row = [indexPath row];
- cell.delegate=self;
- cell.cellIndex=row;
- [cell parseInfoModel:self.model.detailsArr[row]];
- return cell;
- }
- /**
- collection view的分区数
- @param collectionView <#collectionView description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
- return 1;
- }
- /**
- collection view的项数
- @param collectionView <#collectionView description#>
- @param section <#section description#>
- @return <#return value description#>
- */
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
-
- self.vCustomTableView.frame=CGRectMake(0,CGRectGetMaxY(_vMiddleSeparator.frame), self.view.frame.size.width,[self getDataViewHeight:self.model.detailsArr]);
- _vCollectionView.frame=CGRectMake(0, CGRectGetMaxY(self.vCustomTableView.frame), self.view.frame.size.width,[Util getPhotoCollectionViewHeightWithPhotos:self.assets]);
-
- _positionImage.frame=CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, _positionHeight);
- _vImage.frame=CGRectMake(0,CGRectGetMaxY(_positionImage.frame)+10, Screen_Width,30);
- _contentView.frame=CGRectMake(0, 0, Screen_Width, CGRectGetMaxY(_vImage.frame));
- _scroll.contentSize=CGSizeMake(Screen_Width, _contentView.frame.size.height+150);
-
- return [self.assets count];
- }
- /**
- 获取collection view的cell
- @param collectionView <#collectionView description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
-
- DKUICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"DKUICollectionViewCell" forIndexPath:indexPath];
-
- // 判断类型来获取Image
- DKPhotoAssets *asset = self.assets[indexPath.item];
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- cell.imageView.image = asset.thumbImage;
- }else if ([asset isKindOfClass:[NSString class]]){
- [cell.imageView sd_setImageWithURL:[NSURL URLWithString:(NSString *)asset] placeholderImage:[UIImage imageNamed:@"wallpaper_placeholder"]];
- }else if([asset isKindOfClass:[UIImage class]]){
- cell.imageView.image = (UIImage *)asset;
- }else if ([asset isKindOfClass:[DKCamera class]]){
- cell.imageView.image = [asset thumbImage];
- }
-
- return cell;
-
- }
- /**
- collection view的点击事件
- @param collectionView <#collectionView description#>
- @param indexPath <#indexPath description#>
- */
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
-
- DKUICollectionViewCell *cell = (DKUICollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
- // 图片游览器
- DKPhotoPickerBrowserViewController *pickerBrowser = [[DKPhotoPickerBrowserViewController alloc] init];
- // 传入点击图片View的话,会有微信朋友圈照片的风格
- pickerBrowser.toView = cell.imageView;
- // 数据源/delegate
- pickerBrowser.delegate = self;
- pickerBrowser.dataSource = self;
- // 是否可以删除照片
- pickerBrowser.editing = YES;
- // 当前选中的值
- pickerBrowser.currentIndexPath = [NSIndexPath indexPathForItem:indexPath.row inSection:0];
- // 展示控制器
- [pickerBrowser show];
- }
- /**
- collection view的分区数
- @param pickerBrowser <#pickerBrowser description#>
- @return <#return value description#>
- */
- - (NSInteger)numberOfSectionInPhotosInPickerBrowser:(DKPhotoPickerBrowserViewController *)pickerBrowser{
- return 1;
- }
- /**
- collection view的项数
- @param photoBrowser <#photoBrowser description#>
- @param section <#section description#>
- @return <#return value description#>
- */
- - (NSInteger)photoBrowser:(DKPhotoPickerBrowserViewController *)photoBrowser numberOfItemsInSection:(NSUInteger)section{
- return [self.assets count];
- }
- /**
- 图片放大代理
- @param pickerBrowser <#pickerBrowser description#>
- @param indexPath <#indexPath description#>
- @return <#return value description#>
- */
- - (DKPhotoPickerBrowserPhoto *)photoBrowser:(DKPhotoPickerBrowserViewController *)pickerBrowser photoAtIndexPath:(NSIndexPath *)indexPath{
- id imageObj = [self.assets objectAtIndex:indexPath.item];
- DKPhotoPickerBrowserPhoto *photo = [DKPhotoPickerBrowserPhoto photoAnyImageObjWith:imageObj];
- // 包装下imageObj 成 DKPhotoPickerBrowserPhoto 传给数据源
- DKUICollectionViewCell *cell = (DKUICollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
- // 缩略图
- photo.thumbImage = cell.imageView.image;
- return photo;
- }
- /**
- 删除照片代理
- @param photoBrowser <#photoBrowser description#>
- @param indexPath <#indexPath description#>
- */
- - (void)photoBrowser:(DKPhotoPickerBrowserViewController *)photoBrowser removePhotoAtIndexPath:(NSIndexPath *)indexPath{
- if (indexPath.row > [self.assets count]) return;
- [self.assets removeObjectAtIndex:indexPath.row];
- [self.collectionView reloadData];
- }
- #pragma 私有函数
- /**
- 弹出键盘
- */
- - (void)keyboardWillShow {
-
- if(!_keyboardShow){
- [UIView animateWithDuration:0.3f animations:^ {
- self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y-190, self.view.frame.size.width, self.view.frame.size.height);
-
- }];}
- _keyboardShow=YES;
- }
- /**
- 隐藏键盘
- */
- - (void)keyboardWillHide {
-
- if(_keyboardShow){
- [UIView animateWithDuration:0.1f animations:^ {
- self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y+190, self.view.frame.size.width, self.view.frame.size.height);
-
- }];}
-
- _keyboardShow=NO;
- }
- /**
- 初始化界面
- */
- - (void)initUI{
- _scroll = [UIScrollView new];
- _scroll.frame=self.view.bounds;
- _scroll.tag=1000;
-
- UITapGestureRecognizer* singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKey)];
- singleRecognizer.cancelsTouchesInView = NO;
- [_scroll addGestureRecognizer:singleRecognizer];
- [self.view addSubview:_scroll];
- if(Screen_Height2<=480){
- _scroll.contentSize=CGSizeMake(self.view.frame.size.width, self.view.frame.size.height+80);
- }
- _contentView = [[UIView alloc]init];
- _contentView.frame=CGRectZero;
- _contentView.backgroundColor = [UIColor whiteColor];
- [_scroll addSubview:_contentView];
- //维修单号 —————————
- UIView *vCode = [UIView new];
- vCode.frame=CGRectMake(0, 0, Screen_Width, 51);
- [_contentView addSubview:vCode];
- UILabel *lblCode = [UILabel new];
- lblCode.frame=CGRectMake(20, 16,90, 25);
- lblCode.text = @"维修单号:";
- lblCode.font=kTextFont;
- [vCode addSubview:lblCode];
- self.code = [UITextField new];
- self.code.delegate=self;
- self.code.font= kTextFont;
- self.code.frame=CGRectMake(95, 16, 200, 25);
- [vCode addSubview:self.code];
- UIView *separatorView = [UIView new];
- separatorView.frame=CGRectMake(0,CGRectGetMaxY(vCode.frame), Screen_Width, 5);
- separatorView.backgroundColor=LineBackgroundColor;
- [_contentView addSubview:separatorView];
-
- double wh=((Screen_Width-110));
- //收费金额 —————————
- UIView *vReceivables = [UIView new];
- vReceivables.frame=CGRectMake(0,CGRectGetMaxY(separatorView.frame), Screen_Width, 31);
- [_contentView addSubview:vReceivables];
- UILabel *lblReceivables = [UILabel new];
- lblReceivables.frame=CGRectMake(20, 3,90, 25);
- lblReceivables.font=kTextFont;
- lblReceivables.text = @"收费金额:";
- [vReceivables addSubview:lblReceivables];
- self.lblReceivablesValue = [UILabel new];
- self.lblReceivablesValue.font=kTextFont;
- self.lblReceivablesValue.frame=CGRectMake(95, 3, wh, 25);
- [vReceivables addSubview:self.lblReceivablesValue];
-
- UIView *vReceiptAmount = [UIView new];
- vReceiptAmount.frame=CGRectMake(0,CGRectGetMaxY(vReceivables.frame), Screen_Width, 31);
- [_contentView addSubview:vReceiptAmount];
- UILabel *lblReceiptAmount = [UILabel new];
- lblReceiptAmount.frame=CGRectMake(20, 3, 90, 25);
- lblReceiptAmount.text = @"回执金额:";
- lblReceiptAmount.font=kTextFont;
- [vReceiptAmount addSubview:lblReceiptAmount];
- self.receiptAmount = [UITextField new];
- self.receiptAmount.placeholder = @"请输入回执金额";
- self.receiptAmount.keyboardType= UIKeyboardTypeDecimalPad;
- self.receiptAmount.font= kTextFont;
- self.receiptAmount.delegate=self;
- self.receiptAmount.enabled=NO;
- self.receiptAmount.frame=CGRectMake(95, 3, wh, 25);
- [vReceiptAmount addSubview:self.receiptAmount];
-
- //已回执金额 —————————
- UIView *vCompleteAmount = [UIView new];
- vCompleteAmount.frame=CGRectMake(0,CGRectGetMaxY(vReceiptAmount.frame), Screen_Width, 31);
- [_contentView addSubview:vCompleteAmount];
- UILabel *lblCompleteAmount = [UILabel new];
- lblCompleteAmount.frame=CGRectMake(20, 3,90, 25);
- lblCompleteAmount.text = @"已回执金额:";
- lblCompleteAmount.font=kTextFont;
- [vCompleteAmount addSubview:lblCompleteAmount];
- self.lblCompleteAmountValue = [UILabel new];
- self.lblCompleteAmountValue.frame=CGRectMake(108, 3, wh, 25);
- self.lblCompleteAmountValue.font=kTextFont;
- [vCompleteAmount addSubview:self.lblCompleteAmountValue];
-
- //回执类型--------------
- UIView *vReceiptType = [UIView new];
- vReceiptType.frame=CGRectMake(0,CGRectGetMaxY(vCompleteAmount.frame), Screen_Width, 31);
- [_contentView addSubview:vReceiptType];
- UILabel *lblType = [UILabel new];
- lblType.frame=CGRectMake(20, 3,90, 25);
- lblType.text = @"回执类型:";
- lblType.font=kTextFont;
- [vReceiptType addSubview:lblType];
- self.receiptType = [UIButton buttonWithType:UIButtonTypeCustom];
- self.receiptType.frame=CGRectMake(95, 3, wh, 25);
- self.receiptType.titleLabel.font= kTextFont;
- [self.receiptType setTitle:@"请选择回执类型" forState:UIControlStateNormal];
- self.receiptType.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.receiptType setTitleColor:[UIColor colorWithWhite:0 alpha:1] forState:UIControlStateNormal];
- [self.receiptType addTarget:self action:@selector(btnTypeCilck) forControlEvents:UIControlEventTouchUpInside];
- [vReceiptType addSubview:self.receiptType];
-
- UIButton *btnReceiptTypeArrow = [UIButton buttonWithType:UIButtonTypeCustom];
- btnReceiptTypeArrow.frame=CGRectMake(Screen_Width-17,10,7,12);
- [btnReceiptTypeArrow setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [vReceiptType addSubview:btnReceiptTypeArrow];
-
- //收款方式--------------
- UIView *vSettlementType = [UIView new];
- vSettlementType.frame=CGRectMake(0,CGRectGetMaxY(vReceiptType.frame), Screen_Width, 31);
- [_contentView addSubview:vSettlementType];
- UILabel *lblSettlementType = [UILabel new];
- lblSettlementType.frame=CGRectMake(20, 3,90, 25);
- lblSettlementType.text = @"收款方式:";
- lblSettlementType.font=kTextFont;
- [vSettlementType addSubview:lblSettlementType];
- self.settlementType = [UIButton buttonWithType:UIButtonTypeCustom];
- self.settlementType.frame=CGRectMake(95, 3, wh, 25);
- self.settlementType.titleLabel.font= kTextFont;
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
- self.settlementType.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.settlementType setTitleColor:LabelGrayTextColor forState:UIControlStateNormal];
- [self.settlementType addTarget:self action:@selector(settlementTypeCilck) forControlEvents:UIControlEventTouchUpInside];
- [vSettlementType addSubview:self.settlementType];
-
- UIButton *btnSettlementTypeArrow = [UIButton buttonWithType:UIButtonTypeCustom];
- btnSettlementTypeArrow.frame=CGRectMake(Screen_Width-17,10,7,12);
-
- [btnSettlementTypeArrow setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [vSettlementType addSubview:btnSettlementTypeArrow];
-
- UIView *vStaffName = [UIView new];
- vStaffName.frame=CGRectMake(0,CGRectGetMaxY(vSettlementType.frame), Screen_Width, 31);
- [_contentView addSubview:vStaffName];
- UILabel *lblStaffName = [UILabel new];
- lblStaffName.frame=CGRectMake(20, 3,90, 25);
- lblStaffName.text = @"客服人员:";
- lblStaffName.font=kTextFont;
- [vStaffName addSubview:lblStaffName];
-
- self.lblStaffNameValue = [UILabel new];
- self.lblStaffNameValue.font=kTextFont;
- self.lblStaffNameValue.frame=CGRectMake(95, 3, wh, 25);
- [vStaffName addSubview:self.lblStaffNameValue];
-
- //维修日期 —————————
- UIView *vRepairDate = [UIView new];
- vRepairDate.frame=CGRectMake(0,CGRectGetMaxY(vStaffName.frame), Screen_Width, 31);
- [_contentView addSubview:vRepairDate];
- UILabel *lblRepairDate = [UILabel new];
- lblRepairDate.frame=CGRectMake(20, 3,90, 25);
- lblRepairDate.text = @"维修日期:";
- lblRepairDate.font=kTextFont;
- [vRepairDate addSubview:lblRepairDate];
- self.lblRepairDateValue = [UILabel new];
- self.lblRepairDateValue.font=kTextFont;
- self.lblRepairDateValue.frame=CGRectMake(95, 3, wh, 25);
- [vRepairDate addSubview:self.lblRepairDateValue];
-
- //start日期--------------
- _vRescheduleDate = [UIView new];
- _vRescheduleDate.frame=CGRectMake(0,CGRectGetMaxY(vRepairDate.frame), Screen_Width, 31);
- [_contentView addSubview:_vRescheduleDate];
- UILabel *lblRescheduleDate = [UILabel new];
- lblRescheduleDate.frame=CGRectMake(20, 3,120, 25);
- lblRescheduleDate.text = @"再次安排日期:";
- lblRescheduleDate.font=kTextFont;
- [_vRescheduleDate addSubview:lblRescheduleDate];
- self.delayDate = [UIButton buttonWithType:UIButtonTypeCustom];
- self.delayDate.frame=CGRectMake(120, 3, wh, 25);
- self.delayDate.titleLabel.font=kTextFont;
- self.delayDate.tag=1002;
- [self.delayDate setTitle:@"请选择再次安排日期" forState:UIControlStateNormal];
- self.delayDate.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft;
- [self.delayDate setTitleColor:LabelGrayTextColor forState:UIControlStateNormal];
- [self.delayDate addTarget:self action:@selector(btnDateCilck:) forControlEvents:UIControlEventTouchUpInside];
- [_vRescheduleDate addSubview:self.delayDate];
-
- UIButton *btnRescheduleDateArrow = [UIButton buttonWithType:UIButtonTypeCustom];
- btnRescheduleDateArrow.frame=CGRectMake(Screen_Width-17,10,7,12);
- btnRescheduleDateArrow.tag=1003;
- [ btnRescheduleDateArrow setImage:[UIImage imageNamed:@"rightarrow"] forState:UIControlStateNormal];
- [_vRescheduleDate addSubview:btnRescheduleDateArrow];
-
- _vQuestionDesc = [UIView new];
- _vQuestionDesc.frame=CGRectMake(0,CGRectGetMaxY(_vRescheduleDate.frame), Screen_Width,0);
- [_contentView addSubview:_vQuestionDesc];
- _lblTitleQuestionDesc = [UILabel new];
- _lblTitleQuestionDesc.frame=CGRectZero;
- _lblTitleQuestionDesc.font=kTextFont;
- [_vQuestionDesc addSubview:_lblTitleQuestionDesc];
-
- _lblQuestionDesc = [UILabel new];
- _lblQuestionDesc.frame=CGRectZero;
- _lblQuestionDesc.numberOfLines=0;
-
-
- [_vQuestionDesc addSubview:_lblQuestionDesc];
- [_contentView addSubview:_vQuestionDesc];
-
- _vMiddleSeparator = [UIView new];
- _vMiddleSeparator.frame=CGRectMake(0,CGRectGetMaxY(_vQuestionDesc.frame), Screen_Width, 2);
- _vMiddleSeparator.backgroundColor=LineBackgroundColor;
- [_contentView addSubview:_vMiddleSeparator];
-
- vCustomTableView = [[UITableView alloc] initWithFrame:CGRectMake(0,CGRectGetMaxY(_vMiddleSeparator.frame), self.view.frame.size.width, 0)];
- vCustomTableView.separatorStyle=UITableViewCellSeparatorStyleNone;
- vCustomTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
- vCustomTableView.delegate = self;
- vCustomTableView.dataSource = self;
- [_contentView addSubview:vCustomTableView];
- vCustomTableView.hidden=YES;
-
- _vCollectionView = [UIView new];
- _vCollectionView.frame=CGRectMake(0,CGRectGetMaxY(vCustomTableView.frame), Screen_Width, 0);
- [_contentView addSubview:_vCollectionView];
- [self setupCollectionView];
-
- ////////位置view
- _positionImage = [UIView new];
- _positionImage.frame=CGRectMake(0,CGRectGetMaxY(_vCollectionView.frame), Screen_Width, 0);
- [_contentView addSubview:_positionImage];
- //星号
- _ivPosition = [UIImageView new];
- _ivPosition.frame=CGRectMake(12,20,9,12);
- [_positionImage addSubview:_ivPosition];
-
- _lblPosition = [UILabel new];
- _lblPosition.font=kTextFont;
- _lblPosition.frame=CGRectMake(CGRectGetMaxX(_ivPosition.frame)+3, 16,Screen_Width-24, 20);
- [_positionImage addSubview:_lblPosition];
-
- //照相和相册 —————————
- _vImage = [UIView new];
- _vImage.frame=CGRectMake(0,CGRectGetMaxY(_positionImage.frame), Screen_Width, 0);
- [_contentView addSubview:_vImage];
-
- CGFloat width = (SCREENWIDTH-70)/2;
- CustomButton *btnPhoto = [[CustomButton alloc]initWithFrame:CGRectMake(width-90, 0, 70, 20) andImage:[UIImage imageNamed:@"icon_takephoto"] addText:@"照相" addImageWidth:15 addImageHeight:12];
- [btnPhoto addTarget:self action:@selector(selectCamera) forControlEvents:(UIControlEventTouchUpInside)];
- [_vImage addSubview:btnPhoto];
-
- CustomButton *btn = [[CustomButton alloc]initWithFrame:CGRectMake(width, 0,70 , 20) andImage:[UIImage imageNamed:@"icon_photo"] addText:@"相册" addImageWidth:14 addImageHeight:15];
- [btn addTarget:self action:@selector(selectPhotos) forControlEvents:(UIControlEventTouchUpInside)];
-
- [_vImage addSubview:btn];
-
- CustomButton *btnLoaction = [[CustomButton alloc]initWithFrame:CGRectMake(width+85, 0,100 , 20) andImage:[UIImage imageNamed:@"icon_position"] addText:@"所在位置" addImageWidth:13 addImageHeight:16];
- [btnLoaction addTarget:self action:@selector(newMap) forControlEvents:(UIControlEventTouchUpInside)];
- [_vImage addSubview:btnLoaction];
- _vImage.hidden=YES;
-
- //保存按钮
- UIImage *pic = [UIImage imageNamed:@"bt_datasave"];
- CGFloat h = (Screen_Width-40)*pic.size.height/pic.size.width;
- _saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _saveBtn.frame=CGRectMake(20, Screen_Height- h - 5 - rectStatusHeight-10-rectNavHeight, Screen_Width-40,h) ;
- [_saveBtn setBackgroundImage:pic forState:UIControlStateNormal];
- [_saveBtn addTarget:self action:@selector(saveData) forControlEvents:UIControlEventTouchUpInside];
- [self.view addSubview:_saveBtn];
-
- }
- /**
- 加载维修回执数据
- */
- - (void)loadData{
- [self startLoading];
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary new];
- [dict setObject:@"GetRepairForNewReceiptIphone" forKey:@"Action"];
- [dict setObject:kkAccountCode forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [dict setObject:self.code.text forKey:@"RepairNo"];
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate=self;
- self.mDownManager.onRequestSuccess=@selector(onRequestLoadSuccess:);
- self.mDownManager.onRequestFail=@selector(onRequestLoadFail:);
- [_mDownManager postHttpRequest:urlStr dic:dict path:nil fileName:nil];
- }
- /**
- 保存图片至沙盒
- @param currentImage <#currentImage description#>
- @param imageName <#imageName description#>
- @return <#return value description#>
- */
- - (DKCamera *) saveImage:(UIImage *)currentImage withName:(NSString *)imageName
- {
- if (!currentImage) {
- return nil;
- }
-
- NSDateFormatter *formater = [[NSDateFormatter alloc] init];
- formater.dateFormat = @"yyyyMMddHHmmss";
- NSString *currentTimeStr = [[formater stringFromDate:[NSDate date]] stringByAppendingFormat:@"_%d_.jpg" ,arc4random_uniform(10000)];
-
- NSData *imageData= [LeslieAsyncImageDownloader resetSizeOfImageData:currentImage maxSize:500];
- // 获取沙盒目录
- NSString *fullPath ;
- if([imageName isEqualToString:@""] || imageName == nil){
- fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:currentTimeStr];
- }
- else{
- fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:imageName];
- }
-
- // 将图片写入文件
- [imageData writeToFile:fullPath atomically:NO];
-
- UIImage *savedImage = [[UIImage alloc] initWithContentsOfFile:fullPath];
- DKCamera *camera = [[DKCamera alloc] init];
- camera.imagePath = fullPath;
- camera.thumbImage =savedImage;// [UIImage imageWithData:data];
- return camera;
- }
- /**
- 保存图片
- @return <#return value description#>
- */
- - (BOOL)savePicsManager{
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate=self;
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"SaveImg" forKey:@"Action"];
- [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [self.imagePaths removeAllObjects];
-
- for (int i=0; i<self.assets.count; i++) {
- // 判断类型来获取Image
- DKPhotoAssets *asset = self.assets[i];
- DKCamera * c;
- if ([asset isKindOfClass:[DKPhotoAssets class]]) {
- c = [self saveImage:asset.originImage withName:nil];
-
- }else if ([asset isKindOfClass:[NSString class]]){
-
- }else if([asset isKindOfClass:[UIImage class]]){
-
- }else if ([asset isKindOfClass:[DKCamera class]]){
- c=(DKCamera *)asset;
- c= [self saveImage:c.thumbImage withName:nil];
- }
-
- //延时
- [NSThread sleepForTimeInterval:0.5];
-
- NSString* retValue= [_mDownManager syncPostHttpRequestUrl:urlStr dic:dict path:c.imagePath filename:nil fileType:@"image/jpeg"];
- if (retValue == nil || retValue.length == 0){
- [self cancel];
- [self showAlertViewText:@"上传图片失败"];
- self.navigationItem.rightBarButtonItem.enabled=YES;
- return NO;
- }
- NSDictionary *dicRetValue = [retValue JSONValue];
- if (dicRetValue && [dicRetValue isKindOfClass:[NSDictionary class]]) {
- int iStatus = [[dicRetValue objectForKey:@"Status"] intValue];
- if (iStatus == 0) {
- NSString * imgPath = [dicRetValue objectForKey:@"Result"];
- [self.imagePaths addObject:imgPath];
-
- }
- }
-
- }
-
-
- return YES;
-
- }
- /**
- 保存数据
- */
- - (void)saveDataManager{
- self.mDownManager = [[ASIDownManager alloc] init];
- self.mDownManager.delegate=self;
- self.mDownManager.onRequestSuccess = @selector(onLoadFinish:);
- self.mDownManager.onRequestFail = @selector(onLoadFail:);
- NSString *urlStr = ServerURL;
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"SaveRepairReceiptIphone" forKey:@"Action"];
- [dict setObject:[NSString stringWithFormat:@"%@",kkAccountCode]forKey:@"AccountCode"];
- [dict setObject:kkUserCode forKey:@"UserCode"];
- [dict setObject:kkUserPwd forKey:@"UserPassword"];
- [dict setObject:kkSessionKey forKey:@"SessionKey"];
- [dict setObject:kkLicenseCode forKey:@"LicenseCode"];
- [dict setObject:self.repairId forKey:@"RepairID"];
- [dict setObject:self.arrangementId forKey:@"ArrangementID"];
- if (_lblPosition.text == nil) {
- [dict setObject:@"" forKey:@"Position"];
- }else{
- [dict setObject:_lblPosition.text forKey:@"Position"];
- }
-
- ///////主界面
- NSMutableDictionary *dicHead = [[NSMutableDictionary alloc] init];
- NSMutableArray* arrHead = [[NSMutableArray alloc]init];
- [dicHead setObject:self.sReceiptType forKeyedSubscript:@"ReceiptType"];
- [dicHead setObject:self.sDelayDate forKeyedSubscript:@"NextRepairDate"];
- [dicHead setObject:self.repairId forKeyedSubscript:@"RepairID"];
- [dicHead setObject:self.sCode forKey:@"RepairNo"];
- [dicHead setObject:self.customerId forKeyedSubscript:@"CustomerID"];
- [dicHead setObject:self.receiptAmount.text forKeyedSubscript:@"ReceivableSum"];
- [dicHead setObject:self.organizationId forKeyedSubscript:@"BusinessOrganization"];
- [dicHead setObject:self.salesman forKeyedSubscript:@"SalesMan"];
- [dicHead setObject:0 forKeyedSubscript:@"CreateUserID"];
- [arrHead addObject:dicHead];
- [dict setObject:[Util objectToJson:arrHead] forKey:@"ReceiptData"];
-
- NSMutableDictionary *dicDetails;
- NSMutableArray* arrDetails = [[NSMutableArray alloc]init];
- for (NewRepairItemModel* m in self.model.detailsArr) {
- dicDetails = [[NSMutableDictionary alloc] init];
- [dicDetails setObject:m.detailId forKeyedSubscript:@"RepairDetailID"];
- [dicDetails setObject:m.repairQuantity forKeyedSubscript:@"RepairQuantity"];
- [dicDetails setObject:m.receiptQuantity forKeyedSubscript:@"ReceiptQuantity"];
- [dicDetails setObject:m.completeQuantity forKeyedSubscript:@"FinishQuantity"];
- if(m.remarks == nil){
- [dicDetails setObject:@"" forKeyedSubscript:@"ReceiptRemarks"];
- }else{
- [dicDetails setObject:m.remarks forKeyedSubscript:@"ReceiptRemarks"];
- }
-
- [arrDetails addObject:dicDetails];
- }
-
- [dict setObject:[Util objectToJson:arrDetails] forKey:@"ReceiptDetailData"];
-
- //////付款方式
- NSMutableDictionary *dicSettle = [[NSMutableDictionary alloc] init];
- NSMutableArray* arrSettle = [[NSMutableArray alloc]init];
- if (self.sSettlementType == nil || [self.sSettlementType isEqual:@""]) {
- [dict setObject:@"" forKey:@"ReceiptEarnestData"];
- }else{
- [dicSettle setObject:self.sSettlementType forKeyedSubscript:@"SettlementType"];
- [dicSettle setObject:self.sSettlementTypeName forKeyedSubscript:@"SettlementTypeName"];
- [dicSettle setObject:self.receiptAmount.text forKeyedSubscript:@"ReceivableSum"];
- [dicSettle setObject:self.sEarnestFee forKeyedSubscript:@"EarnestFee"];
- [dicSettle setObject:self.sExistHandleFee forKeyedSubscript:@"ExistsHandlingFee"];
- [dicSettle setObject:self.sRemarks forKeyedSubscript:@"Remarks"];
- [arrSettle addObject:dicSettle];
- [dict setObject:[Util objectToJson:arrSettle] forKey:@"ReceiptEarnestData"];
- }
-
- if (self.imagePaths && self.imagePaths.count>0) {
- [dict setObject:[self.imagePaths componentsJoinedByString:@"," ] forKey:@"ImagePath"];
- }
-
- [self.mDownManager postHttpRequest:urlStr dic:dict files:nil];
- }
- /**
- 加载结束 隐藏进度条
- */
- - (void)cancel {
- [self stopLoading];
- }
- /**
- 返回
- */
- - (void)goBack
- {
- [self.navigationController popViewControllerAnimated:YES];
- if([self.refreshDelegate respondsToSelector:@selector(refreshFollowUpData)]){
- [self.refreshDelegate refreshFollowUpData];
- }
- }
- /**
- 保存数据前的校验
- @return <#return value description#>
- */
- - (BOOL)check{
- if(self.code.text == nil||[self.code.text isEqualToString:@""]){
- [self showAlertViewText:@"请输入或扫描单号"];
- return NO;
- }
- if(self.sCode == nil || [self.sCode isEqualToString:@""] )
- {
- [self showAlertViewText:@"请按回车加载数据!"];
- return NO;
- }
-
- if(self.lblReceivablesValue != nil && [self.lblReceivablesValue.text doubleValue]>0&& self.receiptAmount.text.length == 0)
- {
- [self showAlertViewText:@"请输入回执金额"];
- return NO;
- }
-
- if(self.receiptAmount.text != nil||![self.receiptAmount.text isEqualToString:@""]){
- RegularExpression *re = [[RegularExpression alloc]init];
- bool isMatchDiscount= [re AmountRegular:self.receiptAmount.text];
- if(isMatchDiscount == NO){
- [self showAlertViewText:@"请输入正确的数"];
- self.receiptAmount.text = nil;
- self.receiptAmount.placeholder = @"请输入回执金额";
- return NO;
- }
- }
-
-
- if(self.lblReceivablesValue != nil && [self.lblReceivablesValue.text doubleValue]>0
- && self.receiptAmount.text.length != 0 &&[self.lblReceivablesValue.text doubleValue]<[self.receiptAmount.text doubleValue])
- {
- [self showAlertViewText:@"回执金额不能大于应收金额"];
- return NO;
- }
-
- if([self.sReceiptType isEqualToString:@"5"] && (self.sDelayDate == nil||[self.sDelayDate isEqualToString:@""]))
- {
- [self showAlertViewText:@"请选择再次安排日期"];
- return NO;
- }
-
- for (NewRepairItemModel *m in self.model.detailsArr) {
- if(m.receiptQuantity == nil || m.receiptQuantity.length == 0)
- {
- [self showAlertViewText:@"请输入回执数量"];
- return NO;
- }
- if(m.completeQuantity == nil || m.completeQuantity.length == 0)
- {
- m.completeQuantity = @"0";
- }
- if(m.repairQuantity == nil || m.repairQuantity.length == 0)
- {
- m.receiptQuantity = @"0";
- }
- if([self.sReceiptType isEqualToString:@"1"]){
-
- if([m.receiptQuantity doubleValue]<=0 &&[m.repairQuantity doubleValue]-[m.completeQuantity doubleValue] != 0)
- {
- [self showAlertViewText:@"回执数量必须大于0"];
- return NO;
- }
-
- }
- if([m.receiptQuantity doubleValue]>[MAX_COUNT doubleValue])
- {
- [self showAlertViewText:[NSString stringWithFormat:@"回执数量的最大值为%@",MAX_COUNT ]];
- return NO;
- }
-
- if([m.receiptQuantity doubleValue]>[m.repairQuantity doubleValue]-[m.completeQuantity doubleValue])
- {
- [self showAlertViewText:@"回执数量不能大于维修数量减去完成数量"];
- return NO;
- }
-
-
- }
-
- return YES;
- }
- /**
- 保存数据
- */
- - (void)saveData{
- [self.view endEditing:YES];
-
- if (![self check]) {
-
- return;
- }
- self.navigationItem.rightBarButtonItem.enabled=NO;
- [self startLoading];
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
- if ([self savePicsManager]) {
- [self saveDataManager];
- }
- });
- }
- /**
- 单据收款方式的画面跳转
- */
- - (void)settlementTypeCilck{
- if (self.sCode == nil || self.sCode.length == 0 |
- self.lblReceivablesValue.text == nil || [self.lblReceivablesValue.text doubleValue] == 0) {
- return;
- }
- [self.view endEditing:YES];
- self.hidesBottomBarWhenPushed=YES;
- SettlementTypeVC *tc = [[SettlementTypeVC alloc] init];
- tc.sDelegate=self;
- [self.navigationController pushViewController:tc animated:YES];
- self.hidesBottomBarWhenPushed=NO;
- }
- /**
- 单据回执类型的画面跳转
- */
- - (void)btnTypeCilck{
- if (self.sCode == nil || self.sCode.length == 0) {
- return;
- }
- [self.view endEditing:YES];
- self.hidesBottomBarWhenPushed=YES;
- StatusInfoTextVC *tc = [[StatusInfoTextVC alloc] init];
- tc.sdelegate=self;
- [tc.arrFilter addObjectsFromArray: _arrayStatus];
- [self.navigationController pushViewController:tc animated:YES];
- self.hidesBottomBarWhenPushed=NO;
-
- }
- /**
- 清空画面
- */
- - (void)clearData{
- self.code.enabled=YES;
- self.code.text = @"";
- self.sCode = @"";
- self.receiptAmount.text = @"";
- self.lblStaffNameValue.text = @"";
- self.lblCompleteAmountValue.text = @"";
- self.lblReceivablesValue.text = @"";
- self.lblRepairDateValue.text = @"";
- self.sDelayDate = @"";
- [self.delayDate setTitle:@"请选择再次安排日期" forState:UIControlStateNormal];
- self.sReceiptType = @"";
- [self.receiptType setTitle:@"请选择回执类型" forState:UIControlStateNormal];
- self.sSettlementType = @"";
- [self.settlementType setTitle:@"请选择收款方式" forState:UIControlStateNormal];
- _lblPosition.text = @"";
- _positionImage.hidden=YES;
- _vImage.hidden=YES;
- _positionHeight=0;
- [self.model.detailsArr removeAllObjects];
- [self.assets removeAllObjects];
- [self.vCustomTableView reloadData];
- [self.collectionView reloadData];
- }
- /**
- 清空单个控件数据
- @param sender <#sender description#>
- */
- - (void)clearData:(id)sender{
- UIButton *btn=sender;
- [self.view endEditing:YES];
- switch (btn.tag) {
- case 1001:
- {
- self.code.text = @"";
- }
- break;
-
- case 1003:
- {
- self.sDelayDate = @"";
-
- [self.delayDate setTitle:@"请选择再次安排日期" forState:UIControlStateNormal];
- }
- break;
-
-
- default:
- break;
- }
-
-
- }
- /**
- 时间事件
- @param sender <#sender description#>
- */
- - (void)btnDateCilck:(id)sender{
- UIButton *btn=sender;
- [self.view endEditing:YES];
- if (self.sCode == nil || self.sCode.length == 0 || ![self.sReceiptType isEqualToString: @"5"]) {
- return;
- }
- __weak typeof(self) weakself=self;
- switch (btn.tag) {
- case 1002:
- {
- _dealDatePicker = [BRDatePickerView PickerAlertWithTitle:@""];
- [_dealDatePicker configureSelectionBlock:^(NSString *date){
- self.sDelayDate=date;
- } andCompletionBlock:^(void){
- [weakself.delayDate setTitle:self.sDelayDate forState:UIControlStateNormal];
- } andCancelBlock:^(void){
- self.sDelayDate=weakself.delayDate.titleLabel.text;
- if([self.sDelayDate isEqualToString:@"请选择再次安排日期"]){
- self.sDelayDate = @"";
- }
- }];
- [_dealDatePicker show];
- }
- break;
- default:
- break;
- }
-
- }
- /**
- 隐藏键盘
- */
- - (void)hideKey
- {
- [self.view endEditing:YES];
- }
- /**
- 文本框的长度限制 实现监听方法
- @param sender <#sender description#>
- */
- - (void)onFocusPeopleEditingChanged:(NSNotification *)sender
- {
-
- UITextField *textField = (UITextField *)sender.object;
- NSString *toBeString = textField.text;
- NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
- int kMaxLength=0;
- //费用
- if ([textField isEqual:self.receiptAmount ]) {
- kMaxLength=17;
-
- if (toBeString != nil && toBeString.length>0 && [toBeString floatValue]-MAXIMUM_QUANTITY>0.0000000001f) {
- textField.text = MAX_COUNT;
- toBeString = MAX_COUNT;
- }
- }
-
- if ([lang isEqualToString:@"zh-Hans"]) {
- UITextRange *selectedRange = [textField markedTextRange];
- UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
-
- if (!position) {
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }else{
- if (toBeString.length > kMaxLength) {
- textField.text = [toBeString substringToIndex:kMaxLength];
- }
- }
- }
- /**
- 加载条码数据接口
- @param code <#code description#>
- */
- - (void)reloadDataWithOnlyCode:(NSString *)code
- {
- self.code.text=code;
- self.sCode=code;
- self.receiptAmount.enabled=YES;
- double delayInSeconds = 0.5;
- dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
- dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
- [self loadData];
- });
- }
- /**
- 获取图片总数
- @return <#return value description#>
- */
- - (NSInteger)cameraCount{
- NSInteger count=0;
- for (int i=0; i<self.assets.count; i++) {
- id asset=self.assets[i];
- if ([asset isKindOfClass:[DKCamera class]]) {
- count++;
- }
- }
- return count;
- }
- /**
- 选择照相机函数
- */
- - (void)selectCamera{
- DKCameraViewController *cameraVc = [[DKCameraViewController alloc] init];
- __weak typeof(self) weakSelf = self;
- // 多选相册+相机多拍 回调
- [cameraVc startCameraOrPhotoFileWithViewController:self complate:^(NSArray *object) {
- // 选择完照片、拍照完回调
- [object enumerateObjectsUsingBlock:^(id asset, NSUInteger idx, BOOL *stop) {
- if(weakSelf.assets.count<9){
- if ([asset isKindOfClass:[DKCamera class]]) {
- [weakSelf.assets addObject:asset];
- }else{
- [weakSelf.assets addObject:asset];
- }
-
- }else{
- [self showAlertViewText:@"最多只能选择9张图片"];
- }
-
- }];
- [weakSelf.collectionView reloadData];
- }];
-
- }
- /**
- 选择相册函数
- */
- - (void)selectPhotos {
- // 创建控制器
- DKPhotoPickerViewController *pickerVc = [[DKPhotoPickerViewController alloc] init];
- // 默认显示相册里面的内容SavePhotos
- pickerVc.status = PickerViewShowStatusCameraRoll;
- pickerVc.selectPickers = self.assets;
- // 最多能选9张图片
- pickerVc.minCount = 9;
- pickerVc.cameraCount = [self cameraCount];
- pickerVc.delegate = self;
- [pickerVc show];
- }
- /**
- 获取table view的高度
- @param soundArray <#soundArray description#>
- @return <#return value description#>
- */
- - (CGFloat)getDataViewHeight:(NSArray *)soundArray {
- // 上下间隔已经在frame上做了
- NSInteger row = soundArray.count;
- return (row *270);
- }
- /**
- 获取地图位置
- 关宏厚删除高德地图
- 2018-11-14
- */
- - (void)newMap{
- // self.hidesBottomBarWhenPushed=YES;
- // MapViewController *mc = [[MapViewController alloc]init];
- // mc.pDelegate = self;
- //[self.navigationController pushViewController:mc animated:YES];
- }
- @end
|