plc_control/web/index.html

89 lines
2.6 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>PLC Control UI</title>
<link rel="stylesheet" href="/ui/styles.css" />
</head>
<body>
<header class="topbar">
<div class="title">PLC Control</div>
<div class="status" id="statusText">Ready</div>
</header>
<main class="grid">
<section class="panel top-left">
<div class="row">
<h2>Sources</h2>
<button id="openSourceForm">新增 Source</button>
</div>
<div class="list" id="sourceList"></div>
</section>
<section class="panel top-right">
<h2>Points</h2>
<div class="list" id="pointList"></div>
<div class="pager">
<button class="secondary" id="prevPoints">上一页</button>
<div class="muted" id="pointsPageInfo">第 1 页</div>
<button class="secondary" id="nextPoints">下一页</button>
</div>
</section>
<section class="panel bottom">
<h2>实时日志</h2>
<div class="log" id="logView"></div>
</section>
</main>
<div class="modal hidden" id="pointModal">
<div class="modal-content">
<div class="row">
<h3>选择节点创建 Points</h3>
<button class="secondary" id="closeModal">关闭</button>
</div>
<div class="toolbar">
<button id="browseNodes">浏览并同步节点</button>
<button id="refreshTree">刷新树</button>
</div>
<div class="tree" id="nodeTree"></div>
<div class="actions">
<div class="muted" id="selectedCount">已选 0 个节点</div>
<button id="createPoints">创建 Points</button>
</div>
</div>
</div>
<div class="modal hidden" id="sourceModal">
<div class="modal-content">
<div class="row">
<h3>Source 配置</h3>
<button class="secondary" id="closeSourceModal">关闭</button>
</div>
<form id="sourceForm" class="form">
<input type="hidden" id="sourceId" />
<label>
名称
<input id="sourceName" required />
</label>
<label>
Endpoint
<input id="sourceEndpoint" placeholder="opc.tcp://host:port" required />
</label>
<label class="row">
<input type="checkbox" id="sourceEnabled" checked />
<span>启用</span>
</label>
<div class="actions">
<button type="submit" id="sourceSubmit">保存</button>
<button type="button" id="sourceReset">清空</button>
</div>
</form>
</div>
</div>
<script src="/ui/app.js"></script>
</body>
</html>