refactor: v2

backend & frontend
This commit is contained in:
2026-01-01 18:38:21 +08:00
parent 3d201bc497
commit fdc725b893
109 changed files with 22918 additions and 1135 deletions
+162
View File
@@ -0,0 +1,162 @@
import { defineStore } from 'pinia'
import { templateAPI } from '@/api'
export const useTemplateStore = defineStore('template', {
state: () => ({
templates: [],
currentTemplate: null,
loading: false,
error: null,
}),
getters: {
activeTemplates: (state) => state.templates.filter((t) => t.is_active),
getTemplateById: (state) => (id) => {
return state.templates.find((t) => t.id === id)
},
},
actions: {
async fetchTemplates(isActive = null) {
this.loading = true
this.error = null
try {
const params = {}
if (isActive !== null) {
params.is_active = isActive
}
this.templates = await templateAPI.getTemplates(params)
return this.templates
} catch (error) {
this.error = error.message || '获取模板列表失败'
throw error
} finally {
this.loading = false
}
},
async fetchActiveTemplates() {
this.loading = true
this.error = null
try {
this.templates = await templateAPI.getActiveTemplates()
return this.templates
} catch (error) {
this.error = error.message || '获取启用模板失败'
throw error
} finally {
this.loading = false
}
},
async fetchTemplate(id) {
this.loading = true
this.error = null
try {
this.currentTemplate = await templateAPI.getTemplate(id)
return this.currentTemplate
} catch (error) {
this.error = error.message || '获取模板详情失败'
throw error
} finally {
this.loading = false
}
},
async previewTemplate(id) {
this.loading = true
this.error = null
try {
const preview = await templateAPI.previewTemplate(id)
return preview
} catch (error) {
this.error = error.message || '预览模板失败'
throw error
} finally {
this.loading = false
}
},
async createTemplate(templateData) {
this.loading = true
this.error = null
try {
const newTemplate = await templateAPI.createTemplate(templateData)
this.templates.unshift(newTemplate)
return newTemplate
} catch (error) {
this.error = error.message || '创建模板失败'
throw error
} finally {
this.loading = false
}
},
async updateTemplate(id, templateData) {
this.loading = true
this.error = null
try {
const updatedTemplate = await templateAPI.updateTemplate(id, templateData)
const index = this.templates.findIndex((t) => t.id === id)
if (index !== -1) {
this.templates[index] = updatedTemplate
}
if (this.currentTemplate && this.currentTemplate.id === id) {
this.currentTemplate = updatedTemplate
}
return updatedTemplate
} catch (error) {
this.error = error.message || '更新模板失败'
throw error
} finally {
this.loading = false
}
},
async deleteTemplate(id) {
this.loading = true
this.error = null
try {
await templateAPI.deleteTemplate(id)
this.templates = this.templates.filter((t) => t.id !== id)
if (this.currentTemplate && this.currentTemplate.id === id) {
this.currentTemplate = null
}
return true
} catch (error) {
this.error = error.message || '删除模板失败'
throw error
} finally {
this.loading = false
}
},
async createTaskFromTemplate(templateId, threadId, fieldValues, taskName = null) {
this.loading = true
this.error = null
try {
const task = await templateAPI.createTaskFromTemplate({
template_id: templateId,
thread_id: threadId,
field_values: fieldValues,
task_name: taskName,
})
return task
} catch (error) {
this.error = error.message || '从模板创建任务失败'
throw error
} finally {
this.loading = false
}
},
clearCurrentTemplate() {
this.currentTemplate = null
},
clearError() {
this.error = null
},
},
})