diff --git a/frontend/assets/css/tailwind.css b/frontend/assets/css/tailwind.css index cd5d01a..6fb94bf 100644 --- a/frontend/assets/css/tailwind.css +++ b/frontend/assets/css/tailwind.css @@ -584,6 +584,10 @@ @apply bg-[#03C160]/15; } + .message-filter-select { + @apply text-xs px-2 py-1.5 rounded-lg bg-white border border-gray-200 text-gray-700 focus:outline-none focus:ring-2 focus:ring-[#03C160]/20 focus:border-[#03C160] transition-all disabled:opacity-50 disabled:cursor-not-allowed; + } + /* 搜索侧边栏样式 */ .search-sidebar { @apply w-[420px] h-full flex flex-col bg-white border-l border-gray-200 flex-shrink-0; diff --git a/frontend/composables/useApi.js b/frontend/composables/useApi.js index 28e6de0..a7d7967 100644 --- a/frontend/composables/useApi.js +++ b/frontend/composables/useApi.js @@ -80,6 +80,7 @@ export const useApi = () => { if (params && params.limit != null) query.set('limit', String(params.limit)) if (params && params.offset != null) query.set('offset', String(params.offset)) if (params && params.order) query.set('order', params.order) + if (params && params.render_types) query.set('render_types', params.render_types) const url = '/chat/messages' + (query.toString() ? `?${query.toString()}` : '') return await request(url) } @@ -209,6 +210,7 @@ export const useApi = () => { end_time: data.end_time != null ? Number(data.end_time) : null, include_hidden: !!data.include_hidden, include_official: !!data.include_official, + message_types: Array.isArray(data.message_types) ? data.message_types : [], include_media: data.include_media == null ? true : !!data.include_media, media_kinds: Array.isArray(data.media_kinds) ? data.media_kinds : ['image', 'emoji', 'video', 'video_thumb', 'voice', 'file'], allow_process_key_extract: !!data.allow_process_key_extract, diff --git a/frontend/pages/chat/[[username]].vue b/frontend/pages/chat/[[username]].vue index ad8a0c7..6785c96 100644 --- a/frontend/pages/chat/[[username]].vue +++ b/frontend/pages/chat/[[username]].vue @@ -161,6 +161,16 @@ 导出 + + + + +
已选 {{ exportMessageTypes.length }} 项
+ +
+ +
+
+ 仅导出所选类型的消息(影响导出消息条数与进度统计)。 +
+ +
+ 默认导出会话内全部消息;如需只导出语音/转账/红包等,请选择“按类型筛选”。 +
+ + +
+
离线媒体文件(可选)
+
+ 仅影响 ZIP 是否包含媒体文件;消息条数由“消息类型(导出内容)”决定。 +