/** * API操作模块 * @type {module} */ /** * 加载模型文件列表 * @returns {Promise} 模型文件数组 */ export async function loadModelFiles() { try { const response = await fetch('/api/model-files'); if (!response.ok) { throw new Error(`服务器响应错误: ${response.status}`); } return await response.json(); } catch (error) { console.error('加载模型文件失败:', error); throw error; } } /** * 加载文件内容 * @param {string} filePath - 文件路径 * @returns {Promise} 文件内容 */ export async function loadFileContent(filePath) { try { const response = await fetch(`/api/model-file-content?path=${encodeURIComponent(filePath)}`); if (!response.ok) { throw new Error(`服务器响应错误: ${response.status}`); } return await response.text(); } catch (error) { console.error('加载文件内容失败:', error); throw error; } } /** * 保存文件内容 * @param {string} filePath - 文件路径 * @param {string} content - 文件内容 * @returns {Promise} 保存结果 */ export async function saveFileContent(filePath, content) { try { const response = await fetch('/api/save-model-file', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ path: filePath, content: content }) }); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `保存失败: ${response.status}`); } return await response.json(); } catch (error) { console.error('保存文件失败:', error); throw error; } } /** * 创建新的模型配置文件 * @param {string} fileName - 文件名 * @param {boolean} overwrite - 是否覆盖现有文件 * @returns {Promise} 创建结果 */ export async function createNewConfig(fileName, overwrite = false) { try { const response = await fetch('/api/create-model-file', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ fileName, overwrite }) }); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `创建失败: ${response.status}`); } return await response.json(); } catch (error) { console.error('创建新配置文件失败:', error); throw error; } } /** * 另存为新文件 * @param {string} fileName - 文件名 * @param {string} content - 文件内容 * @param {string} currentFile - 当前文件路径 * @param {boolean} overwrite - 是否覆盖现有文件 * @returns {Promise} 保存结果 */ export async function saveFileAs(fileName, content, currentFile, overwrite = false) { try { const response = await fetch('/api/save-model-as', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ fileName, content, currentFile, overwrite }) }); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `保存失败: ${response.status}`); } return await response.json(); } catch (error) { console.error('另存为失败:', error); throw error; } }