UIGuildMainView.lua 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236
  1. local UIGuildMainView = require("UIGuild/UIGuildMainView_Generate")
  2. local LoadStatusLoopListCtr = require('Common/LoadStatusLoopListCtr')
  3. local ManageLanguageKeyMap = {
  4. [Enum.GuildManageType.AuditApply] = 'GuildManage_01',
  5. [Enum.GuildManageType.Settings] = 'GuildManage_02',
  6. [Enum.GuildManageType.Mail] = 'GuildManage_03',
  7. [Enum.GuildManageType.List] = 'GuildManage_04',
  8. [Enum.GuildManageType.Dismiss] = 'GuildManage_05',
  9. [Enum.GuildManageType.Exit] = 'GuildManage_06',
  10. }
  11. local PeopleHandleLanguageKeyMap = {
  12. [Enum.GuildPeopleHandleType.UpPresident] = 'GuildMemberHandle_01',
  13. [Enum.GuildPeopleHandleType.UpVicePresident] = 'GuildMemberHandle_02',
  14. [Enum.GuildPeopleHandleType.DownMember] = 'GuildMemberHandle_03',
  15. [Enum.GuildPeopleHandleType.PrivateChat] = 'GuildMemberHandle_04',
  16. [Enum.GuildPeopleHandleType.SeeInfo] = 'GuildMemberHandle_05',
  17. [Enum.GuildPeopleHandleType.Interest] = 'GuildMemberHandle_06',
  18. [Enum.GuildPeopleHandleType.CancelInterest] = 'GuildMemberHandle_07',
  19. [Enum.GuildPeopleHandleType.Kickout] = 'GuildMemberHandle_08',
  20. }
  21. local ManageMap = {
  22. [Enum.GuildPostType.None] = {
  23. Enum.GuildManageType.List,
  24. Enum.GuildManageType.Exit,
  25. },
  26. [Enum.GuildPostType.VicePresident] = {
  27. Enum.GuildManageType.AuditApply,
  28. Enum.GuildManageType.List,
  29. Enum.GuildManageType.Exit,
  30. },
  31. [Enum.GuildPostType.President] = {
  32. Enum.GuildManageType.AuditApply,
  33. Enum.GuildManageType.Settings,
  34. Enum.GuildManageType.Mail,
  35. Enum.GuildManageType.List,
  36. Enum.GuildManageType.Dismiss,
  37. },
  38. }
  39. local PeopleHandleMap = {
  40. [Enum.GuildPostType.None] = {
  41. [Enum.GuildPostType.None] = {
  42. Enum.GuildPeopleHandleType.PrivateChat,
  43. Enum.GuildPeopleHandleType.SeeInfo,
  44. Enum.GuildPeopleHandleType.Interest,
  45. },
  46. [Enum.GuildPostType.VicePresident] = {
  47. Enum.GuildPeopleHandleType.PrivateChat,
  48. Enum.GuildPeopleHandleType.SeeInfo,
  49. Enum.GuildPeopleHandleType.Interest,
  50. },
  51. [Enum.GuildPostType.President] = {
  52. Enum.GuildPeopleHandleType.PrivateChat,
  53. Enum.GuildPeopleHandleType.SeeInfo,
  54. Enum.GuildPeopleHandleType.Interest,
  55. },
  56. },
  57. [Enum.GuildPostType.VicePresident] = {
  58. [Enum.GuildPostType.None] = {
  59. Enum.GuildPeopleHandleType.PrivateChat,
  60. Enum.GuildPeopleHandleType.SeeInfo,
  61. Enum.GuildPeopleHandleType.Interest,
  62. Enum.GuildPeopleHandleType.Kickout,
  63. },
  64. [Enum.GuildPostType.VicePresident] = {
  65. Enum.GuildPeopleHandleType.PrivateChat,
  66. Enum.GuildPeopleHandleType.SeeInfo,
  67. Enum.GuildPeopleHandleType.Interest,
  68. },
  69. [Enum.GuildPostType.President] = {
  70. Enum.GuildPeopleHandleType.PrivateChat,
  71. Enum.GuildPeopleHandleType.SeeInfo,
  72. Enum.GuildPeopleHandleType.Interest,
  73. },
  74. },
  75. [Enum.GuildPostType.President] = {
  76. [Enum.GuildPostType.None] = {
  77. Enum.GuildPeopleHandleType.UpVicePresident,
  78. Enum.GuildPeopleHandleType.PrivateChat,
  79. Enum.GuildPeopleHandleType.SeeInfo,
  80. Enum.GuildPeopleHandleType.Interest,
  81. Enum.GuildPeopleHandleType.Kickout,
  82. },
  83. [Enum.GuildPostType.VicePresident] = {
  84. Enum.GuildPeopleHandleType.DownMember,
  85. Enum.GuildPeopleHandleType.UpPresident,
  86. Enum.GuildPeopleHandleType.PrivateChat,
  87. Enum.GuildPeopleHandleType.SeeInfo,
  88. Enum.GuildPeopleHandleType.Interest,
  89. Enum.GuildPeopleHandleType.Kickout,
  90. },
  91. [Enum.GuildPostType.President] = {
  92. Enum.GuildPeopleHandleType.PrivateChat,
  93. Enum.GuildPeopleHandleType.SeeInfo,
  94. Enum.GuildPeopleHandleType.Interest,
  95. },
  96. }
  97. }
  98. function UIGuildMainView:OnAwake(data)
  99. self.controller = require("UIGuild/UIGuildMainCtr")
  100. self.controller:Init(self)
  101. self.controller:SetData(data)
  102. end
  103. function UIGuildMainView:AddEventListener()
  104. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_SELF_MORE_INFO_CHANGED, self, self.OnGuildMoreInfoChanged)
  105. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_MEMBER_MORE_INFO_CHANGED, self, self.OnGuildMemberMoreInfoChanged)
  106. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_DISBAND_SUCCESS, self, self.OnGuildDisBandSuccess)
  107. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_QUIT_SUCCESS, self, self.OnGuildQuitSuccess)
  108. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_KICKOUT_SUCCESS, self, self.OnGuildKickoutSuccess)
  109. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_NOTICE_CHANGED, self, self.OnGuildNoticeChanged)
  110. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_NAME_CHANGED, self, self.OnGuildNameChanged)
  111. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_BADGE_CHANGED, self, self.OnGuildBadgeChanged)
  112. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_ACTIVE_CHANGED, self, self.OnGuildActiveChanged)
  113. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_GET_AUDIT_APPLY_LIST_CHANGED, self, self.OnGetAuditApplyListChanged)
  114. end
  115. function UIGuildMainView:FillContent(data, uiBase)
  116. self.uiBase = uiBase
  117. local gameObject = self.uiBase:GetRoot()
  118. if gameObject ~= nil then
  119. self.gameObject = gameObject
  120. self.transform = gameObject.transform
  121. end
  122. self:InitGenerate(self.transform, data)
  123. self:Init()
  124. end
  125. function UIGuildMainView:Init()
  126. self:InitGuildTips()
  127. self.scrollView.scrollRect.horizontalNormalizedPosition = 0
  128. self.selectItemIdx = nil
  129. if self.loadStatusLoopListCtr then
  130. self.loadStatusLoopListCtr:Dispose()
  131. self.loadStatusLoopListCtr = nil
  132. end
  133. self.loadStatusLoopListCtr = LoadStatusLoopListCtr:new(self, self.peopleList.loopListView, 0, 50,
  134. false, nil, nil,
  135. true, 'LoadingItem', Enum.ListLoadingStatus.WaitLoad,
  136. self.GetItemByIndex, nil, self.OnBeginLoad)
  137. self.noticeInput.inputField.interactable = false
  138. self.noticeNumTxt:SetActive(false)
  139. self:OnClickClickMaskBtn()
  140. self:RefreshBriefView()
  141. self:RefreshMoreInfoView()
  142. self:RefreshGuildBattle()
  143. -- 界面准备好了,等待服务器数据到来
  144. local errorCode = self.controller:SendGetGuildInfoReq()
  145. if errorCode ~= 0 then
  146. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  147. end
  148. end
  149. function UIGuildMainView:RemoveEventListener()
  150. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  151. self.noticeInput.inputField.onValidateInput = nil
  152. self.noticeInput.inputField.onValueChanged:RemoveAllListeners()
  153. self.noticeInput.inputField.onEndEdit:RemoveAllListeners()
  154. end
  155. function UIGuildMainView:AddUIEventListener()
  156. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  157. self.uiBase:AddButtonUniqueEventListener(self.btnAdmin.button, self, self.OnClickAdminBtn)
  158. self.uiBase:AddButtonUniqueEventListener(self.changeBtn.button, self, self.OnClickChangeBtn)
  159. self.noticeInput.inputField.onValidateInput = self.noticeInput.inputField.OnValidateInput(self.OnValidateInput, self)
  160. self.noticeInput.inputField.onValueChanged:RemoveAllListeners()
  161. self.noticeInput.inputField.onValueChanged:AddListener(function(text)
  162. self:OnValueChangedInput(text)
  163. end)
  164. self.noticeInput.inputField.onEndEdit:RemoveAllListeners()
  165. self.noticeInput.inputField.onEndEdit:AddListener(function(text)
  166. self:OnEndEditInput(text)
  167. end)
  168. self.uiBase:AddButtonUniqueEventListener(self.btnPlayRule.button, self, self.OnClickPlayRuleBtn)
  169. self.uiBase:AddButtonUniqueEventListener(self.btnBack.button, self, self.OnClickBackBtn)
  170. self.uiBase:AddButtonUniqueEventListener(self.btnGuildLog.button, self, self.OnClickGuildLogBtn)
  171. self.uiBase:AddButtonUniqueEventListener(self.active.button, self, self.OnClickActiveBtn)
  172. self.uiBase:AddButtonUniqueEventListener(self.guildCP.button, self, self.OnClickGuildCPBtn)
  173. self.uiBase:AddButtonUniqueEventListener(self.expBar.background.button, self, self.OnClickExpBarBtn)
  174. self.uiBase:AddButtonUniqueEventListener(self.clickMask.button, self, self.OnClickClickMaskBtn)
  175. self.uiBase:AddButtonUniqueEventListener(self.btnVenery.button, self, self.OnClickVeneryBtn)
  176. self.uiBase:AddButtonUniqueEventListener(self.btnShop.button, self, self.OnClickShopBtn)
  177. self.uiBase:AddButtonUniqueEventListener(self.btnDemon.button, self, self.OnClickDemonBtn)
  178. self.uiBase:AddButtonUniqueEventListener(self.btnBattle.button, self, self.OnClickBattleBtn)
  179. self.uiBase:AddButtonUniqueEventListener(self.btnL.button, self, self.OnClickLBtn)
  180. self.uiBase:AddButtonUniqueEventListener(self.btnR.button, self, self.OnClickRBtn)
  181. end
  182. function UIGuildMainView:OnHide()
  183. end
  184. function UIGuildMainView:OnShow(data)
  185. self.controller:SetData(data)
  186. end
  187. function UIGuildMainView:OnClose()
  188. end
  189. function UIGuildMainView:OnDispose()
  190. self.selectItemIdx = nil
  191. if self.endEditDelayTimer then
  192. self.endEditDelayTimer:Stop()
  193. self.endEditDelayTimer = nil
  194. end
  195. if self.guildBattleTimer then
  196. if self.guildBattleTimer.running then
  197. self.guildBattleTimer:Stop()
  198. end
  199. self.guildBattleTimer = nil
  200. end
  201. if self.loadStatusLoopListCtr then
  202. self.loadStatusLoopListCtr:Dispose()
  203. self.loadStatusLoopListCtr = nil
  204. end
  205. self:DisposeGuildTips()
  206. self.controller:OnDispose()
  207. end
  208. function UIGuildMainView:OnGuildMoreInfoChanged()
  209. self:RefreshBriefView()
  210. self:RefreshMoreInfoView()
  211. self:RefreshGuildBattle()
  212. self:OnBeginLoad()
  213. end
  214. function UIGuildMainView:OnGuildMemberMoreInfoChanged(guild)
  215. if guild ~= self.controller:GetId() then return end
  216. self:RefreshMemberInfoView()
  217. end
  218. function UIGuildMainView:OnGuildDisBandSuccess()
  219. ManagerContainer.LuaUIMgr:OpenSourceUI(self)
  220. end
  221. function UIGuildMainView:OnGuildQuitSuccess()
  222. ManagerContainer.LuaUIMgr:OpenSourceUI(self)
  223. end
  224. function UIGuildMainView:OnGuildKickoutSuccess()
  225. ManagerContainer.LuaUIMgr:OpenSourceUI(self)
  226. end
  227. function UIGuildMainView:OnGuildNoticeChanged()
  228. self:RefreshGuildNotice()
  229. end
  230. function UIGuildMainView:OnGuildNameChanged()
  231. self:RefreshGuildName()
  232. end
  233. function UIGuildMainView:OnGuildBadgeChanged()
  234. self:RefreshGuildBadge()
  235. end
  236. function UIGuildMainView:OnGuildActiveChanged()
  237. self:RefreshGuildActive()
  238. end
  239. function UIGuildMainView:OnGetAuditApplyListChanged()
  240. local itemList = self.peopleList.loopListView.ItemList
  241. if not itemList then return end
  242. local count = itemList.Count
  243. if count <= 0 then return end
  244. local startList = itemList[0]
  245. local endList = itemList[count - 1]
  246. if not startList then return end
  247. local startIdx = startList.ItemIndex
  248. if not endList then return end
  249. local endIdx = endList.ItemIndex
  250. local uids = self.controller:GetNeedLoadMemberMoreInfo(startIdx, endIdx)
  251. if not uids or #uids == 0 then
  252. return
  253. end
  254. self.controller:SendGetGuildMemberInfoReq(uids)
  255. end
  256. function UIGuildMainView:OnClickAdminBtn()
  257. local guildPostType = self.controller:GetGuildPostType()
  258. local manages = ManageMap[guildPostType]
  259. if not manages then return end
  260. local len = #manages
  261. if len <= 0 then return end
  262. --- 如果界面不刷新数据,后续可在界面打开时初始化
  263. local menus = {}
  264. for i = 1, len do
  265. local guildManageType = manages[i]
  266. local langKey = ManageLanguageKeyMap[guildManageType] or ''
  267. menus[#menus + 1] = {langKey, guildManageType, (guildManageType == Enum.GuildManageType.Mail)}
  268. end
  269. local rectTransform = self.btnAdmin.rectTransform
  270. local min = rectTransform.rect.min
  271. local alignPos = rectTransform:TransformPoint(min)
  272. local data = {menus = menus, ownerCB = self, cb = self.ManageFuncMenuCallBack, alignPos = alignPos, alignment = Enum.Alignment.UpperLeft }
  273. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIFuncMenu, data)
  274. end
  275. function UIGuildMainView:OnClickChangeBtn()
  276. if self.endEditDelayTimer then
  277. self.endEditDelayTimer:Stop()
  278. end
  279. self.changeBtn:SetActive(false)
  280. self.noticeInput.inputField.interactable = true
  281. self.noticeInput.inputField:ActivateInputField()
  282. local text = self.noticeInput.inputField.text
  283. local len = GetActualStringLength(text)
  284. local max = self.controller:GetNoticeLengthMax()
  285. self.noticeNumTxt:SetActive(true)
  286. self.noticeNumTxt.text.text = tostring(len) .. '/' .. tostring(max)
  287. end
  288. function UIGuildMainView:OnValidateInput(text, charIndex, addedChar)
  289. local len = GetActualStringLength(text) + 1
  290. local max = self.controller:GetNoticeLengthMax()
  291. if len > max then return 0 end
  292. return addedChar
  293. end
  294. function UIGuildMainView:OnValueChangedInput(text)
  295. local len = GetActualStringLength(text)
  296. local max = self.controller:GetNoticeLengthMax()
  297. self.noticeNumTxt.text.text = tostring(len) .. '/' .. tostring(max)
  298. end
  299. function UIGuildMainView:OnEndEditInput(text)
  300. self.controller:SetChangeNotice(text)
  301. self.noticeNumTxt:SetActive(false)
  302. -- 不能同帧设置,So延迟
  303. if self.noticeInput.inputField.interactable then
  304. if self.endEditDelayTimer then
  305. self.endEditDelayTimer.count = Time.frameCount + 1
  306. else
  307. self.endEditDelayTimer = FrameTimer.New(function()
  308. local guildPostType = self.controller:GetGuildPostType()
  309. local canChangeNotice = (guildPostType == Enum.GuildPostType.President)
  310. if canChangeNotice then
  311. self.noticeInput.inputField.interactable = false
  312. self.changeBtn:SetActive(true)
  313. else
  314. self.noticeInput.inputField.interactable = false
  315. self.changeBtn:SetActive(false)
  316. end
  317. end, 1)
  318. end
  319. if not self.endEditDelayTimer.running then
  320. self.endEditDelayTimer:Start()
  321. end
  322. end
  323. local guildPostType = self.controller:GetGuildPostType()
  324. if (guildPostType == Enum.GuildPostType.President) then
  325. local errorCode = self.controller:SendChangeNoticeReq()
  326. if errorCode ~= 0 then
  327. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  328. end
  329. end
  330. end
  331. function UIGuildMainView:OnClickPlayRuleBtn()
  332. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayRule, {'PlayExplainTitle', 'GuildPlayExplain'})
  333. end
  334. function UIGuildMainView:OnClickBackBtn()
  335. ManagerContainer.LuaUIMgr:OpenSourceUI(self)
  336. end
  337. function UIGuildMainView:OnClickGuildLogBtn()
  338. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildLog)
  339. end
  340. function UIGuildMainView:OnClickActiveBtn(btn)
  341. local rectTransform = btn.transform
  342. local rect = rectTransform.rect
  343. local pos = Vector2(rect.xMin, rect.yMin)
  344. pos = rectTransform:TransformPoint(pos)
  345. self:SetGuildTips(true, 1, pos)
  346. end
  347. function UIGuildMainView:OnClickGuildCPBtn(btn)
  348. local rectTransform = btn.transform
  349. local rect = rectTransform.rect
  350. local pos = Vector2(rect.xMin, rect.yMin)
  351. pos = rectTransform:TransformPoint(pos)
  352. self:SetGuildTips(true, 3, pos)
  353. end
  354. function UIGuildMainView:OnClickExpBarBtn(btn)
  355. local rectTransform = btn.transform
  356. local rect = rectTransform.rect
  357. local pos = Vector2(rect.xMin, rect.yMin)
  358. pos = rectTransform:TransformPoint(pos)
  359. self:SetGuildTips(true, 2, pos)
  360. end
  361. function UIGuildMainView:OnClickClickMaskBtn()
  362. self:SetMemberActiveTips(false)
  363. self:SetGuildTips(false)
  364. end
  365. function UIGuildMainView:OnClickVeneryBtn()
  366. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildHunt, nil, self.uiData.id)
  367. end
  368. function UIGuildMainView:OnClickDemonBtn()
  369. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildDemon, nil, self.uiData.id)
  370. end
  371. function UIGuildMainView:OnClickShopBtn()
  372. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIShop, 4, self.uiData.id)
  373. end
  374. function UIGuildMainView:OnClickBattleBtn()
  375. local guildWarInfo = self.controller:GetGuildWarInfo()
  376. local state = guildWarInfo and guildWarInfo.curState or 3
  377. local remainTime = 0
  378. if guildWarInfo and guildWarInfo.nextStateTime then
  379. remainTime = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(guildWarInfo.nextStateTime)
  380. end
  381. if state == 2 then
  382. if remainTime <= 0 then
  383. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarEnterTips02')
  384. else
  385. if ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState() then
  386. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildWarMatchMap, nil, self.uiData.id)
  387. else
  388. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarBattle20')
  389. end
  390. end
  391. elseif state == 3 then
  392. if remainTime <= 0 then
  393. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarEnterTips02')
  394. else
  395. if ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState() then
  396. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildWarMatchMap, nil, self.uiData.id)
  397. else
  398. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarBattle20')
  399. end
  400. end
  401. else
  402. if remainTime <= 0 then
  403. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarEnterTips02')
  404. else
  405. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildWarEnterTips01')
  406. end
  407. end
  408. end
  409. function UIGuildMainView:OnClickLBtn()
  410. local scrollRect = self.scrollView.scrollRect
  411. local horizontalNormalizedPosition = scrollRect.horizontalNormalizedPosition
  412. if horizontalNormalizedPosition == 0 then return end
  413. scrollRect:DOHorizontalNormalizedPos(0, horizontalNormalizedPosition * 0.1)
  414. end
  415. function UIGuildMainView:OnClickRBtn()
  416. local scrollRect = self.scrollView.scrollRect
  417. local horizontalNormalizedPosition = scrollRect.horizontalNormalizedPosition
  418. if horizontalNormalizedPosition == 1 then return end
  419. scrollRect:DOHorizontalNormalizedPos(1, (1 - horizontalNormalizedPosition) * 0.1)
  420. end
  421. function UIGuildMainView:OnClickGuildPeopleItem(btn, params)
  422. local itemLua = params[0]
  423. local uid = params[1]
  424. local itemIdx = params[2]
  425. local guildPostType = self.controller:GetGuildPostType()
  426. local _userUid = ManagerContainer.DataMgr.UserData:GetUserId()
  427. if int64.equals(uid, _userUid) then
  428. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ChatError1")
  429. return
  430. end
  431. local interest = ManagerContainer.DataMgr.FriendDataMgr:HasInterestPlayer(uid)
  432. local handleGuildPostType = self.controller:GetGuildMemberPost(uid)
  433. local peopleHandleMap = PeopleHandleMap[guildPostType]
  434. local peopleHandle = nil
  435. if peopleHandleMap then
  436. peopleHandle = peopleHandleMap[handleGuildPostType]
  437. end
  438. if not peopleHandle then return end
  439. local len = #peopleHandle
  440. if len <= 0 then return end
  441. --- 如果界面不刷新数据,后续可在界面打开时初始化
  442. local menus = {}
  443. for i = 1, len do
  444. local guildPeopleHandleType = peopleHandle[i]
  445. if guildPeopleHandleType == Enum.GuildPeopleHandleType.Interest then
  446. if not interest then
  447. local langKey = PeopleHandleLanguageKeyMap[guildPeopleHandleType] or ''
  448. menus[#menus + 1] = {langKey, {guildPeopleHandleType, uid}}
  449. end
  450. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.CancelInterest then
  451. if interest then
  452. local langKey = PeopleHandleLanguageKeyMap[guildPeopleHandleType] or ''
  453. menus[#menus + 1] = {langKey, {guildPeopleHandleType, uid}}
  454. end
  455. else
  456. local langKey = PeopleHandleLanguageKeyMap[guildPeopleHandleType] or ''
  457. menus[#menus + 1] = {langKey, {guildPeopleHandleType, uid}}
  458. end
  459. end
  460. local rectTransform = itemLua.rectTransform
  461. local rect = rectTransform.rect
  462. local pos = Vector2(rect.xMin + rect.width * 0.5, rect.yMin)
  463. local alignPos = rectTransform:TransformPoint(pos)
  464. local data = {menus = menus, ownerCB = self, cb = self.PeopleHandleFuncMenuCallBack, cancelCb = self.PeopleHandleFuncMenuCancelCallBack, alignPos = alignPos, alignment = Enum.Alignment.UpperLeft }
  465. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIFuncMenu, data)
  466. self.selectItemIdx = itemIdx
  467. itemLua.select:SetActive(true)
  468. end
  469. function UIGuildMainView:OnClickGuildPeopleActiveItem(btn, params)
  470. local itemLua = params[0]
  471. local sevenActive = params[1]
  472. local rectTransform = itemLua.active.rectTransform
  473. local rect = rectTransform.rect
  474. local pos = Vector2(rect.xMin, rect.yMin + rect.height * 0.5)
  475. pos = rectTransform:TransformPoint(pos)
  476. self:SetMemberActiveTips(true, pos, sevenActive)
  477. end
  478. function UIGuildMainView:GetItemByIndex(loopListView, idx, dataIdx)
  479. local itemData = self.controller:GetMemberMoreInfoByItemidx(dataIdx)
  480. if not itemData then return nil end
  481. local item = loopListView:NewListViewItem('GuildPeopleItem')
  482. local itemLua = CommonUtil.BindGridViewItem2Lua(self, 'GuildPeopleItem', item.gameObject)
  483. if itemLua then
  484. local brief = itemData.brief
  485. local playerBrief = itemData.playerBrief
  486. local uid
  487. local data = {}
  488. local headFrameId = nil
  489. local vipLv = nil
  490. if playerBrief then
  491. uid = playerBrief.uid
  492. vipLv = playerBrief.vipLv
  493. headFrameId = playerBrief.headFrame
  494. if int64.equals(uid, ManagerContainer.DataMgr.UserData:GetUserId()) then
  495. headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId()
  496. vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  497. end
  498. local jobCfg = ManagerContainer.CfgMgr:GetJobDataById(playerBrief.configId)
  499. local jobIcon = ''
  500. if jobCfg then
  501. jobIcon = jobCfg.JobIcon
  502. end
  503. data = {Level = playerBrief.level, ProfessionIcon = jobIcon, HeadIcon = playerBrief.headPortraitName, IsHero = true}
  504. itemLua.nameTxt.text.text = tostring(playerBrief.nickName)
  505. itemLua.atkTxt.text.text = tostring(playerBrief.fightPower)
  506. local offlineTime = brief and brief.offlineTime or 0
  507. itemLua.onlineTxt.text.text = CommonUtil.GetOnlineStatus((offlineTime == 0), offlineTime)
  508. else
  509. itemLua.nameTxt.text.text = ''
  510. itemLua.atkTxt.text.text = ''
  511. itemLua.onlineTxt.text.text = ''
  512. end
  513. itemLua.headItem.head.button.enabled = false
  514. CommonUtil.SetPlayerHeadAndFrame(self, itemLua.headItem, data, false, headFrameId)
  515. itemLua.vipIcon.image.enabled = false
  516. itemLua.vipIcon.image.sprite = nil
  517. if vipLv and vipLv >= 0 then
  518. local vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(vipLv)
  519. if vipCfg then
  520. CommonUtil.LoadIcon(self, vipCfg.SmallIcon, function(sprite)
  521. if sprite then
  522. itemLua.vipIcon.image.sprite = sprite
  523. itemLua.vipIcon.image.enabled = true
  524. end
  525. end, itemLua, 'VipIcon')
  526. end
  527. end
  528. local post = brief and brief.post or Enum.GuildPostType.None
  529. if not uid then uid = brief and brief.uid or nil end
  530. itemLua.presidentTag:SetActive(post == Enum.GuildPostType.President)
  531. itemLua.vicePresidentTag:SetActive(post == Enum.GuildPostType.VicePresident)
  532. local active = itemData.active
  533. itemLua.activeTxt.text.text = (active and tostring(active) or '0')
  534. itemLua.select:SetActive(self.selectItemIdx == idx)
  535. self.uiBase:AddButtonUniqueEventListener(itemLua.button, self, self.OnClickGuildPeopleItem, itemLua, uid, idx)
  536. self.uiBase:AddButtonUniqueEventListener(itemLua.active.button, self, self.OnClickGuildPeopleActiveItem, itemLua, active)
  537. end
  538. return item
  539. end
  540. function UIGuildMainView:OnBeginLoad(isLeft)
  541. -- 发送获得后续公会玩家信息
  542. local uids = self.controller:GetNextLoadMemberUids()
  543. local errorCode = self.controller:SendGetGuildMemberInfoReq(uids)
  544. if errorCode ~= 0 then
  545. self:RefreshMemberInfoView()
  546. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  547. end
  548. end
  549. function UIGuildMainView:RefreshGuildName()
  550. local brief = self.controller:GetGuildBriefData()
  551. self.nameTxt.text.text = brief and tostring(brief.name) or ''
  552. end
  553. function UIGuildMainView:RefreshGuildBadge()
  554. local brief = self.controller:GetGuildBriefData()
  555. local itemLua = self.guildBadgeItem
  556. itemLua.badge.image.enabled = false
  557. itemLua.badge.image.sprite = nil
  558. local resPath = nil
  559. if brief then
  560. resPath = brief.badgeResPath
  561. end
  562. CommonUtil.LoadIcon(self, resPath, function(sprite)
  563. itemLua.badge.image.enabled = true
  564. itemLua.badge.image.sprite = sprite
  565. end, itemLua, 'BadgeIcon')
  566. end
  567. function UIGuildMainView:RefreshGuildActive()
  568. local brief = self.controller:GetGuildBriefData()
  569. self.activeTxt.text.text = brief and tostring(brief.active) or ''
  570. end
  571. function UIGuildMainView:RefreshGuildNotice()
  572. local moreInfo = self.controller:GetGuildMoreInfoData()
  573. if not moreInfo then return end
  574. if not self.noticeInput.inputField.interactable then
  575. self.noticeInput.inputField.text = tostring(moreInfo.notice)
  576. end
  577. end
  578. function UIGuildMainView:RefreshBriefView()
  579. local brief = self.controller:GetGuildBriefData()
  580. if not brief then
  581. self.lvTxt.text.text = ''
  582. self.nameTxt.text.text = ''
  583. self.idTxt.text.text = ''
  584. self.activeTxt.text.text = ''
  585. return
  586. end
  587. local itemLua = self.guildBadgeItem
  588. itemLua.badge.image.enabled = false
  589. itemLua.badge.image.sprite = nil
  590. if brief.badgeResPath and brief.badgeResPath ~= nil then
  591. CommonUtil.LoadIcon(self, brief.badgeResPath, function(sprite)
  592. itemLua.badge.image.enabled = true
  593. itemLua.badge.image.sprite = sprite
  594. end, itemLua, 'BadgeIcon')
  595. end
  596. self.lvTxt.text.text = tostring(brief.level)
  597. self.nameTxt.text.text = tostring(brief.name)
  598. self.idTxt.text.text = tostring(brief.id)
  599. self.activeTxt.text.text = tostring(brief.active)
  600. end
  601. function UIGuildMainView:RefreshMoreInfoView()
  602. local moreInfo = self.controller:GetGuildMoreInfoData()
  603. if not moreInfo then
  604. self.btnAdmin:SetActive(false)
  605. self.expBar:SetActive(false)
  606. self.noticeInput:SetActive(false)
  607. self.changeBtn:SetActive(false)
  608. self.btnVenery:SetActive(false)
  609. self.btnShop:SetActive(false)
  610. self.btnBattle:SetActive(false)
  611. return
  612. end
  613. local guildPostType = self.controller:GetGuildPostType()
  614. self.btnAdmin:SetActive(true)
  615. self.expBar:SetActive(true)
  616. self.noticeInput:SetActive(true)
  617. self.btnVenery:SetActive(true)
  618. self.btnShop:SetActive(true)
  619. self.btnBattle:SetActive(true)
  620. local canChangeNotice = (guildPostType == Enum.GuildPostType.President)
  621. self.changeImg:SetActive(canChangeNotice)
  622. local brief = self.controller:GetGuildBriefData()
  623. local isMaxLv = false
  624. if brief then
  625. if brief.level then
  626. if not ManagerContainer.CfgMgr:GetGuildLvCfgById(brief.level + 1) then
  627. isMaxLv = true
  628. end
  629. end
  630. end
  631. if isMaxLv then
  632. self.expBar.slider.value = 0
  633. self.expTxt.text.text = string.formatbykey('GuildExpTips_04')
  634. else
  635. self.expBar.slider.value = ((moreInfo.expLimit == 0) and 0 or moreInfo.exp / moreInfo.expLimit)
  636. self.expTxt.text.text = tostring(moreInfo.exp) .. '/' .. tostring(moreInfo.expLimit)
  637. end
  638. if not self.noticeInput.inputField.interactable then
  639. self.noticeInput.inputField.text = tostring(moreInfo.notice)
  640. self.changeBtn:SetActive(canChangeNotice)
  641. else
  642. if not canChangeNotice then
  643. self.noticeInput.inputField:DeactivateInputField()
  644. self.changeBtn:SetActive(false)
  645. self.noticeInput.inputField.text = tostring(moreInfo.notice)
  646. self.noticeInput.inputField.interactable = false
  647. end
  648. end
  649. local maxDataLength = self.controller:GetGuildMemberLimit()
  650. local dataLength = self.controller:GetGuildMemberNum()
  651. self.peopleTxt.text.text = tostring(dataLength) .. '/' .. tostring(maxDataLength)
  652. end
  653. function UIGuildMainView:RefreshMemberInfoView()
  654. local dataLength = self.controller:GetGuildMemberNum()
  655. local validLength = self.controller:GetValidMemberNum()
  656. self.loadStatusLoopListCtr:OnAllLoaded()
  657. self.loadStatusLoopListCtr:RefreshMaxDataLength(dataLength)
  658. self.loadStatusLoopListCtr:RefreshDataLength(validLength)
  659. end
  660. function UIGuildMainView:RefreshGuildBattle()
  661. local guildWarInfo = self.controller:GetGuildWarInfo()
  662. self.guildCPTxt.text.text = guildWarInfo and tostring(guildWarInfo.cp) or '0'
  663. local state = guildWarInfo and guildWarInfo.curState or 3
  664. local timer = self.btnBattle.timer
  665. if state == 1 then
  666. timer:SetActive(true)
  667. timer.sword:SetActive(false)
  668. timer.wait:SetActive(true)
  669. elseif state == 2 then
  670. timer:SetActive(true)
  671. timer.sword:SetActive(true)
  672. timer.wait:SetActive(false)
  673. timer.sword.animation:Play('GuildWarSword')
  674. elseif state == 3 then
  675. timer:SetActive(true)
  676. timer.sword:SetActive(true)
  677. timer.wait:SetActive(false)
  678. if timer.sword.animation:Play('GuildWarSword') then
  679. timer.sword.animation.this:get('GuildWarSword').normalizedTime = 0
  680. timer.sword.animation:Stop()
  681. end
  682. self.btnBattle.timer.timerTxt.text.text = string.formatbykey('GuildWarEnter_03')
  683. if self.guildBattleTimer and self.guildBattleTimer.running then
  684. self.guildBattleTimer:Stop()
  685. end
  686. return
  687. else
  688. timer:SetActive(false)
  689. if self.guildBattleTimer and self.guildBattleTimer.running then
  690. self.guildBattleTimer:Stop()
  691. end
  692. return
  693. end
  694. self:RefreshGuildBattleTime()
  695. end
  696. function UIGuildMainView:RefreshGuildBattleTime()
  697. local guildWarInfo = self.controller:GetGuildWarInfo()
  698. local remainTime = guildWarInfo and guildWarInfo.nextStateTime or nil
  699. if remainTime then
  700. remainTime = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(remainTime)
  701. else
  702. remainTime = 0
  703. end
  704. if guildWarInfo and guildWarInfo.curState == 2 then
  705. self.btnBattle.timer.timerTxt.text.text = string.formatbykey('GuildWarEnter_02', DateTimeUtil.convertSeconds2TimeStr1(remainTime, true, true, false))
  706. else
  707. self.btnBattle.timer.timerTxt.text.text = string.formatbykey('GuildWarEnter_01', DateTimeUtil.convertSeconds2TimeStr1(remainTime, true, true, false))
  708. end
  709. if not remainTime or remainTime <= 0 then
  710. if self.guildBattleTimer and self.guildBattleTimer.running then
  711. self.guildBattleTimer:Stop()
  712. end
  713. else
  714. local validTime = nil
  715. if remainTime >= 86400 then
  716. validTime = remainTime % 3600
  717. if validTime == 0 then validTime = 3600 end
  718. elseif remainTime >= 3600 then
  719. validTime = remainTime % 60
  720. if validTime == 0 then validTime = 60 end
  721. else
  722. validTime = 1
  723. end
  724. if validTime then
  725. if self.guildBattleTimer then
  726. self.guildBattleTimer.duration = validTime
  727. else
  728. self.guildBattleTimer = Timer.New(slot(self.RefreshGuildBattle, self), validTime, -1)
  729. end
  730. if not self.guildBattleTimer.running then
  731. self.guildBattleTimer:Start()
  732. end
  733. else
  734. if self.guildBattleTimer and self.guildBattleTimer.running then
  735. self.guildBattleTimer:Stop()
  736. end
  737. end
  738. end
  739. end
  740. function UIGuildMainView:SetMemberActiveTips(isShow, pos, active)
  741. if not isShow then
  742. self.clickMask:SetActive(false)
  743. self.memberActiveTips:SetActive(false)
  744. return
  745. end
  746. self.clickMask:SetActive(true)
  747. self.memberActiveTips:SetActive(true)
  748. self.memberActiveTips.text.text.text = string.formatbykey('MemberActiveTips') .. tostring(active)
  749. self.memberActiveTips.rectTransform.position = pos
  750. end
  751. function UIGuildMainView:SetGuildActiveTips(isShow)
  752. if not isShow then
  753. self.guildActiveTips:SetActive(false)
  754. return
  755. end
  756. self.clickMask:SetActive(true)
  757. self.guildActiveTips:SetActive(true)
  758. local brief = self.controller:GetGuildBriefData()
  759. if brief then
  760. self.guildActiveTips.activeItem.numTxt.text.text = tostring(brief.active) ..'/' .. tostring(brief.activeLimit)
  761. else
  762. self.guildActiveTips.activeItem.numTxt.text.text = '0'
  763. end
  764. local roleData = self.controller:GetRoleData()
  765. local activeDayLimit = self.controller:GetActiveDayLimit()
  766. if roleData then
  767. self.guildActiveTips.activeDayItem.numTxt.text.text = tostring(roleData.activeDay) .. '/' .. tostring(activeDayLimit)
  768. self.guildActiveTips.activeSevenDayItem.numTxt.text.text = tostring(roleData.active)
  769. else
  770. self.guildActiveTips.activeDayItem.numTxt.text.text = '0/' .. tostring(activeDayLimit)
  771. self.guildActiveTips.activeSevenDayItem.numTxt.text.text = '0'
  772. end
  773. end
  774. function UIGuildMainView:InitGuildTips()
  775. local item = self.guildTipItem
  776. if not item then
  777. local parentTrans = self.guildTips.transform:Find('Item')
  778. item = self:GenerateGuildTipItemLua(parentTrans)
  779. self.guildTipItem = item
  780. end
  781. end
  782. function UIGuildMainView:DisposeGuildTips()
  783. local items = self.guildTipItems
  784. if items then
  785. for _, item in pairs(items) do
  786. if item then
  787. local go = item.go
  788. item.go = nil
  789. item.nameGo = nil
  790. item.nameTxt = nil
  791. item.numGo = nil
  792. item.numTxt = nil
  793. if self.guildTipItem ~= item then
  794. CommonUtil.DestroyGO(go)
  795. end
  796. end
  797. end
  798. self.guildTipItems = nil
  799. end
  800. self.guildTipItem = nil
  801. self.guildTipItemCount = nil
  802. end
  803. function UIGuildMainView:GetGuildTipItem(idx)
  804. local items = self.guildTipItems
  805. if not items then
  806. if not self.guildTipItem then
  807. return nil
  808. end
  809. items = {self.guildTipItem}
  810. self.guildTipItemCount = 1
  811. self.guildTipItems = items
  812. end
  813. local item = self.guildTipItems[idx]
  814. if item then
  815. if item.go then
  816. item.go:SetActive(true)
  817. end
  818. return item
  819. end
  820. if not self.guildTipItem then
  821. return nil
  822. end
  823. local go = UnityEngine.GameObject.Instantiate(self.guildTipItem.go)
  824. go:SetActive(true)
  825. local trans = go.transform
  826. trans:SetParent(self.guildTips.transform)
  827. trans.localPosition = Vector3.zero
  828. trans.localScale = Vector3.one
  829. trans.localRotation = Quaternion.identity
  830. trans:SetAsLastSibling()
  831. item = self:GenerateGuildTipItemLua(trans)
  832. self.guildTipItems[idx] = item
  833. if not self.guildTipItemCount or self.guildTipItemCount < idx then
  834. self.guildTipItemCount = idx
  835. end
  836. return item
  837. end
  838. function UIGuildMainView:GenerateGuildTipItemLua(trans)
  839. if not trans then return nil end
  840. local item = {}
  841. local nameGo = trans:Find('NameTxt').gameObject
  842. local numGo = trans:Find('NumTxt').gameObject
  843. item.go = trans.gameObject
  844. item.nameGo = nameGo
  845. item.nameTxt = nameGo:GetComponent(Enum.TypeInfo.Text)
  846. item.numGo = numGo
  847. item.numTxt = numGo:GetComponent(Enum.TypeInfo.Text)
  848. return item
  849. end
  850. function UIGuildMainView:SetGuildTips(isShow, tipType, alginPos)
  851. if not isShow then
  852. self.clickMask:SetActive(false)
  853. self.guildTips:SetActive(false)
  854. return
  855. end
  856. self.clickMask:SetActive(true)
  857. self.guildTips:SetActive(true)
  858. if alginPos then
  859. local pos = self.guildTips.transform.parent:InverseTransformPoint(alginPos)
  860. self.guildTips.transform.localPosition = Vector2(0, pos.y, 0)
  861. end
  862. local offset = 1
  863. if tipType == 1 then
  864. offset = self:SetGuildActiveTips()
  865. elseif tipType == 2 then
  866. offset = self:SetGuildExpTips()
  867. elseif tipType == 3 then
  868. offset = self:SetGuildCPTips()
  869. else
  870. self.guildTips.text.text.text = string.formatbykey('None')
  871. self.guildTips.space:SetActive(false)
  872. end
  873. if self.guildTipItems and self.guildTipItemCount then
  874. for i = offset, self.guildTipItemCount do
  875. local item = self.guildTipItems[i]
  876. if item and item.go then
  877. item.go:SetActive(false)
  878. end
  879. end
  880. end
  881. end
  882. function UIGuildMainView:SetGuildActiveTips()
  883. self.guildTips.text.text.text = string.formatbykey('GuildActiveTips')
  884. self.guildTips.space:SetActive(true)
  885. local brief = self.controller:GetGuildBriefData()
  886. local itemLua = self:GetGuildTipItem(1)
  887. if itemLua then
  888. itemLua.nameTxt.text = string.formatbykey('GuildActiveTips_01')
  889. if brief then
  890. itemLua.numTxt.text = tostring(brief.active) ..'/' .. tostring(brief.activeLimit)
  891. else
  892. itemLua.numTxt.text = '0'
  893. end
  894. end
  895. local roleData = self.controller:GetRoleData()
  896. local activeDayLimit = self.controller:GetActiveDayLimit()
  897. if roleData then
  898. itemLua = self:GetGuildTipItem(2)
  899. if itemLua then
  900. itemLua.nameTxt.text = string.formatbykey('GuildActiveTips_02')
  901. itemLua.numTxt.text = tostring(roleData.activeDay) .. '/' .. tostring(activeDayLimit)
  902. end
  903. itemLua = self:GetGuildTipItem(3)
  904. if itemLua then
  905. itemLua.nameTxt.text = string.formatbykey('GuildActiveTips_03')
  906. itemLua.numTxt.text = tostring(roleData.active)
  907. end
  908. else
  909. itemLua = self:GetGuildTipItem(2)
  910. if itemLua then
  911. itemLua.nameTxt.text = string.formatbykey('GuildActiveTips_02')
  912. itemLua.numTxt.text = '0/' .. tostring(activeDayLimit)
  913. end
  914. itemLua = self:GetGuildTipItem(3)
  915. if itemLua then
  916. itemLua.nameTxt.text = string.formatbykey('GuildActiveTips_03')
  917. itemLua.numTxt.text = '0'
  918. end
  919. end
  920. return 4
  921. end
  922. function UIGuildMainView:SetGuildExpTips()
  923. self.guildTips.text.text.text = string.formatbykey('GuildExpTips')
  924. self.guildTips.space:SetActive(true)
  925. local brief = self.controller:GetGuildBriefData()
  926. local itemLua = self:GetGuildTipItem(1)
  927. if itemLua then
  928. if brief then
  929. if brief.level then
  930. local lvCfgData = ManagerContainer.CfgMgr:GetGuildLvCfgById(brief.level + 1)
  931. if lvCfgData then
  932. lvCfgData = ManagerContainer.CfgMgr:GetGuildLvCfgById(brief.level)
  933. if lvCfgData then
  934. itemLua.nameTxt.text = string.formatbykey('GuildExpTips_01')
  935. itemLua.numTxt.text = ''
  936. itemLua = self:GetGuildTipItem(2)
  937. if itemLua then
  938. itemLua.nameTxt.text = string.formatbykey('GuildExpTips_02')
  939. itemLua.numTxt.text = tostring(lvCfgData.PeopleAdd)
  940. end
  941. itemLua = self:GetGuildTipItem(3)
  942. if itemLua then
  943. itemLua.nameTxt.text = string.formatbykey('GuildExpTips_03')
  944. itemLua.numTxt.text = tostring(lvCfgData.ActiveAdd)
  945. end
  946. return 4
  947. end
  948. end
  949. end
  950. end
  951. itemLua.nameTxt.text = string.formatbykey('GuildExpTips_04')
  952. itemLua.numTxt.text = ''
  953. end
  954. return 2
  955. end
  956. function UIGuildMainView:SetGuildCPTips()
  957. local guildWarInfo = self.controller:GetGuildWarInfo()
  958. self.guildTips.text.text.text = string.formatbykey('GuildCPTips')
  959. self.guildTips.space:SetActive(true)
  960. local itemLua = self:GetGuildTipItem(1)
  961. if itemLua then
  962. itemLua.nameTxt.text = string.formatbykey('GuildCPTips_01')
  963. itemLua.numTxt.text = guildWarInfo and tostring(guildWarInfo.cp) or '0'
  964. end
  965. itemLua = self:GetGuildTipItem(2)
  966. if itemLua then
  967. itemLua.nameTxt.text = string.formatbykey('GuildCPTips_02')
  968. if guildWarInfo and guildWarInfo.rank > 0 then
  969. itemLua.numTxt.text = tostring(guildWarInfo.rank)
  970. else
  971. itemLua.numTxt.text = string.formatbykey('NoRank')
  972. end
  973. end
  974. return 3
  975. end
  976. function UIGuildMainView:SureDisbandGuild()
  977. local errorCode = self.controller:SendDisbandGuildReq()
  978. if errorCode ~= 0 then
  979. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  980. end
  981. end
  982. function UIGuildMainView:SureQuitGuild()
  983. local errorCode = self.controller:SendQuitGuildReq()
  984. if errorCode ~= 0 then
  985. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  986. end
  987. end
  988. function UIGuildMainView:ManageFuncMenuCallBack(guildManageType)
  989. if guildManageType == Enum.GuildManageType.AuditApply then
  990. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildAuditApply)
  991. elseif guildManageType == Enum.GuildManageType.Settings then
  992. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildSettings)
  993. elseif guildManageType == Enum.GuildManageType.Mail then
  994. elseif guildManageType == Enum.GuildManageType.List then
  995. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildRecommend)
  996. elseif guildManageType == Enum.GuildManageType.Dismiss then
  997. local data = {"GuildDismiss", nil, nil, self, self.SureDisbandGuild}
  998. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  999. elseif guildManageType == Enum.GuildManageType.Exit then
  1000. local cd = self.controller:GetEnterGuildCD()
  1001. local data = {"GuildExit", {cd}, nil, self, self.SureQuitGuild}
  1002. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  1003. end
  1004. end
  1005. function UIGuildMainView:SureChangePost(data)
  1006. local uid = data.uid
  1007. local post = data.post
  1008. local errorCode = self.controller:SendChangeMemberTitleReq(uid, post)
  1009. if errorCode ~= 0 then
  1010. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  1011. end
  1012. end
  1013. function UIGuildMainView:SureKickout(data)
  1014. local uid = data.uid
  1015. local errorCode = self.controller:SendKickGuildMemeberReq(uid)
  1016. if errorCode ~= 0 then
  1017. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  1018. end
  1019. end
  1020. function UIGuildMainView:PeopleHandleFuncMenuCancelCallBack()
  1021. local selectItemIdx = self.selectItemIdx
  1022. self.selectItemIdx = nil
  1023. self.peopleList.loopListView:RefreshItemByItemIndex(selectItemIdx)
  1024. end
  1025. function UIGuildMainView:PeopleHandleFuncMenuCallBack(params)
  1026. local selectItemIdx = self.selectItemIdx
  1027. self.selectItemIdx = nil
  1028. self.peopleList.loopListView:RefreshItemByItemIndex(selectItemIdx)
  1029. local guildPeopleHandleType = params[1]
  1030. local uid = params[2]
  1031. if guildPeopleHandleType == Enum.GuildPeopleHandleType.UpPresident then
  1032. local guildData = self.controller:GetMemberMoreInfoByUid(uid)
  1033. local nickName = nil
  1034. if guildData and guildData.playerBrief then
  1035. nickName = guildData.playerBrief.nickName
  1036. end
  1037. local data = {"GuildUpPresident", {nickName}, {uid = uid, post = Enum.GuildPostType.President}, self, self.SureChangePost}
  1038. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  1039. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.UpVicePresident then
  1040. local guildData = self.controller:GetMemberMoreInfoByUid(uid)
  1041. local nickName = nil
  1042. if guildData and guildData.playerBrief then
  1043. nickName = guildData.playerBrief.nickName
  1044. end
  1045. local data = {"GuildUpVicePresident", {nickName}, {uid = uid, post = Enum.GuildPostType.VicePresident}, self, self.SureChangePost}
  1046. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  1047. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.DownMember then
  1048. local guildData = self.controller:GetMemberMoreInfoByUid(uid)
  1049. local nickName = nil
  1050. if guildData and guildData.playerBrief then
  1051. nickName = guildData.playerBrief.nickName
  1052. end
  1053. local data = {"GuildDownMember", {nickName, CommonUtil.GetGuildPostStr(self.controller:GetGuildMemberPost(uid))}, {uid = uid, post = Enum.GuildPostType.None}, self, self.SureChangePost}
  1054. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  1055. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.PrivateChat then
  1056. local guildData = self.controller:GetMemberMoreInfoByUid(uid)
  1057. local nickName = nil
  1058. local imgId = nil
  1059. local jobId, level,sex
  1060. if guildData and guildData.playerBrief then
  1061. nickName = guildData.playerBrief.nickName
  1062. imgId = guildData.playerBrief.headPortraitName
  1063. jobId = guildData.playerBrief.config_id
  1064. level = guildData.playerBrief.level
  1065. sex = guildData.playerBrief.gender
  1066. end
  1067. ManagerContainer.LuaUIMgr:PrivateChatOtherPlayer(uid, nickName, imgId,jobId,level,sex)
  1068. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.SeeInfo then
  1069. ManagerContainer.LuaUIMgr:OpenRoleMessagePanel(uid)
  1070. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.Interest then
  1071. local friendState = ManagerContainer.DataMgr.FriendDataMgr:HasInterestPlayer(uid)
  1072. if not friendState then
  1073. ManagerContainer.DataMgr.FriendDataMgr:AddFriendReq(uid)
  1074. end
  1075. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.CancelInterest then
  1076. local friendState = ManagerContainer.DataMgr.FriendDataMgr:HasInterestPlayer(uid)
  1077. if friendState then
  1078. ManagerContainer.DataMgr.FriendDataMgr:DeleteFriendReq(uid)
  1079. end
  1080. elseif guildPeopleHandleType == Enum.GuildPeopleHandleType.Kickout then
  1081. local guildData = self.controller:GetMemberMoreInfoByUid(uid)
  1082. local nickName = nil
  1083. if guildData and guildData.playerBrief then
  1084. nickName = guildData.playerBrief.nickName
  1085. end
  1086. local data = {"GuildKickout", {nickName}, {uid = uid}, self, self.SureKickout}
  1087. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  1088. end
  1089. end
  1090. return UIGuildMainView