---@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为调用refresh,show和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 --服务产品消耗时间类型,默认:NULL;0:按日,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