feat: 发送消息后的清除问题修复
This commit is contained in:
@@ -85,16 +85,16 @@
|
|||||||
import { ref, watch, nextTick, onMounted, onUnmounted } from 'vue'
|
import { ref, watch, nextTick, onMounted, onUnmounted } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
inputMessage: String,
|
modelValue: String,
|
||||||
holdKeyboard: Boolean,
|
holdKeyboard: Boolean,
|
||||||
isSessionActive: Boolean,
|
isSessionActive: Boolean,
|
||||||
stopRequest: Function
|
stopRequest: Function
|
||||||
})
|
})
|
||||||
const emit = defineEmits(['update:inputMessage', 'send', 'noHideKeyboard', 'keyboardShow', 'keyboardHide', 'sendVoice'])
|
const emit = defineEmits(['update:modelValue', 'send', 'noHideKeyboard', 'keyboardShow', 'keyboardHide', 'sendVoice'])
|
||||||
|
|
||||||
const textareaRef = ref(null)
|
const textareaRef = ref(null)
|
||||||
const placeholder = ref('快告诉朵朵您在想什么~')
|
const placeholder = ref('快告诉朵朵您在想什么~')
|
||||||
const inputMessage = ref(props.inputMessage || '')
|
const inputMessage = ref(props.modelValue || '')
|
||||||
const isFocused = ref(false)
|
const isFocused = ref(false)
|
||||||
const keyboardHeight = ref(0)
|
const keyboardHeight = ref(0)
|
||||||
const isVoiceMode = ref(false)
|
const isVoiceMode = ref(false)
|
||||||
@@ -107,10 +107,18 @@ const isSlideToText = ref(false)
|
|||||||
|
|
||||||
|
|
||||||
// 保持和父组件同步
|
// 保持和父组件同步
|
||||||
watch(() => props.inputMessage, (val) => {
|
watch(() => props.modelValue, (val) => {
|
||||||
inputMessage.value = val
|
inputMessage.value = val
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 当子组件的 inputMessage 变化时,通知父组件(但要避免循环更新)
|
||||||
|
watch(inputMessage, (val) => {
|
||||||
|
// 只有当值真正不同时才emit,避免循环更新
|
||||||
|
if (val !== props.modelValue) {
|
||||||
|
emit('update:modelValue', val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// 切换语音/文本模式
|
// 切换语音/文本模式
|
||||||
const toggleVoiceMode = () => {
|
const toggleVoiceMode = () => {
|
||||||
isVoiceMode.value = !isVoiceMode.value
|
isVoiceMode.value = !isVoiceMode.value
|
||||||
|
|||||||
Reference in New Issue
Block a user