import { ElMessage } from 'element-plus'; import { ref } from 'vue'; import { postSendCmd } from '@/api/device-cmd'; import { DeviceCmd } from '@/types/device-cmd'; export function useDockControl() { const dockControlPanelVisible = ref(false); function setDockControlPanelVisible(visible) { dockControlPanelVisible.value = visible; } // 远程调试开关 async function dockDebugOnOff(sn, on) { const result = await sendDockControlCmd( { sn: sn, cmd: on ? DeviceCmd.DebugModeOpen : DeviceCmd.DebugModeClose, }, false ); return result; } // 发送指令 async function sendDockControlCmd(params, tip = true) { let body = undefined; if (params.action !== undefined) { if (params.cmd === DeviceCmd.SdrWorkModeSwitch) { body = { link_workmode: params.action, }; } else { body = { action: params.action, }; } } try { const res = await postSendCmd({ dock_sn: params.sn, device_cmd: params.cmd }, body); if (res.data.code === 0) { tip && ElMessage({ message: '指令发送成功', type: 'success', }); return true; } } catch (error) { return false; } return false; } // 控制面板关闭 async function onCloseControlPanel(sn) { console.log(dockControlPanelVisible.value, 'value'); await dockDebugOnOff(sn, false); setDockControlPanelVisible(false); } return { dockControlPanelVisible, setDockControlPanelVisible, sendDockControlCmd, dockDebugOnOff, onCloseControlPanel, }; }