PanelJumpCommand = class("PanelJumpCommand",pm.SimpleCommand) function PanelJumpCommand:execute(note) -- UIManagerProxy.Instance:ShowUI(note.body) local body = note.body if(body and body.view) then local panelData = body.view if(type(panelData)=="number") then panelData = PanelProxy.Instance:GetData(panelData) end if(panelData) then self:TryShowPanel(panelData,body.viewdata,body.force) end end end function PanelJumpCommand:TryShowPanel( data ,vdata,force) if(force==nil) then force = false end LogUtility.InfoFormat("嘗試打開id:{0},{1}界面",data.id,data.name,data.prefab) if(force or FunctionUnLockFunc.Me():CheckCanOpenByPanelId(data.id, false)) then local uidata = {view=data,viewdata = vdata} UIManagerProxy.Instance:ShowUIByConfig(uidata) else self:UnOpenJump(data ,vdata) end end --嘗試打開的界面未解鎖的話,根據配置表,跳轉預設界面 function PanelJumpCommand:UnOpenJump(config,vdata) if(config.unOpenJump) then config = PanelProxy.Instance:GetData(config.unOpenJump) if(config) then LogUtility.InfoFormat("界面{0},{1}未開啟",config.id,config.name) self:TryShowPanel(config,vdata) end else FunctionUnLockFunc.Me():CheckCanOpenByPanelId(config.id, true) end end