diff --git a/frontend/src/views/components/SystemNotification/SystemNotification.css b/frontend/src/views/components/SystemNotification/SystemNotification.css index c974492..b5b7bb3 100644 --- a/frontend/src/views/components/SystemNotification/SystemNotification.css +++ b/frontend/src/views/components/SystemNotification/SystemNotification.css @@ -221,336 +221,93 @@ } /* Desktop manager layout: keep the authorization list and selected account settings visible together. */ + +/* Manager layout: give the account list and selected account equal visual priority. */ .notification-settings:has(> .notification-manager-panel) { - display: grid; - grid-template-columns: minmax(260px, 0.44fr) minmax(0, 1.56fr); - align-items: start; - gap: 8px 10px; + display: flex; + flex-direction: column; + gap: 12px; min-width: 0; - padding: 12px 14px; + padding: 16px 18px 20px; +} + +.notification-settings:has(> .notification-manager-panel) .notification-header { + min-height: 38px; } .notification-settings:has(> .notification-manager-panel) .notification-header p { - margin: 2px 0 0; - font-size: 12px; - line-height: 1.35; -} - -.notification-settings:has(> .notification-manager-panel) .notification-header h2, -.notification-settings:has(> .notification-manager-panel) .notification-header h3 { - margin-bottom: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .el-alert { - padding: 8px 12px; -} - -.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__title) { + margin: 4px 0 0; + color: var(--el-text-color-secondary); font-size: 13px; - line-height: 1.3; + line-height: 1.45; } -.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__description) { - margin-top: 2px; - font-size: 12px; - line-height: 1.35; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-header, -.notification-settings:has(> .notification-manager-panel) > .el-alert { - grid-column: 1 / -1; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel { - grid-column: 1; - min-width: 0; - padding: 10px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel { - grid-column: 2; - min-width: 0; - padding: 10px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3 { - margin-bottom: 8px; -} - -.notification-settings:has(> .notification-manager-panel) :deep(.el-table .cell) { - padding-inline: 6px; - font-size: 12px; +.notification-settings:has(> .notification-manager-panel) .notification-header h2 { + margin-bottom: 0; + font-size: 24px; line-height: 1.25; } -.notification-settings:has(> .notification-manager-panel) :deep(.el-table__cell) { - padding-block: 5px; +.notification-settings:has(> .notification-manager-panel) > .el-alert { + padding: 10px 14px; + border-radius: 10px; } -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel .el-pagination { - margin-top: 8px; +.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__title) { + font-size: 14px; + line-height: 1.4; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-heading { - margin-bottom: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-credential { - margin: 6px 0; - padding: 6px 8px; +.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__description) { + margin-top: 3px; font-size: 12px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns { - display: grid; - grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); - gap: 6px 10px; - align-items: start; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-form) { - grid-column: 1; - grid-row: 1; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions) { - grid-column: 1; - grid-row: 2; - min-width: 0; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) { - grid-column: 2; - grid-row: 1 / span 2; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.notification-hint) { - grid-column: 1; - grid-row: 3; - margin: 0; - font-size: 12px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions + .notification-hint) { - grid-column: 2; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-alert) { - grid-column: 1 / -1; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item) { - margin-bottom: 6px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item__label) { - margin-bottom: 2px; - font-size: 12px; - line-height: 1.3; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits { - gap: 6px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__header) { - margin-bottom: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__title) { - font-size: 13px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__cell) { - padding: 4px 7px; - font-size: 12px; - line-height: 1.3; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__label) { - width: 96px; - white-space: nowrap; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-hint { - font-size: 11px; - line-height: 1.3; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert { - padding: 6px 10px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__title), -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__description) { - font-size: 12px; - line-height: 1.3; -} - -@media (max-width: 920px) { - .notification-settings:has(> .notification-manager-panel) { - display: flex; - flex-direction: column; - } - - .notification-settings:has(> .notification-manager-panel) > .notification-panel { - width: 100%; - box-sizing: border-box; - } - - .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns { - display: flex; - flex-direction: column; - } - - .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > * { - width: 100%; - box-sizing: border-box; - } -} - - -.notification-settings:has(> .notification-manager-panel) { - gap: 6px 8px; - padding: 8px 10px; + line-height: 1.45; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel, .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel { - padding: 8px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3, -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel h3 { - margin-bottom: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns { - gap: 4px 8px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item) { - margin-bottom: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item__label) { - margin-bottom: 1px; - font-size: 11px; - line-height: 1.2; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits { - gap: 4px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions { - gap: 4px; - margin-top: 2px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions :deep(.el-button) { - min-height: 28px; - padding: 5px 10px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__header) { - margin-bottom: 2px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__title) { - font-size: 12px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__cell) { - padding: 3px 5px; - font-size: 11px; - line-height: 1.2; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__label) { - width: 88px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-hint { - margin: 2px 0; - font-size: 10px; - line-height: 1.2; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert { - padding: 4px 8px; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__title), -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel > .el-alert :deep(.el-alert__description) { - font-size: 11px; - line-height: 1.2; -} - -.notification-settings:has(> .notification-manager-panel) > .el-alert :deep(.el-alert__description) { - display: none; -} - -.notification-settings:has(> .notification-manager-panel) .notification-header p { - display: none; -} - -/* The SMTP table is a dense read-only summary, so pair two records per row on desktop. */ -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table { - display: block; -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr { - display: grid; - grid-template-columns: 96px minmax(0, 1fr); + width: 100%; min-width: 0; + box-sizing: border-box; + padding: 16px; + border-radius: 14px; + background: var(--el-bg-color); } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr > td { - min-width: 0; - overflow-wrap: break-word; - word-break: normal; +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel { + display: flex; + align-items: center; + gap: 16px; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) code { - overflow-wrap: break-word; - word-break: normal; - white-space: normal; +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3 { + flex: 0 0 auto; + min-width: 132px; + margin: 0; + font-size: 16px; + line-height: 1.4; } -@media (max-width: 920px) { - .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table { - display: table; - } - - .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody { - display: table-row-group; - } - - .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr { - display: table-row; - } -} -/* Keep the manager table and SMTP summary inside the available dialog width. */ -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table), -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__header-wrapper table), -.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__body-wrapper table) { +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table) { + flex: 1 1 auto; width: 100% !important; min-width: 0 !important; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__inner-wrapper::before) { + display: none; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table table) { table-layout: fixed; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(1)) { - width: 26% !important; + width: 22% !important; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(2)) { - width: 24% !important; + width: 30% !important; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(3)) { @@ -558,51 +315,220 @@ } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table col:nth-child(4)) { - width: 22% !important; + width: 20% !important; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table .cell) { min-width: 0; - padding-inline: 3px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 11px; + padding-inline: 8px; + overflow-wrap: anywhere; + white-space: normal; + font-size: 13px; + line-height: 1.35; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table__cell) { + padding-block: 8px; } .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table .el-tag) { max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions) { +.notification-settings:has(> .notification-manager-panel) > .notification-manager-panel .el-pagination { + flex: 0 0 auto; + margin-top: 0; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel { + display: flex; + flex-direction: column; + gap: 14px; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-heading { + margin: 0; + padding-bottom: 12px; + border-bottom: 1px solid var(--el-border-color-lighter); +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-heading h3 { + margin: 0; + font-size: 18px; + line-height: 1.4; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-credential { + margin: 0; + padding: 10px 12px; + border-radius: 10px; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns { + display: grid; + grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr); + gap: 16px; + align-items: start; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-control-column, +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-service-column { + min-width: 0; + padding: 14px; + border: 1px solid var(--el-border-color-lighter); + border-radius: 12px; + background: var(--el-fill-color-blank); +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-control-column { + display: flex; + flex-direction: column; + gap: 16px; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-control-column > :deep(.el-form) { + padding-bottom: 14px; + border-bottom: 1px solid var(--el-border-color-lighter); +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item) { + margin-bottom: 12px; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-form-item__label) { + margin-bottom: 5px; + color: var(--el-text-color-primary); + font-size: 13px; + line-height: 1.35; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-input-number) { width: 100%; - max-width: 100%; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions { + gap: 8px; + margin: 0; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-actions :deep(.el-button + .el-button) { + margin-left: 0; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-usage-block { min-width: 0; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions__body), -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions__table) { - width: 100%; - max-width: 100%; - min-width: 0; +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-service-column :deep(.el-descriptions__header), +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-usage-block :deep(.el-descriptions__header) { + margin-bottom: 10px; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody, -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr { - min-width: 0; - width: 100%; - max-width: 100%; +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__title) { + color: var(--el-text-color-primary); + font-size: 15px; + line-height: 1.4; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) .el-descriptions__body > table > tbody > tr > td { - min-width: 0; - max-width: 100%; +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__table) { + table-layout: fixed; } -.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns > :deep(.el-descriptions ~ .el-descriptions) code { - display: inline; - max-width: 100%; +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__label) { + width: 132px; + color: var(--el-text-color-secondary); + white-space: nowrap; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__cell) { + min-width: 0; + padding: 9px 10px; + overflow-wrap: anywhere; + font-size: 13px; + line-height: 1.45; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel :deep(.el-descriptions__content) { + min-width: 0; overflow-wrap: anywhere; } + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-hint { + margin: 10px 0 0; + font-size: 12px; + line-height: 1.55; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-send-only-alert { + grid-column: 1 / -1; + margin: 0; +} + +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-send-only-alert :deep(.el-alert__title), +.notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-send-only-alert :deep(.el-alert__description) { + line-height: 1.5; +} + +@media (max-width: 980px) { + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel { + align-items: stretch; + flex-wrap: wrap; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel h3 { + width: 100%; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table) { + flex-basis: 100%; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel .el-pagination { + margin-left: auto; + } +} + +@media (max-width: 820px) { + .notification-settings:has(> .notification-manager-panel) { + padding: 12px; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel, + .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel { + padding: 12px; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-columns { + grid-template-columns: 1fr; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-send-only-alert { + grid-column: auto; + } +} + +@media (max-width: 560px) { + .notification-settings:has(> .notification-manager-panel) .notification-header { + align-items: flex-start; + } + + .notification-settings:has(> .notification-manager-panel) .notification-header :deep(.el-button) { + align-self: flex-start; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-detail-panel .notification-limits { + grid-template-columns: 1fr; + gap: 0; + } + + .notification-settings:has(> .notification-manager-panel) > .notification-manager-panel :deep(.el-table .cell) { + padding-inline: 4px; + font-size: 12px; + } +} \ No newline at end of file diff --git a/frontend/src/views/components/SystemNotification/SystemNotification.vue b/frontend/src/views/components/SystemNotification/SystemNotification.vue index 3c4c18a..943c560 100644 --- a/frontend/src/views/components/SystemNotification/SystemNotification.vue +++ b/frontend/src/views/components/SystemNotification/SystemNotification.vue @@ -79,6 +79,7 @@
配额按提交的收件人数计算,失败和重试也计数;更换凭据或重启不会清空配额。
+必须启用加密和证书校验。服务器名需正确解析且由证书覆盖;此处显示配置,不代表公网连通性已验收。
-