|
@@ -111,8 +111,8 @@
|
|
|
schemas: rodLineSearchFormSchema,
|
|
|
},
|
|
|
defSort: {
|
|
|
- column: 'createTime,heatnoIndex',
|
|
|
- order: 'desc,desc',
|
|
|
+ column: 'createTime',
|
|
|
+ order: 'desc',
|
|
|
},
|
|
|
striped: true,
|
|
|
showActionColumn: false,
|
|
@@ -135,6 +135,14 @@
|
|
|
const handleSelectionChange = ({ keys, rows }) => {
|
|
|
// 如果选择是singleBillet 单支就不用管
|
|
|
if (Number(singleBillet.value) === 1) {
|
|
|
+ const groupNewArr = groupAndVirify(rows);
|
|
|
+ if (groupNewArr.length) {
|
|
|
+ selectedRowKeys.value = selectedGpRowKeys.value;
|
|
|
+ selectedRows.value = selectedGpRows.value;
|
|
|
+ createMessage.error(`所选钢坯${groupNewArr.join(',')}炉号不一致,请重新选择`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
selectedGpRowKeys.value = [...keys];
|
|
|
selectedGpRows.value = [...rows];
|
|
|
return;
|
|
@@ -188,6 +196,17 @@
|
|
|
// );
|
|
|
// noSameLength = noSameLength.concat(steelIds);
|
|
|
// }
|
|
|
+ // 验证炉号是否一致
|
|
|
+ const isSameHeatNo = groupDatas.every((item) => item.heatNo === groupDatas[0].heatNo);
|
|
|
+ if (!isSameHeatNo) {
|
|
|
+ createMessage.error(
|
|
|
+ `所选钢坯${groupDatas
|
|
|
+ .filter((item) => steelIds.includes(item.id))
|
|
|
+ .map((item) => item.billetNo)
|
|
|
+ .join(',')}炉号不一致,请重新选择`
|
|
|
+ );
|
|
|
+ noSameLength = noSameLength.concat(steelIds);
|
|
|
+ }
|
|
|
|
|
|
// 判断是否存在钢坯定尺一样的数据
|
|
|
const filterNewRows = newRows.filter((item) => !noSameLength.includes(item.id));
|
|
@@ -280,6 +299,19 @@
|
|
|
selectedGpRows.value = [...afterDeleteRows];
|
|
|
};
|
|
|
|
|
|
+ // 对数据进行分组,并验证炉号是否一致
|
|
|
+ const groupAndVirify = (rows) => {
|
|
|
+ const groupNewArr = groupArray(rows, STEEL_GROUP_NUM);
|
|
|
+ let groupNoSameHeatNo: string[] = [];
|
|
|
+ for (let index = 0; index < groupNewArr.length; index++) {
|
|
|
+ const hasNoSameHeatNo = groupNewArr[index].every((item) => item.heatNo === groupNewArr[index][0].heatNo);
|
|
|
+ if (!hasNoSameHeatNo) {
|
|
|
+ groupNoSameHeatNo.push(groupNewArr[index].map((item) => item.billetNo).join(','));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return groupNoSameHeatNo;
|
|
|
+ };
|
|
|
+
|
|
|
// 组装数据
|
|
|
const handleSubmitData = () => {
|
|
|
if (!selectedRowKeys.value.length) {
|
|
@@ -293,12 +325,18 @@
|
|
|
// createMessage.error('所选钢坯定尺不一致,请重新选择');
|
|
|
// return false;
|
|
|
// }
|
|
|
+ // 将所选钢坯,分四个为一组,验证炉号是否一致
|
|
|
+ const groupNewArr = groupAndVirify(selectedRows.value);
|
|
|
+ if (groupNewArr.length) {
|
|
|
+ createMessage.error(`所选钢坯${groupNewArr.join(',')}炉号不一致,请重新选择`);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
const curRodLine = rodLineList.value.find((item) => item.id === activeKey.value);
|
|
|
console.log('selectedRows.value', rodLineList, activeKey.value);
|
|
|
// 如果是棒一,不限制四根,其他的限制4根
|
|
|
if (!NO_LIMIT_GROUP_DESTINATION.includes(curRodLine?.belongTable) && selectedRowKeys.value.length && selectedRowKeys.value.length % 4 !== 0) {
|
|
|
- createMessage.error('钢坯需要4支为一组,现已选择' + selectedRowKeys.value.length + '根钢坯');
|
|
|
+ createMessage.error('钢坯需要 4 支为一组,现已选择 ' + selectedRowKeys.value.length + ' 支钢坯');
|
|
|
return false;
|
|
|
}
|
|
|
|