多选模式下系统消息,撤回消息禁选

This commit is contained in:
bob
2025-05-08 09:48:00 +08:00
parent 6673804208
commit e187025d4e
2 changed files with 10 additions and 6 deletions

View File

@@ -1291,10 +1291,10 @@ const handleGlobalMouseUp = (e) => {
} }
const msgId = el.dataset.msgId const msgId = el.dataset.msgId
const isRecording = el.dataset.isRecording const disabled = el.dataset.disabled
if (multiSelectedMsgIds.value.has(msgId)) { if (multiSelectedMsgIds.value.has(msgId)) {
multiSelectedMsgIds.value.delete(msgId) multiSelectedMsgIds.value.delete(msgId)
} else if (isRecording !== 'true') { } else if (disabled !== 'true') {
// 语音消息不能被选中 // 语音消息不能被选中
multiSelectedMsgIds.value.add(msgId) multiSelectedMsgIds.value.add(msgId)
} }

View File

@@ -909,8 +909,12 @@ watch(
} }
) )
const multiSelectOptionDisabled = computed(() => {
return contentType.value === msgContentType.RECORDING || isSystemMsg.value || isRevoke.value
})
const handleItemClick = () => { const handleItemClick = () => {
if (props.isMultiSelect && contentType.value !== msgContentType.RECORDING) { if (props.isMultiSelect && !multiSelectOptionDisabled.value) {
emit('select', props.msgKey, !props.isSelected) emit('select', props.msgKey, !props.isSelected)
} }
} }
@@ -922,14 +926,14 @@ const handleItemClick = () => {
:class="{ :class="{
'multi-select-mode': props.isMultiSelect, 'multi-select-mode': props.isMultiSelect,
'is-selected': props.isSelected, 'is-selected': props.isSelected,
'is-valid-option': props.isMultiSelect && contentType !== msgContentType.RECORDING 'is-valid-option': props.isMultiSelect && !multiSelectOptionDisabled
}" }"
@click="handleItemClick" @click="handleItemClick"
> >
<div v-if="props.isMultiSelect" class="message-checkbox"> <div v-if="props.isMultiSelect" class="message-checkbox">
<el-checkbox <el-checkbox
:model-value="props.isSelected" :model-value="props.isSelected"
:disabled="contentType === msgContentType.RECORDING" :disabled="multiSelectOptionDisabled"
@update:model-value="handleItemClick" @update:model-value="handleItemClick"
@click.stop @click.stop
/> />
@@ -937,7 +941,7 @@ const handleItemClick = () => {
<div <div
class="message-item" class="message-item"
:data-msg-id="props.msgKey" :data-msg-id="props.msgKey"
:data-is-recording="contentType === msgContentType.RECORDING" :data-disabled="multiSelectOptionDisabled"
:class="{ unreadMsg: isUnreadMsg }" :class="{ unreadMsg: isUnreadMsg }"
> >
<span v-if="isShowNoMoreMsg" class="no-more-message">当前无更多消息</span> <span v-if="isShowNoMoreMsg" class="no-more-message">当前无更多消息</span>