xto-fronted 0.4.72 → 0.4.73

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 (96) hide show
  1. package/dist/assets/404-CrBiLyvr.js +1 -0
  2. package/dist/assets/404-Cw_4ZCL6.css +1 -0
  3. package/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  4. package/dist/assets/index-9XqWtCGs.js +1 -0
  5. package/dist/assets/index-BBGKF0l-.js +1 -0
  6. package/dist/assets/index-BRR97dc6.js +1 -0
  7. package/dist/assets/index-BlRslYYI.css +1 -0
  8. package/dist/assets/index-BudArKxR.css +1 -0
  9. package/dist/assets/index-CFhWBbxk.css +1 -0
  10. package/dist/assets/index-CRJFI4iz.js +2 -0
  11. package/dist/assets/index-CmknWHK0.js +1 -0
  12. package/dist/assets/index-D7epoF1g.js +1 -0
  13. package/dist/assets/index-D9XBi20Y.css +1 -0
  14. package/dist/assets/index-DkkuYBgT.css +1 -0
  15. package/dist/assets/index-O9wpAB3Q.js +1 -0
  16. package/dist/assets/index-_aYxnqzF.css +1 -0
  17. package/dist/assets/index-rfC7s9zA.js +1 -0
  18. package/dist/assets/index-vfvEFrCH.css +1 -0
  19. package/dist/assets/vendor-42ANG6Sg.js +6 -0
  20. package/dist/assets/vue-vendor-D8SAgT8u.js +29 -0
  21. package/dist/assets/xto-base-BD3OH0V6.js +1 -0
  22. package/dist/assets/xto-base-CojW9IFO.css +1 -0
  23. package/dist/assets/xto-business--V1F5Gwb.css +1 -0
  24. package/dist/assets/xto-core-Boim7B0B.js +1 -0
  25. package/dist/assets/xto-data-CnAQAQH2.css +1 -0
  26. package/dist/assets/xto-data-DuG2QJrr.js +1 -0
  27. package/dist/assets/xto-feedback-C-ESp-Y1.css +1 -0
  28. package/dist/assets/xto-feedback-XZPSQcJN.js +1 -0
  29. package/dist/assets/xto-form-BmTGLIm_.js +1 -0
  30. package/dist/assets/xto-form-CrsyAjyr.css +1 -0
  31. package/dist/assets/xto-layout-D1stVnJI.css +1 -0
  32. package/dist/assets/xto-navigation-BRzSCpAw.css +1 -0
  33. package/dist/assets/xto-navigation-nPmjRi-J.js +1 -0
  34. package/dist/index.html +28 -0
  35. package/package.json +1 -1
  36. package/src/App.vue +30 -1
  37. package/src/assets/styles/_root.scss +141 -97
  38. package/src/assets/styles/_variables.scss +44 -19
  39. package/src/assets/styles/index.scss +267 -42
  40. package/src/views/dashboard/index.vue +417 -155
  41. package/src/views/error/403.vue +251 -56
  42. package/src/views/error/404.vue +253 -56
  43. package/src/views/login/index.vue +586 -194
  44. package/src/views/system/menu/index.vue +403 -94
  45. package/src/views/system/role/index.vue +348 -69
  46. package/src/views/system/user/index.vue +402 -73
  47. package/dist/App.vue.d.ts +0 -2
  48. package/dist/api/auth.d.ts +0 -8
  49. package/dist/api/system.d.ts +0 -16
  50. package/dist/api/user.d.ts +0 -13
  51. package/dist/components/Layout/Footer.vue.d.ts +0 -2
  52. package/dist/components/Layout/Header.vue.d.ts +0 -5
  53. package/dist/components/Layout/MixTopMenu.vue.d.ts +0 -5
  54. package/dist/components/Layout/Sidebar.vue.d.ts +0 -11
  55. package/dist/components/Layout/SidebarMenuItem.vue.d.ts +0 -5
  56. package/dist/components/Layout/Tabs.vue.d.ts +0 -2
  57. package/dist/components/Layout/TopMenu.vue.d.ts +0 -5
  58. package/dist/components/Layout/index.vue.d.ts +0 -2
  59. package/dist/composables/useApp.d.ts +0 -29
  60. package/dist/composables/useAuth.d.ts +0 -6
  61. package/dist/composables/useForm.d.ts +0 -20
  62. package/dist/composables/useTable.d.ts +0 -29
  63. package/dist/directives/permission.d.ts +0 -4
  64. package/dist/enums/index.d.ts +0 -32
  65. package/dist/index-48G2-eqi.js +0 -475
  66. package/dist/index-BhtcPIRK.js +0 -3169
  67. package/dist/index-CZKP8fOP.js +0 -372
  68. package/dist/index-JouxgO84.js +0 -142
  69. package/dist/index-qlKXxfT9.js +0 -345
  70. package/dist/index.d.ts +0 -54
  71. package/dist/index.es.js +0 -91
  72. package/dist/index.umd.js +0 -1
  73. package/dist/main.d.ts +0 -0
  74. package/dist/router/dynamicRoutes.d.ts +0 -30
  75. package/dist/router/guards.d.ts +0 -17
  76. package/dist/router/index.d.ts +0 -6
  77. package/dist/router/layoutRoute.d.ts +0 -18
  78. package/dist/router/staticRoutes.d.ts +0 -2
  79. package/dist/stores/app.d.ts +0 -93
  80. package/dist/stores/auth.d.ts +0 -41
  81. package/dist/stores/index.d.ts +0 -9
  82. package/dist/stores/menu.d.ts +0 -77
  83. package/dist/stores/user.d.ts +0 -92
  84. package/dist/style.css +0 -1
  85. package/dist/utils/auth.d.ts +0 -27
  86. package/dist/utils/config.d.ts +0 -30
  87. package/dist/utils/permission.d.ts +0 -18
  88. package/dist/utils/request.d.ts +0 -24
  89. package/dist/utils/storage.d.ts +0 -24
  90. package/dist/views/dashboard/index.vue.d.ts +0 -2
  91. package/dist/views/error/403.vue.d.ts +0 -2
  92. package/dist/views/error/404.vue.d.ts +0 -2
  93. package/dist/views/login/index.vue.d.ts +0 -4
  94. package/dist/views/system/menu/index.vue.d.ts +0 -4
  95. package/dist/views/system/role/index.vue.d.ts +0 -4
  96. package/dist/views/system/user/index.vue.d.ts +0 -4
@@ -1,99 +1,126 @@
1
1
  // ==============================================
2
- // CSS Variables - 主题变量
2
+ // CSS Variables - 企业级配色方案
3
+ // 参考:阿里 Ant Design Pro、腾讯云控制台
3
4
  // ==============================================
4
5
 
5
6
  :root {
6
- // 主题色
7
- --color-primary: #409eff;
8
- --color-primary-light-3: #79bbff;
9
- --color-primary-light-5: #a0cfff;
10
- --color-primary-light-7: #c6e2ff;
11
- --color-primary-light-8: #d9ecff;
12
- --color-primary-light-9: #ecf5ff;
13
- --color-primary-dark-2: #337ecc;
14
-
15
- // 功能色
16
- --color-success: #67c23a;
17
- --color-success-light: #e1f3d8;
18
- --color-success-dark: #529b2e;
19
-
20
- --color-warning: #e6a23c;
21
- --color-warning-light: #fdf6ec;
22
- --color-warning-dark: #b88230;
23
-
24
- --color-danger: #f56c6c;
25
- --color-danger-light: #fde2e2;
26
- --color-danger-dark: #c45656;
27
-
28
- --color-info: #909399;
29
- --color-info-light: #f4f4f5;
30
- --color-info-dark: #73767a;
31
-
32
- // 文字颜色
33
- --color-text-primary: #303133;
34
- --color-text-regular: #606266;
35
- --color-text-secondary: #909399;
36
- --color-text-placeholder: #a8abb2;
37
- --color-text-disabled: #c0c4cc;
38
-
39
- // 边框颜色
40
- --color-border: #dcdfe6;
41
- --color-border-light: #e4e7ed;
42
- --color-border-lighter: #ebeef5;
43
- --color-border-extra-light: #f2f6fc;
44
- --color-border-dark: #d4d7de;
45
-
46
- // 填充颜色
47
- --color-fill: #f5f7fa;
7
+ // 主色调 - 科技蓝系(深邃、专业)
8
+ --color-primary: #1677ff;
9
+ --color-primary-light-1: #4096ff;
10
+ --color-primary-light-2: #69b1ff;
11
+ --color-primary-light-3: #91caff;
12
+ --color-primary-light-4: #bae0ff;
13
+ --color-primary-light-5: #e6f4ff;
14
+ --color-primary-light-6: #f0f8ff;
15
+ --color-primary-dark-1: #0958d9;
16
+ --color-primary-dark-2: #003eb3;
17
+ --color-primary-dark-3: #002c8c;
18
+
19
+ // 功能色 - 精致调和
20
+ --color-success: #52c41a;
21
+ --color-success-light: #b7eb8f;
22
+ --color-success-lighter: #f6ffed;
23
+ --color-success-dark: #389e0d;
24
+
25
+ --color-warning: #faad14;
26
+ --color-warning-light: #ffe58f;
27
+ --color-warning-lighter: #fffbe6;
28
+ --color-warning-dark: #d48806;
29
+
30
+ --color-danger: #ff4d4f;
31
+ --color-danger-light: #ffa39e;
32
+ --color-danger-lighter: #fff2f0;
33
+ --color-danger-dark: #cf1322;
34
+
35
+ --color-info: #1677ff;
36
+ --color-info-light: #91caff;
37
+ --color-info-lighter: #e6f4ff;
38
+ --color-info-dark: #0958d9;
39
+
40
+ // 文字颜色 - 层次分明
41
+ --color-text-primary: #1f1f1f;
42
+ --color-text-regular: #424242;
43
+ --color-text-secondary: #757575;
44
+ --color-text-placeholder: #9e9e9e;
45
+ --color-text-disabled: #bdbdbd;
46
+
47
+ // 边框颜色 - 克制淡雅
48
+ --color-border: #d9d9d9;
49
+ --color-border-light: #e8e8e8;
50
+ --color-border-lighter: #f0f0f0;
51
+ --color-border-extra-light: #f5f5f5;
52
+ --color-border-dark: #bfbfbf;
53
+
54
+ // 填充颜色 - 背景层次
55
+ --color-fill: #f5f5f5;
48
56
  --color-fill-light: #fafafa;
49
- --color-fill-lighter: #fafcff;
57
+ --color-fill-lighter: #ffffff;
50
58
  --color-fill-blank: #ffffff;
59
+ --color-fill-dark: #e8e8e8;
51
60
 
52
- // 背景颜色
61
+ // 背景颜色 - 页面层级
53
62
  --bg-color: #ffffff;
54
- --bg-color-page: #f2f3f5;
63
+ --bg-color-page: #f0f2f5;
64
+ --bg-color-component: #ffffff;
55
65
  --bg-color-overlay: #ffffff;
56
-
57
- // 盒子阴影
58
- --box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
59
- --box-shadow-light: 0 2px 8px 0 rgba(0, 0, 0, 0.06);
60
- --box-shadow-lighter: 0 1px 4px 0 rgba(0, 0, 0, 0.04);
61
- --box-shadow-dark: 0 4px 16px 0 rgba(0, 0, 0, 0.12);
62
-
63
- // 字体
64
- --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
65
- 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
66
- 'Noto Color Emoji';
66
+ --bg-color-spotlight: #e6f4ff;
67
+
68
+ // 盒子阴影 - 精致层次
69
+ --box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
70
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
71
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
72
+ --box-shadow-light: 0 1px 2px 0 rgba(0, 0, 0, 0.03),
73
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02),
74
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02);
75
+ --box-shadow-lighter: 0 1px 4px rgba(0, 0, 0, 0.04);
76
+ --box-shadow-dark: 0 6px 16px -8px rgba(0, 0, 0, 0.08),
77
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05),
78
+ 0 12px 48px 16px rgba(0, 0, 0, 0.03);
79
+ --box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.1);
80
+ --box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.12);
81
+
82
+ // 字体 - 企业级字体栈
83
+ --font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
84
+ 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
85
+ --font-family-code: 'IBM Plex Mono', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono',
86
+ Consolas, 'Courier New', monospace;
67
87
  --font-size-base: 14px;
68
88
  --font-size-small: 12px;
69
89
  --font-size-large: 16px;
70
- --font-size-extra-large: 18px;
71
-
72
- // 圆角
73
- --border-radius-base: 4px;
74
- --border-radius-small: 2px;
90
+ --font-size-extra-large: 20px;
91
+ --font-size-title: 24px;
92
+ --font-size-hero: 38px;
93
+ --font-line-height: 1.5714285714285714;
94
+
95
+ // 圆角 - 精致圆润
96
+ --border-radius-base: 6px;
97
+ --border-radius-small: 4px;
75
98
  --border-radius-large: 8px;
76
- --border-radius-round: 20px;
99
+ --border-radius-extra-large: 12px;
100
+ --border-radius-round: 24px;
77
101
  --border-radius-circle: 50%;
78
102
 
79
- // 间距
103
+ // 间距 - 8px 基础网格
80
104
  --spacing-xs: 4px;
81
105
  --spacing-sm: 8px;
82
106
  --spacing-md: 16px;
83
107
  --spacing-lg: 24px;
84
108
  --spacing-xl: 32px;
109
+ --spacing-xxl: 48px;
85
110
 
86
- // 尺寸
111
+ // 尺寸 - 组件规格
87
112
  --component-size-large: 40px;
88
113
  --component-size-default: 32px;
89
114
  --component-size-small: 24px;
90
115
 
91
- // 过渡时间
92
- --transition-duration: 0.3s;
93
- --transition-duration-fast: 0.2s;
94
- --transition-duration-slow: 0.5s;
116
+ // 过渡 - 流畅动效
117
+ --transition-duration: 0.2s;
118
+ --transition-duration-fast: 0.1s;
119
+ --transition-duration-slow: 0.3s;
120
+ --transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
121
+ --transition-easing-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
95
122
 
96
- // z-index
123
+ // z-index - 层级管理
97
124
  --z-index-dropdown: 1000;
98
125
  --z-index-sticky: 1020;
99
126
  --z-index-fixed: 1030;
@@ -102,39 +129,56 @@
102
129
  --z-index-popover: 1060;
103
130
  --z-index-tooltip: 1070;
104
131
 
105
- // 布局
106
- --sidebar-width: 210px;
132
+ // 布局 - 精确尺寸
133
+ --sidebar-width: 220px;
107
134
  --sidebar-collapsed-width: 64px;
108
- --header-height: 50px;
135
+ --header-height: 56px;
109
136
  --tabs-height: 40px;
110
- --footer-height: 30px;
137
+ --footer-height: 32px;
138
+
139
+ // 特殊效果
140
+ --gradient-primary: linear-gradient(135deg, #1677ff 0%, #4096ff 100%);
141
+ --gradient-hero: linear-gradient(135deg, #002c8c 0%, #1677ff 50%, #4096ff 100%);
142
+ --gradient-card: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 100%);
143
+ --gradient-mask: linear-gradient(180deg, rgba(0, 44, 140, 0.03) 0%, rgba(0, 0, 0, 0) 100%);
111
144
  }
112
145
 
113
- // 暗色主题
146
+ // 暗色主题 - 深邃科技感
114
147
  .dark {
115
- --color-text-primary: #e5eaf3;
116
- --color-text-regular: #cfd3dc;
117
- --color-text-secondary: #a3a6ad;
118
- --color-text-placeholder: #8d9095;
119
- --color-text-disabled: #6c6e72;
120
-
121
- --color-border: #4c4d4f;
122
- --color-border-light: #414243;
123
- --color-border-lighter: #363637;
124
- --color-border-extra-light: #2b2b2c;
125
- --color-border-dark: #58585b;
126
-
127
- --color-fill: #303030;
128
- --color-fill-light: #262727;
129
- --color-fill-lighter: #1d1d1d;
148
+ --color-text-primary: #ffffff;
149
+ --color-text-regular: #e0e0e0;
150
+ --color-text-secondary: #a6a6a6;
151
+ --color-text-placeholder: #737373;
152
+ --color-text-disabled: #5c5c5c;
153
+
154
+ --color-border: #434343;
155
+ --color-border-light: #363636;
156
+ --color-border-lighter: #2a2a2a;
157
+ --color-border-extra-light: #1f1f1f;
158
+ --color-border-dark: #5c5c5c;
159
+
160
+ --color-fill: #262626;
161
+ --color-fill-light: #1f1f1f;
162
+ --color-fill-lighter: #141414;
130
163
  --color-fill-blank: #141414;
164
+ --color-fill-dark: #363636;
131
165
 
132
- --bg-color: #1d1e1f;
166
+ --bg-color: #141414;
133
167
  --bg-color-page: #0a0a0a;
134
- --bg-color-overlay: #1d1e1f;
135
-
136
- --box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.3);
137
- --box-shadow-light: 0 2px 8px 0 rgba(0, 0, 0, 0.24);
138
- --box-shadow-lighter: 0 1px 4px 0 rgba(0, 0, 0, 0.2);
139
- --box-shadow-dark: 0 4px 16px 0 rgba(0, 0, 0, 0.36);
168
+ --bg-color-component: #1f1f1f;
169
+ --bg-color-overlay: #1f1f1f;
170
+ --bg-color-spotlight: #111d2c;
171
+
172
+ --box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.32),
173
+ 0 3px 6px -4px rgba(0, 0, 0, 0.48),
174
+ 0 9px 28px 8px rgba(0, 0, 0, 0.2);
175
+ --box-shadow-light: 0 1px 2px 0 rgba(0, 0, 0, 0.16),
176
+ 0 1px 6px -1px rgba(0, 0, 0, 0.12),
177
+ 0 2px 4px 0 rgba(0, 0, 0, 0.08);
178
+ --box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.32);
179
+ --box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.48);
180
+
181
+ --gradient-primary: linear-gradient(135deg, #1677ff 0%, #4096ff 100%);
182
+ --gradient-hero: linear-gradient(135deg, #002c8c 0%, #0958d9 50%, #1677ff 100%);
183
+ --gradient-card: linear-gradient(180deg, rgba(20, 20, 20, 0) 0%, rgba(20, 20, 20, 0.8) 100%);
140
184
  }
@@ -2,44 +2,69 @@
2
2
  // SCSS Variables - 用于样式计算
3
3
  // ==============================================
4
4
 
5
- // 主题色
6
- $color-primary: #409eff;
7
- $color-success: #67c23a;
8
- $color-warning: #e6a23c;
9
- $color-danger: #f56c6c;
10
- $color-info: #909399;
5
+ // 主题色 - 科技蓝
6
+ $color-primary: #1677ff;
7
+ $color-primary-light: #4096ff;
8
+ $color-primary-lighter: #91caff;
9
+ $color-primary-dark: #0958d9;
10
+ $color-primary-darker: #003eb3;
11
+
12
+ // 功能色
13
+ $color-success: #52c41a;
14
+ $color-warning: #faad14;
15
+ $color-danger: #ff4d4f;
16
+ $color-info: #1677ff;
11
17
 
12
18
  // 文字颜色
13
- $color-text-primary: #303133;
14
- $color-text-regular: #606266;
15
- $color-text-secondary: #909399;
19
+ $color-text-primary: #1f1f1f;
20
+ $color-text-regular: #424242;
21
+ $color-text-secondary: #757575;
22
+ $color-text-placeholder: #9e9e9e;
16
23
 
17
24
  // 边框颜色
18
- $color-border: #dcdfe6;
19
- $color-border-light: #e4e7ed;
20
- $color-border-lighter: #ebeef5;
25
+ $color-border: #d9d9d9;
26
+ $color-border-light: #e8e8e8;
27
+ $color-border-lighter: #f0f0f0;
21
28
 
22
29
  // 背景颜色
23
30
  $bg-color: #ffffff;
24
- $bg-color-page: #f2f3f5;
31
+ $bg-color-page: #f0f2f5;
32
+ $bg-color-component: #ffffff;
25
33
 
26
34
  // 字体
35
+ $font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
36
+ $font-family-code: 'IBM Plex Mono', 'SF Mono', Monaco, Consolas, monospace;
27
37
  $font-size-base: 14px;
28
38
  $font-size-small: 12px;
39
+ $font-size-large: 16px;
40
+ $font-size-extra-large: 20px;
29
41
 
30
42
  // 圆角
31
- $border-radius-base: 4px;
43
+ $border-radius-base: 6px;
44
+ $border-radius-small: 4px;
32
45
  $border-radius-large: 8px;
46
+ $border-radius-extra-large: 12px;
47
+ $border-radius-round: 24px;
33
48
 
34
- // 间距
49
+ // 间距 - 8px 网格系统
35
50
  $spacing-xs: 4px;
36
51
  $spacing-sm: 8px;
37
52
  $spacing-md: 16px;
38
53
  $spacing-lg: 24px;
54
+ $spacing-xl: 32px;
55
+ $spacing-xxl: 48px;
39
56
 
40
- // 布局
41
- $sidebar-width: 210px;
57
+ // 布局尺寸
58
+ $sidebar-width: 220px;
42
59
  $sidebar-collapsed-width: 64px;
43
- $header-height: 50px;
60
+ $header-height: 56px;
44
61
  $tabs-height: 40px;
45
- $footer-height: 30px;
62
+ $footer-height: 32px;
63
+
64
+ // 过渡
65
+ $transition-duration: 0.2s;
66
+ $transition-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
67
+
68
+ // 阴影
69
+ $box-shadow-card: 0 1px 10px -6px rgba(0, 0, 0, 0.1);
70
+ $box-shadow-card-hover: 0 6px 16px -8px rgba(0, 0, 0, 0.12);