diff --git a/src/utils/inputRules.ts b/src/utils/inputRules.ts index 3ae00a3..3ba610e 100644 --- a/src/utils/inputRules.ts +++ b/src/utils/inputRules.ts @@ -28,20 +28,20 @@ export function inputLenRules(len: number, title?: string) { return temp })*/ -import {computed, ref} from 'vue' -import type {Rule} from 'ant-design-vue/es/form' -import {useWalletStore} from "@/store/walletStore"; +import { computed, ref } from 'vue' +import type { Rule } from 'ant-design-vue/es/form' +import { useWalletStore } from '@/store/walletStore' export const mobileValidation = (title?: string) => { - return {len: 11, message: `شماره همراه باید 11 رقم باشد`} + return { len: 11, message: `شماره همراه باید 11 رقم باشد` } } export const required = (title?: string) => { - if (title) { - return {required: true, message: `پر کردن ${title} الزامی است`} - } else { - return {required: true, message: `پر کردن مورد بالا الزامی است`} - } + if (title) { + return { required: true, message: `پر کردن ${title} الزامی است` } + } else { + return { required: true, message: `پر کردن مورد بالا الزامی است` } + } } // function checkCodeMeli(code) // { @@ -59,187 +59,187 @@ export const required = (title?: string) => { // // } export const cardNumberValidation = (title?: string) => { - return { len: 16, message: `شماره کارت باید 16 رقم باشد` } + return { len: 16, message: `شماره کارت باید 16 رقم باشد` } } const isValidNationalCode = (code) => { - if (code.length !== 10 || /(\d)(\1){9}/.test(code)) return false + if (code.length !== 10 || /(\d)(\1){9}/.test(code)) return false - let sum = 0, - chars = code.split(''), - lastDigit, - remainder + let sum = 0, + chars = code.split(''), + lastDigit, + remainder - for (let i = 0; i < 9; i++) sum += +chars[i] * (10 - i) + for (let i = 0; i < 9; i++) sum += +chars[i] * (10 - i) - remainder = sum % 11 - lastDigit = remainder < 2 ? remainder : 11 - remainder + remainder = sum % 11 + lastDigit = remainder < 2 ? remainder : 11 - remainder - return +chars[9] === lastDigit + return +chars[9] === lastDigit } export const requireNationalCode = (code?: string) => { - return {required: true, validator: validateNCode, trigger: 'change'} + return { required: true, validator: validateNCode, trigger: 'change' } } async function validateNCode(rule: Rule, value: any) { - if (!value) { - return Promise.reject('وارد کردن کد ملی الزامیست') - } - if (isValidNationalCode(value)) return Promise.resolve() - else return Promise.reject('کد ملی وارد شده نامعتبر است') + if (!value) { + return Promise.reject('وارد کردن کد ملی الزامیست') + } + if (isValidNationalCode(value)) return Promise.resolve() + else return Promise.reject('کد ملی وارد شده نامعتبر است') } 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} عدد باشد`} - ] - } + if (title) { + return [ + { required: true, message: `پر کردن ${title} الزامی است` }, + { len: len, message: `تعداد کاراکتر باید ${len} عدد باشد` } + ] + } else { + return [ + { required: true, message: 'پر کردن مورد بالا الزامی است' }, + { len: len, message: `تعداد کاراکتر باید ${len} عدد باشد` } + ] + } } export const persianValidation = computed(() => { - return { - pattern: /^[A-Za-z]*$/, - message: 'فقط حروف انگلیسی مجاز است' - } + return { + pattern: /^[A-Za-z]*$/, + message: 'فقط حروف انگلیسی مجاز است' + } }) export const isValidPersian = () => { - return { - pattern: /^[\u0600-\u06FF\s]+$/, - message: 'فقط حروف فارسی مجاز است' - } -}; + return { + pattern: /^[\u0600-\u06FF\s]+$/, + message: 'فقط حروف فارسی مجاز است' + } +} export const lengthValidation = (len: number) => { - return {len: len, message: `تعداد کاراکتر باید ${len} عدد باشد`} + return { len: len, message: `تعداد کاراکتر باید ${len} عدد باشد` } } export const justNumber = () => { - return { - required: true, - type: 'regexp', - pattern: /\d+/g, - message: 'لطفا اطلاعات را به صورت عدد و نقطه وارد کنید' - } + return { + required: true, + type: 'regexp', + pattern: /\d+/g, + message: 'لطفا اطلاعات را به صورت عدد و نقطه وارد کنید' + } } const walletCash = useWalletStore() let priceP = 0 let methodP = 'cash' -let amountP =0 -let isBuyP=true -let NumP=0 +let amountP = 0 +let isBuyP = true +let NumP = 0 const checkNumber = async (_rule: Rule, value: number) => { - if (!value) { - return Promise.reject('تعداد محصول را مشخص کنید'); + if (!value) { + return Promise.reject('تعداد محصول را مشخص کنید') + } + if (value % 1 !== 0) { + return Promise.reject('استفاده از اعداد اعشاری مجاز نمی باشد') + } + if (isBuyP) { + if (!walletCash?.walletInfo?.cash && methodP == 'cash') { + return Promise.reject('موجودی کیف پول ناکافی است') } - if (value % 1 !== 0) { - return Promise.reject('استفاده از اعداد اعشاری مجاز نمی باشد') - } -if (isBuyP){ - if (!walletCash?.walletInfo?.cash && methodP == 'cash'){ - return Promise.reject('موجودی کیف پول ناکافی است') - } - if (!walletCash?.walletInfo?.gold && methodP == 'gold'){ - return Promise.reject('موجودی کیف طلا ناکافی است') + if (!walletCash?.walletInfo?.gold && methodP == 'gold') { + return Promise.reject('موجودی کیف طلا ناکافی است') } if (priceP * value > walletCash?.walletInfo?.cash && methodP == 'cash') - return Promise.reject('موجودی کیف پول ناکافی است') + return Promise.reject('موجودی کیف پول ناکافی است') if (amountP * value > walletCash?.walletInfo?.gold && methodP == 'gold') - return Promise.reject('موجودی کیف طلا ناکافی است') + return Promise.reject('موجودی کیف طلا ناکافی است') else - return Promise.resolve(); -}else { + return Promise.resolve() + } else { if (value > NumP) - return Promise.reject('موجودی محصول ناکافی است') + return Promise.reject('موجودی محصول ناکافی است') else - return Promise.resolve(); -} + return Promise.resolve() + } } -export const justNumber2 = (price: number, method?: string , amount?:number ,isBuy?:boolean) => { - priceP = price - methodP = method - amountP=amount - isBuyP=isBuy - return { - required: true, - validator: checkNumber, - trigger: 'change' - } +export const justNumber2 = (price: number, method?: string, amount?: number, isBuy?: boolean) => { + priceP = price + methodP = method + amountP = amount + isBuyP = isBuy + return { + required: true, + validator: checkNumber, + trigger: 'change' + } } -export const justNumber3 = (price: number, Num?:number ,isBuy?:boolean) => { - priceP = price - NumP=Num - isBuyP=isBuy - return { - required: true, - validator: checkNumber, - trigger: 'change' - } +export const justNumber3 = (price: number, Num?: number, isBuy?: boolean) => { + priceP = price + NumP = Num + isBuyP = isBuy + return { + required: true, + validator: checkNumber, + trigger: 'change' + } } export const ruleNumber = () => { - console.log('445455') - return { - required: true, - message: 'لطفا نحوه خرید', - trigger: 'change' - } + console.log('445455') + return { + required: true, + message: 'لطفا نحوه خرید', + trigger: 'change' + } } export const guideTypePassword = ref<{}>({ - text: '', - color: '' + text: '', + color: '' }) export const passwordRules = () => { - return [ - { - validator: (rule: Rule, value: any) => { - if (value.length < 6) { - return Promise.reject('رمز عبور حداقل 6 رقم') - } - const lengthCriteria = value.length >= 8 - const letterCriteria = /[A-Za-z]/.test(value) - const numberCriteria = /\d/.test(value) - const specialCharacterCriteria = /[@$!%*#?&]/.test(value) - const criteriaMet = [ - lengthCriteria, - letterCriteria, - numberCriteria, - specialCharacterCriteria - ].filter(Boolean).length - if (criteriaMet === 4) { - guideTypePassword.value = { - text: 'سطح : قوی', - color: 'text-green' - } - return Promise.resolve(); - } else if (criteriaMet === 3) { - guideTypePassword.value = { - text: 'سطح : متوسط', - color: 'midLevel' - } - return Promise.resolve(); - } else { - guideTypePassword.value = { - text: 'سطح : ضعیف', - color: 'week' - } - return Promise.resolve(); - } - } + return [ + { + validator: (rule: Rule, value: any) => { + if (value.length < 6) { + return Promise.reject('رمز عبور حداقل 6 رقم') } - ] + const lengthCriteria = value.length >= 8 + const letterCriteria = /[A-Za-z]/.test(value) + const numberCriteria = /\d/.test(value) + const specialCharacterCriteria = /[@$!%*#?&]/.test(value) + const criteriaMet = [ + lengthCriteria, + letterCriteria, + numberCriteria, + specialCharacterCriteria + ].filter(Boolean).length + if (criteriaMet === 4) { + guideTypePassword.value = { + text: 'سطح : قوی', + color: 'text-green' + } + return Promise.resolve() + } else if (criteriaMet === 3) { + guideTypePassword.value = { + text: 'سطح : متوسط', + color: 'midLevel' + } + return Promise.resolve() + } else { + guideTypePassword.value = { + text: 'سطح : ضعیف', + color: 'week' + } + return Promise.resolve() + } + } + } + ] } diff --git a/src/views/base/physicalReceive/components/ReceiveDealProduct.vue b/src/views/base/physicalReceive/components/ReceiveDealProduct.vue index 4f2206c..ef822b7 100644 --- a/src/views/base/physicalReceive/components/ReceiveDealProduct.vue +++ b/src/views/base/physicalReceive/components/ReceiveDealProduct.vue @@ -70,6 +70,7 @@ place-holder="تعداد" size="large" type="number" inputmode="number" @onchange="calculateCash" /> + ({ goldCash: undefined, goldValue: undefined, percentWallet: undefined, - method: 'cash', + method: 'gold', goldVazn:undefined }) const allowedAsciiCodeFloat = [46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57] @@ -660,7 +661,7 @@ async function ok() { goldValue: undefined, goldCash: undefined, percentWallet: undefined, - method: 'cash' + method: 'gold' } // refreshTable() await fundStore.getMyFund() @@ -674,6 +675,9 @@ async function ok() { } } +watch(form.value.goldValue, () => { + console.log('form.goldValue & ', startValue.value); +});