2026-08-13 21:24:16 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html lang="zh-CN">
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
<title>资源包获取 - 江北的渔夫的空间</title>
|
|
|
|
|
|
<meta name="description" content="ResLib 资源包获取:仅对 License 审核通过的用户提供,凭申请编号验证后下载资源包。">
|
|
|
|
|
|
<meta name="keywords" content="江北的渔夫的空间, ResLib, 资源包, License, 下载">
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
|
|
|
|
<link rel="icon" href="/static/img/logo.svg" type="image/svg+xml">
|
|
|
|
|
|
<script src="/static/js/nav.js"></script>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
|
|
|
|
<header class="site-header">
|
|
|
|
|
|
<div class="container header-inner">
|
2026-08-13 22:30:34 +08:00
|
|
|
|
<a class="brand" href="/">
|
2026-08-13 21:24:16 +08:00
|
|
|
|
<img src="/static/img/logo.svg" alt="Easy Data Collector">
|
|
|
|
|
|
<span class="brand-name">Easy Data Collector</span>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<nav class="main-nav">
|
|
|
|
|
|
<a href="/blog/">博客</a>
|
|
|
|
|
|
<a href="/reslib/">ResLib</a>
|
|
|
|
|
|
<a href="/reslib/apply">申请 License</a>
|
|
|
|
|
|
<a href="/reslib/status">查询 / 下载</a>
|
|
|
|
|
|
<a href="/reslib/package" class="active">资源包获取</a>
|
2026-08-13 22:30:34 +08:00
|
|
|
|
<a href="/neural/">Neural Research</a>
|
2026-08-13 21:24:16 +08:00
|
|
|
|
</nav>
|
|
|
|
|
|
<button class="nav-toggle" id="navToggle" aria-label="菜单">☰</button>
|
|
|
|
|
|
<button class="nav-toggle" id="navToggle" aria-label="菜单">☰</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
|
|
<main class="section">
|
|
|
|
|
|
<div class="container narrow">
|
|
|
|
|
|
<h2 class="section-title">资源包获取</h2>
|
|
|
|
|
|
<p class="section-desc">资源包(部署文件、标准件库样例、说明文档等)<b>仅对 License 审核通过的用户提供</b>,请凭申请编号验证身份。内含标准化配件、BPE 卫生级配件、食品 / 医药 / 包装工程常用配件与气动系统配件等标准件库。</p>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="form-card">
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
|
<label for="rid">申请编号</label>
|
|
|
|
|
|
<input type="text" id="rid" class="mono" placeholder="如:20260813-201500-A1B2C3" autocomplete="off">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<button type="button" id="verify" class="btn btn-primary btn-block">验证并获取</button>
|
|
|
|
|
|
<div id="result"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
|
|
|
|
<footer class="site-footer">
|
|
|
|
|
|
<div class="container footer-inner">
|
|
|
|
|
|
<span>Copyright © 2026 Easy Data Collector. All rights reserved.</span>
|
2026-08-13 22:30:34 +08:00
|
|
|
|
<span><a href="/links.html">内部资源</a> · <a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener">苏ICP备2026056863号</a></span>
|
2026-08-13 21:24:16 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
(function () {
|
|
|
|
|
|
var btn = document.getElementById("verify");
|
|
|
|
|
|
var result = document.getElementById("result");
|
|
|
|
|
|
|
|
|
|
|
|
btn.addEventListener("click", async function () {
|
|
|
|
|
|
var rid = document.getElementById("rid").value.trim();
|
|
|
|
|
|
if (!rid) { result.innerHTML = '<div class="alert show alert-err">请输入申请编号</div>'; return; }
|
|
|
|
|
|
btn.disabled = true;
|
|
|
|
|
|
btn.textContent = "验证中…";
|
|
|
|
|
|
try {
|
|
|
|
|
|
var resp = await fetch("/api/package/" + encodeURIComponent(rid));
|
|
|
|
|
|
var data = await resp.json();
|
|
|
|
|
|
if (resp.ok) {
|
|
|
|
|
|
var html =
|
|
|
|
|
|
'<div class="alert show alert-ok">' +
|
|
|
|
|
|
"<b>身份验证通过</b>(申请编号 <span class='mono'>" + rid + "</span>)<br><br>" +
|
|
|
|
|
|
"<b>可用资源包:</b><br>";
|
|
|
|
|
|
data.files.forEach(function (f) {
|
|
|
|
|
|
html += "<div style='margin:10px 0;'>📦 <span class='mono'>" + f + "</span><br>" +
|
|
|
|
|
|
"<a class='btn btn-primary btn-sm' style='margin-top:6px;' href='/api/package/download/" +
|
|
|
|
|
|
encodeURIComponent(rid) + "/" + encodeURIComponent(f) + "' download>下载</a></div>";
|
|
|
|
|
|
});
|
|
|
|
|
|
html += "</div>";
|
|
|
|
|
|
result.innerHTML = html;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
result.innerHTML = '<div class="alert show alert-err">' + (data.detail || "验证失败") + "</div>";
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
result.innerHTML = '<div class="alert show alert-err">网络错误:' + e.message + "</div>";
|
|
|
|
|
|
}
|
|
|
|
|
|
btn.disabled = false;
|
|
|
|
|
|
btn.textContent = "验证并获取";
|
|
|
|
|
|
});
|
|
|
|
|
|
})();
|
|
|
|
|
|
</script>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|