# OFBiz Modern UI 使用手册 ## 定位 `plugins/modern-ui` 是 OFBiz 现代管理端的生产 UI。目标界面是 `/modern/app/` 下的管理员工作台、领域管理页、业务操作页和系统维护页,服务对象是每天处理订单、库存、财务、客户、内容、系统维护等任务的后台操作员。 本手册说明如何用 Vue 3、Element Plus 和 ERP wrapper 构建 OFBiz 管理端。原有 FreeMarker、widget XML、controller XML 和 service XML 是元数据来源、兼容路由和回退依据;生产页面要面向业务操作员,使用订单、商品、客户、财务、库存、履约、采购、人事、内容、POS、电商、系统维护等业务语言。 `/Users/qiu/Desktop/ERP/element-plus-lab` 可以作为样式试验来源,但不能作为 modern-ui 的产品目标。生产 UI 的入口、样式、组件调用和验收边界都以本目录代码为准。 ## 代码入口 | 关注点 | 文件 | | --- | --- | | 应用启动、Element Plus 注册、全局图标注册、全局样式导入 | `plugins/modern-ui/app/src/main.ts` | | Hash 路由、登录门禁、视图选择、业务页参数传递 | `plugins/modern-ui/app/src/App.vue` | | 侧栏、顶栏、全局命令、快捷动作、会话身份 | `plugins/modern-ui/app/src/components/erp/ErpAppShell.vue` | | 模块目录、模块路由、标签、图标、业务前缀、快捷页、工作流 | `plugins/modern-ui/app/src/data/moduleCatalog.ts` | | 领域管理页模板 | `plugins/modern-ui/app/src/components/erp/ErpDomainAdminView.vue` | | 生成业务页路由 `#/pages/:pageId` | `plugins/modern-ui/app/src/views/BusinessPageView.vue` | | `PageDefinition` block 渲染、页面动作、回执 | `plugins/modern-ui/app/src/components/erp/ErpPageRenderer.vue` | | 非普通 form/table/action block 的适配与 workspace 分发 | `plugins/modern-ui/app/src/components/erp/ErpAdapterBlock.vue` | | ERP wrapper 组件 | `plugins/modern-ui/app/src/components/erp/*.vue` | | API、action、lookup、option、entity rows、fallback 数据 | `plugins/modern-ui/app/src/services/api.ts`, `plugins/modern-ui/app/src/services/fallback.ts` | | 共享类型 | `plugins/modern-ui/app/src/types/api.ts` | | 标签清洗和业务文案格式化 | `plugins/modern-ui/app/src/utils/display.ts`, `plugins/modern-ui/app/src/utils/erpMetadata.ts` | | 样式入口 | `plugins/modern-ui/app/src/styles/erp-ui.css`, `plugins/modern-ui/app/src/styles/modern.css` | | 设计变量、Element Plus 覆盖、ERP 可复用模式 | `plugins/modern-ui/app/src/styles/tokens.css`, `plugins/modern-ui/app/src/styles/element-overrides.css`, `plugins/modern-ui/app/src/styles/erp-patterns.css` | | 生成页面 JSON | `plugins/modern-ui/app/public/generated`, `plugins/modern-ui/webapp/modern/app/generated` | 应用入口只导入一次全局样式: ```ts import './styles/erp-ui.css' import './styles/modern.css' ``` 业务视图不要重复导入 Element Plus CSS,不要在页面内重新定义主题变量,也不要自建第二套视觉体系。 ## 全局样式入口 `erp-ui.css` 是可复用 ERP 视觉系统入口,顺序为: 1. Element Plus 官方 CSS。 2. `tokens.css`:颜色、字号、间距、圆角、阴影、边框等全局变量。 3. `base.css`:基础页面和元素规则。 4. `element-overrides.css`:Element Plus 变量映射和窄范围覆盖。 5. `erp-patterns.css`:ERP 表单、表格、状态、上传、lookup、菜单、详情、分页、空状态等可复用类。 `modern.css` 负责管理端 shell、领域页、生成业务页和少量页面级布局。规则归属如下: - 改颜色、字号、间距、圆角、阴影:优先改 `tokens.css`。 - 改 Element Plus 全局变量或基础组件密度:放在 `element-overrides.css`。 - 可复用 ERP 模式:放在 `erp-patterns.css`。 - 某个页面或某类业务页的布局:放在 `modern.css`,使用明确的页面或 block class。 - 组件私有且不可复用的小范围布局:留在组件 `