238 lines
4.8 KiB
Plaintext
238 lines
4.8 KiB
Plaintext
/* 推广海报页面 */
|
|
|
|
page {
|
|
background: #0a0e17;
|
|
min-height: 100vh;
|
|
font-family: 'Avenir', 'PingFang SC', 'Helvetica Neue', sans-serif;
|
|
color: #fff;
|
|
}
|
|
|
|
/* 背景网格 */
|
|
.grid-bg {
|
|
position: fixed;
|
|
top: 0; left: 0;
|
|
width: 100%; height: 100%;
|
|
background-image:
|
|
linear-gradient(rgba(0, 160, 255, 0.05) 1px, transparent 1px),
|
|
linear-gradient(90deg, rgba(0, 160, 255, 0.05) 1px, transparent 1px);
|
|
background-size: 50rpx 50rpx;
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
.page-container {
|
|
position: relative;
|
|
z-index: 2;
|
|
min-height: 100vh;
|
|
padding: 30rpx 25rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 机械装饰线条 */
|
|
.mech-line {
|
|
position: absolute;
|
|
pointer-events: none;
|
|
z-index: 1;
|
|
}
|
|
.line-h {
|
|
top: 200rpx; left: 0;
|
|
width: 100%; height: 2rpx;
|
|
background: linear-gradient(90deg, transparent, #00a6ff, transparent);
|
|
}
|
|
.line-v {
|
|
right: 50rpx; top: 100rpx;
|
|
width: 2rpx; height: 300rpx;
|
|
background: linear-gradient(180deg, transparent, #00a6ff, transparent);
|
|
}
|
|
|
|
.content {
|
|
position: relative;
|
|
z-index: 3;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 100vh;
|
|
padding: 40rpx 0;
|
|
}
|
|
|
|
/* 标题区域 */
|
|
.title-section {
|
|
text-align: center;
|
|
margin-bottom: 60rpx;
|
|
}
|
|
.title {
|
|
font-size: 44rpx;
|
|
font-weight: bold;
|
|
color: #fff;
|
|
text-shadow: 0 0 30rpx #00a6ff;
|
|
letter-spacing: 2rpx;
|
|
display: block;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
.subtitle {
|
|
font-size: 28rpx;
|
|
color: #9cf;
|
|
opacity: 0.9;
|
|
letter-spacing: 1rpx;
|
|
}
|
|
|
|
/* 二维码区域 */
|
|
.qrcode-section {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
margin-bottom: 60rpx;
|
|
}
|
|
.qrcode-wrapper {
|
|
position: relative;
|
|
width: 400rpx; height: 400rpx;
|
|
background: rgba(0, 20, 40, 0.8);
|
|
border: 4rpx solid #00a6ff;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 0 80rpx rgba(0, 166, 255, 0.4);
|
|
animation: qrcodePulse 2s infinite alternate;
|
|
}
|
|
.qrcode-img {
|
|
width: 90%; height: 90%;
|
|
object-fit: contain;
|
|
}
|
|
.qrcode-glow {
|
|
position: absolute;
|
|
top: 0; left: 0;
|
|
width: 100%; height: 100%;
|
|
background: radial-gradient(circle at 30% 30%, rgba(0, 166, 255, 0.2), transparent 70%);
|
|
pointer-events: none;
|
|
}
|
|
.empty-qrcode {
|
|
width: 400rpx; height: 400rpx;
|
|
background: rgba(0, 20, 40, 0.8);
|
|
border: 4rpx dashed #00a6ff;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.empty-icon {
|
|
font-size: 80rpx;
|
|
color: #00a6ff;
|
|
margin-bottom: 20rpx;
|
|
opacity: 0.5;
|
|
}
|
|
.empty-text {
|
|
font-size: 26rpx;
|
|
color: #9cf;
|
|
text-align: center;
|
|
padding: 0 40rpx;
|
|
}
|
|
|
|
/* 按钮区域 */
|
|
.button-section {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-bottom: 40rpx;
|
|
}
|
|
.pbtn-group {
|
|
display: flex;
|
|
gap: 20rpx;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
.pbtn {
|
|
width: 220rpx;
|
|
height: 80rpx;
|
|
background: rgba(0, 30, 60, 0.8);
|
|
border: 2rpx solid #00a6ff;
|
|
border-right: none;
|
|
border-bottom: none;
|
|
clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
transition: 0.2s;
|
|
}
|
|
.pbtn:active {
|
|
transform: scale(0.96);
|
|
box-shadow: 0 0 40rpx #00a6ff;
|
|
}
|
|
.pbtn-save { border-color: #00a6ff; }
|
|
.pbtn-refresh { border-color: #9333ea; }
|
|
.pbtn-refresh .pbtn-icon { color: #9333ea; }
|
|
.pbtn-poster { border-color: #9333ea; }
|
|
.pbtn-poster .pbtn-icon { color: #9333ea; }
|
|
.pbtn-loading {
|
|
opacity: 0.7;
|
|
pointer-events: none;
|
|
}
|
|
.pbtn-icon {
|
|
font-size: 36rpx;
|
|
margin-right: 8rpx;
|
|
}
|
|
.pbtn-text {
|
|
font-size: 26rpx;
|
|
font-weight: 500;
|
|
color: #fff;
|
|
}
|
|
.loading-spinner-small {
|
|
width: 30rpx; height: 30rpx;
|
|
border: 4rpx solid rgba(255,255,255,0.2);
|
|
border-top: 4rpx solid #fff;
|
|
border-radius: 50%;
|
|
animation: spin 1s linear infinite;
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
/* 专属海报展示区 */
|
|
.poster-section {
|
|
margin-top: 40rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
width: 100%;
|
|
}
|
|
.poster-canvas {
|
|
width: 600rpx; height: 900rpx;
|
|
background: #1a1f2e;
|
|
border: 4rpx solid #00a6ff;
|
|
box-shadow: 0 0 60rpx #00a6ff;
|
|
}
|
|
.poster-actions {
|
|
display: flex;
|
|
gap: 30rpx;
|
|
margin-top: 30rpx;
|
|
justify-content: center;
|
|
}
|
|
.pbtn-save-poster {
|
|
background: linear-gradient(45deg, #0066cc, #00a6ff);
|
|
border-color: #00a6ff;
|
|
}
|
|
.pbtn-back {
|
|
background: rgba(0, 30, 60, 0.8);
|
|
border-color: #00a6ff;
|
|
}
|
|
|
|
/* 使用说明 */
|
|
.instruction {
|
|
margin-top: 30rpx;
|
|
padding: 20rpx 40rpx;
|
|
background: rgba(0, 30, 50, 0.5);
|
|
border-left: 4rpx solid #00a6ff;
|
|
clip-path: polygon(0 0, 100% 0, 98% 100%, 0 100%);
|
|
}
|
|
.instruction-text {
|
|
font-size: 24rpx;
|
|
color: #9cf;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* 动画 */
|
|
@keyframes qrcodePulse {
|
|
0% { box-shadow: 0 0 40rpx rgba(0, 166, 255, 0.3); }
|
|
100% { box-shadow: 0 0 100rpx rgba(0, 166, 255, 0.6); }
|
|
}
|