feat(admin): 计费页长出「充值渠道」块 —— 兑换码生成/台账 + 积分包定价
P5.1 收尾:此前生成码只有 API。计费页现在从上到下 = 计费规则(积分→token 汇率) → 充值渠道(钱→积分:兑换码 + 微信定价用的积分包) → 用量观测, 两层汇率在同一页可见、各管各的。 - 兑换码:面额/张数/备注生成;**明文码只在生成响应显示一次**(等同现金, 台账 GET /admin/redeem-codes 服务端脱敏只露首尾,丢码重生成、不提供找回 ——顺手把接口这个第二明文出口堵了);台账含核销状态。 - 积分包:新增/上下架(微信 P5.2 上线前把定价面备好);admin api.ts 补 packs/redeem-codes 四个函数。 - launch.json 加 admin-console-alt(:5176)——5174 被用户自己的 sundynix-site 占着,不动别人端口。 live:5176 登录→生成 5 张(绿色一次性面板+复制全部)→配「入门包 1000分/¥9.9」 在售可下架→台账脱敏 curl 复核;tsc+41 vitest 全绿。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { useEffect, useMemo, useState, type ReactNode } from "react";
|
||||
import { adminUsage, grantCredits, type UsageReport, type UsageTenantSum, type UsageDay } from "../api";
|
||||
import { BillingRules } from "../components/BillingRules";
|
||||
import { TopupChannels } from "../components/TopupChannels";
|
||||
|
||||
// 管理端「用量 & 计费」= 计费闭环一页:顶部配「规则」(单价/积分权重/汇率),下方看「结果」(用量观测)。
|
||||
// 规则→扣费→观测:改规则即对后续任务生效,用量观测(读 /admin/usage,系统级跨租户)即其结果。
|
||||
@@ -97,6 +98,9 @@ export function UsagePage() {
|
||||
{/* 配置端:计费规则(改规则即对后续任务生效) */}
|
||||
<BillingRules onSaved={() => void load()} />
|
||||
|
||||
{/* 配置端:充值渠道(兑换码生成/台账 + 积分包定价,P5.1) */}
|
||||
<TopupChannels />
|
||||
|
||||
{/* 观测端:用量结果 */}
|
||||
<div className="flex items-center gap-2 pt-1">
|
||||
<h3 className="text-sm font-semibold text-gray-700">用量观测</h3>
|
||||
|
||||
Reference in New Issue
Block a user