2 changed files with 86 additions and 0 deletions
@ -0,0 +1,73 @@ |
|||
<template> |
|||
<a-modal v-if="enable" v-model:open="enable" title="设备关机中..." |
|||
:closable="false" |
|||
:mask-closable="false" |
|||
:footer="false" |
|||
> |
|||
<p>设备正在复位中 ...</p> |
|||
<p>{{ message }}</p> |
|||
</a-modal> |
|||
|
|||
<a-modal v-if="hasFinished" v-model:open="hasFinished" |
|||
title="设备停止复位完成, 现在可以安全断开电源" |
|||
:closable="false" |
|||
:mask-closable="false" |
|||
:footer="false" |
|||
></a-modal> |
|||
</template> |
|||
<script setup> |
|||
import { ref, onMounted } from 'vue'; |
|||
import { Modal } from 'ant-design-vue'; |
|||
import { useAppStore } from '@/stores/AppStore'; |
|||
import ApiClient from '@/utils/ApiClient'; |
|||
// expose methods |
|||
defineExpose({start}); |
|||
/** @var {Ref<boolean>} */ |
|||
const enable = ref(false); |
|||
/** @var {Ref<string>} */ |
|||
const message = ref(''); |
|||
/** @var {AppStore} */ |
|||
const appStore = useAppStore(); |
|||
/** @var {Boolean} */ |
|||
const hasFinished = ref(false); |
|||
// on mounted |
|||
onMounted(mounted); |
|||
|
|||
// on mounted |
|||
function mounted() { |
|||
appStore.registerNotificationHandler('TaskStopResetFinished', handleTaskStopResetFinished); |
|||
} |
|||
|
|||
// handle finished |
|||
function handleTaskStopResetFinished() { |
|||
enable.value = false; |
|||
hasFinished.value = true; |
|||
} |
|||
|
|||
// start |
|||
async function start() { |
|||
Modal.confirm({ |
|||
title: '是否停止当前设备?', |
|||
okText: '确定', |
|||
cancelText: '取消', |
|||
async onOk() { |
|||
let client = ApiClient.getClient(); |
|||
try { |
|||
await client.taskAppend('StopReset'); |
|||
refreshMessage(); |
|||
} catch ( e ) { |
|||
Modal.error({title: '任务执行失败',content: e.message}); |
|||
return ; |
|||
} |
|||
enable.value = true; |
|||
}, |
|||
}); |
|||
} |
|||
|
|||
// refresh message |
|||
async function refreshMessage() { |
|||
let client = ApiClient.getClient(); |
|||
message.value = await client.deviceRuntimeVariableGet('TaskStopResetMessage'); |
|||
setTimeout(refreshMessage, 200); |
|||
} |
|||
</script> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue