hwh
2024-09-05 afcecb06505032ada09a4a2e33eed1f7979250e9
Web/src/views/device/alarmManage/index.vue
@@ -5,13 +5,16 @@
            <el-row style="display: flex;text-align: center;justify-content: center;height: 40px;">
               <el-button type="warning" style="width: 95%;height: 30px;" @click="reset">报警复位</el-button>
            </el-row>
            <el-table :data="tableData" border style="width: 100%" v-loading="loading"
            <el-table :data="paginatedData" border style="width: 100%" v-loading="loading"
               :default-sort="{ prop: 'date', order: 'descending' }">
               <el-table-column prop="alarmCode" label="变量" align="center"></el-table-column>
               <el-table-column prop="alarmName" label="描述" align="center"></el-table-column>
               <el-table-column prop="stationNum" label="位置" align="center"></el-table-column>
               <el-table-column prop="alarmTime" label="时间" align="center"></el-table-column>
            </el-table>
            <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize"
               :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background=""
               @size-change="handleSizeChange" @current-change="handleCurrentChange" layout="prev, pager, next" />
         </el-col>
         <el-col :span="19">
            <div class="card-page">
@@ -34,7 +37,7 @@
                  </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"
                        :class="['grid-item', { 'active': cell.IsUse === 1 }, { 'active2': cell.IsUse === 2 }, { 'active3': cell.IsUse === 3 }, { 'active3': cell.IsUse === 3 }, { 'active4': cell.IsUse === 4 }]">
@@ -49,39 +52,41 @@
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted } from 'vue';
import { Splitpanes, Pane } from 'splitpanes';
import { ref, reactive, onMounted, computed } from 'vue';
import 'splitpanes/dist/splitpanes.css';
import { Vue2 } from 'vue-demi';
import { listWcsAlarmInfo, resetWcsAlarmInfo } from '/@/api/wcs/wcsAlarmInfo';
import { signalR } from './signalR';
//连接signalR 监听变更
onMounted(async () => {
   signalR.off('PublicAlarm');
   signalR.on('PublicAlarm', (data: any) => {
      console.log(data);
      // 更新 tableData
      const index = tableData.value.findIndex(t => t.id == data.id);
      if (index === -1) {
         // 如果不存在,添加新数据
         tableData.value.unshift(data);
         tableParams.value.total = tableData.value.length;
      } else {
         if (data.status == 1) {
            // 如果状态为 1,更新数据
            tableData.value.splice(index, 1, data);
   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 {
            // 如果状态不是 1,报警消除
            tableData.value.splice(index, 1);
            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, data);
      updateCellData(cellsDataTwo, data);
      updateCellData(cellsDataThree, data);
         // 更新输送线数据
         updateCellData(cellsDataOne.value, data);
         updateCellData(cellsDataTwo.value, data);
         updateCellData(cellsDataThree.value, data);
      });
   });
});
// 更新输送线数据的通用函数
@@ -91,12 +96,26 @@
      if (data.status == 1) {
         foundCell.IsUse = 4;
      }
      else{
      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 },
@@ -152,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 },
@@ -765,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 },
@@ -1380,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 },
@@ -1893,7 +1912,7 @@
   { 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>([]);
@@ -1910,13 +1929,13 @@
   tableData.value = res.data.result;
   tableParams.value.total = tableData.value.length;
   //加载输送线数据
   cellsData.value = cellsDataOne;
   // 更新输送线数据
   updateCells(cellsDataOne);
   updateCells(cellsDataTwo);
   updateCells(cellsDataThree);
   updateCells(cellsDataOne.value);
   updateCells(cellsDataTwo.value);
   updateCells(cellsDataThree.value);
   //加载输送线数据
   cellsData.value = cellsDataOne.value;
   console.log(tableParams.value.total);
   loading.value = false;
@@ -1932,7 +1951,7 @@
//复位报警
const reset = async () => {
   await resetWcsAlarmInfo();
   await handleQuery();
   // await handleQuery();
}
@@ -1946,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>