diff --git a/src/i18n/BasicConfig.js b/src/i18n/BasicConfig.js index 587a00486..8727c4775 100644 --- a/src/i18n/BasicConfig.js +++ b/src/i18n/BasicConfig.js @@ -140,4 +140,8 @@ export default { zh: '注意:如果更改非 QUIC 类型的监听器端口,将会断开所有已存在的连接,是否继续?', en: 'Note: If the port of listeners (except QUIC type) is changed, all existing connections will be disconnected. Continue?', }, + duplicatedAttrError: { + zh: '存在相同的属性', + en: 'Duplicated Attribute', + }, } diff --git a/src/i18n/Rule.js b/src/i18n/Rule.js index f75daccca..8604fccce 100644 --- a/src/i18n/Rule.js +++ b/src/i18n/Rule.js @@ -67,4 +67,8 @@ export default { zh: '可配置的最大值为 {max}', en: 'Configurable maximum value is {max}', }, + incompleteTableError: { + zh: '请完整填写表格', + en: 'Please complete the table', + }, } diff --git a/src/views/Config/BasicConfig/Mqtt.vue b/src/views/Config/BasicConfig/Mqtt.vue index 699988624..1dc0b9a35 100644 --- a/src/views/Config/BasicConfig/Mqtt.vue +++ b/src/views/Config/BasicConfig/Mqtt.vue @@ -4,6 +4,7 @@ void) { + if ( + value?.some?.( + ({ set_as_attr, expression }: { expression: string; set_as_attr: string }) => + !set_as_attr || !expression, + ) + ) { + cb(new Error(t('Rule.incompleteTableError'))) + } + const setAsAttrArr = value?.map?.((item: any) => item.set_as_attr) + const uniqueSetAsAttrArr = [...new Set(setAsAttrArr)] + if (setAsAttrArr.length !== uniqueSetAsAttrArr.length) { + cb(new Error(t('BasicConfig.duplicatedAttrError'))) + } + cb() + }, + }) + } } const { items } = client_attrs_init || {}