194 lines
5.8 KiB
Lua
194 lines
5.8 KiB
Lua
---@type IDBasePanel
|
||
local TRBasePanel = require("ui.panel.TRBasePanel")
|
||
---@class TRPAbout:TRBasePanel 邮件列表
|
||
local TRPAbout = class("TRPAbout", TRBasePanel)
|
||
|
||
local uiobjs = {}
|
||
-- 初始化,只会调用一次
|
||
function TRPAbout:init(csObj)
|
||
TRPAbout.super.init(self, csObj)
|
||
self:initFiledsAttr()
|
||
self:setEventDelegate()
|
||
|
||
MyUtl.setContentView(getChild(self.transform, "PanelContent"), MyUtl.defaultTopHeight + 500, 0)
|
||
---@type UIScrollView
|
||
uiobjs.scrollView = getCC(self.transform, "PanelContent", "UIScrollView")
|
||
---@type UITable
|
||
uiobjs.Table = getCC(uiobjs.scrollView.transform, "Table", "UITable")
|
||
---@type CLUIFormRoot
|
||
uiobjs.TableForm = uiobjs.Table:GetComponent("CLUIFormRoot")
|
||
---@type Coolape.CLCellLua
|
||
uiobjs.TableLua = uiobjs.Table:GetComponent("CLCellLua")
|
||
end
|
||
|
||
function TRPAbout:initFiledsAttr()
|
||
---@type _ParamFieldAttr
|
||
local attr
|
||
self.baseFiledsAttr = {}
|
||
attr = {}
|
||
attr.attrName = "更新动态"
|
||
attr.id = "upgrade"
|
||
attr.attrType = DBCust.FieldType.text
|
||
attr.ifMust = 0
|
||
attr.donotJoinKey = true
|
||
table.insert(self.baseFiledsAttr, attr)
|
||
|
||
attr = {}
|
||
attr.attrName = "服务协议"
|
||
attr.id = "serviceAgreement"
|
||
attr.attrType = DBCust.FieldType.text
|
||
attr.ifMust = 0
|
||
attr.donotJoinKey = true
|
||
table.insert(self.baseFiledsAttr, attr)
|
||
|
||
-- attr = {}
|
||
-- attr.attrName = "发布评价"
|
||
-- attr.id = "assess"
|
||
-- attr.attrType = DBCust.FieldType.text
|
||
-- attr.ifMust = 0
|
||
-- attr.donotJoinKey = true
|
||
-- table.insert(self.baseFiledsAttr, attr)
|
||
end
|
||
|
||
-- 设置数据
|
||
---@param paras _ParamTRPAbout
|
||
function TRPAbout:setData(paras)
|
||
self.mdata = {}
|
||
end
|
||
|
||
-- 显示,在c#中。show为调用refresh,show和refresh的区别在于,当页面已经显示了的情况,当页面再次出现在最上层时,只会调用refresh
|
||
function TRPAbout:show()
|
||
---@type _ParamCellExtendFiledRoot
|
||
local fieldRootInfor = {}
|
||
fieldRootInfor.fields = {}
|
||
fieldRootInfor.data = self.mdata
|
||
fieldRootInfor.onFinish = self:wrapFunc(self.reposition)
|
||
for i, v in ipairs(self.baseFiledsAttr) do
|
||
---@type _ParamCellExtendFiled
|
||
local d = {}
|
||
d.attr = v
|
||
d.showMode = _FieldMode.button
|
||
d.onClick = self:wrapFunc(self.onClickField)
|
||
d.onSelect = self:wrapFunc(self.onSelectField)
|
||
table.insert(fieldRootInfor.fields, d)
|
||
end
|
||
|
||
uiobjs.TableLua:init(fieldRootInfor, nil)
|
||
end
|
||
|
||
---@param el CLUIElement
|
||
function TRPAbout:onClickField(el)
|
||
if el.jsonKey == "upgrade" then
|
||
-- 更新
|
||
self:upgrade()
|
||
elseif el.jsonKey == "serviceAgreement" then
|
||
-- 显示协议
|
||
local path =
|
||
joinStr(
|
||
CLPathCfg.self.basePath,
|
||
"/",
|
||
CLPathCfg.upgradeRes,
|
||
"/other/txt/",
|
||
CLPathCfg.self.platform,
|
||
"/serviceProto",
|
||
".unity3d"
|
||
)
|
||
CLVerManager.self:getNewestRes(
|
||
path,
|
||
CLAssetType.assetBundle,
|
||
function(path, content, orgs)
|
||
if content then
|
||
local msg = content.mainAsset and content.mainAsset.text or ""
|
||
content:Unload(false)
|
||
getPanelAsy(
|
||
"PanelSysMsgDetail",
|
||
onLoadedPanelTT,
|
||
{PanelTitle = "服务协议", TITLE = "服务协议", CONTENT = msg}
|
||
)
|
||
end
|
||
end,
|
||
true,
|
||
nil
|
||
)
|
||
elseif el.jsonKey == "assess" then
|
||
-- 评价(这个做起来麻烦)
|
||
end
|
||
end
|
||
|
||
function TRPAbout:upgrade()
|
||
showHotWheel()
|
||
local oldVer = __version__
|
||
local onGetVer = function(content, orgs)
|
||
hideHotWheel()
|
||
local map = JSON.DecodeMap(content)
|
||
local newVer = MapEx.getString(map, "ver")
|
||
if (tonumber(newVer) > tonumber(oldVer)) then
|
||
local doUpgradeApp = function()
|
||
Application.OpenURL(MapEx.getString(map, "url"))
|
||
end
|
||
if MapEx.getBool(map, "force") then
|
||
CLUIUtl.showConfirm(LGet("MsgHadNewVerApp"), true, "更新", doUpgradeApp, "", nil)
|
||
else
|
||
CLUIUtl.showConfirm(LGet("MsgHadNewVerApp"), false, "更新", doUpgradeApp, "忽略", nil)
|
||
end
|
||
else
|
||
MyUtl.toastS("当前已经是最新版本 V" .. oldVer)
|
||
end
|
||
end
|
||
|
||
local onGetVerError = function(msg, orgs)
|
||
hideHotWheel()
|
||
MyUtl.toastW("更新检查失败")
|
||
end
|
||
|
||
local chlCode = getChlCode()
|
||
local url = Utl.urlAddTimes(joinStr(CLVerManager.self.baseUrl, "/appVer.", chlCode, ".json"))
|
||
WWWEx.get(url, CLAssetType.text, onGetVer, onGetVerError, nil, true, 1)
|
||
end
|
||
function TRPAbout:onSelectField(go)
|
||
end
|
||
|
||
function TRPAbout:reposition()
|
||
uiobjs.Table:Reposition()
|
||
uiobjs.Table.repositionNow = true
|
||
uiobjs.scrollView:ResetPosition()
|
||
end
|
||
|
||
-- 刷新
|
||
function TRPAbout:refresh()
|
||
end
|
||
|
||
-- 关闭页面
|
||
function TRPAbout:hide()
|
||
uiobjs.TableLua.luaTable.release()
|
||
end
|
||
|
||
-- 网络请求的回调;cmd:指命,succ:成功失败,msg:消息;paras:服务器下行数据
|
||
function TRPAbout:procNetwork(cmd, succ, msg, paras)
|
||
if (succ == NetSuccess) then
|
||
--[[
|
||
if cmd == xx then
|
||
end
|
||
]]
|
||
end
|
||
end
|
||
|
||
function TRPAbout:setEventDelegate()
|
||
self.EventDelegate = {}
|
||
end
|
||
|
||
-- 处理ui上的事件,例如点击等
|
||
function TRPAbout:uiEventDelegate(go)
|
||
local func = self.EventDelegate[go.name]
|
||
if func then
|
||
func(go)
|
||
end
|
||
end
|
||
|
||
-- 当顶层页面发生变化时回调
|
||
function TRPAbout:onTopPanelChange(topPanel)
|
||
end
|
||
|
||
--------------------------------------------
|
||
return TRPAbout
|