// // MyTDTopicCreateVC.m // smartRhino // // Created by niuzhen on 2019/12/20. // Copyright © 2019 tederen. All rights reserved. // #import "MyTDTopicCreateVC.h" #import "LYLPhotoTailoringTool.h" #import "FWZFileGetTool.h" #import "FWZGetNoteBookTool.h" #import "RichTextEditViewController.h" #import "AddLookUpUserSecondVC.h" #import "MyTDTopicSelectExtentVC.h" #import "FecordJoinWorkFlowListController.h" #import "_NoInputAccessoryView.h" #import "SelectSaveVC.h" #import "ShowBtn.h" #import "HomeDetailController.h" #import "ChatMsgNoticeDetailVC.h" #import "NoteBookDetailVC.h" #import "MyFavoriteVC.h" #import "NoteBookVC.h" #import "TDInterLeterDetailVC.h" #import "FileOpenViewController.h" #import "EMChatFileShowVC.h" #import "NoticeUnreadVC.h" #import "TDGroupInfoListVC.h" #import "DownFileViewController.h" #import "CountDataVC.h" #import "WorkFlowDetailsController.h" #import "MyTDGroupViewController.h" #import "MoveViewController.h" #import "ShowKeepNoticeAlert.h" #import "YCMenuView.h" #import "MyApprovalPageDetail.h" #import "OtherNoteBookVC.h" #import "OtherFavoriteVC.h" #import "TopicShowListView.h" #import "MyTDTopicBookVC.h" #import #import "GroupShowListView.h" #import "BookWCDetailVC.h" #import "BookListenVC.h" @interface MyTDTopicCreateVC () @property (weak, nonatomic) IBOutlet UIView *NavBarV; @property (weak, nonatomic) IBOutlet UIButton *DoneBtn; @property (nonatomic,strong) WKWebView *webView; @property (weak, nonatomic) IBOutlet UILabel *TitleL; @property (nonatomic,assign) CGFloat keyBoardH; @property (nonatomic,assign) BOOL isShoujianren; @property (nonatomic,assign) BOOL isChaosongren; @property (nonatomic,assign) BOOL isNull; @property (nonatomic,assign) NSInteger meetingId; @property (nonatomic,assign) NSInteger shouType; @property (nonatomic,strong) NSMutableArray *chaoShongArray; @property (nonatomic,strong) NSMutableArray *shouJianArray; @property (nonatomic,strong) NSMutableArray * MeetingArray; @property (strong, nonatomic) ShowBtn * titleBtn; @property (strong, nonatomic) TopicShowListView * menuListView; @property (assign, nonatomic) BOOL menuIsShow; @property (strong, nonatomic) GroupShowListView * GroupListView; @property (assign, nonatomic) BOOL GroupIsShow; @property (copy, nonatomic) NSDictionary * H5JsonDict; @end @implementation MyTDTopicCreateVC + (MyTDTopicCreateVC *)initMyTDTopicCreateVC{ MyTDTopicCreateVC *controller = [StoryboardManager.shared.myTDTopicExtent instantiateViewControllerWithIdentifier:@"MyTDTopicCreateVC"]; return controller; } - (TopicShowListView *)menuListView { if (!_menuListView) { _menuListView = [TopicShowListView share:self.NavBarV]; } return _menuListView; } - (GroupShowListView *)GroupListView { if (!_GroupListView) { _GroupListView = [GroupShowListView share:self.NavBarV]; } return _GroupListView; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [self.titleBtn dismiss]; self.menuIsShow = NO; [self.menuListView dismiss]; self.GroupIsShow = NO; [self.GroupListView dismiss]; } - (ShowBtn *)titleBtn { if (!_titleBtn) { _titleBtn = [[ShowBtn alloc] init]; } return _titleBtn; } - (void)setShowTopicData { WS(weakSelf); [self.titleBtn setAction:^{ weakSelf.menuIsShow = !weakSelf.menuIsShow; if (weakSelf.menuIsShow) { [weakSelf.menuListView show]; [weakSelf.titleBtn show]; weakSelf.menuListView.ClickRowBlock = ^(BOOL isPush, NSInteger Id, NSString * _Nonnull Name) { [weakSelf.titleBtn dismiss]; [weakSelf.menuListView dismiss]; if (isPush) { MyTDTopicBookVC * vc = [MyTDTopicBookVC initMyTDTopicBookVC]; vc.isSelect = YES; [weakSelf.navigationController pushViewController:vc animated:YES]; }else{ weakSelf.FolderId = Id; weakSelf.FolderName = Name; [weakSelf setSelectTopicBook:Name]; } }; weakSelf.menuListView.dismissBlock = ^{ [weakSelf.titleBtn dismiss]; }; }else{ [weakSelf.titleBtn dismiss]; [weakSelf.menuListView dismiss]; } }]; } - (void)setShowGroupData { self.GroupIsShow = NO; WS(weakSelf); [self.titleBtn setAction:^{ if (!weakSelf.GroupIsShow) { [weakSelf.GroupListView show]; [weakSelf.titleBtn show]; weakSelf.GroupListView.ClickRowBlock = ^(BOOL isPush, NSInteger Id, NSString * _Nonnull Name) { [weakSelf.titleBtn dismiss]; [weakSelf.GroupListView dismiss]; if (isPush) { MyTDGroupViewController * vc = [[MyTDGroupViewController alloc] init]; vc.isSelect = YES; [weakSelf.navigationController pushViewController:vc animated:YES]; }else{ weakSelf.FolderId = Id; weakSelf.FolderName = Name; [weakSelf setSelectTopicBook:Name]; } }; weakSelf.GroupListView.dismissBlock = ^{ [weakSelf.titleBtn dismiss]; }; weakSelf.GroupIsShow = YES; }else{ weakSelf.GroupIsShow = NO; [weakSelf.titleBtn dismiss]; [weakSelf.GroupListView dismiss]; } }]; } -(NSMutableArray *)getMenuDataSource{ NSMutableArray *menuDataSourceArray = [[NSMutableArray alloc] init]; NSArray * titleArray; if ([AppUserModel sharedAppUserModel].IsNotice) { titleArray = @[@"写通知",@"写信件",@"匿名信"]; }else{ titleArray = @[@"写信件",@"匿名信"]; } for(int i = 0;i < titleArray.count;i ++){ NSString *titleStr = [titleArray objectAtIndex:i]; WS(weakSelf); YCMenuAction *actionMenu = [YCMenuAction actionWithTitle:titleStr image:nil handler:^(YCMenuAction *action) { [weakSelf autoSizeBtn:action.title]; if([@"写通知" isEqualToString:action.title]){ weakSelf.MailType = 3; weakSelf.type = CollectModel_Notice; weakSelf.shouType = 5; }else if([@"写信件" isEqualToString:action.title]){ weakSelf.MailType = 1; weakSelf.type = CollectModel_InterMail; weakSelf.shouType = 6; }else{ weakSelf.MailType = 2; weakSelf.type = CollectModel_InterMail; weakSelf.shouType = 18; } }]; [menuDataSourceArray addObject:actionMenu]; } return menuDataSourceArray; } - (void)autoSizeBtn:(NSString *)title { if (![title isKindOfClass:[NSNull class]]) { if (title.length > 7) { NSRange range1 = NSMakeRange(7, title.length - 7); NSString *resultStr1 = [title stringByReplacingCharactersInRange:range1 withString:@"..."]; [self.titleBtn setLabelTitle:resultStr1]; }else{ [self.titleBtn setLabelTitle:title]; } WS(weakSelf); [self.titleBtn mas_remakeConstraints:^(MASConstraintMaker *make) { make.center.mas_equalTo(weakSelf.NavBarV); make.width.mas_offset(SCREEN_WIDTH * 0.5); }]; [self.NavBarV layoutIfNeeded]; } } - (void)viewDidLoad { [super viewDidLoad]; [self.DoneBtn setEnabled:NO]; self.isNull = YES; self.fd_prefersNavigationBarHidden = YES; WS(weakSelf); [self.DoneBtn setAction:^{ weakSelf.isDraft = NO; [weakSelf submit]; }]; [self.NavBarV addSubview:self.titleBtn]; [self.titleBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.center.mas_equalTo(weakSelf.NavBarV); make.width.mas_offset(SCREEN_WIDTH * 0.5); }]; [self.view addSubview:self.webView]; [self.webView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(weakSelf.NavBarV.mas_bottom); make.left.right.mas_equalTo(weakSelf.view); if (@available(iOS 11.0, *)) { make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom); } else { make.bottom.equalTo(weakSelf.view.mas_bottom); } }]; self.webView.UIDelegate = self; self.shouType = 5; // 导航代理 self.webView.navigationDelegate = self; self.webView.scrollView.delegate = self; // self.automaticallyAdjustsScrollViewInsets = YES; NSURL *pathUrl = [NSURL URLWithString:HtmlHost(@"/mobile/appeditor")]; // NSURL *pathUrl = [NSURL URLWithString:@"http://192.168.0.111:8080/admin/mobile/editor"]; NSURLRequest *request = [NSURLRequest requestWithURL:pathUrl]; [self.webView loadRequest:request]; // [self hideWKWebviewKeyboardShortcutBar:self.webView]; switch (self.type) { case CollectModel_Notice: { self.TitleL.hidden = YES; self.titleBtn.hidden = NO; // self.TitleL.text = @"写通知"; [self selectMailType]; if ([AppUserModel sharedAppUserModel].IsNotice) { switch (self.MailType) { case 1: { [self autoSizeBtn:@"写信件"]; self.MailType = 1; } break; case 2: { [self autoSizeBtn:@"匿名信"]; self.MailType = 2; } break; default: { [self autoSizeBtn:@"写通知"]; self.MailType = 3; } break; } }else{ switch (self.MailType) { case 0: { [self autoSizeBtn:@"写信件"]; self.MailType = 1; } break; default: { [self autoSizeBtn:@"匿名信"]; self.MailType = 2; } break; } } } break; case CollectModel_Toipc: { if (self.isGroupRoot) { [self setShowGroupData]; self.TitleL.hidden = YES; self.titleBtn.hidden = NO; [self autoSizeBtn:@"选择小组"]; }else{ self.TitleL.hidden = NO; self.titleBtn.hidden = YES; self.TitleL.text = @"新建话题"; } } break; case CollectModel_NewTopic: { [self setShowTopicData]; self.TitleL.hidden = YES; self.titleBtn.hidden = NO; if (self.FolderName.length > 0) { [self autoSizeBtn:self.FolderName]; }else{ [self getTopicDefault]; } } break; case CollectModel_NoteBook: { [self selectFold]; self.TitleL.hidden = YES; self.titleBtn.hidden = NO; if (self.FolderId > 0) { [self autoSizeBtn:self.FolderName]; }else{ [self getNoteDefault]; } } break; case CollectModel_Group: { self.TitleL.hidden = NO; self.titleBtn.hidden = YES; self.TitleL.text = @"新建话题"; } break; case CollectModel_InterMail: { if (self.replayType == MailReplayOne || self.replayType == MailReplayAll) { self.TitleL.hidden = NO; self.titleBtn.hidden = YES; self.TitleL.text = @"回复信函"; self.shouType = 6; }else{ self.TitleL.hidden = YES; self.titleBtn.hidden = NO; [self selectMailType]; if ([AppUserModel sharedAppUserModel].IsNotice) { switch (self.MailType) { case 1: { [self autoSizeBtn:@"写信件"]; self.MailType = 1; } break; case 2: { [self autoSizeBtn:@"匿名信"]; self.MailType = 2; } break; default: { [self autoSizeBtn:@"写通知"]; self.MailType = 3; } break; } }else{ switch (self.MailType) { case 0: { [self autoSizeBtn:@"写信件"]; self.MailType = 1; } break; default: { [self autoSizeBtn:@"匿名信"]; self.MailType = 2; } break; } } } } break; case CollectModel_meetMian: { self.TitleL.hidden = NO; self.titleBtn.hidden = YES; self.TitleL.text = @"会议纪要"; } break; case CollectModel_NoSignMail: { if (self.replayType == MailReplayOne || self.replayType == MailReplayAll) { self.TitleL.hidden = NO; self.titleBtn.hidden = YES; self.TitleL.text = @"回复信函"; self.shouType = 6; }else{ self.TitleL.hidden = YES; self.titleBtn.hidden = NO; [self selectMailType]; [self autoSizeBtn:@"匿名信"]; } } break; default: break; } if (self.isReturn) { [self.DoneBtn setTitle:@"完成" forState:UIControlStateNormal]; }else{ if (self.type == CollectModel_NewTopic || self.type == CollectModel_Toipc || self.type == CollectModel_NoteBook) { [self.DoneBtn setTitle:@"完成" forState:UIControlStateNormal]; }else{ [self.DoneBtn setTitle:@"发送" forState:UIControlStateNormal]; } } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ChangeTopicBookBtn:) name:SELECTETOPICBOOK object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ChangetitleBtn:) name:SELECTEXTENTSUCCESS object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(selectMeetSearch:) name:SELECTMEETFECORD object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recviveChaoSongRen:) name:NOTIFI_ChaoSongRen object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(selectFolder:) name:NOTIFI_SELECTCREATENOTEFOLDER object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(newFileSuccess:) name:NEWFILESUCCESS object:nil]; // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SaveNoteBook:) name:NOTEBOOKSAVE object:nil]; } - (void)selectMailType { WS(weakSelf); [self.titleBtn setAction:^{ NSMutableArray *menuDataSourceArray = [weakSelf getMenuDataSource]; YCMenuView *view = [YCMenuView menuWithActions:menuDataSourceArray width:114 relyonView:weakSelf.titleBtn]; view.menuColor = RGB(255, 255, 255); view.separatorColor = RGB(234, 234, 234); view.textColor = RGB(102, 102, 102); view.textFont = [UIFont systemFontOfSize:16.0]; view.menuCellHeight = 43.5; view.maxDisplayCount = 10; view.offset = -6; [view show]; }]; } - (void)upDateAction:(NSString *)action { [self.webView evaluateJavaScript:action completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data=====%@",data); NSLog(@"error=====%@",error); }]; } - (void)getTopicDefault { WS(weakSelf); NSString * url = [NSString stringWithFormat:@"%@%d",Host(API_APP_Middle_Enjoy_Defaul),-4]; [[HttpManager sharedHttpManager] GETUrl:url parameters:@{} responseStyle:JOSN success:^(id _Nonnull responseObject) { dispatch_async(dispatch_get_main_queue(), ^{ NSInteger MiddleId = [[responseObject objectForKey:@"MiddleId"] integerValue]; if (MiddleId > 0) { weakSelf.FolderId = [[responseObject objectForKey:@"MiddleId"] integerValue]; [weakSelf setSelectTopicBook:[responseObject objectForKey:@"FolderName"]]; }else{ weakSelf.FolderId = 0; [weakSelf autoSizeBtn:@"公开"]; } }); } failure:^(NSError * _Nonnull error) { }]; } - (void)getNoteDefault { WS(weakSelf); NSString * url = [NSString stringWithFormat:@"%@%d",Host(API_APP_Middle_Enjoy_Defaul),4]; [[HttpManager sharedHttpManager] GETUrl:url parameters:@{} responseStyle:JOSN success:^(id _Nonnull responseObject) { dispatch_async(dispatch_get_main_queue(), ^{ NSInteger MiddleId = [[responseObject objectForKey:@"MiddleId"] integerValue]; if (MiddleId > 0) { weakSelf.FolderId = [[responseObject objectForKey:@"MiddleId"] integerValue]; [weakSelf autoSizeBtn:[responseObject objectForKey:@"FolderName"]]; }else{ weakSelf.FolderId = 0; [weakSelf autoSizeBtn:@"根目录"]; } }); } failure:^(NSError * _Nonnull error) { }]; } - (void)selectFold{ WS(weakSelf); [self.titleBtn setAction:^{ SelectSaveVC * vc = [SelectSaveVC initSelectSaveVC]; vc.isFromCreateBookVc = YES; vc.TypeId = CreateNotesType; vc.ParentId = 0; vc.FolderIds = @[].mutableCopy; vc.titleStr = @"我的笔记"; [weakSelf.navigationController pushViewController:vc animated:YES]; }]; } - (void)newFileSuccess:(NSNotification *)noti { NSDictionary * dict = noti.userInfo; NSString * title = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Name"]]; self.FolderId = [[dict objectForKey:@"Id"] integerValue]; if (title.length > 0) { [self setSelectTopicBook:title]; } } //- (void)SaveNoteBook:(NSNotification *)noti //{ // NSLog(@"SaveNoteBook"); //} - (void)selectFolder:(NSNotification *)noti { NSDictionary * dict = noti.userInfo; if (dict) { [self autoSizeBtn:[dict objectForKey:@"FolderName"]]; self.FolderId = [[dict objectForKey:@"FolderId"] integerValue]; } } - (void)ChangeTopicBookBtn:(NSNotification *)notification { NSDictionary * dict = notification.userInfo; NSString * title = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Name"]]; self.FolderId = [[dict objectForKey:@"Id"] integerValue]; if (title.length > 0) { [self setSelectTopicBook:title]; } } - (void)ChangetitleBtn:(NSNotification *)notification { NSDictionary * dict = notification.userInfo; NSString * title = [NSString stringWithFormat:@"%@",[dict objectForKey:@"Name"]]; self.FolderId = [[dict objectForKey:@"Id"] integerValue]; if (title.length > 0) { [self setSelectExtentText:title]; } } - (void)setDowntitleBtn { WS(weakSelf); [self.titleBtn setAction:^{ MyTDTopicSelectExtentVC * vc = [MyTDTopicSelectExtentVC initMyTDTopicSelectExtentVC]; vc.isSubVC = NO; vc.isNoteBook = weakSelf.type == CollectModel_NoteBook ? YES : NO; vc.titleStr = @"选择发布范围"; [weakSelf.navigationController pushViewController:vc animated:YES]; }]; } - (void)setSelectTopicBook:(NSString *)title { if (title.length > 7) { NSRange range1 = NSMakeRange(7, title.length - 7); NSString *resultStr1 = [title stringByReplacingCharactersInRange:range1 withString:@"..."]; NSString * title = [NSString stringWithFormat:@"%@",resultStr1]; [self autoSizeBtn:title]; }else{ NSString * cusTitle = [NSString stringWithFormat:@"%@",title]; [self autoSizeBtn:cusTitle]; } } - (void)setSelectExtentText:(NSString *)title { if (title.length > 5) { NSRange range1 = NSMakeRange(5, title.length - 5); NSString *resultStr1 = [title stringByReplacingCharactersInRange:range1 withString:@"..."]; NSString * title = [NSString stringWithFormat:@"发布范围:%@",resultStr1]; [self autoSizeBtn:title]; }else{ NSString * cusTitle = [NSString stringWithFormat:@"发布范围:%@",title]; [self autoSizeBtn:cusTitle]; } } #pragma mark - layload - (WKWebView *)webView { if (!_webView) { WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; // 实例化对象 WKUserContentController* userContent = [[WKUserContentController alloc] init]; [userContent addScriptMessageHandler:self name:@"chosePic"]; [userContent addScriptMessageHandler:self name:@"toPZ"]; [userContent addScriptMessageHandler:self name:@"toBJ"]; [userContent addScriptMessageHandler:self name:@"toSC"]; [userContent addScriptMessageHandler:self name:@"toWJ"]; [userContent addScriptMessageHandler:self name:@"keyBoard"]; [userContent addScriptMessageHandler:self name:@"approverCheckUsers"]; [userContent addScriptMessageHandler:self name:@"carbonCopyUsers"]; [userContent addScriptMessageHandler:self name:@"changeState"]; [userContent addScriptMessageHandler:self name:@"getType"]; [userContent addScriptMessageHandler:self name:@"to"]; [userContent addScriptMessageHandler:self name:@"getJp"]; [userContent addScriptMessageHandler:self name:@"postH"]; [userContent addScriptMessageHandler:self name:@"saveDrafts"]; [userContent addScriptMessageHandler:self name:@"keyBoradblur"]; configuration.userContentController = userContent; WKPreferences *preferences = [WKPreferences new]; preferences.javaScriptCanOpenWindowsAutomatically = YES; preferences.minimumFontSize = 10.0; configuration.preferences = preferences; // 初始化WKWebView _webView = [[WKWebView alloc]initWithFrame:CGRectZero configuration:configuration]; _NoInputAccessoryView *noInputView = [[_NoInputAccessoryView alloc] init]; [noInputView removeInputAccessoryViewFromWKWebView:_webView]; // UI代理 } return _webView; } -(NSMutableArray *)shouJianArray{ if(!_shouJianArray){ _shouJianArray = [[NSMutableArray alloc] init]; } return _shouJianArray; } -(NSMutableArray *)chaoShongArray{ if(!_chaoShongArray){ _chaoShongArray = [[NSMutableArray alloc] init]; } return _chaoShongArray; } #pragma mark - KeyBoard - (void)keyBoardWillShow:(NSNotification *)note { // 获取用户信息 NSDictionary *userInfo = [NSDictionary dictionaryWithDictionary:note.userInfo]; // 获取键盘高度 CGRect keyBoardBounds = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; if (IS_IPHONEX) { self.keyBoardH = keyBoardBounds.size.height - 34; }else{ self.keyBoardH = keyBoardBounds.size.height; } NSString *jsonString = [NSString stringWithFormat:@"getIosKeyBorad('%f')",self.keyBoardH]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { }]; WS(weakSelf); [self.webView evaluateJavaScript:@"textFocus()" completionHandler:^(id _Nullable data, NSError * _Nullable error) { if (weakSelf.shouModel) { NSDictionary * dict = @{@"SourceId":@(weakSelf.shouModel.SourceId),@"SourceName":weakSelf.shouModel.SourceName}; NSString *jsonString = [NSString stringWithFormat:@"getApproverCheckUsersList('%@')",[weakSelf arrayToJSONModel:@[dict]]]; [weakSelf.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"%@",error); }]; } NSLog(@"keyShow"); }]; } - (void)keyBoardWillHide:(NSNotification *)note { self.keyBoardH = 0.f; [self.webView evaluateJavaScript:@"textBlur()" completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"keyHidden"); }]; } #pragma mark - WKScriptMessageHandler - (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message { WS(weakSelf); NSLog(@"messageName:%@",message.name); if ([message.name isEqualToString:@"chosePic"]) { [self chatBarDidPhotoAction]; } if ([message.name isEqualToString:@"toPZ"]) { [[LYLPhotoTailoringTool sharedTool] selectPhotoWithPhoroOrCamera:SelectPhotoWithTypePhoroOrCamera2 crop:YES showImgBlock:^(NSString *imageUrlStr) { } choosImgBlock:^(UIImage *image) { [weakSelf didSelectImage:@[image]]; }]; } if ([message.name isEqualToString:@"toBJ"]) { [[FWZGetNoteBookTool sharedTool] openNoteBookListChooseNoteBookBlock:^(NSMutableArray * _Nonnull noteArr) { NSLog(@"SmartBarNotes %@",noteArr); [weakSelf disSelectNoteBook:noteArr]; }]; } if ([message.name isEqualToString:@"toSC"]) { [[FWZGetNoteBookTool sharedTool] openCollectListChooseCollectBlock:^(NSMutableArray * _Nonnull collectArr) { NSLog(@"SmartBarCollection %@",collectArr); [weakSelf disSelectCollect:collectArr]; }]; } if ([message.name isEqualToString:@"toWJ"]) { [[FWZFileGetTool sharedTool] openFileWithCrop:YES showImgBlock:^(NSString * _Nonnull fileUrlStr) { } choosFileBlock:^(NSData * _Nonnull fileData, NSString * _Nonnull fileName) { SHOWLOADING [[HttpManager sharedHttpManager] HeaderUploadFileUrl:Host(Modify_UserImages_Post) parameters:@{} fileData:fileData fileKey:@"file" fileName:fileName mimeType:@"multipart/form-data" success:^(id _Nonnull responseObject) { REMOVESHOW NSDictionary * dict = responseObject[0]; if ([dict[@"FileType"] isEqualToString:@"image"]) { NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_Image,dict[@"FileName"],(long)[dict[@"FileId"] integerValue],@"",dict[@"MinAbsolutePath"],dict[@"AbsolutePath"],(long)[AppUserModel sharedAppUserModel].Id]; [weakSelf upDateAction:jsonString]; }else{ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_file,dict[@"FileName"],(long)[dict[@"FileId"] integerValue],@"",dict[@"MinAbsolutePath"],dict[@"AbsolutePath"],(long)[AppUserModel sharedAppUserModel].Id]; [weakSelf upDateAction:jsonString]; } } failure:^(NSError * _Nonnull error) { REMOVESHOW }]; }]; } if ([message.name isEqualToString:@"keyBoradblur"]) { [self.webView resignFirstResponder]; } // if ([message.name isEqualToString:@"keyBoard"]) { // // } if ([message.name isEqualToString:@"changeState"]) { NSInteger status = [message.body integerValue]; if (status == 1) { self.isNull = NO; [self.DoneBtn setEnabled:YES]; }else{ self.isNull = YES; [self.DoneBtn setEnabled:NO]; } } if ([message.name isEqualToString:@"approverCheckUsers"]) { if (self.type == CollectModel_meetMian) { [self selectMeeting]; }else{ self.isShoujianren = YES; self.isChaosongren = NO; [self selectPeopleWithType:1]; } } if ([message.name isEqualToString:@"getJp"]) { [self allowDisplayingKeyboardWithoutUserAction]; } if ([message.name isEqualToString:@"carbonCopyUsers"]) { self.isShoujianren = NO; self.isChaosongren = YES; [self selectPeopleWithType:2]; } if ([message.name isEqualToString:@"getType"]) { NSString *jsonString = [NSString stringWithFormat:@"getType('%d','%d','%ld','%@','%ld')",self.type,self.isEdit,(long)self.Id,USERDEFAULTSGET(@"LOGINTOKEN"),(long)self.replayType]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"%@\n%@",data,error); if (weakSelf.isReturn) { FlowAttachmentsModel * model = weakSelf.sendModel; NSInteger fileType = model.SoureTypeId; if (fileType == CollectModel_file) { if (model.MinUrl.length > 0) { fileType = CollectModel_Image; NSString *jsonString = [NSString stringWithFormat:@"getAndroidImg('%@','%@','%ld')",model.Url,model.Title,(long)[self returnType:model.Url]]; [weakSelf upDateAction:jsonString]; }else{ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)model.SoureTypeId,model.Title,(long)model.SoureId,model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId]; [weakSelf upDateAction:jsonString]; } }else if(fileType == CollectModel_Text){ [weakSelf.webView paste:weakSelf.sendModel.Title]; }else if(fileType == CollectModel_Image){ [weakSelf didSelectImage:@[weakSelf.sendImage]]; }else if(fileType == CollectModel_NoSignMail){ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%d','%@','%ld','%@','%@','%@','%ld')",CollectModel_InterMail,model.Title,(long)model.SoureId, @"匿名",model.MinUrl,model.Url,model.SourceUserId]; [weakSelf upDateAction:jsonString]; }else if(fileType == CollectModel_Toipc){ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%d','%@','%ld','%@','%@','%@','%ld','%@','%ld')",CollectModel_Toipc,model.Title,(long)model.SoureId, model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId,model.GroupName,model.GroupId]; [weakSelf upDateAction:jsonString]; }else if(fileType == CollectModel_StoreSound){ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%d','%@','%ld','%@','%@','%@','%ld','%@','%ld')",CollectModel_StoreSound,model.Title,(long)model.SoureId, model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId,model.GroupName,model.GroupId]; [weakSelf upDateAction:jsonString]; }else if(fileType == CollectModel_StoreVideo){ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%d','%@','%ld','%@','%@','%@','%ld','%@','%ld')",CollectModel_StoreVideo,model.Title,(long)model.SoureId, model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId,model.GroupName,model.GroupId]; [weakSelf upDateAction:jsonString]; }else if(fileType == CollectModel_Group){ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%d','%@','%ld','%@','%@','%@','%ld')",CollectModel_Toipc,model.Title,(long)model.SoureId,model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId]; [weakSelf upDateAction:jsonString]; }else{ NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)model.SoureTypeId,model.Title,(long)model.SoureId,model.Author.length > 0 ? model.Author : @"",model.MinUrl,model.Url,model.SourceUserId]; [weakSelf upDateAction:jsonString]; } } }]; } if ([message.name isEqualToString:@"to"]) { NSDictionary * dict = (NSDictionary *)message.body; [self pushVCWithDict:dict]; } if ([message.name isEqualToString:@"postH"]) { NSInteger H = [message.body integerValue]; if (H < 0) { [self.webView mas_updateConstraints:^(MASConstraintMaker *make) { if (@available(iOS 11.0, *)) { make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom).offset(H); } else { make.bottom.equalTo(weakSelf.view.mas_bottom).offset(H); } }]; }else{ [self.webView mas_updateConstraints:^(MASConstraintMaker *make) { if (@available(iOS 11.0, *)) { make.bottom.equalTo(weakSelf.view.mas_safeAreaLayoutGuideBottom); } else { make.bottom.equalTo(weakSelf.view.mas_bottom); } }]; } [self.view setNeedsLayout]; [self.view layoutIfNeeded]; NSLog(@"%@",NSStringFromCGRect(self.webView.frame)); } if ([message.name isEqualToString:@"saveDrafts"]) { if ([message.body isKindOfClass:[NSDictionary class]]) { NSDictionary * dict = message.body; NSString * html = @""; NSString * Title = @""; if (![dict[@"html"] isKindOfClass:[NSNull class]]) { html = dict[@"html"]; } if (![dict[@"Title"] isKindOfClass:[NSNull class]]) { Title = dict[@"Title"]; } if ([Title length] > 0 || [html length] > 0 ) { self.isNull = NO; [self.DoneBtn setEnabled:YES]; }else{ self.isNull = YES; [self.DoneBtn setEnabled:NO]; } [self saveDraft:message.body]; } } } - (void)pushVCWithDict:(NSDictionary *)dict { NSInteger Id = [dict[@"id"] integerValue]; NSInteger userId = [dict[@"userId"] integerValue]; NSString * title = dict[@"title"]; WS(weakSelf); switch ([dict[@"type"] integerValue]) { case CollectModel_Group: { TDGroupInfoListVC * vc = [TDGroupInfoListVC initTDGroupInfoListVC]; vc.GroupId = Id; vc.titleStr = title; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_file:{ DownFileViewController * vc = [[DownFileViewController alloc] init]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.Title = title; model.SoureId = Id; model.Url = dict[@"bigurl"]; model.MinUrl = dict[@"smallurl"]; vc.model = model; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_Image:{ DownFileViewController * vc = [[DownFileViewController alloc] init]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.Title = title; model.SoureId = Id; model.Url = dict[@"bigurl"]; model.MinUrl = dict[@"smallurl"]; vc.model = model; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_Aritle:{ SHOWLOADING [[HttpManager sharedHttpManager] GETWithUrl:[NSString stringWithFormat:@"%@%ld",Article_Detail_Get,(long)Id] parameters:@{} success:^(id _Nonnull responseObject) { REMOVESHOW; Item *itemModel = [[Item alloc]initWithDictionary:responseObject error:nil]; // HomeDetailController *homeDetail = [[HomeDetailController alloc] init]; // [homeDetail loadCurrentModel:itemModel]; // [weakSelf.navigationController pushViewController:homeDetail animated:YES]; MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_Aritle; vc.Id = itemModel.Id; [weakSelf.navigationController pushViewController:vc animated:YES]; } failure:^(NSError * _Nonnull error) { SHOWERROR([ZYCTool handerResultData:error]); }]; }break; case CollectModel_Notice:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_Notice; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_Toipc:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_Toipc; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_NewTopic:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_NewTopic; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_NoteBook:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_NoteBook; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_Collect:{ }break; case CollectModel_CollectFile:{ if (userId == [AppUserModel sharedAppUserModel].Id) { MyFavoriteVC *vc = [MyFavoriteVC initMyFavoriteVC]; vc.listType = Id == 0 ? MyFavoriteListLevelTypeA : MyFavoriteListLevelTypeB; vc.ParentId = 0; vc.FolderId = Id; vc.myTitle = title; [self.navigationController pushViewController:vc animated:YES]; }else{ OtherFavoriteVC *vc = [OtherFavoriteVC initOtherFavoriteVC]; vc.listType = Id == 0 ? MyFavoriteListLevelTypeA : MyFavoriteListLevelTypeB; vc.ParentId = 0; vc.FolderId = Id; vc.myTitle = title; vc.VisitUserId = userId; [self.navigationController pushViewController:vc animated:YES]; } }break; case CollectModel_NoteFile:{ if (userId == [AppUserModel sharedAppUserModel].Id) { NoteBookVC *vc = [NoteBookVC initNoteBookVC]; vc.listType = Id == 0 ? MyFavoriteListLevelTypeA : MyFavoriteListLevelTypeB; vc.ParentId = 0; vc.FolderId = Id; vc.myTitle = title; vc.VisitUserId = 0; [self.navigationController pushViewController:vc animated:YES]; }else{ OtherNoteBookVC *vc = [OtherNoteBookVC initOtherNoteBookVC]; vc.listType = Id == 0 ? MyFavoriteListLevelTypeA : MyFavoriteListLevelTypeB; vc.ParentId = 0; vc.FolderId = Id; vc.myTitle = title; vc.TypeValue = 1; vc.VisitUserId = userId; [self.navigationController pushViewController:vc animated:YES]; } }break; case CollectModel_InterMail:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_InterMail; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_meetDetail:{ WorkFlowDetailsController *vc = [[WorkFlowDetailsController alloc] initWithId:Id]; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_work:{ MyApprovalPageDetail * vc = [[MyApprovalPageDetail alloc]init]; vc.pageType = Type_ONEC; vc.indexId = Id; vc.title = title; vc.TodoId = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_StoreSound: { BookListenVC * vc = [BookListenVC initBookListenVC]; vc.Id = Id; vc.MediaType = MediaMusicType; [self.navigationController pushViewController:vc animated:YES]; } break; case CollectModel_StoreVideo: { BookWCDetailVC * vc = [BookWCDetailVC initBookWCDetailVC]; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; } break; case CollectModel_meetMian:{ MyTDTopicDetailVC * vc = [MyTDTopicDetailVC initMyTDTopicDetailVC]; vc.type = CollectModel_meetMian; vc.Id = Id; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_financeCount:{ CountDataVC *vc = [CountDataVC initCountDataVC]; vc.index = 0; vc.titleStr = @"财务统计"; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_affairsCount:{ CountDataVC *vc = [CountDataVC initCountDataVC]; vc.index = 1; vc.titleStr = @"人事统计"; [self.navigationController pushViewController:vc animated:YES]; }break; case CollectModel_publishCount:{ CountDataVC *vc = [CountDataVC initCountDataVC]; vc.index = 2; vc.titleStr = @"出版统计"; [self.navigationController pushViewController:vc animated:YES]; }break; default: break; } } #pragma mark - 选择关联会议 - (void)selectMeeting { WS(weakSelf); FecordJoinWorkFlowListController *vc = [[FecordJoinWorkFlowListController alloc] init]; [vc setSelectedMeetingBlock:^(NSString * _Nonnull mid, NSString * _Nonnull meetingName) { weakSelf.meetingId = [mid integerValue]; NSDictionary * dict = @{@"SourceId":mid,@"SourceName":meetingName}; NSString *jsonString = [NSString stringWithFormat:@"getApproverCheckUsersList('%@')",[self arrayToJSONModel:@[dict]]]; [weakSelf.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data:%@",data); NSLog(@"error:%@",error); }]; }]; vc.IsSelect = YES; [self.navigationController pushViewController:vc animated:YES]; } - (void)selectMeetSearch:(NSNotification *)notification { NSDictionary * dict = notification.userInfo; self.meetingId = [[dict objectForKey:@"Id"] integerValue]; NSDictionary * paraDict = @{@"SourceId":[dict objectForKey:@"Id"],@"SourceName":[dict objectForKey:@"Name"]}; NSString *jsonString = [NSString stringWithFormat:@"getApproverCheckUsersList('%@')",[self arrayToJSONModel:@[paraDict]]]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data:%@",data); NSLog(@"error:%@",error); }]; } - (void)selectPeopleWithType:(NSInteger)type { AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init]; vc.isAllSelected = YES; Department *defaltGroupSetion = [[Department alloc]init]; defaltGroupSetion.Name = @"单位通讯录"; defaltGroupSetion.Id = 0; defaltGroupSetion.SourceId = 0; defaltGroupSetion.SourceType = 1; defaltGroupSetion.SourceName = @"单位通讯录"; defaltGroupSetion.MiddleType = type; Department *myGroupSetion = [[Department alloc]init]; myGroupSetion.Name = @"自建通讯录"; myGroupSetion.Id = 0; myGroupSetion.MiddleType = type; myGroupSetion.SourceType = 3; myGroupSetion.SourceId = 0; myGroupSetion.SourceName = @"自建通讯录"; vc.isAllSelected = YES; vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy; vc.isDefalutPage = 1; vc.titleStr = self.type == CollectModel_meetMian ? @"发送范围" : @"选人"; USERDEFAULTSSET([NSMutableArray array], MAILSELECT); [self.navigationController pushViewController:vc animated:YES]; } - (void)recviveChaoSongRen:(NSNotification *)notification{ if (self.isShoujianren) { NSMutableArray * array = notification.userInfo[@"selectPeople"]; if (array.count > 0) { NSLog(@"shouJianArray结果数据组%@",array); NSString *jsonString = [NSString stringWithFormat:@"getApproverCheckUsersList('%@')",[self arrayToJSONModel:array]]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data:%@",data); NSLog(@"error:%@",error); }]; } } if (self.isChaosongren) { NSMutableArray * array = notification.userInfo[@"selectPeople"]; if (array.count > 0) { NSLog(@"chaoShongArray结果数据组%@",array); NSString *jsonString = [NSString stringWithFormat:@"getCarbonCopyUsersList('%@')",[self arrayToJSONModel:array]]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data:%@",data); NSLog(@"error:%@",error); }]; } } } #pragma mark - 选择图片 - (void)chatBarDidPhotoAction { WS(weakSelf); [self.view endEditing:YES]; TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 delegate:nil]; [imagePickerVc setNavLeftBarButtonSettingBlock:^(UIButton *leftButton){ leftButton.hidden = YES; }]; imagePickerVc.showSelectBtn = NO; imagePickerVc.allowCrop = YES; imagePickerVc.cropRect = CGRectMake(0, (SCREEN_HEIGHT - SCREEN_WIDTH) * 0.5, SCREEN_WIDTH, SCREEN_WIDTH); imagePickerVc.allowTakePicture = NO; imagePickerVc.allowTakeVideo = NO; imagePickerVc.allowPickingOriginalPhoto = NO; imagePickerVc.allowPickingGif = NO; [imagePickerVc setIsStatusBarDefault:YES]; [imagePickerVc setNaviTitleColor:[UIColor blackColor]]; [imagePickerVc setBarItemTextColor:[UIColor blackColor]]; [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray *photos, NSArray *assets, BOOL isSelectOriginalPhoto) { PHAsset *asset = assets.firstObject; switch (asset.mediaType) { case PHAssetMediaTypeVideo: { } break; case PHAssetMediaTypeImage: { [weakSelf didSelectImage:photos]; } break; case PHAssetMediaTypeAudio: break; case PHAssetMediaTypeUnknown: break; default: break; } }]; [self presentViewController:imagePickerVc animated:YES completion:nil]; } - (void)didSelectImage:(NSArray *)images { NSMutableArray * array = [NSMutableArray array]; for (UIImage * image in images) { NSData *data = UIImageJPEGRepresentation(image, 1); [array addObject:data]; } WS(weakSelf); NSString *urlString = [[NSString alloc] initWithFormat:@"%@%@",BaseUrl,Modify_UserImages_Post]; [[HttpManager sharedHttpManager] HeaderUploadUrl:urlString parameters:@{} pictureArray:array pictureKey:@"file" success:^(id _Nonnull responseObject) { NSLog(@"%@",responseObject); for (NSDictionary * dict in responseObject) { NSString *jsonString = [NSString stringWithFormat:@"getAndroidImg('%@','%@','%ld')",dict[@"AbsolutePath"],dict[@"FileName"],(long)CollectModel_Image]; [weakSelf upDateAction:jsonString]; } } failure:^(NSError * _Nonnull error) { }]; } #pragma mark - 选择笔记 - (void)disSelectNoteBook:(NSMutableArray*_Nonnull )noteArr{ NSMutableArray * daArray = [NSMutableArray array]; for (MyNoteBookSubModel *dataModel in noteArr ) { if (dataModel.AttributeValue == 1) { // NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_NoteBook,dataModel.Title,(long)dataModel.MiddleId,dataModel.Name,@"",@"",(long)dataModel.UserId]; // [self upDateAction:jsonString]; // }else{ // NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_NoteFile,dataModel.FolderName,(long)dataModel.Id,[AppUserModel sharedAppUserModel].Name,@"",@"",(long)dataModel.UserId]; // [self upDateAction:jsonString]; // } [daArray addObject:@{@"type":@(CollectModel_NoteBook), @"title":dataModel.Title, @"id":@(dataModel.MiddleId), @"author":dataModel.Name, @"smallurl":@"", @"bigurl":@"", @"userId":@(dataModel.UserId), @"groupName":@"", @"groupId":@(0) }]; }else{ // NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_CollectFile,dataModel.FolderName,(long)dataModel.Id,[AppUserModel sharedAppUserModel].Name,@"",@"",(long)(dataModel.SourceUserId == 0 ? dataModel.UserId : dataModel.SourceUserId)]; // [self upDateAction:jsonString]; [daArray addObject:@{@"type":@(CollectModel_NoteFile), @"title":dataModel.FolderName, @"id":@(dataModel.Id), @"author":[AppUserModel sharedAppUserModel].Name, @"smallurl":@"", @"bigurl":@"", @"userId":@(dataModel.UserId), @"groupName":@"", @"groupId":@(0) }]; } } NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollectionList('%@')",[self toReadableJSONString:daArray]]; [self upDateAction:[self noWhiteSpaceString:jsonString]]; } #pragma mark - 选择收藏 - (void)disSelectCollect:(NSMutableArray * _Nonnull) collectArr{ NSMutableArray * daArray = [NSMutableArray array]; for (MyFavoriteSubModel *dataModel in collectArr ) { if(dataModel.AttributeValue == 1) { NSString * author = @""; switch (dataModel.CollectionType) { case CollectModel_file: { if (dataModel.Data.MinFile.length > 0) { dataModel.CollectionType = CollectModel_Image; } } break; case CollectModel_Text:///1 { dataModel.CollectionType = CollectModel_Text; } break; case CollectModel_Aritle:///1 { dataModel.CollectionType = CollectModel_Aritle; author = dataModel.Data.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@的文章",dataModel.Data.Author] : @""; } break; case CollectModel_CollectFile: { dataModel.CollectionType = CollectModel_CollectFile; author = dataModel.Data.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@的收藏",dataModel.Data.Author] : @""; } break; case CollectModel_NoteFile: { dataModel.CollectionType = CollectModel_NoteFile; author = dataModel.Data.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@的笔记",dataModel.Data.Author] : @""; } break; case CollectModel_TopicBooK: { dataModel.CollectionType = CollectModel_TopicBooK; author = dataModel.Data.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@的话题本",dataModel.Data.Author] : @""; } break; case CollectModel_TopicSubBooK: { dataModel.CollectionType = CollectModel_TopicSubBooK; author = dataModel.Data.Author.length > 0 ? [NSString stringWithFormat:@"来自-%@的话题本",dataModel.Data.Author] : @""; } break; case CollectModel_StoreSound: { dataModel.Data.MinFile = dataModel.Data.ArticleImgUrl.firstObject; dataModel.Data.File = dataModel.Data.ArticleImgUrl.firstObject; author = dataModel.Data.Author.length > 0 ? dataModel.Data.Author : @""; } break; case CollectModel_StoreVideo: { dataModel.Data.MinFile = dataModel.Data.ArticleImgUrl.firstObject; dataModel.Data.File = dataModel.Data.ArticleImgUrl.firstObject; author = dataModel.Data.Author.length > 0 ? dataModel.Data.Author : @""; } break; default: { author = dataModel.Data.Author.length > 0 ? dataModel.Data.Author : @""; } break; } // NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld','%@','%ld')",(long)dataModel.CollectionType,dataModel.Title,(long)dataModel.CollectionDataId,author,dataModel.Data.MinFile,dataModel.Data.File,(long)(dataModel.SourceUserId == 0 ? dataModel.UserId : dataModel.SourceUserId),dataModel.Data.GroupName,dataModel.Data.GroupId]; // [self upDateAction:jsonString]; [daArray addObject:@{@"type":@(dataModel.CollectionType), @"title":dataModel.Title, @"id":@(dataModel.CollectionDataId), @"author":author, @"smallurl":dataModel.Data.MinFile, @"bigurl":dataModel.Data.File, @"userId":@(dataModel.SourceUserId == 0 ? dataModel.UserId : dataModel.SourceUserId), @"groupName":dataModel.Data.GroupName ? dataModel.Data.GroupName : @"", @"groupId":@(dataModel.Data.GroupId) }]; }else{ // NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollection('%ld','%@','%ld','%@','%@','%@','%ld')",(long)CollectModel_CollectFile,dataModel.FolderName,(long)dataModel.Id,[AppUserModel sharedAppUserModel].Name,@"",@"",(long)(dataModel.SourceUserId == 0 ? dataModel.UserId : dataModel.SourceUserId)]; // [self upDateAction:jsonString]; [daArray addObject:@{@"type":@(CollectModel_CollectFile), @"title":dataModel.FolderName, @"id":@(dataModel.CollectionDataId), @"author":[AppUserModel sharedAppUserModel].Name, @"smallurl":@"", @"bigurl":@"", @"userId":@(dataModel.SourceUserId == 0 ? dataModel.UserId : dataModel.SourceUserId), @"groupName":dataModel.Data.GroupName ? dataModel.Data.GroupName : @"", @"groupId":@(dataModel.Data.GroupId) }]; } } NSString *jsonString = [NSString stringWithFormat:@"getAndroidNoteCollectionList('%@')",[self toReadableJSONString:daArray]]; [self upDateAction:[self noWhiteSpaceString:jsonString]]; } - (NSString *)toReadableJSONString:(NSArray *)dataArr { NSData *data = [NSJSONSerialization dataWithJSONObject:dataArr options:NSJSONWritingPrettyPrinted error:nil]; if (data == nil) { return nil; } NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return string; } - (NSString *)DictJSONString:(NSDictionary *)dict { NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil]; if (data == nil) { return nil; } NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return string; } - (NSString *)noWhiteSpaceString:(NSString *)str { NSString *newString = str; //去除掉首尾的空白字符和换行字符 newString = [newString stringByReplacingOccurrencesOfString:@"\r" withString:@""]; newString = [newString stringByReplacingOccurrencesOfString:@"\n" withString:@""]; newString = [newString stringByReplacingOccurrencesOfString:@"\\b" withString:@""]; newString = [newString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去除掉首尾的空白字符和换行字符使用 newString = [newString stringByReplacingOccurrencesOfString:@" " withString:@""]; return newString; } #pragma mark - WKScriptMessageHandler -(NSString *)convertToJson:(NSDictionary *)dict { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString; if (!jsonData) { NSLog(@"%@",error); }else{ jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding]; } NSMutableString *mutStr = [NSMutableString stringWithString:jsonString]; NSRange range = {0,jsonString.length}; //去掉字符串中的空格 [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range]; NSRange range2 = {0,mutStr.length}; //去掉字符串中的换行符 [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2]; return mutStr; } #pragma mark - WKUIDelegete - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(nonnull NSString *)message initiatedByFrame:(nonnull WKFrameInfo *)frame completionHandler:(nonnull void (^)(void))completionHandler { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:([UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }])]; [self presentViewController:alertController animated:YES completion:nil]; NSLog(@"Aleart=========%@",message); completionHandler(); } - (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler{ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:([UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }])]; [alertController addAction:([UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }])]; [self presentViewController:alertController animated:YES completion:nil]; } - (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString * _Nullable))completionHandler{ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:prompt message:@"" preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.text = defaultText; }]; [alertController addAction:([UIAlertAction actionWithTitle:@"完成" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }])]; [self presentViewController:alertController animated:YES completion:nil]; } #pragma mark - 提交富文本 - (void)submit { [[NSUserDefaults standardUserDefaults] removeObjectForKey:DRAFT]; NSString *jsonString = [NSString stringWithFormat:@"getEditorText()"]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"submit:%@",data); if ([data isKindOfClass:[NSDictionary class]]) { NSDictionary * dict = (NSDictionary *)data; switch (self.type) { case CollectModel_Notice: { [self submitNotice:dict]; } break; case CollectModel_Toipc: { if (self.isEdit) { [self changeTopic:dict]; }else{ if (self.FolderId == 0 && self.isGroupRoot) { SHOWERROR(@"请选择小组"); return; } [self submitTopic:dict]; } } break; case CollectModel_NewTopic: { if (self.isEdit) { [self changeNoteBook:dict]; }else{ [self submitNoteBook:dict]; } } break; case CollectModel_Group: { if (self.isEdit) { [self changeTopic:dict]; }else{ [self submitTopic:dict]; } } break; case CollectModel_meetMian: { if (self.isEdit) { [self changeMeeting:dict]; }else{ [self submitMeeting:dict]; } } break; case CollectModel_NoteBook: { if (self.isEdit) { [self changeNoteBook:dict]; }else{ [self submitNoteBook:dict]; } } break; case CollectModel_InterMail: { [self submitNotice:dict]; } break; case CollectModel_NoSignMail: { [self submitNotice:dict]; } break; default: break; } } }]; } #pragma mark - 提交通知 - (void)submitNotice:(NSDictionary *)dict { self.H5JsonDict = dict; NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setValue:self.isDraft ? @(2) : @(1) forKey:@"NoticeType"]; [paraDict setValue:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:@(self.shouType) forKey:@"TypeValue"]; [paraDict setObject:dict[@"AddresseeUserMiddles"] forKey:@"AddresseeUserMiddles"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"CcUserMiddles"]; [paraDict setObject:[self arrayToJSONString:jsonArray] forKey:@"Content"]; NSArray * addArray = self.H5JsonDict[@"AddresseeUserMiddles"]; NSArray * ccArray = self.H5JsonDict[@"CcUserMiddles"]; if ([self.H5JsonDict[@"Title"] length] == 0 && [self.H5JsonDict[@"html"] length] == 0 && addArray.count == 0 && ccArray.count == 0) { SHOWERROR(@"请填写标题或内容"); return; } if (self.replayType == MailReplayOne || self.replayType == MailReplayAll) { [paraDict setObject:@(self.Id) forKey:@"ParentId"];///回复ID [self sentNoticeRequeast:paraDict withNoticeType:self.isDraft ? 2 : 1]; }else{ if (self.isEdit) { [paraDict setObject:@(self.Id) forKey:@"Id"]; [self sentChangeNotice:paraDict withNoticeType:self.isDraft ? 2 : 1]; }else{ NSLog(@"%@",[self convertToJson:paraDict]); [self sentNoticeRequeast:paraDict withNoticeType:self.isDraft ? 2 : 1]; } } } - (void)sentChangeNotice:(NSMutableDictionary *)dic withNoticeType:(NSInteger)NoticeType{ WS(weakSelf); NSLog(@"%@",[self DictJSONString:dic]); SHOWLOADING [[HttpManager sharedHttpManager] POSTUrl:Host(API_NOTICE_EDIT) parameters:dic responseStyle:DATA success:^(id _Nonnull responseObject) { REMOVESHOW if(NoticeType == 1){ SHOWSUCCESS(weakSelf.type == CollectModel_Notice ? @"通知已经发送" : @"站内信已经发送"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } }else{ SHOWSUCCESS(weakSelf.type == CollectModel_Notice ? @"通知已经存放草稿箱" : @"站内信已经存放草稿箱"); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW // SHOWERROR([ZYCTool handerResultData:error]); }]; } - (void)sentNoticeRequeast:(NSMutableDictionary *)dic withNoticeType:(NSInteger)NoticeType{ WS(weakSelf); SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(API_NOTICE_ADD) parameters:dic responseStyle:DATA success:^(id _Nonnull responseObject) { REMOVESHOW if(NoticeType == 1){ SHOWSUCCESS(weakSelf.type == CollectModel_Notice ? @"通知已经发送" : @"站内信已经发送"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } }else{ SHOWSUCCESS(weakSelf.type == CollectModel_Notice ? @"通知已经存放草稿箱" : @"站内信已经存放草稿箱"); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW SHOWERROR([ZYCTool handerResultData:error]); }]; } #pragma mark - 提交话题 - (void)submitTopic:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setObject:@(self.FolderId) forKey:@"GroupId"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } if (self.FolderId == 0 && self.isGroupRoot) { SHOWERROR(@"请选择小组"); return; } NSString * d = [self DictJSONString:paraDict]; NSLog(@"%@",d); SHOWLOADING WS(weakSelf); [[HttpManager sharedHttpManager] POSTUrl:Host(APP_Topic_Add) parameters:paraDict responseStyle:JOSN success:^(id _Nonnull responseObject) { NSLog(@"%@",responseObject); REMOVESHOW SHOWSUCCESS(@"创建成功"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW SHOWERROR([ZYCTool handerResultData:error]) }]; } #pragma mark - 修改话题 - (void)changeTopic:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@(self.Id) forKey:@"Id"]; [paraDict setValue:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } WS(weakSelf); SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(API_APP_Topic_Update) parameters:paraDict responseStyle:DATA success:^(id _Nonnull responseObject) { NSLog(@"%@",responseObject); REMOVESHOW SHOWSUCCESS(@"创建成功"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW }]; } #pragma mark - 提交会议纪要 - (void)submitMeeting:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"AddresseeUserMiddles"]; if (self.meetingId > 0) { [paraDict setObject:@(self.meetingId) forKey:@"MeetingId"]; } [paraDict setObject:html forKey:@"Content"]; if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } NSArray * userArray = paraDict[@"AddresseeUserMiddles"]; if (userArray.count == 0) { SHOWERROR(@"请选择发布范围"); return; } SHOWLOADING WS(weakSelf); [[HttpManager sharedHttpManager] POSTUrl:Host(MeetingSummary) parameters:paraDict responseStyle:JOSN success:^(id _Nonnull responseObject) { REMOVESHOW SHOWSUCCESS(@"创建成功"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW SHOWERROR([ZYCTool handerResultData:error]); }]; } - (void)changeMeeting:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"AddresseeUserMiddles"]; if (self.meetingId > 0) { [paraDict setObject:@(self.meetingId) forKey:@"MeetingId"]; } if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } NSArray * userArray = paraDict[@"AddresseeUserMiddles"]; if (userArray.count == 0) { SHOWERROR(@"请选择发布范围"); return; } [paraDict setObject:html forKey:@"Content"]; SHOWLOADING WS(weakSelf); NSString * meetId = [NSString stringWithFormat:@"%ld",(long)self.Id]; [[HttpManager sharedHttpManager] PUTUrl:Host(UpdateMeeting(meetId)) parameters:paraDict success:^(id _Nonnull responseObject) { REMOVESHOW SHOWSUCCESS(@"修改会议纪要成功"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { REMOVESHOW SHOWERROR([ZYCTool handerResultData:error]); }]; } #pragma mark - 提交笔记 - (void)submitNoteBook:(NSDictionary *)dict { WS(weakSelf); NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setObject:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:(self.type == CollectModel_NewTopic ? @(1) : @(0)) forKey:@"IsTopic"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } // if (self.type == CollectModel_NewTopic && self.FolderId == 0) { // SHOWERROR(@"请选择发布范围"); // return; // } SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(API_CreateNoteBook) parameters:paraDict responseStyle:JOSN success:^(id _Nonnull responseObject) { NSLog(@"%@",responseObject); SHOWSUCCESS(@"创建成功"); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } [weakSelf back1]; } failure:^(NSError * _Nonnull error) { SHOWERROR([ZYCTool handerResultData:error]); }]; } - (void)changeNoteBook:(NSDictionary *)dict { WS(weakSelf); NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setObject:@(self.Id) forKey:@"Id"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:(self.type == CollectModel_NewTopic ? @(1) : @(0)) forKey:@"IsTopic"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; if ([dict[@"Title"] length] == 0 && html.length == 0) { SHOWERROR(@"请填写标题或内容"); return; } // if (self.type == CollectModel_NewTopic && self.FolderId == 0) { // SHOWERROR(@"请选择发布范围"); // return; // } SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(API_NoteBook_Modify) parameters:paraDict responseStyle:DATA success:^(id _Nonnull responseObject) { NSLog(@"%@",responseObject); if (weakSelf.upDateBlock) { weakSelf.upDateBlock(); } SHOWSUCCESS(@"修改成功"); [[NSNotificationCenter defaultCenter] postNotificationName:DRAFTUPDATESUCCESS object:nil]; [weakSelf back1]; } failure:^(NSError * _Nonnull error) { SHOWERROR([ZYCTool handerResultData:error]); }]; } #pragma mark - 提交站内信 - (void)submitMail:(NSDictionary *)dict { self.H5JsonDict = dict; NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setValue:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:html forKey:@"HtmlContent"]; [paraDict setObject:dict[@"AddresseeUserMiddles"] forKey:@"AddresseeUserMiddles"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"CcUserMiddles"]; [paraDict setObject:[self arrayToJSONString:jsonArray] forKey:@"Content"]; [paraDict setObject:@(self.MailType) forKey:@"MissiveType"];///1 正常 2 匿名 [paraDict setObject:@(self.Id) forKey:@"ParentId"];///回复ID [paraDict setObject:@(self.shouType) forKey:@"TypeValue"]; [paraDict setObject:@(self.isDraft ? 2 : 1) forKey:@"MissiveAttributeType"];///1 发送 2 草稿 NSArray * addArray = self.H5JsonDict[@"AddresseeUserMiddles"]; NSArray * ccArray = self.H5JsonDict[@"CcUserMiddles"]; if ([self.H5JsonDict[@"Title"] length] == 0 && [self.H5JsonDict[@"html"] length] == 0 && addArray.count == 0 && ccArray.count == 0) { SHOWERROR(@"请填写标题或内容"); return; } if (self.isEdit) { if (self.replayType == MailReplayOne || self.replayType == MailReplayAll) { }else{ [paraDict setObject:@(self.Id) forKey:@"Id"]; } } [self sentMailRequeast:paraDict]; } - (void)sentMailRequeast:(NSMutableDictionary *)dic { WS(weakSelf); SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(API_InterLetterModify) parameters:dic responseStyle:DATA success:^(id _Nonnull responseObject) { if(weakSelf.isDraft){ SHOWSUCCESS(@"站内信已经存放草稿箱"); }else{ SHOWSUCCESS(@"站内信已经发送"); } if (weakSelf.replayType == MailReplayOne || weakSelf.replayType == MailReplayAll) { [weakSelf backMailList]; }else{ [weakSelf back1]; } } failure:^(NSError * _Nonnull error) { SHOWERROR([ZYCTool handerResultData:error]); }]; } - (NSString *)arrayToJSONModel:(NSArray *)array { NSMutableArray * mArray = [NSMutableArray array]; for (SelectModel * model in array) { NSDictionary * dict = [model modelToJSONObject]; [mArray addObject:@{@"SourceType":dict[@"SourceType"],@"SourceId":dict[@"SourceId"],@"SourceName":dict[@"SourceName"],@"MiddleType":@(self.type)}]; } return [self arrayToJSONString:mArray]; } - (NSString *)arrayTosumbitString:(NSArray *)array { NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableString *mutStr = [NSMutableString stringWithString:jsonString]; return mutStr; } - (NSString *)arrayToJSONString:(NSArray *)array { if (array.count == 0) { return @""; } NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableString *mutStr = [NSMutableString stringWithString:jsonString]; NSRange range = {0,jsonString.length}; //去掉字符串中的空格 [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range]; NSRange range2 = {0,mutStr.length}; //去掉字符串中的换行符 [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2]; return mutStr; } - (void)dealloc { [self.webView stopLoading]; self.webView.UIDelegate = nil; self.webView.navigationDelegate = nil; self.webView.scrollView.delegate = nil; [self.webView removeFromSuperview]; WKWebsiteDataStore *dateStore = [WKWebsiteDataStore defaultDataStore]; [dateStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] completionHandler:^(NSArray * __nonnull records) { for (WKWebsiteDataRecord *record in records) { [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:record.dataTypes forDataRecords:@[record] completionHandler:^{ NSLog(@"Cookies for %@ deleted successfully",record.displayName); }]; } }]; WKUserContentController *userCC = self.webView.configuration.userContentController; [userCC removeScriptMessageHandlerForName:@"chosePic"]; [userCC removeScriptMessageHandlerForName:@"toPZ"]; [userCC removeScriptMessageHandlerForName:@"toBJ"]; [userCC removeScriptMessageHandlerForName:@"getJp"]; [userCC removeScriptMessageHandlerForName:@"toSC"]; [userCC removeScriptMessageHandlerForName:@"toWJ"]; [userCC removeScriptMessageHandlerForName:@"keyBoard"]; [userCC removeScriptMessageHandlerForName:@"getType"]; [userCC removeScriptMessageHandlerForName:@"approverCheckUsers"]; [userCC removeScriptMessageHandlerForName:@"carbonCopyUsers"]; [userCC removeScriptMessageHandlerForName:@"changeState"]; [userCC removeScriptMessageHandlerForName:@"to"]; [userCC removeScriptMessageHandlerForName:@"postH"]; [userCC removeAllUserScripts]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } //- (void)hideWKWebviewKeyboardShortcutBar:(WKWebView *)webView { // UIView *targetView; // // for (UIView *view in webView.scrollView.subviews) { // if([[view.class description] hasPrefix:@"WKContent"]) { // targetView = view; // } // } // if (!targetView) { // return; // } // NSString *noInputAccessoryViewClassName = [NSString stringWithFormat:@"%@_NoInputAccessoryView", targetView.class.superclass]; // Class newClass = NSClassFromString(noInputAccessoryViewClassName); // // if(newClass == nil) { // newClass = objc_allocateClassPair(targetView.class, [noInputAccessoryViewClassName cStringUsingEncoding:NSASCIIStringEncoding], 0); // if(!newClass) { // return; // } // // Method method = class_getInstanceMethod([_NoInputAccessoryView class], @selector(inputAccessoryView)); // // class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method)); // // objc_registerClassPair(newClass); // } // // object_setClass(targetView, newClass); //} - (CollectModelType)returnType:(NSString *)url { NSString * name = [[url pathExtension] lowercaseString]; if([name hasSuffix:@"png"] || [name hasSuffix:@"jpg"] || [name hasSuffix:@"jpeg"] || [name hasSuffix:@"bmp"]){ return CollectModel_Image; }else{ return CollectModel_file; } } #pragma mark - 通知存草稿箱 - (void)backAction:(id)sender{ if (self.type == CollectModel_Notice || self.type == CollectModel_InterMail || self.type == CollectModel_NewTopic || self.type == CollectModel_Toipc || self.type == CollectModel_NoteBook) { if (self.isNull) { [super backAction:sender]; }else{ [self saveToDraftBox]; } }else{ [super backAction:sender]; } } - (void)menuAction:(id)sender { [[NSNotificationCenter defaultCenter] postNotificationName:CHECKDRAFT object:nil]; [super menuAction:sender]; } - (void)saveToDraftBox { WS(weakSelf); [[ShowKeepNoticeAlert initShowKeepNoticeAlertConfirm:^{ weakSelf.isDraft = YES; [weakSelf submit]; } cancle:^(ShowKeepNoticeCloseType colseType) { [[NSUserDefaults standardUserDefaults] removeObjectForKey:DRAFT]; if(colseType == ShowKeepNoticeCloseType1){ [weakSelf.navigationController popViewControllerAnimated:YES]; } }] show]; } - (void)backMailList { for (UIViewController * vc in self.navigationController.viewControllers) { if ([vc isKindOfClass:NSClassFromString(@"TDInterLeterHomeViewController")]) { [self.navigationController popToViewController:vc animated:YES]; return; } } } - (void)back1 { if (self.isEdit) { for (NSInteger i = (self.navigationController.viewControllers.count - 1); i >= 0; i --) { UIViewController *vc = self.navigationController.viewControllers[i]; if ([vc isKindOfClass:NSClassFromString(@"CountDataVC")] || [vc isKindOfClass:NSClassFromString(@"MyApprovalPageDetail")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowOrderController")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowFecordController")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowDetailsController")] || [vc isKindOfClass:NSClassFromString(@"TDGroupInfoListVC")] || [vc isKindOfClass:NSClassFromString(@"TDInterLeterHomeViewController")] || [vc isKindOfClass:NSClassFromString(@"OtherNoteBookVC")] || [vc isKindOfClass:NSClassFromString(@"OtherFavoriteVC")] || [vc isKindOfClass:NSClassFromString(@"NoteBookVC")] || [vc isKindOfClass:NSClassFromString(@"CommonNoteVC")] || [vc isKindOfClass:NSClassFromString(@"SourceHomeVC")] || [vc isKindOfClass:NSClassFromString(@"SourceGroupVC")] || [vc isKindOfClass:NSClassFromString(@"MyTDTopicBookVC")] || [vc isKindOfClass:NSClassFromString(@"EMChatViewController")] || [vc isKindOfClass:NSClassFromString(@"MyFavoriteVC")] || [vc isKindOfClass:NSClassFromString(@"MyInfoVC")] || [vc isKindOfClass:NSClassFromString(@"CommonHomeVC")]) { [self.navigationController popToViewController:vc animated:YES]; return; } } }else{ for (NSInteger i = (self.navigationController.viewControllers.count - 1); i >= 0; i --) { UIViewController *vc = self.navigationController.viewControllers[i]; if ([vc isKindOfClass:NSClassFromString(@"CountDataVC")] || [vc isKindOfClass:NSClassFromString(@"MyApprovalPageDetail")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowOrderController")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowFecordController")] || [vc isKindOfClass:NSClassFromString(@"WorkFlowDetailsController")] || [vc isKindOfClass:NSClassFromString(@"TDGroupInfoListVC")] || [vc isKindOfClass:NSClassFromString(@"TDInterLeterHomeViewController")] || [vc isKindOfClass:NSClassFromString(@"OtherNoteBookVC")] || [vc isKindOfClass:NSClassFromString(@"OtherFavoriteVC")] || [vc isKindOfClass:NSClassFromString(@"NoteBookVC")] || [vc isKindOfClass:NSClassFromString(@"CommonNoteVC")] || [vc isKindOfClass:NSClassFromString(@"SourceHomeVC")] || [vc isKindOfClass:NSClassFromString(@"SourceGroupVC")] || [vc isKindOfClass:NSClassFromString(@"MyTDTopicBookVC")] || [vc isKindOfClass:NSClassFromString(@"MyTDTopicDetailVC")] || [vc isKindOfClass:NSClassFromString(@"EMChatViewController")] || [vc isKindOfClass:NSClassFromString(@"MyFavoriteVC")] || [vc isKindOfClass:NSClassFromString(@"MyInfoVC")] || [vc isKindOfClass:NSClassFromString(@"CommonHomeVC")]) { [self.navigationController popToViewController:vc animated:YES]; return; } } } } #pragma mark - JS调起键盘 - (void)allowDisplayingKeyboardWithoutUserAction { Class class = NSClassFromString(@"WKContentView"); NSOperatingSystemVersion iOS_11_3_0 = (NSOperatingSystemVersion){11, 3, 0}; NSOperatingSystemVersion iOS_12_2_0 = (NSOperatingSystemVersion){12, 2, 0}; NSOperatingSystemVersion iOS_13_0_0 = (NSOperatingSystemVersion){13, 0, 0}; char * methodSignature = "_startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:"; if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion: iOS_13_0_0]) { methodSignature = "_elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:"; } else if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion: iOS_12_2_0]) { methodSignature = "_elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:"; } if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion: iOS_11_3_0]) { SEL selector = sel_getUid(methodSignature); Method method = class_getInstanceMethod(class, selector); IMP original = method_getImplementation(method); IMP override = imp_implementationWithBlock(^void(id me, void* arg0, BOOL arg1, BOOL arg2, BOOL arg3, id arg4) { ((void (*)(id, SEL, void*, BOOL, BOOL, BOOL, id))original)(me, selector, arg0, TRUE, arg2, arg3, arg4); }); method_setImplementation(method, override); } else { SEL selector = sel_getUid("_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:"); Method method = class_getInstanceMethod(class, selector); IMP original = method_getImplementation(method); IMP override = imp_implementationWithBlock(^void(id me, void* arg0, BOOL arg1, BOOL arg2, id arg3) { ((void (*)(id, SEL, void*, BOOL, BOOL, id))original)(me, selector, arg0, TRUE, arg2, arg3); }); method_setImplementation(method, override); } } #pragma mark - 存草稿 - (void)saveDraft:(NSDictionary *)dict { if (ISEmpty(dict[@"Title"]) && ISEmpty(dict[@"html"])) { [[NSUserDefaults standardUserDefaults] removeObjectForKey:DRAFT]; return; } self.isDraft = YES; switch (self.type) { case CollectModel_Toipc: { [self GroupTopicDraft:dict]; } break; case CollectModel_NewTopic: { [self noteTopicDraft:dict]; } break; case CollectModel_NoteBook: { [self noteTopicDraft:dict]; } break; // case CollectModel_Notice: // { // [self noticeDraft:dict]; // } // break; // case CollectModel_InterMail: // { // [self MailDraft:dict]; // } // break; default: break; } } - (void)GroupTopicDraft:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setObject:@(self.FolderId) forKey:@"GroupId"]; // [paraDict setObject:@() forKey:@"FolderId"]; [paraDict setObject:ISEmpty(html) ? @"": html forKey:@"HtmlContent"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; [paraDict setObject:@(self.type) forKey:@"Type"]; USERDEFAULTSSET(paraDict,DRAFT); } - (void)noteTopicDraft:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setObject:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:@(self.isDraft) forKey:@"IsDraft"]; [paraDict setObject:ISEmpty(html) ? @"": html forKey:@"HtmlContent"]; [paraDict setObject:(self.type == CollectModel_NewTopic ? @(1) : @(0)) forKey:@"IsTopic"]; [paraDict setObject:[self arrayTosumbitString:jsonArray] forKey:@"Content"]; [paraDict setObject:@(self.type) forKey:@"Type"]; USERDEFAULTSSET(paraDict,DRAFT); } - (void)noticeDraft:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setValue:self.isDraft ? @(2) : @(1) forKey:@"NoticeType"]; [paraDict setValue:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:ISEmpty(html) ? @"": html forKey:@"HtmlContent"]; [paraDict setObject:@(self.shouType) forKey:@"TypeValue"]; [paraDict setObject:dict[@"AddresseeUserMiddles"] forKey:@"AddresseeUserMiddles"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"CcUserMiddles"]; [paraDict setObject:[self arrayToJSONString:jsonArray] forKey:@"Content"]; [paraDict setObject:@(self.type) forKey:@"Type"]; USERDEFAULTSSET(paraDict,DRAFT); } - (void)MailDraft:(NSDictionary *)dict { NSString * html = dict[@"html"]; NSArray * jsonArray = dict[@"json"]; NSMutableDictionary * paraDict = [NSMutableDictionary dictionary]; [paraDict setObject:dict[@"Title"] forKey:@"Title"]; [paraDict setObject:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [paraDict setValue:@(self.FolderId) forKey:@"FolderId"]; [paraDict setObject:ISEmpty(html) ? @"": html forKey:@"HtmlContent"]; [paraDict setObject:dict[@"AddresseeUserMiddles"] forKey:@"AddresseeUserMiddles"]; [paraDict setObject:dict[@"CcUserMiddles"] forKey:@"CcUserMiddles"]; [paraDict setObject:[self arrayToJSONString:jsonArray] forKey:@"Content"]; [paraDict setObject:@(self.MailType) forKey:@"MissiveType"];///1 正常 2 匿名 [paraDict setObject:@(self.Id) forKey:@"ParentId"];///回复ID [paraDict setObject:@(self.shouType) forKey:@"TypeValue"]; [paraDict setObject:@(self.isDraft ? 2 : 1) forKey:@"MissiveAttributeType"];///1 发送 2 草稿 [paraDict setObject:@(self.type) forKey:@"Type"]; USERDEFAULTSSET(paraDict,DRAFT); } #pragma mark - UIScrollViewDelegate -(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView { return nil; } @end