diff --git a/frontend/src/views/settings/ParserEngineSettings.vue b/frontend/src/views/settings/ParserEngineSettings.vue index 57bc781e..854e939a 100644 --- a/frontend/src/views/settings/ParserEngineSettings.vue +++ b/frontend/src/views/settings/ParserEngineSettings.vue @@ -21,39 +21,41 @@ @@ -624,121 +618,143 @@ onMounted(loadAll) h2 { font-size: 20px; font-weight: 600; - color: #333; + color: #333333; margin: 0 0 8px 0; } .section-description { font-size: 14px; - color: #666; + color: #666666; margin: 0; line-height: 1.5; } } -.loading-state, -.error-inline { - padding: 24px 0; -} - .loading-state { display: flex; align-items: center; + justify-content: center; gap: 8px; - color: #999; + padding: 48px 0; + color: #999999; + font-size: 14px; } -.engine-section { - margin-top: 0; +.error-inline { + padding: 16px 0; } -.section-title-row { - margin-bottom: 20px; +.settings-group { + display: flex; + flex-direction: column; + gap: 0; +} - h3 { - font-size: 17px; - font-weight: 600; - color: #333; - margin: 0 0 6px 0; +.setting-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 20px 0; + border-bottom: 1px solid #e5e7eb; + + &:last-child { + border-bottom: none; + } +} + +.setting-info { + flex: 1; + max-width: 65%; + padding-right: 24px; + + label { + font-size: 15px; + font-weight: 500; + color: #333333; + display: block; + margin-bottom: 4px; } - p { + .desc { font-size: 13px; - color: #999; + color: #666666; margin: 0; line-height: 1.5; } } -.engine-list { - display: flex; - flex-direction: column; - gap: 20px; -} - -.engine-block { - padding: 20px; - border: 1px solid #e5e7eb; - border-radius: 10px; - background: #fff; - display: flex; - flex-direction: column; - gap: 10px; -} - -.block-header { +.setting-control { + flex-shrink: 0; + min-width: 280px; display: flex; + justify-content: flex-end; align-items: center; - gap: 10px; } -.block-name { - font-size: 16px; - font-weight: 600; - color: #333; +.engine-section { + margin-top: 32px; + padding-top: 32px; + border-top: 1px solid #e5e7eb; } -.block-desc { - font-size: 13px; - color: #666; - margin: 0; - line-height: 1.5; +.engine-header { + margin-bottom: 16px; +} + +.engine-header-info { + .engine-title-row { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 6px; + + h3 { + font-size: 17px; + font-weight: 600; + color: #333333; + margin: 0; + } + } + + p { + font-size: 13px; + color: #999999; + margin: 0; + line-height: 1.5; + } } .engine-link { - color: var(--td-brand-color, #0052d9); + color: #999999; text-decoration: none; margin-left: 4px; &:hover { - text-decoration: underline; + color: #07C05F; } } -.block-config { - margin-top: 6px; - padding-top: 14px; - border-top: 1px dashed #e5e7eb; - display: grid; - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); - gap: 14px 24px; -} - -.config-item { +.engine-form { display: flex; flex-direction: column; - gap: 4px; + gap: 16px; +} + +.form-field { + display: flex; + flex-direction: column; + gap: 6px; label { - font-size: 12px; + font-size: 13px; font-weight: 500; - color: #555; + color: #555555; } &--inline { flex-direction: row; align-items: center; - gap: 10px; + gap: 12px; label { flex-shrink: 0; @@ -746,22 +762,21 @@ onMounted(loadAll) } } -// ---- MinIO mode tabs ---- -.minio-mode-tabs { +.mode-selector { display: flex; gap: 8px; - margin-top: 4px; + margin-bottom: 16px; } -.mode-tab { +.mode-option { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border: 1px solid #e5e7eb; - border-radius: 8px; + border-radius: 6px; cursor: pointer; - transition: all 0.15s; + transition: all 0.2s; background: #fafafa; &:hover { @@ -769,57 +784,58 @@ onMounted(loadAll) } &.active { - border-color: var(--td-brand-color, #0052d9); - background: var(--td-brand-color-light, #f0f5ff); + border-color: #07C05F; + background: rgba(7, 192, 95, 0.06); } - .tab-label { + .mode-label { font-size: 13px; font-weight: 500; - color: #333; + color: #333333; } } -.minio-mode-content { - margin-top: 4px; +.engine-hint { + font-size: 13px; + color: #666666; + line-height: 1.6; + padding: 10px 14px; + margin-bottom: 16px; + border-radius: 6px; + background: #f8f9fa; + border: 1px solid #e5e7eb; + + &.success { + color: #333333; + background: #f0fdf6; + border-color: #d1fae5; + } + + &.warning { + color: #333333; + background: #fffbeb; + border-color: #fde68a; + } } -.mode-hint { +.test-bar { + display: flex; + align-items: center; + gap: 12px; + margin-top: 16px; + padding-top: 16px; + border-top: 1px solid #f0f0f0; +} + +.test-msg { font-size: 13px; - color: #666; - margin: 0 0 4px 0; - line-height: 1.5; &.success { color: #52c41a; } - &.warning { - color: #e6a23c; - } -} - -.default-and-save { - margin-top: 24px; - padding-top: 24px; - border-top: 1px solid #e5e7eb; -} - -.default-row { - display: flex; - align-items: center; - gap: 12px; - margin-bottom: 16px; - - label { - font-size: 14px; - font-weight: 500; - color: #333; - } - - .hint { - font-size: 13px; - color: #999; + &.error { + color: #ff4d4f; } } @@ -827,6 +843,12 @@ onMounted(loadAll) display: flex; align-items: center; gap: 12px; + position: sticky; + bottom: 0; + margin-top: 32px; + padding: 16px 0 4px; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #ffffff 12%); + z-index: 10; } .save-msg { @@ -840,25 +862,4 @@ onMounted(loadAll) color: #ff4d4f; } } - -.check-bar { - display: flex; - align-items: center; - gap: 10px; - margin-top: 12px; - padding-top: 12px; - border-top: 1px dashed #f0f0f0; -} - -.check-msg { - font-size: 13px; - - &.success { - color: #52c41a; - } - - &.error { - color: #ff4d4f; - } -}