fix(lint): resolve unused vars and any types in apps/web/src/pages/subscription/Plans.tsx
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m24s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m30s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m39s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m47s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m20s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m54s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m56s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m25s
CI/CD Pipeline / CI Gate (pull_request) Failing after 2s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m57s
AI Code Review / AI Code Review (pull_request) Successful in 6m49s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 30h29m45s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 30h30m0s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 30h23m55s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 30h23m54s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 30h29m16s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 30h29m22s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 30h29m34s

This commit is contained in:
2026-09-15 08:53:29 +08:00
parent 630b64ca3b
commit eb292d79f3
+12 -11
View File
@@ -31,7 +31,7 @@ import {
import { useNavigate } from "react-router-dom"
import PageHead from "@/components/layout/PageHead"
import { usePointsStore } from "@/store/pointsStore"
import { SUBSCRIPTION_PLANS, createPointsOrder, subscribe } from "@/api/points"
import { SUBSCRIPTION_PLANS, createPointsOrder } from "@/api/points"
import type { PointsPackage } from "@/api/points/types"
import { getPointsPackages } from "@/api/points"
import "./Plans.css"
@@ -67,12 +67,12 @@ const formatYuan = (cents: number) =>
const Plans: React.FC = () => {
const navigate = useNavigate()
const { balance, subscription, init, loading: storeLoading } = usePointsStore()
const { balance, init } = usePointsStore()
const [selectedBilling, setSelectedBilling] = useState<"monthly" | "quarterly" | "yearly">(
"quarterly",
)
const [packages, setPackages] = useState<PointsPackage[]>([])
const [subscribing, setSubscribing] = useState(false)
const [subscribing] = useState(false)
const [buying, setBuying] = useState<string | null>(null)
useEffect(() => {
@@ -85,12 +85,12 @@ const Plans: React.FC = () => {
const isMember = !!balance?.is_member
const memberType = balance?.member_type ?? null
const /** 根据会员等级计算积分包折后价(分) */
getPackPrice = (pkg: PointsPackage): number => {
const mt = memberType ?? "free"
const key = `discounted_price_for_${mt}` as const
return (pkg as any)[key] ?? pkg.price
}
/** 根据会员等级计算积分包折后价(分) */
const getPackPrice = (pkg: PointsPackage): number => {
const mt = memberType ?? "free"
const key = `discounted_price_for_${mt}` as const
return (pkg as PointsPackage & Record<string, number>)[key] ?? pkg.price
}
const selectedPlan = useMemo(
() => SUBSCRIPTION_PLANS.find((p) => p.id === selectedBilling)!,
@@ -139,8 +139,9 @@ const Plans: React.FC = () => {
),
okText: "知道了",
})
} catch (e: any) {
message.error(e?.message ?? "创建订单失败")
} catch (e) {
const err = e as { message?: string }
message.error(err?.message ?? "创建订单失败")
} finally {
setBuying(null)
}