Files
boursecu_admin/src/utils/inputRules.ts
T
2026-06-22 21:09:26 +03:30

75 lines
2.3 KiB
TypeScript

export function inputRules(title?: string) {
if (title) {
return [{ required: true, message: `پر کردن ${title} الزامی است` }]
} else {
return [{ required: true, message: `پر کردن مورد بالا الزامی است` }]
}
}
/** فیلد قیمت/عدد — خالی رد می‌شود، صفر مجاز است */
export function requiredPriceRules(title?: string) {
const label = title || 'مورد بالا'
return [
{
validator(_rule: unknown, value: unknown) {
if (value === undefined || value === null || String(value).trim() === '') {
return Promise.reject(`پر کردن ${label} الزامی است`)
}
const num = Number(String(value).replaceAll(',', ''))
if (!Number.isFinite(num)) {
return Promise.reject('لطفاً عدد معتبر وارد کنید')
}
return Promise.resolve()
},
trigger: ['change', 'blur'],
},
]
}
export function inputRulesNumber(title?: string) {
if (title) {
return [
{ required: true, message: `پر کردن ${title} الزامی است` },
{
required: true,
type: 'regexp',
pattern: /\d+/g,
message: 'لطفا اطلاعات را به صورت عدد و نقطه وارد کنید'
}
]
} else {
return [
{ required: true, message: `پر کردن مورد بالا الزامی است` },
{
required: true,
type: 'regexp',
pattern: /\d+/g,
message: 'لطفا اطلاعات را به صورت عدد و نقطه وارد کنید'
}
]
}
}
export function inputLenRules(len: number, title?: string) {
if (title) {
return [
{ required: true, message: `پر کردن ${title} الزامی است` },
{ len: len, message: `تعداد کاراکتر باید ${len} عدد باشد` }
]
} else {
return [
{ required: true, message: 'پر کردن مورد بالا الزامی است' },
{ len: len, message: `تعداد کاراکتر باید ${len} عدد باشد` }
]
}
}
export const valueValidation = computed(() => {
const temp = inputRules()
temp.push({ pattern: /^[A-Za-z]*$/, message: 'فقط حروف انگلیسی مجاز است' })
return temp
})