Files
fc/dev/project/library/imports/0d/0d18ab14-e1ab-4b0b-8c4d-946bafee538a.js
T
2026-05-24 10:21:26 +08:00

309 lines
9.8 KiB
JavaScript

"use strict";
cc._RF.push(module, '0d18asU4atLC4xNlGuv7lOK', 'cmp.act.custom.page');
// Scripts/mod/acts/sevencustomization/cmp/cmp.act.custom.page.js
"use strict";
/******************************************************************
*
* 定制页面
*
******************************************************************/
var mod = require("act.sevencustom.mod");
var ActPopup = require("act.popup.base");
var Payment = require("payment.mod");
var TipsController = require("tips_controller");
cc.Class({
"extends": ActPopup,
properties: {
nodContent: {
"default": null,
type: cc.Node
},
nodCost: {
"default": null,
type: cc.Node
},
preItem: {
"default": null,
type: cc.Prefab
},
nodTime: {
"default": null,
type: cc.Node
}
},
// 初始化
onOpenConfigs: function onOpenConfigs(_params) {
var _this = this;
this._super(_params);
this.mod = mod.getInstance();
if (!this.mod) {
this.delayClose();
return;
}
var cfgs = gdata(this.mod.data.config, "data_optional_cfg");
var rewards = gdata(this.mod.data.config, "data_optional_reward");
var charge = game.configs.charge_data.data_charge_data;
var chd = this.nodCost.children;
var itemnod = this.nodContent.children[0];
this.first = [];
this.second = [];
for (var i in cfgs) {
var cfg = cfgs[i];
var price = cfg.charge_id > 0 ? Payment.getInstance().fmtPrice(charge[cfg.charge_id].val) : nx.text.getKey("Free");
var nod = chd[cfg.id - 1];
var reward = rewards[i];
var len = Object.keys(reward).length;
var rewardnod = nx.gui.find(itemnod, "reward").children[cfg.id - 1];
rewardnod.children.forEach(function (_nod) {
nx.gui.setActive(_nod, "", false);
});
for (var u = 0; u < len; u++) {
var rnod = rewardnod.children[u];
nx.gui.setActive(rnod, "", true);
nx.gui.setActive(rnod, "change", false);
nx.gui.setActive(rnod, "cannot", false);
nx.gui.setActive(rnod, "focus", false);
nx.gui.setActive(rnod, "get", false);
nx.gui.setActive(rnod, "canget", false);
}
for (var j in reward) {
var item = reward[j];
if (j == 1) {
item.forEach(function (_item) {
_this.first.push(_item[0]);
});
} else {
if (j == 2) {
item.forEach(function (_item) {
_this.second.push(_item[0]);
});
}
}
}
// if( u == 0 ){
// this.first.push( )
// }
nx.gui.setString(nod, "txt", price);
nx.gui.setActive(nod, "focus", false);
}
var days = gdata(this.mod.data.config, "data_const").act_days.val;
nx.gui.gocChildren(this.nodContent, "", days);
var nods = this.nodContent.children;
for (var n = 0; n < nods.length; n++) {
var _nod2 = nods[n];
nx.gui.setActive(_nod2, "empty", false);
nx.gui.setString(_nod2, "day", "0" + (n + 1));
}
// 视图监听
this.mod.vbind(this, [["sevenCustom", this.freshDayReward.bind(this)]]);
this.mod.reqOptionalGiftData();
// // this.mod.reqBaseData();
// nx.debug( "$ActPage onEnable");
// 获取指定主题信息
},
onEnable: function onEnable() {
this.unscheduleAllCallbacks();
},
// 销毁
onDestroy: function onDestroy() {
// 活动监听解除
if (this.mod) {
this.mod.vunbind(this);
}
delete this.mod;
this._super();
},
// 倒计时
updateDate: function updateDate() {
var txt = nx.bridge.time.cdSimple(this.mod.data.end_time > 0 ? this.mod.data.end_time : 0);
txt = nx.text.getKey(txt || "已结束");
nx.gui.setString(this.nodTime, "time", txt);
},
freshDayReward: function freshDayReward(_cdata) {
var _this2 = this;
if (!_cdata || !this.nodContent) {
return;
}
var time = new Date();
var left = this.mod.data.end_time > 0 ? this.mod.data.end_time - time / 1000 : 0.1;
nx.gui.setCdTxt(this.nodTime, "time", left, function () {
nx.gui.setString(_this2.nodTime, "time", nx.text.getKey("lab_planesafk_main_have_over"));
});
this.custominfo = _cdata;
var chd = this.nodContent.children;
var payed = _cdata.data_list;
var lchd = this.nodCost.children;
// let reward = _cdata.data_list;
for (var p = 0; p < payed.length; p++) {
var nod = lchd[p];
nx.gui.setActive(nod, "focus", false);
nx.gui.setActive(nod, "normal", true);
var cmp = nx.gui.getComponent(nod, "", cc.Button);
if (cmp) {
cmp.interactable = this.custominfo.data_list[p].is_activate == 0 && p != 0;
nx.gui.setOutlineColor(nod, "txt", this.custominfo.data_list[p].is_activate == 0 && p != 0 ? new cc.color("#b85833") : cc.Color.BLACK);
}
}
for (var c = 0; c < chd.length; c++) {
var _nod3 = chd[c];
var _cmp = _nod3.getComponent("cmp.act.custom.item");
nx.gui.setActive(_nod3, "day", c <= _cdata.day - 1);
if (c <= _cdata.day - 1) {
_cmp.freshInfo({
active: true,
day: c,
config: this.mod.data.config,
rewards: payed
});
} else {
_cmp.freshInfo({
active: false,
day: c,
config: this.mod.data.config,
rewards: payed
});
}
}
this.setRewardInfo(payed);
this.freshTip(_cdata);
this.setBuyTimes();
},
setRewardInfo: function setRewardInfo(_rewards) {
var _this3 = this;
var self = this;
var rewards = _rewards;
var _loop = function _loop(r) {
var reward = rewards[r].reward_list;
if (nx.dt.arrNEmpty(reward)) {
reward.forEach(function (_r) {
var nod = self.nodContent.children[_r.day - 1];
var status = _r.status;
var rnod = nx.gui.find(nod, "reward").children[r];
for (var n = 0; n < rnod.children.length; n++) {
var pnod = rnod.children[n];
var count = 0;
// nx.gui.setActive( pnod, "change", false );
var nodParent = nx.gui.find(pnod, "item");
if (pnod.active) {
// _r.item_list.sort( ( a, b ) => {
// return a.item_id - b.item_id;
// } )
var _rewards2 = [];
var data = _r.item_list[pnod.touchId - 1];
if (data) {
var _nod4 = cc.instantiate(self.preItem);
// nod.getComponent( "cmp.item.base" ).setDate( data );
var show = {
bid: data.item_id,
num: data.num
};
_rewards2.push(show);
// nod.name = "item";
// nod.setParent( nodParent );
var cmp = nx.gui.getComponent(nodParent, "", "cmp.common.itemlayout");
if (cmp) {
// cmp.tipSelf = false;
cmp.rebuild(_rewards2);
}
nx.gui.setActive(pnod, "tip", false);
}
} //
nx.gui.setActive(pnod, "change", nodParent.children.length > 0 && status == 0);
nx.gui.setActive(pnod, "focus", false);
nx.gui.setActive(pnod, "canget", rewards[r].is_activate == 1 && _r.day <= _this3.custominfo.day && nodParent.children.length > 0 && status == 1);
nx.gui.setActive(pnod, "cannot", status == 3);
nx.gui.setActive(pnod, "get", status == 2);
}
var touch = nx.gui.getComponent(rnod, "", cc.Button);
if (touch) {
if (status) {
touch.interactable = status == 1 && rewards[r].is_activate == 1;
} else {
touch.interactable = false;
}
}
// rnod.children.forEach( _nod =>{
// } )
});
}
};
for (var r = 0; r < rewards.length; r++) {
_loop(r);
}
},
setBuyTimes: function setBuyTimes() {
var buyinfo = this.custominfo.data_list;
buyinfo.forEach(function (_nod) {
if (_nod.is_activate == 1) {}
});
},
freshTip: function freshTip(_data) {
var count = 0;
var self = this;
var day = _data.day;
var list = _data.data_list;
var nod = self.nodContent.children[_data.day - 1];
list.forEach(function (_item) {
if (_item.cate == 1) {
if (!_item.reward_list[day - 1]) {
count++;
}
}
});
var nods = nx.gui.find(nod, "reward/free").children;
nods.forEach(function (_nod) {
if (_nod.active) {
nx.gui.setActive(_nod, "tip", count++);
}
});
// nx.gui.setActive( nods, "reward/free" )
// this.openTip( "reward", count > 0 );
},
onTouchBuy: function onTouchBuy(_idx) {
var buyinfo = this.custominfo.data_list;
var count = 0;
var buy = [];
buyinfo.forEach(function (_nod) {
if (_nod.is_activate == 1 && _idx == _nod.cate) {
count++;
}
if (_idx == _nod.cate) {
buy = _nod.reward_list;
}
});
if (count > 0) {
nx.tbox("CustomBuyTip");
return;
}
if (buy.length < this.nodContent.children.length) {
nx.tbox("ActSevenCustom");
return;
}
var cfgs = gdata(this.mod.data.config, "data_optional_cfg");
if (cfgs[_idx].charge_id > 0) {
var msg = "pay " + cfgs[_idx].charge_id;
Payment.getInstance().reqPayment(cfgs[_idx].charge_id);
}
},
onTouchHelp: function onTouchHelp() {
var TC = TipsController.getInstance();
var explain = gdata(this.mod.data.config, "data_desc")[1];
TC.showTextPanel(explain.name, explain.desc);
}
});
/**{"day":5,"data_list":[
* {"cate":1,"is_activate":1,"reward_list":[{"day":5,"status":0,"item_list":[{"item_id":11403,"num":1}]},{"day":2,"status":0,"item_list":[{"item_id":11403,"num":1}]}]},
* {"cate":2,"is_activate":0,"reward_list":[]},
* {"cate":3,"is_activate":0,"reward_list":[]},
* {"cate":4,"is_activate":0,"reward_list":[]}]}
/***/
cc._RF.pop();