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