2 行
7.8 KiB
JavaScript
可执行文件
2 行
7.8 KiB
JavaScript
可执行文件
import{_ as e,r as a,o as s,b as t,c as l,d as c,w as o,Z as n,S as i,K as d,L as r,f as u,i as g,T as m,V as f,ad as y,Q as _,W as p,a4 as h,j as M,ae as k,m as v,n as w,C as b,D as A,F as C,u as T,q as x,x as $,t as V,y as D,A as L,af as z,ag as R}from"./index-fL1SRM2N.js";const U=e({setup(){const{proxy:e}=D(),t=a("all"),l=a([{type:"all",name:"全部",unread:0},{type:"system",name:"系统",unread:0},{type:"order",name:"订单",unread:0},{type:"income",name:"收入",unread:0},{type:"notice",name:"公告",unread:0}]),c=a([]),o=a(!1),u=a(!0),g=a(1),m=a(!1),f=a([{name:"全部已读",value:"mark_all_read"},{name:"清空消息",value:"clear_all"}]),y=a(!1),_=a(null),p=()=>{g.value=1,u.value=!0,c.value=[],h()},h=async()=>{if(!o.value&&u.value){o.value=!0;try{const a={page:g.value,limit:20,type:"all"===t.value?"":t.value},s=await e.$api.message.getMessageList(a);if(1===s.code){const e=s.data.list||[];1===g.value?c.value=e:c.value.push(...e),u.value=e.length>=a.limit,g.value++}else n({title:s.msg||"加载失败",icon:"none"})}catch(a){n({title:"加载失败",icon:"none"})}finally{o.value=!1,i()}}},M=async()=>{try{const a=await e.$api.message.getUnreadCount();if(1===a.code){const e=a.data;l.value.forEach(a=>{a.unread=e[a.type]||0})}}catch(a){console.error("加载未读数量失败:",a)}},k=async a=>{try{await e.$api.message.markAsRead(a)}catch(s){console.error("标记已读失败:",s)}},v=()=>{M()},w=async()=>{try{const a=await e.$api.message.markAllAsRead("all"===t.value?"":t.value);1===a.code?(n({title:"操作成功",icon:"success"}),c.value.forEach(e=>{e.is_read=!0}),v()):n({title:a.msg||"操作失败",icon:"none"})}catch(a){n({title:"操作失败",icon:"none"})}},b=async()=>{d({title:"确认清空",content:"确定要清空所有消息吗?此操作不可恢复。",success:async a=>{if(a.confirm)try{const a=await e.$api.message.clearAllMessages("all"===t.value?"":t.value);1===a.code?(n({title:"清空成功",icon:"success"}),p(),v()):n({title:a.msg||"清空失败",icon:"none"})}catch(s){n({title:"清空失败",icon:"none"})}}})};return s(()=>{h(),M()}),{currentTab:t,messageTabs:l,messageList:c,loading:o,hasMore:u,page:g,showMoreActions:m,moreActions:f,showMessageDetail:y,selectedMessage:_,switchTab:e=>{t.value!==e&&(t.value=e,p())},refreshMessages:p,loadMessages:h,loadUnreadCount:M,loadMore:()=>{h()},openMessage:async e=>{_.value=e,y.value=!0,e.is_read||(await k(e.id),e.is_read=!0,v())},markAsRead:k,updateUnreadCount:v,handleMoreAction:async e=>{switch(e.value){case"mark_all_read":await w();break;case"clear_all":await b()}},markAllAsRead:w,clearAllMessages:b,handleMessageAction:async e=>{switch(e.type){case"view_order":r({url:`/pages/order/detail?order_no=${e.data.order_no}`});break;case"view_income":r({url:`/pages/income/detail?id=${e.data.income_id}`});break;case"contact_service":break;default:e.url&&r({url:e.url})}y.value=!1},getMessageIcon:e=>({system:"setting",order:"file-text",income:"account",notice:"volume",warning:"warning",success:"checkmark-circle"}[e]||"mail"),getMessageColor:e=>({system:"#3c9cff",order:"#ff9800",income:"#4caf50",notice:"#9c27b0",warning:"#f44336",success:"#4caf50"}[e]||"#666"),getMessageTypeText:e=>({system:"系统消息",order:"订单消息",income:"收入消息",notice:"公告通知",warning:"警告",success:"成功"}[e]||"消息"),getMessageTypeClass:e=>({"type-system":"system"===e,"type-order":"order"===e,"type-income":"income"===e,"type-notice":"notice"===e,"type-warning":"warning"===e,"type-success":"success"===e})}},onLoad(){},onPullDownRefresh(){this.refreshMessages()}},[["render",function(e,a,s,n,i,d){const r=t(l("u-icon"),u),D=g,U=t(l("u-navbar"),m),I=L,S=t(l("u-list-item"),f),j=t(l("u-loading-icon"),y),E=t(l("u-empty"),_),q=t(l("u-list"),p),F=t(l("u-action-sheet"),h),K=z,P=R,Q=t(l("u-button"),M),W=t(l("u-popup"),k);return v(),c(D,{class:"message-container"},{default:o(()=>[w(U,{title:"消息中心","border-bottom":!1,background:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)"},"title-color":"#fff"},{default:o(()=>[w(D,{slot:"right",class:"nav-actions"},{default:o(()=>[w(r,{name:"more-dot-fill",size:"20",color:"#fff",onClick:a[0]||(a[0]=e=>n.showMoreActions=!0)})]),_:1})]),_:1},8,["background"]),w(D,{class:"message-tabs"},{default:o(()=>[(v(!0),b(C,null,A(n.messageTabs,e=>(v(),c(D,{key:e.type,class:V(["tab-item",{active:n.currentTab===e.type}]),onClick:a=>n.switchTab(e.type)},{default:o(()=>[w(I,{class:"tab-text"},{default:o(()=>[x($(e.name),1)]),_:2},1024),e.unread>0?(v(),c(D,{key:0,class:"tab-badge"},{default:o(()=>[x($(e.unread>99?"99+":e.unread),1)]),_:2},1024)):T("",!0)]),_:2},1032,["class","onClick"]))),128))]),_:1}),w(D,{class:"message-list"},{default:o(()=>[w(q,{onScrolltolower:n.loadMore,"show-scrollbar":!1},{default:o(()=>[(v(!0),b(C,null,A(n.messageList,a=>(v(),c(S,{key:a.id,class:V(["message-item",{unread:!a.is_read}]),onClick:e=>n.openMessage(a)},{default:o(()=>[w(D,{class:"message-content"},{default:o(()=>[w(D,{class:"message-header"},{default:o(()=>[w(D,{class:"message-info"},{default:o(()=>[w(D,{class:"message-icon"},{default:o(()=>[w(r,{name:n.getMessageIcon(a.type),size:"20",color:n.getMessageColor(a.type)},null,8,["name","color"])]),_:2},1024),w(D,{class:"message-meta"},{default:o(()=>[w(I,{class:"message-title"},{default:o(()=>[x($(a.title),1)]),_:2},1024),w(I,{class:"message-time"},{default:o(()=>[x($(e.$utils.formatTime(a.created_at)),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),w(D,{class:"message-status"},{default:o(()=>[a.is_read?T("",!0):(v(),c(D,{key:0,class:"unread-dot"})),w(r,{name:"arrow-right",size:"14",color:"#c8c9cc"})]),_:2},1024)]),_:2},1024),w(D,{class:"message-body"},{default:o(()=>[w(I,{class:"message-summary"},{default:o(()=>[x($(a.summary||a.content),1)]),_:2},1024)]),_:2},1024),a.tags&&a.tags.length>0?(v(),c(D,{key:0,class:"message-tags"},{default:o(()=>[(v(!0),b(C,null,A(a.tags,e=>(v(),c(D,{key:e,class:"message-tag"},{default:o(()=>[x($(e),1)]),_:2},1024))),128))]),_:2},1024)):T("",!0)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128)),n.hasMore?(v(),c(S,{key:0},{default:o(()=>[w(D,{class:"load-more"},{default:o(()=>[n.loading?(v(),c(j,{key:0,mode:"circle"})):T("",!0),w(I,{class:"load-text"},{default:o(()=>[x($(n.loading?"加载中...":"上拉加载更多"),1)]),_:1})]),_:1})]),_:1})):T("",!0),n.loading||0!==n.messageList.length?T("",!0):(v(),c(E,{key:1,mode:"message",text:"暂无消息"}))]),_:1},8,["onScrolltolower"])]),_:1}),w(F,{modelValue:n.showMoreActions,"onUpdate:modelValue":a[1]||(a[1]=e=>n.showMoreActions=e),actions:n.moreActions,onClick:n.handleMoreAction},null,8,["modelValue","actions","onClick"]),w(W,{modelValue:n.showMessageDetail,"onUpdate:modelValue":a[3]||(a[3]=e=>n.showMessageDetail=e),mode:"bottom","border-radius":"20",height:"70%"},{default:o(()=>[n.selectedMessage?(v(),c(D,{key:0,class:"message-detail-popup"},{default:o(()=>[w(D,{class:"detail-header"},{default:o(()=>[w(I,{class:"detail-title"},{default:o(()=>[x($(n.selectedMessage.title),1)]),_:1}),w(r,{name:"close",size:"20",onClick:a[2]||(a[2]=e=>n.showMessageDetail=!1)})]),_:1}),w(D,{class:"detail-meta"},{default:o(()=>[w(I,{class:"detail-time"},{default:o(()=>[x($(e.$utils.formatTime(n.selectedMessage.created_at)),1)]),_:1}),w(D,{class:V(["detail-type",n.getMessageTypeClass(n.selectedMessage.type)])},{default:o(()=>[x($(n.getMessageTypeText(n.selectedMessage.type)),1)]),_:1},8,["class"])]),_:1}),w(P,{"scroll-y":"",class:"detail-content"},{default:o(()=>[w(K,{nodes:n.selectedMessage.content},null,8,["nodes"])]),_:1}),n.selectedMessage.actions&&n.selectedMessage.actions.length>0?(v(),c(D,{key:0,class:"detail-actions"},{default:o(()=>[(v(!0),b(C,null,A(n.selectedMessage.actions,e=>(v(),c(Q,{key:e.type,type:e.style||"default",size:"small",onClick:a=>n.handleMessageAction(e)},{default:o(()=>[x($(e.text),1)]),_:2},1032,["type","onClick"]))),128))]),_:1})):T("",!0)]),_:1})):T("",!0)]),_:1},8,["modelValue"])]),_:1})}],["__scopeId","data-v-06d401b1"]]);export{U as default};
|