From bc4ab46fb5c4cb4435efabfe4b316be4ace5b026 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 22 七月 2024 15:31:04 +0800 Subject: [PATCH] 修改 customDrawer --- src/components/chat/components/playBar/PlayBar.vue | 72 ++++++++++++++++++++++++++++++----- 1 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/components/chat/components/playBar/PlayBar.vue b/src/components/chat/components/playBar/PlayBar.vue index 129c347..64774b7 100644 --- a/src/components/chat/components/playBar/PlayBar.vue +++ b/src/components/chat/components/playBar/PlayBar.vue @@ -6,15 +6,24 @@ </el-button> </div> <div class="set-input"> - <el-input @keydown.enter="isTalking || emits('sendClick')" v-model="inputValue" placeholder="鍦ㄨ繖閲岃緭鍏ユ偍鐨勯棶棰樺紑濮嬪拰AI瀵硅瘽" class="set-inputAnswer" /> + <el-input + class="relative align-bottom set-inputAnswer" + type="textarea" + resize="none" + :autosize="{ minRows: 1, maxRows: 8 }" + v-elInputFocus + @keydown="enterInput" + v-model="inputValue" + placeholder="鍦ㄨ繖閲岃緭鍏ユ偍鐨勯棶棰樺紑濮嬪拰AI瀵硅瘽" + /> </div> <div class="h100 flex items-center"> <div class="upload_img space-y"> <div class="imgbox cursor-pointer flex items-center"> - <el-button title="AI鐪嬪浘" class="cursor-pointer" link style="margin-left: unset"> + <!-- <el-button title="AI鐪嬪浘" class="cursor-pointer" link style="margin-left: unset"> <img src="/static/images/wave/LookImg.png" class="set-img-icon box-border" /> - </el-button> - <el-button title="AI璇煶瀵硅瘽" class="cursor-pointer" link style="margin-left: unset"> + </el-button> --> + <el-button title="AI璇煶瀵硅瘽" class="cursor-pointer" link style="margin-left: unset" @click="audioChangeWord"> <img src="/static/images/wave/HeadImg.png" class="set-img-icon box-border" /> </el-button> @@ -26,19 +35,58 @@ </div> </div> </div> + <VoicePage + v-model:isShow="voicePageIsShow" + v-show="voicePageIsShow" + @submit="(cb) => emits('sendClick', cb)" + @updateInputValue="updateInputValue" + :isHome = "isHome" + /> </div> </template> <script setup lang="ts"> -import { reactive } from 'vue'; - +import { ElMessage } from 'element-plus'; +import VoicePage from './voicePage/VoicePage.vue'; const emits = defineEmits(['sendClick']); -defineProps(['isTalking']) +const props = defineProps(['isTalking','isHome']); +const voicePageIsShow = defineModel('voicePageIsShow', { + type: Boolean, + default: false, +}); const inputValue = defineModel({ - type:String -}) + type: String, +}); + +const updateInputValue = (val) => { + inputValue.value = val; +}; + +const enterInput = (e) => { + if (props.isTalking) return; + if (!e.shiftKey && e.keyCode == 13) { + e.cancelBubble = true; //ie闃绘鍐掓场琛屼负 + e.stopPropagation(); //Firefox闃绘鍐掓场琛屼负 + e.preventDefault(); //鍙栨秷浜嬩欢鐨勯粯璁ゅ姩浣�*鎹㈣ + //浠ヤ笅澶勭悊鍙戦�佹秷鎭唬鐮� + emits('sendClick'); + } +}; +const audioChangeWord = () => { + navigator.getUserMedia( + { audio: true }, + function onSuccess(stream) { + voicePageIsShow.value = true; + }, + function onError(error) { + ElMessage.warning('璇锋墦寮�楹﹀厠椋庢潈闄�'); + } + ); + + +}; </script> <style scoped lang="scss"> .set-waterTitle { @@ -127,14 +175,16 @@ display: inline-block; width: 100%; .set-inputAnswer { - min-height: 36px; - height: 36px; padding: 3px 0; line-height: 20px; border: none; background-color: transparent; color: #333; font-size: 15px; + :deep(.el-textarea__inner) { + // 鍘婚櫎绾� + box-shadow: none; + } } :deep(.el-input__wrapper) { box-shadow: unset; -- Gitblit v1.9.3