(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/vedio/vedio_model.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, '70062pr0GVInaTKlun3vtGf', 'vedio_model'); // Scripts/mod/vedio/vedio_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-05-16 17:20:08 // -------------------------------------------------------------------- var MainuiController = require("mainui_controller"); var MainuiConst = require("mainui_const"); var VedioModel = cc.Class({ "extends": BaseClass, ctor: function ctor() {}, properties: {}, initConfig: function initConfig() { this.today_like_num = 0; //-- 今日点赞数 this.today_like_is_full = false; //-- 今日是否点赞数达到最大 this.all_vedio_data = {}; // 全部录像数据 this.filt_lv_flag = true; // 是否筛选等级相近的玩家录像 }, setPublicVedioData: function setPublicVedioData(data) { if (!data) return; var self = this; // -- 类型 if (!self.all_vedio_data[data.type]) { self.all_vedio_data[data.type] = {}; } // -- 条件 if (!self.all_vedio_data[data.type][data.cond_type]) { self.all_vedio_data[data.type][data.cond_type] = {}; } // -- 添加录像数据 if (!self.all_vedio_data[data.type][data.cond_type].vedio_data) { self.all_vedio_data[data.type][data.cond_type].vedio_data = []; } for (var i = 0; i < data.replay_list.length; ++i) { var v = data.replay_list[i]; self.all_vedio_data[data.type][data.cond_type].vedio_data.push(v); } // -- 判断一下数据是否已经达到最大值,达到了则不再继续请求数据 if (data.len > self.all_vedio_data[data.type][data.cond_type].vedio_data.length) { self.all_vedio_data[data.type][data.cond_type].is_full = false; } else { self.all_vedio_data[data.type][data.cond_type].is_full = true; } }, // -- 获取录像大厅数据 getPublicVedioData: function getPublicVedioData(vedioType, cond_type) { var vedio_data = {}; if (vedioType) { if (this.all_vedio_data[vedioType]) { vedio_data = this.all_vedio_data[vedioType][cond_type] || {}; } } return vedio_data; }, // -- 设置今日点赞数 setTodayLikeNum: function setTodayLikeNum(num) { this.today_like_num = num; var red_status = false; this.today_like_is_full = true; var likes_limit_cfg = Config.video_data.data_const["likes_limit"]; if (likes_limit_cfg && likes_limit_cfg.val > num) { red_status = true; this.today_like_is_full = false; } MainuiController.getInstance().setFunctionTipsStatus(MainuiConst.icon.vedio, red_status); }, getTodayLikeNum: function getTodayLikeNum() { return this.today_like_num; }, // -- 是否请求过录像数据 checkIsReqVedioDataByType: function checkIsReqVedioDataByType(vedioType, cond_type) { if (this.all_vedio_data[vedioType] && this.all_vedio_data[vedioType][cond_type]) { return true; } return false; }, getFiltLevelFlag: function getFiltLevelFlag() { return this.filt_lv_flag; }, // -- 缓存一下竞技场分页是否勾选筛选等级相近的玩家 setFiltLevelFlag: function setFiltLevelFlag(flag) { this.filt_lv_flag = flag; }, checkTodayLikeIsFull: function checkTodayLikeIsFull() { return this.today_like_is_full; }, // -- 更新数据(本地缓存主动更新) updateVedioData: function updateVedioData(vedioType, id, key, val) { var new_data; for (var i in this.all_vedio_data) { var all_data = this.all_vedio_data[i]; for (var k in all_data) { var v = all_data[k]; for (var m = 0; m < v.vedio_data.length; m++) { var vData = v.vedio_data[m]; if (vData.id == id) { vData[key] = val; new_data = vData; } } } } return new_data; } }); 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx2ZWRpb1xcdmVkaW9fbW9kZWwuanMiXSwibmFtZXMiOlsiTWFpbnVpQ29udHJvbGxlciIsInJlcXVpcmUiLCJNYWludWlDb25zdCIsIlZlZGlvTW9kZWwiLCJjYyIsIkNsYXNzIiwiQmFzZUNsYXNzIiwiY3RvciIsInByb3BlcnRpZXMiLCJpbml0Q29uZmlnIiwidG9kYXlfbGlrZV9udW0iLCJ0b2RheV9saWtlX2lzX2Z1bGwiLCJhbGxfdmVkaW9fZGF0YSIsImZpbHRfbHZfZmxhZyIsInNldFB1YmxpY1ZlZGlvRGF0YSIsImRhdGEiLCJzZWxmIiwidHlwZSIsImNvbmRfdHlwZSIsInZlZGlvX2RhdGEiLCJpIiwicmVwbGF5X2xpc3QiLCJsZW5ndGgiLCJ2IiwicHVzaCIsImxlbiIsImlzX2Z1bGwiLCJnZXRQdWJsaWNWZWRpb0RhdGEiLCJ2ZWRpb1R5cGUiLCJzZXRUb2RheUxpa2VOdW0iLCJudW0iLCJyZWRfc3RhdHVzIiwibGlrZXNfbGltaXRfY2ZnIiwiQ29uZmlnIiwidmlkZW9fZGF0YSIsImRhdGFfY29uc3QiLCJ2YWwiLCJnZXRJbnN0YW5jZSIsInNldEZ1bmN0aW9uVGlwc1N0YXR1cyIsImljb24iLCJ2ZWRpbyIsImdldFRvZGF5TGlrZU51bSIsImNoZWNrSXNSZXFWZWRpb0RhdGFCeVR5cGUiLCJnZXRGaWx0TGV2ZWxGbGFnIiwic2V0RmlsdExldmVsRmxhZyIsImZsYWciLCJjaGVja1RvZGF5TGlrZUlzRnVsbCIsInVwZGF0ZVZlZGlvRGF0YSIsImlkIiwia2V5IiwibmV3X2RhdGEiLCJhbGxfZGF0YSIsImsiLCJtIiwidkRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQyxtQkFBRCxDQUE5Qjs7QUFDQSxJQUFJQyxXQUFXLEdBQUdELE9BQU8sQ0FBQyxjQUFELENBQXpCOztB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Q0ErQixFQUFBQSxnQkE5RXNCLDRCQThFSkMsSUE5RUksRUE4RUU7QUFDcEIsU0FBS2hDLFlBQUwsR0FBb0JnQyxJQUFwQjtBQUNILEdBaEZxQjtBQWlGdEJDLEVBQUFBLG9CQWpGc0Isa0NBaUZFO0FBQ3BCLFdBQU8sS0FBS25DLGtCQUFaO0FBQ0gsR0FuRnFCO0FBb0Z0QjtBQUNBb0MsRUFBQUEsZUFyRnNCLDJCQXFGTG5CLFNBckZLLEVBcUZNb0IsRUFyRk4sRUFxRlVDLEdBckZWLEVBcUZlYixHQXJGZixFQXFGb0I7QUFDdEMsUUFBSWMsUUFBSjs7QUFDQSxTQUFJLElBQUk5QixDQUFSLElBQWEsS0FBS1IsY0FBbEIsRUFBaUM7QUFDN0IsVUFBSXVDLFFBQVEsR0FBRyxLQUFLdkMsY0FBTCxDQUFvQlEsQ0FBcEIsQ0FBZjs7QUFDQSxXQUFJLElBQUlnQyxDQUFSLElBQWFELFFBQWIsRUFBc0I7QUFDbEIsWUFBSTVCLENBQUMsR0FBRzRCLFFBQVEsQ0FBQ0MsQ0FBRCxDQUFoQjs7QUFDQSxhQUFJLElBQUlDLENBQUMsR0FBQyxDQUFWLEVBQVlBLENBQUMsR0FBQzlCLENBQUMsQ0FBQ0osVUFBRixDQUFhRyxNQUEzQixFQUFrQytCLENBQUMsRUFBbkMsRUFBc0M7QUFDbEMsY0FBSUMsS0FBSyxHQUFHL0IsQ0FBQyxDQUFDSixVQUFGLENBQWFrQyxDQUFiLENBQVo7O0FBQ0EsY0FBR0MsS0FBSyxDQUFDTixFQUFOLElBQVlBLEVBQWYsRUFBa0I7QUFDZE0sWUFBQUEsS0FBSyxDQUFDTCxHQUFELENBQUwsR0FBYWIsR0FBYjtBQUNBYyxZQUFBQSxRQUFRLEdBQUdJLEtBQVg7QUFDSDtBQUNKO0FBQ0o7QUFDSjs7QUFDRCxXQUFPSixRQUFQO0FBQ0g7QUFyR3FCLENBQVQsQ0FBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg6L+Z6YeM5aGr5YaZ6K+m57uG6K+05piOLOS4u+imgeWhq+WGmeivpeaooeWdl+eahOWKn+iDveeugOimgVxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDUtMTYgMTc6MjA6MDhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgTWFpbnVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKVxudmFyIE1haW51aUNvbnN0ID0gcmVxdWlyZShcIm1haW51aV9jb25zdFwiKVxudmFyIFZlZGlvTW9kZWwgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNsYXNzLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgcHJvcGVydGllczoge1xuICAgIH0sXG5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMudG9kYXlfbGlrZV9udW0gPSAwICAgLy8tLSDku4rml6XngrnotZ7mlbBcbiAgICAgICAgdGhpcy50b2RheV9saWtlX2lzX2Z1bGwgPSBmYWxzZSAvLy0tIOS7iuaXpeaYr+WQpueCuei1nuaVsOi+vuWIsOacgOWkp1xuICAgICAgICB0aGlzLmFsbF92ZWRpb19kYXRhID0ge30gIC8vIOWFqOmDqOW9leWDj+aVsOaNrlxuICAgICAgICB0aGlzLmZpbHRfbHZfZmxhZyA9IHRydWUgIC8vIOaYr+WQpuetm+mAieetiee6p+ebuOi/keeahOeOqeWutuW9leWDj1xuICAgIH0sXG4gICAgc2V0UHVibGljVmVkaW9EYXRhKCBkYXRhICl7XG4gICAgICAgIGlmKCFkYXRhKSByZXR1cm47XG4gICAgICAgIHZhciBzZWxmID0gdGhpc1xuICAgICAgICAvLyAtLSDnsbvlnotcbiAgICAgICAgaWYoIXNlbGYuYWxsX3ZlZGlvX2RhdGFbZGF0YS50eXBlXSl7XG4gICAgICAgICAgICBzZWxmLmFsbF92ZWRpb19kYXRhW2RhdGEudHlwZV0gPSB7fVxuICAgICAgICB9XG4gICAgICAgIC8vIC0tIOadoeS7tlxuICAgICAgICBpZighc2VsZi5hbGxfdmVkaW9fZGF0YVtkYXRhLnR5cGVdW2RhdGEuY29uZF90eXBlXSl7XG4gICAgICAgICAgICBzZWxmLmFsbF92ZWRpb19kYXRhW2RhdGEudHlwZV1bZGF0YS5jb25kX3R5cGVdID0ge31cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0tIOa3u+WKoOW9leWDj+aVsOaNrlxuICAgICAgICBpZighc2VsZi5hbGxfdmVkaW9fZGF0YVtkYXRhLnR5cGVdW2RhdGEuY29uZF90eXBlXS52ZWRpb19kYXRhKXtcbiAgICAgICAgICAgIHNlbGYuYWxsX3ZlZGlvX2RhdGFbZGF0YS50eXBlXVtkYXRhLmNvbmRfdHlwZV0udmVkaW9fZGF0YSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgZm9yKGxldCBpPTA7aTxkYXRhLnJlcGxheV9saXN0Lmxlbmd0aDsrK2kpe1xuICAgICAgICAgICAgbGV0IHYgPSBkYXRhLnJlcGxheV9saXN0W2ldO1xuICAgICAgICAgICAgc2VsZi5hbGxfdmVkaW9fZGF0YVtkYXRhLnR5cGVdW2RhdGEuY29uZF90eXBlXS52ZWRpb19kYXRhLnB1c2godilcbiAgICAgICAgfVxuICAgICAgICAvLyAtLSDliKTmlq3kuIDkuIvmlbDmja7mmK/lkKblt7Lnu4/ovr7liLDmnIDlpKflgLzvvIzovr7liLDkuobliJnkuI3lho3nu6fnu63or7fmsYLmlbDmja5cbiAgICAgICAgaWYoZGF0YS5sZW4gPiBzZWxmLmFsbF92ZWRpb19kYXRhW2RhdGEudHlwZV1bZGF0YS5jb25kX3R5cGVdLnZlZGlvX2RhdGEubGVuZ3RoICl7XG4gICAgICAgICAgICBzZWxmLmFsbF92ZWRpb19kYXRhW2RhdGEudHlwZV1bZGF0YS5jb25kX3R5cGVdLmlzX2Z1bGwgPSBmYWxzZVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHNlbGYuYWxsX3ZlZGlvX2RhdGFbZGF0YS50eXBlXVtkYXRhLmNvbmRfdHlwZV0uaXNfZnVsbCA9IHRydWVcbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy8gLS0g6I635Y+W5b2V5YOP5aSn5Y6F5pWw5o2uXG4gICAgZ2V0UHVibGljVmVkaW9EYXRhKCB2ZWRpb1R5cGUsIGNvbmRfdHlwZSApe1xuICAgICAgICBsZXQgdmVkaW9fZGF0YSA9IHt9XG4gICAgICAgIGlmKHZlZGlvVHlwZSl7XG4gICAgICAgICAgICBpZih0aGlzLmFsbF92ZWRpb19kYXRhW3ZlZGlvVHlwZV0pe1xuICAgICAgICAgICAgICAgIHZlZGlvX2RhdGEgPSB0aGlzLmFsbF92ZWRpb19kYXRhW3ZlZGlvVHlwZV1bY29uZF90eXBlXSB8fCB7fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2ZWRpb19kYXRhXG4gICAgfSxcbiAgICAvLyAtLSDorr7nva7ku4rml6XngrnotZ7mlbBcbiAgICBzZXRUb2RheUxpa2VOdW0oIG51bSApe1xuICAgICAgICB0aGlzLnRvZGF5X2xpa2VfbnVtID0gbnVtXG4gICAgICAgIGxldCByZWRfc3RhdHVzID0gZmFsc2VcbiAgICAgICAgdGhpcy50b2RheV9saWtlX2lzX2Z1bGwgPSB0cnVlXG4gICAgICAgIGxldCBsaWtlc19saW1pdF9jZmcgPSBDb25maWcudmlkZW9fZGF0YS5kYXRhX2NvbnN0W1wibGlrZXNfbGltaXRcIl1cbiAgICAgICAgaWYobGlrZXNfbGltaXRfY2ZnICYmIGxpa2VzX2xpbWl0X2NmZy52YWwgPiBudW0pe1xuICAgICAgICAgICAgcmVkX3N0YXR1cyA9IHRydWVcbiAgICAgICAgICAgIHRoaXMudG9kYXlfbGlrZV9pc19mdWxsID0gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkuc2V0RnVuY3Rpb25UaXBzU3RhdHVzKE1haW51aUNvbnN0Lmljb24udmVkaW8sIHJlZF9zdGF0dXMpXG4gICAgfSxcbiAgICBnZXRUb2RheUxpa2VOdW0oICApe1xuICAgICAgICByZXR1cm4gdGhpcy50b2RheV9saWtlX251bVxuICAgIH0sXG5cbiAgICAvLyAtLSDmmK/lkKbor7fmsYLov4flvZXlg4/mlbDmja5cbiAgICBjaGVja0lzUmVxVmVkaW9EYXRhQnlUeXBlKCB2ZWRpb1R5cGUsIGNvbmRfdHlwZSApe1xuICAgICAgICBpZih0aGlzLmFsbF92ZWRpb19kYXRhW3ZlZGlvVHlwZV0gJiYgdGhpcy5hbGxfdmVkaW9fZGF0YVt2ZWRpb1R5cGVdW2NvbmRfdHlwZV0pe1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIGdldEZpbHRMZXZlbEZsYWcoICApe1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0X2x2X2ZsYWdcbiAgICB9LFxuICAgIC8vIC0tIOe8k+WtmOS4gOS4i+ernuaKgOWcuuWIhumhteaYr+WQpuWLvumAieetm+mAieetiee6p+ebuOi/keeahOeOqeWutlxuICAgIHNldEZpbHRMZXZlbEZsYWcoIGZsYWcgKXtcbiAgICAgICAgdGhpcy5maWx0X2x2X2ZsYWcgPSBmbGFnXG4gICAgfSxcbiAgICBjaGVja1RvZGF5TGlrZUlzRnVsbCggICl7XG4gICAgICAgIHJldHVybiB0aGlzLnRvZGF5X2xpa2VfaXNfZnVsbFxuICAgIH0sXG4gICAgLy8gLS0g5pu05paw5pWw5o2uKOacrOWcsOe8k+WtmOS4u+WKqOabtOaWsClcbiAgICB1cGRhdGVWZWRpb0RhdGEoIHZlZGlvVHlwZSwgaWQsIGtleSwgdmFsICl7XG4gICAgICAgIGxldCBuZXdfZGF0YVxuICAgICAgICBmb3IobGV0IGkgaW4gdGhpcy5hbGxfdmVkaW9fZGF0YSl7XG4gICAgICAgICAgICBsZXQgYWxsX2RhdGEgPSB0aGlzLmFsbF92ZWRpb19kYXRhW2ldXG4gICAgICAgICAgICBmb3IobGV0IGsgaW4gYWxsX2RhdGEpe1xuICAgICAgICAgICAgICAgIGxldCB2ID0gYWxsX2RhdGFba11cbiAgICAgICAgICAgICAgICBmb3IobGV0IG09MDttPHYudmVkaW9fZGF0YS5sZW5ndGg7bSsrKXtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZEYXRhID0gdi52ZWRpb19kYXRhW21dXG4gICAgICAgICAgICAgICAgICAgIGlmKHZEYXRhLmlkID09IGlkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZEYXRhW2tleV0gPSB2YWxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19kYXRhID0gdkRhdGFcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3X2RhdGFcbiAgICB9XG59KTsiXX0=