Spaces:
Runtime error
Runtime error
<script lang="ts" setup> | |
import { computed, ref } from 'vue' | |
import { NButton, NInput, NModal, NSpace, useMessage } from 'naive-ui' | |
import { t } from '@/locales' | |
import { fetchUpdateChatRoomPrompt } from '@/api' | |
import { useChatStore } from '@/store' | |
const props = defineProps<Props>() | |
const emit = defineEmits<Emit>() | |
const chatStore = useChatStore() | |
const currentChatHistory = computed(() => chatStore.getChatHistoryByCurrentActive) | |
const ms = useMessage() | |
const testing = ref(false) | |
const title = `Prompt For [${currentChatHistory.value?.title}]` | |
interface Props { | |
visible: boolean | |
roomId: string | |
} | |
interface Emit { | |
(e: 'update:visible', visible: boolean): void | |
} | |
const show = computed({ | |
get() { | |
return props.visible | |
}, | |
set(visible: boolean) { | |
emit('update:visible', visible) | |
}, | |
}) | |
async function handleSaveChatRoomPrompt() { | |
if (!currentChatHistory.value || !currentChatHistory.value) | |
return | |
testing.value = true | |
try { | |
const { message } = await fetchUpdateChatRoomPrompt(currentChatHistory.value.prompt ?? '', +props.roomId) as { status: string; message: string } | |
ms.success(message) | |
show.value = false | |
} | |
catch (error: any) { | |
ms.error(error.message) | |
} | |
testing.value = false | |
} | |
</script> | |
<template> | |
<NModal | |
v-model:show="show" :auto-focus="false" class="custom-card" preset="card" :style="{ width: '600px' }" :title="title" size="huge" | |
:bordered="false" | |
> | |
<!-- <template #header-extra> | |
噢! | |
</template> --> | |
<NInput | |
:value="currentChatHistory && currentChatHistory.prompt" | |
type="textarea" | |
:autosize="{ minRows: 4, maxRows: 10 }" placeholder="Prompt for this room, If empty will use Settings -> Advanced -> Role" @input="(val) => { if (currentChatHistory) currentChatHistory.prompt = val }" | |
/> | |
<template #footer> | |
<NSpace justify="end"> | |
<NButton :loading="testing" type="success" @click="handleSaveChatRoomPrompt"> | |
{{ t('common.save') }} | |
</NButton> | |
</NSpace> | |
</template> | |
</NModal> | |
</template> | |