9.20界面

This commit is contained in:
2025-09-20 21:09:27 +08:00
parent d343a1389a
commit 44ac2723a0
118 changed files with 8042 additions and 679 deletions

View File

@@ -1,6 +1,5 @@
<template>
<view class="home">
<image class="home-bg" src="/static/metal-bg.jpg" mode="aspectFill"></image>
<view class="home">
<!-- 顶部统计卡片 -->
<view class="hero">
<view class="hero-top">
@@ -193,33 +192,24 @@
}
</script>
<style>
<style lang="scss">
.home {
padding-bottom: 140rpx;
position: relative;
/* 明亮奢华背景:金属拉丝纹理覆盖层 + 柔和浅色渐变 */
background:
repeating-linear-gradient(0deg, rgba(180,180,180,0.12) 0rpx, rgba(180,180,180,0.12) 2rpx, rgba(255,255,255,0.0) 2rpx, rgba(255,255,255,0.0) 10rpx),
linear-gradient(180deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.55) 40%, rgba(255, 255, 255, 0.35) 100%);
/* 纯白背景 */
background: #ffffff;
min-height: 100vh;
}
.home-bg {
position: fixed;
left: 0; top: 0; right: 0; bottom: 0;
width: 100%; height: 100%;
pointer-events: none;
z-index: -1;
}
/* 公告栏 */
.notice {
margin: 0 24rpx 24rpx;
padding: 20rpx 22rpx;
border-radius: 20rpx;
background: rgba(255,255,255,0.78);
backdrop-filter: blur(12rpx);
border: 2rpx solid rgba(203, 166, 61, 0.28);
background: #ffffff;
border: 2rpx solid $uni-border-color;
display: flex;
align-items: center;
gap: 16rpx;
@@ -227,35 +217,34 @@
.notice-left {
flex: 0 0 auto;
display: inline-flex; align-items: center; justify-content: center;
min-width: 96rpx; height: 44rpx;
min-width: 100rpx; height: 52rpx;
padding: 0 16rpx;
border-radius: 999rpx;
background: linear-gradient(135deg, #FFE69A, #F4CF62);
color: #3f320f;
font-size: 24rpx;
background: $uni-color-primary;
color: #fff;
font-size: 28rpx;
font-weight: 800;
}
.notice-swiper { height: 72rpx; flex: 1; }
.notice-item { display: flex; align-items: center; gap: 12rpx; min-height: 72rpx; }
.notice-text { color: #4b3e19; font-size: 28rpx; line-height: 36rpx; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.notice-tag { color: #B4880F; font-size: 22rpx; padding: 4rpx 10rpx; border-radius: 999rpx; background: rgba(215,167,46,0.18); }
.notice-text { color: $uni-text-color; font-size: 28rpx; line-height: 36rpx; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.notice-tag { color: $uni-color-primary; font-size: 22rpx; padding: 4rpx 10rpx; border-radius: 999rpx; background: rgba(76,141,255,0.18); }
/* 分割标题 */
.section-title { display: flex; align-items: center; gap: 16rpx; padding: 10rpx 28rpx 0; }
.section-title::before { content: ''; display: block; width: 8rpx; height: 28rpx; border-radius: 8rpx; background: linear-gradient(180deg, #FFE69A, #D7A72E); }
.section-text { color: #6b5a2a; font-size: 28rpx; font-weight: 700; letter-spacing: 1rpx; }
.section-title::before { content: ''; display: block; width: 8rpx; height: 28rpx; border-radius: 8rpx; background: $uni-color-primary; }
.section-text { color: $uni-text-color; font-size: 30rpx; font-weight: 700; letter-spacing: 1rpx; }
/* 顶部英雄区:浅色玻璃卡片,带金色描边与柔和阴影 */
.hero {
margin: 24rpx;
padding: 32rpx;
border-radius: 28rpx;
background: rgba(255, 255, 255, 0.65);
backdrop-filter: blur(14rpx);
border: 2rpx solid rgba(203, 166, 61, 0.35);
box-shadow: 0 12rpx 28rpx rgba(0, 0, 0, 0.10), 0 0 0 2rpx rgba(255,255,255,0.60) inset;
color: #473c22;
background: #ffffff;
border: 2rpx solid $uni-border-color;
box-shadow: none;
color: $uni-text-color;
}
.hero-top {
@@ -269,33 +258,42 @@
font-size: 42rpx;
font-weight: 700;
letter-spacing: 2rpx;
color: #B4880F; /* 金色标题 */
color: $uni-color-primary;
}
.cta {
padding: 10rpx 22rpx;
border-radius: 999rpx;
background: linear-gradient(135deg, rgba(255, 220, 128, 0.65), rgba(255, 240, 190, 0.65));
border: 2rpx solid rgba(203, 166, 61, 0.45);
box-shadow: 0 6rpx 14rpx rgba(203, 166, 61, 0.25);
background: $uni-color-primary;
border: 2rpx solid $uni-color-primary;
box-shadow: none;
}
.cta-text { color: #5a4712; font-size: 26rpx; }
.cta-text { color: #fff; font-size: 30rpx; font-weight: 700; letter-spacing: 1rpx; }
.kpi { display: flex; }
.kpi-item { flex: 1; }
.kpi-label { opacity: 0.9; font-size: 24rpx; color: #6b5a2a; }
.kpi-value { display: block; margin-top: 12rpx; font-size: 46rpx; font-weight: 800; color: #B4880F; }
.kpi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8rpx; }
.kpi-item { text-align: center; }
.kpi-label {
opacity: 0.9;
font-size: 26rpx;
color: $uni-text-color-grey;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
line-height: 32rpx; /* 行高>=字体,避免上沿被裁切 */
min-height: 64rpx; /* 两行高度,防止折行挤压 */
}
.kpi-value { display: block; margin-top: 8rpx; font-size: 56rpx; font-weight: 800; color: $uni-color-primary; }
/* 功能容器:整体玻璃面板,增强融入感 */
.grid-wrap {
margin: 0 20rpx 32rpx;
padding: 28rpx 20rpx 12rpx;
border-radius: 24rpx;
background: rgba(255,255,255,0.55);
backdrop-filter: blur(10rpx);
border: 2rpx solid rgba(203,166,61,0.22);
box-shadow: 0 8rpx 18rpx rgba(0,0,0,0.06);
background: #ffffff;
border: 2rpx solid $uni-border-color;
box-shadow: none;
}
/* 功能九宫格 */
@@ -308,28 +306,22 @@
}
.grid-item { display: flex; flex-direction: column; align-items: center; text-align: center; }
.icon { display: flex; align-items: center; justify-content: center; color: #6b5a2a; position: relative; }
.icon { display: flex; align-items: center; justify-content: center; color: $uni-text-color; position: relative; }
.icon-squircle {
width: 132rpx; height: 132rpx;
border-radius: 28rpx;
background: linear-gradient(145deg, rgba(255,255,255,0.92), rgba(255,255,255,0.70));
backdrop-filter: blur(12rpx);
border: 2rpx solid rgba(203,166,61,0.22);
box-shadow: 0 10rpx 24rpx rgba(0,0,0,0.10), 0 0 0 2rpx rgba(255,255,255,0.65) inset;
background: $uni-bg-color-hover;
border: 2rpx solid $uni-border-color;
box-shadow: none;
overflow: hidden;
}
.icon-squircle::before { content: ''; position: absolute; left: -30%; top: -40%; width: 160%; height: 70%; background: linear-gradient( to bottom, rgba(255,255,255,0.9), rgba(255,255,255,0.0) ); transform: rotate(12deg); }
.icon-img { width: 96rpx; height: 96rpx; }
.icon-emoji { font-size: 60rpx; line-height: 1; }
.icon-placeholder { width: 84rpx; height: 84rpx; border-radius: 18rpx; background:
linear-gradient(135deg, rgba(212,175,55,0.18), rgba(255,255,255,0.0)),
repeating-linear-gradient(90deg, rgba(180,150,60,0.35) 0, rgba(180,150,60,0.35) 8rpx, transparent 8rpx, transparent 16rpx),
repeating-linear-gradient(0deg, rgba(180,150,60,0.20) 0, rgba(180,150,60,0.20) 8rpx, transparent 8rpx, transparent 16rpx);
box-shadow: inset 0 0 0 2rpx rgba(203,166,61,0.28);
}
.icon-placeholder { width: 84rpx; height: 84rpx; border-radius: 18rpx; background: $uni-bg-color-hover; border: 2rpx solid $uni-border-color; box-shadow: none; }
.icon-text { font-size: 46rpx; font-weight: 700; }
.grid-title { display: none; }
.grid-chip { margin-top: 14rpx; padding: 6rpx 14rpx; border-radius: 999rpx; background: rgba(215,167,46,0.16); color: #5a4a1f; font-size: 22rpx; }
.grid-chip { margin-top: 14rpx; padding: 8rpx 16rpx; border-radius: 999rpx; background: $uni-color-primary; color: #fff; font-size: 28rpx; font-weight: 700; }
/* 底部操作条:浅色半透明 + 金色主按钮 */
.bottom-bar {