- Add GET /api/v1/subscription/plans public endpoint for pricing - Subscription API now returns trial_used field - Subscribe-plans page shows trial card, greyed out with "已使用" tag when trial has been used - Trial activation calls dedicated trial API, not purchase - Prices fetched from server settings, fallback to defaults
131 行
1.8 KiB
Plaintext
131 行
1.8 KiB
Plaintext
.current-sub {
|
|
background: #fff9e6;
|
|
border: 2rpx solid #DCB982;
|
|
border-radius: 20rpx;
|
|
padding: 20rpx 24rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.current-sub-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 8rpx 0;
|
|
}
|
|
|
|
.current-sub-label {
|
|
font-size: 24rpx;
|
|
color: #666666;
|
|
}
|
|
|
|
.current-sub-value {
|
|
font-size: 24rpx;
|
|
color: #333333;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.service-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20rpx;
|
|
padding: 24rpx;
|
|
background: #fff9e6;
|
|
border: 2rpx solid #DCB982;
|
|
border-radius: 20rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.service-icon {
|
|
width: 76rpx;
|
|
height: 76rpx;
|
|
background: #DCB982;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #ffffff;
|
|
font-size: 36rpx;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.service-name {
|
|
font-size: 28rpx;
|
|
font-weight: 600;
|
|
color: #333333;
|
|
}
|
|
|
|
.service-desc {
|
|
font-size: 22rpx;
|
|
color: #666666;
|
|
}
|
|
|
|
.plans {
|
|
display: flex;
|
|
gap: 20rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.plan {
|
|
flex: 1;
|
|
padding: 24rpx 16rpx;
|
|
border: 4rpx solid #e5e5e5;
|
|
border-radius: 20rpx;
|
|
text-align: center;
|
|
position: relative;
|
|
}
|
|
|
|
.plan.selected {
|
|
border-color: #E6508C;
|
|
background: #fdf2f8;
|
|
}
|
|
|
|
.plan-tag {
|
|
position: absolute;
|
|
right: -8rpx;
|
|
top: -8rpx;
|
|
background: #E6508C;
|
|
color: #ffffff;
|
|
font-size: 18rpx;
|
|
padding: 4rpx 12rpx;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
.plan-price {
|
|
font-size: 36rpx;
|
|
font-weight: 600;
|
|
color: #333333;
|
|
}
|
|
|
|
.plan-name {
|
|
font-size: 22rpx;
|
|
color: #999999;
|
|
margin-top: 4rpx;
|
|
}
|
|
|
|
.plan-save {
|
|
font-size: 20rpx;
|
|
color: #52c41a;
|
|
margin-top: 4rpx;
|
|
}
|
|
|
|
.agreement {
|
|
text-align: center;
|
|
font-size: 22rpx;
|
|
color: #999999;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.btn-primary-gold::after {
|
|
border: none;
|
|
}
|
|
|
|
.plan-disabled {
|
|
opacity: 0.5;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.plan-tag-disabled {
|
|
background: #ccc;
|
|
color: #fff;
|
|
}
|