From d64ed8c718de3adc5ad2510ff066280a7e10e183 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Tue, 25 Feb 2025 14:16:47 +0800 Subject: [PATCH] fix: Fix the issue of the container creation not popping up the task box (#7989) --- agent/app/service/container.go | 7 ++---- frontend/src/api/interface/container.ts | 1 + .../src/views/container/container/index.vue | 8 +++---- .../container/container/operate/index.vue | 23 ++++++++++++------- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/agent/app/service/container.go b/agent/app/service/container.go index d4c8baa8f..d65b9ca9d 100644 --- a/agent/app/service/container.go +++ b/agent/app/service/container.go @@ -804,10 +804,7 @@ func (u *ContainerService) StreamLogs(ctx *gin.Context, params dto.StreamLog) { select { case msg, ok := <-messageChan: if !ok { - if msg == "" { - return true - } - return false + return msg == "" } _, err := fmt.Fprintf(w, "data: %v\n\n", msg) if err != nil { @@ -1495,12 +1492,12 @@ func loadContainerPortForInfo(itemPorts []types.Port) []dto.PortHelper { var exposedPorts []dto.PortHelper samePortMap := make(map[string]dto.PortHelper) ports := transPortToStr(itemPorts) - var itemPort dto.PortHelper for _, item := range ports { itemStr := strings.Split(item, "->") if len(itemStr) < 2 { continue } + var itemPort dto.PortHelper lastIndex := strings.LastIndex(itemStr[0], ":") if lastIndex == -1 { itemPort.HostPort = itemStr[0] diff --git a/frontend/src/api/interface/container.ts b/frontend/src/api/interface/container.ts index 611b3ac0b..43b62385d 100644 --- a/frontend/src/api/interface/container.ts +++ b/frontend/src/api/interface/container.ts @@ -49,6 +49,7 @@ export namespace Container { memory: number; } export interface ContainerHelper { + taskID: string; containerID: string; name: string; image: string; diff --git a/frontend/src/views/container/container/index.vue b/frontend/src/views/container/container/index.vue index c89df1f96..4d62e1c8a 100644 --- a/frontend/src/views/container/container/index.vue +++ b/frontend/src/views/container/container/index.vue @@ -75,10 +75,10 @@ - {{ $t('app.start') }} + {{ $t('commons.operate.start') }} - {{ $t('app.stop') }} + {{ $t('commons.operate.stop') }} {{ $t('commons.button.restart') }} @@ -158,13 +158,13 @@ :disabled="checkStatus('start', row)" @click="onOperate('start', row)" > - {{ $t('app.start') }} + {{ $t('commons.operate.start') }} - {{ $t('app.stop') }} + {{ $t('commons.operate.stop') }} - + - + @@ -446,14 +447,16 @@ import { loadContainerInfo, } from '@/api/modules/container'; import { Container } from '@/api/interface/container'; -import { MsgError, MsgSuccess } from '@/utils/message'; -import { checkIpV4V6, checkPort } from '@/utils/util'; +import { MsgError } from '@/utils/message'; +import TaskLog from '@/components/task-log/index.vue'; +import { checkIpV4V6, checkPort, newUUID } from '@/utils/util'; import router from '@/routers'; const loading = ref(false); const isCreate = ref(); const confirmRef = ref(); const form = reactive({ + taskID: '', containerID: '', name: '', image: '', @@ -557,6 +560,7 @@ const search = async () => { }; const commandRef = ref(); +const taskLogRef = ref(); const images = ref(); const volumes = ref(); const networks = ref(); @@ -654,6 +658,7 @@ const onSubmit = async (formEl: FormInstance | undefined) => { }; const submit = async () => { form.cmd = []; + form.taskID = newUUID(); if (form.cmdStr) { let itemCmd = splitStringIgnoringQuotes(form.cmdStr); for (const item of itemCmd) { @@ -682,8 +687,7 @@ const submit = async () => { await createContainer(form) .then(() => { loading.value = false; - MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); - goBack(); + openTaskLog(form.taskID); }) .catch(() => { loading.value = false; @@ -692,8 +696,7 @@ const submit = async () => { await updateContainer(form) .then(() => { loading.value = false; - MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); - goBack(); + openTaskLog(form.taskID); }) .catch(() => { updateContainerID(); @@ -702,6 +705,10 @@ const submit = async () => { } }; +const openTaskLog = (taskID: string) => { + taskLogRef.value.openWithTaskID(taskID); +}; + const updateContainerID = async () => { let params = { page: 1,