fix(ui+permission): 移除联合投稿 / emoji换SVG / 修复移动端浅色适配 / 已排期显示日期 / 隐藏.env提示 / 公开排期档期游客访问
具体改动: 1. feat(投稿表单): 移除 RequestForm.vue 联合投稿功能整套模板+状态+payload+CSS(10处残留) 2. feat(图标): Icon.vue 新增 sparkles/star 图标; 首页档期卡片📅🎵✨和排期列表空状态🎵📅换成 lucide SVG Icon 3. fix(浅色适配): ScheduleList.vue 日期选择弹窗桌面端+移动端(content/header/h3/close-btn/item)全部改为 bg-primary + var text + indigo 主色, 修复竖屏选择日期标题白字看不见 4. feat(歌曲列表): SongList.vue scheduled-tag 内联追加 formatScheduleDate, 徽章+日期双胶囊显示 5. fix(登录): OAuthButtons.vue showPlaceholderHint 强制 false, 隐藏虚线框 .env 配置提示 6. fix(权限): server/middleware/auth.ts + auth-route-policy.ts 双白名单同步追加 /api/expected-play-dates GET 公共访问, 修复未登录 Authentication expired 401
This commit is contained in:
@@ -234,14 +234,16 @@
|
||||
</span>
|
||||
<span
|
||||
v-else-if="song.scheduled"
|
||||
:title="
|
||||
song.scheduleDate
|
||||
? `排期日期:${formatScheduleDate(song.scheduleDate)}`
|
||||
: '已排期'
|
||||
"
|
||||
class="scheduled-tag"
|
||||
class="scheduled-group"
|
||||
>
|
||||
已排期
|
||||
<span class="scheduled-tag">已排期</span>
|
||||
<span
|
||||
v-if="song.scheduleDate"
|
||||
:title="`排期日期:${formatScheduleDate(song.scheduleDate)}`"
|
||||
class="scheduled-date"
|
||||
>
|
||||
{{ formatScheduleDate(song.scheduleDate) }}
|
||||
</span>
|
||||
</span>
|
||||
<span v-else-if="song.isReplay" title="重播歌曲" class="replay-tag"> 重播 </span>
|
||||
<button
|
||||
@@ -2268,17 +2270,36 @@ const vRipple = {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
.scheduled-group {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
margin-left: 0.5rem;
|
||||
flex-shrink: 0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.scheduled-tag {
|
||||
display: inline-flex;
|
||||
background: rgba(16, 185, 129, 0.2);
|
||||
border: 1px solid rgba(16, 185, 129, 0.4);
|
||||
border-radius: 4px;
|
||||
padding: 0.15rem 0.4rem;
|
||||
font-size: 0.7rem;
|
||||
color: #10b981;
|
||||
margin-left: 0.5rem;
|
||||
flex-shrink: 0; /* 防止标签被压缩 */
|
||||
align-self: center; /* 确保垂直居中 */
|
||||
background: rgba(16, 185, 129, 0.12);
|
||||
border: 1px solid rgba(16, 185, 129, 0.35);
|
||||
border-radius: 6px;
|
||||
padding: 0.15rem 0.5rem;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 700;
|
||||
color: #059669;
|
||||
}
|
||||
|
||||
.scheduled-date {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
color: var(--text-secondary, #52525b);
|
||||
background: var(--bg-secondary, #f4f4f5);
|
||||
padding: 0.15rem 0.5rem;
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--border-secondary, #e4e4e7);
|
||||
}
|
||||
|
||||
.played-tag {
|
||||
|
||||
Reference in New Issue
Block a user