2507 lines
119 KiB
HTML
2507 lines
119 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Termination 后台系统</title>
|
||
<script src="https://cdn.tailwindcss.com"></script>
|
||
<link href="https://cdn.gvsds.com/font-awesome/css/all.min.css" rel="stylesheet">
|
||
<script src="/assets/js/socket/Socket.IO.js"></script>
|
||
<script src="/assets/js/core/echarts.min.js"></script>
|
||
<!--这是一项伟大的、永无止境的工程,请随时保持敬畏之心。目前我们只有框架部分,不到完整进度的 1%-->
|
||
<!--我们短期目标是争取获得500-1000台计算机的控制权,并为我们所用-->
|
||
<!--一切为了组织的利益-->
|
||
<script>
|
||
tailwind.config = {
|
||
theme: {
|
||
extend: {
|
||
colors: {
|
||
primary: '#165DFF',
|
||
secondary: '#36CFC9',
|
||
accent: '#722ED1',
|
||
dark: {
|
||
DEFAULT: '#0A0E17',
|
||
100: '#374151',
|
||
200: '#1F2937',
|
||
300: '#111827',
|
||
400: '#030712'
|
||
},
|
||
'dark-light': '#1D2129',
|
||
'console-bg': '#000000',
|
||
'console-text': '#C9CDD4',
|
||
success: '#00B42A',
|
||
warning: '#FF7D00',
|
||
danger: '#F53F3F',
|
||
'border-gray': '#2C313A',
|
||
neutral: {
|
||
100: '#0a0a0a',
|
||
200: '#121212',
|
||
300: '#222222',
|
||
400: '#1e1e1e',
|
||
800: '#e0e0e0'
|
||
},
|
||
danger: {
|
||
100: '#3b111b',
|
||
500: '#ff3b30'
|
||
},
|
||
successBg: '#1b5e20',
|
||
error: '#e57373',
|
||
errorBg: '#b71c1c',
|
||
panelBg: '#1e1e1e',
|
||
bgDark: '#121212',
|
||
borderDark: '#333333'
|
||
},
|
||
fontFamily: {
|
||
monospace: ['Fira Code', 'LXGW WenKai Mono', 'monospace'],
|
||
segoe: ['Segoe UI', 'Tahoma', 'Geneva', 'Verdana', 'sans-serif'],
|
||
sans: ['Inter', 'system-ui', 'sans-serif'],
|
||
},
|
||
boxShadow: {
|
||
'card': 'none',
|
||
}
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
/*body {
|
||
margin: 0;
|
||
padding: 0;
|
||
background-image: url('/assets/img/face.png');
|
||
background-repeat: no-repeat;
|
||
background-size: auto;
|
||
background-position: center center;
|
||
min-height: 100vh;
|
||
}*/
|
||
|
||
body *:not(.no-o-bg) {
|
||
background-color: rgba(29, 33, 41, 0.1) !important;
|
||
/* color: #fff !important; */
|
||
}
|
||
|
||
/*
|
||
body .bg-console-bg {
|
||
background-color: rgba(0, 0, 0, 0.85) !important;
|
||
}*/
|
||
|
||
/* .terminal-line {
|
||
font-family: monospace;
|
||
overflow: hidden; /* 隐藏溢出内容 *
|
||
white-space: pre; /* 保留空格和换行,但允许自动换行 *
|
||
width: 0;
|
||
animation: typing 0.5s linear forwards;
|
||
word-wrap: break-word; /* 允许长单词换行 *
|
||
}
|
||
|
||
@keyframes typing {
|
||
from { width: 0 }
|
||
to { width: 100% }
|
||
} */
|
||
|
||
|
||
.python-error-container {
|
||
background-color: rgba(255, 0, 0, 0.05);
|
||
border-left: 3px solid #ff5555;
|
||
padding: 1rem;
|
||
border-radius: 0 4px 4px 0;
|
||
font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
|
||
font-size: 0.9rem;
|
||
margin-bottom: 1rem;
|
||
}
|
||
|
||
.text-terminal-error {
|
||
color: #ff5555;
|
||
}
|
||
|
||
.text-terminal-warning {
|
||
color: #ffb86c;
|
||
}
|
||
|
||
.text-terminal-info {
|
||
color: #8be9fd;
|
||
}
|
||
|
||
.text-terminal-accent {
|
||
color: #50fa7b;
|
||
}
|
||
|
||
.text-terminal-text {
|
||
color: #f8f8f2;
|
||
}
|
||
|
||
#CPUChart {
|
||
width: 100%;
|
||
height: 100%;
|
||
margin: 20px auto;
|
||
}
|
||
.resource-container {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: space-around;
|
||
padding: 1px 0;
|
||
}
|
||
.resource-card {
|
||
width: 15%;
|
||
height: 24vh;
|
||
text-align: center;
|
||
background: #000;
|
||
border-radius: 10px;
|
||
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
|
||
transition: all 0.3s;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
.resource-card:hover {
|
||
transform: translateY(-5px);
|
||
box-shadow: 0 6px 12px rgba(0,0,0,0.15);
|
||
}
|
||
.card-header {
|
||
padding: 10px;
|
||
font-size: 16px;
|
||
font-weight: bold;
|
||
color: #bdbdbd;
|
||
border-bottom: 1px solid #3a3a3a;
|
||
}
|
||
.progress-container {
|
||
width: 120px;
|
||
height: 120px;
|
||
margin: 1px auto;
|
||
position: relative;
|
||
}
|
||
.progress-circle {
|
||
width: 100%;
|
||
height: 100%;
|
||
transform: rotate(-90deg);
|
||
}
|
||
.progress-bg {
|
||
fill: none;
|
||
stroke: #2a2a2a;
|
||
stroke-width: 8;
|
||
}
|
||
.progress-bar {
|
||
fill: none;
|
||
stroke-width: 8;
|
||
stroke-linecap: round;
|
||
stroke-dasharray: 314;
|
||
stroke-dashoffset: 314;
|
||
transition: stroke-dashoffset 1s ease-in-out;
|
||
}
|
||
.progress-text {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
font-size: 24px;
|
||
font-weight: bold;
|
||
}
|
||
.progress-info {
|
||
margin-top: 1px;
|
||
font-size: 14px;
|
||
color: #666;
|
||
}
|
||
.cpu-color {
|
||
stroke: #FF6B6B;
|
||
}
|
||
.gpu-color {
|
||
stroke: #4ECDC4;
|
||
}
|
||
.memory-color {
|
||
stroke: #45B7D1;
|
||
}
|
||
.network-color {
|
||
stroke: #FFA07A;
|
||
}
|
||
.card-footer {
|
||
position: absolute;
|
||
bottom: 0;
|
||
width: 100%;
|
||
background: #313131;
|
||
font-size: 12px;
|
||
color: #888;
|
||
}
|
||
|
||
/* 动画效果 */
|
||
@keyframes spin {
|
||
0% { transform: rotate(0deg); }
|
||
100% { transform: rotate(360deg); }
|
||
}
|
||
.animate-spin {
|
||
animation: spin 1s linear infinite;
|
||
}
|
||
|
||
/* 全局样式 */
|
||
html, body {
|
||
margin: 0;
|
||
padding: 0;
|
||
height: 100%;
|
||
box-sizing: border-box;
|
||
background-color: #0a0a0a;
|
||
}
|
||
|
||
* {
|
||
box-sizing: inherit;
|
||
}
|
||
|
||
/* 滚动条美化 - 适配深色主题 */
|
||
::-webkit-scrollbar {
|
||
width: 8px;
|
||
height: 8px;
|
||
}
|
||
::-webkit-scrollbar-track {
|
||
background: #121212;
|
||
}
|
||
::-webkit-scrollbar-thumb {
|
||
background: #333;
|
||
}
|
||
::-webkit-scrollbar-thumb:hover {
|
||
background: #444;
|
||
}
|
||
|
||
dialog::backdrop {
|
||
background-color: rgba(0, 0, 0, 0.7);
|
||
}
|
||
.modal {
|
||
background-color: #1e1e1e;
|
||
border: 1px solid #333;
|
||
width: 90%;
|
||
max-width: 1200px;
|
||
height: 90%;
|
||
max-height: 800px;
|
||
color: #e0e0e0; /* 模态框内默认文字颜色(白色) */
|
||
}
|
||
.modal-header {
|
||
background-color: #121212;
|
||
border-bottom: 1px solid #333;
|
||
padding: 1rem;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
.modal-header h2 {
|
||
color: #e0e0e0; /* 模态框标题白色 */
|
||
}
|
||
.modal-close {
|
||
background: none;
|
||
border: none;
|
||
color: #e0e0e0; /* 关闭按钮白色 */
|
||
font-size: 1.5rem;
|
||
cursor: pointer;
|
||
}
|
||
.modal-body {
|
||
padding: 1rem;
|
||
height: calc(100% - 60px);
|
||
overflow-y: auto;
|
||
}
|
||
|
||
.content-auto {
|
||
content-visibility: auto;
|
||
}
|
||
|
||
.log-container {
|
||
background-color: #1f2937;
|
||
color: #e5e7eb;
|
||
width: 100%;
|
||
height: 100%;
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
||
font-size: 0.875rem;
|
||
line-height: 1.625;
|
||
border: 0px;
|
||
}
|
||
|
||
/* 统计面板文字颜色优化 */
|
||
#stats-panel {
|
||
color: #e0e0e0; /* 统计面板文字白色 */
|
||
}
|
||
#stats-panel .text-secondary {
|
||
color: #0066cc; /* 保持次要文字蓝色 */
|
||
}
|
||
#stats-panel .text-success {
|
||
color: #81c784; /* 成功文字绿色 */
|
||
}
|
||
#stats-panel .text-error {
|
||
color: #e57373; /* 错误文字红色 */
|
||
}
|
||
</style>
|
||
|
||
<style type="text/tailwindcss">
|
||
@layer utilities {
|
||
.content-auto {
|
||
content-visibility: auto;
|
||
}
|
||
.scrollbar-hide::-webkit-scrollbar {
|
||
display: none;
|
||
}
|
||
.scrollbar-thin::-webkit-scrollbar {
|
||
width: 4px;
|
||
}
|
||
.scrollbar-thin::-webkit-scrollbar-thumb {
|
||
background-color: rgba(255, 255, 255, 0.2);
|
||
border-radius: 4px;
|
||
}
|
||
.terminal-line {
|
||
@apply text-console-text font-mono pt-0 pb-0 px-2;
|
||
}
|
||
.tab-active {
|
||
@apply bg-primary text-white border-primary;
|
||
}
|
||
.btn-hover {
|
||
@apply transition-all duration-200 hover:bg-opacity-80 active:bg-opacity-100;
|
||
}
|
||
.btn-primary {
|
||
@apply bg-primary text-white btn-hover;
|
||
}
|
||
.btn-primary-download {
|
||
@apply bg-neutral-400 text-primary px-4 py-2 border border-borderDark hover:bg-panelBg transition-colors duration-200;
|
||
}
|
||
.btn-secondary {
|
||
@apply bg-secondary text-white btn-hover;
|
||
}
|
||
.btn-accent {
|
||
@apply bg-accent text-white btn-hover;
|
||
}
|
||
.btn-outline {
|
||
@apply border border-gray-600 text-gray-300 hover:bg-gray-700 active:bg-gray-600 transition-all duration-200;
|
||
}
|
||
.sidebar-item {
|
||
@apply flex items-center gap-3 px-4 py-3 text-gray-400 hover:bg-primary/10 hover:text-white transition-all duration-200 cursor-pointer;
|
||
}
|
||
.sidebar-item.active {
|
||
@apply bg-primary/20 text-white border-l-4 border-primary;
|
||
}
|
||
.card-btn {
|
||
@apply bg-dark-light rounded-lg p-4 border border-border-gray hover:border-primary/50 transition-all duration-200 cursor-pointer;
|
||
}
|
||
.card-btn:hover {
|
||
@apply transform scale-[1.02];
|
||
}
|
||
.modal-backdrop {
|
||
@apply fixed inset-0 bg-black/70 z-40 transition-opacity duration-300;
|
||
}
|
||
.modal-content {
|
||
@apply fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[90%] max-w-4xl bg-dark-light rounded-lg shadow-xl z-50 transition-all duration-300 transform opacity-100;
|
||
}
|
||
.fade-in {
|
||
animation: fadeIn 0.5s ease-in-out;
|
||
}
|
||
@keyframes fadeIn {
|
||
0% { opacity: 0; }
|
||
100% { opacity: 1; }
|
||
}
|
||
/*.char-appear {
|
||
display: inline-block;
|
||
opacity: 0;
|
||
animation: charAppear 0.1s forwards;
|
||
}*/
|
||
@keyframes charAppear {
|
||
to { opacity: 1; }
|
||
}
|
||
.slide-in {
|
||
animation: slideIn 0.3s ease-out;
|
||
}
|
||
@keyframes slideIn {
|
||
from { transform: translateX(-20px); opacity: 0; }
|
||
to { transform: translateX(0); opacity: 1; }
|
||
}
|
||
.file-tree-item {
|
||
@apply flex items-center gap-2 px-2 py-1.5 text-sm hover:bg-primary/10 rounded cursor-pointer;
|
||
}
|
||
.file-tree-item.active {
|
||
@apply bg-primary/20 text-white;
|
||
}
|
||
.card-hover {
|
||
@apply hover:shadow-lg hover:shadow-primary/20 transition-all duration-300 hover:scale-[1.01];
|
||
}
|
||
.mask-enter {
|
||
animation: maskEnter 0.3s ease forwards;
|
||
}
|
||
.mask-leave {
|
||
animation: maskLeave 0.3s ease forwards;
|
||
}
|
||
.sidebar-enter {
|
||
animation: sidebarEnter 0.3s ease forwards;
|
||
}
|
||
.sidebar-leave {
|
||
animation: sidebarLeave 0.3s ease forwards;
|
||
}
|
||
.refresh-rotate {
|
||
animation: rotate 1.5s linear infinite;
|
||
}
|
||
.blur-loading {
|
||
animation: blurLoading 1s ease-in-out infinite alternate;
|
||
}
|
||
.text-truncate {
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
.table-fixed-layout {
|
||
table-layout: fixed;
|
||
}
|
||
.border-angular {
|
||
border-radius: 0;
|
||
}
|
||
.form-label {
|
||
@apply block text-sm font-medium text-secondary mb-1;
|
||
}
|
||
.form-input {
|
||
@apply border border-borderDark bg-neutral-400 text-neutral-800 rounded-none px-3 py-2 focus:outline-none focus:ring-1 focus:ring-primary focus:border-primary;
|
||
}
|
||
.task-card {
|
||
@apply w-24 h-24 m-2 inline-flex flex-col justify-center items-center border border-borderDark transition-all duration-300 cursor-pointer;
|
||
}
|
||
|
||
/* 确保状态类能覆盖基础样式 */
|
||
.task-card.task-card-success {
|
||
@apply bg-successBg border-success text-white !important;
|
||
}
|
||
|
||
.task-card.task-card-error {
|
||
@apply bg-errorBg border-error text-white !important;
|
||
}
|
||
.content-auto {
|
||
content-visibility: auto;
|
||
}
|
||
.loading-overlay {
|
||
background-color: rgba(17, 24, 39, 0.7);
|
||
}
|
||
.loading-more {
|
||
text-align: center;
|
||
padding: 1rem;
|
||
color: #9ca3af;
|
||
}
|
||
.btn-group button {
|
||
position: relative;
|
||
z-index: 10;
|
||
pointer-events: auto;
|
||
}
|
||
.loading-overlay {
|
||
z-index: 50;
|
||
}
|
||
#km-tab {
|
||
min-height: 0;
|
||
}
|
||
.controls {
|
||
flex-wrap: wrap;
|
||
gap: 2rem;
|
||
background-color: #000;
|
||
}
|
||
|
||
.context-menu-shadow {
|
||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
||
}
|
||
.content-auto {
|
||
content-visibility: auto;
|
||
}
|
||
.file-hover {
|
||
@apply hover:bg-dark-100 transition-colors duration-200;
|
||
}
|
||
|
||
.content-auto {
|
||
content-visibility: auto;
|
||
}
|
||
.thread-card {
|
||
@apply bg-dark-200 rounded-lg p-5 shadow-lg transition-all duration-300 hover:shadow-primary/20 hover:translate-y-[-2px];
|
||
}
|
||
.param-input {
|
||
@apply bg-dark-100 border border-dark-100 rounded-md px-3 py-2 text-gray-100 focus:outline-none focus:ring-2 focus:ring-primary/50 transition-all;
|
||
}
|
||
.launch-btn {
|
||
@apply bg-primary hover:bg-primary/90 text-white font-medium py-2 px-4 rounded-md transition-all duration-300 flex items-center justify-center gap-2 transform hover:scale-105 active:scale-95;
|
||
}
|
||
}
|
||
|
||
@keyframes maskEnter {
|
||
from { opacity: 0; }
|
||
to { opacity: 1; }
|
||
}
|
||
|
||
@keyframes maskLeave {
|
||
from { opacity: 1; }
|
||
to { opacity: 0; }
|
||
}
|
||
|
||
@keyframes sidebarEnter {
|
||
from { transform: translateX(100%); }
|
||
to { transform: translateX(0); }
|
||
}
|
||
|
||
@keyframes sidebarLeave {
|
||
from { transform: translateX(0); }
|
||
to { transform: translateX(100%); }
|
||
}
|
||
|
||
@keyframes rotate {
|
||
from { transform: rotate(0deg); }
|
||
to { transform: rotate(360deg); }
|
||
}
|
||
|
||
@keyframes blurLoading {
|
||
from { backdrop-filter: blur(0px); opacity: 0.6; }
|
||
to { backdrop-filter: blur(5px); opacity: 0.8; }
|
||
}
|
||
</style>
|
||
</head>
|
||
<body class="bg-dark text-white font-inter min-h-screen flex flex-col overflow-hidden">
|
||
<!-- Header -->
|
||
<header class="bg-dark-light border-b border-border-gray px-4 py-2 flex items-center justify-between">
|
||
<div class="flex items-center space-x-2">
|
||
<div class="h-3 w-3 rounded-full bg-success"></div>
|
||
<div class="h-3 w-3 rounded-full bg-warning"></div>
|
||
<div class="h-3 w-3 rounded-full bg-danger"></div>
|
||
<h1 class="ml-4 text-lg font-semibold text-primary">Termination Console v4.2.0</h1>
|
||
</div>
|
||
<div class="flex items-center space-x-4">
|
||
<span class="text-sm text-gray-400">已连接到: <span class="text-primary" id="Nav_PCName">等待数据回调...</span>
|
||
</span>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- Main Content -->
|
||
<main class="flex-1 flex flex-col overflow-hidden">
|
||
<!-- Sidebar and Content Area -->
|
||
<div class="flex-1 flex overflow-hidden">
|
||
<!-- Sidebar -->
|
||
<aside class="w-64 bg-dark-light border-r border-border-gray flex flex-col overflow-hidden">
|
||
<nav class="flex-1 overflow-y-auto scrollbar-thin">
|
||
<div class="px-4 py-3 border-b border-border-gray">
|
||
<h2 class="text-xs uppercase text-gray-500 font-medium">主菜单</h2>
|
||
</div>
|
||
<ul class="py-2">
|
||
<li class="sidebar-item active" data-tab="console">
|
||
<i class="fa fa-terminal w-5"></i>
|
||
<span>控制台</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="thread-tasks">
|
||
<i class="fa fa-tasks w-5"></i>
|
||
<span>线程任务</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="process-tasks">
|
||
<i class="fa fa-tasks w-5"></i>
|
||
<span>进程任务</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="task-manager">
|
||
<i class="fa fa-tasks w-5"></i>
|
||
<span>任务列表</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="scheduled-tasks">
|
||
<i class="fa fa-calendar-check w-5"></i>
|
||
<span>计划任务</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="event-tasks">
|
||
<i class="fa fa-bell w-5"></i>
|
||
<span>事件任务</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="configuration">
|
||
<i class="fa fa-cogs w-5"></i>
|
||
<span>傀儡配置</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="realtimescreen">
|
||
<i class="fa fa-cogs w-5"></i>
|
||
<span>实时屏幕</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="km">
|
||
<i class="fa fa-cogs w-5"></i>
|
||
<span>键盘鼠标</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="hiscr">
|
||
<i class="fa fa-cogs w-5"></i>
|
||
<span>历史预览</span>
|
||
</li>
|
||
</ul>
|
||
|
||
<div class="px-4 py-3 border-t border-b border-border-gray">
|
||
<h2 class="text-xs uppercase text-gray-500 font-medium">系统</h2>
|
||
</div>
|
||
<ul class="py-2">
|
||
<li class="sidebar-item" data-tab="system-info">
|
||
<i class="fa fa-area-chart w-5"></i>
|
||
<span>系统信息</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="operation-log">
|
||
<i class="fa fa-history w-5"></i>
|
||
<span>操作日志</span>
|
||
</li>
|
||
<li class="sidebar-item" data-tab="work-station">
|
||
<i class="fa fa-shield w-5"></i>
|
||
<span>内工作站</span>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
|
||
<div class="p-3 border-t border-border-gray">
|
||
<div class="flex items-center justify-between text-sm">
|
||
<div class="flex items-center gap-2">
|
||
<div class="h-2 w-2 rounded-full bg-success"></div>
|
||
<span>TERMINATION</span>
|
||
</div>
|
||
<span class="text-gray-400">v4.2.0</span>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
|
||
<!-- Content Area -->
|
||
<div class="flex-1 flex flex-col overflow-hidden">
|
||
<!-- Console Tab Content -->
|
||
<div id="console-tab" class="flex-1 flex flex-col overflow-hidden">
|
||
<!-- Console Area -->
|
||
<div class="bg-console-bg overflow-hidden flex flex-col" style="height: 50vh;">
|
||
<!-- Console Output -->
|
||
<div id="console-output" class="flex-1 overflow-y-auto scrollbar-thin p-4">
|
||
<div class="terminal-line">Welcome To Use Termination V4.2.0 Web Console</div>
|
||
<div class="terminal-line">The Winds Of Victory R Blowing From Behind Me.</div>
|
||
<div class="terminal-line">------------------------------------------------</div>
|
||
</div>
|
||
|
||
<!-- Console Input -->
|
||
<div class="border-t border-gray-800 p-3 flex items-center">
|
||
<span class="text-primary font-mono mr-2">$</span>
|
||
<input id="console-input" type="text" class="bg-transparent border-none focus:outline-none w-full font-mono text-console-text" placeholder="Enter Ur Command Here...">
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Control Bar -->
|
||
<div class="bg-dark-light border-t border-border-gray">
|
||
<!-- Tabs -->
|
||
<div class="flex border-b border-border-gray">
|
||
<button class="tab-active py-2 px-4 border-b-2 font-medium">
|
||
<i class="fa fa-terminal mr-1"></i> 控制台
|
||
</button>
|
||
<button class="tab-active py-2 px-4 border-b-2 font-medium" data-tab="Python">
|
||
<i class="fa fa-hdd mr-1"></i> Python
|
||
</button>
|
||
<button class="py-2 px-4 border-b-2 border-transparent text-gray-400 hover:text-white transition-colors" data-tab="Cmd">
|
||
<i class="fa fa-cogs mr-1"></i> CMD
|
||
</button>
|
||
<button class="py-2 px-4 border-b-2 border-transparent text-gray-400 hover:text-white transition-colors" data-tab="PowerShell">
|
||
<i class="fa fa-cogs mr-1"></i> Powershell
|
||
</button>
|
||
</div>
|
||
<!-- Controls -->
|
||
<div class="p-3 flex flex-wrap items-center justify-between gap-3">
|
||
<div class="flex flex-wrap gap-2">
|
||
<button id="execute-btn" class="btn-primary py-1.5 px-4 rounded flex items-center no-o-bg">
|
||
<i class="fa fa-play mr-1"></i> 执行
|
||
</button>
|
||
<button id="restart-btn" class="btn-outline py-1.5 px-4 rounded flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 重启
|
||
</button>
|
||
<button id="terminate-btn" class="btn-outline py-1.5 px-4 rounded flex items-center">
|
||
<i class="fa fa-stop mr-1"></i> 终止
|
||
</button>
|
||
<button id="board-btn" class="btn-outline py-1.5 px-4 rounded flex items-center">
|
||
<i class="fa fa-play mr-1"></i> 面板
|
||
</button>
|
||
</div>
|
||
|
||
<div class="flex items-center gap-4">
|
||
<div class="flex items-center text-sm text-gray-400">
|
||
<i class="fa fa-microchip mr-1"></i> CPU: <span id="cpu-usage" class="text-success">??%</span>
|
||
</div>
|
||
<div class="flex items-center text-sm text-gray-400">
|
||
<i class="fa fa-microchip mr-1"></i> RAM: <span id="ram-usage" class="text-warning">??%</span>
|
||
</div>
|
||
<div class="flex items-center text-sm text-gray-400">
|
||
<i class="fa fa-internet-explorer mr-1"></i> NET: <span id="net-usage" class="text-success">??%</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- System Info Panel -->
|
||
<div class="bg-console-bg p-3 rounded-lg m-3">
|
||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
|
||
<div>
|
||
<h3 class="text-xs uppercase text-gray-500 mb-1">设备构建 ID</h3>
|
||
<div class="flex items-center text-sm">
|
||
<i class="fa fa-server text-primary mr-2"></i>
|
||
<span id="SocketIO_PCMachineGUID">等待数据回调...</span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h3 class="text-xs uppercase text-gray-500 mb-1">设备 SocketIO ID</h3>
|
||
<div class="flex items-center text-sm">
|
||
<i class="fa fa-clock text-secondary mr-2"></i>
|
||
<span id="SocketIO_SID">等待数据回调...</span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h3 class="text-xs uppercase text-gray-500 mb-1">设备连接时间</h3>
|
||
<div class="flex items-center text-sm">
|
||
<i class="fa fa-wifi text-accent mr-2"></i>
|
||
<span id="SocketIO_PConnectime">等待数据回调...</span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h3 class="text-xs uppercase text-gray-500 mb-1">设备最后同步时间</h3>
|
||
<div class="flex items-center text-sm">
|
||
<i class="fa fa-wifi text-accent mr-2"></i>
|
||
<span id="SocketIO_PCLastSynchronizationTime">等待数据回调...</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="resource-container">
|
||
<div class="resource-card">
|
||
<div class="card-header">CPU 使用率</div>
|
||
<div class="progress-container">
|
||
<svg class="progress-circle" viewBox="0 0 120 120">
|
||
<circle class="progress-bg" cx="60" cy="60" r="50"></circle>
|
||
<circle class="progress-bar cpu-color" cx="60" cy="60" r="50" id="cpu-progress"></circle>
|
||
</svg>
|
||
<div class="progress-text" id="cpu-text">??%</div>
|
||
</div>
|
||
<div class="progress-info" id="cpu-info">占用: ???% / 核心: ???</div>
|
||
<div class="card-footer">最后更新: <span id="cpu-time">--:--:--</span>
|
||
</div>
|
||
</div>
|
||
<div class="resource-card">
|
||
<div class="card-header">内存 使用率</div>
|
||
<div class="progress-container">
|
||
<svg class="progress-circle" viewBox="0 0 120 120">
|
||
<circle class="progress-bg" cx="60" cy="60" r="50"></circle>
|
||
<circle class="progress-bar memory-color" cx="60" cy="60" r="50" id="memory-progress"></circle>
|
||
</svg>
|
||
<div class="progress-text" id="memory-text">??%</div>
|
||
</div>
|
||
<div class="progress-info" id="memory-info">占用: ??GB/??GB</div>
|
||
<div class="card-footer">最后更新: <span id="memory-time">--:--:--</span>
|
||
</div>
|
||
</div>
|
||
<div class="resource-card">
|
||
<div class="card-header">网络 使用率</div>
|
||
<div class="progress-container">
|
||
<svg class="progress-circle" viewBox="0 0 120 120">
|
||
<circle class="progress-bg" cx="60" cy="60" r="50"></circle>
|
||
<circle class="progress-bar network-color" cx="60" cy="60" r="50" id="network-progress"></circle>
|
||
</svg>
|
||
<div class="progress-text" id="network-text">??%</div>
|
||
</div>
|
||
<div class="progress-info" id="network-info">上行: ??KB/s 下行: ??KB/s</div>
|
||
<div class="card-footer">最后更新: <span id="network-time">--:--:--</span>
|
||
</div>
|
||
</div>
|
||
<div class="resource-card" style="width: 50%;">
|
||
<div class="card-header">运行图表</div>
|
||
<div class="progress-container" id="CPUChart">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="board-overlay" class="fixed inset-0 bg-black bg-opacity-70 flex items-center justify-center z-50 hidden opacity-0 transition-opacity duration-300 no-o-bg">
|
||
<div class="bg-gray-800 rounded-xl shadow-2xl w-full max-w-5xl max-h-[80vh] overflow-y-auto p-6 transform transition-transform duration-300 scale-95 no-o-bg">
|
||
<h2 class="text-white text-2xl font-bold mb-6 text-center border-b border-gray-700 pb-4 no-o-bg">
|
||
<i class="fa fa-th-large mr-2"></i>快捷命令
|
||
</h2>
|
||
<div id="buttonContainer" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 no-o-bg"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="thread-tasks-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">线程任务</h2>
|
||
<form id="update-form">
|
||
<div class="flex flex-wrap items-center gap-4 p-4 rounded-lg">
|
||
<div class="flex items-center">
|
||
<label class="block text-gray-300 mr-2" for="update-url">URL</label>
|
||
<input type="text" id="update-url" name="update-url" placeholder="Enter URL Here"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="http://www.gvsds.com/FTP/Termination.bin">
|
||
</div>
|
||
<div class="flex gap-2">
|
||
<button type="button" id="update-task"
|
||
class="bg-blue-800 hover:bg-blue-700 text-white px-4 py-1 rounded transition-colors duration-200">
|
||
发起更新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
<div class="flex items-center gap-2">
|
||
<button id="refreshBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="flex flex-col h-screen">
|
||
<!-- 主内容区 -->
|
||
<div class="flex-1 overflow-y-auto bg-console-bg p-4 pb-32">
|
||
<div id="processContainer" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||
<!-- 进程卡片将通过JS动态渲染 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 编辑侧边栏遮罩 -->
|
||
<div id="editMask" class="fixed inset-0 bg-black/60 z-40 opacity-0 pointer-events-none transition-opacity duration-300 flex items-center justify-end no-o-bg">
|
||
<!-- 编辑侧边栏 -->
|
||
<div id="editSidebar" class="bg-dark-light w-full max-w-md h-full border-l border-border-gray transform translate-x-full transition-transform duration-300 overflow-y-auto no-o-bg">
|
||
<div class="p-4 border-b border-border-gray flex items-center justify-between no-o-bg">
|
||
<h3 class="font-medium text-lg no-o-bg">编辑进程</h3>
|
||
<button id="closeEditBtn" class="text-gray-400 hover:text-gray-200 no-o-bg">
|
||
<i class="fa fa-times text-xl no-o-bg"></i>
|
||
</button>
|
||
</div>
|
||
<div id="editFormContainer" class="p-4 no-o-bg">
|
||
<!-- 编辑表单将通过JS动态渲染 -->
|
||
</div>
|
||
<div class="p-4 border-t border-border-gray flex gap-2 no-o-bg">
|
||
<button id="cancelEditBtn" class="btn-outline py-2 px-4 flex-1 no-o-bg">
|
||
<i class="fa fa-times mr-1 no-o-bg"></i> 取消
|
||
</button>
|
||
<button id="submitEditBtn" class="bg-primary text-light py-2 px-4 flex-1 hover:bg-primary/80 transition-colors duration-200 no-o-bg">
|
||
<i class="fa fa-check mr-1 no-o-bg"></i> 提交
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="process-tasks-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">进程任务</h2>
|
||
<div class="flex items-center gap-2">
|
||
<button id="P_refreshBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="flex flex-col h-screen">
|
||
<div class="flex-1 overflow-y-auto bg-console-bg p-4 pb-32">
|
||
<div id="P_processContainer" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="P_editMask" class="fixed inset-0 bg-black/60 z-40 opacity-0 pointer-events-none transition-opacity duration-300 flex items-center justify-end no-o-bg">
|
||
<div id="P_editSidebar" class="bg-dark-light w-full max-w-md h-full border-l border-border-gray transform translate-x-full transition-transform duration-300 overflow-y-auto no-o-bg">
|
||
<div class="p-4 border-b border-border-gray flex items-center justify-between no-o-bg">
|
||
<h3 class="font-medium text-lg no-o-bg">编辑进程</h3>
|
||
<button id="P_closeEditBtn" class="text-gray-400 hover:text-gray-200 no-o-bg">
|
||
<i class="fa fa-times text-xl no-o-bg"></i>
|
||
</button>
|
||
</div>
|
||
<div id="P_editFormContainer" class="p-4 no-o-bg"></div>
|
||
<div class="p-4 border-t border-border-gray flex gap-2 no-o-bg">
|
||
<button id="P_cancelEditBtn" class="btn-outline py-2 px-4 flex-1 no-o-bg">
|
||
<i class="fa fa-times mr-1 no-o-bg"></i> 取消
|
||
</button>
|
||
<button id="P_submitEditBtn" class="bg-primary text-light py-2 px-4 flex-1 hover:bg-primary/80 transition-colors duration-200 no-o-bg">
|
||
<i class="fa fa-check mr-1 no-o-bg"></i> 提交
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="scheduled-tasks-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">计划任务</h2>
|
||
<div class="flex items-center gap-2">
|
||
<button class="btn-primary py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-plus mr-1"></i> 新建任务
|
||
</button>
|
||
<button class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="flex-1 overflow-y-auto bg-console-bg p-4">
|
||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">每日系统备份</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">执行时间</span>
|
||
<span>01:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">频率</span>
|
||
<span>每日</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">上次执行</span>
|
||
<span>2025-07-16 01:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">下次执行</span>
|
||
<span>2025-07-17 01:00</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-play mr-1"></i> 运行
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">每周安全扫描</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">执行时间</span>
|
||
<span>02:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">频率</span>
|
||
<span>每周日</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">上次执行</span>
|
||
<span>2025-07-13 02:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">下次执行</span>
|
||
<span>2025-07-20 02:00</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-play mr-1"></i> 运行
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">每月系统更新</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">执行时间</span>
|
||
<span>03:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">频率</span>
|
||
<span>每月1日</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">上次执行</span>
|
||
<span>2025-07-01 03:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">下次执行</span>
|
||
<span>2025-08-01 03:00</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-play mr-1"></i> 运行
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">数据库优化</h3>
|
||
<span class="text-xs bg-warning/20 text-warning px-2 py-0.5 rounded">已暂停</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">执行时间</span>
|
||
<span>04:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">频率</span>
|
||
<span>每周三</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">上次执行</span>
|
||
<span>2025-07-09 04:00</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">下次执行</span>
|
||
<span>暂停中</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
<button class="btn-primary text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-play mr-1"></i> 启用
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Event Tasks Tab Content (Initially Hidden) -->
|
||
<div id="event-tasks-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">事件任务</h2>
|
||
<div class="flex items-center gap-2">
|
||
<button class="btn-primary py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-plus mr-1"></i> 新建任务
|
||
</button>
|
||
<button class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="flex-1 overflow-y-auto bg-console-bg p-4">
|
||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">磁盘空间不足</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="text-sm text-gray-400 mb-3">
|
||
当磁盘空间使用率超过90%时触发警报
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">触发条件</span>
|
||
<span>磁盘使用率 > 90%</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">操作</span>
|
||
<span>发送邮件通知</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">上次触发</span>
|
||
<span>从未</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">CPU 使用率过高</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="text-sm text-gray-400 mb-3">
|
||
当 CPU 使用率持续5分钟超过80%时自动重启服务
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">触发条件</span>
|
||
<span>CPU 使用率 > 80% (持续5分钟)</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">操作</span>
|
||
<span>重启 termination 服务</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">上次触发</span>
|
||
<span>2025-07-12 14:35</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">SSH 登录尝试</h3>
|
||
<span class="text-xs bg-primary/20 text-primary px-2 py-0.5 rounded">已启用</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="text-sm text-gray-400 mb-3">
|
||
检测到异常 SSH 登录尝试时记录并阻止
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">触发条件</span>
|
||
<span>5分钟内5次失败登录</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">操作</span>
|
||
<span>IP 封禁 + 发送警报</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">上次触发</span>
|
||
<span>2025-07-15 08:12</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-dark-light rounded-lg border border-border-gray overflow-hidden">
|
||
<div class="p-3 border-b border-border-gray flex items-center justify-between">
|
||
<h3 class="font-medium">服务崩溃</h3>
|
||
<span class="text-xs bg-warning/20 text-warning px-2 py-0.5 rounded">已暂停</span>
|
||
</div>
|
||
<div class="p-3">
|
||
<div class="text-sm text-gray-400 mb-3">
|
||
检测到 termination 服务崩溃时自动重启
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">触发条件</span>
|
||
<span>服务停止运行</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm mb-2">
|
||
<span class="text-gray-400">操作</span>
|
||
<span>重启服务 + 记录日志</span>
|
||
</div>
|
||
<div class="flex items-center justify-between text-sm">
|
||
<span class="text-gray-400">上次触发</span>
|
||
<span>2025-07-05 19:47</span>
|
||
</div>
|
||
<div class="mt-3 flex gap-2">
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-pencil mr-1"></i> 编辑
|
||
</button>
|
||
<button class="btn-outline text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-trash mr-1"></i> 删除
|
||
</button>
|
||
<button class="btn-primary text-xs py-1 px-2 flex-1">
|
||
<i class="fa fa-play mr-1"></i> 启用
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Configuration Tab Content (Initially Hidden) -->
|
||
<div id="configuration-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">傀儡配置</h2>
|
||
</div>
|
||
|
||
<!-- 可点击的配置TABs -->
|
||
<div class="border-b border-border-gray flex">
|
||
<button class="py-2 px-4 text-sm font-medium border-b-2 border-primary text-white" data-tab="basic-config">基本配置</button>
|
||
<button class="py-2 px-4 text-sm font-medium border-b-2 border-transparent text-gray-400 hover:text-white hover:border-gray-500" data-tab="instance-config">实例配置</button>
|
||
<button class="py-2 px-4 text-sm font-medium border-b-2 border-transparent text-gray-400 hover:text-white hover:border-gray-500" data-tab="twntwork-config">TWNTWork 进程配置</button>
|
||
<button class="py-2 px-4 text-sm font-medium border-b-2 border-transparent text-gray-400 hover:text-white hover:border-gray-500" data-tab="twnt-config">TWNT 进程配置</button>
|
||
<button class="py-2 px-4 text-sm font-medium border-b-2 border-transparent text-gray-400 hover:text-white hover:border-gray-500" data-tab="kernel-config">内核配置</button>
|
||
</div>
|
||
|
||
<!-- 配置表单容器(各TAB对应内容) -->
|
||
<div class="flex-1 overflow-y-auto bg-console-bg p-4">
|
||
<!-- 基本配置表单(默认显示) -->
|
||
<div id="basic-config" class="bg-dark-light rounded-lg p-4 border border-border-gray">
|
||
<h3 class="font-medium mb-4">基本配置</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">傀儡名称</label>
|
||
<input type="text" value="termination-01" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">主控服务器地址</label>
|
||
<input type="text" value="192.168.1.100:8888" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">通信协议</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>TWNT/2.0</option>
|
||
<option>TWNT/1.5</option>
|
||
<option>TWNT/1.0</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">连接方式</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>双向 TLS</option>
|
||
<option>单向 TLS</option>
|
||
<option>明文</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">心跳间隔(秒)</label>
|
||
<input type="number" value="30" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">重连尝试次数</label>
|
||
<input type="number" value="10" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
</div>
|
||
|
||
<h3 class="font-medium mb-4 mt-6">安全设置</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">认证密钥</label>
|
||
<input type="password" value="**********" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">密钥长度(位)</label>
|
||
<input type="number" value="2048" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">加密算法</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>AES-256-GCM</option>
|
||
<option>AES-128-GCM</option>
|
||
<option>ChaCha20-Poly1305</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">认证方式</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>证书认证</option>
|
||
<option>令牌认证</option>
|
||
<option>混合认证</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-6 flex justify-end gap-3">
|
||
<button class="btn-outline py-1.5 px-4 rounded">重置</button>
|
||
<button class="btn-primary py-1.5 px-4 rounded">保存更改</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 实例配置表单(默认隐藏) -->
|
||
<div id="instance-config" class="bg-dark-light rounded-lg p-4 border border-border-gray hidden">
|
||
<h3 class="font-medium mb-4">实例配置</h3>
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">实例名称</label>
|
||
<input type="text" value="instance-001" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">实例数量</label>
|
||
<input type="number" value="5" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">CPU 限制(核)</label>
|
||
<input type="number" step="0.1" value="2.5" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">内存限制(GB)</label>
|
||
<input type="number" step="0.5" value="4" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">启动方式</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>自动启动</option>
|
||
<option>手动启动</option>
|
||
<option>延迟启动</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">最大运行时长(小时)</label>
|
||
<input type="number" value="72" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
</div>
|
||
|
||
<h3 class="font-medium mb-4 mt-6">实例监控</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">监控频率(秒)</label>
|
||
<input type="number" value="10" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">告警阈值(CPU%)</label>
|
||
<input type="number" value="80" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-6 flex justify-end gap-3">
|
||
<button class="btn-outline py-1.5 px-4 rounded">重置</button>
|
||
<button class="btn-primary py-1.5 px-4 rounded">保存更改</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- TWNTWork 进程配置表单(默认隐藏) -->
|
||
<div id="twntwork-config" class="bg-dark-light rounded-lg p-4 border border-border-gray hidden">
|
||
<h3 class="font-medium mb-4">TWNTWork 进程配置</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">进程名称</label>
|
||
<input type="text" value="twntwork-proc" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">进程数量</label>
|
||
<input type="number" value="3" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">启动优先级</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>高</option>
|
||
<option>中</option>
|
||
<option>低</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">日志路径</label>
|
||
<input type="text" value="/var/log/twntwork/" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">超时时间(秒)</label>
|
||
<input type="number" value="60" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">重启策略</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>失败重启</option>
|
||
<option>定时重启</option>
|
||
<option>不重启</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-6 flex justify-end gap-3">
|
||
<button class="btn-outline py-1.5 px-4 rounded">重置</button>
|
||
<button class="btn-primary py-1.5 px-4 rounded">保存更改</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- TWNT 进程配置表单(默认隐藏) -->
|
||
<div id="twnt-config" class="bg-dark-light rounded-lg p-4 border border-border-gray hidden">
|
||
<h3 class="font-medium mb-4">TWNT 进程配置</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">进程 ID</label>
|
||
<input type="text" value="twnt-888" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">监听端口</label>
|
||
<input type="number" value="9000" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">最大连接数</label>
|
||
<input type="number" value="1000" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">协议版本</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>v2.1</option>
|
||
<option>v2.0</option>
|
||
<option>v1.9</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">缓冲区大小(KB)</label>
|
||
<input type="number" value="512" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">压缩方式</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>gzip</option>
|
||
<option>zstd</option>
|
||
<option>不压缩</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-6 flex justify-end gap-3">
|
||
<button class="btn-outline py-1.5 px-4 rounded">重置</button>
|
||
<button class="btn-primary py-1.5 px-4 rounded">保存更改</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 内核配置表单(默认隐藏) -->
|
||
<div id="kernel-config" class="bg-dark-light rounded-lg p-4 border border-border-gray hidden">
|
||
<h3 class="font-medium mb-4">内核配置</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">内核版本</label>
|
||
<input type="text" value="5.15.0-78-generic" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">调度策略</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>CFS</option>
|
||
<option>RT</option>
|
||
<option>Deadline</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">内存分配策略</label>
|
||
<select class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
<option>自动均衡</option>
|
||
<option>优先本地</option>
|
||
<option>强制连续</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">IO 优先级</label>
|
||
<input type="number" min="0" max="7" value="3" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">最大打开文件数</label>
|
||
<input type="number" value="65535" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">SWAP 使用率阈值(%)</label>
|
||
<input type="number" value="60" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
</div>
|
||
|
||
<h3 class="font-medium mb-4 mt-6">内核参数</h3>
|
||
|
||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">net.core.somaxconn</label>
|
||
<input type="number" value="1024" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
<div>
|
||
<label class="block text-sm text-gray-400 mb-1">vm.swappiness</label>
|
||
<input type="number" value="10" class="w-full bg-console-bg border border-border-gray rounded px-3 py-2 focus:outline-none focus:border-primary">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mt-6 flex justify-end gap-3">
|
||
<button class="btn-outline py-1.5 px-4 rounded">重置</button>
|
||
<button class="btn-primary py-1.5 px-4 rounded">保存更改</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="realtimescreen-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">实时屏幕</h2>
|
||
<form id="control-form">
|
||
<div class="flex flex-wrap items-center gap-4 p-4 rounded-lg">
|
||
<div class="flex items-center">
|
||
<label class="block text-gray-300 mr-2" for="compression-level">图片压缩等级(0-20)</label>
|
||
<input type="text" id="compression-level" name="firstInput" placeholder="0-20"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="15">
|
||
</div>
|
||
<div class="flex items-center">
|
||
<label class="block text-gray-300 mr-2" for="wait-time">单帧尾等待时间</label>
|
||
<input type="text" id="wait-time" name="secondInput" placeholder="秒"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="1">
|
||
</div>
|
||
<div class="flex gap-2">
|
||
<button type="button" id="start-task"
|
||
class="bg-blue-800 hover:bg-blue-700 text-white px-4 py-1 rounded transition-colors duration-200 no-o-bg">
|
||
运行实时屏幕任务
|
||
</button>
|
||
<button type="button" id="stop-task"
|
||
class="bg-gray-800 hover:bg-gray-700 text-white px-4 py-1 rounded transition-colors duration-200 no-o-bg">
|
||
终止工作进程
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div id="vm-screen" class="relative bg-black w-full h-full overflow-hidden">
|
||
<!-- 控制面板切换按钮 -->
|
||
<!--div id="sidebar-toggle" class="bg-[#393D49] text-white h-10 w-full flex items-center justify-center cursor-pointer z-50 relative">
|
||
▼ 显示控制面板 ▼
|
||
</div>
|
||
<div id="sidebar" class="absolute top-10 left-0 w-full shadow-lg z-40 transform -translate-y-full transition-transform duration-300 p-4 box-sizing border-b border-gray-700 bg-gray-800">
|
||
<form id="control-form">
|
||
<div class="flex flex-wrap items-center gap-4 bg-gray-900 p-4 rounded-lg">
|
||
<div class="flex items-center">
|
||
<label class="block w-48 text-gray-300 mr-2" for="compression-level">图片压缩等级(0-20)</label>
|
||
<input type="text" id="compression-level" name="firstInput" placeholder="0-20"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="15">
|
||
</div>
|
||
|
||
<div class="flex items-center">
|
||
<label class="block w-48 text-gray-300 mr-2" for="wait-time">单帧尾等待时间</label>
|
||
<input type="text" id="wait-time" name="secondInput" placeholder="秒"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="1">
|
||
</div>
|
||
|
||
<div class="flex gap-2">
|
||
<button type="button" id="start-task"
|
||
class="bg-blue-800 hover:bg-blue-700 text-white px-4 py-1 rounded transition-colors duration-200">
|
||
运行实时屏幕任务
|
||
</button>
|
||
<button type="button" id="stop-task"
|
||
class="bg-gray-800 hover:bg-gray-700 text-white px-4 py-1 rounded transition-colors duration-200">
|
||
终止工作进程
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div-->
|
||
|
||
<!-- 图像显示区域 -->
|
||
<div id="image-container" class="absolute top-10 left-0 w-full h-[calc(100%-2.5rem)] bg-black flex items-center justify-center overflow-hidden">
|
||
<img id="bytesImageView" style="display: none;">
|
||
<p id="demoText" class="text-white"></p>
|
||
</div>
|
||
|
||
<!-- 消息提示容器 -->
|
||
<div id="message-container" class="fixed top-4 right-4 z-50 flex flex-col gap-2"></div>
|
||
</div>
|
||
</div>
|
||
<div id="operation-log-tab" class="flex-1 flex flex-col overflow-hidden hidden">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">日志</h2>
|
||
<div class="flex items-center gap-2">
|
||
<button id="refreshLogBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
<button id="clearLogBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-trash mr-1"></i> 清空
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="border-dark-600 rounded-lg overflow-hidden">
|
||
<div id="logContainer" class="log-container overflow-y-auto whitespace-pre-wrap"></div>
|
||
</div>
|
||
</div>
|
||
<div id="km-tab" class="flex-1 flex flex-col hidden overflow-y-auto">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between">
|
||
<h2 class="font-medium">键盘鼠标</h2>
|
||
<div class="flex items-center gap-2">
|
||
<span id="activityCount">0</span> 条活动记录
|
||
<span class="ml-4" id="pageInfo">第 1 页</span>
|
||
<button id="refreshKMBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
<button id="sendnow" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-paper-plane mr-1"></i> 立即传输队列数据
|
||
</button>
|
||
<button id="clearBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-trash mr-1"></i> 清空记录
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="container mx-auto px-4 py-6 max-w-7xl">
|
||
<div class="input-section mb-6 ml-6">
|
||
<div class="panel-title flex items-center text-lg font-semibold text-gray-300 mb-4">
|
||
<i class="fa fa-list-alt mr-2"></i> 输入活动记录
|
||
</div>
|
||
<div class="relative">
|
||
<div id="loadingOverlay" class="loading-overlay absolute inset-0 flex items-center justify-center hidden">
|
||
<div class="animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-primary"></div>
|
||
</div>
|
||
<div id="inputDisplay" class="min-h-[200px] p-5 bg-dark-900 rounded-lg text-gray-300 text-base leading-relaxed">
|
||
<div class="empty-state text-center py-10 text-gray-500">
|
||
<i class="fa fa-keyboard text-5xl text-gray-700 mb-4"></i>
|
||
<p>暂无输入活动记录</p>
|
||
</div>
|
||
</div>
|
||
<div id="loadingMore" class="loading-more hidden">
|
||
<i class="fa fa-circle-notch fa-spin mr-2"></i> 加载更多数据...
|
||
</div>
|
||
<div id="noMoreData" class="loading-more hidden">
|
||
<i class="fa fa-check mr-2"></i> 已加载全部数据
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="timestamp text-right text-gray-500 text-sm" id="lastUpdateTime">
|
||
最后更新时间: 尚未获取数据
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="hiscr-tab" class="flex-1 flex flex-col overflow-hidden hidden relative">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between z-10">
|
||
<h2 class="font-medium">历史预览</h2>
|
||
<form id="hiscr-form">
|
||
<div class="flex flex-wrap items-center gap-4 p-4 rounded-lg">
|
||
<div class="flex items-center">
|
||
<label class="block text-gray-300 mr-2" for="hiscr-page">页码</label>
|
||
<input type="text" id="hiscr-page" name="hiscr-page" placeholder="NUMBER"
|
||
class="bg-gray-800 border border-gray-700 text-gray-200 rounded px-2 py-1 focus:border-blue-500 focus:outline-none"
|
||
value="1">
|
||
</div>
|
||
<div class="flex gap-2">
|
||
<button type="button" id="hiscr-start"
|
||
class="bg-blue-800 hover:bg-blue-700 text-white px-4 py-1 rounded transition-colors duration-200">
|
||
跳转
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div class="flex-1 flex items-center justify-center p-4">
|
||
<img id="currentSlide" class="slide-img loading"
|
||
style="max-width: 1000px; width: 100%; height: auto;"
|
||
alt="当前幻灯片">
|
||
</div>
|
||
<div class="container mx-auto px-4 py-6 max-w-7xl">
|
||
<div class="bg-black relative">
|
||
<div class="absolute bottom-4 left-0 right-0 flex justify-center space-x-4">
|
||
<button id="prevBtn" class="bg-white bg-opacity-20 text-white px-4 py-2 rounded hover:bg-opacity-30 focus:outline-none">
|
||
上一张
|
||
</button>
|
||
<span id="pageIndicator" class="text-white bg-black bg-opacity-50 px-3 py-2 rounded">
|
||
第 0 页
|
||
</span>
|
||
<button id="nextBtn" class="bg-white bg-opacity-20 text-white px-4 py-2 rounded hover:bg-opacity-30 focus:outline-none">
|
||
下一张
|
||
</button>
|
||
</div>
|
||
<div id="preloadContainer" class="hidden"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="system-info-tab" class="flex-1 flex flex-col overflow-y-auto hidden relative">
|
||
<div class="bg-dark-light border-b border-border-gray p-3 flex items-center justify-between z-10">
|
||
<h2 class="font-medium">系统信息</h2>
|
||
<div class="flex items-center gap-2">
|
||
<button id="refreshInfoBtn" class="btn-outline py-1 px-3 text-sm flex items-center">
|
||
<i class="fa fa-refresh mr-1"></i> 刷新
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="container mx-auto px-4 py-6 max-w-7xl">
|
||
<div class="bg-gray-900 rounded-xl shadow-2xl">
|
||
<div class="px-6 py-4 border-b border-gray-800">
|
||
<h2 class="text-xl font-semibold text-gray-100">Termination 基础分析信息</h2>
|
||
</div>
|
||
<table class="w-full text-left">
|
||
<thead class="bg-gray-800 text-gray-300">
|
||
<tr>
|
||
<th class="px-6 py-4 font-medium text-sm uppercase tracking-wide border-b border-gray-700">主库</th>
|
||
<th class="px-6 py-4 font-medium text-sm uppercase tracking-wide border-b border-gray-700">主键</th>
|
||
<th class="px-6 py-4 font-medium text-sm uppercase tracking-wide border-b border-gray-700">含义</th>
|
||
<th class="px-6 py-4 font-medium text-sm uppercase tracking-wide border-b border-gray-700">值</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody class="text-gray-400">
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">SYS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">平台</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="sys_platform">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">SYS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Python Version</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Python 版本</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="sys_python_version">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">SYS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Executable</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">可执行文件</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="sys_executable">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">SYS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Cpu Count</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Cpu 数量</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="sys_cpu_count">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">SYS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Pid</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">进程号</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="sys_pid">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">OS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Login User</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">登录用户</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="os_login_user">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">OS</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Cwd</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">当前工作目录</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="os_cwd">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">System</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">系统</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="platform_system">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Release</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">系统版本</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="platform_release">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Machine</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">机器类型</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="platform_machine">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Processor</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">处理器</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="platform_processor">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Platform</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Win32 Ver</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Windows 版本</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="platform_win32_ver">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Socket</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">Host Name</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">主机名</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="socket_hostname">???</td>
|
||
</tr>
|
||
<tr class="border-b border-gray-800">
|
||
<td class="px-6 py-4 whitespace-nowrap">Socket</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">IP Address</td>
|
||
<td class="px-6 py-4 whitespace-nowrap">IP 地址</td>
|
||
<td class="px-6 py-4 whitespace-nowrap" id="socket_ip_address">???</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="work-station-tab" class="flex-1 flex flex-col overflow-y-auto hidden relative">
|
||
<div class="text-gray-100 min-h-screen p-6 md:p-10">
|
||
<!-- 主要内容区域 -->
|
||
<div class="max-w-6xl mx-auto">
|
||
<!-- Thread 区域容器 -->
|
||
<div class="space-y-8">
|
||
<!-- Thread A -->
|
||
<section class="thread-card">
|
||
<div class="flex items-center justify-between mb-5">
|
||
<h2 class="text-xl font-semibold flex items-center gap-2">
|
||
<span class="bg-primary/20 text-primary p-2 rounded-md">
|
||
<i class="fa fa-cogs"></i>
|
||
</span>
|
||
Thread_TWNTWork
|
||
</h2>
|
||
<span class="text-xs px-2 py-1 bg-dark-100 rounded-full text-gray-400">TerminationWirelessNetworkTransit - T 项目无线网络传输控制模块</span>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.MonitorWorker</h3>
|
||
<p class="font-medium mb-3 text-gray-300">MonitorWorker 监控线程 应急修复,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.ListenKMWorker</h3>
|
||
<p class="font-medium mb-3 text-gray-300">ListenKMWorker 监听键鼠 应急修复,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="DeltaX" class="block text-sm text-gray-400 mb-1">DeltaX</label>
|
||
<input type="number" id="DeltaX" class="param-input w-full" placeholder="40" value="40">
|
||
</div>
|
||
<div>
|
||
<label for="DeltaY" class="block text-sm text-gray-400 mb-1">DeltaY</label>
|
||
<input type="number" id="DeltaY" class="param-input w-full" placeholder="40" value="40">
|
||
</div>
|
||
<div>
|
||
<label for="WaitTimes" class="block text-sm text-gray-400 mb-1">WaitTimes</label>
|
||
<input type="number" id="WaitTimes" class="param-input w-full" placeholder="0" value="0">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="60.0" value="60.0">
|
||
</div>
|
||
<div>
|
||
<label for="Level" class="block text-sm text-gray-400 mb-1">Level</label>
|
||
<input type="number" id="Level" class="param-input w-full" placeholder="10" value="10">
|
||
</div>
|
||
<div>
|
||
<label for="SendKMCount" class="block text-sm text-gray-400 mb-1">SendKMCount</label>
|
||
<input type="number" id="SendKMCount" class="param-input w-full" placeholder="5000" value="5000">
|
||
</div>
|
||
<div>
|
||
<label for="WaitTimesMax" class="block text-sm text-gray-400 mb-1">WaitTimesMax</label>
|
||
<input type="number" id="WaitTimesMax" class="param-input w-full" placeholder="10" value="10">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNTProcessSynchronousWorker</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNTProcessSynchronousWorker 同步处理线程 应急修复,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="15.0" value="15.0">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNTCoverScreen</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNTCoverScreen 预览图同步线程 应急修复,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="120.0" value="120.0">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNTRealTimeScreen</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNTRealTimeScreen 实时屏幕线程 应急启动,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="Level" class="block text-sm text-gray-400 mb-1">Level</label>
|
||
<input type="number" id="Level" class="param-input w-full" placeholder="15" value="15">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="1.0" value="1.0">
|
||
</div>
|
||
<div>
|
||
<label for="PCMachineGUID" class="block text-sm text-gray-400 mb-1">PCMachineGUID</label>
|
||
<input type="text" id="PCMachineGUID" class="param-input w-full" placeholder="PCMachineGUID" value="JS...">
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", function() {
|
||
document.getElementById("PCMachineGUID").value = PCMachineGUID;
|
||
});
|
||
</script>
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNESynchronousTProcess</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNESynchronousTProcess 存活证明线程 应急修复,不适用于正常的 T 程序。</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="10.0" value="10.0">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNEUpdateApp</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNEUpdateApp 更新程序</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="FileURL" class="block text-sm text-gray-400 mb-1">FileURL</label>
|
||
<input type="text" id="FileURL" class="param-input w-full" placeholder="https://www.gvsds.com/FTP/Termination.bin" value="https://www.gvsds.com/FTP/Termination.bin">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.TWNETProcess</h3>
|
||
<p class="font-medium mb-3 text-gray-300">TWNETProcess 命令行线程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-1 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="TWNT" class="block text-sm text-gray-400 mb-1">TWNT 句柄</label>
|
||
<input type="code" id="TWNT" class="param-input w-full code" placeholder="Termination.TWNT" value="Termination.TWNT">
|
||
</div>
|
||
<div>
|
||
<label for="data" class="block text-sm text-gray-400 mb-1">data</label>
|
||
<input type="text" id="data" class="param-input w-full" placeholder="{'work': 'Python', 'Command': 'print(1)'}" value="{'work': 'Python', 'Command': 'print(1)'}">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_TWNTWork.Thread_Test</h3>
|
||
<p class="font-medium mb-3 text-gray-300">Thread_Test 测试线程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-5 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="start" class="block text-sm text-gray-400 mb-1">start</label>
|
||
<input type="number" id="start" class="param-input w-full" placeholder="0" value="0">
|
||
</div>
|
||
<div>
|
||
<label for="stop" class="block text-sm text-gray-400 mb-1">stop</label>
|
||
<input type="number" id="stop" class="param-input w-full" placeholder="10000" value="10000">
|
||
</div>
|
||
<div>
|
||
<label for="step" class="block text-sm text-gray-400 mb-1">step</label>
|
||
<input type="number" id="step" class="param-input w-full" placeholder="1" value="1">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="thread-card">
|
||
<div class="flex items-center justify-between mb-5">
|
||
<h2 class="text-xl font-semibold flex items-center gap-2">
|
||
<span class="bg-secondary/20 text-secondary p-2 rounded-md">
|
||
<i class="fa fa-cog"></i>
|
||
</span>
|
||
Thread_Web
|
||
</h2>
|
||
<span class="text-xs px-2 py-1 bg-dark-100 rounded-full text-gray-400">虚拟网络模块</span>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Web.Web</h3>
|
||
<p class="font-medium mb-3 text-gray-300">Web 本地服务器线程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="AppName" class="block text-sm text-gray-400 mb-1">AppName</label>
|
||
<input type="text" id="AppName" class="param-input w-full" placeholder="Termination Web" value="Termination Web">
|
||
</div>
|
||
<div>
|
||
<label for="Port" class="block text-sm text-gray-400 mb-1">Port</label>
|
||
<input type="number" id="Port" class="param-input w-full" placeholder="36666" value="36666">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Web.Thread_FTP</h3>
|
||
<p class="font-medium mb-3 text-gray-300">FTP 本地服务器线程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-1 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Welcome" class="block text-sm text-gray-400 mb-1">Welcome</label>
|
||
<input type="text" id="Welcome" class="param-input w-full" placeholder="T_Pyftpdlib Based FTP Server Ready." value="T_Pyftpdlib Based FTP Server Ready.">
|
||
</div>
|
||
<div>
|
||
<label for="Port" class="block text-sm text-gray-400 mb-1">Port</label>
|
||
<input type="number" id="Port" class="param-input w-full" placeholder="36667" value="36667">
|
||
</div>
|
||
<div>
|
||
<label for="Users" class="block text-sm text-gray-400 mb-1">Users</label>
|
||
<input type="code" id="Users" class="param-input w-full code" placeholder='[{"UserName": "UserName", "Password": "Password", "Path": r"C:\\", "Perm": "elradfmwMT"}]' value='[{"UserName": "UserName", "Password": "Password", "Path": r"C:\\", "Perm": "elradfmwMT"}]'>
|
||
</div>
|
||
<div>
|
||
<label for="max_cons" class="block text-sm text-gray-400 mb-1">max_cons</label>
|
||
<input type="number" id="max_cons" class="param-input w-full" placeholder="256" value="256">
|
||
</div>
|
||
<div>
|
||
<label for="max_cons_per_ip" class="block text-sm text-gray-400 mb-1">max_cons_per_ip</label>
|
||
<input type="number" id="max_cons_per_ip" class="param-input w-full" placeholder="5" value="5">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Web.Thread_Frp</h3>
|
||
<p class="font-medium mb-3 text-gray-300">Frp 快速反向代理(端口映射)</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-1 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="ForwardHost" class="block text-sm text-gray-400 mb-1">ForwardHost</label>
|
||
<input type="text" id="ForwardHost" class="param-input w-full" placeholder="127.0.0.1" value="127.0.0.1">
|
||
</div>
|
||
<div>
|
||
<label for="LocalPort" class="block text-sm text-gray-400 mb-1">LocalPort</label>
|
||
<input type="number" id="LocalPort" class="param-input w-full" placeholder="5900" value="5900">
|
||
</div>
|
||
<div>
|
||
<label for="RemotePort" class="block text-sm text-gray-400 mb-1">RemotePort</label>
|
||
<input type="number" id="RemotePort" class="param-input w-full" placeholder="5002" value="5002">
|
||
</div>
|
||
<div>
|
||
<label for="Mode" class="block text-sm text-gray-400 mb-1">Mode</label>
|
||
<input type="text" id="Mode" class="param-input w-full" placeholder="tcp" value="tcp">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="thread-card">
|
||
<div class="flex items-center justify-between mb-5">
|
||
<h2 class="text-xl font-semibold flex items-center gap-2">
|
||
<span class="bg-secondary/20 text-secondary p-2 rounded-md">
|
||
<i class="fa fa-cog"></i>
|
||
</span>
|
||
Thread_AutoRun
|
||
</h2>
|
||
<span class="text-xs px-2 py-1 bg-dark-100 rounded-full text-gray-400">开机自启动服务注册模块</span>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_AutoRun.AutoRunSetup</h3>
|
||
<p class="font-medium mb-3 text-gray-300">开机自启动服务注册线程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="thread-card">
|
||
<div class="flex items-center justify-between mb-5">
|
||
<h2 class="text-xl font-semibold flex items-center gap-2">
|
||
<span class="bg-secondary/20 text-secondary p-2 rounded-md">
|
||
<i class="fa fa-cog"></i>
|
||
</span>
|
||
TLUI.UIThread
|
||
</h2>
|
||
<span class="text-xs px-2 py-1 bg-dark-100 rounded-full text-gray-400">用户交互界面控制模块</span>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.Thread_BlueScreen</h3>
|
||
<p class="font-medium mb-3 text-gray-300">蓝屏模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="AllowClose" class="block text-sm text-gray-400 mb-1">AllowClose</label>
|
||
<select id="AllowClose" class="param-input w-full px-3 py-2 border rounded-md bg-white focus:outline-none focus:ring-2 focus:ring-blue-500">
|
||
<option value="True" selected>True</option>
|
||
<option value="False">False</option>
|
||
</select>
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.Thread_HAHA</h3>
|
||
<p class="font-medium mb-3 text-gray-300">HAHA</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="fontPath" class="block text-sm text-gray-400 mb-1">fontPath</label>
|
||
<input type="code" id="fontPath" class="param-input w-full code" placeholder="T.Static_TTF" value="T.Static_TTFile">
|
||
</div>
|
||
<div>
|
||
<label for="soundPath" class="block text-sm text-gray-400 mb-1">soundPath</label>
|
||
<input type="code" id="soundPath" class="param-input w-full code" placeholder="T.Static_HAFile" value="T.Static_HAFile">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.Thread_CountDown</h3>
|
||
<p class="font-medium mb-3 text-gray-300">倒计时模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Seconds" class="block text-sm text-gray-400 mb-1">Seconds</label>
|
||
<input type="number" id="Seconds" class="param-input w-full" placeholder="10" value="10">
|
||
</div>
|
||
<div>
|
||
<label for="Text" class="block text-sm text-gray-400 mb-1">Text</label>
|
||
<input type="text" id="Text" class="param-input w-full" placeholder="倒计时" value="">
|
||
</div>
|
||
<div>
|
||
<label for="Bg" class="block text-sm text-gray-400 mb-1">Bg</label>
|
||
<input type="text" id="Bg" class="param-input w-full" placeholder="red" value="red">
|
||
</div>
|
||
<div>
|
||
<label for="Fg" class="block text-sm text-gray-400 mb-1">Fg</label>
|
||
<input type="text" id="Fg" class="param-input w-full" placeholder="white" value="white">
|
||
</div>
|
||
<div>
|
||
<label for="CallBack" class="block text-sm text-gray-400 mb-1">CallBack</label>
|
||
<input type="code" id="CallBack" class="param-input w-full code" placeholder="None" value="None">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.Thread_TypingMessage</h3>
|
||
<p class="font-medium mb-3 text-gray-300">打字机模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Static_TTF" class="block text-sm text-gray-400 mb-1">Static_TTF</label>
|
||
<input type="code" id="Static_TTF" class="param-input w-full code" placeholder="T.Static_TTF" value="T.Static_TTFile">
|
||
</div>
|
||
<div>
|
||
<label for="ChineseFontSize" class="block text-sm text-gray-400 mb-1">ChineseFontSize</label>
|
||
<input type="number" id="ChineseFontSize" class="param-input w-full" placeholder="36" value="36">
|
||
</div>
|
||
<div>
|
||
<label for="EnglishFontSize" class="block text-sm text-gray-400 mb-1">EnglishFontSize</label>
|
||
<input type="number" id="EnglishFontSize" class="param-input w-full" placeholder="24" value="24">
|
||
</div>
|
||
<div>
|
||
<label for="TerminationTitleSize" class="block text-sm text-gray-400 mb-1">TerminationTitleSize</label>
|
||
<input type="number" id="TerminationTitleSize" class="param-input w-full" placeholder="48" value="48">
|
||
</div>
|
||
<div>
|
||
<label for="TerminationSubtitleSize" class="block text-sm text-gray-400 mb-1">TerminationSubtitleSize</label>
|
||
<input type="number" id="TerminationSubtitleSize" class="param-input w-full" placeholder="20" value="20">
|
||
</div>
|
||
<div>
|
||
<label for="CursorVisible" class="block text-sm text-gray-400 mb-1">CursorVisible</label>
|
||
<select id="CursorVisible" class="param-input w-full px-3 py-2 border rounded-md bg-white focus:outline-none focus:ring-2 focus:ring-blue-500">
|
||
<option value="True" selected>True</option>
|
||
<option value="False">False</option>
|
||
</select>
|
||
</div>
|
||
<div>
|
||
<label for="CurrentLine" class="block text-sm text-gray-400 mb-1">CurrentLine</label>
|
||
<input type="number" id="CurrentLine" class="param-input w-full" placeholder="0" value="0">
|
||
</div>
|
||
<div>
|
||
<label for="TypingSpeed" class="block text-sm text-gray-400 mb-1">TypingSpeed</label>
|
||
<input type="number" id="TypingSpeed" class="param-input w-full" placeholder="10" value="10">
|
||
</div>
|
||
<div class="col-span-1 md:col-span-3">
|
||
<label for="TextPairs" class="block text-sm text-gray-400 mb-1">TextPairs</label>
|
||
<textarea type="code" id="TextPairs" class="param-input w-full code" placeholder="[('ZH', 'EN')]">[('这只是一个编程和社会工程学实验', 'This is just a programming and social engineering experiment'), ('在窗口关闭后,继续做您应该做的事情', 'After the window closes, continue with what you should be doing'), ('很抱歉让您以这种方式认识我及我们团队,即使您仍不知道我是谁', 'I\'m sorry for letting you get to know me and our team in this way,\neven if you still don\'t know who I am'), ('我们期望永远不会发生像今天一样的事情', 'We expect nothing like this to never happen'), ('总之,请诸君注意网络安全等内容,具体内容不细说了', 'In short, please pay attention to network security and other content,\nand I won\'t go into detail about the specific content'), ('我还得在做件以我现在的身份应当做的事情,\n我奉劝诸位在已经收影响的电脑上不要尝试安装任何杀毒软件,\n你不可能安装成功\n如果你决定使用WinPE,只要我们感知到有许多电脑长时间离线,\n我们会立刻开启极端计划加密在线的电脑,并且使用混淆API,\n在你做出任何决定之前,思考利弊\n当前,我不会影响你的任何工作', '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nI still have to do something that I should do as I am now, intimidation,\nI advise you not to try to install any antivirus software on the computer\nthat has been affected, you can\'t install it successfully, if you decide to\nuse WinPE, as long as we perceive that there are many computers that are offline\nfor a long time, we will immediately open the extreme plan to encrypt\nthe computers online,and use the obfuscation API, Before any decision,\nthink about the pros and cons, At the moment,\nI will not affect any of your work'), ('祝各位好运!', 'Good Luck To Everyone!')]</textarea>
|
||
</div>
|
||
<div class="col-span-1 md:col-span-3">
|
||
<label for="TerminationTexts" class="block text-sm text-gray-400 mb-1">TerminationTexts</label>
|
||
<textarea type="code" id="TerminationTexts" class="param-input w-full code" placeholder="['T']">['Termination Virus Version 4.2.0', 'Termination Project']</textarea>
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.Thread_SpaceTunnelEffect</h3>
|
||
<p class="font-medium mb-3 text-gray-300">空间隧道效果模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Step" class="block text-sm text-gray-400 mb-1">Step</label>
|
||
<input type="number" id="Step" class="param-input w-full" placeholder="200" value="200">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="0.01" value="0.01">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.MEMZMistakes</h3>
|
||
<p class="font-medium mb-3 text-gray-300">MEMZ 错误图标模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Step" class="block text-sm text-gray-400 mb-1">Step</label>
|
||
<input type="number" id="Step" class="param-input w-full" placeholder="500" value="500">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="0.01" value="0.01">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.MEMZInvertDesktop</h3>
|
||
<p class="font-medium mb-3 text-gray-300">MEMZ 反色桌面模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<div>
|
||
<label for="Step" class="block text-sm text-gray-400 mb-1">Step</label>
|
||
<input type="number" id="Step" class="param-input w-full" placeholder="500" value="500">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="0.01" value="0.01">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<h3 class="font-medium mb-3 text-gray-300">TLUI.UIThread.MEMZReverseTitle</h3>
|
||
<p class="font-medium mb-3 text-gray-300">MEMZ 反转标题模块</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="master" class="block text-sm text-gray-400 mb-1">Termination 句柄</label>
|
||
<input type="code" id="master" class="param-input w-full code" placeholder="Termination" value="Termination">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="thread-card">
|
||
<div class="flex items-center justify-between mb-5">
|
||
<h2 class="text-xl font-semibold flex items-center gap-2">
|
||
<span class="bg-secondary/20 text-secondary p-2 rounded-md">
|
||
<i class="fa fa-cog"></i>
|
||
</span>
|
||
Thread_Process
|
||
</h2>
|
||
<span class="text-xs px-2 py-1 bg-dark-100 rounded-full text-gray-400">额外进程模块</span>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<MP></MP>
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Process.Process_Test</h3>
|
||
<p class="font-medium mb-3 text-gray-300">测试进程</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<MP></MP>
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Process.Process_ChildProcess</h3>
|
||
<p class="font-medium mb-3 text-gray-300">启动子进程(与父进程同生共死)</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="FilePath" class="block text-sm text-gray-400 mb-1">FilePath</label>
|
||
<input type="code" id="FilePath" class="param-input w-full code" placeholder="'C:\Windows\notepad.exe'" value="r'C:\Windows\notepad.exe'">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="5.0" value="5.0">
|
||
</div>
|
||
<div>
|
||
<label for="FilePath2" class="block text-sm text-gray-400 mb-1">FilePath2</label>
|
||
<input type="code" id="FilePath2" class="param-input w-full code" placeholder="'C:\Windows\notepad.exe'" value="r'C:\Windows\notepad.exe'">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="space-y-4">
|
||
<div class="bg-dark-300/50 rounded-lg p-4 transition-all hover:bg-dark-300/80">
|
||
<MP></MP>
|
||
<h3 class="font-medium mb-3 text-gray-300">Thread_Process.Process_ChildProcess</h3>
|
||
<p class="font-medium mb-3 text-gray-300">预设子进程 T2SRFB</p>
|
||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
|
||
<div>
|
||
<label for="FilePath" class="block text-sm text-gray-400 mb-1">FilePath</label>
|
||
<input type="code" id="FilePath" class="param-input w-full code" placeholder="T.WSD.__NeedT2SRFB__" value="T.WSD.__NeedT2SRFB__">
|
||
</div>
|
||
<div>
|
||
<label for="SleepTime" class="block text-sm text-gray-400 mb-1">SleepTime</label>
|
||
<input type="number" id="SleepTime" class="param-input w-full" placeholder="5.0" value="5.0">
|
||
</div>
|
||
<div>
|
||
<label for="FilePath2" class="block text-sm text-gray-400 mb-1">FilePath2</label>
|
||
<input type="code" id="FilePath2" class="param-input w-full code" placeholder="T.PEBinary_T2SRFB" value="T.PEBinary_T2SRFB">
|
||
</div>
|
||
<button class="launch-btn w-full md:w-auto">
|
||
<i class="fa fa-play"></i>
|
||
启动任务
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
<!-- 通知提示框 -->
|
||
<div id="notification" class="fixed bottom-6 right-6 bg-dark-200 border-l-4 border-primary p-4 rounded-r-lg shadow-xl transform translate-y-20 opacity-0 transition-all duration-500 flex items-center gap-3 max-w-sm">
|
||
<i class="fa fa-info-circle text-primary text-xl"></i>
|
||
<div>
|
||
<h4 class="font-medium text-white">任务启动成功</h4>
|
||
<p class="text-sm text-gray-400" id="notification-message">参数...</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
<script src="/lib/js/script.js"></script>
|
||
<script src="/lib/js/lines.js"></script>
|
||
<script src="/lib/js/process.js"></script>
|
||
<script src="/lib/js/screen.js"></script>
|
||
<script src="/lib/js/log.js"></script>
|
||
<script src="/lib/js/km.js"></script>
|
||
<script src="/lib/js/hiscr.js"></script>
|
||
<script src="/lib/js/info.js"></script>
|
||
<script src="/lib/js/workstation.js"></script>
|
||
</body>
|
||
</html> |