{"_id":"@daxiangme/form-vue","_rev":"7-61e1013d1a2825d5b0001367e29ba926","name":"@daxiangme/form-vue","dist-tags":{"next":"0.1.2","latest":"0.1.5"},"versions":{"0.1.0":{"name":"@daxiangme/form-vue","version":"0.1.0","keywords":["form","form-designer","vue3","element-plus","low-code"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-vue@0.1.0","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"dist":{"shasum":"a81319836019dd010238138ade99f848148ca3bb","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.0.tgz","fileCount":7,"integrity":"sha512-s+0Ih1TUNJdYWfdvWeWeFkXZ+U6SdiXyLG2QrUw5ZJPxBSXg4KOgkTnLCSrd7zx71iQkMhLY9G7d0RiN+y9RvQ==","signatures":[{"sig":"MEQCICeQm7dHNYMQ6lM3bPsR71qutTBtBWLu9TKVQTHlIwxSAiBUXF+eRE4ZPm0Uad4W/xYNcQCIJIpBwJqkYy1dcdXxlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2862839},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"4dcb1fbdef070a19d5bbe9a7fb02a00eb2a37b05","scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"_npmVersion":"12.0.2","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"dayjs":"^1.11.18","@iconify/vue":"^5.0.0","@iconify-json/ri":"^1.2.5","vue-draggable-plus":"^0.6.0","@daxiangme/form-core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.5.0","element-plus":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/form-vue_0.1.0_1788305049414_0.5003375914346893","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@daxiangme/form-vue","version":"0.1.1","keywords":["form","form-designer","vue3","element-plus","low-code"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-vue@0.1.1","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"homepage":"https://github.com/daxiangme/form-builder#readme","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"dist":{"shasum":"18f3039fb36546ba09c529e55c5a251c9fefa417","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.1.tgz","fileCount":7,"integrity":"sha512-wVoCbn5MEfAqiGLr7AZciRtLBuLTvgSTj4+a2R49gwEwYBio92asCPFlBndjnFpaGWVx/6j/pMMqb3zTYNsqAg==","signatures":[{"sig":"MEYCIQCZZECP9x+2FJJhZWYxfcwPYH1+7qiIOlS6ooUmMKqe3gIhAM7tS+5JBQN+1ev8BbuqLH1xjtdipsAnDqDcGQixY7qs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2799313},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"0d6c18757ed9347671184714d52cd2227b932c85","scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-vue"},"_npmVersion":"12.0.2","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"dayjs":"^1.11.18","@iconify/vue":"^5.0.0","@iconify-json/ri":"^1.2.5","vue-draggable-plus":"^0.6.0","@daxiangme/form-core":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"vue":"^3.5.0","element-plus":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/form-vue_0.1.1_1788315327437_0.501248428404115","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@daxiangme/form-vue","version":"0.1.2","keywords":["form","form-designer","vue3","element-plus","low-code"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-vue@0.1.2","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"homepage":"https://github.com/daxiangme/form-builder#readme","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"dist":{"shasum":"965eb53d42123c0534c6aba882bbe3de07135f3c","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.2.tgz","fileCount":7,"integrity":"sha512-fI2+hoj9O1JoPFaDl5GhB5d4XF7ufaVBO1rr2+wfo8Y0l6xnoemIL7B86C/CwWZC69uKl53kWGSQU1ZRkENS6Q==","signatures":[{"sig":"MEYCIQDb/UvH6t7LDkTAVoXjuJFvq82g06iuzXAz85fpG0FnMQIhAKiZMQD616rz+acQMRjlnAW161i1vezu1s4ay3LAUk1U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2819212},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"51eccacb16ed6ce128a740ff8e3fde6659d050ee","scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-vue"},"_npmVersion":"12.0.2","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"dayjs":"^1.11.18","@iconify/vue":"^5.0.0","@iconify-json/ri":"^1.2.5","vue-draggable-plus":"^0.6.0","@daxiangme/form-core":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"vue":"^3.5.0","element-plus":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/form-vue_0.1.2_1788399676872_0.32363801878798815","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@daxiangme/form-vue","version":"0.1.3","keywords":["form","form-designer","vue3","element-plus","low-code"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-vue@0.1.3","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"homepage":"https://github.com/daxiangme/form-builder#readme","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"dist":{"shasum":"cc9febbded63c4fd7039b81a0ee859f162f6b92b","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.3.tgz","fileCount":7,"integrity":"sha512-VAK+1D/v83ab7monFCcxcpblqu+hJbSWKVo9lYdD1AHjud0a5AqpUa4UjtOg+YWZr9YYly4SYua2Rv5zNZtgMA==","signatures":[{"sig":"MEQCIBkeqF0iYA2Fv/7JDMvos4s7Yus4ZS5tIbGjE119gfBlAiBMPsYn18UIYHejBGUzB7f5zjMJXgYzoAjI627x5VYgyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2818027},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"dadf06fab019137c0d128e942908371c57798f99","scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-vue"},"_npmVersion":"12.0.2","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"dayjs":"^1.11.18","@iconify/vue":"^5.0.0","@iconify-json/ri":"^1.2.5","vue-draggable-plus":"^0.6.0","@daxiangme/form-core":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"element-plus":"^2.11.0","unplugin-vue-components":"^29.1.0"},"peerDependencies":{"vue":"^3.5.0","element-plus":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/form-vue_0.1.3_1788404627496_0.435137298396572","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@daxiangme/form-vue","version":"0.1.4","keywords":["form","form-designer","vue3","element-plus","low-code"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-vue@0.1.4","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"homepage":"https://github.com/daxiangme/form-builder#readme","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"dist":{"shasum":"afc9d0540bf8c6bb62a10184097a2a490513926d","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.4.tgz","fileCount":7,"integrity":"sha512-w4/MzuVpjnVWCGWcNkctpCArMpHP8cBmt8nNz3hARXTlah0vRtKIOKq19RbUwy2Uu9fDtgfhQ1vA5uXRNmFJcg==","signatures":[{"sig":"MEUCIDoCio3FDoZUuW6LafbdRGLckOLAgUSiCbQGEZn3DiDsAiEAhetnUrrejBPmiyOPeRtDgYCuDzFq4ej7aRDJUO5QPmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2821224},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"1987b2c791b778a50c6cdeba22b614ea37edf01c","scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-vue"},"_npmVersion":"12.0.2","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","directories":{},"sideEffects":["**/*.css","./dist/index.js","./src/element-plus-runtime-styles.ts"],"_nodeVersion":"22.23.2","dependencies":{"dayjs":"^1.11.18","@iconify/vue":"^5.0.0","@iconify-json/ri":"^1.2.5","vue-draggable-plus":"^0.6.0","@daxiangme/form-core":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"element-plus":"^2.11.0","unplugin-vue-components":"^29.1.0"},"peerDependencies":{"vue":"^3.5.0","element-plus":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/form-vue_0.1.4_1788419929170_0.6598603438398389","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@daxiangme/form-vue","version":"0.1.5","description":"Vue 3 + Element Plus 表单设计器与运行渲染器","type":"module","license":"MIT","author":{"name":"daxiangme"},"repository":{"type":"git","url":"git+https://github.com/daxiangme/form-builder.git","directory":"packages/form-vue"},"homepage":"https://github.com/daxiangme/form-builder#readme","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"keywords":["form","form-designer","vue3","element-plus","low-code"],"sideEffects":["**/*.css","./dist/index.js","./src/element-plus-runtime-styles.ts"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./style.css":"./dist/style.css"},"scripts":{"build":"vite build","typecheck":"vue-tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"dependencies":{"@daxiangme/form-core":"0.1.4","@iconify-json/ri":"^1.2.5","@iconify/vue":"^5.0.0","dayjs":"^1.11.18","vue-draggable-plus":"^0.6.0"},"peerDependencies":{"element-plus":"^2.11.0","vue":"^3.5.0"},"devDependencies":{"element-plus":"^2.11.0","unplugin-vue-components":"^29.1.0"},"publishConfig":{"access":"public"},"gitHead":"9e4628716e8dc9ed18185e8f5f3eae1f54678b36","_id":"@daxiangme/form-vue@0.1.5","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-qexLXoOD9yFlSGcxS9REOMtCiKoahTvYiPwwDcXEMY/0TiHLLKYu8rozqvzSK0+DmFCVgnJKGjCsHXp2LRyXYw==","shasum":"f383e420b854920f901bdda263075aae2b1efdd8","tarball":"https://registry.npmjs.org/@daxiangme/form-vue/-/form-vue-0.1.5.tgz","fileCount":7,"unpackedSize":2847780,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDHOgv6bSlOiw52/zNIfpBuVXxemp4MUzeNHLPxVmabpwIgJ1qu451aQDkZOwUIBCtixlWkpOvE4qzYnK8qgaRU48w="}]},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"directories":{},"maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/form-vue_0.1.5_1788435601850_0.17284047157287774"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-01T23:24:09.278Z","modified":"2026-09-03T11:40:02.237Z","0.1.0":"2026-09-01T23:24:09.570Z","0.1.1":"2026-09-02T02:15:27.603Z","0.1.2":"2026-09-03T01:41:17.044Z","0.1.3":"2026-09-03T03:03:47.728Z","0.1.4":"2026-09-03T07:18:49.320Z","0.1.5":"2026-09-03T11:40:02.034Z"},"bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"author":{"name":"daxiangme"},"license":"MIT","homepage":"https://github.com/daxiangme/form-builder#readme","keywords":["form","form-designer","vue3","element-plus","low-code"],"repository":{"type":"git","url":"git+https://github.com/daxiangme/form-builder.git","directory":"packages/form-vue"},"description":"Vue 3 + Element Plus 表单设计器与运行渲染器","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"readme":"# @daxiangme/form-vue\n\n> Visual Form Designer and Schema-Driven Renderer for Vue 3 + Element Plus\n\n`@daxiangme/form-vue` 是 Form Builder 的唯一推荐使用入口，提供可嵌入的拖拽式设计器、Schema 驱动运行渲染器、弹窗与抽屉模块、字段规则和声明式事件流。\n\n![Form Builder 设计器总览](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/designer-overview.png)\n\n## 安装\n\n已有 Vue 3 和 Element Plus 的应用只需要安装主包：\n\n```bash\npnpm add @daxiangme/form-vue\n```\n\n主包要求 Vue `^3.5.0` 和 Element Plus `^2.11.0`。新建工程或尚未安装这两个 Peer Dependencies 时，可以一次性安装：\n\n```bash\npnpm add @daxiangme/form-vue vue element-plus\n```\n\n按需宿主（`unplugin-vue-components` 等）只需引入包自身样式。入口会副作用导入所用 Element Plus 组件的 `style/css`，宿主已有的 `--el-*` 变量和全局 `.el-*` 补丁会作用在设计器上，**不必**全量 `element-plus/dist/index.css`，也**不必** `app.use(ElementPlus)`：\n\n```ts\nimport '@daxiangme/form-vue/style.css'\nimport { FormDesigner, FormRenderer } from '@daxiangme/form-vue'\n```\n\n已经全量引入 Element Plus 样式的工程仍然兼容，可继续：\n\n```ts\nimport 'element-plus/dist/index.css'\nimport 'element-plus/theme-chalk/dark/css-vars.css'\nimport '@daxiangme/form-vue/style.css'\n```\n\n## 注册组件\n\n库构建会为模板用到的 Element Plus 控件注入对应 `style/css` 副作用导入。按需宿主直接导入两个公共组件即可：\n\n```ts\nimport { createApp } from 'vue'\nimport { FormDesigner, FormRenderer } from '@daxiangme/form-vue'\n\nimport App from './App.vue'\n\ncreateApp(App).mount('#app')\n```\n\n已经全量 `app.use(ElementPlus)` 的工程仍然兼容。可选插件 `DaxiangFormVue` 只把 `FormDesigner` / `FormRenderer` 注册为全局组件，不负责安装 Element Plus：\n\n```ts\nimport { createApp } from 'vue'\nimport { DaxiangFormVue } from '@daxiangme/form-vue'\n\nimport App from './App.vue'\n\ncreateApp(App).use(DaxiangFormVue).mount('#app')\n```\n\n## 设计表单\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport {\n  FormDesigner,\n  createDemoDesignerDocument,\n  type DesignerDocument,\n} from '@daxiangme/form-vue'\n\nconst document = ref<DesignerDocument>(createDemoDesignerDocument('purchase-application'))\n\nfunction handleSave(nextDocument: DesignerDocument) {\n  document.value = nextDocument\n}\n</script>\n\n<template>\n  <div class=\"designer-host\">\n    <FormDesigner v-model=\"document\" @save-request=\"handleSave\" />\n  </div>\n</template>\n\n<style scoped>\n.designer-host {\n  height: 100vh;\n}\n</style>\n```\n\n`FormDesigner` 使用受控 `modelValue`，负责编辑文档并发出保存、导出与诊断事件；业务持久化由宿主决定。\n\n## 渲染表单\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport {\n  FormRenderer,\n  createDemoDesignerDocument,\n  type DesignerRuntimeValueStore,\n  type DesignerSubmissionProjection,\n} from '@daxiangme/form-vue'\n\nconst document = createDemoDesignerDocument('purchase-application')\nconst value = ref<DesignerRuntimeValueStore>({ fields: {}, collections: {} })\n\nfunction handleSubmit(projection: DesignerSubmissionProjection) {\n  console.info(projection)\n}\n</script>\n\n<template>\n  <FormRenderer v-model=\"value\" :document=\"document\" mode=\"CREATE\" @submit=\"handleSubmit\" />\n</template>\n```\n\n`FormRenderer` 使用同一份文档渲染新增、编辑、只读和详情状态，并输出稳定的提交投影。\n\n## 模块、规则与事件\n\n主表单、弹窗与抽屉共用同一份 `DesignerDocument 1.0`。字段高级配置集中管理状态条件、公式与联动、验证规则、提交策略和组件事件；事件使用可视化步骤与条件分支表达。\n\n![弹窗与抽屉模块设计](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/overlay-module-designer.png)\n\n![字段高级配置](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/advanced-field-config.png)\n\n![声明式事件流](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/event-flow-designer.png)\n\n## 运行效果与主题\n\n弹窗和抽屉在运行态使用真实 Element Plus 外壳。组件默认消费 Element Plus CSS Variables，深色模式直接跟随宿主的 `html.dark`。\n\n新建文档默认标签位于顶部且左对齐。圆角取值是 `THEME` 或 0～32 的 4 的倍数像素：`THEME` 跟随宿主 `--el-border-radius-base`；旧档位 `NONE` / `SMALL` / `BASE` / `LARGE` 解码为 0 / 4 / 8 / 12。自定义像素会写入 `--daxiang-form-container-radius` 等变量，而不是空的档位 class。\n\n![表单运行预览](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/runtime-preview.png)\n\n![Element Plus 深色主题](https://raw.githubusercontent.com/daxiangme/form-builder/v0.1.1/docs/assets/screenshots/dark-theme.png)\n\n## 宿主能力 Adapter\n\n基础设计与渲染不要求额外安装 Adapter。上传、目录、数据源、远程验证、OCR、扫码、定位、导航和业务动作需要宿主通过 `FormRuntimeAdapters` 注入相应端口；缺少端口时保留配置和静态外观，真实动作会明确失败关闭。\n\n主包同时导出常用文档门面和运行类型：\n\n```ts\nimport {\n  createEmptyDesignerDocument,\n  decodeDesignerDocument,\n  diagnoseDesignerDocument,\n  serializeDesignerDocument,\n  type DesignerDocument,\n  type FormRuntimeAdapters,\n} from '@daxiangme/form-vue'\n```\n\n## 高级扩展与内部架构\n\n内部依赖固定为 `form-vue -> form-core <- form-adapter`。纯 TypeScript 文档内核和宿主适配工厂继续以 [`@daxiangme/form-core`](https://www.npmjs.com/package/@daxiangme/form-core) 与 [`@daxiangme/form-adapter`](https://www.npmjs.com/package/@daxiangme/form-adapter) 提供给高级集成方；普通 Vue 应用无需单独安装它们。\n\n当前版本支持 Vue 3、Element Plus 与现代 ESM 浏览器工程，不承诺 CommonJS、SSR 或其他 UI 框架。\n\n## License\n\n[MIT](https://github.com/daxiangme/form-builder/blob/v0.1.1/LICENSE) © 2026 daxiangme\n","readmeFilename":"README.md"}