---@type IDBasePanel local TRBasePanel = require("ui.panel.TRBasePanel") ---@class TRPCustDetailSimple:TRBasePanel local TRPCustDetailSimple = class("TRPCustDetailSimple", TRBasePanel) local uiobjs = {} -- 初始化,只会调用一次 function TRPCustDetailSimple:init(csObj) TRPCustDetailSimple.super.init(self, csObj) self:prepareMoreData() self:setEventDelegate() MyUtl.setContentView(getChild(self.transform, "PanelContent"), MyUtl.defaultTopHeight + 400 + 40, 200) ---@type UIScrollView uiobjs.scrollView = getCC(self.transform, "PanelContent", "UIScrollView") uiobjs.scrollView.dampenStrength = MyUtl.dampenStrength ---@type UITable uiobjs.Table = getCC(uiobjs.scrollView.transform, "Table", "UITable") uiobjs.Head = getCC(self.transform, "Top/SpriteHead", "CLUIFormRoot") ---@type UIPopupList uiobjs.LabelStatus = getCC(uiobjs.Head.transform, "LabelStatus", "UIPopupList") uiobjs.LabelType = getCC(uiobjs.Head.transform, "LabelType", "UIPopupList") uiobjs.LabelLoginNo = getCC(uiobjs.Head.transform, "LabelLoginNo", "UIPopupList") uiobjs.starGrid = getCC(uiobjs.Head.transform, "LabelStars/Grid", "UIGrid") uiobjs.starGridPrefab = getChild(uiobjs.starGrid.transform, "00000").gameObject ---@type CLUIFormRoot uiobjs.DetailRoot = getCC(uiobjs.Table.transform, "DetailRoot", "CLUIFormRoot") uiobjs.InputTask = getCC(uiobjs.DetailRoot.transform, "InputTask", "UIPopupList") uiobjs.InputCustType = getCC(uiobjs.DetailRoot.transform, "InputCustType", "UIPopupList") uiobjs.InputStatus = getCC(uiobjs.DetailRoot.transform, "InputStatus", "UIPopupList") uiobjs.InputFrom = getCC(uiobjs.DetailRoot.transform, "InputFrom", "UIPopupList") uiobjs.InputLogin = getCC(uiobjs.DetailRoot.transform, "InputLogin", "UIPopupList") uiobjs.starGrid2 = getCC(uiobjs.DetailRoot.transform, "InputStars/Grid", "UIGrid") uiobjs.starGridPrefab2 = getChild(uiobjs.starGrid2.transform, "00000").gameObject uiobjs.ExtendRoot = getCC(uiobjs.Table.transform, "ExtendRoot", "CLCellLua") uiobjs.SysRoot = getCC(uiobjs.Table.transform, "SysRoot", "CLCellLua") uiobjs.ButtonGet = getChild(self.transform, "AnchorBottom/offset/ButtonGet").gameObject end function TRPCustDetailSimple:prepareMoreData() self.sysFields = {} ---@type _ParamFieldAttr local attr = {} attr.id = "loginNo" attr.attrName = "创建人员" attr.attrType = DBCust.FieldType.popuplist attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true local popInfor = DBUser.getPopList(DBUser.FilterGroup.user) attr.popOptions = popInfor.options attr.popValues = popInfor.values table.insert(self.sysFields, attr) ---@type _ParamFieldAttr attr = {} attr.id = "groupId" attr.attrName = "所属部门" attr.attrType = DBCust.FieldType.popuplist attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true local popInfor = DBUser.getPopList(DBUser.FilterGroup.group) attr.popOptions = popInfor.options attr.popValues = popInfor.values table.insert(self.sysFields, attr) ---@type _ParamFieldAttr attr = {} attr.id = "createTime" attr.attrName = "创建时间" attr.attrType = DBCust.FieldType.text attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true table.insert(self.sysFields, attr) ---@type _ParamFieldAttr attr = {} attr.id = "updateTime" attr.attrName = "更新时间" attr.attrType = DBCust.FieldType.text attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true table.insert(self.sysFields, attr) ---@type _ParamFieldAttr attr = {} attr.id = "lastFollowUpTime" attr.attrName = "最后跟进" attr.attrType = DBCust.FieldType.text attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true table.insert(self.sysFields, attr) ---@type _ParamFieldAttr attr = {} attr.id = "followupTime" attr.attrName = "下次跟进" attr.attrType = DBCust.FieldType.text attr.ifMust = 0 attr.height = 180 attr.donotJoinKey = true table.insert(self.sysFields, attr) end -- 设置数据 ---@param paras _ParamTRPCustDetailSimple function TRPCustDetailSimple:setData(paras) self.isShowButtonGet = paras.isShowButtonGet ---@type _DBCust self.mdata = paras.cust self.mdata._phoneNo = MyUtl.hidePhone(self.mdata.phoneNo) if type(self.mdata.jsonStr) == "string" then self.mdata.jsonStr = json.decode(self.mdata.jsonStr) end end ---public 当有通用背板显示时的回调 ---@param cs Coolape.CLPanelLua function TRPCustDetailSimple:onShowFrame(cs) if cs.frameObj then ---@type _BGFrame1Param local d = {} -- d.title = LGet(cs.titleKeyName) d.title = self.mdata.companyName d.panel = cs cs.frameObj:init(d) end end -- 显示,在c#中。show为调用refresh,show和refresh的区别在于,当页面已经显示了的情况,当页面再次出现在最上层时,只会调用refresh function TRPCustDetailSimple:show() SetActive(uiobjs.ButtonGet, self.isShowButtonGet or false) if self.isShowButtonGet then MyUtl.setContentView(getChild(self.transform, "PanelContent"), MyUtl.defaultTopHeight + 400 + 40, 200) else MyUtl.setContentView(getChild(self.transform, "PanelContent"), MyUtl.defaultTopHeight + 400 + 40, 0) end self.records = nil self.orders = nil local optionInfor = DBCust.getFilter4Popup(DBCust.FilterGroup.dealFlagList) uiobjs.LabelStatus:refreshItems(optionInfor.options, optionInfor.values) uiobjs.InputStatus:refreshItems(optionInfor.options, optionInfor.values) optionInfor = DBCust.getFilter4Popup(DBCust.FilterGroup.custTypeList) uiobjs.LabelType:refreshItems(optionInfor.options, optionInfor.values) uiobjs.InputCustType:refreshItems(optionInfor.options, optionInfor.values) optionInfor = DBCust.getFilter4Popup(DBCust.FilterGroup.custFromList) uiobjs.InputFrom:refreshItems(optionInfor.options, optionInfor.values) optionInfor = DBCust.getFilter4Popup(DBCust.FilterGroup.taskList) uiobjs.InputTask:refreshItems(optionInfor.options, optionInfor.values) local poplist = DBUser.getPopList(DBUser.FilterGroup.user) uiobjs.InputLogin:refreshItems(poplist.options, poplist.values) uiobjs.LabelLoginNo:refreshItems(poplist.options, poplist.values) -- 设置星级 local stars = {} for i = 1, 5 do table.insert(stars, i <= (self.mdata.customerLabel or 0) and true or false) end CLUIUtl.resetList4Lua(uiobjs.starGrid, uiobjs.starGridPrefab, stars, self:wrapFunc(self.initStarCell)) self:showDetail() end function TRPCustDetailSimple:initStarCell(cell, data) local sp = cell:GetComponent("UISprite") if data then sp.color = ColorEx.getColor(0xffFFC000) CLUIUtl.setSpriteFit(sp, "cust_full_star") else sp.color = ColorEx.getColor(0xffd9d9d9) CLUIUtl.setSpriteFit(sp, "cust_star") end end function TRPCustDetailSimple:showDetail() self:release() SetActive(uiobjs.DetailRoot.gameObject, true) SetActive(uiobjs.ExtendRoot.gameObject, true) SetActive(uiobjs.SysRoot.gameObject, true) uiobjs.DetailRoot:setValue(self.mdata) -- uiobjs.ExtendRoot:init({data = self.mdata, isEditMode = false}, nil) self:showExtentFiles(self.mdata.taskId) self:showSysFiles() -- 设置星级 local stars = {} for i = 1, 5 do table.insert(stars, i <= (self.mdata.customerLabel or 0) and true or false) end CLUIUtl.resetList4Lua(uiobjs.starGrid, uiobjs.starGridPrefab, stars, self:wrapFunc(self.initStarCell)) CLUIUtl.resetList4Lua(uiobjs.starGrid2, uiobjs.starGridPrefab2, stars, self:wrapFunc(self.initStarCell)) uiobjs.Table:Reposition() uiobjs.scrollView.restrictWithinPanel = true uiobjs.scrollView.disableDragIfFits = true uiobjs.scrollView:ResetPosition() end function TRPCustDetailSimple:reposition() uiobjs.Table:Reposition() uiobjs.scrollView.disableDragIfFits = true uiobjs.scrollView:ResetPosition() end ---public 显示扩展字段 function TRPCustDetailSimple:showExtentFiles(taskId) ---@type _ParamCellExtendFiledRoot local param = {} param.data = self.mdata and self.mdata.jsonStr or {} -- param.onFinish = self:wrapFunc(self.setExtendFieldsMode) param.fields = {} local fields = DBCust.getFieldsByTask(taskId) or {} ---@type _ParamCellExtendFiled local filedInfor for i, v in ipairs(fields) do filedInfor = {} filedInfor.attr = v filedInfor.showMode = _FieldMode.showOnly table.insert(param.fields, filedInfor) end uiobjs.ExtendRoot:init(param, nil) end ---public 显示扩展字段 function TRPCustDetailSimple:showSysFiles() ---@type _ParamCellExtendFiledRoot local param = {} param.data = self.mdata param.onFinish = self:wrapFunc(self.reposition) param.fields = {} local fields = self.sysFields ---@type _ParamCellExtendFiled local filedInfor for i, v in ipairs(fields) do filedInfor = {} filedInfor.attr = v filedInfor.showMode = _FieldMode.showOnly table.insert(param.fields, filedInfor) end uiobjs.SysRoot:init(param, nil) end -- 刷新 function TRPCustDetailSimple:refresh() end function TRPCustDetailSimple:release() if uiobjs.ExtendRoot.luaTable then uiobjs.ExtendRoot.luaTable.release() end if uiobjs.SysRoot.luaTable then uiobjs.SysRoot.luaTable.release() end self.hasSetMoreProc = false end -- 关闭页面 function TRPCustDetailSimple:hide() self:release() end -- 网络请求的回调;cmd:指命,succ:成功失败,msg:消息;paras:服务器下行数据 function TRPCustDetailSimple:procNetwork(cmd, succ, msg, paras) if (succ == NetSuccess) then end end function TRPCustDetailSimple:setEventDelegate() self.EventDelegate = { ButtonGet = function() showHotWheel() local params = { ids = self.mdata.custId, oprType = "byId" } NetProto.send.getFromGH( params, function(content) if content.success then hideTopPanel(self.csSelf) end end ) end } end -- 处理ui上的事件,例如点击等 function TRPCustDetailSimple:uiEventDelegate(go) local func = self.EventDelegate[go.name] if func then func() end end -- 当顶层页面发生变化时回调 function TRPCustDetailSimple:onTopPanelChange(topPanel) end -------------------------------------------- return TRPCustDetailSimple