zant-admin 1.0.4 → 2.0.1

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 (94) hide show
  1. package/README.en.md +414 -25
  2. package/README.md +460 -285
  3. package/bin/cli.js +3 -3
  4. package/bin/generator.js +502 -502
  5. package/bin/prompts.js +158 -158
  6. package/bin/utils.js +133 -133
  7. package/package.json +2 -2
  8. package/public/logo.png +0 -0
  9. package/src/App.vue +16 -16
  10. package/src/api/methods/department.js +36 -0
  11. package/src/api/methods/employee.js +22 -0
  12. package/src/api/methods/logError.js +8 -8
  13. package/src/api/methods/logOperation.js +8 -8
  14. package/src/api/methods/login.js +6 -6
  15. package/src/api/methods/position.js +26 -0
  16. package/src/api/methods/quartz.js +36 -36
  17. package/src/api/methods/region.js +16 -16
  18. package/src/api/methods/sysAccount.js +29 -29
  19. package/src/api/methods/sysDict.js +29 -29
  20. package/src/api/methods/sysDictItem.js +26 -26
  21. package/src/api/methods/sysMenu.js +42 -42
  22. package/src/api/methods/sysRole.js +35 -35
  23. package/src/api/methods/sysUser.js +25 -25
  24. package/src/api/methods/system.js +15 -15
  25. package/src/api/request.js +225 -225
  26. package/src/assets/css/style.css +2 -2
  27. package/src/assets/css/zcui.css +1023 -1023
  28. package/src/assets/imgs/logo.png +0 -0
  29. package/src/assets/imgs/md/console.png +0 -0
  30. package/src/assets/imgs/md/login.png +0 -0
  31. package/src/assets/imgs/md/menu.png +0 -0
  32. package/src/assets/imgs/md/serviceMonitoring.png +0 -0
  33. package/src/assets/imgs/md/statistics.png +0 -0
  34. package/src/components/FormTable.vue +5 -19
  35. package/src/components/IconPicker.vue +351 -351
  36. package/src/components/MainPage.vue +838 -838
  37. package/src/components/details/logErrorDetails.vue +58 -58
  38. package/src/components/details/logOperationDetails.vue +76 -76
  39. package/src/components/edit/QuartzEdit.vue +221 -221
  40. package/src/components/edit/SysAccountEdit.vue +185 -185
  41. package/src/components/edit/SysDictEdit.vue +116 -116
  42. package/src/components/edit/SysDictItemEdit.vue +136 -136
  43. package/src/components/edit/SysRoleEdit.vue +111 -111
  44. package/src/components/edit/organizationalStructure/DepartmentEdit.vue +162 -0
  45. package/src/components/edit/organizationalStructure/EmployeeEdit.vue +295 -0
  46. package/src/components/edit/organizationalStructure/PositionEdit.vue +166 -0
  47. package/src/components/edit/sysMenuEdit.vue +2 -1
  48. package/src/config/index.js +74 -74
  49. package/src/directives/permission.js +49 -49
  50. package/src/main.js +37 -37
  51. package/src/router/index.js +4 -6
  52. package/src/stores/config.js +43 -43
  53. package/src/stores/dict.js +33 -33
  54. package/src/stores/menu.js +81 -81
  55. package/src/stores/user.js +21 -21
  56. package/src/utils/baseEcharts.js +661 -661
  57. package/src/utils/dictTemplate.js +26 -26
  58. package/src/utils/regionUtils.js +173 -173
  59. package/src/utils/useFormCRUD.js +59 -59
  60. package/src/views/baiscstatis/center.vue +474 -474
  61. package/src/views/baiscstatis/iframePage.vue +29 -29
  62. package/src/views/baiscstatis/notFound.vue +192 -192
  63. package/src/views/console.vue +821 -821
  64. package/src/views/demo/button.vue +269 -269
  65. package/src/views/demo/importexport.vue +119 -119
  66. package/src/views/demo/region.vue +322 -322
  67. package/src/views/demo/statistics.vue +214 -214
  68. package/src/views/home.vue +6 -6
  69. package/src/views/login.vue +264 -149
  70. package/src/views/operations/log/logError.vue +78 -78
  71. package/src/views/operations/log/logLogin.vue +66 -66
  72. package/src/views/operations/log/logOperation.vue +103 -103
  73. package/src/views/operations/log/logQuartz.vue +56 -56
  74. package/src/views/operations/quartz.vue +179 -179
  75. package/src/views/operations/serviceMonitoring.vue +134 -134
  76. package/src/views/organizationalStructure/department.vue +194 -0
  77. package/src/views/organizationalStructure/employee.vue +234 -0
  78. package/src/views/organizationalStructure/position.vue +196 -0
  79. package/src/views/system/sysAccount.vue +128 -128
  80. package/src/views/system/sysDict.vue +159 -159
  81. package/src/views/system/sysDictItem.vue +118 -118
  82. package/src/views/system/sysMenu.vue +225 -225
  83. package/src/views/system/sysRole.vue +207 -207
  84. package/src/assets/imgs/md/1.png +0 -0
  85. package/src/assets/imgs/md/10.png +0 -0
  86. package/src/assets/imgs/md/11.png +0 -0
  87. package/src/assets/imgs/md/2.png +0 -0
  88. package/src/assets/imgs/md/3.png +0 -0
  89. package/src/assets/imgs/md/4.png +0 -0
  90. package/src/assets/imgs/md/5.png +0 -0
  91. package/src/assets/imgs/md/6.png +0 -0
  92. package/src/assets/imgs/md/7.png +0 -0
  93. package/src/assets/imgs/md/8.png +0 -0
  94. package/src/assets/imgs/md/9.png +0 -0
@@ -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>