//
//  CountDataVC.m
//  smartRhino
//
//  Created by niuzhen on 2020/3/5.
//  Copyright © 2020 tederen. All rights reserved.
//

#import "CountDataVC.h"
#import "MyTDGroupViewController.h"
#import "MyTDTopicCreateVC.h"
#import "MoveViewController.h"
#import "TDGroupInfoListVC.h"
#import "NoteBookShareVC.h"
#import "ShareListVC.h"

@interface CountDataVC ()<WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler,NoteBookShareVCDelegate>
@property (weak, nonatomic) IBOutlet UIView *navBar;
@property (weak, nonatomic) IBOutlet UIButton *shareBtn;
@property (weak, nonatomic) IBOutlet UILabel *titleL;
@property (nonatomic, strong)WKWebView * webView;
@property (strong, nonatomic) NoteBookShareVC          * noteBookShareVC;

@end

@implementation CountDataVC
+(CountDataVC *)initCountDataVC{
    CountDataVC *controller = [StoryboardManager.shared.verisonData instantiateViewControllerWithIdentifier:@"CountDataVC"];
    return controller;
}
- (void)shareHander{
    [self.noteBookShareVC initNoteBookShareData];
    self.noteBookShareVC.isWork = YES;
    self.noteBookShareVC.view.hidden = !self.noteBookShareVC.view.hidden;
}

- (NoteBookShareVC *)noteBookShareVC{
    if (_noteBookShareVC == nil) {
        _noteBookShareVC = [NoteBookShareVC initNoteBookShareVC];
        [_noteBookShareVC.view setFrame:CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT)];
        [_noteBookShareVC.view setHidden:YES];
        _noteBookShareVC.delegate = self;
    }
    return _noteBookShareVC;
}

-(void)userSelectType:(NSString *)typeName WithIndexPath:(NSIndexPath *)indexPath{
    self.noteBookShareVC.view.hidden = !self.noteBookShareVC.view.hidden;
    if ([typeName isEqualToString:@"发给微信好友"]) {
        
    }else if ([typeName isEqualToString:@"发到朋友圈"]){
        
    }else if ([typeName isEqualToString:@"发到微博"]){
        
    }else if ([typeName isEqualToString:@"发给QQ好友"]){
        
    }else if ([typeName isEqualToString:@"发到消息"]){
        [self returnToMessage];
    }else if ([typeName isEqualToString:@"发到小组"]){
        [self returnToGroup];
    }else if ([typeName isEqualToString:@"发到笔记"]){
        [self returnToNote];
    }else if ([typeName isEqualToString:@"发到话题"]){
        [self returnToTopic];
    }else{
    }
}
- (void)returnToMessage
{
    ShareListVC * vc = [ShareListVC initShareListVC];
    FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init];
    model.SoureTypeId = [self returnType:self.index];
    model.Title = self.titleStr;
    vc.sendModel = model;
    vc.isReturn = YES;
    [self.navigationController pushViewController:vc animated:YES];
}
- (void)returnToGroup
{
    MyTDGroupViewController * vc = [[MyTDGroupViewController alloc] init];
    FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init];
    model.SoureTypeId = [self returnType:self.index];
    model.Title = self.titleStr;
    vc.type = CollectModel_Group;
    vc.sendModel = model;
    vc.isReturn = YES;
    [self.navigationController pushViewController:vc animated:YES];
}
- (void)returnToNote
{
    MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
    FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init];
    model.SoureTypeId = [self returnType:self.index];
    model.Title = self.titleStr;
    vc.type = CollectModel_NoteBook;
    vc.sendModel = model;
    vc.isReturn = YES;
    [self.navigationController pushViewController:vc animated:YES];
}
- (void)returnToTopic
{
    MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC];
    FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init];
    model.SoureTypeId = [self returnType:self.index];
    model.Title = self.titleStr;
    vc.sendModel = model;
    vc.type = CollectModel_NewTopic;
    vc.isReturn = YES;
    [self.navigationController pushViewController:vc animated:YES];
}

- (IBAction)backAction:(id)sender {
    [super backAction:sender];
}
- (IBAction)menuAction:(id)sender {
    [super menuAction:sender];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.fd_prefersNavigationBarHidden = YES;

    [self.view addSubview:self.webView];
    [self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.navBar.mas_bottom);
        make.left.right.mas_equalTo(self.view);
        if (@available(iOS 11.0, *)) {
            make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom);
        } else {
            make.bottom.equalTo(self.view.mas_bottom);
        }
    }];
    self.webView.UIDelegate = self;
    // 导航代理
    self.webView.navigationDelegate = self;
    self.automaticallyAdjustsScrollViewInsets = YES;
    NSURL *pathUrl = [NSURL URLWithString:HtmlHost(@"/mobile/total")];
//    NSURL *pathUrl = [NSURL URLWithString:@"http://192.168.0.118:8080/#/mobile/total"];
    NSURLRequest *request = [NSURLRequest requestWithURL:pathUrl];
    [self.webView loadRequest:request];
    self.titleL.text = self.titleStr;
    [[UtilsTools getWindow] addSubview:self.noteBookShareVC.view];
    WS(weakSelf);
    [self.shareBtn setAction:^{
        [weakSelf shareHander];
    }];
}
#pragma mark - layload
- (WKWebView *)webView
{
    if (!_webView) {
        WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
        // 实例化对象
        WKUserContentController* userContent = [[WKUserContentController alloc] init];
        [userContent addScriptMessageHandler:self name:@"getTotal"];
        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];
        // UI代理
    }
    return _webView;
}
#pragma mark - WKScriptMessageHandler
- (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message {
    if ([message.name isEqualToString:@"getTotal"]) {
        NSArray * array = @[];
        switch (self.index) {
            case 0:
                array = @[@(1),@(2),@(3)];
                break;
            case 1:
                array = @[@(4),@(5),@(6)];
                break;
            default:
                array = @[@(7),@(8),@(9)];
                break;
        }
        NSString *jsonString = [NSString stringWithFormat:@"getTotal('%@')",[self arrayToJSONString:array]];
        [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) {
            NSLog(@"data:%@",data);
            NSLog(@"error:%@",error);
        }];
    }
}
- (NSString *)arrayToJSONString:(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];
    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
{
    NSLog(@"=========%@",message);
    completionHandler();
}
- (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:@"getTotal"];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (CollectModelType)returnType:(NSInteger)index
{
    switch (index) {
        case 0:
            return CollectModel_financeCount;
            break;
        case 1:
            return CollectModel_affairsCount;
            break;
        default:
            return CollectModel_publishCount;
            break;
    }
}
@end