Compare commits

..

3 Commits

Author SHA1 Message Date
Julian Freeman
40d7b5af91 little optimize 2026-03-13 19:29:10 -04:00
Julian Freeman
26ca5273d2 add visual hints on advanced 2026-03-13 17:07:19 -04:00
Julian Freeman
14b9acafdf change some desc 2026-03-13 16:49:36 -04:00
2 changed files with 55 additions and 23 deletions

View File

@@ -559,9 +559,6 @@ pub async fn run_deep_memory_clean() -> Result<u64, String> {
SetSystemFileCacheSize(usize::MAX, usize::MAX, 0); SetSystemFileCacheSize(usize::MAX, usize::MAX, 0);
} }
// 配合普通清理一起执行
let _ = run_memory_clean().await;
let after = get_memory_stats().used; let after = get_memory_stats().used;
let freed = before.saturating_sub(after); let freed = before.saturating_sub(after);
Ok(freed) Ok(freed)

View File

@@ -455,7 +455,7 @@ watch(activeTab, (newTab) => {
:class="{ active: activeTab === 'clean-c-deep' }" :class="{ active: activeTab === 'clean-c-deep' }"
@click="activeTab = 'clean-c-deep'" @click="activeTab = 'clean-c-deep'"
> >
深度分析 查找大目录
</div> </div>
</div> </div>
</div> </div>
@@ -511,8 +511,8 @@ watch(activeTab, (newTab) => {
<section v-if="activeTab === 'clean-c-fast'" class="page-container"> <section v-if="activeTab === 'clean-c-fast'" class="page-container">
<div class="page-header"> <div class="page-header">
<div class="header-info"> <div class="header-info">
<h1>快速清理系统盘</h1> <h1>清理系统盘</h1>
<p>一键释放 C 空间不影响系统运行</p> <p>快速清理 C 缓存不影响系统运行</p>
</div> </div>
</div> </div>
@@ -614,7 +614,7 @@ watch(activeTab, (newTab) => {
<div class="page-header"> <div class="page-header">
<div class="header-info"> <div class="header-info">
<h1>高级清理工具</h1> <h1>高级清理工具</h1>
<p>执行深层系统优化释放更多磁盘空间</p> <p>针对特定系统区域执行清理但都有注意事项和副作用在不理解的情况下慎点</p>
</div> </div>
</div> </div>
@@ -625,14 +625,19 @@ watch(activeTab, (newTab) => {
<div class="adv-card-info"> <div class="adv-card-info">
<span class="adv-card-icon"></span> <span class="adv-card-icon"></span>
<div class="adv-card-text"> <div class="adv-card-text">
<h3>系统组件清理</h3> <h3>系统组件清理 <small class="detail-hint">(点击查看详情)</small></h3>
<p>通过 DISM 命令移除不再需要的系统冗余组件</p> <p>通过 DISM 命令移除不再需要的系统冗余组件</p>
</div> </div>
</div> </div>
<div class="adv-card-right">
<span class="expand-icon" :class="{ rotated: expandedAdvanced === 'dism' }">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
</span>
<button class="btn-action" @click.stop="runAdvancedTask('dism')" :disabled="advLoading['dism']"> <button class="btn-action" @click.stop="runAdvancedTask('dism')" :disabled="advLoading['dism']">
{{ advLoading['dism'] ? '执行中...' : '执行' }} {{ advLoading['dism'] ? '执行中...' : '执行' }}
</button> </button>
</div> </div>
</div>
<div class="adv-card-detail" v-show="expandedAdvanced === 'dism'"> <div class="adv-card-detail" v-show="expandedAdvanced === 'dism'">
<div class="detail-content"> <div class="detail-content">
<h4>详细信息</h4> <h4>详细信息</h4>
@@ -653,12 +658,17 @@ watch(activeTab, (newTab) => {
<div class="adv-card-info"> <div class="adv-card-info">
<span class="adv-card-icon">🖼</span> <span class="adv-card-icon">🖼</span>
<div class="adv-card-text"> <div class="adv-card-text">
<h3>清理缩略图缓存</h3> <h3>清理缩略图缓存 <small class="detail-hint">(点击查看详情)</small></h3>
<p>重置文件夹预览缩略图数据库以释放空间</p> <p>重置文件夹预览缩略图数据库以释放空间</p>
</div> </div>
</div> </div>
<div class="adv-card-right">
<span class="expand-icon" :class="{ rotated: expandedAdvanced === 'thumb' }">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
</span>
<button class="btn-action" @click.stop="runAdvancedTask('thumb')" :disabled="advLoading['thumb']">执行</button> <button class="btn-action" @click.stop="runAdvancedTask('thumb')" :disabled="advLoading['thumb']">执行</button>
</div> </div>
</div>
<div class="adv-card-detail" v-show="expandedAdvanced === 'thumb'"> <div class="adv-card-detail" v-show="expandedAdvanced === 'thumb'">
<div class="detail-content"> <div class="detail-content">
<h4>详细信息</h4> <h4>详细信息</h4>
@@ -678,12 +688,17 @@ watch(activeTab, (newTab) => {
<div class="adv-card-info"> <div class="adv-card-info">
<span class="adv-card-icon">🌙</span> <span class="adv-card-icon">🌙</span>
<div class="adv-card-text"> <div class="adv-card-text">
<h3>关闭休眠文件</h3> <h3>关闭休眠文件 <small class="detail-hint">(点击查看详情)</small></h3>
<p>永久删除 hiberfil.sys 文件大小等同于内存</p> <p>永久删除 hiberfil.sys 文件大小等同于内存</p>
</div> </div>
</div> </div>
<div class="adv-card-right">
<span class="expand-icon" :class="{ rotated: expandedAdvanced === 'hiber' }">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
</span>
<button class="btn-action" @click.stop="runAdvancedTask('hiber')" :disabled="advLoading['hiber']">执行</button> <button class="btn-action" @click.stop="runAdvancedTask('hiber')" :disabled="advLoading['hiber']">执行</button>
</div> </div>
</div>
<div class="adv-card-detail" v-show="expandedAdvanced === 'hiber'"> <div class="adv-card-detail" v-show="expandedAdvanced === 'hiber'">
<div class="detail-content"> <div class="detail-content">
<h4>详细信息</h4> <h4>详细信息</h4>
@@ -691,6 +706,7 @@ watch(activeTab, (newTab) => {
<h4 class="warning-title">注意事项</h4> <h4 class="warning-title">注意事项</h4>
<ul> <ul>
<li>关闭后将无法使用休眠功能及快速启动技术</li> <li>关闭后将无法使用休眠功能及快速启动技术</li>
<li>只需执行一次</li>
<li>需要管理员权限</li> <li>需要管理员权限</li>
</ul> </ul>
</div> </div>
@@ -704,7 +720,7 @@ watch(activeTab, (newTab) => {
<div class="page-header"> <div class="page-header">
<div class="header-info"> <div class="header-info">
<h1>清理{{ activeTab === 'clean-browser-chrome' ? '谷歌浏览器' : '微软浏览器' }}</h1> <h1>清理{{ activeTab === 'clean-browser-chrome' ? '谷歌浏览器' : '微软浏览器' }}</h1>
<p>安全清理浏览器缓存临时文件释放磁盘空间</p> <p>安全清理浏览器缓存临时文件不会删除账号</p>
</div> </div>
</div> </div>
@@ -870,7 +886,7 @@ watch(activeTab, (newTab) => {
<div class="page-header"> <div class="page-header">
<div class="header-info"> <div class="header-info">
<h1>查找大目录</h1> <h1>查找大目录</h1>
<p>层级化查看 C 占用锁定空间大户</p> <p>查看 C 目录大小适合技术人员细节分析空间占用情况</p>
</div> </div>
<div class="header-actions"> <div class="header-actions">
<button class="btn-primary btn-sm" @click="startFullDiskScan" :disabled="isFullScanning"> <button class="btn-primary btn-sm" @click="startFullDiskScan" :disabled="isFullScanning">
@@ -883,7 +899,7 @@ watch(activeTab, (newTab) => {
<div v-if="isFullScanning" class="scanning-overlay"> <div v-if="isFullScanning" class="scanning-overlay">
<div class="spinner"></div> <div class="spinner"></div>
<div class="scanning-status"> <div class="scanning-status">
<p class="scanning-main-text">正在扫描盘文件...</p> <p class="scanning-main-text">正在扫描 C 盘文件...</p>
<div class="scanning-stats-row"> <div class="scanning-stats-row">
<span class="stat-badge">已扫描{{ fullScanProgress.fileCount.toLocaleString() }} 个文件</span> <span class="stat-badge">已扫描{{ fullScanProgress.fileCount.toLocaleString() }} 个文件</span>
</div> </div>
@@ -934,8 +950,8 @@ watch(activeTab, (newTab) => {
<section v-else-if="activeTab === 'clean-memory'" class="page-container memory-page-spread"> <section v-else-if="activeTab === 'clean-memory'" class="page-container memory-page-spread">
<div class="page-header"> <div class="page-header">
<div class="header-info"> <div class="header-info">
<h1>内存加速</h1> <h1>清理内存</h1>
<p>通过压缩进程工作集释放物理内存占用</p> <p>释放内存占用不影响程序运行释放内存后重新打开之前的软件会感到略微卡顿</p>
</div> </div>
</div> </div>
@@ -978,7 +994,7 @@ watch(activeTab, (newTab) => {
<div class="action-card shadow-card" :class="{ cleaning: memoryState.isCleaning }"> <div class="action-card shadow-card" :class="{ cleaning: memoryState.isCleaning }">
<div class="action-info"> <div class="action-info">
<h3>普通加速</h3> <h3>普通加速</h3>
<p>压缩所有进程的内存工作集释放物理内存不影响程序运行</p> <p>建议在需要开启更多软件但内存占用居高不下时使用</p>
</div> </div>
<button class="btn-primary" @click="startMemoryClean(false)" :disabled="memoryState.isCleaning"> <button class="btn-primary" @click="startMemoryClean(false)" :disabled="memoryState.isCleaning">
{{ memoryState.cleaningType === 'fast' ? '清理中...' : '立即加速' }} {{ memoryState.cleaningType === 'fast' ? '清理中...' : '立即加速' }}
@@ -988,7 +1004,7 @@ watch(activeTab, (newTab) => {
<div class="action-card shadow-card secondary" :class="{ cleaning: memoryState.isCleaning }"> <div class="action-card shadow-card secondary" :class="{ cleaning: memoryState.isCleaning }">
<div class="action-info"> <div class="action-info">
<h3>深度加速</h3> <h3>深度加速</h3>
<p>强制清空系统备用列表待机列表释放更多被缓存的物理空间</p> <p>可以在长时间使用电脑后感觉电脑有点卡顿时执行</p>
</div> </div>
<button class="btn-secondary" @click="startMemoryClean(true)" :disabled="memoryState.isCleaning"> <button class="btn-secondary" @click="startMemoryClean(true)" :disabled="memoryState.isCleaning">
{{ memoryState.cleaningType === 'deep' ? '清理中...' : '深度加速' }} {{ memoryState.cleaningType === 'deep' ? '清理中...' : '深度加速' }}
@@ -1363,9 +1379,24 @@ body {
.adv-card-info { display: flex; align-items: center; gap: 24px; } .adv-card-info { display: flex; align-items: center; gap: 24px; }
.adv-card-icon { font-size: 32px; } .adv-card-icon { font-size: 32px; }
.adv-card-text h3 { font-size: 18px; margin-bottom: 4px; font-weight: 700; color: var(--text-main); } .adv-card-text h3 { font-size: 18px; margin-bottom: 4px; font-weight: 700; color: var(--text-main); display: flex; align-items: center; gap: 8px; }
.adv-card-text p { color: var(--text-sec); font-size: 14px; } .adv-card-text p { color: var(--text-sec); font-size: 14px; }
.detail-hint { font-size: 12px; color: var(--text-sec); font-weight: 400; opacity: 0.7; }
.adv-card-right { display: flex; align-items: center; gap: 16px; }
.expand-icon {
width: 32px; height: 32px;
display: flex; align-items: center; justify-content: center;
color: #C1C1C1;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 50%;
background: #F8F9FA;
}
.expand-icon svg { width: 18px; height: 18px; }
.expand-icon.rotated { transform: rotate(180deg); background: #EBF4FF; color: var(--primary-color); }
.btn-action { .btn-action {
background-color: #F2F2F7; background-color: #F2F2F7;
color: var(--primary-color); color: var(--primary-color);
@@ -1790,6 +1821,10 @@ body {
box-shadow: none; box-shadow: none;
} }
.action-info {
flex: 1;
}
.action-info h3 { .action-info h3 {
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;