Selaa lähdekoodia

pms 选择物料功能优化2

zhangcl 3 kuukautta sitten
vanhempi
commit
626601c548

+ 3 - 0
src/api/pms/iotmainworkorderbommaterial/index.ts

@@ -27,6 +27,9 @@ export interface IotMainWorkOrderBomMaterialVO {
   sort: number // 排序
   status: number // 状态 0启用  1停用
   remark: string // 备注
+  factoryId: number // 工厂id
+  costCenterId: number  // 成本中心id
+  storageLocationId: number // 存储地点id
 }
 
 // PMS 保养工单明细设备BOM挂载物料关联 API

+ 22 - 2
src/views/pms/iotmainworkorder/WorkOrderMaterial.vue

@@ -49,7 +49,12 @@
         <el-table-column width="60" label="选择">
           <template #default="{ row }">
             <el-checkbox
-              :model-value="selectedRows.some((item) => item.materialCode === row.materialCode)"
+              :model-value="selectedRows.some(item =>
+                item.factoryId === row.factoryId &&
+                item.costCenterId === row.costCenterId &&
+                item.storageLocationId === row.storageLocationId &&
+                item.materialCode === row.materialCode
+              )"
               @click.stop="toggleRow(row)"
               class="no-label-radio"
             />
@@ -301,7 +306,22 @@ const handleInput = (value, obj) => {
 
 // 多选 切换行选中状态
 const toggleRow = (row) => {
-  const index = selectedRows.value.findIndex((item) => item.materialCode === row.materialCode)
+  /* const index = selectedRows.value.findIndex((item) => item.materialCode === row.materialCode)
+  if (index > -1) {
+    selectedRows.value.splice(index, 1) // 取消选中
+  } else {
+    selectedRows.value.push(row) // 选中
+  } */
+  // 创建复合唯一标识
+  const getRowUniqueKey = (row) => {
+    return `${row.factoryId}_${row.costCenterId}_${row.storageLocationId}_${row.materialCode}`
+  }
+
+  const currentKey = getRowUniqueKey(row)
+  const index = selectedRows.value.findIndex(item =>
+    getRowUniqueKey(item) === currentKey
+  )
+
   if (index > -1) {
     selectedRows.value.splice(index, 1) // 取消选中
   } else {