Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/ui/panel/TRPPopCheckBoxs.lua

114 lines
3.1 KiB
Lua
Raw Normal View History

2020-07-04 14:41:25 +08:00
---@type IDBasePanel
local TRBasePanel = require("ui.panel.TRBasePanel")
---@class TRPCheckBoxs:TRBasePanel 邮件列表
local TRPCheckBoxs = class("TRPCheckBoxs", TRBasePanel)
local uiobjs = {}
local toggles = {}
-- 初始化,只会调用一次
function TRPCheckBoxs:init(csObj)
TRPCheckBoxs.super.init(self, csObj)
self:setEventDelegate()
local offset = getChild(self.transform, "Bottom/offset")
uiobjs.Grid = getCC(offset, "Content/Grid", "CLUILoopGrid")
uiobjs.LabelSelected = getCC(offset, "LabelSelected", "UILabel")
end
-- 设置数据
---@param paras _ParamTRPCheckBoxs
function TRPCheckBoxs:setData(paras)
self.mdata = paras[0]
self.defaultValue = paras[1]
self.selecteds = {}
local strs = strSplit(self.defaultValue, "|")
for i, v in ipairs(strs) do
self.selecteds[v] = true
end
self.isMultMode = paras[2]
self.callback = paras[3]
end
-- 显示在c#中。show为调用refreshshow和refresh的区别在于当页面已经显示了的情况当页面再次出现在最上层时只会调用refresh
function TRPCheckBoxs:show()
uiobjs.LabelSelected.text = "请选择"
local strs = strSplit(self.mdata.attrValue, "|")
toggles = {}
for i, v in ipairs(strs) do
local d = {label = v, isMultMode = self.isMultMode, checked = self.selecteds[v], panel = self}
table.insert(toggles, d)
end
uiobjs.Grid:setList(toggles, self:wrapFunc(self.initCell))
self:onClickToggle()
end
function TRPCheckBoxs:initCell(cell, data)
cell:init(data, nil)
end
-- 刷新
function TRPCheckBoxs:refresh()
end
function TRPCheckBoxs:onClickToggle()
local val = self:getValue()
if isNilOrEmpty(val) then
uiobjs.LabelSelected.text = "请选择"
else
uiobjs.LabelSelected.text = joinStr("已选择:", val)
end
end
-- 关闭页面
function TRPCheckBoxs:hide()
end
-- 网络请求的回调cmd指命succ成功失败msg消息paras服务器下行数据
function TRPCheckBoxs:procNetwork(cmd, succ, msg, paras)
if (succ == NetSuccess) then
--[[
if cmd == xx then
end
]]
end
end
function TRPCheckBoxs:getValue()
local values = {}
for i, v in ipairs(toggles) do
if v.checked then
table.insert(values, v.label)
end
end
return table.concat(values, "|")
end
function TRPCheckBoxs:setEventDelegate()
self.EventDelegate = {
SpriteBg = function()
hideTopPanel(self.csSelf)
end,
ButtonClose = function()
hideTopPanel(self.csSelf)
end,
ButtonOkay = function()
Utl.doCallback(self.callback, self:getValue())
hideTopPanel(self.csSelf)
end
}
end
-- 处理ui上的事件例如点击等
function TRPCheckBoxs:uiEventDelegate(go)
local func = self.EventDelegate[go.name]
if func then
func()
end
end
-- 当顶层页面发生变化时回调
function TRPCheckBoxs:onTopPanelChange(topPanel)
end
--------------------------------------------
return TRPCheckBoxs