Files
2fauth-worker/frontend/src/app/styles/modules/components/migration.css
T

261 lines
5.2 KiB
CSS

/* Migration & Backup (DataImport.vue & DataExport.vue) */
.migration-export-groups {
max-width: 100%;
margin: 10px auto;
display: flex;
flex-direction: column;
gap: 20px;
}
.migration-export-group-card {
padding: 20px;
background-color: var(--el-bg-color-overlay);
border: 1px solid var(--el-border-color-light);
border-radius: 8px;
display: flex;
flex-direction: column;
}
.migration-group-header {
display: flex;
align-items: center;
font-size: 16px;
font-weight: bold;
margin-bottom: 15px;
color: var(--el-text-color-primary);
}
.migration-group-header .el-icon {
margin-right: 8px;
font-size: 18px;
color: var(--el-color-primary);
}
.migration-button-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.migration-button-row .el-button {
margin-left: 0;
}
.migration-button-with-icon {
cursor: pointer !important;
border-radius: 6px !important;
padding: 6px 14px !important;
font-weight: 500 !important;
margin: 0 !important;
border-color: var(--el-border-color-lighter) !important;
font-size: 13px !important;
transition: all 0.2s ease-in-out !important;
display: inline-flex !important;
align-items: center;
justify-content: center;
gap: 8px !important;
}
.migration-button-with-icon:hover {
border-color: var(--el-color-primary) !important;
color: var(--el-color-primary) !important;
background-color: var(--el-color-primary-light-9) !important;
transform: translateY(-1px);
}
.migration-button-with-icon:active {
transform: translateY(0);
}
.migration-button-with-icon .el-icon,
.migration-button-with-icon svg {
font-size: 16px;
margin-right: 2px !important;
}
/* 账号选择列表样式 */
.migration-account-select-toolbar {
margin-bottom: 10px;
}
.migration-toolbar-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 5px;
margin-bottom: 10px;
}
.migration-selected-count {
font-size: 13px;
color: var(--el-text-color-secondary);
}
.migration-account-list-container {
border: 1px solid var(--el-border-color-light);
border-radius: 4px;
padding: 5px;
}
.migration-account-item {
padding: 8px 10px;
border-bottom: 1px solid var(--el-border-color-lighter);
}
.migration-account-item:last-child {
border-bottom: none;
}
.migration-account-item-content {
display: flex;
flex-direction: column;
margin-left: 8px;
line-height: 1.2;
}
.migration-account-item .service-name {
font-size: 15px;
font-weight: 600;
color: var(--el-text-color-primary);
margin-bottom: 4px;
}
.migration-account-item .account-name {
font-size: 13px;
color: var(--el-text-color-regular);
}
/* DataImport.vue Specific */
.migration-import-upload {
margin-top: 20px;
}
.migration-import-upload .el-upload-dragger {
padding: 40px;
background-color: var(--el-fill-color-light);
border-color: var(--el-border-color);
}
.migration-import-upload .el-upload-dragger:hover {
border-color: var(--el-color-primary);
}
.migration-import-upload .el-icon--upload {
font-size: 48px;
color: var(--el-text-color-secondary);
margin-bottom: 20px;
}
/* 生态支持矩阵 (Ecosystem Grid) - DataImport.vue */
.migration-ecosystem {
margin-top: 40px;
}
.compatibility-container {
padding: 0;
}
.ecosystem-groups {
display: flex;
flex-direction: column;
gap: 20px;
}
.ecosystem-group-card {
background: var(--el-bg-color-overlay);
border: 1px solid var(--el-border-color-lighter);
border-radius: 12px;
padding: 20px;
}
.group-title {
margin: 0 0 15px 0;
display: flex;
align-items: center;
gap: 8px;
font-size: 15px;
color: var(--el-text-color-primary);
font-weight: 700;
}
.ecosystem-grid {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
/* 详细引导 (Tip Sections) */
.guide-section {
display: flex;
flex-direction: column;
gap: 12px;
}
.migration-ga-tip,
.migration-ms-tip {
padding: 12px 18px;
border-radius: 10px;
}
.migration-ga-tip {
background-color: var(--el-color-primary-light-9);
color: var(--el-color-primary);
}
.migration-ms-tip {
background-color: var(--el-color-success-light-9);
color: var(--el-color-success);
}
.migration-ga-tip span,
.migration-ms-tip span {
font-size: 13px;
font-weight: 700;
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 6px;
}
.ms-path-label {
margin-top: 8px;
font-size: 11px;
opacity: 0.8;
font-weight: 600;
}
.migration-ga-tip p,
.migration-ms-tip p {
margin: 0;
font-size: 12px;
line-height: 1.6;
opacity: 0.9;
color: inherit;
}
.migration-ms-tip code {
display: block;
margin-top: 6px;
font-family: var(--el-font-family-mono);
font-size: 11px;
word-break: break-all;
color: var(--el-text-color-regular);
}
html.dark .migration-ms-tip code {
color: var(--el-text-color-secondary);
}
.el-divider__text {
background-color: var(--el-bg-color) !important;
}
/* dataMigration.vue */
.migration-container {
padding: 10px;
}
.migration-tabs .el-tabs__nav-wrap::after {
height: 1px;
}