hwh
2024-09-05 afcecb06505032ada09a4a2e33eed1f7979250e9
Web/src/views/device/alarmManage/index.vue
@@ -37,9 +37,9 @@
                  </div>
               </div>
               <div class="grid-container">
                  <div v-for="cell in cellsData" :key="cell.Id">
                  <div v-for="cell in cellsData">
                     <!-- IsUse状态 0:正常 1:有物品 2:非工位 3:小车路线 4:故障 -->
                     <div v-if="cell.IsShow === 0"
                     <div v-if="cell.IsShow === 0"
                        :class="['grid-item', { 'active': cell.IsUse === 1 }, { 'active2': cell.IsUse === 2 }, { 'active3': cell.IsUse === 3 }, { 'active3': cell.IsUse === 3 }, { 'active4': cell.IsUse === 4 }]">
                        <div>{{ cell.Code }}</div>
                     </div>
@@ -56,7 +56,66 @@
import 'splitpanes/dist/splitpanes.css';
import { listWcsAlarmInfo, resetWcsAlarmInfo } from '/@/api/wcs/wcsAlarmInfo';
import { signalR } from './signalR';
//连接signalR 监听变更
onMounted(async () => {
   signalR.off('PublicAlarm');
   signalR.on('PublicAlarm', (dataArray: any) => {
      dataArray.forEach(data => {
         console.log(data);
         // 更新 tableData
         const index = tableData.value.findIndex(t => t.id == data.id);
         if (index === -1 && data.status == 1) {
            // 如果不存在,添加新数据
            tableData.value.unshift(data);
            tableParams.value.total = tableData.value.length;
         } else {
            if (data.status == 1) {
               // 如果状态为 1,更新数据
               if (index !== -1) {
                  tableData.value.splice(index, 1, data);
               }
            } else {
               // 如果状态不是 1,报警消除
               if (index !== -1) {
                  tableData.value.splice(index, 1);
               }
            }
         }
         // 更新输送线数据
         updateCellData(cellsDataOne.value, data);
         updateCellData(cellsDataTwo.value, data);
         updateCellData(cellsDataThree.value, data);
      });
   });
});
// 更新输送线数据的通用函数
function updateCellData(cellsData: any[], data: any) {
   const foundCell = cellsData.find(cell => cell.Code === data.stationNum);
   if (foundCell) {
      if (data.status == 1) {
         foundCell.IsUse = 4;
      }
      else {
         foundCell.IsUse = 0;
      }
   }
}
// 改变页面容量
const handleSizeChange = (val: number) => {
   tableParams.value.pageSize = val;
};
// 改变页码序号
const handleCurrentChange = (val: number) => {
   tableParams.value.page = val;
};
//表格显示数据
const paginatedData = computed(() => {
   const start = (tableParams.value.page - 1) * tableParams.value.pageSize
   const end = start + tableParams.value.pageSize
   return tableData.value.slice(start, end)
})
//堆垛机数据
const cellsDataLine = [
   { Id: 1, Code: '001', LineCode: '', EndLocat: '', IsShow: 1, IsUse: 0, BoxHeight: 10 },
@@ -112,7 +171,7 @@
   { Id: 51, Code: '051', LineCode: '', EndLocat: '', IsShow: 1, IsUse: 0, BoxHeight: 10 },
];
//一层输送线数据
const cellsDataOne = [
const cellsDataOne = ref([
   { Id: 1, Code: '147', IsShow: 0, IsUse: 0 },
   { Id: 2, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 3, Code: '145', IsShow: 0, IsUse: 0 },
@@ -725,9 +784,9 @@
   { Id: 610, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 611, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 612, Code: '', IsShow: 1, IsUse: 0 },
];
]);
//二层输送线数据
const cellsDataTwo = [
const cellsDataTwo = ref([
   { Id: 1, Code: '', IsShow: 0, IsUse: 2 },
   { Id: 2, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 3, Code: '', IsShow: 0, IsUse: 2 },
@@ -1340,9 +1399,9 @@
   { Id: 610, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 611, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 612, Code: '', IsShow: 1, IsUse: 0 },
];
]);
//三层输送线数据
const cellsDataThree = [
const cellsDataThree = ref([
   { Id: 1, Code: '', IsShow: 0, IsUse: 2 },
   { Id: 2, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 3, Code: '', IsShow: 0, IsUse: 2 },
@@ -1547,56 +1606,56 @@
   { Id: 202, Code: '', IsShow: 0, IsUse: 2 },
   { Id: 203, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 204, Code: '', IsShow: 0, IsUse: 2 },
   { Id:205 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:206 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:207 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:208 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:209 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:210 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:211 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:212 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:213 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:214 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:215 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:216 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:217 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:218 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:219 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:220 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:221 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:222 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:223 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:224 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:225 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:226 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:227 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:228 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:229 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:230 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:231 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:232 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:233 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:234 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:235 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:236 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:237 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:238 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:239 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:240 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:241 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:242 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:243 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:244 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:245 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:246 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:247 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:248 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:249 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:250 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:251 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:252 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:253 , Code: '', IsShow: 0, IsUse: 3 },
   { Id:254 , Code: '', IsShow: 0, IsUse: 3 },
   { Id: 205, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 206, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 207, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 208, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 209, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 210, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 211, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 212, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 213, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 214, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 215, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 216, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 217, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 218, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 219, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 220, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 221, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 222, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 223, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 224, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 225, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 226, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 227, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 228, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 229, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 230, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 231, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 232, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 233, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 234, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 235, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 236, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 237, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 238, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 239, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 240, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 241, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 242, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 243, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 244, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 245, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 246, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 247, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 248, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 249, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 250, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 251, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 252, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 253, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 254, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 255, Code: '', IsShow: 0, IsUse: 3 },
   { Id: 256, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 257, Code: '', IsShow: 1, IsUse: 0 },
@@ -1853,9 +1912,9 @@
   { Id: 508, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 509, Code: '', IsShow: 1, IsUse: 0 },
   { Id: 510, Code: '', IsShow: 1, IsUse: 0 },
];
]);
//加载输送线数据
let cellsData=ref<any>([]);
let cellsData = ref<any>([]);
const tableParams = ref({
   page: 1,
@@ -1870,76 +1929,30 @@
   tableData.value = res.data.result;
   tableParams.value.total = tableData.value.length;
   //处理一楼输送线数据
   tableData.value.forEach((item) => {
      const foundCell = cellsDataOne.find(cell => cell.Code === item.stationNum);
      if (foundCell) {
         foundCell.IsUse = 4;
      }
   });
   // 更新输送线数据
   updateCells(cellsDataOne.value);
   updateCells(cellsDataTwo.value);
   updateCells(cellsDataThree.value);
   //加载输送线数据
   cellsData.value =cellsDataOne;
   //处理二楼输送线数据
   tableData.value.forEach((item) => {
      const foundCell = cellsDataTwo.find(cell => cell.Code === item.stationNum);
      if (foundCell) {
         foundCell.IsUse = 4;
      }
   });
   //处理三楼输送线数据
   tableData.value.forEach((item) => {
      const foundCell = cellsDataThree.find(cell => cell.Code === item.stationNum);
      if (foundCell) {
         foundCell.IsUse = 4;
      }
   });
   cellsData.value = cellsDataOne.value;
   console.log(tableParams.value.total);
   loading.value = false;
};
// 更新输送线数据的通用函数
function updateCells(cellsData: any[]) {
   tableData.value.forEach((item) => {
      updateCellData(cellsData, item);
   });
}
handleQuery();
//复位报警
const reset = async () => {
   await resetWcsAlarmInfo();
   // await handleQuery();
}
//连接signalR 监听变更
onMounted(async () => {
   signalR.off('PublicAlarm');
   signalR.on('PublicAlarm', (data: any) => {
      console.log(data)
      var listAlarm = tableData.value.filter(t => t.id == data.id);
      if (listAlarm.length == 0) {
         tableData.value.unshift(data)
         tableParams.value.total = tableData.value.length;
      }
      else {
         //如果已经存在就更新数据
         const index = tableData.value.findIndex(t => t.id == data.id);
         tableData.value.splice(index, 1, data);
      }
   });
});
// 改变页面容量
const handleSizeChange = (val: number) => {
   tableParams.value.pageSize = val;
};
// 改变页码序号
const handleCurrentChange = (val: number) => {
   tableParams.value.page = val;
};
//表格显示数据
const paginatedData = computed(() => {
   const start = (tableParams.value.page - 1) * tableParams.value.pageSize
   const end = start + tableParams.value.pageSize
   return tableData.value.slice(start, end)
})
const isPlain1 = ref(false);//一层
@@ -1952,19 +1965,19 @@
      isPlain2.value = true;
      isPlain3.value = true;
      //切换输送线数据
      cellsData.value = cellsDataOne;
      cellsData.value = cellsDataOne.value;
   } else if (buttonNumber === 2) {
      isPlain2.value = !isPlain2.value;
      isPlain1.value = true;
      isPlain3.value = true;
      //切换输送线数据
      cellsData.value = cellsDataTwo;
      cellsData.value = cellsDataTwo.value;
   } else if (buttonNumber === 3) {
      isPlain3.value = !isPlain3.value;
      isPlain1.value = true;
      isPlain2.value = true;
      //切换输送线数据
      cellsData.value = cellsDataThree;
      cellsData.value = cellsDataThree.value;
   }
}
</script>
@@ -2080,8 +2093,9 @@
   /* 每行高度 */
   gap: 0px;
   /* Gap between cells */
   margin-top: -20px;;
   margin-top: -20px;
   ;
}
.grid-item {
@@ -2115,13 +2129,16 @@
.active2>div {
   display: none;
}
.active3 {
   background-color: #fff;
   border:1px solid red;
   border: 1px solid red;
}
.active3>div {
   display: none;
}
.active4 {
   background-color: red;
}