support clean orogress

This commit is contained in:
Julian Freeman
2026-04-17 12:25:40 -04:00
parent 54b8701644
commit 4e40fa9f80
11 changed files with 218 additions and 38 deletions

View File

@@ -8,7 +8,7 @@ const props = defineProps<{
requestConfirm: (options: ConfirmOptions) => Promise<boolean>;
}>();
const { state, selectedStats, startScan, startClean, reset } = useFastClean(
const { state, selectedStats, cleanProgress, cleanProgressSizeStr, startScan, startClean, reset } = useFastClean(
props.showAlert,
props.requestConfirm,
);
@@ -35,24 +35,28 @@ const { state, selectedStats, startScan, startClean, reset } = useFastClean(
<div v-else-if="state.scanResult && !state.isDone" class="result-card">
<div class="result-header">
<span class="result-icon">📋</span>
<h2>扫描完成</h2>
<span class="result-icon">{{ state.isCleaning ? "🧹" : "📋" }}</span>
<h2>{{ state.isCleaning ? "正在清理" : "扫描完成" }}</h2>
</div>
<div class="result-stats">
<div class="stat-item">
<span class="stat-value">
{{ splitSize(selectedStats.sizeStr).value }}
<span class="unit">{{ splitSize(selectedStats.sizeStr).unit }}</span>
{{ splitSize(state.isCleaning ? cleanProgressSizeStr : selectedStats.sizeStr).value }}
<span class="unit">{{ splitSize(state.isCleaning ? cleanProgressSizeStr : selectedStats.sizeStr).unit }}</span>
</span>
<span class="stat-label">预计释放</span>
<span class="stat-label">{{ state.isCleaning ? "已处理约" : "预计释放" }}</span>
</div>
<div class="stat-divider"></div>
<div class="stat-item">
<span class="stat-value">{{ selectedStats.count }}</span>
<span class="stat-label">文件数量</span>
<span class="stat-value">{{ state.isCleaning ? `${cleanProgress.completedItems}/${cleanProgress.totalItems}` : selectedStats.count }}</span>
<span class="stat-label">{{ state.isCleaning ? "已完成项目" : "文件数量" }}</span>
</div>
</div>
<p v-if="state.isCleaning" class="cleaning-note">
正在清理{{ cleanProgress.currentItem || "准备开始..." }}请稍候不要关闭程序
</p>
<button class="btn-primary main-btn" :disabled="state.isCleaning || !selectedStats.hasSelection" @click="startClean">
{{ state.isCleaning ? "正在清理..." : "立即清理" }}
</button>
@@ -87,7 +91,7 @@ const { state, selectedStats, startScan, startClean, reset } = useFastClean(
</div>
</div>
<div v-if="(state.isScanning || state.scanResult) && !state.isDone" class="detail-list">
<div v-if="(state.isScanning || state.scanResult) && !state.isDone && !state.isCleaning" class="detail-list">
<h3>清理项详情</h3>
<div
v-for="item in state.scanResult?.items || []"