@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" />
160 lines (155 loc) • 5.76 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const es = require('element-plus/es');
require('element-plus/es/components/base/style/css');
require('element-plus/es/components/scrollbar/style/css');
const vue = require('vue');
const lodashEs = require('lodash-es');
const dayjs = require('dayjs');
const ProgressBar_vue_vue_type_script_setup_true_lang = require('../common/ProgressBar.vue.js');
require('../common/ProgressBar.vue2.js');
const selectPanel_vue_vue_type_script_setup_true_name_SelectPanel_lang = require('../common/select-panel.vue.js');
require('../common/select-panel.vue2.js');
const index = require('./api/index.js');
const _hoisted_1 = { class: "dv-wgms-pollution-source" };
const _hoisted_2 = { class: "dv-wgms-key-source" };
const _hoisted_3 = { class: "dv-wgms-title-text" };
const _hoisted_4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "dv-wgms-text" }, " 重点源超标前三 ", -1);
const _hoisted_5 = { class: "dv-wgms-select" };
const _hoisted_6 = { class: "dv-wgms-top" };
const _hoisted_7 = { class: "dv-wgms-left" };
const _hoisted_8 = { class: "dv-wgms-right" };
const _hoisted_9 = { class: "dv-wgms-bar" };
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...{
name: "DvWgmsPollutionSourceControl",
title: "污染源管控-重点源超标前三"
},
__name: "index",
props: {
factorList: {
type: Array,
default: () => []
},
params: {
type: Object,
default: () => {
return {
distance: 5e3,
startTime: dayjs().startOf("year").valueOf(),
endTime: dayjs().endOf("year").valueOf(),
latitude: 30,
longitude: 120,
timeType: "day"
};
}
},
isLazy: {
type: Boolean,
default: false
},
data: {
type: Array,
default: void 0
}
},
emits: ["factorChange"],
setup(__props, { expose: __expose, emit: emits }) {
const props = __props;
const pollutionData = vue.reactive({
companyList: [],
curSelectFactor: "",
overCountMax: 0
});
vue.watch([
() => props.params,
() => props.data,
() => props.isLazy
], () => {
if (props.isLazy)
return;
keyPollutionData();
});
const keyFactorsCheck = (item, index) => {
if (pollutionData.curSelectFactor === item.code)
return;
pollutionData.curSelectFactor = item.code;
emits("factorChange", item.code);
keyPollutionData();
};
vue.onMounted(() => {
if (props.isLazy)
return;
keyPollutionData();
});
const keyPollutionData = async () => {
let resData;
if (props.data) {
resData = props.data;
} else {
const params = {
...props.params,
factor: pollutionData.curSelectFactor,
factorFlag: pollutionData.curSelectFactor === ""
};
const res = await index.pomsAlarm(params);
resData = res?.data ?? [];
}
if (resData.length) {
pollutionData.companyList = resData.slice(0, 3);
const maxObj = lodashEs.maxBy(pollutionData.companyList, "overCount");
pollutionData.overCountMax = maxObj.overCount;
} else {
pollutionData.companyList = [];
}
};
const { companyList, overCountMax, curSelectFactor } = vue.toRefs(pollutionData);
__expose({
reload: keyPollutionData
});
return (_ctx, _cache) => {
const _component_el_scrollbar = es.ElScrollbar;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createElementVNode("div", _hoisted_2, [
vue.createElementVNode("div", _hoisted_3, [
_hoisted_4,
vue.createElementVNode("div", _hoisted_5, [
vue.createVNode(selectPanel_vue_vue_type_script_setup_true_name_SelectPanel_lang.default, {
option: __props.factorList,
"default-value": vue.unref(curSelectFactor),
onChange: keyFactorsCheck
}, null, 8, ["option", "default-value"])
])
]),
vue.createVNode(_component_el_scrollbar, { class: "dv-wgms-key-list" }, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(companyList), (item, index) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: index,
class: "dv-wgms-key-one"
}, [
vue.createElementVNode("div", _hoisted_6, [
vue.createElementVNode("div", _hoisted_7, [
vue.createElementVNode("span", null, vue.toDisplayString(item.rank), 1),
vue.createElementVNode("span", null, vue.toDisplayString(item.pomsName), 1)
]),
vue.createElementVNode("div", _hoisted_8, vue.toDisplayString(item.overCount), 1)
]),
vue.createElementVNode("div", _hoisted_9, [
vue.createVNode(ProgressBar_vue_vue_type_script_setup_true_lang.default, {
"active-color": "linear-gradient(270deg, var(--dv-color-danger) 0%, var(--dv-color-danger-30) 100%)",
"handle-style": { background: "var(--dv-color-danger)" },
percentage: item.overCount / vue.unref(overCountMax) * 100
}, null, 8, ["handle-style", "percentage"])
])
]);
}), 128))
]),
_: 1
})
])
]);
};
}
});
exports.default = _sfc_main;