|
|
@@ -168,13 +168,14 @@
|
|
|
:name="item.id"
|
|
|
>
|
|
|
<ele-pro-table
|
|
|
- ref="tableRef"
|
|
|
+ :ref="`tableRef${index}`"
|
|
|
v-loading="tabLoading"
|
|
|
:columns="columns"
|
|
|
:datasource="item.list"
|
|
|
:pageSize="20"
|
|
|
:selection.sync="item.selection"
|
|
|
cache-key="systemRoleTable"
|
|
|
+ row-key="id"
|
|
|
class="table"
|
|
|
>
|
|
|
<template v-slot:toolbar>
|
|
|
@@ -269,9 +270,10 @@
|
|
|
@input="(e) => handleWeightInput(e, row, item)"
|
|
|
></el-input>
|
|
|
</template>
|
|
|
- <template v-slot:teamTimeDetailId="{ row }">
|
|
|
+ <template v-slot:teamTimeIds="{ row }">
|
|
|
<el-select
|
|
|
- v-model="row.teamTimeDetailId"
|
|
|
+ v-model="row.teamTimeIds"
|
|
|
+ multiple
|
|
|
placeholder="班次"
|
|
|
:disabled="permissions(row, item)"
|
|
|
@change="(e) => shiftSelection(e, row, item)"
|
|
|
@@ -516,11 +518,11 @@
|
|
|
width: 140
|
|
|
},
|
|
|
{
|
|
|
- slot: 'teamTimeDetailId',
|
|
|
- prop: 'teamTimeDetailId',
|
|
|
+ slot: 'teamTimeIds',
|
|
|
+ prop: 'teamTimeIds',
|
|
|
label: '班次',
|
|
|
align: 'center',
|
|
|
- minWidth: 140
|
|
|
+ minWidth: 220
|
|
|
},
|
|
|
{
|
|
|
slot: 'startTime',
|
|
|
@@ -591,7 +593,6 @@
|
|
|
this.form.factoryName = res[0].factoryName;
|
|
|
this.form.workCenterId = res[0].id;
|
|
|
this.factoriesId = res[0].factoryId;
|
|
|
- console.log(res, 'res 工作中心数据');
|
|
|
// 查首工序
|
|
|
this.changeWork(res[0].id); // 选择工作中心
|
|
|
this.getProductionData(res[0].id); // 查询产线
|
|
|
@@ -841,8 +842,8 @@
|
|
|
assigneeType: row.assignType,
|
|
|
assigneeName: item.name
|
|
|
};
|
|
|
- if (item.teamTimeDetailId) {
|
|
|
- Aobj.teamTimeDetailId = item.teamTimeDetailId;
|
|
|
+ if (item.teamTimeIds) {
|
|
|
+ Aobj.teamTimeIds = item.teamTimeIds;
|
|
|
}
|
|
|
assignees.push(Aobj);
|
|
|
changeIds.push(item.changeId);
|
|
|
@@ -870,6 +871,8 @@
|
|
|
workCenterName: this.form.workCenterName,
|
|
|
workOrderId: this.current.apsWorkOrderId,
|
|
|
sourceType: 2,
|
|
|
+ mesWorkOrderId: this.current.id,
|
|
|
+ mesWorkOrderCode: this.current.code,
|
|
|
assignees
|
|
|
};
|
|
|
}
|
|
|
@@ -1027,7 +1030,7 @@
|
|
|
listArr[idx].quantity = item.quantity;
|
|
|
listArr[idx].weight = item.weight;
|
|
|
listArr[idx].changeId = item.id;
|
|
|
- listArr[idx].teamTimeDetailId = item.teamTimeDetailId;
|
|
|
+ listArr[idx].teamTimeIds = item.teamTimeIds;
|
|
|
this.compareAndSetTime(listArr[idx], dataRow);
|
|
|
this.compareEndSetTime(listArr[idx], dataRow);
|
|
|
}
|
|
|
@@ -1080,6 +1083,7 @@
|
|
|
row.quantity = value;
|
|
|
this.calculateQuantity(row, item);
|
|
|
this.bringWeight(row.quantity, row);
|
|
|
+ this.selectedListData(row, item);
|
|
|
},
|
|
|
// 自动算重量
|
|
|
bringWeight(value, row) {
|
|
|
@@ -1144,10 +1148,13 @@
|
|
|
// 更新绑定值
|
|
|
row.weight = value;
|
|
|
this.calculateWeight(row, item);
|
|
|
+ this.selectedListData(row, item);
|
|
|
},
|
|
|
// 选中班次
|
|
|
shiftSelection(e, row, item) {
|
|
|
- let data = this.shiftList.find((item) => item.id == e);
|
|
|
+ // this.selectedListData(row, item);
|
|
|
+ let data = this.shifTimeData(e, row);
|
|
|
+ // let data = this.shiftList.find((item) => item.id == e);
|
|
|
let startTime = `${this.dateValue} ${data.startTime}`;
|
|
|
let endTime = `${this.dateValue} ${data.endTime}`;
|
|
|
this.$set(row, 'startTime', startTime);
|
|
|
@@ -1155,11 +1162,78 @@
|
|
|
this.handleStartTimeChange(row, item);
|
|
|
this.handleEndTimeChange(row, item);
|
|
|
},
|
|
|
+ // 默认选中当前更改数据
|
|
|
+ selectedListData(row, item) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ let data = item.selection.find((el) => el.id == row.id);
|
|
|
+ if (!data) {
|
|
|
+ let ids = item.selection.map((el) => el.id);
|
|
|
+ ids.push(row.id);
|
|
|
+ let tab = `tableRef${[item.index]}`;
|
|
|
+ this.$refs[tab][0].setSelectedRowKeys(ids);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 多选班次时间数据
|
|
|
+ shifTimeData(e, row) {
|
|
|
+ if (!e || e.length == 0) {
|
|
|
+ return {
|
|
|
+ startTime: row.startTime,
|
|
|
+ endTime: row.endTime
|
|
|
+ };
|
|
|
+ }
|
|
|
+ let startTime = '';
|
|
|
+ let endTime = '';
|
|
|
+ e.map((el) => {
|
|
|
+ let obj = this.shiftList.find((item) => item.id == el);
|
|
|
+ if (!startTime) {
|
|
|
+ startTime = obj.startTime;
|
|
|
+ }
|
|
|
+ if (!endTime) {
|
|
|
+ endTime = obj.endTime;
|
|
|
+ }
|
|
|
+ // 获取更小的
|
|
|
+ startTime =
|
|
|
+ this.compareTime(startTime, obj.startTime) !== -1
|
|
|
+ ? obj.startTime
|
|
|
+ : startTime;
|
|
|
+ // 获取更大的
|
|
|
+ endTime =
|
|
|
+ this.compareTime(endTime, obj.endTime) !== 1
|
|
|
+ ? obj.endTime
|
|
|
+ : endTime;
|
|
|
+ });
|
|
|
+
|
|
|
+ return {
|
|
|
+ startTime,
|
|
|
+ endTime
|
|
|
+ };
|
|
|
+ },
|
|
|
+ // 将HH:mm:ss格式的时间转换为总秒数
|
|
|
+ timeToSeconds(timeStr) {
|
|
|
+ const [hours, minutes, seconds] = timeStr.split(':').map(Number);
|
|
|
+ return hours * 3600 + minutes * 60 + seconds;
|
|
|
+ },
|
|
|
+ // this.$refs.table.setSelectedRowKeys(ids);
|
|
|
+ // 比较两个时间的大小
|
|
|
+ compareTime(time1, time2) {
|
|
|
+ const sec1 = this.timeToSeconds(time1);
|
|
|
+ const sec2 = this.timeToSeconds(time2);
|
|
|
+
|
|
|
+ if (sec1 > sec2) {
|
|
|
+ return 1; // time1 更大
|
|
|
+ } else if (sec1 < sec2) {
|
|
|
+ return -1; // time2 更大
|
|
|
+ } else {
|
|
|
+ return 0; // 两个时间相等
|
|
|
+ }
|
|
|
+ },
|
|
|
// 【开始时间变化时】触发
|
|
|
handleStartTimeChange(row, item) {
|
|
|
if (!row.startTime) {
|
|
|
return;
|
|
|
}
|
|
|
+ this.selectedListData(row, item);
|
|
|
// 这一道工序的开始时间 不能小于前一道工序的结束时间
|
|
|
const startTime = new Date(row.startTime); // 开始时间
|
|
|
if (item.index !== 0) {
|
|
|
@@ -1239,6 +1313,7 @@
|
|
|
if (!row.endTime) {
|
|
|
return;
|
|
|
}
|
|
|
+ this.selectedListData(row, item);
|
|
|
const endTime = new Date(row.endTime); // 结束时间
|
|
|
// 当前工序的结束时间 不能大于后一道工序的开始时间
|
|
|
if (item.index !== this.processList.length - 1) {
|