Поле External ID при создании/изменении устройства теперь input+datalist: можно вписать значение вручную (как раньше) или выбрать из подсказок — идентификаторы устройств, от которых device-control-service уже получал MQTT-телеметрию/ack (Redis-множество devices:known), но которые ещё не зарегистрированы в Postgres. Уже зарегистрированные id из списка подсказок исключаются. DeviceShadow::knownExternalIds() — новый read-метод (SMEMBERS devices:known), зеркалит то же множество, что Go-сервисы уже читают/ пишут для health-check/online-детекции.
28 lines
934 B
Vue
28 lines
934 B
Vue
<script setup>
|
|
import AppLayout from '@/Layouts/AppLayout.vue';
|
|
import Form from '@/Pages/Devices/Form.vue';
|
|
|
|
defineProps({
|
|
device: { type: Object, required: true },
|
|
zones: { type: Array, required: true },
|
|
deviceTypes: { type: Array, required: true },
|
|
unregisteredExternalIds: { type: Array, default: () => [] },
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<AppLayout>
|
|
<template #header>
|
|
<h2 class="font-semibold text-xl text-gray-800 leading-tight">Изменить устройство</h2>
|
|
</template>
|
|
|
|
<div class="py-12">
|
|
<div class="max-w-xl mx-auto sm:px-6 lg:px-8">
|
|
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg p-6">
|
|
<Form :device="device" :zones="zones" :device-types="deviceTypes" :unregistered-external-ids="unregisteredExternalIds" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</AppLayout>
|
|
</template>
|