perf: 记录上下文设定保存到本地

main
ChenZhaoYu 2 years ago
parent 0b13846861
commit b3cfe7a976

@ -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 })

@ -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 []
} }
}) })
// valuekey // valuekey
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>

Loading…
Cancel
Save