文件
jw-beauty/miniprogram/pages/subscribe-plans/subscribe-plans.wxss
T
Guoguo 17f5366c23 feat: show trial plan with used/disabled state on subscribe page
- 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
2026-04-29 08:15:27 -07:00

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;
}