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

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 isRecording = el.dataset.isRecording
const disabled = el.dataset.disabled
if (multiSelectedMsgIds.value.has(msgId)) {
multiSelectedMsgIds.value.delete(msgId)
} else if (isRecording !== 'true') {
} else if (disabled !== 'true') {
// 语音消息不能被选中
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 = () => {
if (props.isMultiSelect && contentType.value !== msgContentType.RECORDING) {
if (props.isMultiSelect && !multiSelectOptionDisabled.value) {
emit('select', props.msgKey, !props.isSelected)
}
}
@@ -922,14 +926,14 @@ const handleItemClick = () => {
:class="{
'multi-select-mode': props.isMultiSelect,
'is-selected': props.isSelected,
'is-valid-option': props.isMultiSelect && contentType !== msgContentType.RECORDING
'is-valid-option': props.isMultiSelect && !multiSelectOptionDisabled
}"
@click="handleItemClick"
>
<div v-if="props.isMultiSelect" class="message-checkbox">
<el-checkbox
:model-value="props.isSelected"
:disabled="contentType === msgContentType.RECORDING"
:disabled="multiSelectOptionDisabled"
@update:model-value="handleItemClick"
@click.stop
/>
@@ -937,7 +941,7 @@ const handleItemClick = () => {
<div
class="message-item"
:data-msg-id="props.msgKey"
:data-is-recording="contentType === msgContentType.RECORDING"
:data-disabled="multiSelectOptionDisabled"
:class="{ unreadMsg: isUnreadMsg }"
>
<span v-if="isShowNoMoreMsg" class="no-more-message">当前无更多消息</span>