blob: 70a9aeabfa60f7eaac8671d275037fc4c360ab40 [file] [log] [blame]
TRM-codingd1cbf672025-06-18 15:15:08 +08001.upload-page {
2 max-width: 800px;
3 margin: 0 auto;
4 padding: 16px;
5 font-family: sans-serif;
6 color: #333;
7}
8
9.upload-tabs {
10 display: flex;
11 margin-bottom: 16px;
12}
13
14.upload-tab {
15 flex: 1;
16 padding: 8px 16px;
17 border: 1px solid #ddd;
18 background: #f9f9f9;
19 cursor: pointer;
20 text-align: center;
21}
22
23.upload-tab.active {
24 background: #fff;
25 border-bottom: 2px solid #1890ff;
26 color: #1890ff;
27}
28
29.upload-area {
30 border: 2px dashed #ccc;
31 padding: 40px;
32 text-align: center;
33 transition: background 0.3s;
34}
35
36.upload-area.drag-over {
37 background: #eef6ff;
38}
39
40.upload-btn {
41 margin-top: 16px;
42 padding: 8px 24px;
43 border: none;
44 background: #1890ff;
45 color: #fff;
46 cursor: pointer;
47}
48
49.upload-btn:disabled {
50 background: #aaa;
51 cursor: not-allowed;
52}
53
54/* 如果有 upload-table 相关,用类似方式定义 */
55.upload-table {
56 width: 100%;
57 border-collapse: collapse;
58 margin-top: 24px;
59}
60
61.upload-table th,
62.upload-table td {
63 border: 1px solid #ddd;
64 padding: 8px;
65 text-align: left;
66}
67
68.upload-table th {
69 background: #f5f5f5;
70}
trma6b60ef2025-06-21 01:47:09 +000071
72/* 文件预览区域 */
73.file-preview-area {
74 background: #fff;
75 border-radius: 8px;
76 padding: 20px;
77 margin-bottom: 40px;
78 border: 1px solid #e8eaed;
79}
80
81.preview-header {
82 display: flex;
83 justify-content: space-between;
84 align-items: center;
85 margin-bottom: 16px;
86}
87
88.preview-title {
89 font-size: 16px;
90 color: #333;
91 margin: 0;
92 font-weight: 500;
93}
94
95.clear-files-btn {
96 background: #ff4757;
97 color: white;
98 padding: 6px 12px;
99 border: none;
100 border-radius: 4px;
101 font-size: 12px;
102 cursor: pointer;
103 transition: background 0.2s;
104}
105
106.clear-files-btn:hover {
107 background: #ff3742;
108}
109
110.file-grid {
111 display: grid;
112 grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
113 gap: 16px;
114}
115
116.file-item {
117 position: relative;
118 background: #fff;
119 border: 1px solid #e8eaed;
120 border-radius: 8px;
121 padding: 12px;
122 text-align: center;
123 transition: all 0.2s;
124}
125
126.file-item:hover {
127 border-color: #1890ff;
128 box-shadow: 0 2px 8px rgba(24, 144, 255, 0.1);
129}
130
131.file-item:hover .remove-file-btn {
132 opacity: 1;
133}
134
135.remove-file-btn {
136 position: absolute;
137 top: 4px;
138 right: 4px;
139 background: rgba(255, 71, 87, 0.8);
140 color: white;
141 border: none;
142 border-radius: 50%;
143 width: 20px;
144 height: 20px;
145 display: flex;
146 align-items: center;
147 justify-content: center;
148 font-size: 14px;
149 font-weight: bold;
150 opacity: 0;
151 transition: all 0.2s;
152 cursor: pointer;
153}
154
155.file-thumbnail {
156 width: 80px;
157 height: 80px;
158 border-radius: 6px;
159 overflow: hidden;
160 margin: 0 auto 8px;
161 display: flex;
162 align-items: center;
163 justify-content: center;
164 background: #f8f9fa;
165 position: relative;
166}
167
168.file-thumbnail img,
169.file-thumbnail video {
170 width: 100%;
171 height: 100%;
172 object-fit: cover;
173}
174
175.video-thumbnail {
176 color: #666;
177 position: relative;
178}
179
180.video-overlay {
181 position: absolute;
182 top: 50%;
183 left: 50%;
184 transform: translate(-50%, -50%);
185 background: rgba(0, 0, 0, 0.6);
186 border-radius: 50%;
187 width: 32px;
188 height: 32px;
189 display: flex;
190 align-items: center;
191 justify-content: center;
192 color: white;
193 pointer-events: none;
194}
195
196.file-info {
197 text-align: center;
198 width: 100%;
199}
200
201.file-name {
202 font-size: 12px;
203 color: #333;
204 margin-bottom: 4px;
205 font-weight: 500;
206 word-break: break-all;
207}
208
209.file-size {
210 font-size: 11px;
211 color: #999;
212}
213
214/* 进度条 */
215.progress-container {
216 margin-top: 20px;
217 width: 100%;
218 max-width: 400px;
219}
220
221.progress-bar {
222 width: 100%;
223 height: 8px;
224 background-color: #f0f0f0;
225 border-radius: 4px;
226 overflow: hidden;
227 margin-bottom: 8px;
228}
229
230.progress-fill {
231 height: 100%;
232 background: linear-gradient(90deg, #1890ff, #40a9ff);
233 transition: width 0.3s ease;
234}
235
236.progress-text {
237 text-align: center;
238 font-size: 12px;
239 color: #666;
240}
241
242/* 上传信息区域 */
243.upload-info {
244 display: grid;
245 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
246 gap: 20px;
247 margin-top: 40px;
248}
249
250.info-item {
251 background: #f8f9fa;
252 padding: 16px;
253 border-radius: 8px;
254 text-align: center;
255}
256
257.info-title {
258 font-size: 14px;
259 color: #333;
260 margin-bottom: 8px;
261 font-weight: 500;
262}
263
264.info-desc {
265 font-size: 12px;
266 color: #666;
267 margin: 0;
268}
269
270.fade-in {
271 animation: fadeIn 0.5s ease-in;
272}
273
274@keyframes fadeIn {
275 from {
276 opacity: 0;
277 transform: translateY(10px);
278 }
279 to {
280 opacity: 1;
281 transform: translateY(0);
282 }
283}