Files
SaaS-lib/hx-ai-intelligent/src/view/carbonEmissionManage/carbonPlanning/index.vue

101 lines
3.4 KiB
Vue
Raw Normal View History

2024-07-29 15:13:30 +08:00
<template>
<a-tabs v-model:activeKey="activeKey" @change="handleTabChange">
2024-08-05 15:20:16 +08:00
<a-tab-pane key="1" tab="全部">
2024-08-02 15:11:57 +08:00
<all ref="allRef" />
2024-07-30 15:19:19 +08:00
</a-tab-pane>
2024-08-05 15:20:16 +08:00
<a-tab-pane key="2" tab="用电量">
2024-08-07 10:28:29 +08:00
<category ref="electricRef" :tabId="tabId" :energyType="energyType" />
2024-08-02 15:11:57 +08:00
</a-tab-pane>
<a-tab-pane key="3" tab="用水量">
2024-08-07 10:28:29 +08:00
<category ref="useWaterRef" :tabId="tabId" :energyType="energyType" />
2024-08-02 15:11:57 +08:00
</a-tab-pane>
2024-08-20 15:40:08 +08:00
<a-tab-pane key="4" tab="用气量">
2024-08-07 10:28:29 +08:00
<category ref="provideWaterRef" :tabId="tabId" :energyType="energyType" />
2024-08-02 15:11:57 +08:00
</a-tab-pane>
2024-08-20 15:40:08 +08:00
<a-tab-pane key="5" tab="供热量">
2024-08-07 10:28:29 +08:00
<category ref="carbonEmissionsRef" :tabId="tabId" :energyType="energyType" />
2024-08-02 15:11:57 +08:00
</a-tab-pane>
2024-08-20 15:40:08 +08:00
<a-tab-pane key="6" tab="碳排量">
2024-08-07 10:28:29 +08:00
<category ref="provideHotRef" :tabId="tabId" :energyType="energyType" />
2024-07-31 15:52:08 +08:00
</a-tab-pane>
2024-07-29 15:13:30 +08:00
</a-tabs>
</template>
<script lang="ts" setup>
2024-08-05 15:20:16 +08:00
import { ref, nextTick } from 'vue';
2024-07-30 15:19:19 +08:00
import all from './all/index.vue';
2024-07-31 15:52:08 +08:00
import category from './category/index.vue';
2024-07-29 15:13:30 +08:00
defineOptions({
name: 'carbonPlanning', // 与页面路由name一致缓存才可生效
2024-08-02 15:11:57 +08:00
components: {
all,
2024-08-05 15:20:16 +08:00
category,
2024-08-02 15:11:57 +08:00
},
2024-07-29 15:13:30 +08:00
});
const activeKey = ref('1');
2024-08-02 15:11:57 +08:00
const allRef = ref<InstanceType<typeof all> | null>(null);
const electricRef = ref<InstanceType<typeof category> | null>(null);
const useWaterRef = ref<InstanceType<typeof category> | null>(null);
const provideWaterRef = ref<InstanceType<typeof category> | null>(null);
const carbonEmissionsRef = ref<InstanceType<typeof category> | null>(null);
const provideHotRef = ref<InstanceType<typeof category> | null>(null);
2024-07-29 15:13:30 +08:00
// 切换tab页的回调
2024-08-05 15:20:16 +08:00
const tabId = ref(1);
2024-08-07 10:28:29 +08:00
const energyType = ref();
2024-07-29 15:13:30 +08:00
const handleTabChange = (key) => {
console.log('Tab changed:', key);
2024-08-02 15:11:57 +08:00
// 在这里可以执行需要在页面切换时执行的逻辑
if (key === '1') {
2024-08-05 15:20:16 +08:00
nextTick(() => {
if (allRef.value) {
allRef.value.getTableData();
}
});
2024-08-02 15:11:57 +08:00
} else if (key === '2') {
2024-08-20 15:40:08 +08:00
tabId.value = 4;
energyType.value = 'ELECTRICITY_USAGE';
2024-08-05 15:20:16 +08:00
nextTick(() => {
if (electricRef.value) {
2024-08-20 15:40:08 +08:00
electricRef.value.electricTotal = true;
2024-08-07 10:28:29 +08:00
electricRef.value.changeToYear(); // 调用子组件的方法
2024-08-05 15:20:16 +08:00
}
});
2024-08-02 15:11:57 +08:00
} else if (key === '3') {
2024-08-20 15:40:08 +08:00
tabId.value = 5;
energyType.value = 'WATER_USAGE';
2024-08-07 10:28:29 +08:00
nextTick(() => {
if (useWaterRef.value) {
2024-08-20 15:40:08 +08:00
useWaterRef.value.electricTotal = true;
2024-08-07 10:28:29 +08:00
useWaterRef.value.changeToYear(); // 调用子组件的方法
}
});
2024-08-05 15:20:16 +08:00
} else if (key === '4') {
2024-08-20 15:40:08 +08:00
tabId.value = 6;
2024-08-27 17:32:31 +08:00
energyType.value = 'GAS_USAGE';
2024-08-07 10:28:29 +08:00
nextTick(() => {
if (provideWaterRef.value) {
2024-08-20 15:40:08 +08:00
provideWaterRef.value.electricTotal = true;
2024-08-07 10:28:29 +08:00
provideWaterRef.value.changeToYear(); // 调用子组件的方法
}
});
2024-08-05 15:20:16 +08:00
} else if (key === '5') {
2024-08-20 15:40:08 +08:00
tabId.value = 7;
energyType.value = 'CARBON_EMISSIONS';
2024-08-07 10:28:29 +08:00
nextTick(() => {
if (carbonEmissionsRef.value) {
2024-08-20 15:40:08 +08:00
carbonEmissionsRef.value.electricTotal = true;
2024-08-07 10:28:29 +08:00
carbonEmissionsRef.value.changeToYear(); // 调用子组件的方法
}
});
2024-08-05 15:20:16 +08:00
} else if (key === '6') {
2024-08-20 15:40:08 +08:00
tabId.value = 8;
energyType.value = 'HEAT_SUPPLY';
2024-08-07 10:28:29 +08:00
nextTick(() => {
if (provideHotRef.value) {
2024-08-20 15:40:08 +08:00
provideHotRef.value.electricTotal = true;
2024-08-07 10:28:29 +08:00
provideHotRef.value.changeToYear(); // 调用子组件的方法
}
});
2024-08-02 15:11:57 +08:00
}
2024-07-29 15:13:30 +08:00
};
</script>