(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/vip/view/charge_panel.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, '2840dPTRbpJMKc5P2sS6la1', 'charge_panel'); // Scripts/mod/vip/view/charge_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里是描述这个窗体的作用的 //
Create: 2019-03-22 11:09:17 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var ChargeItem = require("charge_item"); var VipEvent = require("vip_event"); var ChargePanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("vip", "charge_panel"); }, // 可以初始化声明一些变量的 initConfig: function initConfig() { this.ctrl = require("vip_controller").getInstance(); this.role_vo = require("role_controller").getInstance().getRoleVo(); this.item_list = {}; }, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { this.scroll_con = this.seekChild("scrollCon"); this.scroll_sv = this.seekChild("scrollCon", cc.ScrollView); this.content_nd = this.seekChild(this.scroll_con, "con"); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.addGlobalEvent(VipEvent.UPDATE_CHARGE_LIST, function (list) { for (var k in list) { var v = list[k]; if (Config.charge_data.data_charge_data[v.id]) { v.sort = Config.charge_data.data_charge_data[v.id].sort; } } list.sort(Utils.tableUpperSorter(["sort"])); this.createItemList(list); }, this); }, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow() { this.ctrl.sender16700(); this.ctrl.sender21005(); require("welfare_controller").getInstance().sender16705(); }, createItemList: function createItemList(list) { var _this = this; // return if (list == null) return; var height = Math.max(this.content_nd.getContentSize().height, Math.ceil(list.length / 3) * 235 + 20); this.content_nd.setContentSize(660, height); list.sort(Utils.tableLowerSorter(["get_gold"])); this.scroll_sv.scrollToTop(0); var _loop = function _loop(k) { var v = list[k]; Utils.delayRun(_this.content_nd, 0.05 * (Number(k) + 1), function () { if (this.item_list[k] == null) { var item = new ChargeItem(); var index = Number(k); item.setPosition(219 * (index % 3) - 325, height / 2 - Math.ceil((index + 1) / 3) * 235); item.show(); item.addCallBack(function (item) { if (this.select_item != null && this.select_item.getData().id != item.getData().id) { this.select_item.setSelect(false); } this.select_item = item; }.bind(this)); item.setParent(this.content_nd); this.item_list[k] = item; } this.item_list[k].setData(v); }.bind(_this)); }; for (var k in list) { _loop(k); } }, setVisibleStatus: function setVisibleStatus(status) { this.setVisible(status); }, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() { if (this.item_list) { for (var k in this.item_list) { this.item_list[k].deleteMe(); this.item_list[k] = null; } this.item_list = null; } } }); cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx2aXBcXHZpZXdcXGNoYXJnZV9wYW5lbC5qcyJdLCJuYW1lcyI6WyJQYXRoVG9vbCIsInJlcXVpcmUiLCJDaGFyZ2VJdGVtIiwiVmlwRXZlbnQiLCJDaGFyZ2VQYW5lbCIsImNjIiwiQ2xhc3MiLCJCYXNlUGFuZWwiLCJjdG9yIiwicHJlZmFiUGF0aCIsImdldFByZWZhYlBhdGgiLCJpbml0Q29uZmlnIiwiY3RybCIsImdldEluc3RhbmNlIiwicm9sZV92byIsImdldFJvbGVWbyIsIml0ZW1fbGlzdCIsImluaXRQYW5lbCIsInNjcm9sbF9jb24iLCJzZWVrQ2hpbGQiLCJzY3JvbGxfc3YiLCJTY3JvbGxWaWV3IiwiY29udGVudF9uZCIsInJlZ2lzdGVyRXZlbnQiLCJhZGRHbG9iYWxFdmVudCIsIlVQREFURV9DSEFSR0VfTElTVCIsImxpc3QiLCJrIiwidiIsIkNvbmZpZyIsImNoYXJnZV9kYXRhIiwiZGF0YV9jaGFyZ2VfZGF0YSIsImlkIiwic29ydCIsIlV0aWxzIiwidGFibGVVcHBlclNvcnRlciIsImNyZWF0ZUl0ZW1MaXN0Iiwib25TaG93Iiwic2VuZGVyMTY3MDAiLCJzZW5kZXIyMTAwNSIsInNlbmRlcjE2NzA1IiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsImdldENvbnRlbnRTaXplIiwiY2VpbCIsImxlbmd0aCIsInNldENvbnRlbnRTaXplIiwidGFibGVMb3dlclNvcnRlciIsInNjcm9sbFRvVG9wIiwiZGVsYXlSdW4iLCJOdW1iZXIiLCJpdGVtIiwiaW5kZXgiLCJzZXRQb3NpdGlvbiIsInNob3ciLCJhZGRDYWxsQmFjayIsInNlbGVjdF9pdGVtIiwiZ2V0RGF0YSIsInNldFNlbGVjdCIsImJpbmQiLCJzZXRQYXJlbnQiLCJzZXREYXRhIiwic2V0VmlzaWJsZVN0YXR1cyIsInN0YXR1cyIsInNldFZpc2libGUiLCJvbkhpZGUiLCJvbkRlbGV0ZSIsImRlbGV0ZU1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7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VSxDQUFqQjtBQU1BUixVQUFBQSxJQUFJLENBQUNTLFNBQUwsQ0FBZSxLQUFLdkMsVUFBcEI7QUFDQSxlQUFLTixTQUFMLENBQWVXLENBQWYsSUFBb0J5QixJQUFwQjtBQUNIOztBQUNELGFBQUtwQyxTQUFMLENBQWVXLENBQWYsRUFBa0JtQyxPQUFsQixDQUEwQmxDLENBQTFCO0FBQ0gsT0FoQnVELENBZ0J0RGdDLElBaEJzRCxDQWdCakQsS0FoQmlELENBQXhEO0FBVHdCOztBQU81QixTQUFLLElBQUlqQyxDQUFULElBQWNELElBQWQsRUFBb0I7QUFBQSxZQUFYQyxDQUFXO0FBbUJuQjtBQUNKLEdBcEVzQjtBQXNFdkJvQyxFQUFBQSxnQkFBZ0IsRUFBRSwwQkFBVUMsTUFBVixFQUFrQjtBQUNoQyxTQUFLQyxVQUFMLENBQWdCRCxNQUFoQjtBQUNILEdBeEVzQjtBQTJFdkI7QUFDQUUsRUFBQUEsTUFBTSxFQUFFLGtCQUFZLENBRW5CLENBOUVzQjtBQWdGdkI7QUFDQUMsRUFBQUEsUUFBUSxFQUFFLG9CQUFZO0FBQ2xCLFFBQUksS0FBS25ELFNBQVQsRUFBb0I7QUFDaEIsV0FBSyxJQUFJVyxDQUFULElBQWMsS0FBS1gsU0FBbkIsRUFBOEI7QUFDMUIsYUFBS0EsU0FBTCxDQUFlVyxDQUFmLEVBQWtCeUMsUUFBbEI7QUFDQSxhQUFLcEQsU0FBTCxDQUFlVyxDQUFmLElBQW9CLElBQXBCO0FBQ0g7O0FBQ0QsV0FBS1gsU0FBTCxHQUFpQixJQUFqQjtBQUNIO0FBQ0o7QUF6RnNCLENBQVQsQ0FBbEIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICDov5nph4zmmK/mj4/ov7Dov5nkuKrnqpfkvZPnmoTkvZznlKjnmoRcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTIyIDExOjA5OjE3XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFBhdGhUb29sID0gcmVxdWlyZShcInBhdGh0b29sXCIpO1xudmFyIENoYXJnZUl0ZW0gPSByZXF1aXJlKFwiY2hhcmdlX2l0ZW1cIik7XG52YXIgVmlwRXZlbnQgPSByZXF1aXJlKFwidmlwX2V2ZW50XCIpXG5cbnZhciBDaGFyZ2VQYW5lbCA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlUGFuZWwsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnByZWZhYlBhdGggPSBQYXRoVG9vbC5nZXRQcmVmYWJQYXRoKFwidmlwXCIsIFwiY2hhcmdlX3BhbmVsXCIpO1xuICAgIH0sXG5cbiAgICAvLyDlj6/ku6XliJ3lp4vljJblo7DmmI7kuIDkupvlj5jph4/nmoRcbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY3RybCA9IHJlcXVpcmUoXCJ2aXBfY29udHJvbGxlclwiKS5nZXRJbnN0YW5jZSgpO1xuICAgICAgICB0aGlzLnJvbGVfdm8gPSByZXF1aXJlKFwicm9sZV9jb250cm9sbGVyXCIpLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgICAgIHRoaXMuaXRlbV9saXN0ID0ge307XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMluS4gOS6m+mFjee9ruaVsOaNrizlj6/ku6XnlKjkuo7lo7DmmI7kuIDkupvlj5jph4/kuYvnsbvnmoRcbiAgICBpbml0UGFuZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxfY29uID0gdGhpcy5zZWVrQ2hpbGQoXCJzY3JvbGxDb25cIilcbiAgICAgICAgdGhpcy5zY3JvbGxfc3YgPSB0aGlzLnNlZWtDaGlsZChcInNjcm9sbENvblwiLCBjYy5TY3JvbGxWaWV3KVxuICAgICAgICB0aGlzLmNvbnRlbnRfbmQgPSB0aGlzLnNlZWtDaGlsZCh0aGlzLnNjcm9sbF9jb24sIFwiY29uXCIpO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozkuovku7bnm5HlkKznmoTmjqXlj6Ms5LiN6ZyA6KaB5omL5Yqo6LCD55SoLOWmguaenOaYr+S9v+eUqGdjb3JlLkdsb2JhbEV2ZW5055uR5ZCsLOWPr+S7peebtOaOpeiwg+eUqGFkZEdsb2JhbEV2ZW50XG4gICAgcmVnaXN0ZXJFdmVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmFkZEdsb2JhbEV2ZW50KFZpcEV2ZW50LlVQREFURV9DSEFSR0VfTElTVCwgZnVuY3Rpb24gKGxpc3QpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gbGlzdCkge1xuICAgICAgICAgICAgICAgIHZhciB2ID0gbGlzdFtrXTtcbiAgICAgICAgICAgICAgICBpZiAoQ29uZmlnLmNoYXJnZV9kYXRhLmRhdGFfY2hhcmdlX2RhdGFbdi5pZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdi5zb3J0ID0gQ29uZmlnLmNoYXJnZV9kYXRhLmRhdGFfY2hhcmdlX2RhdGFbdi5pZF0uc29ydFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3Quc29ydChVdGlscy50YWJsZVVwcGVyU29ydGVyKFtcInNvcnRcIl0pKVxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtTGlzdChsaXN0KTtcbiAgICAgICAgfSwgdGhpcylcbiAgICB9LFxuXG4gICAgLy8g6aKE5Yi25L2T5Yqg6L295a6M5oiQ5LmL5ZCOLOa3u+WKoOWIsOWvueW6lOS4u+iKgueCueS5i+WQjueahOWbnuiwg+WPr+S7peiuvue9ruS4gOS6m+aVsOaNruS6hlxuICAgIG9uU2hvdzogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmN0cmwuc2VuZGVyMTY3MDAoKTtcbiAgICAgICAgdGhpcy5jdHJsLnNlbmRlcjIxMDA1KCk7XG4gICAgICAgIHJlcXVpcmUoXCJ3ZWxmYXJlX2NvbnRyb2xsZXJcIikuZ2V0SW5zdGFuY2UoKS5zZW5kZXIxNjcwNSgpO1xuICAgIH0sXG5cbiAgICBjcmVhdGVJdGVtTGlzdDogZnVuY3Rpb24gKGxpc3QpIHtcbiAgICAgICAgLy8gcmV0dXJuXG4gICAgICAgIGlmIChsaXN0ID09IG51bGwpIHJldHVyblxuICAgICAgICB2YXIgaGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5jb250ZW50X25kLmdldENvbnRlbnRTaXplKCkuaGVpZ2h0LCAoTWF0aC5jZWlsKGxpc3QubGVuZ3RoIC8gMykpICogMjM1ICsgMjApO1xuICAgICAgICB0aGlzLmNvbnRlbnRfbmQuc2V0Q29udGVudFNpemUoNjYwLCBoZWlnaHQpO1xuICAgICAgICBsaXN0LnNvcnQoVXRpbHMudGFibGVMb3dlclNvcnRlcihbXCJnZXRfZ29sZFwiXSkpXG4gICAgICAgIHRoaXMuc2Nyb2xsX3N2LnNjcm9sbFRvVG9wKDApXG4gICAgICAgIGZvciAobGV0IGsgaW4gbGlzdCkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGxpc3Rba107XG4gICAgICAgICAgICBVdGlscy5kZWxheVJ1bih0aGlzLmNvbnRlbnRfbmQsIDAuMDUgKiAoTnVtYmVyKGspICsgMSksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtX2xpc3Rba10gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gbmV3IENoYXJnZUl0ZW0oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gTnVtYmVyKGspO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKDIxOSAqICgoaW5kZXgpICUgMykgLSAzMjUsIGhlaWdodCAvIDIgLSAoTWF0aC5jZWlsKChpbmRleCArIDEpIC8gMykpICogMjM1KTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uYWRkQ2FsbEJhY2soZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdF9pdGVtICE9IG51bGwgJiYgdGhpcy5zZWxlY3RfaXRlbS5nZXREYXRhKCkuaWQgIT0gaXRlbS5nZXREYXRhKCkuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdF9pdGVtLnNldFNlbGVjdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdF9pdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBhcmVudCh0aGlzLmNvbnRlbnRfbmQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1fbGlzdFtrXSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0W2tdLnNldERhdGEodilcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKSlcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzZXRWaXNpYmxlU3RhdHVzOiBmdW5jdGlvbiAoc3RhdHVzKSB7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZShzdGF0dXMpXG4gICAgfSxcblxuXG4gICAgLy8g6Z2i5p2/6K6+572u5LiN5Y+v6KeB55qE5Zue6LCDLOi/memHjOWBmuS4gOS6m+S4jeWPr+ingeeahOWxj+iUveWkhOeQhlxuICAgIG9uSGlkZTogZnVuY3Rpb24gKCkge1xuXG4gICAgfSxcblxuICAgIC8vIOW9k+mdouadv+S7juS4u+iKgueCuemHiuaUvuaOieeahOiwg+eUqOaOpeWPoyzpnIDopoHmiYvliqjosIPnlKgs6ICM5LiU5Lmf5LiA5a6a6KaB6LCD55SoXG4gICAgb25EZWxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbV9saXN0KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIHRoaXMuaXRlbV9saXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtX2xpc3Rba10uZGVsZXRlTWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1fbGlzdFtrXSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLml0ZW1fbGlzdCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxufSkiXX0=