feat: refine web workspace UI

This commit is contained in:
237899745
2026-07-21 17:11:18 +08:00
parent 465be72579
commit d07c08c609
4 changed files with 1121 additions and 233 deletions

View File

@@ -1837,3 +1837,858 @@ body.enterprise-netdisk .share-list-actions .btn {
animation-iteration-count: 1 !important;
}
}
/* Selected workspace direction: compact file canvas, tabbed shares and settings. */
body.enterprise-netdisk .files-view-card {
height: calc(100vh - 62px);
min-height: 680px;
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .files-page-header {
flex: 0 0 auto;
padding: 22px 26px 20px;
}
body.enterprise-netdisk .files-page-header .workspace-page-heading h1 {
font-size: 27px;
}
body.enterprise-netdisk .files-content-shell {
min-height: 0;
flex: 1;
display: flex;
flex-direction: column;
padding: 16px 24px 22px;
}
body.enterprise-netdisk .files-command-bar,
body.enterprise-netdisk .files-search-wrap,
body.enterprise-netdisk .files-list-heading {
flex: 0 0 auto;
}
body.enterprise-netdisk .files-search-wrap {
margin-top: 11px;
}
body.enterprise-netdisk .files-search-row {
padding: 7px;
border-radius: 11px;
}
body.enterprise-netdisk .files-search-field,
body.enterprise-netdisk .files-search-type,
body.enterprise-netdisk .files-search-button {
min-height: 38px;
}
body.enterprise-netdisk .files-list-heading {
min-height: 43px;
}
body.enterprise-netdisk .files-container {
min-height: 360px;
flex: 1;
overflow: auto;
padding: 8px 10px 54px;
border-radius: 12px;
background:
linear-gradient(rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.96)),
radial-gradient(circle at 50% 42%, rgba(40, 120, 255, 0.08), transparent 22rem);
transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
body.enterprise-netdisk .files-container.drag-over {
border-color: #72a8ff;
background: #f5f9ff;
box-shadow: inset 0 0 0 2px rgba(40, 120, 255, 0.12);
}
body.enterprise-netdisk .files-content-shell .file-grid {
min-height: 100%;
padding: 18px 10px;
align-content: start;
justify-content: start;
grid-template-columns: repeat(auto-fill, 138px);
grid-auto-rows: 132px;
gap: 8px 14px;
}
body.enterprise-netdisk .files-content-shell .file-grid-item {
width: 138px;
min-height: 132px;
padding: 10px 8px 9px;
justify-content: flex-start;
border: 0;
border-radius: 10px;
background: transparent;
box-shadow: none;
transform: none;
}
body.enterprise-netdisk .files-content-shell .file-grid-item:hover {
border: 0;
background: #f3f7fc;
box-shadow: none;
transform: none;
}
body.enterprise-netdisk .files-content-shell .file-grid-item:active {
background: #eaf2ff;
}
body.enterprise-netdisk .file-icon {
min-height: 68px;
margin: 0 0 4px;
}
body.enterprise-netdisk .file-grid-type-icon {
font-size: 54px;
filter: none;
}
body.enterprise-netdisk .file-type-default {
color: #6c7d96 !important;
}
body.enterprise-netdisk .file-type-folder {
color: #e8ae42 !important;
}
body.enterprise-netdisk .file-type-pdf {
color: #e15d62 !important;
}
body.enterprise-netdisk .file-type-word {
color: #397bd8 !important;
}
body.enterprise-netdisk .file-type-excel {
color: #2b9c70 !important;
}
body.enterprise-netdisk .file-type-archive {
color: #b07d50 !important;
}
body.enterprise-netdisk .file-type-audio {
color: #7886c7 !important;
}
body.enterprise-netdisk .file-thumbnail {
width: 68px;
height: 62px;
border-radius: 9px;
box-shadow: 0 5px 14px rgba(38, 58, 90, 0.09);
}
body.enterprise-netdisk .files-content-shell .file-name {
min-height: 20px;
color: #10203a;
font-size: 13px;
font-weight: 750;
}
body.enterprise-netdisk .files-content-shell .file-size {
margin-top: 2px;
color: #72839d;
font-size: 11px;
}
body.enterprise-netdisk .files-drop-hint {
position: absolute;
left: 50%;
bottom: 14px;
z-index: 2;
padding: 6px 11px;
display: inline-flex;
align-items: center;
gap: 7px;
border: 1px solid #e1e9f5;
border-radius: 999px;
color: #8492a8;
background: rgba(249, 251, 254, 0.92);
font-size: 10px;
pointer-events: none;
transform: translateX(-50%);
}
body.enterprise-netdisk .files-drop-hint i {
color: #5f97ec;
}
body.enterprise-netdisk .drag-drop-overlay {
position: absolute !important;
inset: 0 !important;
z-index: 25 !important;
min-height: 100% !important;
display: grid !important;
place-items: center !important;
border: 0 !important;
border-radius: 11px !important;
background: rgba(240, 247, 255, 0.96) !important;
backdrop-filter: blur(3px);
}
body.enterprise-netdisk .drag-drop-content {
padding: 26px 34px;
text-align: center;
border: 1px dashed #79aaff;
border-radius: 18px;
background: #fff;
box-shadow: 0 18px 40px rgba(32, 84, 165, 0.12);
}
body.enterprise-netdisk .drag-drop-content > i {
margin-bottom: 12px !important;
color: var(--ww-blue) !important;
font-size: 44px !important;
}
body.enterprise-netdisk .drag-drop-content > div:first-of-type {
margin-bottom: 4px !important;
font-size: 17px !important;
}
/* Shares */
body.enterprise-netdisk .shares-page-card {
min-height: calc(100vh - 62px);
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .shares-page-head {
padding: 24px 28px 20px;
}
body.enterprise-netdisk .share-resource-tabs {
min-height: 55px;
padding: 0 28px;
display: flex;
align-items: flex-end;
gap: 26px;
border-bottom: 1px solid var(--ww-line);
background: #fff;
}
body.enterprise-netdisk .share-resource-tabs button {
position: relative;
min-height: 54px;
padding: 0 2px;
display: inline-flex;
align-items: center;
gap: 8px;
border: 0;
color: #74839a;
background: transparent;
font-size: 13px;
font-weight: 700;
cursor: pointer;
}
body.enterprise-netdisk .share-resource-tabs button::after {
content: "";
position: absolute;
right: 0;
bottom: -1px;
left: 0;
height: 3px;
border-radius: 3px 3px 0 0;
background: transparent;
}
body.enterprise-netdisk .share-resource-tabs button.active {
color: var(--ww-blue);
}
body.enterprise-netdisk .share-resource-tabs button.active::after {
background: var(--ww-blue);
}
body.enterprise-netdisk .share-resource-tabs button > span {
min-width: 21px;
height: 20px;
padding: 0 6px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
color: #718097;
background: #edf2f8;
font-size: 10px;
}
body.enterprise-netdisk .share-resource-tabs button.active > span {
color: #1763e6;
background: #e8f1ff;
}
body.enterprise-netdisk .share-resource-card {
min-height: 0;
margin: 22px 28px 28px;
display: flex;
flex: 1;
flex-direction: column;
overflow: hidden;
border: 1px solid var(--ww-line);
border-radius: 14px;
background: #fff;
}
body.enterprise-netdisk .share-inline-stats {
min-height: 52px;
padding: 0 17px;
display: flex;
align-items: center;
gap: 24px;
border-bottom: 1px solid var(--ww-line);
color: #74839a;
background: #fbfcfe;
font-size: 11px;
}
body.enterprise-netdisk .share-inline-stats > span {
display: inline-flex;
align-items: center;
gap: 7px;
}
body.enterprise-netdisk .share-inline-stats i {
color: #7896c4;
}
body.enterprise-netdisk .share-inline-stats strong {
color: #23344f;
font-size: 12px;
}
body.enterprise-netdisk .share-resource-card .share-toolbar {
margin: 14px 16px;
padding: 7px;
border-radius: 11px;
}
body.enterprise-netdisk .share-resource-card .share-search-field,
body.enterprise-netdisk .share-resource-card .share-toolbar select {
min-height: 38px;
}
body.enterprise-netdisk .share-resource-card .share-search-field input,
body.enterprise-netdisk .share-resource-card .share-search-field input:focus {
min-height: 34px;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
outline: 0 !important;
background: transparent !important;
box-shadow: none !important;
}
body.enterprise-netdisk .share-resource-panel {
min-height: 260px;
flex: 1;
overflow: auto;
border-top: 1px solid var(--ww-line);
}
body.enterprise-netdisk .share-resource-panel .share-section-head {
min-height: 58px;
padding: 9px 16px;
position: sticky;
top: 0;
z-index: 3;
}
body.enterprise-netdisk .share-resource-panel .share-section-icon {
width: 34px;
height: 34px;
flex-basis: 34px;
}
body.enterprise-netdisk .share-resource-panel .share-list-table td {
height: 56px;
}
/* Settings */
body.enterprise-netdisk .settings-page-card {
min-height: calc(100vh - 62px);
padding: 0 !important;
overflow: hidden;
}
body.enterprise-netdisk .settings-page-head {
padding: 25px 30px 21px;
border-bottom: 1px solid var(--ww-line);
background:
radial-gradient(circle at 92% 0%, rgba(40, 120, 255, 0.07), transparent 19rem),
#fff;
}
body.enterprise-netdisk .settings-page-title {
margin: 0;
color: var(--ww-ink);
font-size: 27px;
font-weight: 800;
line-height: 1.2;
letter-spacing: -0.02em;
}
body.enterprise-netdisk .settings-page-title i {
margin-right: 8px;
color: var(--ww-blue);
font-size: 20px;
}
body.enterprise-netdisk .settings-page-subtitle {
margin: 6px 0 0;
color: var(--ww-muted);
font-size: 12px;
}
body.enterprise-netdisk .settings-tabs {
min-height: 57px;
padding: 0 30px;
display: flex;
align-items: flex-end;
gap: 28px;
border-bottom: 1px solid var(--ww-line);
background: #fff;
}
body.enterprise-netdisk .settings-tab {
position: relative;
min-height: 56px;
padding: 0 2px;
display: inline-flex;
align-items: center;
gap: 8px;
border: 0;
color: #74839a;
background: transparent;
font-size: 13px;
font-weight: 700;
cursor: pointer;
}
body.enterprise-netdisk .settings-tab::after {
content: "";
position: absolute;
right: 0;
bottom: -1px;
left: 0;
height: 3px;
border-radius: 3px 3px 0 0;
background: transparent;
}
body.enterprise-netdisk .settings-tab.active {
color: var(--ww-blue);
}
body.enterprise-netdisk .settings-tab.active::after {
background: var(--ww-blue);
}
body.enterprise-netdisk .settings-page-card > .settings-section,
body.enterprise-netdisk .settings-page-card > .settings-section-title,
body.enterprise-netdisk .settings-page-card > .settings-panel {
margin-right: 28px !important;
margin-left: 28px !important;
}
body.enterprise-netdisk .settings-page-card > .settings-section {
margin-top: 24px !important;
margin-bottom: 28px !important;
}
body.enterprise-netdisk .settings-page-card > .settings-section-title {
margin-top: 24px !important;
margin-bottom: 13px !important;
}
body.enterprise-netdisk .settings-section-title {
color: #24354f;
font-size: 14px;
font-weight: 800;
}
body.enterprise-netdisk .settings-section-title i {
width: 19px;
color: var(--ww-blue);
}
body.enterprise-netdisk .settings-storage-choice > .settings-section-title,
body.enterprise-netdisk .settings-download-traffic > .settings-section-title,
body.enterprise-netdisk .settings-local-only > .settings-section-title,
body.enterprise-netdisk .settings-oss-only > .settings-section-title {
margin-bottom: 13px !important;
}
body.enterprise-netdisk .settings-storage-panel,
body.enterprise-netdisk .settings-local-panel,
body.enterprise-netdisk .settings-oss-panel,
body.enterprise-netdisk .settings-traffic-panel,
body.enterprise-netdisk .settings-devices-panel,
body.enterprise-netdisk .settings-theme-panel,
body.enterprise-netdisk .settings-account-panel {
border: 1px solid var(--ww-line) !important;
border-radius: 14px !important;
background: #fff !important;
box-shadow: 0 10px 30px rgba(31, 49, 78, 0.06) !important;
}
body.enterprise-netdisk .settings-storage-panel {
padding: 18px !important;
}
body.enterprise-netdisk .settings-storage-switch {
padding: 9px !important;
border-color: #e6ebf3 !important;
background: #f8fafd !important;
}
body.enterprise-netdisk .settings-storage-grid {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
gap: 12px !important;
}
body.enterprise-netdisk .settings-storage-option {
padding: 15px !important;
border-color: var(--ww-line) !important;
border-radius: 11px !important;
background: #fbfcfe !important;
box-shadow: none !important;
}
body.enterprise-netdisk .settings-storage-option:has(button:disabled) {
border-color: #b9d1f6 !important;
background: #f6f9ff !important;
}
body.enterprise-netdisk .settings-inline-tip {
border: 0 !important;
color: #65758d !important;
background: #f7f9fc !important;
}
body.enterprise-netdisk .settings-traffic-panel {
padding: 18px !important;
}
body.enterprise-netdisk .settings-traffic-toolbar {
margin-bottom: 14px !important;
}
body.enterprise-netdisk .download-traffic-range-actions {
gap: 5px;
}
body.enterprise-netdisk .download-traffic-range-btn {
min-height: 32px;
padding: 0 10px;
border-radius: 8px;
font-size: 11px;
}
body.enterprise-netdisk .download-traffic-range-btn-active {
color: #fff !important;
border-color: var(--ww-blue) !important;
background: var(--ww-blue) !important;
}
body.enterprise-netdisk .traffic-kpi-grid {
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
gap: 9px !important;
}
body.enterprise-netdisk .traffic-kpi-grid > div {
min-height: 84px;
padding: 12px 13px !important;
border-radius: 10px !important;
box-shadow: none;
}
body.enterprise-netdisk .traffic-quota-progress {
padding: 8px 2px 4px;
}
body.enterprise-netdisk .traffic-summary-grid {
grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
gap: 8px !important;
}
body.enterprise-netdisk .traffic-summary-grid > div {
padding: 9px 10px !important;
border-color: #e5eaf2 !important;
background: #fafbfd !important;
}
body.enterprise-netdisk .traffic-visual-grid {
display: grid;
grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.8fr);
gap: 10px;
}
body.enterprise-netdisk .traffic-chart-card,
body.enterprise-netdisk .traffic-table-card {
min-width: 0;
padding: 13px;
border: 1px solid var(--ww-line);
border-radius: 11px;
background: #fff;
}
body.enterprise-netdisk .traffic-card-head {
min-height: 39px;
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
body.enterprise-netdisk .traffic-card-head > div {
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .traffic-card-head strong {
color: #263750;
font-size: 12px;
font-weight: 800;
}
body.enterprise-netdisk .traffic-card-head span {
color: #8a98ab;
font-size: 9px;
}
body.enterprise-netdisk .traffic-peak-pill {
padding: 4px 7px;
border-radius: 999px;
color: #1763e6 !important;
background: #eaf2ff;
font-weight: 700;
}
body.enterprise-netdisk .traffic-chart-bars {
height: 178px;
padding: 15px 4px 0;
display: grid;
grid-template-columns: repeat(7, minmax(30px, 1fr));
align-items: end;
gap: 8px;
border-bottom: 1px solid #e6ebf2;
background: repeating-linear-gradient(to bottom, transparent 0, transparent 43px, #f0f3f8 44px);
}
body.enterprise-netdisk .traffic-bar-column {
height: 160px;
min-width: 0;
display: grid;
grid-template-rows: 18px 116px 20px;
align-items: end;
justify-items: center;
}
body.enterprise-netdisk .traffic-bar-value,
body.enterprise-netdisk .traffic-bar-label {
max-width: 100%;
overflow: hidden;
color: #8795a9;
font-size: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .traffic-bar-track {
width: min(34px, 68%);
height: 112px;
display: flex;
align-items: flex-end;
border-radius: 6px 6px 0 0;
}
body.enterprise-netdisk .traffic-bar-track > span {
width: 100%;
min-height: 4px;
display: block;
border-radius: 6px 6px 2px 2px;
background: linear-gradient(180deg, #4f91ff 0%, #2878ff 100%);
box-shadow: 0 5px 12px rgba(40, 120, 255, 0.16);
}
body.enterprise-netdisk .traffic-table-scroll {
max-height: 193px;
overflow: auto;
}
body.enterprise-netdisk .traffic-table-scroll table {
width: 100%;
border-collapse: collapse;
}
body.enterprise-netdisk .traffic-table-scroll th,
body.enterprise-netdisk .traffic-table-scroll td {
height: 29px;
padding: 0 7px;
border-bottom: 1px solid #edf1f6;
color: #53637a;
font-size: 9px;
text-align: right;
}
body.enterprise-netdisk .traffic-table-scroll th {
color: #8a98ab;
background: #fafbfd;
font-weight: 700;
}
body.enterprise-netdisk .traffic-table-scroll th:first-child,
body.enterprise-netdisk .traffic-table-scroll td:first-child {
text-align: left;
}
body.enterprise-netdisk .traffic-table-scroll td:nth-child(2) {
color: #263750;
font-weight: 700;
}
body.enterprise-netdisk .traffic-empty-state {
min-height: 168px;
display: flex;
align-items: center;
justify-content: center;
gap: 7px;
color: var(--ww-muted);
font-size: 11px;
}
body.enterprise-netdisk .traffic-report-note {
margin-top: 9px;
color: #8492a7;
font-size: 10px;
}
body.enterprise-netdisk .traffic-report-note i {
margin-right: 5px;
color: #6797df;
}
body.enterprise-netdisk .settings-theme-panel,
body.enterprise-netdisk .settings-devices-panel,
body.enterprise-netdisk .settings-account-panel {
padding: 18px !important;
margin-bottom: 28px !important;
}
@media (max-width: 1180px) {
body.enterprise-netdisk .traffic-kpi-grid {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body.enterprise-netdisk .traffic-summary-grid {
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.enterprise-netdisk .traffic-visual-grid {
grid-template-columns: 1fr;
}
}
@media (max-width: 900px) {
body.enterprise-netdisk .files-view-card,
body.enterprise-netdisk .shares-page-card,
body.enterprise-netdisk .settings-page-card {
height: auto;
min-height: calc(100vh - 94px);
}
body.enterprise-netdisk .files-content-shell .file-grid {
grid-template-columns: repeat(auto-fill, 128px);
}
body.enterprise-netdisk .files-content-shell .file-grid-item {
width: 128px;
}
body.enterprise-netdisk .settings-storage-grid {
grid-template-columns: 1fr !important;
}
}
@media (max-width: 680px) {
body.enterprise-netdisk .files-page-header,
body.enterprise-netdisk .shares-page-head,
body.enterprise-netdisk .settings-page-head {
padding: 19px 17px 17px;
}
body.enterprise-netdisk .files-content-shell {
padding: 13px 14px 16px;
}
body.enterprise-netdisk .files-content-shell .file-grid {
padding-inline: 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 6px;
}
body.enterprise-netdisk .files-content-shell .file-grid-item {
width: auto;
min-height: 126px;
}
body.enterprise-netdisk .files-drop-hint {
width: max-content;
max-width: calc(100% - 28px);
}
body.enterprise-netdisk .share-resource-tabs,
body.enterprise-netdisk .settings-tabs {
padding: 0 17px;
gap: 18px;
overflow-x: auto;
}
body.enterprise-netdisk .share-resource-card {
margin: 16px 14px 18px;
}
body.enterprise-netdisk .share-inline-stats {
min-height: 48px;
gap: 12px;
overflow-x: auto;
white-space: nowrap;
}
body.enterprise-netdisk .share-resource-card .share-toolbar {
display: grid;
grid-template-columns: 1fr;
}
body.enterprise-netdisk .share-resource-card .share-toolbar select {
width: 100%;
}
body.enterprise-netdisk .settings-page-card > .settings-section,
body.enterprise-netdisk .settings-page-card > .settings-section-title,
body.enterprise-netdisk .settings-page-card > .settings-panel {
margin-right: 14px !important;
margin-left: 14px !important;
}
body.enterprise-netdisk .traffic-kpi-grid,
body.enterprise-netdisk .traffic-summary-grid {
grid-template-columns: 1fr !important;
}
body.enterprise-netdisk .traffic-chart-bars {
gap: 4px;
}
body.enterprise-netdisk .traffic-bar-value {
display: none;
}
}