Files
qhmes/web-dist/js/useChartRender-Ctx-lg-5.js
2026-06-16 18:19:57 +08:00

2 lines
5.3 KiB
Java

import{as as M,d as H,s as be,r as j,c as De,aQ as Te}from"./index-X7Y8jykP.js";import{printJS as Se}from"./usePrintJS-Bi_9y7xu.js";import{downloadByData as Pe}from"./download-CygB1orH.js";import{filterDictText as P}from"./JDictSelectUtil-DwVTEDM5.js";import{B as Fe}from"./Bar-DCEyn2jh.js";import{P as we}from"./Pie-BfX96_-a.js";import{B as ke}from"./BarMulti--ZxpkIeN.js";import{L as Le}from"./LineMulti-0TfPtS_j.js";import{h as Me,b as g,c as r,r as y}from"./vue-vendor-DNhG1Cve.js";const $e={title:M.string,chartsData:M.object,asComponent:M.bool.def(!1)},Ee=["error"],Ie={LineMulti:Le,BarMulti:ke,Pie:we,Bar:Fe},Xe={components:Ie,props:$e,emits:Ee},Be={jsonFormattingFailed:"JSON字符串格式化失败"};function Ye(d,{emit:q}){const{createMessage:$,createConfirm:K,createInfoModal:X,createErrorModal:Y,createSuccessModal:_,createWarningModal:G}=be(),p=y(null),v=y("400px"),D=y("bar"),C=y([]),E=y(!0),I=r(()=>`print-content-${p.value}`),B=g({chartData:[]}),N=g({chartData:[]}),R=g({chartData:[]}),Q=g({dataSource:[]}),f=g({fixedColumns:[{title:"#",key:"rowIndex",width:"10%",align:"center",customRender:function({record:e,index:t}){return e.isTotal===!0?"总计":parseInt(t)+1}}],columns:[],dataSource:[]}),F=g({}),b=r({get(){return p.value==null?null:F[p.value]},set(e){p.value!=null&&(F[p.value]=e)}}),W=r(()=>C.value.includes("line")),A=r(()=>C.value.includes("bar")),U=r(()=>C.value.includes("pie")),T=y(!1),V=r(()=>({type:"line",height:v.value,chartData:B.chartData,onClick(e){w(e)}})),Z=r(()=>({height:v.value,chartData:N.chartData,onClick(e){w(e)}})),ee=r(()=>({height:v.value,chartData:R.chartData,onClick(e){w(e)}})),te=r(()=>({height:v.value,dataSource:Q.dataSource,onClick(e,t){}})),ae=r(()=>({title:d.title,headStyle:{paddingLeft:"20px"},bodyStyle:{padding:"10px"},bordered:!d.asComponent})),ne=r(()=>({title:"数据明细",headStyle:{paddingLeft:"20px"},bodyStyle:{padding:"0"},style:{marginTop:"20px"},bordered:!d.asComponent})),re=r(()=>({type:"primary",preIcon:"ant-design:download",text:"导出",style:{margin:"12px"}})),ie=r(()=>({checkedChildren:"分页",unCheckedChildren:"分页",style:{position:"absolute",top:"17px",right:"12px"}})),le=r(()=>({size:"middle",rowKey:"id",pagination:E.value?{pageSize:10}:!1,columns:f.columns,dataSource:f.dataSource,style:{borderTop:"1px solid #e8e8e8"}})),oe=r(()=>!d.asComponent),se=r(()=>d.asComponent);Me(()=>d.chartsData,e=>de(e),{immediate:!0});function ce(e,t){if(!t||!e)return;let n={line:null,bar:null,pie:null};new Function("onClick","headId",`${t}`)(n,e),b.value==null?b.value={click:n}:b.value.click=n}const ue={$router:j,$http:H,$message:$,$confirm:K,$info:X,$error:Y,$success:_,$warning:G};function w(e){if(b.value!=null){let t=e.seriesType,n=b.value.click[t];De(n)&&n.call(ue,e)}}function de(e){if(e==null)return null;let{head:t,data:n,items:h,dictOptions:m}=e;if(t==null)return;let{id:o,xaxisField:u,yaxisField:s,dataType:i,cgrSql:a,graphType:l,extendJs:c}=t;p.value=o,ce(o,c);try{n=i==="sql"||i==="api"?n:JSON.parse(a)}catch(L){q("error",Be.jsonFormattingFailed);return}let k=m[u],x=l.split(",");D.value=x[0],D.value=="table"&&(D.value=x[1]),C.value=x;let Ce=s.split(","),O=new Map;h.forEach(L=>O.set(L.fieldName,L));let z=x.indexOf("table");T.value=z!==-1,T.value&&x.splice(z,1);let S={graphTypes:x,data:n,items:h,fieldMap:O,xaxisField:u,yaxisFields:Ce,dictList:k,dictOptions:m};pe(S),fe(S),he(S),me(S)}function J(e){var s;let{data:t,fieldMap:n,xaxisField:h,yaxisFields:m,dictList:o}=e,u=[];for(let i of m)for(let a of t){let l=a[h];o&&(l=P(o,l)),u.push({name:l,value:a[i],type:((s=n.get(i))==null?void 0:s.fieldTxt)||i})}return u}function pe(e){let{graphTypes:t}=e;t.includes("line")&&(B.chartData=J(e))}function fe(e){let{graphTypes:t}=e;t.includes("bar")&&(N.chartData=J(e))}function he(e){let{graphTypes:t,data:n,xaxisField:h,yaxisFields:m,dictList:o}=e,u=m[0];if(t.includes("pie")){let s=[];for(let i of n){let a=i[h];o&&(a=P(o,a)),s.push({name:a,value:i[u]})}R.chartData=s}}function me(e){let{data:t,items:n,xaxisField:h,yaxisFields:m,dictList:o,dictOptions:u}=e;if(T.value){f.dataSource=t.map((a,l)=>{a.id=l;let c={item:a[h],count:a[m[0]]};return o&&(c.item=P(o,c.item)),a});let s=Te(f.fixedColumns),i=[];if(n.forEach(a=>{if(a.isShow==="Y"){let l={align:"center",width:"10%",title:a.fieldTxt,dataIndex:a.fieldName};a.dictCode&&(l.customRender=({text:c})=>P(u[a.fieldName],c)),s.push(l),a.isTotal==="Y"&&i.push(a.fieldName)}}),f.columns=s,i.length>0){let a={id:f.dataSource.length,isTotal:!0};i.forEach(l=>{let c=0;f.dataSource.forEach(k=>{c+=parseFloat(k[l])}),a[l]=isNaN(c)?"包含非数字内容":c.toFixed(2)}),f.dataSource.push(a)}}}function xe(){let e=d.title;H.get({url:"/online/graphreport/api/exportXlsById",params:{id:p.value,name:e},responseType:"blob"},{isTransformResponse:!1}).then(t=>{if(!t||t.size==0){$.warning("导出失败!");return}Pe(t,e+".xls")})}function ge(){Se({type:"html",printable:"#"+I.value})}function ye(){ve(d.chartsData)}function ve(e){let t=`/online/graphreport/chart/${e.head.id}`;j.push({path:t})}return{headId:p,printId:I,height:v,activeKey:D,chartTypes:C,pageSwitch:E,showPrint:oe,showDetail:se,hasLine:W,hasBar:A,hasPie:U,hasTable:T,lineProps:V,barProps:Z,pieProps:ee,tableProps:le,barLineProps:te,chartCardProps:ae,tableCardProps:ne,exportButtonProps:re,pageSwitchProps:ie,extendJsHandlerIsolation:F,onPrint:ge,onGoToDetail:ye,onExportXls:xe}}export{Xe as C,Ye as u};