You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

437 lines
13 KiB

  1. -- 消息Layout
  2. local ClubMessage = class("ClubMessage" , cc.UIView);
  3. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  4. local BUTTON_TAG = {
  5. BTN_APPLY = 0, --申请消息
  6. BTN_NEWS = 1, --茶馆消息
  7. BTN_REWARD= 2, --奖励领取
  8. BTN_C0PARTNER = 3, --合伙人申请
  9. }
  10. local PAGE_IMG_SELECT = {
  11. APPLY = "club_msg_btn_font_apply_sel.png", --申请消息
  12. NEWS = "club_msg_btn_font_news_sel.png", --茶馆消息
  13. REWARD = "club_msg_btn_font_reward_sel.png",--奖励领取
  14. }
  15. local PAGE_IMG_NORMAL = {
  16. APPLY = "club_msg_btn_font_apply_nor.png", --申请消息
  17. NEWS = "club_msg_btn_font_news_nor.png", --茶馆消息
  18. REWARD = "club_msg_btn_font_reward_nor.png",--奖励领取
  19. }
  20. function ClubMessage:ctor(clubId)
  21. ClubMessage.super.ctor(self)
  22. local ui = loadUI("res/ui/ui_club/ui_club_message.ui")
  23. self.ui = ui;
  24. self:addChild(ui)
  25. --茶馆群id
  26. self.clubId = clubId
  27. self.clubInfo = app.club_php.clubList[clubId]
  28. -- self.btnZorder = {
  29. -- [BUTTON_TAG.BTN_APPLY] = 0,
  30. -- [BUTTON_TAG.BTN_NEWS] = 0,
  31. -- [BUTTON_TAG.BTN_REWARD] = 0,
  32. -- }
  33. end
  34. function ClubMessage:onEnter()
  35. ClubMessage.super.onEnter(self)
  36. --关闭
  37. self.ui.Items.Button_close:registerClick(handler(self , self.onClose))
  38. --消息分类(普通消息)
  39. -- self.ui.Items.Button_news:registerClick(handler(self,self.onTouchMsg))
  40. --申请消息
  41. -- self.ui.Items.Button_apply:registerClick(handler(self,self.onTouchApplyMsg))
  42. --领取奖励
  43. -- self.ui.Items.Button_reward:registerClick(handler(self,self.onTouchReward))
  44. self:init()
  45. --请求茶馆亲友圈消息
  46. app.club_php:requestMsg(self.clubId)
  47. --请求茶馆申请消息
  48. app.club_php:requestApplyMsg(self.clubId)
  49. --请求退出茶馆申请消息
  50. app.club_php:requestExitApplyMsg(self.clubId)
  51. --请求奖励内容列表
  52. if self.clubInfo.role == ClubDefine.Job.Creator then
  53. --只有创始人才有权限请求奖励内容列表
  54. app.club_php:requestAwardList(self.clubId)
  55. end
  56. -- self:updateButtonTitle(BUTTON_TAG.BTN_APPLY)
  57. if app.config.ModuleConfig.IsSupportHeHuoRen or app.config.ModuleConfig.IsSupportDaLianMeng then
  58. self.ui.Items.Layout_title:setVisible(true)
  59. self.ui.Items.Layout_title_uncopartner:setVisible(false)
  60. local radioManager = import("luaScript.Tools.RadioManager"):new()
  61. radioManager:addItem(self.ui.Items.CheckBox_apply,BUTTON_TAG.BTN_APPLY)
  62. radioManager:addItem(self.ui.Items.CheckBox_copartner,BUTTON_TAG.BTN_C0PARTNER)
  63. radioManager:addItem(self.ui.Items.CheckBox_news,BUTTON_TAG.BTN_NEWS)
  64. radioManager:addItem(self.ui.Items.CheckBox_reward,BUTTON_TAG.BTN_REWARD)
  65. radioManager:setCallback(handler(self , self.updateButtonTitle))
  66. radioManager:setDefault(BUTTON_TAG.BTN_APPLY)
  67. if self.clubInfo.role == ClubDefine.Job.Manager then
  68. self.ui.Items.CheckBox_reward:setVisible(false)
  69. self.ui.Items.Layout_title:requestDoLayout()
  70. self.ui.Items.Layout_title:doLayout()
  71. self.ui.Items.CheckBox_news:loadTextureFrontCross("res/ui/zy_club/club_room/club_message/club_msg_btn_font_news_sel_circle.png")
  72. end
  73. else
  74. self.ui.Items.Layout_title:setVisible(false)
  75. self.ui.Items.Layout_title_uncopartner:setVisible(true)
  76. local radioManager = import("luaScript.Tools.RadioManager"):new()
  77. radioManager:addItem(self.ui.Items.CheckBox_apply_un,BUTTON_TAG.BTN_APPLY)
  78. radioManager:addItem(self.ui.Items.CheckBox_news_un,BUTTON_TAG.BTN_NEWS)
  79. radioManager:addItem(self.ui.Items.CheckBox_reward_un,BUTTON_TAG.BTN_REWARD)
  80. radioManager:setCallback(handler(self , self.updateButtonTitle))
  81. radioManager:setDefault(BUTTON_TAG.BTN_APPLY)
  82. end
  83. self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE,handler(self,self.onMessageEvent))
  84. self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE_REAWRD,handler(self,self.onGetRewardSuccess))
  85. self:bindEvent(app.club_php,GAME_EVENT.CLUB_MESSAGE_CHANGED, handler(self, self.onChangeMsgSuccess));
  86. --权限发生改变
  87. self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_ROLE , handler(self , self.onChangeRole));
  88. end
  89. -- 角色权限修改
  90. function ClubMessage:onChangeRole()
  91. self:removeFromParent()
  92. end
  93. function ClubMessage:onMessageEvent(event)
  94. if event.tag == BUTTON_TAG.BTN_APPLY then
  95. self:setApplyMsgData()
  96. elseif event.tag == BUTTON_TAG.BTN_C0PARTNER then
  97. self:setCopartnerMsgData()
  98. elseif event.tag == BUTTON_TAG.BTN_NEWS then
  99. self:setMsgData()
  100. elseif event.tag == BUTTON_TAG.BTN_REWARD then
  101. self:setAwardListMsgData()
  102. end
  103. --logD("---------------------------")
  104. --dump(self.clubInfo.isApplyHints)
  105. --dump(self.clubInfo.isLogHints)
  106. --dump(self.clubInfo.isAwardHints)
  107. if app.config.ModuleConfig.IsSupportHeHuoRen or app.config.ModuleConfig.IsSupportDaLianMeng then
  108. if self.clubInfo.isApplyHints then
  109. self.ui.Items.ImageView_apply_dian:setVisible(true)
  110. else
  111. self.ui.Items.ImageView_apply_dian:setVisible(false)
  112. end
  113. if self.clubInfo.isCoApplyHints then
  114. self.ui.Items.ImageView_copartner_dian:setVisible(true)
  115. else
  116. self.ui.Items.ImageView_copartner_dian:setVisible(false)
  117. end
  118. if self.clubInfo.isLogHints then
  119. self.ui.Items.ImageView_dian:setVisible(true)
  120. else
  121. self.ui.Items.ImageView_dian:setVisible(false)
  122. end
  123. if self.clubInfo.isAwardHints then
  124. self.ui.Items.ImageView_reward_dian:setVisible(true)
  125. else
  126. self.ui.Items.ImageView_reward_dian:setVisible(false)
  127. end
  128. else
  129. if self.clubInfo.isApplyHints then
  130. self.ui.Items.ImageView_apply_dian_un:setVisible(true)
  131. else
  132. self.ui.Items.ImageView_apply_dian_un:setVisible(false)
  133. end
  134. if self.clubInfo.isLogHints then
  135. self.ui.Items.ImageView_dian_un:setVisible(true)
  136. else
  137. self.ui.Items.ImageView_dian_un:setVisible(false)
  138. end
  139. if self.clubInfo.isAwardHints then
  140. self.ui.Items.ImageView_reward_dian_un:setVisible(true)
  141. else
  142. self.ui.Items.ImageView_reward_dian_un:setVisible(false)
  143. end
  144. end
  145. end
  146. function ClubMessage:onClose()
  147. playBtnCloseEffect()
  148. self:removeFromParent()
  149. end
  150. function ClubMessage:updateButtonTitle(tag)
  151. self.ui.Items.ScrollView_msg:setVisible(false)
  152. self.ui.Items.Layout_apply_msg:setVisible(false)
  153. self.ui.Items.Layout_copartner_msg:setVisible(false)
  154. self.ui.Items.Layout_copartner_msg_match:setVisible(false)
  155. self.ui.Items.ScrollView_reward:setVisible(false)
  156. self.ui.Items.Layout_no_data:setVisible(false)
  157. self.tag = tag
  158. local childs = {}
  159. if tag == BUTTON_TAG.BTN_APPLY then
  160. self.ui.Items.Layout_apply_msg:setVisible(true)
  161. childs = self.ui.Items.ScrollView_apply_msg:getChildren()
  162. elseif tag == BUTTON_TAG.BTN_C0PARTNER then
  163. if app.config.ModuleConfig.IsSupportHeHuoRen then
  164. self.ui.Items.Layout_copartner_msg:setVisible(true)
  165. childs = self.ui.Items.ScrollView_copartner_msg:getChildren()
  166. else
  167. self.ui.Items.Layout_copartner_msg_match:setVisible(true)
  168. childs = self.ui.Items.ScrollView_match_copartner_msg:getChildren()
  169. end
  170. elseif tag == BUTTON_TAG.BTN_NEWS then
  171. self.ui.Items.ScrollView_msg:setVisible(true)
  172. if self.clubInfo.isLogHints then
  173. app.club_php:requestSetHints(self.clubInfo.clubId,"loghints")
  174. end
  175. childs = self.ui.Items.ScrollView_msg:getChildren()
  176. elseif tag == BUTTON_TAG.BTN_REWARD then
  177. self.ui.Items.ScrollView_reward:setVisible(true)
  178. childs = self.ui.Items.ScrollView_reward:getChildren()
  179. end
  180. if table.nums(childs) <= 0 then
  181. self.ui.Items.Layout_no_data:setVisible(true);
  182. else
  183. self.ui.Items.Layout_no_data:setVisible(false);
  184. end
  185. end
  186. function ClubMessage:init()
  187. --默认不显示红点提示
  188. self.ui.Items.ImageView_dian:setVisible(false)
  189. self.ui.Items.ImageView_dian_un:setVisible(false)
  190. self.ui.Items.ImageView_apply_dian:setVisible(false)
  191. self.ui.Items.ImageView_apply_dian_un:setVisible(false)
  192. self.ui.Items.ImageView_copartner_dian:setVisible(false)
  193. self.ui.Items.ImageView_reward_dian:setVisible(false)
  194. self.ui.Items.ImageView_reward_dian_un:setVisible(false)
  195. self.ui.Items.Layout_no_data:setVisible(false)
  196. self.ui.Items.Layout_apply_title:setVisible(false)
  197. self.ui.Items.Layout_copartner_title:setVisible(false)
  198. self.ui.Items.Text_10:setText(ClubDefine.heHuoRenText)
  199. end
  200. function ClubMessage:setMsgData()
  201. --普通消息
  202. local mListView = self.ui.Items.ScrollView_msg
  203. mListView:getInnerContainer():setAutoSize(true)
  204. mListView:removeAllChildren();
  205. if self.clubInfo.messages == nil then
  206. if self.tag==BUTTON_TAG.BTN_NEWS then
  207. self.ui.Items.Layout_no_data:setVisible(true)
  208. end
  209. return
  210. end
  211. if self.tag==BUTTON_TAG.BTN_NEWS then
  212. if self.clubInfo.messages == nil or table.nums(self.clubInfo.messages)==0 then
  213. self.ui.Items.Layout_no_data:setVisible(true)
  214. return
  215. else
  216. self.ui.Items.Layout_no_data:setVisible(false)
  217. end
  218. end
  219. for k,v in pairsByKeysEx(self.clubInfo.messages) do
  220. local item = import("luaScript.Views.Club.ClubMessageItem"):new(v, "msg", self.clubId)
  221. mListView:addChild(item.ui)
  222. end
  223. mListView:jumpToTopOnSizeChanged()
  224. end
  225. function ClubMessage:setApplyMsgData()
  226. --申请消息
  227. local mListView = self.ui.Items.ScrollView_apply_msg
  228. mListView:getInnerContainer():setAutoSize(true)
  229. mListView:removeAllChildren();
  230. if self.clubInfo.applyMessages == nil then
  231. if self.tag==BUTTON_TAG.BTN_APPLY then
  232. self.ui.Items.Layout_apply_title:setVisible(false)
  233. self.ui.Items.Layout_no_data:setVisible(true)
  234. end
  235. return
  236. end
  237. if self.tag==BUTTON_TAG.BTN_APPLY then
  238. if self.clubInfo.applyMessages == nil or table.nums(self.clubInfo.applyMessages)==0 then
  239. self.ui.Items.Layout_apply_title:setVisible(false)
  240. self.ui.Items.Layout_no_data:setVisible(true)
  241. return
  242. else
  243. self.ui.Items.Layout_apply_title:setVisible(true)
  244. self.ui.Items.Layout_no_data:setVisible(false)
  245. end
  246. end
  247. local messages = {}
  248. for k,v in pairs(self.clubInfo.applyMessages) do
  249. table.insert(messages,v)
  250. end
  251. table.sort(messages, function (a, b)
  252. return a.applyTime > b.applyTime
  253. end)
  254. for k,v in pairs(messages) do
  255. local item = import("luaScript.Views.Club.ClubMessageItem"):new(v,"applyMsg", self.clubId)
  256. mListView:addChild(item.ui)
  257. end
  258. mListView:jumpToTopOnSizeChanged()
  259. end
  260. function ClubMessage:setCopartnerMsgData()
  261. --申请消息
  262. local mListView = self.ui.Items.ScrollView_copartner_msg
  263. mListView:getInnerContainer():setAutoSize(true)
  264. mListView:removeAllChildren();
  265. --若果没有数据
  266. if self.clubInfo.coapplyMessages == nil or table.nums(self.clubInfo.coapplyMessages)== 0 then
  267. if self.tag==BUTTON_TAG.BTN_C0PARTNER then
  268. if app.config.ModuleConfig.IsSupportDaLianMeng then
  269. self.ui.Items.Layout_copartner_title_match:setVisible(false)
  270. else
  271. self.ui.Items.Layout_copartner_title:setVisible(false)
  272. end
  273. self.ui.Items.Layout_no_data:setVisible(true)
  274. end
  275. return
  276. end
  277. if self.tag==BUTTON_TAG.BTN_C0PARTNER then
  278. if self.clubInfo.coapplyMessages then
  279. if app.config.ModuleConfig.IsSupportDaLianMeng then
  280. self.ui.Items.Layout_copartner_title_match:setVisible(true)
  281. else
  282. self.ui.Items.Layout_copartner_title:setVisible(true)
  283. end
  284. self.ui.Items.Layout_no_data:setVisible(false)
  285. end
  286. end
  287. local messages = {}
  288. for k,v in pairs(self.clubInfo.coapplyMessages) do
  289. table.insert(messages,v)
  290. end
  291. table.sort(messages, function (a, b)
  292. return a.applyTime > b.applyTime
  293. end)
  294. for k,v in pairs(messages) do
  295. local item = import("luaScript.Views.Club.ClubMessageItem"):new(v,"coapplyMsg", self.clubId)
  296. mListView:addChild(item.ui)
  297. self.ui.Items.Layout_copartner_title:setVisible(true)
  298. end
  299. mListView:jumpToTopOnSizeChanged()
  300. end
  301. function ClubMessage:setAwardListMsgData()
  302. --奖励内容列表消息
  303. local mListView = self.ui.Items.ScrollView_reward
  304. mListView:getInnerContainer():setAutoSize(true)
  305. mListView:removeAllChildren();
  306. if self.clubInfo.awardMessages == nil then
  307. if self.tag==BUTTON_TAG.BTN_REWARD then
  308. self.ui.Items.Layout_no_data:setVisible(true)
  309. end
  310. return
  311. end
  312. if self.tag==BUTTON_TAG.BTN_REWARD then
  313. if self.clubInfo.awardMessages == nil or table.nums(self.clubInfo.awardMessages)==0 then
  314. self.ui.Items.Layout_no_data:setVisible(true)
  315. return
  316. else
  317. self.ui.Items.Layout_no_data:setVisible(false)
  318. end
  319. end
  320. for k,v in pairsByKeysEx(self.clubInfo.awardMessages) do
  321. local item = import("luaScript.Views.Club.ClubMessageItem"):new(v, "awardListMsg", self.clubId)
  322. mListView:addChild(item.ui)
  323. end
  324. mListView:jumpToTopOnSizeChanged()
  325. end
  326. function ClubMessage:onGetRewardSuccess(event)
  327. if event then
  328. local awardType = ""
  329. if event.type == 1 then
  330. awardType = "房卡"
  331. elseif event.type == 2 then
  332. awardType = "金币"
  333. end
  334. local content = string.format("恭喜您领取奖励成功,获得%d%s", event.num, awardType);
  335. showConfirmDialog(content)
  336. end
  337. end
  338. --根据是否领取奖励,升序排序(0:未领取,1:已领取)
  339. function ClubMessage:sortStatus()
  340. if app.club_php.awardListMsg then
  341. local awardList = app.club_php.awardListMsg[tonumber(self.gID)]
  342. if awardList then
  343. local lT = {};
  344. for k,v in pairs(awardList.list) do
  345. table.insert(lT,v)
  346. end
  347. --升序(0:未领取,1:已领取)
  348. local function sortFunc(a,b)
  349. return tonumber(a.status) < tonumber(b.status)
  350. end
  351. table.sort(lT, sortFunc);
  352. app.club_php.awardListMsg.list = lT;
  353. end
  354. end
  355. end
  356. --消息处理成功回调
  357. function ClubMessage:onChangeMsgSuccess(event)
  358. --重新请求消息数据
  359. app.club_php:requestMsg(self.clubId);
  360. end
  361. return ClubMessage