ConversationHistory-ozFlE9qr.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 I,q as ne,f as v,s as se,v as oe,h as f,x as ae,y as A,z as ie,M as re,A as F,B as ce,p as q,F as B,i as N,j as R,n as K,g as L,C as le,D as W,m as Q,w as D,u as ue,E as _e}from"./index-Di93BIpz.js";import de from"./LayoutExperience-DXEeplnd.js";import me from"./ContentContainer-BC1TFqsB.js";import{C as pe}from"./ChatAsideMenu-Saz-_Rp4.js";import{_ as z}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-DMhTDZj3.js";import{a as ve}from"./api-conversation-board-DB4DQgOb.js";import{u as fe}from"./use-all-agents-DFzYpAsH.js";import"./Header-D92csM4C.js";import"./Header.vue_vue_type_style_index_0_scoped_28cad075_lang-vo9c-gGd.js";import"./use-current-user-CLMTYrg7.js";/* empty css */import"./icon-map-MpRwWyE4.js";const ge={},ke={class:"conversation-history-title"};function be(e,n){return i(),m("div",ke,[y("div",null,T(e.$t("conversation.chat_history")),1)])}const Ce=z(ge,[["render",be],["__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(""),l=S(()=>t.value.length!==0),p=a=>{t.value=a.target.value},r=a=>{t.value=a.target.value},c=a=>{a.keyCode===13&&s("search",t.value)},o=()=>{t.value="",s("search",t.value)};return(a,_)=>{const k=I("icon-search"),d=I("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]=b=>t.value=b),onInput:p,onChange:r,onKeyup:c},null,40,Ie),[[oe,t.value]])]),l.value?(i(),m("div",{key:0,class:"search-input-icon icon-clear",onClick:o},[v(d)])):f("",!0)])])}}},xe=z(De,[["__scopeId","data-v-cf0c02af"]]);var we={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"],l=s%100;return"["+s+(t[(l-20)%10]||t[l]||t[0])+"]"}}})})(we);const Ae=1e3*60,Le=Ae*60,Z=Le*24,Me=Z*30,je=()=>{const e=new Date;return e.setHours(0,0,0,0),e.getTime()},Ne=(e,n)=>{if(!n)return A(e).format("HH:mm");if(n==="zh")return A(e).locale("zh-cn").format("HH:mm");if(n==="en")return A(e).format("HH:mm")},ze=(e,n)=>n?n==="zh"?A(e).locale("zh-cn").format("dddd"):A(e).format("dddd"):A(e).format("dddd"),Oe=(e,n)=>n?n==="zh"?A(e).locale("zh-cn").format("MM-DD"):A(e).format("MM-DD"):A(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 l=()=>{re.info({title:"您确定要删除吗?",okText:"确定",cancelText:"取消",hideCancel:!1,onOk(r){},async onBeforeOk(){try{return await p()===200}catch{return!1}},onCancel(){}})},p=()=>new Promise((r,c)=>{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),c(o)})});return(r,c)=>{const o=I("icon-delete");return i(),m("span",{onClick:l},[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,l=h(!1),p=he(),r=ce(),c=S(()=>s.history.client_field_content_type==="label"),o=S(()=>s.history.client_field_content_type==="content"),a=S(()=>o.value&&!l.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,c.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"?Ne(H,x):u==="month"?ze(H,x):u==="earlier"?Oe(H,x):""}),d=()=>{t("active",s.history.id)},b=()=>{l.value=!0};return(u,H)=>(i(),m(B,null,[c.value?(i(),m("div",{key:0,class:q(_.value)},[e.history.client_field_timestamp_type==="today"?(i(),m(B,{key:0},[N(T(u.$t("conversation.history_today")),1)],64)):f("",!0),e.history.client_field_timestamp_type==="month"?(i(),m(B,{key:1},[N(T(u.$t("conversation.history_month")),1)],64)):f("",!0),e.history.client_field_timestamp_type==="earlier"?(i(),m(B,{key:2},[N(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:b},null,8,["target_id"])])])],2)):f("",!0)],64))}},Ge=z(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,l=S(()=>{const r={"conversation-history-item":!0};return r["load-more"]=!0,r}),p=()=>{s.can_loadmore&&t("loadmore")};return(r,c)=>(i(),m("div",{class:q(l.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=z(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"),l=c=>{s("active",c)},p=c=>{s("delete",c)},r=()=>{s("loadmore")};return(c,o)=>(i(),m("div",Ze,[y("div",{class:q(t.value)},[(i(!0),m(B,null,K(e.list,(a,_)=>(i(),L(Ge,{key:a.id,history:a,index:_,onActive:l,onDelete:p},null,8,["history","index"]))),128)),v(Ye,{can_loadmore:e.can_loadmore,onLoadmore:r},null,8,["can_loadmore"])],2)]))}},et=z(Xe,[["__scopeId","data-v-965964ed"]]);function tt(e){const n=h(1),s=h(""),t=h([]),l=fe(),p=()=>({});return{getAgentList:()=>{const c=l.agents;if(c.length!==0){typeof e=="function"&&e(c),t.value=c;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=_,l.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:l,api_message:p,list_agents:r,getAgentList:c}=tt(d=>{var b;if(t.search_type){const u=((b=t.search_type)==null?void 0:b.id)||"";let H=null;const x=d.length;for(let M=0;M<x;M++){const w=d[M];if(w.id===u){H=w;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(()=>{c()}),(d,b)=>{const u=I("a-button"),H=I("a-spin"),x=I("a-doption"),M=I("a-dropdown");return i(),L(M,{trigger:"hover",defaultValue:a.value},{content:D(()=>[(i(!0),m(B,null,K(R(r),(w,V)=>(i(),L(x,{key:w.id,disabled:_.value,value:w.name,onClick:P=>k(w)},{default:D(()=>[N(T(w.name),1)]),_:2},1032,["disabled","value","onClick"]))),128))]),default:D(()=>[R(l)===1?(i(),L(u,{key:0,class:"history-type-btn",type:"text"},{default:D(()=>[N(T(a.value),1)]),_:1})):f("",!0),R(l)===2?(i(),L(u,{key:1,class:"history-type-btn",type:"text"},{default:D(()=>[v(H,{size:16})]),_:1})):f("",!0),R(l)===3?(i(),L(u,{key:2,class:"history-type-btn",type:"text"},{default:D(()=>[N(T(a.value),1)]),_:1})):f("",!0)]),_:1},8,["defaultValue"])}}},at=z(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),l=h(50),p=h(""),r=h(""),c=h(!0),o=h(1),a=h(""),_=h([]),k=h(0),d=h(0),b=h(0),u=je(),x=u-Z-Me;function M(C){C.forEach((g,E)=>{let j=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&&(j={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&&(j={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):(b.value===0&&(j={client_field_content_type:"label",client_field_timestamp_type:"earlier",id:"earlier"}),$.client_field_timestamp_type="earlier",$.client_field_content_type="content",b.value=b.value+1),j&&_.value.push(j),_.value.push($)})}const w=()=>({search:p.value,page:t.value,per_page:l.value,agent_id:r.value}),V=()=>{const C=w();o.value=2,a.value="",Be(C).then(g=>{if(g.code/1===200){const E=g.data;E.length<l.value?c.value=!1:c.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&&c.value&&(t.value=t.value+1,V())},X=C=>{s("historyActive",{agent_id:r.value,target_id:C})},ee=C=>{o.value!==2&&(p.value=C,t.value=1,_.value=[],V())},te=C=>{o.value!==2&&C&&(k.value=0,d.value=0,b.value=0,r.value=C.id,t.value=1,_.value=[],V())};return Q(()=>{}),(C,g)=>{const E=I("a-spin"),j=I("a-empty"),$=I("a-result");return i(),m("div",it,[g[1]||(g[1]=y("div",{class:"conversation-history-left"},null,-1)),y("div",rt,[v(Ce),v(xe,{onSearch:ee},{default:D(()=>[v(at,{onTypeSelected:te,list_status:o.value},null,8,["list_status"])]),_:1}),_.value.length!==0?(i(),L(et,{key:0,list:_.value,can_loadmore:c.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(j,null,{default:D(()=>[N(T(C.$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=z(dt,[["__scopeId","data-v-6c33da9b"]]),pt="/assets/history-bg-Cuh6wzmt.png",At={__name:"ConversationHistory",setup(e){const n=ue(),s=_e(),t=S(()=>s.value==="light"?{backgroundImage:`url(${pt})`,backgroundRepeat:"no-repeat",backgroundSize:"cover"}:{}),l=({target_id:p,agent_id:r})=>{n.push({path:"/chat/qa",query:{session:p,agent:r}})};return(p,r)=>{const c=I("a-back-top");return i(),L(de,null,{default:D(()=>[v(me,{containerStyle:t.value,id:"fjkdsdajfklgjsklfjskdlf"},{default:D(()=>[v(pe),v(mt,{onHistoryActive:l})]),_:1},8,["containerStyle"]),v(c,{"target-container":"#fjkdsdajfklgjsklfjskdlf",style:{position:"absolute"}})]),_:1})}}};export{At as default};