From 1584d7ae611694473fcf16f59e0ac4ea4fa3ba29 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Mon, 12 Jan 2026 10:13:33 +0000 Subject: [PATCH] feat(unified-mobile-material-design): Complete US-108 - TrialBalanceView Mobile Material Design Implemented by Ralph autonomous loop. Iteration: 12 Co-Authored-By: Claude --- scripts/ralph/prd.json | 4 +- scripts/ralph/progress.txt | 6 + .../reports/views/TrialBalanceView.vue | 387 +++++++++++++++--- 3 files changed, 347 insertions(+), 50 deletions(-) diff --git a/scripts/ralph/prd.json b/scripts/ralph/prd.json index 903f1e6..12de0f1 100644 --- a/scripts/ralph/prd.json +++ b/scripts/ralph/prd.json @@ -200,8 +200,8 @@ "Filtre existente mutate în BottomSheet pe mobil", "npm run build passes" ], - "passes": false, - "notes": "" + "passes": true, + "notes": "Completed in iteration 12" }, { "id": "US-109", diff --git a/scripts/ralph/progress.txt b/scripts/ralph/progress.txt index 4ac7af5..50308f9 100644 --- a/scripts/ralph/progress.txt +++ b/scripts/ralph/progress.txt @@ -72,3 +72,9 @@ Mon Jan 12 09:44:54 AM UTC 2026 [2026-01-12 10:07:40] Working on story: US-107 [2026-01-12 10:07:40] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_11_US-107.log) [2026-01-12 10:11:07] SUCCESS: Story US-107 passed! +[2026-01-12 10:11:08] Changes committed +[2026-01-12 10:11:08] Progress: 10/20 stories completed +[2026-01-12 10:11:10] === Iteration 12/100 === +[2026-01-12 10:11:10] Working on story: US-108 +[2026-01-12 10:11:10] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_12_US-108.log) +[2026-01-12 10:13:33] SUCCESS: Story US-108 passed! diff --git a/src/modules/reports/views/TrialBalanceView.vue b/src/modules/reports/views/TrialBalanceView.vue index a2303b7..4df28b1 100644 --- a/src/modules/reports/views/TrialBalanceView.vue +++ b/src/modules/reports/views/TrialBalanceView.vue @@ -1,8 +1,88 @@ - -
- -
-
- - -
+ +
+
Sold D: @@ -84,8 +125,8 @@
- - + +
+ + +
@@ -349,6 +396,12 @@ import { useTrialBalanceStore } from "@reports/stores/trialBalance"; import { useAccountingPeriodStore } from "@reports/stores/sharedStores"; import { exportToExcel, exportToPDF } from "@reports/utils/exportUtils"; +// US-108: Mobile Material Design components +import MobileTopBar from "@shared/components/mobile/MobileTopBar.vue"; +import MobileBottomNav from "@shared/components/mobile/MobileBottomNav.vue"; +import BottomSheet from "@shared/components/mobile/BottomSheet.vue"; +import Sidebar from "primevue/sidebar"; + const toast = useToast(); const companyStore = useCompanyStore(); const trialBalanceStore = useTrialBalanceStore(); @@ -360,8 +413,46 @@ const selectedCompanyId = ref(companyStore.selectedCompany?.id_firma || null); // Mobile state const isMobile = ref(window.innerWidth < 768); const showFilters = ref(false); +const mobileMenuVisible = ref(false); const actionsMenu = ref(null); +// US-108: Toggle mobile hamburger menu +const toggleMobileMenu = () => { + mobileMenuVisible.value = !mobileMenuVisible.value; +}; + +// US-108: Mobile TopBar actions (filter + export) +const mobileTopBarActions = computed(() => [ + { + icon: "pi pi-filter", + label: "Filtre", + tooltip: "Filtre", + active: hasActiveFilters.value + }, + { + icon: "pi pi-download", + label: "Export", + tooltip: "Export Excel" + } +]); + +// US-108: Handle top bar action clicks +const handleTopBarAction = (action) => { + if (action.icon === "pi pi-filter") { + showFilters.value = !showFilters.value; + } else if (action.icon === "pi pi-download") { + exportExcel(); + } +}; + +// US-108: Bottom nav items for MobileBottomNav component +const mobileBottomNavItems = computed(() => [ + { to: "/data-entry", icon: "pi pi-receipt", label: "Bonuri" }, + { to: "/reports/trial-balance", icon: "pi pi-calculator", label: "Balanță", active: true }, + { to: "/reports/dashboard", icon: "pi pi-chart-bar", label: "Rapoarte" }, + { to: "/data-entry/ocr-metrics", icon: "pi pi-cog", label: "Setări" } +]); + // Handle window resize const handleResize = () => { isMobile.value = window.innerWidth < 768; @@ -911,6 +1002,10 @@ watch(