diff --git a/public/staticData/static.json b/public/staticData/static.json index 3ced647..6ebff16 100644 --- a/public/staticData/static.json +++ b/public/staticData/static.json @@ -162,98 +162,98 @@ ] } ] + } + }, + "TopAlarmsHaz": { + "a": { + "titleText": "电动自行车停车场景数企业及场景数量", + "source": [ + { + "rank": "TOP1", + "name": "株机公司", + "value": 96 + }, + { + "rank": "TOP2", + "name": "株洲所", + "value": 34 + }, + { + "rank": "TOP3", + "name": "时代新材", + "value": 19 + }, + { + "rank": "TOP4", + "name": "产投公司", + "value": 16 + }, + { + "rank": "TOP5", + "name": "四方股份", + "value": 12 + } + ] }, - "TopAlarmsHaz": { - "a": { - "titleText": "电动自行车停放区场景数前五的企业及场景数量", - "source": [ - { - "rank": "TOP1", - "name": "株机公司", - "value": 96 - }, - { - "rank": "TOP2", - "name": "株洲所", - "value": 34 - }, - { - "rank": "TOP3", - "name": "时代新材", - "value": 19 - }, - { - "rank": "TOP4", - "name": "产投公司", - "value": 16 - }, - { - "rank": "TOP5", - "name": "四方股份", - "value": 12 - } - ] - }, - "b": { - "titleText": "电动汽车停车场场景数前五的企业及场景数量", - "source": [ - { - "rank": "TOP1", - "name": "株机公司", - "value": 18 - }, - { - "rank": "TOP2", - "name": "株洲所", - "value": 18 - }, - { - "rank": "TOP3", - "name": "四方股份", - "value": 20 - }, - { - "rank": "TOP4", - "name": "时代新材", - "value": 12 - }, - { - "rank": "TOP5", - "name": "长江集团", - "value": 10 - } - ] - }, - "c": { - "titleText": "生产用电动车停放区场景数前五的企业及场景数量", - "source": [ - { - "rank": "TOP1", - "name": "株机公司", - "value": 82 - }, - { - "rank": "TOP2", - "name": "长客股份", - "value": 63 - }, - { - "rank": "TOP3", - "name": "四方股份", - "value": 32 - }, - { - "rank": "TOP4", - "name": "株洲所", - "value": 24 - }, - { - "rank": "TOP5", - "name": "时代新材", - "value": 22 - } - ] - } + "b": { + "titleText": "电动汽车停车场场景数企业及场景数量", + "source": [ + { + "rank": "TOP1", + "name": "株机公司", + "value": 18 + }, + { + "rank": "TOP2", + "name": "株洲所", + "value": 18 + }, + { + "rank": "TOP3", + "name": "四方股份", + "value": 20 + }, + { + "rank": "TOP4", + "name": "时代新材", + "value": 12 + }, + { + "rank": "TOP5", + "name": "长江集团", + "value": 10 + } + ] + }, + "c": { + "titleText": "生产用电动车停车场景数企业及场景数量", + "source": [ + { + "rank": "TOP1", + "name": "株机公司", + "value": 82 + }, + { + "rank": "TOP2", + "name": "长客股份", + "value": 63 + }, + { + "rank": "TOP3", + "name": "四方股份", + "value": 32 + }, + { + "rank": "TOP4", + "name": "株洲所", + "value": 24 + }, + { + "rank": "TOP5", + "name": "时代新材", + "value": 22 + } + ] } } }, @@ -419,40 +419,36 @@ } }, "T04": { - "SceneDistribution": { + "WorkshopScene": { "a": { "source": [ { - "title": "危化品库", - "label": "场景总数", - "value": 130, - "color": "#00E5FF", - "image": "scene-total.png" + "name": "危化品库", + "icon": "warehouse", + "metrics": [ + { + "label": "场景总数", + "value": 130 + }, + { + "label": "智控场景", + "value": 0 + } + ] }, { - "title": "危化品库", - "label": "智控场景", - "value": 0, - "color": "#FFD700", - "image": "scene-control.png" - } - ] - }, - "b": { - "source": [ - { - "title": "危废品库", - "label": "场景总数", - "value": 152, - "color": "#00E5FF", - "image": "scene-total.png" - }, - { - "title": "危废品库", - "label": "智控场景", - "value": 0, - "color": "#FFD700", - "image": "scene-control.png" + "name": "危废品库", + "icon": "warehouse", + "metrics": [ + { + "label": "智控场景", + "value": 152 + }, + { + "label": "场景总数", + "value": 0 + } + ] } ] } @@ -462,32 +458,39 @@ "titleText": "危化品库场景数量前五的企业及场景数量", "source": [ { - "company": "时代新材", - "quantity": 30 + "rank": "TOP1", + "name": "时代新材", + "value": 30 }, { - "company": "株洲所", - "quantity": 16 + "rank": "TOP2", + "name": "株洲所", + "value": 16 }, { - "company": "四方股份", - "quantity": 15 + "rank": "TOP3", + "name": "四方股份", + "value": 15 }, { - "company": "产投公司", - "quantity": 13 + "rank": "TOP4", + "name": "产投公司", + "value": 13 }, { - "company": "长江集团", - "quantity": 11 + "rank": "TOP5", + "name": "长江集团", + "value": 11 }, { - "company": "长客股份", - "quantity": 11 + "rank": "TOP6", + "name": "长客股份", + "value": 11 }, { - "company": "株机公司", - "quantity": 11 + "rank": "TOP7", + "name": "株机公司", + "value": 11 } ] }, @@ -495,24 +498,29 @@ "titleText": "危废品库场景数量前五的企业及场景数量", "source": [ { - "company": "时代新材", - "quantity": 27 + "rank": "TOP1", + "name": "时代新材", + "value": 27 }, { - "company": "株机公司", - "quantity": 26 + "rank": "TOP2", + "name": "株机公司", + "value": 26 }, { - "company": "株洲所", - "quantity": 20 + "rank": "TOP3", + "name": "株洲所", + "value": 20 }, { - "company": "产投公司", - "quantity": 16 + "rank": "TOP4", + "name": "产投公司", + "value": 16 }, { - "company": "长客股份", - "quantity": 12 + "rank": "TOP5", + "name": "长客股份", + "value": 12 } ] } diff --git a/src/packages/components/Charts/ConfinedSpace/FiniteSpatialDistribution/index.vue b/src/packages/components/Charts/ConfinedSpace/FiniteSpatialDistribution/index.vue index 4e56dd5..bf0f629 100644 --- a/src/packages/components/Charts/ConfinedSpace/FiniteSpatialDistribution/index.vue +++ b/src/packages/components/Charts/ConfinedSpace/FiniteSpatialDistribution/index.vue @@ -103,6 +103,15 @@ watch( { deep: true, immediate: true } ) + + + + + + + + + const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore, (newData: any) => { updateChartData(newData) }) diff --git a/src/packages/components/Charts/HazardousChemicalsSpace/TopAlarmsHaz/index.vue b/src/packages/components/Charts/HazardousChemicalsSpace/TopAlarmsHaz/index.vue index faf85ff..d52f0a9 100644 --- a/src/packages/components/Charts/HazardousChemicalsSpace/TopAlarmsHaz/index.vue +++ b/src/packages/components/Charts/HazardousChemicalsSpace/TopAlarmsHaz/index.vue @@ -133,8 +133,24 @@ const fetchCorpsData = async (option: string) => { // } // 使用静态数据 await getStaticData(key, props.chartConfig.option.componentIndexKey, props.chartConfig.option.sceneCode); - displayData.value = response['source'] - props.chartConfig.option.titleText = response['titleText'] + // 数据校验:检查响应是否存在且包含有效数据 + if (response && response['source'] && Array.isArray(response['source']) && response['source'].length > 0) { + // 检查新数据是否与现有数据相同(简单比较长度和第一项) + const isNewDataDifferent = + !displayData.value || + displayData.value.length !== response['source'].length || + JSON.stringify(displayData.value) !== JSON.stringify(response['source']); + + // 只有当数据不为空且与现有数据不同时才更新 + if (isNewDataDifferent) { + displayData.value = response['source']; + } + } + + // 标题文本更新(即使数据相同也更新标题) + if (response && response['titleText']) { + props.chartConfig.option.titleText = response['titleText']; + } } catch (error) { console.error('获取企业数据失败:', error) displayData.value = [] diff --git a/src/packages/components/Charts/MyComponents/ParkingScene/index.vue b/src/packages/components/Charts/MyComponents/ParkingScene/index.vue index eb3d160..e2d9f34 100644 --- a/src/packages/components/Charts/MyComponents/ParkingScene/index.vue +++ b/src/packages/components/Charts/MyComponents/ParkingScene/index.vue @@ -287,8 +287,7 @@ const fetchData = async () => { watch( () => [ props.chartConfig.option.sceneCode, - props.chartConfig.option.componentIndexKey, - props.chartConfig.option.dataset + props.chartConfig.option.componentIndexKey ], async () => { await fetchData(); diff --git a/src/packages/components/Charts/MyComponents/SceneDistribution/index.vue b/src/packages/components/Charts/MyComponents/SceneDistribution/index.vue index aed8344..020596d 100644 --- a/src/packages/components/Charts/MyComponents/SceneDistribution/index.vue +++ b/src/packages/components/Charts/MyComponents/SceneDistribution/index.vue @@ -197,7 +197,7 @@