Files
aiot-platform-ui/apps/web-antd/dist/js/index-U2hIWFMO.js
lzh 2deb263bf9
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
chore: build and deploy web-antd
2026-03-08 00:18:15 +08:00

2 lines
16 KiB
JavaScript
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 te=Object.defineProperty,ae=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var Q=Object.getOwnPropertySymbols;var ne=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var B=(p,d,s)=>d in p?te(p,d,{enumerable:!0,configurable:!0,writable:!0,value:s}):p[d]=s,M=(p,d)=>{for(var s in d||(d={}))ne.call(d,s)&&B(p,s,d[s]);if(Q)for(var s of Q(d))re.call(d,s)&&B(p,s,d[s]);return p},I=(p,d)=>ae(p,oe(d));var G=(p,d,s)=>new Promise((k,C)=>{var w=m=>{try{S(s.next(m))}catch(D){C(D)}},z=m=>{try{S(s.throw(m))}catch(D){C(D)}},S=m=>m.done?k(m.value):Promise.resolve(m.value).then(w,z);S((s=s.apply(p,d)).next())});import{c0 as R,c1 as y,au as g,an as b,S as v,ax as A,ac as se}from"./bootstrap-D7yvUSkm.js";import{b as le}from"./index-BwDVg8gs.js";import{S as $}from"./index-CDPU0KyY.js";import{u as _,_ as T}from"./use-echarts-DrKKJR56.js";import{m as ie,b9 as x,v as ce,aU as de,aX as fe,x as ue,ad as pe,b2 as me,j as e,bJ as o,u as t,ae as i,n as he}from"../jse/index-index-BAlyf32H.js";const ye={class:"work-order-dashboard"},ge={class:"metric-content"},xe={class:"metric-icon"},be={class:"metric-info"},ve={class:"metric-content"},Se={class:"metric-icon"},_e={class:"metric-info"},Te={class:"metric-content"},Ce={class:"metric-icon"},De={class:"metric-info"},Le={class:"metric-content"},ke={class:"metric-icon"},we={class:"metric-info"},ze=ie({name:"CleaningWorkOrderDashboard",__name:"index",setup(p){const d=x(!0),s=x(!0),k=x(),C=x(),w=x(),z=x(),S=x(),m=x(),{renderEcharts:D}=_(k),{renderEcharts:H}=_(C),{renderEcharts:N}=_(w),{renderEcharts:q}=_(z),{renderEcharts:U}=_(S),{renderEcharts:V}=_(m),u=x({pendingCount:0,inProgressCount:0,completedTodayCount:0,completedTotalCount:0,trendData:{dates:[],createdData:[],completedData:[]},hourlyDistribution:{hours:[],data:[]},timeTrendData:{dates:[],responseTimeData:[],completionTimeData:[]},statusDistribution:[],heatmapData:{days:[],hours:[],data:[]},functionTypeRanking:[],monthlyTrendData:void 0,badgeQueueStats:void 0}),F={pendingCount:0,inProgressCount:0,completedTodayCount:0,completedTotalCount:0,trendData:{dates:[],createdData:[],completedData:[]},hourlyDistribution:{hours:[],data:[]},timeTrendData:{dates:[],responseTimeData:[],completionTimeData:[]},statusDistribution:[],heatmapData:{days:[],hours:[],data:[]},functionTypeRanking:[],monthlyTrendData:void 0,badgeQueueStats:void 0};function j(){const a=u.value.monthlyTrendData;if(!a){const{trendData:f}=u.value;return{tooltip:{trigger:"axis"},legend:{data:["新增工单"],top:"5%",textStyle:{color:"#595959"}},grid:{left:"3%",right:"4%",bottom:"3%",top:"15%",containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:f.dates,axisLine:{lineStyle:{color:"#d9d9d9"}},axisLabel:{color:"#8c8c8c"}}],yAxis:[{type:"value",name:"工单数量",nameTextStyle:{color:"#8c8c8c"},axisLine:{show:!1},axisLabel:{color:"#8c8c8c"},splitLine:{lineStyle:{color:"#f0f0f0",type:"dashed"}}}],series:[{name:"新增工单",type:"line",smooth:!0,symbol:"circle",symbolSize:6,data:f.createdData,itemStyle:{color:"#1677ff"},areaStyle:{opacity:.15,color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(22, 119, 255, 0.4)"},{offset:1,color:"rgba(22, 119, 255, 0.05)"}]}}}]}}const r=a.currentMonth.dates.map(f=>f.split("-")[2]||f),n=a.lastMonth.dates.map(f=>f.split("-")[2]||f),l=r.length>=n.length?r:n;return{tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{backgroundColor:"#6a7985"}}},legend:{data:["当月新增","上月新增"],top:"5%",textStyle:{color:"#595959"}},grid:{left:"3%",right:"4%",bottom:"3%",top:"15%",containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:l,axisLine:{lineStyle:{color:"#d9d9d9"}},axisLabel:{color:"#8c8c8c",formatter:f=>`${f}`}}],yAxis:[{type:"value",name:"工单数量",nameTextStyle:{color:"#8c8c8c"},axisLine:{show:!1},axisLabel:{color:"#8c8c8c"},splitLine:{lineStyle:{color:"#f0f0f0",type:"dashed"}}}],series:[{name:"当月新增",type:"line",smooth:!0,symbol:"circle",symbolSize:6,areaStyle:{opacity:.15,color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(22, 119, 255, 0.4)"},{offset:1,color:"rgba(22, 119, 255, 0.05)"}]}},emphasis:{focus:"series"},data:a.currentMonth.createdData,itemStyle:{color:"#1677ff"}},{name:"上月新增",type:"line",smooth:!0,symbol:"circle",symbolSize:6,lineStyle:{type:"dashed",opacity:.6},areaStyle:{opacity:.06,color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(82, 196, 26, 0.3)"},{offset:1,color:"rgba(82, 196, 26, 0.05)"}]}},emphasis:{focus:"series"},data:a.lastMonth.createdData,itemStyle:{color:"#52c41a",opacity:.6}}]}}function J(){const{timeTrendData:a}=u.value;return{tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{backgroundColor:"#6a7985"}},formatter:r=>{let n=`${r[0].name}<br/>`;return r.forEach(l=>{n+=`${l.marker} ${l.seriesName}: ${l.value}分钟<br/>`}),n}},legend:{data:["平均响应时间","平均完成时间"],top:"5%",textStyle:{color:"#595959"}},grid:{left:"3%",right:"4%",bottom:"3%",top:"15%",containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:a.dates,axisLine:{lineStyle:{color:"#d9d9d9"}},axisLabel:{color:"#8c8c8c"}}],yAxis:[{type:"value",name:"响应时间(分钟)",nameTextStyle:{color:"#8c8c8c",fontSize:12},position:"left",axisLine:{show:!1},axisLabel:{color:"#8c8c8c"},splitLine:{lineStyle:{color:"#f0f0f0",type:"dashed"}}},{type:"value",name:"完成时间(分钟)",nameTextStyle:{color:"#8c8c8c",fontSize:12},position:"right",axisLine:{show:!1},axisLabel:{color:"#8c8c8c"},splitLine:{show:!1}}],series:[{name:"平均响应时间",type:"line",smooth:!0,symbol:"circle",symbolSize:6,yAxisIndex:0,data:a.responseTimeData,itemStyle:{color:"#1677ff"},lineStyle:{width:2}},{name:"平均完成时间",type:"line",smooth:!0,symbol:"circle",symbolSize:6,yAxisIndex:1,data:a.completionTimeData,itemStyle:{color:"#52c41a"},lineStyle:{width:2}}]}}function X(){const{statusDistribution:a}=u.value,r={待处理:"#faad14",排队中:"#722ed1",已派单:"#1677ff",已到岗:"#13c2c2",已完成:"#52c41a",已取消:"#ff4d4f",已暂停:"#8c8c8c"},n=a.reduce((l,f)=>l+f.value,0);return{tooltip:{trigger:"item",backgroundColor:"rgba(255, 255, 255, 0.96)",borderColor:"#f0f0f0",borderWidth:1,padding:[8,12],textStyle:{color:"#262626",fontSize:13},formatter:l=>`${`<span style="display:inline-block;width:8px;height:8px;border-radius:50%;background:${l.color};margin-right:6px;"></span>`}${l.name}<br/><span style="font-size:16px;font-weight:600">${l.value}</span> 个 <span style="color:#8c8c8c;margin-left:4px">${l.percent}%</span>`},legend:{orient:"vertical",right:"4%",top:"center",itemWidth:10,itemHeight:10,itemGap:14,icon:"circle",textStyle:{fontSize:12,color:"#595959"}},graphic:[{type:"text",left:"23%",top:"38%",style:{text:`${n}`,fontSize:26,fontWeight:"700",fill:"#262626",textAlign:"center"}},{type:"text",left:"23%",top:"55%",style:{text:"近7天工单",fontSize:11,fill:"#bfbfbf",textAlign:"center"}}],series:[{name:"工单状态分布",type:"pie",radius:["48%","70%"],center:["25%","50%"],avoidLabelOverlap:!1,label:{show:!1},emphasis:{scale:!0,scaleSize:8,label:{show:!1}},itemStyle:{borderColor:"#fff",borderWidth:2,borderRadius:6},data:a.map(l=>I(M({},l),{itemStyle:{color:r[l.name]||"#d9d9d9"}}))}]}}function Y(){var f;const{heatmapData:a}=u.value,r=a.hours.map((c,h)=>h),n=a.days.map((c,h)=>h),l=[];for(let c=0;c<a.days.length;c++)for(let h=0;h<24;h++){const E=((f=a.data[c])==null?void 0:f[h])||0;l.push([h,c,E])}return{tooltip:{position:"top",formatter:c=>{const h=a.days[c.value[1]]||"",E=a.hours[c.value[0]]||"",ee=c.value[2]||0;return`${h} ${E}<br/>工单数: ${ee}`}},grid:{height:"75%",top:"5%",left:"8%",right:"3%",bottom:"15%"},xAxis:{type:"category",data:r,splitArea:{show:!0},axisLabel:{fontSize:9,color:"#8c8c8c",formatter:c=>c%3===0?`${c}:00`:""},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:n,splitArea:{show:!0},axisLabel:{fontSize:11,color:"#595959",formatter:c=>a.days[c]||""},axisLine:{show:!1},axisTick:{show:!1}},visualMap:{min:0,max:Math.max(10,...l.map(c=>c[2]||0)),calculable:!1,orient:"horizontal",left:"center",bottom:"2%",textStyle:{fontSize:10,color:"#8c8c8c"},itemWidth:8,itemHeight:50,inRange:{color:["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178"]},splitNumber:8,show:!1},series:[{name:"工单数量",type:"heatmap",data:l,label:{show:!1},emphasis:{itemStyle:{shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.3)"}}}]}}function K(){const{functionTypeRanking:a}=u.value;return{grid:{left:"3%",right:"15%",top:"5%",bottom:"3%",containLabel:!0},xAxis:{type:"value",max:"dataMax",axisLabel:{show:!1},splitLine:{show:!1}},yAxis:{type:"category",data:a.map(n=>n.functionType),axisLabel:{fontSize:13,color:"#595959"},axisLine:{show:!1},axisTick:{show:!1}},series:[{type:"bar",data:a.map(n=>({value:n.count,itemStyle:{color:r(n.rate),borderRadius:[0,6,6,0]}})),barWidth:18,label:{show:!0,position:"right",fontSize:13,color:"#262626",fontWeight:500,formatter:n=>`${n.value}`}}]};function r(n){return n>=95?"#52c41a":n>=90?"#1677ff":n>=85?"#faad14":n>=80?"#ff7a45":"#ff4d4f"}}function Z(){const a=u.value.badgeQueueStats;if(!a||a.dates.length===0)return{};const r=Math.max(...a.queueData,1);return{tooltip:{trigger:"axis",backgroundColor:"rgba(255, 255, 255, 0.96)",borderColor:"#f0f0f0",borderWidth:1,padding:[8,12],textStyle:{color:"#262626",fontSize:13},formatter:n=>{const l=n[0];return`<span style="color:#8c8c8c">${l.name}</span><br/><span style="font-size:16px;font-weight:600;color:#1677ff">${l.value}</span> <span style="color:#8c8c8c">个排队</span>`}},grid:{left:"3%",right:"4%",bottom:"3%",top:"15%",containLabel:!0},xAxis:[{type:"category",data:a.dates,axisLine:{lineStyle:{color:"#f0f0f0"}},axisTick:{show:!1},axisLabel:{color:"#8c8c8c",fontSize:11}}],yAxis:[{type:"value",name:"队列数",nameTextStyle:{color:"#8c8c8c",fontSize:12},axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#8c8c8c"},splitLine:{lineStyle:{color:"#f5f5f5",type:"dashed"}}}],series:[{name:"队列数量",type:"bar",barWidth:"40%",data:a.queueData.map(n=>({value:n,itemStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:n===r?"#0958d9":"#1677ff"},{offset:1,color:n===r?"#4096ff":"#91caff"}]},borderRadius:[6,6,0,0]}})),label:{show:!0,position:"top",fontSize:11,fontWeight:"600",color:"#1677ff",formatter:n=>n.value>0?n.value:""},emphasis:{itemStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"#003eb3"},{offset:1,color:"#0958d9"}]}}}}]}}function O(){return G(this,null,function*(){d.value=!0;try{const a=yield le();u.value={pendingCount:a.pendingCount,inProgressCount:a.inProgressCount,completedTodayCount:a.completedTodayCount,completedTotalCount:a.completedTotalCount,trendData:a.trendData,hourlyDistribution:a.hourlyDistribution,timeTrendData:a.timeTrendData,statusDistribution:a.statusDistribution,heatmapData:a.heatmapData,functionTypeRanking:a.functionTypeRanking,monthlyTrendData:a.monthlyTrendData,badgeQueueStats:a.badgeQueueStats},s.value=!1,yield he(),D(j()),H(Y()),N(J()),q(X()),U(K()),V(Z())}catch(a){u.value=M({},F)}finally{d.value=!1}})}let L=null;function P(){W(),O(),L=setInterval(O,3e4)}function W(){L&&(clearInterval(L),L=null)}return ce(P),de(()=>{L||P()}),fe(W),ue(W),(a,r)=>(me(),pe("div",ye,[e(t(v),{spinning:d.value},{default:o(()=>[e(t(R),{gutter:[12,12],class:"mb-3"},{default:o(()=>[e(t(y),{xs:24,sm:12,lg:6},{default:o(()=>[e(t(g),{class:"metric-card metric-card--pending"},{default:o(()=>[i("div",ge,[i("div",xe,[e(t(b),{icon:"solar:clock-circle-bold-duotone"})]),i("div",be,[r[0]||(r[0]=i("div",{class:"metric-label"},"待处理工单",-1)),e(t($),{value:u.value.pendingCount,"value-style":{fontSize:"24px",fontWeight:600,color:"#ff4d4f"}},null,8,["value"])])])]),_:1})]),_:1}),e(t(y),{xs:24,sm:12,lg:6},{default:o(()=>[e(t(g),{class:"metric-card metric-card--progress"},{default:o(()=>[i("div",ve,[i("div",Se,[e(t(b),{icon:"solar:play-circle-bold-duotone"})]),i("div",_e,[r[1]||(r[1]=i("div",{class:"metric-label"},"进行中工单",-1)),e(t($),{value:u.value.inProgressCount,"value-style":{fontSize:"24px",fontWeight:600,color:"#1677ff"}},null,8,["value"])])])]),_:1})]),_:1}),e(t(y),{xs:24,sm:12,lg:6},{default:o(()=>[e(t(g),{class:"metric-card metric-card--completed"},{default:o(()=>[i("div",Te,[i("div",Ce,[e(t(b),{icon:"solar:check-circle-bold-duotone"})]),i("div",De,[r[2]||(r[2]=i("div",{class:"metric-label"},"今日完成",-1)),e(t($),{value:u.value.completedTodayCount,"value-style":{fontSize:"24px",fontWeight:600,color:"#52c41a"}},null,8,["value"])])])]),_:1})]),_:1}),e(t(y),{xs:24,sm:12,lg:6},{default:o(()=>[e(t(g),{class:"metric-card metric-card--total"},{default:o(()=>[i("div",Le,[i("div",ke,[e(t(b),{icon:"solar:document-text-bold-duotone"})]),i("div",we,[r[3]||(r[3]=i("div",{class:"metric-label"},"累计完成",-1)),e(t($),{value:u.value.completedTotalCount,"value-style":{fontSize:"24px",fontWeight:600,color:"#722ed1"}},null,8,["value"])])])]),_:1})]),_:1})]),_:1}),e(t(R),{gutter:[12,12],class:"mb-3"},{default:o(()=>[e(t(y),{xs:24,lg:16},{default:o(()=>[e(t(g),{class:"chart-card",title:"工单趋势(当月 vs 上月)"},{extra:o(()=>[e(t(A),{title:"展示当月与上月的新增工单对比"},{default:o(()=>[e(t(b),{icon:"solar:info-circle-bold-duotone",class:"info-icon"})]),_:1})]),default:o(()=>[e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"trendChartRef",ref:k,class:"chart-container"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1}),e(t(y),{xs:24,lg:8},{default:o(()=>[e(t(g),{class:"chart-card",title:"时段热力图近7天"},{extra:o(()=>[e(t(A),{title:"展示近7天各时段的工单数量热力分布"},{default:o(()=>[e(t(b),{icon:"solar:info-circle-bold-duotone",class:"info-icon"})]),_:1})]),default:o(()=>[e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"heatmapChartRef",ref:C,class:"chart-container"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1})]),_:1}),e(t(R),{gutter:[12,12],class:"mb-3"},{default:o(()=>[e(t(y),{xs:24,lg:16},{default:o(()=>[e(t(g),{class:"chart-card",title:"平均耗时趋势近7天"},{extra:o(()=>[e(t(A),{title:"展示平均响应时间和平均完成时间的变化趋势"},{default:o(()=>[e(t(b),{icon:"solar:info-circle-bold-duotone",class:"info-icon"})]),_:1})]),default:o(()=>[e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"timeTrendChartRef",ref:w,class:"chart-container chart-container--medium"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1}),e(t(y),{xs:24,lg:8},{default:o(()=>[e(t(g),{class:"chart-card",title:"工单状态分布近7天"},{extra:o(()=>[e(t(A),{title:"展示近7天工单的状态占比分布"},{default:o(()=>[e(t(b),{icon:"solar:info-circle-bold-duotone",class:"info-icon"})]),_:1})]),default:o(()=>[e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"statusChartRef",ref:z,class:"chart-container chart-container--medium"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1})]),_:1}),e(t(R),{gutter:[12,12]},{default:o(()=>[e(t(y),{xs:24,md:12,lg:12},{default:o(()=>[e(t(g),{class:"modern-card modern-card--heatmap"},{default:o(()=>[r[4]||(r[4]=i("div",{class:"modern-header"},[i("span",{class:"modern-title"},"工牌队列统计近7天")],-1)),e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"badgeQueueChartRef",ref:m,class:"modern-chart"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1}),e(t(y),{xs:24,md:12,lg:12},{default:o(()=>[e(t(g),{class:"modern-card modern-card--ranking"},{default:o(()=>[r[5]||(r[5]=i("div",{class:"modern-header"},[i("span",{class:"modern-title"},"功能类型排行")],-1)),e(t(v),{spinning:s.value},{default:o(()=>[e(t(T),{ref_key:"functionTypeRankingChartRef",ref:S,class:"modern-chart"},null,512)]),_:1},8,["spinning"])]),_:1})]),_:1})]),_:1})]),_:1},8,["spinning"])]))}}),Oe=se(ze,[["__scopeId","data-v-33d10a38"]]);export{Oe as default};