参赛必读信息展示弹窗组件,用于展示比赛报名须知、参赛指引和开赛准备信息。支持多标签切换、二维码展示、比赛流程等功能。
特性
- 📋 多标签切换 - 支持报名须知、如何参赛、开赛准备等多个标签页
- 📝 比赛信息 - 完整的比赛信息展示,包含模式、玩法、时间、地点等
- 📍 地点导航 - 支持点击地址跳转到地图导航
- 📱 二维码展示 - 支持比赛二维码和客服群二维码展示
- 🎨 主题定制 - 丰富的CSS变量支持主题定制
- ⚡ 轻量高效 - 优化的代码结构,性能出色
适用场景
- 比赛报名须知展示
- 参赛指引说明
- 开赛准备提醒
- 比赛规则说明
引入
代码演示
基础用法
完整配置
自定义主题
API
Props
| 参数 | 说明 | 类型 | 默认值 |
| custom-class | 自定义样式类 | string | '' |
| show | 是否显示弹窗 | boolean | false |
| z-index | 弹窗层级 | number | 100 |
| tabs | 标签页列表 | string[] | [] |
| sign-up-info | 报名须知信息 | SignUpInfo | {} |
| match-q-r-code | 比赛二维码图片地址 | string | '' |
| group-q-r-code | 客服群二维码图片地址 | string | '' |
| match-date | 比赛日期 | string | '' |
| match-time | 比赛时间 | string | '' |
SignUpInfo 数据结构
Events
| 事件名 | 说明 | 回调参数 |
| close | 关闭弹窗时触发 | - |
| jump-to-rule-page | 点击"详细规则"标签时触发 | - |
| goto-map | 点击比赛地点时触发 | - |
注意事项
使用建议
- 标签配置:tabs数组建议配置为
['报名须知', '如何参赛', '开赛准备', '详细规则'],最后一个标签会触发跳转事件 - 二维码图片:二维码图片建议使用清晰度较高的图片,尺寸建议不小于200x200
- 比赛流程:process数组建议配置2-5个流程步骤,过多会影响展示效果
- 地址跳转:需要在
goto-map事件中实现地图跳转逻辑 - 阵营要求提示:当设置了
requireTeamType时,会显示提示图标,点击可查看说明 - 响应式适配:在小屏幕设备上,建议适当调整
--mrp-content-height等尺寸变量
性能优化
- 组件使用虚拟化节点减少DOM层级
- 标签切换使用v-if控制渲染,减少不必要的DOM
- 二维码图片建议使用懒加载
- 样式使用CSS变量,便于动态主题切换
兼容性
- 支持 Vue 3.0+
- 兼容现代浏览器(Chrome 60+, Firefox 60+, Safari 12+)
- 支持微信小程序、支付宝小程序等平台
主题定制
样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
间距系统 (Spacing)
| 名称 | 默认值 | 描述 |
| --mrp-content-height | 50vh | 内容区高度 |
| --mrp-tab-height | .6rem | 标签高度 |
| --mrp-tab-border-width | .02rem | 标签边框宽度 |
| --mrp-title-padding | .4rem 0 .24rem | 标题内边距 |
| --mrp-rules-form-padding | .4rem | 规则表单内边距 |
| --mrp-rules-form-li-padding | .24rem | 规则表单项内边距 |
| --mrp-rule-form-label-width | .96rem | 规则表单标签宽度 |
| --mrp-rule-form-label-margin | .32rem | 规则表单标签边距 |
| --mrp-rule-sche-item-padding | 0 0 .24rem .3rem | 规则进度项内边距 |
| --mrp-rule-step-name-margin | .48rem | 规则步骤名称外边距 |
| --mrp-guide-wrap-padding | .32rem | 引导内容内边距 |
| --mrp-guide-text-padding | .16rem | 引导文案内边距 |
| --mrp-guide-example-padding | .16rem 0 | 示例边距 |
| --mrp-guide-example-margin | .4rem | 引导示例外边距 |
| --mrp-guide-tips-padding | .16rem | 引导提示内边距 |
| --mrp-game-tip-icon-margin | .08rem | 图标左间距 |
颜色系统 (Colors)
| 名称 | 默认值 | 描述 |
| --mrp-tab-color | $color-text-secondary | 标签颜色 |
| --mrp-tab-bg-color | $color-surface-secondary | 标签背景色 |
| --mrp-tab-border-color | $color-border-tertiary | 标签边框颜色 |
| --mrp-tab-active-color | $color-text-brand | 激活标签颜色 |
| --mrp-tab-active-bg-color | $color-surface-brand-light | 激活标签背景色 |
| --mrp-tab-active-border-color | $color-border-brand | 激活标签边框颜色 |
| --mrp-title-color | #212124 | 标题颜色 |
| --mrp-rule-form-label-color | $color-text-invert-default | 规则表单标签颜色 |
| --mrp-rules-form-li-border-color | $color-divider-light | 分割线颜色 |
| --mrp-rule-value-color | $color-text-secondary | 规则表单值颜色 |
| --mrp-rule-step-name-color | $color-text-brand | 规则步骤名称颜色 |
| --mrp-rule-step-content-color | $color-text-invert-default | 规则步骤内容颜色 |
| --mrp-rule-sche-line-color | $color-text-brand | 规则进度线颜色 |
| --mrp-game-start-tips-bg-color | #000 | 游戏开始提示背景色 |
| --mrp-game-start-text-color | #fff | 游戏开始提示文字颜色 |
| --mrp-game-tip-icon-color | $color-icon-brand | 提示图标颜色 |
| --mrp-guide-step-color | $color-text-brand | 引导步骤颜色 |
| --mrp-guide-step-bg-color | $color-surface-brand-light | 引导步骤背景色 |
| --mrp-guide-text-color | $color-text-primary | 引导文案颜色 |
| --mrp-guide-tips-color | $color-text-invert-default | 引导提示文字颜色 |
| --mrp-code-bg-color | $color-surface-default | 二维码背景色 |
| --mrp-guide-example-bg-color | $color-divider-light | 示例背景色 |
| --mrp-guide-calendar-date-color | #000 | 日历日期颜色 |
字体系统 (Typography)
| 名称 | 默认值 | 描述 |
| --mrp-tab-font-size | $font-size-sm | 标签字体大小 |
| --mrp-tab-line-height | .6rem | 标签行高 |
| --mrp-tab-font-weight | $font-weight-bold | 标签字体粗细 |
| --mrp-title-font-size | $font-size-md | 标题字体大小 |
| --mrp-title-font-weight | $font-weight-bold | 标题字体粗细 |
| --mrp-rule-form-label-font-size | $spacing-md | 规则表单标签字体大小 |
| --mrp-rule-form-label-line-height | .36rem | 规则表单标签行高 |
| --mrp-rule-value-font-size | $spacing-md | 规则表单值字体大小 |
| --mrp-rule-step-name-font-size | $font-size-sm | 规则步骤名称字体大小 |
| --mrp-game-start-tips-font-size | .2rem | 游戏开始提示字体大小 |
| --mrp-game-tip-icon-size | $font-size-xs | 图标大小 |
| --mrp-guide-tips-font-size | .24rem | 引导提示字体大小 |
| --mrp-guide-step-font-size | $font-size-xxs | 步骤字体大小 |
| --mrp-guide-text-font-size | $font-size-sm | 引导字体大小 |
| --mrp-guide-text-font-weight | $font-weight-bold | 引导字体粗细 |
圆角系统 (Border Radius)
| 名称 | 默认值 | 描述 |
| --mrp-guide-example-radius | .08rem | 示例圆角 |