{"_id":"@daxiangme/form-adapter","_rev":"10-18a6cad17b6082e2dd4d093b9d980735","name":"@daxiangme/form-adapter","dist-tags":{"next":"0.1.2","latest":"0.6.0"},"versions":{"0.1.0":{"name":"@daxiangme/form-adapter","version":"0.1.0","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@0.1.0","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"dist":{"shasum":"79a8e464a7f4d3949dca16d824fe6686a19d775c","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.1.0.tgz","fileCount":6,"integrity":"sha512-mWAQN7B9BxBDphik1Ks5ezH61gsNCWN+K7lfWLR4iLmJ6syyUGWSctXBmRvtjiUvXyXSyojdsb2vViYXxWe4kA==","signatures":[{"sig":"MEQCIFwRvTCgn+800E7v8dv9KuRXat82pUO1bqcVTO2xf/ZbAiA4jtg+lb6e9BptXMZsaFsZrzRCKYKzc2rS0E+QaFxS3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31426},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4dcb1fbdef070a19d5bbe9a7fb02a00eb2a37b05","scripts":{"build":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.1.0_1788305036455_0.4510057611095146","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@daxiangme/form-adapter","version":"0.1.1","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@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":"e553c912b2f1c36d276f91c5345c6cf119a7da38","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.1.1.tgz","fileCount":6,"integrity":"sha512-UeaZX2diJQ9eMJjsB9/3PALnKFr7HopotWKEc9WG8kEocoCxOLILH54wCyJ7WJ8rPKtLYnrF+IC65WpmHZznJw==","signatures":[{"sig":"MEYCIQDk7lL1ApEIRlySon07+cFkwI2vW4xK6bjha4KTjFA4TQIhANhtipq5sYPNZtUSYNeHGbs9Y5vwiPISZZhNrYFDQMaD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32716},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0d6c18757ed9347671184714d52cd2227b932c85","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.1.1_1788315314431_0.9847737380439494","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@daxiangme/form-adapter","version":"0.1.2","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@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":"22463e3a671f1a5b06156e3b081ce15e043bfc3c","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.1.2.tgz","fileCount":6,"integrity":"sha512-TUZ3BuwFEzJAo6Cqu+E4t+J5fgkeiITCh9YRYQufaXsySMwOOfRbTm+MjflOqq8qCRdkiHxCjZwlGpO6w7eb3g==","signatures":[{"sig":"MEQCIExmgrBci9+Q2xbO9QSy34lixqgr6/MWSgYe2Z/h9YcvAiBTQvLuWTEDh6pXmXgGXImkN+/qOc94TqW5GTsy90zGYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45808},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"51eccacb16ed6ce128a740ff8e3fde6659d050ee","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.1.2_1788399666090_0.7765591388640942","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@daxiangme/form-adapter","version":"0.1.3","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@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":"39446faccce9f63e03bc87cef583704ead186168","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.1.3.tgz","fileCount":6,"integrity":"sha512-asQ8dNLO0i/dciVE8VHTXNZ7+uRlvo+9jG6AT/BEPnuMK7SotintYBGqqrJu7+gUtYOWxoiU/4Uy+zAaG+pMZg==","signatures":[{"sig":"MEUCIQDj8MBOZwQ6O+moNL7VddBMjBrMRm4HAUZWaeZK8JvmjgIgBwjbcgnooMJTwTgghw9N/yOiMxNNRy0w3fv8zzveJHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45808},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"dadf06fab019137c0d128e942908371c57798f99","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.1.3_1788404611860_0.6734860814451595","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@daxiangme/form-adapter","version":"0.2.0","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@0.2.0","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":"84b2bbec33d9d03a99032f66a0ebe15afdb32bba","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.2.0.tgz","fileCount":6,"integrity":"sha512-8E5enLmUkZR1m5d4Aa5vStZslexMRbukZiCkzphfD0KBCRkQpc2SFCtYSKb2yBOSFfKFO3/q9cUrEqsuCrPuTg==","signatures":[{"sig":"MEUCIQCb1PiaHz/1u6y04WQ/FjfrCz2zJzZLHkyp4X+nvjIHDQIgQpZ+ku7DRWy73mZeCcFGYLEKAy/jOLlNX/xPSXqSXgc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45876},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"85c8a3b6e4b4633c66ca580eda88fffec97c9564","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.2.0_1788486068391_0.9899569405081914","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@daxiangme/form-adapter","version":"0.3.0","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@0.3.0","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":"52654fa3c4346d8a51691042f47f70b391c12a9f","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.3.0.tgz","fileCount":6,"integrity":"sha512-9rKHu4sfeihCBRXQbis/jMo4r8yt+2KxDBHSxMrgB4k6e04DpUxPhTazSTr9/EghTuSI7tnq5rsJvMGxd9Fckg==","signatures":[{"sig":"MEQCICo+abPevnSCL3Wb4iv43Hu8OaogTWelPVkMIjIgptKMAiBUyoDbr+XW0nRMnaKheKGwRxQeVYdkUNn9oPiTS2JIIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94630},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0f703a2df50a83029415ca063c06030b0977c6d2","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.3.0_1788751052450_0.9751917076932548","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@daxiangme/form-adapter","version":"0.4.0","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@0.4.0","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":"31c457d1b8c1458d9492e9566c2efa6c67339259","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.4.0.tgz","fileCount":6,"integrity":"sha512-Jxj08nCweqQ4PCs3lbj/9b3WcRpXYY0YJtK8SZKort4f0MMLJX6cZfjpfO3/GGSh4YiiYXkZ6Ix5wIJzl3rTew==","signatures":[{"sig":"MEYCIQCzus80ODKsi5yqw2oshxuj94tOQoYmv0x2xnMzH6PryAIhAMO7GjdG9NZxH8JDQjfHAxL8zo0pT25UALkfsz/Y2eeg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94630},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"114a99187f4f2aab6f5143d8eba4422878c25cda","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.4.0_1788921696304_0.2865734229171024","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@daxiangme/form-adapter","version":"0.5.0","keywords":["form","adapter","upload","dx-bpm"],"author":{"name":"daxiangme"},"license":"MIT","_id":"@daxiangme/form-adapter@0.5.0","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":"136af54d92e27ff0e1925eb042d9210f638977cc","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.5.0.tgz","fileCount":6,"integrity":"sha512-zTX8uOSm5/0Lcxr/3QL0Ms//Bn1EQM3wHF/S2b5BIG/8GJTUhGu3um/7a9NBcljEN15GqNrGYvahCGTlYV0ndQ==","signatures":[{"sig":"MEYCIQC+7JLQbOc3Oa5i0o47qTuDHBo9szGZrcjiMlN/J4RnLAIhAOcT166G37n0xdHazoDjwlnVLlPmSXZCtW3Ka2ubE31Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZDBw+fY8RMD8NoIIqTJent966yjoefYBPC+rifPefWAIgFj8IA+OKIOGuRO2JuveFfJv38EZUj5zSJCkbBZmJyRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158779},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5ffe301e0a0ce8fe79187ec419c0912748c9b82c","scripts":{"build":"vite build","typecheck":"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-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/form-adapter_0.5.0_1789107575600_0.805952238361747","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"_id":"@daxiangme/form-adapter@0.6.0","bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"dist":{"shasum":"c98f7154ff836660b4629d0b3f109be5a8fa7d09","tarball":"https://registry.npmjs.org/@daxiangme/form-adapter/-/form-adapter-0.6.0.tgz","fileCount":6,"integrity":"sha512-+LpCMZ7XSHeyquMjku1kJfAItYuYN5aTLHupCjNAkjeJH3g6WeLSDF1nvMOvk0TIdlMP97nuW54dQsDKvfYADg==","signatures":[{"sig":"MEYCIQC/VW0jNKWSRwNev/EEV+6y/eqQ1Bw1wmk1L933cic7LAIhAKhtSFJODsfmwpgCtJcHYtRwdJrKsK/jHRZK0j61alIV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDv+Uw/fPutLLyvyCn+eH+ZlrnJDuM505Xo+21gDAm4pQIgIqj7rpDTpzxeQWyeKjesTIYhaLwwN3KkaIJLwiyP6fA="}],"unpackedSize":198852},"name":"@daxiangme/form-adapter","type":"module","author":{"name":"daxiangme"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fa2dbabeb5546ef18d3b9def87c34957d9d774d0","license":"MIT","scripts":{"build":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","pack:dry-run":"npm pack --dry-run"},"version":"0.6.0","_npmUser":{"name":"daxiangme","email":"331139839@qq.com"},"homepage":"https://github.com/daxiangme/form-builder#readme","keywords":["form","adapter","upload","dx-bpm"],"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-adapter"},"_npmVersion":"12.0.2","description":"DX Form 的本地预览与 DX BPM 宿主适配实现","directories":{},"maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@daxiangme/form-core":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/form-adapter_0.6.0_1789444236201_0.5978114931444662"}}},"time":{"created":"2026-09-01T23:23:56.214Z","modified":"2026-09-15T03:50:36.448Z","0.1.0":"2026-09-01T23:23:56.575Z","0.1.1":"2026-09-02T02:15:14.585Z","0.1.2":"2026-09-03T01:41:06.243Z","0.1.3":"2026-09-03T03:03:32.003Z","0.2.0":"2026-09-04T01:41:08.550Z","0.3.0":"2026-09-07T03:17:32.584Z","0.4.0":"2026-09-09T02:41:36.451Z","0.5.0":"2026-09-11T06:19:35.685Z","0.6.0":"2026-09-15T03:50:36.291Z"},"bugs":{"url":"https://github.com/daxiangme/form-builder/issues"},"author":{"name":"daxiangme"},"license":"MIT","homepage":"https://github.com/daxiangme/form-builder#readme","keywords":["form","adapter","upload","dx-bpm"],"repository":{"url":"git+https://github.com/daxiangme/form-builder.git","type":"git","directory":"packages/form-adapter"},"description":"DX Form 的本地预览与 DX BPM 宿主适配实现","maintainers":[{"name":"daxiangme","email":"331139839@qq.com"}],"readme":"# @daxiangme/form-adapter\n\n`el-form-gen` 的内部本地预览和 DX BPM 宿主适配实现。普通 Vue 应用请从 [`el-form-gen`](https://www.npmjs.com/package/el-form-gen) 导入工厂函数。传输生命周期由宿主提供，Adapter 不保存 Token，也不创建 Axios 实例。\n\n```ts\nimport { createDxBpmFormAdapter, createLocalPreviewFormAdapter } from 'el-form-gen'\n\nconst adapters = createDxBpmFormAdapter({\n  transport: {\n    request: ({ method, path, query, body }) =>\n      dxHttp.request({ method, url: path, params: query, data: body }),\n    download: ({ path, query }) => dxHttp.download(path, { params: query }),\n  },\n  context: { applicationCode: 'expense', resourceCode: 'expense-form', recordToken },\n})\n```\n\n`createLocalPreviewFormAdapter()` 返回 `{ adapters, dispose }`；其文件只保存在当前页面的内存与 Object URL 中，不会产生业务网络请求。没有真实服务时，可用它先跑通 OCR、扫码、定位（含选点）、目录查询和受控 iframe，定位结果使用固定 `FormLocationValue`。页面卸载时调用 `dispose()`。\n\n数据选择类控件不走 Adapter 端口。`createLocalPreviewPickerProviders()` 返回一份 `FormPickerProviderMap` 示例，按 `shape` 覆盖不分页列表、分页列表、树形、左树叠加、懒加载、单段记录与两段引用，注入 `pickerProviders` 即可。参数规范见[数据选择器](../../docs/guide/pickers.md)。选择器按钮与分页文案由宿主传入的 Element Plus 语言包决定，见[语言](../../docs/guide/locale.md)。\n\n生产宿主需要真实地图时，可使用 `createAmapLocationAdapter({ key })`。Key 由调用方传入，SDK 通过动态脚本加载，不增加 npm 依赖。DX BPM 工厂的扫码、定位和受控页面通过 `extras` 注入，缺少端口时对应控件失败关闭，包内不写 BPM picker HTTP。采集组件的设计配置与取值约定见[采集组件](../../docs/guide/capture.md)。\n\n## 端口索引\n\n| 能力                              | 注入位置                              | 缺失时                     |\n| --------------------------------- | ------------------------------------- | -------------------------- |\n| 文件上传与下载                    | `adapters.asset`                      | 上传动作失败关闭           |\n| 人员 / 角色 / 组织 / 岗位（兼容） | `adapters.directory`                  | 回退到 `pickerProviders`   |\n| 数据选择、目录选择、引用选择      | `pickerProviders`（与 adapters 平级） | 选择动作失败关闭并给出原因 |\n| 受控 iframe                       | `adapters.embeddedResource`           | 页面不加载                 |\n| OCR / 扫码 / 定位 / 个人签名      | `adapters.ocr` 等                     | 采集动作失败关闭           |\n| 动态选项与数据源                  | `adapters.dataSource`                 | 选项为空                   |\n| 远程验证                          | `adapters.remoteValidation`           | 该规则不生效               |\n| 导航与宿主动作                    | `adapters.navigation` / `hostAction`  | 按钮失败关闭               |\n| 关系候选与原子保存                | 关系端口                              | 关系表单无法保存           |\n\n## 0.3 关系表单接入\n\n关系数据加载、候选查询、已选回显、确认前校验及原子保存通过 Core 定义的关系端口接入。候选页和已选集合相互独立，取消查询不生成关联操作；选择现有实体产生 `LINK`，解除关系产生 `UNLINK`，均不删除共享目标实体。\n\nDX BPM 工厂通过 `extras` 注入宿主实现的关系端口，不在包内猜测业务 HTTP 地址。候选鉴权、版本、幂等、事务和保存结果查询由宿主负责。宿主引用只能存在运行值或 Adapter 上下文，不得写入 Schema 或日志。\n\n`createLocalRelationFormAdapter({ initialState, candidates })` 返回 `{ adapters, save, setSaveScenario, setSelectionScenario, dispose }`，使用独立内存副本提供分页、回显、确认校验和原子保存。没有后端时，可用 `setSaveScenario` 指定保存结果为成功、拒绝、冲突或回执丢失；回执丢失后通过 `adapters.submissionStatus.resolve` 取回原批次。该工厂不提供生产鉴权或数据库持久化。\n\n0.2 的平面子表值需要显式迁移；预览 `rowId` 不能猜作持久化主键。三个发布包必须保持版本一致，普通 Vue 应用继续仅从 `el-form-gen` 导入。完整身份、权限、回执及迁移约定参见[关系接入文档](https://github.com/daxiangme/form-builder/blob/main/docs/relations.md)。\n","readmeFilename":"README.md"}