@@ -0,0 +1,223 @@
---@type IDBasePanel
local TRBasePanel = require ( " ui.panel.TRBasePanel " )
---@class TRPNewFollow:TRBasePanel 邮件列表
local TRPNewFollow = class ( " TRPNewFollow " , TRBasePanel )
local uiobjs = { }
local stars = { }
-- 初始化,只会调用一次
function TRPNewFollow : init ( csObj )
TRPNewFollow.super . init ( self , csObj )
self : initFiledsAttr ( )
self : setEventDelegate ( )
MyUtl.setContentView ( getChild ( self.transform , " PanelContent " ) , 132 , 0 )
---@type UIScrollView
uiobjs.scrollView = getCC ( self.transform , " PanelContent " , " UIScrollView " )
---@type UITable
uiobjs.Table = getCC ( uiobjs.scrollView . transform , " Table " , " UITable " )
---@type CLUIFormRoot
uiobjs.DetailFromRoot = getCC ( uiobjs.Table . transform , " DetailRoot " , " CLUIFormRoot " )
uiobjs.DetailRoot = getCC ( uiobjs.Table . transform , " DetailRoot " , " CLCellLua " )
---@type UITable
uiobjs.DetailRootTabel = uiobjs.DetailRoot : GetComponent ( " UITable " )
uiobjs.ButtonSave = getChild ( self.transform , " Top/ButtonSave " )
end
function TRPNewFollow : initFiledsAttr ( )
---@type _ParamFieldAttr
local attr
self.baseFiledsAttr = { }
attr = { }
attr.attrName = " 商机 "
attr.id = " "
attr.attrType = DBCust.FieldType . popuplist
attr.ifMust = 1
attr.donotJoinKey = true
-- local popInfor = DBCust.getFilter4Popup(DBCust.FilterGroup.followUpTypeList)
-- attr.popOptions = popInfor.options
-- attr.popValues = popInfor.values
table.insert ( self.baseFiledsAttr , attr )
attr = { }
attr.attrName = " 跟进类型 "
attr.id = " followUpType "
attr.attrType = DBCust.FieldType . popuplist
attr.ifMust = 1
attr.donotJoinKey = true
local popInfor = DBCust.getFilter4Popup ( DBCust.FilterGroup . followUpTypeList )
attr.popOptions = popInfor.options
attr.popValues = popInfor.values
table.insert ( self.baseFiledsAttr , attr )
attr = { }
attr.attrName = " 跟时时间 "
attr.id = " "
attr.attrType = DBCust.FieldType . dateTime
attr.ifMust = 1
attr.donotJoinKey = true
table.insert ( self.baseFiledsAttr , attr )
attr = { }
attr.attrName = " 客户名称 "
attr.id = " custName "
attr.attrType = DBCust.FieldType . text
attr.ifMust = 1
attr.donotJoinKey = true
table.insert ( self.baseFiledsAttr , attr )
attr = { }
attr.attrName = " 客户状态 "
attr.id = " dealFlag "
attr.attrType = DBCust.FieldType . popuplist
attr.ifMust = 1
attr.donotJoinKey = true
local popInfor = DBCust.getFilter4Popup ( DBCust.FilterGroup . dealFlagList )
attr.popOptions = popInfor.options
attr.popValues = popInfor.values
table.insert ( self.baseFiledsAttr , attr )
attr = { }
attr.attrName = " 跟进内容 "
attr.id = " followUpContent "
attr.attrType = DBCust.FieldType . multext
attr.ifMust = 1
attr.donotJoinKey = true
table.insert ( self.baseFiledsAttr , attr )
end
-- 设置数据
---@param paras _ParamTRPNewFollow
function TRPNewFollow : setData ( paras )
self.mdata = { }
self.mdata . custId = paras.custId
self.mdata . taskId = paras.taskId
self.mdata . custName = paras.custName
self.isNewFollow = true
end
-- 显示, 在c#中。show为调用refresh, show和refresh的区别在于, 当页面已经显示了的情况, 当页面再次出现在最上层时, 只会调用refresh
function TRPNewFollow : show ( )
self : refreshContent ( )
SetActive ( uiobjs.ButtonSave . gameObject , self.isNewFollow )
uiobjs.scrollView : ResetPosition ( )
end
function TRPNewFollow : refreshContent ( )
self : showBaseFields ( )
self.csSelf : invoke4Lua ( self : wrapFunc ( self.reposition ) , 0.1 )
end
function TRPNewFollow : showBaseFields ( )
---@type _ParamCellExtendFiledRoot
local param = { }
param.data = self.mdata or { }
param.onFinish = self : wrapFunc ( self.reposition )
param.onLoadOneField = self : wrapFunc ( self.onLoadOneField )
param.fields = { }
---@type _ParamCellExtendFiled
local filedInfor
for i , v in ipairs ( self.baseFiledsAttr ) do
-- 工单模板
filedInfor = { }
filedInfor.attr = v
filedInfor.isEditMode = true
if filedInfor.attr . attrType == DBCust.FieldType . multext then
filedInfor.onMultTextInputChg = self : wrapFunc ( self.reposition )
end
filedInfor.onClick = nil
filedInfor.onSelect = self : wrapFunc ( self.onPopupFieldValChg )
table.insert ( param.fields , filedInfor )
end
uiobjs.DetailRoot : init ( param , nil )
end
function TRPNewFollow : onLoadOneField ( cell )
local el = cell : GetComponent ( " CLUIElement " )
if el and el.jsonKey == " followUpContent " then
uiobjs.followUpContent = el
end
end
function TRPNewFollow : onPopupFieldValChg ( go )
---@type CLUIElement
local el = go : GetComponent ( " CLUIElement " )
if el.jsonKey == " dealFlag " then
if uiobjs.followUpContent and isNilOrEmpty ( uiobjs.followUpContent . value ) then
local popList = go : GetComponent ( " UIPopupList " )
uiobjs.followUpContent . value = popList.selectedItem
end
end
end
function TRPNewFollow : reposition ( )
uiobjs.DetailRootTabel . repositionNow = true
uiobjs.Table . repositionNow = true
end
-- 刷新
function TRPNewFollow : refresh ( )
end
-- 关闭页面
function TRPNewFollow : hide ( )
if uiobjs.DetailRoot . luaTable then
uiobjs.DetailRoot . luaTable.release ( )
end
end
-- 网络请求的回调; cmd: 指命, succ: 成功失败, msg: 消息; paras: 服务器下行数据
function TRPNewFollow : procNetwork ( cmd , succ , msg , paras )
if ( succ == NetSuccess ) then
if cmd == NetProto.cmds . update_customer then
self : refreshContent ( )
end
end
end
function TRPNewFollow : setEventDelegate ( )
self.EventDelegate = {
ButtonSave = function ( )
local err = uiobjs.DetailFromRoot : checkValid ( )
if not isNilOrEmpty ( err ) then
MyUtl.toastW ( err )
return
end
self.mdata = uiobjs.DetailFromRoot : getValue ( self.mdata , true )
showHotWheel ( )
NetProto.send . create_followUp_record (
self.mdata ,
function ( content )
hideHotWheel ( )
if content.success then
MyUtl.toastS ( " 保存成功 " )
hideTopPanel ( self.csSelf )
end
end
)
end ,
InputTask = function ( )
self : showExtentFiles ( uiobjs.InputTask . value )
end
}
end
-- 处理ui上的事件, 例如点击等
function TRPNewFollow : uiEventDelegate ( go )
local func = self.EventDelegate [ go.name ]
if func then
func ( )
end
end
-- 当顶层页面发生变化时回调
function TRPNewFollow : onTopPanelChange ( topPanel )
end
--------------------------------------------
return TRPNewFollow