diff --git a/meshmap_frontend/src/App.vue b/meshmap_frontend/src/App.vue index 533ea45..0ef26f8 100644 --- a/meshmap_frontend/src/App.vue +++ b/meshmap_frontend/src/App.vue @@ -757,20 +757,6 @@ onBeforeUnmount(() => { @click="nodeFilter = ''" >清除 -
- - -
签到列表 使用帮助 管理 @@ -824,6 +810,7 @@ onBeforeUnmount(() => {
() type GroupedTextMessage = TextMessage & { mergedCount: number; mergedMessages: TextMessage[] } @@ -18,6 +19,7 @@ const emit = defineEmits<{ 'load-older': [] 'delete-message': [message: GroupedTextMessage] 'delete-and-block-node': [payload: { nodeId: string; nodeNum: number | null; message: GroupedTextMessage }] + 'update:channelFilter': [value: string] }>() const panelRef = ref(null) @@ -192,6 +194,22 @@ onUpdated(() => { {{ groupedMessages.length }} +
+ + +
+
正在加载更早消息...
没有更多历史消息
暂无聊天消息
diff --git a/meshmap_frontend/src/style.css b/meshmap_frontend/src/style.css index 66fc55c..bb495be 100644 --- a/meshmap_frontend/src/style.css +++ b/meshmap_frontend/src/style.css @@ -358,6 +358,53 @@ h3 { background: var(--color-primary-soft); } +.chat-filter { + display: flex; + align-items: center; + gap: 6px; + padding: 8px 12px; + border-bottom: 1px solid var(--color-border); + background: var(--color-surface-soft); + position: sticky; + z-index: 9; + top: 53px; +} + +.chat-filter-input { + flex: 1; + min-width: 0; + border: 1px solid var(--color-border-strong); + border-radius: var(--radius-sm); + padding: 6px 10px; + color: var(--color-heading); + background: var(--color-surface); + outline: none; + font-size: 13px; + transition: border-color 0.16s ease, box-shadow 0.16s ease; +} + +.chat-filter-input:focus { + border-color: var(--color-primary); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent); +} + +.chat-filter-clear { + flex-shrink: 0; + border: 1px solid var(--color-border-strong); + border-radius: var(--radius-sm); + padding: 5px 10px; + color: var(--color-heading); + background: var(--color-surface); + font-size: 12px; + font-weight: 700; +} + +.chat-filter-clear:hover { + border-color: var(--color-primary); + color: var(--color-primary-hover); + background: var(--color-primary-soft); +} + .chat-item { display: grid; gap: 6px;