可信代码库-AI大模型编辑对话功能开发

This commit is contained in:
付民康
2025-05-30 10:22:35 +08:00
parent de7ea14781
commit a1b3be6f6a
2 changed files with 77 additions and 18 deletions

View File

@@ -415,6 +415,7 @@
.card-actions {
display: flex;
gap: 4px;
align-items: center;
margin-left: auto;
}

View File

@@ -25,19 +25,41 @@
>
<!-- 卡片标题 -->
<div class="card-header">
<h4>{{ item.title }}</h4>
<!-- 悬停操作按钮 -->
<!-- <div class="card-actions" v-show="hoverIndex === index">-->
<!-- <d-tooltip content="编辑">-->
<!-- <d-icon style="font-size: 14px;margin-right: 2px" @click.stop="handleEdit(item)" name="icon-edit-3"></d-icon>-->
<!-- </d-tooltip>-->
<!-- <d-tooltip content="分享">-->
<!-- <d-icon style="font-size: 14px;margin-right: 2px" @click.stop="handleShare(item)" name="icon-redo-new"></d-icon>-->
<!-- </d-tooltip>-->
<!-- <d-tooltip content="更多">-->
<!-- <d-icon style="font-size: 14px;" @click.stop="handleMore(item)" name="icon-more-operate"></d-icon>-->
<!-- </d-tooltip>-->
<!-- </div>-->
<!-- 编辑状态切换 -->
<template v-if="item.isEditing">
<!-- <d-input v-model="item.tempTitle" @blur="cancelEdit(item)" @keypress.enter="confirmEdit(item)" autofocus class="edit-input" />-->
<d-input v-model="item.tempTitle" autofocus class="edit-input" />
<div class="card-actions">
<d-icon
name="icon-right"
style="font-size: 14px;"
@click="confirmEdit(item)"
/>
<d-icon
name="icon-error"
style="font-size: 14px;"
@click="cancelEdit(item)"
/>
</div>
</template>
<template v-else>
<h4 @dblclick="startEdit(item)">{{ item.title }}</h4>
<div class="card-actions" v-show="hoverIndex === index">
<d-tooltip content="编辑">
<d-icon
style="font-size: 14px; margin-right: 2px;"
@click.stop="startEdit(item)"
name="icon-edit-3"
/>
</d-tooltip>
<d-tooltip content="分享">
<d-icon style="font-size: 14px;margin-right: 2px" @click.stop="handleShare(item)" name="icon-redo-new"></d-icon>
</d-tooltip>
<d-tooltip content="更多">
<d-icon style="font-size: 14px;" @click.stop="handleMore(item)" name="icon-more-operate"></d-icon>
</d-tooltip>
</div>
</template>
</div>
<!-- 卡片内容 -->
<div class="card-content">
@@ -263,11 +285,6 @@ const openBatchManageModal = () => {
}
};
const handleEdit = (item) => {
console.log('编辑:', item);
// 这里添加编辑逻辑
};
const handleShare = (item) => {
console.log('分享:', item);
// 这里添加分享逻辑
@@ -277,6 +294,47 @@ const handleMore = (item) => {
// 这里添加分享逻辑
};
// 开始编辑
const startEdit = (item) => {
item.isEditing = true;
item.tempTitle = item.title; // 保存临时标题
};
// 确认编辑
const confirmEdit = async (item) => {
debugger
if (!item.tempTitle.trim()) {
Message.error('标题不能为空');
return;
}
try {
const res = await axios.post(`${VITE_AI_API_HOST}/api/changeConversationTitle`, {
conversationId: item.conversationId,
newTitle: item.tempTitle
});
if (res.data.code === 20000) {
item.title = item.tempTitle; // 更新标题
item.isEditing = false; // 退出编辑状态
Message.success('标题修改成功');
} else {
Message.error(res.data.message || '修改失败');
}
} catch (error) {
console.error('编辑失败:', error);
Message.error('网络请求失败,请重试');
item.tempTitle = item.title; // 回滚临时标题
}
};
// 取消编辑
const cancelEdit = (item) => {
debugger
item.isEditing = false;
item.tempTitle = item.title; // 恢复原始标题
};
// 模拟数据
const cardList = ref([
{