feat: 完成管理员密码登录修复和项目清理

- 修复BCryptPasswordEncoder密码验证问题
- 实现密码设置提示弹窗功能(仅对无密码用户显示一次)
- 优化修改密码逻辑和验证流程
- 更新Welcome页面背景样式
- 清理临时SQL文件和测试代码
- 移动数据库备份文件到database/backups目录
- 删除不必要的MD文档和临时文件
This commit is contained in:
AIGC Developer
2025-11-21 16:10:00 +08:00
parent 2961d2b0d0
commit dbd06435cb
384 changed files with 8064 additions and 5080 deletions

View File

@@ -62,9 +62,6 @@
<div class="work-item" v-for="(work, index) in publishedWorks" :key="work.id" @click="openDetail(work)">
<div class="work-thumbnail">
<img :src="work.cover" :alt="work.title" />
<div class="work-overlay">
<div class="overlay-text">{{ work.text }}</div>
</div>
<!-- 鼠标悬停时显示的做同款按钮 -->
<div class="hover-create-btn" @click.stop="goToCreate(work)">
<el-button type="primary" size="small" round>
@@ -355,10 +352,10 @@ onMounted(() => {
/* 主内容区域 */
.main-content {
flex: 1;
padding: 24px;
padding: 20px;
display: flex;
flex-direction: column;
gap: 24px;
gap: 20px;
}
/* 用户信息卡片 */
@@ -420,7 +417,7 @@ onMounted(() => {
.published-works {
display: flex;
flex-direction: column;
gap: 20px;
gap: 16px;
}
.works-tabs {
@@ -451,14 +448,14 @@ onMounted(() => {
.works-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
}
.work-item {
background: #1a1a1a;
border: 1px solid #333;
border-radius: 12px;
border-radius: 8px;
overflow: hidden;
transition: all 0.2s;
cursor: pointer;
@@ -509,42 +506,34 @@ onMounted(() => {
transform: scale(1.05);
}
.work-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
padding: 20px;
}
.overlay-text {
font-size: 16px;
font-weight: 600;
color: #fff;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
}
/* work-overlay / overlay-text 样式已移除(不再使用) */
.work-info {
padding: 16px;
padding: 12px;
display: flex;
flex-direction: column;
gap: 8px;
gap: 6px;
}
.work-title {
font-size: 16px;
font-size: 14px;
font-weight: 600;
color: #fff;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.work-meta {
font-size: 12px;
font-size: 11px;
color: #9ca3af;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.work-actions {
padding: 0 16px 16px;
padding: 0 12px 12px;
opacity: 0;
transition: opacity 0.2s ease;
}
@@ -558,7 +547,7 @@ onMounted(() => {
}
.work-director {
padding: 0 16px 16px;
padding: 0 12px 12px;
text-align: center;
}
@@ -575,7 +564,7 @@ onMounted(() => {
}
.works-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
}