From 547184d2fb586f6e8a2e59ac9190ad4d533d6d1c Mon Sep 17 00:00:00 2001 From: njdaoyehu Date: Fri, 22 Nov 2024 13:30:45 +0800 Subject: [PATCH] fixed --- src/views/data/task/index.vue | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/views/data/task/index.vue b/src/views/data/task/index.vue index 058096b..cd95a33 100644 --- a/src/views/data/task/index.vue +++ b/src/views/data/task/index.vue @@ -34,7 +34,8 @@ placement: 'topRight', }, ifShow: hasPermission('AUTH_DATA_TASK:DELETE'), - disabled: record.state !== 0 + disabled: record.state !== 0, + divider: true, }, { label: '详情', @@ -47,13 +48,14 @@ icon: 'ant-design:download-outlined', onClick: handleDownload.bind(null, record), divider: true, - disabled: record.state !== 0 + disabled: record.state !== 0 || !getDeviceConnected(record.deviceSn) }, { label: '同步数据', icon: 'ant-design:sync-outlined', onClick: handleSync.bind(null, record), - divider: true + divider: true, + disabled: !getDeviceConnected(record.deviceSn) }, ]" /> @@ -76,6 +78,7 @@ import { useMessage } from "@/hooks/web/useMessage"; import {SvgIcon} from "@/components/Icon"; import {h, ref} from "vue"; + import { onMounted, onUnmounted, computed } from "vue"; import { DownloadOutlined, ImportOutlined, @@ -116,6 +119,7 @@ fixed: undefined, }, }); + const handleParams = (params) => { const { pageNum, pageSize, field = 'id', order = 'descend', ...rest } = params; const handledParams: any = { pageNum, pageSize, orderByClause: `${field} ${order === 'descend' ? 'desc' : 'asc'}` }; @@ -216,6 +220,31 @@ useMessage().createMessage.error(error); }); }; + + const deviceConnectedList = ref([]) + + const getDeviceConnected = computed(() => { + return (sn) => { + return deviceConnectedList.value[sn] ? deviceConnectedList.value[sn] : false; + }; + }); + + const timer = ref(0) + + onMounted(()=> { + timer.value = setInterval(() => { + DeviceClientService.getDeviceConnected().then((d) => { + deviceConnectedList.value = d; + }, error => { + useMessage().createMessage.error(error); + }); + }, 300); + }); + + onUnmounted(()=> { + clearInterval(timer.value); + }); +