diff --git a/design/prototype/screens/ui-desktop.html b/design/prototype/screens/ui-desktop.html index a11f084..f3efee1 100644 --- a/design/prototype/screens/ui-desktop.html +++ b/design/prototype/screens/ui-desktop.html @@ -157,6 +157,9 @@ .account-view .plan-banner{ margin-bottom:var(--space-5); } .st-change{ font-family:var(--font-sans); font-size:13px; font-weight:600; color:var(--accent); } + /* ---- 兑换码视图(账户页「兑换码」入口) ---- */ + .redeem-view .card{ display:flex; flex-direction:column; gap:var(--space-4); } + /* 设备行辅件(对齐线上设备管理) */ .dv-lead{ width:22px; height:22px; color:var(--fg2); flex:none; } .dv-cur{ font-family:var(--font-sans); font-size:12px; font-weight:600; color:var(--accent); @@ -1000,6 +1003,22 @@ + +
+
+ +
兑换码
+
+
+ + +
+ +
输入卡密即可激活对应时长,激活后立即生效。
+
+
+
+
@@ -1096,7 +1115,7 @@ var I18N = { 'nav.orders':{zh:'我的订单',en:'Orders'}, 'nav.account':{zh:'账户',en:'Account'}, 'nav.notifications':{zh:'通知',en:'Notifications'}, 'nav.invite':{zh:'邀请好友',en:'Invite friends'}, - 'nav.devices':{zh:'设备管理',en:'Devices'}, + 'nav.devices':{zh:'设备管理',en:'Devices'}, 'nav.redeem':{zh:'兑换码',en:'Redeem code'}, 'acc.billing':{zh:'购买 & 订单 & 兑换',en:'Buy · Orders · Redeem'}, 'acc.buy':{zh:'购买套餐',en:'Buy a plan'}, 'acc.buySub':{zh:'升级 PRO 会员',en:'Upgrade to PRO'}, 'acc.orders':{zh:'我的订单',en:'My orders'}, 'acc.ordersSub':{zh:'查看订单记录',en:'View order history'}, @@ -1119,6 +1138,9 @@ var I18N = { 'inv.tgTitle':{zh:'加入 Telegram 频道',en:'Join Telegram channel'}, 'inv.tgSub':{zh:'+3 天',en:'+3 days'}, 'inv.tgJoinBtn':{zh:'加入频道',en:'Join channel'}, 'inv.tgVerifyBtn':{zh:'验证领取',en:'Verify & claim'}, 'inv.tgDoneBtn':{zh:'已领 +3 天',en:'Claimed +3 days'}, 'inv.tgDemoPending':{zh:'演示态 · 待验证',en:'Demo · pending'}, 'inv.tgDemoDone':{zh:'演示态 · 已领取',en:'Demo · claimed'}, + 'rd.back':{zh:'返回',en:'Back'}, 'rd.title':{zh:'兑换码',en:'Redeem code'}, + 'rd.label':{zh:'兑换码',en:'Redemption code'}, 'rd.ph':{zh:'输入兑换 / 激活码',en:'Enter activation code'}, + 'rd.btn':{zh:'立即兑换',en:'Redeem'}, 'rd.hint':{zh:'输入卡密即可激活对应时长,激活后立即生效。',en:'Enter a code to instantly activate plan time.'}, 'set.orders':{zh:'我的订单',en:'My orders'}, 'set.ordersSub':{zh:'查看订单记录',en:'View order history'}, 'ord.back':{zh:'返回',en:'Back'}, 'ord.details':{zh:'明细',en:'Details'}, 'ord.kOrderNo':{zh:'订单号',en:'Order No.'}, 'ord.kPlan':{zh:'套餐',en:'Plan'}, 'ord.kAmount':{zh:'金额',en:'Amount'}, @@ -1664,8 +1686,7 @@ function pvEnterPay(){ } function openPurchase(from){ PUR.from=from||'settings'; pvShow('plans'); setView('purchase'); } -/* 入口:设置页「兑换 & 购买」+ 账户页「续费 / 升级」 */ -var _redeem=document.getElementById('redeemRow'); if(_redeem) _redeem.addEventListener('click', function(){ openPurchase('settings'); }); +/* 入口:账户页「续费 / 升级」(设置页旧「兑换 & 购买」行已随 IA 重构移除,见 accRedeemRow) */ var _pbnBtn=document.getElementById('pbnBtn'); if(_pbnBtn) _pbnBtn.addEventListener('click', function(){ openPurchase('account'); }); /* 支付渠道段控:切币种 → 套餐价随之刷新 */ @@ -1796,13 +1817,15 @@ var _odBack=document.getElementById('odBack'); if(_odBack) _odBack.addEventListe /* ========= 账户新入口 / 通知铃铛 / 邀请(IA 重构) ========= */ var _accBuy=document.getElementById('accBuyRow'); if(_accBuy) _accBuy.addEventListener('click', function(){ openPurchase('account'); }); var _accOrders=document.getElementById('accOrdersRow'); if(_accOrders) _accOrders.addEventListener('click', function(){ openOrders('account'); }); -var _accRedeem=document.getElementById('accRedeemRow'); if(_accRedeem) _accRedeem.addEventListener('click', function(){ openPurchase('account'); }); +function openRedeem(){ setView('redeem'); } +var _accRedeem=document.getElementById('accRedeemRow'); if(_accRedeem) _accRedeem.addEventListener('click', function(){ openRedeem(); }); var _accInvite=document.getElementById('accInviteRow'); if(_accInvite) _accInvite.addEventListener('click', function(){ setView('invite'); }); var _accDevices=document.getElementById('accDevicesRow'); if(_accDevices) _accDevices.addEventListener('click', function(){ setView('devices'); }); var _dvBack=document.getElementById('dvBack'); if(_dvBack) _dvBack.addEventListener('click', function(){ setView('account'); }); var _tbBell=document.getElementById('tbBell'); if(_tbBell) _tbBell.addEventListener('click', function(){ if(S.view!=='notifications'){ S.notifFrom=S.view; } setView('notifications'); }); var _ntBack=document.getElementById('ntBack'); if(_ntBack) _ntBack.addEventListener('click', function(){ setView(S.notifFrom||'connect'); }); var _invBack=document.getElementById('invBack'); if(_invBack) _invBack.addEventListener('click', function(){ setView('account'); }); +var _rdBack=document.getElementById('rdBack'); if(_rdBack) _rdBack.addEventListener('click', function(){ setView('account'); }); document.querySelectorAll('.js-inv-copy').forEach(function(b){ b.addEventListener('click', function(){ pvToast((S.lang==='zh'?'已复制:':'Copied: ')+b.dataset.copy); }); }); /* ========= 初始化 ========= */