Files
Sub-Router/dist/assets/Dashboard-iF1bs08l.js
T
abingyydsandClaude Opus 4.6 23920eb635 fix: 自定义价格真正参与计费 + 修复价格显示翻倍
1. 计费核心改动 (relay/helper/price.go):
   - applyDistributorMarkup 新增自定义价格支持
   - 自定义价格转 USD 后与平台底价对比,计算等效加价倍率
   - 保底机制:自定义价格不得低于平台底价,防止平台亏损
   - 优先级:全站加价 > 自定义价格 > 单模型加价比例

2. 分站价格显示修复 (controller/dist_site.go):
   - 自定义价格跟随商家币种(CNY),发送前需转 USD
   - 修复 ¥6.8 显示为 ¥46.24 的翻倍问题

3. 管理页面改进 (DistributorModels.jsx):
   - 全站加价模式下展示含加价的价格
   - 自定义价格输入框显示正确的币种单位

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:53:22 +09:00

2 lines
4.3 KiB
JavaScript

import{u as k,d as U,r as o,j as e,Q as b,L as l,g as w,e as C,z as S}from"./index-DZXnuqaY.js";import{C as n}from"./CountUp-DtJMqT_7.js";import{u as D}from"./useTranslation-C6aAveL4.js";function E(){const{t:s}=D(),{user:a,refreshUser:j}=k(),{symbol:c,rate:i}=U(),[t,N]=o.useState(null),[r,x]=o.useState(""),[m,p]=o.useState(!1),h=async()=>{try{const d=await w();d.data.success&&N(d.data.data)}catch{}};o.useEffect(()=>{h()},[]);const f=async d=>{if(d.preventDefault(),!!r.trim()){p(!0);try{(await C(r.trim())).data.success&&(S.success(s("dashboard.redeemSuccess")),x(""),await Promise.all([h(),j()]))}catch{}p(!1)}},u=(t==null?void 0:t.quota)??(a==null?void 0:a.quota)??0,g=(t==null?void 0:t.used_quota)??(a==null?void 0:a.used_quota)??0,v=(t==null?void 0:t.request_count)??(a==null?void 0:a.request_count)??0,y=u/b*i;return e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-10",children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs("h1",{className:"text-2xl font-heading font-bold text-page mb-1",children:[s("dashboard.welcome")," ",(a==null?void 0:a.display_name)||(a==null?void 0:a.username)||"User"]}),e.jsx("p",{className:"text-sm text-page-secondary",children:s("dashboard.manageDesc")})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-10",children:[e.jsxs("div",{className:"glass rounded-2xl p-6",children:[e.jsx("p",{className:"text-sm text-page-secondary mb-2",children:s("dashboard.balance")}),e.jsxs("div",{className:"text-3xl font-bold text-page",children:[c,e.jsx(n,{from:0,to:Math.round(y*100)/100,duration:1.5})]}),e.jsx("p",{className:"text-xs text-page-muted mt-1",children:s("dashboard.quotaUnits",{count:u.toLocaleString()})})]}),e.jsxs("div",{className:"glass rounded-2xl p-6",children:[e.jsx("p",{className:"text-sm text-page-secondary mb-2",children:s("dashboard.used")}),e.jsxs("div",{className:"text-3xl font-bold text-page",children:[c,e.jsx(n,{from:0,to:Math.round(g/b*i*100)/100,duration:1.5})]}),e.jsx("p",{className:"text-xs text-page-muted mt-1",children:s("dashboard.quotaUnits",{count:g.toLocaleString()})})]}),e.jsxs("div",{className:"glass rounded-2xl p-6",children:[e.jsx("p",{className:"text-sm text-page-secondary mb-2",children:s("dashboard.totalRequests")}),e.jsx("div",{className:"text-3xl font-bold text-page",children:e.jsx(n,{from:0,to:v,duration:1.5})})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"glass rounded-2xl p-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-page mb-4",children:s("dashboard.redeemCode")}),e.jsxs("form",{onSubmit:f,className:"flex gap-3",children:[e.jsx("input",{type:"text",value:r,onChange:d=>x(d.target.value),className:"input flex-1",placeholder:s("dashboard.enterCode")}),e.jsx("button",{type:"submit",disabled:m,className:"btn-primary whitespace-nowrap",children:s(m?"dashboard.redeeming":"dashboard.redeem")})]})]}),e.jsxs("div",{className:"glass rounded-2xl p-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-page mb-4",children:s("dashboard.quickLinks")}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs(l,{to:"/tokens",className:"glass-sm !rounded-xl px-4 py-3 hover:bg-page-surface-hover transition-colors group",children:[e.jsx("p",{className:"text-sm font-medium text-page group-hover:text-page-link transition-colors",children:s("dashboard.apiKeys")}),e.jsx("p",{className:"text-xs text-page-muted",children:s("dashboard.manageKeys")})]}),e.jsxs(l,{to:"/packages",className:"glass-sm !rounded-xl px-4 py-3 hover:bg-page-surface-hover transition-colors group",children:[e.jsx("p",{className:"text-sm font-medium text-page group-hover:text-page-link transition-colors",children:s("dashboard.packages")}),e.jsx("p",{className:"text-xs text-page-muted",children:s("dashboard.viewPlans")})]}),e.jsxs(l,{to:"/pricing",className:"glass-sm !rounded-xl px-4 py-3 hover:bg-page-surface-hover transition-colors group",children:[e.jsx("p",{className:"text-sm font-medium text-page group-hover:text-page-link transition-colors",children:s("dashboard.pricing")}),e.jsx("p",{className:"text-xs text-page-muted",children:s("dashboard.modelPrices")})]}),e.jsxs("div",{className:"glass-sm !rounded-xl px-4 py-3 opacity-50",children:[e.jsx("p",{className:"text-sm font-medium text-page",children:s("dashboard.apiDocs")}),e.jsx("p",{className:"text-xs text-page-muted",children:s("dashboard.comingSoon")})]})]})]})]})]})}export{E as default};