|
|
- CalculatorView = CalculatorView or BaseClass(BaseView)
- function CalculatorView:__init()
- self.base_file = "common"
- self.layout_file = "CalculatorView"
- self.layer_name = "Top"
- self.destroy_imm = true
- self.use_background = true
- self.background_alpha = 0
- self.close_mode = CloseMode.CloseDestroy
- self.click_bg_toClose = true
- self.append_to_ctl_queue = false
- self.hide_maincancas = false
- self.is_set_zdepth = true
-
- self.mainVo = RoleManager.Instance.mainRoleInfo
-
- self.key_list = {}
- self.final_num = 0 --输入的数字
- self.mult_num = 10 --倍数
-
- self.call_back = nil
- self.max_count = 0
-
-
- self.localPos = Vector3(701, 347,0)
- self.input_number_list = {}
-
- self.load_callback = function()
- self:LoadSuccess()
- self:InitEvent()
- end
-
- self.open_callback = function()
- self:SetWinPosition()
- end
-
- self.destroy_callback = function()
- self:Remove()
- end
- end
-
- --type 1 通用 2 兑换 3战力 4等级 5发红包
- function CalculatorView:Open(max_count,call_back,type, min_price)
- self.max_count = max_count
- self.call_back = call_back
- self.type = type or 1
- self.min_price = min_price
- BaseView.Open(self)
- end
-
- function CalculatorView:Close()
- -- if self.call_back then
- -- self.call_back(self.final_num, true)
- -- end
- if not self.click_sure_btn then
- self:InputNumKey(self.final_num, true)
- end
-
- self.call_back = nil
- self.max_count = 0
- self.final_num = 0
- self.localPos = nil
- self.input_number_list = {}
- BaseView.Close(self)
- end
-
- function CalculatorView:Remove()
- self.key_list = {}
- end
-
- function CalculatorView:LoadSuccess()
- self.container = self:GetChild("container")
-
- for i=1,12 do
- table.insert(self.key_list,self:GetChild("container/keyPanel/key_"..i).gameObject)
- end
-
- self.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
- end
-
- function CalculatorView:InitEvent()
- local function onBtnClickHandler(target)
- if target == self.key_list[1] then
- self:InputNumKey(1)
- elseif target == self.key_list[2] then
- self:InputNumKey(2)
- elseif target == self.key_list[3] then
- self:InputNumKey(3)
- elseif target == self.key_list[4] then
- self:InputNumKey(4)
- elseif target == self.key_list[5] then
- self:InputNumKey(5)
- elseif target == self.key_list[6] then
- self:InputNumKey(6)
- elseif target == self.key_list[7] then
- self:InputNumKey(7)
- elseif target == self.key_list[8] then
- self:InputNumKey(8)
- elseif target == self.key_list[9] then
- self:InputNumKey(9)
- elseif target == self.key_list[10] then
- self:InputNumKey(0)
- elseif target == self.key_list[11] then
- self:BackKey()
- elseif target == self.key_list[12] then
- -- if self.call_back and self.type ~= 7 then
- -- self.call_back(self.final_num, true)
- -- end
- self.click_sure_btn = true
- self:InputNumKey(self.final_num, true)
- self:Close()
- end
- end
-
- for i=1,12 do
- AddClickEvent(self.key_list[i],onBtnClickHandler)
- end
-
- -- self.transform.localPosition = self.localPos
- end
-
- -- is_check_full 是否立马判断是否足够数量
- function CalculatorView:InputNumKey(num, is_check_full)
- local number = self.final_num * self.mult_num + num
- if is_check_full then
- number = self.final_num
- end
- -- local number = 0
-
- -- if self.final_num == 1 and num ~= 1 then
- -- number = num
- -- else
- -- number = self.final_num * self.mult_num + num
- -- end
-
- if number <= 0 then
- if self.type == 7 then
- Message.show("选择数量为0")
- return
- end
- --Message.show("选择数量为0个")
- return
- end
-
- -- if number > self.max_count then
- -- if self.type == 1 then
- -- Message.show("本次最多购买"..self.max_count.."个")
- -- elseif self.type == 2 then
- -- Message.show("本次最多兑换"..self.max_count.."个")
- -- elseif self.type == 3 then
- -- Message.show("战力最高设置为"..self.max_count)
- -- elseif self.type == 4 then
- -- Message.show("等级最高设置为"..self.max_count.."级")
- -- elseif self.type == 5 then
- -- Message.show("本次最多发"..self.max_count.."个")
- -- elseif self.type == 6 then
- -- Message.show("本次最多可上架"..self.max_count.."个")
- -- elseif self.type == 7 then
- -- Message.show("价格不能超过"..self.max_count)
- -- elseif self.type == 8 then
- -- Message.show("最多加价"..self.max_count)
- -- end
- -- self:AutoSetMaxNum(self.max_count)
- -- return
- -- end
-
-
- -- table.insert(self.input_number_list,num)
- self.final_num = number
-
- -- self.call_back(self.final_num)
-
- if is_check_full then
- if number > self.max_count then
- if self.type == 1 then
- Message.show("本次最多购买"..self.max_count.."个")
- elseif self.type == 2 then
- Message.show("本次最多兑换"..self.max_count.."个")
- elseif self.type == 3 then
- Message.show("战力最高设置为"..self.max_count)
- elseif self.type == 4 then
- Message.show("等级最高设置为"..self.max_count.."级")
- elseif self.type == 5 then
- Message.show("本次最多发"..self.max_count.."个")
- elseif self.type == 6 then
- Message.show("本次最多可上架"..self.max_count.."个")
- elseif self.type == 7 then
- Message.show("价格不能超过"..self.max_count)
- elseif self.type == 8 then
- Message.show("最多加价"..self.max_count)
- elseif self.type == 9 then
- Message.show("不能大于"..self.max_count)
- end
- self:AutoSetMaxNum(self.max_count, is_check_full)
- return
- elseif self.min_price and number < self.min_price then
- if self.type == 1 then
-
- elseif self.type == 2 then
-
- elseif self.type == 3 then
-
- elseif self.type == 4 then
-
- elseif self.type == 5 then
-
- elseif self.type == 6 then
-
- elseif self.type == 7 then
- Message.show("价格不能少于"..self.min_price)
- end
- self:AutoSetMinNum(self.min_price, is_check_full)
- return
- end
- else
- table.insert(self.input_number_list,num)
- self.final_num = number
-
- self.call_back(self.final_num)
- end
- -- self.final_num = number
-
- end
-
- function CalculatorView:BackKey()
-
- --PrintTable(self.input_number_list)
- local lastNum = self.input_number_list[#self.input_number_list]
-
- if lastNum ~= nil then
- self.final_num = (self.final_num - lastNum) / self.mult_num
- table.remove(self.input_number_list,#self.input_number_list)
-
- if self.final_num == 0 then
- self.final_num = 1
- end
- else
- self.final_num = 0
- --Message.show("最少购买1个")
- end
-
-
- self.call_back(self.final_num)
-
- end
-
- function CalculatorView:AutoSetMaxNum(num, is_check_full)
- self.input_number_list = {}
- local max_mult = 10000000
- local max_num = num
- local start_insert = false
- for i=1,8 do
- local input_num = max_num/max_mult
- --print("===============input_num:"..input_num)
- if input_num >= 1 or input_num == 0 or start_insert then
- input_num = math.floor(input_num)
- max_num = max_num - (input_num*max_mult)
- table.insert(self.input_number_list,input_num)
- start_insert = true
- end
-
- max_mult = max_mult/10
- end
-
- -- PrintTable(self.input_number_list)
- -- print(num)
-
- self.final_num = num
- print("tanar: [CalculatorView 269]=> num: ",num)
-
- self.call_back(self.final_num, is_check_full)
-
- end
-
- function CalculatorView:AutoSetMinNum(num, is_check_full)
- self.input_number_list = {}
- local min_mult = 10000000
- local min_num = num
- local start_insert = false
-
- self.final_num = num
- self.call_back(self.final_num, is_check_full)
- end
-
- function CalculatorView:SetWinPosition()
- local con_width = self.container.transform.sizeDelta.x
- local con_height = self.container.transform.sizeDelta.y
-
- local x, y = ScreenToViewportPoint(self.localPos.x, self.localPos.y)
- x = x - 180
- y = y + 255
- x = x < 40 and 40 or x
- if x + con_width > ScreenWidth then
- x = ScreenWidth - con_width - 25
- end
- if y > ScreenHeight then
- y = y - con_height - 80
- end
-
- self.container.transform.anchoredPosition = Vector3(x, y, 0)
- end
|