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" />

116 lines (111 loc) 4.22 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const vue = require('vue'); const request = require('../../service/request.js'); const hooks = require('../../utils/hooks.js'); const _hoisted_1 = { class: "type-box" }; const _hoisted_2 = { class: "value" }; const _hoisted_3 = { class: "title" }; const _hoisted_4 = { class: "done" }; const _hoisted_5 = { class: "done-header" }; const _hoisted_6 = /* @__PURE__ */ vue.createElementVNode("span", null, "上周排查任务完成率", -1); const _hoisted_7 = { class: "doneRateNumber" }; const _hoisted_8 = { key: 0, class: "progress" }; const _hoisted_9 = { class: "progress-inner" }; const _hoisted_10 = /* @__PURE__ */ vue.createElementVNode("div", { class: "progress-end" }, null, -1); const __default__ = { name: "DvIpesHiddenDangerInvestigation", title: "隐患排查" }; const _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...__default__, props: { url: { type: String, default: "/ipes-srip-server/api/v3/gis/panel/hidden-trouble" }, url2: { type: String, default: "/ipes-srip-server/api/v3/gis/hidden-trouble/mission/statistics/percent" } }, setup(__props) { const props = __props; const data = vue.ref({ general: null, major: null, ratio: null }); const typeInfos = vue.ref([ { title: "一般隐患", key: "general" }, { title: "重大隐患", key: "major" }, { title: "整改率", key: "ratio", unit: "%" } ]); const doneRate = vue.ref(null); const componentBox = vue.ref(""); const copies = vue.computed(() => { const offsetWidth = componentBox.value?.offsetWidth || 0; return offsetWidth > 0 ? (offsetWidth - 24 - 2) / 3 : 0; }); async function getData() { try { const [res, res1] = await Promise.all([ request.default({ url: props.url }), request.default({ url: props.url2 }) ]); data.value = res.data; doneRate.value = res1.data?.missionCompletedPercent || 0; } catch (error) { console.log(error); } } function getShowData(value) { return value == null || isNaN(+value) ? "--" : value; } vue.onMounted(() => { getData(); }); hooks.setIntervalData(getData, 5 * 60 * 1e3); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { ref_key: "componentBox", ref: componentBox, class: "dv-ipes-hidden-danger" }, [ vue.createElementVNode("div", _hoisted_1, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(typeInfos.value, (item) => { return vue.openBlock(), vue.createElementBlock("div", { key: item.key, class: vue.normalizeClass(["type-box-item", item.key]) }, [ vue.createElementVNode("div", _hoisted_2, vue.toDisplayString(getShowData(data.value[item.key]) + (item.unit || "")), 1), vue.createElementVNode("div", _hoisted_3, vue.toDisplayString(item.title), 1) ], 2); }), 128)) ]), vue.createElementVNode("div", _hoisted_4, [ vue.createElementVNode("div", _hoisted_5, [ _hoisted_6, vue.createElementVNode("span", _hoisted_7, vue.toDisplayString(`${doneRate.value}%`), 1) ]), !isNaN(doneRate.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [ vue.createElementVNode("div", _hoisted_9, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Math.round(doneRate.value * (copies.value / 100)), (item) => { return vue.openBlock(), vue.createElementBlock("div", { key: item, class: "bar", style: vue.normalizeStyle({ flex: `0 0 calc((100% - ${copies.value}px) / ${copies.value})` }) }, null, 4); }), 128)) ]), _hoisted_10 ])) : vue.createCommentVNode("", true) ]) ], 512); }; } }); exports.default = _sfc_main;