新增「参数配置」页(/config),按客户使用场景而非插件边界组织 aibox_sophon_adapter 与 ip_sound_column 的配置: - IP 音柱报警:音柱设备 IP(属 ip_sound_column)+ 启用/音量/播报文案 映射(属 aibox_sophon_adapter);两个插件在同一页配完,保存时按归属 分别下发并重启对应副本。 - 告警与联动:告警转发、心跳与离线、告警留存、豆包分析、IN2 联动。 - 未开放数据库、数据目录、MediaMTX、MQTT 通道等部署类配置,页面脚注 说明;仍可用 Worker 管理的原始编辑器维护。 关键实现约束(见 src/config/configEdits.ts): - 后端对 [workers.config] 只做顶层浅合并,被改动的嵌套节必须整节提交, 否则改一个音量会清掉同级的 enabled/tts(已用真实接口复现)。 - 区块开关默认值取自插件代码默认值,避免「配置里没有该键时开关显示为关 且被判为已改动」而在改其它字段时误关功能。 - 数值字段留空直接拦下,不把 NaN 下发成 null 触发插件侧回滚。 其他: - tts 映射的违规类型候选来自历史告警记录(list_alarms),手写拼错不易察觉。 - 登录态抽成 useAdminAuth 与 Worker 管理页共用,token 互通。 - Worker 管理弹窗对这两个插件给出跳转提示,原始编辑器保留为应急通道。
91 lines
4.7 KiB
TypeScript
91 lines
4.7 KiB
TypeScript
/* eslint-disable */
|
|
// @ts-nocheck
|
|
// biome-ignore lint: disable
|
|
// oxlint-disable
|
|
// ------
|
|
// Generated by unplugin-vue-components
|
|
// Read more: https://github.com/vuejs/core/pull/3399
|
|
import { GlobalComponents } from 'vue'
|
|
|
|
export {}
|
|
|
|
/* prettier-ignore */
|
|
declare module 'vue' {
|
|
export interface GlobalComponents {
|
|
ElAlert: typeof import('element-plus/es')['ElAlert']
|
|
ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
|
|
ElBadge: typeof import('element-plus/es')['ElBadge']
|
|
ElButton: typeof import('element-plus/es')['ElButton']
|
|
ElCard: typeof import('element-plus/es')['ElCard']
|
|
ElContainer: typeof import('element-plus/es')['ElContainer']
|
|
ElDialog: typeof import('element-plus/es')['ElDialog']
|
|
ElDivider: typeof import('element-plus/es')['ElDivider']
|
|
ElFooter: typeof import('element-plus/es')['ElFooter']
|
|
ElForm: typeof import('element-plus/es')['ElForm']
|
|
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
|
ElHeader: typeof import('element-plus/es')['ElHeader']
|
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
|
ElInput: typeof import('element-plus/es')['ElInput']
|
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
|
ElMain: typeof import('element-plus/es')['ElMain']
|
|
ElMenu: typeof import('element-plus/es')['ElMenu']
|
|
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
|
ElOption: typeof import('element-plus/es')['ElOption']
|
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
|
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
|
ElTable: typeof import('element-plus/es')['ElTable']
|
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
|
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
|
ElTabs: typeof import('element-plus/es')['ElTabs']
|
|
ElTag: typeof import('element-plus/es')['ElTag']
|
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
|
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
|
|
PluginConfigForm: typeof import('./src/components/PluginConfigForm.vue')['default']
|
|
RouterLink: typeof import('vue-router')['RouterLink']
|
|
RouterView: typeof import('vue-router')['RouterView']
|
|
TtsMapEditor: typeof import('./src/components/TtsMapEditor.vue')['default']
|
|
WelcomeItem: typeof import('./src/components/WelcomeItem.vue')['default']
|
|
}
|
|
export interface GlobalDirectives {
|
|
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
|
}
|
|
}
|
|
|
|
// For TSX support
|
|
declare global {
|
|
const ElAlert: typeof import('element-plus/es')['ElAlert']
|
|
const ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
|
|
const ElBadge: typeof import('element-plus/es')['ElBadge']
|
|
const ElButton: typeof import('element-plus/es')['ElButton']
|
|
const ElCard: typeof import('element-plus/es')['ElCard']
|
|
const ElContainer: typeof import('element-plus/es')['ElContainer']
|
|
const ElDialog: typeof import('element-plus/es')['ElDialog']
|
|
const ElDivider: typeof import('element-plus/es')['ElDivider']
|
|
const ElFooter: typeof import('element-plus/es')['ElFooter']
|
|
const ElForm: typeof import('element-plus/es')['ElForm']
|
|
const ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
|
const ElHeader: typeof import('element-plus/es')['ElHeader']
|
|
const ElIcon: typeof import('element-plus/es')['ElIcon']
|
|
const ElInput: typeof import('element-plus/es')['ElInput']
|
|
const ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
|
const ElMain: typeof import('element-plus/es')['ElMain']
|
|
const ElMenu: typeof import('element-plus/es')['ElMenu']
|
|
const ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
|
const ElOption: typeof import('element-plus/es')['ElOption']
|
|
const ElPagination: typeof import('element-plus/es')['ElPagination']
|
|
const ElSelect: typeof import('element-plus/es')['ElSelect']
|
|
const ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
|
const ElTable: typeof import('element-plus/es')['ElTable']
|
|
const ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
|
const ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
|
const ElTabs: typeof import('element-plus/es')['ElTabs']
|
|
const ElTag: typeof import('element-plus/es')['ElTag']
|
|
const ElUpload: typeof import('element-plus/es')['ElUpload']
|
|
const HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
|
|
const PluginConfigForm: typeof import('./src/components/PluginConfigForm.vue')['default']
|
|
const RouterLink: typeof import('vue-router')['RouterLink']
|
|
const RouterView: typeof import('vue-router')['RouterView']
|
|
const TtsMapEditor: typeof import('./src/components/TtsMapEditor.vue')['default']
|
|
const WelcomeItem: typeof import('./src/components/WelcomeItem.vue')['default']
|
|
} |