mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
feat(projects): 登录页面实现
This commit is contained in:
@ -1,18 +1,53 @@
|
||||
<template>
|
||||
<div class="flex w-full h-full">
|
||||
<div class="flex-center w-1/2 h-full">
|
||||
<h3>登录</h3>
|
||||
</div>
|
||||
<div class="flex-center w-1/2 h-full bg-primary bg-opacity-25">
|
||||
<banner-svg class="w-400px h-400px" type="1" :color="theme.themeColor" />
|
||||
<div class="relative flex-center w-full h-full bg-[#DBE0F9]">
|
||||
<login-bg />
|
||||
<div class="w-400px p-40px bg-white rounded-20px z-10">
|
||||
<header class="flex-y-center justify-between">
|
||||
<div class="w-70px h-70px rounded-35px overflow-hidden">
|
||||
<system-logo class="w-full h-full" :fill="true" />
|
||||
</div>
|
||||
<n-gradient-text type="primary" :size="28">{{ title }}</n-gradient-text>
|
||||
</header>
|
||||
<main class="pt-24px">
|
||||
<div v-for="item in modules" v-show="module === item.key" :key="item.key">
|
||||
<h3 class="text-18px text-primary font-medium">{{ item.label }}</h3>
|
||||
<component :is="item.component" />
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { BannerSvg } from '@/components';
|
||||
import { useThemeStore } from '@/store';
|
||||
import type { Component, PropType } from 'vue';
|
||||
import { NGradientText } from 'naive-ui';
|
||||
import { SystemLogo, LoginBg } from '@/components';
|
||||
import { useAppTitle } from '@/hooks';
|
||||
import { EnumLoginModule } from '@/enum';
|
||||
import type { LoginModuleType } from '@/interface';
|
||||
import { PwdLogin, CodeLogin, Register, ResetPwd, BindWechat } from './components';
|
||||
|
||||
const theme = useThemeStore();
|
||||
interface LoginModule {
|
||||
key: LoginModuleType;
|
||||
label: string;
|
||||
component: Component;
|
||||
}
|
||||
|
||||
defineProps({
|
||||
module: {
|
||||
type: String as PropType<LoginModuleType>,
|
||||
default: 'pwd-login'
|
||||
}
|
||||
});
|
||||
|
||||
const title = useAppTitle();
|
||||
|
||||
const modules: LoginModule[] = [
|
||||
{ key: 'pwd-login', label: EnumLoginModule['pwd-login'], component: PwdLogin },
|
||||
{ key: 'code-login', label: EnumLoginModule['code-login'], component: CodeLogin },
|
||||
{ key: 'register', label: EnumLoginModule.register, component: Register },
|
||||
{ key: 'reset-pwd', label: EnumLoginModule['reset-pwd'], component: ResetPwd },
|
||||
{ key: 'bind-wechat', label: EnumLoginModule['bind-wechat'], component: BindWechat }
|
||||
];
|
||||
</script>
|
||||
<style scoped></style>
|
||||
|
Reference in New Issue
Block a user