2 lines
4.9 KiB
JavaScript
2 lines
4.9 KiB
JavaScript
var C=(s,n,a)=>new Promise((r,v)=>{var l=c=>{try{f(a.next(c))}catch(p){v(p)}},x=c=>{try{f(a.throw(c))}catch(p){v(p)}},f=c=>c.done?r(c.value):Promise.resolve(c.value).then(l,x);f((a=a.apply(s,n)).next())});import{_ as D,g as M}from"./message-trend-card.vue_vue_type_script_setup_true_lang-BIxD7uDD.js";import k from"./device-count-card-Czy8QA7O.js";import w from"./device-state-count-card-BF9LgtrD.js";import{a as $,b as S,_ as B}from"./count-to-animator.vue_vue_type_script_setup_true_lang-D4Pg5Pn4.js";import{aU as I,bK as O,c0 as g,c1 as i,ac as j}from"./bootstrap-DsjPfOC_.js";import{m as T,aa as N,ab as _,b2 as d,u as e,bJ as o,j as t,ae as u,bp as b,ad as y,aR as V,b9 as h,v as R}from"../jse/index-index-CO0ZsLf2.js";import{_ as z}from"./page.vue_vue_type_script_setup_true_lang-BL-xU9lB.js";import"./shortcut-date-range-picker.vue_vue_type_script_setup_true_lang-bivfPiHV.js";import"./rangePickerProps-CXRhwW6k.js";import"./chart-options-xTjDO5fl.js";import"./use-echarts-DBBPKzKQ.js";import"./dict-enum-DRf9W45H.js";const E={class:"mb-4 flex items-start justify-between"},H={class:"flex flex-1 flex-col"},J={class:"mb-2 text-sm font-medium text-gray-500"},K={class:"text-3xl font-bold text-gray-800"},L={key:0},U={class:"mt-auto border-t border-gray-100 pt-3"},q={class:"flex items-center justify-between text-sm"},A={key:0,class:"text-gray-400"},F={key:1,class:"font-medium text-green-500"},m=T({name:"ComparisonCard",__name:"comparison-card",props:{icon:{},iconColor:{},loading:{type:Boolean},title:{},todayCount:{},value:{}},setup(s){const n=s,a={menu:"ant-design:appstore-outlined",box:"ant-design:box-plot-outlined",cpu:"ant-design:cluster-outlined",message:"ant-design:message-outlined"},r=N(()=>a[n.icon]||a.menu);return(v,l)=>(d(),_(e($),{class:"relative h-40 cursor-pointer transition-all duration-300 hover:-translate-y-1 hover:shadow-lg"},{default:o(()=>[t(e(I),{spinning:s.loading},null,8,["spinning"]),t(e(B),{class:"flex h-full flex-col p-6"},{default:o(()=>[u("div",E,[u("div",H,[u("span",J,b(s.title),1),u("span",K,[s.value===-1?(d(),y("span",L,"--")):(d(),_(e(S),{key:1,"end-val":s.value,duration:1e3},null,8,["end-val"]))])]),u("div",{class:V(`text-4xl ${s.iconColor||""}`)},[t(e(O),{icon:r.value},null,8,["icon"])],2)]),u("div",U,[u("div",q,[l[0]||(l[0]=u("span",{class:"text-gray-400"},"今日新增",-1)),s.todayCount===-1?(d(),y("span",A,"--")):(d(),y("span",F," +"+b(s.todayCount),1))])])]),_:1})]),_:1}))}}),G={productCategoryCount:0,productCount:0,deviceCount:0,deviceMessageCount:0,productCategoryTodayCount:0,productTodayCount:0,deviceTodayCount:0,deviceMessageTodayCount:0,deviceOnlineCount:0,deviceOfflineCount:0,deviceInactiveCount:0,productCategoryDeviceCounts:{}},P=T({name:"IoTHome",__name:"index",setup(s){const n=h(!0),a=h(G);function r(){return C(this,null,function*(){try{return yield M()}catch(l){return console.error("获取统计数据出错:",l),console.warn("使用 Mock 数据,请检查后端接口是否已实现"),{productCategoryCount:12,productCount:45,deviceCount:328,deviceMessageCount:15678,productCategoryTodayCount:2,productTodayCount:5,deviceTodayCount:23,deviceMessageTodayCount:1234,deviceOnlineCount:256,deviceOfflineCount:48,deviceInactiveCount:24,productCategoryDeviceCounts:{智能家居:120,工业设备:98,环境监测:65,智能穿戴:45}}}})}function v(){return C(this,null,function*(){n.value=!0;try{a.value=yield r()}catch(l){console.error("获取统计数据出错:",l)}finally{n.value=!1}})}return R(()=>{v()}),(l,x)=>(d(),_(e(z),null,{default:o(()=>[t(e(g),{gutter:16,class:"mb-4"},{default:o(()=>[t(e(i),{span:6},{default:o(()=>[t(e(m),{title:"分类数量",value:a.value.productCategoryCount,"today-count":a.value.productCategoryTodayCount,icon:"menu","icon-color":"text-blue-500",loading:n.value},null,8,["value","today-count","loading"])]),_:1}),t(e(i),{span:6},{default:o(()=>[t(e(m),{title:"产品数量",value:a.value.productCount,"today-count":a.value.productTodayCount,icon:"box","icon-color":"text-orange-500",loading:n.value},null,8,["value","today-count","loading"])]),_:1}),t(e(i),{span:6},{default:o(()=>[t(e(m),{title:"设备数量",value:a.value.deviceCount,"today-count":a.value.deviceTodayCount,icon:"cpu","icon-color":"text-purple-500",loading:n.value},null,8,["value","today-count","loading"])]),_:1}),t(e(i),{span:6},{default:o(()=>[t(e(m),{title:"设备消息数",value:a.value.deviceMessageCount,"today-count":a.value.deviceMessageTodayCount,icon:"message","icon-color":"text-teal-500",loading:n.value},null,8,["value","today-count","loading"])]),_:1})]),_:1}),t(e(g),{gutter:16,class:"mb-4"},{default:o(()=>[t(e(i),{span:12},{default:o(()=>[t(k,{"stats-data":a.value,loading:n.value},null,8,["stats-data","loading"])]),_:1}),t(e(i),{span:12},{default:o(()=>[t(w,{"stats-data":a.value,loading:n.value},null,8,["stats-data","loading"])]),_:1})]),_:1}),t(e(g),{gutter:16},{default:o(()=>[t(e(i),{span:24},{default:o(()=>[t(D)]),_:1})]),_:1})]),_:1}))}}),ct=j(P,[["__scopeId","data-v-f65fda5c"]]);export{ct as default};
|