diff --git a/frontend/src/components/pure/ms-tags-input/index.vue b/frontend/src/components/pure/ms-tags-input/index.vue index 6c57332e9b..dd867cacd2 100644 --- a/frontend/src/components/pure/ms-tags-input/index.vue +++ b/frontend/src/components/pure/ms-tags-input/index.vue @@ -111,6 +111,23 @@ } ); + function validateTagsCountEnter() { + if (innerModelValue.value.length > 10) { + innerModelValue.value.pop(); + Message.warning(t('common.tagCountMax')); + return false; + } + return true; + } + + function validateTagsCountBlur() { + if (tagsLength.value >= 10) { + Message.warning(t('common.tagCountMax')); + return false; + } + return true; + } + function validateUniqueValue() { if ( props.uniqueValue && @@ -130,6 +147,7 @@ innerInputValue.value && innerInputValue.value.trim() !== '' && validateUniqueValue() && + validateTagsCountBlur() && (innerInputValue.value || '').trim().length <= props.maxLength ) { innerModelValue.value.push(innerInputValue.value.trim()); @@ -139,7 +157,11 @@ } function tagInputEnter() { - if (validateUniqueValue() && (innerInputValue.value || '').trim().length <= props.maxLength) { + if ( + validateTagsCountEnter() && + validateUniqueValue() && + (innerInputValue.value || '').trim().length <= props.maxLength + ) { innerInputValue.value = ''; tagsLength.value += 1; } else { diff --git a/frontend/src/locale/en-US/common.ts b/frontend/src/locale/en-US/common.ts index 33d0bb3352..4cdbe95b7f 100644 --- a/frontend/src/locale/en-US/common.ts +++ b/frontend/src/locale/en-US/common.ts @@ -69,6 +69,7 @@ export default { 'common.resetDefault': 'Reset default', 'common.tagPlaceholder': 'Add tag and press Enter to end', 'common.tagInputMaxLength': 'The tag must not exceed {number} characters', + 'common.tagCountMax': 'The number of labels must not exceed 10', 'common.batchModify': 'Batch Edit', 'common.batchAdd': 'Batch Add', 'common.pleaseSelect': 'please choose', @@ -124,5 +125,5 @@ export default { 'common.stop': 'Stop', 'common.module': 'Module', 'common.yes': 'Yes', - 'common.no': 'No' + 'common.no': 'No', }; diff --git a/frontend/src/locale/zh-CN/common.ts b/frontend/src/locale/zh-CN/common.ts index be87645c4e..4b6d917f50 100644 --- a/frontend/src/locale/zh-CN/common.ts +++ b/frontend/src/locale/zh-CN/common.ts @@ -71,6 +71,7 @@ export default { 'common.resetDefault': '恢复默认', 'common.tagPlaceholder': '添加标签回车结束', 'common.tagInputMaxLength': '标签不得超过 {number} 个字符', + 'common.tagCountMax': '标签个数不得超过 10 个', 'common.batchModify': '批量修改', 'common.batchAdd': '批量添加', 'common.pleaseInput': '请输入', @@ -127,5 +128,5 @@ export default { 'common.stop': '停止', 'common.module': '模块', 'common.yes': '是', - 'common.no': '否' + 'common.no': '否', };