--[[ 批量出售界面 ]] local UIBagItemBulkSale = UIViewClass() local ChangeItemCountSpeed = 0.15 function UIBagItemBulkSale:OnCreated() self.sellItemData = nil; self.keyBoardView = nil self._currentUseCount = 1; self.itemPrice = 0; UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_Bag_SellingItem_Title) end function UIBagItemBulkSale:OnOpened(context) --按住的状态 self._pressPlus=false self._pressMinus=false self:RegistTriggerEvent(self.event_Plus, UIEventTriggerType.PointerDown) self:RegistTriggerEvent(self.event_Plus, UIEventTriggerType.PointerUp) self:RegistTriggerEvent(self.event_Minus, UIEventTriggerType.PointerDown) self:RegistTriggerEvent(self.event_Minus, UIEventTriggerType.PointerUp) self.sellItemData = context.data; --道具数量 self.Count = self.sellItemData.Count; --道具数据 local itemCfgData = DataSheetManager.ItemData:GetDataByID(self.sellItemData.CfgId) --道具图标 logging.log(LTAG.LOG,"self.item",self.item) UTL.Item.SetItemCell(self.item, self.sellItemData.CfgId, self.Count) --道具名字 local colorText = UTL.Color.FormatQualityText(UTL.Item.GetItemDataSpliceByType(self.sellItemData.CfgId).Name, itemCfgData.Color) UIUtils.SetLabel(self.txt_ItemName, colorText) --出售信息 local sellItemId = itemCfgData.SellItemID; local sellItemCfgData = DataSheetManager.ItemData:GetDataByID(sellItemId); self.itemPrice = itemCfgData.SellItemValue; UIUtils.SetLabel(self.txt_PriceNumber, itemCfgData.SellItemValue); UTL.Item.SetAtlasSprite(self.img_PriceCoin, "UI_Common", sellItemCfgData.Icon) UTL.Item.SetAtlasSprite(self.img_IncomeCoin, "UI_Common", sellItemCfgData.Icon); self:RefreshUseCount() end --检测按钮按住 function UIBagItemBulkSale:OnUpdateFun(deltaTime, timeSineUpdate) if not self._pressPlus and not self._pressMinus then return end if self._pressPlus then self:PlusItemCount() end if self._pressMinus then self:MinusItemCount() end end function UIBagItemBulkSale:OnClickMax() self._currentUseCount = self.Count self:RefreshUseCount() end function UIBagItemBulkSale:OnClickMin() self._currentUseCount = 1 self:RefreshUseCount() end function UIBagItemBulkSale:OnClickPlus() if self._currentUseCount < self.Count then self._currentUseCount = self._currentUseCount + 1 end self:RefreshUseCount() end function UIBagItemBulkSale:OnClickMinus() if self._currentUseCount > 1 then self._currentUseCount = self._currentUseCount - 1 end self:RefreshUseCount() end function UIBagItemBulkSale:RefreshUseCount() if self._currentUseCount > self.Count then self._currentUseCount = self.Count self._pressPlus = false self:StopRepeatFunc(self.OnUpdateFun) end if self._currentUseCount < 1 then self._currentUseCount = 1 self._pressMinus = false self:StopRepeatFunc(self.OnUpdateFun) end self.txt_Num.text = self._currentUseCount; self.event_Minus:SetGray(self._currentUseCount<=1, false); self.event_Min:SetGray(self._currentUseCount<=1, false); self.event_Max:SetGray(self._currentUseCount>=self.Count, false); self.event_Plus:SetGray(self._currentUseCount>=self.Count, false); UIUtils.SetLabel(self.txt_IncomeNumber, self._currentUseCount * self.itemPrice); UIUtils.SetLabel(self.txt_Number, string.format("%s/%s", self._currentUseCount, self.Count)); end function UIBagItemBulkSale:OnPressPlus() self._pressPlus = true self:StartRepeatFunc(self.OnUpdateFun, ChangeItemCountSpeed) end function UIBagItemBulkSale:PlusItemCount() self._currentUseCount = self._currentUseCount + 1 self:RefreshUseCount() end function UIBagItemBulkSale:OnPressPlusStop() self._pressPlus = false self:StopRepeatFunc(self.OnUpdateFun) end function UIBagItemBulkSale:OnPressMinus() self._pressMinus = true self:StartRepeatFunc(self.OnUpdateFun, ChangeItemCountSpeed) end function UIBagItemBulkSale:MinusItemCount() self._currentUseCount = self._currentUseCount - 1 self:RefreshUseCount() end function UIBagItemBulkSale:OnPressMinusStop() self._pressMinus = false self:StopRepeatFunc(self.OnUpdateFun) end function UIBagItemBulkSale:OnBackButtonPressed() self:OnButtonClicked(self.btn_Cannel) end function UIBagItemBulkSale:OnButtonClicked(comp) if comp == self.btn_Confirm then self:CloseView(); local itemCfgData = DataSheetManager.ItemData:GetDataByID(self.sellItemData.CfgId); MDL.Bag.SellItemReq(self.sellItemData.Id, self._currentUseCount, itemCfgData.BagType); elseif comp == self.event_Max then self:OnClickMax() elseif comp == self.event_Min then self:OnClickMin() elseif comp == self.btn_Cannel or comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.event_Count then if not self.keyBoardView then local eventClickPos = self:GetCountTextPos(self.event_Count.transform.position); self.keyBoardView = self.subView:OpenView(GetViewClass(Const_UI_Lua.UIEnum.UIKeypad), {parentView = self, x = 40, y = 245, minNum = 1, maxNum = self.Count}, nil, nil); end end end function UIBagItemBulkSale:ExcuteKeyBoardBack(count, param) self._currentUseCount = count; self:RefreshUseCount(); end function UIBagItemBulkSale:CloseKeyBoardView() self.keyBoardView:CloseView() self.keyBoardView = nil end function UIBagItemBulkSale:GetCountTextPos(countTextPos) return self.gameObject.transform:InverseTransformVector(countTextPos); end function UIBagItemBulkSale:OnPointerDown(comp, eventData) if comp == self.event_Plus then self:OnClickPlus() self:OnPressPlus() elseif comp == self.event_Minus then self:OnClickMinus() self:OnPressMinus() end end function UIBagItemBulkSale:OnPointerUp(comp, eventData) if comp == self.event_Plus then self:OnPressPlusStop() elseif comp == self.event_Minus then self:OnPressMinusStop() end end return UIBagItemBulkSale