feat: 添加分类名称更新功能,支持在交易记录中同步更新分类名称
This commit is contained in:
@@ -41,7 +41,11 @@
|
||||
|
||||
<van-cell-group v-else inset>
|
||||
<van-swipe-cell v-for="category in categories" :key="category.id">
|
||||
<van-cell :title="category.name" />
|
||||
<van-cell
|
||||
:title="category.name"
|
||||
is-link
|
||||
@click="handleEdit(category)"
|
||||
/>
|
||||
<template #right>
|
||||
<van-button
|
||||
square
|
||||
@@ -85,6 +89,24 @@
|
||||
</van-form>
|
||||
</van-dialog>
|
||||
|
||||
<!-- 编辑分类对话框 -->
|
||||
<van-dialog
|
||||
v-model:show="showEditDialog"
|
||||
title="编辑分类"
|
||||
show-cancel-button
|
||||
@confirm="handleConfirmEdit"
|
||||
>
|
||||
<van-form ref="editFormRef">
|
||||
<van-field
|
||||
v-model="editForm.name"
|
||||
name="name"
|
||||
label="分类名称"
|
||||
placeholder="请输入分类名称"
|
||||
:rules="[{ required: true, message: '请输入分类名称' }]"
|
||||
/>
|
||||
</van-form>
|
||||
</van-dialog>
|
||||
|
||||
<!-- 删除确认对话框 -->
|
||||
<van-dialog
|
||||
v-model:show="showDeleteConfirm"
|
||||
@@ -108,7 +130,8 @@ import {
|
||||
import {
|
||||
getCategoryList,
|
||||
createCategory,
|
||||
deleteCategory
|
||||
deleteCategory,
|
||||
updateCategory
|
||||
} from '@/api/transactionCategory'
|
||||
|
||||
const router = useRouter()
|
||||
@@ -142,6 +165,14 @@ const addForm = ref({
|
||||
const showDeleteConfirm = ref(false)
|
||||
const deleteTarget = ref(null)
|
||||
|
||||
// 编辑对话框
|
||||
const showEditDialog = ref(false)
|
||||
const editFormRef = ref(null)
|
||||
const editForm = ref({
|
||||
id: 0,
|
||||
name: ''
|
||||
})
|
||||
|
||||
// 计算导航栏标题
|
||||
const navTitle = computed(() => {
|
||||
if (currentLevel.value === 0) {
|
||||
@@ -251,6 +282,50 @@ const handleConfirmAdd = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑分类
|
||||
*/
|
||||
const handleEdit = (category) => {
|
||||
editForm.value = {
|
||||
id: category.id,
|
||||
name: category.name
|
||||
}
|
||||
showEditDialog.value = true
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认编辑
|
||||
*/
|
||||
const handleConfirmEdit = async () => {
|
||||
try {
|
||||
await editFormRef.value?.validate()
|
||||
|
||||
showLoadingToast({
|
||||
message: '保存中...',
|
||||
forbidClick: true,
|
||||
duration: 0
|
||||
})
|
||||
|
||||
const { success, message } = await updateCategory({
|
||||
id: editForm.value.id,
|
||||
name: editForm.value.name
|
||||
})
|
||||
|
||||
if (success) {
|
||||
showSuccessToast('保存成功')
|
||||
showEditDialog.value = false
|
||||
await loadCategories()
|
||||
} else {
|
||||
showToast(message || '保存失败')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('保存失败:', error)
|
||||
showToast('保存失败: ' + (error.message || '未知错误'))
|
||||
} finally {
|
||||
closeToast()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分类
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user