Skip to content

问题

流程表单设计器左侧「系统字段」(用户选择器、部门选择器、字典选择器、接口选择器)的源码是 RuoYi Office 自己的,还是 FormCreate 官方的?如果要改这些组件,应该去哪个目录?

答案

设计器壳子来自第三方 FormCreate@form-create/ant-design-vue + 工作区内的 fc-designer-pro);截图红框里的 「系统字段」四类选择器是 RuoYi Office 二开注册的业务组件,源码在 PC 前端 ruoyi-office-vben/apps/web-antd/src/components/form-create/,由 useFormCreateDesigner() 注入设计器菜单。

详细说明

1. 三层分工

层级是什么源码 / 包位置能否改业务逻辑
表单渲染引擎@form-create/ant-design-vuenpm 依赖否(按文档扩展)
可视化设计器fc-designer-pro(FcDesigner Pro 商业版)ruoyi-office-vben/packages/fc-designer-pro/dist/仅 dist,无可改 Vue 源码
RuoYi Office 增强系统字段、上传、富文本、地区选择等apps/web-antd/src/components/form-create/是,改这里

2. 「系统字段」菜单从哪来

useFormCreateDesigner(designerRef) 在挂载后执行 buildSystemMenu(),向 FcDesigner 追加名为 system、标题为「系统字段」的左侧菜单,并注册四个组件规则:

设计器显示名组件 type说明
用户选择器UserSelect基于 use-api-select.tsx,默认接口 /system/user/simple-list
部门选择器DeptSelectdept-select.vue,树形选部门
字典选择器DictSelectdict-select.vue + rules/use-dict-select.ts
接口选择器ApiSelectuse-api-select.tsx,可配远程 URL 与字段映射

除系统字段外,同一 hook 还会在「基础组件」区替换/追加:富文本、文件/图片上传、Iframe、地区选择等(见 buildFormComponents())。

3. 关键源码路径(web-antd 主应用)

设计器增强与菜单

ruoyi-office-vben/apps/web-antd/src/components/form-create/helpers.ts
  └── useFormCreateDesigner()  → buildSystemMenu() / buildFormComponents()

运行态组件

ruoyi-office-vben/apps/web-antd/src/components/form-create/
├── components/
│   ├── use-api-select.tsx    # UserSelect、ApiSelect
│   ├── dept-select.vue       # DeptSelect
│   └── dict-select.vue       # DictSelect
├── rules/
│   └── use-dict-select.ts      # 字典选择器设计器右侧属性规则
├── typing.ts
└── index.ts

全局注册(Vue 组件 + formCreate + FcDesigner)

ruoyi-office-vben/apps/web-antd/src/plugins/form-create/index.ts

流程表单设计页(截图对应页面)

ruoyi-office-vben/apps/web-antd/src/views/bpm/form/designer/index.vue
  └── <FcDesigner> + useFormCreateDesigner(designerRef)

其它使用同一增强的页面

ruoyi-office-vben/apps/web-antd/src/views/infra/build/index.vue

FormCreate 设计器本体(第三方,仅产物)

ruoyi-office-vben/packages/fc-designer-pro/   # dist + types,description 注明「仅含编译产物」

4. 其它端与后端

路径说明
Element Plus 版 PCapps/web-ele/src/components/form-create/结构与 web-antd 类似
移动端 UniAppruoyi-office-uniapp/src/components/dynamic-form/component-map.ts 映射 UserSelect 等运行态渲染
后端 BPMruoyi-office/yudao-module-bpm/存表单 JSON、流程变量;无设计器 UI 源码

5. 常见改动指引

需求建议修改位置
增删「系统字段」菜单项helpers.tsbuildSystemMenu()
改用户/接口下拉数据源plugins/form-create/index.ts(UserSelect 的 url)或 use-api-select.tsx
改部门树、返回值 id/namedept-select.vuehelpers.tsdeptSelectRule 的 props
改字典类型、多选等设计器属性rules/use-dict-select.tsdict-select.vue
改设计器页面布局/保存逻辑views/bpm/form/designer/index.vue

不要到 FormCreate 官方仓库找「系统字段」——该分组为项目内 addMenu 注入,不在 fc-designer-pro 默认菜单中。

涉及代码 / 配置

  • 注册示例:plugins/form-create/index.tsUserSelectDeptSelectDictSelectApiSelectapp.use(FcDesigner)
  • 菜单注入:helpers.tsbuildSystemMenu()onMounted 调用链

相关链接

修订记录

日期修改
2026-05-28初稿:FormCreate 与 RuoYi Office 二开边界、系统字段源码路径
联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版