2 lines
31 KiB
JavaScript
2 lines
31 KiB
JavaScript
import{c as l,D as De,P as ke,R as Ae,q as ze,a as k,j as V,m as H,s as be,v as Ie,x as Ye,y as R,_ as Oe,b as z,o as m,e as y,w as _,f as r,l as i,g as x,t as C,i as P,F as q,h as G,n as N,u as He,z as Ee,A as Le,k as Te,B,G as Ne,H as Be}from"./index-bf5be19f.js";import{A as I,c as T,H as Z,B as Re,R as U,M as oe,S as Fe}from"./chat-e1054b12.js";var Ue={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};const Ve=Ue;var qe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M573 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40zm-280 0c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z"}},{tag:"path",attrs:{d:"M894 345a343.92 343.92 0 00-189-130v.1c-17.1-19-36.4-36.5-58-52.1-163.7-119-393.5-82.7-513 81-96.3 133-92.2 311.9 6 439l.8 132.6c0 3.2.5 6.4 1.5 9.4a31.95 31.95 0 0040.1 20.9L309 806c33.5 11.9 68.1 18.7 102.5 20.6l-.5.4c89.1 64.9 205.9 84.4 313 49l127.1 41.4c3.2 1 6.5 1.6 9.9 1.6 17.7 0 32-14.3 32-32V753c88.1-119.6 90.4-284.9 1-408zM323 735l-12-5-99 31-1-104-8-9c-84.6-103.2-90.2-251.9-11-361 96.4-132.2 281.2-161.4 413-66 132.2 96.1 161.5 280.6 66 412-80.1 109.9-223.5 150.5-348 102zm505-17l-8 10 1 104-98-33-12 5c-56 20.8-115.7 22.5-171 7l-.2-.1A367.31 367.31 0 00729 676c76.4-105.3 88.8-237.6 44.4-350.4l.6.4c23 16.5 44.1 37.1 62 62 72.6 99.6 68.5 235.2-8 330z"}},{tag:"path",attrs:{d:"M433 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z"}}]},name:"comment",theme:"outlined"};const Ge=qe;var Ze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};const We=Ze;var Je={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"}}]},name:"menu",theme:"outlined"};const Qe=Je;var Xe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"more",theme:"outlined"};const Ke=Xe;var et={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M705.6 124.9a8 8 0 00-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0162.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0127.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 01-76.3 113.3 353.06 353.06 0 01-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 01-113.2-76.4A355.92 355.92 0 01184 650.4a355 355 0 01-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"}}]},name:"poweroff",theme:"outlined"};const tt=et;var nt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z"}}]},name:"send",theme:"outlined"};const st=nt;var at={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"}}]},name:"user",theme:"outlined"};const rt=at;function le(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){ot(n,a,e[a])})}return n}function ot(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var W=function(t,e){var s=le({},t,e.attrs);return l(I,le({},s,{icon:Ve}),null)};W.displayName="ApiOutlined";W.inheritAttrs=!1;const lt=W;function ie(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){it(n,a,e[a])})}return n}function it(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var J=function(t,e){var s=ie({},t,e.attrs);return l(I,ie({},s,{icon:Ge}),null)};J.displayName="CommentOutlined";J.inheritAttrs=!1;const ct=J;function ce(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){ut(n,a,e[a])})}return n}function ut(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var Q=function(t,e){var s=ce({},t,e.attrs);return l(I,ce({},s,{icon:De}),null)};Q.displayName="DeleteOutlined";Q.inheritAttrs=!1;const dt=Q;function ue(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){ft(n,a,e[a])})}return n}function ft(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var X=function(t,e){var s=ue({},t,e.attrs);return l(I,ue({},s,{icon:We}),null)};X.displayName="MenuFoldOutlined";X.inheritAttrs=!1;const mt=X;function de(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){vt(n,a,e[a])})}return n}function vt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var K=function(t,e){var s=de({},t,e.attrs);return l(I,de({},s,{icon:Qe}),null)};K.displayName="MenuOutlined";K.inheritAttrs=!1;const pt=K;function fe(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){gt(n,a,e[a])})}return n}function gt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var ee=function(t,e){var s=fe({},t,e.attrs);return l(I,fe({},s,{icon:Ke}),null)};ee.displayName="MoreOutlined";ee.inheritAttrs=!1;const yt=ee;function me(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){ht(n,a,e[a])})}return n}function ht(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var te=function(t,e){var s=me({},t,e.attrs);return l(I,me({},s,{icon:ke}),null)};te.displayName="PlusOutlined";te.inheritAttrs=!1;const _t=te;function ve(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){bt(n,a,e[a])})}return n}function bt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var ne=function(t,e){var s=ve({},t,e.attrs);return l(I,ve({},s,{icon:tt}),null)};ne.displayName="PoweroffOutlined";ne.inheritAttrs=!1;const Ot=ne;function pe(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){wt(n,a,e[a])})}return n}function wt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var se=function(t,e){var s=pe({},t,e.attrs);return l(I,pe({},s,{icon:Ae}),null)};se.displayName="ReloadOutlined";se.inheritAttrs=!1;const Ct=se;function ge(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){Mt(n,a,e[a])})}return n}function Mt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var ae=function(t,e){var s=ge({},t,e.attrs);return l(I,ge({},s,{icon:st}),null)};ae.displayName="SendOutlined";ae.inheritAttrs=!1;const St=ae;function ye(n){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?Object(arguments[t]):{},s=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(e).filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),s.forEach(function(a){Pt(n,a,e[a])})}return n}function Pt(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var re=function(t,e){var s=ye({},t,e.attrs);return l(I,ye({},s,{icon:rt}),null)};re.displayName="UserOutlined";re.inheritAttrs=!1;const he=re,$t=ze("chat",()=>{const n=k([]),t=k(null),e=k([]),s=k(!1),a=k(!1),g=V(()=>n.value.length>0),h=V(()=>{var v;return(v=t.value)==null?void 0:v.conversationId}),w=async v=>{try{const f=await T.getConversations(v);f.success&&(n.value=f.data||[])}catch(f){console.error("获取会话列表失败:",f),H.error("获取会话列表失败")}},d=async v=>{try{s.value=!0,console.log("创建会话请求参数:",v);const f=await T.createConversation(v);if(console.log("创建会话响应:",f),f.success){const p=f.data,S={conversationId:p.conversationId,userId:p.userId,title:p.title||"新对话",type:p.type||"emotion_chat",status:p.status||"active",createTime:p.createTime||new Date().toISOString(),updateTime:p.updateTime||new Date().toISOString(),messageCount:0};return n.value.unshift(S),t.value=S,e.value=[],S}throw new Error(f.message||"创建会话失败")}catch(f){throw console.error("创建会话失败:",f),H.error(f.message||"创建会话失败"),f}finally{s.value=!1}},c=async(v,f=!0)=>{if(!t.value){H.error("请先创建会话");return}try{a.value=!0;const p={id:`user_${Date.now()}`,content:v,sender:"user",timestamp:new Date,type:"text"};e.value.push(p),console.log("添加用户消息:",p);const S={userId:t.value.userId,conversationId:t.value.conversationId,message:v,needEmotionAnalysis:f,type:"text"};console.log("发送消息请求:",S);const M=await T.sendMessage(S);if(console.log("发送消息响应:",M),M.success){const E={id:M.data.messageId||`ai_${Date.now()}`,content:M.data.content,sender:"assistant",timestamp:M.data.timestamp?new Date(M.data.timestamp):new Date,type:M.data.type||"text",emotionAnalysis:M.data.emotionAnalysis};return e.value.push(E),console.log("添加AI消息:",E),t.value&&(t.value.updateTime=new Date().toISOString(),t.value.messageCount=(t.value.messageCount||0)+2),E}throw new Error(M.message||"发送消息失败")}catch(p){throw console.error("发送消息失败:",p),H.error(p.message||"发送消息失败"),e.value=e.value.filter(S=>S.id!==`user_${Date.now()}`),p}finally{a.value=!1}},O=async v=>{try{s.value=!0;const f=await T.getMessages(v);f.success&&(e.value=f.data||[])}catch(f){console.error("获取消息失败:",f),H.error("获取消息失败")}finally{s.value=!1}},A=async v=>{t.value=v,await O(v.conversationId)},j=()=>{t.value=null,e.value=[]};return{conversations:n,currentConversation:t,messages:e,loading:s,typing:a,hasConversations:g,currentConversationId:h,fetchConversations:w,createConversation:d,sendMessage:c,fetchMessages:O,switchConversation:A,clearCurrentConversation:j,deleteConversation:async v=>{var f;try{await T.deleteConversation(v),n.value=n.value.filter(p=>p.conversationId!==v),((f=t.value)==null?void 0:f.conversationId)===v&&j(),H.success("删除成功")}catch(p){console.error("删除会话失败:",p),H.error("删除会话失败")}}}});var we={exports:{}};(function(n,t){(function(e,s){n.exports=s()})(be,function(){return function(e,s,a){e=e||{};var g=s.prototype,h={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function w(c,O,A,j){return g.fromToBase(c,O,A,j)}a.en.relativeTime=h,g.fromToBase=function(c,O,A,j,Y){for(var v,f,p,S=A.$locale().relativeTime||h,M=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],E=M.length,L=0;L<E;L+=1){var D=M[L];D.d&&(v=j?a(c).diff(A,D.d,!0):A.diff(c,D.d,!0));var u=(e.rounding||Math.round)(Math.abs(v));if(p=v>0,u<=D.r||!D.r){u<=1&&L>0&&(D=M[L-1]);var o=S[D.l];Y&&(u=Y(""+u)),f=typeof o=="string"?o.replace("%d",u):o(u,O,D.l,p);break}}if(O)return f;var $=p?S.future:S.past;return typeof $=="function"?$(f):$.replace("%s",f)},g.to=function(c,O){return w(c,O,this,!0)},g.from=function(c,O){return w(c,O,this)};var d=function(c){return c.$u?a.utc():a()};g.toNow=function(c){return this.to(d(this),c)},g.fromNow=function(c){return this.from(d(this),c)}}})})(we);var xt=we.exports;const jt=Ie(xt);var Dt={exports:{}};(function(n,t){(function(e,s){n.exports=s(Ye)})(be,function(e){function s(h){return h&&typeof h=="object"&&"default"in h?h:{default:h}}var a=s(e),g={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(h,w){return w==="W"?h+"周":h+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(h,w){var d=100*h+w;return d<600?"凌晨":d<900?"早上":d<1100?"上午":d<1300?"中午":d<1800?"下午":"晚上"}};return a.default.locale(g,null,!0),g})})(Dt);R.extend(jt);R.locale("zh-cn");function _e(n,t="YYYY-MM-DD HH:mm:ss"){if(!n)return"";const e=R(),s=R(n),a=e.diff(s,"hour"),g=e.diff(s,"day");return g===0?a===0?s.fromNow():s.format("HH:mm"):g===1?`昨天 ${s.format("HH:mm")}`:g<7?s.format("dddd HH:mm"):s.year()===e.year()?s.format("MM-DD HH:mm"):s.format(t)}function kt(n){if(!n)return"";let e=n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\n/g,"<br>");const s=/(https?:\/\/[^\s]+)/g;e=e.replace(s,'<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>');const a=/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g;e=e.replace(a,'<a href="mailto:$1">$1</a>');const g=/(\d{3}-\d{4}-\d{4}|\d{11})/g;return e=e.replace(g,'<a href="tel:$1">$1</a>'),Object.entries({":)":"😊",":-)":"😊",":(":"😢",":-(":"😢",":D":"😃",":-D":"😃",":P":"😛",":-P":"😛",";)":"😉",";-)":"😉",":o":"😮",":-o":"😮",":|":"😐",":-|":"😐","<3":"❤️","</3":"💔"}).forEach(([w,d])=>{const c=new RegExp(At(w),"g");e=e.replace(c,d)}),e}function At(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const zt={class:"emotion-analysis-simple"},It={class:"card-title"},Yt={class:"analysis-content"},Ht={key:0,class:"primary-emotion"},Et={key:0,class:"emotion-intensity"},Lt={key:1,class:"emotion-polarity"},Tt={key:2,class:"keywords"},Nt={class:"keywords-list"},Bt={key:3,class:"suggestion"},Rt={class:"suggestion-label"},Ft={class:"suggestion-content"},Ut={key:4,class:"confidence"},Vt={class:"confidence-value"},qt={__name:"EmotionAnalysisSimple",props:{analysis:{type:Object,required:!0,default:()=>({})}},setup(n){const t={joy:"喜悦",sadness:"悲伤",anger:"愤怒",fear:"恐惧",surprise:"惊讶",disgust:"厌恶",trust:"信任",anticipation:"期待",anxiety:"焦虑",depression:"抑郁",excitement:"兴奋",calm:"平静",stress:"压力",happiness:"快乐",worry:"担忧",relief:"放松",frustration:"沮丧",hope:"希望",love:"爱",hate:"恨"},e={positive:"积极",negative:"消极",neutral:"中性"},s=d=>t[d]||d,a=d=>e[d]||d,g=d=>({joy:"gold",happiness:"gold",excitement:"orange",love:"magenta",trust:"blue",hope:"cyan",calm:"green",relief:"green",sadness:"blue",depression:"purple",worry:"orange",anxiety:"orange",stress:"red",anger:"red",frustration:"red",hate:"red",fear:"volcano",surprise:"lime",anticipation:"geekblue",disgust:"default"})[d]||"default",h=d=>({positive:"success",negative:"error",neutral:"default"})[d]||"default",w=d=>d>=.8?"#52c41a":d>=.6?"#faad14":"#ff4d4f";return(d,c)=>{const O=z("a-tag"),A=z("a-progress"),j=z("a-card");return m(),y("div",zt,[l(j,{size:"small",class:"analysis-card"},{title:_(()=>[r("div",It,[l(i(Z),{class:"title-icon"}),c[0]||(c[0]=x(" 情绪分析 "))])]),default:_(()=>[r("div",Yt,[n.analysis.primaryEmotion?(m(),y("div",Ht,[c[1]||(c[1]=r("span",{class:"emotion-label"},"主要情绪:",-1)),l(O,{color:g(n.analysis.primaryEmotion),class:"emotion-tag"},{default:_(()=>[x(C(s(n.analysis.primaryEmotion)),1)]),_:1},8,["color"]),n.analysis.intensity?(m(),y("span",Et," ("+C(Math.round(n.analysis.intensity*100))+"%) ",1)):P("",!0)])):P("",!0),n.analysis.polarity?(m(),y("div",Lt,[c[2]||(c[2]=r("span",{class:"polarity-label"},"情绪倾向:",-1)),l(O,{color:h(n.analysis.polarity),class:"polarity-tag"},{default:_(()=>[x(C(a(n.analysis.polarity)),1)]),_:1},8,["color"])])):P("",!0),n.analysis.keywords&&n.analysis.keywords.length>0?(m(),y("div",Tt,[c[3]||(c[3]=r("span",{class:"keywords-label"},"关键词:",-1)),r("div",Nt,[(m(!0),y(q,null,G(n.analysis.keywords.slice(0,3),Y=>(m(),N(O,{key:Y,class:"keyword-tag",size:"small"},{default:_(()=>[x(C(Y),1)]),_:2},1024))),128))])])):P("",!0),n.analysis.suggestion?(m(),y("div",Bt,[r("div",Rt,[l(i(Re),{class:"suggestion-icon"}),c[4]||(c[4]=x(" 建议: "))]),r("div",Ft,C(n.analysis.suggestion),1)])):P("",!0),n.analysis.confidence?(m(),y("div",Ut,[c[5]||(c[5]=r("span",{class:"confidence-label"},"置信度:",-1)),l(A,{percent:Math.round(n.analysis.confidence*100),"stroke-color":w(n.analysis.confidence),size:"small","show-info":!1,style:{width:"80px",display:"inline-block","margin-left":"8px"}},null,8,["percent","stroke-color"]),r("span",Vt,C(Math.round(n.analysis.confidence*100))+"%",1)])):P("",!0)])]),_:1})])}}},Gt=Oe(qt,[["__scopeId","data-v-c61d1b05"]]);const Zt={class:"chat-complete"},Wt={class:"sidebar-header"},Jt={key:0,class:"logo"},Qt={key:0,class:"sidebar-content"},Xt={class:"conversations-list"},Kt={class:"list-header"},en={key:0,class:"conversations"},tn=["onClick"],nn={class:"conversation-info"},sn={class:"conversation-title"},an={class:"conversation-time"},rn={key:1,class:"empty-conversations"},on={key:1,class:"user-info"},ln={class:"user-avatar"},cn={class:"user-details"},un={class:"user-name"},dn={class:"chat-main"},fn={key:0,class:"chat-header"},mn={class:"chat-info"},vn={class:"chat-title"},pn={class:"chat-status"},gn={class:"chat-actions"},yn={key:0,class:"welcome-screen"},hn={class:"welcome-content"},_n={class:"welcome-icon"},bn={class:"welcome-features"},On={class:"feature-item"},wn={class:"feature-item"},Cn={class:"feature-item"},Mn={key:1,class:"messages-list"},Sn={class:"message-avatar"},Pn={class:"message-content"},$n={class:"message-bubble"},xn=["innerHTML"],jn={class:"message-time"},Dn={key:0,class:"emotion-analysis"},kn={key:0,class:"message-item assistant"},An={class:"message-avatar"},zn={key:1,class:"input-area"},In={class:"input-container"},Yn={class:"input-actions"},Hn={class:"connection-status"},En={class:"status-item"},Ln={class:"status-item"},Tn={class:"status-item"},Nn={class:"status-item"},Bn={class:"user-id"},Rn={__name:"ChatComplete",setup(n){He();const t=Ee(),e=$t(),s=k(!1),a=k(""),g=k(!0),h=k(null),w=k(!1),d=k({connected:!1}),c=k({healthy:!1}),O=V(()=>e.typing?"AI正在思考中...":"输入您想说的话..."),A=()=>{s.value=!s.value},j=async()=>{try{const u=`对话 ${new Date().toLocaleString()}`;await e.createConversation({userId:t.userInfo.id,title:u,type:"emotion_chat",initialMessage:"您好,我想开始一段新的对话"}),H.success("新对话创建成功")}catch(u){console.error("创建对话失败:",u)}},Y=async()=>{try{await e.fetchConversations(t.userInfo.id)}catch(u){console.error("刷新对话列表失败:",u)}},v=async u=>{try{await e.switchConversation(u),D()}catch(o){console.error("切换对话失败:",o)}},f=async u=>{try{await e.deleteConversation(u)}catch(o){console.error("删除对话失败:",o)}},p=async()=>{if(!a.value.trim())return;const u=a.value.trim();a.value="";try{await e.sendMessage(u,g.value),D()}catch(o){console.error("发送消息失败:",o)}},S=u=>{u.key==="Enter"&&!u.shiftKey&&(u.preventDefault(),p())},M=()=>{var u;return e.typing?"AI正在输入...":((u=e.currentConversation)==null?void 0:u.status)==="active"?"对话中":"已结束"},E=async()=>{if(e.currentConversation)try{await T.endConversation(e.currentConversation.conversationId),e.currentConversation.status="ended",H.success("对话已结束")}catch(u){console.error("结束对话失败:",u)}},L=async()=>{w.value=!0;try{const u=await T.healthCheck();d.value.connected=u.success,c.value.healthy=u.success&&u.data}catch{d.value.connected=!1,c.value.healthy=!1}},D=()=>{Ne(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})};return Le(()=>e.messages.length,()=>{D()}),Te(async()=>{console.log("ChatComplete组件挂载,用户信息:",t.userInfo),await Y(),!e.currentConversation&&e.conversations.length===0&&await j()}),(u,o)=>{const $=z("a-button"),Ce=z("a-menu-item"),Me=z("a-menu"),Se=z("a-dropdown"),Pe=z("a-textarea"),$e=z("a-tooltip"),F=z("a-tag"),xe=z("a-modal");return m(),y("div",Zt,[r("aside",{class:B(["sidebar",{collapsed:s.value}])},[r("div",Wt,[s.value?P("",!0):(m(),y("div",Jt,o[4]||(o[4]=[r("h2",{class:"gradient-text"},"情绪博物馆",-1),r("span",{class:"subtitle"},"AI心理助手",-1)]))),l($,{type:"text",class:"collapse-btn",onClick:A},{default:_(()=>[s.value?(m(),N(i(pt),{key:0})):(m(),N(i(mt),{key:1}))]),_:1})]),s.value?P("",!0):(m(),y("div",Qt,[l($,{type:"primary",class:"new-chat-btn",block:"",onClick:j,loading:i(e).loading,style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",border:"none","margin-bottom":"20px"}},{default:_(()=>[l(i(_t)),o[5]||(o[5]=x(" 新建对话 "))]),_:1,__:[5]},8,["loading"]),r("div",Xt,[r("div",Kt,[o[6]||(o[6]=r("span",{class:"list-title"},"最近对话",-1)),l($,{type:"text",size:"small",onClick:Y,loading:i(e).loading},{default:_(()=>[l(i(Ct))]),_:1},8,["loading"])]),i(e).hasConversations?(m(),y("div",en,[(m(!0),y(q,null,G(i(e).conversations,b=>(m(),y("div",{class:B(["conversation-item",{active:b.conversationId===i(e).currentConversationId}]),key:b.conversationId,onClick:je=>v(b)},[r("div",nn,[r("div",sn,C(b.title),1),r("div",an,C(i(_e)(b.updateTime)),1)]),l(Se,{trigger:["click"],onClick:o[0]||(o[0]=Be(()=>{},["stop"]))},{overlay:_(()=>[l(Me,null,{default:_(()=>[l(Ce,{onClick:je=>f(b.conversationId)},{default:_(()=>[l(i(dt)),o[7]||(o[7]=x(" 删除对话 "))]),_:2,__:[7]},1032,["onClick"])]),_:2},1024)]),default:_(()=>[l($,{type:"text",size:"small",class:"more-btn"},{default:_(()=>[l(i(yt))]),_:1})]),_:2},1024)],10,tn))),128))])):(m(),y("div",rn,[l(i(ct),{class:"empty-icon"}),o[8]||(o[8]=r("p",null,"暂无对话记录",-1))]))])])),s.value?P("",!0):(m(),y("div",on,[r("div",ln,[l(i(he))]),r("div",cn,[r("div",un,C(i(t).userInfo.name),1),r("div",{class:B(["user-status",{guest:i(t).userInfo.isGuest}])},C(i(t).userInfo.isGuest?"访客模式":"在线"),3)])]))],2),r("main",dn,[i(e).currentConversation?(m(),y("header",fn,[r("div",mn,[r("h3",vn,C(i(e).currentConversation.title),1),r("span",pn,C(M()),1)]),r("div",gn,[l($,{type:"text",onClick:L},{default:_(()=>[l(i(lt)),o[9]||(o[9]=x(" 连接状态 "))]),_:1,__:[9]}),i(e).currentConversation.status==="active"?(m(),N($,{key:0,type:"text",onClick:E},{default:_(()=>[l(i(Ot)),o[10]||(o[10]=x(" 结束对话 "))]),_:1,__:[10]})):P("",!0)])])):P("",!0),r("div",{class:"messages-container",ref_key:"messagesContainer",ref:h},[i(e).currentConversation?(m(),y("div",Mn,[(m(!0),y(q,null,G(i(e).messages,b=>(m(),y("div",{class:B(["message-item",b.sender]),key:b.id},[r("div",Sn,[b.sender==="user"?(m(),N(i(he),{key:0})):(m(),N(i(U),{key:1}))]),r("div",Pn,[r("div",$n,[r("div",{class:"message-text",innerHTML:i(kt)(b.content)},null,8,xn),r("div",jn,C(i(_e)(b.timestamp)),1)]),b.emotionAnalysis?(m(),y("div",Dn,[l(Gt,{analysis:b.emotionAnalysis},null,8,["analysis"])])):P("",!0)])],2))),128)),i(e).typing?(m(),y("div",kn,[r("div",An,[l(i(U))]),o[17]||(o[17]=r("div",{class:"message-content"},[r("div",{class:"message-bubble typing"},[r("div",{class:"typing-indicator"},[r("span"),r("span"),r("span")]),r("div",{class:"typing-text"},"AI正在思考中...")])],-1))])):P("",!0)])):(m(),y("div",yn,[r("div",hn,[r("div",_n,[l(i(U))]),o[15]||(o[15]=r("h2",{class:"welcome-title"},"欢迎使用AI心理健康助手",-1)),o[16]||(o[16]=r("p",{class:"welcome-description"}," 我是您的专属AI助手,可以为您提供情绪支持、心理分析和个性化建议。 让我们开始一段温暖的对话吧! ",-1)),r("div",bn,[r("div",On,[l(i(Z)),o[11]||(o[11]=r("span",null,"情绪分析",-1))]),r("div",wn,[l(i(oe)),o[12]||(o[12]=r("span",null,"智能对话",-1))]),r("div",Cn,[l(i(Fe)),o[13]||(o[13]=r("span",null,"隐私保护",-1))])]),l($,{type:"primary",size:"large",onClick:j,style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",border:"none","margin-top":"20px"}},{default:_(()=>[l(i(oe)),o[14]||(o[14]=x(" 开始对话 "))]),_:1,__:[14]})])]))],512),i(e).currentConversation?(m(),y("div",zn,[r("div",In,[l(Pe,{value:a.value,"onUpdate:value":o[1]||(o[1]=b=>a.value=b),placeholder:O.value,"auto-size":{minRows:1,maxRows:4},onKeydown:S,disabled:i(e).typing,class:"message-input"},null,8,["value","placeholder","disabled"]),r("div",Yn,[l($e,{title:"情绪分析"},{default:_(()=>[l($,{type:"text",class:B({active:g.value}),onClick:o[2]||(o[2]=b=>g.value=!g.value)},{default:_(()=>[l(i(Z))]),_:1},8,["class"])]),_:1}),l($,{type:"primary",class:"send-btn",onClick:p,loading:i(e).typing,disabled:!a.value.trim(),style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",border:"none"}},{default:_(()=>[l(i(St))]),_:1},8,["loading","disabled"])])])])):P("",!0)]),l(xe,{open:w.value,"onUpdate:open":o[3]||(o[3]=b=>w.value=b),title:"连接状态",footer:null,width:"400px"},{default:_(()=>[r("div",Hn,[r("div",En,[o[19]||(o[19]=r("span",{class:"status-label"},"前端状态:",-1)),l(F,{color:"success"},{default:_(()=>o[18]||(o[18]=[x("正常")])),_:1,__:[18]})]),r("div",Ln,[o[20]||(o[20]=r("span",{class:"status-label"},"后端连接:",-1)),l(F,{color:d.value.connected?"success":"error"},{default:_(()=>[x(C(d.value.connected?"已连接":"连接失败"),1)]),_:1},8,["color"])]),r("div",Tn,[o[21]||(o[21]=r("span",{class:"status-label"},"AI服务:",-1)),l(F,{color:c.value.healthy?"success":"warning"},{default:_(()=>[x(C(c.value.healthy?"正常":"检查中"),1)]),_:1},8,["color"])]),r("div",Nn,[o[22]||(o[22]=r("span",{class:"status-label"},"用户ID:",-1)),r("span",Bn,C(i(t).userInfo.id),1)])])]),_:1},8,["open"])])}}},Vn=Oe(Rn,[["__scopeId","data-v-23c54516"]]);export{Vn as default};
|