| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- local UIGuildRecommendView = require("UIGuild/UIGuildRecommendView_Generate")
- local State = {
- Default = 1, -- 显示推荐列表
- Search = 2, -- 显示查询列表
- }
- function UIGuildRecommendView:OnAwake(data)
- self.controller = require("UIGuild/UIGuildRecommendCtr")
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIGuildRecommendView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_RECOMMEND_LIST_CHANGED, self, self.OnRecommendListChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_SEARCH_LIST_CHANGED, self, self.OnSearchListChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_SUBMIT_APPLY_CHANGED, self, self.OnGuildSubmitChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_ENTER_SUCCESS, self, self.OnGuildEnterSuccess)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_CREATE_SUCCESS, self, self.OnGuildCreateSuccess)
- end
- function UIGuildRecommendView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UIGuildRecommendView:Init()
- self.state = State.Default
- self.input.inputField.text = ''
- self.clearBtn:SetActive(false)
- self.btnCreate:SetActive(not self.controller:IsInGuild())
- self.guildList.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
- return self:GetItemByRowColumn(gridView, itemIndex, row, column)
- end, nil)
- self:RefreshGuildList()
- local errorCode = self.controller:SendGetRecommendListReq()
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- end
- end
- function UIGuildRecommendView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- self.input.inputField.onValidateInput = nil
- self.input.inputField.onValueChanged:RemoveAllListeners()
- self.input.inputField.onEndEdit:RemoveAllListeners()
- end
- function UIGuildRecommendView:AddUIEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- self.uiBase:AddButtonUniqueEventListener(self.clearBtn.button, self, self.OnClickClearBtn)
- self.uiBase:AddButtonUniqueEventListener(self.searchBtn.button, self, self.OnClickSearchBtn)
- self.uiBase:AddButtonUniqueEventListener(self.closeBtn.button, self, self.OnClickBackBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnCreate.button, self, self.OnClickCreateBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnRefresh.button, self, self.OnClickRefreshBtn)
- self.input.inputField.onValidateInput = self.input.inputField.OnValidateInput(self.OnValidateInput, self)
- self.input.inputField.onValueChanged:RemoveAllListeners()
- self.input.inputField.onValueChanged:AddListener(function(text)
- self:OnValueChangedInput(text)
- end)
- self.input.inputField.onEndEdit:RemoveAllListeners()
- self.input.inputField.onEndEdit:AddListener(function(text)
- self:OnEndEditInput(text)
- end)
- end
- function UIGuildRecommendView:OnHide()
- end
- function UIGuildRecommendView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIGuildRecommendView:OnClose()
- end
- function UIGuildRecommendView:OnDispose()
- self.state = nil
- self.guildList.loopGridView:Dispose()
- self.controller:OnDispose()
- end
- function UIGuildRecommendView:OnRecommendListChanged()
- if self.state and self.state ~= State.Default then return end
- self:RefreshGuildList()
- end
- function UIGuildRecommendView:OnSearchListChanged()
- if self.state ~= State.Search then return end
- self:RefreshGuildList()
- end
- function UIGuildRecommendView:OnGuildSubmitChanged()
- self:RefreshGuildList()
- end
- function UIGuildRecommendView:OnCheckMoreInfoSuccess(guildMoreData)
- end
- function UIGuildRecommendView:OnGuildEnterSuccess()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- end
- function UIGuildRecommendView:OnGuildCreateSuccess()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- end
- function UIGuildRecommendView:OnClickClearBtn()
- self.input.inputField.text = ''
- self:OnEndEditInput()
- end
- function UIGuildRecommendView:OnClickSearchBtn()
- self.state = State.Search
- local text = self.input.inputField.text
- if not text or text == '' then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('GuildInfo_002')
- return
- end
- local len = GetActualStringLength(text)
- local min = self.controller:GetNameLengthMin()
- local max = self.controller:GetNameLengthMax()
- if len < min or len > max then
- -- 肯定找不到公会,不需要发消息
- self.controller:ClearSearchList()
- self:RefreshGuildList()
- return
- end
- local errorCode = self.controller:SendSearchGuildReq(text)
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- return
- end
- self:RefreshGuildList()
- end
- function UIGuildRecommendView:OnClickBackBtn()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- end
- function UIGuildRecommendView:OnClickCreateBtn()
- if self.controller:IsInGuild() then
- return
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildCreate)
- end
- function UIGuildRecommendView:OnClickRefreshBtn()
- self.input.inputField.text = ''
- if self.state == State.Search then
- self:OnEndEditInput(nil)
- end
- local errorCode = self.controller:SendGetRecommendListReq()
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- end
- end
- function UIGuildRecommendView:OnValidateInput(text, charIndex, addedChar)
- local curLen = 0
- if addedChar >= 48 and addedChar <= 57 then -- 0-9
- curLen = 1
- elseif addedChar >= 65 and addedChar <= 90 then -- A-Z
- curLen = 1
- elseif addedChar >= 97 and addedChar <= 122 then -- a-z
- curLen = 1
- elseif addedChar >= 0x4E00 and addedChar <= 0x9FA5 then -- 中文字
- curLen = 1
- end
- if curLen <= 0 then return 0 end
- local len = GetActualStringLength(text) + curLen
- local max = self.controller:GetNameLengthMax()
- if len > max then return 0 end
- return addedChar
- end
- function UIGuildRecommendView:OnValueChangedInput(text)
- self.clearBtn:SetActive((text and text ~= ''))
- end
- function UIGuildRecommendView:OnEndEditInput(text)
- if self.state ~= State.Search then return end
- if text and text ~= '' then return end
- self.state = State.Default
- self:RefreshGuildList()
- end
- function UIGuildRecommendView:RefreshGuildList()
- self.controller:RefreshShowDatas(self.state)
- local guildDatas = self.controller:GetShowDatas()
- if not guildDatas then
- self.guildList:SetActive(false)
- self.emptyTips:SetActive(true)
- self.emptyTips.desTxt.text.text = string.formatbykey('GuildTips_038')
- return
- end
- local len = #guildDatas
- if len <= 0 then
- self.guildList:SetActive(false)
- self.emptyTips:SetActive(true)
- self.emptyTips.desTxt.text.text = ((self.state == State.Search) and string.formatbykey('GuildTips_003') or string.formatbykey('GuildTips_002'))
- return
- end
- self.guildList:SetActive(true)
- self.emptyTips:SetActive(false)
- self.guildList.loopGridView:RefreshListByIndex(len, 0)
- end
- function UIGuildRecommendView:GetItemByRowColumn(gridView, itemIndex, row, column)
- local guildData = self.controller:GetShowDataByItemIndex(itemIndex)
- if not guildData then return nil end
- local item = gridView:NewListViewItem('GuildRecommendItem')
- local itemLua = CommonUtil.BindGridViewItem2Lua(self, 'GuildRecommendItem', item.gameObject)
- if itemLua then
- local data = guildData:GetBriefData()
- itemLua.guildBadgeItem.badge.button.enabled = false
- itemLua.guildBadgeItem.badge.image.enabled = false
- itemLua.guildBadgeItem.badge.image.sprite = nil
- if data.badgeResPath and data.badgeResPath ~= nil then
- CommonUtil.LoadIcon(self, data.badgeResPath, function(sprite)
- itemLua.guildBadgeItem.badge.image.enabled = true
- itemLua.guildBadgeItem.badge.image.sprite = sprite
- end, itemLua, 'BadgeIcon')
- end
- itemLua.nameTxt.text.text = tostring(data.name)
- itemLua.lvTxt.text.text = tostring(data.level)
- itemLua.peopleTxt.text.text = tostring(guildData:GetGuildMemberNum()) .. '/' .. tostring(guildData:GetGuildMemberLimit())
- itemLua.activeTxt.text.text = tostring(data.active)
- itemLua.appliedTag:SetActive(guildData:GetIsSubmitApply())
- self.uiBase:AddButtonUniqueEventListener(itemLua.button, self, self.OnClickGuildItem, data.id)
- end
- return item
- end
- function UIGuildRecommendView:OnClickGuildItem(btn, param)
- local id = param[0]
- if not id then return end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildInfo, id)
- end
- return UIGuildRecommendView
|