@fx-form/vue2-core
vue2 版本核心,可以基于此适配不同的 vue2 ui库。
适配的核心就是对应类型为自己的组件库,且处理默认 props 与自己组件库 props 之间的转换
适配方案可参见 @lljj/vue-json-schema-form 、@lljj/vue2-form-iview3
兼容性
npm 包直接为 es6+ 源码,需要在构建 lib 时通过babe转义
如配置 rollup babel plugin:
babel({
exclude: /node_modules\/(?!(@lljj)\/).*/,
extensions: ['.js', '.vue'],
})
安装
## npm
npm install --save @fx-form/vue2-core
## yarn
yarn add @fx-form/vue2-core
使用方法
按如下格式,配置对应组件在当前组件库中的映射关系,可以直接配置全局组件名或者组件构造函数,默认组件 props 为elementUi格式,如果props格式不同需要中间组件来做转换;
import createVue2Core from '@fx-form/vue2-core';
const globalOptions = {
WIDGET_MAP: {
types: {
boolean: 'el-switch',
string: 'el-input',
number: 'el-input-number',
integer: 'el-input-number',
},
formats: {
color: 'el-color-picker',
time: TimePickerWidget,
date: DatePickerWidget,
'date-time': DateTimePickerWidget,
},
common: {
select: SelectWidget,
radioGroup: RadioWidget,
checkboxGroup: CheckboxesWidget,
},
widgetComponents: {
CheckboxesWidget,
RadioWidget,
SelectWidget,
TimePickerWidget,
DatePickerWidget,
DateTimePickerWidget
}
},
COMPONENT_MAP: {
form: 'el-form',
formItem: 'el-form-item',
button: 'el-button',
popover: 'el-popover'
},
HELPERS: {
isMiniDes(formProps) {
return formProps && ['left', 'right'].includes(formProps.labselPosition);
}
}
};
const mySchemaForm = createVue2Core(globalOptions);
适配一个新的ui框架只需要适配如上的组件即可
License
Apache-2.0