Эх сурвалжийг харах

修改样式;
热装和起垛增加炉号是否一致限制;

zhangafei 4 долоо хоног өмнө
parent
commit
f5eba7a302

+ 9 - 0
src/App.vue

@@ -787,6 +787,15 @@
             }
           }
         }
+
+        .heat-title {
+          color: var(--fn-color);
+        }
+      }
+
+      .dtl-wrapper .dtl,
+      .filter-items-container .filter-item-title {
+        color: var(--fn-color);
       }
     }
 

+ 17 - 7
src/views/billet/hotDelivery/hotDelivery.data.ts

@@ -208,15 +208,20 @@ export const rodLineColumns: BasicColumn[] = [
     align: 'center',
     dataIndex: 'grade',
   },
+  // {
+  //   title: '开始切割时间',
+  //   align: 'center',
+  //   dataIndex: 'createTime',
+  // },
+  // {
+  //   title: '停止切割时间',
+  //   align: 'center',
+  //   dataIndex: 'cutStopTime',
+  // },
   {
-    title: '开始切割时间',
-    align: 'center',
-    dataIndex: 'cutStartTime',
-  },
-  {
-    title: '停止切割时间',
+    title: '创建时间',
     align: 'center',
-    dataIndex: 'cutStopTime',
+    dataIndex: 'createTime',
   },
 ];
 
@@ -253,6 +258,11 @@ export const rodLineSearchFormSchema: FormSchema[] = [
 
 // 棒线选中的钢坯
 export const selectedRodLineColumns: BasicColumn[] = [
+  {
+    title: '炉号',
+    align: 'center',
+    dataIndex: 'heatNo',
+  },
   {
     title: '坯号',
     align: 'center',

+ 41 - 3
src/views/billet/shippingBill/components/hotCharging/rodLine.vue

@@ -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;
     }
 

+ 28 - 9
src/views/billet/stackingManage/components/stacking.vue

@@ -276,15 +276,25 @@
       let groupDatas: any[] = [];
       // 如果是单支选择
       if (singleBillet.value == '1' && newData.length === 1) {
-        singleSelectBillers.value.push(diffRows[0]);
-        newKeys = newKeys.concat([diffRows[0].id]);
-        newRows = newRows.concat([diffRows[0]]);
-
-        if (singleSelectBillers.value.length === 4) {
-          groupDatas = [...singleSelectBillers.value];
-          setTimeout(() => {
-            singleSelectBillers.value = [];
-          }, 300);
+        // 判断炉号是否相同
+        const isSameHeatNo = singleSelectBillers.value.every((item) => item.heatNo === diffRows[0].heatNo);
+
+        if (!isSameHeatNo) {
+          createMessage.error(
+            `所选钢坯${singleSelectBillers.value.map((item) => item.billetNo).join(',')},${diffRows[0].billetNo}炉号不一致,请重新选择`
+          );
+          noSameLength.push(diffRows[0].id);
+        } else {
+          singleSelectBillers.value.push(diffRows[0]);
+          newKeys = newKeys.concat([diffRows[0].id]);
+          newRows = newRows.concat([diffRows[0]]);
+
+          if (singleSelectBillers.value.length === 4) {
+            groupDatas = [...singleSelectBillers.value];
+            setTimeout(() => {
+              singleSelectBillers.value = [];
+            }, 300);
+          }
         }
       }
 
@@ -325,6 +335,15 @@
         //   noSameLength = noSameLength.concat(steelIds);
         //   continue;
         // }
+
+        // 判断当前组,是否炉号不同
+        const isSameHeatNo = element.every((item) => item.heatNo === element[0].heatNo);
+        if (!isSameHeatNo) {
+          createMessage.error(`所选钢坯${steelIds.join(',')}炉号不一致,请重新选择`);
+          noSameLength = noSameLength.concat(steelIds);
+          continue;
+        }
+
         // 如果层数大于20层代表已经满了
         if (Number(activeKey.value) > STEEL_MAX_LAYER_NUM) {
           createMessage.error(`当前堆垛已满,请选择其他堆垛`);

+ 1 - 1
src/views/billet/storageAndTransportation/components/car.vue

@@ -18,7 +18,7 @@
             <a-descriptions-item label="本车次序号">{{ baseInfo?.carNum }}</a-descriptions-item>
             <a-descriptions-item label="组坯号" :column="2" :style="{ marginTop: 12 }">
               <div class="flex flex-wrap zupiNum">
-                <a-tag :bordered="false" style="background-color: transparent; font-size: 16px" v-for="item in baseInfo?.assemblyNumber.split(',')">{{
+                <a-tag :bordered="false" color="#108ee9" style="font-size: 16px" v-for="item in baseInfo?.assemblyNumber.split(',')">{{
                   item
                 }}</a-tag>
               </div>