可信代码库-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 { .card-actions {
display: flex; display: flex;
gap: 4px; gap: 4px;
align-items: center;
margin-left: auto; margin-left: auto;
} }

View File

@@ -25,19 +25,41 @@
> >
<!-- 卡片标题 --> <!-- 卡片标题 -->
<div class="card-header"> <div class="card-header">
<h4>{{ item.title }}</h4> <!-- 编辑状态切换 -->
<!-- 悬停操作按钮 --> <template v-if="item.isEditing">
<!-- <div class="card-actions" v-show="hoverIndex === index">--> <!-- <d-input v-model="item.tempTitle" @blur="cancelEdit(item)" @keypress.enter="confirmEdit(item)" autofocus class="edit-input" />-->
<!-- <d-tooltip content="编辑">--> <d-input v-model="item.tempTitle" autofocus class="edit-input" />
<!-- <d-icon style="font-size: 14px;margin-right: 2px" @click.stop="handleEdit(item)" name="icon-edit-3"></d-icon>--> <div class="card-actions">
<!-- </d-tooltip>--> <d-icon
<!-- <d-tooltip content="分享">--> name="icon-right"
<!-- <d-icon style="font-size: 14px;margin-right: 2px" @click.stop="handleShare(item)" name="icon-redo-new"></d-icon>--> style="font-size: 14px;"
<!-- </d-tooltip>--> @click="confirmEdit(item)"
<!-- <d-tooltip content="更多">--> />
<!-- <d-icon style="font-size: 14px;" @click.stop="handleMore(item)" name="icon-more-operate"></d-icon>--> <d-icon
<!-- </d-tooltip>--> name="icon-error"
<!-- </div>--> 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>
<!-- 卡片内容 --> <!-- 卡片内容 -->
<div class="card-content"> <div class="card-content">
@@ -263,11 +285,6 @@ const openBatchManageModal = () => {
} }
}; };
const handleEdit = (item) => {
console.log('编辑:', item);
// 这里添加编辑逻辑
};
const handleShare = (item) => { const handleShare = (item) => {
console.log('分享:', 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([ const cardList = ref([
{ {