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

154 lines (149 loc) 4.58 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const vue = require('vue'); const core = require('@vueuse/core'); const dayjs = require('dayjs'); const Echarts_vue_vue_type_script_setup_true_lang = require('../common/Echarts.vue.js'); require('../common/Echarts.vue2.js'); const request = require('../../service/request.js'); const NoData_vue_vue_type_script_setup_true_lang = require('../common/NoData.vue.js'); require('../common/NoData.vue2.js'); const hooks = require('../../utils/hooks.js'); const __default__ = { name: "DvIpesHomeworkVolumeTrend", title: "作业量趋势" }; const _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...__default__, props: { // 作业量趋势 getHomeworkVolumeTrendApi: { type: String, default: "/ipes-srip-server/api/v3/special-operation-statistics/operation-total" }, // 开始时间 beginTime: { type: Number, default: dayjs().startOf("year").valueOf() }, // 结束时间 endTime: { type: Number, default: Date.now() }, // 高度 height: { type: String, default: "112px" } }, setup(__props) { const props = __props; const xlabelEl = vue.ref(null); const xlabelColor = core.useCssVar("--dv-color-text-primary", xlabelEl); const ylabelEl = vue.ref(null); const ylabelColor = core.useCssVar("--dv-color-text-secondary", ylabelEl); const splitLineEl = vue.ref(null); const splitLineElColor = core.useCssVar("--dv-color-border-light", splitLineEl); const chartOption = vue.reactive({ options: { tooltip: { show: true, trigger: "axis" }, grid: { top: "20px", left: "40px", right: "20px", bottom: "30px" }, xAxis: { type: "category", axisLabel: { color: xlabelColor.value, fontFamily: "var(--dv-font-family-number)", fontSize: "var(--dv-text-number2)" }, axisTick: { show: false }, axisLine: { lineStyle: { color: splitLineElColor.value } }, data: [] }, yAxis: { type: "value", axisLabel: { color: ylabelColor.value, fontFamily: "var(--dv-font-family-number)", fontSize: "var(--dv-text-number2)" }, splitLine: { lineStyle: { color: splitLineElColor.value }, show: true } }, series: [ { data: [], type: "line", itemStyle: { color: "#F95EB1", lineStyle: { color: "#F95EB1", borderWidth: 8 } } } ] } }); const isInit = vue.ref(false); const isNoData = vue.ref(false); async function getHomeworkVolumeTrend() { try { const res = await request.default({ method: "get", url: props.getHomeworkVolumeTrendApi, params: { beginTime: props.beginTime, endTime: props.endTime } }); isInit.value = true; if (res.success) setOptions(res.data); else isNoData.value = true; } catch (error) { console.log(error); } } getHomeworkVolumeTrend(); function setOptions(data) { chartOption.options.xAxis.data = data.map((ele, index) => `${index + 1}月`); chartOption.options.series[0].data = data; } hooks.setIntervalData(getHomeworkVolumeTrend, 5 * 60 * 1e3); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { class: "dv-ipes-homework-volume-trend", style: vue.normalizeStyle({ height: __props.height }) }, [ isInit.value && !isNoData.value ? (vue.openBlock(), vue.createBlock(Echarts_vue_vue_type_script_setup_true_lang.default, { key: 0, "full-options": vue.unref(chartOption), loading: false, height: __props.height }, null, 8, ["full-options", "height"])) : vue.createCommentVNode("", true), isInit.value && isNoData.value ? (vue.openBlock(), vue.createBlock(NoData_vue_vue_type_script_setup_true_lang.default, { key: 1 })) : vue.createCommentVNode("", true) ], 4); }; } }); exports.default = _sfc_main;