2 lines
7.9 KiB
JavaScript
2 lines
7.9 KiB
JavaScript
import{L as le,d as te,o as se,b as _,e as l,m as s,z as n,s as ne,y as oe,r as d,C as c,T as ie,g as y,j as r,F,h as O,t as u,p as A,a4 as ue,W as de,k as U,J as x,X as I,_ as re}from"./index-eVF4AHSu.js";import{n as pe}from"./pagination-BgSlm-mj.js";const w=le();async function ve(i){try{const p=await w.get("/admin/message/list",i);return pe(p,b=>b,(i==null?void 0:i.size)??20)}catch(p){return console.warn("[admin/message/list] fallback:",p),{records:[],total:0,current:1,pages:0}}}async function ce(i){return w.get(`/admin/message/detail/${i}`)}async function ge(i,p,b=2){await w.putJson(`/admin/message/reply/${i}`,{replyContent:p,status:b})}async function me(i){await w.delete(`/admin/message/delete/${i}`)}async function fe(i){await w.postJson("/admin/message/batch-delete",i)}async function ye(i){await w.putJson(`/admin/message/read/${i}`,{})}const be={class:"message-manage"},_e={class:"page-header"},we={class:"filter-bar"},ke={class:"pagination-bar"},Ce={key:0,class:"message-detail"},Ve={class:"detail-row"},Me={class:"detail-row"},xe={class:"detail-row"},ze={class:"detail-row"},he={class:"detail-row"},Te={class:"detail-row"},Se={class:"detail-row"},$e={class:"detail-content"},De={key:0,class:"detail-content reply-section"},Le={class:"reply-text"},Ue={key:0,class:"reply-dialog"},Be={class:"reply-meta"},je={class:"reply-original"},Je=te({__name:"MessageManage",setup(i){const p=d(!1),b=d([]),B=d(0),z=d(1),h=d(20),T=d(""),S=d(""),k=d(!1),o=d(null),C=d(!1),V=d(""),$=d(!1),v=d(null),W=[{label:"全部类型",value:""},{label:"加盟咨询",value:"join"},{label:"合作洽谈",value:"cooperate"},{label:"意见反馈",value:"feedback"},{label:"其他",value:"other"}],X=[{label:"全部状态",value:""},{label:"待处理",value:"0"},{label:"处理中",value:"1"},{label:"已回复",value:"2"},{label:"已关闭",value:"3"}];async function m(){p.value=!0;try{const t=await ve({type:T.value||void 0,status:S.value||void 0,page:z.value,size:h.value});b.value=t.records,B.value=t.total}catch(t){console.warn("[MessageManage] fetchMessageList failed:",t)}finally{p.value=!1}}se(m);function D(t){return{join:"加盟咨询",cooperate:"合作洽谈",feedback:"意见反馈",other:"其他"}[t]||t}function L(t){return{join:"danger",cooperate:"warning",feedback:"",other:"info"}[t]||"info"}function j(t){return{0:"待处理",1:"处理中",2:"已回复",3:"已关闭"}[String(t)]||String(t||"")}function J(t){return{0:"danger",1:"warning",2:"success",3:"info"}[String(t)]||"info"}async function q(t){try{o.value=await ce(t.id),k.value=!0,(t.status==="0"||t.status==="unread")&&(await ye(t.id),t.status="1")}catch{o.value=t,k.value=!0}}function G(t){v.value=t,V.value=t.replyContent||"",C.value=!0}async function H(){if(!v.value||!V.value.trim()){x.warning("请输入回复内容");return}$.value=!0;try{await ge(v.value.id,V.value.trim(),2),x.success("回复成功"),C.value=!1,await m()}catch(t){console.error("[MessageManage] replyMessage failed:",t),x.error("回复失败")}finally{$.value=!1}}async function K(t){try{await I.confirm("确定删除该留言?","确认删除",{type:"warning"}),await me(t.id),x.success("删除成功"),await m()}catch{}}async function Q(){try{await I.confirm("确定删除所有已读留言?","批量删除",{type:"warning"}),await fe({status:"read"}),x.success("删除成功"),await m()}catch{}}return(t,e)=>{const f=c("el-button"),N=c("el-option"),E=c("el-select"),M=c("el-tag"),g=c("el-table-column"),Y=c("el-table"),Z=c("el-pagination"),P=c("el-dialog"),ee=c("el-input"),ae=ie("loading");return y(),_("div",be,[l("div",_e,[e[10]||(e[10]=l("h2",{class:"page-title"},"留言管理",-1)),s(f,{type:"danger",onClick:Q},{default:n(()=>[...e[9]||(e[9]=[r("清除已读",-1)])]),_:1})]),l("div",we,[s(E,{modelValue:T.value,"onUpdate:modelValue":e[0]||(e[0]=a=>T.value=a),onChange:m,style:{width:"140px"}},{default:n(()=>[(y(),_(F,null,O(W,a=>s(N,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),s(E,{modelValue:S.value,"onUpdate:modelValue":e[1]||(e[1]=a=>S.value=a),onChange:m,style:{width:"120px"}},{default:n(()=>[(y(),_(F,null,O(X,a=>s(N,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),ne((y(),oe(Y,{data:b.value,class:"admin-table"},{default:n(()=>[s(g,{label:"类型",width:"100"},{default:n(({row:a})=>[s(M,{type:L(a.type),size:"small"},{default:n(()=>[r(u(D(a.type)),1)]),_:2},1032,["type"])]),_:1}),s(g,{prop:"name",label:"姓名",width:"100"}),s(g,{prop:"phone",label:"电话",width:"130"}),s(g,{prop:"email",label:"邮箱",width:"180","show-overflow-tooltip":""}),s(g,{prop:"content || message",label:"内容","min-width":"200","show-overflow-tooltip":""}),s(g,{label:"状态",width:"90"},{default:n(({row:a})=>[s(M,{type:J(a.status),size:"small"},{default:n(()=>[r(u(j(a.status)),1)]),_:2},1032,["type"])]),_:1}),s(g,{prop:"createTime",label:"时间",width:"160"}),s(g,{label:"操作",width:"180",fixed:"right"},{default:n(({row:a})=>[s(f,{size:"small",icon:A(ue),onClick:R=>q(a),text:""},{default:n(()=>[...e[11]||(e[11]=[r("查看",-1)])]),_:1},8,["icon","onClick"]),s(f,{size:"small",type:"primary",onClick:R=>G(a),text:""},{default:n(()=>[...e[12]||(e[12]=[r("回复",-1)])]),_:1},8,["onClick"]),s(f,{size:"small",icon:A(de),type:"danger",onClick:R=>K(a),text:""},{default:n(()=>[...e[13]||(e[13]=[r("删除",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[ae,p.value]]),l("div",ke,[s(Z,{"current-page":z.value,"onUpdate:currentPage":e[2]||(e[2]=a=>z.value=a),"page-size":h.value,"onUpdate:pageSize":e[3]||(e[3]=a=>h.value=a),total:B.value,layout:"total, prev, pager, next",onCurrentChange:m},null,8,["current-page","page-size","total"])]),s(P,{modelValue:k.value,"onUpdate:modelValue":e[5]||(e[5]=a=>k.value=a),title:"留言详情",width:"600px","destroy-on-close":""},{footer:n(()=>[s(f,{onClick:e[4]||(e[4]=a=>k.value=!1)},{default:n(()=>[...e[23]||(e[23]=[r("关闭",-1)])]),_:1})]),default:n(()=>[o.value?(y(),_("div",Ce,[l("div",Ve,[e[14]||(e[14]=l("span",{class:"detail-label"},"类型",-1)),s(M,{type:L(o.value.type),size:"small"},{default:n(()=>[r(u(D(o.value.type)),1)]),_:1},8,["type"])]),l("div",Me,[e[15]||(e[15]=l("span",{class:"detail-label"},"姓名",-1)),l("span",null,u(o.value.name),1)]),l("div",xe,[e[16]||(e[16]=l("span",{class:"detail-label"},"电话",-1)),l("span",null,u(o.value.phone),1)]),l("div",ze,[e[17]||(e[17]=l("span",{class:"detail-label"},"邮箱",-1)),l("span",null,u(o.value.email||"-"),1)]),l("div",he,[e[18]||(e[18]=l("span",{class:"detail-label"},"公司",-1)),l("span",null,u(o.value.company||"-"),1)]),l("div",Te,[e[19]||(e[19]=l("span",{class:"detail-label"},"状态",-1)),s(M,{type:J(o.value.status),size:"small"},{default:n(()=>[r(u(j(o.value.status)),1)]),_:1},8,["type"])]),l("div",Se,[e[20]||(e[20]=l("span",{class:"detail-label"},"留言时间",-1)),l("span",null,u(o.value.createTime),1)]),l("div",$e,[e[21]||(e[21]=l("span",{class:"detail-label"},"留言内容",-1)),l("p",null,u(o.value.content||o.value.message),1)]),o.value.replyContent?(y(),_("div",De,[e[22]||(e[22]=l("span",{class:"detail-label"},"回复内容",-1)),l("p",Le,u(o.value.replyContent),1)])):U("",!0)])):U("",!0)]),_:1},8,["modelValue"]),s(P,{modelValue:C.value,"onUpdate:modelValue":e[8]||(e[8]=a=>C.value=a),title:"回复留言",width:"500px","destroy-on-close":""},{footer:n(()=>[s(f,{onClick:e[7]||(e[7]=a=>C.value=!1)},{default:n(()=>[...e[24]||(e[24]=[r("取消",-1)])]),_:1}),s(f,{type:"primary",loading:$.value,onClick:H},{default:n(()=>[...e[25]||(e[25]=[r("提交回复",-1)])]),_:1},8,["loading"])]),default:n(()=>[v.value?(y(),_("div",Ue,[l("div",Be,[l("strong",null,u(v.value.name),1),s(M,{size:"small",type:L(v.value.type)},{default:n(()=>[r(u(D(v.value.type)),1)]),_:1},8,["type"])]),l("p",je,u(v.value.content||v.value.message),1),s(ee,{modelValue:V.value,"onUpdate:modelValue":e[6]||(e[6]=a=>V.value=a),type:"textarea",rows:5,placeholder:"请输入回复内容..."},null,8,["modelValue"])])):U("",!0)]),_:1},8,["modelValue"])])}}}),Pe=re(Je,[["__scopeId","data-v-ae3ad42f"]]);export{Pe as default};
|