ConversationHistory-YcWKP0q5.js 12 KB

1
  1. import{o as i,d as m,e as y,t as T,r as h,l as S,c as D,q as ne,f as v,s as se,v as oe,h as f,x as ae,y as L,z as ie,M as re,A as F,B as ce,p as q,F as B,i as z,j as R,n as K,g as w,C as le,D as W,m as Q,w as I,u as ue,E as _e}from"./index-D7EzIPOl.js";import de from"./LayoutExperience-CGvCltx9.js";import me from"./ContentContainer-1s0MojDx.js";import{C as pe}from"./ChatAsideMenu-BcEghxhi.js";import{_ as j}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{g as he}from"./get-icon-4-dialog-CQ_Fafrl.js";import{j as Y,a as ye}from"./utils-CJiJ4i2_.js";import{a as ve}from"./api-conversation-board-8Nht59jA.js";import{u as fe}from"./use-all-agents-BU_ggOwx.js";import"./Header-DbAcUNNR.js";import"./Header.vue_vue_type_style_index_0_scoped_28cad075_lang-vo9c-gGd.js";import"./use-current-user-1K3rWxDY.js";/* empty css */import"./icon-map-MpRwWyE4.js";const ge={},ke={class:"conversation-history-title"};function Ce(e,n){return i(),m("div",ke,[y("div",null,T(e.$t("conversation.chat_history")),1)])}const be=j(ge,[["render",Ce],["__scopeId","data-v-dc2dadf4"]]),$e={class:"conversation-search-input"},Te={class:"search-input-content"},He={class:"search-input-icon icon-search"},Se={class:"search-input-container"},Ie=["placeholder"],De={__name:"HistorySearchInput",emits:["search"],setup(e,{emit:n}){const s=n,t=h(""),c=S(()=>t.value.length!==0),p=a=>{t.value=a.target.value},r=a=>{t.value=a.target.value},l=a=>{a.keyCode===13&&s("search",t.value)},o=()=>{t.value="",s("search",t.value)};return(a,_)=>{const k=D("icon-search"),d=D("icon-close");return i(),m("div",$e,[y("div",Te,[ne(a.$slots,"default",{},void 0,!0),y("div",He,[v(k)]),y("div",Se,[se(y("input",{type:"text",class:"search-input",placeholder:a.$t("conversation.search_history"),"onUpdate:modelValue":_[0]||(_[0]=C=>t.value=C),onInput:p,onChange:r,onKeyup:l},null,40,Ie),[[oe,t.value]])]),c.value?(i(),m("div",{key:0,class:"search-input-icon icon-clear",onClick:o},[v(d)])):f("",!0)])])}}},xe=j(De,[["__scopeId","data-v-cf0c02af"]]);var Ae={exports:{}};(function(e,n){(function(s,t){e.exports=t()})(ae,function(){return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var t=["th","st","nd","rd"],c=s%100;return"["+s+(t[(c-20)%10]||t[c]||t[0])+"]"}}})})(Ae);const Le=1e3*60,we=Le*60,Z=we*24,Me=Z*30,Ne=()=>{const e=new Date;return e.setHours(0,0,0,0),e.getTime()},ze=(e,n)=>{if(!n)return L(e).format("HH:mm");if(n==="zh")return L(e).locale("zh-cn").format("HH:mm");if(n==="en")return L(e).format("HH:mm")},je=(e,n)=>n?n==="zh"?L(e).locale("zh-cn").format("dddd"):L(e).format("dddd"):L(e).format("dddd"),Oe=(e,n)=>n?n==="zh"?L(e).locale("zh-cn").format("MM-DD"):L(e).format("MM-DD"):L(e).format("MM-DD"),Be=e=>{const n=e.agent_id;if(!n)return Promise.reject(new Error("前端异常:Invalid Agent ID"));const s=`/api/agent/${n}/sessions`,t={};return"per_page"in e&&(t.limit=e.per_page/1),"page"in e&&(t.page=e.page/1),"search"in e&&e.search&&(t.keyword=e.search),ie({url:s,method:"get",params:t})},Ee=e=>(Y({conversation_ids:[e]}),new Promise((s,t)=>{setTimeout(()=>{s({code:200,data:!0,msg:""})},1e3)})),Re={__name:"BtnHistoryItemDelete",props:{target_id:String},emits:["deleteSuccess"],setup(e,{emit:n}){const s=e,t=n;h(1),h("");const c=()=>{re.info({title:"您确定要删除吗?",okText:"确定",cancelText:"取消",hideCancel:!1,onOk(r){},async onBeforeOk(){try{return await p()===200}catch{return!1}},onCancel(){}})},p=()=>new Promise((r,l)=>{Ee(s.target_id).then(o=>{o.code/1===200?(F.success("删除成功"),t("deleteSuccess"),r(200)):F.warning(o.msg)}).catch(o=>{F.warning(o.msg),l(o)})});return(r,l)=>{const o=D("icon-delete");return i(),m("span",{onClick:c},[v(o,{color:"danger"})])}}},Ve=["src"],qe={class:"history-item-intro"},Fe={class:"history-item-actions"},Pe={class:"history-item-time"},Ue={class:"history-item-delete"},Je={__name:"HistoryItem",props:{history:Object,index:Number},emits:["active","delete"],setup(e,{emit:n}){const s=e,t=n,c=h(!1),p=he(),r=ce(),l=S(()=>s.history.client_field_content_type==="label"),o=S(()=>s.history.client_field_content_type==="content"),a=S(()=>o.value&&!c.value),_=S(()=>{const u={"conversation-history-item":!0};return u[`item-${s.index}`]=!0,u[`item-${s.history.id}`]=!0,u[s.history.client_field_timestamp_type]=!0,l.value&&(u["conversation-history-section-title"]=!0),o.value&&(u["conversation-history-section-data"]=!0),u}),k=S(()=>{const u=s.history.client_field_timestamp_type,H=s.history.create_time,x=r.value;return u==="today"?ze(H,x):u==="month"?je(H,x):u==="earlier"?Oe(H,x):""}),d=()=>{t("active",s.history.id)},C=()=>{c.value=!0};return(u,H)=>(i(),m(B,null,[l.value?(i(),m("div",{key:0,class:q(_.value)},[e.history.client_field_timestamp_type==="today"?(i(),m(B,{key:0},[z(T(u.$t("conversation.history_today")),1)],64)):f("",!0),e.history.client_field_timestamp_type==="month"?(i(),m(B,{key:1},[z(T(u.$t("conversation.history_month")),1)],64)):f("",!0),e.history.client_field_timestamp_type==="earlier"?(i(),m(B,{key:2},[z(T(u.$t("conversation.history_earlier")),1)],64)):f("",!0)],2)):f("",!0),a.value?(i(),m("div",{key:1,class:q(_.value)},[y("div",{class:"history-item-icon",onClick:d},[y("img",{src:R(p)},null,8,Ve)]),y("div",qe,[y("div",{class:"history-item-intro-title",onClick:d},T(e.history.name),1)]),y("div",Fe,[y("span",Pe,T(k.value),1),y("span",Ue,[v(Re,{target_id:e.history.id,onDeleteSuccess:C},null,8,["target_id"])])])],2)):f("",!0)],64))}},Ge=j(Je,[["__scopeId","data-v-603672eb"]]),Ke={key:0,class:"history-item-icon can-loadmore"},We={key:1,class:"history-item-icon"},Qe={__name:"HistoryLoadMore",props:{can_loadmore:Boolean},emits:["loadmore"],setup(e,{emit:n}){const s=e,t=n,c=S(()=>{const r={"conversation-history-item":!0};return r["load-more"]=!0,r}),p=()=>{s.can_loadmore&&t("loadmore")};return(r,l)=>(i(),m("div",{class:q(c.value),onClick:p},[e.can_loadmore?(i(),m("div",Ke,T(r.$t("conversation.history_loadmore")),1)):f("",!0),e.can_loadmore?f("",!0):(i(),m("div",We,T(r.$t("conversation.history_nomore")),1))],2))}},Ye=j(Qe,[["__scopeId","data-v-8ff074a0"]]),Ze={class:"conversation-history-list-section"},Xe={__name:"HistoryList",props:{list:Array,can_loadmore:Boolean},emits:["active","delete","loadmore"],setup(e,{emit:n}){const s=n,t=S(()=>"conversation-history-list"),c=l=>{s("active",l)},p=l=>{s("delete",l)},r=()=>{s("loadmore")};return(l,o)=>(i(),m("div",Ze,[y("div",{class:q(t.value)},[(i(!0),m(B,null,K(e.list,(a,_)=>(i(),w(Ge,{key:a.id,history:a,index:_,onActive:c,onDelete:p},null,8,["history","index"]))),128)),v(Ye,{can_loadmore:e.can_loadmore,onLoadmore:r},null,8,["can_loadmore"])],2)]))}},et=j(Xe,[["__scopeId","data-v-965964ed"]]);function tt(e){const n=h(1),s=h(""),t=h([]),c=fe(),p=()=>({});return{getAgentList:()=>{const l=c.agents;if(l.length!==0){typeof e=="function"&&e(l),t.value=l;return}const o=p();n.value=2,s.value="",ve(o).then(a=>{if(a.code/1===200){const _=a.data;_.length!==0&&typeof e=="function"&&e(_),t.value=_,c.setList(_),n.value=3,s.value="success"}else n.value=4,s.value=err.message}).catch(a=>{console.log(a),n.value=5,s.value=a.msg})},api_status:n,api_message:s,list_agents:t}}function nt(e){const n=Y(e);W.setItem(n)}function G(){const e=W.getItem(),n=ye(e);return n===null?null:n}const st=le("recent_history_search_type",{state:()=>({search_type:G()}),actions:{getType(){return this.search_type.length===0?(this.search_type=G(),this.search_type):this.search_type},setType(e){this.search_type=e,nt(e)}}}),ot={__name:"HistoryTypeDropdown",props:{list_status:Number},emits:["typeSelected"],setup(e,{emit:n}){const s=e,t=st(),{api_status:c,api_message:p,list_agents:r,getAgentList:l}=tt(d=>{var C;if(t.search_type){const u=((C=t.search_type)==null?void 0:C.id)||"";let H=null;const x=d.length;for(let M=0;M<x;M++){const A=d[M];if(A.id===u){H=A;break}}k(H||d[0])}else k(d[0])}),o=n,a=S(()=>{var d;return((d=t==null?void 0:t.search_type)==null?void 0:d.name)||""}),_=S(()=>s.list_status===2),k=d=>{t.setType(d),o("typeSelected",d)};return Q(()=>{l()}),(d,C)=>{const u=D("a-button"),H=D("a-spin"),x=D("a-doption"),M=D("a-dropdown");return i(),w(M,{trigger:"hover",defaultValue:a.value},{content:I(()=>[(i(!0),m(B,null,K(R(r),(A,V)=>(i(),w(x,{key:A.id,disabled:_.value,value:A.name,onClick:P=>k(A)},{default:I(()=>[z(T(A.name),1)]),_:2},1032,["disabled","value","onClick"]))),128))]),default:I(()=>[R(c)===1?(i(),w(u,{key:0,class:"history-type-btn",type:"text"},{default:I(()=>[z(T(a.value),1)]),_:1})):f("",!0),R(c)===2?(i(),w(u,{key:1,class:"history-type-btn",type:"text"},{default:I(()=>[v(H,{size:16})]),_:1})):f("",!0),R(c)===3?(i(),w(u,{key:2,class:"history-type-btn",type:"text"},{default:I(()=>[z(T(a.value),1)]),_:1})):f("",!0)]),_:1},8,["defaultValue"])}}},at=j(ot,[["__scopeId","data-v-db0ef953"]]),it={class:"conversation-history-container"},rt={class:"conversation-history-main"},ct={key:1,class:"infomations-container"},lt={key:2,class:"infomations-container"},ut={key:3,class:"infomations-container"},_t={key:4,class:"infomations-container"},dt={__name:"ConversationHistoryContainer",emits:["historyActive"],setup(e,{emit:n}){const s=n,t=h(1),c=h(50),p=h(""),r=h(""),l=h(!0),o=h(1),a=h(""),_=h([]),k=h(0),d=h(0),C=h(0),u=Ne(),x=u-Z-Me;function M(b){b.forEach((g,E)=>{let N=null;const $=g,U=new Date($.create_date).getTime();let O=null;if(isNaN(U)){const J=new Date($.updated_time).getTime();isNaN(J)?O=Date.now():O=J}else O=U;O>=u?(k.value===0&&(N={client_field_content_type:"label",client_field_timestamp_type:"today",id:"today"}),$.client_field_timestamp_type="today",$.client_field_content_type="content",k.value=k.value+1):O<u&&O>x?(d.value===0&&(N={client_field_content_type:"label",client_field_timestamp_type:"month",id:"month"}),$.client_field_timestamp_type="month",$.client_field_content_type="content",d.value=d.value+1):(C.value===0&&(N={client_field_content_type:"label",client_field_timestamp_type:"earlier",id:"earlier"}),$.client_field_timestamp_type="earlier",$.client_field_content_type="content",C.value=C.value+1),N&&_.value.push(N),_.value.push($)})}const A=()=>({search:p.value,page:t.value,per_page:c.value,agent_id:r.value}),V=()=>{const b=A();o.value=2,a.value="",Be(b).then(g=>{if(g.code/1===200){const E=g.data;E.length<c.value?l.value=!1:l.value=!0,M(E),o.value=3,a.value="success"}else o.value=4,a.value=g.msg}).catch(g=>{o.value=5,a.value=g.message})},P=()=>{o.value!==2&&l.value&&(t.value=t.value+1,V())},X=b=>{s("historyActive",{agent_id:r.value,target_id:b})},ee=b=>{o.value!==2&&(p.value=b,t.value=1,_.value=[],V())},te=b=>{o.value!==2&&b&&(k.value=0,d.value=0,C.value=0,r.value=b.id,t.value=1,_.value=[],V())};return Q(()=>{}),(b,g)=>{const E=D("a-spin"),N=D("a-empty"),$=D("a-result");return i(),m("div",it,[g[1]||(g[1]=y("div",{class:"conversation-history-left"},null,-1)),y("div",rt,[v(be),v(xe,{onSearch:ee},{default:I(()=>[v(at,{onTypeSelected:te,list_status:o.value},null,8,["list_status"])]),_:1}),_.value.length!==0?(i(),w(et,{key:0,list:_.value,can_loadmore:l.value,onLoadmore:P,onActive:X},null,8,["list","can_loadmore"])):f("",!0),o.value===1||o.value===2?(i(),m("div",ct,[v(E,{size:32})])):f("",!0),o.value===3&&_.value.length===0?(i(),m("div",lt,[v(N,null,{default:I(()=>[z(T(b.$t("conversation.history_empty")),1)]),_:1})])):f("",!0),o.value===4?(i(),m("div",ut,[v($,{status:"warning",title:a.value},null,8,["title"])])):f("",!0),o.value===5?(i(),m("div",_t,[v($,{status:"error",title:a.value},null,8,["title"])])):f("",!0),g[0]||(g[0]=y("div",{class:"conversation-history-placeholder"},null,-1))]),g[2]||(g[2]=y("div",{class:"conversation-history-right"},null,-1))])}}},mt=j(dt,[["__scopeId","data-v-6c33da9b"]]),At={__name:"ConversationHistory",setup(e){const n=ue(),s=_e(),t=S(()=>s.value==="light"?{backgroundImage:"url(../../../assets/chat/history-bg.png)",backgroundRepeat:"no-repeat",backgroundSize:"cover"}:{}),c=({target_id:p,agent_id:r})=>{n.push({path:"/chat/qa",query:{session:p,agent:r}})};return(p,r)=>(i(),w(de,null,{default:I(()=>[v(me,{containerStyle:t.value},{default:I(()=>[v(pe),v(mt,{onHistoryActive:c})]),_:1},8,["containerStyle"])]),_:1}))}};export{At as default};