UNPKG

@form-create/arco-design

Version:

arco-design动态表单|form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions through JSON. Supports 5 UI frameworks, and supports the generation of any Vue components. Built-in 20 k

48 lines (43 loc) 1.24 kB
import is from '@form-create/utils/lib/type'; const required = { name: 'required', load(inject, rule, api) { const val = parseVal(inject.getValue()); if (val.required === false) { inject.clearProp(); } else { const validate = { required: true, validator(v, call) { is.empty(v) && call(validate.message); }, ...val, }; if (!validate.message) { let title = rule.title || ''; validate.message = ((typeof title === 'object' ? title.title : title) || '') + '不能为空'; } inject.getProp().validate = [validate]; } api.sync(rule); }, watch(...args) { required.load(...args); } } function parseVal(val) { if (is.Boolean(val)) { return {required: val} } else if (is.String(val)) { return {message: val}; } else if (is.Undef(val)) { return {required: false}; } else if (is.Function(val)) { return {validator: val}; } else if (!is.Object(val)) { return {}; } else { return val; } } export default required