feat(background): 添加删除应用功能

- 添加DELETE /apps/:id API端点用于删除指定应用
- 实现deleteApp函数,支持文件和数据的完整删除
- 在getApps函数中增加文件存在性验证,自动清理无效应用记录
- 优化appsMutex使用,确保并发安全的数据操作
- 添加文件路径验证和错误处理机制

feat(frontend): 实现前端删除应用交互功能

- 将deleteApp函数改为异步处理,支持API调用
- 添加确认对话框提升用户体验
- 实现DELETE请求发送和响应处理
- 添加错误处理和用户反馈提示
- 删除成功后自动刷新应用列表
```
This commit is contained in:
2026-01-07 00:05:16 +08:00
parent 20ccfbc205
commit 8240d8cf94
2 changed files with 110 additions and 5 deletions

View File

@@ -238,11 +238,39 @@ async function uploadApp() {
}
// 删除App函数
function deleteApp(appId) {
// 显示确认对话框,包含特殊问题验证
if (!confirm('如果确定删除此APP,请将矩阵 A = [[3,1,0],[1,2,1],[0,1,1]]的特征值、特征向量并验证A是正定矩阵的解题步骤做出来然后我也没做')) {
async function deleteApp(appId) {
// 显示确认对话框
if (!confirm('确定删除这个应用吗?此操作不可撤销!')) {
return;
}
try {
// 发送DELETE请求删除App
const response = await fetch(`${API_BASE_URL}/apps/${appId}`, {
method: 'DELETE',
headers: {
'Accept': 'application/json'
}
});
// 检查响应状态
if (!response.ok) {
throw new Error(`HTTP错误状态${response.status}`);
}
const result = await response.json(); // 解析响应数据
// 处理删除结果
if (result.success) {
alert('删除成功!');
loadAppList(); // 重新加载App列表
} else {
alert('删除失败:' + (result.message || '未知错误'));
}
} catch (error) {
console.error('删除失败:', error);
alert('删除失败:' + error.message);
}
}
// 下载App函数