处理聊天记录文件格式判断规则、跳转提示等

This commit is contained in:
wangyifeng 2025-07-07 09:32:47 +08:00
parent 845281377f
commit 825ca5ec3c
2 changed files with 31 additions and 12 deletions

View File

@ -668,15 +668,23 @@ const queryAllSearch = () => {
//
const fileTypeAvatar = (fileType) => {
//PDF
const PDF_EXTENSIONS = ['PDF', 'pdf']
// Excel
const EXCEL_EXTENSIONS = ['XLS', 'XLSX', 'CSV', 'xls', 'xlsx', 'csv']
// Word
const WORD_EXTENSIONS = ['DOC', 'DOCX', 'RTF', 'DOT', 'DOTX', 'doc', 'docx', 'rtf', 'dot', 'dotx']
// PPT
const PPT_EXTENSIONS = ['PPT', 'PPTX', 'PPS', 'PPSX', 'ppt', 'pptx', 'pps', 'ppsx']
let file_type_avatar = fileType_Files
if (fileType) {
if (fileType === 'ppt' || fileType === 'pptx') {
if (PPT_EXTENSIONS.includes(fileType)) {
file_type_avatar = fileType_PPT
} else if (fileType === 'pdf') {
} else if (PDF_EXTENSIONS.includes(fileType)) {
file_type_avatar = fileType_PDF
} else if (fileType === 'doc' || fileType === 'docx') {
} else if (WORD_EXTENSIONS.includes(fileType)) {
file_type_avatar = fileType_WORD
} else if (fileType === 'xls' || fileType === 'xlsx') {
} else if (EXCEL_EXTENSIONS.includes(fileType)) {
file_type_avatar = fileType_EXCEL
} else {
file_type_avatar = fileType_Files
@ -694,7 +702,7 @@ const previewPDF = (item) => {
// downloadAndOpenFile(item)
// })
// }
if(checkFileCanPreview(item?.extra?.path || '')){
if (checkFileCanPreview(item?.extra?.path || '')) {
window.open(
`${import.meta.env.VITE_PAGE_URL}/office?url=${item.extra.path}`,
'_blank',
@ -956,11 +964,11 @@ body:deep(.round-3) {
border-radius: 4px;
cursor: pointer;
border-bottom: 1px solid #f8f8f8;
&:hover {
background-color: rgba(70, 41, 157, 0.1)
background-color: rgba(70, 41, 157, 0.1);
}
.attachment-avatar {
display: flex;
flex-direction: row;

View File

@ -69,9 +69,17 @@
class="text-[12px] font-regular"
:text="resultDetail"
:searchText="props.searchText"
v-if="props.searchItem?.msg_type !== 3 && props.searchItem?.msg_type !== 5 && props.searchItem?.msg_type !== 6"
v-if="
props.searchItem?.msg_type !== 3 &&
props.searchItem?.msg_type !== 5 &&
props.searchItem?.msg_type !== 6
"
/>
<div class="message-component-wrapper" v-if="props.searchItem?.msg_type === 3 || props.searchItem?.msg_type === 5" @click.stop>
<div
class="message-component-wrapper"
v-if="props.searchItem?.msg_type === 3 || props.searchItem?.msg_type === 5"
@click.stop
>
<component
:is="MessageComponents[props.searchItem?.msg_type] || 'unknown-message'"
:extra="resultDetail"
@ -292,7 +300,9 @@ const resultDetail = computed(() => {
result_detail =
props.searchItem?.msg_type === 1
? props.searchItem?.extra?.content
: props.searchItem?.msg_type === 3 || props.searchItem?.msg_type === 5 || props.searchItem?.msg_type === 6
: props.searchItem?.msg_type === 3 ||
props.searchItem?.msg_type === 5 ||
props.searchItem?.msg_type === 6
? props.searchItem?.extra
: ChatMsgTypeMapping[props.searchItem?.msg_type]
break
@ -311,7 +321,7 @@ const previewPDF = (item) => {
// downloadAndOpenFile(item)
// })
// }
if(checkFileCanPreview(item || '')){
if (checkFileCanPreview(item || '')) {
window.open(
`${import.meta.env.VITE_PAGE_URL}/office?url=${item}`,
'_blank',
@ -319,6 +329,7 @@ const previewPDF = (item) => {
)
} else {
//
window['$message'].warning('暂不支持在线预览该类型文件')
}
}
</script>