|
@@ -4,12 +4,20 @@
|
|
<view class="message-item ss-flex-col scroll-item">
|
|
<view class="message-item ss-flex-col scroll-item">
|
|
<view class="ss-flex ss-row-center ss-col-center">
|
|
<view class="ss-flex ss-row-center ss-col-center">
|
|
<!-- 日期 -->
|
|
<!-- 日期 -->
|
|
- <view v-if="message.contentType !== KeFuMessageContentTypeEnum.SYSTEM && showTime(message, messageIndex)"
|
|
|
|
- class="date-message">
|
|
|
|
|
|
+ <view
|
|
|
|
+ v-if="
|
|
|
|
+ message.contentType !== KeFuMessageContentTypeEnum.SYSTEM &&
|
|
|
|
+ showTime(message, messageIndex)
|
|
|
|
+ "
|
|
|
|
+ class="date-message"
|
|
|
|
+ >
|
|
{{ formatDate(message.createTime) }}
|
|
{{ formatDate(message.createTime) }}
|
|
</view>
|
|
</view>
|
|
<!-- 系统消息 -->
|
|
<!-- 系统消息 -->
|
|
- <view v-if="message.contentType === KeFuMessageContentTypeEnum.SYSTEM" class="system-message">
|
|
|
|
|
|
+ <view
|
|
|
|
+ v-if="message.contentType === KeFuMessageContentTypeEnum.SYSTEM"
|
|
|
|
+ class="system-message"
|
|
|
|
+ >
|
|
{{ message.content }}
|
|
{{ message.content }}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
@@ -18,32 +26,35 @@
|
|
v-if="message.contentType !== KeFuMessageContentTypeEnum.SYSTEM"
|
|
v-if="message.contentType !== KeFuMessageContentTypeEnum.SYSTEM"
|
|
class="ss-flex ss-col-top"
|
|
class="ss-flex ss-col-top"
|
|
:class="[
|
|
:class="[
|
|
- message.senderType === UserTypeEnum.ADMIN
|
|
|
|
- ? `ss-row-left`
|
|
|
|
- : message.senderType === UserTypeEnum.MEMBER
|
|
|
|
- ? `ss-row-right`
|
|
|
|
- : '',
|
|
|
|
- ]"
|
|
|
|
|
|
+ message.senderType === UserTypeEnum.ADMIN
|
|
|
|
+ ? `ss-row-left`
|
|
|
|
+ : message.senderType === UserTypeEnum.MEMBER
|
|
|
|
+ ? `ss-row-right`
|
|
|
|
+ : '',
|
|
|
|
+ ]"
|
|
>
|
|
>
|
|
<!-- 客服头像 -->
|
|
<!-- 客服头像 -->
|
|
<image
|
|
<image
|
|
v-show="message.senderType === UserTypeEnum.ADMIN"
|
|
v-show="message.senderType === UserTypeEnum.ADMIN"
|
|
class="chat-avatar ss-m-r-24"
|
|
class="chat-avatar ss-m-r-24"
|
|
:src="
|
|
:src="
|
|
- sheep.$url.cdn(message.senderAvatar) ||
|
|
|
|
- sheep.$url.static('/static/img/shop/chat/default.png')
|
|
|
|
- "
|
|
|
|
|
|
+ sheep.$url.cdn(message.senderAvatar) ||
|
|
|
|
+ sheep.$url.static('/static/img/shop/chat/default.png')
|
|
|
|
+ "
|
|
mode="aspectFill"
|
|
mode="aspectFill"
|
|
></image>
|
|
></image>
|
|
<!-- 内容 -->
|
|
<!-- 内容 -->
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.TEXT">
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.TEXT">
|
|
- <view class="message-box" :class="{'admin': message.senderType === UserTypeEnum.ADMIN}">
|
|
|
|
|
|
+ <view class="message-box" :class="{ admin: message.senderType === UserTypeEnum.ADMIN }">
|
|
<mp-html :content="replaceEmoji(message.content)" />
|
|
<mp-html :content="replaceEmoji(message.content)" />
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.IMAGE">
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.IMAGE">
|
|
- <view class="message-box" :class="{'admin': message.senderType === UserTypeEnum.ADMIN}"
|
|
|
|
- :style="{ width: '200rpx' }">
|
|
|
|
|
|
+ <view
|
|
|
|
+ class="message-box"
|
|
|
|
+ :class="{ admin: message.senderType === UserTypeEnum.ADMIN }"
|
|
|
|
+ :style="{ width: '200rpx' }"
|
|
|
|
+ >
|
|
<su-image
|
|
<su-image
|
|
class="message-img"
|
|
class="message-img"
|
|
isPreview
|
|
isPreview
|
|
@@ -59,29 +70,23 @@
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.PRODUCT">
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.PRODUCT">
|
|
<GoodsItem
|
|
<GoodsItem
|
|
:goodsData="getMessageContent(message)"
|
|
:goodsData="getMessageContent(message)"
|
|
- @tap="
|
|
|
|
- sheep.$router.go('/pages/goods/index', {
|
|
|
|
- id: getMessageContent(message).id,
|
|
|
|
- })
|
|
|
|
- "
|
|
|
|
|
|
+ @tap="sheep.$router.go('/pages/goods/index', { id: getMessageContent(message).spuId })"
|
|
/>
|
|
/>
|
|
</template>
|
|
</template>
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.ORDER">
|
|
<template v-if="message.contentType === KeFuMessageContentTypeEnum.ORDER">
|
|
<OrderItem
|
|
<OrderItem
|
|
:orderData="getMessageContent(message)"
|
|
:orderData="getMessageContent(message)"
|
|
- @tap="
|
|
|
|
- sheep.$router.go('/pages/order/detail', {
|
|
|
|
- id: getMessageContent(message).id,
|
|
|
|
- })
|
|
|
|
- "
|
|
|
|
|
|
+ @tap="sheep.$router.go('/pages/order/detail', { id: getMessageContent(message).id })"
|
|
/>
|
|
/>
|
|
</template>
|
|
</template>
|
|
<!-- user头像 -->
|
|
<!-- user头像 -->
|
|
<image
|
|
<image
|
|
v-if="message.senderType === UserTypeEnum.MEMBER"
|
|
v-if="message.senderType === UserTypeEnum.MEMBER"
|
|
class="chat-avatar ss-m-l-24"
|
|
class="chat-avatar ss-m-l-24"
|
|
- :src="sheep.$url.cdn(message.senderAvatar) ||
|
|
|
|
- sheep.$url.static('/static/img/shop/chat/default.png')"
|
|
|
|
|
|
+ :src="
|
|
|
|
+ sheep.$url.cdn(message.senderAvatar) ||
|
|
|
|
+ sheep.$url.static('/static/img/shop/chat/default.png')
|
|
|
|
+ "
|
|
mode="aspectFill"
|
|
mode="aspectFill"
|
|
>
|
|
>
|
|
</image>
|
|
</image>
|
|
@@ -104,7 +109,7 @@
|
|
// 消息
|
|
// 消息
|
|
message: {
|
|
message: {
|
|
type: Object,
|
|
type: Object,
|
|
- default: ()=>({}),
|
|
|
|
|
|
+ default: () => ({}),
|
|
},
|
|
},
|
|
// 消息索引
|
|
// 消息索引
|
|
messageIndex: {
|
|
messageIndex: {
|
|
@@ -112,10 +117,10 @@
|
|
default: 0,
|
|
default: 0,
|
|
},
|
|
},
|
|
// 消息列表
|
|
// 消息列表
|
|
- messageList:{
|
|
|
|
|
|
+ messageList: {
|
|
type: Array,
|
|
type: Array,
|
|
default: () => [],
|
|
default: () => [],
|
|
- }
|
|
|
|
|
|
+ },
|
|
});
|
|
});
|
|
const getMessageContent = computed(() => (item) => JSON.parse(item.content)); // 解析消息内容
|
|
const getMessageContent = computed(() => (item) => JSON.parse(item.content)); // 解析消息内容
|
|
|
|
|