fix: 客服转移消息

feat-im-0607-ch
ch 3 years ago
parent ba2ae15f2f
commit 9394445d12

@ -2,7 +2,7 @@
* @Author: ch * @Author: ch
* @Date: 2022-06-07 15:41:05 * @Date: 2022-06-07 15:41:05
* @LastEditors: ch * @LastEditors: ch
* @LastEditTime: 2022-06-13 17:16:27 * @LastEditTime: 2022-06-14 14:59:41
* @Description: file content * @Description: file content
*/ */
import * as api from '@/api/chat'; import * as api from '@/api/chat';
@ -48,6 +48,13 @@ const getters = {
} else if (type === 5) { } else if (type === 5) {
payload = '[撤回消息]'; payload = '[撤回消息]';
} else if (type === 6 || type === 1) { } else if (type === 6 || type === 1) {
if (payload.customType === 'transferWaiterSession') {
let str = `${payload.fromNickname}将会话转移给了---${payload.toNickname}`;
if (payload.reason) {
str += `,并留言:${payload.reason}`;
}
payload = str;
} else {
try { try {
// payload = JSON.parse(payload.value); // payload = JSON.parse(payload.value);
if ('text' in payload) { if ('text' in payload) {
@ -64,6 +71,7 @@ const getters = {
} catch (e) { } catch (e) {
payload = '[解析异常]'; payload = '[解析异常]';
} }
}
} else if (type === 7) { } else if (type === 7) {
payload = payload.text; payload = payload.text;
} else { } else {
@ -104,6 +112,9 @@ const getters = {
}, },
parseContent: () => { parseContent: () => {
return (payload) => { return (payload) => {
if (payload.customType === 'transferWaiterSession') {
payload.type = 'transferWaiterSession';
} else {
try { try {
// payload = JSON.parse(payload); // payload = JSON.parse(payload);
if ('linkJump' in payload) { if ('linkJump' in payload) {
@ -118,6 +129,7 @@ const getters = {
} catch (e) { } catch (e) {
payload = '[解析异常]'; payload = '[解析异常]';
} }
}
return payload; return payload;
}; };
}, },

@ -394,6 +394,7 @@
display: flex; display: flex;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
.aside { .aside {
width: 240px;
border-right: 1px solid #ebeef5; border-right: 1px solid #ebeef5;
.aside-header { .aside-header {
height: 60px; height: 60px;

@ -3,15 +3,30 @@
class="message-item" class="message-item"
:class="{ :class="{
[`--${messageType[props.message.type]}`]: true, [`--${messageType[props.message.type]}`]: true,
'--notify': messageType[props.message.type] === 'custom' && content.type === 'transferWaiterSession',
'--self': props.message.fromId !== props.session.fromId, '--self': props.message.fromId !== props.session.fromId,
}" }"
> >
<!-- --> <!-- -->
<div v-if="!['revoke', 'notify'].includes(messageType[props.message.type])" class="avatar"> <template v-if="['notify', 'revoke'].includes(messageType[props.message.type])">
<div class="content shadow">
{{ store.getters['chat/parseText'](props.message) }}
</div>
</template>
<template v-else-if="messageType[props.message.type] === 'custom' && content.type === 'transferWaiterSession'">
<div class="message-body">
<div v-if="content.type === 'transferWaiterSession'" class="content shadow">
{{ store.getters['chat/parseText'](props.message) }}
</div>
</div>
</template>
<template v-else>
<div class="avatar">
<el-avatar :src="props.message.fromAvatar" /> <el-avatar :src="props.message.fromAvatar" />
</div> </div>
<div class="message-body"> <div class="message-body">
<div v-if="!['revoke', 'notify'].includes(messageType[props.message.type])" class="name"> <div class="name">
{{ props.message.fromNickname }} {{ props.message.fromNickname }}
</div> </div>
<template v-if="messageType[props.message.type] === 'custom'"> <template v-if="messageType[props.message.type] === 'custom'">
@ -91,9 +106,10 @@
{{ store.getters['chat/parseText'](props.message) }} {{ store.getters['chat/parseText'](props.message) }}
</div> </div>
</div> </div>
<div v-if="!['revoke', 'notify'].includes(messageType[props.message.type])" class="time"> <div class="time">
{{ store.getters['chat/parseTime'](props.message.createTimeStamp) }} {{ store.getters['chat/parseTime'](props.message.createTimeStamp) }}
</div> </div>
</template>
</div> </div>
</template> </template>

Loading…
Cancel
Save