Browse Source

2025-11-20

IPQC检验增加项目操作
master
fengyuan_yang 2 months ago
parent
commit
c68c37179a
  1. 4
      src/api/qc/qc.js
  2. 258
      src/views/modules/qc/IPQCResultEntry.vue

4
src/api/qc/qc.js

@ -205,6 +205,10 @@ export const getFQCItemObjectList = data => createAPI(`/pms/qc/getFQCItemObjectL
export const getIPQCItemObjectList = data => createAPI(`/pms/qc/getIPQCItemObjectList`,'post',data)
export const getInspectionStandards = data => createAPI(`/pms/qc/getInspectionStandards`,'post',data)
export const saveInspectionStandard = data => createAPI(`/pms/qc/saveInspectionStandard`,'post',data)
// IPQC检验项目操作
export const getIPQCItemList = data => createAPI(`/pms/qc/getIPQCItemList`,'post',data)
export const addIPQCItemDetails = data => createAPI(`/pms/qc/addIPQCItemDetails`,'post',data)
export const deleteIPQCItemDetails = data => createAPI(`/pms/qc/deleteIPQCItemDetails`,'post',data)
export const dataAcquisitionByItem = data => createAPI(`/pms/qc/dataAcquisitionByItem`,'post',data)
export const getSiteAndBuByUserName2 = data => createAPI(`/pms/qc/getSiteAndBuByUserName2`,'post',data)
export const cancelApproval = data => createAPI(`/pms/qc/cancelApproval`,'post',data)

258
src/views/modules/qc/IPQCResultEntry.vue

@ -548,6 +548,9 @@
<el-input v-if="detailData.submitFlag === 'Y'" v-model="detailData.inspectionRemark" disabled style="width: 293px"></el-input>
<el-input v-else v-model="detailData.inspectionRemark" style="width: 293px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="openItemOperationDialog">项目操作</el-button>
</el-form-item>
<el-form-item v-show="detailData.inspectionResult === '不合格'" style="margin-top: 5px">
<el-form-item :label="'处置措施'">
<el-select v-if="detailData.submitFlag === 'Y'" clearable v-model="detailData.disposalMeasures" disabled style="width: 100px">
@ -1044,6 +1047,123 @@
</el-footer>
</el-dialog>
<!-- 项目操作对话框 -->
<el-dialog title="检验项目操作" @close="refreshInspectionDetailList" :close-on-click-modal="false" v-drag :visible.sync="itemOperationDialogFlag" width="1100px">
<div style="font-size: 12px">
<el-form :inline="true" label-position="top">
<el-form-item :label="'项目编码'">
<el-input v-model="itemOperationQuery.itemNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'项目名称'">
<el-input v-model="itemOperationQuery.itemDesc" clearable style="width: 200px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="searchIPQCItems">查询</el-button>
</el-form-item>
</el-form>
</div>
<el-container style="margin-top: 0px;">
<el-main style="width: 720px; padding: 1px">
<span style="font-size: 12px">可选项目</span>
<el-table
height="400px"
:data="availableItemList"
border
ref="availableItemTable"
@row-click="availableItemClickRow"
@selection-change="availableItemSelectionChange"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="itemNo"
header-align="center"
align="center"
min-width="80"
label="项目编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="center"
min-width="120"
label="项目名称">
</el-table-column>
<el-table-column
prop="defaultValue"
header-align="center"
align="center"
min-width="100"
label="标准值">
</el-table-column>
<el-table-column
prop="maxValue"
header-align="center"
align="center"
min-width="60"
label="最大值">
</el-table-column>
<el-table-column
prop="minValue"
header-align="center"
align="center"
min-width="60"
label="最小值">
</el-table-column>
</el-table>
</el-main>
<el-main style="width: 111px;padding: 1px">
<div style="margin-top: 182px;margin-left: 18px">
<el-button type="primary" @click="addInspectionItems">添加>></el-button>
</div>
<div style="margin-top: 15px;margin-left: 18px">
<el-button type="primary" @click="deleteInspectionItems">删除<<</el-button>
</div>
</el-main>
<el-main style="width: 400px;padding: 1px">
<span style="font-size: 12px">已有项目</span>
<el-table
height="400px"
:data="selectedItemList"
border
ref="selectedItemTable"
@row-click="selectedItemClickRow"
@selection-change="selectedItemSelectionChange"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="itemNo"
header-align="center"
align="center"
min-width="80"
label="项目编码">
</el-table-column>
<el-table-column
prop="itemDesc"
header-align="center"
align="center"
min-width="200"
label="项目名称">
</el-table-column>
</el-table>
</el-main>
</el-container>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="itemOperationDialogFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<!-- 上传文件的modal -->
@ -1093,7 +1213,10 @@
dataAcquisitionByItem, //
cancelApproval2, //
getUserRoleList, //
getOperatorList
getOperatorList,
getIPQCItemList, // IPQC
addIPQCItemDetails, // IPQC
deleteIPQCItemDetails // IPQC
} from "@/api/qc/qc.js"
import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"
import Chooselist from '@/views/modules/common/Chooselist_eam'
@ -2580,6 +2703,16 @@
acquisitionList: [],
ItemObjectModelFlag: false,
itemObjectList: [],
//
itemOperationDialogFlag: false,
itemOperationQuery: {
itemNo: '',
itemDesc: '',
},
availableItemList: [],
selectedItemList: [],
availableItemSelections: [],
selectedItemSelections: [],
itemObjectColumnList: [
{
columnProp: 'itemNo',
@ -4241,6 +4374,129 @@
this.authFile = !fileFlag
this.authCancelCheck = !cancelCheckFlag
},
// ======================== ========================
//
openItemOperationDialog() {
this.itemOperationQuery = {
itemNo: '',
itemDesc: '',
}
this.searchIPQCItems()
this.itemOperationDialogFlag = true
},
// IPQC
async searchIPQCItems() {
try {
const {data} = await getIPQCItemList({
site: this.detailData.site,
buNo: this.detailData.buNo,
inspectionNo: this.detailData.inspectionNo,
templateId: this.detailData.templateId,
itemNo: this.itemOperationQuery.itemNo,
itemDesc: this.itemOperationQuery.itemDesc,
})
if (data && data.code === 0) {
this.availableItemList = data.row1 || []
this.selectedItemList = data.row2 || []
} else {
this.$message.error(data.msg || '查询失败')
}
} catch (error) {
this.$message.error('查询失败,请检查')
}
},
//
availableItemClickRow(row) {
this.$refs.availableItemTable.toggleRowSelection(row)
},
//
availableItemSelectionChange(selection) {
this.availableItemSelections = selection
},
//
selectedItemClickRow(row) {
this.$refs.selectedItemTable.toggleRowSelection(row)
},
//
selectedItemSelectionChange(selection) {
this.selectedItemSelections = selection
},
//
async addInspectionItems() {
if (!this.availableItemSelections || this.availableItemSelections.length === 0) {
this.$message.warning('请选择可选项目!')
return
}
try {
const {data} = await addIPQCItemDetails({
site: this.detailData.site,
buNo: this.detailData.buNo,
inspectionNo: this.detailData.inspectionNo,
templateId: this.detailData.templateId,
orderNo: this.detailData.orderNo,
itemList: this.availableItemSelections,
})
if (data && data.code === 0) {
this.$message.success('添加成功')
this.searchIPQCItems()
this.availableItemSelections = []
} else {
this.$message.error(data.msg || '添加失败')
}
} catch (error) {
this.$message.error('添加失败,请检查')
}
},
//
async deleteInspectionItems() {
if (!this.selectedItemSelections || this.selectedItemSelections.length === 0) {
this.$message.warning('请选择已有项目!')
return
}
this.$confirm('确定删除选中的检验项目吗?删除后将同时删除该项目的子明细数据。', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const {data} = await deleteIPQCItemDetails({
site: this.detailData.site,
buNo: this.detailData.buNo,
inspectionNo: this.detailData.inspectionNo,
templateId: this.detailData.templateId,
itemList: this.selectedItemSelections,
})
if (data && data.code === 0) {
this.$message.success('删除成功')
this.searchIPQCItems()
this.selectedItemSelections = []
} else {
this.$message.error(data.msg || '删除失败')
}
} catch (error) {
this.$message.error('删除失败,请检查')
}
}).catch(() => {
this.$message.info('已取消删除')
})
},
//
refreshInspectionDetailList() {
if (this.detailInformationFlag) {
this.getInspectionFormData()
}
},
}
}
</script>

Loading…
Cancel
Save