Files
fc/dev/project/assets/Scripts/mod/mail/cmp/cmp.mail.cell.js
T
2026-05-23 22:10:14 +08:00

180 lines
4.5 KiB
JavaScript

// Learn cc.Class:
// - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var PathTool = require( "pathtool" );
var TimeTool = require( "timetool" );
var MailController = require("mail.mod");
var MailEvent = require("mail_event");
const SvcItem = require("nx.fx.sv.expand.item")
cc.Class({
extends: SvcItem,
properties: {
//mail
mail_con:{
default:null,
type:cc.Node
},
mail_icons:{
default:[],
type:[cc.SpriteFrame]
},
icon:{
default:null,
type:cc.Sprite
},
mail_title:{
default:null,
type:cc.Label
},
time:{
default:null,
type:cc.Label
},
unread:{
default:null,
type:cc.Label
},
red:{
default:null,
type:cc.Node
},
//notice
notice_con:{
default:null,
type:cc.Node
},
notice_title:{
default:null,
type:cc.Label
},
notice_content:{
default:null,
type:cc.Label
},
focus_icon:{
default:null,
type:cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
// 数据重置
rebind: function( _idx, _data, _key ) {
this._super( _idx, _data, _key );
// 刷新
this.setData(this.mdata)
},
onLoad () {
this.ctrl = MailController.getInstance();
},
start () {
},
onFocus(){
if( !this.focus_icon.active) {
this.focus_icon.active = true;
}
},
outFocus(){
if( this.focus_icon.active ) {
this.focus_icon.active = false;
}
},
// openInfoView(){
// if(this.callback){
// this.callback(this);
// }
// },
setData(data){
if(nx.dt.objEmpty(data)){
return false;
}
if( this.mdata.status >= 0 ) { //邮件
this.mail_con.active = true;
this.notice_con.active = false;
var show_time = TimeTool.getDayOrHour( client.socket.getTime() - this.mdata.send_time );
if( show_time ) {
this.time.string = show_time;
} else {
this.time.string = "";
}
this.changeIcon( this.mdata.status );
let str = this.mdata.subject;
if(str.length >= 18){
str = str.substring(0,15) + "...";
}
this.mail_title.string = str;
} else if( this.mdata.flag >= 0 ) { //公告
this.mail_con.active = false;
this.notice_con.active = true;
let str = this.mdata.title;
if(str.length >= 18){
str = str.substring(0,15) + "...";
}
this.notice_title.string = str;
// this.notice_content.string = this.mdata.summary;
this.setGray( this.mdata.flag == 1 );
}
},
//邮件的icon改变
changeIcon: function( status ) {
this.red.active = false;
this.unread.string = ( status == 0 ) ? nx.text.getKey("MailUnread"): nx.text.getKey("MailReal");
if( status == 1 ) { //已读
this.icon.spriteFrame = this.mail_icons[status]
this.setGray( true );
if(this.mdata.is_has == 1){//有附件
this.icon.spriteFrame = this.mail_icons[3]
}
} else if( status == 2 ) { //领了
this.icon.spriteFrame = this.mail_icons[status]
this.setGray( true );
} else if( status == 0 ) { //未读
this.red.active = true;
this.icon.spriteFrame = this.mail_icons[status]
this.setGray( false );
if(this.mdata.is_has == 1){//有附件
this.icon.spriteFrame = this.mail_icons[3]
}
}
},
setGray: function( status ) {
if( status ) {
this.unread.node.active = false;
} else {
this.unread.node.active = true;
}
},
getData: function() {
return this.mdata
},
updateIconStatus: function() {
if( this.mdata == null ) return
var status = this.mdata.status;
this.changeIcon( status )
},
// update (dt) {},
});