You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
6.7 KiB
JavaScript
1 line
6.7 KiB
JavaScript
import{A as e,C as t,D as n,E as r,F as i,M as a,N as o,P as s,S as c,_ as l,b as u,f as d,h as f,i as p,k as m,m as h,w as g,x as _,y as v,z as y}from"./index-yNQwsZKK.js";import{t as b}from"./request-CbM-LIzp.js";import{t as x}from"./echarts-W_05fbm-.js";var S={class:`machine-production`},C={class:`stat-card`},w={class:`stat-label`},T={class:`stat-value`},E={class:`stat-card`},D={class:`stat-label`},O={class:`stat-value`},k={class:`stat-card`},A={class:`stat-label`},j={class:`stat-value`},M={class:`stat-card`},N={class:`stat-label`},P={class:`stat-value top-machine-name`},F=p(_({__name:`MachineProduction`,setup(p){let _=i(!1),F=i([]),I=i({}),L=s({dateRange:[],workshopId:``,machineId:``}),R=s({workshops:[],machines:[]}),z=i(),B=i(),V=null,H=null;function U(){if(!z.value||!F.value.length)return;V&&V.dispose(),V=x.init(z.value);let e=F.value.map(e=>e.machineName),t=F.value.map(e=>e.totalQuantity);V.setOption({tooltip:{trigger:`axis`,formatter:e=>{let t=e[0];return`${t.name}<br/>产量: ${t.value} 件`}},grid:{left:50,right:20,top:20,bottom:40},xAxis:{type:`category`,data:e,axisLabel:{fontSize:12,rotate:e.length>6?30:0}},yAxis:{type:`value`,name:`件`,axisLabel:{fontSize:12}},series:[{type:`bar`,data:t,itemStyle:{color:`#409EFF`,borderRadius:[4,4,0,0]},barWidth:`50%`}]})}function W(){if(!B.value||!F.value.length)return;H&&H.dispose(),H=x.init(B.value);let e=F.value.map(e=>({value:e.totalQuantity,name:e.machineName}));H.setOption({tooltip:{trigger:`item`,formatter:`{b}: {c}件 ({d}%)`},series:[{type:`pie`,radius:[`40%`,`65%`],center:[`50%`,`50%`],label:{show:!0,formatter:`{b}: {c}件 ({d}%)`,fontSize:12},data:e,emphasis:{label:{fontSize:14,fontWeight:`bold`}}}]})}function G(){V?.dispose(),H?.dispose(),V=null,H=null}function K(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}async function q(){try{let[e,t]=await Promise.all([b.get(`/admin/workshop/list`),b.get(`/admin/machine/list`)]);R.workshops=e.data?.items??[],R.machines=t.data?.items??[]}catch{}}async function J(){_.value=!0;try{let e={startDate:L.dateRange[0]??``,endDate:L.dateRange[1]??``,workshopId:L.workshopId??``,machineId:L.machineId??``},[t,n]=await Promise.all([b.get(`/admin/production/machine/summary`,{params:e}),b.get(`/admin/production/machine/list`,{params:e})]);I.value=t.data??{},F.value=n.data?.items??[],G(),await c(),U(),W()}catch{}finally{_.value=!1}}function Y(){let e=K(new Date);L.dateRange=[e,e],L.workshopId=``,L.machineId=``,J()}return g(async()=>{let e=K(new Date);L.dateRange=[e,e],await q(),J()}),t(()=>{G()}),(t,i)=>{let s=m(`el-date-picker`),c=m(`el-form-item`),p=m(`el-option`),g=m(`el-select`),b=m(`el-button`),x=m(`el-form`),V=m(`el-tooltip`),H=m(`el-card`),U=m(`el-col`),W=m(`el-row`),G=m(`el-table-column`),K=m(`el-table`),q=e(`loading`);return r(),l(`div`,S,[u(x,{inline:!0,model:L,class:`filter-bar`},{default:a(()=>[u(c,{label:`日期范围`},{default:a(()=>[u(s,{modelValue:L.dateRange,"onUpdate:modelValue":i[0]||=e=>L.dateRange=e,type:`daterange`,"value-format":`YYYY-MM-DD`,"range-separator":`-`,"start-placeholder":`开始日期`,"end-placeholder":`结束日期`},null,8,[`modelValue`])]),_:1}),u(c,{label:`车间`},{default:a(()=>[u(g,{modelValue:L.workshopId,"onUpdate:modelValue":i[1]||=e=>L.workshopId=e,placeholder:`请选择车间`,clearable:``,style:{"min-width":`200px`}},{default:a(()=>[(r(!0),l(d,null,n(R.workshops,e=>(r(),f(p,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),u(c,{label:`机床`},{default:a(()=>[u(g,{modelValue:L.machineId,"onUpdate:modelValue":i[2]||=e=>L.machineId=e,placeholder:`请选择机床`,clearable:``,filterable:``,style:{"min-width":`200px`}},{default:a(()=>[(r(!0),l(d,null,n(R.machines,e=>(r(),f(p,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),u(c,null,{default:a(()=>[u(b,{type:`primary`,onClick:J},{default:a(()=>[...i[3]||=[v(`查询`,-1)]]),_:1}),u(b,{onClick:Y},{default:a(()=>[...i[4]||=[v(`重置`,-1)]]),_:1})]),_:1})]),_:1},8,[`model`]),u(W,{gutter:16,class:`stat-row`},{default:a(()=>[u(U,{span:6},{default:a(()=>[u(H,{shadow:`hover`},{default:a(()=>[h(`div`,C,[h(`div`,w,[i[6]||=v(` 总产量 `,-1),u(V,{content:`选定时间范围内所有机床的总产量。`,placement:`top`},{default:a(()=>[...i[5]||=[h(`span`,{class:`info-icon`},`ⓘ`,-1)]]),_:1})]),h(`div`,T,y(I.value.totalQuantity==null?`-`:I.value.totalQuantity.toLocaleString()),1)])]),_:1})]),_:1}),u(U,{span:6},{default:a(()=>[u(H,{shadow:`hover`},{default:a(()=>[h(`div`,E,[h(`div`,D,[i[8]||=v(` 运行机床数 `,-1),u(V,{content:`选定时间范围内有产量记录的机床数量。`,placement:`top`},{default:a(()=>[...i[7]||=[h(`span`,{class:`info-icon`},`ⓘ`,-1)]]),_:1})]),h(`div`,O,y(I.value.runningMachineCount==null?`-`:I.value.runningMachineCount),1)])]),_:1})]),_:1}),u(U,{span:6},{default:a(()=>[u(H,{shadow:`hover`},{default:a(()=>[h(`div`,k,[h(`div`,A,[i[10]||=v(` 平均单产 `,-1),u(V,{content:`平均每台机床的产量。`,placement:`top`},{default:a(()=>[...i[9]||=[h(`span`,{class:`info-icon`},`ⓘ`,-1)]]),_:1})]),h(`div`,j,y(I.value.avgPerMachine==null?`-`:I.value.avgPerMachine.toFixed(2)),1)])]),_:1})]),_:1}),u(U,{span:6},{default:a(()=>[u(H,{shadow:`hover`},{default:a(()=>[h(`div`,M,[h(`div`,N,[i[12]||=v(` 最高单产机床 `,-1),u(V,{content:`产量最高的机床名称。`,placement:`top`},{default:a(()=>[...i[11]||=[h(`span`,{class:`info-icon`},`ⓘ`,-1)]]),_:1})]),h(`div`,P,y(I.value.topMachineName||`-`),1)])]),_:1})]),_:1})]),_:1}),u(W,{gutter:16,class:`chart-row`},{default:a(()=>[u(U,{span:12},{default:a(()=>[u(H,{shadow:`hover`},{header:a(()=>[...i[13]||=[h(`span`,{class:`card-title`},`机床产量柱状图`,-1)]]),default:a(()=>[h(`div`,{ref_key:`barChartRef`,ref:z,style:{height:`300px`}},null,512)]),_:1})]),_:1}),u(U,{span:12},{default:a(()=>[u(H,{shadow:`hover`},{header:a(()=>[...i[14]||=[h(`span`,{class:`card-title`},`各机床产量占比`,-1)]]),default:a(()=>[h(`div`,{ref_key:`pieChartRef`,ref:B,style:{height:`300px`}},null,512)]),_:1})]),_:1})]),_:1}),u(H,{shadow:`hover`,class:`table-card`},{header:a(()=>[...i[15]||=[h(`span`,{class:`card-title`},`明细排行`,-1)]]),default:a(()=>[o((r(),f(K,{data:F.value,stripe:``,size:`small`},{default:a(()=>[u(G,{prop:`rank`,label:`排名`,width:`60`,align:`center`}),u(G,{prop:`machineName`,label:`机床名称`,width:`120`}),u(G,{prop:`programName`,label:`程序名`,"show-overflow-tooltip":``}),u(G,{prop:`totalQuantity`,label:`产量`,width:`100`,align:`center`}),u(G,{label:`运行时间`,width:`100`,align:`center`},{default:a(({row:e})=>[v(y(e.runTime)+`h`,1)]),_:1}),u(G,{prop:`dayStatus`,label:`日状态`,width:`80`,align:`center`})]),_:1},8,[`data`])),[[q,_.value]])]),_:1})])}}}),[[`__scopeId`,`data-v-d625bb61`]]);export{F as default}; |