UNPKG

@ued_fpi/data-visual

Version:

<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />

97 lines (94 loc) 3.5 kB
import { defineComponent, ref, computed, onMounted, openBlock, createElementBlock, createElementVNode, toDisplayString } from 'vue'; import requestControl from '../../service/request.mjs'; import { setIntervalData } from '../../utils/hooks.mjs'; const _hoisted_1 = { class: "dv-ipes-video-equipment" }; const _hoisted_2 = { class: "video-header" }; const _hoisted_3 = /* @__PURE__ */ createElementVNode("div", { class: "video-title" }, " 视频设备 ", -1); const _hoisted_4 = /* @__PURE__ */ createElementVNode("span", { class: "video-label" }, "总数", -1); const _hoisted_5 = { class: "video-value" }; const _hoisted_6 = { class: "video-box" }; const _hoisted_7 = { class: "item" }; const _hoisted_8 = /* @__PURE__ */ createElementVNode("div", { class: "label flex flex-s" }, [ /* @__PURE__ */ createElementVNode("div", { class: "dot online" }), /* @__PURE__ */ createElementVNode("div", { class: "name" }, " 在线 ") ], -1); const _hoisted_9 = { class: "number" }; const _hoisted_10 = { class: "item" }; const _hoisted_11 = /* @__PURE__ */ createElementVNode("div", { class: "label flex flex-s" }, [ /* @__PURE__ */ createElementVNode("div", { class: "dot offline" }), /* @__PURE__ */ createElementVNode("div", { class: "name" }, " 离线 ") ], -1); const _hoisted_12 = { class: "number" }; const __default__ = { name: "DvIpesVideoEquipment", title: "视频设备" }; const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: { siteCodeList: { default: () => [] }, isAccessPermission: { type: Boolean, default: false }, infoMap: { default: { totalNum: "onlineNum", onlineNum: "onlineNum", offlineNum: "" } } }, setup(__props) { const props = __props; const info = ref({ onlineNum: 0, offlineNum: 0, totalNum: 0 }); const infoData = computed(() => { return { totalNum: info.value[props.infoMap.totalNum] || 0, onlineNum: info.value[props.infoMap.onlineNum] || 0, offlineNum: info.value[props.infoMap.offlineNum] || 0 }; }); async function getInfoData() { try { const res = await requestControl({ method: "post", url: "/bmp-video-control-server/api/v1/statistics/getOnlineResult", data: props }); info.value = res?.data || {}; console.log(info); } catch (error) { console.log(error); } } function getShowData(value) { return value == null ? "0" : value; } onMounted(() => { getInfoData(); }); setIntervalData(getInfoData, 5 * 60 * 1e3); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1, [ createElementVNode("div", _hoisted_2, [ _hoisted_3, createElementVNode("div", null, [ _hoisted_4, createElementVNode("span", _hoisted_5, toDisplayString(getShowData(infoData.value.totalNum)), 1) ]) ]), createElementVNode("div", _hoisted_6, [ createElementVNode("div", _hoisted_7, [ _hoisted_8, createElementVNode("span", _hoisted_9, toDisplayString(getShowData(infoData.value.onlineNum)), 1) ]), createElementVNode("div", _hoisted_10, [ _hoisted_11, createElementVNode("span", _hoisted_12, toDisplayString(getShowData(infoData.value.offlineNum)), 1) ]) ]) ]); }; } }); export { _sfc_main as default };