发布 0.1.0:通知渠道、告警规则与多项体验修复
This commit is contained in:
@@ -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 云端资源不会被删除(云端日志回传链路请先在“其他”页销毁)。`,
|
||||
},
|
||||
),
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user