.library-toolbar { justify-content: flex-start; gap: 16px; min-height: 64px; padding: 12px 0 !important; flex-wrap: wrap; } .drama-filters { display: flex; align-items: center; gap: 10px; /* 允许收缩并换行:窄窗口下筛选控件排到第二行,而不是被挤出可视区 */ flex: 1 1 auto; min-width: 0; flex-wrap: wrap; } .drama-filters > .el-date-editor { width: 360px; max-width: 100%; } .drama-filters > .el-input { width: 300px !important; flex: 0 0 300px !important; } .drama-filters > .el-select { width: 160px !important; flex: 0 0 160px !important; } .table-result-count { margin-left: auto; color: #858b95; font-size: 13px; white-space: nowrap; } .table-actions { display: flex; align-items: center; gap: 8px; white-space: nowrap; flex-wrap: nowrap; } .table-actions .el-button { /* 统一尺寸:高度固定、水平内边距,靠行高垂直居中,避免文字被压扁 */ height: 28px !important; min-height: 28px !important; padding: 0 10px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: var(--app-radius-sm); } /* Element Plus 默认给相邻按钮加 12px 外边距,会和这里的 gap 叠加导致换行 */ .table-actions .el-button + .el-button { margin-left: 0 !important; } .drama-cell .drama-cover, .drama-cell .drama-cover-image { width: 44px; height: 56px; flex: 0 0 44px; border-radius: var(--app-radius-sm); object-fit: cover; } .drama-cell .drama-cover { display: grid; place-content: center; text-align: center; font-size: 10px; line-height: 1.3; color: #7e8791; background: #f0f2f4 !important; } /* 名称列只放封面 + 标题,长标题在格子里换行,不撑破单元格 */ .drama-cell > div { min-width: 0; } .drama-cell b { overflow-wrap: anywhere; } /* 空值占位,弱化显示 */ .table-empty-text { color: #a8aeb8; font-size: 13px; } /* 短剧编辑弹窗:固定宽度、内容区滚动、底部操作固定。 */ .drama-editor-dialog { display: flex; max-height: calc(100vh - 40px); overflow: hidden; flex-direction: column; border-radius: var(--app-radius-lg) !important; } .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 { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-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; } .cover-status-line { display: flex; align-items: center; gap: 10px; min-width: 0; } .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; } .cover-editor { flex-direction: column; align-items: center; } .cover-preview-card { flex-basis: 128px; } .cover-editor-meta { width: 100%; } } html.dark .cover-preview-card, html.dark .cover-preview-empty { background: var(--el-fill-color-light); } /* 编辑弹窗里的视频预览 */ .video-field { display: flex; gap: 12px; align-items: flex-start; width: 100%; } .video-field-actions { flex: 1 1 auto; min-width: 0; } .form-video-preview { display: block; width: 200px; height: 112px; flex: 0 0 200px; object-fit: contain; border: 1px solid var(--el-border-color-lighter); border-radius: var(--app-radius-md); background: #000 !important; } /* 剧集预览弹窗里的播放器 */ .episode-video-player { display: block; width: 100%; max-height: 60vh; object-fit: contain; border-radius: var(--app-radius-md); background: #000 !important; } /* 剧集列表里的视频缩略播放器:默认显示首帧,鼠标移入即播放 */ .episode-video-thumb { display: block; width: 120px; height: 68px; object-fit: contain; cursor: pointer; border: 1px solid var(--el-border-color-lighter); border-radius: var(--app-radius-sm); background: #000 !important; } /* 列表里点视频即放大播放,给个悬停反馈 */ .episode-video-thumb:hover { border-color: var(--el-color-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--el-color-primary) 25%, transparent); } .dark .table-result-count { color: #a6aeb9; } .dark .drama-cell .drama-cover { background: #353b45 !important; color: #b9c1cb; } @media (max-width: 800px) { .drama-filters > .el-input { width: min(300px, 45vw) !important; flex-basis: min(300px, 45vw) !important; } .drama-filters > .el-select { width: 150px !important; flex-basis: 150px !important; } .table-result-count { display: none; } } .drama-el-table, .dashboard-el-table { width: 100%; font-size: 13px; --el-table-header-bg-color: #f7f8fa; --el-table-border-color: #eaecf0; --el-table-row-hover-bg-color: #f8fafc; } .drama-el-table .el-table__cell, .dashboard-el-table .el-table__cell { padding: 14px 0; } .drama-el-table th.el-table__cell, .dashboard-el-table th.el-table__cell { font-size: 12px; font-weight: 600; color: #737b85; } .drama-el-table td.el-table__cell, .dashboard-el-table td.el-table__cell { font-size: 13px; color: #505862; } .drama-el-table .cell, .dashboard-el-table .cell { line-height: 1.5; } .drama-el-table .el-table__inner-wrapper:before, .dashboard-el-table .el-table__inner-wrapper:before { height: 0; } .dark .drama-el-table, .dark .dashboard-el-table { --el-table-header-bg-color: #2b3038; --el-table-tr-bg-color: #242830; --el-table-bg-color: #242830; --el-table-border-color: #3b414b; --el-table-row-hover-bg-color: #2e3540; --el-table-text-color: #c0c6cf; --el-table-header-text-color: #b1b8c2; } .dark .drama-el-table td.el-table__cell, .dark .dashboard-el-table td.el-table__cell { color: #c0c6cf; } .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-dark-2); --el-button-hover-border-color: var(--el-color-primary-dark-2); } .table-actions .el-button--success { --el-button-bg-color: #4d866a; --el-button-border-color: #4d866a; --el-button-hover-bg-color: #3c7358; --el-button-hover-border-color: #3c7358; } .table-actions .el-button--danger { --el-button-bg-color: var(--el-color-danger); --el-button-border-color: var(--el-color-danger); --el-button-hover-bg-color: var(--el-color-danger-dark-2); --el-button-hover-border-color: var(--el-color-danger-dark-2); } .pagination { display: flex; justify-content: flex-end; align-items: center; padding: 18px 0 4px !important; overflow-x: auto; } .pagination .el-pagination { font-size: 13px !important; --el-pagination-font-size: 13px; --el-pagination-button-bg-color: #f1f3f6; --el-pagination-hover-color: var(--el-color-primary); --el-pagination-button-color: #4c5561; gap: 5px; } .pagination .el-pagination__sizes { margin-right: 8px; } .pagination .el-select { width: 112px; } .pagination .el-pagination__jump { margin-left: 8px; white-space: nowrap; } .dark .pagination .el-pagination { --el-pagination-button-bg-color: #353b45; --el-pagination-button-color: #c3cad3; } .drama-el-table td.el-table__cell, .drama-el-table th.el-table__cell { font-size: 14px; } .drama-cell b { font-size: 15px; } .drama-cell small { font-size: 13px; } .table-result-count { font-size: 14px; } .library-toolbar .el-input__inner, .library-toolbar .el-select__placeholder { font-size: 14px; } .pagination .el-pagination { font-size: 14px !important; --el-pagination-font-size: 14px; } .el-message-box__title, .el-message-box__message { font-size: 15px; } .el-message-box__btns .el-button { font-size: 14px; } .episode-toolbar { margin-bottom: 16px; } .episode-el-table { margin-top: 4px; } .episode-table-title b, .episode-table-title small { display: block; } .episode-table-title b { font-size: 14px; color: #343a43; } .episode-table-title small { margin-top: 4px; font-size: 13px; color: #858b95; } .dark .episode-table-title b { color: #e5e8ed; } .dark .episode-table-title small { color: #a6aeb9; } .menu-management-panel { margin-top: 20px; } .menu-management-panel .panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .menu-management-panel .el-alert { margin-top: 4px; } .menu-management-panel .el-select { width: 100%; } .admin-user-search { width: min(440px, 65vw); } .muted-text { font-size: 13px; color: #9298a1; } .role-permission-layout { display: grid; grid-template-columns: minmax(520px, 1.25fr) minmax(340px, 0.9fr); gap: 18px; align-items: start; } .role-table-panel, .permission-tree-panel { min-width: 0; } .role-config-table .el-table__row { cursor: pointer; } .permission-tree-panel .el-tree { max-height: 68vh; overflow: auto; padding: 5px 8px; } .permission-tree-panel .el-tree-node__label { font-size: 14px; } .permission-warning { color: #d66b4f !important; } .admin-users-panel { overflow: hidden; } .admin-user-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 0 16px; } .admin-user-toolbar > .el-input { width: 230px; } .admin-user-toolbar > .el-select { width: 190px; } /* 管理员表格不设最小宽度:列宽超出容器时由 el-table 自行横向滚动, 否则会把固定列顶到可视区之外 */ .menu-editor-layout { display: grid; grid-template-columns: minmax(270px, 0.7fr) minmax(520px, 1.5fr); gap: 18px; align-items: start; } .menu-tree-panel, .menu-form-panel { min-width: 0; } .menu-tree-panel .el-tree { max-height: 70vh; overflow: auto; } .menu-form-panel .panel-heading { display: flex; justify-content: space-between; align-items: center; } .menu-editor-form { max-width: 680px; padding: 16px 12px 0; } .menu-editor-form .el-input, .menu-editor-form .el-select { max-width: 360px; width: 100%; } .menu-editor-form .el-textarea { max-width: 360px; } .menu-editor-form .el-input-number { width: 180px; } .menu-form-footer { padding: 12px 0 4px 122px; border-top: 1px solid #eceef0; } .dark .menu-form-footer { border-color: #3b414b; } @media (max-width: 1150px) { .role-permission-layout, .menu-editor-layout { grid-template-columns: 1fr; } .permission-tree-panel .el-tree, .menu-tree-panel .el-tree { max-height: 45vh; } }