Skip to content

Commit efee3c7

Browse files
committed
feat: 调整文件搜索交互提示,优化用户体验 #594
1 parent 2aeb1a8 commit efee3c7

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

docs/develop-guides/roadmap.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
<!-- 0.6.1 的内容请放在这里 -->
3737
- 调整 backend Python 工作区依赖边界:将 `backend/package/yuxi` 明确为承载核心运行依赖的业务包,根 `backend/pyproject.toml` 仅保留工作区入口与开发/测试配置,减少依赖职责混淆。
3838
- 修复沙盒 `workspace` 隔离粒度:宿主机目录从共享 `saves/threads/shared/workspace` 收敛为用户级 `saves/threads/shared/<user_id>/workspace`,并同步传递 `user_id` 到 sandbox 路径解析、provisioner 挂载与 viewer/chat 测试,保证同用户跨线程共享、不同用户隔离。
39+
- 调整输入框 `@` 提及中的文件搜索交互:无查询内容时不再直接展示文件列表,改为提示“输入相关内容以搜索文件”,避免未过滤结果干扰选择。
3940

4041

4142
历史版本发布记录已迁移到 [版本变更记录](./changelog.md)

web/src/components/MessageInputComponent.vue

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,21 @@
4646
>
4747
<div class="mention-popup">
4848
<!-- 文件列表 -->
49-
<div v-if="mentionItems.files.length > 0" class="mention-group">
49+
<div v-if="mentionItems.files.length > 0 || showFileSearchPrompt" class="mention-group">
5050
<div class="mention-group-title">文件</div>
51-
<div
52-
v-for="(item, index) in mentionItems.files"
53-
:key="'file-' + item.value"
54-
:class="['mention-item', { active: isItemSelected('file', index) }]"
55-
@click="insertMention(item)"
56-
>
57-
{{ item.label }}
51+
<div v-if="showFileSearchPrompt" class="mention-search-placeholder">
52+
输入相关内容以搜索文件
5853
</div>
54+
<template v-else>
55+
<div
56+
v-for="(item, index) in mentionItems.files"
57+
:key="'file-' + item.value"
58+
:class="['mention-item', { active: isItemSelected('file', index) }]"
59+
@click="insertMention(item)"
60+
>
61+
{{ item.label }}
62+
</div>
63+
</template>
5964
</div>
6065

6166
<!-- 知识库列表 -->
@@ -252,7 +257,6 @@ const updateMentionItems = (query = '') => {
252257
253258
const lowerQuery = query.toLowerCase()
254259
const { files = [], knowledgeBases = [], mcps = [], skills = [], subagents = [] } = props.mention
255-
const workspacePrefix = '/home/gem/user-data/workspace/'
256260
257261
const filterItems = (list) =>
258262
list.filter((item) => {
@@ -273,7 +277,7 @@ const updateMentionItems = (query = '') => {
273277
274278
const filterFileItems = (list) => {
275279
if (!query) {
276-
return list.filter((item) => !String(item.value || '').startsWith(workspacePrefix))
280+
return []
277281
}
278282
return filterItems(list)
279283
}
@@ -372,9 +376,14 @@ const isItemSelected = (type, index) => {
372376
}
373377
374378
// 是否有任何候选项
379+
const showFileSearchPrompt = computed(() => {
380+
return Boolean(props.mention?.files?.length) && !mentionQuery.value
381+
})
382+
375383
const hasAnyItems = computed(() => {
376384
const items = mentionItems.value
377385
return (
386+
showFileSearchPrompt.value ||
378387
items.files.length > 0 ||
379388
items.knowledgeBases.length > 0 ||
380389
items.mcps.length > 0 ||
@@ -883,5 +892,11 @@ defineExpose({
883892
color: var(--gray-400);
884893
font-size: 13px;
885894
}
895+
896+
.mention-search-placeholder {
897+
padding: 4px 8px;
898+
color: var(--gray-400);
899+
font-size: 13px;
900+
}
886901
}
887902
</style>

0 commit comments

Comments
 (0)