From: CodeBuddy Date: Wed, 23 Sep 2026 03:21:37 +0000 (+0800) Subject: fix: 修正站点管理重构/UI校验说明 md 文件名乱码(CP866 误读) X-Git-Url: http://acesimba.cloud/gitweb/?a=commitdiff_plain;h=d4cbaf03196532e8b08458f6a3480ee1af98d41d;p=StationBuilder.git fix: 修正站点管理重构/UI校验说明 md 文件名乱码(CP866 误读) --- diff --git "a/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260916.md" "b/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260916.md" deleted file mode 100644 index 43a269b..0000000 --- "a/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260916.md" +++ /dev/null @@ -1,41 +0,0 @@ -# StationBuilder UI 校验说明 - -校验依据:用户提供的 `skills.zip` 中 `web-ui-builder` v1.3.0。直接修改现有 `StationBuilder-full-20260915` 工程,不另建静态设计页面;业务接口、数据库和已确认的建站流程不变。 - -## 已修正 - -- 将组件库统一至 Ant Design 6.6.4,图标统一至 @ant-design/icons 6.3.4,同步 npm 和 pnpm 锁文件。 -- `app/theme.json` 与附件的品牌配置逐项一致:主色 #008cd6,正文基准 16px,控件圆角 4px,字体、状态色和各组件 token 均取自该配置。 -- 移除旧 `--company-*`、`--brand-*` 别名,业务样式使用官方 `--ant-*` 变量;统一间距、字号与字重,减少旧样式覆盖新组件的冲突。 -- 可见按钮、输入框、复选框、单选框、下拉框及数据表格统一使用 antd。文件选择器保留浏览器原生能力;树状画布、模拟场景和仪表板内容不当作普通表单控件改写。 -- 面板和字段改为 Card / Form.Item;弹窗改为 Modal,保留原关闭与确认回调、内嵌确认弹窗及编辑内容。抽屉适配 v6 的 size / destroyOnHidden。 -- 状态筛选和节点编辑等 Tab 的业务内容归属 `items[].children`,避免只有标签条而没有 Tab 内容的实现。 -- 常见操作分组保持单行,最多三个可见操作;多余操作放入“更多”,同组至多一个主按钮。 -- 面板工具栏和仪表板“导入 / 新增”也接入统一操作分组。隐藏文件选择器、搜索框等辅助内容保持挂载,不会因“更多”收纳而失效;主按钮识别不依赖生产构建后的函数名称。 -- 消息提示使用 `App.useApp()` 的主题化实例;接入附件的 Select 渐变、浮层和表头设计覆盖。 -- 为菜单、缩略图和画布工具按钮增加尺寸兼容层,保留响应式规则;不在兼容层建立另一套字体和配色。将业务样式统一在根布局加载,避免客户端晚加载的旧样式覆盖品牌规则。 - -## 保留的特殊内容 - -用户此前明确要求复刻的 WISE-IoT Header、原站图标与无图标主菜单结构保留,不换成附件默认的另一套产品框架。数字孪生示意画面、仪表板图表配色、客户应用色系、运行日志、代码展示及导出仪表板 HTML 属于内容或用户配置数据,不全部替换为普通 UI 状态色。 - -## 校验结果与限制 - -- TypeScript UI 类型检查通过。 -- 23 项 UI 适配及既有业务回归测试通过,覆盖单选筛选、表格行/单元格点击、Tab 内容归属、弹窗关闭和操作分组,以及模板、资产、菜单数据逻辑和按钮尺寸兼容规则。 -- 品牌配置完整指纹校验通过,非仅校验少数主色值。 -- 当前预览服务已恢复,可访问站点管理、领域方案和设备模板路由。只做开发预览和类型/单元测试,未自动生成正式发布包。 -- **视觉验收尚未完成**:浏览器连接工具持续报告 `Unable to load browser request-header policy`,无法读取截图、计算样式或逐项实际点击验证。因此目前不能宣称全部页面已严格符合,也不能宣称 1920×1080 下所有布局已经验收。 - -## 本地预览与复核 - -预览地址:http://127.0.0.1:37931/t/stationbuilder/?page=projects - -建议视觉复核:站点层级与新增、五步建站、手动资产树与三个节点 Tab、设备模板和报警规则抽屉、领域能力四区块、仪表板列表、菜单配置。重点检查 1920×1080 下的标题、控件高度、文本截断、操作分组和浮层显示。 - -可重复执行的检查: - -```sh -node node_modules/typescript/bin/tsc -p tsconfig.ui.json --noEmit -node --test tests/ui-system.test.mjs tests/site-menu-model.test.mjs tests/site-workspace.test.mjs -``` diff --git "a/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260917.md" "b/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260917.md" deleted file mode 100644 index f158ed1..0000000 --- "a/UI\321\206\320\260\320\261\321\211\320\272\320\234\321\210\320\277\342\224\244\321\206\320\250\320\236-20260917.md" +++ /dev/null @@ -1,35 +0,0 @@ -# StationBuilder UI 调整说明(web-ui-builder 1.3.0) - -## 本次实际修改 - -- 在现有工程中接入新安装 Skill 的原始品牌资产,不另做独立设计页面。业务入口仍是 app/page.tsx。 -- src/theme.json、src/antd.less、src/theme/overrides.css 保持与 Skill 一致;清除昨天重复的主题与覆盖副本,避免两套品牌配置分叉。副本可从 work/ui-style-backup-20260917/app 恢复。 -- 修正官方 CSS token 的序列化:lineHeight 等无单位值不再错误输出 px,字体、高度、内边距等真实长度仍输出 px。 -- 外层主菜单采用 Skill SideMenu,保留现有名称、顺序和无图标要求。支持分组展开/收起及 Header 按钮折叠菜单,宽度由组件决定,内容通过 flex 自然伸缩。 -- 保留已确认的 WISE-IoT Header 文字、原站图标与结构,不替换成 Skill 默认的另一套 Header。 -- 站点、领域方案、设备模板、页面样式及领域仪表板管理等搜索区域改用 Skill SearchInput;分页列表改用 Skill Pagination,支持每页 10/20/50/100 条。 -- 统一表格的字号、行高、表头与表体间距、悬停色;统一卡片标题、搜索工具栏与底部按钮栏。按钮仍保持最多三个、单排、一个主操作,其他操作保留在“更多”中。 -- 领域方案四区块在宽屏上保持四列,分配剩余视口高度,内容内部滚动;窄屏降为两列或一列。 -- 业务逻辑不作重新设计:保留模板创建站点、站点层级、五步配置、资产树、节点三个 Tab、设备模板直接编辑、报警规则抽屉及第四步至第五步的菜单生成规则。 -- 新增 Less 与 SVG 转 React 插件,保留原有 React/antd/Vite 版本;生产和本地 Vite 配置均支持品牌 SVG 图标。 - -## 验证范围 - -- UI TypeScript 检查通过;26 项品牌与业务回归测试通过。 -- Skill 环境检查通过;四个页面地址及业务组件、品牌 CSS/图标模块加载检查通过(HTTP 200),本地开发预览已恢复。HTTP 检查不等同于浏览器视觉验收。 -- 品牌三个原始文件指纹校验通过,新增测试防止无单位行高再次被写成 px。 -- 完整部署工程类型检查仍存在归档中缺失 Cloudflare 类型和 .openai/hosting.json 等问题,本次未补造部署环境,也不把它等同于 UI 类型检查通过。 -- 浏览器连接持续返回 Unable to load browser request-header policy,无法逐页读取截图并点击。因此视觉验收、1920×1080 实际截图验收及抽屉真实点击验收尚未完成,不能宣称全页面像素级符合。 -- 本次不生成正式发布包,不改数据库内容。 -- 本地预览直接挂载 app/page.tsx 的客户端入口,绕过归档工程 RSC 开发渲染超时;数据接口仍代理到原有 sidecar。正式 vite.config.ts 的 vinext/部署逻辑保留,并非重新做一套设计页面。 - -## 可重复检查 - -```sh -node node_modules/typescript/bin/tsc -p tsconfig.ui.json --noEmit -node --test tests/brand-token-css.test.mjs tests/ui-system.test.mjs tests/site-menu-model.test.mjs tests/site-workspace.test.mjs -``` - -本地开发预览:http://127.0.0.1:37931/t/stationbuilder/?page=projects - -请优先复核:站点管理列表、领域方案四区块、设备模板编辑及报警规则抽屉、五步配置中的页面选择和菜单配置。 diff --git "a/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260916.md" "b/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260916.md" new file mode 100644 index 0000000..43a269b --- /dev/null +++ "b/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260916.md" @@ -0,0 +1,41 @@ +# StationBuilder UI 校验说明 + +校验依据:用户提供的 `skills.zip` 中 `web-ui-builder` v1.3.0。直接修改现有 `StationBuilder-full-20260915` 工程,不另建静态设计页面;业务接口、数据库和已确认的建站流程不变。 + +## 已修正 + +- 将组件库统一至 Ant Design 6.6.4,图标统一至 @ant-design/icons 6.3.4,同步 npm 和 pnpm 锁文件。 +- `app/theme.json` 与附件的品牌配置逐项一致:主色 #008cd6,正文基准 16px,控件圆角 4px,字体、状态色和各组件 token 均取自该配置。 +- 移除旧 `--company-*`、`--brand-*` 别名,业务样式使用官方 `--ant-*` 变量;统一间距、字号与字重,减少旧样式覆盖新组件的冲突。 +- 可见按钮、输入框、复选框、单选框、下拉框及数据表格统一使用 antd。文件选择器保留浏览器原生能力;树状画布、模拟场景和仪表板内容不当作普通表单控件改写。 +- 面板和字段改为 Card / Form.Item;弹窗改为 Modal,保留原关闭与确认回调、内嵌确认弹窗及编辑内容。抽屉适配 v6 的 size / destroyOnHidden。 +- 状态筛选和节点编辑等 Tab 的业务内容归属 `items[].children`,避免只有标签条而没有 Tab 内容的实现。 +- 常见操作分组保持单行,最多三个可见操作;多余操作放入“更多”,同组至多一个主按钮。 +- 面板工具栏和仪表板“导入 / 新增”也接入统一操作分组。隐藏文件选择器、搜索框等辅助内容保持挂载,不会因“更多”收纳而失效;主按钮识别不依赖生产构建后的函数名称。 +- 消息提示使用 `App.useApp()` 的主题化实例;接入附件的 Select 渐变、浮层和表头设计覆盖。 +- 为菜单、缩略图和画布工具按钮增加尺寸兼容层,保留响应式规则;不在兼容层建立另一套字体和配色。将业务样式统一在根布局加载,避免客户端晚加载的旧样式覆盖品牌规则。 + +## 保留的特殊内容 + +用户此前明确要求复刻的 WISE-IoT Header、原站图标与无图标主菜单结构保留,不换成附件默认的另一套产品框架。数字孪生示意画面、仪表板图表配色、客户应用色系、运行日志、代码展示及导出仪表板 HTML 属于内容或用户配置数据,不全部替换为普通 UI 状态色。 + +## 校验结果与限制 + +- TypeScript UI 类型检查通过。 +- 23 项 UI 适配及既有业务回归测试通过,覆盖单选筛选、表格行/单元格点击、Tab 内容归属、弹窗关闭和操作分组,以及模板、资产、菜单数据逻辑和按钮尺寸兼容规则。 +- 品牌配置完整指纹校验通过,非仅校验少数主色值。 +- 当前预览服务已恢复,可访问站点管理、领域方案和设备模板路由。只做开发预览和类型/单元测试,未自动生成正式发布包。 +- **视觉验收尚未完成**:浏览器连接工具持续报告 `Unable to load browser request-header policy`,无法读取截图、计算样式或逐项实际点击验证。因此目前不能宣称全部页面已严格符合,也不能宣称 1920×1080 下所有布局已经验收。 + +## 本地预览与复核 + +预览地址:http://127.0.0.1:37931/t/stationbuilder/?page=projects + +建议视觉复核:站点层级与新增、五步建站、手动资产树与三个节点 Tab、设备模板和报警规则抽屉、领域能力四区块、仪表板列表、菜单配置。重点检查 1920×1080 下的标题、控件高度、文本截断、操作分组和浮层显示。 + +可重复执行的检查: + +```sh +node node_modules/typescript/bin/tsc -p tsconfig.ui.json --noEmit +node --test tests/ui-system.test.mjs tests/site-menu-model.test.mjs tests/site-workspace.test.mjs +``` diff --git "a/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260917.md" "b/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260917.md" new file mode 100644 index 0000000..f158ed1 --- /dev/null +++ "b/UI\346\240\241\351\252\214\350\257\264\346\230\216-20260917.md" @@ -0,0 +1,35 @@ +# StationBuilder UI 调整说明(web-ui-builder 1.3.0) + +## 本次实际修改 + +- 在现有工程中接入新安装 Skill 的原始品牌资产,不另做独立设计页面。业务入口仍是 app/page.tsx。 +- src/theme.json、src/antd.less、src/theme/overrides.css 保持与 Skill 一致;清除昨天重复的主题与覆盖副本,避免两套品牌配置分叉。副本可从 work/ui-style-backup-20260917/app 恢复。 +- 修正官方 CSS token 的序列化:lineHeight 等无单位值不再错误输出 px,字体、高度、内边距等真实长度仍输出 px。 +- 外层主菜单采用 Skill SideMenu,保留现有名称、顺序和无图标要求。支持分组展开/收起及 Header 按钮折叠菜单,宽度由组件决定,内容通过 flex 自然伸缩。 +- 保留已确认的 WISE-IoT Header 文字、原站图标与结构,不替换成 Skill 默认的另一套 Header。 +- 站点、领域方案、设备模板、页面样式及领域仪表板管理等搜索区域改用 Skill SearchInput;分页列表改用 Skill Pagination,支持每页 10/20/50/100 条。 +- 统一表格的字号、行高、表头与表体间距、悬停色;统一卡片标题、搜索工具栏与底部按钮栏。按钮仍保持最多三个、单排、一个主操作,其他操作保留在“更多”中。 +- 领域方案四区块在宽屏上保持四列,分配剩余视口高度,内容内部滚动;窄屏降为两列或一列。 +- 业务逻辑不作重新设计:保留模板创建站点、站点层级、五步配置、资产树、节点三个 Tab、设备模板直接编辑、报警规则抽屉及第四步至第五步的菜单生成规则。 +- 新增 Less 与 SVG 转 React 插件,保留原有 React/antd/Vite 版本;生产和本地 Vite 配置均支持品牌 SVG 图标。 + +## 验证范围 + +- UI TypeScript 检查通过;26 项品牌与业务回归测试通过。 +- Skill 环境检查通过;四个页面地址及业务组件、品牌 CSS/图标模块加载检查通过(HTTP 200),本地开发预览已恢复。HTTP 检查不等同于浏览器视觉验收。 +- 品牌三个原始文件指纹校验通过,新增测试防止无单位行高再次被写成 px。 +- 完整部署工程类型检查仍存在归档中缺失 Cloudflare 类型和 .openai/hosting.json 等问题,本次未补造部署环境,也不把它等同于 UI 类型检查通过。 +- 浏览器连接持续返回 Unable to load browser request-header policy,无法逐页读取截图并点击。因此视觉验收、1920×1080 实际截图验收及抽屉真实点击验收尚未完成,不能宣称全页面像素级符合。 +- 本次不生成正式发布包,不改数据库内容。 +- 本地预览直接挂载 app/page.tsx 的客户端入口,绕过归档工程 RSC 开发渲染超时;数据接口仍代理到原有 sidecar。正式 vite.config.ts 的 vinext/部署逻辑保留,并非重新做一套设计页面。 + +## 可重复检查 + +```sh +node node_modules/typescript/bin/tsc -p tsconfig.ui.json --noEmit +node --test tests/brand-token-css.test.mjs tests/ui-system.test.mjs tests/site-menu-model.test.mjs tests/site-workspace.test.mjs +``` + +本地开发预览:http://127.0.0.1:37931/t/stationbuilder/?page=projects + +请优先复核:站点管理列表、领域方案四区块、设备模板编辑及报警规则抽屉、五步配置中的页面选择和菜单配置。 diff --git "a/\321\207\320\273\320\251\321\207\320\222\342\225\243\321\207\320\276\320\261\321\207\320\240\320\226\321\211\320\227\320\235\321\206\320\256\320\224-\321\205\320\232\320\257\321\210\320\223\342\225\234\321\210\320\267\320\224\321\206\320\260\342\225\235.md" "b/\321\207\320\273\320\251\321\207\320\222\342\225\243\321\207\320\276\320\261\321\207\320\240\320\226\321\211\320\227\320\235\321\206\320\256\320\224-\321\205\320\232\320\257\321\210\320\223\342\225\234\321\210\320\267\320\224\321\206\320\260\342\225\235.md" deleted file mode 100644 index 3ecaed3..0000000 --- "a/\321\207\320\273\320\251\321\207\320\222\342\225\243\321\207\320\276\320\261\321\207\320\240\320\226\321\211\320\227\320\235\321\206\320\256\320\224-\321\205\320\232\320\257\321\210\320\223\342\225\234\321\210\320\267\320\224\321\206\320\260\342\225\235.md" +++ /dev/null @@ -1,79 +0,0 @@ -# 站点管理重构功能规格 - -### 标准功能菜单补齐 - -第五步自动包含第四步已选的标准功能页面,并按原目录的一、二级结构和顺序排列在“数字孪生”“领域监控”之后,不归入领域监控。旧版尚未配置标准页面的站点沿用默认全选逻辑,第四步显示同一选择;第四步保存草稿/下一步或第五步保存时持久化默认选择。显式取消全部页面后记录初始化标记,不恢复默认全选。再次进入或修改第四步选择时同步菜单,保留仍有效的菜单名称编辑。 - -### 2026-09-16 页面配置补充 - -“领域扩展仪表板”采用与数字孪生场景一致的缩略图卡片及复选框。优先展示站点选择的领域模板页面,未选择模板时按所属领域匹配;未应用整套模板也可预览、选择仪表板。相同模板的同名页面沿用领域方案页的展示逻辑,仅展示最新有效配置。 - -点击缩略图或预览图标打开放大预览。勾选后仅复制该仪表板的配置到当前站点并自动保存,下一步可加入菜单。已有同名现场页面优先复用,不覆盖其配置;取消选择不会删除配置,再次选择不重复复制。保留其他页面及数字孪生场景的选择。 - -## 1. 核心逻辑 - -先建立完整站点层级,再逐个进入站点配置。建立站点不等于完成建站,不要求创建时连续执行配置向导。 - -站点管理以可展开的层级表格为主:站点名称、所属领域、站点模板、配置状态、直接子站点数、最近修改、操作。支持名称搜索、领域单选、待配置/已配置筛选、展开或收起全部。筛选命中下级时保留祖先以呈现管理归属。支持任意层级,禁止自身或后代作为上级。 - -## 2. 建立站点 - -新增站点打开右侧抽屉,仅填写上级站点、站点名称、所属领域、基本情况与站点模板。默认为“从模板建立站点”,也可明确选择“建立空白站点”。可从现有站点的更多操作新增子站点,自动带入上级、领域和模板选择。 - -选择模板只记录待应用的模板,不在此时创建站点内部资产、页面或菜单。创建后留在列表;“创建并继续新增”保留同一上级、领域与模板,方便连续建立同级站点。保存普通基本信息不会复制或覆盖内部配置。 - -站点名称用于打开基本信息,独立的“配置站点”进入内部配置。存在下级站点时禁止单独删除上级,需先调整下级归属或处理下级站点,避免产生孤立层级。列表的“已配置”表示存在配置内容,并不等价于已经生成或发布成功;最终交付沿用生成与结果页。 - -## 3. 站点内部配置 - -顶部始终保留同一行五个步骤,显示当前站点切换器与模板待应用/已应用状态,不重复展示站点名称;底部保持上一步、保存草稿、下一步三个按钮。 - -| 步骤 | 内容及职责 | -| --- | --- | -| 1 站点信息 | 保留站点基本信息及资料维护,不重复展示领域模板配置区 | -| 2 资产设置 | 直接打开当前站点唯一资产组工作区;不再设置快速/手动二次入口 | -| 3 运维流程配置 | 中间留白;保留步骤 Header 和底部按钮,供后续设计 | -| 4 页面配置 | 按功能模块选择标准页面,选择模板中的领域扩展仪表板及 SC 场景;不设“设备运维”分类入口 | -| 5 菜单配置 | 从第四步已选择的页面添加菜单,修改名称、上级分组、顺序,并预览菜单结构 | - -五步之后通过“保存并进入生成确认”进入原有生成、校验、结果及下载流程,不将生成确认挤占第五步。新一轮生成与打包按第四步选择的仪表板范围执行;交付包同步写入已保存的资产组与页面选择配置。云端实际生成仍需在 Linux 环境集成验证。 - -### 模板应用 - -建立站点时选择的模板自动成为第一步当前选择。首次应用复制设备模板与实例结构、标准页面选择、已有领域仪表板 JSON、菜单及页面关联;站点名称、基本情况、上级关系保持不变。应用成功直接进入资产工作区,配置人员以模板内容为起点进行调整。 - -已有内部配置时必须确认替换后才能应用模板,服务端同样执行保护。模板复制采用事务,失败回滚;仅影响当前站点,不联动覆盖父子站点。页面、菜单编号重新关联,不能直接复用领域模板的原始编号。 - -### 资产工作区 - -左侧站点资产组名称、批量创建与领域设备模板;中间资产树及复制、深复制、节点属性、删除、添加同级/子级、模板应用、树/列表视图、搜索、缩放工具。节点右侧抽屉保留基础信息设定、属性设定、数据绑定三个 Tab。批量创建、Excel 导入及单节点编辑都在当前工作区完成,不跳去设备模板管理。 - -节点抽屉“确定”先写入当前草稿,工作区“保存”、底部“保存草稿”或切换步骤时落库。正在编辑节点或批量配置时阻止切换,要求先确定或取消。保存后按设备节点统计设备模板数量,资产分组不计为设备,避免树结构与生成使用的设备清单不一致。旧版数字模板编号在工作区还原为真实设备模板名称,并在明确保存时修正。 - -### 页面和菜单职责分离 - -第四步负责“要哪些页面”,标准页面按业务功能分组勾选,领域仪表板显示缩略图并可预览。标准页面与扩展页面选择自动保存。第五步仅负责“如何组织入口”,不再次提供 MU/Cube 功能选择向导。一个页面默认仅添加一个入口;菜单分组支持多层级,禁止循环。 - -页面选择取消后,不自动删除客户已经编辑的菜单;菜单保存时检查已取消页面的引用,提示移除失效入口后保存。这样不会静默丢失菜单名称和层级。 - -## 4. UI约束 - -沿用现有公司统一 Header、外层产品菜单、Roboto 与中文回退字体、蓝色主操作、浅灰表头、白色内容、细边框及右侧抽屉。不额外建立第二套产品侧边菜单。内容区资产模板与页面来源属于编辑面板而非产品菜单。 - -全局操作最多三个按钮,在同一行;多余记录操作收进更多菜单。底部按钮统一为上一步、保存草稿、下一步。内容区可滚动,长列表使用内部滚动,不通过堆叠大按钮展开功能。 - -本次参考网址在当前浏览器环境跳转登录页,未进入登录后的最新工单界面;本版依据工程中已建立的公司主题和此前确认过的截图样式设计,不能视为完成登录后参考页面逐像素比对。 - -## 5. 本次实现边界与后续开发 - -已实现本地预览工程的层级管理、基本信息创建、模板记录与应用、五步配置、统一资产工作区、页面选择、菜单编辑及数据库持久化。 - -运维流程中间区域严格留白,未实现运维工作流;SC 场景画面为模拟设计数据,选择与菜单配置可以记录,但尚未接入实际 SC 服务,不能称为已部署场景。原有云端 AI 生成与产品服务集成沿用原工程,未在本机验证生产调用。 - -云端正式实现仍需补充权限、并发修改控制、模板替换快照/恢复、领域模板的运维流程和 SC 场景导入以及取消页面后的交付校验。 - -## 6. 验证 - -TypeScript 检查及本地 Vite 生产构建通过;新增四项内存 SQLite 测试覆盖站点层级循环、模板复制及替换保护、菜单关联与循环校验、资产数量摘要同步。真实项目数据库隔离副本中三个可用领域模板的应用及替换测试均通过。 - -数据库迁移只增加模板和页面选择字段,保留原数据;迁移前备份为 data/db/StationBuilder-before-site-workspace-20260916.sqlite。测试使用内存数据库,不覆盖现场站点配置。 diff --git "a/\347\253\231\347\202\271\347\256\241\347\220\206\351\207\215\346\236\204-\345\212\237\350\203\275\350\247\204\346\240\274.md" "b/\347\253\231\347\202\271\347\256\241\347\220\206\351\207\215\346\236\204-\345\212\237\350\203\275\350\247\204\346\240\274.md" new file mode 100644 index 0000000..3ecaed3 --- /dev/null +++ "b/\347\253\231\347\202\271\347\256\241\347\220\206\351\207\215\346\236\204-\345\212\237\350\203\275\350\247\204\346\240\274.md" @@ -0,0 +1,79 @@ +# 站点管理重构功能规格 + +### 标准功能菜单补齐 + +第五步自动包含第四步已选的标准功能页面,并按原目录的一、二级结构和顺序排列在“数字孪生”“领域监控”之后,不归入领域监控。旧版尚未配置标准页面的站点沿用默认全选逻辑,第四步显示同一选择;第四步保存草稿/下一步或第五步保存时持久化默认选择。显式取消全部页面后记录初始化标记,不恢复默认全选。再次进入或修改第四步选择时同步菜单,保留仍有效的菜单名称编辑。 + +### 2026-09-16 页面配置补充 + +“领域扩展仪表板”采用与数字孪生场景一致的缩略图卡片及复选框。优先展示站点选择的领域模板页面,未选择模板时按所属领域匹配;未应用整套模板也可预览、选择仪表板。相同模板的同名页面沿用领域方案页的展示逻辑,仅展示最新有效配置。 + +点击缩略图或预览图标打开放大预览。勾选后仅复制该仪表板的配置到当前站点并自动保存,下一步可加入菜单。已有同名现场页面优先复用,不覆盖其配置;取消选择不会删除配置,再次选择不重复复制。保留其他页面及数字孪生场景的选择。 + +## 1. 核心逻辑 + +先建立完整站点层级,再逐个进入站点配置。建立站点不等于完成建站,不要求创建时连续执行配置向导。 + +站点管理以可展开的层级表格为主:站点名称、所属领域、站点模板、配置状态、直接子站点数、最近修改、操作。支持名称搜索、领域单选、待配置/已配置筛选、展开或收起全部。筛选命中下级时保留祖先以呈现管理归属。支持任意层级,禁止自身或后代作为上级。 + +## 2. 建立站点 + +新增站点打开右侧抽屉,仅填写上级站点、站点名称、所属领域、基本情况与站点模板。默认为“从模板建立站点”,也可明确选择“建立空白站点”。可从现有站点的更多操作新增子站点,自动带入上级、领域和模板选择。 + +选择模板只记录待应用的模板,不在此时创建站点内部资产、页面或菜单。创建后留在列表;“创建并继续新增”保留同一上级、领域与模板,方便连续建立同级站点。保存普通基本信息不会复制或覆盖内部配置。 + +站点名称用于打开基本信息,独立的“配置站点”进入内部配置。存在下级站点时禁止单独删除上级,需先调整下级归属或处理下级站点,避免产生孤立层级。列表的“已配置”表示存在配置内容,并不等价于已经生成或发布成功;最终交付沿用生成与结果页。 + +## 3. 站点内部配置 + +顶部始终保留同一行五个步骤,显示当前站点切换器与模板待应用/已应用状态,不重复展示站点名称;底部保持上一步、保存草稿、下一步三个按钮。 + +| 步骤 | 内容及职责 | +| --- | --- | +| 1 站点信息 | 保留站点基本信息及资料维护,不重复展示领域模板配置区 | +| 2 资产设置 | 直接打开当前站点唯一资产组工作区;不再设置快速/手动二次入口 | +| 3 运维流程配置 | 中间留白;保留步骤 Header 和底部按钮,供后续设计 | +| 4 页面配置 | 按功能模块选择标准页面,选择模板中的领域扩展仪表板及 SC 场景;不设“设备运维”分类入口 | +| 5 菜单配置 | 从第四步已选择的页面添加菜单,修改名称、上级分组、顺序,并预览菜单结构 | + +五步之后通过“保存并进入生成确认”进入原有生成、校验、结果及下载流程,不将生成确认挤占第五步。新一轮生成与打包按第四步选择的仪表板范围执行;交付包同步写入已保存的资产组与页面选择配置。云端实际生成仍需在 Linux 环境集成验证。 + +### 模板应用 + +建立站点时选择的模板自动成为第一步当前选择。首次应用复制设备模板与实例结构、标准页面选择、已有领域仪表板 JSON、菜单及页面关联;站点名称、基本情况、上级关系保持不变。应用成功直接进入资产工作区,配置人员以模板内容为起点进行调整。 + +已有内部配置时必须确认替换后才能应用模板,服务端同样执行保护。模板复制采用事务,失败回滚;仅影响当前站点,不联动覆盖父子站点。页面、菜单编号重新关联,不能直接复用领域模板的原始编号。 + +### 资产工作区 + +左侧站点资产组名称、批量创建与领域设备模板;中间资产树及复制、深复制、节点属性、删除、添加同级/子级、模板应用、树/列表视图、搜索、缩放工具。节点右侧抽屉保留基础信息设定、属性设定、数据绑定三个 Tab。批量创建、Excel 导入及单节点编辑都在当前工作区完成,不跳去设备模板管理。 + +节点抽屉“确定”先写入当前草稿,工作区“保存”、底部“保存草稿”或切换步骤时落库。正在编辑节点或批量配置时阻止切换,要求先确定或取消。保存后按设备节点统计设备模板数量,资产分组不计为设备,避免树结构与生成使用的设备清单不一致。旧版数字模板编号在工作区还原为真实设备模板名称,并在明确保存时修正。 + +### 页面和菜单职责分离 + +第四步负责“要哪些页面”,标准页面按业务功能分组勾选,领域仪表板显示缩略图并可预览。标准页面与扩展页面选择自动保存。第五步仅负责“如何组织入口”,不再次提供 MU/Cube 功能选择向导。一个页面默认仅添加一个入口;菜单分组支持多层级,禁止循环。 + +页面选择取消后,不自动删除客户已经编辑的菜单;菜单保存时检查已取消页面的引用,提示移除失效入口后保存。这样不会静默丢失菜单名称和层级。 + +## 4. UI约束 + +沿用现有公司统一 Header、外层产品菜单、Roboto 与中文回退字体、蓝色主操作、浅灰表头、白色内容、细边框及右侧抽屉。不额外建立第二套产品侧边菜单。内容区资产模板与页面来源属于编辑面板而非产品菜单。 + +全局操作最多三个按钮,在同一行;多余记录操作收进更多菜单。底部按钮统一为上一步、保存草稿、下一步。内容区可滚动,长列表使用内部滚动,不通过堆叠大按钮展开功能。 + +本次参考网址在当前浏览器环境跳转登录页,未进入登录后的最新工单界面;本版依据工程中已建立的公司主题和此前确认过的截图样式设计,不能视为完成登录后参考页面逐像素比对。 + +## 5. 本次实现边界与后续开发 + +已实现本地预览工程的层级管理、基本信息创建、模板记录与应用、五步配置、统一资产工作区、页面选择、菜单编辑及数据库持久化。 + +运维流程中间区域严格留白,未实现运维工作流;SC 场景画面为模拟设计数据,选择与菜单配置可以记录,但尚未接入实际 SC 服务,不能称为已部署场景。原有云端 AI 生成与产品服务集成沿用原工程,未在本机验证生产调用。 + +云端正式实现仍需补充权限、并发修改控制、模板替换快照/恢复、领域模板的运维流程和 SC 场景导入以及取消页面后的交付校验。 + +## 6. 验证 + +TypeScript 检查及本地 Vite 生产构建通过;新增四项内存 SQLite 测试覆盖站点层级循环、模板复制及替换保护、菜单关联与循环校验、资产数量摘要同步。真实项目数据库隔离副本中三个可用领域模板的应用及替换测试均通过。 + +数据库迁移只增加模板和页面选择字段,保留原数据;迁移前备份为 data/db/StationBuilder-before-site-workspace-20260916.sqlite。测试使用内存数据库,不覆盖现场站点配置。