同现网 {{模组}}(.equiptemplate),一张卡装完:型号(类型图标 + SWO-X)+ 名称 + 说明 tooltip + 基础信息(故事)+ 三阶段属性 / 特性追加 · 天赋更新 + 解锁任务 + 解锁需求与材料。color(= 模板参数「类型颜色」,游戏模组类型底色)决定型号块与阶段条的颜色:red / blue / green / yellow / purple,原型证章不写 = 灰。
写法参考 Naive UI 的 n-card(#header-extra):头部走 props,故事是默认插槽;三张表的行放在具名插槽里——#stages 放 AkModuleStage、#unlock 放 AkModuleUnlock,表头由卡片画。解锁任务是纯文本时用 tasks,要链接关卡号时用 #tasks 插槽写 <li>。
完整卡片
AkModuleStage 的 stats 按写的顺序排、数值绿字,kicker 是反色小标(特性追加 / 天赋更新),描述写在默认插槽里;AkModuleUnlock 的 #requirement 放信赖 / 精英阶段 / 任务标签,默认插槽放材料(道具)。
故事折叠
故事默认定高 5 行、框内可滚动(同现网 :不展开也读得到全文),「全文阅读」去掉定高撑开、「收起全文」收回。展开态是组件自己的状态,也可以用 v-model 接出来(外面放「全部展开」之类的开关)。无论展开与否,全文都在 DOM 里,可被搜索。
CSS 版的开关靠 data-toggle-class 约定:勾选「全文阅读」时皮肤脚本(skin.js,预览里是 preview.js)给 data-toggle-target=".ak-module__main" 切 .is-open;无 JS 时复选框照样在,只是故事停在定高框里(仍可滚动)。Vue 版自带状态。
原型证章
:collapsible="false":短文全文展开、不出开关;不写 color(灰条);#header-extra 放说明标签。
键盘与可访问性
- 「全文阅读」是
<label>包着的原生复选框(aria-controls指向故事),Tab 聚焦、Space 切换。复选框本身是 0×0 的隐形控件,焦点环画在整个开关上。 - 「说明 ⓘ」可聚焦,聚焦时显示解释(同悬停)。
- 阶段条是装饰(
aria-hidden),读屏只读「STAGE n」。
Vue API
AkModule
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
name必填 | string | — | 模组名(h4) |
src | string | — | 模组图地址(游戏 uniequip 图;原型证章放分支图标) |
typeName | string | — | 型号文字:SWO-X / Original … |
typeIcon | string | — | 型号图标地址(游戏模组类型小图标,放在型号文字前) |
color | "yellow""red""blue""green""purple" | — | 型号色(= 模板参数「类型颜色」,游戏模组类型底色):左侧粗色条 + 型号块 + 阶段条;不写 = 原型证章的灰 |
hint | string | — | 「说明 ⓘ」的悬停解释(调整效果先于潜能生效 …);不写不显示 |
collapsible | boolean | true | 故事可折叠:默认定高 5 行可滚动 +「全文阅读」开关;false 时全文展开、不出开关(原型证章那种短文) |
tasks | string[] | — | 模组解锁任务(纯文本,一条一行);要链接关卡时改用 #tasks 插槽 |
modelValue | boolean | false | 故事是否展开(「全文阅读」/「收起全文」) |
| 事件 | 参数 | 说明 |
|---|---|---|
update:modelValue | [value: boolean] |
| 插槽 | 说明 |
|---|---|
default | 故事(基础信息):若干 <p>,行内换行用 <br> |
header-extra | 名称之后的附加内容(原型证章的说明标签等) |
stages | 三阶段表的行:若干 AkModuleStage |
tasks | 解锁任务:若干 <li>(排在 tasks 之后) |
unlock | 解锁需求与材料表的行:若干 AkModuleUnlock |
AkModuleStage
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
stage必填 | 123 | — | 阶段 1–3:「STAGE n」+ 三段条点亮 n 段 |
stats | Record<string, string | number> | — | 属性加成:{ 攻击: "+50", 攻击速度: "+5" }(按写的顺序排,数值绿字) |
kicker | string | — | 变化类别的反色小标:特性追加 / 天赋更新 |
| 插槽 | 说明 |
|---|---|
default | 特性 / 天赋变化的描述(可带富文本) |
AkModuleUnlock
| 属性 | 类型 | 默认 | 说明 |
|---|---|---|---|
stage必填 | 123 | — | 阶段 1–3:「STAGE n」+ 三段条点亮 n 段 |
| 插槽 | 说明 |
|---|---|
default | 材料消耗:一排 AkItem(AkItemList) |
requirement | 解锁需求:信赖 / 精英阶段与等级 / 任务标签,横排换行 |
CSS 实现
| 块 | 元素 __ | 修饰 -- |
|---|
