zant-admin 2.0.0 → 2.0.2

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 (81) hide show
  1. package/README.md +460 -268
  2. package/bin/cli.js +1 -1
  3. package/bin/generator.js +502 -502
  4. package/bin/prompts.js +123 -159
  5. package/bin/utils.js +133 -133
  6. package/package.json +1 -1
  7. package/public/logo.png +0 -0
  8. package/src/App.vue +16 -16
  9. package/src/api/methods/department.js +36 -0
  10. package/src/api/methods/employee.js +22 -0
  11. package/src/api/methods/logError.js +8 -8
  12. package/src/api/methods/logOperation.js +8 -8
  13. package/src/api/methods/login.js +6 -6
  14. package/src/api/methods/position.js +26 -0
  15. package/src/api/methods/quartz.js +36 -36
  16. package/src/api/methods/region.js +16 -16
  17. package/src/api/methods/sysAccount.js +29 -29
  18. package/src/api/methods/sysDict.js +29 -29
  19. package/src/api/methods/sysDictItem.js +26 -26
  20. package/src/api/methods/sysMenu.js +42 -42
  21. package/src/api/methods/sysRole.js +35 -35
  22. package/src/api/methods/sysUser.js +25 -25
  23. package/src/api/methods/system.js +15 -15
  24. package/src/api/request.js +225 -225
  25. package/src/assets/css/style.css +2 -2
  26. package/src/assets/css/zcui.css +1023 -1023
  27. package/src/assets/imgs/logo.png +0 -0
  28. package/src/assets/imgs/md/console.png +0 -0
  29. package/src/assets/imgs/md/login.png +0 -0
  30. package/src/assets/imgs/md/menu.png +0 -0
  31. package/src/assets/imgs/md/serviceMonitoring.png +0 -0
  32. package/src/assets/imgs/md/statistics.png +0 -0
  33. package/src/components/FormTable.vue +5 -19
  34. package/src/components/IconPicker.vue +351 -351
  35. package/src/components/MainPage.vue +838 -838
  36. package/src/components/details/logErrorDetails.vue +58 -58
  37. package/src/components/details/logOperationDetails.vue +76 -76
  38. package/src/components/edit/QuartzEdit.vue +221 -221
  39. package/src/components/edit/SysAccountEdit.vue +185 -185
  40. package/src/components/edit/SysDictEdit.vue +116 -116
  41. package/src/components/edit/SysDictItemEdit.vue +136 -136
  42. package/src/components/edit/SysRoleEdit.vue +111 -111
  43. package/src/components/edit/organizationalStructure/DepartmentEdit.vue +162 -0
  44. package/src/components/edit/organizationalStructure/EmployeeEdit.vue +295 -0
  45. package/src/components/edit/organizationalStructure/PositionEdit.vue +166 -0
  46. package/src/components/edit/sysMenuEdit.vue +2 -1
  47. package/src/config/index.js +74 -74
  48. package/src/directives/permission.js +49 -49
  49. package/src/main.js +37 -37
  50. package/src/stores/config.js +43 -43
  51. package/src/stores/dict.js +33 -33
  52. package/src/stores/menu.js +81 -81
  53. package/src/stores/user.js +21 -21
  54. package/src/utils/baseEcharts.js +661 -661
  55. package/src/utils/dictTemplate.js +26 -26
  56. package/src/utils/regionUtils.js +173 -173
  57. package/src/utils/useFormCRUD.js +59 -59
  58. package/src/views/baiscstatis/center.vue +474 -474
  59. package/src/views/baiscstatis/iframePage.vue +29 -29
  60. package/src/views/baiscstatis/notFound.vue +192 -192
  61. package/src/views/console.vue +821 -821
  62. package/src/views/demo/button.vue +269 -269
  63. package/src/views/demo/importexport.vue +119 -119
  64. package/src/views/demo/region.vue +322 -322
  65. package/src/views/demo/statistics.vue +214 -214
  66. package/src/views/home.vue +6 -6
  67. package/src/views/login.vue +12 -2
  68. package/src/views/operations/log/logError.vue +78 -78
  69. package/src/views/operations/log/logLogin.vue +66 -66
  70. package/src/views/operations/log/logOperation.vue +103 -103
  71. package/src/views/operations/log/logQuartz.vue +56 -56
  72. package/src/views/operations/quartz.vue +179 -179
  73. package/src/views/operations/serviceMonitoring.vue +134 -134
  74. package/src/views/organizationalStructure/department.vue +194 -0
  75. package/src/views/organizationalStructure/employee.vue +234 -0
  76. package/src/views/organizationalStructure/position.vue +196 -0
  77. package/src/views/system/sysAccount.vue +128 -128
  78. package/src/views/system/sysDict.vue +159 -159
  79. package/src/views/system/sysDictItem.vue +118 -118
  80. package/src/views/system/sysMenu.vue +225 -225
  81. package/src/views/system/sysRole.vue +207 -207
@@ -1,29 +1,29 @@
1
- <template>
2
- <iframe
3
- ref="iframeRef"
4
- :src="iframeUrl"
5
- frameborder="0"
6
- style="width: 100%; height: 100%"
7
- ></iframe>
8
- </template>
9
-
10
- <script setup>
11
- import { ref, onMounted, watch } from 'vue'
12
- import { useRoute } from 'vue-router'
13
-
14
- const route = useRoute()
15
- const iframeUrl = ref('')
16
-
17
- onMounted(() => {
18
- console.log('iframeUrl', route.query.url)
19
- iframeUrl.value = decodeURIComponent(route.query.url || '')
20
- })
21
-
22
- // 监听路由变化,点击不同内链菜单时更新 iframe
23
- watch(
24
- () => route.query.url,
25
- newUrl => {
26
- iframeUrl.value = decodeURIComponent(newUrl || '')
27
- },
28
- )
29
- </script>
1
+ <template>
2
+ <iframe
3
+ ref="iframeRef"
4
+ :src="iframeUrl"
5
+ frameborder="0"
6
+ style="width: 100%; height: 100%"
7
+ ></iframe>
8
+ </template>
9
+
10
+ <script setup>
11
+ import { ref, onMounted, watch } from 'vue'
12
+ import { useRoute } from 'vue-router'
13
+
14
+ const route = useRoute()
15
+ const iframeUrl = ref('')
16
+
17
+ onMounted(() => {
18
+ console.log('iframeUrl', route.query.url)
19
+ iframeUrl.value = decodeURIComponent(route.query.url || '')
20
+ })
21
+
22
+ // 监听路由变化,点击不同内链菜单时更新 iframe
23
+ watch(
24
+ () => route.query.url,
25
+ newUrl => {
26
+ iframeUrl.value = decodeURIComponent(newUrl || '')
27
+ },
28
+ )
29
+ </script>
@@ -1,192 +1,192 @@
1
- <template>
2
- <div class="not-found-container">
3
- <div class="content-wrapper">
4
- <div class="error-code">404</div>
5
- <div class="error-message">页面未找到</div>
6
- <div class="error-description">抱歉,您访问的页面不存在或已被移除</div>
7
-
8
- <div class="action-buttons">
9
- <a-button type="primary" size="large" @click="goHome">
10
- <template #icon>
11
- <HomeOutlined />
12
- </template>
13
- 返回首页
14
- </a-button>
15
- <a-button size="large" @click="goBack">
16
- <template #icon>
17
- <ArrowLeftOutlined />
18
- </template>
19
- 返回上页
20
- </a-button>
21
- </div>
22
- </div>
23
-
24
- <div class="background-decoration">
25
- <div class="circle circle-1"></div>
26
- <div class="circle circle-2"></div>
27
- <div class="circle circle-3"></div>
28
- </div>
29
- </div>
30
- </template>
31
-
32
- <script setup>
33
- import { useRouter } from 'vue-router'
34
- import { HomeOutlined, ArrowLeftOutlined } from '@ant-design/icons-vue'
35
-
36
- // 获取路由实例
37
- const router = useRouter()
38
-
39
- /**
40
- * 返回首页
41
- */
42
- const goHome = () => {
43
- router.push('/')
44
- }
45
-
46
- /**
47
- * 返回上一页
48
- */
49
- const goBack = () => {
50
- router.go(-1)
51
- }
52
- </script>
53
-
54
- <style scoped>
55
- .not-found-container {
56
- position: relative;
57
- height: 100%;
58
- display: flex;
59
- align-items: center;
60
- justify-content: center;
61
- background-color: #ffffff;
62
- overflow: hidden;
63
- }
64
-
65
- .content-wrapper {
66
- text-align: center;
67
- z-index: 2;
68
- padding: 20px;
69
- max-width: 600px;
70
- }
71
-
72
- .error-code {
73
- font-size: 120px;
74
- font-weight: bold;
75
- color: #1890ff;
76
- text-shadow: 4px 4px 0 rgba(24, 144, 255, 0.2);
77
- margin-bottom: 20px;
78
- animation: pulse 2s infinite;
79
- }
80
-
81
- .error-message {
82
- font-size: 32px;
83
- font-weight: 500;
84
- color: #333;
85
- margin-bottom: 16px;
86
- }
87
-
88
- .error-description {
89
- font-size: 16px;
90
- color: #666;
91
- margin-bottom: 40px;
92
- line-height: 1.6;
93
- }
94
-
95
- .action-buttons {
96
- display: flex;
97
- justify-content: center;
98
- gap: 16px;
99
- flex-wrap: wrap;
100
- }
101
-
102
- .background-decoration {
103
- position: absolute;
104
- top: 0;
105
- left: 0;
106
- width: 100%;
107
- height: 100%;
108
- z-index: 1;
109
- overflow: hidden;
110
- }
111
-
112
- .circle {
113
- position: absolute;
114
- border-radius: 50%;
115
- opacity: 0.1;
116
- }
117
-
118
- .circle-1 {
119
- width: 300px;
120
- height: 300px;
121
- background-color: #1890ff;
122
- top: -100px;
123
- right: -100px;
124
- animation: float 8s infinite ease-in-out;
125
- }
126
-
127
- .circle-2 {
128
- width: 200px;
129
- height: 200px;
130
- background-color: #52c41a;
131
- bottom: -50px;
132
- left: -50px;
133
- animation: float 6s infinite ease-in-out reverse;
134
- }
135
-
136
- .circle-3 {
137
- width: 150px;
138
- height: 150px;
139
- background-color: #fa8c16;
140
- top: 50%;
141
- left: 10%;
142
- animation: float 7s infinite ease-in-out;
143
- }
144
-
145
- @keyframes pulse {
146
- 0% {
147
- transform: scale(1);
148
- }
149
- 50% {
150
- transform: scale(1.05);
151
- }
152
- 100% {
153
- transform: scale(1);
154
- }
155
- }
156
-
157
- @keyframes float {
158
- 0% {
159
- transform: translateY(0) rotate(0deg);
160
- }
161
- 50% {
162
- transform: translateY(-20px) rotate(5deg);
163
- }
164
- 100% {
165
- transform: translateY(0) rotate(0deg);
166
- }
167
- }
168
-
169
- /* 响应式设计 */
170
- @media (max-width: 768px) {
171
- .error-code {
172
- font-size: 80px;
173
- }
174
-
175
- .error-message {
176
- font-size: 24px;
177
- }
178
-
179
- .error-description {
180
- font-size: 14px;
181
- }
182
-
183
- .action-buttons {
184
- flex-direction: column;
185
- align-items: center;
186
- }
187
-
188
- .action-buttons .ant-btn {
189
- width: 200px;
190
- }
191
- }
192
- </style>
1
+ <template>
2
+ <div class="not-found-container">
3
+ <div class="content-wrapper">
4
+ <div class="error-code">404</div>
5
+ <div class="error-message">页面未找到</div>
6
+ <div class="error-description">抱歉,您访问的页面不存在或已被移除</div>
7
+
8
+ <div class="action-buttons">
9
+ <a-button type="primary" size="large" @click="goHome">
10
+ <template #icon>
11
+ <HomeOutlined />
12
+ </template>
13
+ 返回首页
14
+ </a-button>
15
+ <a-button size="large" @click="goBack">
16
+ <template #icon>
17
+ <ArrowLeftOutlined />
18
+ </template>
19
+ 返回上页
20
+ </a-button>
21
+ </div>
22
+ </div>
23
+
24
+ <div class="background-decoration">
25
+ <div class="circle circle-1"></div>
26
+ <div class="circle circle-2"></div>
27
+ <div class="circle circle-3"></div>
28
+ </div>
29
+ </div>
30
+ </template>
31
+
32
+ <script setup>
33
+ import { useRouter } from 'vue-router'
34
+ import { HomeOutlined, ArrowLeftOutlined } from '@ant-design/icons-vue'
35
+
36
+ // 获取路由实例
37
+ const router = useRouter()
38
+
39
+ /**
40
+ * 返回首页
41
+ */
42
+ const goHome = () => {
43
+ router.push('/')
44
+ }
45
+
46
+ /**
47
+ * 返回上一页
48
+ */
49
+ const goBack = () => {
50
+ router.go(-1)
51
+ }
52
+ </script>
53
+
54
+ <style scoped>
55
+ .not-found-container {
56
+ position: relative;
57
+ height: 100%;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ background-color: #ffffff;
62
+ overflow: hidden;
63
+ }
64
+
65
+ .content-wrapper {
66
+ text-align: center;
67
+ z-index: 2;
68
+ padding: 20px;
69
+ max-width: 600px;
70
+ }
71
+
72
+ .error-code {
73
+ font-size: 120px;
74
+ font-weight: bold;
75
+ color: #1890ff;
76
+ text-shadow: 4px 4px 0 rgba(24, 144, 255, 0.2);
77
+ margin-bottom: 20px;
78
+ animation: pulse 2s infinite;
79
+ }
80
+
81
+ .error-message {
82
+ font-size: 32px;
83
+ font-weight: 500;
84
+ color: #333;
85
+ margin-bottom: 16px;
86
+ }
87
+
88
+ .error-description {
89
+ font-size: 16px;
90
+ color: #666;
91
+ margin-bottom: 40px;
92
+ line-height: 1.6;
93
+ }
94
+
95
+ .action-buttons {
96
+ display: flex;
97
+ justify-content: center;
98
+ gap: 16px;
99
+ flex-wrap: wrap;
100
+ }
101
+
102
+ .background-decoration {
103
+ position: absolute;
104
+ top: 0;
105
+ left: 0;
106
+ width: 100%;
107
+ height: 100%;
108
+ z-index: 1;
109
+ overflow: hidden;
110
+ }
111
+
112
+ .circle {
113
+ position: absolute;
114
+ border-radius: 50%;
115
+ opacity: 0.1;
116
+ }
117
+
118
+ .circle-1 {
119
+ width: 300px;
120
+ height: 300px;
121
+ background-color: #1890ff;
122
+ top: -100px;
123
+ right: -100px;
124
+ animation: float 8s infinite ease-in-out;
125
+ }
126
+
127
+ .circle-2 {
128
+ width: 200px;
129
+ height: 200px;
130
+ background-color: #52c41a;
131
+ bottom: -50px;
132
+ left: -50px;
133
+ animation: float 6s infinite ease-in-out reverse;
134
+ }
135
+
136
+ .circle-3 {
137
+ width: 150px;
138
+ height: 150px;
139
+ background-color: #fa8c16;
140
+ top: 50%;
141
+ left: 10%;
142
+ animation: float 7s infinite ease-in-out;
143
+ }
144
+
145
+ @keyframes pulse {
146
+ 0% {
147
+ transform: scale(1);
148
+ }
149
+ 50% {
150
+ transform: scale(1.05);
151
+ }
152
+ 100% {
153
+ transform: scale(1);
154
+ }
155
+ }
156
+
157
+ @keyframes float {
158
+ 0% {
159
+ transform: translateY(0) rotate(0deg);
160
+ }
161
+ 50% {
162
+ transform: translateY(-20px) rotate(5deg);
163
+ }
164
+ 100% {
165
+ transform: translateY(0) rotate(0deg);
166
+ }
167
+ }
168
+
169
+ /* 响应式设计 */
170
+ @media (max-width: 768px) {
171
+ .error-code {
172
+ font-size: 80px;
173
+ }
174
+
175
+ .error-message {
176
+ font-size: 24px;
177
+ }
178
+
179
+ .error-description {
180
+ font-size: 14px;
181
+ }
182
+
183
+ .action-buttons {
184
+ flex-direction: column;
185
+ align-items: center;
186
+ }
187
+
188
+ .action-buttons .ant-btn {
189
+ width: 200px;
190
+ }
191
+ }
192
+ </style>