Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/ui/panel/CLLPCalender.lua
2020-07-10 13:22:24 +08:00

245 lines
6.7 KiB
Lua

local csSelf = nil
local transform = nil
local gameObject = nil
local grid = nil
local LabelYY = nil
local LabelMM = nil
local curYear = nil
local curMonth = nil
local TimeRoot
local ButtonRoot
local InputHH
local InputMM
local InputSS
local LabelSelectDate
local callback = nil
local selectedYear
local selectedMonth
local selectedDay
local oldSelectedCell
local isNeedTime = false
local curIndex = 0
PanelCalender = {}
function PanelCalender.init(_cs)
csSelf = _cs
transform = csSelf.transform
gameObject = csSelf.gameObject
local content = getChild(transform, "content")
LabelYY = getChild(content, "Title", "LabelYY"):GetComponent("UILabel")
LabelMM = getChild(content, "Title", "LabelMM"):GetComponent("UILabel")
grid = getChild(content, "PanelDay/GridPage"):GetComponent("UIGridPage")
LabelSelectDate = getChild(content, "LabelSelectDate"):GetComponent("UILabel")
ButtonRoot = getChild(content, "ButtonRoot")
TimeRoot = getChild(content, "TimeRoot")
InputHH = getChild(TimeRoot, "InputHH"):GetComponent("UIPopupList")
InputMM = getChild(TimeRoot, "InputMM"):GetComponent("UIPopupList")
InputSS = getChild(TimeRoot, "InputSS"):GetComponent("UIPopupList")
end
function PanelCalender.setData(pars)
curYear = pars[0]
curMonth = pars[1]
callback = pars[2]
if (pars.Count > 3) then
isNeedTime = pars[3]
else
isNeedTime = false
end
end
function PanelCalender.getData()
return curYear, curMonth
end
function PanelCalender.show()
csSelf.panel.depth = CLPanelManager.self.depth + 80
oldSelectedCell = nil
selectedYear = nil
selectedMonth = nil
selectedDay = nil
if (isNeedTime) then
NGUITools.SetActive(TimeRoot.gameObject, true)
InputHH.value = NumEx.nStrForLen(DateTime.Now.Hour, 2)
InputMM.value = NumEx.nStrForLen(DateTime.Now.Minute, 2)
InputSS.value = NumEx.nStrForLen(DateTime.Now.Second, 2)
ButtonRoot.localPosition = Vector3(0, -627, 0)
else
NGUITools.SetActive(TimeRoot.gameObject, false)
ButtonRoot.localPosition = TimeRoot.localPosition
end
end
function PanelCalender.refresh()
PanelCalender.showCalender(curYear, curMonth)
if (selectedYear ~= nil) then
local dataStr =
PStr.b():a(tostring(selectedYear)):a("-"):a(NumEx.nStrForLen(selectedMonth, 2)):a("-"):a(
NumEx.nStrForLen(selectedDay, 2)
):e()
LabelSelectDate.text = dataStr
else
LabelSelectDate.text = ""
end
end
function PanelCalender.getYYHH_ByaddMonth(_year, _month, addMonth)
local date = DateTime(_year, _month, 1)
date = date:AddMonths(addMonth)
return date.Year, date.Month
end
function PanelCalender.showCalender(year, month)
LabelYY.text = year .. ""
LabelMM.text = month .. ""
local months = ArrayList()
local d
local yy, mm
for i = 1, 6 do
yy, mm = PanelCalender.getYYHH_ByaddMonth(year, month, -(7 - i))
d = {}
d.year = yy
d.month = mm
months:Add(d)
end
d = {}
d.year = year
d.month = month
months:Add(d)
for i = 1, 6 do
yy, mm = PanelCalender.getYYHH_ByaddMonth(year, month, i)
d = {}
d.year = yy
d.month = mm
months:Add(d)
end
grid:init(months, PanelCalender.onRefreshCurrent, 6)
end
function PanelCalender.onRefreshCurrent(index, data, cell)
curIndex = index
local cellLua = cell:GetComponent("CLCellLua")
local d = cellLua.luaTable.getData()
if (d ~= nil) then
LabelYY.text = d.year .. ""
LabelMM.text = d.month .. ""
end
end
function PanelCalender.getSelectDate()
return selectedYear, selectedMonth, selectedDay
end
function PanelCalender.setDefalutSelectDate(cell, year, month, day)
if (oldSelectedCell == nil) then
oldSelectedCell = cell
end
if (selectedDay == nil) then
selectedDay = day
selectedYear = year
selectedMonth = month
end
end
function PanelCalender.setSelectDate(cell, year, month, day)
selectedDay = day
selectedYear = year
selectedMonth = month
local dataStr =
PStr.b():a(tostring(selectedYear)):a("-"):a(NumEx.nStrForLen(selectedMonth, 2)):a("-"):a(
NumEx.nStrForLen(selectedDay, 2)
):e()
LabelSelectDate.text = dataStr
if (oldSelectedCell ~= nil) then
oldSelectedCell.luaTable.refreshState(false)
end
oldSelectedCell = cell
oldSelectedCell.luaTable.refreshState(true)
end
-- function PanelCalender.addMonth(m)
-- oldSelectedCell = nil;
--
-- local yearOffset = (curMonth + m) / 13;
-- curMonth = (curMonth + m) % 13;
-- if (curMonth == 0) then
-- if (m < 0) then
-- curMonth = 12;
-- yearOffset = -1;
-- else
-- curMonth = 1;
-- end
-- end
--
-- curYear = curYear + math.floor(yearOffset);
-- PanelCalender.showCalender(curYear, curMonth);
-- return curYear, curMonth;
-- end
function PanelCalender.hide()
end
function PanelCalender.procNetwork(cmd, succ, msg, paras)
end
function PanelCalender.uiEventDelegate(go)
PanelCalender.onClickBtn(go.name)
end
function PanelCalender.onClickBtn(btnName)
if (btnName == "ButtonPrevMM") then
-- PanelCalender.addMonth(-1);
grid:moveTo(curIndex - 1)
elseif (btnName == "ButtonNextMM") then
-- PanelCalender.addMonth(1);
grid:moveTo(curIndex + 1)
elseif (btnName == "ButtonPrevYY") then
-- PanelCalender.addMonth(-13);
grid:moveTo(curIndex - 12)
elseif (btnName == "ButtonNextYY") then
-- PanelCalender.addMonth(13);
grid:moveTo(curIndex + 12)
elseif (btnName == "SpriteClose" or btnName == "ButtonClose") then
CLPanelManager.hidePanel(csSelf)
elseif btnName == "ButtonToday" then
oldSelectedCell = nil
curYear = DateTime.Now.Year
curMonth = DateTime.Now.Month
PanelCalender.show()
PanelCalender.refresh()
elseif btnName == "ButtonOkay" then
CLPanelManager.hidePanel(csSelf)
local dataStr = ""
if (selectedYear ~= nil) then
dataStr =
PStr.b():a(tostring(selectedYear)):a("-"):a(NumEx.nStrForLen(selectedMonth, 2)):a("-"):a(
NumEx.nStrForLen(selectedDay, 2)
):e()
if (isNeedTime) then
dataStr =
PStr.b():a(dataStr):a(" "):a(NumEx.nStrForLen(InputHH.value, 2)):a(":"):a(
NumEx.nStrForLen(InputMM.value, 2)
):a(":"):a(NumEx.nStrForLen(InputSS.value, 2)):e()
end
end
Utl.doCallback(callback, dataStr)
end
end
return PanelCalender