From 2152b13e97049e666e4657b062277fcaa72b38a5 Mon Sep 17 00:00:00 2001 From: zzh Date: Wed, 10 Dec 2025 14:42:48 +0800 Subject: [PATCH] =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97,=E4=BF=AE=E6=94=B9=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/assets/favicon.svg | 5 +- frontend/assets/login.css | 42 ++++ frontend/assets/styles.css | 11 ++ frontend/index.html | 29 ++- frontend/js/app.js | 10 + frontend/js/components/customer-order.js | 2 +- frontend/js/components/operations-log.js | 234 +++++++++++++++++++++++ frontend/login.html | 71 ++----- server/app.py | 96 +++++++++- 9 files changed, 434 insertions(+), 66 deletions(-) create mode 100644 frontend/js/components/operations-log.js diff --git a/frontend/assets/favicon.svg b/frontend/assets/favicon.svg index 8189c6e..a59ca75 100644 --- a/frontend/assets/favicon.svg +++ b/frontend/assets/favicon.svg @@ -1 +1,4 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/frontend/assets/login.css b/frontend/assets/login.css index f30b076..2a62e8b 100644 --- a/frontend/assets/login.css +++ b/frontend/assets/login.css @@ -134,6 +134,48 @@ body { filter: drop-shadow(0 4px 8px rgba(59, 130, 246, 0.3)); } +/* 比特币旋转硬币 */ +.logo-icon.bitcoin-coin { + perspective: 500px; + animation: none; +} + +.logo-icon.bitcoin-coin .coin-face { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; + backface-visibility: hidden; +} + +.logo-icon.bitcoin-coin .front { + transform: translateZ(2px); + animation: rotate-bitcoin 7s infinite linear; + transform-style: preserve-3d; +} + +.logo-icon.bitcoin-coin .back { + transform: rotateY(180deg) translateZ(2px); + animation: rotate-bitcoin 7s infinite linear; + transform-style: preserve-3d; +} + +.logo-icon.bitcoin-coin::before { + content: ''; + position: absolute; + width: 100%; + height: 100%; + background: linear-gradient(90deg, #b36a00, #faa504, #b36a00); + border-radius: 50%; + animation: rotate-bitcoin 7s infinite linear; + transform-style: preserve-3d; +} + +@keyframes rotate-bitcoin { + 0% { transform: rotateY(0deg); } + 100% { transform: rotateY(360deg); } +} + @keyframes float-icon { 0%, 100% { transform: translateY(0) scale(1); diff --git a/frontend/assets/styles.css b/frontend/assets/styles.css index 2a62263..021458d 100644 --- a/frontend/assets/styles.css +++ b/frontend/assets/styles.css @@ -12,6 +12,15 @@ body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui .brand-logo svg{width:18px;height:18px;color:#fff} .brand-logo.dollar-spinner{border-top:2px solid #eab308;background:#fde047;animation:spin 1s linear infinite;border-radius:50%;color:#a16207;font-weight:700;font-size:16px} @keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}} +.coin-wrapper{width:32px;height:32px;perspective:500px;flex-shrink:0} +.coin{width:32px;height:32px;position:relative;animation:rotate_coin 7s infinite linear;transform-style:preserve-3d} +.coin .side{position:absolute;width:100%;height:100%;border-radius:50%;backface-visibility:hidden} +.coin .heads{transform:translateZ(1.5px)} +.coin .tails{transform:rotateY(180deg) translateZ(1.5px)} +.coin::before{content:'';position:absolute;width:100%;height:100%;background:linear-gradient(90deg,#b36a00,#faa504,#b36a00);border-radius:50%;transform:translateZ(0px)} +.coin::after{content:'';position:absolute;width:100%;height:100%;border-radius:50%;box-shadow:inset 0 0 0 1.5px #b36a00,0 0 2px rgba(0,0,0,0.3);transform:translateZ(1.5px)} +@keyframes rotate_coin{100%{transform:rotateY(360deg)}} +.coin .svg_back{transform:scaleX(-1)} .brand-text{display:flex;flex-direction:column;line-height:1.2;overflow:hidden} .brand-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:0.5px;white-space:nowrap} .brand-subtitle{font-size:10px;color:var(--text-2);letter-spacing:1px;text-transform:uppercase;font-weight:500;white-space:nowrap} @@ -23,6 +32,8 @@ body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui .sidebar.collapsed .brand-logo{width:40px;height:40px;border-radius:10px} .sidebar.collapsed .brand-logo svg{width:22px;height:22px} .sidebar.collapsed .brand-logo.dollar-spinner{border-radius:50%;font-size:20px} +.sidebar.collapsed .coin-wrapper{width:36px;height:36px} +.sidebar.collapsed .coin{width:36px;height:36px} .sidebar.collapsed .sidebar-toggle{width:40px;height:32px;background:rgba(79,140,255,0.08);border-radius:8px} .sidebar-toggle{width:36px;height:36px;border:none;background:transparent;color:var(--text-2);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;flex-shrink:0} .sidebar-toggle:hover{background:rgba(79,140,255,.12);color:var(--text)} diff --git a/frontend/index.html b/frontend/index.html index 78eaf7e..d313784 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -16,7 +16,26 @@