Files
wecom_it_smart_desk/frontend-agent/dist_bak/assets/Workspace-PwgdYnA0.js
T

3 lines
160 KiB
JavaScript
Raw Normal View History

import{p as Pe,q as ht,r as b,s as V,d as be,j as se,k as a,c as l,v as oe,a as e,t as v,e as M,F as ge,x as we,y as Ve,f as ye,g as $e,w as E,l as H,_ as ke,z as Be,A as Ut,o as Ke,B as Xe,C as A,b as C,D as qe,E as ie,G as Nt,H as jt,I as Me,J as De,K as St,L as yt,M as He,N as Mt,O as Wt,P as qt,m as At,Q as bt,R as Ft,S as Ht,T as Kt,U as Xt,V as Yt,W as kt,X as nt,Y as tt,Z as Rt,$ as Qt,u as ut,a0 as Gt,a1 as Jt,a2 as Zt,a3 as en,a4 as tn,a5 as nn,a6 as an}from"./index-BKZMRyW7.js";import{A as sn}from"./AiAssistantPanel-B0MZq-4C.js";async function on(t){const n={};return await Pe.get("/quick-replies",{params:n})}async function ln(t){return await Pe.post("/quick-replies",t)}async function rn(t,n){return await Pe.put(`/quick-replies/${t}`,n)}async function cn(t){await Pe.delete(`/quick-replies/${t}`)}const wt=ht("quickReply",()=>{const t=b([]),n=b(!1),r=V(()=>{const h={};for(const _ of t.value)h[_.category]||(h[_.category]=[]),h[_.category].push(_);return h}),d=V(()=>Object.keys(r.value));async function u(){try{n.value=!0;const h=await on();t.value=h.items}catch(h){console.error("获取快速回复模板失败:",h)}finally{n.value=!1}}async function c(h){try{const _=await ln(h);return await u(),_}catch(_){return console.error("创建快速回复模板失败:",_),null}}async function s(h,_){try{const O=await rn(h,_);return await u(),O}catch(O){return console.error("更新快速回复模板失败:",O),null}}async function o(h){try{await cn(h),await u()}catch(_){console.error("删除快速回复模板失败:",_)}}function i(h,_){let O=h;for(const[P,U]of Object.entries(_))O=O.replaceAll(`{${P}}`,U);return O}return{templates:t,loading:n,templatesByCategory:r,categories:d,fetchTemplates:u,addTemplate:c,editTemplate:s,removeTemplate:o,replaceVariables:i}}),Lt="it_desk_theme";function ct(t){document.documentElement.setAttribute("data-theme",t),localStorage.setItem(Lt,t)}function _t(){const t=localStorage.getItem(Lt);return t==="dark"||t==="light"?t:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function un(){const t=_t();return ct(t),{applyTheme:ct,getInitialTheme:_t}}const Et=ht("theme",()=>{const t=b("light");function n(){const d=t.value==="light"?"dark":"light";t.value=d,ct(d)}function r(){const d=_t();t.value=d,ct(d)}return{currentTheme:t,toggleTheme:n,initTheme:r}});async function dn(t){return await Pe.get("/todo-items",{params:t})}async function vn(t){return await Pe.get("/todo-items",{params:{...t,_force:1}})}async function mn(t,n){return await Pe.put(`/todo-items/${t}/status`,{status:n})}const $t=ht("todo",()=>{const t=b([]),n=b(null),r=b(!1),d=b("all"),u=V(()=>t.value.filter(P=>P.priority==="urgent").length),c=V(()=>t.value.filter(P=>P.priority==="high").length),s=V(()=>t.value.filter(P=>P.status==="pending"||P.status==="processing"));async function o(){try{r.value=!0;const P=d.value!=="all"?{type:d.value}:void 0,U=await dn(P);t.value=U.items}catch(P){console.error("获取待办列表失败:",P),t.value=[]}finally{r.value=!1}}async function i(){try{r.value=!0;const P=d.value!=="all"?{type:d.value}:void 0,U=await vn(P);t.value=U.items}catch(P){console.error("刷新待办列表失败:",P),t.value=[]}finally{r.value=!1}}async function h(P){d.value=P,await o()}function _(P){n.value=P}async function O(P,U){try{await mn(P,U),await o()}catch(w){console.error("更新待办状态失败:",w)}}return{todoList:t,currentTodoItem:n,loading:r,activeType:d,urgentCount:u,highCount:c,pendingTodos:s,fetchTodoList:o,refreshList:i,setActiveType:h,selectTodoItem:_,updateTodoItemStatus:O}}),fn={class:"conv-avatar-wrap"},pn=["src"],gn=["title"],yn={class:"conversation-info"},_n={class:"conversation-name"},hn={key:0,title:"已置顶"},bn={key:1,title:"代办"},kn={class:"text-ellipsis"},wn={key:2,class:"tag-badge tag-badge-vip"},$n={key:3,class:"tag-badge tag-badge-hand-raise"},Cn={key:4,class:"tag-badge tag-badge-need-intervene"},xn={key:6,class:"tag-badge tag-badge-agent"},In={key:7,class:"tag-badge tag-badge-pending-close"},Tn={class:"priority-icons"},Sn=["title"],Mn={class:"conversation-summ
`)}const G=["😀","😃","😄","😁","😆","😅","🤣","😂","🙂","😊","😇","🥰","😍","🤩","😘","😗","😚","😙","😋","😛","😜","🤪","😝","🤑","🤗","🤭","🤫","🤔","🤐","🤨","😐","😑","😶","😏","😒","🙄","😬","😮","🤯","😲","😳","🥺","😢","😭","😤","😠","😡","🤬","👍","👎","👏","🙌","🤝","💪","","🤞","","🧡","💛","💚","💙","💜","💯",""],N=V(()=>{const R=h.currentConversation;if(!R)return[];const $=[R.employee_id];return R.participants&&$.push(...R.participants.map(S=>S.id)),$}),g=V(()=>{const R=s.value;return R?R.selectionStart!==R.selectionEnd&&R.selectionEnd-R.selectionStart>=5:!1}),Q=V(()=>c.value.trim().length>0);function de(){h.fetchConversations()}function he(R){c.value+=R,L.value=!1,De(()=>{var $;($=s.value)==null||$.focus()})}let ee=0,J=0,ce=0;Me(()=>h.pendingReplyText,R=>{R&&(c.value=R,h.pendingReplyText="",De(()=>{var $;($=s.value)==null||$.focus()}))}),Me(c,()=>{var $;const R=($=h.currentConversation)==null?void 0:$.id;R&&c.value.trim()&&_(R)}),Me(()=>F.finalText+"|"+F.interimText,()=>{if(F.isListening){const R=K.value,$=Y(R)?" ":"";c.value=R+$+F.finalText+F.interimText}}),Me(()=>F.isListening,(R,$)=>{if($&&!R){const S=K.value,x=Y(S)?" ":"";c.value=S+x+F.finalText,Z()}});function te(){if(!F.isSupported){ie.warning("当前浏览器不支持语音识别请使用 Chrome Edge");return}F.isListening?(k(),ie.success("语音识别已停止")):(K.value=c.value,B(),F.isListening?ie.info("正在聆听..."):F.error&&ie.error(F.error))}function ue(R){R.ctrlKey&&(R.key==="d"||R.key==="D")&&(R.preventDefault(),te())}function D(R){var $;R.preventDefault(),P.value=!0,ee=R.clientY,J=(($=i.value)==null?void 0:$.offsetHeight)||80,ce=O.value,document.addEventListener("mousemove",j),document.addEventListener("mouseup",le),document.body.style.cursor="row-resize",document.body.style.userSelect="none"}function j(R){if(!P.value)return;const $=ee-R.clientY,x=Math.max(80,Math.min(400,J+$))-J,T=Math.max(60,Math.min(300,ce+x));O.value=T}function le(){P.value=!1,document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",le),document.body.style.cursor="",document.body.style.userSelect=""}function q(R){if(I.ghostText.value){if(R.key==="Tab"&&!R.shiftKey){R.preventDefault(),I.acceptCompletion();return}if(R.key==="Tab"&&R.shiftKey){R.preventDefault(),I.acceptCompletionWord();return}if(R.key==="Escape"){R.preventDefault(),I.clearCompletion();return}}if(R.key==="Enter"&&R.ctrlKey&&!R.shiftKey){R.preventDefault(),R.stopPropagation(),X();return}R.key==="Enter"&&!R.shiftKey&&(R.preventDefault(),X())}async function X(){var T;const R=c.value.trim(),$=p.hasImages.value,S=R.length>0;if(!$&&!S)return;const x=(T=h.currentConversation)==null?void 0:T.id;if(!x){ie.warning("请先选择一个会话");return}$&&await me(x),S&&u("send",R),c.value="",O.value=60}async function me(R){var T,f;ie.info("发送中...");const $=[...p.images.value];let S=0,x=0;for(const ae of $)try{const re=await at(ae.blob),ve=await nt(R,"[图片]","image",{media_url:re.url,file_name:re.filename,file_size:re.file_size});h.messages.push(ve),S++}catch(re){x++,console.error("[ReplyBox] 图片发送失败:",re);const ve=d((f=(T=re==null?void 0:re.response)==null?void 0:T.data)==null?void 0:f.detail)||(re==null?void 0:re.message)||"未知错误";ie.error(`图片发送失败:${ve}`)}p.clearAll(),S>0&&x===0?ie.success("发送成功"):S>0&&x>0&&ie.warning(`${S} 张发送成功,${x} 张发送失败`)}async function _e(R){const $=R.clipboardData;if(!$)return;const S=$.items;if(!(!S||S.length===0))for(const x of Array.from(S)){if(x.kind==="file"){R.preventDefault();const T=x.getAsFile();if(!T)continue;T.type.startsWith("image/")||T.name.match(/\.(jpg|jpeg|png|gif|bmp|webp|svg|ico|tiff?)$/i)?await pe(T):await ne(T);return}if(x.type.startsWith("image/")&&x.kind==="string"){R.preventDefault();const T=x.getAsFile();if(T){await pe(T);return}}if(x.kind==="string"&&x.type.startsWith("image/")){R.preventDefault();const T=x.getAsFile();if(T){awa