|
|
- --自选礼包
- GiftOptionalView = GiftOptionalView or BaseClass(BaseView)
-
- function GiftOptionalView:__init()
- self.base_file = "gift"
- self.layout_file = "GiftOptionalView"
- self.layer_name = "UI"
- self.destroy_imm = true
- self.is_set_zdepth = true
- self.use_background = true
- self.close_mode = CloseMode.CloseDestroy
- self.model = GiftModel:getInstance()
- -- self.append_to_ctl_queue = true --是否要添加进界面堆栈
- self:AddPreLoadList("gift", {"GiftOptionalItem"})
- self.background_alpha = 0.85
- self.reward_item_list = {}
- self.now_choice_list = {}
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:addEvents()
- end
-
- self.open_callback = function ()
- self:setData()
- end
-
- self.close_callback = function ()
-
- end
-
- self.destroy_callback = function ()
- self:DestroySuccess()
- end
- end
-
- function GiftOptionalView:Open(goods_vo)
- self.goods_vo = goods_vo
- self.max_num = goods_vo.goods_num
- BaseView.Open(self)
- end
-
- function GiftOptionalView:DestroySuccess()
- if self.choice_event then
- self.model:UnBind(self.choice_event)
- self.choice_event = nil
- end
- for k,v in pairs(self.reward_item_list) do
- v:DeleteMe()
- end
- self.reward_item_list = {}
-
- -- if self.tabWindowComponent then
- -- self.tabWindowComponent:DeleteMe()
- -- self.tabWindowComponent = nil
- -- end
- end
- function GiftOptionalView:LoadSuccess()
- local nodes = {
- -- "Window:raw","Window/windowCloseBtn:obj",
- "tips_text:tmp",--"Window/windowTitleCon/windowTitleText:txt",
- "sure_btn:obj", "ScrollView/Viewport/Content",
- "bg:raw", "btn_close:obj",
- }
- self:GetChildren(nodes)
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg('gift_optiona_bg'), false)
- -- local closeWin_callback = function()
- -- self:Close()
- -- end
- -- self.tabWindowComponent = UITabWindow.New(self.transform,{},nil,closeWin_callback,self.background_wnd,self.transform, UITabWindow.SizeSmallNoTab, false,nil,true)
- -- self.tabWindowComponent:SetBackgroundRes("gift_optiona_bg_945_536")
- -- self.tabWindowComponent:SetTitleText("自选礼包")
- -- self.tabWindowComponent:ChangeShowFlag("Empower", 270013)
-
- -- lua_resM:setOutsideRawImage(self, self.Window_raw, GameResPath.GetViewBigBg("gift_optiona_bg_945_536"))
-
- end
-
- function GiftOptionalView:addEvents()
- local function click_func(target)
- if target == self.btn_close_obj then
- self:Close()
- elseif target == self.sure_btn_obj then
- local num = self:GetMaxNum()
- if num >= self.max_num then
- Message.show("您还没选择领取的物品哦~")
- else
- local goods_id = self.goods_vo.goods_id
- local type_id = self.goods_vo.type_id
- -- local num = GoodsModel:getInstance():GetTypeGoodsNum(type_id)
- local chose_num = 0
- local list = {}
- local sum_chosen_num = 0
- for k,v in pairs(self.now_choice_list) do
- if v > 0 then
- sum_chosen_num = sum_chosen_num + v
- local temp = {seqno = self.optional_info.goods_list[k].id, seqnum = v}
- table.insert(list, temp)
- end
- end
- if sum_chosen_num % self:GetOptionalNum(type_id) ~= 0 then
- Message.show("有剩余选择次数未使用")
- return
- end
- chose_num = sum_chosen_num/self:GetOptionalNum(type_id)
- self.model:Fire(GiftModel.PROTO_CCMD_EVENT, 15086, goods_id, type_id, chose_num, list)
- end
- end
- end
- AddClickEvent(self.sure_btn_obj, click_func)
- AddClickEvent(self.btn_close_obj, click_func)
-
- local function choice_func(index,count)
- self:handleOneChoice(index,count)
- end
- self.choice_event = self.model:Bind(GiftModel.CHOICE_ONE_ITEM, choice_func)
- end
-
- function GiftOptionalView:GetOptionalNum( type_id )
-
- for k,v in pairs(Config.Optionalgift) do
- if v.goods_id == type_id then
- return v.optional_num
- end
- end
- return 0
- end
- function GiftOptionalView:setData()
- local goods_base = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
- local str_color = WordManager.GetGoodsColor(goods_base.color)
- local kind, list = self.model:getOptionalConfig(self.goods_vo.type_id)
-
- local optional_num = self:GetOptionalNum(self.goods_vo.type_id)
- self.max_num = self.goods_vo.goods_num * optional_num --GoodsModel:getInstance():GetTypeGoodsNum(self.goods_vo.type_id)
- self.optional_info = list
- local color = tonumber(self.max_num) == 0 and ColorUtil.RED_DARK or ColorUtil.GREEN_DARK
- self.tips_text_tmp.text = string.format("剩余可选数量:%s个", HtmlColorTxt( self.max_num, color))
- function get_func( )
- return self:GetMaxNum()
- end
- for i,v in ipairs(self.optional_info.goods_list) do
- local item = self.reward_item_list[i]
- if not item then
- item = GiftOptionalItem.New(self.Content, nil, self.layer_name)
- -- item:SetPosition(110*(i-1), 0)
- item.GetMaxNum = get_func
- self.reward_item_list[i] = item
- end
- item:setData(i, v)
- end
- end
-
- function GiftOptionalView:GetMaxNum( )
- local num = 0
- for k,v in pairs(self.now_choice_list) do
- num = num + v
- end
- if self.max_num >= num then
- return self.max_num - num
- else
- return 0
- end
- end
-
- function GiftOptionalView:handleOneChoice(index,count)
- self.now_choice_list[index] = count
- local num = 0
- for k,v in pairs(self.now_choice_list) do
- num = num + v
- end
- local rest_num = self.max_num - num
- local color = tonumber(rest_num) == 0 and ColorUtil.RED_DARK or ColorUtil.GREEN_DARK
- self.tips_text_tmp.text = string.format("剩余可选数量:%s个", HtmlColorTxt( rest_num, color))
- end
-
- function GiftOptionalView:checkBoolEnough()
- local now_count = 0
- for k,v in pairs(self.now_choice_list) do
- now_count = now_count + 1
- end
- if now_count == self.optional_info.can_count then
- return 1
- elseif now_count > self.optional_info.can_count then
- return 2
- else
- return 3
- end
- end
|