- 后端: users表新增VIP字段, 4个VIP API (purchase/status/profile/members) - 后端: hot接口改按user_tracks阅读量排序 - 后端: orders表支持vip产品类型, migrate新增vip_fields迁移 - 小程序「我的」: 推广中心改为我的收益, 头像VIP标识, VIP入口卡片 - 小程序「我的」: 最近阅读显示真实章节名称 - 小程序首页: 去掉内容概览, 新增创业老板排行(4列网格) - 小程序首页: 精选推荐从hot接口获取, goToRead增加track记录 - 新增页面: VIP详情页, 会员详情页 - 开发文档精简为10个标准目录, 创建SKILL.md, 需求日志规范化 Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
2.6 KiB
Plaintext
39 lines
2.6 KiB
Plaintext
.page { background: #000; min-height: 100vh; color: #fff; }
|
|
.nav-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; height: 44px; padding: 0 24rpx; background: rgba(0,0,0,0.9); }
|
|
.nav-back { width: 60rpx; height: 60rpx; display: flex; align-items: center; justify-content: center; }
|
|
.back-icon { font-size: 44rpx; color: #fff; }
|
|
.nav-title { font-size: 34rpx; font-weight: 600; color: #fff; }
|
|
.nav-placeholder-r { width: 60rpx; }
|
|
|
|
.vip-hero {
|
|
margin: 24rpx; padding: 48rpx 32rpx; text-align: center;
|
|
background: linear-gradient(135deg, rgba(255,215,0,0.1), rgba(255,165,0,0.06));
|
|
border: 1rpx solid rgba(255,215,0,0.2); border-radius: 24rpx;
|
|
}
|
|
.vip-hero-active { border-color: rgba(255,215,0,0.5); background: linear-gradient(135deg, rgba(255,215,0,0.18), rgba(255,165,0,0.1)); }
|
|
.vip-hero-icon { font-size: 80rpx; }
|
|
.vip-hero-title { display: block; font-size: 40rpx; font-weight: bold; color: #fff; margin-top: 16rpx; }
|
|
.vip-hero-title.gold { color: #FFD700; }
|
|
.vip-hero-sub { display: block; font-size: 26rpx; color: rgba(255,255,255,0.5); margin-top: 12rpx; }
|
|
|
|
.rights-card { margin: 24rpx; padding: 28rpx; background: #1c1c1e; border-radius: 20rpx; }
|
|
.rights-title { font-size: 30rpx; font-weight: 600; color: rgba(255,255,255,0.9); }
|
|
.rights-list { margin-top: 20rpx; }
|
|
.rights-item { display: flex; align-items: center; gap: 16rpx; padding: 16rpx 0; border-bottom: 1rpx solid rgba(255,255,255,0.06); }
|
|
.rights-item:last-child { border-bottom: none; }
|
|
.rights-check { color: #00CED1; font-size: 28rpx; font-weight: bold; }
|
|
.rights-text { font-size: 28rpx; color: rgba(255,255,255,0.8); }
|
|
|
|
.buy-section { padding: 32rpx 24rpx; }
|
|
.buy-btn { width: 100%; height: 88rpx; line-height: 88rpx; background: linear-gradient(135deg, #FFD700, #FFA500); color: #000; font-size: 32rpx; font-weight: bold; border-radius: 44rpx; border: none; }
|
|
.buy-btn[disabled] { opacity: 0.5; }
|
|
|
|
.profile-card { margin: 24rpx; padding: 28rpx; background: #1c1c1e; border-radius: 20rpx; }
|
|
.profile-title { font-size: 30rpx; font-weight: 600; color: rgba(255,255,255,0.9); display: block; margin-bottom: 24rpx; }
|
|
.form-group { margin-bottom: 20rpx; }
|
|
.form-label { font-size: 24rpx; color: rgba(255,255,255,0.5); display: block; margin-bottom: 8rpx; }
|
|
.form-input { background: rgba(255,255,255,0.06); border: 1rpx solid rgba(255,255,255,0.1); border-radius: 12rpx; padding: 16rpx 20rpx; font-size: 28rpx; color: #fff; }
|
|
.save-btn { margin-top: 24rpx; width: 100%; height: 80rpx; line-height: 80rpx; background: #00CED1; color: #000; font-size: 30rpx; font-weight: 600; border-radius: 40rpx; border: none; }
|
|
|
|
.bottom-space { height: 120rpx; }
|