|
|
|
|
|
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,f as s,i as c,it as l,kt as u,l as d,p as f,u as p,ut as m,v as h,y as g,z as ee}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{d as _,u as v}from"./index-Dep3zmgd.js";import{a as te,c as y,i as b,l as x,n as S,r as C,s as ne,t as w}from"./hikPdcClient-9YlD6z0w.js";var re={key:0,class:`muted`},ie={class:`muted`},ae={class:`muted`},oe={class:`muted`},se={class:`muted`},ce={key:0,class:`muted`},le={class:`sum-value`},ue={style:{"margin-top":`8px`,color:`var(--color-text-3)`,"font-size":`12px`}},de={key:0,style:{"margin-top":`8px`,color:`var(--color-text-3)`,"font-size":`12px`}},fe={key:1,class:`muted`,style:{"margin-bottom":`10px`,"font-size":`13px`}},pe={key:3,class:`muted`,style:{"font-size":`13px`}},me={key:1},he={key:0,style:{"margin-top":`8px`,color:`var(--color-text-3)`,"font-size":`12px`}},ge={key:0,class:`muted`,style:{"margin-bottom":`8px`}},_e={key:1,class:`muted`,style:{"margin-bottom":`8px`}},T=v(g({__name:`HikPeopleCounting`,setup(g){let v=l(!1),T=l(!1);function E(){let e=new Date,t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}let D=l(`realtime`),O=l(E()),k=l(``),A=l(null),j=l(null),M=l(null),N=l(null),P=d(()=>A.value?.venues??[]),ve=d(()=>{let e=A.value;if(!e||e.code!==200)return!1;let t=e.venuesRangeTotals,n=Array.isArray(t)&&t.length>0,r=!!(e.rangeFrom||e.rangeTo||(e.venuesRangeTotalsNote||``).trim()||(e.venuesRangeMissingDates?.length??0));return n||r}),F=l(E()),I=l(void 0),L=l(null),R=l(!1),z=l(!1),B=l(null),V=l(!1),H=l(!1),U=l([]),W=l(!1),G=l(null),ye=d(()=>P.value.map(e=>({label:`${e.venueName||e.venueId} (${e.venueId})`,value:String(e.venueId)})));function be(e,t){let n=(e||``).trim().toLowerCase();if(!n)return!0;let r=String(t?.label??``).toLowerCase(),i=String(t?.value??``).toLowerCase();return r.includes(n)||i.includes(n)}async function K(t=!1){let n=(O.value||``).trim(),r=(k.value||``).trim();if(!/^\d{4}-\d{2}-\d{2}$/.test(n)){e.warning(`请选择合法的统计起始日期(yyyy-MM-dd)`);return}if(r&&!/^\d{4}-\d{2}-\d{2}$/.test(r)){e.warning(`请选择合法的统计结束日期(yyyy-MM-dd)`);return}if(r&&r<n){e.warning(`统计结束日期须大于或等于起始日期`);return}v.value=!0;try{A.value=await C(n,r||void 0),N.value=new Date().toLocaleString(`zh-CN`),A.value.code===200?t&&e.success(`客流数据已更新`):e.warning(A.value.message||`请求失败(错误码 ${A.value.code})`)}catch(t){A.value=null;let n=t,r=n.response?.status,i=n.response?.data,a=typeof i==`object`&&i?i:null,o=a?String(a.message??a.error??a.hint??``).trim():``,s=t&&typeof t==`object`&&`message`in t?String(t.message):String(t);r===404?e.warning(o||`暂无该日期的归档数据`):r===400?e.warning(o||`请求参数无效(请检查日期区间)`):e.error(s||`客流接口请求失败`)}finally{v.value=!1}}async function q(){T.value=!0,M.value=null;try{j.value=await S()}catch(t){j.value=null,M.value=t&&typeof t==`object`&&`message`in t?String(t.message):String(t),e.error(M.value||`健康检查失败`)}finally{T.value=!1}}async function J(){await Promise.all([K(!0),q()])}async function xe(){let t=(F.value||``).trim();if(!/^\d{4}-\d{2}-\d{2}$/.test(t)){e.warning(`请选择合法日期 yyyy-MM-dd`);return}R.value=!0,L.value=null;try{L.value=await b(t,I.value||void 0),e.success(`已加载按小时数据`)}catch(t){let n=t&&typeof t==`object`&&`message`in t?String(t.message):String(t);e.error(n||`按小时查询失败`)}finally{R.value=!1}}async function Y(){V.value=!0,B.value=null,U.value=[];try{B.value=await w({probe:z.value,live:z.value}),e.success(z.value?`已加载设备(含探测)`:`已加载设备链路`),U.value=[...new Set((B.value.devices??[]).filter(e=>X(e.status)).map(e=>e.deviceSlot).filter(e=>typeof e==`number`&&Number.isFinite(e)))].sort((e,t)=>e-t)}catch(t){let n=t,r=n.response?.status,i=n.response?.data?.message||(t&&typeof t==`object`&&`message`in t?String(t.message):String(t));e.error(r===403?`探测已被服务端关闭`:i||`设备链路加载失<EFBFBD>
|
|
|
|
|
|
`)}),await Y(),await q()}else e.warning(n.message||`错误码 ${n.code}`)}catch(t){let n=t,r=t&&typeof t==`object`&&`message`in t?String(t.message):String(t);e.error(n.response?.status===403?`服务端已禁止远程重试登录`:r||`重试请求失败`)}finally{H.value=!1}}function we(e){G.value=e,W.value=!0}n(()=>{J()});let Te=[{title:`场馆ID`,dataIndex:`venueId`,width:120,ellipsis:!0,tooltip:!0},{title:`场馆名称`,dataIndex:`venueName`,width:180,ellipsis:!0,tooltip:!0},{title:`入馆总人数`,dataIndex:`enter`,width:130},{title:`离开(区间累计)`,dataIndex:`exit`,width:125},{title:`经过(区间累计)`,dataIndex:`passing`,width:125}];function Ee(){let e=A.value?.venuesRangeTotals;return Array.isArray(e)?e:[]}function De(e){let t=Array.isArray(e.data)?e.data:[],n=0,r=0,i=0;for(let e of t)n+=Number(e.enter)||0,r+=Number(e.exit)||0,i+=Number(e.passing)||0;return[{venueId:`合计`,venueName:`—`,enter:n,exit:r,passing:i}]}function Oe(e){let t=Array.isArray(e.data)?e.data:[],n=0,r=0,i=0,a=0;for(let e of t)n+=Number(e.enter)||0,r+=Number(e.exit)||0,i+=Number(e.passing)||0,a+=Number(e.updateCount)||0;return[{venueId:`合计`,venueName:`—`,enter:n,exit:r,passing:i,updateCount:a}]}function ke(){let e=A.value?.venuesRangeMissingDates;return!Array.isArray(e)||!e.length?``:e.filter(Boolean).join(`、`)}let Ae=[{title:`场馆ID`,dataIndex:`venueId`,width:140,ellipsis:!0,tooltip:!0},{title:`场馆名称`,dataIndex:`venueName`,width:180,ellipsis:!0,tooltip:!0},{title:`进入`,dataIndex:`enter`,width:96},{title:`离开`,dataIndex:`exit`,width:96},{title:`经过`,dataIndex:`passing`,width:96},{title:`在馆(推算)`,slotName:`net`,width:110},{title:`更新次数`,dataIndex:`updateCount`,width:110},{title:`最后更新`,slotName:`venueLastUpdate`,width:190,ellipsis:!0,tooltip:!0},{title:`包含组`,slotName:`included`,width:220,ellipsis:!0,tooltip:!0},{title:`馆内子组`,slotName:`nested`,width:100}],je=[{title:`小时`,dataIndex:`hourLabel`,width:100},{title:`进入`,dataIndex:`enter`,width:90},{title:`离开`,dataIndex:`exit`,width:90},{title:`经过`,dataIndex:`passing`,width:90}];function Me(e){return(e.hourly??[]).map(t=>({key:`${e.venueId}-${t.hour}`,hourLabel:t.hourLabel!=null&&String(t.hourLabel).trim()?t.hourLabel:String(t.hour),enter:t.enter,exit:t.exit,passing:t.passing}))}let Ne=[{title:`槽位`,dataIndex:`deviceSlot`,width:72},{title:`名称`,dataIndex:`name`,width:120,ellipsis:!0,tooltip:!0},{title:`IP`,dataIndex:`ip`,width:130},{title:`端口`,dataIndex:`port`,width:80},{title:`状态`,slotName:`devStatus`,width:120},{title:`说明`,dataIndex:`statusHint`,ellipsis:!0,tooltip:!0},{title:`探测`,slotName:`probe`,width:200,ellipsis:!0,tooltip:!0}];function Pe(e){let t=e.networkProbe;if(!t)return`—`;let n=[t.tcpReachable===void 0?``:t.tcpReachable?`TCP 已连通`:`TCP 未连通`,t.tcpConnectLatencyMs==null?``:`延迟 ${t.tcpConnectLatencyMs} ms`,t.icmpReachable===void 0?``:t.icmpReachable?`ICMP 已通`:`ICMP 不可用`,(t.summaryHint||``).trim()].filter(Boolean);return n.length?n.join(`,`):`—`}function Fe(e){let t=String(e||``).toUpperCase();return t===`UP`?`正常`:t===`DEGRADED`?`降级`:(e||``).trim()||`—`}function Ie(e){if(e==null||e===``)return`—`;let t;if(typeof e==`number`)t=new Date(e);else{let n=String(e).trim();if(/^\d+$/.test(n)){let e=Number(n),r=e>1e11?e:e*1e3;t=new Date(r)}else t=new Date(n)}if(Number.isNaN(t.getTime()))return String(e);let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function Le(e){if(e==null||e===``)return``;if(typeof e==`number`){let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString(`zh-CN`)}let t=String(e).trim();if(/^\d+$/.test(t)){let e=Number(t),n=e>1e11?e:e*1e3,r=new Date(n);return Number.isNaN(r.getTime())?t:r.toLocaleString(`zh-CN`)}let n=new Date(t);return Number.isNaN(n.getTime())?t:n.toLocaleString(`zh-CN`)}function Re(e){return{ONLINE:`在线`,LOGIN_FAILED:`登录失败`,ARM_FAILED:`布防失败`}[String(e||``)
|