Compare commits

..

5 Commits

Author SHA1 Message Date
shanshanzhong147 883ffab1a6 修复(#14): 调整 USDT 提现方式枚举口径 2026-06-09 03:30:57 -07:00
shanshanzhong147 3aae43f539 修复(#14): 支持 USDT 提现方式展示 2026-06-09 02:14:51 -07:00
shanshanzhong147 1834b97fe2 修复(#134): 促销前端展示对齐 (expires_at / billing 补 promo_discount / 类型补字段)
PR Check / Lint, Check, Test and Build (push) Has been cancelled
Squash merge of fix/134-促销前端展示对齐 (4702dee).

HIF-79/HIF-113 落地后前端有三处对齐缺失:

- promo-info.tsx 仍读 promo.end_time,但后端 SubscribeDiscountPromo
  JSON 字段是 expires_at(×2 处)
- billing.tsx 缺 Promo Discount 行,PreOrderResponse 拿到 promo_discount
  时无处可渲染
- typings.d.ts: SubscribeDiscountPromo 缺 expires_at/rule_type,
  PreOrderResponse 缺 promo_discount

本次仅修字段对齐与展示行,不动业务逻辑、不动 OrderDetail 类型 (后端
当前未透出 promo_discount)。新增 billing.promoDiscount 中英文文案。
2026-06-02 20:27:54 -07:00
shanshanzhong147 23f51a1ef4 修复(#122): 合并促销价档位提交到测试环境
PR Check / Lint, Check, Test and Build (push) Has been cancelled
2026-05-29 04:15:40 -07:00
shanshanzhong147 c46944aae1 新功能(#113): 新增促销管理后台页面
PR Check / Lint, Check, Test and Build (push) Has been cancelled
2026-05-29 00:34:37 -07:00
5 changed files with 16 additions and 3 deletions
@@ -9,6 +9,7 @@
"originalPrice": "Original Price (Monthly)",
"price": "Price",
"productDiscount": "Product Discount",
"promoDiscount": "Promo Discount",
"total": "Total"
},
"buy": "Buy",
@@ -9,6 +9,7 @@
"originalPrice": "原价(按月)",
"price": "价格",
"productDiscount": "商品折扣",
"promoDiscount": "促销优惠",
"total": "总价"
},
"buy": "购买",
@@ -10,6 +10,7 @@ interface SubscribeBillingProps {
unit_price: number;
unit_time: string;
subscribe_discount: number;
promo_discount: number;
show_original_price?: boolean;
}
>;
@@ -66,6 +67,14 @@ export function SubscribeBilling({ order }: Readonly<SubscribeBillingProps>) {
<Display type="currency" value={order?.discount} />
</span>
</li>
<li>
<span className="text-muted-foreground">
{t("billing.promoDiscount", "Promo Discount")}
</span>
<span>
<Display type="currency" value={order?.promo_discount} />
</span>
</li>
<li>
<span className="text-muted-foreground">
{t("billing.couponDiscount", "Coupon Discount")}
@@ -18,10 +18,10 @@ export function PromoInfo({ discount }: Readonly<PromoInfoProps>) {
<span className="font-medium">
{promo.rule_name || t("promo.available", "Promo Available")}
</span>
{promo.end_time && (
{promo.expires_at && (
<span className="text-muted-foreground text-xs">
{t("promo.validUntil", "Valid until")}:{" "}
{new Date(promo.end_time * 1000).toLocaleString()}
{new Date(promo.expires_at * 1000).toLocaleString()}
</span>
)}
</div>
+3 -1
View File
@@ -548,6 +548,7 @@ declare namespace API {
price: number;
amount: number;
discount: number;
promo_discount: number;
gift_amount: number;
coupon: string;
coupon_discount: number;
@@ -1024,8 +1025,9 @@ declare namespace API {
type SubscribeDiscountPromo = {
rule_name?: string;
rule_type?: string;
promo_price: number;
end_time?: number;
expires_at?: number;
};
type SubscribeGroup = {