From fc2230a992aad1fb378ca9200298a0fbd7fce555 Mon Sep 17 00:00:00 2001 From: gaohaifeng Date: Wed, 27 Aug 2025 20:55:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E6=9B=BF=E6=8D=A2m?= =?UTF-8?q?ock=E6=95=B0=E6=8D=AE=E4=B8=BA=E7=9C=9F=E5=AE=9EAPI=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=B9=B6=E8=B0=83=E6=95=B4=E9=A3=8E=E9=99=A9=E7=BA=A7?= =?UTF-8?q?=E5=88=AB=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改风险级别选项值为数字类型以匹配后端API 移除mock数据依赖,通过axios调用真实接口获取图表数据 更新数据处理逻辑以适应API返回格式 --- .../LineDropdownHaz/index.vue | 58 ++++++++++--------- vite.config.ts | 4 ++ 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/packages/components/Charts/HazardousChemicalsSpace/LineDropdownHaz/index.vue b/src/packages/components/Charts/HazardousChemicalsSpace/LineDropdownHaz/index.vue index d9c2196..efeaaf6 100644 --- a/src/packages/components/Charts/HazardousChemicalsSpace/LineDropdownHaz/index.vue +++ b/src/packages/components/Charts/HazardousChemicalsSpace/LineDropdownHaz/index.vue @@ -37,7 +37,7 @@ import { mergeTheme } from '@/packages/public/chart' import config, { includes } from './config' import { DatasetComponent, GridComponent, TooltipComponent } from 'echarts/components' import CustomSelect from './select.vue' -import mockData from './mock.json' +import axios from 'axios' const props = defineProps({ themeSetting: { @@ -57,22 +57,40 @@ const props = defineProps({ const selectedOption = ref('总数') // 新增风险级别相关状态 -const selectedRiskLevel = ref('全部') +const selectedRiskLevel = ref(0) const riskLevelOptions = ref([ - { label: '全部', value: '全部' }, - { label: '重大风险', value: '重大风险' }, - { label: '较大风险', value: '较大风险' }, - { label: '一般风险', value: '一般风险' }, - { label: '低风险', value: '低风险' } + { label: '全部', value: 0 }, + { label: '重大风险', value: 1 }, + { label: '较大风险', value: 2 }, + { label: '一般风险', value: 3 }, + { label: '低风险', value: 4 } ]) const initOptions = useCanvasInitOptions(props.chartConfig.option, props.themeSetting) use([DatasetComponent, CanvasRenderer, LineChart, GridComponent, TooltipComponent]) +// API调用函数 +const fetchChartData = async (timeType: string, riskLevel: number) => { + try { + const response = await axios.get(`/screen/alarmByOption/${timeType}/${riskLevel}`) + if (response.data.state === true) { + return response.data.value || [] + } else { + console.error('API调用失败:', response.data) + return [] + } + } catch (error) { + console.error('获取图表数据失败:', error) + return [] + } +} + // 数据处理函数 -const processChartData = (timeType: string, riskLevel: string) => { - const rawData = mockData[timeType as keyof typeof mockData] || [] +const processChartData = async (timeType: string, riskLevel: number) => { + + // 调用API获取数据 + const rawData = await fetchChartData(timeType, riskLevel) // 根据时间类型处理数据格式 let processedData: Array<{time: string, value: number}> = [] @@ -108,22 +126,6 @@ const processChartData = (timeType: string, riskLevel: string) => { processedData = [] } - // 根据风险级别过滤数据(这里可以根据实际需求调整过滤逻辑) - if (riskLevel !== '全部') { - // 示例:根据风险级别调整数值(实际项目中应该有对应的风险级别数据) - const riskMultiplier = { - '重大风险': 0.4, - '较大风险': 0.3, - '一般风险': 0.2, - '低风险': 0.1 - }[riskLevel] || 1 - - processedData = processedData.map(item => ({ - ...item, - value: Math.round(item.value * riskMultiplier) - })) - } - return { dimensions: ['time', 'value'], source: processedData @@ -131,8 +133,8 @@ const processChartData = (timeType: string, riskLevel: string) => { } // 更新图表数据 -const updateChartData = () => { - const newData = processChartData(props.chartConfig.option.dateTime.selectValue, selectedRiskLevel.value) +const updateChartData = async () => { + const newData = await processChartData(props.chartConfig.option.dateTime.selectValue, selectedRiskLevel.value) props.chartConfig.option.dataset = newData } @@ -429,4 +431,4 @@ onMounted(() => { width: 100%; height: 45px; } - \ No newline at end of file + diff --git a/vite.config.ts b/vite.config.ts index 0946dc2..197f46c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -67,6 +67,10 @@ export default ({ mode }) => '/awjt/': { target: 'http://127.0.0.1:8921/', changeOrigin: true + }, + '/screen/': { + target: 'http://127.0.0.1:8080/', + changeOrigin: true } } },