修复注册表导出失败的问题

This commit is contained in:
2025-10-13 12:41:31 +08:00
parent 8de12dbcfc
commit f274fc4b00
3 changed files with 36 additions and 7 deletions
+4 -1
View File
@@ -470,7 +470,10 @@ router.get('/registry/export', async (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Disposition', 'attachment; filename="database-registry.json"');
res.json(registryData);
res.json({
success: true,
data: registryData
});
} catch (error) {
logger.error('导出数据库注册表失败:', error);
+4 -1
View File
@@ -1005,7 +1005,10 @@ router.get('/registry/export', async (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Disposition', 'attachment; filename="download-registry.json"');
res.json(registryData);
res.json({
success: true,
data: registryData
});
} catch (error) {
logger.error('导出下载注册表失败:', error);
res.status(500).json({
+27 -4
View File
@@ -414,9 +414,22 @@ const refreshStats = async () => {
// 导出注册表
const exportRegistry = async () => {
const result = await registryStore.exportRegistry();
const useDatabase = storageMode.value === 'database';
const result = await registryStore.exportRegistry(useDatabase);
if (result.success) {
showSuccess('注册表导出成功');
const modeText = useDatabase ? '数据库' : 'JSON文件';
showSuccess(`注册表导出成功(${modeText}模式)`);
// 创建下载链接
const blob = new Blob([JSON.stringify(result.data, null, 2)], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = useDatabase ? 'database-registry.json' : 'download-registry.json';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
};
@@ -426,9 +439,19 @@ const handleFileImport = async (event: Event) => {
const file = target.files?.[0];
if (!file) return;
const result = await registryStore.importRegistry(file);
try {
// 读取文件内容
const fileContent = await file.text();
const registryData = JSON.parse(fileContent);
const useDatabase = storageMode.value === 'database';
const result = await registryStore.importRegistry(registryData, useDatabase);
if (result.success) {
showSuccess(`注册表导入成功,处理了 ${result.data?.imported || 0} 条记录`);
const modeText = useDatabase ? '数据库' : 'JSON文件';
showSuccess(`注册表导入成功(${modeText}模式),处理了 ${result.data?.imported || result.data?.addedArtworks || 0} 条记录`);
}
} catch (error: any) {
showError(`导入失败: ${error.message}`);
}
// 清空文件输入