-- 牌友圈合伙人界面 local GroupNumberInputView = import(".GroupNumberInputView") local TimeSettingPanel = import(".TimeSettingPanel") local GroupMngPartnerRewardsView = {} local M = GroupMngPartnerRewardsView function GroupMngPartnerRewardsView.new(gid, blur_view) local self = M self.class = "GroupMngPartnerRewardsView" self.group_id = gid self.blur_view = blur_view self:InitView() return self end function M:initData() self.rewards_data = {} self.rewards_log = {} self.search_rewards_data = {} self.search_rewards_log = {} self.partner_data = {} self.partner_data2 = {} self.search_partner_data = {} self.lst_partner.numItems = 0 self.lst_partner2.numItems = 0 self.lst_rewards.numItems = 0 self.lst_log.numItems = 0 local group = DataManager.groups:get(self.group_id) -- if group.lev == 3 then -- local mdata = {} -- mdata.portrait = DataManager.SelfUser.head_url -- mdata.uid = DataManager.SelfUser.account_id -- mdata.nick = DataManager.SelfUser.nick_name -- self.partner_data2[1] = mdata -- self.lst_partner2.numItems = 1 -- self.lst_partner2.selectedIndex = 0 -- end local index = self._view:GetController("index").selectedIndex if index < 2 then self:GetPartnerData(0) else self:GetRewardsStatistic() -- self._view:GetController("index").selectedIndex = 0 end end function M:InitView() self._view = UIPackage.CreateObjectFromURL("ui://NewGroup/View_PartnerRewards") -- 根据权限显示功能 local ctr_index = self._view:GetController("index") local group = DataManager.groups:get(self.group_id) if group.lev == 1 then self._view:GetController("mng").selectedIndex = 1 else if group.type == 2 then self._view:GetController("alliance").selectedIndex = 1 else ctr_index.selectedIndex = 1 self._view:GetController("mng").selectedIndex = 0 end end self.ctr_search = self._view:GetController("search") -- 切换页面时,1,2页需要先清理数据,再加载当前页 ctr_index.onChanged:Set(function() if ctr_index.selectedIndex == 0 then if self.ctr_search.selectedIndex == 0 then if #self.partner_data ~= 0 then self.rewards_data = {} self.lst_rewards.numItems = 0 self:GetRewardsData() else self:GetPartnerData(0) end else self.search_rewards_data = {} self.lst_rewards.numItems = 0 self:GetRewardsData() end elseif ctr_index.selectedIndex == 1 then if self.ctr_search.selectedIndex == 0 then self.rewards_log = {} else self.search_rewards_log = {} end self.lst_log.numItems = 0 self:GetRewardsLog() else self:GetRewardsStatistic() end end) -- 初始化数据 self.partner_data = {} self.partner_data2 = {} local group = DataManager.groups:get(self.group_id) -- if group.lev == 3 then -- local mdata = {} -- mdata.portrait = DataManager.SelfUser.head_url -- mdata.uid = DataManager.SelfUser.account_id -- mdata.nick = DataManager.SelfUser.nick_name -- self.partner_data2[1] = mdata -- end self.rewards_data = {} self.rewards_log = {} -- 各个列表的初始化 self.lst_partner = self._view:GetChild("lst_partner") self.lst_partner:SetVirtual() self.lst_partner.itemRenderer = function(index, obj) self:OnRenderPartnerItem(index, obj) end self.lst_partner.scrollPane.onPullUpRelease:Set(function() self:GetPartnerData(self.lst_partner.numItems) end) self.lst_partner.onClickItem:Set(function() self.rewards_data = {} self.lst_rewards.numItems = 0 self:GetRewardsData() end) self.lst_partner2 = self._view:GetChild("lst_partner2") self.lst_partner2:SetVirtual() self.lst_partner2.itemRenderer = function(index, obj) self:OnRenderPartnerItem2(index, obj) end self.lst_partner2.scrollPane.onPullUpRelease:Set(function() self:GetPartnerData(self.lst_partner.numItems) end) self.lst_partner2.onClickItem:Set(function() self.rewards_log = {} self.lst_log.numItems = 0 self:GetRewardsLog() end) self.lst_rewards = self._view:GetChild("lst_rewards") self.lst_rewards:SetVirtual() self.lst_rewards.itemRenderer = function(index, obj) self:OnRenderRewardsItem(index, obj) end self.lst_log = self._view:GetChild("lst_rewards_record") self.lst_log:SetVirtual() self.lst_log.itemRenderer = function(index, obj) self:OnRenderLogItem(index, obj) end self.lst_log.scrollPane.onPullUpRelease:Set(function() self:GetRewardsLog(self.lst_log.numItems) end) -- 初始化玩法下拉框 local items = {} local values = {} table.insert(items, "全部") table.insert(values, "0") -- if #group.playList > 0 then for i = 1, #group.playList do local play = group.playList[i] table.insert(items, play.name) table.insert(values, tostring(play.id)) end -- end local cb_play = self._view:GetChild("cb_play") cb_play.items = items cb_play.values = values cb_play.selectedIndex = 0 -- 搜索按钮事件 self._view:GetChild("btn_search").onClick:Set(function() self.rewards_log = {} self.lst_log.numItems = 0 self:GetRewardsLog() end) self._view:GetChild("btn_search2").onClick:Set(function() self:GetRewardsStatistic() end) self._view:GetChild("btn_search3").onClick:Set(function() local quary_id = tonumber(self._view:GetChild("tex_id").text) if not quary_id then ViewUtil.ErrorTip(nil, "请输入正确的ID") return end self.search_rewards_data = {} self.search_rewards_log = {} self:GetPartnerData(0, quary_id) end) self._view:GetChild("btn_back").onClick:Set(function() self.lst_rewards.numItems = #self.rewards_data self.lst_log.numItems = #self.rewards_log self.search_partner_data = {} end) self._view:GetChild("btn_all").onClick:Set(function() self.time_panel1:SetTenDay() self.rewards_log = {} self.lst_log.numItems = 0 self:GetRewardsLog() end) -- 时间组件初始化 self.time_panel1 = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date1"), self._view:GetChild("btn_date2"), -308, 0) self.time_panel2 = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date3"), self._view:GetChild("btn_date4"), -308, 0) end -- 获取合伙人数据 function M:GetPartnerData(index, qid) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_PartnerList(self.group_id, index, 6, qid, function(res) if self._is_destroy then return end if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人信息失败") else local members = res.Data.members if not qid then -- if #members == 0 then return end for i = 1, #members do self.partner_data[#self.partner_data + 1] = members[i] self.partner_data2[#self.partner_data2 + 1] = members[i] end self.lst_partner.numItems = #self.partner_data self.lst_partner2.numItems = #self.partner_data2 if index == 0 then local tem = self._view:GetController("index").selectedIndex self.lst_partner.selectedIndex = 0 self.lst_partner2.selectedIndex = 0 if tem == 0 and #self.partner_data > 0 then self:GetRewardsData() elseif tem == 1 and #self.partner_data2 > 0 then self:GetRewardsLog() end end else if #members == 0 then ViewUtil.ErrorTip(nil, "找不到该合伙人") return end self.search_partner_data = members local data = members[1] local obj = self._view:GetChild("item_search") obj:GetChild("tex_name").text = data.nick local btn_head = obj:GetChild("btn_head") local portrait = data.portrait if portrait == "" then btn_head.icon = "ui://Common/Head0" else ImageLoad.Load(portrait, btn_head._iconObject, self.class) end obj.selected = true self:GetRewardsData() self:GetRewardsLog() self.ctr_search.selectedIndex = 1 end end end) end -- 获取奖励设置数据 function M:GetRewardsData() local data if #self.search_partner_data == 0 then if #self.partner_data == 0 then return end ViewUtil.ShowModalWait() data = self.partner_data[self.lst_partner.selectedIndex + 1] else data = self.search_partner_data[1] end local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GetRewards(self.group_id, data.uid, data.partnerLev, function(res) ViewUtil.CloseModalWait() if self._is_destroy then return end if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人奖励失败") else local rewards = res.Data.rewards -- if #rewards == 0 then return end local rdata if self.ctr_search.selectedIndex == 0 then rdata = self.rewards_data else rdata = self.search_rewards_data end for i = 1, #rewards do rdata[#rdata + 1] = rewards[i] end self.lst_rewards.numItems = #rdata end end) end -- 获取奖励日志 function M:GetRewardsLog() local data if #self.search_partner_data == 0 then if #self.partner_data2 == 0 then return end ViewUtil.ShowModalWait() data = self.partner_data2[self.lst_partner2.selectedIndex + 1] else data = self.search_partner_data[1] end local begin_time, end_time = self.time_panel1:GetDate() local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GetRewardsLog(self.group_id, #self.rewards_log, 6, begin_time, end_time, data.uid, function(res) ViewUtil.CloseModalWait() if self._is_destroy then return end if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "获取奖励日志失败") else local logs = res.Data.reward_logs -- if #logs == 0 then return end local rdata if self.ctr_search.selectedIndex == 0 then rdata = self.rewards_log else rdata = self.search_rewards_log end if #rdata == 0 then self._view:GetChild("tex_num1").text = res.Data.total_num / 100 self._view:GetChild("tex_num2").text = d2ad(res.Data.total_hp) end for i = 1, #logs do rdata[#rdata + 1] = logs[i] end self.lst_log.numItems = #rdata end end) end -- 获取奖励统计 function M:GetRewardsStatistic() ViewUtil.ShowModalWait() local data = self.partner_data2[self.lst_partner2.selectedIndex + 1] local begin_time, end_time = self.time_panel2:GetDate() local pid = tonumber(self._view:GetChild("cb_play").value) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GetRewardStatistic(self.group_id, pid, begin_time, end_time, function(res) ViewUtil.CloseModalWait() if self._is_destroy then return end if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "获取奖励日志失败") else self._view:GetChild("tex_total_round").text = res.Data.round self._view:GetChild("tex_total_rewards_round").text = res.Data.v_round self._view:GetChild("tex_total_rewards_fag").text = d2ad(res.Data.hp_cost) self._view:GetChild("tex_total_rewards").text = d2ad(res.Data.gains) end end) end -- 填充合伙人对象 function M:OnRenderPartnerItem(index, obj) local data = self.partner_data[index + 1] obj:GetChild("tex_name").text = data.nick local btn_head = obj:GetChild("btn_head") local portrait = data.portrait if portrait == "" then btn_head.icon = "ui://Common/Head0" else ImageLoad.Load(portrait, btn_head._iconObject, self.class) end end -- 填充第2页合伙人对象 function M:OnRenderPartnerItem2(index, obj) local data = self.partner_data2[index + 1] obj:GetChild("tex_name").text = data.nick local btn_head = obj:GetChild("btn_head") local portrait = data.portrait if portrait == "" then btn_head.icon = "ui://Common/Head0" else ImageLoad.Load(portrait, btn_head._iconObject, self.class) end end -- 显示奖励 local function __showRewardsValue(rtype, cur_value, max_value, mng, value_type) local str = "" local tem = value_type == 1 and "%" or "" if not mng then str = string.format("%s%s/%s%s", cur_value, tem, max_value, tem) else str = string.format("%s%s", cur_value, tem) end return str end -- 填充奖励设置对象 function M:OnRenderRewardsItem(index, obj) local data if self.ctr_search.selectedIndex == 0 then data = self.rewards_data[index + 1] else data = self.search_rewards_data[index + 1] end local pdata if self.ctr_search.selectedIndex == 0 then pdata = self.partner_data[self.lst_partner.selectedIndex + 1] else pdata = self.search_partner_data[1] end local group = DataManager.groups:get(self.group_id) obj:GetChild("tex_rewards").text = __showRewardsValue(data.rewardType, data.cur_value, data.max_value, group.lev < 3, data.rewardValueType or 1) local play_name = group:getPlayName(data.pid) obj:GetChild("tex_name").text = play_name if data.rewardType == 3 or pdata.uid == DataManager.SelfUser.account_id then obj:GetController("promote").selectedIndex = 1 else obj:GetController("promote").selectedIndex = 0 end local input_type = data.rewardType == 1 and 0 or 3 obj:GetChild("btn_set").onClick:Set(function() local gfiv = GroupNumberInputView.new(self._root_view,function(num) local tem = num if data.rewardType == 2 then tem = ad2d(tem) end if tem > data.max_value then ViewUtil.ErrorTip(nil, "输入值超过上限") return end local fgCtr = ControllerManager.GetController(NewGroupController) ViewUtil.ShowModalWait() fgCtr:FG_SetRewards(self.group_id, data.pid, pdata.partnerLev, pdata.uid, false, tem, function(res) ViewUtil.CloseModalWait() if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "设置合伙人奖励失败") else data.cur_value = tem obj:GetChild("tex_rewards").text = __showRewardsValue(data.rewardType, tem, data.max_value, group.lev < 3, data.rewardValueType or 1) end end) end, input_type) gfiv:Show() end) obj:GetChild("btn_set_all").onClick:Set(function() local msg_win = MsgWindow.new(nil, "你是否为名下所有合伙人设定此奖励数值?", MsgWindow.MsgMode.OkAndCancel) msg_win.onOk:Add(function( ... ) local pdata if self.ctr_search.selectedIndex == 0 then pdata = self.partner_data[self.lst_partner.selectedIndex + 1] else pdata = self.search_partner_data[1] end local fgCtr = ControllerManager.GetController(NewGroupController) ViewUtil.ShowModalWait() fgCtr:FG_SetRewards(self.group_id, data.pid, pdata.partnerLev, pdata.uid, true, data.cur_value, function(res) ViewUtil.CloseModalWait() if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "设置合伙人奖励失败") else ViewUtil.ShowBannerOnScreenCenter("设置合伙人奖励成功") end end) end) msg_win:Show() end) end -- 填充奖励日志 function M:OnRenderLogItem(index, obj) local data if self.ctr_search.selectedIndex == 0 then data = self.rewards_log[index + 1] else data = self.search_rewards_log[index + 1] end obj:GetChild("tex_rewards").text = d2ad(data.hp) local play_name = DataManager.groups:get(self.group_id):getPlayName(data.pid) obj:GetChild("tex_game").text = play_name obj:GetChild("tex_num").text = data.round / 100 obj:GetChild("tex_roomid").text = data.roomid obj:GetChild("tex_date").text = os.date("%m月%d日\r%H:%M",data.time) end return M