|
|
- MarketFocusView = MarketFocusView or BaseClass(BaseItem)
- local MarketFocusView = MarketFocusView
-
- function MarketFocusView:__init()
- self.base_file = "market"
- self.layout_file = "MarketFocusView"
- self.model = MarketModel:GetInstance()
- self.sort_id = 1
- self.sort_order = 0--0:表示顺序(从大到小) 1:表示倒序(从小到大)
- self.sort_data = {
- 1,1,1
- }
- self.tab_item_list = {}
- self.cur_hor_tab_index = 1 --水平tab选择
- self:Load()
- end
-
- function MarketFocusView:Load_callback()
- self.nodes = {
- "title/time_con/time_arrow","title/auction_con:obj","right_scroll","title/auction_con/auction_arrow",
- "right_scroll/Viewport/right_con","title/price_con:obj","title/price_con/price_arrow","tab_con","title/time_con:obj",
- "empty:obj","empty/empty_text:tmp","empty/girl:raw","empty/empty_talk_image:raw",
- }
- self:GetChildren(self.nodes)
- lua_resM:setOutsideRawImage(self, self.girl_raw, GameResPath.GetRoleBg("team_empty_bg_267_589"), false)
- lua_resM:setOutsideRawImage(self, self.empty_talk_image_raw, GameResPath.GetViewBigBg("com_empty_bg1"), false)
- self:AddEvents()
- self:SetHorTabCon()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function MarketFocusView:AddEvents( )
- function on_click_sort( target )
- if target == self.auction_con_obj then--拍卖排序
- self:SelectSort(2)
- elseif target == self.price_con_obj then--一口价排序
- self:SelectSort(3)
- elseif target == self.time_con_obj then--时间排序
- self:SelectSort(1)
- end
- end
- AddClickEvent(self.auction_con_obj, on_click_sort)
- AddClickEvent(self.price_con_obj, on_click_sort)
- AddClickEvent(self.time_con_obj, on_click_sort)
- local function on_update_goods( )
- self:UpdateView()
- end
- self.on_update_goods_id = self.model:BindOne("market_focus_list", on_update_goods)
- end
-
- function MarketFocusView:SelectSort( index )
- self.sort_id = index
- self.sort_order = self.sort_data[index] == 1 and 1 or 0
- self.sort_data[index] = self.sort_data[index] == 1 and 0 or 1
- if index == 1 then
- self.time_arrow.localRotation = self.sort_data[index] == 1 and Quaternion.Euler(0,0,0) or Quaternion.Euler(0,0,180)
- elseif index == 2 then
- self.auction_arrow.localRotation = self.sort_data[index] == 1 and Quaternion.Euler(0,0,0) or Quaternion.Euler(0,0,180)
- elseif index == 3 then
- self.price_arrow.localRotation = self.sort_data[index] == 1 and Quaternion.Euler(0,0,0) or Quaternion.Euler(0,0,180)
- end
- self:UpdateView()
- end
-
- function MarketFocusView:UpdateView( )
- local data = DeepCopy(self.model:GetMarketFocusList(self.cur_hor_tab_index))
- if self.sort_id == 1 then--时间排序
- if self.sort_data[self.sort_id] == 1 then--从小到大
- local sort_func = function ( a, b )
- return a.end_time < b.end_time
- end
- table.sort(data, sort_func)
- else
- local sort_func = function ( a, b )
- return a.end_time > b.end_time
- end
- table.sort(data, sort_func)
- end
- elseif self.sort_id == 2 then--一口价排序
- if self.sort_data[self.sort_id] == 1 then--从小到大
- local sort_func = function ( a, b )
- return a.price < b.price
- end
- table.sort(data, sort_func)
- else
- local sort_func = function ( a, b )
- return a.price > b.price
- end
- table.sort(data, sort_func)
- end
- elseif self.sort_id == 3 then--竞拍价排序
- if self.sort_data[self.sort_id] == 1 then--从小到大
- local sort_func = function ( a, b )
- return a.get_price < b.get_price
- end
- table.sort(data, sort_func)
- else
- local sort_func = function ( a, b )
- return a.get_price > b.get_price
- end
- table.sort(data, sort_func)
- end
- end
- if TableSize(data) == 0 then
- self.empty_obj:SetActive(true)
- if self.cur_hor_tab_index == 1 then--全部
- self.empty_text_tmp.text = "您还没有竞拍或关注哦~"
- elseif self.cur_hor_tab_index == 2 then--竞拍
- self.empty_text_tmp.text = "您还没有竞拍哦~"
- elseif self.cur_hor_tab_index == 3 then--关注
- self.empty_text_tmp.text = "您还没有关注的商品哦~"
- end
- else
- self.empty_obj:SetActive(false)
- end
- if not self.item_list_com then
- self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
- end
- if self.item_list_com then
- self.item_list_com:Reset()
- end
- local info = {
- data_list = data,
- item_con = self.right_con,
- item_class = MarketFocusItem,
- start_y = 0, start_x = 22,
- item_width = 1060,
- item_height = 100,
- space_y = 0,
- scroll_view = self.right_scroll.transform,
- create_frequency = 0.01,
- create_num_per_time = 3,
- is_scroll_back_on_update = false,
- on_update_item = function(item, i, v)
- item:SetData(i, v)
- end,
- }
- self.item_list_com:UpdateItems(info)
- end
-
- function MarketFocusView:SetData( data )
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function MarketFocusView:SetHorTabCon( )
- for i,v in ipairs(self.tab_item_list) do
- v:SetVisible(false)
- end
- local data = {"全部", "正在竞价", "已关注"}
- local function click_func( index )
- self:SwitchHorTab(index)
- end
- local count = 0
- for i,v in ipairs(data) do
- local item = self.tab_item_list[count+1]
- if not item then
- item = MarketHorTabItem.New(self.tab_con)
- item:SetPosition(count * 124, 0)
- self.tab_item_list[count+1] = item
- end
- item:SetClickFunc(click_func)
- count = count + 1
- item:SetData(count, v)
- item:SetVisible(true)
- end
- self:SwitchHorTab(self.cur_hor_tab_index)
- end
-
- function MarketFocusView:SwitchHorTab( index )
- for i,v in pairs(self.tab_item_list) do
- v:SetSelect(i==index)
- end
- self.cur_hor_tab_index = index--当前选的tab
- self:UpdateView()
- end
-
- function MarketFocusView:__delete( )
- if self.on_update_goods_id then
- self.model:UnBind(self.on_update_goods_id)
- self.on_update_goods_id = nil
- end
-
- for _, v in pairs(self.tab_item_list) do
- v:DeleteMe()
- v = nil
- end
- self.tab_item_list = {}
- end
|