@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
JavaScript
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 };