@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" />
134 lines (129 loc) • 4.5 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const vue = require('vue');
const dayjs = require('dayjs');
const utils = require('../../../utils.js');
const index = require('./api/index.js');
const wind_direction = require('./images/wind_direction.svg.js');
const wind_speed = require('./images/wind_speed.svg.js');
const temperature = require('./images/temperature.svg.js');
const pressure = require('./images/pressure.svg.js');
const humidity = require('./images/humidity.svg.js');
const precipitation = require('./images/precipitation.svg.js');
const white_wind_direction = require('./images/white_wind_direction.svg.js');
const white_humidity = require('./images/white_humidity.svg.js');
const white_precipitation = require('./images/white_precipitation.svg.js');
const white_pressure = require('./images/white_pressure.svg.js');
const white_temperature = require('./images/white_temperature.svg.js');
const white_wind_speed = require('./images/white_wind_speed.svg.js');
const _hoisted_1 = { class: "condition" };
const _hoisted_2 = ["src"];
const _hoisted_3 = { class: "condition-value" };
const _hoisted_4 = { class: "unit" };
const className = "dv-aims-weather-condition";
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "index",
props: {
apiParams: { default: () => ({
time: dayjs().subtract(1, "h").valueOf(),
gridCode: "0101000000",
timeType: "hour"
}) }
},
setup(__props) {
const props = __props;
const { isDark } = utils.useThemeHook();
const list = vue.ref([
{
name: "风向",
value: "--",
unit: "",
key: "windDirection",
backgroundUrl: wind_direction.default,
whiteBackgroundUrl: white_wind_direction.default
},
{
name: "风级",
value: "--",
unit: "--",
key: "windScale",
backgroundUrl: wind_speed.default,
whiteBackgroundUrl: white_wind_speed.default
},
{
name: "温度",
value: "--",
unit: "°C",
key: "temperature",
backgroundUrl: temperature.default,
whiteBackgroundUrl: white_temperature.default
},
{
name: "气压",
value: "--",
unit: "hPa",
key: "pres",
backgroundUrl: pressure.default,
whiteBackgroundUrl: white_pressure.default
},
{
name: "湿度",
value: "--",
unit: "%",
key: "humidity",
backgroundUrl: humidity.default,
whiteBackgroundUrl: white_humidity.default
},
{
name: "降水量",
value: "--",
unit: "mm",
key: "rain",
backgroundUrl: precipitation.default,
whiteBackgroundUrl: white_precipitation.default
}
]);
const fetchData = () => {
index.getAirQuality(props.apiParams).then((res) => {
if (res.data) {
const data = res.data;
list.value = list.value.map((item) => {
const obj = data.weatherFactors.find((c) => c.key === item.key);
return {
...item,
unit: obj?.unit ? obj.unit : "--",
value: obj?.value ? obj.value : "--"
};
});
}
});
};
vue.onMounted(() => {
fetchData();
});
vue.watch(() => props.apiParams, () => {
fetchData();
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass(`${className}-container`)
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(list.value, (item) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: item.name,
class: vue.normalizeClass(`${className}-list`)
}, [
vue.createElementVNode("span", _hoisted_1, vue.toDisplayString(item.name), 1),
vue.createElementVNode("img", {
src: vue.unref(isDark) ? item.backgroundUrl : item.whiteBackgroundUrl,
class: vue.normalizeClass({ white: !vue.unref(isDark) })
}, null, 10, _hoisted_2),
vue.createElementVNode("span", _hoisted_3, vue.toDisplayString(item.value), 1),
vue.createElementVNode("span", _hoisted_4, vue.toDisplayString(item.unit), 1)
], 2);
}), 128))
], 2);
};
}
});
exports.default = _sfc_main;