diff --git a/src/extensions/MentionExt.ts b/src/extensions/MentionExt.ts index 8e490bd1..06e2a917 100644 --- a/src/extensions/MentionExt.ts +++ b/src/extensions/MentionExt.ts @@ -18,7 +18,12 @@ export const createMention = (onMentionLoad: (query: string) => any[] | Promise< // 只要前一个字符是英文/数字,就不触发,避免邮箱的情况 if (offsetInParent > 0 && text.length >= offsetInParent) { - const beforeChar = text.charAt(offsetInParent) + // 如果字符中包含@则直接拿@前一个字符判断 + const firstAtIndex = text.indexOf('@') + let beforeChar = text.charAt(offsetInParent) + if (firstAtIndex !== -1) { + beforeChar = text.charAt(firstAtIndex - 1) + } return !/^[a-zA-Z0-9]$/.test(beforeChar) } return true // 行首等情况允许 diff --git a/src/main.ts b/src/main.ts index a8bf7ed5..e0738430 100644 --- a/src/main.ts +++ b/src/main.ts @@ -206,6 +206,18 @@ window.aiEditor = new AiEditor({ { id: 5, label: 'Jerry Hall' + }, + { + id: 6, + label: '张三' + }, + { + id: 7, + label: '李四' + }, + { + id: 8, + label: '王五' } ].filter(item => item.label.toLowerCase().startsWith(query.toLowerCase())).slice(0, 5) resolve(data)