feat(Scripts): 添加通用脚本创建方式选择和模板导入功能

This commit is contained in:
2025-09-01 01:06:18 +08:00
parent 7575909bad
commit f41f066abc
2 changed files with 1049 additions and 59 deletions

View File

@@ -0,0 +1,91 @@
import { ref } from 'vue'
import { message } from 'ant-design-vue'
import { Service } from '@/api'
export interface WebConfigTemplate {
configName: string
description: string
author: string
createTime: string
downloadUrl: string
}
export interface WebConfigResponse {
code: number
status: string
message: string
data: {
WebConfig: WebConfigTemplate[]
}
}
export function useTemplateApi() {
const loading = ref(false)
const error = ref<string | null>(null)
// 获取Web配置模板列表
const getWebConfigTemplates = async (): Promise<WebConfigTemplate[]> => {
loading.value = true
error.value = null
try {
const response = await Service.getWebConfigApiInfoWebconfigPost()
if (response.code !== 200) {
const errorMsg = response.message || '获取模板列表失败'
message.error(errorMsg)
throw new Error(errorMsg)
}
// 直接返回API响应中的WebConfig数组
return (response.data as any).WebConfig || []
} catch (err) {
const errorMsg = err instanceof Error ? err.message : '获取模板列表失败'
error.value = errorMsg
if (!err.message?.includes('HTTP error')) {
message.error(errorMsg)
}
return []
} finally {
loading.value = false
}
}
// 从Web导入脚本配置
const importScriptFromWeb = async (scriptId: string, url: string): Promise<boolean> => {
loading.value = true
error.value = null
try {
const response = await Service.importScriptFromWebApiScriptsImportWebPost({
scriptId,
url
})
if (response.code !== 200) {
const errorMsg = response.message || '导入配置失败'
message.error(errorMsg)
throw new Error(errorMsg)
}
message.success(response.message || '导入配置成功')
return true
} catch (err) {
const errorMsg = err instanceof Error ? err.message : '导入配置失败'
error.value = errorMsg
if (!err.message?.includes('HTTP error')) {
message.error(errorMsg)
}
return false
} finally {
loading.value = false
}
}
return {
loading,
error,
getWebConfigTemplates,
importScriptFromWeb
}
}

File diff suppressed because it is too large Load Diff