xto-fronted 0.6.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/{index-DydABgae.js → index-D73_-C9m.js} +13 -13
  2. package/dist/index-DBjV4kzh.js +249 -0
  3. package/dist/{index-IOKG7Gwo.js → index-DJ1oHe08.js} +973 -918
  4. package/dist/{index-BKO6Hzba.js → index-D_TGEwDg.js} +192 -140
  5. package/dist/{index-BZSZ3bx2.js → index-DauAWAHG.js} +28 -28
  6. package/dist/index.js +1 -1
  7. package/dist/style.css +1 -1
  8. package/package.json +9 -9
  9. package/src/App.vue +4 -4
  10. package/src/assets/styles/_dark.scss +176 -176
  11. package/src/assets/styles/_reset.scss +8 -8
  12. package/src/assets/styles/_root.scss +131 -125
  13. package/src/assets/styles/_variables.scss +17 -17
  14. package/src/assets/styles/index.scss +39 -39
  15. package/src/components/Layout/Footer.vue +1 -1
  16. package/src/components/Layout/Header.vue +59 -60
  17. package/src/components/Layout/MixTopMenu.vue +42 -43
  18. package/src/components/Layout/Sidebar.vue +8 -8
  19. package/src/components/Layout/SidebarMenuItem.vue +2 -2
  20. package/src/components/Layout/Tabs.vue +6 -6
  21. package/src/components/Layout/TopMenu.vue +42 -43
  22. package/src/components/Layout/index.vue +4 -4
  23. package/src/stores/app.ts +26 -2
  24. package/src/style.scss +2 -2
  25. package/src/views/dashboard/index.vue +125 -104
  26. package/src/views/error/403.vue +13 -13
  27. package/src/views/error/404.vue +14 -14
  28. package/src/views/login/index.vue +21 -54
  29. package/src/views/system/menu/index.vue +30 -30
  30. package/src/views/system/role/index.vue +20 -20
  31. package/src/views/system/user/index.vue +23 -23
  32. package/vite.config.ts +4 -1
  33. package/dist/index-BXHwCe22.js +0 -189
@@ -3,10 +3,38 @@ import { ref } from 'vue'
3
3
  import { Progress } from '@xto/data'
4
4
 
5
5
  const stats = ref([
6
- { title: '用户总数', value: 1234, icon: '👥', color: '#1677ff', trend: '+12.5%', trendUp: true },
7
- { title: '今日访问', value: 567, icon: '👀', color: '#52c41a', trend: '+8.2%', trendUp: true },
8
- { title: '订单数量', value: 890, icon: '📦', color: '#faad14', trend: '-3.1%', trendUp: false },
9
- { title: '销售金额', value: 123456, icon: '💰', color: '#ff4d4f', trend: '+15.8%', trendUp: true }
6
+ {
7
+ title: '用户总数',
8
+ value: 1234,
9
+ icon: 'M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm-7 8a7 7 0 0 1 14 0',
10
+ color: 'var(--xto-color-primary, #4F46E5)',
11
+ trend: '+12.5%',
12
+ trendUp: true
13
+ },
14
+ {
15
+ title: '今日访问',
16
+ value: 567,
17
+ icon: 'M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6-10-6-10-6Zm10 2.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z',
18
+ color: 'var(--xto-color-success, #00A870)',
19
+ trend: '+8.2%',
20
+ trendUp: true
21
+ },
22
+ {
23
+ title: '订单数量',
24
+ value: 890,
25
+ icon: 'M21 8l-9-5-9 5v8l9 5 9-5V8Zm-9-2.7L18.6 8 12 11.7 5.4 8 12 5.3Z',
26
+ color: 'var(--xto-color-warning, #FF7D00)',
27
+ trend: '-3.1%',
28
+ trendUp: false
29
+ },
30
+ {
31
+ title: '销售金额',
32
+ value: 123456,
33
+ icon: 'M3 7h18v10H3V7Zm9 5a2.5 2.5 0 1 0 0 .01M6.5 12h.01M17.5 12h.01',
34
+ color: 'var(--xto-color-danger, #F53F3F)',
35
+ trend: '+15.8%',
36
+ trendUp: true
37
+ }
10
38
  ])
11
39
 
12
40
  const activities = ref([
@@ -18,10 +46,30 @@ const activities = ref([
18
46
  ])
19
47
 
20
48
  const quickLinks = ref([
21
- { title: '用户管理', path: '/system/user', icon: '👤', desc: '管理系统用户' },
22
- { title: '角色管理', path: '/system/role', icon: '👥', desc: '角色权限配置' },
23
- { title: '菜单管理', path: '/system/menu', icon: '📋', desc: '菜单路由管理' },
24
- { title: '系统设置', path: '/system', icon: '⚙️', desc: '系统参数配置' }
49
+ {
50
+ title: '用户管理',
51
+ path: '/system/user',
52
+ icon: 'M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm-7 8a7 7 0 0 1 14 0',
53
+ desc: '管理系统用户'
54
+ },
55
+ {
56
+ title: '角色管理',
57
+ path: '/system/role',
58
+ icon: 'M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm8 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 19a6 6 0 0 1 12 0m2-6a6 6 0 0 1 6 6',
59
+ desc: '角色权限配置'
60
+ },
61
+ {
62
+ title: '菜单管理',
63
+ path: '/system/menu',
64
+ icon: 'M4 6h16M4 12h16M4 18h10',
65
+ desc: '菜单路由管理'
66
+ },
67
+ {
68
+ title: '系统设置',
69
+ path: '/system',
70
+ icon: 'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm7.4-3a7.4 7.4 0 0 0-.1-1.2l2-1.6-2-3.4-2.4 1a7.6 7.6 0 0 0-2-1.2L14.5 3h-5l-.4 2.6a7.6 7.6 0 0 0-2 1.2l-2.4-1-2 3.4 2 1.6a7.4 7.4 0 0 0 0 2.4l-2 1.6 2 3.4 2.4-1a7.6 7.6 0 0 0 2 1.2l.4 2.6h5l.4-2.6a7.6 7.6 0 0 0 2-1.2l2.4 1 2-3.4-2-1.6c.1-.4.1-.8.1-1.2Z',
71
+ desc: '系统参数配置'
72
+ }
25
73
  ])
26
74
 
27
75
  const systemInfo = ref([
@@ -37,14 +85,14 @@ const systemInfo = ref([
37
85
  <!-- 统计卡片 -->
38
86
  <div class="stats-section">
39
87
  <div v-for="stat in stats" :key="stat.title" class="stat-card">
40
- <div class="stat-icon" :style="{ background: `linear-gradient(135deg, ${stat.color}20 0%, ${stat.color}10 100%)` }">
41
- <span>{{ stat.icon }}</span>
88
+ <div class="stat-icon">
89
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" :style="{ color: stat.color }">
90
+ <path :d="stat.icon" />
91
+ </svg>
42
92
  </div>
43
93
  <div class="stat-content">
44
94
  <div class="stat-title">{{ stat.title }}</div>
45
- <div class="stat-value" :style="{ color: stat.color }">
46
- {{ stat.value.toLocaleString() }}
47
- </div>
95
+ <div class="stat-value">{{ stat.value.toLocaleString() }}</div>
48
96
  <div class="stat-trend" :class="{ up: stat.trendUp, down: !stat.trendUp }">
49
97
  <svg v-if="stat.trendUp" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
50
98
  <path d="M7 17l5-5 5 5M7 7l5 5 5-5"/>
@@ -55,7 +103,6 @@ const systemInfo = ref([
55
103
  <span>{{ stat.trend }}</span>
56
104
  </div>
57
105
  </div>
58
- <div class="stat-decoration" :style="{ background: `linear-gradient(135deg, ${stat.color}08 0%, transparent 100%)` }"></div>
59
106
  </div>
60
107
  </div>
61
108
 
@@ -74,7 +121,11 @@ const systemInfo = ref([
74
121
  :to="link.path"
75
122
  class="quick-card"
76
123
  >
77
- <div class="quick-icon">{{ link.icon }}</div>
124
+ <div class="quick-icon">
125
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">
126
+ <path :d="link.icon" />
127
+ </svg>
128
+ </div>
78
129
  <div class="quick-info">
79
130
  <div class="quick-title">{{ link.title }}</div>
80
131
  <div class="quick-desc">{{ link.desc }}</div>
@@ -106,7 +157,6 @@ const systemInfo = ref([
106
157
  </div>
107
158
  <div class="activity-time">{{ activity.time }}</div>
108
159
  </div>
109
- <div class="activity-dot" :class="activity.type"></div>
110
160
  </div>
111
161
  </div>
112
162
  </div>
@@ -155,7 +205,7 @@ const systemInfo = ref([
155
205
  <style lang="scss" scoped>
156
206
  .dashboard {
157
207
  padding: 24px;
158
- background: var(--xto-bg-color-page, #F9FAFB);
208
+ background: var(--xto-bg-color-page, #F7F8FA);
159
209
  min-height: 100%;
160
210
  }
161
211
 
@@ -176,24 +226,17 @@ const systemInfo = ref([
176
226
  }
177
227
 
178
228
  .stat-card {
179
- position: relative;
180
229
  display: flex;
181
230
  align-items: flex-start;
182
231
  gap: 16px;
183
232
  padding: 20px;
184
233
  background: var(--xto-bg-color, #FFFFFF);
185
- border-radius: var(--xto-border-radius-large, 8px);
186
- box-shadow: var(--xto-shadow-subtle, 0 1px 2px 0 rgba(0,0,0,0.05));
187
- transition: all 0.3s ease;
188
- overflow: hidden;
234
+ border-radius: var(--xto-border-radius-large, 12px);
235
+ box-shadow: var(--xto-shadow-subtle, 0 1px 2px rgba(31, 35, 41, 0.06));
236
+ transition: box-shadow 0.2s ease;
189
237
 
190
238
  &:hover {
191
- box-shadow: var(--xto-shadow-elevated, 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1));
192
- transform: translateY(-4px);
193
-
194
- .stat-decoration {
195
- opacity: 1;
196
- }
239
+ box-shadow: var(--xto-shadow-base, 0 1px 3px rgba(31, 35, 41, 0.08), 0 4px 12px rgba(31, 35, 41, 0.06));
197
240
  }
198
241
 
199
242
  .stat-icon {
@@ -202,11 +245,13 @@ const systemInfo = ref([
202
245
  display: flex;
203
246
  align-items: center;
204
247
  justify-content: center;
205
- border-radius: var(--xto-border-radius-large, 8px);
248
+ background: var(--xto-fill-color, #F2F3F5);
249
+ border-radius: var(--xto-border-radius-large, 12px);
206
250
  flex-shrink: 0;
207
251
 
208
- span {
209
- font-size: 26px;
252
+ svg {
253
+ width: 24px;
254
+ height: 24px;
210
255
  }
211
256
  }
212
257
 
@@ -217,7 +262,7 @@ const systemInfo = ref([
217
262
 
218
263
  .stat-title {
219
264
  font-size: 14px;
220
- color: var(--xto-color-text-secondary, #6B7280);
265
+ color: var(--xto-color-text-secondary, #86909C);
221
266
  margin-bottom: 8px;
222
267
  }
223
268
 
@@ -226,6 +271,8 @@ const systemInfo = ref([
226
271
  font-weight: 600;
227
272
  line-height: 1.2;
228
273
  margin-bottom: 8px;
274
+ color: var(--xto-color-text-primary, #1F2329);
275
+ font-variant-numeric: tabular-nums;
229
276
  }
230
277
 
231
278
  .stat-trend {
@@ -234,7 +281,7 @@ const systemInfo = ref([
234
281
  gap: 4px;
235
282
  font-size: 12px;
236
283
  padding: 2px 8px;
237
- border-radius: 12px;
284
+ border-radius: var(--xto-border-radius-small, 4px);
238
285
 
239
286
  svg {
240
287
  width: 14px;
@@ -242,26 +289,15 @@ const systemInfo = ref([
242
289
  }
243
290
 
244
291
  &.up {
245
- color: var(--xto-color-success, #10B981);
246
- background: var(--xto-color-success-lighter, #D1FAE5);
292
+ color: var(--xto-color-success, #00A870);
293
+ background: var(--xto-color-success-lighter, #EAFBF3);
247
294
  }
248
295
 
249
296
  &.down {
250
- color: var(--xto-color-danger, #EF4444);
251
- background: var(--xto-color-danger-lighter, #FEE2E2);
297
+ color: var(--xto-color-danger, #F53F3F);
298
+ background: var(--xto-color-danger-lighter, #FEF2F2);
252
299
  }
253
300
  }
254
-
255
- .stat-decoration {
256
- position: absolute;
257
- top: 0;
258
- right: 0;
259
- width: 100px;
260
- height: 100px;
261
- border-radius: 50%;
262
- opacity: 0;
263
- transition: opacity 0.3s ease;
264
- }
265
301
  }
266
302
 
267
303
  // 主体内容
@@ -285,15 +321,15 @@ const systemInfo = ref([
285
321
  h3 {
286
322
  font-size: 16px;
287
323
  font-weight: 600;
288
- color: var(--xto-color-text-primary, #1F2937);
324
+ color: var(--xto-color-text-primary, #1F2329);
289
325
  }
290
326
 
291
327
  .section-badge {
292
328
  font-size: 12px;
293
- color: var(--xto-color-text-placeholder, #9CA3AF);
294
- background: var(--xto-fill-color, #F3F4F6);
329
+ color: var(--xto-color-text-placeholder, #A9AEB8);
330
+ background: var(--xto-fill-color, #F2F3F5);
295
331
  padding: 4px 10px;
296
- border-radius: 12px;
332
+ border-radius: var(--xto-border-radius-small, 4px);
297
333
  }
298
334
 
299
335
  .section-link {
@@ -311,9 +347,9 @@ const systemInfo = ref([
311
347
  // 快捷入口
312
348
  .quick-section {
313
349
  background: var(--xto-bg-color, #FFFFFF);
314
- border-radius: var(--xto-border-radius-large, 8px);
350
+ border-radius: var(--xto-border-radius-large, 12px);
315
351
  padding: 20px;
316
- box-shadow: var(--xto-shadow-subtle, 0 1px 2px 0 rgba(0,0,0,0.05));
352
+ box-shadow: var(--xto-shadow-subtle, 0 1px 2px rgba(31, 35, 41, 0.06));
317
353
  }
318
354
 
319
355
  .quick-grid {
@@ -327,18 +363,16 @@ const systemInfo = ref([
327
363
  align-items: center;
328
364
  gap: 16px;
329
365
  padding: 16px;
330
- background: var(--xto-fill-color-light, #F9FAFB);
331
- border-radius: var(--xto-border-radius-base, 6px);
366
+ background: var(--xto-fill-color-light, #F7F8FA);
367
+ border-radius: var(--xto-border-radius-base, 8px);
332
368
  text-decoration: none;
333
- transition: all 0.2s ease;
369
+ transition: background-color 0.2s ease;
334
370
 
335
371
  &:hover {
336
- background: var(--xto-color-primary-light-6, #C7D2FE);
337
- transform: translateX(4px);
372
+ background: var(--xto-color-primary-light-9, #EDEDFC);
338
373
 
339
374
  .quick-arrow {
340
375
  color: var(--xto-color-primary, #4F46E5);
341
- transform: translateX(4px);
342
376
  }
343
377
  }
344
378
 
@@ -349,9 +383,14 @@ const systemInfo = ref([
349
383
  align-items: center;
350
384
  justify-content: center;
351
385
  background: var(--xto-bg-color, #FFFFFF);
352
- border-radius: var(--xto-border-radius-base, 6px);
353
- font-size: 22px;
386
+ border-radius: var(--xto-border-radius-base, 8px);
387
+ color: var(--xto-color-primary, #4F46E5);
354
388
  flex-shrink: 0;
389
+
390
+ svg {
391
+ width: 20px;
392
+ height: 20px;
393
+ }
355
394
  }
356
395
 
357
396
  .quick-info {
@@ -362,13 +401,13 @@ const systemInfo = ref([
362
401
  .quick-title {
363
402
  font-size: 15px;
364
403
  font-weight: 500;
365
- color: var(--xto-color-text-primary, #1F2937);
404
+ color: var(--xto-color-text-primary, #1F2329);
366
405
  margin-bottom: 4px;
367
406
  }
368
407
 
369
408
  .quick-desc {
370
409
  font-size: 13px;
371
- color: var(--xto-color-text-secondary, #6B7280);
410
+ color: var(--xto-color-text-secondary, #86909C);
372
411
  }
373
412
 
374
413
  .quick-arrow {
@@ -377,8 +416,8 @@ const systemInfo = ref([
377
416
  display: flex;
378
417
  align-items: center;
379
418
  justify-content: center;
380
- color: var(--xto-color-text-placeholder, #9CA3AF);
381
- transition: all 0.2s ease;
419
+ color: var(--xto-color-text-placeholder, #A9AEB8);
420
+ transition: color 0.2s ease;
382
421
 
383
422
  svg {
384
423
  width: 16px;
@@ -390,9 +429,9 @@ const systemInfo = ref([
390
429
  // 最近活动
391
430
  .activity-section {
392
431
  background: var(--xto-bg-color, #FFFFFF);
393
- border-radius: var(--xto-border-radius-large, 8px);
432
+ border-radius: var(--xto-border-radius-large, 12px);
394
433
  padding: 20px;
395
- box-shadow: var(--xto-shadow-subtle, 0 1px 2px 0 rgba(0,0,0,0.05));
434
+ box-shadow: var(--xto-shadow-subtle, 0 1px 2px rgba(31, 35, 41, 0.06));
396
435
  }
397
436
 
398
437
  .activity-list {
@@ -405,8 +444,7 @@ const systemInfo = ref([
405
444
  align-items: flex-start;
406
445
  gap: 12px;
407
446
  padding: 14px 0;
408
- border-bottom: 1px solid var(--xto-border-color-lighter, #F3F4F6);
409
- position: relative;
447
+ border-bottom: 1px solid var(--xto-border-color-lighter, #EDEEF1);
410
448
 
411
449
  &:last-child {
412
450
  border-bottom: none;
@@ -424,11 +462,11 @@ const systemInfo = ref([
424
462
  font-weight: 500;
425
463
  flex-shrink: 0;
426
464
 
427
- &.success { background: var(--xto-color-success-lighter, #D1FAE5); color: var(--xto-color-success, #10B981); }
428
- &.warning { background: var(--xto-color-warning-lighter, #FEF3C7); color: var(--xto-color-warning, #F59E0B); }
429
- &.info { background: var(--xto-color-info-lighter, #E5E7EB); color: var(--xto-color-info, #6B7280); }
430
- &.danger { background: var(--xto-color-danger-lighter, #FEE2E2); color: var(--xto-color-danger, #EF4444); }
431
- &.primary { background: var(--xto-color-primary-light-6, #C7D2FE); color: var(--xto-color-primary, #4F46E5); }
465
+ &.success { background: var(--xto-color-success-lighter, #EAFBF3); color: var(--xto-color-success, #00A870); }
466
+ &.warning { background: var(--xto-color-warning-lighter, #FFF3E8); color: var(--xto-color-warning, #FF7D00); }
467
+ &.info { background: var(--xto-color-info-lighter, #F2F3F5); color: var(--xto-color-info, #86909C); }
468
+ &.danger { background: var(--xto-color-danger-lighter, #FEF2F2); color: var(--xto-color-danger, #F53F3F); }
469
+ &.primary { background: var(--xto-color-primary-light-9, #EDEDFC); color: var(--xto-color-primary, #4F46E5); }
432
470
  }
433
471
 
434
472
  .activity-content {
@@ -443,43 +481,26 @@ const systemInfo = ref([
443
481
  .activity-user {
444
482
  font-size: 14px;
445
483
  font-weight: 500;
446
- color: var(--xto-color-text-primary, #1F2937);
484
+ color: var(--xto-color-text-primary, #1F2329);
447
485
  margin-right: 8px;
448
486
  }
449
487
 
450
488
  .activity-action {
451
489
  font-size: 14px;
452
- color: var(--xto-color-text-secondary, #6B7280);
490
+ color: var(--xto-color-text-secondary, #86909C);
453
491
  }
454
492
 
455
493
  .activity-time {
456
494
  font-size: 12px;
457
- color: var(--xto-color-text-placeholder, #9CA3AF);
458
- }
459
-
460
- .activity-dot {
461
- position: absolute;
462
- left: -20px;
463
- top: 50%;
464
- transform: translateY(-50%);
465
- width: 8px;
466
- height: 8px;
467
- border-radius: 50%;
468
- opacity: 0.6;
469
-
470
- &.success { background: var(--xto-color-success, #10B981); }
471
- &.warning { background: var(--xto-color-warning, #F59E0B); }
472
- &.info { background: var(--xto-color-info, #6B7280); }
473
- &.danger { background: var(--xto-color-danger, #EF4444); }
474
- &.primary { background: var(--xto-color-primary, #4F46E5); }
495
+ color: var(--xto-color-text-placeholder, #A9AEB8);
475
496
  }
476
497
 
477
498
  // 系统信息
478
499
  .system-section {
479
500
  background: var(--xto-bg-color, #FFFFFF);
480
- border-radius: var(--xto-border-radius-large, 8px);
501
+ border-radius: var(--xto-border-radius-large, 12px);
481
502
  padding: 20px;
482
- box-shadow: var(--xto-shadow-subtle, 0 1px 2px 0 rgba(0,0,0,0.05));
503
+ box-shadow: var(--xto-shadow-subtle, 0 1px 2px rgba(31, 35, 41, 0.06));
483
504
  }
484
505
 
485
506
  .system-grid {
@@ -503,18 +524,18 @@ const systemInfo = ref([
503
524
  justify-content: space-between;
504
525
  align-items: center;
505
526
  padding: 12px 16px;
506
- background: var(--xto-fill-color-light, #F9FAFB);
507
- border-radius: var(--xto-border-radius-base, 6px);
527
+ background: var(--xto-fill-color-light, #F7F8FA);
528
+ border-radius: var(--xto-border-radius-base, 8px);
508
529
 
509
530
  .info-label {
510
531
  font-size: 14px;
511
- color: var(--xto-color-text-secondary, #6B7280);
532
+ color: var(--xto-color-text-secondary, #86909C);
512
533
  }
513
534
 
514
535
  .info-value {
515
536
  font-size: 14px;
516
537
  font-weight: 500;
517
- color: var(--xto-color-text-primary, #1F2937);
538
+ color: var(--xto-color-text-primary, #1F2329);
518
539
  }
519
540
  }
520
541
 
@@ -534,13 +555,13 @@ const systemInfo = ref([
534
555
 
535
556
  .status-label {
536
557
  font-size: 14px;
537
- color: var(--xto-color-text-secondary, #6B7280);
558
+ color: var(--xto-color-text-secondary, #86909C);
538
559
  }
539
560
 
540
561
  .status-value {
541
562
  font-size: 14px;
542
563
  font-weight: 500;
543
- color: var(--xto-color-text-primary, #1F2937);
564
+ color: var(--xto-color-text-primary, #1F2329);
544
565
  }
545
566
  }
546
- </style>
567
+ </style>
@@ -33,10 +33,10 @@ const goBack = () => {
33
33
  <svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg">
34
34
  <!-- 盾牌 -->
35
35
  <path d="M100 15 L150 35 L150 70 C150 95 100 110 100 110 C100 110 50 95 50 70 L50 35 Z"
36
- fill="var(--xto-color-warning-light-9, #FFFBEB)" stroke="var(--xto-color-warning, #F59E0B)" stroke-width="2"/>
36
+ fill="var(--xto-color-warning-light-9, #FFF3E8)" stroke="var(--xto-color-warning, #FF7D00)" stroke-width="2"/>
37
37
  <!-- 锁 -->
38
- <rect x="85" y="55" width="30" height="25" rx="4" fill="var(--xto-color-warning, #F59E0B)"/>
39
- <path d="M92 55 V48 A8 8 0 0 1 108 48 V55" fill="none" stroke="var(--xto-color-warning, #F59E0B)" stroke-width="3"/>
38
+ <rect x="85" y="55" width="30" height="25" rx="4" fill="var(--xto-color-warning, #FF7D00)"/>
39
+ <path d="M92 55 V48 A8 8 0 0 1 108 48 V55" fill="none" stroke="var(--xto-color-warning, #FF7D00)" stroke-width="3"/>
40
40
  <!-- 禁止符号 -->
41
41
  <circle cx="100" cy="67" r="6" fill="none" stroke="#fff" stroke-width="2"/>
42
42
  <line x1="96" y1="63" x2="104" y2="71" stroke="#fff" stroke-width="2"/>
@@ -87,7 +87,7 @@ const goBack = () => {
87
87
  display: flex;
88
88
  align-items: center;
89
89
  justify-content: center;
90
- background: var(--xto-bg-color-page, #F9FAFB);
90
+ background: var(--xto-bg-color-page, #F7F8FA);
91
91
  position: relative;
92
92
  overflow: hidden;
93
93
  }
@@ -115,7 +115,7 @@ const goBack = () => {
115
115
  height: 400px;
116
116
  top: -100px;
117
117
  right: -100px;
118
- background: var(--xto-color-warning, #F59E0B);
118
+ background: var(--xto-color-warning, #FF7D00);
119
119
  }
120
120
 
121
121
  &.circle-2 {
@@ -123,7 +123,7 @@ const goBack = () => {
123
123
  height: 300px;
124
124
  bottom: -50px;
125
125
  left: -50px;
126
- background: var(--xto-color-warning, #F59E0B);
126
+ background: var(--xto-color-warning, #FF7D00);
127
127
  }
128
128
 
129
129
  &.circle-3 {
@@ -151,7 +151,7 @@ const goBack = () => {
151
151
  .code-digit {
152
152
  font-size: 80px;
153
153
  font-weight: 700;
154
- color: var(--xto-color-text-primary, #1F2937);
154
+ color: var(--xto-color-text-primary, #1F2329);
155
155
  line-height: 1;
156
156
  }
157
157
 
@@ -162,7 +162,7 @@ const goBack = () => {
162
162
  display: flex;
163
163
  align-items: center;
164
164
  justify-content: center;
165
- background: linear-gradient(135deg, var(--xto-color-warning, #F59E0B) 0%, var(--xto-color-warning-light, #FDE68A) 100%);
165
+ background: linear-gradient(135deg, var(--xto-color-warning, #FF7D00) 0%, var(--xto-color-warning-light, #FDE68A) 100%);
166
166
  border-radius: 50%;
167
167
 
168
168
  .zero-inner {
@@ -182,13 +182,13 @@ const goBack = () => {
182
182
  .error-title {
183
183
  font-size: 24px;
184
184
  font-weight: 600;
185
- color: var(--xto-color-text-primary, #1F2937);
185
+ color: var(--xto-color-text-primary, #1F2329);
186
186
  margin-bottom: 12px;
187
187
  }
188
188
 
189
189
  .error-desc {
190
190
  font-size: 14px;
191
- color: var(--xto-color-text-secondary, #6B7280);
191
+ color: var(--xto-color-text-secondary, #86909C);
192
192
  margin-bottom: 32px;
193
193
  }
194
194
 
@@ -218,7 +218,7 @@ const goBack = () => {
218
218
  p {
219
219
  font-size: 14px;
220
220
  font-weight: 500;
221
- color: var(--xto-color-text-primary, #1F2937);
221
+ color: var(--xto-color-text-primary, #1F2329);
222
222
  margin-bottom: 12px;
223
223
  }
224
224
 
@@ -229,7 +229,7 @@ const goBack = () => {
229
229
 
230
230
  li {
231
231
  font-size: 13px;
232
- color: var(--xto-color-text-secondary, #6B7280);
232
+ color: var(--xto-color-text-secondary, #86909C);
233
233
  padding: 4px 0;
234
234
  position: relative;
235
235
  padding-left: 16px;
@@ -242,7 +242,7 @@ const goBack = () => {
242
242
  transform: translateY(-50%);
243
243
  width: 6px;
244
244
  height: 6px;
245
- background: var(--xto-color-warning, #F59E0B);
245
+ background: var(--xto-color-warning, #FF7D00);
246
246
  border-radius: 50%;
247
247
  opacity: 0.6;
248
248
  }
@@ -32,11 +32,11 @@ const goBack = () => {
32
32
  <div class="error-illustration">
33
33
  <svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg">
34
34
  <!-- 页面图标 -->
35
- <rect x="40" y="20" width="120" height="80" rx="8" fill="var(--xto-fill-color, #F3F4F6)" stroke="var(--xto-border-color, #D1D5DB)" stroke-width="2"/>
35
+ <rect x="40" y="20" width="120" height="80" rx="8" fill="var(--xto-fill-color, #F2F3F5)" stroke="var(--xto-border-color, #D9DCE1)" stroke-width="2"/>
36
36
  <rect x="50" y="30" width="100" height="60" rx="4" fill="var(--xto-bg-color, #FFFFFF)"/>
37
- <line x1="60" y1="45" x2="140" y2="45" stroke="var(--xto-border-color-light, #E5E7EB)" stroke-width="2"/>
38
- <line x1="60" y1="55" x2="120" y2="55" stroke="var(--xto-border-color-light, #E5E7EB)" stroke-width="2"/>
39
- <line x1="60" y1="65" x2="100" y2="65" stroke="var(--xto-border-color-light, #E5E7EB)" stroke-width="2"/>
37
+ <line x1="60" y1="45" x2="140" y2="45" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2"/>
38
+ <line x1="60" y1="55" x2="120" y2="55" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2"/>
39
+ <line x1="60" y1="65" x2="100" y2="65" stroke="var(--xto-border-color-light, #E5E6EB)" stroke-width="2"/>
40
40
  <!-- 问号 -->
41
41
  <text x="100" y="75" text-anchor="middle" fill="var(--xto-color-primary, #4F46E5)" font-size="24" font-weight="600">?</text>
42
42
  <!-- 搜索图标 -->
@@ -89,7 +89,7 @@ const goBack = () => {
89
89
  display: flex;
90
90
  align-items: center;
91
91
  justify-content: center;
92
- background: var(--xto-bg-color-page, #F9FAFB);
92
+ background: var(--xto-bg-color-page, #F7F8FA);
93
93
  position: relative;
94
94
  overflow: hidden;
95
95
  }
@@ -125,7 +125,7 @@ const goBack = () => {
125
125
  height: 300px;
126
126
  bottom: -50px;
127
127
  left: -50px;
128
- background: var(--xto-color-info, #6B7280);
128
+ background: var(--xto-color-info, #86909C);
129
129
  }
130
130
 
131
131
  &.circle-3 {
@@ -134,7 +134,7 @@ const goBack = () => {
134
134
  top: 50%;
135
135
  left: 50%;
136
136
  transform: translate(-50%, -50%);
137
- background: var(--xto-color-primary-light-3, #818CF8);
137
+ background: var(--xto-color-primary-light-3, #847DEC);
138
138
  }
139
139
  }
140
140
  }
@@ -153,7 +153,7 @@ const goBack = () => {
153
153
  .code-digit {
154
154
  font-size: 80px;
155
155
  font-weight: 700;
156
- color: var(--xto-color-text-primary, #1F2937);
156
+ color: var(--xto-color-text-primary, #1F2329);
157
157
  line-height: 1;
158
158
  }
159
159
 
@@ -164,7 +164,7 @@ const goBack = () => {
164
164
  display: flex;
165
165
  align-items: center;
166
166
  justify-content: center;
167
- background: linear-gradient(135deg, var(--xto-color-primary, #4F46E5) 0%, var(--xto-color-primary-light-1, #5B54E8) 100%);
167
+ background: linear-gradient(135deg, var(--xto-color-primary, #4F46E5) 0%, var(--xto-color-primary-light-1, #6158E7) 100%);
168
168
  border-radius: 50%;
169
169
 
170
170
  .zero-inner {
@@ -184,13 +184,13 @@ const goBack = () => {
184
184
  .error-title {
185
185
  font-size: 24px;
186
186
  font-weight: 600;
187
- color: var(--xto-color-text-primary, #1F2937);
187
+ color: var(--xto-color-text-primary, #1F2329);
188
188
  margin-bottom: 12px;
189
189
  }
190
190
 
191
191
  .error-desc {
192
192
  font-size: 14px;
193
- color: var(--xto-color-text-secondary, #6B7280);
193
+ color: var(--xto-color-text-secondary, #86909C);
194
194
  margin-bottom: 32px;
195
195
  }
196
196
 
@@ -214,13 +214,13 @@ const goBack = () => {
214
214
 
215
215
  .error-tip {
216
216
  padding: 20px;
217
- background: var(--xto-fill-color-light, #F9FAFB);
217
+ background: var(--xto-fill-color-light, #F7F8FA);
218
218
  border-radius: var(--xto-border-radius-large, 8px);
219
219
 
220
220
  p {
221
221
  font-size: 14px;
222
222
  font-weight: 500;
223
- color: var(--xto-color-text-primary, #1F2937);
223
+ color: var(--xto-color-text-primary, #1F2329);
224
224
  margin-bottom: 12px;
225
225
  }
226
226
 
@@ -231,7 +231,7 @@ const goBack = () => {
231
231
 
232
232
  li {
233
233
  font-size: 13px;
234
- color: var(--xto-color-text-secondary, #6B7280);
234
+ color: var(--xto-color-text-secondary, #86909C);
235
235
  padding: 4px 0;
236
236
  position: relative;
237
237
  padding-left: 16px;