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,
|
};
|
}
|