52 lines
25 KiB
JavaScript
52 lines
25 KiB
JavaScript
var ne=Object.defineProperty,se=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var K=(a,s,t)=>s in a?ne(a,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[s]=t,l=(a,s)=>{for(var t in s||(s={}))ie.call(s,t)&&K(a,t,s[t]);if(H)for(var t of H(s))ue.call(s,t)&&K(a,t,s[t]);return a},i=(a,s)=>se(a,re(s));var X=(a,s,t)=>new Promise((e,c)=>{var g=f=>{try{b(t.next(f))}catch(o){c(o)}},v=f=>{try{b(t.throw(f))}catch(o){c(o)}},b=f=>f.done?e(f.value):Promise.resolve(f.value).then(g,v);b((t=t.apply(a,s)).next())});import{_ as T}from"./_plugin-vue_export-helper-DRcqrMy4.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{v as $,y as C,z as B,G as de,D as h,C as p,E as y,R as G,F as U,O as ce,P as M,B as O,Q as fe,c as w,K as me,a5 as he,j,n as q,Z as Q,r as k,h as P,aA as pe,u as E}from"./vue-vendor-81Zqb-7t.js";import{D as J,c as xe,H as ve,ap as ge,Z as be,aq as ye,ar as _e,as as Ce,f as Y,g as ee,ac as ke,an as we,ao as Se,ak as Le,at as Ae,au as ze,av as $e}from"./element-plus-CSxUwlOP.js";/* empty css *//* empty css */import{i as Be}from"./echarts-CQFBST8R.js";const Re={class:"stat-card__header"},Ee={class:"stat-card__title"},De={class:"stat-card__value-number"},Fe={key:0,class:"stat-card__value-unit"},Ne={key:0,class:"stat-card__trend"},Oe=$({__name:"StatCard",props:{title:{default:""},value:{default:0},unit:{default:""},icon:{default:void 0},trend:{default:void 0},trendValue:{default:void 0},color:{default:"#475569"},loading:{type:Boolean,default:!1},clickable:{type:Boolean,default:!1}},emits:["click"],setup(a,{emit:s}){const t=a,e=s,c=w(()=>typeof t.value=="string"?t.value:t.value>=1e8?(t.value/1e8).toFixed(2)+"亿":t.value>=1e4?(t.value/1e4).toFixed(2)+"万":t.value>=1e3?(t.value/1e3).toFixed(1)+"K":t.value.toLocaleString()),g=w(()=>t.trend==="up"?"success":t.trend==="down"?"danger":"info"),v=w(()=>t.trend==="up"?ye:t.trend==="down"?_e:Ce),b=w(()=>t.trendValue===void 0?"":`${t.trend==="up"?"+":t.trend==="down"?"-":""}${Math.abs(t.trendValue).toFixed(1)}%`),f=()=>{t.clickable&&e("click")};return(o,m)=>{const n=ge,u=xe,r=ve,S=be,_=J;return C(),B(_,{class:de(["stat-card",{"stat-card--clickable":a.clickable,"stat-card--loading":a.loading}]),"body-style":{padding:"20px"},shadow:"hover",onClick:f},{default:h(()=>[p(S,{loading:a.loading,animated:""},{template:h(()=>[p(n,{variant:"text",style:{width:"40%",height:"16px","margin-bottom":"12px"}}),p(n,{variant:"text",style:{width:"70%",height:"28px"}})]),default:h(()=>[y("div",Re,[y("span",Ee,G(a.title),1),a.icon?(C(),B(u,{key:0,class:"stat-card__icon",style:U({color:a.color})},{default:h(()=>[(C(),B(ce(a.icon)))]),_:1},8,["style"])):M("",!0)]),y("div",{class:"stat-card__value",style:U({color:a.color})},[y("span",De,G(c.value),1),a.unit?(C(),O("span",Fe,G(a.unit),1)):M("",!0)],4),a.trend&&a.trendValue!==void 0?(C(),O("div",Ne,[p(r,{type:g.value,size:"small",effect:"plain",icon:v.value},{default:h(()=>[fe(G(b.value),1)]),_:1},8,["type","icon"]),m[0]||(m[0]=y("span",{class:"stat-card__trend-label"},"较上期",-1))])):M("",!0)]),_:1},8,["loading"])]),_:1},8,["class"])}}}),Te=T(Oe,[["__scopeId","data-v-85408420"]]),Ie=$({__name:"StatCardGroup",props:{items:{default:()=>[]},colWidth:{default:6}},emits:["cardClick"],setup(a,{emit:s}){const t=s,e=(c,g)=>{c.clickable&&c.onClick&&c.onClick(),t("cardClick",c,g)};return(c,g)=>{const v=ee,b=Y;return C(),B(b,{gutter:16,class:"stat-card-group"},{default:h(()=>[(C(!0),O(me,null,he(a.items,(f,o)=>(C(),B(v,{key:o,xs:24,sm:12,md:8,lg:6,xl:a.colWidth},{default:h(()=>[p(Te,{title:f.title,value:f.value,unit:f.unit,icon:f.icon,trend:f.trend,"trend-value":f.trendValue,color:f.color,loading:f.loading,clickable:f.clickable,onClick:()=>e(f,o)},null,8,["title","value","unit","icon","trend","trend-value","color","loading","clickable","onClick"])]),_:2},1032,["xl"]))),128))]),_:1})}}}),Ve=T(Ie,[["__scopeId","data-v-89795cfd"]]),d={color:["#475569","#64748b","#94a3b8","#cbd5e1","#f59e0b","#10b981","#ef4444","#3b82f6"],bgColor:"#ffffff",textColor:"#1e293b",textColor2:"#64748b",borderColor:"#e2e8f0",borderColor2:"#cbd5e1",splitLineColor:"#f1f5f9",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'},te={pending:"#94a3b8",in_stock:"#3b82f6",in_use:"#10b981",transferring:"#f59e0b",maintenance:"#ef4444",pending_scrap:"#8b5cf6",scrapped:"#64748b",lost:"#dc2626"},We={pending:"待入账",in_stock:"库存中",in_use:"在用",transferring:"调拨中",maintenance:"维修中",pending_scrap:"待报废",scrapped:"已报废",lost:"已丢失"},R={backgroundColor:d.bgColor,textStyle:{fontFamily:d.fontFamily,color:d.textColor},title:{textStyle:{color:d.textColor,fontSize:16,fontWeight:600},subtextStyle:{color:d.textColor2,fontSize:12},left:"center",top:10},tooltip:{trigger:"axis",backgroundColor:"rgba(255, 255, 255, 0.95)",borderColor:d.borderColor,borderWidth:1,textStyle:{color:d.textColor,fontSize:12},extraCssText:"box-shadow: 0 2px 8px rgba(0,0,0,0.1); border-radius: 4px;"},legend:{textStyle:{color:d.textColor,fontSize:12},top:40,left:"center"},grid:{left:"3%",right:"4%",bottom:"3%",top:80,containLabel:!0}},D=i(l({},R),{tooltip:i(l({},R.tooltip),{trigger:"item",formatter:"{b}: {c} ({d}%)"}),legend:i(l({},R.legend),{orient:"horizontal",itemGap:20}),series:[{type:"pie",radius:["40%","70%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:8,borderColor:"#fff",borderWidth:2},label:{show:!0,formatter:"{b}: {d}%",color:d.textColor,fontSize:12},emphasis:{label:{show:!0,fontSize:14,fontWeight:"bold"},itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.2)"}},labelLine:{show:!0,length:15,length2:10,smooth:!0}}]}),F=i(l({},R),{tooltip:i(l({},R.tooltip),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"category",axisLine:{lineStyle:{color:d.borderColor}},axisTick:{alignWithLabel:!0},axisLabel:{color:d.textColor2,fontSize:12,interval:0,rotate:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:d.textColor2,fontSize:12},splitLine:{lineStyle:{color:d.splitLineColor,type:"dashed"}}},series:[{type:"bar",barMaxWidth:50,itemStyle:{borderRadius:[4,4,0,0]}}]}),z=i(l({},R),{tooltip:i(l({},R.tooltip),{trigger:"axis"}),xAxis:{type:"category",boundaryGap:!1,axisLine:{lineStyle:{color:d.borderColor}},axisLabel:{color:d.textColor2,fontSize:12}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:d.textColor2,fontSize:12},splitLine:{lineStyle:{color:d.splitLineColor,type:"dashed"}}},series:[{type:"line",smooth:!0,symbol:"circle",symbolSize:6,lineStyle:{width:2},areaStyle:{opacity:.1}}]}),I=i(l({},R),{series:[{type:"gauge",startAngle:180,endAngle:0,min:0,max:100,splitNumber:10,radius:"80%",center:["50%","60%"],itemStyle:{color:d.color[4]},progress:{show:!0,roundCap:!0,width:18},pointer:{show:!1},axisLine:{roundCap:!0,lineStyle:{width:18,color:[[1,d.borderColor2]]}},axisTick:{splitNumber:5,lineStyle:{width:2,color:"#999"}},splitLine:{length:12,lineStyle:{width:3,color:"#999"}},axisLabel:{distance:25,color:d.textColor2,fontSize:12},detail:{backgroundColor:d.color[0],borderColor:d.color[0],width:"60%",lineHeight:40,height:40,borderRadius:20,offsetCenter:[0,"15%"],valueAnimation:!0,formatter:"{value}%",textStyle:{fontSize:24,fontWeight:"bold",color:"#fff"}},data:[{value:0}]}]}),V=i(l({},R),{tooltip:i(l({},R.tooltip),{trigger:"item",formatter:"{b}: {c}"}),series:[{type:"funnel",left:"10%",top:60,bottom:60,width:"80%",minSize:"0%",maxSize:"100%",sort:"descending",gap:2,label:{show:!0,position:"inside",formatter:"{b}: {c}",fontSize:12,color:"#fff"},labelLine:{length:10,lineStyle:{width:1,type:"solid"}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{fontSize:14}}}]});function N(a,s=2){return a===0?"0":a<1e3?a.toFixed(s):a<1e4?(a/1e3).toFixed(s)+"K":a<1e6?(a/1e4).toFixed(s)+"万":(a/1e6).toFixed(s)+"M"}function Ge(a){return te[a]||d.color[0]}function Ze(a,s=300){setTimeout(()=>{a&&a.resize&&a.resize()},s)}function Me(a,s){const t=k(null),e=k(!1),c=k(!1),g=()=>{if(!a.value){console.warn("[useECharts] Chart container not found");return}try{t.value&&t.value.dispose(),t.value=Be(a.value,s),c.value=!0,console.log("[useECharts] Chart initialized successfully")}catch(x){console.error("[useECharts] Failed to initialize chart:",x),c.value=!1}},v=(x,A,Z)=>{if(!t.value||!c.value){console.warn("[useECharts] Chart not ready, skipping setOption");return}try{t.value.setOption(x,A,Z),console.log("[useECharts] Option set successfully")}catch(le){console.error("[useECharts] Failed to set option:",le)}},b=x=>{t.value&&(e.value=!0,t.value.showLoading("default",{text:(x==null?void 0:x.text)||"加载中...",color:(x==null?void 0:x.color)||"#475569",textColor:(x==null?void 0:x.textColor)||"#1e293b",maskColor:(x==null?void 0:x.maskColor)||"rgba(255, 255, 255, 0.8)",zlevel:0}))},f=()=>{t.value&&(e.value=!1,t.value.hideLoading())},o=x=>{t.value&&Ze(t.value,x)},m=()=>{t.value&&(t.value.dispose(),t.value=null,c.value=!1,console.log("[useECharts] Chart disposed"))},n=()=>{t.value&&(t.value.clear(),console.log("[useECharts] Chart cleared"))},u=()=>t.value,r=(x,A)=>{t.value&&t.value.on(x,A)},S=(x,A)=>{t.value&&t.value.off(x,A)},_=x=>t.value?t.value.getDataURL({type:(x==null?void 0:x.type)||"png",pixelRatio:(x==null?void 0:x.pixelRatio)||1,backgroundColor:(x==null?void 0:x.backgroundColor)||"#fff"}):null,L=()=>{o()};return j(()=>{q(()=>{g(),window.addEventListener("resize",L)})}),Q(()=>{window.removeEventListener("resize",L),m()}),{chart:t,loading:e,isReady:c,initChart:g,setOption:v,showLoading:b,hideLoading:f,resize:o,dispose:m,clear:n,getInstance:u,on:r,off:S,getDataURL:_}}const Pe=$({__name:"BaseChart",props:{option:{},height:{default:"400px"},autoResize:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},theme:{default:void 0}},emits:["ready","click"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(null),{chart:v,isReady:b,initChart:f,setOption:o,showLoading:m,hideLoading:n,resize:u,dispose:r,on:S}=Me(g,e.theme);return P(()=>e.option,_=>{b.value&&o(_,!0)},{deep:!0}),P(()=>e.loading,_=>{_?m():n()},{immediate:!0}),P(b,_=>{_&&v.value&&(c("ready",v.value),S("click",L=>{c("click",L)}))}),j(()=>X(this,null,function*(){yield q(),g.value&&f()})),Q(()=>{r()}),s({chart:v,resize:u,refresh:()=>o(e.option,!0)}),(_,L)=>(C(),O("div",{ref_key:"chartRef",ref:g,class:"base-chart",style:U({height:a.height,width:"100%"})},null,4))}}),W=T(Pe,[["__scopeId","data-v-3ce88dcc"]]),ae=$({__name:"PieChart",props:{data:{default:()=>[]},title:{default:""},type:{default:"doughnut"},showLegend:{type:Boolean,default:!0},showLabel:{type:Boolean,default:!0},height:{default:"400px"},customColor:{type:Boolean,default:!1}},emits:["ready","click"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(!1),v=w(()=>{const o=e.data.map((n,u)=>i(l({},n),{itemStyle:{color:e.customColor&&n.status?Ge(n.status):d.color[u%d.color.length]}})),m=e.type==="doughnut"?["40%","70%"]:["0%","70%"];return i(l({},D),{title:i(l({},D.title),{text:e.title}),legend:i(l({},D.legend),{show:e.showLegend}),series:[i(l({},D.series[0]),{radius:m,data:o,label:i(l({},D.series[0].label),{show:e.showLabel,formatter:e.showLabel?"{b}: {c} ({d}%)":""}),emphasis:i(l({},D.series[0].emphasis),{itemStyle:i(l({},D.series[0].emphasis.itemStyle),{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.3)"})})})]})}),b=o=>{c("ready",o)},f=o=>{const m=e.data.find(n=>n.name===o.name);m&&c("click",l(l({},m),o))};return s({loading:g}),(o,m)=>(C(),B(W,{option:v.value,height:a.height,loading:g.value,onReady:b,onClick:f},null,8,["option","height","loading"]))}}),Ue=$({__name:"BarChart",props:{data:{default:()=>[]},title:{default:""},type:{default:"vertical"},stacked:{type:Boolean,default:!1},grouped:{type:Boolean,default:!1},xAxisLabel:{default:""},yAxisLabel:{default:""},height:{default:"400px"},showDataZoom:{type:Boolean,default:!1}},emits:["ready","click"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(!1),v=w(()=>{const o=e.data.map(u=>u.name),m=e.data.map(u=>u.value),n=e.type==="horizontal";return i(l({},F),{title:i(l({},F.title),{text:e.title}),tooltip:i(l({},F.tooltip),{formatter:u=>{const r=u.value;return`${u.name}<br/>${u.seriesName}: ${N(r)}`}}),xAxis:n?i(l({},F.yAxis),{name:e.xAxisLabel,nameTextStyle:{padding:[0,0,0,10]}}):i(l({},F.xAxis),{data:o,name:e.xAxisLabel,nameTextStyle:{padding:[0,0,0,10]}}),yAxis:n?i(l({},F.xAxis),{data:o,name:e.yAxisLabel,nameTextStyle:{padding:[0,0,0,10]}}):i(l({},F.yAxis),{name:e.yAxisLabel,nameTextStyle:{padding:[0,10,0,0]}}),dataZoom:e.showDataZoom?[{type:"slider",show:!0,start:0,end:100,[n?"yAxisIndex":"xAxisIndex"]:0}]:void 0,series:[{type:"bar",name:e.yAxisLabel||"数值",data:m,itemStyle:{color:new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:d.color[0]},{offset:1,color:d.color[1]}]),borderRadius:n?[0,4,4,0]:[4,4,0,0]},emphasis:{itemStyle:{color:new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:d.color[4]},{offset:1,color:d.color[5]}])}},label:{show:!0,position:n?"right":"top",formatter:u=>N(u.value),color:d.textColor2,fontSize:11},barMaxWidth:60}]})}),b=o=>{c("ready",o)},f=o=>{const m=e.data.find(n=>n.name===o.name);m&&c("click",l(l({},m),o))};return s({loading:g}),(o,m)=>(C(),B(W,{option:v.value,height:a.height,loading:g.value,onReady:b,onClick:f},null,8,["option","height","loading"]))}}),He=$({__name:"LineChart",props:{data:{default:()=>[]},series:{default:void 0},title:{default:""},area:{type:Boolean,default:!1},smooth:{type:Boolean,default:!0},xAxisLabel:{default:""},yAxisLabel:{default:""},height:{default:"400px"},showDataZoom:{type:Boolean,default:!1}},emits:["ready","click"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(!1),v=w(()=>{if(e.series&&e.series.length>0){const n=e.data.map(u=>u.name);return i(l({},z),{title:i(l({},z.title),{text:e.title}),tooltip:i(l({},z.tooltip),{formatter:u=>{if(Array.isArray(u)){let r=`${u[0].name}<br/>`;return u.forEach(S=>{r+=`${S.marker} ${S.seriesName}: ${N(S.value)}<br/>`}),r}return`${u.name}<br/>${u.seriesName}: ${N(u.value)}`}}),legend:i(l({},z.legend),{data:e.series.map(u=>u.name)}),xAxis:i(l({},z.xAxis),{data:n,name:e.xAxisLabel}),yAxis:i(l({},z.yAxis),{name:e.yAxisLabel}),dataZoom:e.showDataZoom?[{type:"slider",show:!0,start:0,end:100,xAxisIndex:0}]:void 0,series:e.series.map((u,r)=>({type:"line",name:u.name,data:u.data,smooth:e.smooth,symbol:"circle",symbolSize:6,lineStyle:{width:2,color:u.color||d.color[r%d.color.length]},itemStyle:{color:u.color||d.color[r%d.color.length]},areaStyle:e.area?{opacity:.1,color:new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:u.color||d.color[r%d.color.length]},{offset:1,color:"rgba(255, 255, 255, 0)"}])}:void 0,emphasis:{focus:"series",itemStyle:{borderWidth:2,borderColor:"#fff"}}}))})}const o=e.data.map(n=>n.name),m=e.data.map(n=>n.value);return i(l({},z),{title:i(l({},z.title),{text:e.title}),tooltip:i(l({},z.tooltip),{formatter:n=>`${n.name}<br/>${n.seriesName}: ${N(n.value)}`}),xAxis:i(l({},z.xAxis),{data:o,name:e.xAxisLabel}),yAxis:i(l({},z.yAxis),{name:e.yAxisLabel}),dataZoom:e.showDataZoom?[{type:"slider",show:!0,start:0,end:100,xAxisIndex:0}]:void 0,series:[{type:"line",name:e.yAxisLabel||"数值",data:m,smooth:e.smooth,symbol:"circle",symbolSize:6,lineStyle:{width:2},itemStyle:{color:d.color[0]},areaStyle:e.area?{opacity:.1,color:new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:d.color[0]},{offset:1,color:"rgba(255, 255, 255, 0)"}])}:void 0,emphasis:{focus:"series"}}]})}),b=o=>{c("ready",o)},f=o=>{const m=e.data.find(n=>n.name===o.name);m&&c("click",l(l({},m),o))};return s({loading:g}),(o,m)=>(C(),B(W,{option:v.value,height:a.height,loading:g.value,onReady:b,onClick:f},null,8,["option","height","loading"]))}}),oe=$({__name:"GaugeChart",props:{value:{default:0},min:{default:0},max:{default:100},title:{default:""},unit:{default:"%"},height:{default:"300px"},color:{default:()=>[d.color[5],d.color[4],d.color[6]]},showDetail:{type:Boolean,default:!0}},emits:["ready"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(!1),v=w(()=>{const o=(e.max-e.min)/10;return i(l({},I),{title:i(l({},I.title),{text:e.title}),series:[i(l({},I.series[0]),{min:e.min,max:e.max,splitNumber:10,axisLine:i(l({},I.series[0].axisLine),{lineStyle:{width:18,color:e.color.map((m,n)=>[(e.min+o*(n+1))/e.max,m])}}),detail:i(l({},I.series[0].detail),{show:e.showDetail,valueAnimation:!0,formatter:m=>e.unit==="%"?`${m.toFixed(1)}%`:`${m.toFixed(1)}${e.unit}`}),data:[{value:e.value}],title:{offsetCenter:[0,"90%"],fontSize:14,color:d.textColor2}})]})}),b=f=>{c("ready",f)};return s({loading:g}),(f,o)=>(C(),B(W,{option:v.value,height:a.height,loading:g.value,onReady:b},null,8,["option","height","loading"]))}}),Ke=$({__name:"FunnelChart",props:{data:{default:()=>[]},title:{default:""},height:{default:"400px"},sort:{default:"descending"}},emits:["ready","click"],setup(a,{expose:s,emit:t}){const e=a,c=t,g=k(!1),v=w(()=>{const o=e.data.reduce((n,u)=>n+u.value,0),m=e.data.map((n,u)=>({name:n.name,value:n.value,itemStyle:{color:d.color[u%d.color.length]}}));return i(l({},V),{title:i(l({},V.title),{text:e.title}),tooltip:i(l({},V.tooltip),{formatter:n=>{const u=o>0?(n.value/o*100).toFixed(1):0;return`${n.name}<br/>数量: ${N(n.value)}<br/>占比: ${u}%`}}),series:[i(l({},V.series[0]),{sort:e.sort,data:m,label:i(l({},V.series[0].label),{formatter:n=>{const u=o>0?(n.value/o*100).toFixed(1):0;return`${n.name}
|
|
${N(n.value)} (${u}%)`}})})]})}),b=o=>{c("ready",o)},f=o=>{const m=e.data.find(n=>n.name===o.name);m&&c("click",l(l({},m),o))};return s({loading:g}),(o,m)=>(C(),B(W,{option:v.value,height:a.height,loading:g.value,onReady:b,onClick:f},null,8,["option","height","loading"]))}}),Xe={class:"asset-status-chart"},je=$({__name:"AssetStatusChart",props:{data:{default:()=>[]},loading:{type:Boolean,default:!1}},emits:["click"],setup(a,{emit:s}){const t=a,e=s,c=w(()=>t.data.map(v=>({name:v.statusName||We[v.status],value:v.count,status:v.status,percentage:v.percentage,color:v.color||te[v.status]}))),g=v=>{const b=t.data.find(f=>f.status===v.status);b&&e("click",b)};return(v,b)=>(C(),O("div",Xe,[p(ae,{data:c.value,title:"资产状态分布",type:"doughnut","show-legend":!0,"show-label":!0,height:"400px","custom-color":!0,onClick:g},null,8,["data"])]))}}),qe=T(je,[["__scopeId","data-v-57931136"]]),Qe={class:"asset-utilization-chart"},Je=$({__name:"AssetUtilizationChart",props:{totalAssets:{default:0},usedAssets:{default:0},loading:{type:Boolean,default:!1}},setup(a){const s=a,t=w(()=>s.totalAssets===0?0:s.usedAssets/s.totalAssets*100),e=w(()=>{const c=t.value;return c<50?["#ef4444","#f59e0b","#10b981"]:c<80?["#f59e0b","#10b981","#3b82f6"]:["#10b981","#3b82f6","#6366f1"]});return(c,g)=>(C(),O("div",Qe,[p(oe,{value:t.value,min:0,max:100,title:"资产利用率",unit:"%",height:"300px",color:e.value,"show-detail":!0},null,8,["value","color"])]))}}),Ye=T(Je,[["__scopeId","data-v-db1e5c95"]]),et={class:"charts-example"},tt=$({__name:"ChartsExample",setup(a){const s=pe(),t=()=>{s.back()},e=k([{title:"资产总数",value:1e3,unit:"台",icon:Le,trend:"up",trendValue:12.5,color:"#475569",clickable:!0,onClick:()=>console.log("点击资产总数")},{title:"在用资产",value:750,unit:"台",icon:Ae,trend:"up",trendValue:8.3,color:"#10b981",clickable:!0},{title:"库存资产",value:200,unit:"台",icon:ze,trend:"down",trendValue:5.2,color:"#3b82f6",clickable:!0},{title:"维修中",value:50,unit:"台",icon:$e,trend:"flat",trendValue:0,color:"#ef4444",clickable:!0}]),c=k([{name:"库存中",value:200,status:"in_stock"},{name:"在用",value:750,status:"in_use"},{name:"维修中",value:50,status:"maintenance"}]),g=w(()=>750/1e3*100),v=k([{name:"北京分公司",value:200},{name:"上海分公司",value:180},{name:"广州分公司",value:150},{name:"深圳分公司",value:120},{name:"成都分公司",value:100},{name:"杭州分公司",value:80},{name:"南京分公司",value:70},{name:"武汉分公司",value:60},{name:"西安分公司",value:40}]),b=k([{name:"1月",value:850},{name:"2月",value:920},{name:"3月",value:980},{name:"4月",value:1050},{name:"5月",value:1100},{name:"6月",value:1180},{name:"7月",value:1250},{name:"8月",value:1300},{name:"9月",value:1380},{name:"10月",value:1450},{name:"11月",value:1520},{name:"12月",value:1600}]),f=k([{name:"总价值",data:[850,920,980,1050,1100,1180,1250,1300,1380,1450,1520,1600],color:"#475569"},{name:"净值",data:[700,750,800,850,900,950,1e3,1050,1100,1150,1200,1250],color:"#10b981"}]),o=k([{name:"待入账",value:100},{name:"库存中",value:200},{name:"在用",value:750},{name:"维修中",value:50},{name:"已报废",value:20}]),m=k([{status:"in_stock",statusName:"库存中",count:200,percentage:20,color:"#3b82f6"},{status:"in_use",statusName:"在用",count:750,percentage:75,color:"#10b981"},{status:"maintenance",statusName:"维修中",count:50,percentage:5,color:"#ef4444"}]),n=u=>{console.log("点击资产状态:",u)};return(u,r)=>{const S=ke,_=J,L=ee,x=Y,A=Se,Z=we;return C(),O("div",et,[p(S,{onBack:t,class:"mb-4"},{content:h(()=>[...r[0]||(r[0]=[y("span",{class:"text-large font-600"},"图表组件示例",-1)])]),_:1}),p(_,{class:"mb-4",shadow:"never"},{header:h(()=>[...r[1]||(r[1]=[y("span",null,"统计卡片组件",-1)])]),default:h(()=>[p(E(Ve),{items:e.value},null,8,["items"])]),_:1}),p(x,{gutter:16,class:"mb-4"},{default:h(()=>[p(L,{xs:24,md:12},{default:h(()=>[p(_,{shadow:"never"},{header:h(()=>[...r[2]||(r[2]=[y("span",null,"资产状态分布(饼图)",-1)])]),default:h(()=>[p(E(ae),{data:c.value,title:"资产状态分布",type:"doughnut","show-legend":!0,height:"400px","custom-color":!0},null,8,["data"])]),_:1})]),_:1}),p(L,{xs:24,md:12},{default:h(()=>[p(_,{shadow:"never"},{header:h(()=>[...r[3]||(r[3]=[y("span",null,"资产利用率(仪表盘)",-1)])]),default:h(()=>[p(E(oe),{value:g.value,min:0,max:100,title:"资产利用率",unit:"%",height:"400px"},null,8,["value"])]),_:1})]),_:1})]),_:1}),p(_,{class:"mb-4",shadow:"never"},{header:h(()=>[...r[4]||(r[4]=[y("span",null,"资产分布统计(柱状图)",-1)])]),default:h(()=>[p(E(Ue),{data:v.value,title:"按机构统计资产数量",type:"vertical","x-axis-label":"机构","y-axis-label":"数量",height:"400px"},null,8,["data"])]),_:1}),p(_,{class:"mb-4",shadow:"never"},{header:h(()=>[...r[5]||(r[5]=[y("span",null,"资产价值趋势(折线图)",-1)])]),default:h(()=>[p(E(He),{data:b.value,series:f.value,title:"近12个月资产价值趋势",area:!0,smooth:!0,"x-axis-label":"月份","y-axis-label":"金额(万元)",height:"400px","show-data-zoom":!0},null,8,["data","series"])]),_:1}),p(x,{gutter:16,class:"mb-4"},{default:h(()=>[p(L,{span:24},{default:h(()=>[p(_,{shadow:"never"},{header:h(()=>[...r[6]||(r[6]=[y("span",null,"资产状态流转(漏斗图)",-1)])]),default:h(()=>[p(E(Ke),{data:o.value,title:"资产状态流转统计",height:"400px"},null,8,["data"])]),_:1})]),_:1})]),_:1}),p(_,{class:"mb-4",shadow:"never"},{header:h(()=>[...r[7]||(r[7]=[y("span",null,"业务图表组件示例",-1)])]),default:h(()=>[p(x,{gutter:16},{default:h(()=>[p(L,{xs:24,md:12,class:"mb-4"},{default:h(()=>[r[8]||(r[8]=y("h4",null,"资产状态图表",-1)),p(E(qe),{data:m.value,onClick:n},null,8,["data"])]),_:1}),p(L,{xs:24,md:12},{default:h(()=>[r[9]||(r[9]=y("h4",null,"资产利用率",-1)),p(E(Ye),{"total-assets":1e3,"used-assets":750})]),_:1})]),_:1})]),_:1}),p(_,{shadow:"never"},{header:h(()=>[...r[10]||(r[10]=[y("span",null,"使用示例",-1)])]),default:h(()=>[p(Z,null,{default:h(()=>[p(A,{label:"统计卡片"},{default:h(()=>[...r[11]||(r[11]=[y("pre",{class:"code-block"},[y("code",null,`<StatCard
|
|
title="资产总数"
|
|
:value="1000"
|
|
unit="台"
|
|
:icon="Box"
|
|
trend="up"
|
|
:trend-value="12.5"
|
|
color="#475569"
|
|
:clickable="true"
|
|
@click="handleCardClick"
|
|
/>`)],-1)])]),_:1}),p(A,{label:"饼图"},{default:h(()=>[...r[12]||(r[12]=[y("pre",{class:"code-block"},[y("code",null,`<PieChart
|
|
:data="[
|
|
{ name: '库存中', value: 350 },
|
|
{ name: '在用', value: 450 },
|
|
{ name: '维修中', value: 50 }
|
|
]"
|
|
title="资产状态分布"
|
|
type="doughnut"
|
|
height="400px"
|
|
/>`)],-1)])]),_:1}),p(A,{label:"柱状图"},{default:h(()=>[...r[13]||(r[13]=[y("pre",{class:"code-block"},[y("code",null,`<BarChart
|
|
:data="[
|
|
{ name: '北京', value: 200 },
|
|
{ name: '上海', value: 180 },
|
|
{ name: '广州', value: 150 }
|
|
]"
|
|
title="资产分布统计"
|
|
type="vertical"
|
|
height="400px"
|
|
/>`)],-1)])]),_:1}),p(A,{label:"折线图"},{default:h(()=>[...r[14]||(r[14]=[y("pre",{class:"code-block"},[y("code",null,`<LineChart
|
|
:data="[
|
|
{ name: '1月', value: 850 },
|
|
{ name: '2月', value: 920 },
|
|
{ name: '3月', value: 980 }
|
|
]"
|
|
:series="[
|
|
{ name: '总价值', data: [850, 920, 980] },
|
|
{ name: '净值', data: [700, 750, 800] }
|
|
]"
|
|
title="资产价值趋势"
|
|
:area="true"
|
|
:smooth="true"
|
|
height="400px"
|
|
/>`)],-1)])]),_:1}),p(A,{label:"仪表盘"},{default:h(()=>[...r[15]||(r[15]=[y("pre",{class:"code-block"},[y("code",null,`<GaugeChart
|
|
:value="75"
|
|
:min="0"
|
|
:max="100"
|
|
title="资产利用率"
|
|
unit="%"
|
|
height="300px"
|
|
/>`)],-1)])]),_:1})]),_:1})]),_:1})])}}}),ht=T(tt,[["__scopeId","data-v-6089c941"]]);export{ht as default};
|