st-comp 0.0.254 → 0.0.255

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";const r=require("./index-40f05e2c.cjs");require("./base-ef747d02.cjs");require("vue");require("./el-button-974ff9e9.cjs");require("./index-33f80550.cjs");require("./index-f1c702f6.cjs");require("./use-global-config-c80f33a4.cjs");require("./use-form-common-props-d3ed62c6.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-37b8d3c6.cjs");require("./index-eea0bcb3.cjs");require("./el-tag-6d8e653e.cjs");require("./index-28e03bad.cjs");require("./el-select-a11f33e8.cjs");require("./el-popper-2d3914e4.cjs");require("./index-e8eeea22.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./index-6b99def3.cjs");require("./castArray-35947698.cjs");require("./index-7dce9f59.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");require("./el-input-fa18ef84.cjs");require("./typescript-b63f8e83.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./index-8901a38c.cjs");require("./VarietySelect-5c845562.cjs");require("./el-autocomplete-b59eb529.cjs");require("./_plugin-vue_export-helper-f246444f.cjs");require("./el-message-0ea8fbf8.cjs");require("./index-6ca95c8a.cjs");require("./config-provider-2ae47cc8.cjs");const i={install(e){e.component("st-monacoEditor",r.MonacoEditor)}};module.exports=i;
1
+ "use strict";const r=require("./index-5befc414.cjs");require("./base-ef747d02.cjs");require("vue");require("./el-button-974ff9e9.cjs");require("./index-33f80550.cjs");require("./index-f1c702f6.cjs");require("./use-global-config-c80f33a4.cjs");require("./use-form-common-props-d3ed62c6.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-37b8d3c6.cjs");require("./index-eea0bcb3.cjs");require("./el-tag-6d8e653e.cjs");require("./index-28e03bad.cjs");require("./el-select-a11f33e8.cjs");require("./el-popper-2d3914e4.cjs");require("./index-e8eeea22.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./index-6b99def3.cjs");require("./castArray-35947698.cjs");require("./index-7dce9f59.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");require("./vnode-b906ae6d.cjs");require("./el-input-fa18ef84.cjs");require("./typescript-b63f8e83.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./index-8901a38c.cjs");require("./VarietySelect-5c845562.cjs");require("./el-autocomplete-b59eb529.cjs");require("./_plugin-vue_export-helper-f246444f.cjs");require("./el-message-0ea8fbf8.cjs");require("./index-6ca95c8a.cjs");require("./config-provider-2ae47cc8.cjs");const i={install(e){e.component("st-monacoEditor",r.MonacoEditor)}};module.exports=i;
@@ -1,4 +1,4 @@
1
- import { M as t } from "./index-8a54ceeb.js";
1
+ import { M as t } from "./index-8f9d0d17.js";
2
2
  import "./base-29f73b05.js";
3
3
  import "vue";
4
4
  import "./el-button-e2c63c08.js";
@@ -1,7 +1,7 @@
1
- "use strict";const V=require("./base-ef747d02.cjs"),H=require("./el-dialog-1b185570.cjs");require("./el-overlay-ea65cb05.cjs");const Y=require("./el-button-974ff9e9.cjs"),z=require("./el-input-fa18ef84.cjs"),e=require("vue"),q=require("./dayjs.min-2c20abe6.cjs"),$=require("./index-8901a38c.cjs"),B=require("./index-33f80550.cjs"),j=require("./_plugin-vue_export-helper-f246444f.cjs"),D=require("./index-6ca95c8a.cjs"),M=require("./use-form-common-props-d3ed62c6.cjs");require("./index-28e03bad.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-f1c702f6.cjs");require("./vnode-b906ae6d.cjs");require("./scroll-b108dabd.cjs");require("./use-global-config-c80f33a4.cjs");require("./index-37b8d3c6.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./index-7dce9f59.cjs");require("./config-provider-2ae47cc8.cjs");const I=V.buildProps({size:{type:[Number,String],values:M.componentSizes,default:"",validator:i=>V.isNumber(i)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:M.iconPropType},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:V.definePropType(String),default:"cover"}}),L={error:i=>i instanceof Event},O=e.defineComponent({name:"ElAvatar"}),R=e.defineComponent({...O,props:I,emits:L,setup(i,{emit:E}){const v=i,r=V.useNamespace("avatar"),m=e.ref(!1),l=e.computed(()=>{const{size:n,icon:h,shape:a}=v,u=[r.b()];return V.isString(n)&&u.push(r.m(n)),h&&u.push(r.m("icon")),a&&u.push(r.m(a)),u}),g=e.computed(()=>{const{size:n}=v;return V.isNumber(n)?r.cssVarBlock({size:V.addUnit(n)||""}):void 0}),_=e.computed(()=>({objectFit:v.fit}));e.watch(()=>v.src,()=>m.value=!1);function c(n){m.value=!0,E("error",n)}return(n,h)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l)),style:e.normalizeStyle(e.unref(g))},[(n.src||n.srcSet)&&!m.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:n.src,alt:n.alt,srcset:n.srcSet,style:e.normalizeStyle(e.unref(_)),onError:c},null,44,["src","alt","srcset"])):n.icon?(e.openBlock(),e.createBlock(e.unref(B.ElIcon),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.icon)))]),_:1})):e.renderSlot(n.$slots,"default",{key:2})],6))}});var K=V._export_sfc(R,[["__file","avatar.vue"]]);const U=V.withInstall(K);const J=async({appId:i,apiKey:E,value:v,callback:r})=>{var m;try{const l=await fetch(`https://dashscope.aliyuncs.com/api/v1/apps/${i}/completion`,{method:"POST",body:JSON.stringify({input:{prompt:v},parameters:{incremental_output:"true"},debug:{}}),headers:{Authorization:`Bearer ${E}`,"Content-Type":"application/json","X-DashScope-SSE":"enable"}});if(!l.ok)throw new Error(`HTTP ${l.status}`);const g=l.body.getReader(),_=new TextDecoder;let c="";for(;;){const{done:n,value:h}=await g.read();if(n){c.trim()&&W(c,r),r("finish","");break}c+=_.decode(h,{stream:!0});let a;for(;(a=c.indexOf(`
2
- `))!==-1;){const u=c.substring(0,a).trim();if(c=c.substring(a+1),u.startsWith("data:")){const k=u.substring(5).trim();if(k&&k!=="[DONE]")try{const y=JSON.parse(k),w=(m=y==null?void 0:y.output)==null?void 0:m.text;w&&r&&r("message",w)}catch{console.debug("等待完整数据...")}}}}}catch(l){console.error("流式请求失败:",l),r("error",l.message)}};function W(i,E){var r;const v=i.split(`
3
- `);for(const m of v)if(m.startsWith("data:")){const l=m.substring(5).trim();if(l&&l!=="[DONE]")try{const g=JSON.parse(l),_=(r=g==null?void 0:g.output)==null?void 0:r.text;_&&E&&E("message",_)}catch{}}}const b=i=>(e.pushScopeId("data-v-24220a5f"),i=i(),e.popScopeId(),i),X={class:"chat-container"},G={class:"avatar"},Q={class:"message-content"},Z={class:"message-text"},ee={class:"message-createTime"},te=b(()=>e.createElementVNode("div",{class:"message-createTime"},"请问对本轮查询结果是否满意?",-1)),se={class:"feedback-buttons"},ae=["onClick"],ne=b(()=>e.createElementVNode("span",{class:"btn-emoji"},"👍",-1)),oe=b(()=>e.createElementVNode("span",{class:"btn-text"},"满意",-1)),re=[ne,oe],ie=["onClick"],le=b(()=>e.createElementVNode("span",{class:"btn-emoji"},"👎",-1)),ce=b(()=>e.createElementVNode("span",{class:"btn-text"},"不满意",-1)),ue=[le,ce],de={key:1,class:"message-createTime"},me={key:0,class:"message-item assistant"},pe={class:"avatar"},fe=b(()=>e.createElementVNode("div",{class:"message-content"},[e.createElementVNode("div",{class:"typing-indicator"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")])],-1)),ve={class:"input-area"},ge={class:"input-actions"},_e=b(()=>e.createElementVNode("div",{class:"input-hint"},[e.createElementVNode("span",null,"Enter 发送 | Ctrl + Enter 换行")],-1)),he={class:"feedback-dialog-content"},ke=b(()=>e.createElementVNode("div",{class:"feedback-emoji"},"😟",-1)),ye=b(()=>e.createElementVNode("p",{class:"feedback-tip"},"很抱歉没能帮到您,请告诉我们哪里需要改进:",-1)),Ve={class:"dialog-footer"},be={__name:"index",props:{defaultMessage:{type:String,default:`你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询
1
+ "use strict";const T=require("./base-ef747d02.cjs"),H=require("./el-dialog-1b185570.cjs");require("./el-overlay-ea65cb05.cjs");const A=require("./el-button-974ff9e9.cjs"),$=require("./el-input-fa18ef84.cjs"),e=require("vue"),B=require("./dayjs.min-2c20abe6.cjs"),z=require("./index-8901a38c.cjs"),x=require("./index-33f80550.cjs"),j=require("./_plugin-vue_export-helper-f246444f.cjs"),F=require("./index-6ca95c8a.cjs"),M=require("./use-form-common-props-d3ed62c6.cjs");require("./index-28e03bad.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-f1c702f6.cjs");require("./vnode-b906ae6d.cjs");require("./scroll-b108dabd.cjs");require("./use-global-config-c80f33a4.cjs");require("./index-37b8d3c6.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./index-7dce9f59.cjs");require("./config-provider-2ae47cc8.cjs");const I=T.buildProps({size:{type:[Number,String],values:M.componentSizes,default:"",validator:l=>T.isNumber(l)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:M.iconPropType},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:T.definePropType(String),default:"cover"}}),L={error:l=>l instanceof Event},O=e.defineComponent({name:"ElAvatar"}),R=e.defineComponent({...O,props:I,emits:L,setup(l,{emit:k}){const h=l,o=T.useNamespace("avatar"),f=e.ref(!1),c=e.computed(()=>{const{size:t,icon:y,shape:n}=h,d=[o.b()];return T.isString(t)&&d.push(o.m(t)),y&&d.push(o.m("icon")),n&&d.push(o.m(n)),d}),b=e.computed(()=>{const{size:t}=h;return T.isNumber(t)?o.cssVarBlock({size:T.addUnit(t)||""}):void 0}),u=e.computed(()=>({objectFit:h.fit}));e.watch(()=>h.src,()=>f.value=!1);function i(t){f.value=!0,k("error",t)}return(t,y)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(c)),style:e.normalizeStyle(e.unref(b))},[(t.src||t.srcSet)&&!f.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.src,alt:t.alt,srcset:t.srcSet,style:e.normalizeStyle(e.unref(u)),onError:i},null,44,["src","alt","srcset"])):t.icon?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),_:1})):e.renderSlot(t.$slots,"default",{key:2})],6))}});var J=T._export_sfc(R,[["__file","avatar.vue"]]);const K=T.withInstall(J);const U=async({appId:l,apiKey:k,value:h,callback:o})=>{var f;try{const c=await fetch(`https://dashscope.aliyuncs.com/api/v1/apps/${l}/completion`,{method:"POST",body:JSON.stringify({input:{prompt:h},parameters:{incremental_output:"true"},debug:{}}),headers:{Authorization:`Bearer ${k}`,"Content-Type":"application/json","X-DashScope-SSE":"enable"}});if(!c.ok){o("error",`HTTP ${c.status}: ${c.statusText}`);return}const b=c.body.getReader(),u=new TextDecoder;let i="",t=null;for(;;){const{done:y,value:n}=await b.read();if(y){i.trim()&&W(i,o),o("finish","");break}i+=u.decode(n,{stream:!0});let d;for(;(d=i.indexOf(`
2
+ `))!==-1;){const _=i.substring(0,d).trim();if(i=i.substring(d+1),_.startsWith("event:")){t=_.substring(6).trim();continue}if(_.startsWith("data:")){const V=_.substring(5).trim();if(t==="error"||V&&V.startsWith("{"))try{const g=JSON.parse(V);if(g.code||g.message||t==="error"){const q=g.message||g.code||"未知错误";o("error",`百炼服务端错误: ${q}`);return}const E=(f=g==null?void 0:g.output)==null?void 0:f.text;E&&o&&o("message",E)}catch{console.debug("JSON 解析失败:",V)}t=null}}}}catch(c){console.error("流式请求失败:",c),o("error",c.message)}},W=(l,k)=>{var f;const h=l.split(`
3
+ `);let o=null;for(const c of h){if(c.startsWith("event:")){o=c.substring(6).trim();continue}if(c.startsWith("data:")){const b=c.substring(5).trim();if(b&&b!=="[DONE]")try{const u=JSON.parse(b);if(o==="error"||u.code||u.message){const t=u.message||u.code||"未知错误";k("error",`百炼服务端错误: ${t}`);return}const i=(f=u==null?void 0:u.output)==null?void 0:f.text;i&&k&&k("message",i)}catch{}o=null}}};const N=l=>(e.pushScopeId("data-v-b571a3f5"),l=l(),e.popScopeId(),l),X={class:"chat-container"},G={class:"avatar"},Q={class:"message-content"},Z={class:"message-text"},ee={class:"message-createTime"},te=N(()=>e.createElementVNode("div",{class:"message-createTime"},"请问对本轮查询结果是否满意?",-1)),se={class:"feedback-buttons"},ae=["onClick"],ne=N(()=>e.createElementVNode("span",{class:"btn-emoji"},"👍",-1)),re=N(()=>e.createElementVNode("span",{class:"btn-text"},"满意",-1)),oe=[ne,re],ie=["onClick"],le=N(()=>e.createElementVNode("span",{class:"btn-emoji"},"👎",-1)),ce=N(()=>e.createElementVNode("span",{class:"btn-text"},"不满意",-1)),ue=[le,ce],de={key:1,class:"message-createTime"},me={key:0,class:"message-item assistant"},fe={class:"avatar"},pe=N(()=>e.createElementVNode("div",{class:"message-content"},[e.createElementVNode("div",{class:"typing-indicator"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")])],-1)),ve={class:"input-area"},ge={class:"input-actions"},he=N(()=>e.createElementVNode("div",{class:"input-hint"},[e.createElementVNode("span",null,"Enter 发送 | Ctrl + Enter 换行")],-1)),_e={class:"feedback-dialog-content"},ke=N(()=>e.createElementVNode("div",{class:"feedback-emoji"},"😟",-1)),be=N(()=>e.createElementVNode("p",{class:"feedback-tip"},"很抱歉没能帮到您,请告诉我们哪里需要改进:",-1)),ye={class:"dialog-footer"},Ve={__name:"index",props:{defaultMessage:{type:String,default:`你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询
4
4
 
5
5
  示例:
6
- 帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 按照总市值升序进行排序`}},emits:["callBack"],setup(i,{expose:E,emit:v}){const r=e.inject("stConfig"),m=e.reactive($.V()),l=v,g=i,_=e.ref(!1),c=e.ref(!1),n=e.ref(!1),h=e.ref(null),a=e.ref([{role:"assistant",content:g.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),u=e.ref(""),k=e.ref(!1),y=e.ref(""),w=e.ref({}),C=async(d,t)=>{switch(d){case"satisfied":{const s=a.value[t],p={userName:m.username,userContent:s.userContent,aiContent:s.content,type:1,createTime:s.createTime,resTime:s.resTime,firstPackageTime:s.firstPackageTime};await r.request.post("/alarm/deliversign/addVarietyAiHelperLog",p),D.ElMessage.success("感谢您的评价!"),a.value[t].hasFeedback=!0;break}case"open":{w.value=t,k.value=!0;break}case"unsatisfied":{const s=a.value[t],p={userName:m.username,userContent:s.userContent,userSuggestion:y.value,aiContent:s.content,type:2,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime};await r.request.post("/alarm/deliversign/addVarietyAiHelperLog",p),D.ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化"),k.value=!1,a.value[t].hasFeedback=!0;break}case"default":{const s=a.value[t],p={userName:m.username,userContent:s.userContent,userSuggestion:y.value,aiContent:s.content,type:null,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime};await r.request.post("/alarm/deliversign/addVarietyAiHelperLog",p)}}},F=async()=>{const d=u.value.trim();if(!d)return D.ElMessage.warning("请输入消息内容");if(c.value)return;a.value.push({role:"user",content:d,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss")}),u.value="",await N(),a.value.push({role:"assistant",content:"",userContent:d,showFeedback:!1,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}),await N(),c.value=!0,n.value=!0;let t="",s=new Date().getTime();try{await J({appId:"9e54d112acfe4531bd1fc4fee8827fef",apiKey:"sk-d995eb26a4334bdeb2ccb4cbfaf51de8",value:d,callback:(S,f)=>{if(S==="message"){t+=f;const o=a.value[a.value.length-1];o&&o.role==="assistant"&&(o.content=t,N()),o.firstPackageTime===0&&(o.firstPackageTime=new Date().getTime()-s)}else if(S==="finish"){n.value=!1,c.value=!1;const o=a.value[a.value.length-1];o&&o.role==="assistant"&&(o.showFeedback=!0,o.resTime=new Date().getTime()-s,C("default",a.value.length-1));try{const T=JSON.parse(t);l("callBack",T)}catch{l("callBack",t)}}}})}catch(p){D.ElMessage.error(`AI响应异常: ${p}`),a.value.pop(),a.value.push({role:"assistant",userContent:d,content:"抱歉,AI服务响应异常,请稍后重试。",showFeedback:!0,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),C("default",a.value.length-1),await N(),c.value=!1,n.value=!1}},P=d=>{if(d.key==="Enter")if(d.ctrlKey){d.preventDefault();const t=d.target,s=t.selectionStart,p=t.selectionEnd;u.value=u.value.substring(0,s)+`
7
- `+u.value.substring(p),e.nextTick(()=>{t.selectionStart=t.selectionEnd=s+1})}else d.preventDefault(),F()},N=async()=>{await e.nextTick(),h.value&&(h.value.scrollTop=h.value.scrollHeight)};return e.watch(()=>a.value,()=>{N()},{deep:!0}),E({open:()=>{_.value=!0,e.nextTick(()=>{N()})}}),(d,t)=>{const s=U,p=z.ElInput,x=Y.ElButton,S=H.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(S,{class:"ai-dialog",modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=f=>_.value=f),title:"✨ 品种池参数解析AI助手",width:"500px",center:"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0},{default:e.withCtx(()=>{var f;return[e.createElementVNode("div",X,[e.createElementVNode("div",{ref_key:"messageListRef",ref:h,class:"message-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(o,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"message-item-wrapper"},[e.createElementVNode("div",{class:e.normalizeClass(["message-item",o.role])},[o.content?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",G,[e.createVNode(s,{size:32,icon:o.role==="user"?e.unref(B.user_filled_default):e.unref(B.service_default)},null,8,["icon"])]),e.createElementVNode("div",Q,[e.createElementVNode("div",Z,e.toDisplayString(o.content),1),e.createElementVNode("div",ee,e.toDisplayString(o.createTime),1),o.role==="assistant"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.showFeedback&&!o.hasFeedback?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[te,e.createElementVNode("div",se,[e.createElementVNode("button",{class:"feedback-btn satisfied-btn",onClick:A=>C("satisfied",T)},re,8,ae),e.createElementVNode("button",{class:"feedback-btn unsatisfied-btn",onClick:A=>C("open",T)},ue,8,ie)])],64)):e.createCommentVNode("",!0),o.showFeedback&&o.hasFeedback?(e.openBlock(),e.createElementBlock("div",de,"感谢您进行的评价反馈")):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0)],2)]))),128)),n.value&&!((f=a.value[a.value.length-1])!=null&&f.content)?(e.openBlock(),e.createElementBlock("div",me,[e.createElementVNode("div",pe,[e.createVNode(s,{size:32,icon:e.unref(B.service_default)},null,8,["icon"])]),fe])):e.createCommentVNode("",!0)],512),e.createElementVNode("div",ve,[e.createVNode(p,{class:"message-input",modelValue:u.value,"onUpdate:modelValue":t[0]||(t[0]=o=>u.value=o),type:"textarea",rows:4,autosize:{minRows:2,maxRows:4},placeholder:"输入您想查询的品种条件... (Ctrl+Enter换行,Enter发送)",onKeydown:P},null,8,["modelValue"]),e.createElementVNode("div",ge,[_e,e.createVNode(x,{class:"send-btn",type:"primary",icon:e.unref(B.promotion_default),loading:c.value,onClick:F,round:""},{default:e.withCtx(()=>[e.createTextVNode(" 发送 ")]),_:1},8,["icon","loading"])])])])]}),_:1},8,["modelValue"]),e.createVNode(S,{modelValue:k.value,"onUpdate:modelValue":t[5]||(t[5]=f=>k.value=f),title:"📝 反馈意见",width:"400px"},{footer:e.withCtx(()=>[e.createElementVNode("span",Ve,[e.createVNode(x,{onClick:t[3]||(t[3]=f=>k.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(x,{type:"primary",onClick:t[4]||(t[4]=f=>C("unsatisfied",w.value))},{default:e.withCtx(()=>[e.createTextVNode("提交反馈")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",he,[ke,ye,e.createVNode(p,{modelValue:y.value,"onUpdate:modelValue":t[2]||(t[2]=f=>y.value=f),type:"textarea",rows:4,placeholder:"[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."},null,8,["modelValue"])])]),_:1},8,["modelValue"])],64)}}},Ee=j._export_sfc(be,[["__scopeId","data-v-24220a5f"]]),Ne={install(i){i.component("st-varietyAiHelper",Ee)}};module.exports=Ne;
6
+ 帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 按照总市值升序进行排序`}},emits:["callBack"],setup(l,{expose:k,emit:h}){const o=e.inject("stConfig"),f=e.reactive(z.V()),c=h,b=l,u=e.ref(!1),i=e.ref(!1),t=e.ref(!1),y=e.ref(null),n=e.ref([{role:"assistant",content:b.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:B.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),d=e.ref(""),_=e.ref(!1),V=e.ref(""),g=e.ref({}),E=async(m,s)=>{switch(m){case"satisfied":{const a=n.value[s],p={userName:f.username,userContent:a.userContent,aiContent:a.content,type:1,createTime:a.createTime,resTime:a.resTime,firstPackageTime:a.firstPackageTime};await o.request.post("/alarm/deliversign/addVarietyAiHelperLog",p),F.ElMessage.success("感谢您的评价!"),n.value[s].hasFeedback=!0;break}case"open":{g.value=s,_.value=!0;break}case"unsatisfied":{const a=n.value[s],p={userName:f.username,userContent:a.userContent,userSuggestion:V.value,aiContent:a.content,type:2,resTime:a.resTime,createTime:a.createTime,firstPackageTime:a.firstPackageTime};await o.request.post("/alarm/deliversign/addVarietyAiHelperLog",p),F.ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化"),_.value=!1,n.value[s].hasFeedback=!0;break}case"default":{const a=n.value[s],p={userName:f.username,userContent:a.userContent,userSuggestion:V.value,aiContent:a.content,type:null,resTime:a.resTime,createTime:a.createTime,firstPackageTime:a.firstPackageTime};await o.request.post("/alarm/deliversign/addVarietyAiHelperLog",p)}}},q=async()=>{const m=d.value.trim();if(!m)return F.ElMessage.warning("请输入消息内容");if(i.value)return;n.value.push({role:"user",content:m,createTime:B.dayjs().format("YYYY-MM-DD HH:mm:ss")}),d.value="",await w(),n.value.push({role:"assistant",content:"",userContent:m,showFeedback:!1,hasFeedback:!1,createTime:B.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}),await w(),i.value=!0,t.value=!0;let s="",a=new Date().getTime();try{await U({appId:"9e54d112acfe4531bd1fc4fee8827fef",apiKey:"sk-d995eb26a4334bdeb2ccb4cbfaf51de8",value:m,callback:(C,v)=>{if(C==="error"){t.value=!1,i.value=!1,n.value.pop(),n.value.push({role:"assistant",userContent:m,content:`❌ ${v}`,showFeedback:!1,hasFeedback:!1,createTime:B.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-a,firstPackageTime:0}),E("default",n.value.length-1),w();return}else if(C==="message"){s+=v;const r=n.value[n.value.length-1];r&&r.role==="assistant"&&(r.content=s,w()),r.firstPackageTime===0&&(r.firstPackageTime=new Date().getTime()-a)}else if(C==="finish"){t.value=!1,i.value=!1;const r=n.value[n.value.length-1];r&&r.role==="assistant"&&(r.showFeedback=!0,r.resTime=new Date().getTime()-a,E("default",n.value.length-1));try{const S=JSON.parse(s);c("callBack",S)}catch{c("callBack",s)}}}})}catch(p){F.ElMessage.error(`AI响应异常: ${p}`),n.value.pop(),n.value.push({role:"assistant",userContent:m,content:"抱歉,AI服务响应异常,请稍后重试。",showFeedback:!0,hasFeedback:!1,createTime:B.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-a,firstPackageTime:0}),E("default",n.value.length-1),await w(),i.value=!1,t.value=!1}},P=m=>{if(m.key==="Enter")if(m.ctrlKey){m.preventDefault();const s=m.target,a=s.selectionStart,p=s.selectionEnd;d.value=d.value.substring(0,a)+`
7
+ `+d.value.substring(p),e.nextTick(()=>{s.selectionStart=s.selectionEnd=a+1})}else m.preventDefault(),q()},w=async()=>{await e.nextTick(),y.value&&(y.value.scrollTop=y.value.scrollHeight)};return e.watch(()=>n.value,()=>{w()},{deep:!0}),k({open:()=>{u.value=!0,e.nextTick(()=>{w()})}}),(m,s)=>{const a=K,p=$.ElInput,D=A.ElButton,C=H.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(C,{class:"ai-dialog",modelValue:u.value,"onUpdate:modelValue":s[1]||(s[1]=v=>u.value=v),title:"✨ 品种池参数解析AI助手",width:"500px",center:"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0},{default:e.withCtx(()=>{var v;return[e.createElementVNode("div",X,[e.createElementVNode("div",{ref_key:"messageListRef",ref:y,class:"message-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(r,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"message-item-wrapper"},[e.createElementVNode("div",{class:e.normalizeClass(["message-item",r.role])},[r.content?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",G,[e.createVNode(a,{size:32,icon:r.role==="user"?e.unref(x.user_filled_default):e.unref(x.service_default)},null,8,["icon"])]),e.createElementVNode("div",Q,[e.createElementVNode("div",Z,e.toDisplayString(r.content),1),e.createElementVNode("div",ee,e.toDisplayString(r.createTime),1),r.role==="assistant"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[r.showFeedback&&!r.hasFeedback?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[te,e.createElementVNode("div",se,[e.createElementVNode("button",{class:"feedback-btn satisfied-btn",onClick:Y=>E("satisfied",S)},oe,8,ae),e.createElementVNode("button",{class:"feedback-btn unsatisfied-btn",onClick:Y=>E("open",S)},ue,8,ie)])],64)):e.createCommentVNode("",!0),r.showFeedback&&r.hasFeedback?(e.openBlock(),e.createElementBlock("div",de,"感谢您进行的评价反馈")):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0)],2)]))),128)),t.value&&!((v=n.value[n.value.length-1])!=null&&v.content)?(e.openBlock(),e.createElementBlock("div",me,[e.createElementVNode("div",fe,[e.createVNode(a,{size:32,icon:e.unref(x.service_default)},null,8,["icon"])]),pe])):e.createCommentVNode("",!0)],512),e.createElementVNode("div",ve,[e.createVNode(p,{class:"message-input",modelValue:d.value,"onUpdate:modelValue":s[0]||(s[0]=r=>d.value=r),type:"textarea",rows:4,autosize:{minRows:2,maxRows:4},placeholder:"输入您想查询的品种条件... (Ctrl+Enter换行,Enter发送)",onKeydown:P},null,8,["modelValue"]),e.createElementVNode("div",ge,[he,e.createVNode(D,{class:"send-btn",type:"primary",icon:e.unref(x.promotion_default),loading:i.value,onClick:q,round:""},{default:e.withCtx(()=>[e.createTextVNode(" 发送 ")]),_:1},8,["icon","loading"])])])])]}),_:1},8,["modelValue"]),e.createVNode(C,{modelValue:_.value,"onUpdate:modelValue":s[5]||(s[5]=v=>_.value=v),title:"📝 反馈意见",width:"400px"},{footer:e.withCtx(()=>[e.createElementVNode("span",ye,[e.createVNode(D,{onClick:s[3]||(s[3]=v=>_.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(D,{type:"primary",onClick:s[4]||(s[4]=v=>E("unsatisfied",g.value))},{default:e.withCtx(()=>[e.createTextVNode("提交反馈")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",_e,[ke,be,e.createVNode(p,{modelValue:V.value,"onUpdate:modelValue":s[2]||(s[2]=v=>V.value=v),type:"textarea",rows:4,placeholder:"[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."},null,8,["modelValue"])])]),_:1},8,["modelValue"])],64)}}},Ee=j._export_sfc(Ve,[["__scopeId","data-v-b571a3f5"]]),Te={install(l){l.component("st-varietyAiHelper",Ee)}};module.exports=Te;