diff --git a/.cursor/skills/abshode-domain-lookup/learned-notes.md b/.cursor/skills/abshode-domain-lookup/learned-notes.md index f7306ab..38e05eb 100644 --- a/.cursor/skills/abshode-domain-lookup/learned-notes.md +++ b/.cursor/skills/abshode-domain-lookup/learned-notes.md @@ -24,4 +24,5 @@ - 2026-09-09 | زیرصفحات قلک دسکتاپ | `piggy/new` + `piggy/info` + create/info composable | ساخت/ویرایش و جزئیات با DesktopPageTopbar و گرید دوستونه - 2026-09-09 | عرض قلک دسکتاپ | `desktop-piggy-create.less` | کانتینر ساخت هم max-width ۱۱۸۰ مثل لیست/جزئیات/کیف‌پول - 2026-09-09 | نام منوی کاربر | `navigation.ts` + `MobileBottomNav.vue` | «تنظیمات» → «امکانات بیشتر» (دسکتاپ+موبایل) +- 2026-09-12 | دکمه دارایی‌ها خانه | `boursecuQuickActions` + `useHomePage.openAssetsSheet` | قبلاً `fund` می‌رفت و با خاموش بودن قلک گارد بی‌صدا برمی‌گرداند؛ حالا شیت BalanceSheet - 2026-09-09 | ماشین حساب | `useUserPage.ts` + `GoldDayCalculatorModal.vue` | «قیمت روز طلا» → «ماشین حساب»؛ برچسب فلز/واحد از settingsStore (metalTypeLabel + tradeWeightUnit) نه هاردکد طلا/گرم diff --git a/src/views/base/home/composables/useHomePage.ts b/src/views/base/home/composables/useHomePage.ts index f7885f5..4cb168d 100644 --- a/src/views/base/home/composables/useHomePage.ts +++ b/src/views/base/home/composables/useHomePage.ts @@ -44,6 +44,7 @@ export interface HomePageContext { modalContent?: string ) => void openRialModal: () => void + openAssetsSheet: () => void } export const HOME_PAGE_CONTEXT_KEY: InjectionKey = Symbol('homePageContext') @@ -107,7 +108,9 @@ export function useHomePage() { name: 'assets', icon: 'vuesax-linear:cup', label: 'دارایی ها', - handler: () => router.push({ name: 'fund' }), + handler: () => { + wholeBalanceVisible.value = true + }, }, ] @@ -187,6 +190,10 @@ export function useHomePage() { }) } + function openAssetsSheet() { + wholeBalanceVisible.value = true + } + function handleBannerClick(banner: { typeClick?: string; modalText?: string; link?: string }) { const handlers: Record void> = { share: () => { @@ -226,6 +233,7 @@ export function useHomePage() { handleBannerClick, openGoldModal, openRialModal, + openAssetsSheet, } provide(HOME_PAGE_CONTEXT_KEY, context) diff --git a/src/views/base/home/desktop/components/DesktopQuickActionsGrid.vue b/src/views/base/home/desktop/components/DesktopQuickActionsGrid.vue index 78127f2..ad84d55 100644 --- a/src/views/base/home/desktop/components/DesktopQuickActionsGrid.vue +++ b/src/views/base/home/desktop/components/DesktopQuickActionsGrid.vue @@ -5,6 +5,7 @@ import HomeQuickActionBox from '../../components/HomeQuickActionBox.vue' import DesktopHomeCard from './DesktopHomeCard.vue' import { boursecuQuickActions } from '../../layouts/configs/boursecuQuickActions' import type { HomeQuickActionItem } from '../../layouts/types' +import { useHomePageContext } from '../../composables/useHomePage' const props = withDefaults( defineProps<{ @@ -15,6 +16,7 @@ const props = withDefaults( }, ) +const { openAssetsSheet } = useHomePageContext() const resolvedActions = computed(() => props.actions ?? [...boursecuQuickActions]) function handleClick(action: HomeQuickActionItem) { @@ -22,6 +24,10 @@ function handleClick(action: HomeQuickActionItem) { action.handler() return } + if (action.id === 'assets') { + openAssetsSheet() + return + } if (action.route) { router.push(action.route) } diff --git a/src/views/base/home/desktop/components/DesktopQuickActionsPanel.vue b/src/views/base/home/desktop/components/DesktopQuickActionsPanel.vue index d323168..9e97e79 100644 --- a/src/views/base/home/desktop/components/DesktopQuickActionsPanel.vue +++ b/src/views/base/home/desktop/components/DesktopQuickActionsPanel.vue @@ -5,6 +5,7 @@ import BasicIcon from '@/components/BasicPacks/BasicIcon.vue' import DesktopHomeSection from './DesktopHomeSection.vue' import { boursecuQuickActions } from '../../layouts/configs/boursecuQuickActions' import type { HomeQuickActionItem } from '../../layouts/types' +import { useHomePageContext } from '../../composables/useHomePage' const props = withDefaults( defineProps<{ @@ -17,6 +18,7 @@ const props = withDefaults( }, ) +const { openAssetsSheet } = useHomePageContext() const resolvedActions = computed(() => props.actions ?? [...boursecuQuickActions]) function navigate(action: HomeQuickActionItem) { @@ -24,6 +26,10 @@ function navigate(action: HomeQuickActionItem) { action.handler() return } + if (action.id === 'assets') { + openAssetsSheet() + return + } if (action.route) { router.push(action.route) } diff --git a/src/views/base/home/layouts/configs/boursecuQuickActions.ts b/src/views/base/home/layouts/configs/boursecuQuickActions.ts index ba28fdd..e6e1ab0 100644 --- a/src/views/base/home/layouts/configs/boursecuQuickActions.ts +++ b/src/views/base/home/layouts/configs/boursecuQuickActions.ts @@ -21,7 +21,7 @@ export const boursecuQuickActions: HomeQuickActionItem[] = [ label: 'دارایی ها', icon: 'vuesax-linear:cup', iconSrc: getBoursecuActionIconSrc('assets'), - route: { name: 'fund' }, + // شیت موجودی‌ها — نه مسیر fund (با enable_product_funds=false گارد بی‌صدا برمی‌گرداند) }, { id: 'transactions', diff --git a/src/views/base/home/layouts/sections/BoursecuQuickActionsSection.vue b/src/views/base/home/layouts/sections/BoursecuQuickActionsSection.vue index ad19942..3ca934b 100644 --- a/src/views/base/home/layouts/sections/BoursecuQuickActionsSection.vue +++ b/src/views/base/home/layouts/sections/BoursecuQuickActionsSection.vue @@ -4,6 +4,7 @@ import router from '@/router' import HomeQuickActionBox from '../../components/HomeQuickActionBox.vue' import { boursecuQuickActions } from '../configs/boursecuQuickActions' import type { HomeQuickActionItem } from '../types' +import { useHomePageContext } from '../../composables/useHomePage' const props = withDefaults( defineProps<{ @@ -14,6 +15,7 @@ const props = withDefaults( } ) +const { openAssetsSheet } = useHomePageContext() const resolvedActions = computed(() => props.actions ?? [...boursecuQuickActions]) function handleClick(action: HomeQuickActionItem) { @@ -21,6 +23,10 @@ function handleClick(action: HomeQuickActionItem) { action.handler() return } + if (action.id === 'assets') { + openAssetsSheet() + return + } if (action.route) { router.push(action.route) }