From 805d7ddc5277687a3d1692a3f2989209b66271c8 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Mon, 19 Oct 2026 12:00:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E9=87=8D=E5=81=9A=E7=9F=AD?= =?UTF-8?q?=E5=89=A7=E7=BC=96=E8=BE=91=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/business/drama-management.css | 203 +++++++++++-- .../contentManagement/DramaManagementView.vue | 276 ++++++++++++++---- 2 files changed, 405 insertions(+), 74 deletions(-) diff --git a/src/styles/business/drama-management.css b/src/styles/business/drama-management.css index 7363c62..8fcd3ff 100644 --- a/src/styles/business/drama-management.css +++ b/src/styles/business/drama-management.css @@ -91,29 +91,192 @@ font-size: 13px; } -/* 编辑弹窗里的封面预览:固定竖版尺寸,和上传控件并排,避免弹窗过高 */ -.cover-field { +/* 短剧编辑弹窗:固定宽度、内容区滚动、底部操作固定。 */ +.drama-editor-dialog { display: flex; - gap: 12px; - align-items: flex-start; - width: 100%; + max-height: calc(100vh - 40px); + overflow: hidden; + flex-direction: column; + border-radius: var(--app-radius-lg) !important; } -.cover-field-actions { + +.drama-editor-dialog .el-dialog__body { + flex: 1 1 auto; + padding: 8px 24px 0; + overflow-y: auto; +} + +.drama-editor-dialog .el-dialog__footer { + flex: 0 0 auto; + padding: 14px 24px; + background: var(--el-bg-color-overlay); + border-top: 1px solid var(--el-border-color-lighter); +} + +.drama-editor-dialog .el-dialog__footer .el-button { + min-width: 88px; + height: 36px; +} + +.editor-section { + padding: 4px 0 18px; + border-bottom: 1px solid var(--el-border-color-lighter); +} + +.editor-section + .editor-section { + padding-top: 18px; +} + +.editor-section:last-child { + padding-bottom: 4px; + border-bottom: 0; +} + +.editor-section-title { + margin: 0 0 14px; + color: var(--el-text-color-primary); + font-size: 15px; + font-weight: 650; + line-height: 1.4; +} + +.editor-grid { + display: grid; + gap: 0 16px; +} + +.editor-grid--two { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.editor-number { + width: 180px !important; +} + +.cover-editor { + display: flex; + gap: 18px; + align-items: flex-start; +} + +.cover-preview-card { + position: relative; + display: grid; + flex: 0 0 96px; + width: 96px; + height: 128px; + overflow: hidden; + border: 1px solid var(--el-border-color); + border-radius: 8px; + background: var(--el-fill-color-lighter); +} + +.cover-preview-card img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.cover-preview-empty { + display: flex; + height: 100%; + color: var(--el-text-color-placeholder); + font-size: 12px; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 8px; + border: 1px dashed var(--el-border-color); + border-radius: 8px; +} + +.cover-upload-mask { + position: absolute; + inset: 0; + display: flex; + color: #fff; + font-size: 12px; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 4px; + background: color-mix(in srgb, var(--el-color-primary) 78%, transparent); +} + +.cover-upload-mask b { + font-size: 16px; +} + +.cover-editor-meta { + display: flex; flex: 1 1 auto; min-width: 0; + flex-direction: column; + gap: 10px; } -.form-cover-preview { - display: block; - width: 84px; - height: 112px; - flex: 0 0 84px; - object-fit: cover; - border: 1px solid var(--el-border-color-lighter); - border-radius: var(--app-radius-md); - background: #f0f2f4 !important; + +.cover-status-line { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; } -.dark .form-cover-preview { - background: #353b45 !important; + +.cover-filename { + overflow: hidden; + color: var(--el-text-color-regular); + font-size: 13px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.cover-hint { + margin: 0; + color: var(--el-text-color-secondary); + font-size: 12px; +} + +.cover-actions { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.cover-actions .el-button { + height: 36px; +} + +.cover-original-link { + color: var(--el-color-primary); + font-size: 13px; + text-decoration: none; +} + +.cover-original-link:hover { + text-decoration: underline; +} + +@media (max-width: 600px) { + .drama-editor-dialog { + width: calc(100vw - 24px) !important; + margin: 12px auto !important; + } + + .drama-editor-dialog .el-dialog__body { + padding-right: 18px; + padding-left: 18px; + } + + .editor-grid--two { + grid-template-columns: 1fr; + } + +} + +html.dark .cover-preview-card, +html.dark .cover-preview-empty { + background: var(--el-fill-color-light); } /* 编辑弹窗里的视频预览 */ @@ -163,7 +326,7 @@ /* 列表里点视频即放大播放,给个悬停反馈 */ .episode-video-thumb:hover { border-color: var(--el-color-primary); - box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.25); + box-shadow: 0 0 0 2px color-mix(in srgb, var(--el-color-primary) 25%, transparent); } .dark .table-result-count { color: #a6aeb9; @@ -233,8 +396,8 @@ .table-actions .el-button--primary { --el-button-bg-color: var(--el-color-primary); --el-button-border-color: var(--el-color-primary); - --el-button-hover-bg-color: var(--el-color-primary-light-3); - --el-button-hover-border-color: var(--el-color-primary-light-3); + --el-button-hover-bg-color: var(--el-color-primary-dark-2); + --el-button-hover-border-color: var(--el-color-primary-dark-2); } .table-actions .el-button--success { --el-button-bg-color: #4d866a; diff --git a/src/views/contentManagement/DramaManagementView.vue b/src/views/contentManagement/DramaManagementView.vue index 6b9db63..2dcbb1b 100644 --- a/src/views/contentManagement/DramaManagementView.vue +++ b/src/views/contentManagement/DramaManagementView.vue @@ -1,7 +1,7 @@