changes of boursecu

This commit is contained in:
2026-06-29 11:20:02 +02:00
parent 809bd69068
commit 2583becda7
21 changed files with 748 additions and 261 deletions
@@ -1,6 +1,7 @@
import { computed, inject, onMounted, provide, ref, type ComponentPublicInstance, type InjectionKey } from 'vue'
import { useIntersectionObserver } from '@vueuse/core'
import { useDesktopBreakpoint } from '@/layouts/composables/useAppLayout'
import { getProductsCatalog, getProductsCatalogRef } from '@/composables/useProductsCatalog'
import { loading, loadingMore } from '@/utils'
import {
BOURSECU_TRANSACTION_TABS,
@@ -23,6 +24,7 @@ import {
transactionItems,
transactionPagination,
transactionStatusFilter,
transactionProductFilter,
transactionTableOutput,
transactionTradeSide,
transactionsBoursecuMode,
@@ -37,6 +39,9 @@ export interface TransactionsPageContext {
dateFromFilter: typeof transactionDateFromFilter
dateToFilter: typeof transactionDateToFilter
statusFilter: typeof transactionStatusFilter
productFilter: typeof transactionProductFilter
productOptions: ReturnType<typeof computed<{ value: number; label: string }[]>>
showProductFilter: ReturnType<typeof computed<boolean>>
mobileObserverEl: ReturnType<typeof ref<HTMLElement | null>>
desktopObserverEl: ReturnType<typeof ref<HTMLElement | null>>
activeTabId: typeof transactionActiveTabId
@@ -77,6 +82,19 @@ export function useTransactionsPageProvider(options?: { boursecu?: boolean }) {
const statusOptions = computed(() => getBoursecuStatusOptionsForTab(activeTab.value))
const productOptions = computed(() =>
getProductsCatalogRef().value
.filter((product) => product.active && product.show)
.map((product) => ({
value: product.id,
label: product.title,
})),
)
const showProductFilter = computed(
() => transactionsBoursecuMode.value && activeTab.value.id !== 'deposit',
)
const emptyText = computed(() => {
if (!transactionsBoursecuMode.value) {
return 'تراکنشی موجود نیست'
@@ -160,6 +178,9 @@ export function useTransactionsPageProvider(options?: { boursecu?: boolean }) {
)
onMounted(async () => {
if (isBoursecu) {
await getProductsCatalog()
}
await initTransactionsPageData(isBoursecu)
})
@@ -172,6 +193,9 @@ export function useTransactionsPageProvider(options?: { boursecu?: boolean }) {
dateFromFilter: transactionDateFromFilter,
dateToFilter: transactionDateToFilter,
statusFilter: transactionStatusFilter,
productFilter: transactionProductFilter,
productOptions,
showProductFilter,
mobileObserverEl,
desktopObserverEl,
activeTabId: transactionActiveTabId,