From 48efbed46b63edb1f27d42eaa743c9486a14d644 Mon Sep 17 00:00:00 2001 From: DXC Date: Thu, 9 Apr 2026 09:04:05 +0800 Subject: [PATCH] feat(repair): add quick status filters, mandatory validations, FIFO sorting, and hide actions on finished orders --- .../app/services/inbound/repair_service.py | 13 ++++++++--- .../src/views/stock/inbound/repair.vue | 23 ++++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/inventory-backend/app/services/inbound/repair_service.py b/inventory-backend/app/services/inbound/repair_service.py index cca14ff..47ce4a3 100644 --- a/inventory-backend/app/services/inbound/repair_service.py +++ b/inventory-backend/app/services/inbound/repair_service.py @@ -69,7 +69,14 @@ class RepairInboundService: if params.get('serial_number'): query = query.filter(TransRepair.serial_number.ilike(f"%{params['serial_number']}%")) if params.get('repair_status'): - query = query.filter(TransRepair.repair_status == params['repair_status']) + status_value = params['repair_status'] + if status_value == '未出库': + # 未出库:排除已出库状态 + query = query.filter(TransRepair.repair_status != '已出库') + elif status_value not in ['全部', '']: + # 其他明确状态:精确匹配 + query = query.filter(TransRepair.repair_status == status_value) + # '全部' 或为空:不过滤状态 # 关联 MaterialBase 查询物料名称 或 直接搜索 TransRepair.material_name if params.get('material_name'): @@ -82,8 +89,8 @@ class RepairInboundService: ) ) - # 按创建时间倒序 - query = query.order_by(db.desc(TransRepair.id)) + # 按接收时间升序(先进先出)+ id 升序 + query = query.order_by(db.asc(TransRepair.arrival_date), db.asc(TransRepair.id)) # 分页 pagination = query.paginate(page=page, per_page=page_size, error_out=False) diff --git a/inventory-web/src/views/stock/inbound/repair.vue b/inventory-web/src/views/stock/inbound/repair.vue index cbcbb70..16ea6fa 100644 --- a/inventory-web/src/views/stock/inbound/repair.vue +++ b/inventory-web/src/views/stock/inbound/repair.vue @@ -29,9 +29,19 @@ - +
新增维修 + + 未出库 + 全部 + 待检测 + 维修中 + 等待配件 + 已修复 + 报废转出 + 已出库 +
@@ -57,7 +67,7 @@ 编辑 - + 更新状态 @@ -232,7 +242,7 @@ const searchForm = reactive({ repair_no: '', serial_number: '', material_name: '', - repair_status: '' + repair_status: '未出库' }) // 表格数据 @@ -534,6 +544,13 @@ onMounted(() => { .action-bar { margin-bottom: 16px; + display: flex; + align-items: center; + gap: 20px; +} + +.status-filter-group { + margin-left: auto; } .pagination-container {