干员页正文的天赋用这个:同现网 prts.wiki,一张表列完各精英阶段 / 模组等级下的效果,一个天赋一张表(「第一天赋」「第二天赋」)。列表 / 侧栏里的摘要用天赋卡。
条件表
rows 每项是一个条件下的效果:name 天赋名(相邻几行同名合并成一格)、condition 条件、description 描述(游戏原始标记,由 AkRichText 渲染)。条件格要放精英化图标时用 #condition 插槽({ row, index })。
潜能 · 算法开关
表头右侧两枚开关,都是组件自己的状态,也可以用 v-model 暴露出来:
- 潜能(默认
v-model):有任一行写了potential(潜能加成后的描述,加成部分一般是<@ba.talpu>(+1%)</>)就出现;打开后描述换成潜能版。potential-rank/potential-icon是开关上的「潜能5」与图标。 - 算法(
v-model:calc):calc-toggle打开时出现。描述里每个加成项前用AkCalc标出它进公式的方式——绿 + 直接加算 · 蓝 + 直接乘算 · 橙 + 最终加算 · 橙 × 最终乘算(同现网的四枚小图标);开关打开时标记与表尾图例一起出现,图例末尾可用#legend插槽加「详见」链接。
要插 AkCalc 就得自己画描述:#description 插槽({ row, index, potential })——有潜能版的行调两次,potential 告诉你这次画的是哪一版。
预览页 / 皮肤里的纯 CSS 版靠 input[data-toggle-class] 约定:勾选时皮肤脚本(skin.js / preview.js,document 级委托)给最近的 data-toggle-target(默认 table)加 / 去类(.is-pot / .is-calc);生产环境这几行也可以归 Gadget。Vue 版自带状态。
可访问性
开关是带 <label> 的原生复选框(读作「潜能5加成」「算法」)。两版描述都在 DOM 里、由 CSS 切换显示,隐藏的那版 display: none,读屏也跳过。AkCalc 是 role="img",读作「直接乘算」等(悬停同)。
Vue API
AkTalentTable
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
title必填 | string | — | 第一列的列头(「第一天赋」「第二天赋」) |
rows必填 | TalentRow[] | — | 各条件下的效果 |
potentialRank | number | — | 潜能开关上写的潜能等级(「潜能5」);有任一行写了 potential 才出现开关 |
potentialIcon | string | — | 潜能开关上的潜能图标地址(游戏 potential_N) |
calcToggle | boolean | false | 表头显示「算法」开关——描述里用 AkCalc 标了加成项进公式的方式时打开;打开后表尾有图例行 |
terms | Record<string, string> | — | 术语说明(termDescriptionDict),给描述里 <$ba.xxx> 的悬停提示 |
modelValue | boolean | false | 潜能加成开关:打开时描述换成潜能版(表上 .is-pot) |
calc | boolean | false | 算法标记开关:打开时每个加成项前露出 AkCalc、表尾出图例(表上 .is-calc) |
| 事件 | 参数 | 说明 |
|---|---|---|
update:modelValue | [value: boolean] | |
update:calc | [value: boolean] |
| 插槽 | 说明 |
|---|---|
condition | 自己画条件格(放精英化图标等):{ row, index } |
description | 自己画描述(要标 AkCalc 时用):potential = 这是潜能版还是基础版(有潜能版的行调两次) |
legend | 图例行末尾的附加内容(「详见 属性基本公式」链接) |
AkCalc
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
kind必填 | "add""mul""fadd""fmul" | — | 进公式的方式:add 直接加算(绿 +)· mul 直接乘算(蓝 +)· fadd 最终加算(橙 +)· fmul 最终乘算(橙 ×) |
CSS 实现
结构:table.ak-talent-table > thead( th.name th.cond th.desc > label.ak-check.ak-talent-table__toggle ) + tbody > tr( td.name[rowspan] td.cond td.desc( .ak-talent-table__base + .ak-talent-table__pot ) ) + tfoot > tr.ak-talent-table__legend;表上 .is-pot / .is-calc 切换。窄屏时开关不再浮在右侧、换到「描述」下面。表格数字走正文字体(见表格里的数字)。
| 块 | 元素 __ | 修饰 -- |
|---|
