📝 重写 README 文档 & 优化前端功能

文档更新:
- 完全重写 README.md,更加详细和专业
- 添加一键部署命令(curl 和 wget 两种方式)
- 详细介绍双存储模式、邮件系统、安全防护等特性
- 添加完整的使用指南和常见问题解答
- 更新项目结构和技术栈说明
- 添加版本更新日志

前端优化:
- 优化存储管理界面交互
- 改进文件管理功能

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-24 19:21:39 +08:00
parent 02f0f3aa24
commit db520f931e
3 changed files with 403 additions and 160 deletions

View File

@@ -1102,6 +1102,22 @@
</div>
</div>
<!-- SFTP 配置引导弹窗 -->
<div v-if="showSftpGuideModal" class="modal-overlay" @mousedown.self="handleModalMouseDown" @mouseup.self="handleModalMouseUp('showSftpGuideModal')">
<div class="modal-content" @click.stop>
<h3 style="margin-bottom: 10px;">切换到 SFTP 存储</h3>
<p style="color: #555; line-height: 1.6; margin-bottom: 16px;">
需要先填写 SFTP 连接信息才能使用 SFTP 存储。是否前往配置?
</p>
<div style="display: flex; gap: 10px; justify-content: flex-end;">
<button class="btn btn-secondary" @click="closeSftpGuideModal">稍后再说</button>
<button class="btn btn-primary" @click="proceedSftpGuide">
<i class="fas fa-tools"></i> 去配置 SFTP
</button>
</div>
</div>
</div>
<!-- 设置视图 -->
<div v-if="isLoggedIn && currentView === 'settings'" class="main-container">
<div class="card">

View File

@@ -214,7 +214,10 @@ createApp({
// 存储切换状态
storageSwitching: false,
storageSwitchTarget: null
storageSwitchTarget: null,
// SFTP配置引导弹窗
showSftpGuideModal: false
};
},
@@ -1843,20 +1846,9 @@ handleDragLeave(e) {
return;
}
// 切到SFTP但还未配置引导去配置
// 切到SFTP但还未配置引导弹窗
if (type === 'sftp' && (!this.user?.has_ftp_config)) {
this.showToast('info', '需要配置SFTP', '请先填写SFTP信息再切换');
this.currentView = 'settings';
this.forceSftpConfigVisible = true;
if (this.user && !this.user.is_admin) {
this.loadFtpConfig();
}
this.$nextTick(() => {
const sftpSection = document.getElementById('sftp-config-section');
if (sftpSection) {
sftpSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
this.showSftpGuideModal = true;
return;
}
@@ -1888,6 +1880,33 @@ handleDragLeave(e) {
}
},
ensureSftpConfigSection() {
this.currentView = 'settings';
this.forceSftpConfigVisible = true;
if (this.user && !this.user.is_admin) {
this.loadFtpConfig();
}
this.$nextTick(() => {
const sftpSection = document.getElementById('sftp-config-section');
if (sftpSection) {
sftpSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
},
openSftpGuideModal() {
this.showSftpGuideModal = true;
},
closeSftpGuideModal() {
this.showSftpGuideModal = false;
},
proceedSftpGuide() {
this.showSftpGuideModal = false;
this.ensureSftpConfigSection();
},
// 切换视图并自动刷新数据
switchView(view) {
// 如果已经在当前视图,不重复刷新