diff --git a/pages.json b/pages.json
index 58959e5..2339703 100644
--- a/pages.json
+++ b/pages.json
@@ -801,6 +801,20 @@
"title": "客服",
"group": "客服"
}
+ },
+ {
+ "path" : "chatList",
+ "style" :
+ {
+ "navigationBarTitleText" : ""
+ }
+ },
+ {
+ "path" : "chatKefu",
+ "style" :
+ {
+ "navigationBarTitleText" : ""
+ }
}]
},
{
diff --git a/pages/chat/chatKefu.vue b/pages/chat/chatKefu.vue
new file mode 100644
index 0000000..7940f89
--- /dev/null
+++ b/pages/chat/chatKefu.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/chat/chatList.vue b/pages/chat/chatList.vue
new file mode 100644
index 0000000..14a1963
--- /dev/null
+++ b/pages/chat/chatList.vue
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+
+
+ {{item.userNickname}}
+
+ {{item.messageText || item.lastMessageContent}}
+
+
+
+
+
+
+ 没有信息呦~
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/chat/components/messageList.vue b/pages/chat/components/messageList.vue
index 4a95cea..12f742c 100644
--- a/pages/chat/components/messageList.vue
+++ b/pages/chat/components/messageList.vue
@@ -2,6 +2,7 @@
-
+
@@ -27,6 +28,8 @@
@@ -43,16 +46,16 @@
diff --git a/pages/chat/components/messageListItem.vue b/pages/chat/components/messageListItem.vue
index 9ba06e9..4f09401 100644
--- a/pages/chat/components/messageListItem.vue
+++ b/pages/chat/components/messageListItem.vue
@@ -46,7 +46,7 @@
-
+
@@ -108,6 +108,7 @@
import dayjs from 'dayjs';
import { KeFuMessageContentTypeEnum, UserTypeEnum } from '@/pages/chat/util/constants';
import { emojiList } from '@/pages/chat/util/emoji';
+ import { jsonParse } from '@/sheep/util';
import sheep from '@/sheep';
import { formatDate } from '@/sheep/util';
import GoodsItem from '@/pages/chat/components/goods.vue';
@@ -130,7 +131,7 @@
default: () => [],
},
});
- const getMessageContent = computed(() => (item) => JSON.parse(item.content)); // 解析消息内容
+ const getMessageContent = computed(() => (item) => jsonParse(item.content)); // 解析消息内容
//======================= 工具 =======================
diff --git a/pages/chat/index.vue b/pages/chat/index.vue
index 22df720..8d0e105 100644
--- a/pages/chat/index.vue
+++ b/pages/chat/index.vue
@@ -1,15 +1,18 @@
-
-
+
-
+
-
+
{
const type = data.type;
if (!type) {
- console.error('未知的消息类型:' + data.value);
+ console.error('未知的消息类型:' + data);
return;
}
// 2.2 消息类型:KEFU_MESSAGE_TYPE
if (type === WebSocketMessageTypeConstants.KEFU_MESSAGE_TYPE) {
// 刷新消息列表
- await messageListRef.value.refreshMessageList(JSON.parse(data.content));
+ await messageListRef.value.refreshMessageList(jsonParse(data.content));
return;
}
// 2.3 消息类型:KEFU_MESSAGE_ADMIN_READ
@@ -184,16 +194,10 @@ const kefuName = ref('众悦商城客服');
\ No newline at end of file
+
diff --git a/sheep/util/index.js b/sheep/util/index.js
index fb0113f..858206d 100644
--- a/sheep/util/index.js
+++ b/sheep/util/index.js
@@ -137,3 +137,17 @@ export const copyValueToTarget = (target, source) => {
// 更新目标对象值
Object.assign(target, newObj);
};
+
+/**
+ * 解析 JSON 字符串
+ *
+ * @param str
+ */
+export function jsonParse(str) {
+ try {
+ return JSON.parse(str);
+ } catch (e) {
+ console.warn(`str[${str}] 不是一个 JSON 字符串`);
+ return str;
+ }
+}
\ No newline at end of file