pda-uni-app-perkins/pages/login/index.vue
2025-10-31 22:49:51 +08:00

159 lines
2.7 KiB
Vue

<template>
<view class="container">
<view class="hero">
<view class="hero-bg">
<view class="wave w1" />
<view class="wave w2" />
</view>
<text class="title">仓库模板</text>
<text class="subtitle">智能仓储管理系统</text>
<view class="logo-wrap">
<view class="logo"><text>BK</text></view>
</view>
<button class="login-btn" @click="goHome">进入系统</button>
</view>
<view class="footer"><text>© 2025 菲达宝开</text></view>
</view>
</template>
<script>
export default {
methods: {
goHome() {
uni.reLaunch({
url: '/pages/home/index'
})
}
}
}
</script>
<style scoped>
.container {
min-height: 100vh;
background: linear-gradient(180deg, #9BEAF8 0%, #E6FBFF 60%, #FFFFFF 100%);
display: flex;
flex-direction: column;
}
.hero {
flex: 1;
align-items: center;
display: flex;
flex-direction: column;
position: relative;
}
.hero-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 68vh;
background: linear-gradient(180deg, #05DCEF 0%, #7DE2F5 60%, #FFFFFF 100%);
z-index: 0;
}
.hero-bg::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, .18) 80%, rgba(255, 255, 255, .32) 92%, rgba(255, 255, 255, .45) 100%);
pointer-events: none;
}
.wave {
position: absolute;
left: 0;
right: 0;
height: 140rpx;
background: radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0) 60%);
opacity: .5;
}
.w1 {
bottom: 200rpx;
}
.w2 {
bottom: 120rpx;
}
.title {
margin-top: 160rpx;
color: #fff;
font-size: 64rpx;
font-weight: 700;
position: relative;
z-index: 1;
}
.subtitle {
color: #fff;
font-size: 30rpx;
opacity: .95;
margin-top: 12rpx;
position: relative;
z-index: 1;
}
.logo {
width: 180rpx;
height: 180rpx;
background: #fff;
border-radius: 90rpx;
align-items: center;
justify-content: center;
display: flex;
box-shadow: 0 12rpx 28rpx rgba(0, 0, 0, .12);
}
.logo text {
color: var(--grad-primary-start);
font-size: 56rpx;
font-weight: 700;
}
.login-btn {
position: absolute;
top: 70vh;
transform: translateY(-10%);
width: 600rpx;
height: 96rpx;
line-height: 96rpx;
text-align: center;
color: #fff;
border: none;
border-radius: 48rpx;
background: linear-gradient(90deg, var(--grad-primary-start), var(--grad-primary-mid));
box-shadow: 0 10rpx 24rpx rgba(5, 220, 239, .35);
font-size: 32rpx;
z-index: 1;
}
.footer {
padding: 40rpx 0 60rpx;
align-items: center;
display: flex;
justify-content: center;
}
.footer text {
color: #8a8a8a;
font-size: 24rpx;
}
.logo-wrap {
position: absolute;
top: 56vh;
transform: translateY(-50%);
z-index: 2;
}
</style>