From 0347d14e06fb92ff4d64fad22b73fce78de98e88 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期三, 28 八月 2024 13:24:16 +0800
Subject: [PATCH] 任务日志添加SignalR实时通讯刷新数据

---
 Web/src/views/wcs/wcsTask/index.vue |   49 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/Web/src/views/wcs/wcsTask/index.vue b/Web/src/views/wcs/wcsTask/index.vue
index eac32a8..5b4534c 100644
--- a/Web/src/views/wcs/wcsTask/index.vue
+++ b/Web/src/views/wcs/wcsTask/index.vue
@@ -4,8 +4,9 @@
       <el-col :span="12" :xs="24" style="display: flex; height: 100%; flex: 1">
         <el-card class="full-table" shadow="hover" ::body-style="{ height: 'calc(100% - 51px)' }">
           <template #header>
-						<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟鏃ュ織
-					</template>
+            <el-icon size="16"
+              style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟鏃ュ織
+          </template>
           <el-form :model="queryParams" ref="queryForm" labelWidth="90">
             <el-row>
               <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
@@ -53,8 +54,8 @@
               </el-col>
             </el-row>
           </el-form>
-          <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @row-click="handleClick"
-            @sort-change="sortChange" border="">
+          <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id"
+            @row-click="handleClick" @sort-change="sortChange" border="">
             <el-table-column type="index" label="搴忓彿" width="55" align="center" />
             <el-table-column prop="taskNo" label="浠诲姟鍙�" show-overflow-tooltip="" />
             <el-table-column prop="taskType" width="85" label="浠诲姟绫诲瀷" show-overflow-tooltip="">
@@ -104,8 +105,9 @@
       <el-col :span="12" :xs="24" style="display: flex; height: 100%; flex: 1">
         <el-card class="full-table" shadow="hover" :body-style="{ height: 'calc(100% - 51px)' }">
           <template #header>
-						<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟璇︽儏
-					</template>
+            <el-icon size="16"
+              style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟璇︽儏
+          </template>
           <el-form :model="queryParams2" ref="queryForm2" labelWidth="90">
             <el-row>
               <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
@@ -122,7 +124,8 @@
               </el-col>
             </el-row>
           </el-form>
-          <el-table :data="tableData2" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" border="">
+          <el-table :data="tableData2" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id"
+            border="">
             <el-table-column type="index" label="搴忓彿" width="55" align="center" />
             <el-table-column prop="taskNo" label="浠诲姟鍙�" show-overflow-tooltip="" />
             <el-table-column prop="plcId" label="浜や簰宸ヤ綅鍙�" show-overflow-tooltip="" />
@@ -146,22 +149,18 @@
 
 <script lang="ts" setup="" name="wcsTask">
 import ModifyRecord from '/@/components/table/modifyRecord.vue';
-import { ref } from "vue";
+import { onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, ElMessage } from "element-plus";
 import { auth } from '/@/utils/authFunction';
 
 import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
 import { getDictLabelByVal as dv } from '/@/utils/dict-utils';
-import { formatDate } from '/@/utils/formatTime';
-
 
 import printDialog from '/@/views/system/print/component/hiprint/preview.vue'
 import editDialog from '/@/views/wcs/wcsTask/component/editDialog.vue'
 import { pageWcsTask, deleteWcsTask } from '/@/api/wcs/wcsTask';
 import { pageWcsMonitorTask } from '/@/api/wcs/wcsTaskMonitor';
-import { getAPI } from '/@/utils/axios-utils';
-import { SysEnumApi } from '/@/api-services/api';
-import commonFunction from '/@/utils/commonFunction';
+import { signalR } from './signalR';
 
 const showAdvanceQueryUI = ref(false);
 const printDialogRef = ref();
@@ -183,7 +182,25 @@
 });
 const printWcsTaskTitle = ref("");
 const editWcsTaskTitle = ref("");
-
+//杩炴帴signalR 鐩戝惉鍚庡彴浠诲姟鏃ュ織鍙樻洿
+onMounted(async () => {
+  signalR.off('PublicTask');
+  signalR.on('PublicTask', (data: any) => {
+    console.log(data)
+    if (tableData.value.filter(t => t.id == data.id).length == 0) {
+      tableData.value.unshift(data)
+    }
+  });
+  signalR.off('PublicTaskMonitor');
+  signalR.on('PublicTaskMonitor', async (data: any) => {
+    console.log(data);
+    if (queryParams2.value.taskNo == undefined || queryParams2.value.taskNo == data.taskNo) {
+      if (tableData2.value.filter(t => t.id == data.id).length == 0) {
+        tableData2.value.unshift(data)
+      }
+    }
+  });
+});
 // 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
 const changeAdvanceQueryUI = () => {
   showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
@@ -239,8 +256,8 @@
 }
 // 鐐瑰嚮琛ㄦ牸
 const handleClick = (row: any, event: any, column: any) => {
-	queryParams2.value.taskNo = row.taskNo;
-	handleQuery2();
+  queryParams2.value.taskNo = row.taskNo;
+  handleQuery2();
 };
 // 鍒犻櫎
 const delWcsTask = (row: any) => {

--
Gitblit v1.8.0