From f8a1b3eed8867d7c49a9a4e01c4fee250c23ec4b Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Wed, 7 Oct 2026 13:38:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=20=C2=A73.6.1=EF=BC=9A?= =?UTF-8?q?=E5=AF=B9=E5=A4=96=E7=BB=9F=E4=B8=80=E5=8F=A3=E5=BE=84=E2=80=94?= =?UTF-8?q?=E2=80=94=E7=BD=91=E9=A1=B5=E4=BE=A7=20Fork=20=E5=8A=A8?= =?UTF-8?q?=E4=BD=9C=E5=90=8D=E5=85=A8=E9=87=8F=E6=94=B9=E5=8F=AB=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E5=85=B1=E5=88=9B=EF=BC=88=E4=B8=BB=E6=93=8D=E4=BD=9C?= =?UTF-8?q?/=E6=AD=A4=E7=89=88=E6=9C=AC/=E6=8F=90=E7=A4=BA/=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E7=85=A7=E6=8A=84=E6=96=87=E6=A1=88=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/【技术方案】游戏共创与作品Fork-2026-10-03.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md b/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md index 29f89e80f..266ebcbb8 100644 --- a/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md +++ b/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md @@ -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 仍未做**。 >