UNPKG

lcdp-lib-form-renderer

Version:

LCDP LIBRARY: FORM RENDERER BASE ON VUE.JS, MAKE FORM DEVELOPMENT SIMPLE AND EFFICIENT.

88 lines (76 loc) 3.57 kB
# lcdp-lib-form-renderer 可视化表单设计器-渲染引擎 ## 介绍 本项目使用 `vue-cli 4` 搭建,基于 `vue` 和 `element-ui` 实现。 ### 可选参数 | 参数名 | 参数类型 | 描述 | |----------------------|---------|--------------------------------------------------| | source | Object | 表单结构信息:JSON结构数据,存放表单及其组件的详细信息 | | value | Object | 表单录入值 | | edit | Boolean | 是否为编辑状态:true = 是;false(默认) = 否 | | printRead | Boolean | 是否为打印状态:true = 是;false(默认) = 否 | | preview | Boolean | 是否为预览状态:true = 是;false(默认) = 否 | | preferPlatform | String | 终端展示类型:’pc‘ = 电脑端(默认),’pad‘ = 平板电脑,’mobile‘ = 手机 | | lockPlatform | Boolean | 是否锁定终端类型:true = 是(默认);false = 否 | | variables | Object | 引入变量:主要为当前登录用户信息 | | currentFormId | String | 表单ID | | formPublishVersionId | String | 表单发布ID | ### 使用示例: #### 1.安装: ``` // 安装最新版本 $ npm install -s lcdp-lib-form-renderer // 安装指定版本 $ npm install -s lcdp-lib-form-renderer@version ``` #### 2.引入: ``` import Vue from 'vue'; import App from './App.vue'; import ElementUI from 'element-ui'; import lcdpLibFormRenderner from 'lcdp-lib-form-renderer'; import './assets/styles/theme/element-variables.scss'; import 'remixicon/fonts/remixicon.css'; import Vant from 'vant'; import 'vant/lib/index.css'; Vue.use(Vant); Vue.use(ElementUI, {zIndex: 2000}); lcdpLibFormRenderner.install(Vue, {}, {}); Vue.config.productionTip = false; new Vue({ router, render: h => h(App) }).$mount('#app'); ``` #### 3.使用: ``` <template> <div> <lcdp-lib-form-renderer :source="schema" :value="editData" ref="formRenderer"> </lcdp-lib-form-renderer> <el-button type="primary" @click="handleSubmit">Submit</el-button> </div> </template> <script> export default { data () { return { schema: {"list":[],"config":{"labelWidth":100,"labelPosition":"right","size":"small","customClass":"","ui":"element","layout":"horizontal","labelCol":3,"width":"100%","hideLabel":false,"hideErrorMessage":false,"theme":"default","themeTitle":"","themeSubTitle":"","themeTitleAlign":"left","submitHiddenArea":false,"eventScript":[{"key":"mounted","name":"mounted","func":""},{"key":"beforeSubmit","name":"beforeSubmit","func":"// 在表单提交前调用,且返回值会影响提交结果\n// 返回值为true时会继续执行 \n// 返回值为false时会阻止提交 \n// 返回值为Error时会阻止提交 且会修改错误提示信息 return new Error('提示信息'); \nreturn true;"},{"key":"submitted","name":"submitted","func":""}]},"version":1}, editData: {} } }, methods: { handleSubmit () { this.$refs.formRenderer.getData().then(data => { // Data verification succeeded alert(JSON.stringify(data)) }).catch(e => { // Data verification failed }) } } } </script> ```