Improve boursecu UX: banners, support FAB, wallet deposit guide, fund/physical layouts, nav, and sidebar credit.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,6 +17,14 @@
|
||||
<span>مقدار موجودی</span>
|
||||
<span class="font-bold">{{ displayGold }}</span>
|
||||
<span>{{ quantityUnit }}</span>
|
||||
<div
|
||||
v-if="minDeliveryQuantity > 0"
|
||||
class="mt-0.5 w-full text-xs text-gray-500"
|
||||
>
|
||||
حداقل مقدار تحویل:
|
||||
<span class="font-bold text-gray-700">{{ displayMinDelivery }}</span>
|
||||
{{ quantityUnit }}
|
||||
</div>
|
||||
<div
|
||||
v-if="getProductUnitWeightLabel(item.product)"
|
||||
class="mt-0.5 text-xs text-gray-500"
|
||||
@@ -90,6 +98,18 @@ const displayGold = computed(() => {
|
||||
return isCountBased.value ? usePriceWithoutType(gold, false) : formatGoldAmount(gold)
|
||||
})
|
||||
|
||||
const minDeliveryQuantity = computed(() => {
|
||||
const min = Number(props.item.product.min_physical_delivery_quantity ?? 0)
|
||||
return Number.isFinite(min) && min > 0 ? min : 0
|
||||
})
|
||||
|
||||
const displayMinDelivery = computed(() => {
|
||||
if (minDeliveryQuantity.value <= 0) return ''
|
||||
return isCountBased.value
|
||||
? usePriceWithoutType(minDeliveryQuantity.value, false)
|
||||
: formatGoldAmount(minDeliveryQuantity.value)
|
||||
})
|
||||
|
||||
const config = useConfigStore()
|
||||
|
||||
function selectCountInput(e: FocusEvent) {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<div class="physical-receive-list-root">
|
||||
<div
|
||||
class="physical-receive-list-root"
|
||||
:class="{ 'physical-receive-list-root--desktop': isDesktop }"
|
||||
>
|
||||
<MobileRequestListView v-show="!isDesktop" />
|
||||
<DesktopRequestListView v-show="isDesktop" />
|
||||
</div>
|
||||
@@ -30,4 +33,20 @@ usePhysicalReceiveList()
|
||||
min-height: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* Desktop: let list grow with content; page scroll handles overflow */
|
||||
.physical-receive-list-root--desktop {
|
||||
flex: none;
|
||||
display: block;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.physical-receive-list-root--desktop > * {
|
||||
flex: none;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -2,14 +2,17 @@
|
||||
|
||||
.dpr {
|
||||
min-height: 100%;
|
||||
height: auto;
|
||||
background: #f6f7f9;
|
||||
color: #111827;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.dpr__container {
|
||||
max-width: 1180px;
|
||||
margin: 0 auto;
|
||||
padding: 28px 36px 40px;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.dpr-topbar {
|
||||
@@ -81,6 +84,8 @@
|
||||
border: 1px solid rgba(15, 23, 42, 0.06);
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
|
||||
height: auto;
|
||||
overflow: visible;
|
||||
|
||||
&__toolbar {
|
||||
display: flex;
|
||||
@@ -88,6 +93,7 @@
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
margin-bottom: 20px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__count {
|
||||
|
||||
@@ -51,6 +51,14 @@ const { isDesktop } = usePhysicalReceiveShell()
|
||||
}
|
||||
|
||||
.physical-receive-page-root--desktop {
|
||||
display: block;
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.physical-receive-page-root--desktop :deep(.physical-receive-list-root),
|
||||
.physical-receive-page-root--desktop :deep(.dpr-list) {
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
overflow: visible;
|
||||
|
||||
Reference in New Issue
Block a user