This commit is contained in:
njdaoyehu 2024-11-22 13:30:45 +08:00
parent c2e77544c3
commit 547184d2fb

View File

@ -34,7 +34,8 @@
placement: 'topRight', placement: 'topRight',
}, },
ifShow: hasPermission('AUTH_DATA_TASK:DELETE'), ifShow: hasPermission('AUTH_DATA_TASK:DELETE'),
disabled: record.state !== 0 disabled: record.state !== 0,
divider: true,
}, },
{ {
label: '详情', label: '详情',
@ -47,13 +48,14 @@
icon: 'ant-design:download-outlined', icon: 'ant-design:download-outlined',
onClick: handleDownload.bind(null, record), onClick: handleDownload.bind(null, record),
divider: true, divider: true,
disabled: record.state !== 0 disabled: record.state !== 0 || !getDeviceConnected(record.deviceSn)
}, },
{ {
label: '同步数据', label: '同步数据',
icon: 'ant-design:sync-outlined', icon: 'ant-design:sync-outlined',
onClick: handleSync.bind(null, record), onClick: handleSync.bind(null, record),
divider: true divider: true,
disabled: !getDeviceConnected(record.deviceSn)
}, },
]" ]"
/> />
@ -76,6 +78,7 @@
import { useMessage } from "@/hooks/web/useMessage"; import { useMessage } from "@/hooks/web/useMessage";
import {SvgIcon} from "@/components/Icon"; import {SvgIcon} from "@/components/Icon";
import {h, ref} from "vue"; import {h, ref} from "vue";
import { onMounted, onUnmounted, computed } from "vue";
import { import {
DownloadOutlined, DownloadOutlined,
ImportOutlined, ImportOutlined,
@ -116,6 +119,7 @@
fixed: undefined, fixed: undefined,
}, },
}); });
const handleParams = (params) => { const handleParams = (params) => {
const { pageNum, pageSize, field = 'id', order = 'descend', ...rest } = params; const { pageNum, pageSize, field = 'id', order = 'descend', ...rest } = params;
const handledParams: any = { pageNum, pageSize, orderByClause: `${field} ${order === 'descend' ? 'desc' : 'asc'}` }; const handledParams: any = { pageNum, pageSize, orderByClause: `${field} ${order === 'descend' ? 'desc' : 'asc'}` };
@ -216,6 +220,31 @@
useMessage().createMessage.error(error); 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);
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@use '@/assets/custom.scss'; @use '@/assets/custom.scss';