|
@@ -51,7 +51,7 @@
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import type { VNodeChild } from 'vue'
|
|
import type { VNodeChild } from 'vue'
|
|
|
-import { NButton, NInput, NLog, NButtonGroup, NSelect, NAutoComplete, NTag } from 'naive-ui'
|
|
|
|
|
|
|
+import { NButton, NInput, NLog, NButtonGroup, NSelect, NAutoComplete, NTag, useMessage } from 'naive-ui'
|
|
|
import type { AutoCompleteGroupOption, AutoCompleteOption, SelectOption } from 'naive-ui'
|
|
import type { AutoCompleteGroupOption, AutoCompleteOption, SelectOption } from 'naive-ui'
|
|
|
import { sendXlogCmd } from '@/service/xlog'
|
|
import { sendXlogCmd } from '@/service/xlog'
|
|
|
import { useXlogViewsStateStore } from '@/stores/modules/views/xlogViewsState'
|
|
import { useXlogViewsStateStore } from '@/stores/modules/views/xlogViewsState'
|
|
@@ -64,6 +64,7 @@ const { uuid, sn, version } = defineProps<{
|
|
|
}>()
|
|
}>()
|
|
|
|
|
|
|
|
const xlogViewsStateStore = useXlogViewsStateStore()
|
|
const xlogViewsStateStore = useXlogViewsStateStore()
|
|
|
|
|
+const message = useMessage()
|
|
|
|
|
|
|
|
let inputCmdIndex = -1
|
|
let inputCmdIndex = -1
|
|
|
let inputCmdTemp = ''
|
|
let inputCmdTemp = ''
|
|
@@ -210,21 +211,37 @@ const inputCmdOptionsRenderLabel = (option: SelectOption): VNodeChild => {
|
|
|
|
|
|
|
|
const disabledSendCmd = ref<boolean>(true)
|
|
const disabledSendCmd = ref<boolean>(true)
|
|
|
const loadingSendCmd = ref<boolean>(false)
|
|
const loadingSendCmd = ref<boolean>(false)
|
|
|
-const handleSendCmd = async () => {
|
|
|
|
|
|
|
+const handleSendCmd = () => {
|
|
|
loadingSendCmd.value = true
|
|
loadingSendCmd.value = true
|
|
|
const cmdString = inputCmd.value
|
|
const cmdString = inputCmd.value
|
|
|
let sendCmdString = cmdString
|
|
let sendCmdString = cmdString
|
|
|
if (cmdType.value === 'bash_c') {
|
|
if (cmdType.value === 'bash_c') {
|
|
|
sendCmdString = toBashC(cmdString)
|
|
sendCmdString = toBashC(cmdString)
|
|
|
}
|
|
}
|
|
|
- const res = await sendXlogCmd(uuid, sendCmdString)
|
|
|
|
|
- cmdList.value.push({
|
|
|
|
|
- send: cmdString,
|
|
|
|
|
- recv: res,
|
|
|
|
|
- cmdType: cmdType.value,
|
|
|
|
|
- })
|
|
|
|
|
- loadingSendCmd.value = false
|
|
|
|
|
- logStr.value = res
|
|
|
|
|
|
|
+ sendXlogCmd(uuid, sendCmdString)
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ cmdList.value.push({
|
|
|
|
|
+ send: cmdString,
|
|
|
|
|
+ recv: res,
|
|
|
|
|
+ cmdType: cmdType.value,
|
|
|
|
|
+ })
|
|
|
|
|
+ logStr.value = res
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
|
+ // 请求失败(如 500 / 超时)时,提示错误并把失败信息记入命令历史。
|
|
|
|
|
+ const errMsg = err instanceof Error ? err.message : String(err)
|
|
|
|
|
+ message.error(`命令执行失败:${errMsg}`)
|
|
|
|
|
+ cmdList.value.push({
|
|
|
|
|
+ send: cmdString,
|
|
|
|
|
+ recv: `[执行失败] ${errMsg}`,
|
|
|
|
|
+ cmdType: cmdType.value,
|
|
|
|
|
+ })
|
|
|
|
|
+ logStr.value = `[执行失败] ${errMsg}`
|
|
|
|
|
+ })
|
|
|
|
|
+ .finally(() => {
|
|
|
|
|
+ // 无论成功失败都复位 loading,避免一直转圈。
|
|
|
|
|
+ loadingSendCmd.value = false
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const handleInputChange = (value: string) => {
|
|
const handleInputChange = (value: string) => {
|