feat: Tích hợp Bản quyền License AES-256 (OTH.Adapter), Biên bản giao ban A4, Biểu đồ tròn và Tài liệu triển khai demo

This commit is contained in:
ongtrieuhau
2026-10-27 02:04:23 -07:00
parent 6d54ca20f6
commit 358cfbfde1
13 changed files with 2149 additions and 32 deletions
+97
View File
@@ -51,6 +51,10 @@
<i class="fa-solid fa-terminal"></i>
<span>3. Nhật Ký Hoạt Động (Live Logs)</span>
</button>
<button class="admin-tab px-5 py-2.5 text-sm font-bold border-b-2 border-transparent text-slate-500 hover:text-slate-800 flex items-center gap-2 transition-all" data-tab="tab-license">
<i class="fa-solid fa-shield-halved"></i>
<span>4. Quản Lý Bản Quyền (License)</span>
</button>
</div>
</section>
@@ -332,6 +336,99 @@
</div>
<!-- ========================================== -->
<!-- TAB 4: QUẢN LÝ BẢN QUYỀN (LICENSE) -->
<!-- ========================================== -->
<div id="tab-license" class="admin-content hidden space-y-6">
<!-- License Status Overview -->
<div class="bg-white rounded-2xl shadow-sm border border-slate-200 overflow-hidden">
<div class="px-5 py-4 bg-slate-50 border-b border-slate-200 flex items-center justify-between">
<h2 class="text-sm font-bold text-slate-800 flex items-center gap-2">
<i class="fa-solid fa-certificate text-amber-500"></i>
<span>Thông Tin Bản Quyền Web Giao Ban (DH-HIS)</span>
</h2>
<span id="licenseStatusBadge" class="text-xs px-2.5 py-1 rounded-full font-bold bg-slate-100 text-slate-600">Đang kiểm tra...</span>
</div>
<div class="p-6">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-slate-50 p-4 rounded-xl border border-slate-200">
<span class="text-xs text-slate-500 block font-medium mb-1">Tên Bệnh Viện / Đơn Vị:</span>
<span id="licTenBV" class="text-sm font-bold text-slate-800 block">--</span>
<span class="text-[11px] text-slate-400 font-mono mt-0.5 block">Mã BVBH: <b id="licMabvbh" class="text-indigo-600">--</b></span>
</div>
<div class="bg-slate-50 p-4 rounded-xl border border-slate-200">
<span class="text-xs text-slate-500 block font-medium mb-1">Thời Hạn Sử Dụng:</span>
<span id="licDateExpires" class="text-sm font-bold text-slate-800 font-mono block">--</span>
<span id="licRemainingDays" class="text-[11px] text-slate-500 font-semibold mt-0.5 block">--</span>
</div>
<div class="bg-slate-50 p-4 rounded-xl border border-slate-200">
<span class="text-xs text-slate-500 block font-medium mb-1">Chức Năng Được Cấp:</span>
<span id="licTitle" class="text-sm font-bold text-slate-800 block">Sử dụng Web giao ban</span>
<span class="text-[11px] text-slate-400 font-mono mt-0.5 block">Key: <b id="licKey" class="text-slate-600">web_giao_ban</b></span>
</div>
<div class="bg-slate-50 p-4 rounded-xl border border-slate-200">
<span class="text-xs text-slate-500 block font-medium mb-1">Đối Tác &amp; Ghi Chú:</span>
<span id="licDoiTac" class="text-sm font-bold text-slate-800 block">--</span>
<span id="licGhiChu" class="text-[11px] text-slate-500 mt-0.5 block italic">--</span>
</div>
</div>
<div id="licenseAlertBox" class="mt-4 p-3.5 rounded-xl border text-xs flex items-center gap-2.5 bg-blue-50 border-blue-200 text-blue-800">
<i class="fa-solid fa-circle-info text-base"></i>
<span id="licenseAlertMsg">Đang tải trạng thái kích hoạt bản quyền...</span>
</div>
</div>
</div>
<!-- License Activation Form -->
<div class="bg-white rounded-2xl shadow-sm border border-slate-200 overflow-hidden">
<div class="px-5 py-4 bg-slate-50 border-b border-slate-200 flex items-center justify-between">
<h2 class="text-sm font-bold text-slate-800 flex items-center gap-2">
<i class="fa-solid fa-key text-indigo-600"></i>
<span>Nhập &amp; Kích Hoạt Key Bản Quyền</span>
</h2>
<span class="text-xs text-slate-500 font-medium">Quy tắc chuẩn OTH.Adapter PrivateCode</span>
</div>
<div class="p-6 space-y-4">
<div class="bg-amber-50 border border-amber-200 rounded-xl p-3.5 text-xs text-amber-800 flex items-start gap-2.5">
<i class="fa-solid fa-lightbulb text-amber-600 text-base mt-0.5"></i>
<div class="leading-relaxed">
<b>Hướng dẫn:</b> Quý khách chỉ dán chuỗi mã hóa bản quyền (phần ciphertext bắt đầu bằng <code class="bg-amber-100 px-1 py-0.5 rounded font-mono font-bold">U2FsdGVkX1...</code>). Hệ thống sẽ tự động giải mã bằng thuật toán OpenSSL AES-256-CBC, xác thực mã đơn vị, chức năng và kiểm tra thời hạn sử dụng trước khi kích hoạt.
</div>
</div>
<div>
<label class="block font-semibold text-slate-700 text-xs mb-1.5 flex items-center justify-between">
<span>Chuỗi Key Bản Quyền (DECODE Token):</span>
<span class="text-slate-400 font-normal">Định dạng Base64 Salted__</span>
</label>
<textarea id="txtLicenseKey" rows="4" class="w-full rounded-xl border border-slate-300 p-3 bg-slate-50 font-mono text-xs outline-none focus:ring-2 focus:ring-indigo-500 text-slate-700 leading-relaxed resize-y" placeholder="Dán chuỗi token bản quyền (bắt đầu bằng U2FsdGVkX1...) vào đây..."></textarea>
</div>
<div class="flex items-center justify-between pt-2">
<button id="btnPasteSampleKey" type="button" class="text-xs text-indigo-600 hover:text-indigo-800 font-semibold flex items-center gap-1.5 py-2">
<i class="fa-solid fa-clipboard-check"></i>
<span>Dán Key Mẫu (Trà Cú)</span>
</button>
<button id="btnActivateLicense" type="button" class="bg-gradient-to-r from-indigo-600 to-blue-600 hover:from-indigo-700 hover:to-blue-700 text-white text-xs font-bold px-6 py-2.5 rounded-xl shadow-md flex items-center gap-2 transition-all">
<i class="fa-solid fa-check-double"></i>
<span>Kích Hoạt Key Bản Quyền</span>
</button>
</div>
</div>
</div>
</div>
</main>
<!-- TOAST -->