会话存档

This commit is contained in:
liuye
2023-06-08 16:53:49 +08:00
parent 4392aed3f6
commit 7e0bc1ef61
2 changed files with 43 additions and 52 deletions

View File

@@ -26,7 +26,7 @@ export default {
},
data() {
return {
component: "Detail",
component: "List",
params: {},
include: [],
};

View File

@@ -45,48 +45,46 @@
range-separator="" start-placeholder="开始日期" end-placeholder="结束日期" @change="onChange">
</el-date-picker>
<el-input size="small" placeholder="输入搜索内容" v-model="searchMsg" clearable
@clear="msgCurrent = 1, searchMsg = '', getMsgListInit()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(msgCurrent = 1), getMsgListInit();}"/>
<ai-download :instance="instance" url="/app/appconvenientaddressbook/export" :params="search" fileName="会话存档"
@clear="msgCurrent = 1, searchMsg = '', getMsgListInit()" suffix-icon="iconfont iconSearch"
v-throttle="() => {(msgCurrent = 1), getMsgListInit();}"/>
<!-- <ai-download :instance="instance" url="/app/appconvenientaddressbook/export" :params="search" fileName="会话存档"
:disabled="msgList.length == 0">
<el-button icon="iconfont iconExported" :disabled="msgList.length == 0">导出</el-button>
</ai-download>
</ai-download> -->
</div>
</div>
<div class="content-right-info">
<div v-for="(item, index) in msgList" :key="index">
<div class="item item-right" v-if="item.userId == user.wxUserId">
<div class="item" :class="item.userId == user.wxUserId ? 'item-right' : 'item-left'">
<p class="time" v-if="index == 0">{{item.createTime}}</p>
<div class="item-content-flex">
<!-- <i class="el-icon-warning"></i> -->
<!-- <i class="el-icon-warning" v-if="item.userId == user.wxUserId"></i> -->
<img :src="item.userAvatar" alt="" class="user-img" v-if="item.userId != user.wxUserId">
<div class="content" v-if="item.msgType == 'text'">
<span></span>
<p>{{item.content}}</p>
</div>
<div class="img-list" v-if="item.msgType == 'image'">
<img :src="item.sdkFileUrl" alt="" v-viewer>
</div>
<div class="voice-info">
<ai-audio :src="item.sdkFileUrl" skin="flat" v-if="item.msgType == 'voice'" />
<div class="voice-info" v-if="item.msgType == 'voice'">
<ai-audio :src="item.sdkFileUrl" skin="flat" />
</div>
<img :src="item.userAvatar" alt="" class="user-img">
</div>
</div>
<div class="item item-left" v-else>
<p class="time" v-if="index == 0">{{item.createTime}}</p>
<div class="item-content-flex">
<img :src="item.userAvatar" alt="" class="user-img">
<div class="content" v-if="item.msgType == 'text'">
<span></span>
<p>{{item.content}}</p>
</div>
<div class="img-list" v-if="item.msgType == 'image'">
<img :src="item.sdkFileUrl" alt="" v-viewer>
</div>
<div class="voice-info">
<ai-audio :src="item.sdkFileUrl" skin="flat" v-if="item.msgType == 'voice'" />
</div>
<!-- <i class="el-icon-warning"></i> -->
<video style="width: 300px; object-fit: fill;" controls :src="item.sdkFileUrl" v-if="item.msgType == 'video'"></video>
<ai-file-list v-if="item.msgType == 'file'"
:fileList="item.files"
:fileOps="{ name: 'name', size: 'fileSizeStr' }"
></ai-file-list>
<div class="revoke-text" v-if="item.msgType == 'revoke'">{{item.userName}}{{item.msgSendTime.substring(0, 16)}}撤回了一条消息</div>
<img :src="item.userAvatar" alt="" class="user-img" v-if="item.userId == user.wxUserId">
<!-- <i class="el-icon-warning" v-if="item.userId != user.wxUserId"></i> -->
</div>
</div>
</div>
@@ -131,12 +129,12 @@
msgType: 0,
msgTypeList: [
{name: '全部', value: ''},
{name: '文本', value: 'text'},
{name: '图片', value: 'image'},
{name: '图片/视频', value: 'imagevideo'},
{name: '语音', value: 'voice'},
{name: '文件', value: 'file'},
],
searchMsg: '',
id: 'LiuYe'
id: ''
}
},
computed: {
@@ -148,7 +146,6 @@
this.id = this.params.id
this.getList()
}
this.getList()
},
methods: {
@@ -188,10 +185,11 @@
this.instance.post(`/app/appsessionarchiveinfo/listByUser`, null, {
params: {
userId: this.id,
type: this.tabIndex,
// type: this.tabIndex,
size: 20,
current: this.msgCurrent,
msgType: this.msgTypeList[this.msgType].value,
// msgType: 'file',
toUserId: this.list[this.leftActiveIndex].type == 1 ? '' : this.list[this.leftActiveIndex].toUserId,
roomId: this.list[this.leftActiveIndex].type == 1 ? this.list[this.leftActiveIndex].roomId : '',
type: this.list[this.leftActiveIndex].type,
@@ -201,6 +199,11 @@
}
}).then(res => {
if (res.code === 0) {
res.data.records.map((item) => {
if(item.msgType == 'file') {
item.files = [{url: item.sdkFileUrl, accessUrl: item.sdkFileUrl, name: item.sdkFileName, fileSizeStr: item.fileSizeStr}]
}
})
this.msgList = res.data.records
this.msgTotal = res.data.total || 0
}
@@ -233,26 +236,6 @@
this.msgType = index
this.getMsgListInit()
},
onConfirm() {
this.$refs.form.validate((valid) => {
if (valid) {
this.instance.post(`/app/appintegralmerchandiseorder/writeOffOrder`, null, {
params: {
code: this.form.code,
id: this.params.id,
}
}).then(res => {
if (res.code == 0) {
this.isShow = false
this.getInfo(this.params.id)
this.$message.success('核销成功')
}
})
}
})
},
cancel () {
this.$emit('change', {
type: 'List',
@@ -470,6 +453,14 @@
color: #f46;
margin-top: 8px;
}
.revoke-text {
line-height: 44px;
padding: 0 6px;
border-radius: 4px;
background-color: #EEE;
color: #999;
margin-top: 4px;
}
}
}
.item-left {