Skip to content
方舟组件

天赋条件表TalentTable

干员页正文的天赋:一张表列完各精英阶段 / 模组等级下的效果;表头开关切潜能加成、标出算法。

Vue
实验import { AkTalentTable, AkCalc } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

干员页正文的天赋用这个:同现网 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[]—各条件下的效果
potentialRanknumber—潜能开关上写的潜能等级(「潜能5」);有任一行写了 potential 才出现开关
potentialIconstring—潜能开关上的潜能图标地址(游戏 potential_N)
calcTogglebooleanfalse表头显示「算法」开关——描述里用 AkCalc 标了加成项进公式的方式时打开;打开后表尾有图例行
termsRecord<string, string>—术语说明(termDescriptionDict),给描述里 <$ba.xxx> 的悬停提示
modelValuebooleanfalse潜能加成开关:打开时描述换成潜能版(表上 .is-pot)
calcbooleanfalse算法标记开关:打开时每个加成项前露出 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 切换。窄屏时开关不再浮在右侧、换到「描述」下面。表格数字走正文字体(见表格里的数字)。

块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有