feat(mcp): MCP 调用日志只读列表页

This commit is contained in:
augushong
2026-08-16 20:55:03 +08:00
parent 918d1d4dd5
commit 25c98b6ed6
6 changed files with 187 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
var init = {
tableElem: '#currentTable',
tableRenderId: 'currentTableRenderId',
indexUrl: 'system.mcp_log/index',
addUrl: '',
editUrl: '',
readUrl: '',
deleteUrl: 'system.mcp_log/delete',
exportUrl: '',
modifyUrl: '',
};

View File

@@ -0,0 +1,9 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-index="{:auth('system.mcp_log/index')}"
data-auth-delete="{:auth('system.mcp_log/delete')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -0,0 +1,46 @@
$(function(){
// 密钥名称LEFT JOIN 关联,密钥不存在或已软删时兜底显示
var keyNameTemplet = function(d) {
if (d.mcp_key && d.mcp_key.title && (!d.mcp_key.delete_time || d.mcp_key.delete_time === 0)) {
return d.mcp_key.title;
}
return '<span style="color:#999">(已删除)#' + d.key_id + '</span>';
};
// 成功/失败徽章
var successTemplet = function(d) {
if (d.is_success == 1) {
return '<span style="display:inline-block;padding:2px 10px;border-radius:3px;color:#5FB878;background:#e8f8ef;font-size:12px;">成功</span>';
}
return '<span style="display:inline-block;padding:2px 10px;border-radius:3px;color:#FF5722;background:#ffe8e2;font-size:12px;">失败</span>';
};
// 参数摘要:截断 200 字符title 悬浮全文
var argumentsTemplet = function(d) {
if (!d.arguments) return '<span style="color:#999">-</span>';
var text = String(d.arguments);
var safe = text.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');
if (text.length > 200) {
return '<span title="' + safe + '" style="cursor:pointer;">' + safe.substring(0, 200) + '...</span>';
}
return safe;
};
ua.table.render({
init: init,
toolbar: ['refresh', 'delete'],
defaultToolbar: ['filter'],
cols: [[
{type: 'checkbox'},
{field: 'id', title: 'ID', width: 80, sort: true},
{field: 'key_id', title: '密钥', minWidth: 140, templet: keyNameTemplet, search: 'select', selectList: ua.getDataBrage('select_list_mcp_key'), selectValue: 'id', selectLabel: 'title'},
{field: 'node', title: '节点', minWidth: 180},
{field: 'is_success', title: '状态', width: 90, templet: successTemplet, search: 'select', selectList: {1: '成功', 0: '失败'}},
{field: 'cost_ms', title: '耗时(ms)', width: 100, search: false},
{field: 'arguments', title: '参数摘要', minWidth: 220, templet: argumentsTemplet, search: false},
{field: 'create_time', title: '调用时间', width: 170, templet: ua.table.date, search: 'range'},
]],
});
ua.listen();
})