138 lines
11 KiB
HTML
138 lines
11 KiB
HTML
<!DOCTYPE html> <html lang=en><!--
|
||
--><meta charset=utf-8>
|
||
<meta name=viewport content="width=device-width, initial-scale=1.0">
|
||
<title>E-Commerce Order Audit System V9.4 (Full Stack)</title>
|
||
<style>:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--bg-body:#f1f5f9;--bg-card:#ffffff;--bg-sidebar:#ffffff;--bg-header:#1e293b;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#06b6d4;--sidebar-w:260px;--header-h:60px;--shadow-sm:0 1px 2px 0 rgb(0 0 0/0.05);--shadow-md:0 4px 6px -1px rgb(0 0 0/0.1);--trans:all 0.25s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;outline:none}body{font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-body);margin:0;color:var(--text-main);font-size:14px;overflow:hidden;transition:background 0.3s}a,button{cursor:pointer;transition:var(--trans);color:inherit;text-decoration:none}.icon{width:16px;height:16px;fill:currentColor;vertical-align:middle;margin-right:4px}.app-container{display:flex;flex-direction:column;height:100vh}.header{height:var(--header-h);background:var(--bg-header);color:white;display:flex;justify-content:space-between;align-items:center;padding:0 20px;z-index:50;box-shadow:var(--shadow-md)}.brand{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}.brand span{padding:4px 8px;background:var(--primary);border-radius:4px;font-size:14px}.nav-top a{padding:8px 12px;color:#94a3b8;font-size:13px;border-radius:4px}.nav-top a:hover,.nav-top a.active{color:white;background:rgba(255,255,255,0.1)}.user-area{display:flex;align-items:center;gap:15px}.avatar{width:32px;height:32px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:bold;border:2px solid rgba(255,255,255,0.2)}.main-body{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;padding-top:10px;transition:background 0.3s}.menu-group{margin-bottom:20px}.menu-header{font-size:11px;text-transform:uppercase;color:var(--text-muted);padding:0 20px;margin-bottom:8px;font-weight:700}.menu-item{padding:10px 20px;display:flex;align-items:center;color:var(--text-muted);font-weight:500;border-left:3px solid transparent}.menu-item:hover{background:var(--bg-body);color:var(--text-main)}.menu-item.active{background:var(--primary-light);color:var(--primary);border-left-color:var(--primary)}.badge{margin-left:auto;background:var(--danger);color:white;font-size:10px;padding:2px 6px;border-radius:10px}.content{flex:1;overflow-y:auto;padding:25px;position:relative}.view-panel{animation:fadeIn 0.3s ease}.view-panel.active{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:20px;box-shadow:var(--shadow-sm);margin-bottom:20px;transition:background 0.3s}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;border-bottom:1px solid var(--border);padding-bottom:10px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px}.stat-box{background:var(--bg-card);padding:20px;border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column}.stat-label{font-size:12px;color:var(--text-muted)}.stat-num{font-size:28px;font-weight:700;margin:10px 0}.stat-trend{font-size:12px;display:flex;align-items:center;gap:5px}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.btn{padding:8px 16px;border-radius:4px;border:none;font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:5px}.btn-primary{background:var(--primary);color:white}.btn-secondary{background:var(--bg-card);border:1px solid var(--border);color:var(--text-main)}.btn-danger{background:var(--danger);color:white}.order-table tr:hover td{background:var(--primary-light)}.tag{font-size:11px;padding:2px 6px;border-radius:4px;display:inline-block;font-weight:600;margin-right:4px}.tag-urgent{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:100;opacity:0;transition:opacity 0.3s}.drawer{position:fixed;top:0;right:-600px;width:500px;height:100vh;background:var(--bg-card);z-index:101;box-shadow:-5px 0 20px rgba(0,0,0,0.1);transition:right 0.4s cubic-bezier(0.25,0.8,0.25,1);display:flex;flex-direction:column}.drawer-header{padding:20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--bg-body)}.drawer-body{flex:1;padding:25px;overflow-y:auto}.drawer-footer{padding:15px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;background:var(--bg-body)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;justify-content:center;align-items:center;backdrop-filter:blur(2px)}.toast-container{position:fixed;top:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:10px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:white;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translateX(20px)}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
|
||
<meta name=referrer content=no-referrer><style>.sf-hidden{display:none!important}</style><link rel=canonical href=http://127.0.0.1:5500/002/2-all.html><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"></head>
|
||
<body>
|
||
<svg style=display:none>
|
||
<symbol id=i-home viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path></symbol>
|
||
<symbol id=i-list viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path></symbol>
|
||
<symbol id=i-risk viewBox="0 0 24 24"><path d="M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"></path></symbol>
|
||
<symbol id=i-settings viewBox="0 0 24 24"><path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L3.16 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.04.64.09.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.04.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.57 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.08-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"></path></symbol>
|
||
<symbol id=i-eye viewBox="0 0 24 24"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></symbol>
|
||
<symbol id=i-check viewBox="0 0 24 24"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></symbol>
|
||
</svg>
|
||
<div class=app-container>
|
||
<header class=header>
|
||
<div class=brand>
|
||
<svg class=icon style=width:24px;height:24px><use xlink:href=#i-check></use></svg>
|
||
GlobalGuard <span>Audit V9.4</span>
|
||
</div>
|
||
<div class=nav-top>
|
||
<a class=active>Workspace</a>
|
||
<a>Order Queue (200+)</a>
|
||
<a>Settings</a>
|
||
</div>
|
||
<div class=user-area>
|
||
<div style=text-align:right;font-size:12px>
|
||
<div>Auditor_4421</div>
|
||
<div style=color:rgba(255,255,255,0.6)>East China Audit Group</div>
|
||
</div>
|
||
<div class=avatar>A</div>
|
||
<button class=btn style="background:rgba(255,255,255,0.1);padding:5px 10px">Logout</button>
|
||
</div>
|
||
</header>
|
||
<div class=main-body>
|
||
<aside class=sidebar>
|
||
<div class=menu-group>
|
||
<div class=menu-header>Core Operations</div>
|
||
<div class="menu-item active" id=menu-dashboard>
|
||
<svg class=icon><use xlink:href=#i-home></use></svg> Dashboard Overview
|
||
</div>
|
||
<div class=menu-item id=menu-orders>
|
||
<svg class=icon><use xlink:href=#i-list></use></svg> Audit Queue
|
||
<span class=badge id=sidebar-count>162</span>
|
||
</div>
|
||
</div>
|
||
<div class=menu-group>
|
||
<div class=menu-header>Tools</div>
|
||
<div class=menu-item id=menu-settings>
|
||
<svg class=icon><use xlink:href=#i-settings></use></svg> System Settings
|
||
</div>
|
||
</div>
|
||
<div style=margin-top:auto;padding:20px>
|
||
<div style=background:var(--bg-body);padding:10px;border-radius:4px;font-size:11px;color:var(--text-muted)>
|
||
<strong>Server Status:</strong><br>
|
||
<span style=color:var(--success)>●</span> Live Data Stream<br>
|
||
<span style=color:var(--success)>●</span> Database (OK)
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
<main class=content>
|
||
|
||
<div id=view-dashboard class="view-panel active">
|
||
<h2 style=margin-bottom:20px>Today's Data Overview (Live)</h2>
|
||
|
||
<div class=stat-grid>
|
||
<div class=stat-box>
|
||
<span class=stat-label>Pending Orders</span>
|
||
<span class=stat-num id=dash-pending>162</span>
|
||
<span class="stat-trend trend-down">Action Required</span>
|
||
</div>
|
||
<div class=stat-box>
|
||
<span class=stat-label>High Risk Intercepts</span>
|
||
<span class=stat-num style=color:var(--danger) id=dash-risk>26</span>
|
||
<span class=stat-trend>Ratio <span id=dash-risk-rate>16.0%</span></span>
|
||
</div>
|
||
<div class=stat-box>
|
||
<span class=stat-label>Total Amount (CNY)</span>
|
||
<span class=stat-num id=dash-amount>888,173</span>
|
||
<span class="stat-trend trend-up">vs Yesterday ↑ 23%</span>
|
||
</div>
|
||
<div class=stat-box>
|
||
<span class=stat-label>My Performance (Today)</span>
|
||
<span class=stat-num style=color:var(--success)>42</span>
|
||
<span class=stat-trend>KPI Achievement 80%</span>
|
||
</div>
|
||
</div>
|
||
<div class=card>
|
||
<div class=card-header>
|
||
<span class=card-title>System Announcements</span>
|
||
<span class="tag tag-urgent">New</span>
|
||
</div>
|
||
<div style=font-size:13px;color:var(--text-muted);line-height:1.6>
|
||
<p><strong>[Security Alert] Notification on Risk Upgrade for Graphics Card Proxy Buying</strong></p>
|
||
<p>Recently detected bulk ordering behavior targeting RTX 5090 series graphics cards. Auditors please focus on "fuzzy matching of same shipping address" and "large payments from new accounts". High-risk orders should be transferred to Level 2 Audit.</p>
|
||
<hr style="border:0;border-top:1px dashed var(--border);margin:10px 0">
|
||
<p><strong>[System Update] V9.4 Patch Notes</strong></p>
|
||
<p>Integrated mock data generation engine, demo environment now supports 200+ concurrent order displays.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id=view-orders class="view-panel sf-hidden">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<div id=view-settings class="view-panel sf-hidden">
|
||
|
||
|
||
</div>
|
||
</main>
|
||
</div>
|
||
<div class="drawer-backdrop sf-hidden" id=drawer-backdrop></div>
|
||
<div class=drawer id=drawer-panel>
|
||
<div class=drawer-header>
|
||
<h3 style=margin:0>Order Details <span id=d-id style=font-weight:400;color:var(--text-muted)></span></h3>
|
||
<button class="btn btn-secondary" style="padding:4px 8px">×</button>
|
||
</div>
|
||
<div class=drawer-body id=d-content>
|
||
</div>
|
||
<div class=drawer-footer id=d-footer>
|
||
<button class="btn btn-danger">Reject Order</button>
|
||
<button class="btn btn-primary">Approve Order</button>
|
||
</div>
|
||
</div>
|
||
<div class="modal-overlay sf-hidden" id=modal-reject>
|
||
|
||
</div>
|
||
<div class="modal-overlay sf-hidden" id=modal-logout>
|
||
|
||
</div>
|
||
<div class=toast-container id=toast-root></div>
|
||
</div>
|