diff --git a/src/views/canteen/dish/material/index.vue b/src/views/canteen/dish/material/index.vue index 1dda0270..c51c7707 100644 --- a/src/views/canteen/dish/material/index.vue +++ b/src/views/canteen/dish/material/index.vue @@ -387,6 +387,7 @@ export default { parentId: undefined, treeAreaOptions:[],//区域树 batchIds:[], + multipleSelection:[], openEdit:false, editForm:{ materialTypeName:"", @@ -604,19 +605,27 @@ export default { }, /** 删除按钮操作 */ - handleDelete(row) { - this.$modal + handleDelete(row) { + if (Number(row.hasInventory) === 1) { + this.$modal.msgWarning("该物料仍有库存,无法删除!"); + return; + } + this.$modal .confirm("是否确认删除数据项?") - .then(function () { - return removeMaterialApi({"materialId":row.materialId}); + .then(() => { + // 使用箭头函数保持 this 上下文 + return removeMaterialApi({ materialId: row.materialId }); }) .then(() => { this.$modal.msgSuccess("删除成功"); this.getList(); }) - .catch(() => {}); + .catch(() => { + // 用户取消或异常 + }); }, handleSelectionChange(selection){ + this.multipleSelection = selection this.batchIds = [] this.batchIds = selection.map((item) => item.materialId) this.editForm.categoryNames = ""; @@ -626,7 +635,13 @@ export default { }, // 批量删除 handleBatchDel(){ - console.log(this.batchIds) + // 检查是否存在仍有库存的物料 + const hasInventoryItems = this.multipleSelection.filter(item => Number(item.hasInventory) === 1); + if (hasInventoryItems.length > 0) { + const names = hasInventoryItems.map(item => item.materialName || item.materialId).join("、"); + this.$modal.msgWarning(`以下物料仍有库存,无法删除原料名称:${names}的数据`); + return; + } removeMaterialApi({"materialId":this.batchIds.join(",")}).then(response => { this.$modal.msgSuccess("删除成功"); this.$refs.multipleTable.clearSelection()