Browse Source

2025-10-30

生产派工单列表支持拖拽
master
fengyuan_yang 2 months ago
parent
commit
f09bee24a5
  1. 65
      src/views/modules/shopOrder/productionOrderScheduling/searchProductionDispatchList.vue

65
src/views/modules/shopOrder/productionOrderScheduling/searchProductionDispatchList.vue

@ -95,6 +95,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
ref="dispatchTable"
:height="height" :height="height"
:data="dataList" :data="dataList"
border border
@ -1005,9 +1006,6 @@ export default {
handleDragEnd(evt) { handleDragEnd(evt) {
const { oldIndex, newIndex } = evt; const { oldIndex, newIndex } = evt;
console.log('=== 拖拽开始 ===');
console.log('oldIndex:', oldIndex, 'newIndex:', newIndex);
// //
if (oldIndex === newIndex) { if (oldIndex === newIndex) {
return; return;
@ -1017,27 +1015,19 @@ export default {
const movedItem = this.dataList[oldIndex]; const movedItem = this.dataList[oldIndex];
const targetSerialNumber = this.dataList[newIndex].serialNumber; const targetSerialNumber = this.dataList[newIndex].serialNumber;
console.log('被拖拽项:', movedItem.orderNo, '原序号:', movedItem.serialNumber);
console.log('目标位置序号:', targetSerialNumber);
// //
this.draggedItem = { this.draggedItem = {
site: movedItem.site, site: movedItem.site,
orderNo: movedItem.orderNo, orderNo: movedItem.orderNo,
itemNo: movedItem.itemNo, itemNo: movedItem.itemNo,
seqNo: movedItem.seqNo, // 使 seqNo
newSerialNumber: targetSerialNumber //
seqNo: movedItem.seqNo,
newSerialNumber: targetSerialNumber
}; };
// //
this.dataList.splice(oldIndex, 1); this.dataList.splice(oldIndex, 1);
this.dataList.splice(newIndex, 0, movedItem); this.dataList.splice(newIndex, 0, movedItem);
console.log('移动后的dataList顺序:');
this.dataList.forEach((item, idx) => {
console.log(` 位置${idx}: ${item.orderNo}-工序${item.itemNo} | SeqNo:${item.seqNo} | serial_number:${item.serialNumber}`);
});
// //
this.reassignSerialNumbers(oldIndex, newIndex); this.reassignSerialNumbers(oldIndex, newIndex);
}, },
@ -1066,12 +1056,11 @@ export default {
// //
if (item.serialNumber !== newSerialNumber) { if (item.serialNumber !== newSerialNumber) {
console.log(`更新序号: ${item.orderNo}-工序${item.itemNo}-SeqNo${item.seqNo}${item.serialNumber} 改为 ${newSerialNumber}`);
updateList.push({ updateList.push({
site: item.site, site: item.site,
orderNo: item.orderNo, orderNo: item.orderNo,
itemNo: item.itemNo, itemNo: item.itemNo,
scheduleSeqNo: item.seqNo, // 使 seqNo sScheduledSeqNo
scheduleSeqNo: item.seqNo,
resourceId: item.sResourceID, resourceId: item.sResourceID,
serialNumber: newSerialNumber, serialNumber: newSerialNumber,
}); });
@ -1079,40 +1068,27 @@ export default {
}); });
}); });
console.log('需要更新的记录数:', updateList.length);
console.log('更新列表:', updateList);
// //
if (updateList.length > 0) { if (updateList.length > 0) {
this.saveSortOrder(updateList); this.saveSortOrder(updateList);
} else {
console.log('没有需要更新的记录');
} }
}, },
/*保存排序到后端*/ /*保存排序到后端*/
saveSortOrder(updateList) { saveSortOrder(updateList) {
console.log('调用后端接口,更新序号...');
console.log('请求数据:', JSON.stringify(updateList, null, 2));
batchUpdateSerialNumber(updateList).then(({data}) => { batchUpdateSerialNumber(updateList).then(({data}) => {
console.log('后端响应:', data);
if (data.code === 0) { if (data.code === 0) {
this.$message.success('排序保存成功'); this.$message.success('排序保存成功');
console.log('排序保存成功,准备刷新列表');
// //
this.refreshAndLocate(); this.refreshAndLocate();
} else { } else {
console.error('排序保存失败:', data.msg);
this.$message.error(data.msg || '排序保存失败'); this.$message.error(data.msg || '排序保存失败');
// //
this.getData(); this.getData();
this.draggedItem = null; this.draggedItem = null;
} }
}).catch(error => { }).catch(error => {
console.error('后端接口调用异常:', error);
this.$message.error('排序保存失败: ' + error.message);
this.$message.error('排序保存失败');
// //
this.getData(); this.getData();
this.draggedItem = null; this.draggedItem = null;
@ -1121,17 +1097,11 @@ export default {
/*刷新列表并定位到拖拽的行*/ /*刷新列表并定位到拖拽的行*/
refreshAndLocate() { refreshAndLocate() {
console.log('开始刷新列表并定位...');
// //
this.getData().then(() => { this.getData().then(() => {
console.log('数据刷新完成,开始定位');
// DOM // DOM
this.$nextTick(() => { this.$nextTick(() => {
if (this.draggedItem) { if (this.draggedItem) {
console.log('查找拖拽项:', this.draggedItem);
// //
const targetIndex = this.dataList.findIndex(item => const targetIndex = this.dataList.findIndex(item =>
item.site === this.draggedItem.site && item.site === this.draggedItem.site &&
@ -1140,11 +1110,8 @@ export default {
item.seqNo === this.draggedItem.seqNo item.seqNo === this.draggedItem.seqNo
); );
console.log('找到目标行索引:', targetIndex);
if (targetIndex !== -1) { if (targetIndex !== -1) {
const targetItem = this.dataList[targetIndex]; const targetItem = this.dataList[targetIndex];
console.log('目标行信息:', targetItem.orderNo, '序号:', targetItem.serialNumber);
// //
this.scheduleRow = targetItem; this.scheduleRow = targetItem;
@ -1163,12 +1130,9 @@ export default {
// //
rows[targetIndex].click(); rows[targetIndex].click();
console.log('已定位到目标行');
} }
} }
}); });
} else {
console.log('未找到目标行');
} }
// //
@ -1176,7 +1140,6 @@ export default {
} }
}); });
}).catch(error => { }).catch(error => {
console.error('刷新数据失败:', error);
this.draggedItem = null; this.draggedItem = null;
}); });
}, },
@ -1224,13 +1187,19 @@ export default {
_timestamp: new Date().getTime() _timestamp: new Date().getTime()
}; };
return searchProductionDispatchList(searchDataWithTimestamp).then(({data}) => { return searchProductionDispatchList(searchDataWithTimestamp).then(({data}) => {
this.dataList = data.rows;
console.log('数据加载完成,共', data.rows.length, '条记录');
//
this.dataList = [];
// 10
console.log('前10条记录的序号:');
data.rows.slice(0, 10).forEach((item, idx) => {
console.log(` ${idx}: ${item.orderNo}-工序${item.itemNo} | SeqNo:${item.seqNo} | serial_number:${item.serialNumber} | S_ScheduledSeqNo:${item.sScheduledSeqNo}`);
// tick
this.$nextTick(() => {
this.dataList = data.rows;
// tickDOM
this.$nextTick(() => {
if (this.$refs.dispatchTable) {
this.$refs.dispatchTable.clearSort();
}
});
}); });
return data.rows; return data.rows;

Loading…
Cancel
Save