--[[@------------------------------------------------------------------
|
|
@description:市场-上架物品界面
|
|
@author:hwr
|
|
----------------------------------------------------------------------]]
|
|
MarketSalesHallView = MarketSalesHallView or BaseClass(BaseItem)
|
|
local MarketSalesHallView = MarketSalesHallView
|
|
local EquipModel = EquipModel
|
|
function MarketSalesHallView:__init()
|
|
self.base_file = "market"
|
|
self.layout_file = "MarketSalesHallView"
|
|
|
|
self.model = MarketModel:getInstance()
|
|
self.equip_model = EquipModel:getInstance()
|
|
self.mainRoleVo = RoleManager.Instance.mainRoleInfo
|
|
self.item_list = {}
|
|
self.bag_item_list = {}
|
|
self.event_list = {}
|
|
self.shelves_bag_list = {}
|
|
self.column_num = 5 --一行多少个图标
|
|
self.show_count = 40
|
|
self:Load()
|
|
end
|
|
|
|
function MarketSalesHallView:__delete()
|
|
for _, v in pairs(self.event_list) do
|
|
self.model:UnBind(v)
|
|
v = nil
|
|
end
|
|
self.event_list = {}
|
|
if self.event_bag_change_id then
|
|
GoodsModel:getInstance():UnBind(self.event_bag_change_id)
|
|
self.event_bag_change_id = nil
|
|
end
|
|
for _, v in pairs(self.item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.item_list = {}
|
|
for _, v in pairs(self.bag_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.bag_item_list = {}
|
|
self.mainRoleVo = nil
|
|
end
|
|
|
|
function MarketSalesHallView:Load_callback()
|
|
self.nodes = {
|
|
"bag_scroll","bag_scroll/Viewport/bag_con","sales_scroll","empty/empty_talk_image:raw",
|
|
"sales_scroll/Viewport/sales_con","bg:img","empty/empty_text:tmp","empty/girl:raw","empty:obj",
|
|
"all_up_btn:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
lua_resM:setOutsideRawImage(self, self.empty_talk_image_raw, GameResPath.GetViewBigBg("com_empty_bg1"), false)
|
|
lua_resM:setOutsideRawImage(self, self.girl_raw, GameResPath.GetRoleBg("team_empty_bg_267_589"), false)
|
|
self:InitEvent()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function MarketSalesHallView:InitEvent()
|
|
local onUpdatehandler = function ()
|
|
self:CreateShelvesItems()
|
|
end
|
|
self.event_list[#self.event_list +1] = self.model:BindOne("goods_shelves_list", onUpdatehandler)
|
|
self.event_list[#self.event_list +1] = self.model:BindOne("under_shelves_list", onUpdatehandler)
|
|
|
|
local function onChangeBagListHandler()
|
|
self:UpdateBagItems()
|
|
end
|
|
self.event_bag_change_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onChangeBagListHandler)
|
|
local function on_one_up( ... )
|
|
self.model:Fire(MarketModel.REQUEST_CCMD_EVENT, 15519)
|
|
end
|
|
AddClickEvent(self.all_up_btn_obj, on_one_up)
|
|
end
|
|
|
|
function MarketSalesHallView:SetData(sub_index, param_list )
|
|
self.sub_index = sub_index
|
|
self.param_list = param_list
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function MarketSalesHallView:UpdateView( )
|
|
self:CreateShelvesItems()
|
|
self:UpdateBagItems()
|
|
if self.param_list then
|
|
if self.param_list.type == GoodsModel.TYPE.EQUIP then
|
|
UIToolTipMgr:getInstance():AppendEquipTips(self.param_list.type_id, x, y,self.param_list,nil,nil,nil,"market_bag",self.param_list)
|
|
else
|
|
local data = {
|
|
market_data = self.param_list,
|
|
}
|
|
UIToolTipMgr:getInstance():AppendGoodsTips(self.param_list.type_id, x, y, nil, nil,data, true)
|
|
end
|
|
self.param_list = nil
|
|
end
|
|
end
|
|
|
|
function MarketSalesHallView:CreateShelvesItems()
|
|
for _, v in pairs(self.item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
local goods_list = self.model:GetOnShelvesList()
|
|
local function sortfunction( a,b )
|
|
return a.up_time > b.up_time
|
|
end
|
|
table.sort( goods_list, sortfunction )
|
|
if TableSize(goods_list) == 0 then
|
|
self.empty_obj:SetActive(true)
|
|
self.empty_text_tmp.text = "赶紧试试卖个东西吧~"
|
|
else
|
|
self.empty_obj:SetActive(false)
|
|
end
|
|
-- local width = MarketSalesHallItem.WIDTH
|
|
-- local height = MarketSalesHallItem.HEIGHT
|
|
local width = 605
|
|
local height = 100
|
|
for i,v in ipairs(goods_list) do
|
|
local item = self.item_list[i]
|
|
if item == nil then
|
|
item = MarketSalesHallItem.New(self.sales_con)
|
|
self.item_list[i] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetPosition(0, -height * (i - 1)-2)
|
|
item:SetData(v,i)
|
|
end
|
|
self.sales_con.sizeDelta = Vector2(width, #goods_list*height)
|
|
end
|
|
|
|
function MarketSalesHallView:UpdateBagItems()
|
|
if not self.is_loaded then
|
|
return
|
|
end
|
|
local bag_goods_list = GoodsModel:getInstance().bag_goods_list
|
|
self.shelves_bag_list = {}
|
|
for k, v in pairs(bag_goods_list) do
|
|
if self.model:IsGoodsCanUpShelves(v) then
|
|
-- 非可提升的本职业装备才可以添加进出售列表
|
|
local can_tip, flag = self.equip_model:EquipCanShowGoodsTip(v)
|
|
if not flag or flag ~= 1 then
|
|
table.insert(self.shelves_bag_list, DeepCopy(v))
|
|
end
|
|
end
|
|
end
|
|
|
|
local onSort = function (a, b)
|
|
if a.is_hot_goods ~= b.is_hot_goods then
|
|
return a.is_hot_goods
|
|
else
|
|
return a.type_id < b.type_id
|
|
end
|
|
end
|
|
table.sort(self.shelves_bag_list, onSort)
|
|
|
|
--引导数据封装
|
|
local is_help_finish = GuideModel:getInstance():IsLifelongHelpFinish(GuideModel.LIFELONG_TYPE.MARKET_SELL)
|
|
if not is_help_finish then
|
|
local my_career = RoleManager.Instance.mainRoleInfo.career
|
|
local equip_cfg
|
|
for i,v in ipairs(self.shelves_bag_list) do
|
|
v.is_first_other_career_equip = false
|
|
equip_cfg = self.equip_model:GetEquipmentCfg(v.type_id)
|
|
if equip_cfg then
|
|
local is_my_career = false
|
|
for i2,v2 in pairs(equip_cfg.career) do
|
|
if v2 == my_career then
|
|
is_my_career = true
|
|
break
|
|
end
|
|
end
|
|
if not is_my_career then
|
|
v.is_first_other_career_equip = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
for i = #self.shelves_bag_list + 1, 100 do
|
|
self.shelves_bag_list[i] = {type_id = 0, goods_num = 0,index = i}
|
|
end
|
|
|
|
if not self.item_list_com then
|
|
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
local info = {
|
|
data_list = self.shelves_bag_list,
|
|
item_con = self.bag_con,
|
|
item_class = MarketBagItem,
|
|
start_y = -2, start_x = 2,
|
|
item_width = 78,
|
|
item_height = 78,
|
|
show_col = 5,
|
|
space_x = 17,
|
|
space_y = 12,
|
|
scroll_view = self.bag_scroll.transform,
|
|
create_frequency = 0.01,
|
|
is_scroll_back_on_update = false,
|
|
on_update_item = function(item, i, v)
|
|
self:OnInitializeItem(item,i,v)
|
|
end,
|
|
}
|
|
self.item_list_com:UpdateItems(info)
|
|
end
|
|
|
|
function MarketSalesHallView:OnInitializeItem(item,realIndex,data)
|
|
if item and realIndex > 0 and realIndex <= #self.shelves_bag_list then
|
|
item:SetData(self.shelves_bag_list[realIndex])
|
|
|
|
end
|
|
end
|