Files
tianrunCRM/Assets/trCRM/upgradeRes4Dev/priority/lua/ui/panel/TRPEditPrice.lua
2021-03-31 22:22:59 +08:00

138 lines
4.8 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.

---@type IDBasePanel
local TRBasePanel = require("ui.panel.TRBasePanel")
---@class TRPEditPrice:TRBasePanel 邮件列表
local TRPEditPrice = class("TRPEditPrice", TRBasePanel)
local uiobjs = {}
local callback
-- 初始化,只会调用一次
function TRPEditPrice:init(csObj)
TRPEditPrice.super.init(self, csObj)
self:setEventDelegate()
---@type UITable
uiobjs.Table = getCC(self.csSelf.transform, "Table", "UITable")
---@type CLUIFormRoot
uiobjs.formRoot = uiobjs.Table.gameObject:GetComponent("CLUIFormRoot")
---@type CLUIElement
uiobjs.InputNum = getCC(uiobjs.formRoot.transform, "InputNum", "CLUIElement")
---@type CLUIElement
uiobjs.InputStartTime = getCC(uiobjs.formRoot.transform, "InputStartTime", "CLUIElement")
---@type CLUIElement
uiobjs.InputEndTime = getCC(uiobjs.formRoot.transform, "InputEndTime", "CLUIElement")
end
-- 设置数据
---@param paras _ParamTRPEditPrice
function TRPEditPrice:setData(paras)
self.mdata = paras.data
callback = paras.callback
end
-- 显示在c#中。show为调用refreshshow和refresh的区别在于当页面已经显示了的情况当页面再次出现在最上层时只会调用refresh
function TRPEditPrice:show()
uiobjs.formRoot:setValue(self.mdata)
-- 产品属性:1-服务类产品0/null为实物类产品
if (not isNilOrEmpty(self.mdata.productAttribute)) and tonumber(self.mdata.productAttribute) == 1 then
SetActive(uiobjs.InputStartTime.gameObject, true)
SetActive(uiobjs.InputEndTime.gameObject, true)
uiobjs.InputStartTime.value = self.mdata.validStartTime or DateEx.format(DateEx.fmt_yyyy_MM_dd)
self:calculateEndDate(uiobjs.InputStartTime.value)
else
SetActive(uiobjs.InputStartTime.gameObject, false)
SetActive(uiobjs.InputEndTime.gameObject, false)
end
uiobjs.Table:Reposition()
end
function TRPEditPrice:calculateEndDate(startDate)
if not uiobjs.InputEndTime.gameObject.activeInHierarchy then
return
end
local begain = DateTime.Now
if not isNilOrEmpty(startDate) then
local days = strSplit(startDate, "-")
begain = DateTime(tonumber(days[1]), tonumber(days[2]), tonumber(days[3]))
end
local enddate
local num = tonumber(uiobjs.InputNum.value) or 1
--服务产品消耗时间类型默认NULL0按日1按月2按季度3按年
if not isNilOrEmpty(self.mdata.productComsuingType) then
local productComsuingType = tonumber(self.mdata.productComsuingType)
if productComsuingType == 0 then
enddate = begain:AddDays(num)
elseif productComsuingType == 1 then
enddate = begain:AddMonths(num)
elseif productComsuingType == 2 then
enddate = begain:AddMonths(num * 3)
elseif productComsuingType == 3 then
enddate = begain:AddYears(num)
else
return ""
end
uiobjs.InputEndTime.value = enddate:ToString(DateEx.fmt_yyyy_MM_dd)
end
return ""
end
-- 刷新
function TRPEditPrice:refresh()
end
-- 关闭页面
function TRPEditPrice:hide()
end
-- 网络请求的回调cmd指命succ成功失败msg消息paras服务器下行数据
function TRPEditPrice:procNetwork(cmd, succ, msg, paras)
if (succ == NetSuccess) then
--[[
if cmd == xx then
end
]]
end
end
function TRPEditPrice:setEventDelegate()
self.EventDelegate = {
ButtonCancel = function()
hideTopPanel(self.csSelf)
end,
ButtonOkay = function()
hideTopPanel(self.csSelf)
self.mdata = uiobjs.formRoot:getValue(self.mdata, true)
if tonumber(self.mdata.productNum) <= 0 then
MyUtl.toastW("数量不能低于1")
return
end
if (not isNilOrEmpty(self.mdata.productAttribute)) and tonumber(self.mdata.productAttribute) == 1 then
if isNilOrEmpty(uiobjs.InputStartTime.value) then
MyUtl.toastW("请设置开始日期")
return
end
end
Utl.doCallback(callback, self.mdata)
end,
InputNum = function()
self:calculateEndDate(uiobjs.InputStartTime.value)
end,
InputStartTime = function()
self:calculateEndDate(uiobjs.InputStartTime.value)
end
}
end
-- 处理ui上的事件例如点击等
function TRPEditPrice:uiEventDelegate(go)
local func = self.EventDelegate[go.name]
if func then
func()
end
end
-- 当顶层页面发生变化时回调
function TRPEditPrice:onTopPanelChange(topPanel)
end
--------------------------------------------
return TRPEditPrice