fix: 优化前端生命周期清理与本地文件忽略

- 修复流程提交组件 props 默认值返回 undefined 的问题
- 清理调试日志和空生命周期钩子
- 修复 TagsView 滚动监听移除参数不一致
- 补充消息推送 SSE watcher 清理
- 补充缓存监控页 ECharts 实例和 resize 监听清理
- 忽略 IDE 模块文件并纳入 pnpm lockfile
This commit is contained in:
疯狂的狮子Li
2026-06-08 17:52:31 +08:00
parent 62694b1554
commit d74c18e58e
6 changed files with 4633 additions and 65 deletions

View File

@@ -151,63 +151,83 @@ import modal from '@/plugins/modal';
const cache = ref<Partial<CacheVO>>({});
const commandstats = ref();
const usedmemory = ref();
let commandstatsInstance: echarts.ECharts | undefined;
let usedmemoryInstance: echarts.ECharts | undefined;
const handleResize = () => {
commandstatsInstance?.resize();
usedmemoryInstance?.resize();
};
const disposeCharts = () => {
commandstatsInstance?.dispose();
usedmemoryInstance?.dispose();
commandstatsInstance = undefined;
usedmemoryInstance = undefined;
};
const getList = async () => {
modal.loading('正在加载缓存监控数据,请稍候!');
const res = await getCache();
modal.closeLoading();
cache.value = res.data;
const commandstatsIntance = echarts.init(commandstats.value, 'macarons');
commandstatsIntance.setOption({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
series: [
{
name: '命令',
type: 'pie',
roseType: 'radius',
radius: [15, 95],
center: ['50%', '38%'],
data: res.data.commandStats,
animationEasing: 'cubicInOut',
animationDuration: 1000
}
]
});
const usedmemoryInstance = echarts.init(usedmemory.value, 'macarons');
usedmemoryInstance.setOption({
tooltip: {
formatter: '{b} <br/>{a} : ' + cache.value.info.used_memory_human
},
series: [
{
name: '峰值',
type: 'gauge',
min: 0,
max: 1000,
detail: {
formatter: cache.value.info.used_memory_human
},
data: [
{
value: parseFloat(cache.value.info.used_memory_human),
name: '内存消耗'
}
]
}
]
});
window.addEventListener('resize', () => {
commandstatsIntance.resize();
usedmemoryInstance.resize();
});
try {
const res = await getCache();
cache.value = res.data;
disposeCharts();
commandstatsInstance = echarts.init(commandstats.value, 'macarons');
commandstatsInstance.setOption({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
series: [
{
name: '命令',
type: 'pie',
roseType: 'radius',
radius: [15, 95],
center: ['50%', '38%'],
data: res.data.commandStats,
animationEasing: 'cubicInOut',
animationDuration: 1000
}
]
});
usedmemoryInstance = echarts.init(usedmemory.value, 'macarons');
usedmemoryInstance.setOption({
tooltip: {
formatter: '{b} <br/>{a} : ' + cache.value.info.used_memory_human
},
series: [
{
name: '峰值',
type: 'gauge',
min: 0,
max: 1000,
detail: {
formatter: cache.value.info.used_memory_human
},
data: [
{
value: parseFloat(cache.value.info.used_memory_human),
name: '内存消耗'
}
]
}
]
});
} finally {
modal.closeLoading();
}
};
onMounted(() => {
window.addEventListener('resize', handleResize);
getList();
});
onBeforeUnmount(() => {
window.removeEventListener('resize', handleResize);
disposeCharts();
});
</script>
<style lang="scss" scoped>