SplitView = SplitView or BaseClass(BaseView) SplitView.TYPE = { SPLIT = 1, --拆分 BAT_USE = 2, --批量使用 BAT_DROP = 3, --批量丢弃 BAT_DECOMPOSE = 4, --批量分解 BAT_SEND_FLOWER = 5, --批量送礼 } function SplitView:__init() self.base_file = "bag" self.layout_file = "BathandleView" self.layer_name = "Top" self.use_background = true self.is_set_zdepth = true self.type = SplitView.TYPE.SPLIT self.blur_activity_bg = true self.use_show_anim = true self.use_hide_anim = true self.load_callback = function () self:LocalSuccess() end self.open_callback = function () self:SetData() end self.destroy_callback = function () self:Remove() end end function SplitView:Remove() if self.icon_item then self.icon_item:ReleaseObj() self.icon_item = nil end if self.addNumComponent then if self.change_count_id then self.addNumComponent:UnBind(self.change_count_id) self.change_count_id = nil end self.addNumComponent:DeleteMe() self.addNumComponent = nil end end function SplitView:LocalSuccess() self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self:GetChild("iconItem")) self.icon_item:ChangeCountVisible(false) self.bg_raw = self:GetChild("Window"):GetComponent("RawImage") self.nameText = self:GetChild("nameText"):GetComponent("TextMeshProUGUI") self.moneyIcon = self:GetChild("moneyIcon"):GetComponent("Image") self.moneyText = self:GetChild("moneyText"):GetComponent("TextMeshProUGUI") self.splitBtn = self:GetChild("splitBtn").gameObject self.btnCancel = self:GetChild("btnCancel").gameObject self.titleText = self:GetChild("Window/windowTitleCon/windowTitleText"):GetComponent("TextMeshProUGUI") self.tipsText = self:GetChild("tipsText"):GetComponent("TextMeshProUGUI") self.splitBtnText = self:GetChild("splitBtn/Text"):GetComponent("TextMeshProUGUI") lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("tips_comm_bg6"), false) self.addNumComponent = NumberSliderComponent.New(self:GetChild("addNumCon")) self.addNumComponent:SetComponentWidth(428) self:InitEvent() end function SplitView:InitEvent() local function onBtnClickHandler(target) if target == self.splitBtn then if self.type == SplitView.TYPE.SPLIT then GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15005,self.goods_vo.goods_id, self.goods_vo.type_id,self.addNumComponent:GetCurrCount()) elseif self.type == SplitView.TYPE.BAT_USE then GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15050,self.goods_vo.goods_id, self.goods_vo.type_id,self.addNumComponent:GetCurrCount()) elseif self.type == SplitView.TYPE.BAT_DROP then local num = self.addNumComponent:GetCurrCount() local function ok() GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15051, 0 , {[1] ={ goods_id = self.goods_vo.goods_id, type_id = self.goods_vo.type_id, num = num} }) end local str = string.format("是否丢弃 %d个 %s ?", num, self.goods_vo.goods_name) Alert.show(str,Alert.Type.Two,ok) elseif self.type == SplitView.TYPE.BAT_DECOMPOSE then local decompose_goods_list = {} decompose_goods_list[1] = { goods_id = self.goods_vo.goods_id, type_id = self.goods_vo.type_id, goods_num = self.addNumComponent:GetCurrCount(), } GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15019,decompose_goods_list) elseif self.type == SplitView.TYPE.BAT_SEND_FLOWER then if self.extra_param_list and self.extra_param_list.send_role_id then SocialityModel:getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 22301, self.extra_param_list.send_role_id, self.goods_vo.type_id, self.addNumComponent:GetCurrCount(), 0) end end self:Close() elseif target == self.btnCancel then self:Close() end end AddClickEvent(self.splitBtn,onBtnClickHandler) AddClickEvent(self.btnCancel,onBtnClickHandler) local function onChangeCountHandler(count) self:ChangeCount(count) end self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT,onChangeCountHandler) end function SplitView:Open(goods_vo, type, extra_param_list) self.goods_vo = goods_vo self.type = type or SplitView.TYPE.SPLIT self.extra_param_list = extra_param_list BaseView.Open(self) end function SplitView:SetData() if self.goods_vo then self.icon_item:SetData(self.goods_vo.type_id, self.goods_vo.goods_num) self.icon_item:SetItemSize(78, 78) self.icon_item:SetLimitState(BagModel:getInstance():GetGoodsLimitState(self.goods_vo)) local min, max, step, cur = 0, self.goods_vo.goods_num-1, 1, 1 self.splitBtnText.text = "确定" if self.type == SplitView.TYPE.SPLIT then self.titleText.text = "物品拆分" self.tipsText.text = "选择要拆分物品的数量" elseif self.type == SplitView.TYPE.BAT_USE then self.titleText.text = "批量使用" self.tipsText.text = "选择要使用物品的数量" min = 1 max = self.goods_vo.goods_num cur = self.goods_vo.goods_num elseif self.type == SplitView.TYPE.BAT_DROP then self.titleText.text = "批量丢弃" self.tipsText.text = "选择要丢弃物品的数量" min = 1 max = self.goods_vo.goods_num cur = self.goods_vo.goods_num elseif self.type == SplitView.TYPE.BAT_DECOMPOSE then self.titleText.text = "批量分解" self.tipsText.text = "选择要分解物品的数量" min = 1 max = self.goods_vo.goods_num cur = self.goods_vo.goods_num elseif self.type == SplitView.TYPE.BAT_SEND_FLOWER then self.titleText.text = "批量赠送" self.tipsText.text = "选择要赠送的物品数量" min = 1 max = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1 -- cur = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1 if self.goods_vo.type_id == 102401 then cur = self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num <= 5 and self.extra_param_list.gift_have_num or 5 else cur = 1 end self.splitBtnText.text = "赠送" self.icon_item:SetData(self.goods_vo.type_id, self.extra_param_list and self.extra_param_list.gift_have_num and self.extra_param_list.gift_have_num or 1) self.icon_item:ChangeCountVisible(true,999) end self.addNumComponent:InitData(min, max, step, cur) self:ChangeCount(1) local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id) local name = Trim(self.goods_vo.goods_name) if self.goods_vo.type == 11 and (self.goods_vo.subtype == 10 or self.goods_vo.subtype == 11) then local type_id, _name, icon = EquipModel:getInstance():GetIdentifyGoodsNameAndIcon(self.goods_vo.type_id, RoleManager.Instance.mainRoleInfo.career, self.goods_vo.color) name = _name end self.nameText.text = HtmlColorTxt(name, WordManager.GetGoodsColor(self.goods_vo.color)) end end function SplitView:ChangeCount(count) end