规范 §3.6.1:对外统一口径——网页侧 Fork 动作名全量改叫开始共创(主操作/此版本/提示/入口照抄文案同步)
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
This commit is contained in:
@@ -440,7 +440,7 @@ A 路线里那个必须提前知道的互斥点已经按既有做法绕开:`cr
|
||||
| 文件 | 改动 |
|
||||
| --- | --- |
|
||||
| `src/routing/activeAppPageRoutes.ts` | 新增 `['game-lineage', '/games/lineage']`;同步 `SelectionStage` 类型与 `PlatformEntryActiveFlowShell` 的 stage 分支 |
|
||||
| `src/components/game-distribution/GameDetailPage.tsx` | 世代/授权标签、数据概览(累计衍生作品 + 累计创作世代数)、血缘链(纵向滚动单链)、热门衍生栏、族谱入口、主题入口、「一键 Fork 共创」主行动作 |
|
||||
| `src/components/game-distribution/GameDetailPage.tsx` | 世代/授权标签、数据概览(累计衍生作品 + 累计创作世代数)、血缘链(纵向滚动单链)、热门衍生栏、族谱入口、主题入口、「一键开始共创」主行动作 |
|
||||
| `src/components/game-distribution/GameLineagePage.tsx`(新) | 族谱页:桌面画布(节点-连线树)、移动端大纲模式、筛选器、主干线、信息面板 / bottom sheet |
|
||||
| `src/components/game-distribution/LineageNodeContent.tsx`(新) | 族谱**节点内容**(封面 + 代际角标 + 标题 + 作者)唯一实现,画布卡片与血缘链共用(避免第二套省略规则导致逐字换行) |
|
||||
| `src/components/game-distribution/LineageOutlineList.tsx`(新) | 移动端**大纲式缩进树**:全宽行 + 左缩进 + 肘形导线,无横向滚动 |
|
||||
@@ -454,7 +454,7 @@ A 路线里那个必须提前知道的互斥点已经按既有做法绕开:`cr
|
||||
#### 3.6.1 交互口径(2026-10-06 补充)
|
||||
|
||||
- **世代与授权标签**:世代按文档三档命名 `0 代原创 / 1 代二创 / 2 代三创 / N 代迭代`(`coCreationCopy.ts`);授权类型沿用平台既有常量(禁止共创 / 允许非商用共创 / 允许全开放共创)。
|
||||
- **主操作「一键 Fork 共创」始终显示**:授权为「禁止共创」时**置灰(`aria-disabled`)并给出原因**(悬停 `title` + 点击可读提示),不再静默隐藏;未登录走既有登录门禁。
|
||||
- **主操作「一键开始共创」始终显示**:授权为「禁止共创」时**置灰(`aria-disabled`)并给出原因**(悬停 `title` + 点击可读提示),不再静默隐藏;未登录走既有登录门禁。
|
||||
- **衍生作品的授权不可单独提升**:服务端会拒绝对衍生作品的授权 PUT,因此我的作品页对衍生作品**隐藏提升入口**,改为只读展示「共创授权继承自父作品(当前档位)」。
|
||||
- **血缘链(详情页共创卡)**:只画**祖先链**(根 → … → 当前),**纵向滚动**(`overflow-y: auto` / `overflow-x: hidden`)、**初次进入与当前作品变化时自动滚到底**;节点卡片为「横版封面缩略 + 标题 + 代际角标」的矮宽行,标题 2 行截断(`min-width: 0` + line-clamp),**不允许逐字换行**。整棵树由「查看创作族谱」入口承担——右栏只有 200 多像素,塞整棵树必然不可读。
|
||||
- **「累计创作世代数」在前端计算**:=本作品子树深度(子树最大代际 − 本作品代际),用详情页**已经请求的同一份 `/lineage` 数据**算,不新增请求、也不加服务端字段。
|
||||
@@ -470,9 +470,9 @@ A 路线里那个必须提前知道的互斥点已经按既有做法绕开:`cr
|
||||
- **代际轴按层高画**:`LineageGenerationAxisEntry` 增加 `height`(该层层高),轴的每一行高度跟着层高走(不再拿「第一个节点的高度」凑)。
|
||||
- **角标组移到封面下方**(不再用深色药丸压在封面图上),并且**上色**——每类语义一色、**全部取自平台既有 `--platform-*` 变量,不新增色值**:代际 = 中性(neutral)|**主干 = 暖色(warm,强调)**|**当前作品 = 主色实心(accent solid)**|父代 = cool|子代 = success|▶游玩数 = 中性。组内仍是 flex + gap + 可换行(**绝不重叠**),并有 1px 边框保证在浅色卡片上有边界。
|
||||
- **卡片底部重做**:作者行独立一行、更小更淡(`--platform-text-muted`);操作区是**两个等权重按钮**(`flex: 1 1 0`、`min-height: 2rem` = 32px 触控目标、同圆角同内边距),`打开作品` = 次要(描边),`**开始共创**` = 主要(填充/着色);窄卡允许换行但不裁切。大纲行同口径(`打开作品` 描边 / `开始共创` 填充)。
|
||||
- **动作改名**:树节点(画布 + 大纲)上的 `Fork` 一律改为 **`开始共创`**(`aria-label` 同步为 `开始共创《标题》`)。其余界面(详情页「一键 Fork 共创」、AGC 客户端、主题页等)本轮**未改**,待产品统一口径。
|
||||
- **动作改名**:树节点(画布 + 大纲)上的 `Fork` 一律改为 **`开始共创`**(`aria-label` 同步为 `开始共创《标题》`)。**2026-10-07 用户拍板对外统一口径后,网页侧全量跟上**:详情页主操作 = 「一键开始共创」(未登录「登录后一键开始共创」)、信息面板针对某版本 = 「开始共创此版本」、提示/引导里引用该动作一律写「开始共创」;`Fork` 只作为内部标识(类名 / 字段 / 路由 / 类型名 / 协议)保留。AGC 客户端与主题页的改名不在本轮网页侧范围内。
|
||||
- **图谱视图为可选开关**(形态 B = **横版画布**,`orientation: 'horizontal'`:根在左、代际向右、兄弟分支沿纵向排开,窄屏上比顶→下更省横向空间):切到画布后支持拖拽平移 / 缩放;横版**不渲染左侧代际轴**,代际信息由节点自带角标承担。**初次进入按宽度适配**(整棵树横向看完;触及最小缩放时给出「可拖拽平移」提示),并把**当前作品**用最小位移拉进视口——贴最近的边,父代 / 兄弟仍留在视口里,不会出现「停在 100% 缩放、一个节点都看不到」的空屏。桌面仍为纵向画布 + 宽高同时适配并居中。
|
||||
- **信息面板用 bottom sheet**:从底部升起(含简介 / 授权 / 核心改动说明 / 前往体验 / Fork 此版本),遮罩点击或关闭按钮收起;桌面保持画布右上浮层。
|
||||
- **信息面板用 bottom sheet**:从底部升起(含简介 / 授权 / 核心改动说明 / 前往体验 / 开始共创此版本),遮罩点击或关闭按钮收起;桌面保持画布右上浮层。
|
||||
- **父代 / 子代区分与「只看父代与子代」开关**(2026-10-06 追加):
|
||||
- 每个节点相对**当前作品**有四种角色(纯函数 `collectLineageRelationRoles`):`self` / `ancestor`(**父代** = 祖先链)/ `descendant`(**子代** = 整棵后代子树)/ `side`(旁支)。渲染层打 `data-relation`,并在节点上给**可读角标**「父代」「子代」(自己不标——已有「当前作品」角标;旁支不标)。**不靠颜色深浅表达**,因此可断言、读屏可读。
|
||||
- **「只看父代与子代」开关**在筛选行,默认**关**(= 以根为作用域的整棵树)。打开后只留 **祖先链(父代)+ 自己 + 直接子代**(`collectLineageImmediateScope`,**不含孙代**),语义是「看这个作品的上一步与下一步」;**再点一次取消**回到整棵树。作用域里找不到锚点时不筛选(避免空图);切换后仍重新定位到当前作品。反馈有三重:`aria-pressed`、按钮文案变「(已开启)」、旁边一行说明。
|
||||
@@ -600,7 +600,7 @@ A 路线里那个必须提前知道的互斥点已经按既有做法绕开:`cr
|
||||
|
||||
### 3.10 共创主题(平台命名的作品树归组实体)
|
||||
|
||||
> **形态**:共创 Tab 里有多个「共创主题」,点进去是一棵(或一组)作品树;**主题由平台 / 运营命名,不由根作品决定**;作品在游戏 Tab 里仍作为独立作品展示,详情页有 Fork 入口,并能看到 / 跳到对应主题页。
|
||||
> **形态**:共创 Tab 里有多个「共创主题」,点进去是一棵(或一组)作品树;**主题由平台 / 运营命名,不由根作品决定**;作品在游戏 Tab 里仍作为独立作品展示,详情页有「开始共创」入口,并能看到 / 跳到对应主题页。
|
||||
>
|
||||
> 本节把 §7 第 3 条(「是否引入共创主题实体」)从**待拍板**收敛为**已拍板**:采纳「平台命名主题 → 作品树」。归属关系的**曝光口径不变**——作品之间不互相挂靠,主题是运营侧的**额外归组维度**,不是作品的可读锚点。**设计定稿于 2026-10-06(commit `063c04a1b`);服务端三块随后落地**:数据模型与领域纯函数 `2fa201e0d`、公开读路径 `742723a58`、后台写路径 `033e3aa79`。**前台(共创 Tab / 主题页 / 详情页入口)与后台管理 UI 仍未做**。
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user