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

120 lines (115 loc) 4.22 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const vue = require('vue'); const zao = require('./images/zao.png.js'); const index = require('./api/index.js'); const up = require('./images/up.png.js'); const down = require('./images/down.png.js'); 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__ */ vue.createElementVNode("img", { alt: "", class: "zao", src: zao.default }, null, -1); const _hoisted_7 = { class: "label" }; const _sfc_main = /* @__PURE__ */ vue.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 = vue.reactive({ list: [ { label: "环比", rate: "" }, { label: "同比", rate: "" }, { label: "近24条数据\n变化率均值", rate: "" } ] }); vue.onMounted(() => { !props.isLazy && getData(); }); vue.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 index.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 = vue.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 } = vue.toRefs(state); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { class: "dv-wgms-chlorophyll-a-change-rate", style: vue.normalizeStyle({ "--height": getHeight.value }) }, [ vue.createElementVNode("div", _hoisted_1, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(list), (item, index) => { return vue.openBlock(), vue.createElementBlock("div", { key: index, class: "rate-one" }, [ vue.createElementVNode("div", _hoisted_2, [ vue.createElementVNode("span", { style: vue.normalizeStyle({ color: Number(item.rate) > 0 ? "var(--dv-color-danger)" : Number(item.rate) < 0 ? "var(--dv-color-success)" : "var(--dv-color-index)" }) }, vue.toDisplayString(item.rate) + "%", 5) ]), vue.createElementVNode("div", _hoisted_3, [ vue.withDirectives(vue.createElementVNode("img", { alt: "", src: Number(item.rate) > 0 ? vue.unref(up.default) : vue.unref(down.default) }, null, 8, _hoisted_4), [ [vue.vShow, Number(item.rate)] ]), vue.withDirectives(vue.createElementVNode("div", _hoisted_5, null, 512), [ [vue.vShow, !Number(item.rate)] ]) ]), _hoisted_6, vue.createElementVNode("div", _hoisted_7, vue.toDisplayString(item.label), 1) ]); }), 128)) ]) ], 4); }; } }); exports.default = _sfc_main;