ADD: Warehouse inventory management dashboard

- Add WarehouseItemService.js — API client for all warehouse item endpoints (items CRUD, transactions, stock queries)
- Add WarehouseService.js — API client for warehouse location management
- Add ListWarehouseItems.vue — item catalogue table with inline create/edit dialog and bilingual unit picker
- Add WarehouseItemStockView.vue — per-item stock dashboard showing total + per-warehouse breakdown, IN/OUT transaction dialog with reason presets, inline transaction history with delete
- Add ListWarehouseItemTransactions.vue — full transaction history with filter panel (item, warehouse, type, date range)
- Add ListWarehouses.vue — warehouse location management with create/edit dialogs
- Update AppMenu.vue — add 'مدیریت انبار' menu group with 3 items
- Update router/index.js — register 4 new warehouse management routes
This commit is contained in:
2026-08-11 20:09:31 +03:30
parent 7421896805
commit 703df418ce
8 changed files with 2033 additions and 8 deletions
+45 -3
View File
@@ -38,20 +38,41 @@ const router = createRouter({
name: 'dashboard',
component: () => import('@/views/Dashboard.vue')
},
{
path: '/property/create-property',
name: 'create-property',
component: () => import('@/views/pages/Property/CreateProperty.vue')
},
{
path: '/property/edit-property/:propertyId',
name: 'edit-property',
component: () => import('@/views/pages/Property/CreateProperty.vue')
},
{
path: '/property/list-properties',
name: 'list-properties',
component: () => import('@/views/pages/Property/CreateProperty.vue')
},
// Aliases for backward compatibility
{
path: '/belonging/create-belonging',
name: 'create-belonging',
component: () => import('@/views/pages/Belonging/CreateBelonging.vue')
component: () => import('@/views/pages/Property/CreateProperty.vue')
},
{
path: '/belonging/edit-belonging/:belongingId',
name: 'edit-belonging',
component: () => import('@/views/pages/Belonging/CreateBelonging.vue')
component: () => import('@/views/pages/Property/CreateProperty.vue')
},
{
path: '/belonging/list-belongings',
name: 'list-belongings',
component: () => import('@/views/pages/Belonging/ListBelongings.vue')
component: () => import('@/views/pages/Property/ListProperties.vue')
},
{
path: '/property/list-properties',
name: 'list-properties-main',
component: () => import('@/views/pages/Property/ListProperties.vue')
},
{
path: '/categories/list-categories',
@@ -68,6 +89,27 @@ const router = createRouter({
name: 'list-transactions',
component: () => import('@/views/pages/Transaction/ListTransactions.vue')
},
// ─── Warehouse Items ──────────────────────────────────────────
{
path: '/warehouse-items/list',
name: 'list-warehouse-items',
component: () => import('@/views/pages/WarehouseItems/ListWarehouseItems.vue')
},
{
path: '/warehouse-items/stock/:itemId',
name: 'warehouse-item-stock',
component: () => import('@/views/pages/WarehouseItems/WarehouseItemStockView.vue')
},
{
path: '/warehouse-items/transactions',
name: 'warehouse-item-transactions',
component: () => import('@/views/pages/WarehouseItems/ListWarehouseItemTransactions.vue')
},
{
path: '/warehouse-items/warehouses',
name: 'list-warehouses',
component: () => import('@/views/pages/WarehouseItems/ListWarehouses.vue')
},
{
path: '/uikit/formlayout',
name: 'formlayout',