mirror of
https://github.com/Chanzhaoyu/chatgpt-web.git
synced 2025-07-20 19:39:40 +00:00
perf: 记录上下文设定保存到本地
This commit is contained in:
@@ -4,7 +4,12 @@ const LOCAL_NAME = 'chatStorage'
|
|||||||
|
|
||||||
export function defaultState(): Chat.ChatState {
|
export function defaultState(): Chat.ChatState {
|
||||||
const uuid = 1002
|
const uuid = 1002
|
||||||
return { active: uuid, history: [{ uuid, title: 'New Chat', isEdit: false }], chat: [{ uuid, data: [] }] }
|
return {
|
||||||
|
active: uuid,
|
||||||
|
usingContext: true,
|
||||||
|
history: [{ uuid, title: 'New Chat', isEdit: false }],
|
||||||
|
chat: [{ uuid, data: [] }],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getLocalState(): Chat.ChatState {
|
export function getLocalState(): Chat.ChatState {
|
||||||
|
@@ -23,6 +23,11 @@ export const useChatStore = defineStore('chat-store', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
|
setUsingContext(context: boolean) {
|
||||||
|
this.usingContext = context
|
||||||
|
this.recordState()
|
||||||
|
},
|
||||||
|
|
||||||
addHistory(history: Chat.History, chatData: Chat.Chat[] = []) {
|
addHistory(history: Chat.History, chatData: Chat.Chat[] = []) {
|
||||||
this.history.unshift(history)
|
this.history.unshift(history)
|
||||||
this.chat.unshift({ uuid: history.uuid, data: chatData })
|
this.chat.unshift({ uuid: history.uuid, data: chatData })
|
||||||
|
1
src/typings/chat.d.ts
vendored
1
src/typings/chat.d.ts
vendored
@@ -18,6 +18,7 @@ declare namespace Chat {
|
|||||||
|
|
||||||
interface ChatState {
|
interface ChatState {
|
||||||
active: number | null
|
active: number | null
|
||||||
|
usingContext: boolean;
|
||||||
history: History[]
|
history: History[]
|
||||||
chat: { uuid: number; data: Chat[] }[]
|
chat: { uuid: number; data: Chat[] }[]
|
||||||
}
|
}
|
||||||
|
@@ -1,13 +1,15 @@
|
|||||||
import { ref } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useMessage } from 'naive-ui'
|
import { useMessage } from 'naive-ui'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
|
import { useChatStore } from '@/store'
|
||||||
|
|
||||||
export function useUsingContext() {
|
export function useUsingContext() {
|
||||||
const ms = useMessage()
|
const ms = useMessage()
|
||||||
const usingContext = ref<boolean>(true)
|
const chatStore = useChatStore()
|
||||||
|
const usingContext = computed<boolean>(() => chatStore.usingContext)
|
||||||
|
|
||||||
function toggleUsingContext() {
|
function toggleUsingContext() {
|
||||||
usingContext.value = !usingContext.value
|
chatStore.setUsingContext(!usingContext.value)
|
||||||
if (usingContext.value)
|
if (usingContext.value)
|
||||||
ms.success(t('chat.turnOnContext'))
|
ms.success(t('chat.turnOnContext'))
|
||||||
else
|
else
|
||||||
|
@@ -416,6 +416,7 @@ const searchOptions = computed(() => {
|
|||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// value反渲染key
|
// value反渲染key
|
||||||
const renderOption = (option: { label: string }) => {
|
const renderOption = (option: { label: string }) => {
|
||||||
for (const i of promptTemplate.value) {
|
for (const i of promptTemplate.value) {
|
||||||
|
@@ -12,7 +12,8 @@ const show = ref(false)
|
|||||||
<div class="flex-1 flex-shrink-0 overflow-hidden">
|
<div class="flex-1 flex-shrink-0 overflow-hidden">
|
||||||
<UserAvatar />
|
<UserAvatar />
|
||||||
</div>
|
</div>
|
||||||
<HoverButton :tooltip="$t('setting.setting')" @click="show = true">
|
|
||||||
|
<HoverButton @click="show = true">
|
||||||
<span class="text-xl text-[#4f555e] dark:text-white">
|
<span class="text-xl text-[#4f555e] dark:text-white">
|
||||||
<SvgIcon icon="ri:settings-4-line" />
|
<SvgIcon icon="ri:settings-4-line" />
|
||||||
</span>
|
</span>
|
||||||
|
Reference in New Issue
Block a user