Browse Source

feat(qc): 添加SQC批次明细功能

- 新增getBatchDetailsByLaboratoryOrder API接口用于获取批次明细
- 在SQC结果录入页面添加批次明细查看按钮
- 实现批次明细弹窗显示物料编码、批次号、数量、仓库库位等信息
- 添加批次明细相关的数据字段和状态管理
- 实现批次明细数据加载和错误处理逻辑
master
qiankanghui 3 weeks ago
parent
commit
cd8cf59ad4
  1. 3
      src/api/qc/qc.js
  2. 98
      src/views/modules/qc/SQCResultEntry.vue

3
src/api/qc/qc.js

@ -290,6 +290,9 @@ export const importOQCTemplateItems = data => createAPI(`/pms/qc/importOQCTempla
// ===================================== SQC取消审核 =====================================
export const cancelSQCApproval = data => createAPI(`/pms/qc/cancelSQCApproval`,'post',data)
// ===================================== SQC批次明细 =====================================
export const getBatchDetailsByLaboratoryOrder = data => createAPI(`/pms/qc/getBatchDetailsByLaboratoryOrder`,'post',data)
// ===================================== 外采设备维护 =====================================
export const queryEquipmentFolderLocationList = data => createAPI(`/pms/qc/queryEquipmentFolderLocationList`,'post',data)
export const deleteEquipmentFolderLocationList = data => createAPI(`/pms/qc/deleteEquipmentFolderLocationList`,'post',data)

98
src/views/modules/qc/SQCResultEntry.vue

@ -238,6 +238,7 @@
<el-form-item :label="'批次不合格数'">
<el-input-number :controls="false" :step="0" :min="0" v-model="detailData.notbatchQualifiedQty" disabled style="width: 85px"></el-input-number>
</el-form-item>
<el-form-item style="margin-top: 13px;margin-left: 365px">
<el-button @click="getFileContentData(detailData)">
<svg t="1739002974630" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="59598" width="22" height="22"><path d="M807.3216 889.5488H221.184c-78.7456 0-142.848-64.1024-142.848-142.848V286.976c0-78.7456 64.1024-142.848 142.848-142.848h178.8416c20.7872 0 40.7552 8.8064 54.784 24.1664l77.568 85.0944c2.4064 2.6112 5.8368 4.1472 9.3696 4.1472h265.5232c78.7456 0 142.848 64.1024 142.848 142.848v346.2656c0.0512 78.7968-64.0512 142.8992-142.7968 142.8992zM221.184 205.568c-44.9024 0-81.408 36.5056-81.408 81.408v459.6736c0 44.9024 36.5056 81.408 81.408 81.408h586.1376c44.9024 0 81.408-36.5056 81.408-81.408V400.4352c0-44.9024-36.5056-81.408-81.408-81.408h-265.5232c-20.7872 0-40.7552-8.8064-54.784-24.1664L409.3952 209.7152c-2.4064-2.6112-5.8368-4.1472-9.3696-4.1472H221.184z" fill="#6FB1F9" p-id="59599"></path><path d="M466.0224 453.8368H249.0368c-16.9472 0-30.72-13.7728-30.72-30.72s13.7728-30.72 30.72-30.72h216.9856c16.9472 0 30.72 13.7728 30.72 30.72s-13.7728 30.72-30.72 30.72z" fill="#6FB1F9" p-id="59600"></path></svg>
@ -245,6 +246,7 @@
<el-button @click="openSubDetailImport">
<svg t="1739002903501" class="icon" viewBox="0 0 1550 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50418" width="22" height="22"><path d="M985.000229 727.917714c20.48 0 34.113829-13.663086 34.113828-34.143085 0-10.24-3.393829-17.056914-10.24-23.873829l-204.8-204.8c-6.816914-6.846171-13.633829-10.24-23.873828-10.24-10.24 0-17.086171 3.393829-23.903086 10.24l-204.8 204.8c-6.816914 6.816914-10.24 13.633829-10.24 23.873829 0 20.48 13.663086 34.143086 34.143086 34.143085 10.24 0 17.056914-3.423086 23.873828-10.24l146.783086-146.783085v395.966171c0 20.48 13.663086 34.113829 34.143086 34.113829s34.113829-13.633829 34.113828-34.113829V570.894629l146.783086 146.783085c6.816914 6.816914 13.663086 10.24 23.903086 10.24z m282.799542-353.045943c0-10.24 1.287314-17.086171 0-27.296914C1240.502857 128.117029 1043.0464 29.257143 858.199771 29.257143 701.205943 29.257143 564.662857 117.994057 496.405943 247.720229 469.079771 240.874057 441.782857 234.057143 414.485943 234.057143 281.365943 234.057143 175.542857 307.112229 175.542857 440.232229c0 17.056914 3.423086 34.113829 6.816914 51.2C97.514057 535.786057 29.257143 585.5232 29.257143 723.031771c0 170.656914 136.543086 277.942857 307.2 277.942858H585.142857c20.48 0 34.143086-13.633829 34.143086-34.113829S605.622857 932.717714 585.142857 932.717714h-248.685714c-133.12 0-238.943086-76.565943-238.943086-209.685943 0-82.797714 37.566171-131.657143 105.325714-166.765714l58.046172-20.48-13.663086-61.44c-3.423086-10.24-3.423086-23.873829-3.423086-34.113828 0-95.583086 75.103086-137.918171 170.686172-137.918172 20.48 0 37.536914 3.423086 58.016914 10.24l54.623086 20.48 27.296914-51.2c61.44-112.64 179.317029-198.100114 303.776914-184.32 184.846629 20.48 309.511314 71.68 341.343086 250.0608 1.199543 6.787657 0 10.24 0 17.056914v6.846172l-3.423086 47.776914 44.383086 20.48c110.094629 34.6112 222.354286 143.36 222.354286 249.183086 0 150.176914-122.88 243.799771-273.056914 243.799771h-214.571886c-20.48 0-34.113829 13.663086-34.113829 34.143086s13.633829 34.113829 34.113829 34.113829h214.571886c187.713829 0 341.313829-124.342857 341.313828-312.056686 0-144.530286-121.270857-269.663086-263.314286-314.046172z" fill="#6C5FFC" p-id="50419"></path></svg>
</el-button>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top">
@ -286,6 +288,9 @@
<el-input v-else v-model="detailData.disposalRemark" style="width: 293px"></el-input>
</el-form-item>
</el-form-item>
<el-form-item label=" " >
<el-button type="primary" @click="showBatchDetails">批次明细</el-button>
</el-form-item>
</el-form>
<div class="rq">
<el-table
@ -610,6 +615,63 @@
</el-footer>
</el-dialog>
<!-- 批次明细 -->
<el-dialog title="批次库存清单" :close-on-click-modal="false" v-drag :visible.sync="batchDetailFlag" width="1200px">
<el-table
:height="500"
:data="batchDetailList"
border
v-loading="batchDetailLoading"
element-loading-text="拼命加载中"
style="width: 100%;">
<el-table-column
prop="partNo"
header-align="center"
align="center"
label="物料编码"
min-width="150">
</el-table-column>
<el-table-column
prop="batchNo"
header-align="center"
align="center"
label="批次号"
min-width="150">
</el-table-column>
<el-table-column
prop="qty"
header-align="center"
align="center"
label="数量"
min-width="100">
</el-table-column>
<el-table-column
prop="warehouseId"
header-align="center"
align="center"
label="所在仓库"
min-width="150">
</el-table-column>
<el-table-column
prop="locationId"
header-align="center"
align="center"
label="所在库位"
min-width="150">
</el-table-column>
<el-table-column
prop="createTime"
header-align="center"
align="center"
label="入库日期"
min-width="180">
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="batchDetailFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<qcFAIUploadFile ref="qcFAIUploadFile" @refreshPageTables="()=>{this.getFileContentData(this.detailData)}" v-drag></qcFAIUploadFile>
<comQcItemImageUploadFile ref="comQcItemImageUploadFile" @refreshPageTables2="getInspectionFormData" v-drag></comQcItemImageUploadFile>
@ -635,6 +697,7 @@
getResponsibleOperatorList,
getSQCItemObjectList,
cancelSQCApproval,
getBatchDetailsByLaboratoryOrder,
} from "@/api/qc/qc.js"
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {getInspectionFile} from '@/api/eam/eam_object_list.js'
@ -765,7 +828,8 @@
passQty: 0,
notPassQty: 0,
batchQualifiedQty: 0,
notbatchQualifiedQty: 0
notbatchQualifiedQty: 0,
refInfo1: ''
},
saveInformationData: {
site: '',
@ -1740,6 +1804,11 @@
// file upload folder
fileFolder: 'qcSQC',
//
batchDetailFlag: false,
batchDetailList: [],
batchDetailLoading: false,
}
},
methods: {
@ -1795,6 +1864,7 @@
this.detailData.responsiblePerson = row.responsiblePerson
this.detailData.responsiblePersonName = row.responsiblePersonName
this.detailData.state = row.state
this.detailData.refInfo1 = row.refInfo1
if (row.state === '待检验') {
this.detailData.passQty = row.samplingQty
} else {
@ -2600,6 +2670,32 @@
},
getBaseData () {},
//
showBatchDetails () {
if (!this.detailData.refInfo1) {
this.$message.warning('实验室单号(refInfo1)不能为空!')
return
}
this.batchDetailLoading = true
this.batchDetailFlag = true
getBatchDetailsByLaboratoryOrder({ laboratoryOrderNo: this.detailData.refInfo1 }).then(({data}) => {
this.batchDetailLoading = false
if (data && data.code === 0) {
this.batchDetailList = data.rows || []
if (this.batchDetailList.length === 0) {
this.$message.info('暂无批次明细数据')
}
} else {
this.$message.warning((data && data.msg) || '获取批次明细失败')
this.batchDetailList = []
}
}).catch(() => {
this.batchDetailLoading = false
this.$message.error('获取批次明细失败')
this.batchDetailList = []
})
},
},
created () {
this.getButtonAuthData()

Loading…
Cancel
Save