From 6ac8942a2450d67a75479fe970a4dbea24628015 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 15 Jun 2026 17:30:11 +0800 Subject: [PATCH] =?UTF-8?q?2026-06-15=20RoHS=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/rohs/rohs.js | 3 ++ src/views/modules/rohs/rohsRecord.vue | 77 +++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/src/api/rohs/rohs.js b/src/api/rohs/rohs.js index 8a417fa..93249b9 100644 --- a/src/api/rohs/rohs.js +++ b/src/api/rohs/rohs.js @@ -27,6 +27,9 @@ export const issueRohs = data => createAPI(`/rohs/issue`, 'post', data); // 审批提交(同意/驳回) export const submitRohs = data => createAPI(`/rohs/submit`, 'post', data); +// 删除(仅草稿) +export const deleteRohs = data => createAPI(`/rohs/delete`, 'post', data); + // 查询审批信息 export const getRohsApprovalList = data => createAPI(`/rohs/approvalList`, 'post', data); diff --git a/src/views/modules/rohs/rohsRecord.vue b/src/views/modules/rohs/rohsRecord.vue index d8d5c07..fd8da7a 100644 --- a/src/views/modules/rohs/rohsRecord.vue +++ b/src/views/modules/rohs/rohsRecord.vue @@ -28,6 +28,7 @@ 查询 新增 + 删除 + @@ -1230,6 +1233,7 @@ export default { }, projectMaterialList: [], projectMaterialSelections: [], + dataListSelections: [], materialSelections: [], projectMaterialPageIndex: 1, projectMaterialPageSize: 20, @@ -2196,6 +2200,9 @@ export default { this.approvalList = [] } }, + dataListSelectionChange (rows) { + this.dataListSelections = rows || [] + }, applyCurrentRowData (detailData, fallbackData = {}) { this.currentRow = detailData || {} if (!Array.isArray(this.currentRow.materialList)) { @@ -2335,6 +2342,7 @@ export default { getDataList () { if (!this.authSearch) { this.dataList = [] + this.dataListSelections = [] this.totalPage = 0 this.currentRow = {} this.approvalList = [] @@ -2374,8 +2382,12 @@ export default { ...item } }) + this.dataListSelections = [] this.totalPage = data.page.totalCount this.$nextTick(() => { + if (this.$refs.rohsTable) { + this.$refs.rohsTable.clearSelection() + } if (this.$refs.rohsTable && this.dataList.length > 0) { this.$refs.rohsTable.setCurrentRow(this.dataList[0]) } else if (this.$refs.rohsTable) { @@ -2384,12 +2396,14 @@ export default { }) } else { this.dataList = [] + this.dataListSelections = [] this.totalPage = 0 this.currentRow = {} this.approvalList = [] } this.dataListLoading = false }).catch(() => { + this.dataListSelections = [] this.currentRow = {} this.approvalList = [] this.dataListLoading = false @@ -2807,6 +2821,69 @@ export default { }) }) }, + deleteHandle () { + if (!this.authDelete) { + this.$message.warning('没有删除权限') + return + } + const selectedRows = (this.dataListSelections || []).filter(item => item && item.site && item.referenceNo) + if (!selectedRows.length) { + this.$message.warning('请先勾选要删除的单据') + return + } + const nonDraftRows = selectedRows.filter(item => item.status !== '草稿') + if (nonDraftRows.length) { + const previewText = nonDraftRows.slice(0, 3).map(item => item.referenceNo).join('、') + const suffix = nonDraftRows.length > 3 ? (' 等' + nonDraftRows.length + '条') : '' + this.$message.warning('仅草稿状态的单据允许删除,当前勾选包含非草稿单据:' + previewText + suffix) + return + } + this.$confirm('确认删除选中的' + selectedRows.length + '条RoHS单据?删除后会同步删除材料和附件数据。', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + const deleteTasks = selectedRows.map(item => { + return api.deleteRohs({ + site: item.site, + referenceNo: item.referenceNo + }).then(({data}) => { + if (data && data.code === 0) { + return { + success: true, + referenceNo: item.referenceNo + } + } + return { + success: false, + referenceNo: item.referenceNo, + msg: (data && data.msg) || '删除失败' + } + }).catch(() => { + return { + success: false, + referenceNo: item.referenceNo, + msg: '删除失败' + } + }) + }) + Promise.all(deleteTasks).then(results => { + const successRows = results.filter(item => item.success) + const failRows = results.filter(item => !item.success) + if (this.modalFlag && successRows.some(item => item.referenceNo === this.modalData.referenceNo)) { + this.modalFlag = false + } + if (!failRows.length) { + this.$message.success('删除成功,共' + successRows.length + '条') + } else if (!successRows.length) { + this.$message.error(failRows[0].msg || '删除失败') + } else { + this.$message.warning('已删除' + successRows.length + '条,失败' + failRows.length + '条') + } + this.getDataList() + }) + }).catch(() => {}) + }, openProjectMaterialDialog () { if (!this.canEditRohsMaterial()) { this.$message.warning('当前状态不允许编辑材料')