feat: improve routing policy diagnostics

This commit is contained in:
fawney19
2026-05-28 12:11:43 +08:00
parent 14ad6e9b75
commit 93d3de1644
23 changed files with 2015 additions and 1087 deletions
@@ -3,7 +3,10 @@
<Select
v-model="selectedPreset"
>
<SelectTrigger :class="['h-8 w-32 text-xs border-border/60', presetTriggerClass]">
<SelectTrigger
class="h-8 w-32 text-xs border-border/60"
:class="[presetTriggerClass]"
>
<SelectValue placeholder="选择时间段" />
</SelectTrigger>
<SelectContent :searchable="false">
@@ -74,6 +77,18 @@ import {
} from '@/components/ui'
import type { DateRangeParams } from '@/features/usage/types'
const props = withDefaults(defineProps<{
modelValue: DateRangeParams
showGranularity?: boolean
allowHourly?: boolean
presetOptions?: SelectablePreset[]
presetTriggerClass?: string
}>(), {
presetOptions: () => ['today', 'yesterday', 'last7days', 'last30days', 'last90days', 'custom']
})
const emit = defineEmits<{
'update:modelValue': [value: DateRangeParams]
}>()
const selectablePresets = ['today', 'yesterday', 'last7days', 'last30days', 'last90days', 'custom'] as const
type SelectablePreset = typeof selectablePresets[number]
@@ -86,20 +101,6 @@ const presetLabels: Record<SelectablePreset, string> = {
custom: '自定义'
}
const props = withDefaults(defineProps<{
modelValue: DateRangeParams
showGranularity?: boolean
allowHourly?: boolean
presetOptions?: SelectablePreset[]
presetTriggerClass?: string
}>(), {
presetOptions: () => ['today', 'yesterday', 'last7days', 'last30days', 'last90days', 'custom']
})
const emit = defineEmits<{
'update:modelValue': [value: DateRangeParams]
}>()
const activePresetOptions = computed<SelectablePreset[]>(() => {
const unique = new Set(props.presetOptions)
const filtered = selectablePresets.filter((preset) => unique.has(preset))
@@ -195,8 +195,6 @@ import { normalizeReleaseNotesForDisplay } from '@/utils/releaseNotes'
import { sanitizeMarkdown } from '@/utils/sanitize'
import { marked } from 'marked'
const SOURCE_BUILD_UPDATE_HINT = '当前为源码构建,请使用 git pull 后重新编译。'
const props = defineProps<{
modelValue: boolean
currentVersion: string
@@ -227,6 +225,8 @@ const emit = defineEmits<{
rollback: []
}>()
const SOURCE_BUILD_UPDATE_HINT = '当前为源码构建,请使用 git pull 后重新编译。'
const isOpen = ref(props.modelValue)
const updating = computed(() => props.updating ?? false)
const updatePhase = computed(() => props.updatePhase ?? 'download')
@@ -345,9 +345,6 @@ import { sanitizeMarkdown } from '@/utils/sanitize'
import { marked } from 'marked'
import { ChevronRight, ExternalLink, Info, RefreshCw } from 'lucide-vue-next'
const SOURCE_BUILD_UPDATE_HINT = '当前为源码构建,请使用 git pull 后重新编译。'
const SOURCE_BUILD_RELEASE_HINT = '当前为源码构建,请手动切换到对应标签后重新编译。'
const props = defineProps<{
status: CheckUpdateResponse | null
loading?: boolean
@@ -359,7 +356,6 @@ const props = defineProps<{
downloadProgressText?: string | null
downloadProgressPercent?: number | null
}>()
const emit = defineEmits<{
refresh: []
openRelease: []
@@ -367,6 +363,8 @@ const emit = defineEmits<{
previewRelease: [release: ReleaseEntry]
rollback: []
}>()
const SOURCE_BUILD_UPDATE_HINT = '当前为源码构建,请使用 git pull 后重新编译。'
const SOURCE_BUILD_RELEASE_HINT = '当前为源码构建,请手动切换到对应标签后重新编译。'
const isOpen = ref(false)
const showReleases = ref(false)