Merge branch 'main' of https://git.brother7.cn/zoujing/YGChatCS into order-729

This commit is contained in:
duanshuwen
2025-08-07 09:42:57 +08:00
7 changed files with 181 additions and 12 deletions

View File

@@ -85,16 +85,16 @@
import { ref, watch, nextTick, onMounted, onUnmounted } from 'vue'
const props = defineProps({
inputMessage: String,
modelValue: String,
holdKeyboard: Boolean,
isSessionActive: Boolean,
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 placeholder = ref('快告诉朵朵您在想什么~')
const inputMessage = ref(props.inputMessage || '')
const inputMessage = ref(props.modelValue || '')
const isFocused = ref(false)
const keyboardHeight = ref(0)
const isVoiceMode = ref(false)
@@ -107,10 +107,18 @@ const isSlideToText = ref(false)
// 保持和父组件同步
watch(() => props.inputMessage, (val) => {
watch(() => props.modelValue, (val) => {
inputMessage.value = val
})
// 当子组件的 inputMessage 变化时,通知父组件(但要避免循环更新)
watch(inputMessage, (val) => {
// 只有当值真正不同时才emit避免循环更新
if (val !== props.modelValue) {
emit('update:modelValue', val)
}
})
// 切换语音/文本模式
const toggleVoiceMode = () => {
isVoiceMode.value = !isVoiceMode.value