feat: 新增聊天消息搜索功能

- 会话内搜索:header 加搜索按钮,展开搜索栏,结果列表显示在消息区上方,点击跳转到对应时间
- 全局消息搜索:会话列表搜索框新增消息模式切换按钮,搜索结果展示在会话列表下方,点击跳转到对应会话
- preload 暴露 chat.searchMessages IPC
This commit is contained in:
hicccc77
2026-03-15 19:35:36 +08:00
parent 7024b86d00
commit 053e2cdc64
3 changed files with 270 additions and 5 deletions

View File

@@ -4630,3 +4630,126 @@
}
}
}
// 会话内搜索栏
.in-session-search-bar {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
background: var(--bg-secondary);
border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
.in-session-search-icon {
color: var(--text-tertiary);
flex-shrink: 0;
}
.in-session-search-input {
flex: 1;
border: none;
background: transparent;
outline: none;
font-size: 13px;
color: var(--text-primary);
min-width: 0;
&::placeholder { color: var(--text-tertiary); }
}
.in-session-result-count {
font-size: 12px;
color: var(--text-tertiary);
flex-shrink: 0;
}
}
.in-session-results {
max-height: 220px;
overflow-y: auto;
border-bottom: 1px solid var(--border-color);
background: var(--bg-primary);
flex-shrink: 0;
.in-session-result-item {
display: flex;
flex-direction: column;
padding: 7px 12px;
cursor: pointer;
gap: 2px;
border-bottom: 1px solid var(--border-color);
&:hover { background: var(--bg-secondary); }
.result-sender {
font-size: 11px;
color: var(--text-tertiary);
}
.result-content {
font-size: 13px;
color: var(--text-primary);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.result-time {
font-size: 11px;
color: var(--text-tertiary);
align-self: flex-end;
}
}
}
// 全局消息搜索结果面板
.global-msg-search-results {
max-height: 320px;
overflow-y: auto;
background: var(--bg-primary);
border-top: 1px solid var(--border-color);
.global-msg-searching,
.global-msg-empty {
display: flex;
align-items: center;
gap: 6px;
padding: 12px;
font-size: 13px;
color: var(--text-tertiary);
}
.global-msg-result-item {
padding: 8px 12px;
cursor: pointer;
border-bottom: 1px solid var(--border-color);
&:hover { background: var(--bg-secondary); }
.global-msg-result-session {
font-size: 11px;
color: var(--text-accent, #07c160);
margin-bottom: 2px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.global-msg-result-content {
font-size: 13px;
color: var(--text-primary);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.global-msg-result-time {
font-size: 11px;
color: var(--text-tertiary);
margin-top: 2px;
}
}
}
.msg-search-toggle-btn.active {
color: var(--accent-color, #07c160);
}
.in-session-search-btn.active {
color: var(--accent-color, #07c160);
}