dynamic calc

This commit is contained in:
Julian Freeman
2026-03-03 13:43:10 -04:00
parent 4cbf6379ba
commit 616483b2a8
2 changed files with 24 additions and 5 deletions

View File

@@ -29,6 +29,21 @@ const fastScanResult = ref<FastScanResult | null>(null);
const cleanResult = ref<CleanResult | null>(null);
const treeData = ref<FileNode[]>([]);
// --- 动态汇总计算 ---
import { computed } from "vue";
const selectedStats = computed(() => {
if (!fastScanResult.value) return { sizeStr: "0 B", count: 0, hasSelection: false };
const enabledItems = fastScanResult.value.items.filter(i => i.enabled);
const totalBytes = enabledItems.reduce((acc, i) => acc + i.size, 0);
const totalCount = enabledItems.reduce((acc, i) => acc + i.count, 0);
return {
sizeStr: formatItemSize(totalBytes),
count: totalCount,
hasSelection: enabledItems.length > 0
};
});
// --- 弹窗状态 ---
const showModal = ref(false);
const modalTitle = ref("");
@@ -313,19 +328,23 @@ function splitSize(sizeStr: string | number) {
<div class="result-stats">
<div class="stat-item">
<span class="stat-value">
{{ splitSize(fastScanResult.total_size).value }}
<span class="unit">{{ splitSize(fastScanResult.total_size).unit }}</span>
{{ splitSize(selectedStats.sizeStr).value }}
<span class="unit">{{ splitSize(selectedStats.sizeStr).unit }}</span>
</span>
<span class="stat-label">预计释放</span>
</div>
<div class="stat-divider"></div>
<div class="stat-item">
<span class="stat-value">{{ fastScanResult.total_count }}</span>
<span class="stat-value">{{ selectedStats.count }}</span>
<span class="stat-label">文件数量</span>
</div>
</div>
<button class="btn-primary main-btn" @click="startFastClean" :disabled="isCleaning">
<button
class="btn-primary main-btn"
@click="startFastClean"
:disabled="isCleaning || !selectedStats.hasSelection"
>
{{ isCleaning ? '正在清理...' : '立即清理' }}
</button>
</div>