245 lines
6.7 KiB
Lua
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
|