Appearance
第五章 筛选区模块(M04)
##筛选区是操盘列表的核心交互区域,采用四行布局,每行承担不同的筛选职责。
5.1 第一行:日期筛选与快捷场景
5.1.1 日期快捷按钮
日期快捷按钮组提供常用日期的快速选择,四个按钮互斥,同一时间只能有一个处于激活状态。
| 按钮 | 对应日期 | 默认状态 | 说明 |
|---|---|---|---|
| 昨日 | 比赛日 - 1天 | 正常 | 查看昨日赛事,用于复盘 |
| 今日 | 比赛日 | 激活 | 默认选中 |
| 明日 | 比赛日 + 1天 | 正常 | 查看明日赛事 |
| 后天 | 比赛日 + 2天 | 正常 | 查看后天赛事 |
比赛日定义:以北京时间06:00为日期分界点,而非自然日00:00。即凌晨00:00-05:59的比赛归属前一天的比赛日。这样设计是因为体育赛事经常在凌晨进行(如欧洲联赛),操盘手习惯将凌晨场视为"昨晚的比赛"而非"今天的比赛"。
5.1.2 自定义日期时间范围
自定义日期时间范围包含起始时间输入框、结束时间输入框和应用按钮,支持精确到秒的时间筛选。
| 元素 | 说明 |
|---|---|
| 起始时间 | 日期时间选择器,格式 YYYY-MM-DD HH:mm:ss |
| 结束时间 | 日期时间选择器,格式 YYYY-MM-DD HH:mm:ss |
| 应用按钮 | 用户修改日期时间后需点击应用按钮才能生效 |
时间精度说明:日期筛选支持精确到秒,便于操盘手精确定位特定时间段的赛事。点击快捷按钮(今日/明日等)时,系统自动设置起始时间为 00:00:00,结束时间为 23:59:59。
日期范围约束
| 约束项 | 规则 |
|---|---|
| 最早日期 | 比赛日 - 7天 |
| 最晚日期 | 比赛日 + 14天 |
| 最大跨度 | 7天 |
| 起止关系 | 结束日期 ≥ 起始日期 |
5.1.3 日期筛选联动规则
日期快捷按钮与自定义日期范围存在互斥联动关系:
| 用户操作 | 系统响应 |
|---|---|
| 点击日期快捷按钮 | 清空自定义日期范围,激活对应快捷按钮 |
| 修改自定义日期范围并应用 | 取消所有快捷按钮的激活状态 |
| 清空自定义日期范围 | 恢复「今日」快捷按钮激活 |
5.1.4 快捷场景按钮
快捷场景按钮位于第一行右侧,提供常用筛选场景的一键设置。
| 按钮 | 样式 | 触发的筛选条件 | 数量显示 |
|---|---|---|---|
| 待上架全部 | 红色边框 | 日期=今日,进程=全部,赛事状态=全部,上架状态=待上架,其他条件重置 | 显示用户可见范围内待上架数量 |
| 需处理 | 橙色边框 | (有告警=是)或(上架=待上架 且 进程为滚球或即将),忽略日期筛选 | 显示用户可见范围内符合条件数量 |
| 我负责的 | 蓝色边框 | 操盘手=当前登录用户,保持其他筛选条件不变 | 显示当前用户负责的数量 |
数量口径说明:快捷按钮显示的数量按用户数据可见范围统计(已分配给自己的赛事+未分配的赛事)。主管/风控切换「全局视图」后显示全局数量。
快捷按钮状态规则
| 场景 | 按钮状态 |
|---|---|
| 点击快捷按钮 | 该按钮高亮,其他快捷按钮取消高亮 |
| 手动修改任意筛选条件 | 取消所有快捷按钮高亮 |
| 筛选条件恰好与某快捷按钮一致 | 不自动高亮该按钮(仅点击触发高亮) |
5.2 第二行:比赛进程筛选
比赛进程页签采用分段选择器样式,用于筛选不同进程阶段的赛事。
| 页签 | 筛选条件 | 是否受日期影响 | 数量统计范围 | 样式 |
|---|---|---|---|---|
| 全部 | 无进程筛选 | 是 | 当前日期范围内所有赛事 | 默认激活 |
| 滚球 | 比赛进程=滚球 且 赛事未进入终态 | 否 | 全局滚球数量 | 带「实时」标签 |
| 即将 | 比赛进程=即将 且 赛事未进入终态 | 否 | 全局即将数量 | 带「实时」标签 |
| 赛前 | 比赛进程=赛前 且 赛事未进入终态 | 是 | 当前日期范围内赛前赛事 | 普通样式 |
比赛进程判定:由IM数据源的 Market(1=早盘/2=今日/3=滚球)+ 开赛时间推导得出。详见第9章「数据字段定义」。
5.2.1 「实时」标签说明
滚球和即将页签右上角显示紫色「实时」小标签。点击这两个页签时,日期筛选条件自动忽略,始终显示当前所有滚球或即将开赛的赛事。
设计原因:滚球和即将开赛的赛事具有时效性,操盘手需要实时关注而不应受日期筛选限制。
第二行末尾显示灰色提示文案:「标记『实时』的进程不受日期筛选影响」。
5.2.2 即将开赛的定义
「即将」vs「紧急」区分:
5.3 第三行:赛事状态与上架状态
5.3.1 赛事状态筛选
赛事状态筛选用于筛选处于特定状态的赛事,采用按钮组样式。
| 选项 | 筛选条件 | 数量统计 | 说明 |
|---|---|---|---|
| 全部 | 无状态筛选 | 不显示数量 | 默认选中 |
| 正常 | 赛事状态=正常 | 实时计算 | 比赛正常进行中或等待开赛 |
| 延期 | 赛事状态=延期 | 实时计算 | 等待数据源更新新时间 |
字段说明:
- 赛事状态(正常/延期):由结算接口或内部系统判定推送,用于区分赛事是否正常进行
- 比赛进程(赛前/即将/滚球/中场等):由IM数据源的Market、RBTime、EventPeriodId等字段推导,用于展示比赛当前阶段
- 终态(完场/取消/中断/腰斩/弃权/退赛):由结算接口推送,触发流转到结算管理,不在操盘列表显示
5.3.2 上架状态筛选
上架状态筛选用于筛选不同上架状态的赛事。
| 选项 | 筛选条件 | 数量统计 | 说明 |
|---|---|---|---|
| 全部 | 无状态筛选 | 不显示数量 | 默认选中 |
| 待上架 | 上架状态=待上架 | 实时计算 | 数据源已下发,等待审核上架 |
| 已上架 | 上架状态=已上架 | 实时计算 | 已对外展示,客户端可见 |
| 已下架 | 上架状态=已下架 | 实时计算 | 已人工隐藏,客户端不可见 |
5.3.3 通知开关
第三行右侧提供两个通知开关,用于控制操盘手的提醒方式:
| 开关 | 默认状态 | 功能 | 作用范围 |
|---|---|---|---|
| 告警通知 | 开启 | 控制是否显示新告警的Toast消息通知 | 仅当前浏览器标签页 |
| 声音 | 关盘 | 控制是否播放提示音 | 仅当前浏览器标签页 |
说明:通知开关状态保存在本地存储,刷新页面后保持用户偏好。
5.4 第四行:其他筛选与导出
5.4.1 下拉筛选项
| 筛选项 | 选项内容 | 默认值(联赛管理配置) | 说明 |
|---|---|---|---|
| 联赛 | 全部 + 当前日期范围内有赛事的联赛 | 全部 | 支持搜索,按国家分组显示 |
| 联赛等级 | 全部、默认、等级1-10共11档 | 全部 | 联赛等级在联赛管理中配置 |
| 告警状态 | 全部、有告警、无告警 | 全部 | 存在任意告警即为有告警 |
| 操盘手 | 全部、未分配 + 团队成员姓名列表 | 全部(联赛管理配置) | 根据当前团队成员动态加载 |
设计说明:筛选区不提供"盘口状态"筛选(开盘/隐藏/锁定/关盘)。原因是一场赛事包含多个盘口(全场、上半场、角球等),各盘口状态不一致,列表层面难以准确汇总。如需查看具体盘口状态,请进入赛事详情页。
5.4.2 联赛下拉列表特殊说明
| 功能 | 说明 |
|---|---|
| 搜索 | 支持输入联赛名称关键词实时筛选 |
| 分组 | 按国家/地区分组显示,便于快速定位 |
| 滚动 | 联赛数量较多时列表支持滚动浏览 |
| 数量提示 | 每个联赛后显示该联赛在当前筛选条件下的赛事数量 |
5.4.3 搜索框
搜索框位于第四行,支持按以下字段模糊搜索:
| 搜索字段 | 匹配方式 |
|---|---|
| 赛事编号 | 前缀匹配 |
| 主队名称 | 包含匹配 |
| 客队名称 | 包含匹配 |
| 联赛名称 | 包含匹配 |
| 交互特性 | 说明 |
|---|---|
| 防抖时间 | 300毫秒,输入停止后自动触发搜索 |
| 清除按钮 | 搜索框右侧,点击后清空内容并刷新列表 |
| 最小字符 | 至少输入2个字符才触发搜索 |
5.4.4 排序选择
| 选项 | 排序规则 | 说明 |
|---|---|---|
| 联赛分组 | 第一层按联赛等级(S→A→B→C),同等级按联赛编号;第二层组内按开赛时间升序 | 默认选中 |
| 开赛时间 | 按开赛时间从早到晚排序 | 早开赛的在前 |
| 投注额 | 按投注总额从高到低排序 | 投注额高的在前,仅已上架赛事有效 |
| 风险程度 | 按最高单边比例从高到低排序 | 风险高的在前,仅已上架赛事有效 |
说明:排序规则详见第17章「排序规则」。
5.4.5 导出按钮
导出按钮位于第四行末尾,点击后导出当前筛选条件下的所有赛事数据。
| 属性 | 说明 |
|---|---|
| 导出格式 | Excel(.xlsx) |
| 导出范围 | 当前筛选条件下的所有赛事(不限于当前页) |
| 最大条数 | 单次导出最多10000条 |
| 加载状态 | 导出时按钮显示加载图标,禁止重复点击 |
| 完成行为 | 导出完成后自动下载文件 |
5.5 筛选条件组合逻辑
所有筛选条件之间采用「且」(AND)逻辑组合:
最终结果 = 日期条件
AND 比赛进程条件
AND 赛事状态条件
AND 上架状态条件
AND 联赛条件
AND 联赛等级条件
AND 告警状态条件
AND 操盘手条件
AND 搜索关键词条件5.5.1 特殊覆盖规则
| 触发条件 | 覆盖规则 | 原因 |
|---|---|---|
| 比赛进程=滚球 | 日期条件忽略 | 滚球是实时状态,不应受日期限制 |
| 比赛进程=即将 | 日期条件忽略 | 即将是实时状态,不应受日期限制 |
| 快捷按钮「需处理」 | 使用「或」(OR)逻辑 | 合并多种需处理情况 |
5.5.2 「需处理」快捷按钮的特殊逻辑
点击「需处理」后,筛选条件为:
需处理条件 = (告警状态=有告警)
OR(上架状态=待上架 AND 比赛进程 IN (滚球, 即将))其他筛选条件仍然生效,作为额外的「且」条件叠加:
最终结果 = 需处理条件 AND 其他筛选条件(不含日期)5.6 筛选条件的网址同步
核心筛选条件同步到浏览器网址参数,便于刷新保持状态或分享链接。
5.6.1 同步的筛选条件
| 筛选条件 | URL参数名 | 示例值(精度:yyyy-MM-dd HH:mm:ss) |
|---|---|---|
| 日期范围 | dateRange | today / yesterday / tomorrow / custom |
| 自定义起始时间 | startDate | 2026-01-19 00:00:00 |
| 自定义结束时间 | endDate | 2026-01-20 23:59:59 |
| 比赛进程 | phase | all / live / upcoming / prematch |
| 赛事状态 | eventStatus | all / normal / postponed |
| 上架状态 | listingStatus | all / pending / listed / delisted |
5.6.2 URL同步场景
| 场景 | 系统行为 |
|---|---|
| 用户刷新页面 | 读取URL参数恢复筛选状态 |
| 用户分享链接 | 收到链接的用户打开后看到相同筛选结果 |
| 用户修改筛选条件 | 实时更新URL参数(不刷新页面) |
| URL参数无效或缺失 | 使用默认筛选条件 |
5.7 筛选变更时的界面反馈
| 阶段 | 界面反馈 |
|---|---|
| 筛选条件变更瞬间 | 立即更新筛选控件的选中状态 |
| 数据加载中 | 表格区域显示半透明遮罩和加载图标,筛选控件保持可操作 |
| 数据加载完成 | 遮罩消失,列表滚动到顶部,更新分页信息 |
| 筛选结果为空 | 显示空状态插图和文案「暂无符合条件的赛事」,突出显示「清除筛选条件」按钮 |
修订记录
| 版本 | 日期 | 修订内容 |
|---|---|---|
| v1.0 | 2026-01-15 | 初稿 |
| v1.1 | 2026-01-20 | 【审计修正】1) 移除EventStatusId的错误引用,明确赛事状态/比赛进程/终态的来源和区别;2) 日期口径统一为比赛日06:00分界;3) 移除"盘口状态"筛选(列表层面难以准确汇总多盘口状态);4) 移除5.4.1节盘口状态说明框 |
| v1.2 | 2026-02-02 | 【功能增强】日期筛选精度从天提升到秒,格式从 YYYY-MM-DD 改为 YYYY-MM-DD HH:mm:ss,支持更精确的时间范围查询 |