优化: 切换视图时自动刷新数据,解决切换存储方式后需要手动刷新的问题

问题描述:
- 用户在设置页面切换存储方式(本地 ↔ SFTP)
- 点击导航栏回到"我的文件"页面
- 文件列表不会自动刷新,显示的还是旧存储方式的文件
- 需要手动刷新浏览器才能看到新存储方式的文件

解决方案:
1. 新增 switchView(view) 方法统一管理视图切换
   - 切换到 files 视图:自动加载文件列表
   - 切换到 shares 视图:自动加载分享列表
   - 切换到 admin 视图:自动加载用户列表和存储统计
   - 切换到 settings 视图:无需加载数据
   - 防止重复切换:如果已在当前视图则跳过

2. 修改导航栏点击事件
   - 从 @click="currentView = 'xxx'"
   - 改为 @click="switchView('xxx')"
   - 应用到所有4个导航按钮

改进效果:
 用户切换存储方式后,点击"我的文件"立即看到新数据
 所有视图切换都会自动刷新对应数据
 提升用户体验,无需手动刷新页面

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
WanWanYun
2025-11-12 15:43:03 +08:00
parent 0dc2ac9188
commit 1e19b41f48
2 changed files with 36 additions and 4 deletions

View File

@@ -1573,6 +1573,38 @@ handleDragLeave(e) {
}
},
// 切换视图并自动刷新数据
switchView(view) {
// 如果已经在当前视图,不重复刷新
if (this.currentView === view) {
return;
}
this.currentView = view;
// 根据视图类型自动加载对应数据
switch (view) {
case 'files':
// 切换到文件视图时,重新加载文件列表
this.loadFiles(this.currentPath);
break;
case 'shares':
// 切换到分享视图时,重新加载分享列表
this.loadShares();
break;
case 'admin':
// 切换到管理后台时,重新加载用户列表
if (this.user && this.user.is_admin) {
this.loadUsers();
this.loadServerStorageStats();
}
break;
case 'settings':
// 设置页面不需要额外加载数据
break;
}
},
// 管理员:打开编辑用户存储权限模态框
openEditStorageModal(user) {
this.editStorageForm.userId = user.id;