st-comp 0.0.266 → 0.0.267

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,5 +1,5 @@
1
- "use strict";const k=require("./base-ef747d02.cjs"),W=require("./el-dialog-6501a151.cjs");require("./el-overlay-a94f8a98.cjs");const G=require("./el-button-dd065de0.cjs"),Q=require("./el-input-094afbe2.cjs"),e=require("vue"),q=require("./dayjs.min-2c20abe6.cjs"),X=require("./index-8901a38c.cjs"),Z=require("./aiTools-6c9c58bd.cjs"),g=require("./index-3792552a.cjs"),ee=require("./_plugin-vue_export-helper-f246444f.cjs"),D=require("./index-21e8d2bc.cjs"),$=require("./use-form-common-props-00ec25ac.cjs");require("./index-bf98dd03.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-28efb416.cjs");require("./index-7eb88616.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./index-4f900527.cjs");require("./config-provider-ea286661.cjs");const te=k.buildProps({size:{type:[Number,String],values:$.componentSizes,default:"",validator:d=>k.isNumber(d)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:$.iconPropType},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:k.definePropType(String),default:"cover"}}),se={error:d=>d instanceof Event},ae=e.defineComponent({name:"ElAvatar"}),ne=e.defineComponent({...ae,props:te,emits:se,setup(d,{emit:P}){const T=d,f=k.useNamespace("avatar"),N=e.ref(!1),B=e.computed(()=>{const{size:o,icon:_,shape:m}=T,v=[f.b()];return k.isString(o)&&v.push(f.m(o)),_&&v.push(f.m("icon")),m&&v.push(f.m(m)),v}),M=e.computed(()=>{const{size:o}=T;return k.isNumber(o)?f.cssVarBlock({size:k.addUnit(o)||""}):void 0}),Y=e.computed(()=>({objectFit:T.fit}));e.watch(()=>T.src,()=>N.value=!1);function x(o){N.value=!0,P("error",o)}return(o,_)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(B)),style:e.normalizeStyle(e.unref(M))},[(o.src||o.srcSet)&&!N.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:o.src,alt:o.alt,srcset:o.srcSet,style:e.normalizeStyle(e.unref(Y)),onError:x},null,44,["src","alt","srcset"])):o.icon?(e.openBlock(),e.createBlock(e.unref(g.ElIcon),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon)))]),_:1})):e.renderSlot(o.$slots,"default",{key:2})],6))}});var oe=k._export_sfc(ne,[["__file","avatar.vue"]]);const re=k.withInstall(oe);const p=d=>(e.pushScopeId("data-v-3015ca89"),d=d(),e.popScopeId(),d),le={class:"ai-dialog-body"},ce={class:"avatar"},ie={class:"message-content"},ue={key:0,class:"node-progress"},de={class:"node-status-icon"},me={class:"node-name"},fe={key:0,class:"node-progress-item next-step"},pe={class:"node-status-icon"},ve=p(()=>e.createElementVNode("span",{class:"node-name"},"正在执行下一步...",-1)),ge=["innerHTML"],ke={key:2,class:"message-text"},_e={class:"message-createTime"},he=p(()=>e.createElementVNode("div",{class:"message-createTime"},"请问对本轮查询结果是否满意?",-1)),ye={class:"feedback-buttons"},Ve=["onClick"],Ne=p(()=>e.createElementVNode("span",{class:"btn-emoji"},"👍",-1)),be=p(()=>e.createElementVNode("span",{class:"btn-text"},"满意",-1)),Ee=[Ne,be],Te=["onClick"],Ce=p(()=>e.createElementVNode("span",{class:"btn-emoji"},"👎",-1)),we=p(()=>e.createElementVNode("span",{class:"btn-text"},"不满意",-1)),Be=[Ce,we],Se={key:1,class:"message-createTime"},qe={key:0,class:"message-item assistant"},Me={class:"avatar"},xe=p(()=>e.createElementVNode("div",{class:"message-content"},[e.createElementVNode("div",{class:"typing-indicator"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")])],-1)),Fe={class:"input-area"},De={class:"input-actions"},Pe=p(()=>e.createElementVNode("div",{class:"input-hint"},[e.createElementVNode("span",null,"Enter 发送 | Ctrl + Enter 换行")],-1)),Ye={class:"feedback-dialog-content"},He=p(()=>e.createElementVNode("div",{class:"feedback-emoji"},"😟",-1)),Ae=p(()=>e.createElementVNode("p",{class:"feedback-tip"},"很抱歉没能帮到您,请告诉我们哪里需要改进:",-1)),ze={class:"dialog-footer"},Le={__name:"index",props:{defaultMessage:{type:String,default:`你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询
1
+ "use strict";const k=require("./base-ef747d02.cjs"),O=require("./el-dialog-6501a151.cjs");require("./el-overlay-a94f8a98.cjs");const R=require("./el-button-dd065de0.cjs"),J=require("./el-input-094afbe2.cjs"),e=require("vue"),x=require("./dayjs.min-2c20abe6.cjs"),z=require("./index-8901a38c.cjs"),U=require("./aiTools-822859d6.cjs"),v=require("./index-3792552a.cjs"),K=require("./_plugin-vue_export-helper-f246444f.cjs"),D=require("./index-21e8d2bc.cjs"),L=require("./use-form-common-props-00ec25ac.cjs");require("./index-bf98dd03.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-28efb416.cjs");require("./index-7eb88616.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./index-4f900527.cjs");require("./config-provider-ea286661.cjs");const W=k.buildProps({size:{type:[Number,String],values:L.componentSizes,default:"",validator:i=>k.isNumber(i)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:L.iconPropType},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:k.definePropType(String),default:"cover"}}),G={error:i=>i instanceof Event},Q=e.defineComponent({name:"ElAvatar"}),X=e.defineComponent({...Q,props:W,emits:G,setup(i,{emit:M}){const N=i,f=k.useNamespace("avatar"),h=e.ref(!1),B=e.computed(()=>{const{size:l,icon:u,shape:V}=N,p=[f.b()];return k.isString(l)&&p.push(f.m(l)),u&&p.push(f.m("icon")),V&&p.push(f.m(V)),p}),F=e.computed(()=>{const{size:l}=N;return k.isNumber(l)?f.cssVarBlock({size:k.addUnit(l)||""}):void 0}),Y=e.computed(()=>({objectFit:N.fit}));e.watch(()=>N.src,()=>h.value=!1);function _(l){h.value=!0,M("error",l)}return(l,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(B)),style:e.normalizeStyle(e.unref(F))},[(l.src||l.srcSet)&&!h.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:l.src,alt:l.alt,srcset:l.srcSet,style:e.normalizeStyle(e.unref(Y)),onError:_},null,44,["src","alt","srcset"])):l.icon?(e.openBlock(),e.createBlock(e.unref(v.ElIcon),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),_:1})):e.renderSlot(l.$slots,"default",{key:2})],6))}});var Z=k._export_sfc(X,[["__file","avatar.vue"]]);const ee=k.withInstall(Z);const m=i=>(e.pushScopeId("data-v-c6a98338"),i=i(),e.popScopeId(),i),te={class:"ai-dialog-body"},se={class:"avatar"},ae={class:"message-content"},ne={key:0,class:"node-progress"},oe={class:"node-status-icon"},le={class:"node-name"},re={key:0,class:"node-progress-item next-step"},ce={class:"node-status-icon"},ie=m(()=>e.createElementVNode("span",{class:"node-name"},"正在执行下一步...",-1)),ue=["innerHTML"],de={key:2,class:"message-text"},me={class:"message-createTime"},fe=m(()=>e.createElementVNode("div",{class:"message-createTime"},"请问对本轮查询结果是否满意?",-1)),pe={class:"feedback-buttons"},ve=["onClick"],ke=m(()=>e.createElementVNode("span",{class:"btn-emoji"},"👍",-1)),_e=m(()=>e.createElementVNode("span",{class:"btn-text"},"满意",-1)),ge=[ke,_e],he=["onClick"],Ve=m(()=>e.createElementVNode("span",{class:"btn-emoji"},"👎",-1)),ye=m(()=>e.createElementVNode("span",{class:"btn-text"},"不满意",-1)),be=[Ve,ye],Ee={key:1,class:"message-createTime"},Ne={key:0,class:"message-item assistant"},Te={class:"avatar"},Ce=m(()=>e.createElementVNode("div",{class:"message-content"},[e.createElementVNode("div",{class:"typing-indicator"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")])],-1)),we={class:"input-area"},Be={class:"input-actions"},Se=m(()=>e.createElementVNode("div",{class:"input-hint"},[e.createElementVNode("span",null,"Enter 发送 | Ctrl + Enter 换行")],-1)),qe={class:"feedback-dialog-content"},xe=m(()=>e.createElementVNode("div",{class:"feedback-emoji"},"😟",-1)),Fe=m(()=>e.createElementVNode("p",{class:"feedback-tip"},"很抱歉没能帮到您,请告诉我们哪里需要改进:",-1)),De={class:"dialog-footer"},Me={__name:"index",props:{defaultMessage:{type:String,default:`你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询
2
2
 
3
3
  示例:
4
- 帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 最近一次红箱的开盘价大于前5根K线的最高价, 并按照总市值升序进行排序`}},emits:["callBack"],setup(d,{expose:P,emit:T}){const f=e.inject("stConfig"),N=e.reactive(X.V()),B=e.ref(!1),M=T,Y=d,x=e.ref(),o=e.ref(!1),_=e.ref(!1),m=e.ref([]),v=e.ref(!1),F=e.ref(null),n=e.ref([{role:"assistant",content:Y.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),b=e.ref(""),C=e.ref(!1),S=e.ref(""),H=e.ref({}),A=a=>{if(typeof a!="string")return!1;try{const t=JSON.parse(a);return t!==null&&typeof t=="object"}catch{return!1}},I=a=>{if(!A(a))return null;try{const t=JSON.parse(a),{parsedConditions:s,...u}=t;return{parsedConditions:s,webParams:u}}catch{return null}},O=a=>{var s;if(!a)return"";let t="";return(s=a.parsedConditions)!=null&&s.length&&(t+='<div class="parsed-conditions">',a.parsedConditions.forEach(u=>{t+=`<div class="parsed-conditions-item">${u}</div>`}),t+="</div>"),t},w=async(a,t)=>{switch(a){case"satisfied":{const s=n.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:N.username,userContent:s.userContent,aiContent:s.content,type:1,createTime:s.createTime,resTime:s.resTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1}),D.ElMessage.success("感谢您的评价!"),n.value[t].hasFeedback=!0;break}case"open":{H.value=t,C.value=!0;break}case"unsatisfied":{const s=n.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:N.username,userContent:s.userContent,userSuggestion:S.value,aiContent:s.content,type:2,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:0,logOrigin:1}),D.ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化"),C.value=!1,n.value[t].hasFeedback=!0;break}case"default":{const s=n.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:N.username,userContent:s.userContent,userSuggestion:S.value,aiContent:s.content,type:null,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1})}}},z=async()=>{const a=b.value.trim();if(!a)return D.ElMessage.warning("请输入消息内容");if(o.value)return;m.value=[],v.value=!1,n.value.push({role:"user",content:a,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss")}),b.value="",await h(),n.value.push({role:"assistant",content:"",userContent:a,showFeedback:!1,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}),await h(),o.value=!0,_.value=!0;let t="",s=new Date().getTime(),u=!1;try{const y="1977602b357e4dab9d0b74899d5323b3",V="sk-d995eb26a4334bdeb2ccb4cbfaf51de8";await Z.sendToBaiLianWorkflowStreaming({appId:y,apiKey:V,value:a,callback:(E,c)=>{var l;if(E==="error"){_.value=!1,o.value=!1,n.value.pop(),n.value.push({role:"assistant",userContent:a,content:`❌ ${c}`,showFeedback:!1,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),w("default",n.value.length-1),h();return}if(E==="node"){if(!u){u=!0;const r=n.value[n.value.length-1];r&&r.role==="assistant"&&r.firstPackageTime===0&&(r.firstPackageTime=new Date().getTime()-s)}const i=m.value.find(r=>r.name===c.name);i?i.status=c.status:m.value.push({name:c.name,status:c.status}),h();return}if(E==="message"){t=c;const i=n.value[n.value.length-1];i&&i.role==="assistant"&&(i.content=t,h())}if(E==="finish"){_.value=!1,o.value=!1,v.value=!0;const i=n.value[n.value.length-1];i&&i.role==="assistant"&&(i.showFeedback=!0,i.resTime=new Date().getTime()-s,w("default",n.value.length-1));try{const r=JSON.parse(t);if(r.parsedConditions&&delete r.parsedConditions,(l=r.customTagNames)!=null&&l.length){const U=r.customTagNames.reduce((L,K)=>{const j=x.value[K];return j&&L.push(j),L},[]);delete r.customTagNames,r.customTag=U}M("callBack",r)}catch{M("callBack",t)}}}})}catch(y){D.ElMessage.error(`AI响应异常: ${y}`),n.value.pop(),n.value.push({role:"assistant",userContent:a,content:"❌ 抱歉,AI服务响应异常,请稍后重试。",showFeedback:!0,hasFeedback:!1,createTime:q.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),w("default",n.value.length-1),await h(),o.value=!1,_.value=!1}},R=a=>{if(a.key==="Enter")if(a.ctrlKey){a.preventDefault();const t=a.target,s=t.selectionStart,u=t.selectionEnd;b.value=b.value.substring(0,s)+`
5
- `+b.value.substring(u),e.nextTick(()=>{t.selectionStart=t.selectionEnd=s+1})}else a.preventDefault(),z()},h=async()=>{await e.nextTick(),F.value&&(F.value.scrollTop=F.value.scrollHeight)},J=async()=>{const a=await Promise.all([f.request.post("/alarm/deliversign/findTagsByUserId"),f.request.post("/alarm/deliversign/findSystemTagsByTagName")]);x.value=a.reduce((t,s)=>{var u;return{...t,...(u=s.body)==null?void 0:u.reduce((y,V)=>({...y,[V.tagName]:V.id}),{})}},{})};return e.onMounted(()=>{J()}),e.watch(()=>n.value,()=>{h()},{deep:!0}),e.watch(()=>C.value,a=>{a||(S.value="")}),P({open:()=>{B.value=!0,e.nextTick(()=>{h()})}}),(a,t)=>{const s=re,u=g.ElIcon,y=Q.ElInput,V=G.ElButton,E=W.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(E,{class:"ai-dialog",modelValue:B.value,"onUpdate:modelValue":t[1]||(t[1]=c=>B.value=c),title:"✨ 品种池参数解析AI助手",width:"500px",center:"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0},{default:e.withCtx(()=>{var c;return[e.createElementVNode("div",le,[e.createElementVNode("div",{ref_key:"messageListRef",ref:F,class:"message-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(l,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:e.normalizeClass([l.role,"message-item"])},[l.content||i===n.value.length-1&&l.role==="assistant"&&m.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",ce,[e.createVNode(s,{size:32,icon:l.role==="user"?e.unref(g.user_filled_default):e.unref(g.service_default)},null,8,["icon"])]),e.createElementVNode("div",ie,[i===n.value.length-1&&l.role==="assistant"&&m.value.length>0&&!v.value?(e.openBlock(),e.createElementBlock("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.name,class:"node-progress-item"},[e.createElementVNode("span",de,[r.status==="success"?(e.openBlock(),e.createBlock(u,{key:0,class:"node-icon done"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.success_filled_default))]),_:1})):(e.openBlock(),e.createBlock(u,{key:1,class:"node-icon running"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.refresh_default))]),_:1}))]),e.createElementVNode("span",me,e.toDisplayString(r.name),1)]))),128)),m.value.length>0&&m.value.every(r=>r.status==="success")&&!v.value?(e.openBlock(),e.createElementBlock("div",fe,[e.createElementVNode("span",pe,[e.createVNode(u,{class:"node-icon waiting"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.refresh_default))]),_:1})]),ve])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),A(l.content)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"message-json",innerHTML:O(I(l.content))},null,8,ge)):l.content?(e.openBlock(),e.createElementBlock("div",ke,e.toDisplayString(l.content),1)):e.createCommentVNode("",!0),e.createElementVNode("div",_e,e.toDisplayString(l.createTime),1),l.role==="assistant"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[l.showFeedback&&!l.hasFeedback?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he,e.createElementVNode("div",ye,[e.createElementVNode("button",{class:"feedback-btn satisfied-btn",onClick:r=>w("satisfied",i)},Ee,8,Ve),e.createElementVNode("button",{class:"feedback-btn unsatisfied-btn",onClick:r=>w("open",i)},Be,8,Te)])],64)):e.createCommentVNode("",!0),l.showFeedback&&l.hasFeedback?(e.openBlock(),e.createElementBlock("div",Se,"感谢您进行的评价反馈")):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0)],2))),128)),_.value&&m.value.length===0&&!((c=n.value[n.value.length-1])!=null&&c.content)?(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",Me,[e.createVNode(s,{size:32,icon:e.unref(g.service_default)},null,8,["icon"])]),xe])):e.createCommentVNode("",!0)],512),e.createElementVNode("div",Fe,[e.createVNode(y,{class:"message-input",modelValue:b.value,"onUpdate:modelValue":t[0]||(t[0]=l=>b.value=l),type:"textarea",rows:4,autosize:{minRows:2,maxRows:4},placeholder:"输入您想查询的品种条件...",onKeydown:R},null,8,["modelValue"]),e.createElementVNode("div",De,[Pe,e.createVNode(V,{class:"send-btn",type:"primary",icon:e.unref(g.promotion_default),loading:o.value,onClick:z,round:""},{default:e.withCtx(()=>[e.createTextVNode(" 发送 ")]),_:1},8,["icon","loading"])])])])]}),_:1},8,["modelValue"]),e.createVNode(E,{modelValue:C.value,"onUpdate:modelValue":t[5]||(t[5]=c=>C.value=c),title:"📝 反馈意见",width:"400px"},{footer:e.withCtx(()=>[e.createElementVNode("span",ze,[e.createVNode(V,{onClick:t[3]||(t[3]=c=>C.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(V,{type:"primary",onClick:t[4]||(t[4]=c=>w("unsatisfied",H.value))},{default:e.withCtx(()=>[e.createTextVNode("提交反馈")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",Ye,[He,Ae,e.createVNode(y,{modelValue:S.value,"onUpdate:modelValue":t[2]||(t[2]=c=>S.value=c),type:"textarea",rows:4,placeholder:"[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."},null,8,["modelValue"])])]),_:1},8,["modelValue"])],64)}}},je=ee._export_sfc(Le,[["__scopeId","data-v-3015ca89"]]),$e={install(d){d.component("st-varietyAiHelper",je)}};module.exports=$e;
4
+ 帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 最近一次红箱的开盘价大于前5根K线的最高价, 并按照总市值升序进行排序`}},emits:["callBack"],setup(i,{expose:M,emit:N}){const f=e.inject("stConfig"),h=e.reactive(z.V()),B=e.ref(!1),F=N,Y=i,_=e.ref(!1),l=e.ref(!1),u=e.ref([]),V=e.ref(!1),p=e.ref(null),o=e.ref([{role:"assistant",content:Y.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),y=e.ref(""),T=e.ref(!1),S=e.ref(""),H=e.ref({}),P=n=>{if(typeof n!="string")return!1;try{const t=JSON.parse(n);return t!==null&&typeof t=="object"}catch{return!1}},j=n=>{if(!P(n))return null;try{const t=JSON.parse(n),{parsedConditions:s,...d}=t;return{parsedConditions:s,webParams:d}}catch{return null}},$=n=>{var s;if(!n)return"";let t="";return(s=n.parsedConditions)!=null&&s.length&&(t+='<div class="parsed-conditions">',n.parsedConditions.forEach(d=>{t+=`<div class="parsed-conditions-item">${d}</div>`}),t+="</div>"),t},C=async(n,t)=>{switch(n){case"satisfied":{const s=o.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:h.username,userContent:s.userContent,aiContent:s.content,type:1,createTime:s.createTime,resTime:s.resTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1}),D.ElMessage.success("感谢您的评价!"),o.value[t].hasFeedback=!0;break}case"open":{H.value=t,T.value=!0;break}case"unsatisfied":{const s=o.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:h.username,userContent:s.userContent,userSuggestion:S.value,aiContent:s.content,type:2,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:0,logOrigin:1}),D.ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化"),T.value=!1,o.value[t].hasFeedback=!0;break}case"default":{const s=o.value[t];await f.request.post("/alarm/deliversign/addVarietyAiHelperLog",{userName:h.username,userContent:s.userContent,userSuggestion:S.value,aiContent:s.content,type:null,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1})}}},A=async()=>{const n=y.value.trim();if(!n)return D.ElMessage.warning("请输入消息内容");if(_.value)return;u.value=[],V.value=!1,o.value.push({role:"user",content:n,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss")}),y.value="",await g(),o.value.push({role:"assistant",content:"",userContent:n,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}),await g(),_.value=!0,l.value=!0;let t="",s=new Date().getTime(),d=!1;try{const w="1977602b357e4dab9d0b74899d5323b3",q="sk-d995eb26a4334bdeb2ccb4cbfaf51de8";await U.sendToBaiLianWorkflowStreaming({mode:"build:split",appId:w,apiKey:q,token:z.U(),value:n,callback:(b,r)=>{if(b==="error"){l.value=!1,_.value=!1,o.value.pop(),o.value.push({role:"assistant",userContent:n,content:`❌ ${r}`,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),C("default",o.value.length-1),g();return}if(b==="node"){if(!d){d=!0;const c=o.value[o.value.length-1];c&&c.role==="assistant"&&c.firstPackageTime===0&&(c.firstPackageTime=new Date().getTime()-s)}const a=u.value.find(c=>c.name===r.name);a?a.status=r.status:u.value.push({name:r.name,status:r.status}),g();return}if(b==="message"){t=r;const a=o.value[o.value.length-1];a&&a.role==="assistant"&&(a.content=t,g())}if(b==="finish"){l.value=!1,_.value=!1,V.value=!0;const a=o.value[o.value.length-1];a&&a.role==="assistant"&&(a.showFeedback=!0,a.resTime=new Date().getTime()-s,C("default",o.value.length-1));try{const c=JSON.parse(t);c.parsedConditions&&delete c.parsedConditions,F("callBack",c)}catch{F("callBack",t)}}}})}catch(w){D.ElMessage.error(`AI响应异常: ${w}`),o.value.pop(),o.value.push({role:"assistant",userContent:n,content:"❌ 抱歉,AI服务响应异常,请稍后重试。",showFeedback:!0,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),C("default",o.value.length-1),await g(),_.value=!1,l.value=!1}},I=n=>{if(n.key==="Enter")if(n.ctrlKey){n.preventDefault();const t=n.target,s=t.selectionStart,d=t.selectionEnd;y.value=y.value.substring(0,s)+`
5
+ `+y.value.substring(d),e.nextTick(()=>{t.selectionStart=t.selectionEnd=s+1})}else n.preventDefault(),A()},g=async()=>{await e.nextTick(),p.value&&(p.value.scrollTop=p.value.scrollHeight)};return e.watch(()=>o.value,()=>{g()},{deep:!0}),e.watch(()=>T.value,n=>{n||(S.value="")}),M({open:()=>{B.value=!0,e.nextTick(()=>{g()})}}),(n,t)=>{const s=ee,d=v.ElIcon,w=J.ElInput,q=R.ElButton,b=O.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(b,{class:"ai-dialog",modelValue:B.value,"onUpdate:modelValue":t[1]||(t[1]=r=>B.value=r),title:"✨ 品种池参数解析AI助手",width:"500px",center:"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0},{default:e.withCtx(()=>{var r;return[e.createElementVNode("div",te,[e.createElementVNode("div",{ref_key:"messageListRef",ref:p,class:"message-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(a,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass([a.role,"message-item"])},[a.content||c===o.value.length-1&&a.role==="assistant"&&u.value.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",se,[e.createVNode(s,{size:32,icon:a.role==="user"?e.unref(v.user_filled_default):e.unref(v.service_default)},null,8,["icon"])]),e.createElementVNode("div",ae,[c===o.value.length-1&&a.role==="assistant"&&u.value.length>0&&!V.value?(e.openBlock(),e.createElementBlock("div",ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,E=>(e.openBlock(),e.createElementBlock("div",{key:E.name,class:"node-progress-item"},[e.createElementVNode("span",oe,[E.status==="success"?(e.openBlock(),e.createBlock(d,{key:0,class:"node-icon done"},{default:e.withCtx(()=>[e.createVNode(e.unref(v.success_filled_default))]),_:1})):(e.openBlock(),e.createBlock(d,{key:1,class:"node-icon running"},{default:e.withCtx(()=>[e.createVNode(e.unref(v.refresh_default))]),_:1}))]),e.createElementVNode("span",le,e.toDisplayString(E.name),1)]))),128)),u.value.length>0&&u.value.every(E=>E.status==="success")&&!V.value?(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("span",ce,[e.createVNode(d,{class:"node-icon waiting"},{default:e.withCtx(()=>[e.createVNode(e.unref(v.refresh_default))]),_:1})]),ie])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),P(a.content)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"message-json",innerHTML:$(j(a.content))},null,8,ue)):a.content?(e.openBlock(),e.createElementBlock("div",de,e.toDisplayString(a.content),1)):e.createCommentVNode("",!0),e.createElementVNode("div",me,e.toDisplayString(a.createTime),1),a.role==="assistant"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[a.showFeedback&&!a.hasFeedback?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[fe,e.createElementVNode("div",pe,[e.createElementVNode("button",{class:"feedback-btn satisfied-btn",onClick:E=>C("satisfied",c)},ge,8,ve),e.createElementVNode("button",{class:"feedback-btn unsatisfied-btn",onClick:E=>C("open",c)},be,8,he)])],64)):e.createCommentVNode("",!0),a.showFeedback&&a.hasFeedback?(e.openBlock(),e.createElementBlock("div",Ee,"感谢您进行的评价反馈")):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0)],2))),128)),l.value&&u.value.length===0&&!((r=o.value[o.value.length-1])!=null&&r.content)?(e.openBlock(),e.createElementBlock("div",Ne,[e.createElementVNode("div",Te,[e.createVNode(s,{size:32,icon:e.unref(v.service_default)},null,8,["icon"])]),Ce])):e.createCommentVNode("",!0)],512),e.createElementVNode("div",we,[e.createVNode(w,{class:"message-input",modelValue:y.value,"onUpdate:modelValue":t[0]||(t[0]=a=>y.value=a),type:"textarea",rows:4,autosize:{minRows:2,maxRows:4},placeholder:"输入您想查询的品种条件...",onKeydown:I},null,8,["modelValue"]),e.createElementVNode("div",Be,[Se,e.createVNode(q,{class:"send-btn",type:"primary",icon:e.unref(v.promotion_default),loading:_.value,onClick:A,round:""},{default:e.withCtx(()=>[e.createTextVNode(" 发送 ")]),_:1},8,["icon","loading"])])])])]}),_:1},8,["modelValue"]),e.createVNode(b,{modelValue:T.value,"onUpdate:modelValue":t[5]||(t[5]=r=>T.value=r),title:"📝 反馈意见",width:"400px"},{footer:e.withCtx(()=>[e.createElementVNode("span",De,[e.createVNode(q,{onClick:t[3]||(t[3]=r=>T.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(q,{type:"primary",onClick:t[4]||(t[4]=r=>C("unsatisfied",H.value))},{default:e.withCtx(()=>[e.createTextVNode("提交反馈")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",qe,[xe,Fe,e.createVNode(w,{modelValue:S.value,"onUpdate:modelValue":t[2]||(t[2]=r=>S.value=r),type:"textarea",rows:4,placeholder:"[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."},null,8,["modelValue"])])]),_:1},8,["modelValue"])],64)}}},Ye=K._export_sfc(Me,[["__scopeId","data-v-c6a98338"]]),He={install(i){i.component("st-varietyAiHelper",Ye)}};module.exports=He;