75 lines
2.3 KiB
TypeScript
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
|
|
})
|