球队与球员能力值需求文档

2026-11-02 · 依据飞书《AiScore_足球新增数据P0》1.3 / 1.5 / 2.1 与页面批注。球队能力常驻 Key players 下方,球员能力替换 Playing style。接口未定义或原文存在冲突的部分在对应规则中明确标注。

01

Team Ability

球队概况 · 完整 Key players 下方常驻展示

与 Demo 共用同一实现和图片。概况预览默认定位能力模块,可上下滚动查看完整资料;球员概况无“更多”入口。

展示位置

  • 本 APP:General 页,完整 Key players 卡片之后、Key Transfer 之前插入 Team Ability。

展示内容

  • 展示 Team Ability 标题、综合能力值、六维雷达图及轴外“名称+评分”。综合能力值直接展示数据源数值。
  • 从最上方开始顺时针固定顺序:进攻 Attacking → 组织 Build-up → 防守 Defending → 转换 Transition → 定位球 Set Pieces → 体系 Tactical System。
  • 雷达图正下方展示球队强弱项,依次为强 Strong、较强 Relatively Strong、弱 Weak、较弱 Relatively Weak;每组一行,左侧为彩色图标与类别名,右侧最多 2 个能力标签。

取数

  • 来源:GET /api/v5/football/team/ability/list。results 为球队记录数组,以 id 匹配当前球队;comprehensive 是综合能力值,ability 是六维数据。综合能力值取当前球队记录的 comprehensive。
  • ability 的单项按字段说明解析为 [特点 ID, 特点数值, 默认 0],按 ID 31–36 映射轴位,不直接使用接口数组顺序。
  • 服务端首次按 id 拉取全量,随后按 time 增量获取变化;数据源建议同步频次为 1 分钟/次。
  • 强弱项读取数据源分类及评分:Strong、Relatively Strong 类别分别取评分最高的前 2 项;Weak、Relatively Weak 类别分别取评分最低的前 2 项。标签使用对应能力小项名称。
  • Demo 综合能力值 92 及强弱项评分为演示数据;正式接入时替换为当前球队的数据源记录。

计算

  • 正六边形等角六轴;中心 0、外层 100,点位半径 = 评分 / 100 × 最大半径;连成闭合多边形,保留网格线。
  • 综合能力值直接取数据源 comprehensive,不进行等级映射或前端加权计算。
  • Strong、Relatively Strong 各自按评分降序排列后取前 2 项;Weak、Relatively Weak 各自按评分升序排列后取前 2 项。不足 2 项时展示全部有效项;相同评分保留数据源顺序。
  • 评分颜色:0–59 红、60–79 黄、80–89 绿、90–100 蓝;综合能力值与六维评分色签使用相同规则。

交互

  • 模块随资料页滚动,正常文档流占位。能力项未定义点击动作。

边界处理

  • 无数据:数据源未返回当前球队的能力数据,或能力数据为空时,隐藏整个 Team Ability 模块,包括标题、综合能力值、雷达图和强弱项;不保留空卡片或空白占位,下方 Key Transfer 自然上移。
  • 六维中至少 3 个有评分才展示能力模块,少于 3 个隐藏整个模块。0 是有效分数,不能按空值处理。
  • 单个维度缺失时保留名称,评分显示“-”,该轴按 0 绘制;不能把缺失评分文字改成 0。
  • 某类别没有有效小项则隐藏该行;四个类别均没有有效小项时隐藏整个强弱项区域。
02

Player Ability

球员概况 · 替换整个 Playing style 模块

与 Demo 共用同一实现和图片。概况预览默认定位能力模块,可上下滚动查看完整资料;球员概况无“更多”入口。

展示位置

  • 本 APP:General 页,以 Player Ability 能力区完整替换 Playing style 标题、说明和图表;上接 Career、下接 Position。原截图其他区域保持原样。

展示内容

  • 本 APP 模块标题改为 Player Ability(源文档为 Player Traits),标题右侧展示综合分;雷达图按原 UI 蓝色填充、细网格、圆点及轴外分数标签制作。
  • 非 GK 顺时针:速度 Speed、射门 Shooting、传球 Passing、盘带 Dribbling、防守 Defending、身体 Physical;最上方为速度 Speed。GK 顺时针:弹跳 Jumping、飞身扑救 Diving、手接球 Handling、门球 Kicking、站位 Positioning、反应 Reflexes;最上方为弹跳 Jumping。Demo 雷达图使用英文名称,需求说明保留中英文对照。

取数

  • 综合分读取 results.comprehensive;六维读取 results.ability;能力小项读取 results.ability_detail;分享更新时间读取 results.updated_at。
  • 依据球员主位置判断类型:主位置等于 GK 时使用门将维度与分组;其他位置使用非门将配置,不能仅按球员名称或任一兼任位置判断。
  • 维度根据供应商类型枚举映射固定轴位;原文可读正文给出了维度名称与顺序,未确认完整球员维度 ID 对照,联调前补齐映射表。Demo 使用源 UI 示例 90、93、78、82、45、88,综合分 91。

计算

  • 六轴中心 0、外缘 100,按分数线性定位,绘制网格与闭合轮廓。综合分直接展示接口值,不用六维平均或权重计算。
  • 正常评分范围 0–100;原文统一色阶为 0–59 红、60–79 黄、80–89 绿、90–100 蓝。
  • 视觉冲突:源球员 UI 为 90+ 红、80–89 橙、60–79 黄、0–59 绿,与文字规则相反。本次高保真 Demo 保留源 UI 颜色;生产实现按原文字规则,若要沿用图中色彩,需同步修改统一色阶需求。

边界处理

  • 无数据:数据源未返回当前球员的能力数据,或能力数据为空时,隐藏整个 Player Ability 模块,包括标题、综合能力值和雷达图;不保留空卡片或空白占位,下方 Position 自然上移。
  • 6 个维度至少 3 项有评分时显示 Player Ability;少于 3 项隐藏整个模块。测试至少覆盖 0、2、3、6 项有效值。
  • results.comprehensive 缺失时只隐藏综合分,不能虚构默认分或影响满足条件的雷达图。
  • 单轴缺失仍显示维度名,分数显示“-”,图中点位按 0 绘制;有效分数 0 仍显示 0 并计入有效项数量。
03

Player Ability

能力值详情 · 原文 1.5 的独立页面与小项数据

与 Demo 共用同一实现和图片。概况预览默认定位能力模块,可上下滚动查看完整资料;球员概况无“更多”入口。

展示位置

  • 源 APP 顶部顺序:Overview、Matches、Statistics、能力值、Career、Honor;能力值位于 Statistics 后、Career 前。
  • 本次概况 Demo 保留原有导航截图并移除“更多”入口;详情作为需求文档中的独立评审预览保留。正式 APP 新增导航入口时按现有导航结构落位。

展示内容

  • 能力页依次为综合能力卡片、能力小项卡片。综合能力卡片复用综合分、类型分支和雷达逻辑,右上角展示“分享”。
  • 小项采用分组标题+两列条目;每项名称在左、评分在右,下方为评分进度条。列表按源枚举次序排列,不按分数重排。
  • 非 GK:进攻 6 → 技术 9 → 身体 11 → 战术 5 → 防守 7。GK:守门 21 → 移动 22 → 技术 9 → 身体 11 → 战术 5。

取数

  • 分组 ID 位于 results.ability_detail[n][0];只展示对应球员类型的目标分组。
  • 进攻 6 小项顺序:1 传中、2 终结、3 头球精度、4 短传、5 凌空抽射。技术 9:1 带球、2 弧线、3 任意球精度、4 长传、5 控球。
  • 身体 11:1 射门力量、2 弹跳、3 体力、4 力量、5 远射。战术 5:1 侵略性、2 拦截、3 站位、4 传球视野、5 点球、6 沉着。
  • 防守 7:1 防守意识、2 抢断、3 铲球。守门 21:1 飞身扑救、2 手接球、3 门球、4 门将站位、5 门将反应。移动 22:1 加速、2 速度、3 敏捷、4 反应、5 平衡。
  • 以上小项顺序来自原文枚举截图;小项记录内分值所在下标应按实际供应商接口结构解析,本文不假定未给出的数组层级。

计算

  • 进度条长度 = 小项评分 / 100 × 条长;0 分条长为 0,但仍显示名称和 0。
  • 综合分、维度分、小项分与进度条使用同一套生产色阶:0–59 红、60–79 黄、80–89 绿、90–100 蓝;视觉示例与文字冲突说明同上。

交互

  • 存在有效能力小项才显示能力值 Tab;从顶部 Tab 进入当前球员能力页,顶部标记当前选中项。本次已取消概况“更多”入口。
  • 文档提供独立详情预览,可返回概况并自动定位到能力模块;使用静态示例小项,不代表真实球员最新数据。

边界处理

  • 目标分组不存在或其小项列表为空时,隐藏整个分组及标题;缺失小项不展示,不保留空进度条。
  • 全部能力小项无有效数值时隐藏整个能力值 Tab。不能用综合分存在作为能力值 Tab 的显示条件。
  • 六维不足 3 项但小项有效时,Tab 仍满足显示条件;综合能力雷达区沿用概况隐藏规则,小项继续展示。此组合需在正式接入时验收。
04

Ability Sharing

分享规则 · 原文流程与当前 Demo 的边界
源文档球员分享样图

飞书原始分享样图,仅作为分享结构的视觉依据;当前未接入系统分享。

展示位置

  • 入口仅位于球员能力值页综合能力卡片右上角。概况页不展示“更多”或分享入口。

展示内容

  • 分享载荷为 1 句文本+1 张图。源文案:Watch free sports live streaming on AiScore App.;迁移到你的 APP 时沿用你 APP 现有分享文案及品牌配置。
  • 图片包含 Logo、App 名称、球员头像/姓名、球队队徽、国家队或俱乐部名称,以及固定顺序的 位置 · 身价 · 年龄 · 身高。基础信息取资料页头部同源数据。
  • 继续展示综合分、六维雷达图和能力小项;底部为 Updated YYYY/MM/DD。文档左侧为飞书原始分享样图,不是本 APP 已接入的分享服务。

取数

  • 分享时使用当前球员的同一份能力数据快照,避免图中的综合分、雷达与列表来自不同更新时间。基础信息复用资料页,时间取 results.updated_at。
  • 原文未规定时间戳单位和时区,需与接口约定后格式化为 YYYY/MM/DD,不直接显示本地生成图片的日期。

交互

  • 正式流程:点击分享 → 生成当前数据的分享图(loading)→ 生成成功 → 拉起系统分享面板,附带文本与图片。
  • Demo 的详情页分享按钮打开原文分享样图供评审,并明确标记为示例预览;未伪装系统分享或真实数据生成完成。

边界处理

  • 任一基础信息缺失时不展示该项,并清理多余分隔点;updated_at 为空时隐藏整行更新时间。图内六维及小项缺失规则与能力页一致。
  • 原文未定义生成失败、重复点击、系统取消的细节。接入建议:生成期间防重复提交;失败恢复按钮并允许重试;用户取消分享返回详情页。此为补充建议,待开发接入时确认。