Skip to content

Commit b5f348f

Browse files
committed
feat: 新增文件夹操作
1 parent a341be0 commit b5f348f

6 files changed

Lines changed: 651 additions & 57 deletions

File tree

bindata/static/css/filemanager.css

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,58 @@
7272
background: #1a1a1a;
7373
}
7474

75+
.breadcrumb {
76+
display: flex;
77+
align-items: center;
78+
gap: 8px;
79+
margin-bottom: 16px;
80+
padding: 8px 12px;
81+
background: #252525;
82+
border-radius: 6px;
83+
border: 1px solid #333;
84+
}
85+
86+
.breadcrumb-btn {
87+
background: transparent;
88+
border: 1px solid #333;
89+
color: #888;
90+
padding: 6px;
91+
border-radius: 4px;
92+
cursor: pointer;
93+
display: flex;
94+
align-items: center;
95+
justify-content: center;
96+
transition: all 0.2s;
97+
width: 32px;
98+
height: 32px;
99+
}
100+
101+
.breadcrumb-btn svg {
102+
width: 18px;
103+
height: 18px;
104+
fill: currentColor;
105+
}
106+
107+
.breadcrumb-btn:hover:not(:disabled) {
108+
background: #2d2d2d;
109+
border-color: #444;
110+
color: #ffffff;
111+
}
112+
113+
.breadcrumb-btn:disabled {
114+
opacity: 0.5;
115+
cursor: not-allowed;
116+
}
117+
118+
.current-path {
119+
color: #cccccc;
120+
font-size: 14px;
121+
flex: 1;
122+
overflow: hidden;
123+
text-overflow: ellipsis;
124+
white-space: nowrap;
125+
}
126+
75127
.upload-section {
76128
display: flex;
77129
gap: 10px;
@@ -169,6 +221,26 @@
169221
display: flex;
170222
align-items: center;
171223
gap: 10px;
224+
position: relative;
225+
}
226+
227+
.folder-row .filename {
228+
cursor: pointer;
229+
}
230+
231+
.folder-row:hover .filename {
232+
color: #5dade2;
233+
}
234+
235+
.folder-arrow {
236+
width: 16px;
237+
height: 16px;
238+
fill: #888;
239+
margin-left: auto;
240+
}
241+
242+
.folder-row:hover .folder-arrow {
243+
fill: #5dade2;
172244
}
173245

174246
.file-icon {
@@ -327,4 +399,152 @@
327399
height: 24px;
328400
fill: #ffffff;
329401
pointer-events: none;
402+
}
403+
404+
/* Confirm Dialog */
405+
.confirm-dialog-overlay {
406+
position: fixed;
407+
top: 0;
408+
left: 0;
409+
right: 0;
410+
bottom: 0;
411+
background-color: rgba(0, 0, 0, 0.6);
412+
display: flex;
413+
align-items: center;
414+
justify-content: center;
415+
z-index: 10000;
416+
animation: fadeIn 0.2s ease-out;
417+
}
418+
419+
@keyframes fadeIn {
420+
from {
421+
opacity: 0;
422+
}
423+
424+
to {
425+
opacity: 1;
426+
}
427+
}
428+
429+
.confirm-dialog {
430+
background: #1e1e1e;
431+
border: 1px solid #444;
432+
border-radius: 8px;
433+
width: 90%;
434+
max-width: 450px;
435+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8);
436+
animation: slideUp 0.2s ease-out;
437+
}
438+
439+
@keyframes slideUp {
440+
from {
441+
transform: translateY(20px);
442+
opacity: 0;
443+
}
444+
445+
to {
446+
transform: translateY(0);
447+
opacity: 1;
448+
}
449+
}
450+
451+
.confirm-dialog-header {
452+
display: flex;
453+
align-items: center;
454+
gap: 12px;
455+
padding: 20px 24px;
456+
border-bottom: 1px solid #333;
457+
background: #252525;
458+
border-radius: 8px 8px 0 0;
459+
}
460+
461+
.confirm-dialog-header svg {
462+
width: 24px;
463+
height: 24px;
464+
fill: #ffa726;
465+
flex-shrink: 0;
466+
}
467+
468+
.confirm-dialog-header h3 {
469+
margin: 0;
470+
color: #ffffff;
471+
font-size: 18px;
472+
font-weight: 500;
473+
}
474+
475+
.confirm-dialog-body {
476+
padding: 24px;
477+
}
478+
479+
.confirm-dialog-body p {
480+
margin: 0 0 12px 0;
481+
color: #cccccc;
482+
font-size: 15px;
483+
line-height: 1.5;
484+
}
485+
486+
.confirm-dialog-body p:last-child {
487+
margin-bottom: 0;
488+
}
489+
490+
.confirm-dialog-body strong {
491+
color: #ffffff;
492+
font-weight: 500;
493+
}
494+
495+
.warning-text {
496+
color: #ff6b6b !important;
497+
font-size: 13px !important;
498+
margin-top: 12px !important;
499+
}
500+
501+
.confirm-dialog-footer {
502+
display: flex;
503+
gap: 12px;
504+
padding: 16px 24px;
505+
border-top: 1px solid #333;
506+
background: #1a1a1a;
507+
border-radius: 0 0 8px 8px;
508+
justify-content: flex-end;
509+
}
510+
511+
.confirm-cancel-btn,
512+
.confirm-delete-btn {
513+
padding: 8px 20px;
514+
border: 1px solid #333;
515+
border-radius: 6px;
516+
cursor: pointer;
517+
font-size: 14px;
518+
transition: all 0.2s;
519+
display: flex;
520+
align-items: center;
521+
gap: 6px;
522+
}
523+
524+
.confirm-cancel-btn {
525+
background: transparent;
526+
color: #cccccc;
527+
}
528+
529+
.confirm-cancel-btn:hover {
530+
background: #2d2d2d;
531+
border-color: #444;
532+
color: #ffffff;
533+
}
534+
535+
.confirm-delete-btn {
536+
background: #5d2f2f;
537+
color: #ffffff;
538+
border-color: #6d2f2f;
539+
}
540+
541+
.confirm-delete-btn svg {
542+
width: 16px;
543+
height: 16px;
544+
fill: currentColor;
545+
}
546+
547+
.confirm-delete-btn:hover {
548+
background: #7d3f3f;
549+
border-color: #8d4f4f;
330550
}

bindata/static/js/gotty.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindata/static/js/gotty.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)