Files
aiot-platform-ui/apps/web-antd/dist/js/thing-model-property-history-CLRszec1.js
lzh 24c3dbc8f1
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
chore: build and deploy web-antd
2026-03-23 17:20:54 +08:00

3 lines
7.6 KiB
JavaScript

var Y=(H,I,c)=>new Promise((D,w)=>{var r=s=>{try{d(c.next(s))}catch(x){w(x)}},a=s=>{try{d(c.throw(s))}catch(x){w(x)}},d=s=>s.done?D(s.value):Promise.resolve(s.value).then(r,a);d((c=c.apply(H,I)).next())});import{c3 as de,ay as _,an as N,S as ve,am as B,bu as W,c4 as me,az as pe,a9 as R,ac as fe}from"./bootstrap-DmcuvVZS.js";import{m as ye,b9 as u,cf as T,b7 as ge,aa as g,w as he,ab as z,b2 as m,u as l,bJ as o,ae as p,j as i,ad as C,ac as E,ai as h,bp as b,bL as V,cB as j,I as q,n as A,cT as be}from"../jse/index-index-B6J4axeY.js";import{h as De}from"./index-L5QYCfm0.js";import{_ as we}from"./shortcut-date-range-picker.vue_vue_type_script_setup_true_lang-6cV8SVDL.js";import{b as f}from"./constants-B5TthjFC.js";import Q from"./index-Dlk9vVoe.js";import{u as xe,_ as Ye}from"./use-echarts-DKADhksx.js";import"./rangePickerProps-Ce0Q9Y_E.js";const _e={class:"property-history-container"},Te={class:"toolbar-wrapper mb-4"},Se={class:"flex items-center gap-3"},ke={key:0,class:"mt-3 text-sm text-gray-600"},Me={key:0},Ce={class:"chart-container"},Ne={class:"table-container"},Re={key:1,class:"font-medium"},Ee=ye({name:"DeviceDetailsThingModelPropertyHistory",__name:"thing-model-property-history",props:{deviceId:{}},setup(H,{expose:I}){const c=u(!1),D=u(!1),w=u(!1),r=u("chart"),a=u([]),d=u(0),s=u(""),x=u(""),S=u([T().subtract(6,"day").format("YYYY-MM-DD"),T().format("YYYY-MM-DD")]),k=ge({deviceId:-1,identifier:"",times:F(S.value)}),O=u(),{renderEcharts:X}=xe(O),Z=[f.ARRAY,f.STRUCT,f.TEXT,f.BOOL,f.ENUM,f.DATE],v=g(()=>s.value?!Z.includes(s.value):!1),P=g(()=>s.value?s.value===f.ARRAY||s.value===f.STRUCT:!1),K=g(()=>{if(!v.value||a.value.length===0)return"-";const e=a.value.map(t=>Number(t.value)).filter(t=>!Number.isNaN(t));return e.length>0?Math.max(...e).toFixed(2):"-"}),ee=g(()=>{if(!v.value||a.value.length===0)return"-";const e=a.value.map(t=>Number(t.value)).filter(t=>!Number.isNaN(t));return e.length>0?Math.min(...e).toFixed(2):"-"}),te=g(()=>{if(!v.value||a.value.length===0)return"-";const e=a.value.map(n=>Number(n.value)).filter(n=>!Number.isNaN(n));return e.length===0?"-":(e.reduce((n,y)=>n+y,0)/e.length).toFixed(2)});function F(e){return[`${e[0]} 00:00:00`,`${e[1]} 23:59:59`]}const ae=g(()=>[{title:"序号",key:"index",width:80,align:"center",customRender:({index:e})=>e+1},{title:"时间",key:"updateTime",dataIndex:"updateTime",width:200,align:"center"},{title:"属性值",key:"value",dataIndex:"value",align:"center"}]),ne=g(()=>({current:1,pageSize:10,total:d.value,showSizeChanger:!0,showQuickJumper:!0,pageSizeOptions:["10","20","50","100"],showTotal:e=>`${e} 条数据`}));function L(){return Y(this,null,function*(){D.value=!0;try{const e=yield De(k);a.value=Array.isArray(e)?e:(e==null?void 0:e.list)||[],d.value=a.value.length,r.value==="chart"&&v.value&&a.value.length>0&&(yield U())}catch(e){R.error("获取数据失败"),a.value=[],d.value=0}finally{D.value=!1}})}function U(){return Y(this,null,function*(){!a.value||a.value.length===0||(yield A(),yield A(),le())})}function le(){if(!a.value||a.value.length===0)return;const e=a.value.map(n=>j(new Date(n.updateTime),"YYYY-MM-DD HH:mm:ss")),t=a.value.map(n=>Number(n.value));X({title:{text:"属性值趋势",left:"center",textStyle:{fontSize:16,fontWeight:"normal"}},grid:{left:60,right:60,bottom:100,top:80,containLabel:!0},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},xAxis:{type:"category",boundaryGap:!1,name:"时间",nameTextStyle:{padding:[10,0,0,0]},data:e},yAxis:{type:"value",name:"属性值",nameTextStyle:{padding:[0,0,10,0]}},series:[{name:"属性值",type:"line",smooth:!0,symbol:"circle",symbolSize:6,lineStyle:{width:2,color:"#1890FF"},itemStyle:{color:"#1890FF"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(24, 144, 255, 0.3)"},{offset:1,color:"rgba(24, 144, 255, 0.05)"}]}},data:t}],dataZoom:[{type:"inside",start:0,end:100},{type:"slider",height:30,bottom:20}]})}function oe(e,t,n){return Y(this,null,function*(){c.value=!0,k.deviceId=e,k.identifier=t,x.value=t,s.value=n,S.value=[T().subtract(6,"day").format("YYYY-MM-DD"),T().format("YYYY-MM-DD")],k.times=F(S.value),r.value=v.value?"chart":"list",yield A(),yield A(),yield L()})}function ie(e){!e||e.length!==2||(S.value=[T(e[0]).format("YYYY-MM-DD"),T(e[1]).format("YYYY-MM-DD")],k.times=F(S.value),L())}function se(){L()}function re(){return Y(this,null,function*(){if(a.value.length===0){R.warning("暂无数据可导出");return}w.value=!0;try{const t=[["序号","时间","属性值"].join(","),...a.value.map(($,ce)=>[ce+1,be(new Date($.updateTime)),P.value?`"${JSON.stringify($.value)}"`:$.value].join(","))].join(`
`),n="\uFEFF",y=new Blob([n+t],{type:"text/csv;charset=utf-8"}),G=window.URL.createObjectURL(y),M=document.createElement("a");M.href=G,M.download=`设备属性历史_${x.value}_${j(new Date,"YYYYMMDDHHmmss")}.csv`,document.body.append(M),M.click(),M.remove(),window.URL.revokeObjectURL(G),R.success("导出成功")}catch(e){R.error("导出失败")}finally{w.value=!1}})}function J(){c.value=!1,a.value=[],d.value=0}function ue(e){return typeof e=="object"?JSON.stringify(e):String(e)}return he(r,e=>Y(null,null,function*(){e==="chart"&&v.value&&a.value.length>0&&(yield U())})),I({open:oe}),(e,t)=>(m(),z(l(de),{open:c.value,"onUpdate:open":t[2]||(t[2]=n=>c.value=n),title:"查看数据",width:"1200px",onCancel:J},{footer:o(()=>[i(l(_),{onClick:J},{default:o(()=>[...t[8]||(t[8]=[h("关闭",-1)])]),_:1})]),default:o(()=>[p("div",_e,[p("div",Te,[i(l(Q),{size:12,class:"w-full",wrap:""},{default:o(()=>[p("div",Se,[t[3]||(t[3]=p("span",{class:"whitespace-nowrap text-sm text-gray-500"}," 时间范围 ",-1)),i(we,{onChange:ie})]),i(l(_),{loading:D.value,onClick:se},{icon:o(()=>[i(l(N),{icon:"ant-design:reload-outlined"})]),default:o(()=>[t[4]||(t[4]=h(" 刷新 ",-1))]),_:1},8,["loading"]),i(l(_),{disabled:a.value.length===0,loading:w.value,onClick:re},{icon:o(()=>[i(l(N),{icon:"ant-design:export-outlined"})]),default:o(()=>[t[5]||(t[5]=h(" 导出 ",-1))]),_:1},8,["disabled","loading"]),i(l(_).Group,{class:"ml-auto"},{default:o(()=>[i(l(_),{disabled:!v.value,type:r.value==="chart"?"primary":"default",onClick:t[0]||(t[0]=n=>r.value="chart")},{icon:o(()=>[i(l(N),{icon:"ant-design:line-chart-outlined"})]),default:o(()=>[t[6]||(t[6]=h(" 图表 ",-1))]),_:1},8,["disabled","type"]),i(l(_),{type:r.value==="list"?"primary":"default",onClick:t[1]||(t[1]=n=>r.value="list")},{icon:o(()=>[i(l(N),{icon:"ant-design:table-outlined"})]),default:o(()=>[t[7]||(t[7]=h(" 列表 ",-1))]),_:1},8,["type"])]),_:1})]),_:1}),a.value.length>0?(m(),C("div",ke,[i(l(Q),{size:16},{default:o(()=>[p("span",null,"共 "+b(d.value)+" 条数据",1),r.value==="chart"&&v.value?(m(),C("span",Me," 最大值: "+b(K.value)+" | 最小值: "+b(ee.value)+" | 平均值: "+b(te.value),1)):E("",!0)]),_:1})])):E("",!0)]),i(l(ve),{delay:200,spinning:D.value},{default:o(()=>[V(p("div",Ce,[a.value.length===0?(m(),z(l(W),{key:0,image:l(W).PRESENTED_IMAGE_SIMPLE,class:"py-20",description:e.$t("common.noData")},null,8,["image","description"])):E("",!0),V(p("div",null,[i(l(Ye),{ref_key:"chartRef",ref:O,height:"500px"},null,512)],512),[[B,a.value.length>0]])],512),[[B,r.value==="chart"]]),V(p("div",Ne,[i(l(me),{columns:ae.value,"data-source":a.value,pagination:ne.value,scroll:{y:500},"row-key":"updateTime",size:"small"},{bodyCell:o(({column:n,record:y})=>[n.key==="updateTime"?(m(),C(q,{key:0},[h(b(l(j)(new Date(y.updateTime))),1)],64)):n.key==="value"?(m(),C(q,{key:1},[P.value?(m(),z(l(pe),{key:0,color:"processing"},{default:o(()=>[h(b(ue(y.value)),1)]),_:2},1024)):(m(),C("span",Re,b(y.value),1))],64)):E("",!0)]),_:1},8,["columns","data-source","pagination"])],512),[[B,r.value==="list"]])]),_:1},8,["spinning"])])]),_:1},8,["open"]))}}),He=fe(Ee,[["__scopeId","data-v-1f8b35c6"]]);export{He as default};