前端优化

This commit is contained in:
2025-11-22 18:30:02 +08:00
parent 307c90f93e
commit fee84ce822
8 changed files with 198 additions and 167 deletions

View File

@@ -32,7 +32,6 @@ const editForm = reactive({
content: '',
category: '',
status: 1,
_originalRecord: null, // 保存原始记录,用于更新时获取必需字段
})
const editFormRef = ref(null)
@@ -173,12 +172,7 @@ function handleReset() {
// 新增
function handleAdd() {
editForm.id = null
editForm.name = ''
editForm.content = ''
editForm.category = ''
editForm.status = 1
editForm._originalRecord = null
resetEditForm()
editModalVisible.value = true
}
@@ -188,62 +182,72 @@ function handleEdit(record) {
editForm.name = record.name || ''
editForm.content = record.content || ''
editForm.category = record.category || ''
editForm.status = record.status ?? 1
// 保存原始记录的完整信息,用于更新时传递必需字段
editForm._originalRecord = record
editForm.status = record.status !== null && record.status !== undefined ? record.status : 1
editModalVisible.value = true
}
// 表单重置
function resetEditForm() {
editForm.id = null
editForm.name = ''
editForm.content = ''
editForm.category = ''
editForm.status = 1
}
// 通用API调用
async function apiCall(apiFunc, param, successMessage, isDelete = false) {
loading.value = true
try {
const response = await apiFunc(param)
if (response && (response.code === 0 || response.code === 200)) {
message.success(successMessage)
if (!isDelete) {
editModalVisible.value = false
}
loadData()
return true
} else {
throw new Error(response?.msg || response?.message || '操作失败')
}
} catch (error) {
console.error('API调用失败:', error)
message.error(error?.message || '操作失败,请稍后重试')
return false
} finally {
loading.value = false
}
}
// 保存(新增/编辑)
async function handleSave() {
try {
await editFormRef.value.validate()
} catch (error) {
console.error('保存提示词失败:', error)
console.error('表单验证失败:', error)
return
}
loading.value = true
try {
const payload = {
name: editForm.name.trim(),
content: editForm.content.trim(),
category: editForm.category.trim() || null,
status: editForm.status,
}
const payload = {
name: editForm.name.trim(),
content: editForm.content.trim(),
category: editForm.category.trim() || null,
status: editForm.status,
}
if (editForm.id) {
// 更新:只需要传递要修改的字段,后端会自动填充其他字段
payload.id = editForm.id
// 注意sort、useCount、isPublic 等字段后端会自动从数据库获取,无需前端传递
const response = await UserPromptApi.updateUserPrompt(payload)
if (response && (response.code === 0 || response.code === 200)) {
message.success('更新成功')
editModalVisible.value = false
loadData()
} else {
throw new Error(response?.msg || response?.message || '更新失败')
}
} else {
// 新增:需要包含所有必需字段
payload.sort = 0
payload.useCount = 0
payload.isPublic = false
const response = await UserPromptApi.createUserPrompt(payload)
if (response && (response.code === 0 || response.code === 200)) {
message.success('创建成功')
editModalVisible.value = false
loadData()
} else {
throw new Error(response?.msg || response?.message || '创建失败')
}
}
} catch (error) {
console.error('保存提示词失败:', error)
message.error(error?.message || '保存失败,请稍后重试')
} finally {
loading.value = false
if (editForm.id) {
payload.id = editForm.id
await apiCall(
(data) => UserPromptApi.updateUserPrompt(data),
payload,
'更新成功'
)
} else {
await apiCall(
(data) => UserPromptApi.createUserPrompt(data),
payload,
'创建成功'
)
}
}
@@ -253,21 +257,12 @@ function handleDelete(record) {
title: '确认删除',
content: `确定要删除提示词"${record.name}"吗?`,
onOk: async () => {
loading.value = true
try {
const response = await UserPromptApi.deleteUserPrompt(record.id)
if (response && (response.code === 0 || response.code === 200)) {
message.success('删除成功')
loadData()
} else {
throw new Error(response?.msg || response?.message || '删除失败')
}
} catch (error) {
console.error('删除提示词失败:', error)
message.error(error?.message || '删除失败,请稍后重试')
} finally {
loading.value = false
}
await apiCall(
(id) => UserPromptApi.deleteUserPrompt(id),
record.id,
'删除成功',
true
)
},
})
}