-- 消息Layout local ClubMessage = class("ClubMessage" , cc.UIView); local ClubDefine = require("luaScript.Protocol.Club.ClubDefine") local BUTTON_TAG = { BTN_APPLY = 0, --申请消息 BTN_NEWS = 1, --茶馆消息 BTN_REWARD= 2, --奖励领取 BTN_C0PARTNER = 3, --合伙人申请 } local PAGE_IMG_SELECT = { APPLY = "club_msg_btn_font_apply_sel.png", --申请消息 NEWS = "club_msg_btn_font_news_sel.png", --茶馆消息 REWARD = "club_msg_btn_font_reward_sel.png",--奖励领取 } local PAGE_IMG_NORMAL = { APPLY = "club_msg_btn_font_apply_nor.png", --申请消息 NEWS = "club_msg_btn_font_news_nor.png", --茶馆消息 REWARD = "club_msg_btn_font_reward_nor.png",--奖励领取 } function ClubMessage:ctor(clubId) ClubMessage.super.ctor(self) local ui = loadUI("res/ui/ui_club/ui_club_message.ui") self.ui = ui; self:addChild(ui) --茶馆群id self.clubId = clubId self.clubInfo = app.club_php.clubList[clubId] -- self.btnZorder = { -- [BUTTON_TAG.BTN_APPLY] = 0, -- [BUTTON_TAG.BTN_NEWS] = 0, -- [BUTTON_TAG.BTN_REWARD] = 0, -- } end function ClubMessage:onEnter() ClubMessage.super.onEnter(self) --关闭 self.ui.Items.Button_close:registerClick(handler(self , self.onClose)) --消息分类(普通消息) -- self.ui.Items.Button_news:registerClick(handler(self,self.onTouchMsg)) --申请消息 -- self.ui.Items.Button_apply:registerClick(handler(self,self.onTouchApplyMsg)) --领取奖励 -- self.ui.Items.Button_reward:registerClick(handler(self,self.onTouchReward)) self:init() --请求茶馆亲友圈消息 app.club_php:requestMsg(self.clubId) --请求茶馆申请消息 app.club_php:requestApplyMsg(self.clubId) --请求退出茶馆申请消息 app.club_php:requestExitApplyMsg(self.clubId) --请求奖励内容列表 if self.clubInfo.role == ClubDefine.Job.Creator then --只有创始人才有权限请求奖励内容列表 app.club_php:requestAwardList(self.clubId) end -- self:updateButtonTitle(BUTTON_TAG.BTN_APPLY) if app.config.ModuleConfig.IsSupportHeHuoRen or app.config.ModuleConfig.IsSupportDaLianMeng then self.ui.Items.Layout_title:setVisible(true) self.ui.Items.Layout_title_uncopartner:setVisible(false) local radioManager = import("luaScript.Tools.RadioManager"):new() radioManager:addItem(self.ui.Items.CheckBox_apply,BUTTON_TAG.BTN_APPLY) radioManager:addItem(self.ui.Items.CheckBox_copartner,BUTTON_TAG.BTN_C0PARTNER) radioManager:addItem(self.ui.Items.CheckBox_news,BUTTON_TAG.BTN_NEWS) radioManager:addItem(self.ui.Items.CheckBox_reward,BUTTON_TAG.BTN_REWARD) radioManager:setCallback(handler(self , self.updateButtonTitle)) radioManager:setDefault(BUTTON_TAG.BTN_APPLY) if self.clubInfo.role == ClubDefine.Job.Manager then self.ui.Items.CheckBox_reward:setVisible(false) self.ui.Items.Layout_title:requestDoLayout() self.ui.Items.Layout_title:doLayout() self.ui.Items.CheckBox_news:loadTextureFrontCross("res/ui/zy_club/club_room/club_message/club_msg_btn_font_news_sel_circle.png") end else self.ui.Items.Layout_title:setVisible(false) self.ui.Items.Layout_title_uncopartner:setVisible(true) local radioManager = import("luaScript.Tools.RadioManager"):new() radioManager:addItem(self.ui.Items.CheckBox_apply_un,BUTTON_TAG.BTN_APPLY) radioManager:addItem(self.ui.Items.CheckBox_news_un,BUTTON_TAG.BTN_NEWS) radioManager:addItem(self.ui.Items.CheckBox_reward_un,BUTTON_TAG.BTN_REWARD) radioManager:setCallback(handler(self , self.updateButtonTitle)) radioManager:setDefault(BUTTON_TAG.BTN_APPLY) end self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE,handler(self,self.onMessageEvent)) self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE_REAWRD,handler(self,self.onGetRewardSuccess)) self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE_CHANGED, handler(self, self.onChangeMsgSuccess)); --权限发生改变 self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_ROLE , handler(self , self.onChangeRole)); end -- 角色权限修改 function ClubMessage:onChangeRole() self:removeFromParent() end function ClubMessage:onMessageEvent(event) if event.tag == BUTTON_TAG.BTN_APPLY then self:setApplyMsgData() elseif event.tag == BUTTON_TAG.BTN_C0PARTNER then self:setCopartnerMsgData() elseif event.tag == BUTTON_TAG.BTN_NEWS then self:setMsgData() elseif event.tag == BUTTON_TAG.BTN_REWARD then self:setAwardListMsgData() end --logD("---------------------------") --dump(self.clubInfo.isApplyHints) --dump(self.clubInfo.isLogHints) --dump(self.clubInfo.isAwardHints) if app.config.ModuleConfig.IsSupportHeHuoRen or app.config.ModuleConfig.IsSupportDaLianMeng then if self.clubInfo.isApplyHints then self.ui.Items.ImageView_apply_dian:setVisible(true) else self.ui.Items.ImageView_apply_dian:setVisible(false) end if self.clubInfo.isCoApplyHints then self.ui.Items.ImageView_copartner_dian:setVisible(true) else self.ui.Items.ImageView_copartner_dian:setVisible(false) end if self.clubInfo.isLogHints then self.ui.Items.ImageView_dian:setVisible(true) else self.ui.Items.ImageView_dian:setVisible(false) end if self.clubInfo.isAwardHints then self.ui.Items.ImageView_reward_dian:setVisible(true) else self.ui.Items.ImageView_reward_dian:setVisible(false) end else if self.clubInfo.isApplyHints then self.ui.Items.ImageView_apply_dian_un:setVisible(true) else self.ui.Items.ImageView_apply_dian_un:setVisible(false) end if self.clubInfo.isLogHints then self.ui.Items.ImageView_dian_un:setVisible(true) else self.ui.Items.ImageView_dian_un:setVisible(false) end if self.clubInfo.isAwardHints then self.ui.Items.ImageView_reward_dian_un:setVisible(true) else self.ui.Items.ImageView_reward_dian_un:setVisible(false) end end end function ClubMessage:onClose() playBtnCloseEffect() self:removeFromParent() end function ClubMessage:updateButtonTitle(tag) self.ui.Items.ScrollView_msg:setVisible(false) self.ui.Items.Layout_apply_msg:setVisible(false) self.ui.Items.Layout_copartner_msg:setVisible(false) self.ui.Items.Layout_copartner_msg_match:setVisible(false) self.ui.Items.ScrollView_reward:setVisible(false) self.ui.Items.Layout_no_data:setVisible(false) self.tag = tag local childs = {} if tag == BUTTON_TAG.BTN_APPLY then self.ui.Items.Layout_apply_msg:setVisible(true) childs = self.ui.Items.ScrollView_apply_msg:getChildren() elseif tag == BUTTON_TAG.BTN_C0PARTNER then if app.config.ModuleConfig.IsSupportHeHuoRen then self.ui.Items.Layout_copartner_msg:setVisible(true) childs = self.ui.Items.ScrollView_copartner_msg:getChildren() else self.ui.Items.Layout_copartner_msg_match:setVisible(true) childs = self.ui.Items.ScrollView_match_copartner_msg:getChildren() end elseif tag == BUTTON_TAG.BTN_NEWS then self.ui.Items.ScrollView_msg:setVisible(true) if self.clubInfo.isLogHints then app.club_php:requestSetHints(self.clubInfo.clubId,"loghints") end childs = self.ui.Items.ScrollView_msg:getChildren() elseif tag == BUTTON_TAG.BTN_REWARD then self.ui.Items.ScrollView_reward:setVisible(true) childs = self.ui.Items.ScrollView_reward:getChildren() end if table.nums(childs) <= 0 then self.ui.Items.Layout_no_data:setVisible(true); else self.ui.Items.Layout_no_data:setVisible(false); end end function ClubMessage:init() --默认不显示红点提示 self.ui.Items.ImageView_dian:setVisible(false) self.ui.Items.ImageView_dian_un:setVisible(false) self.ui.Items.ImageView_apply_dian:setVisible(false) self.ui.Items.ImageView_apply_dian_un:setVisible(false) self.ui.Items.ImageView_copartner_dian:setVisible(false) self.ui.Items.ImageView_reward_dian:setVisible(false) self.ui.Items.ImageView_reward_dian_un:setVisible(false) self.ui.Items.Layout_no_data:setVisible(false) self.ui.Items.Layout_apply_title:setVisible(false) self.ui.Items.Layout_copartner_title:setVisible(false) self.ui.Items.Text_10:setText(ClubDefine.heHuoRenText) end function ClubMessage:setMsgData() --普通消息 local mListView = self.ui.Items.ScrollView_msg mListView:getInnerContainer():setAutoSize(true) mListView:removeAllChildren(); if self.clubInfo.messages == nil then if self.tag==BUTTON_TAG.BTN_NEWS then self.ui.Items.Layout_no_data:setVisible(true) end return end if self.tag==BUTTON_TAG.BTN_NEWS then if self.clubInfo.messages == nil or table.nums(self.clubInfo.messages)==0 then self.ui.Items.Layout_no_data:setVisible(true) return else self.ui.Items.Layout_no_data:setVisible(false) end end for k,v in pairsByKeysEx(self.clubInfo.messages) do local item = import("luaScript.Views.Club.ClubMessageItem"):new(v, "msg", self.clubId) mListView:addChild(item.ui) end mListView:jumpToTopOnSizeChanged() end function ClubMessage:setApplyMsgData() --申请消息 local mListView = self.ui.Items.ScrollView_apply_msg mListView:getInnerContainer():setAutoSize(true) mListView:removeAllChildren(); if self.clubInfo.applyMessages == nil then if self.tag==BUTTON_TAG.BTN_APPLY then self.ui.Items.Layout_apply_title:setVisible(false) self.ui.Items.Layout_no_data:setVisible(true) end return end if self.tag==BUTTON_TAG.BTN_APPLY then if self.clubInfo.applyMessages == nil or table.nums(self.clubInfo.applyMessages)==0 then self.ui.Items.Layout_apply_title:setVisible(false) self.ui.Items.Layout_no_data:setVisible(true) return else self.ui.Items.Layout_apply_title:setVisible(true) self.ui.Items.Layout_no_data:setVisible(false) end end local messages = {} for k,v in pairs(self.clubInfo.applyMessages) do table.insert(messages,v) end table.sort(messages, function (a, b) return a.applyTime > b.applyTime end) for k,v in pairs(messages) do local item = import("luaScript.Views.Club.ClubMessageItem"):new(v,"applyMsg", self.clubId) mListView:addChild(item.ui) end mListView:jumpToTopOnSizeChanged() end function ClubMessage:setCopartnerMsgData() --申请消息 local mListView = self.ui.Items.ScrollView_copartner_msg mListView:getInnerContainer():setAutoSize(true) mListView:removeAllChildren(); --若果没有数据 if self.clubInfo.coapplyMessages == nil or table.nums(self.clubInfo.coapplyMessages)== 0 then if self.tag==BUTTON_TAG.BTN_C0PARTNER then if app.config.ModuleConfig.IsSupportDaLianMeng then self.ui.Items.Layout_copartner_title_match:setVisible(false) else self.ui.Items.Layout_copartner_title:setVisible(false) end self.ui.Items.Layout_no_data:setVisible(true) end return end if self.tag==BUTTON_TAG.BTN_C0PARTNER then if self.clubInfo.coapplyMessages then if app.config.ModuleConfig.IsSupportDaLianMeng then self.ui.Items.Layout_copartner_title_match:setVisible(true) else self.ui.Items.Layout_copartner_title:setVisible(true) end self.ui.Items.Layout_no_data:setVisible(false) end end local messages = {} for k,v in pairs(self.clubInfo.coapplyMessages) do table.insert(messages,v) end table.sort(messages, function (a, b) return a.applyTime > b.applyTime end) for k,v in pairs(messages) do local item = import("luaScript.Views.Club.ClubMessageItem"):new(v,"coapplyMsg", self.clubId) mListView:addChild(item.ui) self.ui.Items.Layout_copartner_title:setVisible(true) end mListView:jumpToTopOnSizeChanged() end function ClubMessage:setAwardListMsgData() --奖励内容列表消息 local mListView = self.ui.Items.ScrollView_reward mListView:getInnerContainer():setAutoSize(true) mListView:removeAllChildren(); if self.clubInfo.awardMessages == nil then if self.tag==BUTTON_TAG.BTN_REWARD then self.ui.Items.Layout_no_data:setVisible(true) end return end if self.tag==BUTTON_TAG.BTN_REWARD then if self.clubInfo.awardMessages == nil or table.nums(self.clubInfo.awardMessages)==0 then self.ui.Items.Layout_no_data:setVisible(true) return else self.ui.Items.Layout_no_data:setVisible(false) end end for k,v in pairsByKeysEx(self.clubInfo.awardMessages) do local item = import("luaScript.Views.Club.ClubMessageItem"):new(v, "awardListMsg", self.clubId) mListView:addChild(item.ui) end mListView:jumpToTopOnSizeChanged() end function ClubMessage:onGetRewardSuccess(event) if event then local awardType = "" if event.type == 1 then awardType = "房卡" elseif event.type == 2 then awardType = "金币" end local content = string.format("恭喜您领取奖励成功,获得%d%s", event.num, awardType); showConfirmDialog(content) end end --根据是否领取奖励,升序排序(0:未领取,1:已领取) function ClubMessage:sortStatus() if app.club_php.awardListMsg then local awardList = app.club_php.awardListMsg[tonumber(self.gID)] if awardList then local lT = {}; for k,v in pairs(awardList.list) do table.insert(lT,v) end --升序(0:未领取,1:已领取) local function sortFunc(a,b) return tonumber(a.status) < tonumber(b.status) end table.sort(lT, sortFunc); app.club_php.awardListMsg.list = lT; end end end --消息处理成功回调 function ClubMessage:onChangeMsgSuccess(event) --重新请求消息数据 app.club_php:requestMsg(self.clubId); end return ClubMessage