1、会话列表增加群人数显示;2、按文件类型搜索时,文件支持点击预览;3、搜索聊天记录时,文件类型和图片类型支持直接显示出来,并可以点击预览
This commit is contained in:
parent
f9d02d67a6
commit
d6782d867c
@ -686,13 +686,18 @@ const fileTypeAvatar = (fileType) => {
|
|||||||
|
|
||||||
const previewPDF = (item) => {
|
const previewPDF = (item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (typeof plus !== 'undefined') {
|
// if (typeof plus !== 'undefined') {
|
||||||
downloadAndOpenFile(item)
|
// downloadAndOpenFile(item)
|
||||||
} else {
|
// } else {
|
||||||
document.addEventListener('plusready', () => {
|
// document.addEventListener('plusready', () => {
|
||||||
downloadAndOpenFile(item)
|
// downloadAndOpenFile(item)
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
window.open(
|
||||||
|
`${import.meta.env.VITE_PAGE_URL}/office?url=${item.extra.path}`,
|
||||||
|
'_blank',
|
||||||
|
'width=1200,height=900,left=200,top=200,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no'
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const downloadAndOpenFile = (item) => {
|
const downloadAndOpenFile = (item) => {
|
||||||
@ -926,7 +931,6 @@ body:deep(.round-3) {
|
|||||||
}
|
}
|
||||||
.condition-each-resultList {
|
.condition-each-resultList {
|
||||||
.condition-each-resultList-each {
|
.condition-each-resultList-each {
|
||||||
border-bottom: 1px solid #f8f8f8;
|
|
||||||
.condition-each-result-main {
|
.condition-each-result-main {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -942,9 +946,16 @@ body:deep(.round-3) {
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
padding: 14px 0;
|
padding: 14px 20px;
|
||||||
// background-color: #f3f3f3;
|
// background-color: #f3f3f3;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
border-bottom: 1px solid #f8f8f8;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(70, 41, 157, 0.1)
|
||||||
|
}
|
||||||
|
|
||||||
.attachment-avatar {
|
.attachment-avatar {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -1126,6 +1137,10 @@ body:deep(.round-3) {
|
|||||||
.image-container {
|
.image-container {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
|
&:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
border: 1px solid #46299d;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.n-image) {
|
:deep(.n-image) {
|
||||||
|
@ -69,7 +69,43 @@
|
|||||||
class="text-[12px] font-regular"
|
class="text-[12px] font-regular"
|
||||||
:text="resultDetail"
|
:text="resultDetail"
|
||||||
:searchText="props.searchText"
|
:searchText="props.searchText"
|
||||||
|
v-if="props.searchItem?.msg_type !== 3 && props.searchItem?.msg_type !== 6"
|
||||||
/>
|
/>
|
||||||
|
<div class="message-component-wrapper" v-if="props.searchItem?.msg_type === 3" @click.stop>
|
||||||
|
<component
|
||||||
|
:is="MessageComponents[props.searchItem?.msg_type] || 'unknown-message'"
|
||||||
|
:extra="resultDetail"
|
||||||
|
:data="props?.searchItem"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="file-message-wrapper" v-if="props.searchItem?.msg_type === 6" @click.stop>
|
||||||
|
<div class="condition-each-result-attachments" @click="previewPDF(resultDetail.path)">
|
||||||
|
<div class="attachment-avatar">
|
||||||
|
<img :src="resultDetail?.file_avatar" />
|
||||||
|
</div>
|
||||||
|
<div class="attachment-info">
|
||||||
|
<div class="attachment-info-title">
|
||||||
|
<span class="text-[14px] font-regular">
|
||||||
|
{{ resultDetail?.name }}
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="text-[14px] font-regular"
|
||||||
|
style="color: #999999; flex-shrink: 0; margin: 0 0 0 20px;"
|
||||||
|
>
|
||||||
|
{{ resultDetail?.dateTime }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="attachment-sub-info">
|
||||||
|
<span class="text-[12px] font-regular">
|
||||||
|
{{ resultDetail?.typeText }}
|
||||||
|
</span>
|
||||||
|
<span class="text-[12px] font-regular" style="flex-shrink: 0; margin: 0 0 0 20px;">
|
||||||
|
{{ resultDetail?.fileSize }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="searchRecordDetail-fastLocal" v-if="searchRecordDetail">
|
<div class="searchRecordDetail-fastLocal" v-if="searchRecordDetail">
|
||||||
<span>定位到聊天位置</span>
|
<span>定位到聊天位置</span>
|
||||||
</div>
|
</div>
|
||||||
@ -85,7 +121,7 @@ import avatarModule from '@/components/avatar-module/index.vue'
|
|||||||
import { ref, watch, computed, onMounted, onUnmounted, reactive, defineProps } from 'vue'
|
import { ref, watch, computed, onMounted, onUnmounted, reactive, defineProps } from 'vue'
|
||||||
import HighlightText from './highLightText.vue'
|
import HighlightText from './highLightText.vue'
|
||||||
import { beautifyTime } from '@/utils/datetime'
|
import { beautifyTime } from '@/utils/datetime'
|
||||||
import { ChatMsgTypeMapping } from '@/constant/message'
|
import { ChatMsgTypeMapping, MessageComponents } from '@/constant/message'
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
searchItem: Object | Number,
|
searchItem: Object | Number,
|
||||||
searchResultKey: {
|
searchResultKey: {
|
||||||
@ -255,6 +291,8 @@ const resultDetail = computed(() => {
|
|||||||
result_detail =
|
result_detail =
|
||||||
props.searchItem?.msg_type === 1
|
props.searchItem?.msg_type === 1
|
||||||
? props.searchItem?.extra?.content
|
? props.searchItem?.extra?.content
|
||||||
|
: props.searchItem?.msg_type === 3 || props.searchItem?.msg_type === 6
|
||||||
|
? props.searchItem?.extra
|
||||||
: ChatMsgTypeMapping[props.searchItem?.msg_type]
|
: ChatMsgTypeMapping[props.searchItem?.msg_type]
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
@ -262,6 +300,22 @@ const resultDetail = computed(() => {
|
|||||||
}
|
}
|
||||||
return result_detail
|
return result_detail
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const previewPDF = (item) => {
|
||||||
|
console.log(item)
|
||||||
|
// if (typeof plus !== 'undefined') {
|
||||||
|
// downloadAndOpenFile(item)
|
||||||
|
// } else {
|
||||||
|
// document.addEventListener('plusready', () => {
|
||||||
|
// downloadAndOpenFile(item)
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
window.open(
|
||||||
|
`${import.meta.env.VITE_PAGE_URL}/office?url=${item}`,
|
||||||
|
'_blank',
|
||||||
|
'width=1200,height=900,left=200,top=200,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no'
|
||||||
|
)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.search-item {
|
.search-item {
|
||||||
@ -321,6 +375,69 @@ const resultDetail = computed(() => {
|
|||||||
color: #999999;
|
color: #999999;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
.file-message-wrapper {
|
||||||
|
.condition-each-result-attachments {
|
||||||
|
width: 289px;
|
||||||
|
height: 62px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding: 12px 15px;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
border-radius: 4px;
|
||||||
|
border-bottom: 1px solid #f8f8f8;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.attachment-avatar {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
img {
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.attachment-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
margin: 0 0 0 11px;
|
||||||
|
width: calc(100% - 38px - 11px);
|
||||||
|
.attachment-info-title {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
width: 100%;
|
||||||
|
span {
|
||||||
|
line-height: 20px;
|
||||||
|
color: #191919;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.attachment-sub-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
width: 100%;
|
||||||
|
span {
|
||||||
|
line-height: 17px;
|
||||||
|
color: #999999;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.info-detail-searchRecordDetail {
|
.info-detail-searchRecordDetail {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -380,4 +497,31 @@ const resultDetail = computed(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.message-component-wrapper {
|
||||||
|
width: 154px;
|
||||||
|
height: 100px;
|
||||||
|
display: inline-block;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.im-message-video,
|
||||||
|
.im-message-image,
|
||||||
|
.image-container {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.n-image) {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(img),
|
||||||
|
:deep(video) {
|
||||||
|
width: 100% !important;
|
||||||
|
height: 100% !important;
|
||||||
|
object-fit: cover !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -37,6 +37,7 @@ const labelColor=[
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<span class="nickname">{{ username }}</span>
|
<span class="nickname">{{ username }}</span>
|
||||||
|
<span v-if="data.talk_type == 2">({{data.group_member_num}})</span>
|
||||||
<!-- <span class="badge top" v-show="data.is_top">顶</span>
|
<!-- <span class="badge top" v-show="data.is_top">顶</span>
|
||||||
<span class="badge roboot" v-show="data.is_robot">助</span>
|
<span class="badge roboot" v-show="data.is_robot">助</span>
|
||||||
<span class="badge group" v-show="data.talk_type == 2">群</span> -->
|
<span class="badge group" v-show="data.talk_type == 2">群</span> -->
|
||||||
|
@ -147,6 +147,7 @@ const onSetMenu = () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
margin: 0 5px 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user