230 lines
7.1 KiB
Plaintext
230 lines
7.1 KiB
Plaintext
autoImport("WrapCellHelper")
|
|
autoImport("ServantRecommendCell");
|
|
autoImport("ServantRecommendToggleCell");
|
|
-- autoImport("PetWorkSpaceEmoji")
|
|
|
|
ServantRecommendView = class("ServantRecommendView",SubView)
|
|
|
|
local Prefab_Path = ResourcePathHelper.UIView("ServantRecommendView");
|
|
local Recommend_TYPE = SceneUser2_pb.ESERVANT_SERVICE_RECOMMEND
|
|
-- 女僕今日推薦標籤頁分類
|
|
local pageTypeCfg = GameConfig.Servant and GameConfig.Servant.ServantRecommendPageType
|
|
local resID = ResourcePathHelper.UICell("ServantRecommendToggleCell")
|
|
|
|
local actionName = {"functional_action","functional_action2","functional_action3"}
|
|
|
|
function ServantRecommendView:Init()
|
|
self:FindObjs()
|
|
self:AddUIEvts()
|
|
self:AddViewEvts()
|
|
self:InitView()
|
|
end
|
|
|
|
function ServantRecommendView:InitView()
|
|
self.finishedData = {}
|
|
self.unfinishedData = {}
|
|
self.chooseTypeId=0
|
|
self:ShowUIByPage(self.chooseTypeId,true);
|
|
self:_refreshChoose()
|
|
-- self:UpdateReward()
|
|
self.scrollViewPos = {}
|
|
end
|
|
|
|
function ServantRecommendView:FindObjs()
|
|
self:LoadSubView()
|
|
-- self.itemRoot = self:FindGO("ItemWrap")
|
|
-- TODO
|
|
-- self.effectTrans = self:FindGO("effectTrans")
|
|
self.scrollView = self:FindComponent("ScrollView",UIScrollView)
|
|
self.mainTable = self:FindComponent("table",UITable)
|
|
local typeBtnRoot=self:FindGO("TypeBtnRoot")
|
|
local ListTable = typeBtnRoot:GetComponent(UIGrid)
|
|
|
|
self.table = self:FindComponent("ItemWrap", UITable);
|
|
self.finishRoot = self:FindComponent("finishRoot",UITable);
|
|
self.cellCtl = UIGridListCtrl.new(self.table, ServantRecommendCell, "ServantRecommendCell")
|
|
self.finishCtl = UIGridListCtrl.new(self.finishRoot,ServantRecommendCell,"ServantRecommendCell")
|
|
self.gridListCtl = UIGridListCtrl.new(ListTable,ServantRecommendToggleCell,"ServantRecommendToggleCell")
|
|
self.gridListCtl:AddEventListener(MouseEvent.MouseClick, self._freshClickChoose, self);
|
|
local list = {}
|
|
for k,v in pairs(pageTypeCfg) do
|
|
TableUtility.ArrayPushBack(list,k)
|
|
end
|
|
self.gridListCtl:ResetDatas(list)
|
|
|
|
-- self.emojiRoot = self:FindGO("emojiRoot")
|
|
-- self:Hide(self.emojiRoot)
|
|
-- self.emoji = self:LoadPreferb_ByFullPath(path, self.emojiRoot);
|
|
-- self.emoji.transform.localPosition = Vector3.zero
|
|
-- self.spaceEmoji = PetWorkSpaceEmoji.new(self.emoji);
|
|
-- self.spaceEmoji:AddEventListener(MouseEvent.MouseClick, self.OnReward, self);
|
|
self.hideTip = self:FindComponent("HideTip",UILabel)
|
|
self.hideTipBg = self:FindGO("HideTipBg")
|
|
self:AddClickEvent(self.hideTipBg,function ( obj )
|
|
local active = self.finishRoot.gameObject.activeSelf
|
|
self.finishRoot.gameObject:SetActive(not self.finishRoot.gameObject.activeSelf)
|
|
self.hideTip.text = active and ZhString.Servant_Recommend_ShowTip or ZhString.Servant_Recommend_HideTip
|
|
self.finishRoot:Reposition()
|
|
self.table:Reposition()
|
|
self.mainTable:Reposition()
|
|
end)
|
|
end
|
|
|
|
function ServantRecommendView:_freshClickChoose(cellctl)
|
|
if(not cellctl or cellctl.typeID ==self.chooseTypeId)then
|
|
return
|
|
end
|
|
|
|
self.chooseTypeId = cellctl.typeID;
|
|
local posCfg = self.scrollViewPos[cellctl.typeID]
|
|
if(not posCfg or 0>=#posCfg)then
|
|
self.scrollView:ResetPosition()
|
|
else
|
|
self.scrollView.panel.clipOffset = posCfg[1]
|
|
self.scrollView.transform.localPosition = posCfg[2]
|
|
end
|
|
|
|
self:ShowUIByPage(self.chooseTypeId,true);
|
|
self:_refreshChoose()
|
|
end
|
|
|
|
function ServantRecommendView:LoadSubView()
|
|
local container = self:FindGO("recommendView")
|
|
local obj = self:LoadPreferb_ByFullPath(Prefab_Path, container, true);
|
|
obj.name = "ServantRecommendView";
|
|
end
|
|
|
|
function ServantRecommendView:AddUIEvts()
|
|
self.scrollView.onDragFinished = function ()
|
|
local typeID = self.chooseTypeId
|
|
if(nil==self.scrollViewPos[typeID])then
|
|
self.scrollViewPos[typeID] = {}
|
|
end
|
|
local tempArray = ReusableTable.CreateArray()
|
|
tempArray[1]=self.scrollView.panel.clipOffset
|
|
tempArray[2]=self.scrollView.transform.localPosition
|
|
self.scrollViewPos[typeID]=tempArray
|
|
ReusableTable.DestroyAndClearArray(args)
|
|
end
|
|
end
|
|
|
|
function ServantRecommendView:AddViewEvts()
|
|
self:AddListenEvt(ServiceEvent.NUserRecommendServantUserCmd, self.RecvRecommendServant);
|
|
end
|
|
|
|
function ServantRecommendView:OnEnter()
|
|
ServantRecommendView.super.OnEnter(self);
|
|
end
|
|
|
|
function ServantRecommendView:OnExit()
|
|
ServantRecommendView.super.OnExit(self);
|
|
end
|
|
|
|
-- recv
|
|
local acName
|
|
function ServantRecommendView:RecvRecommendServant(note)
|
|
local sort=false
|
|
local data = note and note.body
|
|
if(data)then
|
|
local items = data.items
|
|
if(items)then
|
|
if(1==#items and items[1].status == ServantRecommendProxy.STATUS.FINISHED)then
|
|
data = items[1]
|
|
local cfg = data.dwid and Table_Recommend[data.dwid]
|
|
if(cfg)then
|
|
acName = cfg.Favorability and actionName[1] or actionName[2]
|
|
self.container:PlayNpcAction(acName)
|
|
end
|
|
for i=1,#self.unfinishedData do
|
|
if(self.unfinishedData[i].id==data.dwid)then
|
|
local needDel = Table_Recommend[items[1].dwid].NeedDel
|
|
sort = needDel and needDel ==1
|
|
if(sort)then
|
|
self.unfinishedData[i]=nil
|
|
else
|
|
self.unfinishedData[i].status=data.status
|
|
end
|
|
break;
|
|
end
|
|
end
|
|
else
|
|
sort=true
|
|
-- if(Table_Recommend[data.dwid] and Table_Recommend[data.dwid].Favorability)then
|
|
-- self:PlayTrailEffect(data.dwid)
|
|
-- end
|
|
end
|
|
end
|
|
end
|
|
self:ShowUIByPage(self.chooseTypeId,sort);
|
|
end
|
|
|
|
function ServantRecommendView:ShowUIByPage(typeID,sort)
|
|
local classifiedData = ServantRecommendProxy.Instance:GetRecommendDataByType(typeID,sort)
|
|
self:RefreshByType(classifiedData,sort)
|
|
end
|
|
|
|
function ServantRecommendView:RefreshByType(data,sort)
|
|
if(not sort)then
|
|
self.cellCtl:ResetDatas(self.unfinishedData)
|
|
self.finishCtl:ResetDatas(self.finishedData)
|
|
else
|
|
TableUtility.ArrayClear(self.finishedData)
|
|
TableUtility.ArrayClear(self.unfinishedData)
|
|
if(data)then
|
|
for i=1,#data do
|
|
if(data[i].status ~= ServantRecommendProxy.STATUS.FINISHED)then
|
|
TableUtility.ArrayPushBack(self.unfinishedData,data[i])
|
|
else
|
|
TableUtility.ArrayPushBack(self.finishedData,data[i])
|
|
end
|
|
end
|
|
end
|
|
if(self.unfinishedData and #self.unfinishedData>0)then
|
|
self:Show(self.table.gameObject)
|
|
self.cellCtl:ResetDatas(self.unfinishedData)
|
|
else
|
|
self:Hide(self.table.gameObject)
|
|
end
|
|
|
|
if(self.finishedData and #self.finishedData>0)then
|
|
self:Show(self.hideTipBg)
|
|
self.finishCtl:ResetDatas(self.finishedData)
|
|
self:Show(self.finishRoot)
|
|
else
|
|
self:Hide(self.finishRoot)
|
|
self:Hide(self.hideTipBg)
|
|
end
|
|
end
|
|
self.finishRoot.gameObject:SetActive(false)
|
|
self.hideTip.text = ZhString.Servant_Recommend_ShowTip
|
|
self.finishRoot:Reposition()
|
|
self.table:Reposition()
|
|
self.mainTable:Reposition()
|
|
end
|
|
|
|
function ServantRecommendView:_refreshChoose()
|
|
if(self.gridListCtl)then
|
|
local childCells = self.gridListCtl:GetCells();
|
|
for i=1,#childCells do
|
|
local childCell = childCells[i];
|
|
childCell:ShowChooseImg(self.chooseTypeId)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- local tempV3 = LuaVector3.zero
|
|
-- function ServantRecommendView:PlayTrailEffect(id)
|
|
-- if(self.finishCtl)then
|
|
-- local childCells = self.cellCtl:GetCells();
|
|
-- for i=1,#childCells do
|
|
-- local childCell = childCells[i];
|
|
-- if(childCell.id==id)then
|
|
-- tempV3:Set(LuaGameObject.TransformPoint(self.effectTrans.transform, tempV3))
|
|
-- childCell:PlayTrailEffect(tempV3)
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- end
|
|
|
|
|