聊天内容选择后工具小浮窗被遮挡的问题

This commit is contained in:
kuaifan 2022-06-05 21:30:24 +08:00
parent c2b754d682
commit 5c750f7a6f
3 changed files with 25 additions and 3 deletions

View File

@ -401,6 +401,10 @@ export default {
} }
}, },
recordState(state) {
this.$emit('on-record-state', state)
},
dialogInputCache() { dialogInputCache() {
this.$emit('input', this.getInputCache()) this.$emit('input', this.getInputCache())
} }

View File

@ -2,6 +2,7 @@
<div <div
v-if="isReady" v-if="isReady"
class="dialog-wrapper" class="dialog-wrapper"
:class="wrapperClass"
:style="wrapperStyle" :style="wrapperStyle"
@drop.prevent="chatPasteDrag($event, 'drag')" @drop.prevent="chatPasteDrag($event, 'drag')"
@dragover.prevent="chatDragOver(true, $event)" @dragover.prevent="chatDragOver(true, $event)"
@ -129,8 +130,9 @@
@on-blur="onEventBlur" @on-blur="onEventBlur"
@on-more="onEventMore" @on-more="onEventMore"
@on-file="sendFileMsg" @on-file="sendFileMsg"
@on-record="sendRecord"
@on-send="sendMsg" @on-send="sendMsg"
@on-record="sendRecord"
@on-record-state="onRecordState"
@on-emoji-visible-change="onEventEmojiVisibleChange" @on-emoji-visible-change="onEventEmojiVisibleChange"
:placeholder="$L('输入消息...')"/> :placeholder="$L('输入消息...')"/>
</div> </div>
@ -329,7 +331,9 @@ export default {
operateHasText: false, operateHasText: false,
operateStyles: {}, operateStyles: {},
operateItem: {}, operateItem: {},
operateEmojis: ['👌', '🤝', '🤔', '👍', '👎', '👏', '✋', '✅', '❌', '❤️', '❓'] operateEmojis: ['👌', '🤝', '🤔', '👍', '👎', '👏', '✋', '✅', '❌', '❤️', '❓'],
recordState: '',
} }
}, },
@ -395,6 +399,13 @@ export default {
return '发送文件' return '发送文件'
}, },
wrapperClass() {
if (['ready', 'ing'].includes(this.recordState)) {
return ['record-ing']
}
return null
},
pasteWrapperClass() { pasteWrapperClass() {
if (this.pasteItem.find(({type}) => type !== 'image')) { if (this.pasteItem.find(({type}) => type !== 'image')) {
return ['multiple']; return ['multiple'];
@ -622,6 +633,10 @@ export default {
} }
}, },
onRecordState(state) {
this.recordState = state;
},
chatPasteDrag(e, type) { chatPasteDrag(e, type) {
this.dialogDrag = false; this.dialogDrag = false;
const files = type === 'drag' ? e.dataTransfer.files : e.clipboardData.files; const files = type === 'drag' ? e.dataTransfer.files : e.clipboardData.files;

View File

@ -7,9 +7,12 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: #ffffff; background-color: #ffffff;
overflow: hidden;
z-index: 1; z-index: 1;
&.record-ing {
overflow: hidden;
}
.vue-recycle-scroller.direction-vertical:not(.page-mode) { .vue-recycle-scroller.direction-vertical:not(.page-mode) {
overflow-y: overlay; overflow-y: overlay;
} }