diff --git a/src/utils/inputRules.ts b/src/utils/inputRules.ts index 90abd41..19e1bdd 100644 --- a/src/utils/inputRules.ts +++ b/src/utils/inputRules.ts @@ -169,6 +169,39 @@ const checkNumber = async (_rule: Rule, value: number) => { return Promise.resolve() } +} +const checkNumber2 = async (_rule: Rule, value: number) => { + + + if (!value) { + return Promise.reject('تعداد محصول را مشخص کنید') + } + if (value % 1 !== 0) { + return Promise.reject('استفاده از اعداد اعشاری مجاز نمی باشد') + } + if (isBuyP) { + // Skip wallet balance check if gateway is enabled + if (!gatewayP && isToken()) { + // if (!walletCash?.walletInfo?.cash && methodP == 'cash') { + // return Promise.reject('موجودی کیف پول ناکافی است') + // } + // if (!walletCash?.walletInfo?.gold && methodP == 'gold') { + // return Promise.reject('موجودی کیف طلا ناکافی است') + // } + // if (priceP * value > walletCash?.walletInfo?.cash && methodP == 'cash') + // return Promise.reject('موجودی کیف پول ناکافی است') + // if (amountP * value > walletCash?.walletInfo?.gold && methodP == 'gold') + // return Promise.reject('موجودی کیف طلا ناکافی است') + } + return Promise.resolve() + } else { + if (value > NumP) + + return Promise.reject('موجودی محصول ناکافی است') + else + return Promise.resolve() + } + } export const justNumber2 = (price: number, method?: string, amount?: number, isBuy?: boolean, gateway?: boolean) => { priceP = price @@ -193,6 +226,17 @@ export const justNumber3 = (price: number, Num?: number, isBuy?: boolean) => { trigger: 'change' } +} +export const justNumber4 = (price: number, Num?: number, isBuy?: boolean) => { + priceP = price + NumP = Num + isBuyP = isBuy + return { + required: true, + validator: checkNumber2, + trigger: 'change' + } + } export const ruleNumber = () => { diff --git a/src/views/base/cart/index.vue b/src/views/base/cart/index.vue index 6d84edb..7d6042c 100644 --- a/src/views/base/cart/index.vue +++ b/src/views/base/cart/index.vue @@ -34,7 +34,7 @@ >
-
+
{ // Update item price and total price item.price = newPrice + (product.cash_fee_buy ?? 0) - item.totalPrice = item.price * item.quantity + item.totalPrice = parseInt(item.price * item.quantity) }) // Save updated prices to storage @@ -162,7 +162,7 @@ watch(lastPrice, () => { // Computed total price that updates with price changes const totalPrice = computed(() => { - return cartStore.cartItems.reduce((sum, item) => sum + item.totalPrice, 0) + return parseInt(cartStore.cartItems.reduce((sum, item) => sum + item.totalPrice, 0)) }) function getProductImage(product: any) { @@ -255,7 +255,7 @@ async function handleCheckout() { // Check wallet balance for cash method items (without gateway) const cashItemsTotal = cartStore.cartItems .filter(item => item.method === 'cash' && !item.gateway) - .reduce((sum, item) => sum + item.totalPrice, 0) + .reduce((sum, item) => parseInt(sum + item.totalPrice), 0) if (cashItemsTotal > 0) { // Ensure wallet info is loaded @@ -374,7 +374,7 @@ async function initPrice() { // Update item price and total price item.price = newPrice + (product.cash_fee_buy ?? 0) - item.totalPrice = item.price * item.quantity + item.totalPrice =parseInt(item.price * item.quantity) }) // Save updated prices to storage diff --git a/src/views/base/products/components/DealProduct.vue b/src/views/base/products/components/DealProduct.vue index 1779a8d..b57a7a9 100644 --- a/src/views/base/products/components/DealProduct.vue +++ b/src/views/base/products/components/DealProduct.vue @@ -60,7 +60,7 @@ + :rules="[justNumber4(props?.ProductItem?.price , form.method , props?.ProductItem?.amount, true, form.gateway)]"> { function calculateCash(val: number) { priceErrorVisible.value = false - // console.log(val) + console.log("val",val,props?.ProductItem) if (price.value) { - form.value.goldVazn = parseFloat((val * (( props?.ProductItem?.price) + (props?.ProductItem?.cash_fee_buy)))/lastPrice.value?.buy).toFixed(1) + form.value.goldVazn = parseFloat((val * props?.ProductItem?.amount).toFixed(3)) console.log(val,props?.ProductItem?.price,props?.ProductItem?.cash_fee_buy,lastPrice.value?.buy) if (isBuy.value) { if (val){ @@ -579,7 +579,7 @@ console.log(val,props?.ProductItem?.price,props?.ProductItem?.cash_fee_buy,lastP form.value.goldVazn = 0 } } - console.log(form.value.goldVazn) + console.log('goldVazn',form.value.goldVazn) } } diff --git a/src/views/base/products/product/[id].vue b/src/views/base/products/product/[id].vue index 14d2c66..7c5a375 100644 --- a/src/views/base/products/product/[id].vue +++ b/src/views/base/products/product/[id].vue @@ -6,7 +6,7 @@
-
+