<script setup lang='ts'> import { computed, ref, watch } from 'vue' import { NCard, NModal } from 'naive-ui' import pkg from '../../../../package.json' import { fetchChatConfig } from '@/api' interface Props { visible: boolean } interface Emit { (e: 'update:visible', visible: boolean): void } interface ConfigState { timeoutMs?: number reverseProxy?: string apiModel?: string } const props = defineProps<Props>() const emit = defineEmits<Emit>() const show = computed({ get() { return props.visible }, set(visible: boolean) { emit('update:visible', visible) }, }) const config = ref<ConfigState>() async function fetchConfig() { try { const { data } = await fetchChatConfig<ConfigState>() config.value = data } catch (error) { // ... } } watch( () => props.visible, (val) => { if (val) fetchConfig() }, ) </script> <template> <NModal v-model:show="show" style="width: 80%; max-width: 460px;"> <NCard> <div class="space-y-4"> <h2 class="text-xl font-bold text-center"> Version - {{ pkg.version }} </h2> <hr> <p> 此项目开源于 <a class="text-blue-600" href="https://github.com/Chanzhaoyu/chatgpt-web" target="_blank">Github</a> 如果你觉得此项目对你有帮助,请帮我点个 Star,谢谢! </p> <hr> <p>API方式:{{ config?.apiModel ?? '-' }}</p> <p>反向代理:{{ config?.reverseProxy ?? '-' }}</p> <p>超时时间:{{ config?.timeoutMs ?? '-' }}</p> </div> </NCard> </NModal> </template>