changhong_newclient/lua_probject/base_project/Game/View/Lobby/SelectAcc.lua

128 lines
3.9 KiB
Lua

local SelectAcc = {}
local M = SelectAcc
function SelectAcc.new(data, callback)
setmetatable(M, { __index = BaseWindow })
local self = setmetatable({}, { __index = M })
self.class = "SelectAcc"
self._callback = callback
self._close_zone = false
self._close_destroy = true
self._data = data
local url = "ui://Lobby/win_selectAccont"
self:init(url)
return self
end
function M:init(url)
getmetatable(M).__index.init(self, url)
local lobbyCtr1 = ControllerManager.GetController(LoddyController)
local user = DataManager.SelfUser
self._view:GetChild('text_nick').text = user.nick_name
self._view:GetChild('text_id').text = user.account_id
ImageLoad.Load(user.head_url, self._view:GetChild('head_url'))
self._view:GetChild('btn_ok').onClick:Set(function()
self._view:GetController('choose').selectedIndex = 1
end)
self._view:GetChild('btn_cancle').onClick:Set(function()
self:Destroy()
end)
self._list_acc = self._view:GetChild('list_acc')
self._list_acc:SetVirtual()
self._list_acc.itemRenderer = function(index, obj)
ImageLoad.Load(self._resData[index + 1].portrait, obj._iconObject)
obj:GetChild('text_id').text = self._resData[index + 1].id
obj:GetChild('text_name').text = self._resData[index + 1].nick
obj:GetChild('btn_bing').onClick:Set(function(context)
self._view:GetChild('tex_phone').text = self._resData[index + 1].id
self._view:GetController('choose').selectedIndex = 2
end)
end
self._view:GetChild('btn_ok_pws').onClick:Set(function()
self:Bind()
end)
self._view:GetChild('btn_cancel_pws').onClick:Set(function()
self._view:GetController('choose').selectedIndex = 1
end)
self:initInfo()
end
function M:initInfo()
local lobbyCtr1 = ControllerManager.GetController(LoddyController)
lobbyCtr1:GetAccInfo({}, function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode)
return
end
self._resData = {}
for i = 1, #res.Data.accounts do
if res.Data.accounts[i].id ~= DataManager.SelfUser.account_id then
table.insert(self._resData, res.Data.accounts[i])
end
end
if #self._resData > 0 then
self._list_acc.numItems = #self._resData
self:Show()
end
end)
end
function M:Bind()
local tex_passwd = self._view:GetChild("tex_passwd")
local password = tex_passwd.text
if string.len(password) < 6 then
ViewUtil.ShowTips("请输入5位以上的密码")
return
end
-- local flg_xiaozimu = false
-- local flg_dazimu = false
-- local fla_shuzi = false
-- for i = 1, #password do
-- local oneChar = string.sub(password, i, i)
-- if string.byte(oneChar) >= 65 and string.byte(oneChar) <= 90 then
-- flg_dazimu = true
-- elseif string.byte(oneChar) >= 97 and string.byte(oneChar) <= 122 then
-- flg_xiaozimu = true
-- elseif string.byte(oneChar) >= 48 and string.byte(oneChar) <= 57 then
-- fla_shuzi = true
-- end
-- end
-- if not (flg_xiaozimu or flg_dazimu) then
-- ViewUtil.ShowTips("密码必须包含字母")
-- return
-- end
local _data = {}
ViewUtil.ShowModalWait(self._root_view, "正在提交...")
local loddyctr = ControllerManager.GetController(LoddyController)
_data.password = password
_data.tagId = tonumber(self._view:GetChild("tex_phone").text)
loddyctr:SetAccInfo(_data, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "密码错误")
return
end
PlayerPrefs.DeleteKey('session_id')
PlayerPrefs.Save()
RestartGame()
self:Destroy()
end)
end
function M:Destroy()
BaseWindow.Destroy(self)
end
return M