提交 fec531f9 编写于 作者: View Design's avatar View Design

Update Create.vue

上级 fcff9f63
...@@ -14,36 +14,60 @@ ...@@ -14,36 +14,60 @@
:padded="false" :padded="false"
maxlength="2000" maxlength="2000"
/> />
<div class="flex justify-between"> <div class="flex justify-between items-center">
<USelectMenu <div class="flex items-center gap-2">
:ui-menu="menuUI" <UTooltip :text="isInternet ? '已接入互联网' : '不接入互联网'" :shortcuts="[metaSymbol, 'O']">
v-model="selectedRepo"
:options="$repos"
placeholder="选择 GitHub 项目"
value-attribute="label"
option-attribute="label"
>
<UButton color="gray" variant="ghost" :class="{ 'group': selectedRepo }">
<span>{{ selectedRepo || '选择 GitHub 项目' }}</span>
<UIcon name="i-heroicons-chevron-down-20-solid" class="text-xl flex group-hover:hidden" />
<UButton <UButton
v-if="selectedRepo" :ui="{ rounded: 'rounded-full' }"
class="hidden group-hover:flex" :icon="isInternet ? 'i-heroicons-signal-20-solid' : 'i-heroicons-signal-slash-20-solid'"
@click.stop.prevent="handleClearRepo"
icon="i-heroicons-x-mark-20-solid"
:padded="false"
color="gray" color="gray"
variant="link" variant="ghost"
@click="handleToggleInternet"
/> />
</UButton> </UTooltip>
</USelectMenu> <USelectMenu
<UButton :ui-menu="menuUI"
trailing-icon="i-heroicons-chevron-right-20-solid" v-model="selectedRepo"
@click="handleSearch" :options="$repos"
:loading="loading" placeholder="选择 GitHub 项目"
:disabled="query === ''" value-attribute="label"
label="搜索" option-attribute="label"
/> >
<UTooltip text="选择 GitHub 项目" v-if="!selectedRepo">
<UButton
:ui="{ rounded: 'rounded-full' }"
icon="i-simple-icons-github"
color="gray"
variant="ghost"
/>
</UTooltip>
<UButton v-else color="gray" variant="ghost" :class="{ 'group': selectedRepo }">
<UIcon name="i-simple-icons-github" />
<span>{{ selectedRepo }}</span>
<UIcon name="i-heroicons-chevron-down-20-solid" class="text-xl flex group-hover:hidden" />
<UButton
v-if="selectedRepo"
class="hidden group-hover:flex"
@click.stop.prevent="handleClearRepo"
icon="i-heroicons-x-mark-20-solid"
:padded="false"
color="gray"
variant="link"
/>
</UButton>
</USelectMenu>
</div>
<UTooltip text="搜索" :shortcuts="[metaSymbol, 'Enter']">
<UButton
:ui="{ rounded: 'rounded-full' }"
icon="i-heroicons-chevron-right-20-solid"
@click="handleSearch"
:loading="loading"
:disabled="query === ''"
size="md"
/>
</UTooltip>
</div> </div>
</UCard> </UCard>
</div> </div>
...@@ -52,26 +76,28 @@ ...@@ -52,26 +76,28 @@
const { $repos } = storeToRefs(useReposStore()) const { $repos } = storeToRefs(useReposStore())
const { $setRepo } = useReposStore() const { $setRepo } = useReposStore()
const { $setFirstRecordTitle } = useSearchStore() const { $setFirstRecordTitle } = useSearchStore()
const { metaSymbol } = useShortcuts()
const emits = defineEmits([ 'search' ]) const emits = defineEmits([ 'search' ])
const query = ref('') const query = ref('')
const selectedRepo = ref('') const selectedRepo = ref('')
const loading = ref(false) const loading = ref(false)
const cardUI = { const cardUI = {
body: { body: {
padding: 'p-4 sm:p-4' padding: 'p-3 sm:p-3'
}, },
rounded: 'rounded-xl' rounded: 'rounded-xl'
} }
const menuUI = { const menuUI = {
width: 'w-auto' width: 'w-auto'
} }
const isInternet = ref(true)
const handleSearch = async () => { const handleSearch = async () => {
if (loading.value || query.value === '') return if (loading.value || query.value === '') return
loading.value = true loading.value = true
const currentRepo = $repos.value.find(item => item.label === selectedRepo.value) const currentRepo = $repos.value.find(item => item.label === selectedRepo.value)
const repo_path = currentRepo ? currentRepo.url : '' const repo_path = currentRepo ? currentRepo.url : ''
const { data, error } = await useRequest('/v1/chat/completion/create', { const { data, error } = await useRequest('/v1/chat/completion/create', {
method: 'post', method: 'post',
body: { body: {
repo_path, repo_path,
...@@ -108,6 +134,16 @@ defineShortcuts({ ...@@ -108,6 +134,16 @@ defineShortcuts({
handler: () => { handler: () => {
handleSearch() handleSearch()
} }
},
meta_o: {
usingInput: 'createInput',
handler: () => {
handleToggleInternet()
}
} }
}) })
function handleToggleInternet () {
isInternet.value = !isInternet.value
}
</script> </script>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册