发布 0.1.0:通知渠道、告警规则与多项体验修复
CI / test (push) Successful in 27s
Release / release (push) Successful in 26s

This commit is contained in:
Wang Defa
2026-07-10 17:31:19 +08:00
parent 9d0c116ce3
commit 5464d2dfea
68 changed files with 1604 additions and 359 deletions
+11 -10
View File
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { NButton, NDataTable, NInput, NInputGroup, NInputGroupLabel, NPopconfirm, NPopover, NSelect, NTooltip, useMessage, type DataTableColumns } from 'naive-ui'
import { NButton, NDataTable, NInput, NInputGroup, NInputGroupLabel, NPopconfirm, NPopover, NSelect, NTooltip, type DataTableColumns } from 'naive-ui'
import { computed, h, ref, type VNodeChild } from 'vue'
import { RouterLink, useRouter } from 'vue-router'
@@ -11,13 +11,15 @@ import EditConfigModal from '@/components/config/EditConfigModal.vue'
import ImportConfigModal from '@/components/config/ImportConfigModal.vue'
import StatusBadge from '@/components/StatusBadge.vue'
import { parseSnatch, scopeCfgIds, STATUS_META, TYPE_LABEL } from '@/components/task/taskDisplay'
import { aliveMeta } from '@/composables/useAliveStatus'
import { fmtRelative, fmtTime } from '@/composables/useFormat'
import { useRegionAlias } from '@/composables/useRegionAlias'
import { useAsync } from '@/composables/useAsync'
import { useScopeStore } from '@/stores/scope'
import type { AccountType, OciConfigSummary, Task } from '@/types/api'
import { useToast } from '@/composables/useToast'
const message = useMessage()
const message = useToast()
const router = useRouter()
const { alias: regionAlias } = useRegionAlias()
const scope = useScopeStore()
@@ -104,7 +106,7 @@ function setGlobal(row: OciConfigSummary) {
async function remove(row: OciConfigSummary) {
try {
await deleteConfig(row.id)
message.success(`已删除「${row.alias}(仅移除本面板配置,不影响云端资源)`)
message.success(`已删除「${row.alias}及关联本地数据,OCI 云端资源未受影响`)
reloadConfigs()
} catch (e) {
message.error(e instanceof Error ? e.message : '删除失败')
@@ -125,13 +127,11 @@ function renderTenant(row: OciConfigSummary): VNodeChild {
])
}
/** 状态列:仅徽标;失联且有错误详情时 hover 徽标以 tooltip 展示完整 lastError */
/** 状态列:仅徽标;失联/暂停且有错误详情时 hover 徽标以 tooltip 展示完整 lastError */
function renderStatus(row: OciConfigSummary): VNodeChild {
const badge = h(StatusBadge, {
kind: row.aliveStatus === 'alive' ? 'run' : row.aliveStatus === 'dead' ? 'term' : 'check',
label: row.aliveStatus === 'alive' ? '存活' : row.aliveStatus === 'dead' ? '失联' : '未测',
})
if (row.aliveStatus !== 'dead' || !row.lastError) return badge
const meta = aliveMeta(row.aliveStatus)
const badge = h(StatusBadge, { kind: meta.kind, label: meta.label })
if (!['dead', 'suspended'].includes(row.aliveStatus) || !row.lastError) return badge
return h(
NTooltip,
{ trigger: 'hover', placement: 'top-start' },
@@ -221,7 +221,8 @@ function renderActions(row: OciConfigSummary): VNodeChild {
{
trigger: () =>
h(NButton, { size: 'tiny', quaternary: true, type: 'error' }, { default: () => '删除' }),
default: () => `删除「${row.alias}」?仅移除本面板配置与快照,不影响云端资源。`,
default: () =>
`删除「${row.alias}」?将清理本面板中的关联任务、快照、回传事件与 Webhook 密钥、告警及 AI 渠道数据;OCI 云端资源不会被删除(云端日志回传链路请先在“其他”页销毁)。`,
},
),
])