Files
zyt/server/public/admin/assets/SendPanel-CFrKBAgW.js
T
2026-07-03 12:07:34 +08:00

2 lines
10 KiB
JavaScript

import{o as te,q as c,r as w,F as I,G as ae,ae as ne,O as T,aa as ie,v as l,w as se,D as t,u as b,bH as j,s as x,T as F,bI as K,bJ as N,P as $,K as oe,av as ue,b7 as re,b8 as de,aw as me,a1 as pe,bE as fe,bF as ve,L as C,bt as ce,b9 as ge,b6 as _e,M as V,p as ye}from"./.pnpm-BGZW0UGg.js";import{r as y,i as _,_ as ke}from"./index-CeIwrh_6.js";import{u as G}from"./file-tQw_m7Aj.js";function $e(r){return y.get({url:"/qywx.message/session_list",params:r})}function Be(r){return y.get({url:"/qywx.message/archive_list",params:r})}function De(r){return y.post({url:"/qywx.message/mark_read",params:{session_id:r}})}function We(r){return y.post({url:"/qywx.message/send",params:r})}function Ae(r){return y.get({url:"/qywx.message/send_task_list",params:r})}function Oe(r,h=""){return y.get({url:"/qywx.message/send_task_detail",params:{task_id:r,cursor:h}})}function Pe(r=""){return y.get({url:"/qywx.message/staff_list",params:{keyword:r}})}function je(){return y.get({url:"/qywx.message/archive_status"})}function Ke(r=5,h=!1){return y.post({url:"/qywx.message/pull_archive",params:{max_batches:r,download:h}})}async function H(r,h){const M=new FormData;return M.append("file",r),M.append("type",h),y.post({url:"/qywx.message/upload_to_qywx",data:M,headers:{"Content-Type":"multipart/form-data"}})}const we={class:"send-panel"},be={key:0,class:"attachment-list"},xe=["src"],Ve={class:"attachment-filename"},he={class:"attachment-filename"},qe={class:"attachment-filename"},Ce={class:"send-toolbar"},Me={class:"toolbar-left"},Se={class:"toolbar-right"},Ue={class:"link-picurl-row"},Ee={key:0,class:"mini-preview"},Le=te({__name:"SendPanel",props:{canSendMessage:{type:Boolean}},emits:["send"],setup(r,{emit:h}){const M=r,J=h,S=V(""),d=V([]),L=V(!1),f=V(null),z=V("image"),U=V(!1),v=V({title:"",url:"",picurl:"",desc:""}),E=V(!1),m=V({title:"",appid:"",page:"",pic_media_id:"",preview:""}),B=ye(()=>{if(!M.canSendMessage||L.value)return!1;const o=S.value.trim().length>0,e=d.value.some(s=>!s.uploading);return o||e});function R(o){if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}z.value=o;const e=o==="image"?"image/*":o==="video"?"video/*":"*/*";f.value&&(f.value.accept=e,f.value.value="",f.value.click())}function Q(){z.value="link-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}function X(){z.value="mini-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}async function Y(o){var g;const s=(g=o.target.files)==null?void 0:g[0];if(!s)return;const n=z.value;if(n==="link-cover"){try{const u=await G(s,s.name);v.value.picurl=u.uri||u.url,_.msgSuccess("封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}if(n==="mini-cover"){try{const u=await H(s,"image");m.value.pic_media_id=u.media_id;const k=await G(s,s.name);m.value.preview=k.uri||k.url,_.msgSuccess("小程序封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}const i=n==="file"?"":URL.createObjectURL(s),p={msgtype:n,uploading:!0,preview:i,file_name:s.name};d.value.push(p);const q=d.value.length-1;try{const k=(await H(s,n)).media_id;n==="image"?p.image={media_id:k}:n==="video"?p.video={media_id:k}:p.file={media_id:k},p.uploading=!1}catch(u){_.msgError((u==null?void 0:u.message)||"上传失败"),d.value.splice(q,1)}}function Z(o){const e=d.value[o];e!=null&&e.preview&&e.preview.startsWith("blob:")&&URL.revokeObjectURL(e.preview),d.value.splice(o,1)}function ee(){const{title:o,url:e,picurl:s,desc:n}=v.value;if(!o.trim()||!e.trim()||!s.trim()){_.msgWarning("请完整填写标题、链接地址与封面图");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"link",link:{title:o,url:e,picurl:s,desc:n}}),U.value=!1,v.value={title:"",url:"",picurl:"",desc:""}}function le(){const{title:o,appid:e,page:s,pic_media_id:n}=m.value;if(!o.trim()||!e.trim()||!s.trim()||!n){_.msgWarning("请完整填写小程序信息");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"miniprogram",miniprogram:{title:o,appid:e,page:s,pic_media_id:n}}),E.value=!1,m.value={title:"",appid:"",page:"",pic_media_id:"",preview:""}}async function D(){if(!B.value)return;const o=d.value.filter(n=>!n.uploading).map(n=>{const i={msgtype:n.msgtype};return n.image&&(i.image=n.image),n.video&&(i.video=n.video),n.file&&(i.file=n.file),n.link&&(i.link=n.link),n.miniprogram&&(i.miniprogram=n.miniprogram),i}),e={},s=S.value.trim();s&&(e.text={content:s}),o.length&&(e.attachments=o),L.value=!0;try{await J("send",e),S.value="",d.value.forEach(n=>{var i;(i=n.preview)!=null&&i.startsWith("blob:")&&URL.revokeObjectURL(n.preview)}),d.value=[]}finally{L.value=!1}}return(o,e)=>{const s=ie,n=se,i=oe,p=re,q=pe,g=_e,u=ge,k=ce;return c(),w("div",we,[d.value.length?(c(),w("div",be,[(c(!0),w(I,null,ae(d.value,(a,W)=>{var A,O,P;return c(),w("div",{key:W,class:ne(["attachment-item","attachment-"+a.msgtype])},[a.msgtype==="image"?(c(),T(s,{key:0,src:a.preview||"",fit:"cover",class:"attachment-preview"},null,8,["src"])):a.msgtype==="video"?(c(),w("video",{key:1,src:a.preview||"",class:"attachment-preview",muted:""},null,8,xe)):a.msgtype==="file"?(c(),w(I,{key:2},[l(n,{size:20},{default:t(()=>[l(b(j))]),_:1}),x("span",Ve,F(a.file_name),1)],64)):a.msgtype==="link"?(c(),w(I,{key:3},[l(n,{size:20},{default:t(()=>[l(b(K))]),_:1}),x("span",he,F(((A=a.link)==null?void 0:A.title)||((O=a.link)==null?void 0:O.url)),1)],64)):a.msgtype==="miniprogram"?(c(),w(I,{key:4},[l(n,{size:20},{default:t(()=>[l(b(N))]),_:1}),x("span",qe,F((P=a.miniprogram)==null?void 0:P.title),1)],64)):$("",!0),a.uploading?(c(),T(i,{key:5,type:"primary",link:"",loading:"",size:"small"})):(c(),T(i,{key:6,class:"attachment-remove",type:"danger",link:"",onClick:Ie=>Z(W)},{default:t(()=>[l(n,null,{default:t(()=>[l(b(ue))]),_:1})]),_:1},8,["onClick"]))],2)}),128))])):$("",!0),l(p,{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=a=>S.value=a),type:"textarea",rows:3,placeholder:"在此输入消息,Ctrl+Enter 发送。该消息以代发员工身份发给客户,员工手机端确认后送达。",resize:"none",onKeydown:de(me(D,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),x("div",Ce,[x("div",Me,[l(q,{content:"图片",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[1]||(e[1]=a=>R("image"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(fe))]),_:1})]),_:1})]),_:1}),l(q,{content:"视频",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[2]||(e[2]=a=>R("video"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(ve))]),_:1})]),_:1})]),_:1}),l(q,{content:"文件",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[3]||(e[3]=a=>R("file"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(j))]),_:1})]),_:1})]),_:1}),l(q,{content:"链接",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[4]||(e[4]=a=>U.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(K))]),_:1})]),_:1})]),_:1}),l(q,{content:"小程序",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[5]||(e[5]=a=>E.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(N))]),_:1})]),_:1})]),_:1})]),x("div",Se,[e[18]||(e[18]=x("span",{class:"send-hint"}," 员工手机端确认后送达客户 · Ctrl+Enter 快速发送 ",-1)),l(i,{type:"primary",disabled:!B.value,loading:L.value,onClick:D},{default:t(()=>[...e[17]||(e[17]=[C(" 发送 ",-1)])]),_:1},8,["disabled","loading"])])]),x("input",{ref_key:"fileInputRef",ref:f,type:"file",hidden:"",onChange:Y},null,544),l(k,{modelValue:U.value,"onUpdate:modelValue":e[11]||(e[11]=a=>U.value=a),title:"添加链接",width:"480px"},{footer:t(()=>[l(i,{onClick:e[10]||(e[10]=a=>U.value=!1)},{default:t(()=>[...e[20]||(e[20]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:ee},{default:t(()=>[...e[21]||(e[21]=[C("确定",-1)])]),_:1})]),default:t(()=>[l(u,{"label-width":"80px",model:v.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:v.value.title,"onUpdate:modelValue":e[6]||(e[6]=a=>v.value.title=a),maxlength:"128"},null,8,["modelValue"])]),_:1}),l(g,{label:"链接地址"},{default:t(()=>[l(p,{modelValue:v.value.url,"onUpdate:modelValue":e[7]||(e[7]=a=>v.value.url=a),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[x("div",Ue,[l(p,{modelValue:v.value.picurl,"onUpdate:modelValue":e[8]||(e[8]=a=>v.value.picurl=a),placeholder:"https://..."},null,8,["modelValue"]),l(i,{onClick:Q},{default:t(()=>[...e[19]||(e[19]=[C("本地上传",-1)])]),_:1})])]),_:1}),l(g,{label:"描述"},{default:t(()=>[l(p,{modelValue:v.value.desc,"onUpdate:modelValue":e[9]||(e[9]=a=>v.value.desc=a),type:"textarea",rows:2,maxlength:"512"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(k,{modelValue:E.value,"onUpdate:modelValue":e[16]||(e[16]=a=>E.value=a),title:"添加小程序",width:"480px"},{footer:t(()=>[l(i,{onClick:e[15]||(e[15]=a=>E.value=!1)},{default:t(()=>[...e[22]||(e[22]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",disabled:!m.value.pic_media_id||!m.value.appid,onClick:le},{default:t(()=>[...e[23]||(e[23]=[C(" 确定 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[l(u,{"label-width":"100px",model:m.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:m.value.title,"onUpdate:modelValue":e[12]||(e[12]=a=>m.value.title=a)},null,8,["modelValue"])]),_:1}),l(g,{label:"appid"},{default:t(()=>[l(p,{modelValue:m.value.appid,"onUpdate:modelValue":e[13]||(e[13]=a=>m.value.appid=a),placeholder:"wx..."},null,8,["modelValue"])]),_:1}),l(g,{label:"页面路径"},{default:t(()=>[l(p,{modelValue:m.value.page,"onUpdate:modelValue":e[14]||(e[14]=a=>m.value.page=a),placeholder:"/pages/index/index"},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[l(i,{onClick:X},{default:t(()=>[C(F(m.value.pic_media_id?"已选择 · 重新选择":"上传封面(必填)"),1)]),_:1}),m.value.preview?(c(),w("div",Ee,[l(s,{src:m.value.preview,fit:"cover"},null,8,["src"])])):$("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ze=ke(Le,[["__scopeId","data-v-5fcb6856"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:ze},Symbol.toStringTag,{value:"Module"}));export{ze as S,je as a,Ke as b,Pe as c,De as d,Be as e,We as f,Ae as g,Oe as h,Ne as i,$e as q};