diff --git a/src/components/echarts/MyEchart.vue b/src/components/echarts/MyEchart.vue index 3360f05..47303ed 100644 --- a/src/components/echarts/MyEchart.vue +++ b/src/components/echarts/MyEchart.vue @@ -153,7 +153,10 @@ const handlerYAxis = () => { }, axisLabel: { color: '#000', - fontSize: 14 + fontSize: 14, + formatter: function (value) { + return value.toFixed(0); // 格式化显示为一位小数 + } }, splitLine: { lineStyle: { @@ -162,7 +165,8 @@ const handlerYAxis = () => { type: 'dashed', opacity: 0.5 } - } + }, + } // props.options?.xAxis 是数组还是对象 if (Array.isArray(props.options?.yAxis)) { @@ -245,11 +249,13 @@ watch( width: 100%; height: 100%; position: relative; + .el-button { position: absolute; right: 0px; top: -60px; } + .my-chart { height: 100%; width: 100%; diff --git a/src/utils/echartMethod.ts b/src/utils/echartMethod.ts new file mode 100644 index 0000000..2ddac08 --- /dev/null +++ b/src/utils/echartMethod.ts @@ -0,0 +1,55 @@ +import { install$2 } from 'echarts/types/dist/shared' + +export const yMethod = (arr: any) => { + console.log('🚀 ~ yMethod ~ arr:', arr) + let interval = 0 + let maxValue = 0 + let minValue = 0 + let max = 0 + let min = 0 + maxValue = Math.max(...arr) + minValue = Math.min(...arr) + + console.log('🚀 ~ yMethod ~ minValue:', minValue) + + // interval = (maxValue - minValue) / 4 + // if (maxValue > 1000) { + // interval = (Math.ceil(maxValue / 100) * 100 - Math.ceil(minValue / 100) * 100) / 4 + // min = Math.floor((minValue - interval / 2) / 100) * 100 + // max = Math.ceil((maxValue + interval / 2) / 100) * 100 + // min >= 0 ? 0 : '' + // } else { + // min = Math.floor(minValue - interval / 2) + // max = Math.ceil(maxValue + interval / 2) + // console.log('🚀 ~ yMethod ~ minValue:', minValue) + + // if (minValue >= 0 && minValue < 10) { + // min = 0 + // } + // if (maxValue < 1 && maxValue >= 0) { + // max = 1 + // } + // interval = (max - min) / 4 + // } + + // if (interval < 1 && interval > -1) { + // interval = 1 + // } + // console.log("🚀 ~ yMethod ~ minValue:", minValue) + + if (maxValue > 1000) { + max = Math.ceil(maxValue / 100) * 100 + min = (Math.floor(minValue / 100) - 1) * 100 + } else { + max = Math.ceil(maxValue / 10) * 10 + min = Math.floor(minValue / 10) * 10 + } + if (max > 0 && max < 1) { + max = 1 + } + // if (min < 0 && min < -1) { + // min = -1 + // } + + return [min, max, interval] +} diff --git a/src/views/govern/device/control/detail.vue b/src/views/govern/device/control/detail.vue index bba7037..0d60ac0 100644 --- a/src/views/govern/device/control/detail.vue +++ b/src/views/govern/device/control/detail.vue @@ -39,6 +39,7 @@ import { reactive } from 'vue' import DatePicker from '@/components/form/datePicker/index.vue' import { getDeviceDataTrend } from '@/api/cs-harmonic-boot/datatrend' import MyEchart from '@/components/echarts/MyEchart.vue' +import { yMethod } from '@/utils/echartMethod' interface Props { detail: anyObj @@ -118,6 +119,7 @@ const init = () => { res.data.forEach((item: any[]) => { arr.push(...item) }) + let [min, max, interval] = yMethod(arr.map((item: any) => item.statisticalData)) echartsData.value = { options: { grid: { @@ -183,25 +185,52 @@ const init = () => { axisLine: { show: true }, - minInterval: 0.1, - min: ( - arr - .map((item: any) => item.statisticalData) - .sort((a, b) => { - return a - b - })[0] / 1.2 - ).toFixed(1), - max: ( - arr - .map(item => item.statisticalData) - .sort((a, b) => { - return b - a - })[0] * 1.2 - ).toFixed(1) + + min: min, + max: max, + // interval:interval, + splitNumber:5 + // min: 134, + // max: 500, + // min: Math.ceil( + // arr + // .map((item: any) => item.statisticalData) + // .sort((a, b) => { + // return a - b + // })[0] + // ), + // max: Math.floor( + // arr + // .map(item => item.statisticalData) + // .sort((a, b) => { + // return b - a + // })[0] + // ), + // interval: (Math.floor( + // arr + // .map(item => item.statisticalData) + // .sort((a, b) => { + // return b - a + // })[0] + // ) - Math.ceil( + // arr + // .map((item: any) => item.statisticalData) + // .sort((a, b) => { + // return a - b + // })[0] + // )) / 5, + + }, xAxis: { - type: 'time' + type: 'time', + axisLabel: { + formatter: { + day: '{MM}-{dd}', + + } + } // data: res.data[0].map((item: any) => { // return item.time // }), diff --git a/src/views/govern/device/control/tabs/components/waveFormAnalysis.vue b/src/views/govern/device/control/tabs/components/waveFormAnalysis.vue index 3f7fa03..886f421 100644 --- a/src/views/govern/device/control/tabs/components/waveFormAnalysis.vue +++ b/src/views/govern/device/control/tabs/components/waveFormAnalysis.vue @@ -4,12 +4,8 @@
- + @@ -17,29 +13,15 @@
- - + + + - - + + + @@ -135,13 +117,14 @@ const handleClick = (tab: any, event: any) => { const handleBack = () => { emit('handleHideCharts') } -onMounted(() => {}) +onMounted(() => { }) defineExpose({ getWpData })