Skip to content

Superviseur — Frontend v1.0.0


Superviseur — Frontend / features/settings/views/admin/metrics/usePanelConfigForm / usePanelConfigForm

Fonction: usePanelConfigForm() ​

ts
function usePanelConfigForm(props, emit): object;

Défini dans: features/settings/views/admin/metrics/usePanelConfigForm.ts:22

Logique du formulaire de configuration d'une centrale : état réactif, dérivations (profil sélectionné, adresses Modbus, validité), édition des zones/points et soumission. Extrait du composant PanelConfigForm.vue pour en isoler le comportement du gabarit.

Paramètres ​

ParamètreType
props{ initialData?: StationConfiguration; isEditing?: boolean; }
props.initialData?StationConfiguration
props.isEditing?boolean
emit(event, payload?) => void

Retourne ​

NomTypeValeur par défautDescriptionDéfini dans
isDirtyComputedRef<boolean>--features/settings/views/admin/metrics/usePanelConfigForm.ts:625
leaveGuard()() => Promise<boolean>-Sort du formulaire seulement après avoir réglé le sort d'un travail en cours. Déclarer une centrale demande un long remplissage — identité, transport, zones, points : le perdre d'un clic dans le menu était le plus coûteux des oublis. La garde est publiée au store commun, que consulte le changement de section, et posée sur la route pour la navigation générale : deux chemins mènent hors de l'écran, tous deux doivent la traverser.features/settings/views/admin/metrics/usePanelConfigForm.ts:626
formobject--features/settings/views/admin/metrics/usePanelConfigForm.ts:627
form.idstring''-features/settings/views/admin/metrics/usePanelConfigForm.ts:45
form.namestring''-features/settings/views/admin/metrics/usePanelConfigForm.ts:46
form.labelstring''-features/settings/views/admin/metrics/usePanelConfigForm.ts:47
form.descriptionstring--features/settings/views/admin/metrics/usePanelConfigForm.ts:48
form.connectionType"Tcp" | "Rtu"--features/settings/views/admin/metrics/usePanelConfigForm.ts:49
form.ipAddressstring'192.168.10.0'-features/settings/views/admin/metrics/usePanelConfigForm.ts:50
form.portnumber1502-features/settings/views/admin/metrics/usePanelConfigForm.ts:51
form.serialPortNamestring'COM1'-features/settings/views/admin/metrics/usePanelConfigForm.ts:52
form.baudRatenumber9600-features/settings/views/admin/metrics/usePanelConfigForm.ts:53
form.dataBitsnumber8-features/settings/views/admin/metrics/usePanelConfigForm.ts:54
form.paritynumber0-features/settings/views/admin/metrics/usePanelConfigForm.ts:55
form.stopBitsnumber1-features/settings/views/admin/metrics/usePanelConfigForm.ts:56
form.slaveIdnumber1-features/settings/views/admin/metrics/usePanelConfigForm.ts:57
form.systemSerialNumberstring''-features/settings/views/admin/metrics/usePanelConfigForm.ts:58
form.modbusProfileIdstring''-features/settings/views/admin/metrics/usePanelConfigForm.ts:59
form.zonesobject[]--features/settings/views/admin/metrics/usePanelConfigForm.ts:60
form.panelTypestring--features/settings/views/admin/metrics/usePanelConfigForm.ts:61
form.pollingIntervalMillisecondsnumber1000-features/settings/views/admin/metrics/usePanelConfigForm.ts:62
form.colorstring--features/settings/views/admin/metrics/usePanelConfigForm.ts:64
form.modbusMappingstring'{}'-features/settings/views/admin/metrics/usePanelConfigForm.ts:65
form.rawConfigurationstring | undefined--features/settings/views/admin/metrics/usePanelConfigForm.ts:66
activeTabRef<string, string>--features/settings/views/admin/metrics/usePanelConfigForm.ts:628
isTestingRef<boolean, boolean>--features/settings/views/admin/metrics/usePanelConfigForm.ts:629
availablePortsRef<string[], string[]>--features/settings/views/admin/metrics/usePanelConfigForm.ts:630
isInisComputedRef<boolean>-isInis dérive du targetSystem du profil sélectionné (donnée du backend), pas d'une correspondance de texte sur l'id/nom du profil — un profil personnalisé nommé différemment reste correctement identifié. Réservé aux quelques particularités réellement propres à INIS-E16 (vocabulaire « Ligne DI », import XML) ; tout le reste du formulaire est générique.features/settings/views/admin/metrics/usePanelConfigForm.ts:631
isEditModeComputedRef<boolean>--features/settings/views/admin/metrics/usePanelConfigForm.ts:632
slaveIdRangeComputedRef<{ min: number; max: number; }>--features/settings/views/admin/metrics/usePanelConfigForm.ts:633
isSlaveIdValidComputedRef<boolean>--features/settings/views/admin/metrics/usePanelConfigForm.ts:634
duplicateSerialComputedRef<boolean>-Numéro de série déjà porté par une autre centrale du site. Le serveur le refuse aussi, mais après la saisie complète du formulaire : le signaler au fil de la frappe évite de perdre un travail entier sur un identifiant déjà pris.features/settings/views/admin/metrics/usePanelConfigForm.ts:635
configFileRef< | { } | null, | File | { } | null>--features/settings/views/admin/metrics/usePanelConfigForm.ts:636
isImportingRef<boolean, boolean>--features/settings/views/admin/metrics/usePanelConfigForm.ts:637
bulkZoneCountRef<number, number>--features/settings/views/admin/metrics/usePanelConfigForm.ts:638
bulkPointCountRef<number, number>--features/settings/views/admin/metrics/usePanelConfigForm.ts:639
firstInputRef<HTMLInputElement | null, HTMLInputElement | null>--features/settings/views/admin/metrics/usePanelConfigForm.ts:640
serialInputRef<HTMLInputElement | null, HTMLInputElement | null>--features/settings/views/admin/metrics/usePanelConfigForm.ts:641
invalidFieldsRef<Set<"name" | "systemSerialNumber"> & Omit<Set<"name" | "systemSerialNumber">, keyof Set<any>>, | Set<"name" | "systemSerialNumber"> | Set<"name" | "systemSerialNumber"> & Omit<Set<"name" | "systemSerialNumber">, keyof Set<any>>>--features/settings/views/admin/metrics/usePanelConfigForm.ts:642
profileCardPalette()(index) => object--features/settings/views/admin/metrics/usePanelConfigForm.ts:643
getZoneModbusAddress()(index, isSystem) => number | null--features/settings/views/admin/metrics/usePanelConfigForm.ts:644
getPointModbusAddress()(pointIndex, isSystem) => number | null--features/settings/views/admin/metrics/usePanelConfigForm.ts:645
isZoneIndexDuplicate()(index, currentIdx) => boolean--features/settings/views/admin/metrics/usePanelConfigForm.ts:646
isPointIndexDuplicate()(zone, index, currentPtIdx) => boolean--features/settings/views/admin/metrics/usePanelConfigForm.ts:647
handleConfigFileChange()(event) => void--features/settings/views/admin/metrics/usePanelConfigForm.ts:648
importConfig()() => Promise<void>--features/settings/views/admin/metrics/usePanelConfigForm.ts:649
addZone()() => void--features/settings/views/admin/metrics/usePanelConfigForm.ts:650
removeZone()(idx) => void--features/settings/views/admin/metrics/usePanelConfigForm.ts:651
addPoint()(zone) => void--features/settings/views/admin/metrics/usePanelConfigForm.ts:652
removePoint()(zone, idx) => void--features/settings/views/admin/metrics/usePanelConfigForm.ts:653
addZones()(count) => void-Ajoute count zones physiques d'un coup ; au-delà d'une, elles restent repliées pour rester lisible.features/settings/views/admin/metrics/usePanelConfigForm.ts:654
addPoints()(zone, count) => void-Ajoute count points d'un coup à une zone donnée.features/settings/views/admin/metrics/usePanelConfigForm.ts:655
addPointsToAllZones()(count) => void-Ajoute count points d'un coup à chaque zone physique existante.features/settings/views/admin/metrics/usePanelConfigForm.ts:656
testConnection()() => Promise<void>--features/settings/views/admin/metrics/usePanelConfigForm.ts:657
handleSubmit()() => Promise<void>--features/settings/views/admin/metrics/usePanelConfigForm.ts:658
selectProfile()(profileId) => void-Sélectionne un profil Modbus comme type de centrale et applique ses valeurs par défaut (transport, slave ID) — sauf en édition, où la configuration existante prime. Réconcilie ensuite les entités système avec le profil retenu.features/settings/views/admin/metrics/usePanelConfigForm.ts:659
loadSerialPorts()() => Promise<void>--features/settings/views/admin/metrics/usePanelConfigForm.ts:660
storeStore<"panel", Pick<{ configurations: Ref<object[], | StationConfiguration[] | object[]>; profiles: Ref<object[], | ModbusProfile[] | object[]>; liveStates: Ref<Record<string, FireStationSystem>, Record<string, FireStationSystem>>; panelStates: Ref<Record<string, PanelSnapshot>, Record<string, PanelSnapshot>>; selectedStationId: Ref<string | null, string | null>; selectedPanelId: ComputedRef<string | number | null>; currentConfig: ComputedRef< | { id?: string | number; name: string; systemSerialNumber?: string; label: string; description?: string; connectionType?: "Tcp" | "Rtu"; ipAddress?: string; port?: number; serialPortName?: string; baudRate?: number; dataBits?: number; parity?: number; stopBits?: number; pollingIntervalMilliseconds: number; slaveId: number; panelType: string; color: string; modbusMapping: string; modbusProfileId: string; zones: object[]; points?: object[]; rawConfiguration?: string; } | undefined>; panelState: ComputedRef< | FireStationSystem | null>; apiConnected: Ref<boolean, boolean>; hasEverConnected: Ref<boolean, boolean>; modbusConnected: Ref<boolean, boolean>; systemStatus: ComputedRef<{ text: string; color: string; }>; activeAlerts: ComputedRef<object[]>; allActiveAlerts: ComputedRef<Alert[]>; groupedIncidents: ComputedRef<StationGroup[]>; activeIncidentCount: ComputedRef<number>; activeAlertsCount: ComputedRef<number>; allActiveAlertsCount: ComputedRef<number>; isGlobalEvacuationActive: ComputedRef<boolean>; connectionStatus: ComputedRef<{ api: { connected: boolean; text: string; color: string; }; modbus: { connected: boolean | undefined; text: string; color: string; }; }>; systemIssues: ComputedRef<SystemIssue[]>; lastDataChange: Ref<number, number>; isFleetHealthy: ComputedRef<boolean>; pendingCommands: Ref<Record<string, boolean>, Record<string, boolean>>; isCommandPending: (serial) => boolean; markCommandPending: (serial, delayMs) => void; statusSince: (serial, kind, index) => number | null; setPanelState: (newState) => void; switchPanel: (id) => void; addPanel: (config) => Promise<void>; removePanel: (dbId) => Promise<void>; setPanelSupervision: (panelId, serial, enabled) => Promise<PanelDto>; setAllPanelsSupervision: (enabled) => Promise<void>; loadConfigurations: () => Promise<void>; loadInitialData: () => Promise<void>; updatePanel: (config) => Promise<void>; updatePanelState: (snapshot) => void; forgetPanel: (panelId, systemSerialNumber?) => void; isPanelConnected: (id) => boolean; isPanelInAlarm: (id) => boolean; setConnectionStatus: (isConnected) => void; setModbusConnected: (s) => boolean; initialize: () => Promise<void>; initialized: Ref<boolean, boolean>; isInitializing: Ref<boolean, boolean>; toggleMute: () => void; isAudioMuted: ComputedRef<boolean>; hasActiveAlert: ComputedRef<boolean>; acknowledgeAlert: (stationId, type, index, flag?) => Promise<void>; rearmStation: (stationId) => Promise<void>; }, | "profiles" | "modbusConnected" | "configurations" | "liveStates" | "panelStates" | "selectedStationId" | "apiConnected" | "hasEverConnected" | "lastDataChange" | "pendingCommands" | "initialized" | "isInitializing">, Pick<{ configurations: Ref<object[], | StationConfiguration[] | object[]>; profiles: Ref<object[], | ModbusProfile[] | object[]>; liveStates: Ref<Record<string, FireStationSystem>, Record<string, FireStationSystem>>; panelStates: Ref<Record<string, PanelSnapshot>, Record<string, PanelSnapshot>>; selectedStationId: Ref<string | null, string | null>; selectedPanelId: ComputedRef<string | number | null>; currentConfig: ComputedRef< | { id?: string | number; name: string; systemSerialNumber?: string; label: string; description?: string; connectionType?: "Tcp" | "Rtu"; ipAddress?: string; port?: number; serialPortName?: string; baudRate?: number; dataBits?: number; parity?: number; stopBits?: number; pollingIntervalMilliseconds: number; slaveId: number; panelType: string; color: string; modbusMapping: string; modbusProfileId: string; zones: object[]; points?: object[]; rawConfiguration?: string; } | undefined>; panelState: ComputedRef< | FireStationSystem | null>; apiConnected: Ref<boolean, boolean>; hasEverConnected: Ref<boolean, boolean>; modbusConnected: Ref<boolean, boolean>; systemStatus: ComputedRef<{ text: string; color: string; }>; activeAlerts: ComputedRef<object[]>; allActiveAlerts: ComputedRef<Alert[]>; groupedIncidents: ComputedRef<StationGroup[]>; activeIncidentCount: ComputedRef<number>; activeAlertsCount: ComputedRef<number>; allActiveAlertsCount: ComputedRef<number>; isGlobalEvacuationActive: ComputedRef<boolean>; connectionStatus: ComputedRef<{ api: { connected: boolean; text: string; color: string; }; modbus: { connected: boolean | undefined; text: string; color: string; }; }>; systemIssues: ComputedRef<SystemIssue[]>; lastDataChange: Ref<number, number>; isFleetHealthy: ComputedRef<boolean>; pendingCommands: Ref<Record<string, boolean>, Record<string, boolean>>; isCommandPending: (serial) => boolean; markCommandPending: (serial, delayMs) => void; statusSince: (serial, kind, index) => number | null; setPanelState: (newState) => void; switchPanel: (id) => void; addPanel: (config) => Promise<void>; removePanel: (dbId) => Promise<void>; setPanelSupervision: (panelId, serial, enabled) => Promise<PanelDto>; setAllPanelsSupervision: (enabled) => Promise<void>; loadConfigurations: () => Promise<void>; loadInitialData: () => Promise<void>; updatePanel: (config) => Promise<void>; updatePanelState: (snapshot) => void; forgetPanel: (panelId, systemSerialNumber?) => void; isPanelConnected: (id) => boolean; isPanelInAlarm: (id) => boolean; setConnectionStatus: (isConnected) => void; setModbusConnected: (s) => boolean; initialize: () => Promise<void>; initialized: Ref<boolean, boolean>; isInitializing: Ref<boolean, boolean>; toggleMute: () => void; isAudioMuted: ComputedRef<boolean>; hasActiveAlert: ComputedRef<boolean>; acknowledgeAlert: (stationId, type, index, flag?) => Promise<void>; rearmStation: (stationId) => Promise<void>; }, | "systemStatus" | "hasActiveAlert" | "selectedPanelId" | "currentConfig" | "panelState" | "activeAlerts" | "allActiveAlerts" | "groupedIncidents" | "activeIncidentCount" | "activeAlertsCount" | "allActiveAlertsCount" | "isGlobalEvacuationActive" | "connectionStatus" | "systemIssues" | "isFleetHealthy" | "isAudioMuted">, Pick<{ configurations: Ref<object[], | StationConfiguration[] | object[]>; profiles: Ref<object[], | ModbusProfile[] | object[]>; liveStates: Ref<Record<string, FireStationSystem>, Record<string, FireStationSystem>>; panelStates: Ref<Record<string, PanelSnapshot>, Record<string, PanelSnapshot>>; selectedStationId: Ref<string | null, string | null>; selectedPanelId: ComputedRef<string | number | null>; currentConfig: ComputedRef< | { id?: string | number; name: string; systemSerialNumber?: string; label: string; description?: string; connectionType?: "Tcp" | "Rtu"; ipAddress?: string; port?: number; serialPortName?: string; baudRate?: number; dataBits?: number; parity?: number; stopBits?: number; pollingIntervalMilliseconds: number; slaveId: number; panelType: string; color: string; modbusMapping: string; modbusProfileId: string; zones: object[]; points?: object[]; rawConfiguration?: string; } | undefined>; panelState: ComputedRef< | FireStationSystem | null>; apiConnected: Ref<boolean, boolean>; hasEverConnected: Ref<boolean, boolean>; modbusConnected: Ref<boolean, boolean>; systemStatus: ComputedRef<{ text: string; color: string; }>; activeAlerts: ComputedRef<object[]>; allActiveAlerts: ComputedRef<Alert[]>; groupedIncidents: ComputedRef<StationGroup[]>; activeIncidentCount: ComputedRef<number>; activeAlertsCount: ComputedRef<number>; allActiveAlertsCount: ComputedRef<number>; isGlobalEvacuationActive: ComputedRef<boolean>; connectionStatus: ComputedRef<{ api: { connected: boolean; text: string; color: string; }; modbus: { connected: boolean | undefined; text: string; color: string; }; }>; systemIssues: ComputedRef<SystemIssue[]>; lastDataChange: Ref<number, number>; isFleetHealthy: ComputedRef<boolean>; pendingCommands: Ref<Record<string, boolean>, Record<string, boolean>>; isCommandPending: (serial) => boolean; markCommandPending: (serial, delayMs) => void; statusSince: (serial, kind, index) => number | null; setPanelState: (newState) => void; switchPanel: (id) => void; addPanel: (config) => Promise<void>; removePanel: (dbId) => Promise<void>; setPanelSupervision: (panelId, serial, enabled) => Promise<PanelDto>; setAllPanelsSupervision: (enabled) => Promise<void>; loadConfigurations: () => Promise<void>; loadInitialData: () => Promise<void>; updatePanel: (config) => Promise<void>; updatePanelState: (snapshot) => void; forgetPanel: (panelId, systemSerialNumber?) => void; isPanelConnected: (id) => boolean; isPanelInAlarm: (id) => boolean; setConnectionStatus: (isConnected) => void; setModbusConnected: (s) => boolean; initialize: () => Promise<void>; initialized: Ref<boolean, boolean>; isInitializing: Ref<boolean, boolean>; toggleMute: () => void; isAudioMuted: ComputedRef<boolean>; hasActiveAlert: ComputedRef<boolean>; acknowledgeAlert: (stationId, type, index, flag?) => Promise<void>; rearmStation: (stationId) => Promise<void>; }, | "removePanel" | "addPanel" | "isCommandPending" | "markCommandPending" | "statusSince" | "setPanelState" | "switchPanel" | "setPanelSupervision" | "setAllPanelsSupervision" | "loadConfigurations" | "loadInitialData" | "updatePanel" | "updatePanelState" | "forgetPanel" | "isPanelConnected" | "isPanelInAlarm" | "setConnectionStatus" | "setModbusConnected" | "initialize" | "toggleMute" | "acknowledgeAlert" | "rearmStation">>--features/settings/views/admin/metrics/usePanelConfigForm.ts:661

Documentation Technique