196 lines
5.6 KiB
JavaScript
196 lines
5.6 KiB
JavaScript
|
|
"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();
|