---@class KLQuestionnairePanel:UIKmlLuaPanelBase
---@field view KLQuestionnairePanelView
local KLQuestionnairePanel = class(UIKmlLuaPanelBase)
local this =KLQuestionnairePanel
---创建时调用一次
function this:Init()
SL.HideMainPanel()
self.isClose = false
self.is_man = -1
self.code_num = nil
self.is_jieshu = -1
self.is_like = -1
self.phone_num = nil
self.one_1 = false
self.one_2 = false
self.one_3 = false
self.one_4 = false
self.one_5 = false
self.one_6 = false
end
---创建或者刷新界面数据时调用
function this:Refresh()
-- SL:SendLuaNetMsg(LuaMessageIdToSever.GET_DAILY_ACTIVITY_INFO)
end
---注册UI事件和服务器消息
function this:RegistEvents()
SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_BIND_PHONE,self.RES_BIND_PHONE,self)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GENERATE_VERIFICATION_CODE,self.RES_GENERATE_VERIFICATION_CODE,self)
GUI:AddOnClickEvent(self.view.btn_close,self,self.CloseOnclick)
GUI:AddOnClickEvent(self.view.btnStart,self,self.Bind)
GUI:Input_SetOnValueChange(self.view.pnone_number_input, self, self.TextChange)
GUI:Input_SetOnValueChange(self.view.year_input, self, self.CodeChange)
GUI:SetToggleOnValueChange(self.view.nanBtn, self, self.ManOnClick)
GUI:SetToggleOnValueChange(self.view.nvBtn, self, self.WomanOnClick)
GUI:SetToggleOnValueChange(self.view.jiechu1Btn, self, self.JieChu1OnClick)
GUI:SetToggleOnValueChange(self.view.jiechu2Btn, self, self.JieChu2OnClick)
GUI:SetToggleOnValueChange(self.view.xihuan1Btn, self, self.Like1OnClick)
GUI:SetToggleOnValueChange(self.view.xihuan2Btn, self, self.Like2OnClick)
end
function this:CloseOnclick()
GUI:UIPanel_Close("dev/outui/DailyRaffle/Panel/KLQuestionnaire/KLQuestionnairePanel")
end
function this:Close()
self.isClose = true
end
function this:TextChange(a, b,eventData)
if self.isClose then
return
end
local messageStr = eventData[1]
if string.isNullOrEmpty(messageStr) then
self.phone_num = messageStr
else
local is_have = self:contains_non_digit(messageStr)
if is_have then
messageStr = self:remove_non_digits(messageStr)
GUI:Text_setString(self.view.pnone_number_input,messageStr)
end
self.phone_num = messageStr
end
--SL:LogError("手机号输入:"..self.phone_num)
end
function this:contains_non_digit(str)
return string.match(str, "%D") ~= nil
end
-- 去除字符串中的非数字字符
function this:remove_non_digits(str)
return string.gsub(str, "%D", "")
end
function this:CodeChange(a, b,eventData)
if self.isClose then
return
end
local messageStr = eventData[1]
local is_have = self:contains_non_digit(messageStr)
if is_have then
messageStr = self:remove_non_digits(messageStr)
GUI:Text_setString(self.view.year_input,messageStr)
end
self.code_num = messageStr
end
function this:SendCode()
if not self:CheckPhoneNumber() then
return
end
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GENERATE_VERIFICATION_CODE,tonumber(self.phone_num))
end
function this:CheckPhoneNumber()
if string.isNullOrEmpty(self.phone_num) then
SL:TipMessage( SL:GetConfig("cfg_string",465).text, 1, NoticeType.NoticeMid )
return false
else
if #self.phone_num ~= 11 then
SL:TipMessage( SL:GetConfig("cfg_string",467).text, 1, NoticeType.NoticeMid )
return false
end
local pattern = "^1[3-9]%d%d%d%d%d%d%d%d%d$"
local is_phone = string.match(self.phone_num, pattern) ~= nil
if not is_phone then
SL:TipMessage( SL:GetConfig("cfg_string",467).text, 1, NoticeType.NoticeMid )
return false
end
end
return true
end
function this:CheckCode()
if string.isNullOrEmpty(self.code_num) then
SL:TipMessage( SL:GetConfig("cfg_string",466).text, 1, NoticeType.NoticeMid )
return false
else
if #self.code_num ~= 4 then
SL:TipMessage( SL:GetConfig("cfg_string",466).text, 1, NoticeType.NoticeMid )
return false
else
local num = tonumber(self.code_num)
local ServerTime = Time.GetServerTime()
local seconds = math.floor(ServerTime / 1000)
local year = os.date("*t", seconds).year
if num < 1900 or num > year then
SL:TipMessage( SL:GetConfig("cfg_string",466).text, 1, NoticeType.NoticeMid )
return false
end
end
end
return true
end
function this:Bind()
if self.is_man < 0 or (not self.one_1 and not self.one_2) then
SL:TipMessage( SL:GetConfig("cfg_string",474).text, 1, NoticeType.NoticeMid )
return
end
if not self:CheckCode() then
return
end
if self.is_jieshu < 0 or (not self.one_3 and not self.one_4) then
SL:TipMessage( SL:GetConfig("cfg_string",475).text, 1, NoticeType.NoticeMid )
return
end
if self.is_like < 0 or (not self.one_5 and not self.one_6) then
SL:TipMessage( SL:GetConfig("cfg_string",476).text, 1, NoticeType.NoticeMid )
return
end
if not self:CheckPhoneNumber() then
return
end
local tab = {is_man = self.is_man,year=self.code_num,is_jieshu=self.is_jieshu,is_like=self.is_like,phone=self.phone_num}
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_BIND_PHONE,tab)
end
function this:RES_BIND_PHONE(id, message)
if message then
--SL:TipMessage({ "绑定成功", 1, NoticeType.NoticeMid })
if self.args.parent then
self.args.parent:Refresh()
end
self:CloseOnclick()
end
end
function this:RES_GENERATE_VERIFICATION_CODE()
if message then
SL:TipMessage( "发送成功", 1, NoticeType.NoticeMid )
end
end
function this:ManOnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_man = 1
GUI:Toggle_setIsOn(self.view.nvBtn,false)
self.one_1 = true
else
self.one_1 = false
end
end
function this:WomanOnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_man = 0
GUI:Toggle_setIsOn(self.view.nanBtn,false)
self.one_2 = true
else
self.one_2 = false
end
end
function this:JieChu1OnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_jieshu = 1
GUI:Toggle_setIsOn(self.view.jiechu2Btn,false)
self.one_3 = true
else
self.one_3 = false
end
end
function this:JieChu2OnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_jieshu = 0
GUI:Toggle_setIsOn(self.view.jiechu1Btn,false)
self.one_4 = true
else
self.one_4 = false
end
end
function this:Like1OnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_like = 1
GUI:Toggle_setIsOn(self.view.xihuan2Btn,false)
self.one_5 = true
else
self.one_5 = false
end
end
function this:Like2OnClick(kmlCtrl, eventData, args)
if args[1] then
self.is_like = 0
GUI:Toggle_setIsOn(self.view.xihuan1Btn,false)
self.one_6 = true
else
self.one_6 = false
end
end
return this