فهرست منبع

叮当国医-会话审计-修复聊天消息日期以及时间无法显示的问题

cgp 1 روز پیش
والد
کامیت
308dec289e

+ 8 - 4
src/views/qw/conversationNew/ContentSearchTab.vue

@@ -39,6 +39,7 @@
         stripe
         style="width: 100%"
       >
+        <el-table-column prop="chatTypeName" label="聊天类型" width="80" />
         <el-table-column prop="senderTypeName" label="发送人类型" width="100" />
         <el-table-column prop="senderName" label="发送人" min-width="150" />
         <el-table-column prop="receiverNames" label="接收人" min-width="200">
@@ -275,12 +276,14 @@ export default {
         else if (msg.sender.type === 3) senderTypeName = '机器人';
         else senderTypeName = '未知';
 
-        const senderName = msg.sender.id;
+        // 优先使用后端返回的 name,查不到则用原始 ID 兜底
+        const senderName = msg.sender.name || msg.sender.id;
         const receiverNames = (msg.receiver_list || []).map(r => {
-          if (r.type === 1) return `员工:${r.id}`;
-          if (r.type === 2) return `客户:${r.id}`;
-          return r.id;
+          const label = r.type === 1 ? '员工' : r.type === 2 ? '客户' : '';
+          const name = r.name || r.id;
+          return label ? `${label}:${name}` : name;
         });
+        const chatTypeName = msg.chatType === 1 ? '单聊' : '群聊';
         const msgTypeName = MSG_TYPE_MAP[msg.msgtype] || '未知类型';
         let contentPreview = '';
         if (msg.msgtype === 1) {
@@ -288,6 +291,7 @@ export default {
         }
         return {
           ...msg,
+          chatTypeName,
           senderTypeName,
           senderName,
           receiverNames,

+ 3 - 13
src/views/qw/conversationNew/ConversationPanelPure.vue

@@ -457,7 +457,6 @@ export default {
         }
       })
     },
-
     async renderOrUpdateChat() {
       if (this.msgList.length === 0 || this.configError) return;
       const container = document.getElementById('chat-container');
@@ -478,7 +477,7 @@ export default {
             <view wx:for="{{data.msgList}}" wx:for-item="msg" wx:key="msgid" style="margin-bottom: 15px;">
               <!-- 日期分隔线:仅跨天时显示 -->
               <view wx:if="{{msg.showDate}}" style="text-align: center; margin-bottom: 12px;">
-                <text style="background:#e9e9e9; color:#888; padding:3px 12px; border-radius:12px; font-size:11px;">{{ msg.dateStr }}</text>
+                <span style="background:#e9e9e9; color:#888; padding:3px 12px; border-radius:12px; font-size:11px;">{{ msg.dateStr }}</span>
               </view>
               <!-- 客户/机器人消息(左对齐) -->
               <view wx:if="{{msg.sender.type == 2 || msg.sender.type == 3}}" style="display:flex; flex-direction:row; align-items:flex-start;">
@@ -488,7 +487,7 @@ export default {
                   <view style="display:flex; align-items:center; margin-bottom:4px;">
                     <ww-open-data wx:if="{{msg.sender.type == 2}}" type="externalUserName" openid="{{msg.sender.id}}" class="sender-name" />
                     <ww-open-data wx:if="{{msg.sender.type == 3}}" type="userName" openid="{{msg.sender.id}}" class="sender-name" />
-                    <text class="msg-time">{{ msg.displayTime }}</text>
+                    <span style="font-size:11px;color:#999;margin-left:8px;">{{ msg.displayTime }}</span>
                   </view>
                   <view class="msg-bubble msg-bubble-left">
                     <ww-open-message message-id="{{msg.msgid}}" secret-key="{{msg.secretKey}}" open-type="viewMessage"/>
@@ -499,7 +498,7 @@ export default {
               <view wx:if="{{msg.sender.type == 1}}" style="display:flex; flex-direction:row; justify-content:flex-end; align-items:flex-start;">
                 <view style="display:flex; flex-direction:column; align-items:flex-end; max-width:70%; margin-right:10px;">
                   <view style="display:flex; align-items:center; margin-bottom:4px;">
-                    <text class="msg-time msg-time-right">{{ msg.displayTime }}</text>
+                    <span style="font-size:11px;color:#999;margin-right:8px;">{{ msg.displayTime }}</span>
                     <ww-open-data type="userName" openid="{{msg.sender.id}}" class="sender-name" />
                   </view>
                   <view class="msg-bubble msg-bubble-right">
@@ -539,15 +538,6 @@ export default {
             text-overflow: ellipsis;
             white-space: nowrap;
           }
-          .msg-time {
-            font-size: 11px;
-            color: #999;
-            margin-left: 8px;
-          }
-          .msg-time-right {
-            margin-left: 0;
-            margin-right: 8px;
-          }
           .msg-bubble {
             padding: 10px 14px;
             border-radius: 8px;

+ 7 - 1
src/views/qw/conversationNew/EmployeeQueryTab.vue

@@ -94,7 +94,7 @@
           <ConversationPanelPure
             :corpId="currentStaff && currentStaff.corpId"
             :customerId="selectedCustomerId"
-            :staffUserId="currentStaff && currentStaff.id"
+            :staffUserId="currentStaffQwUserId"
             @logout="handleLogout"
           />
         </div>
@@ -148,6 +148,7 @@ export default {
       // 抽屉相关
       drawerVisible: false,
       currentStaff: null,
+      currentStaffQwUserId: '',  // 企业微信官方员工ID,从客户列表响应中提取
       customerList: [],
       customerTotal: 0,
       customerPageNum: 1,
@@ -249,6 +250,7 @@ export default {
       this.currentStaff = { ...row, corpId: this.corp?.corpId };
       this.drawerVisible = true;
       this.selectedCustomerId = null;
+      this.currentStaffQwUserId = '';
       this.customerPageNum = 1;
       this.loadCustomerList();
     },
@@ -268,6 +270,10 @@ export default {
         if (res.rows) {
           this.customerList = res.rows;
           this.customerTotal = res.total || 0;
+          // 从客户列表提取企业微信官方员工ID(用于会话查询,非SCRM内部ID)
+          if (!this.currentStaffQwUserId && res.rows.length > 0 && res.rows[0].qwUserId) {
+            this.currentStaffQwUserId = res.rows[0].qwUserId;
+          }
         } else {
           this.customerList = [];
           this.customerTotal = 0;