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

160 lines (155 loc) 5.76 kB
'use strict'; 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;