jingshuyong 10 месяцев назад
Родитель
Сommit
6935d605b6

+ 6 - 0
src/views/productionPlan/index.vue

@@ -487,6 +487,12 @@
             align: 'center',
             minWidth: 160
           },
+          {
+            prop: 'mesStatusName',
+            label: '状态',
+            align: 'center',
+            minWidth: 160
+          },
           {
             prop: 'productCode',
             label: '编码',

+ 7 - 6
src/views/workOrder/components/releaseDialog.vue

@@ -184,7 +184,7 @@
           >
             <ele-pro-table
               class="table"
-              ref="tableRef"
+              :ref="`tableRef${index}`"
               :columns="columns"
               :datasource="item.list"
               cache-key="systemRoleTable"
@@ -274,10 +274,11 @@
                   @input="(e) => handleWeightInput(e, row, item)"
                 ></el-input>
               </template>
-              <template v-slot:teamTimeDetailId="{ row }">
+              <template v-slot:teamTimeIds="{ row }">
                 <el-select
                   :disabled="permissions(row)"
-                  v-model="row.teamTimeDetailId"
+                  multiple
+                  v-model="row.teamTimeIds"
                   placeholder="班次"
                   @change="(e) => shiftSelection(e, row, item)"
                 >
@@ -511,11 +512,11 @@
             width: 140
           },
           {
-            slot: 'teamTimeDetailId',
-            prop: 'teamTimeDetailId',
+            slot: 'teamTimeIds',
+            prop: 'teamTimeIds',
             label: '班次',
             align: 'center',
-            minWidth: 150
+            minWidth: 220
           },
           {
             slot: 'startTime',

+ 15 - 9
src/views/workOrder/index.vue

@@ -395,6 +395,12 @@
             align: 'center',
             minWidth: 160
           },
+          {
+            prop: 'mesStatusName',
+            label: '状态',
+            align: 'center',
+            minWidth: 160
+          },
           {
             prop: 'productionPlanCode',
             label: '计划编号',
@@ -538,15 +544,15 @@
             minWidth: 110,
             sortable: 'custom'
           },
-          {
-            slot: 'status',
-            label: '状态',
-            align: 'center',
-            formatter: (row) => {
-              const obj = this.statusOpt.find((i) => i.value == row.status);
-              return obj && obj.label;
-            }
-          },
+          // {
+          //   slot: 'status',
+          //   label: '状态',
+          //   align: 'center',
+          //   formatter: (row) => {
+          //     const obj = this.statusOpt.find((i) => i.value == row.status);
+          //     return obj && obj.label;
+          //   }
+          // },
           {
             prop: 'customerName',
             label: '客户名称',

+ 73 - 4
src/views/workOrder/mixins/release.js

@@ -335,8 +335,8 @@ export default {
           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);
@@ -660,7 +660,7 @@ export default {
           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);
         }
@@ -714,6 +714,7 @@ export default {
       row.quantity = value;
       this.calculateQuantity(row, item);
       this.bringWeight(row.quantity, row);
+      this.selectedListData(row, item);
     },
     // 自动算重量
     bringWeight(value, row) {
@@ -778,10 +779,14 @@ export default {
       // 更新绑定值
       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.$refs.tableRef0[0].setSelectedRowKeys(row.id);
+      // let data = this.shiftList.find((item) => item.id == e);
+      this.selectedListData(row, item);
+      let data = this.shifTimeData(e, row);
       let startTime = `${this.dateValue} ${data.startTime}`;
       let endTime = `${this.dateValue} ${data.endTime}`;
       this.$set(row, 'startTime', startTime);
@@ -789,11 +794,74 @@ export default {
       this.handleStartTimeChange(row, item);
       this.handleEndTimeChange(row, item);
     },
+    // 默认选中当前更改数据
+    selectedListData(row, item) {
+      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) {
@@ -873,6 +941,7 @@ export default {
       if (!row.endTime) {
         return;
       }
+      this.selectedListData(row, item);
       const endTime = new Date(row.endTime); // 结束时间
       // 当前工序的结束时间 不能大于后一道工序的开始时间
       if (item.index !== this.processList.length - 1) {