"use strict"; cc._RF.push(module, '00855WORt9BlaHbjOgMJAP5', 'cmp.act.custom.select'); // Scripts/mod/acts/sevencustomization/cmp/cmp.act.custom.select.js "use strict"; var BridgeWindow = require("bridge.window"); var FxSVC = require("nx.fx.sv.expand"); var Mod = require("act.sevencustom.mod"); var BackpackController = require("backpack_controller"); cc.Class({ "extends": BridgeWindow, properties: { svcRewardsList: { "default": null, type: FxSVC, displayName: "奖励列表" }, nodRewards: { "default": null, type: cc.Node, displayName: "上方奖励列表" }, nodLeft: { "default": null, type: cc.Node, displayName: "左邊顯示相關" } }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) { this.day = _params.day; this.cate = _params.cate; this.cfg = _params.config; this.pos = _params.pos; this.cfgs = gdata(this.cfg, "data_optional_reward", this.cate + 1); this.select = _params.pos; this.inPos = _params.select; this.dealRewards(this.select); if (_params.select) { this.inPos.sort(function (a, b) { return a.bid - b.bid; }); for (var i = 0; i < this.inPos.length; i++) { var item = this.nodRewards.children[i]; var cmp = nx.gui.getComponent(item, "item", "cmp.item.base"); if (cmp) { cmp.rebind(i, this.inPos[i]); } nx.gui.setActive(item, "item", true); nx.gui.setActive(item, "change", true); if (i == this.select - 1) { var pos = { mdata: this.inPos[i] }; this.onTouchAdd(pos); } } } else { this.freshLeftCnt([]); } }, onTouchChange: function onTouchChange(_item) {}, onTouchFocus: function onTouchFocus(_idx) { this.dealRewards(_idx); this.select = _idx; if (this.inPos) { var pos = { mdata: this.inPos[this.select - 1] }; this.onTouchAdd(pos); } else { this.freshLeftCnt([]); } }, dealRewards: function dealRewards(_idx) { for (var n = 0; n < this.nodRewards.children.length; n++) { var nod = this.nodRewards.children[n]; var cfgg = this.cfgs[n + 1]; nx.gui.setActive(nod, "focus", false); if (!cfgg) { nx.gui.setActive(nod, "", false); continue; } if (n == _idx - 1) { nx.gui.setActive(nod, "focus", true); } nx.gui.setActive(nod, "", true); } var show = this.cfgs[_idx]; this.svcRewardsList.rebuild(show); }, onTouchAdd: function onTouchAdd(_item) { var nodes = nx.gui.find(this.svcRewardsList.bindSCV, "view/content").children; // console.log( "当前的方案处理www" ); var select = parseInt(this.select); var mdata = _item.mdata; var item = this.nodRewards.children[select - 1]; var cmp = nx.gui.getComponent(item, "item", "cmp.item.base"); if (cmp) { cmp.rebind(select - 1, mdata); } nx.gui.setActive(item, "item", true); nx.gui.setActive(item, "change", true); var show = {}; if (nx.dt.arrNEmpty(mdata)) { show = { bid: mdata[0], num: mdata[1] }; } if (nx.dt.objNEmpty(mdata)) { show = mdata; } for (var i = 0; i < nodes.length; i++) { if (nodes[i].svItem) { var chd = nodes[i].svItem; if (chd.mdata[0] == show.bid) { chd.onFocus(); } else { chd.outFocus(); } } } this.freshLeftCnt(show); }, onTouchSave: function onTouchSave() { var rewards = []; var chd = this.nodRewards.children; chd.forEach(function (_nod) { if (_nod.active) { var cmp = nx.gui.getComponent(_nod, "item", "cmp.item.base"); if (cmp.mdata) { rewards.push({ item_id: cmp.mdata[0] || cmp.mdata.bid, num: cmp.mdata[1] || cmp.mdata.num }); } } }); var len = Object.keys(this.cfgs).length; if (rewards.length == 0 || rewards.length < len) { nx.tbox("CustomEmptyTip"); return; } Mod.getInstance().reqSetGift(this.cate + 1, rewards, this.day + 1, 0); }, onTouchSure: function onTouchSure() { var _this = this; var rewards = []; var chd = this.nodRewards.children; chd.forEach(function (_nod) { if (_nod.active) { var cmp = nx.gui.getComponent(_nod, "item", "cmp.item.base"); if (cmp.mdata) { rewards.push({ item_id: cmp.mdata[0] || cmp.mdata.bid, num: cmp.mdata[1] || cmp.mdata.num }); } } }); var len = Object.keys(this.cfgs).length; if (rewards.length == 0 || rewards.length < len) { nx.tbox("CustomEmptyTip"); return; } nx.mbox(nx.text.getKey("CustomSaveTip"), ["cancel", "confirm"], function (_key, _box) { _box.close(); if (_key == "confirm") { Mod.getInstance().reqSetGift(_this.cate + 1, rewards, _this.day + 1, 1); } }); }, freshLeftCnt: function freshLeftCnt(_show) { var nod = nx.gui.find(this.nodLeft, "info"); if (nx.dt.objNEmpty(_show)) { nx.gui.setActive(this.nodLeft, "empty", false); nx.gui.setActive(nod, "", true); var cmp = nx.gui.getComponent(nod, "item", "cmp.item.base"); if (cmp) { cmp.setData(_show); } var count = BackpackController.getInstance().getModel().getItemNumByBid(_show.bid); nx.gui.setString(nod, "have/txt", count); var config = gitemdata(_show.bid); nx.gui.setString(nod, "type/txt", config.type_desc); return; } nx.gui.setActive(nod, "", false); nx.gui.setActive(this.nodLeft, "empty", true); } }); cc._RF.pop();