feat(avatar): improve multi-avatar management

This commit is contained in:
stefanfeng
2026-08-25 11:44:27 +08:00
parent 672019830d
commit 7a0199e685
8 changed files with 125 additions and 517 deletions
+8 -4
View File
@@ -49,14 +49,14 @@
import { ref, reactive, computed, onMounted } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { useAvatarStore } from '@/store/avatar'
import { pickAvatarId, unwrapListData } from '@/utils/avatar-page-data.js'
import { pickScopedAvatarId, unwrapListData } from '@/utils/avatar-page-data.js'
import { getQAPairs, createQAPair, updateQAPair } from '@/api'
const router = useRouter()
const route = useRoute()
const store = useAvatarStore()
const avatarId = computed(() => pickAvatarId(store.currentAvatarId, store.avatars))
const avatarId = computed(() => pickScopedAvatarId(route.params.avatarId, store.currentAvatarId, store.avatars))
const qaId = computed(() => (route.params.qaId as string) || null)
const isEdit = computed(() => !!qaId.value)
@@ -104,8 +104,11 @@ const save = async () => {
} else {
await createQAPair(avatarId.value, payload)
}
// 保存成功返回知识库管理页
router.replace('/knowledge')
if (route.params.avatarId) {
router.replace({ name: 'AvatarKnowledgeManage', params: { avatarId: avatarId.value } })
} else {
router.replace('/knowledge')
}
} catch (e: any) {
error.value = e?.message || '保存失败'
} finally {
@@ -117,6 +120,7 @@ onMounted(async () => {
if (!store.avatars.length) {
await store.loadAvatars()
}
if (avatarId.value) store.currentAvatarId = avatarId.value
if (isEdit.value) {
await loadForEdit()
}