234 lines
7.5 KiB
JavaScript
234 lines
7.5 KiB
JavaScript
const BasePage = require( "act.page.base" );
|
|
const NxTogs = require( "nx.fx.togs" );
|
|
const NxSpine = require( "nx.fx.spine" );
|
|
const PathTool = require( "pathtool" );
|
|
const Payment = require( "payment.mod" );
|
|
const RoleController = require( "role_controller" );
|
|
|
|
cc.Class({
|
|
|
|
extends: BasePage,
|
|
|
|
properties: {
|
|
|
|
list : { default: null, type: cc.Node },
|
|
nodCharge: { default: null, type: cc.Node },
|
|
nodNormalCharge: { default: null, type: cc.Node },
|
|
video: { default: null,type: cc.VideoPlayer },
|
|
nodCtl : { default: null, type: cc.Node },
|
|
nodRole : { default: null, type: NxSpine },
|
|
nodTitle : { default: null, type: cc.Node },
|
|
nodMenus : { default: null, type: NxTogs },
|
|
nodRightDesc : { default: null, type: cc.Node },
|
|
},
|
|
|
|
// 初始化
|
|
build: function( _data ) {
|
|
|
|
this._super( _data );
|
|
|
|
this.charge = 0;
|
|
this.normalCharge = 0;
|
|
// this.default = 0;
|
|
// 无效
|
|
if( !this.mod ) {
|
|
return;
|
|
}
|
|
let ccfg = gdata( this.data.config, "data_constant" ).spine_charge.val;
|
|
|
|
|
|
// nx.gui.setActive( this, "op/btn_buy", false );
|
|
// nx.gui.setActive( this.video.node.parent, "", false );
|
|
this.charge_data = gdata( this.data.config, "data_new_first_charge_data3" ); //game.configs.charge_data.data_new_first_charge_data3;
|
|
|
|
let fids = [];
|
|
this.fidsss = [];
|
|
for (let i in this.charge_data) {
|
|
let fid = this.charge_data[i];
|
|
if( !nx.dt.arrMember( fids, fid.fid ) ){
|
|
fids.push( fid.fid );
|
|
this.fidsss.push( { fid : fid.fid, cost : fid.desc1, price :fid.desc2, model : fid.desc3 , desc : fid.desc , leftdesc : fid.desc5, rightdesc : fid.desc4 } );
|
|
}
|
|
}
|
|
this.fidsss.sort( Utils.tableLowerSorter( ["fid"] ) );
|
|
// fids.sort( );
|
|
this.select_index = 1;//fid
|
|
|
|
// this.togs.posTog = this.onTogMenu.bind( this );
|
|
// this.togs.togTo( 0 );
|
|
// 活动监听
|
|
this.mod.vbind( this, [
|
|
[ "firstCharge", this.freshInfos.bind( this ) ],
|
|
] );
|
|
|
|
nx.gui.gocChildren( this.nodMenus, "", fids.length );
|
|
|
|
let chd = this.nodMenus.node.children;
|
|
|
|
for (let c = 0; c < chd.length; c++) {
|
|
let nod = chd[c];
|
|
let info = this.fidsss[c];
|
|
nx.gui.setString( nod, "on/txt", info.desc );
|
|
nx.gui.setString( nod, "off/txt", info.desc );
|
|
}
|
|
|
|
// nx.gui.gocChildren( this.nodMenus, "", fids.length );
|
|
|
|
|
|
|
|
this.nodMenus.posTog = this.onTogMenu.bind( this );
|
|
this.nodMenus.togTo( 0 );
|
|
this.onTogMenu( 0 );
|
|
|
|
let firstop = true;
|
|
// let open = nx.storage.get( "openvideovol" + role.rid );
|
|
// if( open ){
|
|
// firstop = open == 1;
|
|
// }
|
|
// this.video.volume = firstop ? 0 : 1;
|
|
// this.nodCtl.getComponent( cc.Toggle ).isChecked = firstop;
|
|
// let desc = firstop ? nx.text.getKey( "ActSeeVideoDefaultTips" ) : nx.text.getKey( "ActSeeVideoOpenTips" ) ;
|
|
// nx.gui.setString( this.nodCtl, "tips", desc );
|
|
|
|
this.mod.reqFirstData();
|
|
// this.setMainInfo();
|
|
|
|
},
|
|
|
|
// 销毁
|
|
onDestroy: function() {
|
|
|
|
// nx.gui.setActive( this, "op/btn_buy", false );
|
|
// nx.gui.setActive( this.video, "", false );
|
|
// 活动监听解除
|
|
if( this.mod ) {
|
|
this.mod.vunbind( this );
|
|
}
|
|
|
|
this._super();
|
|
},
|
|
|
|
onEnable: function(){
|
|
|
|
|
|
},
|
|
|
|
freshInfos: function( _data ){
|
|
|
|
if( nx.dt.arrEmpty( _data ) || !_data ) return;
|
|
nx.gui.hideAllChildren( this.nodCharge, "cost" );
|
|
let rewards = [];
|
|
let count = 0;
|
|
for (let i = 0; i < _data.length; i++) {
|
|
let gift = _data[i];
|
|
let cfgc = this.charge_data[ gift.id ];
|
|
let award_status = _data[ i ].status;
|
|
|
|
if( cfgc.fid == this.select ){
|
|
if( award_status == 1 || award_status == 2 ){
|
|
count++;
|
|
}
|
|
rewards.push( { cfg: cfgc, status: award_status } );
|
|
this.charge = cfgc.desc2;
|
|
this.normalCharge = cfgc.desc1;
|
|
}
|
|
|
|
}
|
|
|
|
// 请求信息
|
|
let price = Payment.getInstance().transPrice( this.charge );
|
|
let normalPrice = Payment.getInstance().transPrice( this.normalCharge );
|
|
|
|
let path = "cost/" + "num" + price;
|
|
nx.gui.setString( this.nodCharge, path, price );
|
|
nx.gui.setActive( this.nodCharge, path, true );
|
|
nx.gui.setString( this.nodNormalCharge, "", normalPrice );
|
|
|
|
|
|
rewards.sort( ( a, b ) => {
|
|
return a.cfg.day - b.cfg.day;
|
|
} );
|
|
nx.gui.setString( this, "op/btn_buy/txt", count > 0 ? nx.text.getKey( "Charged" ) : nx.text.getKey( "Buy" ) );
|
|
let cmp = nx.gui.getComponent( this, "op/btn_buy", cc.Button );
|
|
if( cmp ){
|
|
cmp.interactable = ( count == 0 );
|
|
}
|
|
// nx.gui.setActive( this.video, "", true );
|
|
// nx.tween.fadeIn( this, "op/btn_buy", 0.5 );
|
|
nx.tween.fadeIn( this, "op/btn_buy", 0.3 );
|
|
this.refreshItems( rewards );
|
|
// nx.gui.setActive( this.btnBuy, "", is_buy );
|
|
},
|
|
|
|
|
|
refreshItems( cur_list ) {
|
|
nx.gui.gocChildren( this.list, "", cur_list.length );
|
|
for (let i = 0; i < this.list.children.length; i++) {
|
|
let nod = this.list.children[i];
|
|
let cmp = nx.gui.getComponent( nod, "", "cmp.act.firstcharge.item" );
|
|
if( cmp ) {
|
|
cmp.rebind( i, cur_list[ i ], this.mod );
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
onClickBuy() {
|
|
|
|
let charge_id = null;
|
|
for( let i in this.charge_data ) {
|
|
if( this.charge_data[ i ].fid == this.select ) {
|
|
charge_id = this.charge_data[ i ].need_exp;
|
|
break;
|
|
}
|
|
}
|
|
if( charge_id == null ) return;
|
|
Payment.getInstance().reqPayment( charge_id );
|
|
},
|
|
|
|
onTouchVideo: function(){
|
|
this.video.play();
|
|
},
|
|
|
|
onTouchVolCtl: function( _nod ){
|
|
|
|
let role = RoleController.getInstance().getRoleVo();
|
|
let nod = _nod;
|
|
let select = nod.getComponent( cc.Toggle ).isChecked;
|
|
let desc = select ? nx.text.getKey( "ActSeeVideoDefaultTips" ) : nx.text.getKey( "ActSeeVideoOpenTips" ) ;
|
|
nx.gui.setString( nod, "tips", desc );
|
|
this.video.volume = select ? 0 : 1 ;
|
|
nx.storage.set( "openvideovol" + role.rid, select ? 1 : 0 );
|
|
|
|
},
|
|
|
|
|
|
onTogMenu: function( _idx ){
|
|
|
|
let cfg = this.fidsss[_idx];
|
|
this.select = parseInt( _idx ) + 1;
|
|
let dataa = this.mod.vget( "firstCharge" );
|
|
|
|
let model = cfg.model;
|
|
this.nodRole.load( "resDB/models/" + model + "/show", ( _e ) => {
|
|
if( !_e ) {
|
|
this.nodRole.action( "action1", true );
|
|
} else {
|
|
this.nodRole.stop();
|
|
}
|
|
} );
|
|
|
|
let uipath = cc.path.join( "locals/{lang}/images/acts", cfg.rightdesc );
|
|
nx.gui.setSpriteFrame( this.nodRightDesc, "", nx.res.fmtPath( uipath ) );
|
|
if( nx.dt.strNEmpty( cfg.leftdesc ) ){
|
|
let uipath = cc.path.join( "locals/{lang}/images/acts", cfg.leftdesc );
|
|
nx.gui.setSpriteFrame( this.nodTitle, "", nx.res.fmtPath( uipath ) );
|
|
}else{
|
|
nx.gui.setSpriteFrame( this.nodTitle, "", null );
|
|
}
|
|
|
|
this.freshInfos( dataa );
|
|
},
|
|
|
|
});
|