diff --git a/src/locale/en-us.js b/src/locale/en-us.js
index 66dfc1b..27dcb80 100644
--- a/src/locale/en-us.js
+++ b/src/locale/en-us.js
@@ -98,6 +98,7 @@ const mEnUS = {
SyncMessageFailed: 'Sync Message Failed',
DecryptMessageLogFailed: 'Failed to decrypt historical conversations. Please check your encrypt key.',
ReasoningContent: 'Reasoning Content',
+ PleaseInputHistoryKeyword: 'Search Keyword',
};
export default mEnUS;
diff --git a/src/locale/zh-cn.js b/src/locale/zh-cn.js
index 54193a4..0d0a57b 100644
--- a/src/locale/zh-cn.js
+++ b/src/locale/zh-cn.js
@@ -98,6 +98,7 @@ const mZhCN = {
SyncMessageFailed: '同步历史会话失败,请关注',
DecryptMessageLogFailed: '解密历史会话失败,请检查加密密钥',
ReasoningContent: '思考过程',
+ PleaseInputHistoryKeyword: '请输入关键字以搜索历史记录',
};
export default mZhCN;
diff --git a/src/views/Chat.vue b/src/views/Chat.vue
index 518926f..e11e752 100644
--- a/src/views/Chat.vue
+++ b/src/views/Chat.vue
@@ -15,6 +15,7 @@ import {useI18n} from 'vue-i18n';
const i18n = useI18n();
// message
+const historySearchKey = ref('');
const oldLocalMessageKey = 'local-message';
const localMessages = ref([]);
const currentMessageID = ref('');
@@ -23,15 +24,22 @@ const messageIDPrefix = 'local-message-';
const localMessageStore = ref({});
const localMessageStoreKey = 'local-message-store';
const sortedMessageStore = computed(() => {
- return Object.entries(localMessageStore.value)
+ const filteredEntries = Object.entries(localMessageStore.value)
.sort(([, a], [, b]) => b.created_at - a.created_at)
- .reduce(
- (acc, [key, value]) => {
- acc[key] = value;
- return acc;
- },
- {},
- );
+ .filter(([, value]) => {
+ const content = localStorage.getItem(`${messageIDPrefix}${value.created_at}`);
+ if (!content) {
+ return false;
+ }
+ return content.includes(historySearchKey.value);
+ });
+ return filteredEntries.reduce(
+ (acc, [key, value]) => {
+ acc[key] = value;
+ return acc;
+ },
+ {},
+ );
});
const addMessage = (message) => {
localMessages.value.push(message);
@@ -363,6 +371,11 @@ const setPromptForm = (data) => promptForm.value = data;
+
promptForm.value = data;
.sync-history-config-button-box > :deep(.arco-space-item) > button{
width: 100%;
}
+
+.history-search-input {
+ border-radius: var(--border-radius-large);
+}
+
+.history-search-input :deep(.arco-input) {
+ text-align: center;
+}