index.DkHUYFny.js 12 KB

1
  1. import{k as e,m as a,t as l,d as t,aG as i,a as s,x as o,O as n,U as r,V as d,ad as p,aH as u,aI as m,g as c,z as f,A as _,q as h}from"./element-plus.DUy1TWHM.js";import{M as v,a_ as y,aL as g,u as b,I as w,bk as k,bJ as j,v as C,bL as D,s as x,t as I,H as S,bb as Y,bM as z,F as V,aX as P,aU as H,aS as R,as as M}from"./@vue.DbmRtknU.js";import{y as A,n as F,F as U,_ as q}from"./index.B1CvNv-2.js";import{E as L}from"./xml.DHJV7eh_.js";import{P as O}from"./system.0GYJijcz.js";import{P as B}from"./PageContent.v2drBSrF.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./vue-router.yxIMtaxH.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";import"./exceljs.DLSZe_6I.js";const E={class:"app-container"},J={class:"data-table__content"},K=["onClick"],N={key:0},Q={key:1},G={class:"message-item"},T={class:"message-header"},$={key:0,class:"message-time"},W={class:"message-content"},X={class:"dialog-footer"},Z=q(v({name:"ChatSession",inheritAttrs:!1,__name:"index",setup(v){const{searchRef:q,contentRef:Z,handleQueryClick:ee,handleResetClick:ae,refreshList:le}=A(),te=H(),ie=H(),se=H(null),oe=H(""),ne=H([{prop:"selection",label:"选择框",show:!0},{prop:"index",label:"序号",show:!0},{prop:"session_id",label:"会话ID",show:!0},{prop:"title",label:"标题",show:!0},{prop:"user_id",label:"用户ID",show:!1},{prop:"team_id",label:"团队ID",show:!1},{prop:"team_name",label:"部门名称",show:!0},{prop:"agent_id",label:"Agent ID",show:!1},{prop:"summary",label:"会话摘要",show:!1},{prop:"message_count",label:"消息数量",show:!0},{prop:"created_time",label:"创建时间",show:!0},{prop:"updated_time",label:"更新时间",show:!0},{prop:"operation",label:"操作",show:!0}]),re=H({session_id:"",agent_id:null,team_id:null,team_name:null,workflow_id:null,user_id:null,session_data:null,agent_data:null,team_data:null,workflow_data:null,metadata:null,runs:null,summary:null,created_at:null,updated_at:null,id:"",title:null,created_time:null,updated_time:null,message_count:0,messages:[]}),de=R({permPrefix:"module_ai:chat",colon:!0,isExpandable:!0,showNumber:1,showToggle:!1,form:{labelWidth:"auto"},formItems:[{prop:"title",label:"标题",type:"input",attrs:{placeholder:"请输入标题",clearable:!0}},{prop:"created_at",label:"创建时间",type:"date-picker",attrs:{type:"datetimerange",rangeSeparator:"至",startPlaceholder:"开始日期",endPlaceholder:"结束日期",format:"YYYY-MM-DD HH:mm:ss",valueFormat:"YYYY-MM-DD HH:mm:ss",style:{width:"340px"}}},{prop:"updated_at",label:"更新时间",type:"date-picker",attrs:{type:"datetimerange",rangeSeparator:"至",startPlaceholder:"开始日期",endPlaceholder:"结束日期",format:"YYYY-MM-DD HH:mm:ss",valueFormat:"YYYY-MM-DD HH:mm:ss",style:{width:"340px"}}}]}),pe=R({permPrefix:"module_ai:chat",cols:[],hideColumnFilter:!0,toolbar:["add","delete"],defaultToolbar:["search","refresh"],pagination:{pageSize:10,pageSizes:[10,20,30,50]},request:{page_no:"page_no",page_size:"page_size"},indexAction:async e=>{var a,l;const t=await F.getSessionList(e);return{total:(null==(a=t.data.data)?void 0:a.total)??0,list:(null==(l=t.data.data)?void 0:l.items)??[]}},deleteAction:e=>F.deleteSession(e.split(",").map(e=>e.trim()).filter(Boolean)),deleteConfirm:{title:"警告",message:"确认删除该项数据?",type:"warning"}}),ue=R({id:void 0,title:""}),me=R({title:"",visible:!1,type:"create"}),ce=R({title:[{required:!0,message:"请输入标题",trigger:"blur"}]});function fe(){var e;null==(e=q.value)||e.toggleVisible()}const _e={id:void 0,title:""};async function he(){te.value&&(te.value.resetFields(),te.value.clearValidate()),Object.assign(ue,_e)}async function ve(){me.visible=!1,he()}async function ye(e,a){if(he(),me.type=e,a){const l=await F.getSessionDetail(a);if("detail"===e){me.title="详情";const e=l.data.data||{};Object.assign(re.value,e)}}else me.title="新增会话",ue.id=void 0;me.visible=!0}async function ge(e){if(se.value!==e.id)return;const a=oe.value.trim();if(a)if(a!==e.title)try{await F.updateSession(e.id,{title:a}),h.success("更新成功"),e.title=a,se.value=null}catch(l){h.error("更新失败")}else se.value=null;else h.warning("标题不能为空")}async function be(){te.value.validate(async e=>{if(e){const e={...ue};try{await F.createSession({title:e.title}),me.visible=!1,he(),le()}catch(a){}}})}return(h,v)=>{const H=o,R=a,A=l,F=t,le=s,_e=e,he=d,we=r,ke=p,je=c,Ce=m,De=u,xe=_,Ie=f,Se=y("hasPerm"),Ye=n;return g(),b("div",E,[w(O,{ref_key:"searchRef",ref:q,"search-config":de,onQueryClick:k(ee),onResetClick:k(ae)},null,8,["search-config","onQueryClick","onResetClick"]),w(B,{ref_key:"contentRef",ref:Z,"content-config":pe,onSearchClick:fe,onAddClick:v[1]||(v[1]=e=>ye("create"))},{table:j(({data:e,loading:a,tableRef:l,onSelectionChange:t,pagination:s})=>[C("div",J,[D((g(),x(_e,{ref:l,data:e,height:"100%",border:"",stripe:"",onSelectionChange:t},{empty:j(()=>[w(H,{"image-size":80,description:"暂无数据"})]),default:j(()=>{var e,a,l,t,o,n,r,d,p,u,m,c,f;return[(null==(e=ne.value.find(e=>"selection"===e.prop))?void 0:e.show)?(g(),x(R,{key:0,type:"selection","min-width":"55",align:"center"})):I("",!0),(null==(a=ne.value.find(e=>"index"===e.prop))?void 0:a.show)?(g(),x(R,{key:1,fixed:"",label:"序号","min-width":"60"},{default:j(e=>[S(Y((s.currentPage-1)*s.pageSize+e.$index+1),1)]),_:2},1024)):I("",!0),(null==(l=ne.value.find(e=>"session_id"===e.prop))?void 0:l.show)?(g(),x(R,{key:2,label:"会话ID",prop:"session_id","min-width":"180","show-overflow-tooltip":""})):I("",!0),(null==(t=ne.value.find(e=>"title"===e.prop))?void 0:t.show)?(g(),x(R,{key:3,label:"标题",prop:"title","min-width":"200"},{default:j(e=>[se.value===e.row.id?(g(),x(A,{key:0,ref_key:"titleInputRef",ref:ie,modelValue:oe.value,"onUpdate:modelValue":v[0]||(v[0]=e=>oe.value=e),size:"small",onBlur:a=>ge(e.row),onKeyup:z(a=>ge(e.row),["enter"])},null,8,["modelValue","onBlur","onKeyup"])):(g(),b("span",{key:1,class:"editable-cell",title:"点击编辑",onClick:a=>{return l=e.row,se.value=l.id,oe.value=l.title||"",void M(()=>{var e;null==(e=ie.value)||e.focus()});var l}},[S(Y(e.row.title||"未命名会话")+" ",1),w(F,{class:"edit-icon"},{default:j(()=>[w(k(i))]),_:1})],8,K))]),_:1})):I("",!0),(null==(o=ne.value.find(e=>"user_id"===e.prop))?void 0:o.show)?(g(),x(R,{key:4,label:"用户ID",prop:"user_id","min-width":"120"})):I("",!0),(null==(n=ne.value.find(e=>"team_id"===e.prop))?void 0:n.show)?(g(),x(R,{key:5,label:"团队ID",prop:"team_id","min-width":"120"})):I("",!0),(null==(r=ne.value.find(e=>"team_name"===e.prop))?void 0:r.show)?(g(),x(R,{key:6,label:"部门名称",prop:"team_name","min-width":"120"})):I("",!0),(null==(d=ne.value.find(e=>"agent_id"===e.prop))?void 0:d.show)?(g(),x(R,{key:7,label:"Agent ID",prop:"agent_id","min-width":"120","show-overflow-tooltip":""})):I("",!0),(null==(p=ne.value.find(e=>"summary"===e.prop))?void 0:p.show)?(g(),x(R,{key:8,label:"会话摘要",prop:"summary","min-width":"200","show-overflow-tooltip":""})):I("",!0),(null==(u=ne.value.find(e=>"message_count"===e.prop))?void 0:u.show)?(g(),x(R,{key:9,label:"消息数量",prop:"message_count","min-width":"100",align:"center"})):I("",!0),(null==(m=ne.value.find(e=>"created_time"===e.prop))?void 0:m.show)?(g(),x(R,{key:10,label:"创建时间",prop:"created_time","min-width":"180"})):I("",!0),(null==(c=ne.value.find(e=>"updated_time"===e.prop))?void 0:c.show)?(g(),x(R,{key:11,label:"更新时间",prop:"updated_time","min-width":"180"})):I("",!0),(null==(f=ne.value.find(e=>"operation"===e.prop))?void 0:f.show)?(g(),x(R,{key:12,fixed:"right",label:"操作",align:"center","min-width":"120"},{default:j(e=>[D((g(),x(le,{type:"info",size:"small",link:"",icon:"View",onClick:a=>ye("detail",e.row.id)},{default:j(()=>[...v[4]||(v[4]=[S(" 详情 ",-1)])]),_:1},8,["onClick"])),[[Se,["module_ai:chat:detail"]]]),D((g(),x(le,{type:"danger",size:"small",link:"",icon:"delete",onClick:a=>function(e){var a;null==(a=Z.value)||a.handleDelete(e)}(e.row.id)},{default:j(()=>[...v[5]||(v[5]=[S(" 删除 ",-1)])]),_:1},8,["onClick"])),[[Se,["module_ai:chat:delete"]]])]),_:1})):I("",!0)]}),_:2},1032,["data","onSelectionChange"])),[[Ye,a]])])]),_:1},8,["content-config"]),w(L,{modelValue:me.visible,"onUpdate:modelValue":v[3]||(v[3]=e=>me.visible=e),title:me.title,"dialog-class":"session-detail-dialog",onClose:ve},{footer:j(()=>[C("div",X,[w(le,{onClick:ve},{default:j(()=>[...v[7]||(v[7]=[S("取消",-1)])]),_:1}),"detail"!==me.type?(g(),x(le,{key:0,type:"primary",onClick:be},{default:j(()=>[...v[8]||(v[8]=[S(" 确定 ",-1)])]),_:1})):(g(),x(le,{key:1,type:"primary",onClick:ve},{default:j(()=>[...v[9]||(v[9]=[S("确定",-1)])]),_:1}))])]),default:j(()=>["detail"===me.type?(g(),b(V,{key:0},[w(we,{column:2,border:""},{default:j(()=>[w(he,{label:"会话ID",span:2},{default:j(()=>[S(Y(re.value.session_id),1)]),_:1}),w(he,{label:"标题",span:2},{default:j(()=>[S(Y(re.value.title),1)]),_:1}),w(he,{label:"用户ID",span:1},{default:j(()=>[S(Y(re.value.user_id),1)]),_:1}),w(he,{label:"团队ID",span:1},{default:j(()=>[S(Y(re.value.team_id),1)]),_:1}),w(he,{label:"部门名称",span:1},{default:j(()=>[S(Y(re.value.team_name||"未知部门"),1)]),_:1}),w(he,{label:"Agent ID",span:1},{default:j(()=>[S(Y(re.value.agent_id),1)]),_:1}),w(he,{label:"创建时间",span:1},{default:j(()=>[S(Y(re.value.created_time),1)]),_:1}),w(he,{label:"更新时间",span:1},{default:j(()=>[S(Y(re.value.updated_time),1)]),_:1}),w(he,{label:"消息数量",span:1},{default:j(()=>[S(Y(re.value.message_count),1)]),_:1}),w(he,{label:"会话摘要",span:2},{default:j(()=>[S(Y(re.value.summary||"无"),1)]),_:1}),w(he,{label:"元数据",span:2},{default:j(()=>[re.value.metadata?(g(),b("pre",N,Y(JSON.stringify(re.value.metadata,null,2)),1)):(g(),b("span",Q,"无"))]),_:1})]),_:1}),w(ke,{"content-position":"left"},{default:j(()=>[...v[6]||(v[6]=[S("消息记录",-1)])]),_:1}),re.value.messages&&re.value.messages.length>0?(g(),x(De,{key:0},{default:j(()=>[(g(!0),b(V,null,P(re.value.messages,(e,a)=>(g(),x(Ce,{key:a,type:"user"===e.role?"primary":"success",icon:"user"===e.role?"User":"ChatDotRound"},{default:j(()=>{return[C("div",G,[C("div",T,[w(je,{size:"small",type:"user"===e.role?"primary":"success"},{default:j(()=>[S(Y("user"===e.role?"用户":"助手"),1)]),_:2},1032,["type"]),e.created_at?(g(),b("span",$,Y((a=e.created_at,a?U(new Date(1e3*a)):"")),1)):I("",!0)]),C("div",W,Y(e.content),1)])];var a}),_:2},1032,["type","icon"]))),128))]),_:1})):(g(),x(H,{key:1,description:"暂无消息记录","image-size":60}))],64)):(g(),x(Ie,{key:1,ref_key:"dataFormRef",ref:te,model:ue,rules:ce,"label-suffix":":","label-width":"auto","label-position":"right",inline:""},{default:j(()=>[w(xe,{label:"标题",prop:"title"},{default:j(()=>[w(A,{modelValue:ue.title,"onUpdate:modelValue":v[2]||(v[2]=e=>ue.title=e),placeholder:"请输入标题",maxlength:100},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"]))]),_:1},8,["modelValue","title"])])}}}),[["__scopeId","data-v-52066b64"]]);export{Z as default};