Files
qhmes/web-dist/js/ChartRender-BJHDCEwg.js
2026-06-16 18:19:57 +08:00

2 lines
11 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var ye=Object.defineProperty,be=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var _e=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable;var J=(o,i,n)=>i in o?ye(o,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[i]=n,N=(o,i)=>{for(var n in i||(i={}))_e.call(i,n)&&J(o,n,i[n]);if(H)for(var n of H(i))Se.call(i,n)&&J(o,n,i[n]);return o},k=(o,i)=>be(o,ge(i));var z=(o,i,n)=>new Promise((A,v)=>{var x=p=>{try{h(n.next(p))}catch(y){v(y)}},T=p=>{try{h(n.throw(p))}catch(y){v(y)}},h=p=>p.done?A(p.value):Promise.resolve(p.value).then(x,T);h((n=n.apply(o,i)).next())});import xe from"./BasicTable-C6eG0bgK.js";import"./TableAction.vue_vue_type_style_index_0_lang-BIWZ0bGo.js";import"./TableImg.vue_vue_type_style_index_0_lang-65ZOQtFn.js";import{u as Te}from"./useTable-DbHE4FHE.js";import{L as Q}from"./LineMulti-0TfPtS_j.js";import{B as Z}from"./BarMulti--ZxpkIeN.js";import{P as we}from"./Pie-BfX96_-a.js";import{R as Ce,B as De}from"./BarAndLine-Cy2lhk5K.js";import{G as Ae}from"./Gauge-CBy9T31s.js";import{S as qe}from"./SingleLine-B5ta_7LT.js";import{d as ee,aX as O,eZ as Le,aU as Be,bn as M,au as Ne}from"./index-X7Y8jykP.js";import{e as W,w as Y,h as ke,C as b,z as c,r as d,G as Re,c as l,Q as $,f as _,A as S,u as f,K as Ee,y as P,H as ze,F as Oe,D as Me,E as Pe,B as Ve,i as je}from"./vue-vendor-DNhG1Cve.js";import"./BasicTable.vue_vue_type_style_index_0_lang-B9DxrWas.js";import"./BasicForm-ClUSoD_-.js";import"./helper-DcLcf4v6.js";import"./index-BzChaRPg.js";import"./useAppInject-DPZGPcR3.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./BasicForm.vue_vue_type_style_index_0_lang-B29PWQy0.js";import"./index-DO7ZhK45.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./useTimeout-D5AmIBZw.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./index-saD4h7VJ.js";import"./useBreakpoint-DXhPW7nV.js";import"./useEventListener-BRXjwk7A.js";import"./breakpointEnum-BhAg6bcX.js";import"./uniqBy--vsL0WVB.js";import"./index-BDvqZ5j4.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./index-CuWaQdlK.js";import"./useForm-D61zovon.js";import"./injectionKey-DPVn4AgL.js";import"./index-DSsDi_fL.js";import"./Group-UHkub2tu.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";import"./FormOutlined-Y84itqS0.js";import"./useTableContext-CncNVXgp.js";import"./index-DTjkSGYl.js";import"./eagerComputed-BTlOruLW.js";import"./fromPairs-Dx9PT-t0.js";import"./useMaxLevel-DE205ncc.js";import"./index-CfNJyBRj.js";import"./dropdown-jkliuVyN.js";import"./index-DfHu-LAS.js";import"./Group-DBzJABA_.js";import"./RadioButton-DRBix2Fq.js";import"./index-C7ckZv9Z.js";import"./DirectoryTree-nk_YTTIy.js";import"./FolderOpenOutlined-SzIPA7z0.js";import"./index-Cl-8Hzo4.js";import"./scrollTo-D49dA-9c.js";import"./operationUnit-vCu2co3e.js";import"./index-C69VKHba.js";import"./index-DklMb9Qc.js";import"./UpOutlined-B1UMbtrP.js";import"./index-DsixALRt.js";import"./dayjs-jnKD3YGS.js";import"./index-aCD42OrZ.js";import"./quarterOfYear-BU2sPnff.js";import"./index-J2mOtM3w.js";import"./dayjs-ALi1pEeb.js";import"./clickOutside-DHfwTU6R.js";import"./onMountedOrActivated-DhSdLlqP.js";import"./throttle-De_jAmBh.js";import"./uuid-CODpppBC.js";import"./sortable.esm-DJNoJSdJ.js";import"./RedoOutlined-Cq2g4Slp.js";import"./index-CeNCCWzL.js";import"./index-fAAIzD3j.js";import"./index-DfX9t4DO.js";import"./isNumeric-DjvBa-1E.js";import"./useECharts-BKJWOWs-.js";import"./echarts-O0zoDaFZ.js";import"./install-65EkHmmZ.js";function Ke(o){return ee.post({url:"/airag/mcp/database/sqlPageExecute",params:{sql:o.sql,dbSourceKey:o.dbSource||"",pageNo:o.pageNo,pageSize:o.pageSize}},{isTransformResponse:!1})}function Ue(o){return ee.post({url:"/airag/mcp/database/sqlExportXls",params:{sql:o.sql,dbSourceKey:o.dbSource||"",columns:o.columns||{}},responseType:"blob",timeout:300*1e3},{isTransformResponse:!1,isReturnNativeResponse:!0})}const Fe={class:"ai-chat-chart"},Ie={key:0,class:"ai-chat-chart__error"},Ge={key:1,class:"ai-chat-chart__error"},Xe={key:0,style:{color:"#999",padding:"12px 8px",border:"1px dashed #eee",margin:"8px 0","border-radius":"4px"}},He={key:1},Je={key:2,class:"ai-chat-chart__body"},Qe={class:"ai-chat-chart__data-toolbar"},Ze=W({__name:"ChartRender",props:{data:{type:String,required:!0},loading:{type:Boolean,default:!1}},setup(o){const i=o,n={bar:"柱状图",line:"折线图",pie:"饼图",radar:"雷达图",gauge:"仪表盘",barline:"折柱图",multibar:"多列柱状图",multiline:"多行折线图",area:"面积图"};function A(e){return n[e]||e}const v=d(""),x=d(!1),T=d(!1),h=d([]),p=d([]),y=d(0),V=d(!1),w=d(""),g=d(!1),s=l(()=>{try{return w.value="",g.value=!1,JSON.parse(i.data||"{}")}catch(e){return w.value="图表数据解析错误无法渲染图表",g.value=!0,{}}}),j=["bar","line","pie","radar","gauge","barline","multibar","multiline","area"],m=l(()=>{const a=(String(s.value.type||"").toLowerCase()||"").replace(/[-_\s]/g,""),t={bar:"bar",line:"line",pie:"pie",radar:"radar",gauge:"gauge",barline:"barline",barandline:"barline",linebar:"barline",multiline:"multiline",multibar:"multibar",area:"area",arealine:"area"}[a]||"";return t&&j.includes(t)?t:""}),ae=l(()=>{const e=s.value.altTypes;if(!Array.isArray(e))return[];const a=m.value;return e.map(r=>String(r).toLowerCase()).filter(r=>r!==a&&j.includes(r))});Y(()=>{m.value&&!v.value&&(v.value=m.value)}),Y(()=>{g.value||(m.value===""?s.value.type&&(w.value="当前仅支持 barlinepieradargaugebarlinemultibarmultilinearea 类型图表",g.value=!0):(w.value="",g.value=!1))});const u=l(()=>s.value.data),re=l(()=>m.value==="gauge"?!!u.value:Array.isArray(u.value)&&u.value.length>0),K=l(()=>{const e=s.value.sql;return typeof e=="string"&&e.trim().length>0}),q=l(()=>(s.value.sql||"").trim()),U=l(()=>(s.value.dbSource||"").trim()),F=l(()=>s.value.columns||{}),[te,{setPagination:oe}]=Te({columns:p,dataSource:h,pagination:{pageSize:10,current:1,total:0},showIndexColumn:!1,canResize:!1,bordered:!0,onChange:se}),ne=l(()=>({onRegister:te}));function I(e=1,a=10){return z(this,null,function*(){if(q.value){x.value=!0;try{const r=yield Ke({sql:q.value,dbSource:U.value,pageNo:e,pageSize:a});if(r.success&&r.result){const{records:t=[],total:B=0}=r.result;h.value=t,y.value=B,t.length>0&&(p.value=ie(t[0])),oe({current:e,pageSize:a,total:B})}else h.value=[],y.value=0}catch(r){h.value=[],y.value=0}finally{x.value=!1}}})}function ie(e){const a=F.value;return Object.keys(e).map(r=>({title:a[r]||r,dataIndex:r,width:150,ellipsis:!0}))}function se(e){I(e.current,e.pageSize)}function le(){return z(this,null,function*(){if(q.value){T.value=!0;try{const e=yield Ue({sql:q.value,dbSource:U.value,columns:F.value});if(!e||!e.data){M.warning("导出失败");return}const a=e.data;if(a.type&&a.type.indexOf("json")!==-1){const B=yield a.text();try{const E=JSON.parse(B);if(!E.success){M.warning("导出失败"+(E.message||"未知错误"));return}}catch(E){}}const r=window.URL.createObjectURL(new Blob([a],{type:"application/vnd.ms-excel"})),t=document.createElement("a");t.style.display="none",t.href=r,t.setAttribute("download","数据导出.xls"),document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(r)}catch(e){M.error("导出失败")}finally{T.value=!1}}})}ke(v,e=>{e==="__data__"&&!V.value&&K.value&&(V.value=!0,I())});const L=l(()=>Array.isArray(u.value)?u.value.map(e=>R(e)):[]),ue=l(()=>Array.isArray(u.value)?u.value.map(e=>k(N({},R(e)),{seriesType:e&&e.seriesType?String(e.seriesType):"line",areaStyle:{}})):[]),pe=l(()=>Array.isArray(u.value)?u.value.map(e=>({name:C(e),value:D(e)})):[]);function R(e){const a=G(e),r=C(e),t=D(e);return{type:a,name:r,value:t}}function G(e){return e&&e.series!==void 0?String(e.series):e&&e.type!==void 0?String(e.type):"数据"}function C(e){return e&&e.x!==void 0?String(e.x):e&&e.name!==void 0?String(e.name):""}function D(e){var t;const a=e?(t=e.y)!=null?t:e.value:null,r=Number(a);return Number.isFinite(r)?r:0}function ce(e){return e&&e.seriesType!==void 0?String(e.seriesType):"bar"}const me=l(()=>{const e=u.value;if(Array.isArray(e)&&e.length>0){const a=e[0];return{name:C(a)||"仪表盘",value:D(a)}}return e&&typeof e=="object"?{name:C(e)||"仪表盘",value:D(e)}:{name:"仪表盘",value:0}}),de=l(()=>Array.isArray(u.value)?u.value.map(e=>({type:G(e),name:C(e),value:D(e),max:e&&e.max!==void 0?Number(e.max):void 0})):[]),ve=l(()=>Array.isArray(u.value)?u.value.map(e=>k(N({},R(e)),{seriesType:ce(e)})):[]);function he(e){switch(e){case"line":return{type:"line",height:"360px",width:"100%",chartData:L.value};case"bar":return{height:"360px",width:"100%",chartData:L.value};case"pie":return{height:"360px",width:"100%",chartData:pe.value};case"multibar":return{height:"360px",width:"100%",chartData:L.value,option:s.value.option||{}};case"multiline":return{type:"line",height:"360px",width:"100%",chartData:L.value,option:s.value.option||{}};case"barline":return{height:"360px",width:"100%",chartData:ve.value,customColor:s.value.colors||[],option:s.value.option||{}};case"area":return{type:"line",height:"360px",width:"100%",chartData:ue.value,option:k(N({},s.value.option||{}),{areaStyle:{}})};case"radar":return{height:"420px",width:"100%",chartData:de.value,option:s.value.option||{}};case"gauge":return{height:"360px",width:"100%",chartData:me.value,option:s.value.option||{},seriesColor:s.value.seriesColor||void 0};default:return{}}}function fe(e){switch(e){case"line":return Q;case"bar":return Z;case"pie":return we;case"multibar":return Z;case"multiline":return Q;case"barline":return De;case"area":return qe;case"radar":return Ce;case"gauge":return Ae;default:return null}}const X=W({props:{chartType:{type:String,required:!0}},setup(e){return()=>{const a=fe(e.chartType);if(!a)return null;const r=he(e.chartType);return je(a,r)}}});return(e,a)=>{const r=Ee("a-button");return c(),b("div",Fe,[g.value?(c(),b("div",Ie,Re(w.value),1)):!m.value||!re.value?(c(),b("div",Ge,[o.loading?(c(),b("div",Xe,[...a[1]||(a[1]=[$("span",null,"图表渲染中...",-1)])])):(c(),b("span",He,"模型返回的图表渲染格式不正确请优化提示词或重新尝试"))])):(c(),b("div",Je,[_(f(Be),{activeKey:v.value,"onUpdate:activeKey":a[0]||(a[0]=t=>v.value=t),size:"small",class:"ai-chat-chart__tabs"},{default:S(()=>[(c(),P(f(O),{key:m.value,tab:A(m.value)},{default:S(()=>[_(f(X),{chartType:m.value},null,8,["chartType"])]),_:1},8,["tab"])),(c(!0),b(Oe,null,Me(ae.value,t=>(c(),P(f(O),{key:t,tab:A(t)},{default:S(()=>[_(f(X),{chartType:t},null,8,["chartType"])]),_:2},1032,["tab"]))),128)),K.value?(c(),P(f(O),{key:"__data__",tab:"数据"},{default:S(()=>[$("div",Qe,[_(r,{size:"small",loading:T.value,onClick:le},{icon:S(()=>[_(f(Le))]),default:S(()=>[a[2]||(a[2]=Pe(" 导出 ",-1))]),_:1},8,["loading"])]),_(f(xe),Ve(ne.value,{loading:x.value,size:"small",class:"ai-chat-chart__table"}),null,16,["loading"])]),_:1})):ze("",!0)]),_:1},8,["activeKey"])]))])}}}),Ar=Ne(Ze,[["__scopeId","data-v-3aadec69"]]);export{Ar as default};