local UIGuildAppointPanel = UIViewClass() local SortState = { Job = 0, Level = 1, GS = 2, Today = 3, SevenDays = 4, Online = 5, } function UIGuildAppointPanel:OnOpened(context) self.curMembers = {} for i,v in ipairs(context.members) do if v.jobTitle ~= MDL.Guild.JobEnum.Leader or self.context.jobData.type == 1 then if self.context.jobData.id == MDL.Guild.IdentityEnum.Goddess then if v.roleInfo.sex == LuaConst.Gender.Female then self.LoopScroll_Details:AddData(v,0) table.insert(self.curMembers,v ) end else self.LoopScroll_Details:AddData(v,0) table.insert(self.curMembers,v ) end end end local jobName = nil if self.context.jobData.type == 2 then local jobData = DataSheetManager.GuildJob:GetDataByID(self.context.jobData.id) jobName = UIUtils.GetLocalizedTxt(Const_IDS[jobData.JobName]) else local jobData = DataSheetManager.GuildStatus:GetDataByID(self.context.jobData.id) jobName = UIUtils.GetLocalizedTxt(Const_IDS[jobData.JobName]) end self.UICommonPopUp.txt_Title.text = string.FormatByIdsId(Const_IDS.IDS_GuildAppoint_Title, jobName) self.jobName = jobName end function UIGuildAppointPanel:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIGuildAppointPanel:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.btn_Arrow_Rank then if self.curSortState == SortState.Level then table.reverseTable(self.curMembers) self:SetArrow(2,true) else MDL.Guild.SortByLevel(self.curMembers) self:SetArrow(2,false) end self.curSortState = SortState.Level self.LoopScroll_Details:ReloadAll(self.curMembers) elseif comp == self.btn_Arrow_CE then if self.curSortState == SortState.GS then table.reverseTable(self.curMembers) self:SetArrow(3,true) else MDL.Guild.SortByGS(self.curMembers) self:SetArrow(3,false) end self.curSortState = SortState.GS self.LoopScroll_Details:ReloadAll(self.curMembers) elseif comp == self.btn_Arrow_JRContribution then if self.curSortState == SortState.Today then table.reverseTable(self.curMembers) self:SetArrow(4,true) else MDL.Guild.SortByToday(self.curMembers) self:SetArrow(4,false) end self.curSortState = SortState.Today self.LoopScroll_Details:ReloadAll(self.curMembers) elseif comp == self.btn_Arrow_QRContribution then if self.curSortState == SortState.SevenDays then table.reverseTable(self.curMembers) self:SetArrow(5,true) else MDL.Guild.SortBy7Day(self.curMembers) self:SetArrow(5,false) end self.curSortState = SortState.SevenDays self.LoopScroll_Details:ReloadAll(self.curMembers) elseif comp == self.btn_Arrow_Job then if self.curSortState == SortState.Job then table.reverseTable(self.curMembers) self:SetArrow(1,true) else MDL.Guild.SortByJob(self.curMembers) self:SetArrow(1,false) end self.curSortState = SortState.Job self.LoopScroll_Details:ReloadAll(self.curMembers) elseif comp == self.btn_Arrow_Online then if self.curSortState == SortState.Online then table.reverseTable(self.curMembers) self:SetArrow(6,true) else MDL.Guild.SortByOnline(self.curMembers) self:SetArrow(6,false) end self.curSortState = SortState.Online self.LoopScroll_Details:ReloadAll(self.curMembers) end --tablestring.reverse( s ) end function UIGuildAppointPanel:SetArrow(index,reverse) if reverse then local x,y,z = self.arrows[index].transform:GetLocalScale() self.arrows[index].transform:SetLocalScale(x,-y,z) else for i,v in ipairs(self.arrows) do if i == index then self.arrows[i].transform:SetLocalScale(1,1,1) self.arrows[i].gameObject:SetActive(true) else self.arrows[i].gameObject:SetActive(false) end end end end function UIGuildAppointPanel:OnCellInit(scrollRect, index, cellTable, data) CTL.Character.SetPortraitAndFrame(cellTable.UIHeroHead150, data.roleInfo.PortraitId, data.roleInfo.FrameId) cellTable.lab_HeroName.text = data.roleInfo.name cellTable.txt_Job.text = MDL.Guild.GetMemberJobDesc(data) cellTable.txt_Rank.text = UTL.Item.GetNobilityByTeamLevel(data.roleInfo.level) -- 爵位转换 cellTable.txt_CE_Member.text = data.roleInfo.gsSum cellTable.txt_JRContribution.text = data.fameContributeToday cellTable.txt_QRContribution.text = data.fameContribute7DaySum if data.roleInfo.sex == LuaConst.Gender.Male then cellTable.genderState:SetState(0) else cellTable.genderState:SetState(1) end end function UIGuildAppointPanel:OnCellClicked(scrollRect, index, cellTable, target, data) if cellTable.btn_Appoint == target then if self.context.jobData.type == 1 then local str =string.FormatByIdsId(Const_IDS.IDS_GuildChangeJobConfirm_Label, data.roleInfo.name, self.jobName) UTL.MessageBox.ShowOKCancelBox(nil, str, function () MDL.Guild.GuildAppointIdentityReq(data.roleInfo.acid,self.context.jobData.id) end, nil) else local str =string.FormatByIdsId(Const_IDS.IDS_GuildChangeJobConfirm_Label,data.roleInfo.name,self.jobName) UTL.MessageBox.ShowOKCancelBox(nil, str, function () MDL.Guild.GuildAppointJobReq(data.roleInfo.acid,self.context.jobData.id) end, nil) end self:CloseView() end end return UIGuildAppointPanel