chore(addon/aikefu): 会话管理中,查看消息列表
This commit is contained in:
@@ -19,6 +19,50 @@
|
|||||||
.status-inactive {
|
.status-inactive {
|
||||||
color: #faad14;
|
color: #faad14;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 简单消息列表样式 */
|
||||||
|
.simple-message-list {
|
||||||
|
max-height: 500px;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
.message-item {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.message-item.user {
|
||||||
|
background-color: #e6f7ff;
|
||||||
|
border-left: 3px solid #1890ff;
|
||||||
|
}
|
||||||
|
.message-item.assistant {
|
||||||
|
background-color: #f6ffed;
|
||||||
|
border-left: 3px solid #52c41a;
|
||||||
|
}
|
||||||
|
.message-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.message-role {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.message-time {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.message-content {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.4;
|
||||||
|
color: #666;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
.empty-message {
|
||||||
|
text-align: center;
|
||||||
|
color: #999;
|
||||||
|
padding: 30px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="layui-card-body">
|
<div class="layui-card-body">
|
||||||
@@ -66,6 +110,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- 简单消息列表模板 -->
|
||||||
|
<script type="text/html" id="messageListTpl">
|
||||||
|
<div class="simple-message-list">
|
||||||
|
{{# if(d.length > 0) {
|
||||||
|
d.forEach(function(item) {
|
||||||
|
var roleClass = item.role === 'user' ? 'user' : 'assistant';
|
||||||
|
var roleText = item.role === 'user' ? '用户' : '机器人';
|
||||||
|
}}}
|
||||||
|
<div class="message-item {{roleClass}}">
|
||||||
|
<div class="message-header">
|
||||||
|
<span class="message-role">{{roleText}}</span>
|
||||||
|
<span class="message-time">{{item.create_time}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="message-content">{{item.content}}</div>
|
||||||
|
</div>
|
||||||
|
{{# });
|
||||||
|
} else {
|
||||||
|
}}}
|
||||||
|
<div class="empty-message">暂无消息记录</div>
|
||||||
|
{{# }
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
layui.use(['table', 'form', 'layer'], function() {
|
layui.use(['table', 'form', 'layer'], function() {
|
||||||
var table = layui.table;
|
var table = layui.table;
|
||||||
@@ -140,10 +208,49 @@
|
|||||||
if (layEvent === 'view') {
|
if (layEvent === 'view') {
|
||||||
// 查看消息
|
// 查看消息
|
||||||
layer.open({
|
layer.open({
|
||||||
type: 2,
|
type: 1,
|
||||||
title: '消息记录',
|
title: '消息记录',
|
||||||
content: ns.url("aikefu://shop/kefu/message", {conversation_id: data.conversation_id}),
|
content: '<div class="simple-message-list" style="padding: 15px; max-height: 500px; overflow-y: auto;">加载中...</div>',
|
||||||
area: ['90%', '90%']
|
area: ['80%', '70%'],
|
||||||
|
success: function(layero, index) {
|
||||||
|
// 获取消息列表
|
||||||
|
$.ajax({
|
||||||
|
url: ns.url("aikefu://shop/kefu/getMessageList"),
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
conversation_id: data.conversation_id,
|
||||||
|
page: 1,
|
||||||
|
limit: 100 // 加载最多100条消息
|
||||||
|
},
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(res) {
|
||||||
|
var messageList = res.data.list || [];
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
if (messageList.length > 0) {
|
||||||
|
messageList.forEach(function(item) {
|
||||||
|
var roleClass = item.role === 'user' ? 'user' : 'assistant';
|
||||||
|
var roleText = item.role === 'user' ? '用户' : '机器人';
|
||||||
|
|
||||||
|
html += '<div class="message-item ' + roleClass + '">';
|
||||||
|
html += '<div class="message-header">';
|
||||||
|
html += '<span class="message-role">' + roleText + '</span>';
|
||||||
|
html += '<span class="message-time">' + item.create_time + '</span>';
|
||||||
|
html += '</div>';
|
||||||
|
html += '<div class="message-content">' + item.content + '</div>';
|
||||||
|
html += '</div>';
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
html += '<div class="empty-message">暂无消息记录</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
layero.find('.simple-message-list').html(html);
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
layero.find('.simple-message-list').html('<div class="empty-message">加载消息失败</div>');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else if (layEvent === 'end') {
|
} else if (layEvent === 'end') {
|
||||||
// 结束会话
|
// 结束会话
|
||||||
|
|||||||
Reference in New Issue
Block a user