var xt=Object.defineProperty,St=Object.defineProperties;var $t=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var Mt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable;var rt=(a,u,d)=>u in a?xt(a,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[u]=d,k=(a,u)=>{for(var d in u||(u={}))Mt.call(u,d)&&rt(a,d,u[d]);if(ot)for(var d of ot(u))Et.call(u,d)&&rt(a,d,u[d]);return a},x=(a,u)=>St(a,$t(u));var R=(a,u,d)=>new Promise((c,w)=>{var h=y=>{try{H(d.next(y))}catch($){w($)}},b=y=>{try{H(d.throw(y))}catch($){w($)}},H=y=>y.done?c(y.value):Promise.resolve(y.value).then(h,b);H((d=d.apply(a,u)).next())});import{k as At,a8 as Lt,g as W,q as Ct,h as Ht,w as Dt,o as n,c as l,z as ut,F as S,y as A,n as C,a as i,t as g,j as v,C as qt,u as Rt,B as dt,f as ct,s as Pt,H as Bt,e as Ot,D as Ft,_ as Nt,d as _,A as zt}from"./index-1786807848259.js";const It={}.VITE_OPEN_API_BASE||"/openApi";function Ut(a){return/^https?:\/\//.test(a)?a:`${It}${a.startsWith("/")?a:`/${a}`}`}function Vt(a){if((a==null?void 0:a.success)===!1||(a==null?void 0:a.code)!==void 0&&![0,200,"0","200"].includes(a.code)){const d=new Error((a==null?void 0:a.message)||(a==null?void 0:a.msg)||"HTML界面生成失败");throw d.code=a==null?void 0:a.code,d}return Lt(a)}function jt(){return R(this,arguments,function*({question:a,pagePath:u=window.location.hash||window.location.pathname,pageName:d="智慧管理"}={}){const c=yield At(Ut("/screen2/smart-management/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:a,pagePath:u,pageName:d}),timeout:11e4}).then(Vt),w=String((c==null?void 0:c.provider)||""),h=String((c==null?void 0:c.model)||"");if(w.toLowerCase()!=="deepseek"||!h.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const b=Kt((c==null?void 0:c.html)||(c==null?void 0:c.content)||c);if(!b)throw new Error("代码模型没有返回完整HTML");if(Qt(b))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return x(k({},c),{html:b})})}function Kt(a){let u=String(a||"").trim();u.startsWith("```")&&(u=u.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const d=u.match(/");return d&&c>=d.index&&(u=u.slice(d.index,c+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),c=(u.match(/d.includes(b)).length;return c>=2&&h>=4||c>=1&&h>=6}function Wt(a){const u=String(a||"").trim();if(!u||typeof DOMParser=="undefined")return"";const d=new DOMParser().parseFromString(u,"text/html"),c=d.createElement("script");return c.textContent=` (() => { const notify = (type, message = "") => { window.parent.postMessage({ source: "smart-artifact", type, message: String(message).slice(0, 240) }, "*"); }; window.addEventListener("error", (event) => notify("runtime-error", event.message || "界面运行异常")); window.addEventListener("unhandledrejection", (event) => notify("runtime-error", event.reason?.message || event.reason || "界面运行异常")); window.addEventListener("DOMContentLoaded", () => notify("ready")); })(); `,d.head.prepend(c),` ${d.documentElement.outerHTML}`}const Gt={class:"wisdom-management"},Jt={key:0,class:"wisdom-side wisdom-side-left"},Yt={key:0,class:"wisdom-side-header"},Xt={key:0},Zt={key:1,class:"wisdom-side-metrics"},te={key:0},ee=["innerHTML"],se={key:3,class:"wisdom-side-actions"},ie=["disabled","onClick"],ne={key:1,class:"wisdom-side wisdom-side-right"},ae={key:0,class:"wisdom-side-header"},le={key:0},oe={key:2,class:"wisdom-side-metrics"},re={key:0},ue=["innerHTML"],de={key:4,class:"wisdom-side-actions"},ce=["disabled","onClick"],me={key:2,class:"wisdom-artifact-workspace"},fe={class:"wisdom-artifact-header"},ve={class:"wisdom-artifact-heading"},ge={class:"wisdom-artifact-tools"},he=["disabled"],we={class:"wisdom-artifact-body"},ye={key:0,class:"wisdom-artifact-building"},pe={class:"wisdom-artifact-building__intro"},be=["srcdoc"],ke={key:2,class:"wisdom-artifact-error"},_e=["disabled"],Te={key:0,class:"wisdom-empty-state"},xe={key:0,class:"wisdom-message-mark"},Se={class:"wisdom-bubble"},$e={key:0,class:"wisdom-digesting"},Me=["innerHTML"],Ee={key:2,class:"wisdom-stream-caret"},Ae={key:3,class:"wisdom-suggestion-list"},Le=["disabled","onClick"],Ce={class:"wisdom-input-shell"},He=["disabled"],De=["disabled","title","aria-label"],qe=["disabled"],Re={key:0,class:"wisdom-button-loading"},Oe={__name:"index",props:{active:{type:Boolean,default:!0}},setup(a){const u=Ft({loader:()=>Nt(()=>import("./SmartChartRenderer-3587e73a-1786807848259.js"),["./SmartChartRenderer-3587e73a-1786807848259.js","./index-1786807848259.js","./index-57a3f5c2-balabala-1786807848259.css","./index.esm.min-024ee703-1786807848259.js","./SmartChartRenderer-7a3a96b9-balabala-1786807848259.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),d=a,c=_(""),w=_([]),h=_(!1),b=_(null),H=_(null),y=_([]),$=_([]),f=_(J()),F=W(()=>f.value.status!=="idle"),U=W(()=>["collecting","generating"].includes(f.value.status)),mt=W(()=>f.value.status==="collecting"?"读取上下文":f.value.status==="generating"?"生成页面":f.value.status==="ready"?"DeepSeek生成":f.value.status==="error"?"生成失败":f.value.status==="waiting"?"等待选择":"待生成"),N=_(!1),T=_(!1),P=_("");let D=null,p=null,L=0;const q=_(null);Ct(()=>{wt(),window.addEventListener("message",tt)}),Ht(()=>{j(),z(),L+=1,window.removeEventListener("message",tt)}),Dt(()=>d.active,e=>{e||(j(),z(),L+=1,h.value=!1,w.value=w.value.map(s=>s.streaming?x(k({},s),{streaming:!1,digesting:!1}):s))});function G(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function J(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function ft(e){L+=1,q.value=null,f.value=x(k({},J()),{status:"collecting",title:Y(e),question:e})}function Y(e){const s=String(e||"动态分析").replace(/[??。!!]+$/g,"").trim();return s.length>28?`${s.slice(0,28)}...`:s||"动态分析"}function X(e){return R(this,null,function*(){const s={question:(e==null?void 0:e.question)||f.value.question,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};q.value=s;const t=++L;f.value=x(k({},f.value),{status:"generating",title:Y(s.question),question:s.question,html:"",error:"",model:""});try{const r=yield jt(s);if(t!==L)return{stale:!0};const m=Wt(r.html);if(!m)throw new Error("生成页面内容为空");return f.value=x(k({},f.value),{status:"ready",html:m,error:"",model:r.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:r}}catch(r){if(t!==L)return{stale:!0};const m=st(r,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",r),f.value=x(k({},f.value),{status:"error",html:"",error:m,model:"",renderKey:Date.now()}),{ok:!1,message:m,error:r}}})}function Z(){!q.value||U.value||X(q.value)}function vt(e){L+=1,f.value=x(k({},f.value),{status:"error",html:"",error:e,renderKey:Date.now()})}function gt(){f.value.status!=="ready"&&(f.value=x(k({},f.value),{status:"ready"}))}function tt(e){var s,t;e.source!==((s=H.value)==null?void 0:s.contentWindow)||((t=e.data)==null?void 0:t.source)!=="smart-artifact"||e.data.type==="runtime-error"&&(f.value=x(k({},f.value),{status:"error",html:"",error:e.data.message||"生成界面运行异常",renderKey:Date.now()}))}function et(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function ht(e){return et(e).trim()}function wt(){if(typeof window=="undefined")return;const e=window.SpeechRecognition||window.webkitSpeechRecognition;N.value=!!e,e&&(p=new e,p.lang="zh-CN",p.continuous=!1,p.interimResults=!0,p.maxAlternatives=1,p.onstart=()=>{T.value=!0,P.value=""},p.onresult=s=>{const r=Array.from(s.results||[]).map(m=>{var o;return((o=m==null?void 0:m[0])==null?void 0:o.transcript)||""}).join("").trim();r&&(c.value=r)},p.onerror=s=>{T.value=!1,P.value=(s==null?void 0:s.error)||"语音输入失败"},p.onend=()=>{T.value=!1})}function yt(){if(!(!p||h.value)){if(T.value){z();return}try{P.value="",p.start()}catch(e){P.value=(e==null?void 0:e.message)||"语音输入启动失败",T.value=!1}}}function z(){if(!(!p||!T.value))try{p.stop()}catch(e){P.value=(e==null?void 0:e.message)||"语音输入已结束"}finally{T.value=!1}}function B(){return R(this,arguments,function*(e=c.value){const s=ht(e);if(!s||h.value)return;z();const t={id:G(),role:"user",text:s},r={id:G(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};w.value=[...w.value,t,r],c.value="",h.value=!0,ft(s),yield it(),yield pt(s,r.id)})}function pt(e,s){return R(this,null,function*(){O(s,{digestText:"生成中"});try{O(s,{digesting:!0,digestText:"生成中",insights:[],suggestions:[],allowFollowUp:!0}),kt({question:e,answer:"",charts:[],insights:[],suggestions:[]}),V(s,bt());const t=yield X({question:e});(t==null?void 0:t.ok)===!1&&V(s,t.message||"专题分析模型调用失败,请稍后重试。")}catch(t){const r=st(t,"上下文数据整理失败,请稍后重试。");y.value=[],$.value=[],vt(r),V(s,r)}})}function bt(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` `)}function kt({question:e,answer:s,charts:t=[],insights:r=[],suggestions:m=[],aiPanels:o}={}){const E=(o==null?void 0:o.leftPanels)||[],M=(o==null?void 0:o.rightPanels)||[];if(E.length||M.length){y.value=E,$.value=M;return}y.value=[],$.value=[]}function O(e,s,t=!0){w.value=w.value.map(r=>r.id===e?k(k({},r),s):r),t&&it()}function V(e,s){O(e,{digesting:!1}),_t(e,s)}function st(e,s){const t=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||(e==null?void 0:e.code)==="HTTP_401"||(e==null?void 0:e.status)===401||/未登录|登录(?:状态)?(?:已)?(?:失效|过期)|授权已过期|Unauthorized|HTTP 401/i.test(t)?"当前登录状态已失效,请重新登录后查询。":/DeepSeek.*未授权|外部数据传输.*未授权|生成服务已关闭/i.test(t)?"智慧分析生成服务尚未启用,请联系管理员完成配置。":(e==null?void 0:e.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(t)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(e==null?void 0:e.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(t)?"本次分析已中断,请重新提交。":(e==null?void 0:e.code)==="HTTP_404"||(e==null?void 0:e.status)===404||/HTTP 404/i.test(t)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(t)?s:/[\u4e00-\u9fff]/.test(t)?t:s}function _t(e,s){j();const t=et(s),r=t.length>1200?36:t.length>700?24:14;let m=0;O(e,{fullText:t,visibleText:"",streaming:!0,charts:[]});const o=()=>{if(m=Math.min(m+r,t.length),O(e,{visibleText:t.slice(0,m),streaming:m=t.length){D=null,h.value=!1;return}D=window.setTimeout(o,18)};D=window.setTimeout(o,0)}function j(){D&&(window.clearTimeout(D),D=null)}function K(e){const s=Tt(e).split(/\r?\n/),t=[];let r=[],m=!1;const o=()=>{r.length&&(t.push(`<${m?"ol":"ul"}>${r.map(E=>`
  • ${Q(E)}
  • `).join("")}`),r=[],m=!1)};return s.forEach(E=>{const M=E.trim();if(!M){o();return}const nt=M.match(/^#{1,4}\s+(.+)$/)||M.match(/^\*\*(.+)\*\*$/);if(nt){o(),t.push(`

    ${Q(nt[1])}

    `);return}const I=M.match(/^\d+[.)、]\s+(.+)$/),at=M.match(/^[-*]\s+(.+)$/);if(I||at){const lt=!!I;r.length&&m!==lt&&o(),m=lt,r.push(I?I[1]:at[1]);return}o(),t.push(`

    ${Q(M)}

    `)}),o(),t.join("")}function Q(e){return e.replace(/\*\*([^*]+)\*\*/g,"$1")}function Tt(e){return String(e||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function it(){return R(this,null,function*(){yield zt(),window.requestAnimationFrame(()=>{b.value&&(b.value.scrollTop=b.value.scrollHeight)})})}return(e,s)=>(n(),l("div",Gt,[s[16]||(s[16]=ut('',1)),y.value.length&&!F.value?(n(),l("aside",Jt,[(n(!0),l(S,null,A(y.value,t=>{var r,m;return n(),l("section",{key:t.id,class:C(["wisdom-side-panel",`is-${t.type}`])},[t.chart?v("",!0):(n(),l("header",Yt,[i("div",null,[i("span",null,g(t.kicker),1),i("strong",null,g(t.title),1)]),t.badge?(n(),l("em",Xt,g(t.badge),1)):v("",!0)])),(r=t.items)!=null&&r.length?(n(),l("div",Zt,[(n(!0),l(S,null,A(t.items,o=>(n(),l("div",{key:`${t.id}-${o.label}`,class:"wisdom-side-metric"},[i("span",null,g(o.label),1),i("strong",null,g(o.value),1),o.note?(n(),l("em",te,g(o.note),1)):v("",!0)]))),128))])):v("",!0),t.text?(n(),l("div",{key:2,class:"wisdom-side-text",innerHTML:K(t.text)},null,8,ee)):v("",!0),(m=t.actions)!=null&&m.length?(n(),l("div",se,[(n(!0),l(S,null,A(t.actions,o=>(n(),l("button",{key:o.question,type:"button",disabled:h.value,onClick:E=>B(o.question)},g(o.label),9,ie))),128))])):v("",!0)],2)}),128))])):v("",!0),$.value.length&&!F.value?(n(),l("aside",ne,[(n(!0),l(S,null,A($.value,t=>{var r,m;return n(),l("section",{key:t.id,class:C(["wisdom-side-panel",`is-${t.type}`])},[t.chart?v("",!0):(n(),l("header",ae,[i("div",null,[i("span",null,g(t.kicker),1),i("strong",null,g(t.title),1)]),t.badge?(n(),l("em",le,g(t.badge),1)):v("",!0)])),t.chart?(n(),qt(Rt(u),{key:1,class:"wisdom-side-chart",chart:t.chart},null,8,["chart"])):v("",!0),(r=t.items)!=null&&r.length?(n(),l("div",oe,[(n(!0),l(S,null,A(t.items,o=>(n(),l("div",{key:`${t.id}-${o.label}`,class:"wisdom-side-metric"},[i("span",null,g(o.label),1),i("strong",null,g(o.value),1),o.note?(n(),l("em",re,g(o.note),1)):v("",!0)]))),128))])):v("",!0),t.text?(n(),l("div",{key:3,class:"wisdom-side-text",innerHTML:K(t.text)},null,8,ue)):v("",!0),(m=t.actions)!=null&&m.length?(n(),l("div",de,[(n(!0),l(S,null,A(t.actions,o=>(n(),l("button",{key:o.question,type:"button",disabled:h.value,onClick:E=>B(o.question)},g(o.label),9,ce))),128))])):v("",!0)],2)}),128))])):v("",!0),F.value?(n(),l("section",me,[i("header",fe,[i("div",ve,[s[4]||(s[4]=i("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),i("div",null,[s[3]||(s[3]=i("small",null,"专题分析",-1)),i("strong",null,g(f.value.title),1)])]),i("div",ge,[i("span",{class:C(["wisdom-artifact-status",`is-${f.value.status}`])},[s[5]||(s[5]=i("i",null,null,-1)),dt(g(mt.value),1)],2),f.value.status==="ready"||f.value.status==="error"?(n(),l("button",{key:0,type:"button",disabled:U.value||!q.value,title:"重新生成当前界面",onClick:Z}," 重新生成 ",8,he)):v("",!0)])]),i("div",we,[U.value?(n(),l("div",ye,[i("div",pe,[s[6]||(s[6]=i("span",{class:"wisdom-artifact-building__spinner"},null,-1)),i("div",null,[i("strong",null,g(f.value.status==="collecting"?"正在读取业务上下文":"正在生成专题分析页面"),1)])]),s[7]||(s[7]=ut('
    ',3))])):f.value.html?(n(),l("iframe",{key:f.value.renderKey,ref_key:"artifactFrameRef",ref:H,class:"wisdom-artifact-frame",srcdoc:f.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:gt},null,40,be)):(n(),l("div",ke,[s[8]||(s[8]=i("strong",null,"专题分析页面暂未生成",-1)),i("p",null,g(f.value.error||"当前数据不足以形成专题分析页面。"),1),i("button",{type:"button",disabled:!q.value,onClick:Z},"重新生成",8,_e)]))])])):v("",!0),i("main",{class:C(["wisdom-chat",{"has-artifact":F.value}])},[i("div",{ref_key:"dialogueRef",ref:b,class:C(["wisdom-dialogue",{"is-empty":!w.value.length}]),"aria-live":"polite"},[w.value.length?v("",!0):(n(),l("section",Te,[...s[9]||(s[9]=[i("div",{class:"wisdom-empty-mark"},[i("span"),i("strong",null,"AI")],-1),i("h2",null,"智慧辅助分析",-1)])])),(n(!0),l(S,null,A(w.value,t=>{var r;return n(),l("article",{key:t.id,class:C(["wisdom-message",`is-${t.role}`])},[t.role==="assistant"?(n(),l("div",xe,[...s[10]||(s[10]=[i("span",null,"智",-1)])])):v("",!0),i("div",Se,[t.role==="user"?(n(),l(S,{key:0},[dt(g(t.text),1)],64)):(n(),l(S,{key:1},[t.digesting?(n(),l("div",$e,[s[11]||(s[11]=i("span",null,null,-1)),s[12]||(s[12]=i("span",null,null,-1)),s[13]||(s[13]=i("span",null,null,-1)),i("em",null,g(t.digestText||"正在汇总分析"),1)])):v("",!0),t.visibleText?(n(),l("div",{key:1,class:"wisdom-answer",innerHTML:K(t.visibleText)},null,8,Me)):v("",!0),t.streaming?(n(),l("span",Ee)):v("",!0),(r=t.suggestions)!=null&&r.length&&(t.allowFollowUp||!t.digesting&&!t.streaming)?(n(),l("div",Ae,[(n(!0),l(S,null,A(t.suggestions,m=>(n(),l("button",{key:m.question,type:"button",disabled:h.value,onClick:o=>B(m.question)},g(m.label),9,Le))),128))])):v("",!0)],64))])],2)}),128))],2),i("form",{class:"wisdom-input-bar","aria-label":"智慧辅助分析提问",onSubmit:s[2]||(s[2]=ct(t=>B(),["prevent"]))},[i("div",Ce,[s[15]||(s[15]=i("span",{class:"wisdom-input-icon"},null,-1)),Pt(i("input",{"onUpdate:modelValue":s[0]||(s[0]=t=>c.value=t),disabled:h.value,"aria-label":"业务分析问题",autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:s[1]||(s[1]=Ot(ct(t=>B(),["prevent"]),["enter"]))},null,40,He),[[Bt,c.value]]),i("button",{type:"button",class:C(["wisdom-voice-button",{"is-listening":T.value}]),disabled:h.value||!N.value,title:N.value?T.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":N.value?T.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:yt},[...s[14]||(s[14]=[i("span",null,null,-1)])],10,De),i("button",{class:"wisdom-submit-button",type:"submit",disabled:h.value||!c.value.trim()},[h.value?(n(),l("span",Re)):v("",!0),i("span",null,g(h.value?"分析中":"发送"),1)],8,qe)])],32)],2)]))}};export{Oe as default};