@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
134 lines • 4.57 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import { Input } from '@tarojs/components';
import { Switch } from '../switch';
import { Radio } from '../radio';
import { RadioGroup } from '../radio-group';
import { Checkbox } from '../checkbox';
import { CheckboxGroup } from '../checkbox-group';
import { Slider } from '../slider';
import { Rate } from '../rate';
import { Stepper } from '../stepper';
import { jsx as _jsx } from "react/jsx-runtime";
export var formComponents = {};
var defaultCompItems = [{
type: 'input',
component: Input,
trigger: 'onInput',
valueFormat: function valueFormat(e) {
return e.detail.value;
},
transformProps: function transformProps(props, formItemProps) {
return _objectSpread({
type: 'text',
placeholder: "\u8BF7\u8F93\u5165".concat(formItemProps['label'])
}, props);
}
}, {
type: 'inputNumber',
component: Input,
trigger: 'onInput',
valueFormat: function valueFormat(e) {
return e.detail.value;
},
transformProps: function transformProps(props, formItemProps) {
return _objectSpread({
type: 'number',
placeholder: "\u8BF7\u8F93\u5165".concat(formItemProps['label'])
}, props);
}
}, {
type: 'inputPrice',
trigger: 'onInput',
valueFormat: function valueFormat(e) {
return e.detail.value;
},
component: Input,
transformProps: function transformProps(props, formItemProps) {
return _objectSpread({
type: 'number',
placeholder: "\u8BF7\u8F93\u5165".concat(formItemProps['label'])
}, props);
},
rules: [{
rule: function rule(val, call) {
var rtNumber = String(val).split('.')[1];
if (val < 0) {
return call('金额必须大于0');
} else if (rtNumber && rtNumber.length > 2) {
return call('小数点位数不能大于2位');
} else {
return call('');
}
}
}]
}, {
type: 'switch',
component: Switch,
valueKey: 'checked'
}, {
type: 'radio',
component: RadioGroup,
valueKey: 'value',
transformProps: function transformProps(props, formItemProps) {
var _formItemProps$option;
return _objectSpread({
children: (_formItemProps$option = formItemProps['options']) === null || _formItemProps$option === void 0 ? void 0 : _formItemProps$option.map(function (item, index) {
return /*#__PURE__*/_jsx(Radio, {
name: item.value,
children: item.name
}, "RadioGroup_".concat(formItemProps['key'], "_").concat(index));
})
}, props);
}
}, {
type: 'checkbox',
component: CheckboxGroup,
transformProps: function transformProps(props, formItemProps) {
return _objectSpread({
direction: 'horizontal',
shape: 'square',
children: formItemProps['options'].map(function (item, index) {
return (
/*#__PURE__*/
// @ts-ignore
_jsx(Checkbox, {
name: item.value,
children: item.name
}, "RadioGroup_".concat(formItemProps['key'], "_").concat(index))
);
})
}, props);
}
}, {
type: 'slider',
component: Slider,
transformProps: function transformProps(props) {
return _objectSpread({
style: {
width: '200px',
marginTop: '10px'
}
}, props);
}
}, {
type: 'rate',
component: Rate
}, {
type: 'stepper',
component: Stepper
}];
defaultCompItems.forEach(function (item) {
resiterComponent(item);
});
export function resiterComponent(params) {
var type = params.type;
if (formComponents[type]) {
console.warn("FormRender: Overwrite existing component ".concat(type));
}
formComponents[type] = params;
}
export function showComponents() {
return formComponents;
}