@daxiangme/form-vue

Vue 3 + Element Plus 表单设计器与运行渲染器
1
Install
npm install @daxiangme/form-vue
Latest Version:0.1.5
Vue:3
License:MIT
Last Updated:Sep 11, 2026
Links: GitHub  ·  npm
Maintainer: daxiangme

@daxiangme/form-vue

Visual Form Designer and Schema-Driven Renderer for Vue 3 + Element Plus

@daxiangme/form-vue 是 Form Builder 的唯一推荐使用入口,提供可嵌入的拖拽式设计器、Schema 驱动运行渲染器、弹窗与抽屉模块、字段规则和声明式事件流。

Form Builder 设计器总览

安装

已有 Vue 3 和 Element Plus 的应用只需要安装主包:

pnpm add @daxiangme/form-vue

主包要求 Vue ^3.5.0 和 Element Plus ^2.11.0。新建工程或尚未安装这两个 Peer Dependencies 时,可以一次性安装:

pnpm add @daxiangme/form-vue vue element-plus

按需宿主(unplugin-vue-components 等)只需引入包自身样式。入口会副作用导入所用 Element Plus 组件的 style/css,宿主已有的 --el-* 变量和全局 .el-* 补丁会作用在设计器上,不必全量 element-plus/dist/index.css,也不必 app.use(ElementPlus):

import '@daxiangme/form-vue/style.css'
import { FormDesigner, FormRenderer } from '@daxiangme/form-vue'

已经全量引入 Element Plus 样式的工程仍然兼容,可继续:

import 'element-plus/dist/index.css'
import 'element-plus/theme-chalk/dark/css-vars.css'
import '@daxiangme/form-vue/style.css'

注册组件

库构建会为模板用到的 Element Plus 控件注入对应 style/css 副作用导入。按需宿主直接导入两个公共组件即可:

import { createApp } from 'vue'
import { FormDesigner, FormRenderer } from '@daxiangme/form-vue'

import App from './App.vue'

createApp(App).mount('#app')

已经全量 app.use(ElementPlus) 的工程仍然兼容。可选插件 DaxiangFormVue 只把 FormDesigner / FormRenderer 注册为全局组件,不负责安装 Element Plus:

import { createApp } from 'vue'
import { DaxiangFormVue } from '@daxiangme/form-vue'

import App from './App.vue'

createApp(App).use(DaxiangFormVue).mount('#app')

设计表单

<script setup lang="ts">
import { ref } from 'vue'
import {
  FormDesigner,
  createDemoDesignerDocument,
  type DesignerDocument,
} from '@daxiangme/form-vue'

const document = ref<DesignerDocument>(createDemoDesignerDocument('purchase-application'))

function handleSave(nextDocument: DesignerDocument) {
  document.value = nextDocument
}
</script>

<template>
  <div class="designer-host">
    <FormDesigner v-model="document" @save-request="handleSave" />
  </div>
</template>

<style scoped>
.designer-host {
  height: 100vh;
}
</style>

FormDesigner 使用受控 modelValue,负责编辑文档并发出保存、导出与诊断事件;业务持久化由宿主决定。

渲染表单

<script setup lang="ts">
import { ref } from 'vue'
import {
  FormRenderer,
  createDemoDesignerDocument,
  type DesignerRuntimeValueStore,
  type DesignerSubmissionProjection,
} from '@daxiangme/form-vue'

const document = createDemoDesignerDocument('purchase-application')
const value = ref<DesignerRuntimeValueStore>({ fields: {}, collections: {} })

function handleSubmit(projection: DesignerSubmissionProjection) {
  console.info(projection)
}
</script>

<template>
  <FormRenderer v-model="value" :document="document" mode="CREATE" @submit="handleSubmit" />
</template>

FormRenderer 使用同一份文档渲染新增、编辑、只读和详情状态,并输出稳定的提交投影。

模块、规则与事件

主表单、弹窗与抽屉共用同一份 DesignerDocument 1.0。字段高级配置集中管理状态条件、公式与联动、验证规则、提交策略和组件事件;事件使用可视化步骤与条件分支表达。

弹窗与抽屉模块设计

字段高级配置

声明式事件流

运行效果与主题

弹窗和抽屉在运行态使用真实 Element Plus 外壳。组件默认消费 Element Plus CSS Variables,深色模式直接跟随宿主的 html.dark。

新建文档默认标签位于顶部且左对齐。圆角取值是 THEME 或 0~32 的 4 的倍数像素:THEME 跟随宿主 --el-border-radius-base;旧档位 NONE / SMALL / BASE / LARGE 解码为 0 / 4 / 8 / 12。自定义像素会写入 --daxiang-form-container-radius 等变量,而不是空的档位 class。

表单运行预览

Element Plus 深色主题

宿主能力 Adapter

基础设计与渲染不要求额外安装 Adapter。上传、目录、数据源、远程验证、OCR、扫码、定位、导航和业务动作需要宿主通过 FormRuntimeAdapters 注入相应端口;缺少端口时保留配置和静态外观,真实动作会明确失败关闭。

主包同时导出常用文档门面和运行类型:

import {
  createEmptyDesignerDocument,
  decodeDesignerDocument,
  diagnoseDesignerDocument,
  serializeDesignerDocument,
  type DesignerDocument,
  type FormRuntimeAdapters,
} from '@daxiangme/form-vue'

高级扩展与内部架构

内部依赖固定为 form-vue -> form-core <- form-adapter。纯 TypeScript 文档内核和宿主适配工厂继续以 @daxiangme/form-core 与 @daxiangme/form-adapter 提供给高级集成方;普通 Vue 应用无需单独安装它们。

当前版本支持 Vue 3、Element Plus 与现代 ESM 浏览器工程,不承诺 CommonJS、SSR 或其他 UI 框架。

License

MIT © 2026 daxiangme

Related Packages

el-form-gen

Vue 3 + Element Plus 可视化表单设计器与运行渲染器;Form Gen 包含设计与渲染,不表...

0 1
@xunserver-jsf/element-plus

Element Plus UI adapter for @xunserver-jsf/vue.

586 0
wti-form-ext

提高 10 倍开发效率的低代码表单组件,在原作者基础上进行微小改进以适应项目需求

542 0
@done-coding/admin-core

配置驱动的 Vue 3 前端框架核心:表单、列表、表格、面板、布局组件族,一处配置多处...

13,943
czy-avue-form-design

Vue3.0版本,因Avue还存在一些bug,请慎重使用。

2,531 1,277

Version History

Version Released Vue License
0.1.5 ^3.5.0 MIT
0.1.4 ^3.5.0 MIT
0.1.3 ^3.5.0 MIT
0.1.2 ^3.5.0 MIT
0.1.1 ^3.5.0 MIT