This commit is contained in:
2024-02-27 19:57:25 +08:00
parent a974f7dec4
commit cca5563966
4 changed files with 51 additions and 12 deletions

View File

@@ -30,8 +30,22 @@ const links = [
} }
] ]
const items = [
[{
label: 'support@fenshenzhike.com',
slot: 'account',
disabled: true
}], [{
label: '账号资料',
icon: 'i-tabler-user-circle'
}], [{
label: '注销登录',
icon: 'i-tabler-logout'
}]
]
const open_login_modal = () => { const open_login_modal = () => {
modal.open(ModalAuthentication, {}) modal.open(ModalAuthentication)
} }
</script> </script>
@@ -56,7 +70,27 @@ const open_login_modal = () => {
/> />
<UButton label="登录或注册" size="xs" class="font-bold" color="indigo" @click="open_login_modal"/> <UButton label="登录或注册" size="xs" class="font-bold" color="indigo" @click="open_login_modal"/>
</ClientOnly> </ClientOnly>
<UDropdown :items="items" :popper="{ placement: 'bottom-start' }"
:ui="{ item: { disabled: 'cursor-text select-text' } }">
<UAvatar :src="void 0" icon="i-tabler-user" size="md"/> <UAvatar :src="void 0" icon="i-tabler-user" size="md"/>
<template #account="{ item }">
<div class="text-left">
<p class="flex items-center gap-1">
已登录为
<UBadge color="amber" size="xs" variant="subtle">OP</UBadge>
</p>
<p class="truncate whitespace-nowrap max-w-40 font-medium text-gray-900 dark:text-white">
{{ item.label }}
</p>
</div>
</template>
<template #item="{ item }">
<span class="truncate">{{ item.label }}</span>
<UIcon :name="item.icon" class="flex-shrink-0 h-4 w-4 text-gray-400 dark:text-gray-500 ms-auto"/>
</template>
</UDropdown>
</div> </div>
</header> </header>
@@ -79,9 +113,10 @@ body {
<style scoped> <style scoped>
header { header {
@apply fixed inset-x-0 h-16 bg-white border-b; @apply fixed inset-x-0 h-16 bg-white border-b z-30;
@apply dark:bg-neutral-900 dark:border-neutral-800; @apply dark:bg-neutral-900 dark:border-neutral-800;
@apply flex flex-row items-center justify-between px-4; @apply flex flex-row items-center justify-between px-4;
@apply bg-opacity-50 dark:bg-opacity-50 backdrop-blur-3xl backdrop-saturate-150;
} }
main { main {

View File

@@ -7,7 +7,7 @@ export default defineNuxtConfig({
'dayjs-nuxt', 'dayjs-nuxt',
"@pinia/nuxt", "@pinia/nuxt",
"@pinia-plugin-persistedstate/nuxt", "@pinia-plugin-persistedstate/nuxt",
"@vite-pwa/nuxt" "@vite-pwa/nuxt",
], ],
ui: { ui: {
icons: ['tabler', 'solar', 'line-md', 'svg-spinners'] icons: ['tabler', 'solar', 'line-md', 'svg-spinners']

View File

@@ -17,7 +17,7 @@ const props = defineProps({
</script> </script>
<template> <template>
<div class="bg-neutral-50 dark:bg-neutral-900 px-1.5 py-1 rounded-lg flex flex-col gap-1"> <div class="bg-neutral-50 dark:bg-neutral-900 px-1.5 py-1 rounded-lg flex flex-col gap-1 shadow">
<div class="flex items-center gap-1 text-sm"> <div class="flex items-center gap-1 text-sm">
<UIcon v-if="icon" :name="icon" class="text-base inline-block"/> <UIcon v-if="icon" :name="icon" class="text-base inline-block"/>
<div class="flex-1 flex items-center truncate whitespace-nowrap overflow-hidden"> <div class="flex-1 flex items-center truncate whitespace-nowrap overflow-hidden">
@@ -28,7 +28,7 @@ const props = defineProps({
</div> </div>
<slot name="actions"/> <slot name="actions"/>
</div> </div>
<div> <div class="flex flex-col gap-2">
<slot/> <slot/>
</div> </div>
</div> </div>

View File

@@ -33,24 +33,28 @@ const handle_mousedown = (e: MouseEvent, min: number = 240, max: number = 400) =
</script> </script>
<template> <template>
<div class="h-full flex"> <div class="w-full flex">
<div ref="leftSection" class="relative bg-neutral-200 dark:bg-neutral-800 transition-all" style="width: 320px"> <div ref="leftSection"
<div ref="leftHandler" class="absolute inset-0 left-auto hidden xl:flex flex-col justify-center items-center cursor-ew-resize px-1 group" class="relative h-[calc(100vh-4rem)] overflow-hidden bg-neutral-200 dark:bg-neutral-800 transition-all"
style="width: 320px">
<div ref="leftHandler"
class="absolute inset-0 left-auto hidden xl:flex flex-col justify-center items-center cursor-ew-resize px-1 group"
@dblclick="leftSection?.style.setProperty('width', '320px')" @dblclick="leftSection?.style.setProperty('width', '320px')"
@mousedown.prevent="handle_mousedown"> @mousedown.prevent="handle_mousedown">
<span <span
class="w-[1px] h-full bg-neutral-300 dark:bg-neutral-700 group-hover:bg-indigo-300 dark:group-hover:bg-indigo-700 group-hover:w-[3px] transition-all group-hover:delay-500 translate-x-1"></span> class="w-[1px] h-full bg-neutral-300 dark:bg-neutral-700 group-hover:bg-indigo-300 dark:group-hover:bg-indigo-700 group-hover:w-[3px] transition-all group-hover:delay-500 translate-x-1"></span>
</div> </div>
<div class="p-4 flex flex-col gap-2"> <div class="h-full p-4 flex flex-col gap-2 overflow-y-auto">
<OptionBlock comment="Prompts" icon="i-tabler-article" label="提示词"> <OptionBlock comment="Prompts" icon="i-tabler-article" label="提示词">
<template #actions> <template #actions>
<UBadge color="sky" size="xs">按钮A</UBadge> <UBadge color="sky" size="xs">按钮A</UBadge>
<UBadge color="indigo" size="xs">按钮B</UBadge> <UBadge color="indigo" size="xs">按钮B</UBadge>
</template> </template>
<UTextarea autoresize placeholder="请输入英文提示词,每个提示词之间用英文逗号隔开" rows="2"/> <UTextarea :rows="2" autoresize placeholder="请输入英文提示词,每个提示词之间用英文逗号隔开" resize/>
</OptionBlock> </OptionBlock>
<OptionBlock comment="Negative Prompts" icon="i-tabler-article-off" label="负面提示词"> <OptionBlock comment="Negative Prompts" icon="i-tabler-article-off" label="负面提示词">
<UTextarea autoresize placeholder="请输入作品中不要出现的提示词,每个提示词之间用英文逗号隔开" rows="2"/> <UTextarea :rows="2" autoresize placeholder="请输入作品中不要出现的提示词,每个提示词之间用英文逗号隔开"
resize/>
</OptionBlock> </OptionBlock>
</div> </div>
</div> </div>