"use strict"; cc._RF.push(module, '3718aWVTN9M2a3oyPVhV5VM', 'orderaction_tesk_panel'); // Scripts/mod/orderaction/view/orderaction_tesk_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 战令三期 任务 //
Create: 2019-08-10 16:23:26 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var ActionController = require("action_controller"); var CommonScrollViewSingle = require("common_scrollview_single"); var OrderActionTeskItem = require("orderaction_tesk_item_panel"); var OrderactionConst = require("orderaction_const"); var OrderActionEvent = require("orderaction_event"); var OrderactionController = require("orderaction_controller"); var Orderaction_teskPanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("orderaction", "tesk_panel1"); this.ctrl = OrderactionController.getInstance(); this.model = this.ctrl.getModel(); this.cur_period = arguments[0] || 1; }, // 可以初始化声明一些变量的 initConfig: function initConfig() { this.title_name_list = [Utils.TI18N("每日任务"), Utils.TI18N("每周挑战"), Utils.TI18N("终极试炼")]; this.cur_task_index = null; }, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { var main_container = this.root_wnd.getChildByName("main_container"); this.time_title = main_container.getChildByName("time_title").getComponent(cc.Label); this.time_desc = main_container.getChildByName("time_desc").getComponent(cc.Label); this.tab_view_list = {}; var tab_view = main_container.getChildByName("tab_view"); for (var i = 1; i <= 3; i++) { var tab = {}; tab.btn_view = tab_view.getChildByName("tab_task_" + i); tab.normal = tab.btn_view.getChildByName("normal"); tab.select = tab.btn_view.getChildByName("select"); tab.select.active = false; tab.title_name = tab.btn_view.getChildByName("title_name").getComponent(cc.Label); tab.title_name.string = this.title_name_list[i - 1]; tab.redpoint = tab.btn_view.getChildByName("redpoint"); tab.redpoint.active = false; this.tab_view_list[i] = tab; } var task_item = main_container.getChildByName("task_item"); var scroll_view_size = task_item.getContentSize(); var setting = { start_x: 0, // 第一个单元的X起点 space_x: 0, // x方向的间隔 start_y: 0, // 第一个单元的Y起点 space_y: 0, // y方向的间隔 item_width: 635, // 单元的尺寸width item_height: 116, // 单元的尺寸height row: 0, // 行数,作用于水平滚动类型 col: 1, // 列数,作用于垂直滚动类型 need_dynamic: true }; this.task_goods_item = new CommonScrollViewSingle(); this.task_goods_item.createScroll(task_item, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting); this.task_goods_item.registerScriptHandlerSingle(this.createTaskCell.bind(this), ScrollViewFuncType.CreateNewCell); //--创建cell this.task_goods_item.registerScriptHandlerSingle(this.numberOfTaskCells.bind(this), ScrollViewFuncType.NumberOfCells); //-获取数量 this.task_goods_item.registerScriptHandlerSingle(this.updateTaskCellByIndex.bind(this), ScrollViewFuncType.UpdateCellByIndex); //更新cell this.setTabRedPoint(); this.tabChargeTaskView(1); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.addGlobalEvent(OrderActionEvent.OrderAction_TaskGet_Event, function () { this.setTaskGetStatus(); this.setTabRedPoint(); }.bind(this)); for (var i in this.tab_view_list) { Utils.onTouchEnd(this.tab_view_list[i].btn_view, function (i) { this.tabChargeTaskView(i); }.bind(this, i), 1); } }, createTaskCell: function createTaskCell() { var cell = new OrderActionTeskItem(); cell.show(); return cell; }, numberOfTaskCells: function numberOfTaskCells() { if (!this.task_list) return 0; return this.task_list.length; }, updateTaskCellByIndex: function updateTaskCellByIndex(cell, index) { if (!this.task_list) return; var cell_data = this.task_list[index]; if (!cell_data) return; cell.setData(cell_data); }, tabChargeTaskView: function tabChargeTaskView(index) { index = index || 1; if (this.cur_task_index == index) return; if (this.cur_tab_view != null) { this.cur_tab_view.select.active = false; } this.cur_task_index = index; this.cur_tab_view = this.tab_view_list[index]; if (this.cur_tab_view != null) { this.cur_tab_view.select.active = true; } this.setTaskGetStatus(); }, setTaskGetStatus: function setTaskGetStatus() { var cur_day = this.model.getCurDay(); var data_list = this.setTaskData(this.cur_period, cur_day, this.cur_task_index); var time = 0; if (data_list) { this.task_list = []; for (var i in data_list) { var v = data_list[i]; var task_list = this.model.getInitTaskData(v.goal_id); v.tab_index = this.cur_task_index; if (task_list) { v.status = task_list.finish; v.value = task_list.value; v.target_val = task_list.target_val; if (time == 0) { time = task_list.end_time - gcore.SmartSocket.getTime(); } } this.task_list.push(v); } this.model.sortTeskItemList(this.task_list); this.task_goods_item.reloadData(); } this.time_title.string = Utils.TI18N("刷新时间:"); ActionController.getInstance().getModel().setCountDownTime(this.time_desc, time); }, setTaskData: function setTaskData(period, day, index) { index = index || 1; var sort_list = null; var tesk_list = this.model.getTaskInduct(index); if (tesk_list) { sort_list = tesk_list; } else { this.model.setTaskInduct(period, day, index); var data = this.model.getTaskInduct(index); if (data) { sort_list = data; } } return sort_list; }, //红点 setTabRedPoint: function setTabRedPoint() { var cur_day = this.model.getCurDay(); for (var i = 1; i <= 3; i++) { var data_list = this.setTaskData(this.cur_period, cur_day, i); if (data_list) { var status = false; for (var j in data_list) { var task_list = this.model.getInitTaskData(data_list[j].goal_id); if (task_list) { if (task_list.finish == 1) { status = true; break; } } } this.tab_view_list[i].redpoint.active = status; } } }, setVisibleStatus: function setVisibleStatus(bool) { bool = bool || false; this.setVisible(bool); }, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow(params) {}, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() { if (this.time_desc) { this.time_desc.node.stopAllActions(); } if (this.task_goods_item) { this.task_goods_item.deleteMe(); this.task_goods_item = null; } // this:removeAllChildren() // this:removeFromParent() } }); cc._RF.pop();