|
|
|
|
|
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,v as m,y as h,z as g}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as _}from"./http-LCi9aT1G.js";import{d as v,u as y}from"./index-ZiTBtDdW.js";async function b(e){let{data:t}=await _.get(`/camera-devices`,{params:e});return t}async function x(e){let{data:t}=await _.post(`/camera-devices`,e);return t}async function S(e,t){let{data:n}=await _.put(`/camera-devices/${e}`,t);return n}async function C(e){let{data:t}=await _.delete(`/camera-devices/${e}`);return t}async function w(e){let{data:t}=await _.post(`/camera-devices/${e}/retry`);return t}async function T(){let{data:e}=await _.get(`/camera-health`);return e}async function E(e){let{data:t}=await _.get(`/camera-alerts`,{params:e});return t}async function D(e){let{data:t}=await _.post(`/camera-alerts/${e}/acknowledge`);return t}async function O(){let{data:e}=await _.get(`/camera-monitor-settings`);return e}async function k(e){let{data:t}=await _.put(`/camera-monitor-settings`,e);return t}var A={class:`muted`},j=y(h({__name:`CameraAlerts`,setup(h){let y=l(`health`),j=l(!1),M=l([]),N=l([]),P=l(null),F=l(null),I=l(!1),L=l({monitor_enabled:!0,notification_enabled:!0,include_in_venue_stats:!0,sdk_port:8e3,http_port:80,channel:1,push_timeout_seconds:300}),R=l([]),z=l({keyword:``}),B=l({}),V=l(``),H=e=>({ONLINE_PUSHING:`推送正常`,PUSH_SUSPECT:`疑似停止`,PUSH_STALE:`推送停止`,NETWORK_DOWN:`网络断开`,LOGIN_FAILED:`登录失败`,ARM_FAILED:`布防失败`,UNKNOWN:`未知`,DISABLED:`已停用`,RECONNECTING:`重连中`})[String(e||`UNKNOWN`)]||String(e||`未知`),U=e=>[`ONLINE_PUSHING`].includes(String(e))?`green`:[`PUSH_SUSPECT`,`RECONNECTING`].includes(String(e))?`orangered`:`red`,W=e=>e?new Date(e).toLocaleString(`zh-CN`):`—`,G=d(()=>M.value.filter(e=>{let t=!z.value.venue_id||Number(e.venue_id)===Number(z.value.venue_id),n=String(e.health?.status||`UNKNOWN`),r=!z.value.status||n===z.value.status,i=z.value.keyword.trim().toLowerCase(),a=!i||`${e.name} ${e.ip} ${e.venue_name||e.venue?.name||``}`.toLowerCase().includes(i);return t&&r&&a}));async function K(){try{let{data:e}=await _.get(`/venues`);R.value=Array.isArray(e)?e:[]}catch{R.value=[]}}async function q(){j.value=!0;try{let[e,t,n,r]=await Promise.all([T(),E({status:`OPEN`,page_size:100}),b({page_size:100}),O()]);M.value=e.devices??n.data??[],B.value=e.summary?.byStatus??{},N.value=t.data??[],P.value={...r,notification_start_time:String(r.notification_start_time||``).slice(0,5),notification_end_time:String(r.notification_end_time||``).slice(0,5)},V.value=(r.recipient_emails||[]).join(`,`)}catch(t){e.error(t?.response?.data?.message||t?.message||`加载摄像头预警数据失败`)}finally{j.value=!1}}function J(){F.value=null,L.value={monitor_enabled:!0,notification_enabled:!0,include_in_venue_stats:!0,sdk_port:8e3,http_port:80,channel:1,push_timeout_seconds:P.value?.default_push_timeout_seconds??300},I.value=!0}function Y(e){F.value=e,L.value={...e,password:``},I.value=!0}async function X(){try{F.value?await S(F.value.id,L.value):await x(L.value),e.success(`已保存`),I.value=!1,await q()}catch(t){e.error(t?.response?.data?.message||t?.message||`保存失败`)}}async function Z(t){try{await w(t.id),e.success(`重试指令已下发,等待新的客流推送验证`),await q()}catch(t){e.error(t?.response?.data?.message||t?.message||`重试失败`)}}async function Q(t){v.warning({title:`停用摄像头`,content:`确定停用 ${t.name}(${t.ip})吗?`,onOk:async()=>{await C(t.id),e.success(`已停用`),await q()}})}async function ee(t){await D(t.id),e.success(`已确认`),await q()}async function te(){P.value&&(P.value.recipient_emails=V.value.split(`,`).map(e=>e.trim()).filter(Boolean),await k(P.value),e.success(`通知设置已保存`))}return n(()=>{Promise.all([q(),K()])}),(e,n)=>{let l=r(`a-tag`),d=r(`a-input`),h=r(`a-option`),_=r(`a-select`),v=r(`a-button`),b=r(`a-space`),x=r(`a-table-column`),S=r(`a-table`),C=r(`a-tab-pane`),w=r(`a-form-item`),T=r(`a-tim
|