feat: 将课程预约卡片改造为电影票风格设计
### 改动内容 #### 1. SlotCard 组件完全重新设计 - **新增票据风格装饰**:左右两侧添加圆角凹陷(打孔效果) - **三栏布局**: - 左:时间(开始时间大号、分割线、结束时间小号) - 中:课程名称、时长、剩余名额 + 虚线分割符 - 右:操作按钮或状态徽章 - **日期展示**:卡片上方显示完整日期 (YYYY-MM-DD) - **状态指示器**: - 绿色:有空位 - 橙色:接近满额(80% 以上) - 红色:已满 - 灰色:已关闭/已过期 - **响应式样式**:根据预约、满额、已过期等状态自动调整背景颜色和透明度 #### 2. 预约页面 (booking/index.vue) 样式调整 - 移除卡片列表的间距(`gap: 20rpx` → `padding: 24rpx 0 0`) - 更新日期摘要的内边距(`0 8rpx 4rpx` → `0 24rpx 16rpx`) - 调整加载骨架屏的尺寸和间距 - 优化预加载动画匹配新卡片设计 ### 设计特点 ✨ 票据风格的视觉设计 🎯 改进的信息层级和易读性 🎨 精细的状态指示和颜色编码 📱 保持响应式和易用性 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -329,13 +329,12 @@ onMounted(async () => {
|
||||
.slot-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20rpx;
|
||||
padding: 24rpx 24rpx 0;
|
||||
padding: 24rpx 0 0;
|
||||
}
|
||||
|
||||
/* ── Date summary ──────────────────────────────────── */
|
||||
.date-summary {
|
||||
padding: 0 8rpx 4rpx;
|
||||
padding: 0 24rpx 16rpx;
|
||||
}
|
||||
|
||||
.date-summary-text {
|
||||
@@ -348,25 +347,25 @@ onMounted(async () => {
|
||||
.loading-wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20rpx;
|
||||
gap: 24rpx;
|
||||
padding: 28rpx 24rpx;
|
||||
}
|
||||
|
||||
.skeleton-card {
|
||||
height: 140rpx;
|
||||
border-radius: 24rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx 28rpx 32rpx 36rpx;
|
||||
gap: 24rpx;
|
||||
padding: 28rpx 48rpx;
|
||||
gap: 20rpx;
|
||||
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
|
||||
.skeleton-time {
|
||||
width: 80rpx;
|
||||
height: 72rpx;
|
||||
width: 90rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 12rpx;
|
||||
background: linear-gradient(90deg, $primary-border 25%, $primary-light 50%, $primary-border 75%);
|
||||
background-size: 400% 100%;
|
||||
@@ -400,9 +399,9 @@ onMounted(async () => {
|
||||
}
|
||||
|
||||
.skeleton-btn {
|
||||
width: 140rpx;
|
||||
height: 72rpx;
|
||||
border-radius: 36rpx;
|
||||
width: 100rpx;
|
||||
height: 60rpx;
|
||||
border-radius: 20rpx;
|
||||
background: linear-gradient(90deg, $primary-border 25%, $primary-light 50%, $primary-border 75%);
|
||||
background-size: 400% 100%;
|
||||
animation: shimmer 1.4s infinite;
|
||||
|
||||
Reference in New Issue
Block a user