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