AnnountcementDetailViewController.m 6.31 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
//
//  AnnountcementDetailViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2016/11/23.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "AnnountcementDetailViewController.h"
#import "WkWebViewViewController.h"
#import "AnnouncementContentTableViewCell.h"
#import "AnnouncementListTableViewCell.h"
#import "CustomWKWebViewController.h"

@interface AnnountcementDetailViewController ()<UITableViewDelegate,UITableViewDataSource>


/**
 公告标题
 */
@property (weak, nonatomic) IBOutlet UILabel *annountcementTitleLabel;

/**
 公告headerView
 */
@property (weak, nonatomic) IBOutlet UIView *announcementHeaderView;

/**
 公告类型
 */
@property (weak, nonatomic) IBOutlet CustomBorderLabel *annountcementTypeLabel;

/**
 公告时间
 */
@property (weak, nonatomic) IBOutlet UILabel *annountcementTimeLabel;

/**
 公告阅读数
 */
@property (weak, nonatomic) IBOutlet UILabel *annountcementReadCountLabel;

/**
 公告内容高度
 */
@property (nonatomic,assign) CGFloat annountcementContentHeigt;

/**
 公告数据源
 */
@property (nonatomic,strong) CustomTOAfficheEntity *afficheResult;



@end

@implementation AnnountcementDetailViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self setUpTableViewAction];
    [self addChildWebViewController];
    [self getAnnouncementDetailsDatasAction];
}

#pragma mark - 设置Tableview
- (void)setUpTableViewAction
{
    self.announcementDetailsTableView.tableFooterView = [UIView new];
    [self.announcementDetailsTableView registerClass:[AnnouncementContentTableViewCell class] forCellReuseIdentifier:@"AnnouncementContentTableViewCell"];
    self.announcementDetailsTableView.tableHeaderView = self.announcementHeaderView;
}

#pragma mark - 设置HeaderView
- (void)setUpTableViewHeaderView:(CustomTOAfficheEntity *)entity
{
    self.annountcementTitleLabel.text = entity.title;
    self.announcementHeaderView.height = entity.titleHeight + 44;
    self.annountcementTimeLabel.text = entity.createDate;
    self.annountcementTypeLabel.customText = entity.afficheType;
    self.annountcementReadCountLabel.text = [NSString stringWithFormat:@"%ld",entity.attachmentUrls.count];
}

#pragma mark - WKWebView
- (void)addChildWebViewController
{
    WS(weakSelf);
    WkWebViewViewController *webView = [[WkWebViewViewController alloc]initWithReturnContentSize:^(CGFloat contentHeight) {
        weakSelf.annountcementContentHeigt = contentHeight;
        [weakSelf.announcementDetailsTableView reloadData];
    }];
    self.annountcementContentHeigt = 44;//默认值
    webView.view.frame = CGRectMake(0, 0, ScreenWidth, self.annountcementContentHeigt);
    [self addChildViewController:webView];
}

#pragma mark - 获取公告详情数据
- (void)getAnnouncementDetailsDatasAction
{
    WS(weakSelf);
    [XBLoadingView showHUDViewWithDefault];;
    [HTTP networkWithDictionaryRequestWithURL:[NSString stringWithFormat:SERVERREQUESTURL(AFFICHEdETAILS),self.announcementEntity.fid] withRequestType:ONE withParameter:nil withReturnValueBlock:^(id returnValue) {
        
        [XBLoadingView hideHUDViewWithDefault];
        if (RESULT(returnValue)) {
            weakSelf.afficheResult = [[CustomTOAfficheEntity alloc]initWithDictionary:RESPONSE(returnValue) error:nil];
            WkWebViewViewController *webView = [weakSelf.childViewControllers firstObject];
            webView.htmlString = weakSelf.afficheResult.content;
            [weakSelf setUpTableViewHeaderView:weakSelf.afficheResult];
            if (!weakSelf.announcementEntity.readed) {
                [weakSelf announcementRead];
            }
        }else {
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
        }
        [weakSelf.announcementDetailsTableView reloadData];
        
    } withFailureBlock:^(NSError *error) {
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
    }];
}

#pragma mark - 公告已读
- (void)announcementRead
{
    WS(weakSelf);
128
    NSString *url = [NSString stringWithFormat:SERVERREQUESTURL(READANNOUNCEMENT),self.announcementEntity.fid,[Shoppersmanager manager].shoppers.employee.departid,[Shoppersmanager manager].shoppers.employee.fid,[[NSDate date] ymdHmsFormat]];
曹云霄's avatar
曹云霄 committed
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
    url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\"[]|\\<> "].invertedSet];
    [HTTP networkWithDictionaryRequestWithURL:url withRequestType:ZERO withParameter:nil withReturnValueBlock:^(id returnValue) {
        
        if (RESULT(returnValue)) {
            if (weakSelf.readBlock) {
                weakSelf.readBlock();
            }
        }else {
           [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
        }
    } withFailureBlock:^(NSError *error) {
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
    }];
}

#pragma mark - <UITableViewDelegate,UITableViewDataSource>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {
        AnnouncementContentTableViewCell *contentCell = [tableView dequeueReusableCellWithIdentifier:@"AnnouncementContentTableViewCell" forIndexPath:indexPath];
        [contentCell.contentView addSubview:self.childViewControllers[0].view];
        return contentCell;
    }
    AnnouncementListTableViewCell *listCell = [tableView dequeueReusableCellWithIdentifier:@"AnnouncementListTableViewCell" forIndexPath:indexPath];
    listCell.attachmentEntity = self.afficheResult.attachmentUrls[indexPath.row-1];
    return listCell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    
    return self.afficheResult.attachmentUrls.count+1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {
        return self.annountcementContentHeigt;
    }
    return 80;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    CustomWKWebViewController *wkWebView = [[CustomWKWebViewController alloc]init];
    TOAttachmentEntity *attachment = self.afficheResult.attachmentUrls[indexPath.row-1];
    wkWebView.urlString = attachment.fileUrl;
    wkWebView.type = Announcement;
    [self presentViewController:wkWebView animated:YES completion:nil];
}

@end