--实名认证窗口 local RealAddressView = {} local M = RealAddressView function RealAddressView.new(type, callback) setmetatable(M, { __index = BaseWindow }) local self = setmetatable({}, { __index = M }) self.class = "RealAddressView" self._type = type self._callback = callback self._close_destroy = true self:init("ui://Lobby/win_real_address") return self end function M:init(url) BaseWindow.init(self, url) local view = self._view local btn_real = view:GetChild("btn_real") btn_real.onClick:Set(function() self:real_action() end) local btn_address = view:GetChild("btn_address") btn_address.onClick:Set(function() self:address_action() end) self.ctr_update = view:GetController("update") local ctr_nav = view:GetController("nav") ctr_nav.onChanged:Set(function() if ctr_nav.selectedIndex == 0 then self:fill_real() else local user = DataManager.SelfUser if user.address then self._view:GetChild("tex_address").text = user.address end end end) if self._type == 0 then self:fill_real() end ctr_nav.selectedIndex = self._type end function M:fill_real() local user = DataManager.SelfUser if user.real_info then self.ctr_update.selectedIndex = 1 self._view:GetChild("tex_name1").text = "姓名:" .. user.real_info.name self._view:GetChild("tex_identity1").text = "身份证号:" .. ViewUtil.identity_hide(user.real_info.identity) else self.ctr_update.selectedIndex = 0 end end function M:SetCallBack(callback) self._CB = callback end function M:real_action() local check, str = self:CheckInputValidity() if not check then ViewUtil.ShowTips(str) return end ViewUtil.ShowModalWait2(self._root_view, "正在提交认证...") local loddyctr = ControllerManager.GetController(LoddyController) local _data = {} _data.type = 1 local real_info = {} real_info.name = self._view:GetChild("tex_name").text real_info.identity = self._view:GetChild("tex_identity").text _data.real_info = real_info loddyctr:UpdateUserInfo(_data, function(res) ViewUtil.CloseModalWait2() if (res.ReturnCode == 0) then DataManager.SelfUser.real_info = real_info if self._callback then self._callback() end else ViewUtil.ErrorTip(res.ReturnCode, "认证失败,请重试") end self:Close() end) end function M:CheckInputValidity() local name = self._view:GetChild("tex_name").text local id = self._view:GetChild("tex_identity").text if name then local l = string.len(name) if l == 0 then return false, "请输入名字" end -- 中文长度是3 if l == 3 then return false, "名字过短" end for i = 1, l do local c = string.byte(string.sub(name, i, i)) --if not ((65 <= c and c <= 90) or (97 <= c and c <= 122) or c > 127) then if not (c > 127) then return false, "名字中不能包含英文、数字或特殊符号" end end end if id then local l = string.len(id) if l ~= 18 then return false, "请输入18位身份证号码" end if not (tonumber(id) or string.sub(id, 18, 18) == "X") then return false, "请输入正确的身份证号码" end end return true end function M:address_action() local tex_address = self._view:GetChild("tex_address").text if string.len(tex_address) <= 0 then ViewUtil.ShowTips("请输入详细地址") return end ViewUtil.ShowModalWait2(self._root_view, "正在提交...") local loddyctr = ControllerManager.GetController(LoddyController) local _data = {} _data.type = 2 _data.address = tex_address loddyctr:UpdateUserInfo(_data, function(res) ViewUtil.CloseModalWait2() if (res.ReturnCode == 0) then DataManager.SelfUser.address = _data.address if self._callback then self._callback() end else ViewUtil.ErrorTip(res.ReturnCode, "提示失败") end self:Close() end) end return M