| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- local UICustomerServiceTipsView = require("UIVip/UICustomerServiceTipsView_Generate")
- function UICustomerServiceTipsView:OnAwake(data)
- self.controller = require("UIVip/UICustomerServiceTipsCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UICustomerServiceTipsView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- end
- function UICustomerServiceTipsView: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 UICustomerServiceTipsView:Init()
- local parent = self.texts.transform
- self.sourceGo = parent:Find('Contact').gameObject
- local itemLuas = self.itemLuas
- if not itemLuas then
- itemLuas = {self:GetItemLua(self.sourceGo)}
- self.itemLuas = itemLuas
- end
- local datas = self.controller:GetData()
- local len1 = datas and #datas or 0
- local len2 = #itemLuas
- local itemLua = nil
- local data = nil
- for i = 1, len1 do
- data = datas[i]
- itemLua = itemLuas[i]
- if not itemLua then
- local newGo = CommonUtil.Instantiate(self.sourceGo, parent)
- itemLua = self:GetItemLua(newGo)
- itemLuas[i] = itemLua
- end
- if itemLua then
- if data then
- itemLua.go:SetActive(true)
- itemLua.nameTxt.text = data.name or ''
- itemLua.contentTxt.text = data.account or ''
- self.uiBase:AddButtonUniqueEventListener(itemLua.copyBtn, self, self.OnClickCopyBtn, i)
- else
- itemLua.go:SetActive(false)
- end
- end
- end
- for i = len1 + 1, len2 do
- itemLua = itemLuas[i]
- if itemLua then
- itemLua.go:SetActive(false)
- end
- end
- end
- function UICustomerServiceTipsView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UICustomerServiceTipsView:AddUIEventListener()
- self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
- end
- function UICustomerServiceTipsView:OnHide()
- end
- function UICustomerServiceTipsView:OnShow(data)
- self.controller:SetData(data)
- end
- function UICustomerServiceTipsView:OnClose()
- end
- function UICustomerServiceTipsView:OnDispose()
- self:DisposeItemLuas()
- self.sourceGo = nil
- self.controller:OnDispose()
- end
- function UICustomerServiceTipsView:OnClickCloseBtn()
- self:UIClose()
- end
- function UICustomerServiceTipsView:OnClickCopyBtn(_, params)
- local idx = params[0]
- if not idx then
- return
- end
- local datas = self.controller:GetData()
- if not datas then
- return
- end
- local data = datas[idx]
- if not data or not data.account or data.account == '' then
- return
- end
- UnityEngine.GUIUtility.systemCopyBuffer = data.account
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('CopySucceed')
- end
- function UICustomerServiceTipsView:GetItemLua(itemGo)
- if not itemGo then return nil end
- local itemLua = {}
- itemLua.go = itemGo
- local trans = itemGo.transform
- itemLua.nameTxt = trans:Find('Text1'):GetComponent(Enum.TypeInfo.Text)
- itemLua.contentTxt = trans:Find('Text2'):GetComponent(Enum.TypeInfo.Text)
- itemLua.copyBtn = trans:Find('BtnCopy'):GetComponent(Enum.TypeInfo.Button)
- return itemLua
- end
- function UICustomerServiceTipsView:DisposeItemLuas()
- if not self.itemLuas then
- return
- end
- for _, itemLua in pairs(self.itemLuas) do
- if itemLua then
- local go = itemLua.go
- itemLua.go = nil
- itemLua.nameTxt = nil
- itemLua.contentTxt = nil
- itemLua.copyBtn = nil
- if go and go ~= self.sourceGo then
- CommonUtil.DestroyGO(go)
- end
- end
- end
- self.itemLuas = nil
- end
- return UICustomerServiceTipsView
|