|
SocialityMailView = SocialityMailView or BaseClass(BaseItem)
|
|
|
|
function SocialityMailView:__init()
|
|
self.base_file = "sociality"
|
|
self.layout_file = "SocialityMailView"
|
|
|
|
self.model = MailModel:getInstance()
|
|
|
|
self.loop_mgr = LoopScrowViewMgr.New()
|
|
self.column_num = 1 --一行多少个图标
|
|
self.show_count = 8
|
|
|
|
--存放 Item 的列表
|
|
self.mail_item_list = {} --存放 mailItem
|
|
self.award_item_list = {} --存放 awardItem
|
|
|
|
self.event_id_list = {} --存放事件ID
|
|
|
|
self.need_refresh = false --是否需要重新调用
|
|
self.have_mail = true --是否拥有邮件
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function SocialityMailView:Load_callback()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
if self.need_refresh then
|
|
self:RefreshMailList()
|
|
end
|
|
-- MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.mail) -- 2020/3/26 邮件红点只在接到邮件的时候才闪5s
|
|
end
|
|
|
|
function SocialityMailView:LoadSuccess()
|
|
self.scroll,
|
|
self.scroll_content,
|
|
self.parent,
|
|
self.mail_content_parent,
|
|
self.mail_content_tra,
|
|
self.mail_award_parent
|
|
= GetChildTransforms(self.transform,
|
|
{
|
|
"ItemScrollView",
|
|
"ItemScrollView/Viewport/Content",
|
|
"ItemScrollView/Viewport/Content/parent",
|
|
"Detail/DetailScrollView/Viewport/Content",
|
|
"Detail/DetailScrollView/Viewport/Content/txtDetail",
|
|
"Detail/Attachment/AwardScrollView/Viewport/Content",
|
|
})
|
|
|
|
self.mail_delBtn = self:GetChild("mailBottom/delBtn").gameObject
|
|
self.mail_takeBtn = self:GetChild("mailBottom/takeBtn").gameObject
|
|
self.mail_empty = self:GetChild("Empty").gameObject
|
|
self.mail_detail = self:GetChild("Detail").gameObject
|
|
self.mail_bottom = self:GetChild("mailBottom").gameObject
|
|
self.oneKeyGet = self:GetChild("oneKeyGet").gameObject
|
|
self.oneKeyDelete = self:GetChild("oneKeyDelete").gameObject
|
|
self.businessTab = self:GetChild("topBarCon/businessTab").gameObject
|
|
self.systemTab = self:GetChild("topBarCon/systemTab").gameObject
|
|
self.systemRed = self:GetChild("topBarCon/systemTab/systemRed").gameObject
|
|
self.businessRed = self:GetChild("topBarCon/businessTab/businessRed").gameObject
|
|
self.received_obj = self:GetChild("Detail/Attachment/received").gameObject
|
|
|
|
self.mail_takeBtn_image,
|
|
self.businessTabImg,
|
|
self.systemTabImg,
|
|
self.mailBg2,
|
|
self.mailListBg,
|
|
self.mail_head
|
|
= GetChildImages(self.transform,
|
|
{
|
|
"mailBottom/takeBtn",
|
|
"topBarCon/businessTab",
|
|
"topBarCon/systemTab",
|
|
"Detail/image",
|
|
"mailListBg",
|
|
"Detail/Sender/mail_head",
|
|
})
|
|
|
|
self.DetailScrollView_tran = self:GetChild("Detail/DetailScrollView")
|
|
self.mail_sender = self:GetChild("Detail/Sender/txtTitle"):GetComponent("TextMeshProUGUI")
|
|
self.mail_title = self:GetChild("Detail/Title/txtTitle"):GetComponent("TextMeshProUGUI")
|
|
self.mail_content = self:GetChild("Detail/DetailScrollView/Viewport/Content/txtDetail"):GetComponent("Text")
|
|
self.systemTabTxt = self:GetChild("topBarCon/systemTab/Text"):GetComponent("TextMeshProUGUI")
|
|
self.businessTabTxt = self:GetChild("topBarCon/businessTab/Text"):GetComponent("TextMeshProUGUI")
|
|
self.mailTimeTxt = self:GetChild("Detail/Sender/mailTime"):GetComponent("TextMeshProUGUI")
|
|
self.deadTime = self:GetChild("Detail/Sender/deadTime"):GetComponent("TextMeshProUGUI")
|
|
self.takeBtn_txt = self:GetChild("mailBottom/takeBtn/Text"):GetComponent("TextMeshProUGUI")
|
|
|
|
|
|
self.empty_girl = self:GetChild("Empty/empty/girl"):GetComponent("RawImage")
|
|
self.empty_talk_bg = self:GetChild("Empty/empty/image"):GetComponent("RawImage")
|
|
|
|
lua_resM:setOutsideImageSprite(self, self.mailListBg, GameResPath.GetSocialityImage("sociality_friend_list_bg"))
|
|
lua_resM:setOutsideImageSprite(self, self.mailBg2, GameResPath.GetSocialityImage("sociality_chat_bg"))
|
|
lua_resM:setOutsideRawImage(self, self.empty_girl, GameResPath.GetRoleBg("team_empty_bg_267_589"))
|
|
lua_resM:setOutsideRawImage(self, self.empty_talk_bg, GameResPath.GetViewBigBg("com_empty_bg1"))
|
|
|
|
self.mail_empty:SetActive(false)
|
|
self.mail_detail:SetActive(false)
|
|
|
|
-- SetAnchoredPosition(self.DetailScrollView_tran,15,-170)
|
|
-- SetSizeDelta(self.DetailScrollView_tran, 667, 276)
|
|
|
|
self.model.mail_tab_index = 1
|
|
local system_red,business_red = self:RefreshMailTabRed()--打开界面时处理一下topbar的红点
|
|
if system_red then
|
|
self.model.mail_tab_index = 1
|
|
elseif not system_red and business_red then
|
|
self.model.mail_tab_index = 2
|
|
else
|
|
self.model.mail_tab_index = 1
|
|
end
|
|
end
|
|
|
|
function SocialityMailView:InitEvent()
|
|
--注册点击事件
|
|
local function onBtnClickHandler(target)
|
|
if target == self.mail_delBtn then
|
|
if self.have_mail then
|
|
self:DeleteMail()
|
|
else
|
|
Message.show("没有邮件")
|
|
end
|
|
elseif target == self.mail_takeBtn then
|
|
if self.have_mail then
|
|
self:TakeAttachment()
|
|
else
|
|
Message.show("没有邮件")
|
|
end
|
|
elseif target == self.oneKeyGet then
|
|
self:GetAllMail()
|
|
elseif target == self.oneKeyDelete then
|
|
self:DeleteAllMail()
|
|
elseif target == self.systemTab then
|
|
if self.model.mail_tab_index == 1 then return end
|
|
self.model.mail_tab_index = 1
|
|
self.model.now_select_mail = nil
|
|
self:RefreshMailList()
|
|
elseif target == self.businessTab then
|
|
if self.model.mail_tab_index == 2 then return end
|
|
self.model.mail_tab_index = 2
|
|
self.model.now_select_mail = nil
|
|
self:RefreshMailList()
|
|
end
|
|
end
|
|
AddClickEvent(self.mail_delBtn, onBtnClickHandler)
|
|
AddClickEvent(self.mail_takeBtn, onBtnClickHandler)
|
|
AddClickEvent(self.oneKeyGet, onBtnClickHandler)
|
|
AddClickEvent(self.oneKeyDelete, onBtnClickHandler)
|
|
AddClickEvent(self.systemTab, onBtnClickHandler)
|
|
AddClickEvent(self.businessTab, onBtnClickHandler)
|
|
|
|
--绑定更新邮件列表的方法
|
|
local update_mail_list_fun = function()
|
|
self:ShowPanel()
|
|
end
|
|
table.insert(self.event_id_list, self.model:Bind(MailEvent.UPDATE_MAIL_LIST, update_mail_list_fun))
|
|
|
|
--绑定更新邮件内容的方法
|
|
local update_mail_detail_fun = function(vo)
|
|
self:ShowMailDetail(vo)
|
|
end
|
|
table.insert(self.event_id_list, self.model:Bind(MailEvent.UPDATE_MAIL_DETAIL, update_mail_detail_fun))
|
|
|
|
function select_fun()
|
|
self:SetBtnGray()
|
|
end
|
|
table.insert(self.event_id_list, self.model:Bind(MailEvent.SELECT_MAIL_ITEM, select_fun))
|
|
|
|
--刷新topbar的红点
|
|
function on_update_top_bar_red()
|
|
self:RefreshMailTabRed()
|
|
end
|
|
table.insert(self.event_id_list, self.model:Bind(MailEvent.UPDATE_TOP_BAR_RED, on_update_top_bar_red))
|
|
|
|
end
|
|
|
|
--刷新topbar“系统”“交易”按钮的红点
|
|
function SocialityMailView:RefreshMailTabRed()
|
|
local system_red = self.model:CheckSystemMailRedDot()
|
|
local business_red = self.model:CheckBusinessMailRedDot()
|
|
self.systemRed:SetActive(system_red)
|
|
self.businessRed:SetActive(business_red)
|
|
|
|
--哪里有红点,界面就打开哪个界面,同时有红点时,系统邮件优先
|
|
return system_red,business_red
|
|
end
|
|
|
|
function SocialityMailView:SetBtnGray()
|
|
for i, v in pairs(self.model.select_mail_list) do
|
|
if v.is_attach == 1 and v.state ~= 3 then
|
|
self.mail_takeBtn_image.gray = false
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
self.mail_takeBtn:SetActive(false)
|
|
return
|
|
elseif v.is_attach ~= 1 then
|
|
self.mail_takeBtn:SetActive(true)
|
|
end
|
|
end
|
|
if self.model.now_select_mail then
|
|
for i, v in ipairs(self.curr_list) do
|
|
if v.mail_id == self.model.now_select_mail.mail_id then
|
|
if v.is_attach == 1 and v.state ~= 3 then
|
|
self.mail_takeBtn_image.gray = false
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
self.mail_takeBtn_image.gray = true
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
end
|
|
|
|
--打开界面
|
|
function SocialityMailView:ShowPanel()
|
|
if self.is_loaded then
|
|
self.need_refresh = false
|
|
self:RefreshMailList() --更新邮件列表
|
|
else
|
|
self.need_refresh = true
|
|
end
|
|
end
|
|
|
|
--清除界面
|
|
function SocialityMailView:__delete()
|
|
self.model:Clear()
|
|
self.model:Fire(MailEvent.GET_MAIL_INFORM) --获取邮件通知
|
|
|
|
if self.loop_mgr then
|
|
self.loop_mgr:DeleteMe()
|
|
self.loop_mgr = nil
|
|
end
|
|
|
|
for i, v in pairs(self.mail_item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.mail_item_list = {}
|
|
|
|
for i, v in pairs(self.award_item_list) do
|
|
v:DeleteMe()
|
|
-- v:ReleaseObj()
|
|
v = nil
|
|
end
|
|
self.award_item_list = {}
|
|
|
|
for i, v in pairs(self.event_id_list) do
|
|
self.model:UnBind(v)
|
|
end
|
|
self.event_id_list = {}
|
|
end
|
|
|
|
function SocialityMailView:SetTabBtnImg()
|
|
local businessTabAb = self.model.mail_tab_index == 1 and "uiComponent_asset" or "sociality_asset"
|
|
local businessTabStr = self.model.mail_tab_index == 1 and "com_empty" or "sociality_tab_on"
|
|
local systemTabAb = self.model.mail_tab_index == 1 and "sociality_asset" or "uiComponent_asset"
|
|
local systemTabStr = self.model.mail_tab_index == 1 and "sociality_tab_on" or "com_empty"
|
|
lua_resM:setImageSprite(self,self.businessTabImg, businessTabAb, businessTabStr)
|
|
lua_resM:setImageSprite(self,self.systemTabImg, systemTabAb, systemTabStr)
|
|
self.systemTabTxt.text = self.model.mail_tab_index == 1 and "<#ffffff>系统</color>" or "<#9eb3cf>系统</color>"
|
|
self.businessTabTxt.text = self.model.mail_tab_index == 1 and "<#9eb3cf>交易</color>" or "<#ffffff>交易</color>"
|
|
|
|
local systemTabMat = self.model.mail_tab_index == 1 and ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab or ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault
|
|
local businessTabMat = self.model.mail_tab_index == 1 and ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault or ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab
|
|
SetTMPSharedMaterial(self.systemTabTxt, systemTabMat)
|
|
SetTMPSharedMaterial(self.businessTabTxt, businessTabMat)
|
|
end
|
|
|
|
|
|
--更新邮件列表
|
|
function SocialityMailView:RefreshMailList()
|
|
self:SetTabBtnImg()
|
|
--隐藏所有Item
|
|
for i, v in ipairs(self.mail_item_list) do
|
|
v:Hide()
|
|
v.gameObject:SetActive(false)
|
|
end
|
|
|
|
local mail_list
|
|
local total_mail_list_num = 0
|
|
local sys_mail_list = self.model:GetMailList()
|
|
local business_mail_list = self.model:GetBusinessMailList()
|
|
total_mail_list_num = #sys_mail_list + #business_mail_list
|
|
if self.model.mail_tab_index == 1 then
|
|
mail_list = sys_mail_list
|
|
else
|
|
mail_list = business_mail_list
|
|
end
|
|
|
|
if total_mail_list_num > 98 then
|
|
Message.show("当前邮件列表已达上限,清理邮箱后才可继续收取邮件")
|
|
end
|
|
|
|
if #mail_list < 1 then
|
|
self.have_mail = false
|
|
self.mail_empty:SetActive(true)
|
|
self.oneKeyDelete:SetActive(false)
|
|
self.oneKeyGet:SetActive(false)
|
|
self.mail_detail:SetActive(false)
|
|
self.mail_bottom:SetActive(false)
|
|
|
|
self.curr_list = {} --以下为一键删除多于7个以上的邮件时 重新刷新邮件的列表 不然loop_mgr还会刷新出可见的item
|
|
for k, v in ipairs(mail_list) do
|
|
self.curr_list[k] = v
|
|
self.curr_list[k].index = k
|
|
end
|
|
self.loop_mgr:Init(self.scroll, self.scroll_content, self.column_num, 360, 106, function(item,index,realIndex)
|
|
if item and realIndex > 0 and realIndex <= #self.curr_list then item:SetData(self.curr_list[realIndex]) end
|
|
end)
|
|
self.loop_mgr:InitChildren(self.mail_item_list, #self.curr_list)
|
|
self.loop_mgr:RestToBeginning()
|
|
self.loop_mgr:SetContentSizeData()
|
|
return
|
|
end
|
|
self.have_mail = true
|
|
self.mail_empty:SetActive(false)
|
|
self.oneKeyDelete:SetActive(true)
|
|
self.oneKeyGet:SetActive(true)
|
|
self.mail_detail:SetActive(true)
|
|
self.mail_bottom:SetActive(true)
|
|
|
|
self.curr_list = {}
|
|
for k, v in ipairs(mail_list) do
|
|
self.curr_list[k] = v
|
|
self.curr_list[k].index = k
|
|
end
|
|
local create_count = math.min(self.show_count, #mail_list)
|
|
for k = 1, create_count do
|
|
local item = self.mail_item_list[k]
|
|
if item == nil then
|
|
item = MailItem.New(self.parent, nil, self.layer_name)
|
|
self.mail_item_list[k] = item
|
|
end
|
|
end
|
|
|
|
self.loop_mgr:Init(self.scroll,self.scroll_content, self.column_num, 360, 106+3, function(item,index,realIndex)
|
|
self:OnInitializeItem(item,index,realIndex)
|
|
end)
|
|
self.loop_mgr:InitChildren(self.mail_item_list, #self.curr_list)
|
|
self.loop_mgr:RestToBeginning()
|
|
self.loop_mgr:SetContentSizeData()
|
|
|
|
--设置选中邮件
|
|
local id
|
|
if self.model.now_select_mail == nil then
|
|
id = self.mail_item_list[1].data.mail_id --点选item列表中的第一个
|
|
else
|
|
id = self.model.now_select_mail.mail_id
|
|
end
|
|
|
|
for i, v in ipairs(self.mail_item_list) do
|
|
v:OnClickHandler(id)
|
|
end
|
|
self:RefreshMailTabRed()--处理一次红点
|
|
GlobalEventSystem:Fire(EventName.REFRESH_SOCIAL_RED_DOT)
|
|
end
|
|
|
|
function SocialityMailView:OnInitializeItem(item,index,realIndex)
|
|
if item and realIndex > 0 and realIndex <= #self.curr_list then
|
|
item:SetData(self.curr_list[realIndex])
|
|
-- item:SetChoice()
|
|
self:UpdateItemState(item)
|
|
end
|
|
end
|
|
|
|
function SocialityMailView:UpdateItemState(item)
|
|
for k,v in pairs(self.mail_item_list) do
|
|
if v.data and self.model.now_select_mail and v.data.mail_id == self.model.now_select_mail.mail_id then
|
|
v:SetSelect(true)
|
|
else
|
|
v:SetSelect(false)
|
|
end
|
|
end
|
|
end
|
|
|
|
--显示邮件内容
|
|
function SocialityMailView:ShowMailDetail(vo)
|
|
if vo == nil then return end
|
|
|
|
if self.model.now_select_mail and self.model.now_select_mail.mail_id ~= vo.mail_id then return end
|
|
|
|
--邮件类型图标
|
|
local mail_type = self.model:GetMailType(vo.mail_id)
|
|
if mail_type == 5 then
|
|
lua_resM:setImageSprite(self,self.mail_head,"sociality_asset","sociality_mail_head_2")
|
|
else
|
|
lua_resM:setImageSprite(self,self.mail_head,"sociality_asset","sociality_mail_head_1")
|
|
end
|
|
|
|
local sender_str
|
|
if vo.sender and vo.sender ~= "" then
|
|
sender_str = vo.sender
|
|
else
|
|
sender_str = mail_type == 5 and "交易系统管理员" or "系统管理员"
|
|
end
|
|
self.mail_sender.text = sender_str
|
|
self.mail_title.text = vo.title
|
|
|
|
self.mailTimeTxt.text = TimeUtil:timeConversion(vo.time, "yyyy-mm-dd hh:mm:ss")
|
|
local effect_et = self.model:GetMailEffectTime(vo.mail_id)
|
|
local now_time = TimeUtil:getServerTime()
|
|
if effect_et and effect_et - now_time > 0 then
|
|
local dead_time, f = math.modf((effect_et - now_time) / 86400)
|
|
if dead_time>=1 then
|
|
if f > 0 then
|
|
dead_time = dead_time + 1
|
|
end
|
|
self.deadTime.text = string.format("有效期剩余:<#60f448>%d天</color>",dead_time)
|
|
else
|
|
local hour_time, f2 = math.modf((effect_et - now_time) / 3600)
|
|
if hour_time>=1 then
|
|
if f2>0 then
|
|
hour_time = hour_time + 1
|
|
end
|
|
self.deadTime.text = string.format("有效期剩余:<#60f448>%d小时</color>",hour_time)
|
|
else
|
|
local minute_time, f3 = math.modf((effect_et - now_time) / 60)
|
|
if f3>0 then
|
|
minute_time = minute_time +1
|
|
end
|
|
self.deadTime.text = string.format("有效期剩余:<#60f448>%d分</color>",minute_time)
|
|
end
|
|
end
|
|
else
|
|
self.deadTime.text = "已过期"
|
|
end
|
|
|
|
--超链接处理
|
|
self.mail_content.text = ""
|
|
|
|
if vo.content and vo.content ~= ""then
|
|
local call_func = function ( param_list )
|
|
ChatModel:getInstance().clicked_item = self
|
|
ChatModel:getInstance().chick_hyperlink_mark = true
|
|
ChatModel:getInstance():FireSpecialTab(param_list)
|
|
end
|
|
AddInlineLickEvent(self.mail_content, call_func)
|
|
|
|
--把坑爹的半角空格变成全角空格,inlietext组件用半角空格时会像英文一样在空格后面的文字太长时转成换行
|
|
vo.content = string.gsub(vo.content, " ", " ")
|
|
--把换行换成换行加两个全角空格,使其变成首行自动缩进两字符
|
|
-- vo.content = string.gsub(vo.content, "\n ", "\n ")
|
|
vo.content = string.gsub(vo.content, "\n", "\n ")
|
|
--如果根本就没用到<color@颜色值>这种格式就不要再去特殊解析了
|
|
if not string.find(vo.content,"color@") then
|
|
SetInlineText(self.mail_content, vo.content)
|
|
else
|
|
SetInlineText(self.mail_content, ChuanWenManager:FormatColorTag(vo.content))
|
|
end
|
|
|
|
local height = self.mail_content.preferredHeight
|
|
self.mail_content_parent.sizeDelta = Vector2(self.mail_content_parent.sizeDelta.x, height + 10)
|
|
self.mail_content_tra.sizeDelta = Vector2(self.mail_content_parent.sizeDelta.x, height + 10)
|
|
end
|
|
|
|
if vo.is_receive == 1 then --附件已领取
|
|
self.mail_takeBtn_image.gray = true
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
-- self.received_obj:SetActive(true)
|
|
else
|
|
self.mail_takeBtn_image.gray = false
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
|
|
-- self.received_obj:SetActive(false)
|
|
end
|
|
|
|
for i, v in pairs(self.award_item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
|
|
if vo.attachment and #vo.attachment > 0 then
|
|
local new_attachment = {}
|
|
local other_attachment = {}
|
|
for k,v in pairs(vo.attachment) do
|
|
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(v.type_id)
|
|
if basic and basic.color then
|
|
v.color = tonumber(basic.color)
|
|
table.insert(new_attachment, v)
|
|
else
|
|
table.insert(other_attachment, v)
|
|
end
|
|
end
|
|
local sort_func = function(a,b)
|
|
return a.color > b.color
|
|
end
|
|
table.sort(new_attachment, sort_func)
|
|
for k,v in pairs(other_attachment) do
|
|
table.insert(new_attachment, v)
|
|
end
|
|
vo.attachment = new_attachment
|
|
for i, v in ipairs(vo.attachment) do
|
|
local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(v.object_type, v.type_id)
|
|
local item = self.award_item_list[i]
|
|
if item == nil then
|
|
item = MailAwardItem.New(self.mail_award_parent)
|
|
self.award_item_list[i] = item
|
|
end
|
|
item:SetData(vo.is_receive,typeId, v.num, nil, v, v.lock, nil, false)
|
|
item:SetVisible(true)
|
|
item:SetItemSize(80, 80)
|
|
end
|
|
self.mail_award_parent.sizeDelta = Vector2(100 * #vo.attachment, 100)
|
|
else
|
|
self.mail_takeBtn_image.gray = true
|
|
SetTMPSharedMaterial(self.takeBtn_txt, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
|
|
end
|
|
|
|
if #self.model.select_mail_list > 0 then
|
|
self:SetBtnGray()
|
|
end
|
|
end
|
|
|
|
--设置附件是否只显示背景
|
|
function SocialityMailView:OnlyShowBg(item, b)
|
|
if b then
|
|
item.bg_trams.gameObject:SetActive(true)
|
|
item.icon.gameObject:SetActive(false)
|
|
item.numTextT.gameObject:SetActive(false)
|
|
item.lock:SetActive(false)
|
|
lua_resM:setImageSprite(item,item.bg,"common_asset","com_icon_bg_0")
|
|
else
|
|
item.bg_trams.gameObject:SetActive(true)
|
|
item.icon.gameObject:SetActive(true)
|
|
item.numTextT.gameObject:SetActive(true)
|
|
end
|
|
end
|
|
|
|
--接受附件
|
|
function SocialityMailView:TakeAttachment()
|
|
local list = {}
|
|
|
|
if #self.model.select_mail_list > 0 then --有勾选邮件
|
|
--对邮件进行排序(按接受时间排序,最新收到的邮件最高)
|
|
local sort_fun = function(a, b)
|
|
if a and b then
|
|
return a.time > b.time
|
|
end
|
|
end
|
|
table.sort(self.model.select_mail_list, sort_fun)
|
|
|
|
for i, v in ipairs(self.model.select_mail_list) do
|
|
if v.is_attach == 1 then
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
end
|
|
end
|
|
if self.model.now_select_mail and self.model.now_select_mail.is_attach == 1 then
|
|
local have = false
|
|
for i, v in ipairs(list) do
|
|
if v == self.model.now_select_mail.mail_id then
|
|
have = true
|
|
break
|
|
end
|
|
end
|
|
if not have then
|
|
table.insert(list, self.model.now_select_mail.mail_id)
|
|
end
|
|
end
|
|
local mail_type = self.model:GetMailType(list[1])
|
|
if mail_type then
|
|
self.model:Fire(MailEvent.GET_MAIL_ATTACHMENT, list,mail_type)
|
|
end
|
|
end
|
|
|
|
--删除单个邮件
|
|
function SocialityMailView:DeleteMail()
|
|
local list = {}
|
|
if #self.model.select_mail_list > 0 then --有勾选邮件
|
|
for i, v in ipairs(self.model.select_mail_list) do
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
else --无勾选邮件
|
|
if not self.model.now_select_mail or not self.model.now_select_mail.mail_id then
|
|
return
|
|
end
|
|
table.insert(list, self.model.now_select_mail.mail_id)
|
|
end
|
|
local mail_type = self.model:GetMailType(list[1])
|
|
if mail_type then
|
|
self.model:Fire(MailEvent.DELETE_MAIL, list, mail_type)
|
|
end
|
|
end
|
|
|
|
--一键删除
|
|
function SocialityMailView:DeleteAllMail( ... )
|
|
local list = {}
|
|
if self.model.mail_tab_index == 2 then
|
|
for i, v in ipairs(self.model.business_mail_list ) do
|
|
if v.is_attach~=1 then
|
|
if v.important == 1 then
|
|
if v.state ~=2 then
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
else
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
for i, v in ipairs(self.model.mail_list ) do
|
|
if v.is_attach~=1 then
|
|
if v.important == 1 then
|
|
if v.state ~=2 then
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
else
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if #list>0 then
|
|
local mail_type = self.model:GetMailType(list[1])
|
|
if mail_type then
|
|
self.model:Fire(MailEvent.DELETE_MAIL, list, mail_type)
|
|
end
|
|
end
|
|
end
|
|
|
|
--一键领取
|
|
function SocialityMailView:GetAllMail( ... )
|
|
local list = {}
|
|
if self.model.mail_tab_index == 2 then
|
|
for i, v in ipairs(self.model.business_mail_list ) do
|
|
if v.is_attach ==1 then
|
|
if v.important == 1 then--如果是重要邮件,一定要先读了才能一键领取
|
|
if v.state == 1 then
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
else
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
for i, v in ipairs(self.model.mail_list ) do
|
|
if v.is_attach ==1 then
|
|
if v.important == 1 then--如果是重要邮件,一定要先读了才能一键领取
|
|
if v.state == 1 then
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
else
|
|
table.insert(list, v.mail_id)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if #list>0 then
|
|
local mail_type = self.model:GetMailType(list[1])
|
|
if mail_type then
|
|
self.model:Fire(MailEvent.GET_MAIL_ATTACHMENT, list,mail_type)
|
|
end
|
|
else
|
|
Message.show("没有可领取的附件哦~")
|
|
end
|
|
end
|