Files
xiaoxia-saas/apps/web/src/pages/subscription/Billing.css
T
Build Agent 927b302152
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
feat(subscription): 实现订阅管理前端页面
- 新增 api/subscription.ts: 订阅 API 模块(mock数据+接口定义)
- 新增 UpgradeSubscription.tsx + .css: 升级/降级/续费页面
- 新增 Billing.tsx + .css: 账单管理页面
2026-06-28 16:19:02 +08:00

129 lines
2.3 KiB
CSS

/* 账单管理页面 */
.xx-billing-page {
max-width: 960px;
margin: 0 auto;
padding: 40px 24px;
}
/* 订阅概览 */
.xx-billing-overview {
background: rgba(255, 255, 255, 0.94);
border: 1px solid rgba(226, 232, 240, 0.95);
border-radius: 20px;
padding: 32px;
margin-bottom: 40px;
box-shadow: 0 8px 30px rgba(15, 23, 42, 0.06);
}
.xx-billing-overview h2 {
font-size: 24px;
font-weight: 800;
color: var(--slate, #0f172a);
margin: 0 0 24px;
}
.xx-overview-details {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-bottom: 24px;
}
@media (max-width: 768px) {
.xx-overview-details {
grid-template-columns: repeat(2, 1fr);
}
}
.xx-overview-item {
display: flex;
flex-direction: column;
gap: 6px;
}
.xx-label {
font-size: 13px;
color: var(--muted, #64748b);
font-weight: 500;
}
.xx-value {
font-size: 16px;
font-weight: 700;
color: var(--slate, #0f172a);
}
/* 账单记录 */
.xx-billing-history {
background: rgba(255, 255, 255, 0.94);
border: 1px solid rgba(226, 232, 240, 0.95);
border-radius: 20px;
padding: 32px;
box-shadow: 0 8px 30px rgba(15, 23, 42, 0.06);
}
.xx-billing-history h2 {
font-size: 24px;
font-weight: 800;
color: var(--slate, #0f172a);
margin: 0 0 24px;
}
/* 表格样式 */
.xx-billing-table {
width: 100%;
}
.xx-table-header {
display: grid;
grid-template-columns: 1.2fr 1fr 0.8fr 1fr 0.8fr 1fr;
gap: 12px;
padding: 12px 16px;
background: rgba(241, 245, 249, 0.8);
border-radius: 10px;
margin-bottom: 8px;
font-size: 13px;
font-weight: 700;
color: var(--muted, #64748b);
}
.xx-table-row {
display: grid;
grid-template-columns: 1.2fr 1fr 0.8fr 1fr 0.8fr 1fr;
gap: 12px;
padding: 14px 16px;
align-items: center;
border-bottom: 1px solid rgba(226, 232, 240, 0.6);
font-size: 14px;
color: var(--slate, #0f172a);
transition: background 0.15s;
}
.xx-table-row:hover {
background: rgba(241, 245, 249, 0.4);
}
.xx-table-row:last-child {
border-bottom: none;
}
.xx-amount {
font-weight: 700;
color: var(--indigo, #4f46e5);
}
@media (max-width: 768px) {
.xx-table-header,
.xx-table-row {
grid-template-columns: 1fr 1fr 1fr;
font-size: 12px;
}
.xx-table-header span:nth-child(4),
.xx-table-header span:nth-child(6),
.xx-table-row span:nth-child(4),
.xx-table-row span:nth-child(6) {
display: none;
}
}