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

169 lines (166 loc) 7.38 kB
import { defineComponent, ref, computed, watch, openBlock, createElementBlock, Fragment, renderList, unref, createElementVNode, toDisplayString, createVNode, normalizeStyle, createCommentVNode } from 'vue'; import _sfc_main$1 from '../common/ProgressBar.vue.mjs'; import '../common/ProgressBar.vue2.mjs'; import { waterQualityStatus } from './api/index.mjs'; import up from './images/1.svg.mjs'; import down from './images/-1.svg.mjs'; import same from './images/0.svg.mjs'; const _hoisted_1 = { class: "dv-wgms-water-quality" }; const _hoisted_2 = { class: "dv-wgms-top-box dv-wgms-mb-12" }; const _hoisted_3 = { class: "dv-wgms-left-box" }; const _hoisted_4 = { class: "left-title" }; const _hoisted_5 = { class: "dv-wgms-water-bg" }; const _hoisted_6 = { class: "dv-wgms-right-box" }; const _hoisted_7 = { class: "dv-wgms-top-text" }; const _hoisted_8 = /* @__PURE__ */ createElementVNode("span", { class: "dv-body1" }, "I-III类优良比例", -1); const _hoisted_9 = { class: "dv-number1" }; const _hoisted_10 = { class: "dv-wgms-mb-8" }; const _hoisted_11 = { class: "dv-wgms-flex-bw-c dv-body1" }; const _hoisted_12 = /* @__PURE__ */ createElementVNode("span", { class: "dv-secondary dv-mr-4" }, "目标", -1); const _hoisted_13 = { class: "dv-number1" }; const _hoisted_14 = /* @__PURE__ */ createElementVNode("span", { class: "dv-secondary dv-mr-4" }, "同比", -1); const _hoisted_15 = ["src"]; const _hoisted_16 = { key: 0, class: "dv-wgms-flex-bw-c dv-wgms-mb-12 dv-wgms-mt--4" }; const _hoisted_17 = { class: "dv-body1" }; const _hoisted_18 = { class: "right-value" }; const _hoisted_19 = { class: "dv-mr-8 dv-number1 dv-index" }; const _hoisted_20 = ["src"]; const _sfc_main = /* @__PURE__ */ defineComponent({ ...{ name: "DvWgmsWaterQualitySituation", title: "水质现状(1.1)" }, __name: "index", props: { data: { default: null }, isLazy: { type: Boolean, default: false }, params: { default: () => { return { treeId: "3301", timeType: "day", startTime: 16725024e5, endTime: 17040384e5 }; } } }, setup(__props, { expose: __expose }) { const props = __props; const list = ref([]); const getCompare = computed(() => (yoy) => { if (yoy > 0) { return { label: "上升", img: up, color: "var(--dv-color-success)" }; } else if (yoy < 0) { return { label: "下降", img: down, color: "var(--dv-color-danger)" }; } return { label: "持平", img: same, color: "var(--dv-color-index)" }; }); const getData = async () => { const params = { ...props.params }; const { data } = await waterQualityStatus(params); list.value = data || []; }; watch([() => props.data, () => props.params, () => props.isLazy], () => { if (props.isLazy) return; if (props.data) { list.value = props.data; return; } getData(); }, { immediate: true, deep: true }); __expose({ reload: getData }); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1, [ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (item, index) => { return openBlock(), createElementBlock("div", { key: index }, [ createElementVNode("div", _hoisted_2, [ createElementVNode("div", _hoisted_3, [ createElementVNode("div", _hoisted_4, toDisplayString(item.stationTypeName), 1), createElementVNode("div", _hoisted_5, [ createElementVNode("span", null, toDisplayString(item.total), 1) ]) ]), createElementVNode("div", _hoisted_6, [ createElementVNode("div", _hoisted_7, [ _hoisted_8, createElementVNode("span", _hoisted_9, toDisplayString(item.excellentPercent === null ? "--" : `${item.excellentPercent}%`), 1) ]), createElementVNode("div", _hoisted_10, [ createVNode(_sfc_main$1, { percentage: item.excellentPercent || 0 }, null, 8, ["percentage"]) ]), createElementVNode("div", _hoisted_11, [ createElementVNode("div", null, [ _hoisted_12, createElementVNode("span", _hoisted_13, toDisplayString(item.targetPercent === null ? "--" : `${item.targetPercent}%`), 1) ]), createElementVNode("div", null, [ _hoisted_14, createElementVNode("span", { class: "dv-mr-4 dv-number1 up-num", style: normalizeStyle({ color: item.yoyPercent === null ? "" : unref(getCompare)(item.yoyPercent).color }) }, toDisplayString(item.yoyPercent === null ? "--" : `${item.yoyPercent}%`), 5), createElementVNode("span", { class: "dv-mr-6 up-num", style: normalizeStyle({ color: item.yoyPercent === null ? "" : unref(getCompare)(item.yoyPercent).color }) }, toDisplayString(item.yoyPercent === null ? "" : unref(getCompare)(item.yoyPercent).label), 5), item.yoyPercent !== null ? (openBlock(), createElementBlock("img", { key: 0, style: { "height": "12px" }, src: unref(getCompare)(item.yoyPercent).img, alt: "" }, null, 8, _hoisted_15)) : createCommentVNode("", true) ]) ]) ]) ]), item.childList ? (openBlock(), createElementBlock("div", _hoisted_16, [ (openBlock(true), createElementBlock(Fragment, null, renderList(item.childList, (child) => { return openBlock(), createElementBlock("div", { key: child.stationTypeName, class: "dv-wgms-item dv-wgms-flex-bw-c" }, [ createElementVNode("div", _hoisted_17, toDisplayString(child.stationTypeName), 1), createElementVNode("div", _hoisted_18, [ createElementVNode("span", _hoisted_19, toDisplayString(item.excellentPercent === null ? "--" : `${item.excellentPercent}%`), 1), createElementVNode("span", { class: "dv-mr-2 dv-number1 dv-danger", style: normalizeStyle({ color: item.yoyPercent === null ? "" : unref(getCompare)(item.yoyPercent).color }) }, toDisplayString(item.yoyPercent === null ? "--" : `${item.yoyPercent}%`), 5), item.yoyPercent !== null ? (openBlock(), createElementBlock("img", { key: 0, style: { "height": "12px" }, src: unref(getCompare)(item.yoyPercent).img, alt: "" }, null, 8, _hoisted_20)) : createCommentVNode("", true) ]) ]); }), 128)) ])) : createCommentVNode("", true) ]); }), 128)) ]); }; } }); export { _sfc_main as default };