From 53c29c8844011b233cca9858e40562cfd3026e14 Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Mon, 3 Aug 2026 13:41:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(qc):=20=E6=96=B0=E5=A2=9E=E5=91=86?= =?UTF-8?q?=E6=BB=9E=E5=93=81=E4=B8=B4=E6=9C=9F=E5=93=81=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增呆滞品/临期品库存查询接口和API - 在质检结果录入页面增加批次明细查看功能 - 扩展质检数据模型增加批次和库位信息字段 - 实现批次明细查询参数传递和数据显示 - 新建呆滞品临期品库存管理页面组件 - 添加袋装明细查看和批量送检功能 - 实现库存按类型筛选和分页显示 - 集成库存管理和质检流程的关联功能 --- src/api/pms/inventoryStock.js | 10 + src/views/modules/qc/SQCResultEntry.vue | 45 ++- .../modules/qc/stagnationExpiredStock.vue | 333 ++++++++++++++++++ 3 files changed, 379 insertions(+), 9 deletions(-) create mode 100644 src/api/pms/inventoryStock.js create mode 100644 src/views/modules/qc/stagnationExpiredStock.vue diff --git a/src/api/pms/inventoryStock.js b/src/api/pms/inventoryStock.js new file mode 100644 index 0000000..84241f9 --- /dev/null +++ b/src/api/pms/inventoryStock.js @@ -0,0 +1,10 @@ +import { createAPI } from "@/utils/httpRequest.js"; + +// 查询呆滞品/临期品库存列表 +export const queryStagnationExpiredStock = data => createAPI(`/pms/inventorystock/queryStagnationExpiredStock`, 'post', data); + +// 查询袋装明细列表 +export const queryPrintLabelBagList = data => createAPI(`/pms/inventorystock/queryPrintLabelBagList`, 'post', data); + +// 批量送检临期品 +export const batchSendExpiredForInspection = data => createAPI(`/pms/inventorystock/batchSendExpiredForInspection`, 'post', data); diff --git a/src/views/modules/qc/SQCResultEntry.vue b/src/views/modules/qc/SQCResultEntry.vue index 97aaef9..573ea42 100644 --- a/src/views/modules/qc/SQCResultEntry.vue +++ b/src/views/modules/qc/SQCResultEntry.vue @@ -161,12 +161,13 @@ fixed="right" header-align="center" align="center" - width="130" + width="200" label="操作"> @@ -288,9 +289,6 @@ - - 批次明细 -
0) { + this.saveInformationData.itemList.forEach(item => { + item.refInfo1 = this.detailData.refInfo1 + item.refInfo2 = this.detailData.refInfo2 + }) + } this.saveInformationData.passQty = this.detailData.passQty == null ? 0 : this.detailData.passQty this.saveInformationData.notPassQty = this.detailData.notPassQty == null ? 0 : this.detailData.notPassQty this.saveInformationData.batchQualifiedQty = this.detailData.batchQualifiedQty == null ? 0 : this.detailData.batchQualifiedQty @@ -2672,14 +2688,23 @@ getBaseData () {}, // 显示批次明细 - showBatchDetails () { - if (!this.detailData.refInfo1) { + showBatchDetails (row) { + const rowData = row || this.detailData + if (!rowData.refInfo1) { this.$message.warning('实验室单号(refInfo1)不能为空!') return } this.batchDetailLoading = true this.batchDetailFlag = true - getBatchDetailsByLaboratoryOrder({ laboratoryOrderNo: this.detailData.refInfo1 }).then(({data}) => { + const params = { + laboratoryOrderNo: rowData.refInfo1, + site: rowData.site, + partNo: rowData.partNo, + batchNo: rowData.batchNo, + warehouseId: rowData.warehouseId, + locationId: rowData.locationId + } + getBatchDetailsByLaboratoryOrder(params).then(({data}) => { this.batchDetailLoading = false if (data && data.code === 0) { this.batchDetailList = data.rows || [] @@ -2700,6 +2725,8 @@ created () { this.getButtonAuthData() this.disposalMeasuresSearch() + // 默认查询未开始和待检验状态 + this.searchData.states = ['未开始', '待检验'] if (!this.authSearch) { this.getDataList() } diff --git a/src/views/modules/qc/stagnationExpiredStock.vue b/src/views/modules/qc/stagnationExpiredStock.vue new file mode 100644 index 0000000..80f76c1 --- /dev/null +++ b/src/views/modules/qc/stagnationExpiredStock.vue @@ -0,0 +1,333 @@ + + + + +