Skip to content

Commit 996ff11

Browse files
authored
Merge pull request #44 from Geniusay/master
生成提示词功能
2 parents 653c14b + fc48cda commit 996ff11

2 files changed

Lines changed: 23 additions & 25 deletions

File tree

prompto-lab-ui/src/components/Chat/AIChatPage.vue

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -306,15 +306,10 @@ const handleConnectionMessage = (response: any): boolean => {
306306
// 处理生成提示词消息
307307
const handleGenPromptMessage = (response: any): boolean => {
308308
if (response.genPrompt) {
309-
console.log('收到genPrompt数据:', response.genPrompt)
310-
console.log('questionRendererRef.value:', questionRendererRef.value)
311-
312309
try {
313310
// 通过ref调用子组件的setPromptResult方法显示提示词结果
314311
if (questionRendererRef.value && questionRendererRef.value.setPromptResult) {
315-
console.log('调用子组件setPromptResult方法')
316312
questionRendererRef.value.setPromptResult(response.genPrompt)
317-
console.log('setPromptResult调用完成')
318313
319314
toast.success({
320315
title: '提示词生成成功',
@@ -323,9 +318,6 @@ const handleGenPromptMessage = (response: any): boolean => {
323318
})
324319
} else {
325320
console.warn('QuestionRenderer组件引用不可用,无法显示提示词结果')
326-
console.log('questionRendererRef.value存在:', !!questionRendererRef.value)
327-
console.log('setPromptResult方法存在:', questionRendererRef.value && !!questionRendererRef.value.setPromptResult)
328-
329321
toast.error({
330322
title: '显示失败',
331323
message: '无法显示提示词结果,请重试',

prompto-lab-ui/src/components/Chat/QuestionRenderer.vue

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,7 @@
218218
</div>
219219

220220
<!-- 提示词结果展示 -->
221-
<div v-if="promptResult" class="prompt-result">
222-
<!-- 调试信息 -->
223-
<div style="display: none;">{{ console.log('模板中promptResult值:', promptResult) }}</div>
221+
<div v-if="showPromptResult && promptResult" class="prompt-result">
224222
<div class="prompt-result-container">
225223
<div class="prompt-result-header">
226224
<h3 class="result-title">生成的提示词</h3>
@@ -286,7 +284,7 @@
286284
</template>
287285

288286
<script setup lang="ts">
289-
import { ref, reactive, nextTick, computed, watch } from 'vue'
287+
import { ref, reactive, nextTick, computed, watch, getCurrentInstance } from 'vue'
290288
import LoadingAnimation from './LoadingAnimation.vue'
291289
import SingleChoiceOptions from './SingleChoiceOptions.vue'
292290
import MultipleChoiceOptions from './MultipleChoiceOptions.vue'
@@ -401,12 +399,6 @@ watch(() => props.currentQuestion, (newQuestion, oldQuestion) => {
401399
}
402400
}, { deep: true })
403401
404-
// 监听promptResult变化
405-
watch(() => promptResult.value, (newValue, oldValue) => {
406-
console.log('promptResult变化:', { oldValue, newValue })
407-
console.log('promptResult是否为真值:', !!newValue)
408-
}, { immediate: true })
409-
410402
// 方法
411403
const resetAnswers = () => {
412404
answers.input = ''
@@ -539,8 +531,14 @@ const showRetryDialog = ref(false)
539531
const retryReason = ref('')
540532
541533
// 提示词相关状态
542-
const promptResult = ref('')
534+
const promptResult = ref<string>('')
543535
const copySuccess = ref(false)
536+
const showPromptResult = ref(false)
537+
538+
// 监听promptResult变化
539+
watch(() => promptResult.value, (newValue, oldValue) => {
540+
// 可以在这里添加必要的响应式逻辑
541+
})
544542
545543
const retryQuestion = () => {
546544
// 显示重试原因输入对话框
@@ -614,6 +612,7 @@ const regeneratePrompt = async () => {
614612
615613
const continueChat = () => {
616614
promptResult.value = ''
615+
showPromptResult.value = false
617616
// 继续问答功能暂时不实现
618617
console.log('继续问答功能待实现')
619618
}
@@ -648,20 +647,27 @@ const copyPrompt = async () => {
648647
// 关闭提示词结果
649648
const closePromptResult = () => {
650649
promptResult.value = ''
650+
showPromptResult.value = false
651651
copySuccess.value = false
652652
}
653653
654+
// 获取当前组件实例
655+
const instance = getCurrentInstance()
656+
654657
// 暴露设置提示词结果的方法
655658
const setPromptResult = (result: string) => {
656-
console.log('子组件setPromptResult被调用,参数:', result)
657-
console.log('设置前promptResult.value:', promptResult.value)
659+
// 设置提示词内容和显示状态
658660
promptResult.value = result
659-
console.log('设置后promptResult.value:', promptResult.value)
661+
showPromptResult.value = true
662+
663+
// 强制更新组件以确保响应式更新
664+
if (instance) {
665+
instance.proxy?.$forceUpdate()
666+
}
660667
661-
// 使用nextTick确保DOM更新
668+
// 使用nextTick确保DOM更新完成
662669
nextTick(() => {
663-
console.log('nextTick后promptResult.value:', promptResult.value)
664-
console.log('DOM中是否存在.prompt-result元素:', !!document.querySelector('.prompt-result'))
670+
// DOM更新完成后的回调
665671
})
666672
}
667673

0 commit comments

Comments
 (0)