Browse Source

feat(inspection): 添加验货申请明细删除功能

- 在API中新增deleteInspectionDetails方法用于删除验货申请明细
- 在表格中添加删除操作列,支持删除PO明细行
- 实现删除确认弹窗和前端列表移除逻辑
- 将删除操作集成到保存流程中,支持批量删除处理
- 更新删除状态提示信息,区分临时删除和正式删除
- 添加删除数据的缓存记录和后端接口调用机制
master
qiankanghui 2 days ago
parent
commit
2104d7baf6
  1. 3
      src/api/inspection/inspectionRequestHeader.js
  2. 55
      src/views/modules/inspection/inspectionRequestList.vue

3
src/api/inspection/inspectionRequestHeader.js

@ -90,3 +90,6 @@ export const addInspectionDetails = (data) => createAPI(`/inspection/addDetails`
// 编辑验货申请明细
export const editInspectionDetails = (data) => createAPI(`/inspection/editDetails`, 'post', data)
// 删除验货申请明细
export const deleteInspectionDetails = (data) => createAPI(`/inspection/deleteDetails`, 'post', data)

55
src/views/modules/inspection/inspectionRequestList.vue

@ -445,6 +445,11 @@
height="350px"
v-loading="editPoDetailLoading"
style="width: 100%; margin-top: -10px;">
<el-table-column fixed="right" header-align="center" align="center" width="80" label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click="deleteEditPoRow(scope.$index)">删除</el-link>
</template>
</el-table-column>
<el-table-column prop="orderRef1" label="PO号" header-align="center" align="center" width="120"/>
<el-table-column prop="orderRef2" label="PO行号" header-align="center" align="center" width="80"/>
<el-table-column prop="partNo" label="产品编码" header-align="center" align="left" min-width="120" show-overflow-tooltip/>
@ -1106,7 +1111,7 @@
</template>
<script>
import { searchInspectionRequestHeaderList, queryPoPage, queryPoSupplierPage, queryPoSupplierOrderPage, saveInspectionRequest, deleteInspectionRequest, confirmInspectionRequest, applyChangeInspectionRequest, getInspectionRequestDetailSubList, updateInspectionRequest, downloadTemplate, previewUpload, batchSave, addInspectionDetails, editInspectionDetails } from '@/api/inspection/inspectionRequestHeader.js'
import { searchInspectionRequestHeaderList, queryPoPage, queryPoSupplierPage, queryPoSupplierOrderPage, saveInspectionRequest, deleteInspectionRequest, confirmInspectionRequest, applyChangeInspectionRequest, getInspectionRequestDetailSubList, updateInspectionRequest, downloadTemplate, previewUpload, batchSave, addInspectionDetails, editInspectionDetails, deleteInspectionDetails } from '@/api/inspection/inspectionRequestHeader.js'
import { searchSrmSupplierAddressList, createSrmSupplierAddress, updateSrmSupplierAddress, searchSrmSupplierList } from '@/api/srm/srmSupplier.js'
import { getPermissionValue } from '@/api/sys/specialSecurity.js'
import Chooselist from '@/views/modules/common/Chooselist_eam'
@ -2265,7 +2270,7 @@ export default {
this.editPoEditMode = true
},
// PO
// PO
deleteEditPoRow (index) {
this.$confirm('确定要删除这条PO明细吗?', '提示', {
confirmButtonText: '确定',
@ -2273,6 +2278,7 @@ export default {
type: 'warning'
}).then(() => {
const deletedRow = this.editPoDetailList[index]
// POkey
const key = `${deletedRow.orderRef1 || ''}_${deletedRow.orderRef2 || ''}`
@ -2286,8 +2292,9 @@ export default {
this.deletedPoKeys.add(key)
}
//
this.editPoDetailList.splice(index, 1)
this.$message.success('删除成功')
this.$message.success('已标记删除,点击保存后生效')
}).catch(() => {
//
})
@ -3442,10 +3449,24 @@ export default {
'修改PO': modifiedPoItems
})
// 1. -> 2. -> 3.
// 1. -> 2. -> 3. -> 4.
let promiseChain = Promise.resolve()
// 1. PO editInspectionDetails
// 0. PO deleteInspectionDetails
if (this.deletedPoKeys.size > 0) {
const deletedItemNos = Array.from(this.deletedPoKeys).map(key => {
const parts = key.split('_')
return parts[1] || '' // orderRef2itemNo
}).filter(itemNo => itemNo)
if (deletedItemNos.length > 0) {
promiseChain = promiseChain.then(() => {
return this.deletePoDetails(deletedItemNos)
})
}
}
// 1. PO editInspectionDetails
if (modifiedPoItems.length > 0) {
promiseChain = promiseChain.then(() => {
return this.editModifiedPoDetails(modifiedPoItems)
@ -3533,6 +3554,30 @@ export default {
})
},
// PO
deletePoDetails (itemNos) {
return new Promise((resolve, reject) => {
const params = {
requestNo: this.addFormData.requestNo,
site: this.$store.state.user.site,
itemNos: itemNos
}
console.log('=== 调用 deleteInspectionDetails ===', params)
deleteInspectionDetails(params).then(({ data }) => {
if (data && data.code === 0) {
console.log('删除PO明细成功')
resolve()
} else {
reject(new Error(data.msg || '删除PO明细失败'))
}
}).catch(error => {
reject(error)
})
})
},
// Excel
importExcel () {
this.uploadDialogVisible = true

Loading…
Cancel
Save