MatchPrizeList 比赛奖励列表
MatchPrizeList 组件用于展示比赛奖励信息,支持网格和列表两种布局模式。网格模式支持最大显示数量限制,列表模式显示所有奖品。
引入
代码演示
网格布局
列表布局
API
Props
| 参数 | 说明 | 类型 | 默认值 |
| title | 标题文本 | string | '比赛奖励' |
| description | 描述文本 | string | '奖励默认发放至参赛账号' |
| prizes | 奖品列表 | Prize[] | [] |
| maxDisplay | 最大显示数量(仅网格模式) | number | 3 |
| moreText | 更多按钮文本 | string | '所有奖励' |
| layout | 布局模式 | 'grid' | 'list' | 'grid' |
| customClass | 自定义类名 | string | - |
Prize 数据结构
| 键名 | 说明 | 类型 |
| id | 奖品ID | string | number |
| name | 奖品名称 | string |
| imageUrl | 奖品图片 | string |
| count | 奖品数量 | number |
| description | 奖品描述(列表模式显示) | string |
Events
| 事件名 | 说明 | 回调参数 |
| prizeClick | 点击奖品时触发 | prize: Prize |
| moreClick | 点击更多时触发 | - |
布局模式说明
- 网格模式 (grid): 显示标题和描述,奖品以网格形式排列,支持maxDisplay限制和更多按钮
- 列表模式 (list): 不显示标题和描述,奖品以列表形式排列,显示所有奖品和描述信息,不受maxDisplay限制
主题定制
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
样式变量
| 名称 | 默认值 | 描述 |
| --pl-content-padding-lr | $spacing-md | 内容左右间距 |
| --pl-prize-size | 1.48rem | 奖品尺寸 |
| --pl-prize-border-width | .02rem | 奖品边框宽度 |
| --pl-list-height | 1.96rem | 列表模式高度 |
| --pl-prize-head-title-width | 2.8rem | 标题最大宽度 |
| --pl-prize-img-size | 1.44rem | 奖品图片尺寸 |
| --pl-prize-icon-size | .7rem | 图标尺寸 |
| --pl-prize-color-text-primary | $color-text-primary | 主要文字颜色 |
| --pl-prize-color-text-desc | $color-text-invert-light-default | 描述文字颜色 |
| --pl-prize-bg-color | $color-surface-default | 组件背景色 |
| --pl-prize-img-border-color | $color-divider-light | 图片边框颜色 |
| --pl-prize-img-bg-color | $color-divider-light-2 | 图片背景色 |
| --pl-prize-font-size-md | $font-size-md | 中等字体 |
| --pl-prize-font-size-xs | $font-size-xs | 超小字体 |
| --pl-prize-font-size-sm | $font-size-sm | 小字体 |
| --pl-prize-font-weight-bold | $font-weight-bold | 粗体字重 |
| --pl-prize-radius-sm | $border-radius-sm | 小圆角 |