mirror of
https://git-qiuchenly.yltfspace.com/QiuChenly/corepatch
synced 2025-11-25 05:40:27 +08:00
### 后端更新 性能优化 - Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms 功能增强 - 统一文件上传 API - 论坛权限管理优化 ### 前端更新 问题修复 - 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传 新增功能 - 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强 代码优化 - 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
58 lines
20 KiB
JavaScript
58 lines
20 KiB
JavaScript
import{d as e,r as a,f as s,w as t,o as i,a as l,P as n,k as c,m as o,g as d,F as r,y as u,b as v,l as p,v as m,A as f,u as y,t as h,I as b,e as g}from"./Cf-ihD4f.js"
|
|
import{c as k,_ as w,T as I,A as T,a as D}from"./C_NDl53k.js"
|
|
import{I as C}from"./DHc4z5Hj.js"
|
|
import{I as N}from"./Dl86DKZJ.js"
|
|
import{a as _,b as x}from"./6K6b4Qy_.js"
|
|
const A={class:"notifications-page"},R={class:"page-container"},U={class:"tabs-container"},E={class:"tabs"},M=["onClick"],j={key:0,class:"tab-badge"},q={class:"content-area"},L={key:0,class:"tab-content"},S={class:"section-header"},$={class:"header-actions"},B=["disabled"],V={class:"notifications-list"},W={class:"notification-icon"},z={key:0,class:"unread-dot"},O={class:"notification-content"},F={class:"notification-header"},P={class:"notification-title"},G={class:"notification-time"},H={class:"notification-body"},J={class:"detail-content"},K={key:0,class:"notification-expanded-details"},Q={key:0,class:"expanded-section"},X={class:"detail-item"},Y={class:"detail-value"},Z={class:"detail-item"},ee={class:"detail-value"},ae={class:"detail-item"},se={class:"detail-value"},te={class:"detail-item"},ie={class:"detail-content"},le={class:"detail-item"},ne={class:"detail-value"},ce={key:0,class:"detail-item"},oe={class:"detail-content admin-comment"},de={key:1,class:"expanded-section"},re={class:"detail-item"},ue={class:"detail-value"},ve={class:"detail-item"},pe={class:"report-types-tags"},me={class:"detail-item"},fe={class:"detail-content"},ye={key:0,class:"detail-item"},he={class:"detail-content admin-comment"},be={key:2,class:"expanded-section"},ge={class:"detail-item"},ke={class:"detail-value"},we={class:"detail-item"},Ie={class:"detail-value"},Te={key:0,class:"detail-item"},De={class:"detail-content"},Ce={class:"notification-actions"},Ne=["onClick"],_e={key:0,class:"empty-state"},xe={key:1,class:"tab-content"},Ae={class:"notifications-list"},Re={key:0,class:"loading-state issues-loading"},Ue={key:1,class:"empty-state"},Ee={class:"notification-icon"},Me=["src","alt"],je={key:1,class:"app-icon-placeholder"},qe={class:"notification-content"},Le={class:"notification-header"},Se={class:"notification-title"},$e={class:"notification-time"},Be={class:"notification-body"},Ve={class:"issue-type"},We={class:"issue-type-value"},ze={class:"detail-content"},Oe={key:0,class:"notification-expanded-details"},Fe={class:"expanded-section"},Pe={class:"detail-item"},Ge={class:"detail-value"},He={class:"detail-item"},Je={class:"detail-value"},Ke={key:0,class:"detail-item"},Qe={key:1,class:"detail-item"},Xe={class:"attachments-list"},Ye=["onClick"],Ze={class:"attachment-name"},ea={key:2,class:"detail-item"},aa={class:"detail-content admin-comment"},sa={key:3,class:"detail-item"},ta={class:"detail-value"},ia={class:"notification-actions"},la=["onClick"],na={key:2,class:"tab-content"},ca={class:"notifications-list"},oa=["onClick"],da={class:"notification-icon"},ra={class:"notification-content"},ua={class:"notification-header"},va={class:"notification-title"},pa={class:"notification-time"},ma={class:"notification-body"},fa={class:"notification-details"},ya={class:"detail-content"},ha={key:0,class:"new-replies-badge"},ba={key:0,class:"empty-state"},ga={key:3,class:"tab-content"},ka={class:"section-header"},wa={class:"notifications-list"},Ia={class:"notification-icon"},Ta={key:0,class:"unread-dot"},Da={class:"notification-content"},Ca={class:"notification-header"},Na={class:"notification-title"},_a={class:"user-name"},xa={class:"notification-time"},Aa={class:"notification-body"},Ra={class:"detail-content"},Ua={key:0,class:"empty-state"},Ea={key:4,class:"tab-content"},Ma={class:"section-header"},ja={class:"header-actions"},qa=["disabled"],La={class:"notifications-list"},Sa=["onClick"],$a={class:"notification-icon"},Ba={key:0,class:"unread-dot"},Va={class:"notification-content"},Wa={class:"notification-header"},za={class:"notification-title"},Oa={class:"user-name"},Fa={key:0,class:"reply-to"},Pa={key:1},Ga={class:"notification-time"},Ha={class:"notification-body"},Ja={class:"notification-text"},Ka={class:"notification-details"},Qa={class:"detail-content"},Xa={key:0,class:"empty-state"},Ya=D(e({__name:"Notifications",setup(e){const D=b(),{toasts:Ya,showError:Za,showSuccess:es,showWarning:as,removeToast:ss}=k(),ts=a("system"),is=a(new Set),ls=a([]),ns=a([]),cs=a([]),os=a([]),ds=a(!1),rs=a(!1),us=a(!1),vs=a(!1),ps=a(new Map),ms=a(!1),fs=async()=>{ms.value=!0
|
|
try{const e=await T.getNotifications(1,100)
|
|
e.success&&e.data?Rs.value=e.data.notifications.map(e=>({id:e.id,type:e.type,title:e.title,content:e.content,relatedId:e.relatedId,createTime:e.createTime,read:e.read,reportDetails:e.reportDetails,requestDetails:e.requestDetails,issueDetails:e.issueDetails})):Rs.value=[]}catch(e){Rs.value=[]}finally{ms.value=!1}},ys=async()=>{ds.value=!0
|
|
try{const e=await T.getMyReplies(1,100)
|
|
e.success&&e.data?ls.value=e.data.replies.map(e=>({id:e.id,postId:e.postId,postTitle:e.postTitle,content:e.content,replyTime:e.replyTime,hasNewReplies:e.hasNewReplies||!1,newReplyCount:e.newReplyCount||0})):ls.value=[]}catch(e){ls.value=[]}finally{ds.value=!1}},hs=async()=>{us.value=!0
|
|
try{const e=await T.getRepliesToMe(1,100)
|
|
e.success&&e.data?cs.value=e.data.replies.map(e=>({id:e.id,postId:e.postId,postTitle:e.postTitle,userName:e.userName,replyToUserName:e.replyToUserName,content:e.content,replyTime:e.replyTime,read:e.read||!1})):cs.value=[]}catch(e){cs.value=[]}finally{us.value=!1}},bs=async()=>{rs.value=!0
|
|
try{const e=await T.getMessageNotifications(10)
|
|
e.success&&e.data?ns.value=e.data.notifications.map(e=>({id:e.id,fromUserId:e.fromUserId,fromUserName:e.fromUserName,content:e.content,sendTime:e.sendTime,read:e.read||!1})):ns.value=[]}catch(e){ns.value=[]}finally{rs.value=!1}},gs=async()=>{var e,a
|
|
vs.value=!0
|
|
try{const e=await T.getMyIssues(1,100)
|
|
if(e.success&&e.data){os.value=e.data.issues||[]
|
|
for(const e of os.value){if(e.appIconId&&!ps.value.has(e.id))try{const a=await T.getIcon(e.appIconId)
|
|
ps.value.set(e.id,a)}catch(s){}if(e.screenshotAttachmentIds&&e.screenshotAttachmentIds.length>0){const a=new Map
|
|
for(const t of e.screenshotAttachmentIds){const e=ws(t)
|
|
try{const s=await T.getAttachmentImage(e)
|
|
s&&a.set(e,s)}catch(s){}}a.size>0&&Is.value.set(e.id,a)}}}else os.value=[],e.message&&Za(e.message,3e3)}catch(s){os.value=[],Za((null==(a=null==(e=s.response)?void 0:e.data)?void 0:a.message)||s.message||"加载问题报告失败",3e3)}finally{vs.value=!1}},ks=e=>ps.value.get(e),ws=e=>{var a,s
|
|
return"string"==typeof e?e:e&&"object"==typeof e?(null==(a=e._id)?void 0:a.toString())||(null==(s=e.id)?void 0:s.toString())||e.toString():String(e)},Is=a(new Map),Ts=e=>{const a=Is.value.get(e.id)
|
|
if(!a)return[]
|
|
const s=[]
|
|
if(e.screenshotAttachmentIds&&e.screenshotAttachmentIds.length>0)for(const t of e.screenshotAttachmentIds){const e=ws(t),i=a.get(e)
|
|
i&&s.push(i)}return s},Ds=a([]),Cs=a(0),Ns=a(!1),_s=()=>{Ns.value=!1,Ds.value=[]},xs=e=>{switch(e){case"pending":return"待处理"
|
|
case"resolved":return"已解决"
|
|
case"rejected":return"已驳回"
|
|
default:return e}},As=e=>{switch(e){case"crash":return"打开崩溃"
|
|
case"crack_failed":return"破解失效"
|
|
case"update_request":return"请求更新"
|
|
case"unexpected_error":return"意外错误"
|
|
default:return e}},Rs=a([]),Us=s(()=>cs.value.filter(e=>!e.read).length),Es=s(()=>Rs.value.filter(e=>!e.read).length),Ms=a(0),js=async()=>{try{const e=await T.getUnreadMessageCount()
|
|
e.success&&e.data&&(Ms.value=e.data.count||0)}catch(e){Ms.value=0}},qs=s(()=>[{id:"system",label:"系统通知",icon:"fluent-color:mail-alert-32",badge:Es.value>0?String(Es.value):null},{id:"myReplies",label:"我回复的",icon:"fluent-color:people-chat-48",badge:null},{id:"repliesToMe",label:"回复我的",icon:"fluent-color:pin-48",badge:Us.value>0?String(Us.value):null},{id:"messages",label:"私信",icon:"fluent-color:comment-multiple-32",badge:Ms.value>0?Ms.value>99?"99+":String(Ms.value):null},{id:"issues",label:"问题报告",icon:"fluent-color:person-feedback-48",badge:null}]),Ls=async e=>{if(is.value.has(e))is.value.delete(e)
|
|
else{is.value.add(e)
|
|
const s=Rs.value.find(a=>a.id===e)
|
|
if(s&&!s.read)try{await T.markNotificationAsRead(e),s.read=!0}catch(a){}}},Ss=e=>{const a=new Date(e),s=(new Date).getTime()-a.getTime(),t=Math.floor(s/6e4),i=Math.floor(s/36e5),l=Math.floor(s/864e5)
|
|
return t<1?"刚刚":t<60?`${t}分钟前`:i<24?`${i}小时前`:l<7?`${l}天前`:a.toLocaleDateString("zh-CN")},$s=async()=>{cs.value.forEach(e=>{e.read=!0})},Bs=()=>{D.push("/messages")},Vs=e=>{switch(e){case"forum_request_approved":return"fluent-color:shield-checkmark-16"
|
|
case"forum_request_rejected":return"fluent-color:calendar-cancel-16"
|
|
case"report_processed":return"fluent-color:flag-48"
|
|
case"issue_processed":return"fluent-color:person-feedback-48"
|
|
default:return"mdi:bell"}},Ws=async()=>{try{(await T.markAllNotificationsAsRead()).success&&Rs.value.forEach(e=>{e.read=!0})}catch(e){}},zs=()=>{fs()},Os=()=>{fs(),gs(),ys(),hs(),bs(),js()}
|
|
return t(ts,()=>{"system"===ts.value?fs():"issues"===ts.value?gs():"myReplies"===ts.value?ys():"repliesToMe"===ts.value?hs():"messages"===ts.value&&bs()}),i(()=>{Os()
|
|
const e=setInterval(()=>{js()},5e3),a=setInterval(()=>{Os()},3e4)
|
|
window.addEventListener("system-notifications-changed",zs)
|
|
const s=()=>{js()}
|
|
window.addEventListener("messages:conversations-updated",s)
|
|
const t=()=>{document.hidden||js()}
|
|
document.addEventListener("visibilitychange",t)
|
|
const i=()=>{js()}
|
|
window.addEventListener("focus",i),l(()=>{clearInterval(a),clearInterval(e),window.removeEventListener("system-notifications-changed",zs),window.removeEventListener("messages:conversations-updated",s),document.removeEventListener("visibilitychange",t),window.removeEventListener("focus",i)})}),n(()=>{ps.value.forEach(e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)}),ps.value.clear(),Is.value.forEach(e=>{e.forEach(e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)}),e.clear()}),Is.value.clear()}),(e,a)=>(g(),c("div",A,[o("div",R,[a[37]||(a[37]=o("div",{class:"page-header"},[o("h1",{class:"page-title"},"消息通知"),o("p",{class:"page-description"},"查看你的举报处理、回复和互动通知")],-1)),o("div",U,[o("div",E,[(g(!0),c(r,null,u(qs.value,e=>(g(),c("button",{key:e.id,class:v(["tab-button",{active:ts.value===e.id}]),onClick:a=>ts.value=e.id},[d(w,{icon:e.icon,class:"tab-icon"},null,8,["icon"]),o("span",null,m(e.label),1),e.badge?(g(),c("span",j,m(e.badge),1)):p("",!0)],10,M))),128))])]),o("div",q,["system"===ts.value?(g(),c("div",L,[o("div",S,[a[2]||(a[2]=o("h2",null,"系统通知",-1)),o("div",$,[o("button",{class:"btn btn-secondary",onClick:Ws,disabled:0===Es.value},[d(w,{icon:"mdi:check-all",class:"btn-icon"}),a[1]||(a[1]=f(" 全部标记为已读 ",-1))],8,B)])]),o("div",V,[(g(!0),c(r,null,u(Rs.value,e=>(g(),c("div",{key:e.id,class:v(["notification-item system-notification",{unread:!e.read,[e.type]:!0,expanded:is.value.has(e.id)}])},[o("div",W,[d(w,{icon:Vs(e.type),class:"icon"},null,8,["icon"]),e.read?p("",!0):(g(),c("span",z))]),o("div",O,[o("div",F,[o("h3",P,m(e.title),1),o("span",G,m(Ss(e.createTime)),1)]),o("div",H,[o("div",J,m(e.content),1),is.value.has(e.id)?(g(),c("div",K,["issue_processed"===e.type&&e.issueDetails?(g(),c("div",Q,[o("div",X,[a[3]||(a[3]=o("span",{class:"detail-label"},"应用:",-1)),o("span",Y,m(e.issueDetails.appName)+" ("+m(e.issueDetails.appVersion)+")",1)]),o("div",Z,[a[4]||(a[4]=o("span",{class:"detail-label"},"Bundle ID:",-1)),o("span",ee,[o("code",null,m(e.issueDetails.bundleId),1)])]),o("div",ae,[a[5]||(a[5]=o("span",{class:"detail-label"},"问题类型:",-1)),o("span",se,m(e.issueDetails.errorTypeText||As(e.issueDetails.errorType)),1)]),o("div",te,[a[6]||(a[6]=o("span",{class:"detail-label"},"问题描述:",-1)),o("div",ie,m(e.issueDetails.content),1)]),o("div",le,[a[7]||(a[7]=o("span",{class:"detail-label"},"处理状态:",-1)),o("span",ne,m("resolved"===e.issueDetails.status?"已解决":"已驳回"),1)]),e.issueDetails.resolutionNote?(g(),c("div",ce,[a[8]||(a[8]=o("span",{class:"detail-label"},"处理说明:",-1)),o("div",oe,m(e.issueDetails.resolutionNote),1)])):p("",!0)])):p("",!0),"report_processed"===e.type&&e.reportDetails?(g(),c("div",de,[o("div",re,[a[9]||(a[9]=o("span",{class:"detail-label"},"被举报人:",-1)),o("span",ue,m(e.reportDetails.reportedUser),1)]),o("div",ve,[a[10]||(a[10]=o("span",{class:"detail-label"},"举报类型:",-1)),o("div",pe,[(g(!0),c(r,null,u(e.reportDetails.reportTypes||[],e=>(g(),c("span",{key:e,class:v(["report-type-tag",y(_)(e)])},m(y(x)(e)),3))),128))])]),o("div",me,[a[11]||(a[11]=o("span",{class:"detail-label"},"被举报内容:",-1)),o("div",fe,m(e.reportDetails.content),1)]),e.reportDetails.adminComment?(g(),c("div",ye,[a[12]||(a[12]=o("span",{class:"detail-label"},"管理员回复:",-1)),o("div",he,m(e.reportDetails.adminComment),1)])):p("",!0)])):p("",!0),"forum_request_approved"!==e.type&&"forum_request_rejected"!==e.type||!e.requestDetails?p("",!0):(g(),c("div",be,[o("div",ge,[a[13]||(a[13]=o("span",{class:"detail-label"},"应用名称:",-1)),o("span",ke,m(e.requestDetails.appName),1)]),o("div",we,[a[14]||(a[14]=o("span",{class:"detail-label"},"Bundle ID:",-1)),o("span",Ie,[o("code",null,m(e.requestDetails.bundleId),1)])]),"forum_request_rejected"===e.type&&e.requestDetails.reason?(g(),c("div",Te,[a[15]||(a[15]=o("span",{class:"detail-label"},"拒绝原因:",-1)),o("div",De,m(e.requestDetails.reason),1)])):p("",!0)]))])):p("",!0)]),o("div",Ce,[o("button",{class:"expand-btn",onClick:h(a=>Ls(e.id),["stop"])},[d(w,{icon:is.value.has(e.id)?"mdi:chevron-up":"mdi:chevron-down",class:"expand-icon"},null,8,["icon"]),o("span",null,m(is.value.has(e.id)?"收起":"展开"),1)],8,Ne)])])],2))),128)),0===Rs.value.length?(g(),c("div",_e,[d(w,{icon:"mdi:bell-off-outline",class:"empty-icon"}),a[16]||(a[16]=o("p",null,"暂无系统通知",-1))])):p("",!0)])])):p("",!0),"issues"===ts.value?(g(),c("div",xe,[a[26]||(a[26]=o("div",{class:"section-header"},[o("h2",null,"问题报告"),o("p",{class:"section-description"},"查看你提交的问题报告和处理状态")],-1)),o("div",Ae,[vs.value?(g(),c("div",Re,[...a[17]||(a[17]=[o("div",{class:"spinner"},null,-1),o("p",null,"加载问题报告中...",-1)])])):0===os.value.length?(g(),c("div",Ue,[d(w,{icon:"mdi:bug-check",class:"empty-icon"}),a[18]||(a[18]=o("p",null,"暂无问题报告",-1))])):(g(!0),c(r,{key:2},u(os.value,e=>(g(),c("div",{key:e.id,class:v(["notification-item issue-item",{expanded:is.value.has(e.id)}])},[o("div",Ee,[e.appIconId&&ks(e.id)?(g(),c("img",{key:0,src:ks(e.id),alt:e.appName,class:"app-icon"},null,8,Me)):(g(),c("div",je,m(e.appName.charAt(0).toUpperCase()),1))]),o("div",qe,[o("div",Le,[o("h3",Se,m(e.appName)+" ("+m(e.appVersion)+")",1),o("span",$e,m(Ss(e.submitTime)),1)]),o("div",Be,[o("div",{class:v(["issue-status",e.status])},[d(w,{icon:"resolved"===e.status?"mdi:check-circle":"rejected"===e.status?"mdi:close-circle":"mdi:clock-outline",class:"status-icon"},null,8,["icon"]),o("span",null,m(xs(e.status)),1)],2),o("div",Ve,[a[19]||(a[19]=o("span",{class:"issue-type-label"},"问题类型:",-1)),o("span",We,m(As(e.errorType)),1)]),o("div",ze,m(e.content),1),is.value.has(e.id)?(g(),c("div",Oe,[o("div",Fe,[o("div",Pe,[a[20]||(a[20]=o("span",{class:"detail-label"},"Bundle ID:",-1)),o("span",Ge,[o("code",null,m(e.bundleId),1)])]),o("div",He,[a[21]||(a[21]=o("span",{class:"detail-label"},"系统信息:",-1)),o("span",Je,m(e.osVersion)+" ("+m(e.architecture)+")",1)]),e.screenshotAttachmentIds&&e.screenshotAttachmentIds.length>0?(g(),c("div",Ke,[a[22]||(a[22]=o("span",{class:"detail-label"},"截图:",-1)),d(N,{images:Ts(e),"show-index":!1,columns:4,"max-width":80,onImageClick:a=>((e,a)=>{const s=Ts(e)
|
|
Ds.value=s,Cs.value=a,Ns.value=!0})(e,a)},null,8,["images","onImageClick"])])):p("",!0),e.fileAttachmentIds&&e.fileAttachmentIds.length>0?(g(),c("div",Qe,[a[23]||(a[23]=o("span",{class:"detail-label"},"文件:",-1)),o("div",Xe,[(g(!0),c(r,null,u(e.fileAttachmentIds,(e,a)=>(g(),c("div",{key:`file-${a}`,class:"attachment-item",onClick:a=>(async e=>{try{const a=ws(e),s=await T.getAttachmentDownloadUrl(a)
|
|
if(!s)return
|
|
const t=document.createElement("a")
|
|
t.href=s.url,t.download=s.name,t.target="_blank",document.body.appendChild(t),t.click(),document.body.removeChild(t)}catch(a){}})(e)},[d(w,{icon:"mdi:file",class:"attachment-icon"}),o("span",Ze,"文件 "+m(a+1),1),d(w,{icon:"mdi:download",class:"attachment-action-icon",title:"下载"})],8,Ye))),128))])])):p("",!0),e.resolutionNote?(g(),c("div",ea,[a[24]||(a[24]=o("span",{class:"detail-label"},"处理说明:",-1)),o("div",aa,m(e.resolutionNote),1)])):p("",!0),e.processedAt?(g(),c("div",sa,[a[25]||(a[25]=o("span",{class:"detail-label"},"处理时间:",-1)),o("span",ta,m(Ss(e.processedAt)),1)])):p("",!0)])])):p("",!0)]),o("div",ia,[o("button",{class:"expand-btn",onClick:h(a=>Ls(e.id),["stop"])},[d(w,{icon:is.value.has(e.id)?"mdi:chevron-up":"mdi:chevron-down",class:"expand-icon"},null,8,["icon"]),o("span",null,m(is.value.has(e.id)?"收起":"展开"),1)],8,la)])])],2))),128))])])):p("",!0),"myReplies"===ts.value?(g(),c("div",na,[a[29]||(a[29]=o("div",{class:"section-header"},[o("h2",null,"我回复的"),o("p",{class:"section-description"},"查看你回复的帖子和回复")],-1)),o("div",ca,[(g(!0),c(r,null,u(ls.value,e=>(g(),c("div",{key:e.id,class:"notification-item",onClick:a=>{e.postId}},[o("div",da,[d(w,{icon:"fluent-color:people-chat-48",class:"icon"})]),o("div",ra,[o("div",ua,[o("h3",va,m(e.postTitle),1),o("span",pa,m(Ss(e.replyTime)),1)]),o("div",ma,[a[27]||(a[27]=o("p",{class:"notification-text"},"你的回复:",-1)),o("div",fa,[o("div",ya,m(e.content),1),e.hasNewReplies?(g(),c("div",ha,[d(w,{icon:"mdi:message-reply-text"}),o("span",null,"有 "+m(e.newReplyCount)+" 条新回复",1)])):p("",!0)])])])],8,oa))),128)),0===ls.value.length?(g(),c("div",ba,[d(w,{icon:"mdi:reply-outline",class:"empty-icon"}),a[28]||(a[28]=o("p",null,"暂无回复记录",-1))])):p("",!0)])])):p("",!0),"messages"===ts.value?(g(),c("div",ga,[o("div",ka,[a[31]||(a[31]=o("h2",null,"私信",-1)),o("button",{class:"btn btn-primary",onClick:Bs},[d(w,{icon:"fluent-color:comment-multiple-32",class:"btn-icon"}),a[30]||(a[30]=f(" 前往私信 ",-1))])]),o("div",wa,[(g(!0),c(r,null,u(ns.value,e=>(g(),c("div",{key:e.id,class:v(["notification-item message-item",{unread:!e.read}]),onClick:Bs},[o("div",Ia,[d(w,{icon:"fluent-color:comment-multiple-32",class:"icon"}),e.read?p("",!0):(g(),c("span",Ta))]),o("div",Da,[o("div",Ca,[o("h3",Na,[o("span",_a,m(e.fromUserName),1),a[32]||(a[32]=o("span",null,"发来私信",-1))]),o("span",xa,m(Ss(e.sendTime)),1)]),o("div",Aa,[o("div",Ra,m(e.content),1)])])],2))),128)),0===ns.value.length?(g(),c("div",Ua,[d(w,{icon:"fluent-color:comment-multiple-32",class:"empty-icon"}),a[33]||(a[33]=o("p",null,"暂无私信",-1))])):p("",!0)])])):p("",!0),"repliesToMe"===ts.value?(g(),c("div",Ea,[o("div",Ma,[a[35]||(a[35]=o("h2",null,"回复我的",-1)),o("div",ja,[o("button",{class:"btn btn-secondary",onClick:$s,disabled:0===Us.value},[d(w,{icon:"mdi:check-all",class:"btn-icon"}),a[34]||(a[34]=f(" 全部标记为已读 ",-1))],8,qa)])]),o("div",La,[(g(!0),c(r,null,u(cs.value,e=>(g(),c("div",{key:e.id,class:v(["notification-item",{unread:!e.read}]),onClick:a=>(async e=>{e.read=!0})(e)},[o("div",$a,[d(w,{icon:"fluent-color:people-list-16",class:"icon"}),e.read?p("",!0):(g(),c("span",Ba))]),o("div",Va,[o("div",Wa,[o("h3",za,[o("span",Oa,m(e.userName),1),e.replyToUserName?(g(),c("span",Fa," 回复了 @"+m(e.replyToUserName),1)):(g(),c("span",Pa,"回复了你的帖子"))]),o("span",Ga,m(Ss(e.replyTime)),1)]),o("div",Ha,[o("p",Ja,'在帖子"'+m(e.postTitle)+'"中:',1),o("div",Ka,[o("div",Qa,m(e.content),1)])])])],10,Sa))),128)),0===cs.value.length?(g(),c("div",Xa,[d(w,{icon:"mdi:message-outline",class:"empty-icon"}),a[36]||(a[36]=o("p",null,"暂无回复通知",-1))])):p("",!0)])])):p("",!0)])]),d(C,{visible:Ns.value,images:Ds.value,"initial-index":Cs.value,"show-navigation":!0,"show-info":!0,onClose:_s,onIndexChange:a[0]||(a[0]=e=>Cs.value=e)},null,8,["visible","images","initial-index"]),d(I,{toasts:y(Ya),onRemove:y(ss)},null,8,["toasts","onRemove"])]))}}),[["__scopeId","data-v-c0bc7132"]])
|
|
export{Ya as default}
|