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 (113 loc) 4.15 kB
import { defineComponent, reactive, onMounted, watch, computed, toRefs, openBlock, createElementBlock, normalizeStyle, createElementVNode, Fragment, renderList, unref, toDisplayString, withDirectives, vShow } from 'vue'; import _imports_0 from './images/zao.png.mjs'; import { getChangeRateData } from './api/index.mjs'; import upImg from './images/up.png.mjs'; import downImg from './images/down.png.mjs'; const _hoisted_1 = { class: "change-rate" }; const _hoisted_2 = { class: "value" }; const _hoisted_3 = { class: "trend" }; const _hoisted_4 = ["src"]; const _hoisted_5 = { style: { "height": "10px" } }; const _hoisted_6 = /* @__PURE__ */ createElementVNode("img", { alt: "", class: "zao", src: _imports_0 }, null, -1); const _hoisted_7 = { class: "label" }; const _sfc_main = /* @__PURE__ */ defineComponent({ ...{ name: "DvWgmsChlorophyllAChangeRate", title: "叶绿素a变化率" }, __name: "index", props: { height: { default: "200px" }, params: { default: () => { return { dataType: "1", factorCode: "w01016", siteCode: "", stationCode: "1", time: 0, timeType: "day" }; } }, data: { default: null }, isLazy: { type: Boolean, default: false } }, setup(__props, { expose: __expose }) { const props = __props; const state = reactive({ list: [ { label: "环比", rate: "" }, { label: "同比", rate: "" }, { label: "近24条数据\n变化率均值", rate: "" } ] }); onMounted(() => { !props.isLazy && getData(); }); watch([() => props.params, () => props.data, () => props.isLazy], () => { !props.isLazy && getData(); }, { deep: true }); async function getData() { if (props.data && Object.keys(props.data).length) { state.list[0].rate = props?.data?.qoqPercent ?? "--"; state.list[1].rate = props?.data?.yoyPercent ?? "--"; state.list[2].rate = props?.data?.late24Percent ?? "--"; return; } const res = await getChangeRateData(props.params); state.list[0].rate = res?.data?.qoqPercent ?? "--"; state.list[1].rate = res?.data?.yoyPercent ?? "--"; state.list[2].rate = res?.data?.late24Percent ?? "--"; } const getHeight = computed(() => { if (typeof props.height === "string") return props.height; else if (typeof props.height === "number") return `${props.height}px`; else return "100%"; }); __expose({ reload: getData }); const { list } = toRefs(state); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: "dv-wgms-chlorophyll-a-change-rate", style: normalizeStyle({ "--height": getHeight.value }) }, [ createElementVNode("div", _hoisted_1, [ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (item, index) => { return openBlock(), createElementBlock("div", { key: index, class: "rate-one" }, [ createElementVNode("div", _hoisted_2, [ createElementVNode("span", { style: normalizeStyle({ color: Number(item.rate) > 0 ? "var(--dv-color-danger)" : Number(item.rate) < 0 ? "var(--dv-color-success)" : "var(--dv-color-index)" }) }, toDisplayString(item.rate) + "%", 5) ]), createElementVNode("div", _hoisted_3, [ withDirectives(createElementVNode("img", { alt: "", src: Number(item.rate) > 0 ? unref(upImg) : unref(downImg) }, null, 8, _hoisted_4), [ [vShow, Number(item.rate)] ]), withDirectives(createElementVNode("div", _hoisted_5, null, 512), [ [vShow, !Number(item.rate)] ]) ]), _hoisted_6, createElementVNode("div", _hoisted_7, toDisplayString(item.label), 1) ]); }), 128)) ]) ], 4); }; } }); export { _sfc_main as default };