import { _decorator, Label, Node, Sprite, SpriteFrame } from 'cc';
import { ResKeeper } from '../../../framework/res/ResKeeper';
import { StringUtil } from '../../../framework/util/StringUtil';
import { MailData } from '../../data/MailData';
import { Framework } from '../../../framework/Framework';
import { ViewID } from '../../../framework/config/LayerConf';
import { LoginMgr } from '../../common/LoginManager';
import { GameEvent } from '../../data/GameEvent';
const { ccclass, property } = _decorator;

@ccclass('MailItem')
export class MailItem extends ResKeeper {
	@property({ type: Node, tooltip: "邮件状态" })
	awardBg: Node = null;

	@property({ type: Node, tooltip: "奖励节点" })
	awardNode: Node = null;

	@property({ type: Label, tooltip: "邮件标题" })
	titleTx: Label = null;

	@property({ type: Label, tooltip: "邮件时间" })
	timeTx: Label = null;

	@property({ type: Node, tooltip: "已读状态" })
	readIco: Node = null;
	@property({ type: Label, tooltip: "已读状态文字" })
	readIcoTx: Label = null;

	@property({ type: Node, tooltip: "附件" })
	awardTips: Node = null;
	@property({ type: Label, tooltip: "附件文字" })
	awardTipsTx: Label = null;

	@property({ type: Node, tooltip: "已读遮罩" })
	maskImg: Node = null;

	private data = null;
	protected onLoad() {
		this.readIcoTx.string = StringUtil.getLanguageData('已读');
		this.awardTipsTx.string = StringUtil.getLanguageData('附件');
	}

	refreshItem(data) {
		this.data = data;

		this.titleTx.string = MailData.getMailText(data.title,true);

		this.maskImg.active = false;
		this.readIco.active = false;

		let date = new Date(data.time);
		let Y = date.getFullYear() + '-';
		let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
		let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '';
		this.timeTx.string = Y + M + D;

		if (data.award && data.award.size > 0) {
			this.awardTips.active = false;
			let showAward = MailData.getShowAward(data.id)
			if (showAward) {
				this.awardBg.active = false;
				this.awardNode.active = true;
			} else {
				this.awardBg.active = true;
				this.awardNode.active = false;
				this.load('mail', 'texture/mail_3/spriteFrame', SpriteFrame, (res: SpriteFrame) => {
					this.awardBg.getComponent(Sprite).spriteFrame = res;
				})
			}
		} else {
			this.awardBg.active = true;
			this.awardNode.active = false;
			this.awardTips.active = false;
			this.load('mail', 'texture/mail_3/spriteFrame', SpriteFrame, (res: SpriteFrame) => {
				this.awardBg.getComponent(Sprite).spriteFrame = res;
			})
		}

		if (data.read == 1) {
			this.awardBg.active = true;
			this.awardNode.active = false;
			this.awardTips.active = false;
			this.readIco.active = true;
			this.maskImg.active = true;
			this.load('mail', 'texture/mail_2/spriteFrame', SpriteFrame, (res: SpriteFrame) => {
				this.awardBg.getComponent(Sprite).spriteFrame = res;
			})
		}
	}
	protected onDestroy() {
		super.onDestroy();
	}

	onClose() {

	}

	//UI事件处理
	private onTouchButton(event: Event) {
		let target: any = event.target;
		if (target.name == 'bg') {
			if (this.data.read == 1) {
				Framework.layer.open(ViewID.MailDetail, null, this.data);
				return;
			}
			if (this.data.award && this.data.award.size > 0) {
				Framework.layer.open(ViewID.MailDetail, null, this.data);
			} else {
				LoginMgr.sendPost('user', 'read_mail', (data) => {
					// console.log(data);
					MailData.setMailReadById(this.data.id)
					Framework.event.fireEvent(GameEvent.MailUpdate);
					Framework.layer.open(ViewID.MailDetail, null, this.data);
				}, { id: this.data.id })
			}
		}
	}
}