# MiragenFlow 统一 TDesign 长期目标 > 目标状态:进行中(active) > > 目标线程:`01a033b1-abd1-7ed0-b6a3-c347551b2f78` > > 本文是本轮“前后台统一组件体系”长任务的执行基线。这里的“统一”只指基础组件、主题语义、图标和交互契约统一;`web/` 与 `admin/` 仍是两个独立应用,不能合并页面、路由、权限、状态或业务 API。 > > 本轮前后台业务、中文化、真实交互、渠道、日志、图表、响应式和验收要求已汇总到 [`docs/miragenflow-long-task-goal-prompt.md`](miragenflow-long-task-goal-prompt.md),长任务优先以该综合目标为入口。 > > 旧版页面蓝本只作为历史背景;当渠道交互与综合目标不一致时,必须采用 OpenAI 单一供应方式、统一弹窗和“基础信息 / 模型列表 / 模型映射”三个可自由切换 Tab。 ## 1. 目标定义 将 MiragenFlow 的用户端 `web/` 与管理端 `admin/` 统一到同一锁定版本 `tdesign-react@1.15.1` 的基础组件体系,同时保持两个应用的业务、权限和视觉职责分离。 最终结果必须满足: - 用户端和管理端的按钮、输入框、下拉、选择器、弹窗、抽屉、提示、表单、表格、分页等基础交互均基于 TDesign。 - 用户端保留现有自定义视觉,包括主题令牌、品牌字体、布局密度、画布极简工具栏、移动端布局和用户侧文案;不能把管理台模板直接套到用户端。 - 管理端现有 TDesign 主题、工作台密度、菜单、权限、认证和业务页面保持视觉与行为稳定。 - 两端都使用本地化 Lineicons 子集,不使用 CDN、WebFont、全量图标目录或未批准的图标库。 - 所有下拉和弹层使用项目自己的样式适配,不渲染浏览器原生 `` 引用。 - 用户端和管理端没有互相导入业务页面、Redux store、路由、权限或 API 服务。 - 没有 CDN、WebFont、Lucide 或全量图标目录;Lineicons 仅加载本地实际使用子集。 ### 视觉与交互 - 管理端关键页面视觉与迁移前基线一致。 - 用户端仍保持现有自定义主题、品牌字体、画布扁平工具栏和移动端列表布局。 - 浅色/深色主题、桌面/手机尺寸均无溢出、遮挡、黑色错误容器或白屏。 - 所有弹窗和抽屉支持保存、取消、右上角关闭、遮罩关闭、ESC 关闭;异步成功自动关闭,失败保留表单。 - 所有受控字段在切换 Tab、重开编辑、保存失败和刷新后不会丢失或被空值覆盖。 ### 业务与安全 - 现有用户端画布、资产、任务、账户和认证流程不回归。 - 管理端 22 个可见页面、权限、真实 API、审计、计费和渠道流程不回归。 - 页面不展示原始 JSON、内部供应商凭证、Base URL、API Key、内部模型 ID 或管理专属字段。 - 加载、空态、网络错误、403、409、422、503 和重试路径均有明确中文反馈。 - 按路由、筛选和分页加载的列表必须具备请求代次或取消保护;过期响应不得回写当前页面的行数据、加载态或错误态。 ### 验证命令 ```bash npm --prefix server run typecheck npm --prefix server test npm --prefix web run typecheck npm --prefix web run build npm --prefix admin run typecheck npm --prefix admin run build npm --prefix admin run lint npm run build:all git diff --check ``` 使用 `npm run dev:all` 进行同源验证,至少检查 `/`、`/canvas`、`/assets`、`/tools/image`、`/admin/` 和管理台关键页面;使用桌面、390px 手机、浅色和深色主题验证控件、弹层、键盘和滚动。未验证内容只能记录到 `pending-test.mdx`,不能宣布完成。 ## 9. 长任务执行规则 1. 先读取 `AGENTS.md`、本目标文档、综合目标提示词、架构图 JSON,以及两端入口、Provider、主题和依赖文件;先形成迁移盘点和删除/保留清单,再开始代码修改。 2. 每次只推进一个迁移阶段;先改适配层,再逐页迁移,禁止一次性删除 Ant 依赖。 3. 修改前记录涉及页面、控件、状态契约和视觉基线;修改后检查用户端和管理端边界。 4. 不回滚已有用户改动,不创建展示用 mock,不把未接入功能伪装成成功。 5. 每完成一个阶段,运行对应类型检查/构建并记录结果;浏览器未验证的项目写入 `pending-test.mdx`。 6. 只有在用户端 Ant/Radix 引用清零、所有复杂控件回归通过、管理端视觉基线稳定后,才允许删除旧依赖。 ## 9.1 本轮需求转化 ### 必须达成 - `web/` 与 `admin/` 使用同一锁定版本的 TDesign 作为基础控件运行时;用户端通过适配层接入,不直接复制管理台页面。 - 用户端保留现有自定义主题、品牌字体、首页/登录/创作/画布/资产视觉、画布专属交互和移动端紧凑列表;管理端保持现有工作台密度、菜单、权限、认证、表格和 ECharts 视觉。 - 两端共享的只能是无业务依赖的 TDesign 包装、语义主题令牌、可访问性/键盘行为契约和本地 Lineicons 子集;不得共享管理端 Redux、路由、权限、请求服务或业务字段。 - 所有 Select、Dropdown、Cascader、TreeSelect、弹层和提示均使用 TDesign 或项目自定义样式适配;禁止浏览器原生 `