{"_id":"@acechengui/dynamic-form","_rev":"3-81940135e0472d64a62f77bf1f1469d5","name":"@acechengui/dynamic-form","dist-tags":{"latest":"2.1.12"},"versions":{"2.1.9":{"name":"@acechengui/dynamic-form","version":"2.1.9","scripts":{"dev":"vue-cli-service serve","serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","lib":"vue-cli-service build --target lib --name ng-form-element --dest lib packages/index.js"},"dependencies":{"axios":"^0.21.2","core-js":"^3.6.5","deepmerge":"^4.3.1","default-passive-events":"^1.0.10","lodash":"^4.17.21","object-path":"^0.11.5","vue":"^2.6.12","vuedraggable":"^2.24.3"},"devDependencies":{"@vue/cli-plugin-babel":"~4.4.0","@vue/cli-plugin-eslint":"~4.4.0","@vue/cli-service":"~4.4.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-vue":"^6.2.2","terser-webpack-plugin":"^5.3.7","vue-template-compiler":"^2.6.11","vuex-persistedstate":"^3.0.1","webpack-bundle-analyzer":"^4.4.2"},"eslintConfig":{"root":true,"env":{"node":true},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"babel-eslint"},"rules":{"no-unused-vars":"off","vue/no-unused-components":"off","no-mixed-spaces-and-tabs":"off","no-tabs":"off","no-irregular-whitespace":"off","vue/no-parsing-error":"off"}},"browserslist":["> 0.5%","last 2 versions","not ie <= 8"],"private":false,"description":"ng-form-element","main":"lib/ng-form-element.umd.min.js","directories":{"example":"example","lib":"lib"},"repository":{"type":"git","url":"git+https://gitee.com/jjxliu306/ng-form-element.git"},"author":{"name":"acechengui"},"license":"MIT","bugs":{"url":"https://gitee.com/jjxliu306/ng-form-element/issues"},"homepage":"https://gitee.com/jjxliu306/ng-form-element#readme","keywords":["ng-form","ng-form-element","vue-form-design","form-build-element","formdesign","动态表单","表单"],"gitHead":"004b6fccbacfad3e77b0a5f9d2252c16eea17856","_id":"@acechengui/dynamic-form@2.1.9","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-QVdeGpiELMdHrOpeXl+RZwaP25k7bmj+puhoHxm83t+HTIXdb56xLnGUJOISKPJdnmr9gE2s0qme3uciEoZoxA==","shasum":"b5555f621db01c282392c354f4eadd8729b40882","tarball":"https://registry.npmjs.org/@acechengui/dynamic-form/-/dynamic-form-2.1.9.tgz","fileCount":4,"unpackedSize":23901,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnjeUk7ZnJoWJ17GhIsz2rTs2U5LD9ZhO4wogKDqv+sgIhANFhSUQ5x3BZshREd1XgBfahR3dEFoRp3zJefUniAwGj"}]},"_npmUser":{"name":"acechengui","email":"623169670@qq.com"},"maintainers":[{"name":"acechengui","email":"623169670@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dynamic-form_2.1.9_1699155789712_0.5284121520174792"},"_hasShrinkwrap":false},"2.1.10":{"name":"@acechengui/dynamic-form","version":"2.1.10","scripts":{"dev":"vue-cli-service serve","serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","lib":"vue-cli-service build --target lib --name ng-form-element --dest lib packages/index.js"},"dependencies":{"axios":"^0.21.2","core-js":"^3.6.5","deepmerge":"^4.3.1","default-passive-events":"^1.0.10","lodash":"^4.17.21","object-path":"^0.11.5","vue":"^2.6.12","vuedraggable":"^2.24.3"},"devDependencies":{"@vue/cli-plugin-babel":"~4.4.0","@vue/cli-plugin-eslint":"~4.4.0","@vue/cli-service":"~4.4.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-vue":"^6.2.2","terser-webpack-plugin":"^5.3.7","vue-template-compiler":"^2.6.11","vuex-persistedstate":"^3.0.1","webpack-bundle-analyzer":"^4.4.2"},"eslintConfig":{"root":true,"env":{"node":true},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"babel-eslint"},"rules":{"no-unused-vars":"off","vue/no-unused-components":"off","no-mixed-spaces-and-tabs":"off","no-tabs":"off","no-irregular-whitespace":"off","vue/no-parsing-error":"off"}},"browserslist":["> 0.5%","last 2 versions","not ie <= 8"],"private":false,"description":"dynamic-form","main":"lib/ng-form-element.umd.min.js","directories":{"example":"example","lib":"lib"},"repository":{"type":"git","url":"git+https://gitee.com/jjxliu306/ng-form-element.git"},"author":{"name":"acechengui"},"license":"MIT","bugs":{"url":"https://gitee.com/jjxliu306/ng-form-element/issues"},"homepage":"https://gitee.com/jjxliu306/ng-form-element#readme","keywords":["vue-form-design","form-build-element","formdesign","动态表单","表单"],"gitHead":"004b6fccbacfad3e77b0a5f9d2252c16eea17856","_id":"@acechengui/dynamic-form@2.1.10","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-dFM3Rn2AeCOCiOHq3uVybkRZetTOcoWd3qo5vAJknIfQuGhpSkz5iQApP1e/5Dwr9BNN2VcLW+hu230NcFiKrw==","shasum":"453c2e9e4ef0d1ef4a9345e5d87e25a14e0accbd","tarball":"https://registry.npmjs.org/@acechengui/dynamic-form/-/dynamic-form-2.1.10.tgz","fileCount":4,"unpackedSize":23859,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJi87XJIG/ZtRgU5keWwtCMCuAwvrfpohshgA/znGeoQIhALPxPF5TckqdOTrAeWowaoIkLhcBIugcQe66I27CpzCp"}]},"_npmUser":{"name":"acechengui","email":"623169670@qq.com"},"maintainers":[{"name":"acechengui","email":"623169670@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dynamic-form_2.1.10_1699156139317_0.7376763018156576"},"_hasShrinkwrap":false},"2.1.11":{"name":"@acechengui/dynamic-form","version":"2.1.11","scripts":{"dev":"vue-cli-service serve","serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","lib":"vue-cli-service build --target lib --name ng-form-element --dest lib packages/index.js"},"dependencies":{"axios":"^0.21.2","core-js":"^3.6.5","deepmerge":"^4.3.1","default-passive-events":"^1.0.10","lodash":"^4.17.21","object-path":"^0.11.5","vue":"^2.6.12","vuedraggable":"^2.24.3"},"devDependencies":{"@vue/cli-plugin-babel":"~4.4.0","@vue/cli-plugin-eslint":"~4.4.0","@vue/cli-service":"~4.4.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-vue":"^6.2.2","terser-webpack-plugin":"^5.3.7","vue-template-compiler":"^2.6.11","vuex-persistedstate":"^3.0.1","webpack-bundle-analyzer":"^4.4.2"},"eslintConfig":{"root":true,"env":{"node":true},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"babel-eslint"},"rules":{"no-unused-vars":"off","vue/no-unused-components":"off","no-mixed-spaces-and-tabs":"off","no-tabs":"off","no-irregular-whitespace":"off","vue/no-parsing-error":"off"}},"browserslist":["> 0.5%","last 2 versions","not ie <= 8"],"private":false,"description":"dynamic-form","main":"lib/ng-form-element.umd.min.js","directories":{"example":"example","lib":"lib"},"repository":{"type":"git","url":"git+https://gitee.com/jjxliu306/ng-form-element.git"},"author":{"name":"acechengui"},"license":"MIT","bugs":{"url":"https://gitee.com/jjxliu306/ng-form-element/issues"},"homepage":"https://gitee.com/jjxliu306/ng-form-element#readme","keywords":["vue-form-design","form-build-element","formdesign","动态表单","表单"],"gitHead":"004b6fccbacfad3e77b0a5f9d2252c16eea17856","_id":"@acechengui/dynamic-form@2.1.11","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-6DFokn5EgDQaIckETddJWHxzKpnhFHZNi2SUSF0AdUwf6iZl4wyRj9d/o/yuodl8AlcSaaWwpsxPbZCRsaYe5Q==","shasum":"3e2462c2b487d81a2d89e8917f23ae37fce7699a","tarball":"https://registry.npmjs.org/@acechengui/dynamic-form/-/dynamic-form-2.1.11.tgz","fileCount":116,"unpackedSize":629615,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtCiVrMaqGqeRIvpLZ+HsfUr2LdPBCaNkQka1voafjKAiBIn8s1HWuSL6+zJxRSsdr39gKazbM7uY6pVBsIfjyAjw=="}]},"_npmUser":{"name":"acechengui","email":"623169670@qq.com"},"maintainers":[{"name":"acechengui","email":"623169670@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dynamic-form_2.1.11_1699156365676_0.20290692013287992"},"_hasShrinkwrap":false},"2.1.12":{"name":"@acechengui/dynamic-form","version":"2.1.12","scripts":{"dev":"vue-cli-service serve","serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","lib":"vue-cli-service build --target lib --name @acechengui/dynamic-form --dest lib packages/index.js"},"dependencies":{"axios":"^0.21.2","core-js":"^3.6.5","deepmerge":"^4.3.1","default-passive-events":"^1.0.10","lodash":"^4.17.21","object-path":"^0.11.5","vue":"^2.6.12","vuedraggable":"^2.24.3"},"devDependencies":{"@vue/cli-plugin-babel":"~4.4.0","@vue/cli-plugin-eslint":"~4.4.0","@vue/cli-service":"~4.4.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-vue":"^6.2.2","terser-webpack-plugin":"^5.3.7","vue-template-compiler":"^2.6.11","vuex-persistedstate":"^3.0.1","webpack-bundle-analyzer":"^4.4.2"},"eslintConfig":{"root":true,"env":{"node":true},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"babel-eslint"},"rules":{"no-unused-vars":"off","vue/no-unused-components":"off","no-mixed-spaces-and-tabs":"off","no-tabs":"off","no-irregular-whitespace":"off","vue/no-parsing-error":"off"}},"browserslist":["> 0.5%","last 2 versions","not ie <= 8"],"private":false,"description":"dynamic-form","main":"lib/ng-form-element.umd.min.js","directories":{"example":"example","lib":"lib"},"repository":{"type":"git","url":"git+https://gitee.com/jjxliu306/ng-form-element.git"},"author":{"name":"acechengui"},"license":"MIT","bugs":{"url":"https://gitee.com/jjxliu306/ng-form-element/issues"},"homepage":"https://gitee.com/jjxliu306/ng-form-element#readme","keywords":["vue-form-design","form-build-element","formdesign","动态表单","表单"],"gitHead":"004b6fccbacfad3e77b0a5f9d2252c16eea17856","_id":"@acechengui/dynamic-form@2.1.12","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-p4Oc63UlzPeuAi8r95km170+WEfWPAfTv+fbAse3TkVhLEPXCSWKgNxGAwglpbrzEEZ0CaG5QXjMoLIKElXu3A==","shasum":"c41cd70f2f2dc1ad98b3072adacfdc9c05b066e2","tarball":"https://registry.npmjs.org/@acechengui/dynamic-form/-/dynamic-form-2.1.12.tgz","fileCount":4,"unpackedSize":23868,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvSJoKtZrfx87z9A9V7vH4IN1CcN+UIlbIVP1lKWeXvAIhAKg/GoHsMS6J3rEepfyDMvOpTl+F21qnW3kmG4FXV26R"}]},"_npmUser":{"name":"acechengui","email":"623169670@qq.com"},"maintainers":[{"name":"acechengui","email":"623169670@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dynamic-form_2.1.12_1699157590325_0.936505009322776"},"_hasShrinkwrap":false}},"time":{"created":"2023-11-05T03:43:09.638Z","2.1.9":"2023-11-05T03:43:09.917Z","modified":"2023-11-05T04:13:10.705Z","2.1.10":"2023-11-05T03:48:59.547Z","2.1.11":"2023-11-05T03:52:45.945Z","2.1.12":"2023-11-05T04:13:10.512Z"},"maintainers":[{"name":"acechengui","email":"623169670@qq.com"}],"description":"dynamic-form","homepage":"https://gitee.com/jjxliu306/ng-form-element#readme","keywords":["vue-form-design","form-build-element","formdesign","动态表单","表单"],"repository":{"type":"git","url":"git+https://gitee.com/jjxliu306/ng-form-element.git"},"author":{"name":"acechengui"},"bugs":{"url":"https://gitee.com/jjxliu306/ng-form-element/issues"},"license":"MIT","readme":"# dynamics-form\r\n\r\n## 简介\r\n\r\n基于vue和element-ui实现的表单设计器,依照开源项目 NG-FORM-ELEMENT 二开而来。通过拖拽方式快速生成一个表单页面，表单可以导出json格式,也可以将其他人绘制的表单通过json导入方式进行还原。\r\n\r\n## 和其他开源表单的差异\r\n \r\n- 每个组件可以动态隐藏和显示，并且提供除了“必填”以外的多种规则验证，支持表达式验证和正则验证\r\n- 隐藏的组件绑定值可以配置不输出，减少输出数据大小\r\n- 针对选择性控件（radio，select，checkbox）提供选择后触发调用，支持表达式。对选择性控件支持数据联动功能，通过此功能可以做多级联动\r\n- 动态表格提供单独的弹框进行填写和编辑\r\n- 布局方式多样化，提供栅格，表格等多种布局方式 \r\n- 支持表单预览模式，表单内容全部非组件化，全部文本显示\r\n- 针对选择性控件（radio，select，checkbox）选择后将对应的label进行单独存储，方便展示\r\n\r\n \r\n\r\n## 组件\r\n- ng-form-design 表单设计器（基于可视化操作快速设计出表单页面，生成配置json或页面）\r\n- ng-form-build 表单构建器（根据设计器中获取的配置json数据，快速构建出表单页面，添加readonly属性后展现预览表单）\r\n\r\n\r\n## 安装\r\n```\r\nnpm install --save  dynamics-form\r\n\r\n```\r\n## 引用\r\n```\r\n // 导入组件库\r\nimport NgFormElement  from 'dynamics-form'\r\nimport 'dynamics-form/lib/ng-form-element.css'\r\n```\r\n\r\n## 注册\r\n``` \r\n// 注册组件库\r\nVue.use(NgFormElement) \r\n\r\n```\r\n\r\n### 页面引用\r\n```\r\n<div id=\"app\"> \r\n    <ng-form-design  />\r\n</div>\r\n```\r\n \r\n### API 说明\r\n#### 1. 表单绘制组件  ng-form-design \r\n\r\n方法:\r\n\r\n| 方法名称 | 参数| 说明 |  \r\n|----|----|---------------|\r\n initModel | json |  初始化动态表单内容，参数为动态表单json模板\r\n getModel| N/A|  返回当前正在编辑得动态表单信息\r\n\r\n属性: \r\n\r\n| 属性名 | 说明 | 格式| 默认值 | \r\n|----|--------------|---|---|\r\n| customComponents |   自定义组件的配置,具体参加最下方自定义组件示例中的格式 | array | N/A  | \r\n| config|表单的一些基础配置，主要为http的一些参数,譬如在http请求中给header增加参数：config: { httpConfig: (config)=>{          config.headers['aaaa'] = 'bbbb'          return config  } }| object |  N/A  |\r\n| clear|  是否显示面板上清除按钮 |boolean | true |\r\n| preview|  是否显示面板上预览按钮 |boolean | true | \r\n| imp|  是否显示面板上导入按钮 |boolean | true |\r\n| exp|  是否显示面板上导出按钮 |boolean | true |\r\n| basic-item|  基础组件是否要展示或待选组件列表集合 |boolean/Array | true |\r\n| personal-item|  个性化组件是否要展示或待选组件列表集合 |boolean/Array | true |\r\n| layout-item|  布局组件是否要展示或待选组件列表集合 |boolean/Array | true | \r\n| template| 初始化表单内容，可通过.sync进行双向绑定。该数据为通过getModel所返回的内容。|Object| {list: [],config: {labelPosition: \"left\",labelWidth: 100, size: 'mini',outputHidden: true ,hideRequiredMark: false ,syncLabelRequired: false,customStyle: \"\"}}|\r\n\r\n插槽:\r\n\r\n|  插槽名称 | 说明  |\r\n|-----------|-------------------------|\r\n| drag |  左侧组件面板插槽，可以在组件面板上面填充一个区域展示内容|\r\n| form-name |  当前动态表单名称|\r\n| control-button | 功能区按钮,如果需要自定义功能按钮可以在这里自定义 |\r\n \r\n\r\n 插槽示例:\r\n ```\r\n  <ng-form-design >\r\n        <template slot=\"controlButton\" >\r\n            <el-button   type=\"text\" size=\"medium\"  @click=\"initDemo(1)\">示例1</el-button>\r\n            <el-button   type=\"text\" size=\"medium\"  @click=\"initDemo(2)\">示例2</el-button>\r\n            <el-button   type=\"text\" size=\"medium\"  @click=\"initDemo(3)\">示例3</el-button>\r\n        </template>\r\n        <template  slot=\"formName\">\r\n            <span> vue-drag-formdesign 示例 </span>\r\n        </template>\r\n    </ng-form-design> \r\n ```\r\n\r\n#### 2. 表单查看/填报组件  ng-form-build\r\n\r\n方法:\r\n\r\n|  方法名称 | 参数| 说明  |\r\n|-----------|--------|-------------------------|\r\n| reset | N/A |  重置动态表单内容|\r\n| validate| N/A|  根据设置的规则验证当前表单内容,返回Promise|\r\n| getData | N/A | 表单验证后,获取当前表单数据,返回Promise | \r\n   \r\n\r\n属性: \r\n\r\n| 属性名 | 说明 | 格式| 默认值 | \r\n|-----------|------------------------------|--------|----------|\r\n| formTemplate | 表单模板 | json | 无 |\r\n| models | 表单填充数据 | json | 无 |\r\n| disabled | 是否禁用 | boolean | false |\r\n| renderPreview | 当前是否为预览模式 | boolean | false |\r\n| config|表单的一些基础配置，主要为http的一些参数,譬如在http请求中给header增加参数：config: {  httpConfig: (config)=>{  config.headers['aaaa'] = 'bbbb' return config   } }| object |  N/A  |\r\n| customComponents |   自定义组件的配置,具体参加最下方自定义组件示例中的格式 | array | N/A  |  \r\n \r\n \r\n\r\n 使用示例:\r\n ```\r\n    <template>\r\n      <div id=\"app\"> \r\n         <ng-form-build  :formTemplate=\"formTemplate\" :models=\"models\"/>\r\n      </div>\r\n    </template>\r\n    <script>\r\n    export default {\r\n      data(){\r\n        return {\r\n          models: {} ,\r\n          formTemplate: {}\r\n        }\r\n      },\r\n      created() {\r\n        this.formTemplate = require('./data/basic.json')\r\n      }\r\n    }\r\n    </script>\r\n\r\n ```\r\n\r\n\r\n# 3. 自定义组件示例\r\n\r\n3.1 自定义一个组件（根据文本中输入的地址展示图片）\r\n\r\n```\r\n<template>\r\n  <div> \r\n    <el-input\r\n      v-if=\"!preview\"\r\n      type=\"textarea\"\r\n      autosize\r\n      placeholder=\"请输入图片地址\"\r\n      v-model=\"models[record.model]\" :disabled=\"disabled\">\r\n    </el-input> \r\n     <el-image\r\n        :style=\"record.options.style ? record.options.style : null\"\r\n        :src=\"models[record.model]\"\r\n        fit=\"scale-down\"></el-image> \r\n  </div> \r\n</template>\r\n<script>\r\n  export default { \r\n    props: {    \r\n      record: {//组件数据\r\n        type: Object,\r\n        required: true\r\n      }, \r\n      models: {// 表单数组 \r\n        type: Object,\r\n        required: true\r\n      }, \r\n      disabled: { // 是否禁用\r\n        type: Boolean,\r\n        default: false\r\n      } , \r\n      preview: {// 是否当前是预览\r\n        type: Boolean ,\r\n        default: false\r\n      } \r\n    },\r\n    methods: { \r\n    }\r\n  }\r\n</script>\r\n```\r\n\r\n3.2 定义一个自定义组件的属性配置组件（后面通过插槽挂到表单绘制面板的属性面板中）\r\n\r\n```\r\n<template>\r\n  <!-- 自定义组件的属性配置 -->  \r\n  <el-form v-show=\"selectItem.key\" size=\"mini\" :disabled=\"disabled\">\r\n    <!-- TCustom   start-->\r\n      <template v-if=\"selectItem.type == 'customT'\"> \r\n            <!-- 开关的label -->\r\n          <el-form-item   label=\"图片样式\">\r\n              <el-input type=\"textarea\" placeholder=\"请输入\" v-model=\"selectItem.options.style\" /> \r\n          </el-form-item>\r\n      </template> \r\n      <!-- TCustom  end -->\r\n  </el-form> \r\n</template>\r\n<script>\r\nexport default {\r\n  props: {\r\n      selectItem: { // 当前选择的组件\r\n        type: Object,\r\n        required: true\r\n      },\r\n      disabled: { // 是否禁用\r\n        type: Boolean,\r\n        default: false\r\n      }\r\n  } \r\n}\r\n</script>\r\n```\r\n\r\n3.3 全局挂载动态表单自定义组件\r\n\r\nmain.js\r\n\r\n```\r\nimport CustomIndex from './custom.vue'\r\nimport CustomProperties from './properties.vue'\r\nimport icon from './icon.js' \r\n\r\nconst customComponents = [\r\n  {\r\n    type: 'custom',\r\n    label: '自定义组件1',\r\n    component: CustomIndex ,\r\n    properties: CustomProperties,\r\n    icon: icon\r\n  }\r\n]\r\n \r\n// 挂载动态表单组件\r\nimport FormDesign from 'ng-form-element' \r\nVue.use(FormDesign , {components: customComponents})\r\n \r\n \r\n```\r\n","readmeFilename":"README.md"}