Use the Chabokan npm mirror and show admin min order in meters.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-09 18:19:52 +03:30
co-authored by Cursor
parent 2c688753d3
commit aa02802974
2 changed files with 9 additions and 5 deletions
+1
View File
@@ -3,6 +3,7 @@ FROM node:22-alpine AS build
WORKDIR /app WORKDIR /app
COPY package.json package-lock.json ./ COPY package.json package-lock.json ./
RUN npm config set registry https://mirror2.chabokan.net/npm/
RUN npm ci RUN npm ci
COPY . . COPY . .
+8 -5
View File
@@ -7,7 +7,7 @@ import { useCartStore } from '@/stores/cart'
import { useCatalogStore } from '@/stores/catalog' import { useCatalogStore } from '@/stores/catalog'
import type { CatalogProductCard } from '@/types/crm' import type { CatalogProductCard } from '@/types/crm'
import type { Product } from '@/types' import type { Product } from '@/types'
import { formatNumber } from '@/utils/format' import { formatMeterage, formatNumber } from '@/utils/format'
import IconChevronBack from '@/components/icons/IconChevronBack.vue' import IconChevronBack from '@/components/icons/IconChevronBack.vue'
import IconCart from '@/components/icons/IconCart.vue' import IconCart from '@/components/icons/IconCart.vue'
import IconCatalog from '@/components/icons/IconCatalog.vue' import IconCatalog from '@/components/icons/IconCatalog.vue'
@@ -35,10 +35,13 @@ const showAllSpecs = ref(false)
const rollMeters = computed(() => product.value?.rollMeters ?? 50) const rollMeters = computed(() => product.value?.rollMeters ?? 50)
const orderMeters = computed(() => rolls.value * rollMeters.value) const orderMeters = computed(() => rolls.value * rollMeters.value)
const minRolls = computed(() => { const minOrderMeters = computed(() => {
const min = product.value?.minMeterage ?? rollMeters.value const min = product.value?.minMeterage
return Math.max(1, Math.ceil(min / rollMeters.value)) return min && min > 0 ? min : rollMeters.value
}) })
const minRolls = computed(() =>
Math.max(1, Math.ceil(minOrderMeters.value / rollMeters.value)),
)
async function load() { async function load() {
if (!productId.value) { if (!productId.value) {
@@ -295,7 +298,7 @@ function shareProduct() {
<IconCart :size="18" color="#ffffff" /> <IconCart :size="18" color="#ffffff" />
{{ adding ? 'در حال افزودن...' : 'افزودن به سفارش' }} {{ adding ? 'در حال افزودن...' : 'افزودن به سفارش' }}
</button> </button>
<p class="min-note">حداقل سفارش: {{ formatNumber(minRolls) }} طاقه</p> <p class="min-note">حداقل سفارش: {{ formatMeterage(minOrderMeters) }}</p>
</div> </div>
</footer> </footer>
</div> </div>