Files
Business-credit-asistant/resources/js/Validation/useFormValidation.js
2026-06-29 13:00:18 +06:00

78 lines
2.6 KiB
JavaScript
Vendored

import { reactive } from "@vue/reactivity";
import useValidators from './validators'
const errors = reactive({});
const errorMessage = reactive({});
export default function useFormValidation() {
const { isEmpty, minLength, isEmail, isNum,isInt,maxLength } = useValidators();
const validateNameField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue, 4)
}
const validateEmailField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : isEmail(fieldName, fieldValue)
}
const validatePhoneField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : isNum(fieldName, fieldValue)
}
const validatePasswordField = (fieldName, fieldValue) => {
errors[fieldName] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue, 8)
}
const validate = (rules,messages,fieldName, fieldValue) => {
let container = {}
container["required"] = isEmpty(fieldName,fieldValue)
container["email"] = !fieldValue ? isEmpty(fieldName, fieldValue) : isEmail(fieldName, fieldValue)
container["password"] = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue,6)
container["integer"] = !fieldValue ? isEmpty(fieldName, fieldValue) : isInt(fieldName, fieldValue)
for (let i in rules){
errors[fieldName] = "";
let value = rules[i];
if(container[value]){
errors[fieldName] = container[value];
break;
}else {
let splited = value.split(':')
if (splited.length == 2) {
container[value] = dyanamicValidation(splited, fieldValue, fieldName)
if(container[value]){
errors[fieldName] = container[value];
break;
}
}
}
}
}
const dyanamicValidation = (splited,fieldValue,fieldName) => {
let result = "";
switch (splited[0]){
case "min":
result = !fieldValue ? isEmpty(fieldName, fieldValue) : minLength(fieldName, fieldValue,splited[1])
break;
case "max":
result = !fieldValue ? isEmpty(fieldName, fieldValue) : maxLength(fieldName, fieldValue,splited[1])
break;
default:
break
}
return result;
}
return { errors,validate}
}