UNPKG

@cataract6545/tmui

Version:

tm-vuetify是一个新势力由主题驱动的UI组件库,相比其它优势大,组件全,设计趋势紧跟未来。具有主题生成,主题实时切换,暗黑实时切换,lottie动画,图表等新颖功能,tmui TMUI

76 lines (71 loc) 1.94 kB
import type { rulesItem } from "./interface" import type { formItem } from "./../tm-form/interface"; export function validateFunCall(rules: Array<rulesItem>, value: any) { rules = rules.map((el) => { if (typeof el.validator === "function" && el.required === true) { return el; } else if (typeof el.validator === "boolean" && el.required === true) { return { ...el, validator: (val: any) => { if (val === null || val === "" || typeof val == "undefined") return false; if (typeof val === "object") { if (Array.isArray(val)) { if (val.length == 0) return false; } else if (Object.keys(val).length === 0 && val.constructor === Object) { return false; } } if (typeof val === "boolean") { return val; } if (typeof val === "number") { if (isNaN(val)) return false; if (Number(val) < 0) return false; } if (typeof val === "string") { if (val.trim().length == 0) return false; } return true; }, }; } else { return { ...el, validator: (val: string | number) => { return true; }, }; } }); let rules_filter: Array<rulesItem> = rules.filter((el) => { return typeof el.validator === "function" && el.required === true; }); let rules_fun: Array<rulesItem> = rules_filter.map((el) => { let validator = true; if (typeof el.validator === "function") { let vr = el.validator(value); if (vr) { validator = true; } else { validator = false; } } else { validator = true; } return { message: String(el.message), validator: validator, } }); return rules_fun; }; export function getObjectVal(obj: any, field = "") { if (field == "") return obj; var arr = field.split("."); while (arr.length > 1) { let key = String(arr.shift()); obj = obj[key]; } return obj[arr[0]]; }