2025-04-30 14:01:52 +08:00
|
|
|
<template>
|
2025-06-18 21:47:27 +08:00
|
|
|
<div class="loginPage">
|
|
|
|
|
<div class="left">
|
2025-06-30 10:53:25 +08:00
|
|
|
<div class="imgBox">
|
2025-07-19 14:04:48 +08:00
|
|
|
<img src="@/assets/images/homePage/loginLeftImg.png" alt="">
|
2025-06-30 10:53:25 +08:00
|
|
|
</div>
|
|
|
|
|
<!-- <Works :autoscroll="true" :position="'login'"></Works>
|
2025-06-18 21:47:27 +08:00
|
|
|
<div class="mask" v-show="isMask" @click="() => (isMask = !isMask)">
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div class="userNum">
|
|
|
|
|
<div class="title">5 000 000 +</div>
|
|
|
|
|
<div>HAPPY USERS</div>
|
|
|
|
|
</div>
|
2025-06-26 15:41:08 +08:00
|
|
|
<div class="info">AI that millions trust, every single day</div>
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
2025-06-30 10:53:25 +08:00
|
|
|
</div> -->
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
|
|
|
|
<div class="right">
|
|
|
|
|
<div class="Text" v-show="!loginType">
|
2025-07-19 14:04:48 +08:00
|
|
|
<div class="title">
|
|
|
|
|
<p style="font-weight: 700;">Welcome to AiDA</p>
|
|
|
|
|
<p style="font-weight: 400;">Bloom Your Creativity</p>
|
|
|
|
|
</div>
|
2025-06-18 21:47:27 +08:00
|
|
|
<div class="info">
|
2025-06-30 10:53:25 +08:00
|
|
|
AiDA, a first-to-market technology that empowers fashion designers, based on their creative inspirations, to work with AI to create original designs.
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-07-24 09:26:27 +08:00
|
|
|
<div class="loginBox" :class="{'active':loginType}">
|
2025-06-18 21:47:27 +08:00
|
|
|
<div class="selectType" v-show="!loginType">
|
2025-07-19 14:04:48 +08:00
|
|
|
<div class="text">Continue with one of these:</div>
|
2025-06-18 21:47:27 +08:00
|
|
|
<div class="typeList">
|
2025-07-19 14:04:48 +08:00
|
|
|
<div class="gallery_btn" @click="setLoginType('personal')">
|
2025-06-30 10:53:25 +08:00
|
|
|
Individual
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
2025-07-19 14:04:48 +08:00
|
|
|
<div class="gallery_btn" @click="setLoginType('school')">
|
2025-06-30 10:53:25 +08:00
|
|
|
Academic
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
2025-07-24 09:26:27 +08:00
|
|
|
<!-- <div class="gallery_btn" @click="setLoginType('enterprise')">
|
|
|
|
|
Enterprise
|
|
|
|
|
</div> -->
|
2025-06-18 21:47:27 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="login" v-show="loginType">
|
|
|
|
|
<div class="title">
|
|
|
|
|
<i
|
|
|
|
|
class="fi fi-br-angle-small-left"
|
|
|
|
|
@click="() => (loginType = '')"
|
|
|
|
|
></i>
|
|
|
|
|
<!-- <i class="fi fi-rr-arrow-left" @click="()=>loginType = ''"></i> -->
|
|
|
|
|
<span>Log on to AiDA 3.0</span>
|
|
|
|
|
</div>
|
|
|
|
|
<personal v-show="loginType == 'personal'"></personal>
|
|
|
|
|
<school v-show="loginType == 'school'"></school>
|
|
|
|
|
<enterprise v-show="loginType == 'enterprise'"></enterprise>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-04-30 14:01:52 +08:00
|
|
|
</template>
|
|
|
|
|
<script lang="ts">
|
2025-06-18 21:47:27 +08:00
|
|
|
import {
|
|
|
|
|
defineComponent,
|
|
|
|
|
computed,
|
|
|
|
|
ref,
|
|
|
|
|
provide,
|
|
|
|
|
nextTick,
|
|
|
|
|
createVNode,
|
|
|
|
|
toRefs,
|
|
|
|
|
reactive,
|
|
|
|
|
} from "vue";
|
|
|
|
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
2025-04-30 14:01:52 +08:00
|
|
|
import { Https } from "@/tool/https";
|
|
|
|
|
import { useStore } from "vuex";
|
2025-06-18 21:47:27 +08:00
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
|
|
import md5 from "md5";
|
2025-04-30 14:01:52 +08:00
|
|
|
import Works from "@/views/HomeView/Works.vue";
|
|
|
|
|
import { message } from "ant-design-vue";
|
|
|
|
|
import { isEmail } from "@/tool/util";
|
|
|
|
|
import personal from "@/component/LoginPage/login/personal.vue";
|
|
|
|
|
import school from "@/component/LoginPage/login/school.vue";
|
|
|
|
|
import enterprise from "@/component/LoginPage/login/enterprise.vue";
|
|
|
|
|
export default defineComponent({
|
2025-06-18 21:47:27 +08:00
|
|
|
components: {
|
|
|
|
|
Works,
|
|
|
|
|
personal,
|
|
|
|
|
school,
|
|
|
|
|
enterprise,
|
|
|
|
|
},
|
|
|
|
|
props: {},
|
|
|
|
|
emits: [],
|
|
|
|
|
setup(props, { emit }) {
|
|
|
|
|
const store = useStore();
|
|
|
|
|
const loginData = reactive({
|
|
|
|
|
loginType: "",
|
|
|
|
|
isMask: true,
|
|
|
|
|
});
|
|
|
|
|
const dataDom = reactive({});
|
|
|
|
|
const setLoginType = (str: any) => {
|
|
|
|
|
loginData.loginType = str;
|
|
|
|
|
};
|
|
|
|
|
return {
|
|
|
|
|
...toRefs(dataDom),
|
|
|
|
|
...toRefs(loginData),
|
|
|
|
|
setLoginType,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
provide() {
|
|
|
|
|
return {};
|
|
|
|
|
},
|
|
|
|
|
});
|
2025-04-30 14:01:52 +08:00
|
|
|
</script>
|
|
|
|
|
<style lang="less" scoped>
|
2025-06-18 21:47:27 +08:00
|
|
|
.loginPage {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
position: relative;
|
|
|
|
|
display: flex;
|
2025-07-19 14:04:48 +08:00
|
|
|
font-family: 'Satoshi';
|
|
|
|
|
background: #000;
|
2025-06-18 21:47:27 +08:00
|
|
|
> .left,
|
|
|
|
|
> .right {
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
> .left {
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 57%;
|
|
|
|
|
// width: 55%;
|
2025-06-18 21:47:27 +08:00
|
|
|
background: #f7f8fa;
|
|
|
|
|
position: relative;
|
2025-07-19 14:04:48 +08:00
|
|
|
background: #000;
|
2025-06-30 10:53:25 +08:00
|
|
|
> .imgBox{
|
2025-07-19 14:04:48 +08:00
|
|
|
background: #000;
|
2025-06-30 10:53:25 +08:00
|
|
|
height: 100%;
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 100%;
|
2025-06-30 10:53:25 +08:00
|
|
|
> img{
|
|
|
|
|
width: 100%;
|
2025-07-19 14:04:48 +08:00
|
|
|
height: 100%;
|
2025-06-30 10:53:25 +08:00
|
|
|
}
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
> .mask {
|
|
|
|
|
position: absolute;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
to bottom,
|
|
|
|
|
rgba(255, 255, 255, 0) 0%,
|
|
|
|
|
rgba(0, 0, 0, 0.8) 100%
|
|
|
|
|
);
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
color: #fff;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
> .content {
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 15rem;
|
|
|
|
|
//黑色径向渐变
|
|
|
|
|
background: radial-gradient(
|
|
|
|
|
ellipse at center,
|
|
|
|
|
rgba(0, 0, 0, 0.3) 0%,
|
|
|
|
|
rgba(0, 0, 0, 0) 70%
|
|
|
|
|
);
|
|
|
|
|
.userNum {
|
|
|
|
|
line-height: 1;
|
|
|
|
|
margin-bottom: 3rem;
|
|
|
|
|
> .title {
|
|
|
|
|
font-size: 8rem;
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
}
|
|
|
|
|
> div {
|
|
|
|
|
font-size: 3rem;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
> .info {
|
|
|
|
|
font-size: 4rem;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
> .right {
|
|
|
|
|
display: flex;
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 45%;
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 0;
|
2025-06-18 21:47:27 +08:00
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
flex-direction: column;
|
2025-07-19 14:04:48 +08:00
|
|
|
background: #d9d9d9;
|
|
|
|
|
border-radius: 7rem 0 0 7rem;
|
|
|
|
|
overflow: hidden;
|
2025-06-18 21:47:27 +08:00
|
|
|
> .Text {
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 65rem;
|
2025-06-18 21:47:27 +08:00
|
|
|
text-align: center;
|
|
|
|
|
> .title {
|
2025-07-19 14:04:48 +08:00
|
|
|
font-size: 6.4rem;
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
margin-bottom: 3.2rem;
|
|
|
|
|
p{
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
}
|
|
|
|
|
> .info {
|
2025-07-19 14:04:48 +08:00
|
|
|
font-size: 2rem;
|
|
|
|
|
// margin-bottom: 4rem;
|
|
|
|
|
margin-bottom: 0rem;
|
|
|
|
|
font-weight: 300;
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
letter-spacing:-.5px;
|
2025-06-18 21:47:27 +08:00
|
|
|
}
|
|
|
|
|
> .continue {
|
|
|
|
|
> i {
|
|
|
|
|
margin-left: 1rem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
> .loginBox {
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 44rem;
|
|
|
|
|
margin-top: 7rem;
|
2025-07-24 09:26:27 +08:00
|
|
|
&.active{
|
|
|
|
|
width: 53rem;
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
> .selectType {
|
|
|
|
|
width: 100%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
> .text {
|
2025-07-19 14:04:48 +08:00
|
|
|
font-size: 3.2rem;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
margin-bottom: 2rem;
|
2025-06-18 21:47:27 +08:00
|
|
|
}
|
|
|
|
|
> .typeList {
|
2025-07-19 14:04:48 +08:00
|
|
|
> .gallery_btn{
|
|
|
|
|
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
> div {
|
|
|
|
|
margin: 0 auto;
|
2025-07-19 14:04:48 +08:00
|
|
|
width: 100%;
|
|
|
|
|
background: transparent;
|
|
|
|
|
border-radius: 9rem;
|
2025-06-18 21:47:27 +08:00
|
|
|
border: 2px solid;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
2025-07-19 14:04:48 +08:00
|
|
|
margin-bottom: 2rem;
|
|
|
|
|
color: #000;
|
|
|
|
|
&:hover{
|
|
|
|
|
background: #000;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
2025-06-18 21:47:27 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
> .login {
|
|
|
|
|
position: relative;
|
|
|
|
|
> .title {
|
|
|
|
|
font-size: 4rem;
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
> i {
|
|
|
|
|
margin-right: 2rem;
|
|
|
|
|
font-size: 3rem;
|
|
|
|
|
display: flex;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|