UNPKG

magiccube-vue3

Version:

vue3-js版组件库

26 lines (24 loc) 1.01 kB
/** * 遍历父级form-item组件 获取校验方法 * @param {Object} el 目标组件 * @param {Number} flag 如果是0则为当前组件本身, 大于0时为父级组件 * @returns {Object} 返回父级form-item组件的暴露出的校验方法和错误信息 以及当前组件在整个form中的key名字 */ function mapParentEl(el, flag = 0){ const VERIFY_ITEM = ['checkbox', 'input', 'select', 'radio', 'textarea', 'city', 'date', 'job'] const componentName = el?.type?.name || '' if(flag > 0 && componentName && VERIFY_ITEM.some(str => componentName.toLowerCase().indexOf(str) > -1)){ return {} } else if(componentName === 'McFormItem'){ return { fieldName: el?.props?.keyName || null, validator: el?.exposed?.valid || null, errorMessage: el?.provides?.errorMessageCollect || null } } else if(el?.parent){ return mapParentEl(el.parent, flag + 1) } else { return {} } } export default mapParentEl