发布 0.1.0:通知渠道、告警规则与多项体验修复
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { NButton, NDataTable, NInput, NSelect, NTooltip, useDialog, useMessage, type DataTableColumns } from 'naive-ui'
|
||||
import { NButton, NDataTable, NInput, NSelect, NTooltip, useDialog, type DataTableColumns } from 'naive-ui'
|
||||
import { computed, h, reactive, ref } from 'vue'
|
||||
|
||||
import { createAiChannel, deleteAiChannel, probeAiChannel, syncAiChannelModels, updateAiChannel } from '@/api/aigateway'
|
||||
@@ -18,7 +18,6 @@ import type { AiChannel, AiProbeStatus } from '@/types/api'
|
||||
defineProps<{ channels: AiChannel[]; loading: boolean }>()
|
||||
const emit = defineEmits<{ changed: [] }>()
|
||||
|
||||
const message = useMessage()
|
||||
const toast = useToast()
|
||||
const dialog = useDialog()
|
||||
const scope = useScopeStore()
|
||||
@@ -67,7 +66,7 @@ async function submit() {
|
||||
try {
|
||||
if (editing.value) {
|
||||
await updateAiChannel(editing.value.id, { name: form.name, group: form.group, priority: form.priority, weight: form.weight })
|
||||
message.success('已更新渠道')
|
||||
toast.success('已更新渠道')
|
||||
showForm.value = false
|
||||
emit('changed')
|
||||
} else {
|
||||
@@ -77,11 +76,11 @@ async function submit() {
|
||||
})
|
||||
showForm.value = false
|
||||
emit('changed')
|
||||
message.success('渠道已添加,正在探测…')
|
||||
toast.success('渠道已添加,正在探测…')
|
||||
void doProbe(ch.id)
|
||||
}
|
||||
} catch (e) {
|
||||
message.error(e instanceof Error ? e.message : '保存失败')
|
||||
toast.error(e instanceof Error ? e.message : '保存失败')
|
||||
} finally {
|
||||
submitting.value = false
|
||||
}
|
||||
@@ -95,12 +94,12 @@ async function doProbe(id: number) {
|
||||
const ch = await probeAiChannel(id)
|
||||
const meta = ch.probeStatus ? PROBE_META[ch.probeStatus as Exclude<AiProbeStatus, ''>] : null
|
||||
if (ch.probeStatus === 'ok') {
|
||||
message.success('探测完成:可用')
|
||||
toast.success('探测完成:可用')
|
||||
} else {
|
||||
toast.warning(`探测完成:${meta?.label ?? ch.probeStatus}`, ch.probeError || undefined)
|
||||
}
|
||||
} catch (e) {
|
||||
message.error(e instanceof Error ? e.message : '探测失败')
|
||||
toast.error(e instanceof Error ? e.message : '探测失败')
|
||||
} finally {
|
||||
probing.value.delete(id)
|
||||
emit('changed')
|
||||
@@ -110,20 +109,20 @@ async function doProbe(id: number) {
|
||||
async function doSync(id: number) {
|
||||
try {
|
||||
const models = await syncAiChannelModels(id)
|
||||
message.success(`已同步 ${models.length} 个模型`)
|
||||
toast.success(`已同步 ${models.length} 个模型`)
|
||||
emit('changed')
|
||||
} catch (e) {
|
||||
message.error(e instanceof Error ? e.message : '同步失败')
|
||||
toast.error(e instanceof Error ? e.message : '同步失败')
|
||||
}
|
||||
}
|
||||
|
||||
async function toggle(ch: AiChannel) {
|
||||
try {
|
||||
await updateAiChannel(ch.id, { enabled: !ch.enabled })
|
||||
message.success(ch.enabled ? '已停用' : '已启用')
|
||||
toast.success(ch.enabled ? '已停用' : '已启用')
|
||||
emit('changed')
|
||||
} catch (e) {
|
||||
message.error(e instanceof Error ? e.message : '操作失败')
|
||||
toast.error(e instanceof Error ? e.message : '操作失败')
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +134,7 @@ function confirmRemove(ch: AiChannel) {
|
||||
negativeText: '取消',
|
||||
onPositiveClick: async () => {
|
||||
await deleteAiChannel(ch.id)
|
||||
message.success('已删除')
|
||||
toast.success('已删除')
|
||||
emit('changed')
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user