From cbff8417ac2f827765afe61046dac2c563a0cd36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Thu, 24 Sep 2026 21:03:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(project):=20=E7=8A=B6=E6=80=81=E5=88=97?= =?UTF-8?q?=E6=8C=89=E8=BF=90=E8=A1=8C=E7=8A=B6=E6=80=81=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 运行中绿色、已停止橙色、失败红色,启动中、重载中、停止中为蓝色,其余状态灰色原样显示 - 崩溃后等待自动重启时 systemd 状态为 activating,此前误显示为非活跃 Co-Authored-By: Claude Opus 5.5 --- web/src/views/project/ListView.vue | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/web/src/views/project/ListView.vue b/web/src/views/project/ListView.vue index b4c607e9f..8186b41b8 100644 --- a/web/src/views/project/ListView.vue +++ b/web/src/views/project/ListView.vue @@ -32,6 +32,19 @@ const typeMap: Record = { dotnet: '.NET', } +// systemd ActiveState 映射,未列出的状态原样显示 +const statusMap: Record< + string, + { type: 'default' | 'success' | 'info' | 'warning' | 'error'; label: string } +> = { + active: { type: 'success', label: $gettext('Running') }, + activating: { type: 'info', label: $gettext('Starting') }, + reloading: { type: 'info', label: $gettext('Reloading') }, + deactivating: { type: 'info', label: $gettext('Stopping') }, + inactive: { type: 'warning', label: $gettext('Stopped') }, + failed: { type: 'error', label: $gettext('Failed') }, +} + const columns: any = [ { type: 'selection', fixed: 'left' }, { @@ -59,26 +72,13 @@ const columns: any = [ { title: $gettext('Status'), key: 'status', - width: 100, + width: 110, render(row: any) { - return h( - NTag, - { type: row.status === 'active' ? 'success' : 'default' }, - { - default: () => { - switch (row.status) { - case 'active': - return $gettext('Running') - case 'inactive': - return $gettext('Stopped') - case 'failed': - return $gettext('Failed') - default: - return $gettext('Inactive') - } - }, - }, - ) + const { type, label } = statusMap[row.status] ?? { + type: 'default', + label: row.status || $gettext('Unknown'), + } + return h(NTag, { type }, { default: () => label }) }, }, {