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

242 lines
8.7 KiB
JavaScript

/******************************************************************
*
* VIP页面
*
******************************************************************/
const MenuPage = require( "cmp.com.menu.page" );
const VipController = require( "vip_controller" );
const TipsController = require( "tips_controller" );
const Payment = require( "payment.mod" );
const NxSpine = require( "nx.fx.spine" );
cc.Class( {
extends: MenuPage,
properties: {
nodGifts: { default: null, type: cc.Node },
nodScores: { default: null, type: cc.Node },
nodOp: {default: null, type: cc.Node },
spRole: { default: null, type: NxSpine },
nodCloseAllDesc : {default: null, type: cc.Node },
},
onLoad: function(){
this.cfg = game.configs.daily_charge_data;
this.spRole.load( "resDB/models/H30098/show", ( _e ) => {
if( !_e ) {
this.spRole.action( "drama1", true );
} else {
this.spRole.stop();
}
} );
// let
let count = Object.keys( this.cfg.data_gift_info ).length;
let rewards = nx.gui.find( this.nodScores, "rewards" ).children;
let len = Object.keys( this.cfg.data_reward ).length;
this.total = this.cfg.data_reward[len].num;
nx.gui.setString( this.nodScores, "point/num", 0 );
nx.gui.getComponent( this.nodScores, "prog", cc.ProgressBar ).progress = 0;
nx.gui.gocChildren( this.nodGifts, "", count );
// nx.gui.setString( this.nodOp, "now/cost", Payment.getInstance().fmtPrice(this.cfg.data_constant.sevenday_charge_price.val ) );
// nx.gui.setString( this.nodOp, "now/before", Payment.getInstance().fmtPrice( 147 ) );
for (let i = 0; i < rewards.length; i++) {
let nod = this.nodGifts.children[i];
let giftinfo = this.cfg.data_gift_info[ i+1 ];
if( giftinfo ){
let cmp = nx.gui.getComponent( nod, "items", "cmp.common.itemlayout" );
if( cmp ){
cmp.rebuild( giftinfo.reward );
}
nx.gui.find( nod, "buy" ).zIndex = giftinfo.id;
nx.gui.setString( nod, "buy/cost", giftinfo.money == 0 ? nx.text.getKey( "Free" ) : nx.text.format( "CostDay", Payment.getInstance().fmtPrice( giftinfo.money ) ) );
nx.gui.setActive( nod, "sold", false );
}
let reward = rewards[i];
let rewardinfo = this.cfg.data_reward[ i+1 ];
if( reward && rewardinfo ){
nx.gui.setString( reward, "point", rewardinfo.num ); //payment.daily.free
let cmp = nx.gui.getComponent( reward, "show/rewards", "cmp.common.itemlayout" );
if( cmp ){
cmp.rebuild( rewardinfo.reward );
}
nx.gui.find( reward, "touch" ).zIndex = rewardinfo.id;
nx.gui.setActive( reward, "get", false );
nx.gui.find( reward, "get" ).zIndex = rewardinfo.id;
nx.gui.setActive( reward, "ico_open", false );
nx.gui.setActive( reward, "show", false );
// nx.gui.setActive( reward, "tip", giftinfo.money == 0 );
}
}
nx.gui.setActive( this.nodCloseAllDesc, "", false );
this.vbind( [
[ "DailySpGift", this.onFreshBuyInfo.bind( this ) ],
] );
},
onEnable: function(){
VipController.getInstance().reqDailySpGift();
},
onTouchHideAllDesc: function(){
let chd = nx.gui.find( this.nodScores, "rewards" ).children;
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
nx.gui.setActive( nod, "show", false );
}
nx.gui.setActive( this.nodCloseAllDesc, "", false );
},
onTouchShow: function( _btn ){
let index = parseInt( _btn.zIndex - 1);
let chd = nx.gui.find( this.nodScores, "rewards" ).children;
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
if( i != index ){
nx.gui.setActive( nod, "show", false );
}
}
let nodShow = nx.gui.find( chd[index], "show" );
nx.gui.setActive( nodShow, "", !nodShow.active );
nx.gui.setActive( this.nodCloseAllDesc, "", nodShow.active == true );
},
/***
* [21041]:{"gift":[{"id":1,"status":2},{"id":2,"status":0},{"id":3,"status":0}],"num":0,"ids":[],"is_activate":0}
*/
onFreshBuyInfo: function( _buyinfo ){
if( !_buyinfo ){
return;
}
this.gifts = _buyinfo.gift;
this.chargestatus = _buyinfo.is_activate;
if( nx.dt.arrNEmpty( this.gifts ) ){
this.gifts.forEach( _gift =>{
if( _gift ){
nx.gui.setString( this.nodGifts.children[ _gift.id - 1 ], "buy/cost", _gift.status != 0 ? nx.text.getKey( "Get" ) : nx.text.format( "CostDay", Payment.getInstance().fmtPrice( this.cfg.data_gift_info[ _gift.id ].money ) ) );
nx.gui.setActive( this.nodGifts.children[ _gift.id - 1 ], "buy", _gift.status != 2 );
nx.gui.setActive( this.nodGifts.children[ _gift.id - 1 ], "buy/tip", _gift.status != 2 && ( _gift.id - 1 == 0 ) );
nx.gui.setActive( this.nodGifts.children[ _gift.id - 1 ], "sold", _gift.status == 2 );
if( _gift.id == 2 ){
nx.gui.setString( this.nodGifts.children[ _gift.id - 1 ], "sold/txt", nx.text.format( "RemainDay", _buyinfo.is_activate ) );
}else if( _gift.id == 3 ){
nx.gui.setString( this.nodGifts.children[ _gift.id - 1 ], "sold/txt", nx.text.format( "RemainDay", _buyinfo.end_day ) );
}else{
nx.gui.setString( this.nodGifts.children[ _gift.id - 1 ], "sold/txt", nx.text.getKey( "Got" ) );
}
}
} )
}
nx.gui.setString( this.nodScores, "point/num", _buyinfo.num );
// nx.gui.setActive( this.nodOp, "charged", _buyinfo.is_activate == 1 );
// nx.gui.setActive( this.nodOp, "now", _buyinfo.is_activate == 0 );
nx.gui.getComponent( this.nodScores, "prog", cc.ProgressBar ).progress = _buyinfo.num / ( this.total );
this.freshReward( _buyinfo.ids, _buyinfo.num );
// nx.gui.setActive();
// console.log( "購買信息" + JSON.stringify( _buyinfo ) );
},
freshReward: function( _rewards, _num ){
let rewards = _rewards;
let num = _num;
let rewardinfo = this.cfg.data_reward;
let nodrewards = nx.gui.find( this.nodScores, "rewards" ).children;
if( nx.dt.arrEmpty( rewards ) ){
for (let i in rewardinfo ) {
let reward = rewardinfo[i];
if( reward ){
nx.gui.setActive( nodrewards[reward.id - 1] , "get", num >= reward.num );
}
}
}else{
for (let i in rewardinfo ) {
let reward = rewardinfo[i];
if( reward ){
nx.gui.setActive( nodrewards[reward.id - 1] , "get", num >= reward.num );
}
rewards.forEach( _re =>{
nx.gui.setActive( nodrewards[ _re.id - 1 ] , "get", false );
} )
}
}
},
//[21041]:{"gift":[{"id":1,"status":0},{"id":2,"status":0},{"id":3,"status":0}],"num":0,"ids":[],"is_activate":0}
onTouchBuy: function( _btn ){
let id = _btn.zIndex;
let chargeid = this.cfg.data_gift_info[ id ].charge_id;
if( this.gifts[id-1].status == 0 ){
if( id != 1 ){
let msg = "pay " + chargeid;
Payment.getInstance().reqPayment( chargeid );
}else{
VipController.getInstance().reqGetDailySpGift( id );
}
}else{
VipController.getInstance().reqGetDailySpGift( id );
}
},
onTouchBuyOnce: function( _btn ){
if( this.chargestatus != 0 ){
nx.tbox( "Charged" );
return;
}
let chargeid = this.cfg.data_constant.sevenday_charge.val
let msg = "pay " + chargeid;
Payment.getInstance().reqPayment( chargeid );
},
onTouchGet: function( _btn ){
let id = _btn.zIndex;
VipController.getInstance().reqGetDailyReward( id );
},
onTouchHelp: function(){
let TC = TipsController.getInstance();
let explain = this.cfg.data_desc[1];
TC.showTextPanel( explain.name, explain.desc );
},
} );