Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/ui/cell/CLLUICalenderMonth.lua
2020-07-24 22:12:55 +08:00

123 lines
4.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- xx单元
do
local _cell = {}
local csSelf = nil
local transform = nil
local grid
local dayPrefab = nil
local mData = nil
local dayList
-- 初始化,只调用一次
function _cell.init(csObj)
csSelf = csObj
transform = csSelf.transform
grid = getChild(transform, "Grid"):GetComponent("UIGrid")
dayPrefab = getChild(grid.transform, "00000").gameObject
end
-- 注意c#侧不会在调用show时调用refresh
function _cell.refresh(data, pageIndex)
mData = data
if (mData == nil) then
mData = {}
local curYear, curMonth = PanelCalender.getData()
if (pageIndex < 0) then
mData.year, mData.month = PanelCalender.getYYHH_ByaddMonth(curYear, curMonth, -6 + pageIndex)
else
mData.year, mData.month = PanelCalender.getYYHH_ByaddMonth(curYear, curMonth, -6 + pageIndex)
end
end
dayList = _cell.resetCalender(mData.year, mData.month)
CLUIUtl.resetList4Lua(grid, dayPrefab, dayList, _cell.initCellDay)
end
function _cell.doRefresh()
CLUIUtl.resetList4Lua(grid, dayPrefab, dayList, _cell.initCellDay)
end
-- 取得数据
function _cell.getData()
return mData
end
function _cell.initCellDay(cell, day)
local data
if cell.luaTable then
data = cell.luaTable.getData()
else
data = {}
end
data.day = day
local selectedYear, selectedMonth, selectedDay = PanelCalender.getSelectDate()
if (mData.year == DateTime.Now.Year and mData.month == DateTime.Now.Month and day == DateTime.Now.Day) then
data.isToday = true
if selectedYear == nil then
PanelCalender.setDefalutSelectDate(cell, mData.year, mData.month, day)
end
else
data.isToday = false
data.isSelected = false
end
data.isSelected = false
local isDateRange, startDate, endDate = PanelCalender.getDateRangeDate()
if isDateRange then
local tmpDate =
tonumber(
joinStr(
NumEx.nStrForLen(mData.year, 4),
NumEx.nStrForLen(mData.month, 2),
NumEx.nStrForLen(data.day, 2)
)
)
if tmpDate and (startDate and tmpDate >= startDate) and (endDate and tmpDate <= endDate) then
data.isSelected = true
elseif tmpDate and (startDate and tmpDate == startDate) and endDate == nil then
data.isSelected = true
else
data.isSelected = false
end
else
if (mData.year == selectedYear and mData.month == selectedMonth and selectedDay == data.day) then
data.isSelected = true
PanelCalender.setDefalutSelectDate(cell, mData.year, mData.month, day)
end
end
cell:init(data, _cell.onClickDay)
end
function _cell.onClickDay(cell)
local d = cell.luaTable.getData()
if (d.day == -1) then
return
end
local selectedDay = cell.luaTable.getData().day
local selectedMonth = mData.month
local selectedYear = mData.year
PanelCalender.setSelectDate(cell, selectedYear, selectedMonth, selectedDay)
end
function _cell.resetCalender(year, month)
local list = ArrayList()
local dayCount = DateEx.getMothDays(year, month)
local week = DateEx.getWeek(year, month, 1)
for i = 0, week - 1 do
list:Add(-1)
end
for i = week, dayCount - 1 + week do
-- print(i .. "-" .. week .. "+1");
list:Add(i - week + 1)
end
for i = dayCount + week, 41 do
list:Add(-1)
end
return list
end
--------------------------------------------
return _cell
end