jianghu-ui 1.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 (112) hide show
  1. package/README.md +376 -0
  2. package/dist/jianghu-ui.css +2318 -0
  3. package/dist/jianghu-ui.js +2 -0
  4. package/dist/jianghu-ui.js.LICENSE.txt +1 -0
  5. package/package.json +56 -0
  6. package/src/Design.stories.mdx +195 -0
  7. package/src/Introduction.stories.mdx +148 -0
  8. package/src/components/JhAddressSelect/JhAddressSelect.md +250 -0
  9. package/src/components/JhAddressSelect/JhAddressSelect.stories.js +282 -0
  10. package/src/components/JhAddressSelect/JhAddressSelect.vue +261 -0
  11. package/src/components/JhCard/JhCard.md +246 -0
  12. package/src/components/JhCard/JhCard.stories.js +688 -0
  13. package/src/components/JhCard/JhCard.vue +604 -0
  14. package/src/components/JhCheckCard/JhCheckCard.md +245 -0
  15. package/src/components/JhCheckCard/JhCheckCard.stories.js +750 -0
  16. package/src/components/JhCheckCard/JhCheckCard.vue +476 -0
  17. package/src/components/JhConfirmDialog/JhConfirmDialog.md +70 -0
  18. package/src/components/JhConfirmDialog/JhConfirmDialog.stories.js +550 -0
  19. package/src/components/JhConfirmDialog/JhConfirmDialog.vue +181 -0
  20. package/src/components/JhDateRangePicker/JhDateRangePicker.md +56 -0
  21. package/src/components/JhDateRangePicker/JhDateRangePicker.stories.js +320 -0
  22. package/src/components/JhDateRangePicker/JhDateRangePicker.vue +307 -0
  23. package/src/components/JhDescriptions/JhDescriptions.md +724 -0
  24. package/src/components/JhDescriptions/JhDescriptions.stories.js +858 -0
  25. package/src/components/JhDescriptions/JhDescriptions.vue +933 -0
  26. package/src/components/JhDraggable/JhDraggable.md +66 -0
  27. package/src/components/JhDraggable/JhDraggable.stories.js +161 -0
  28. package/src/components/JhDraggable/JhDraggable.vue +254 -0
  29. package/src/components/JhDrawer/JhDrawer.md +68 -0
  30. package/src/components/JhDrawer/JhDrawer.stories.js +478 -0
  31. package/src/components/JhDrawer/JhDrawer.vue +281 -0
  32. package/src/components/JhDrawerForm/JhDrawerForm.md +69 -0
  33. package/src/components/JhDrawerForm/JhDrawerForm.stories.js +492 -0
  34. package/src/components/JhDrawerForm/JhDrawerForm.vue +297 -0
  35. package/src/components/JhEditableTable/JhEditableTable.md +507 -0
  36. package/src/components/JhEditableTable/JhEditableTable.stories.js +615 -0
  37. package/src/components/JhEditableTable/JhEditableTable.vue +685 -0
  38. package/src/components/JhFileInput/JhFileInput.md +56 -0
  39. package/src/components/JhFileInput/JhFileInput.stories.js +103 -0
  40. package/src/components/JhFileInput/JhFileInput.vue +253 -0
  41. package/src/components/JhForm/JhForm.md +676 -0
  42. package/src/components/JhForm/JhForm.stories.js +1375 -0
  43. package/src/components/JhForm/JhForm.vue +657 -0
  44. package/src/components/JhFormField/JhFormField.stories.js +217 -0
  45. package/src/components/JhFormField/JhFormField.vue +439 -0
  46. package/src/components/JhFormFields/JhFormFields.md +647 -0
  47. package/src/components/JhFormFields/JhFormFields.stories.js +922 -0
  48. package/src/components/JhFormFields/JhFormFields.vue +998 -0
  49. package/src/components/JhFormList/JhFormList.md +303 -0
  50. package/src/components/JhFormList/JhFormList.stories.js +661 -0
  51. package/src/components/JhFormList/JhFormList.vue +1127 -0
  52. package/src/components/JhJsonEditor/JhJsonEditor.md +54 -0
  53. package/src/components/JhJsonEditor/JhJsonEditor.stories.js +157 -0
  54. package/src/components/JhJsonEditor/JhJsonEditor.vue +178 -0
  55. package/src/components/JhLayout/JhLayout.md +580 -0
  56. package/src/components/JhLayout/JhLayout.stories.js +414 -0
  57. package/src/components/JhLayout/JhLayout.vue +387 -0
  58. package/src/components/JhList/JhList.md +441 -0
  59. package/src/components/JhList/JhList.stories.js +524 -0
  60. package/src/components/JhList/JhList.vue +571 -0
  61. package/src/components/JhMarkdownEditor/JhMarkdownEditor.md +56 -0
  62. package/src/components/JhMarkdownEditor/JhMarkdownEditor.stories.js +191 -0
  63. package/src/components/JhMarkdownEditor/JhMarkdownEditor.vue +188 -0
  64. package/src/components/JhMask/JhMask.md +62 -0
  65. package/src/components/JhMask/JhMask.stories.js +270 -0
  66. package/src/components/JhMask/JhMask.vue +123 -0
  67. package/src/components/JhMenu/JhMenu.md +85 -0
  68. package/src/components/JhMenu/JhMenu.stories.js +384 -0
  69. package/src/components/JhMenu/JhMenu.vue +545 -0
  70. package/src/components/JhModal/JhModal.md +68 -0
  71. package/src/components/JhModal/JhModal.stories.js +562 -0
  72. package/src/components/JhModal/JhModal.vue +235 -0
  73. package/src/components/JhModalForm/JhModalForm.md +69 -0
  74. package/src/components/JhModalForm/JhModalForm.stories.js +592 -0
  75. package/src/components/JhModalForm/JhModalForm.vue +298 -0
  76. package/src/components/JhPageContainer/JhPageContainer.md +409 -0
  77. package/src/components/JhPageContainer/JhPageContainer.stories.js +209 -0
  78. package/src/components/JhPageContainer/JhPageContainer.vue +72 -0
  79. package/src/components/JhQueryFilter/JhQueryFilter.md +77 -0
  80. package/src/components/JhQueryFilter/JhQueryFilter.stories.js +684 -0
  81. package/src/components/JhQueryFilter/JhQueryFilter.vue +429 -0
  82. package/src/components/JhScene/JhScene.md +64 -0
  83. package/src/components/JhScene/JhScene.stories.js +317 -0
  84. package/src/components/JhScene/JhScene.vue +376 -0
  85. package/src/components/JhStatisticCard/JhStatisticCard.md +363 -0
  86. package/src/components/JhStatisticCard/JhStatisticCard.stories.js +847 -0
  87. package/src/components/JhStatisticCard/JhStatisticCard.vue +459 -0
  88. package/src/components/JhStepsForm/JhStepsForm.md +666 -0
  89. package/src/components/JhStepsForm/JhStepsForm.stories.js +1224 -0
  90. package/src/components/JhStepsForm/JhStepsForm.vue +749 -0
  91. package/src/components/JhTable/JhTable.md +730 -0
  92. package/src/components/JhTable/JhTable.stories.js +1444 -0
  93. package/src/components/JhTable/JhTable.vue +2298 -0
  94. package/src/components/JhTableAttachment/JhTableAttachment.md +70 -0
  95. package/src/components/JhTableAttachment/JhTableAttachment.stories.js +198 -0
  96. package/src/components/JhTableAttachment/JhTableAttachment.vue +264 -0
  97. package/src/components/JhToast/JhToast.md +67 -0
  98. package/src/components/JhToast/JhToast.stories.js +386 -0
  99. package/src/components/JhToast/JhToast.vue +239 -0
  100. package/src/components/JhTreeSelect/JhTreeSelect.md +82 -0
  101. package/src/components/JhTreeSelect/JhTreeSelect.stories.js +391 -0
  102. package/src/components/JhTreeSelect/JhTreeSelect.vue +727 -0
  103. package/src/components/JhWaterMark/JhWaterMark.md +190 -0
  104. package/src/components/JhWaterMark/JhWaterMark.stories.js +675 -0
  105. package/src/components/JhWaterMark/JhWaterMark.vue +351 -0
  106. package/src/components/README.md +52 -0
  107. package/src/index.js +135 -0
  108. package/src/style/globalCSSJHV4.css +348 -0
  109. package/src/style/globalCSSVuetifyV4.css +637 -0
  110. package/src/style/storybook.css +4 -0
  111. package/src/tailwind.css +3 -0
  112. package/src/utils/vuetify.js +31 -0
@@ -0,0 +1,2318 @@
1
+ .preview-page .v-application--wrap {
2
+ min-height: auto!important;
3
+ padding-bottom: 30px;
4
+ }
5
+
6
+ /* 全局 >>>>>> */
7
+ body {
8
+ --cPrimaryColor: <$ ctx.app.config.primaryColor $>;
9
+ --shadow-sm: 0px 1px 2px rgba(25, 39, 52, .05), 0px 0px 4px rgba(25, 39, 52, .1);
10
+ --gray-900: #1F272E;
11
+ --gray-800: #333C44;
12
+ font-size: 13px;
13
+ background: #F2F2F2 !important;
14
+ }
15
+
16
+ .v-application .text-h7 {
17
+ font-size: 1.125rem;
18
+ }
19
+
20
+ .flex-none {
21
+ flex: none;
22
+ }
23
+
24
+ .theme--light.v-application {
25
+ background: #fff !important;
26
+ }
27
+ .theme--light.v-application .login-form-card {
28
+ border: 1px solid #eee;
29
+ }
30
+ .v-application .align-center.text-start {
31
+ text-align: center !important;
32
+ }
33
+
34
+ body .v-application .title {
35
+ font-size: 1rem !important;
36
+ }
37
+ body .v-application .v-navigation-drawer .title {
38
+ color: var(--cPrimaryColor);
39
+ position: relative;
40
+ }
41
+ body .v-application .v-navigation-drawer .title::before {
42
+ content: '';
43
+ height: 14px;
44
+ width: 3px;
45
+ background: var(--cPrimaryColor);
46
+ position: absolute;
47
+ top: calc(50% - 7px);
48
+ left: 0;
49
+ }
50
+
51
+
52
+ body .d-flex .v-main__wrap {
53
+ display: flex;
54
+ flex-direction: column;
55
+ }
56
+
57
+ .mdi-close::before {
58
+ font-size: 1rem;
59
+ }
60
+
61
+ /* 全局 >>>>>> */
62
+
63
+
64
+ /* 配色 >>>>>> */
65
+ .v-application .theme--dark.secondary {
66
+ background-color: #22262e !important;
67
+ border-color: #22262e !important;
68
+ }
69
+
70
+
71
+ /* <<<<< 配色 */
72
+
73
+
74
+ /* list >>>>>> */
75
+ .v-list--dense .v-list-item .v-list-item__subtitle,
76
+ .v-list--dense .v-list-item .v-list-item__title,
77
+ .v-list-item--dense .v-list-item__subtitle,
78
+ .v-list-item--dense .v-list-item__title {
79
+ font-size: .8125rem !important;
80
+ font-weight: normal;
81
+ }
82
+
83
+ .v-list-item__title {
84
+ font-size: 13px !important;
85
+ }
86
+
87
+ /* <<<<< list */
88
+
89
+
90
+ /* 表单 >>>>>> */
91
+ .v-input--is-readonly .v-input__slot {
92
+ background: #eeeeee!important;
93
+ }
94
+ .v-label,
95
+ input,
96
+ .v-input {
97
+ font-size: 0.875rem !important;
98
+ }
99
+
100
+ body .v-text-field .v-label {
101
+ color: rgba(0, 0, 0, .3);
102
+ }
103
+
104
+ body .theme--light.v-input,
105
+ body .theme--light.v-input input,
106
+ body .theme--light.v-input textarea,
107
+ body .v-select.v-input--dense .v-select__selection--comma {
108
+ font-size: 14px !important;
109
+ font-weight: 500 !important;
110
+ color: #5E6278;
111
+ }
112
+
113
+ body .v-text-field--filled {
114
+ border-radius: 4px !important;
115
+ }
116
+
117
+ body .v-text-field>.v-input__control>.v-input__slot:before {
118
+ border: none;
119
+ }
120
+
121
+ body .v-text-field>.v-input__control>.v-input__slot:after {
122
+ border: none;
123
+ }
124
+
125
+ body .theme--light.v-input--is-disabled,
126
+ .theme--light.v-input--is-disabled input,
127
+ .theme--light.v-input--is-disabled textarea {
128
+ color: rgba(0, 0, 0, .28) !important;
129
+ }
130
+
131
+ body .theme--light.v-text-field--filled:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover {
132
+ background: #EEF7ED !important;
133
+ }
134
+
135
+ body span.jh-input-label {
136
+ color: #3F4254;
137
+ line-height: 32px;
138
+ font-weight: 500;
139
+ }
140
+
141
+ body .v-text-field--filled.v-input--dense>.v-input__control>.v-input__slot,
142
+ body .v-text-field--full-width.v-input--dense>.v-input__control>.v-input__slot {
143
+ min-height: 40px;
144
+ }
145
+
146
+ body .v-text-field--filled:not(.v-text-field--single-line) input {
147
+ margin-top: 4px;
148
+ }
149
+
150
+ body .v-text-field--filled.v-input--dense.v-text-field--single-line .v-label,
151
+ body .v-text-field--full-width.v-input--dense.v-text-field--single-line .v-label {
152
+ top: 9px;
153
+ }
154
+
155
+ body .v-text-field--filled.v-input--dense .v-label--active,
156
+ body .v-text-field--full-width.v-input--dense .v-label--active {
157
+ transform: translateY(-16px) scale(.75);
158
+ background: #ffffff;
159
+ padding: 1px 5px;
160
+ border-radius: 30px;
161
+ }
162
+
163
+ body .v-data-table__checkbox .v-input--selection-controls__input .v-icon.mdi-checkbox-blank-outline::before {
164
+ content: "" !important;
165
+ background: #d6dde1;
166
+ width: 18px;
167
+ height: 18px;
168
+ border-radius: 2px;
169
+ }
170
+
171
+ .v-text-field.v-input--is-focused.v-input--dense:not(.v-text-field--outlined) .v-text-field__prefix {
172
+ color: inherit;
173
+ }
174
+
175
+ .v-text-field.v-input--dense:not(.v-text-field--outlined) .v-text-field__prefix {
176
+ color: #a5a9ab;
177
+ }
178
+
179
+ .v-text-field--filled.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,
180
+ .v-text-field--filled.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,
181
+ .v-text-field--filled.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,
182
+ .v-text-field--full-width.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,
183
+ .v-text-field--full-width.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,
184
+ .v-text-field--full-width.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,
185
+ .v-text-field--outlined.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,
186
+ .v-text-field--outlined.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,
187
+ .v-text-field--outlined.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot {
188
+ min-height: 32px;
189
+ }
190
+
191
+ .v-input .v-label {
192
+ line-height: 14px;
193
+ font-size: .8125rem !important;
194
+ }
195
+
196
+ .v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,
197
+ .v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,
198
+ .v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,
199
+ .v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer,
200
+ .v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,
201
+ .v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,
202
+ .v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,
203
+ .v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer {
204
+ margin-top: 5px;
205
+ }
206
+
207
+ body .theme--light.v-input,
208
+ body .theme--light.v-input input,
209
+ body .theme--light.v-input textarea,
210
+ body .v-select.v-input--dense .v-select__selection--comma {
211
+ font-size: .8125rem !important;
212
+ font-weight: normal !important;
213
+ color: var(--gray-900);
214
+ }
215
+
216
+ body .theme--light.v-text-field--filled>.v-input__control>.v-input__slot {
217
+ background: #Ffff;
218
+ border: 1px solid #DFDFDF;
219
+ }
220
+
221
+ body .theme--light.v-text-field--filled.v-input--is-focused>.v-input__control>.v-input__slot {
222
+ background: #Ffff;
223
+ border: 1px solid var(--cPrimaryColor) ;
224
+ }
225
+
226
+ body .theme--light.v-text-field--filled.v-input--is-disabled>.v-input__control>.v-input__slot {
227
+ background: #F2F2F2;
228
+ border: 1px solid #F2F2F2;
229
+ }
230
+
231
+ .v-select__selection--comma {
232
+ margin: 7px 4px;
233
+ }
234
+
235
+ /* <<<<< 表单 */
236
+
237
+
238
+ /* table >>>>>> */
239
+ .theme--light.v-data-table.v-data-table--fixed-header thead th {
240
+ background: #F6F6F6 !important;
241
+ }
242
+
243
+ .v-data-table__progress {
244
+ height: 10px !important;
245
+ }
246
+
247
+ .v-data-table__empty-wrapper td {
248
+ max-width: 80vw;
249
+ text-align: left;
250
+ }
251
+ .v-data-table.v-data-table--mobile>.v-data-table__wrapper>table>tbody>tr>td:first-child,
252
+ .v-data-table.v-data-table--mobile>.v-data-table__wrapper>table>tfoot>tr>td:first-child,
253
+ .v-data-table.v-data-table--mobile>.v-data-table__wrapper>table>thead>tr>th:first-child {
254
+ padding-left: 5px!important;
255
+ }
256
+
257
+ .theme--light.v-data-table>.v-data-table__wrapper>table>tbody>tr:hover:not(.v-data-table__expanded__content):not(.v-data-table__empty-wrapper) {
258
+ background: #fbfbfb !important;
259
+ }
260
+
261
+ /* 固定表头最后一个字段 */
262
+ table>tbody>tr>td.fixed:nth-last-child(1),
263
+ table>thead>tr>th.fixed:nth-last-child(1) {
264
+ position: sticky !important;
265
+ position: -webkit-sticky !important;
266
+ right: 0;
267
+ z-index: 10;
268
+ background: white;
269
+ border: none;
270
+ box-shadow: none;
271
+ }
272
+
273
+ table>thead>tr>th.fixed:nth-last-child(1) {
274
+ top: 0;
275
+ }
276
+
277
+ th {
278
+ white-space: nowrap;
279
+ }
280
+
281
+ /* table 框线 */
282
+ td:not(.v-picker td),
283
+ th:not(.v-picker th) {
284
+ border-bottom: thin solid rgba(0, 0, 0, .06) !important;
285
+ border-right: thin solid rgba(0, 0, 0, .06) !important;
286
+ }
287
+
288
+ table>tbody>tr>td:nth-last-child(1),
289
+ table>thead>tr>th:nth-last-child(1) {
290
+ border-right: none !important;
291
+ }
292
+
293
+ .theme--light.v-data-table .v-data-footer {
294
+ border-top: 0;
295
+ }
296
+
297
+ .theme--light.v-data-table.v-data-table--fixed-header thead th {
298
+ border-bottom: thin solid rgba(0, 0, 0, .06) !important;
299
+ box-shadow: none;
300
+ }
301
+
302
+ .v-data-table>.v-data-table__wrapper>table>tbody>tr>td,
303
+ .v-data-table>.v-data-table__wrapper>table>tfoot>tr>td,
304
+ .v-data-table>.v-data-table__wrapper>table>thead>tr>th {
305
+ padding: 0 8px !important;
306
+ }
307
+
308
+ .v-data-table>.v-data-table__wrapper>table>tbody>tr>td:first-child,
309
+ .v-data-table>.v-data-table__wrapper>table>tfoot>tr>td:first-child,
310
+ .v-data-table>.v-data-table__wrapper>table>thead>tr>th:first-child {
311
+ padding-left: 16px !important;
312
+ }
313
+ .v-data-table>.v-data-table__wrapper>table>tbody>tr>td.noWarp,
314
+ .v-data-table>.v-data-table__wrapper>table>tfoot>tr>td.noWarp {
315
+ white-space: nowrap !important;
316
+ }
317
+
318
+ .v-data-table>.v-data-table__wrapper>table>tbody>tr>td .v-icon.v-icon {
319
+ transform: translateY(-1px);
320
+ }
321
+
322
+ .theme--light.v-data-table>.v-data-table__wrapper>table>thead>tr>th {
323
+ color: rgba(181, 181, 195);
324
+ font-weight: 600;
325
+ font-size: 13px;
326
+ }
327
+
328
+ .v-data-table--fixed-header>.v-data-table__wrapper>table>thead>tr>th.fixed {
329
+ z-index: 12 !important;
330
+ }
331
+
332
+ .v-data-table--fixed-header>.v-data-table__wrapper>table>thead>tr>th {
333
+ z-index: 11 !important;
334
+ }
335
+
336
+ .v-data-table.show-select table>tbody>tr>td:nth-child(1),
337
+ .v-data-table.show-select table>thead>tr>th:nth-child(1) {
338
+ position: sticky !important;
339
+ position: -webkit-sticky !important;
340
+ left: 0;
341
+ z-index: 10;
342
+ background: white;
343
+ }
344
+
345
+ /* 固定表头部第一个字段 */
346
+ .v-data-table.show-select table>tbody>tr>td.fixed:nth-child(2),
347
+ .v-data-table.show-select table>thead>tr>th.fixed:nth-child(2) {
348
+ position: sticky !important;
349
+ position: -webkit-sticky !important;
350
+ left: 64px;
351
+ z-index: 10 !important;
352
+ border-right: 1px solid #EEEEEE;
353
+ }
354
+
355
+ body .theme--light.v-data-table.v-data-table--fixed-header thead th, body .theme--light.v-data-table>.v-data-table__wrapper>table>thead>tr>th {
356
+ background-color: #ebecf0 !important;
357
+ }
358
+
359
+
360
+ .v-data-table>.v-data-table__wrapper>table>tbody>tr>td,
361
+ .v-data-table>.v-data-table__wrapper>table>tfoot>tr>td,
362
+ .v-data-table>.v-data-table__wrapper>table>thead>tr>td {
363
+ min-height: 40px;
364
+ height: 40px;
365
+ color: #333C44;
366
+ font-size: .8125rem;
367
+ }
368
+
369
+ .theme--light.v-data-table>.v-data-table__wrapper>table>thead>tr>th {
370
+ color: #505A62 !important;
371
+ font-weight: normal;
372
+ }
373
+
374
+ /* 分组 */
375
+ .theme--light.v-data-table .v-row-group__header,
376
+ .theme--light.v-data-table .v-row-group__summary {
377
+ background: #F2F2F2;
378
+ }
379
+
380
+ .theme--light.v-data-table .v-data-footer {
381
+ justify-content: end;
382
+ }
383
+
384
+ .v-application--is-ltr .v-data-footer__select {
385
+ margin-left: 30px;
386
+ }
387
+
388
+ .v-data-table td.fixed, .v-data-table th.fixed {
389
+ position: unset;
390
+ }
391
+
392
+ /* table 斑马纹 */
393
+ .v-data-table.zebraLine tr:nth-child(even),
394
+ .v-data-table.zebraLine tr:nth-child(even) td.fixed,
395
+ .v-data-table.zebraLine.fixed-first-column tr:nth-child(even) td:nth-child(1) {
396
+ background-color: #F6F6F6;
397
+ }
398
+
399
+ /* table行hover背景色 */
400
+ .theme--light.v-data-table>.v-data-table__wrapper>table>tbody>tr:hover:not(.v-data-table__expanded__content):not(.v-data-table__empty-wrapper),
401
+ .theme--light.v-data-table>.v-data-table__wrapper>table>tbody>tr:hover td.fixed,
402
+ .theme--light.v-data-table.fixed-first-column>.v-data-table__wrapper>table>tbody>tr:hover td:nth-child(1) {
403
+ background: #fff !important;
404
+ }
405
+ .theme--light.v-data-table>.v-data-table__wrapper>table>tbody>tr:nth-child(even):hover:not(.v-data-table__expanded__content):not(.v-data-table__empty-wrapper),
406
+ .theme--light.v-data-table>.v-data-table__wrapper>table>tbody>tr:nth-child(even):hover td.fixed,
407
+ .theme--light.v-data-table.fixed-first-column>.v-data-table__wrapper>table>tbody>tr:nth-child(even):hover td:nth-child(1) {
408
+ background: #F6F6F6 !important;
409
+ }
410
+
411
+ /* table行选中背景色 */
412
+ .theme--light.v-data-table tbody tr.v-data-table__selected{
413
+ background: #fff !important;
414
+ }
415
+ .theme--light.v-data-table tbody tr.v-data-table__selected:nth-child(even){
416
+ background: #F6F6F6 !important;
417
+ }
418
+
419
+ /* table 定高 */
420
+ .jh-fixed-table-height {
421
+ display: flex;
422
+ flex-direction: column;
423
+ }
424
+
425
+ .v-data-table__wrapper,
426
+ .fixed-table-wrapper-height .v-data-table__wrapper {
427
+ flex: auto;
428
+ border: 1px solid #E6E6E6;
429
+ border-bottom: none;
430
+ }
431
+
432
+ /* table 页脚 */
433
+ .v-data-footer {
434
+ border-top: 1px solid rgba(0, 0, 0, .06) !important;
435
+ margin-right: 0 !important;
436
+ }
437
+
438
+ /* table 分页紧凑 */
439
+ .v-application--is-ltr .v-data-footer__pagination {
440
+ margin: 0 12px 0 4px;
441
+ }
442
+
443
+ .v-application--is-ltr .v-data-footer__select .v-select {
444
+ margin: 8px 0 8px 14px;
445
+ }
446
+
447
+ .v-application--is-ltr .v-data-footer__select {
448
+ margin-right: 8px;
449
+ margin-left: 20px;
450
+ }
451
+
452
+
453
+
454
+ /* table 固定第一列 */
455
+ .fixed-first-column table>tbody>tr>td:nth-child(1),
456
+ .fixed-first-column table>thead>tr>th:nth-child(1) {
457
+ position: sticky !important;
458
+ position: -webkit-sticky !important;
459
+ left: 0;
460
+ z-index: 12 !important;
461
+ background: white;
462
+ border-right: none;
463
+ }
464
+
465
+ /* table 高度撑满*/
466
+ .table-height-full {
467
+ height: 100%;
468
+ }
469
+
470
+ /* <<<<< table */
471
+
472
+
473
+ /* card >>>>>> */
474
+ body .v-sheet.v-card:not(.v-sheet--outlined) {
475
+ box-shadow: 0 1px 20px 0 rgb(0 0 0 / 2%);
476
+ }
477
+
478
+ /* <<<<< card */
479
+
480
+
481
+
482
+ /* 弹窗 >>>>>> */
483
+ .v-dialog--fullscreen .v-sheet .container {
484
+ height: 100vh;
485
+ margin: 15vh 0 0 0;
486
+ background: #ffffff;
487
+ padding: 50px 0 0 0;
488
+ position: relative;
489
+ }
490
+
491
+ .v-dialog--fullscreen .v-sheet {
492
+ height: 100vh;
493
+ top: 0;
494
+ position: fixed;
495
+ }
496
+
497
+ .v-dialog--fullscreen {
498
+ background: rgba(0, 0, 0, 0.5);
499
+ top: auto !important;
500
+ bottom: 0;
501
+ }
502
+
503
+ .v-dialog--fullscreen .v-data-table {
504
+ overflow-y: auto;
505
+ }
506
+
507
+ /* <<<<< 弹窗 */
508
+
509
+
510
+ /* toolbar >>>>>> */
511
+ .v-toolbar__title {
512
+ overflow: visible;
513
+ }
514
+
515
+ .theme--light.v-app-bar.v-toolbar.v-sheet {
516
+ background: #ffffff !important;
517
+ box-shadow: 0 1px 20px 0 rgb(0 0 0 / 2%) !important;
518
+ }
519
+
520
+ body .v-toolbar__content {
521
+ padding: 0 !important;
522
+ }
523
+
524
+ /* <<<<< toolbar */
525
+
526
+
527
+ /* tab >>>>>> */
528
+ body .v-tab {
529
+ font-size: 14px !important;
530
+ }
531
+
532
+ .theme--light.v-tabs>.v-tabs-bar .v-tab--disabled,
533
+ .theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active),
534
+ .theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-btn,
535
+ .theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-icon {
536
+ color: var(--gray-900);
537
+ }
538
+
539
+ /* <<<<< tab */
540
+
541
+
542
+ /* 面包屑 >>>>>> */
543
+ body .v-breadcrumbs li {
544
+ font-size: 12px !important;
545
+ }
546
+
547
+ body .v-breadcrumbs li:nth-child(2n) {
548
+ padding: 0 6px;
549
+ }
550
+
551
+ /* <<<<< 面包屑 */
552
+
553
+
554
+ /* 菜单 >>>>>> */
555
+ .v-menu__content {
556
+ background: white;
557
+ box-shadow: 0 3px 14px 2px rgb(0 0 0 / 8%);
558
+ z-index: 300 !important;
559
+ }
560
+
561
+ .v-menu__content .v-list-item {
562
+ margin-bottom: 3px;
563
+ height: 32px;
564
+ min-height: auto;
565
+ }
566
+
567
+ .v-menu__content .v-list-item--link:before {
568
+ border-radius: 6px;
569
+ }
570
+
571
+ .v-menu__content .v-select-list {
572
+ padding: 10px;
573
+ }
574
+
575
+ .v-menu__content .v-icon.mdi-close {
576
+ font-size: 18px;
577
+ }
578
+
579
+ /* <<<<< 菜单 */
580
+
581
+
582
+ /* 抽屉 >>>>>> */
583
+ body .v-navigation-drawer--temporary {
584
+ z-index: 101 !important;
585
+ }
586
+
587
+ .v-navigation-drawer {
588
+ overflow: revert;
589
+ }
590
+
591
+ /* <<<<< 抽屉 */
592
+
593
+
594
+ /* 树形视图 >>>>>> */
595
+ .v-treeview--dense .v-treeview-node__root {
596
+ min-height: 34px;
597
+ margin-bottom: 3px;
598
+ }
599
+
600
+ .theme--light.v-treeview .v-treeview-node__root:before,
601
+ .theme--light.v-treeview .v-treeview-node__root:hover:before {
602
+ border-radius: 6px;
603
+ }
604
+
605
+ .v-treeview-node__label {
606
+ overflow: inherit;
607
+ }
608
+
609
+
610
+ /* <<<<< 树形视图 */
611
+
612
+ /* 表单内col >>>>>> */
613
+ .v-form .col-12 {
614
+ padding-bottom: 0;
615
+ }
616
+ /* 最后一个row加padding-bottom */
617
+ .v-form>.row:last-child {
618
+ padding-bottom: 20px;
619
+ }
620
+ /* <<<<< 表单内col */
621
+
622
+ /* v-btn-toggle */
623
+ .theme--light.v-btn--active:before, .theme--light.v-btn--active:hover:before {
624
+ border-color: var(--cPrimaryColor);
625
+ opacity: 0;
626
+ }
627
+ .theme--light.v-btn-toggle:not(.v-btn-toggle--group) .v-btn.v-btn--active {
628
+ border-color: var(--cPrimaryColor)!important;
629
+ color: var(--cPrimaryColor)!important;
630
+ }
631
+ .v-application--is-ltr .v-btn-toggle>.v-btn.v-btn:not(:first-child), .v-application--is-rtl .v-btn-toggle>.v-btn.v-btn:not(:last-child) {
632
+ border-left-width: thin;
633
+ }
634
+
635
+
636
+ .v-main .v-main {
637
+ padding: 0!important;
638
+ }
639
+
640
+ /* 表单 >>>>>> */
641
+ .jh-input-label {
642
+ color: var(--gray-800);
643
+ font-weight: 400;
644
+ font-size: 12px;
645
+ line-height: 32px;
646
+ }
647
+ .jh-input-label-group {
648
+ color: var(--cPrimaryColor);
649
+ padding-left: 10px;
650
+ font-size: 1rem !important;
651
+ line-height: 1.75rem;
652
+ letter-spacing: 0.009375em !important;
653
+ font-family: Roboto, sans-serif !important;
654
+ font-weight: 500 !important;
655
+ position: relative;
656
+ display: flex;
657
+ align-items: center;
658
+ }
659
+ .jh-input-label-group::before {
660
+ content: "";
661
+ background-color: var(--cPrimaryColor);
662
+ position: absolute;
663
+ height: calc(100% - 12px); /* 高度为父元素高度减去3px */
664
+ width: 4px;
665
+ bottom: 6px;
666
+ left: 0;
667
+ }
668
+ .jh-no-data {
669
+ text-align: center;
670
+ max-width: calc(100vw - 64px);
671
+ }
672
+
673
+ .jh-v-input .v-input__slot {
674
+ margin: 0 !important;
675
+ }
676
+ .jh-v-input.bg-white .v-input__slot {
677
+ background-color: #fff !important;
678
+ }
679
+ .jh-v-input .v-messages-outer,
680
+ .jh-v-input .v-text-field__details {
681
+ position: absolute !important;
682
+ bottom: -23px !important;
683
+ left: -10px !important;
684
+ }
685
+ .jh-v-input .v-input__append-outer {
686
+ margin-top: 0 !important;
687
+ }
688
+ .jh-v-input .v-input__icon--append button {
689
+ font-size: 18px;
690
+ }
691
+ /* <<<<< 表单 */
692
+
693
+ /* header 菜单 >>>>>> */
694
+ .jh-page-header {
695
+ border-bottom: 1px solid #e6e6e6 !important;
696
+ }
697
+ .jh-header-tab {
698
+ border-radius: 5px;
699
+ margin: 8px 0;
700
+ text-transform: none;
701
+ font-weight: 400;
702
+ }
703
+ .jh-header-tab-active {
704
+ background: #f6f6f6;
705
+ font-weight: 500;
706
+ }
707
+
708
+ .jh-header-tab::before {
709
+ border-radius: 5px !important;
710
+ }
711
+
712
+ .jh-header-tab:hover::before {
713
+ border-radius: 5px !important;
714
+ opacity: 0.1 !important;
715
+ }
716
+ /* <<<<< header 菜单 */
717
+
718
+ /* tab >>>>>> */
719
+ .custom-tabs .v-tabs-bar {
720
+ height: 32px;
721
+ }
722
+ .custom-tabs.v-tabs .v-tab:before,
723
+ .custom-tabs.v-tabs .v-tab--active:before {
724
+ display: none;
725
+ }
726
+ .custom-tabs .v-tab {
727
+ min-width: auto;
728
+ padding: 0px;
729
+ margin-right: 30px;
730
+ font-size: 13px !important;
731
+ }
732
+ /* <<<<< tab */
733
+
734
+ /* 字体 >>>>>> */
735
+ .jh-font-size-10 {
736
+ font-size: 10px;
737
+ }
738
+ .jh-font-size-12,
739
+ .jh-font-size-2 {
740
+ font-size: 12px;
741
+ }
742
+ .jh-font-size-13,
743
+ .jh-font-size-3 {
744
+ font-size: 13px;
745
+ }
746
+ /* <<<<< 字体 */
747
+
748
+ /* dialog >>>>>> */
749
+ .jh-fixed-dialog-height {
750
+ min-height: 60%;
751
+ max-height: 80%;
752
+ background-color: #fff;
753
+ }
754
+ /* <<<<< dialog */
755
+
756
+ /* 抽屉关闭按钮 */
757
+ .drawer-close-float-btn {
758
+ top: 120px !important;
759
+ left: -40px !important;
760
+ }
761
+ /* 文档 */
762
+ .jh-page-doc-container {
763
+ height: calc(100vh - 130px);
764
+ }
765
+ /* 帮助icon */
766
+ .mdi-help-circle-outline {
767
+ transform: translateY(-1.5px) scale(1.1);
768
+ }
769
+ /* 分割线 */
770
+ .jh-divider {
771
+ border-color: rgba(0, 0, 0, 0.06) !important;
772
+ }
773
+ /* 抽屉 */
774
+ body .v-navigation-drawer.jh-drawer-level-2 {
775
+ z-index: 102 !important;
776
+ }
777
+ .cursor-pointer {
778
+ cursor: pointer;
779
+ }
780
+
781
+ .flex-1 {
782
+ flex: 1;
783
+ }
784
+
785
+ /* 边框 */
786
+ .jh-border {
787
+ border: 1px solid #eee;
788
+ }
789
+ .jh-border-b {
790
+ border-bottom: 1px solid #eee;
791
+ }
792
+ .jh-border-t {
793
+ border-top: 1px solid #eee;
794
+ }
795
+ .jh-border-r {
796
+ border-right: 1px solid #eee;
797
+ }
798
+ .jh-border-l {
799
+ border-left: 1px solid #eee;
800
+ }
801
+
802
+ .jh-page-second-bar span[role="button"] {
803
+ min-width: 40px;
804
+ }
805
+
806
+ /* 移动端table、搜索栏 */
807
+ .v-data-table.v-data-table--mobile
808
+ > .v-data-table__wrapper
809
+ > table
810
+ > tbody
811
+ > tr
812
+ > td:first-child,
813
+ .v-data-table.v-data-table--mobile
814
+ > .v-data-table__wrapper
815
+ > table
816
+ > tfoot
817
+ > tr
818
+ > td:first-child,
819
+ .v-data-table.v-data-table--mobile
820
+ > .v-data-table__wrapper
821
+ > table
822
+ > thead
823
+ > tr
824
+ > th:first-child {
825
+ padding-left: 15px !important;
826
+ }
827
+ @media (max-width: 600px) {
828
+ .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
829
+ .v-data-table > .v-data-table__wrapper > table > tbody > tr > th,
830
+ .v-data-table > .v-data-table__wrapper > table > tfoot > tr > td,
831
+ .v-data-table > .v-data-table__wrapper > table > tfoot > tr > th,
832
+ .v-data-table > .v-data-table__wrapper > table > thead > tr > td,
833
+ .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
834
+ padding: 0 15px !important;
835
+ }
836
+ }
837
+ .v-data-table .v-data-table__mobile-table-row {
838
+ border-bottom: 5px solid rgb(243 244 246 / var(--tw-bg-opacity));
839
+ }
840
+ .v-data-table .v-data-table__mobile-table-row:last-child {
841
+ border-bottom: none;
842
+ }
843
+ .v-data-table-header.v-data-table-header-mobile {
844
+ display: none;
845
+ }
846
+
847
+ .jh-mobile-search-bar .v-menu__content {
848
+ background-color: rgba(0, 0, 0, 0.3);
849
+ height: calc(100vh - 88px);
850
+ box-shadow: none;
851
+ border-radius: 0;
852
+ }
853
+ .jh-safe-bottom {
854
+ padding-bottom: 0;
855
+ padding-bottom: calc(constant(safe-area-inset-bottom) / 5 * 3);
856
+ padding-bottom: calc(env(safe-area-inset-bottom) / 5 * 3);
857
+ }
858
+
859
+ /* 场景搜索 v-btn-toggle >>>>>> */
860
+ .jh-scene-toggle.v-btn-toggle .v-btn.v-btn {
861
+ background-color: #fff !important;
862
+ }
863
+ .jh-scene-toggle.v-btn-toggle .v-btn.v-btn:not(:last-child) {
864
+ border-right-color: #fff !important;
865
+ }
866
+ .jh-scene-toggle.v-btn-toggle .v-btn.v-btn.v-btn--active {
867
+ border-color: var(--cPrimaryColor) !important;
868
+ color: var(--cPrimaryColor) !important;
869
+ background-color: #fff !important;
870
+ border-right-color: var(--cPrimaryColor) !important;
871
+ }
872
+ /* <<<<< 场景搜索 v-btn-toggle */
873
+
874
+ /* 状态样式 >>>>>> */
875
+ .jh-status-tag-success,
876
+ .jh-status-tag-primary,
877
+ .jh-status-tag-green {
878
+ background-color: #59cb74 !important;
879
+ border-color: #59cb74 !important;
880
+ color: #ffffff !important;
881
+ caret-color: #ffffff !important;
882
+ }
883
+ .jh-status-tag-error,
884
+ .jh-status-tag-red {
885
+ background-color: #f4667c !important;
886
+ border-color: #f4667c !important;
887
+ color: #ffffff !important;
888
+ caret-color: #ffffff !important;
889
+ }
890
+ .jh-status-tag-default,
891
+ .jh-status-tag-grey {
892
+ background-color: #c2c2c2 !important;
893
+ border-color: #c2c2c2 !important;
894
+ color: #ffffff !important;
895
+ caret-color: #ffffff !important;
896
+ }
897
+ .jh-status-tag-info,
898
+ .jh-status-tag-blue {
899
+ background-color: #4fcccb !important;
900
+ border-color: #4fcccb !important;
901
+ color: #ffffff !important;
902
+ caret-color: #ffffff !important;
903
+ }
904
+ .jh-status-tag-warning,
905
+ .jh-status-tag-orange {
906
+ background-color: #fbd44b !important;
907
+ border-color: #fbd44b !important;
908
+ color: #ffffff !important;
909
+ caret-color: #ffffff !important;
910
+ }
911
+ .jh-status-tag-indigo {
912
+ background-color: #c5cae9 !important;
913
+ border-color: #c5cae9 !important;
914
+ color: #303f9f !important;
915
+ caret-color: #303f9f !important;
916
+ }
917
+ .jh-status-tag-teal {
918
+ background-color: #b2dfdb !important;
919
+ border-color: #b2dfdb !important;
920
+ color: #00796b !important;
921
+ caret-color: #00796b !important;
922
+ }
923
+ .jh-status-tag-brown {
924
+ background-color: #d7ccc8 !important;
925
+ border-color: #d7ccc8 !important;
926
+ color: #5d4037 !important;
927
+ caret-color: #5d4037 !important;
928
+ }
929
+ .jh-status-tag-pink {
930
+ background-color: #f8bbd0 !important;
931
+ border-color: #f8bbd0 !important;
932
+ color: #c2185b !important;
933
+ caret-color: #c2185b !important;
934
+ }
935
+ .jh-status-tag-purple {
936
+ background-color: #e1bee7 !important;
937
+ border-color: #e1bee7 !important;
938
+ color: #7b1fa2 !important;
939
+ caret-color: #7b1fa2 !important;
940
+ }
941
+
942
+ .jh-safe-bottom-1 {
943
+ padding-bottom: max(
944
+ 0.25rem,
945
+ env(safe-area-inset-bottom)
946
+ ) !important; /* Tailwind pb-1 */
947
+ }
948
+ .jh-safe-bottom-2 {
949
+ padding-bottom: max(
950
+ 0.5rem,
951
+ env(safe-area-inset-bottom)
952
+ ) !important; /* Tailwind pb-2 */
953
+ }
954
+ .jh-safe-bottom-3 {
955
+ padding-bottom: max(
956
+ 0.75rem,
957
+ env(safe-area-inset-bottom)
958
+ ) !important; /* Tailwind pb-3 */
959
+ }
960
+ .jh-safe-bottom-4 {
961
+ padding-bottom: max(
962
+ 1rem,
963
+ env(safe-area-inset-bottom)
964
+ ) !important; /* Tailwind pb-4 */
965
+ }
966
+ .jh-safe-bottom-5 {
967
+ padding-bottom: max(
968
+ 1.25rem,
969
+ env(safe-area-inset-bottom)
970
+ ) !important; /* Tailwind pb-5 */
971
+ }
972
+ .jh-safe-bottom-6 {
973
+ padding-bottom: max(
974
+ 1.5rem,
975
+ env(safe-area-inset-bottom)
976
+ ) !important; /* Tailwind pb-6 */
977
+ }
978
+ /* <<<<< 状态样式 */
979
+
980
+ .jh-form .v-input--selection-controls {
981
+ margin-top: 0;
982
+ }
983
+
984
+ .jh-field-input>.jh-v-input .v-input__slot {
985
+ border: 1px solid #DFDFDF!important;
986
+ }
987
+
988
+ /* 侧边栏菜单 */
989
+ .jh-page-nav-bar[data-v-73ddcbb9] .v-list-item,
990
+ .jh-page-nav-bar[data-v-73ddcbb9] .v-list-group__header {
991
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
992
+ }
993
+ .jh-page-nav-bar[data-v-73ddcbb9] .v-list-group__header .v-list-item {
994
+ border-bottom: none;
995
+ }
996
+ @media (max-width: 600px) {
997
+ .jh-page-nav-bar[data-v-73ddcbb9] .v-list-group .v-list-group__header {
998
+ padding: 0 !important;
999
+ }
1000
+ .jh-page-nav-bar[data-v-73ddcbb9] .v-list-item {
1001
+ border-top: none;
1002
+ }
1003
+ }
1004
+ .second-active[data-v-73ddcbb9] .v-list-item__title {
1005
+ color: #4caf50 !important;
1006
+ }
1007
+ .second-active[data-v-73ddcbb9] {
1008
+ background-color: rgba(76, 175, 80, 0.1) !important;
1009
+ }
1010
+ .jh-toolbar-title[data-v-73ddcbb9] {
1011
+ height: 51px;
1012
+ line-height: 51px;
1013
+ }
1014
+ .v-toolbar__title[data-v-73ddcbb9] {
1015
+ min-width: 200px;
1016
+ }
1017
+ .jh-menu-drawer-close-float-btn[data-v-73ddcbb9] {
1018
+ top: 120px !important;
1019
+ right: -40px;
1020
+ position: fixed;
1021
+ left: auto !important;
1022
+ }
1023
+ .jh-header-tab.v-tab--active[data-v-73ddcbb9] {
1024
+ color: var(--v-grey-darken4) !important;
1025
+ }
1026
+ .jh-header-tab.jh-header-tab-active[data-v-73ddcbb9] {
1027
+ color: #4caf50 !important;
1028
+ }
1029
+ .jh-avatar-menu-btn[data-v-73ddcbb9] {
1030
+ cursor: pointer;
1031
+ transition: all 0.3s;
1032
+ border-radius: 5px;
1033
+ }
1034
+ .jh-avatar-menu-btn[data-v-73ddcbb9]:hover {
1035
+ opacity: 0.8;
1036
+ }
1037
+ .jh-right-menu[data-v-73ddcbb9] svg {
1038
+ width: 28px;
1039
+ height: 28px;
1040
+ vertical-align: middle;
1041
+ }
1042
+ .jh-divider[data-v-73ddcbb9] {
1043
+ border-color: rgba(0, 0, 0, 0.08);
1044
+ }
1045
+
1046
+
1047
+ .jh-scene[data-v-50ab6d9d] {
1048
+ display: inline-block;
1049
+ }
1050
+ .scene-manage[data-v-50ab6d9d] .scene-item:not(:last-child) {
1051
+ border-bottom: 1px solid #eeeeee;
1052
+ }
1053
+ .jh-input-label[data-v-50ab6d9d] {
1054
+ font-size: 14px;
1055
+ color: rgba(0, 0, 0, 0.6);
1056
+ display: block;
1057
+ margin-bottom: 8px;
1058
+ }
1059
+
1060
+
1061
+ .date-range-picker-container[data-v-f2799a5a] {
1062
+ position: relative;
1063
+ }
1064
+ .quick-select-list[data-v-f2799a5a] {
1065
+ min-width: 100px;
1066
+ border-right: 1px solid #e0e0e0;
1067
+ }
1068
+ .quick-select-list[data-v-f2799a5a] .v-item--active {
1069
+ background-color: rgba(25, 118, 210, 0.12);
1070
+ }
1071
+
1072
+
1073
+ .jh-form-fields[data-v-666784d9] {
1074
+ width: 100%;
1075
+ }
1076
+ .jh-form-fields--bordered[data-v-666784d9] {
1077
+ border: 1px solid rgba(0, 0, 0, 0.12);
1078
+ border-radius: 4px;
1079
+ padding: 16px;
1080
+ }
1081
+ .jh-form-fields-header[data-v-666784d9] {
1082
+ margin-bottom: 16px;
1083
+ }
1084
+ .jh-form-fields-title[data-v-666784d9] {
1085
+ font-size: 16px;
1086
+ font-weight: 500;
1087
+ color: rgba(0, 0, 0, 0.85);
1088
+ display: flex;
1089
+ align-items: center;
1090
+ }
1091
+ .jh-form-fields-description[data-v-666784d9] {
1092
+ font-size: 14px;
1093
+ color: rgba(0, 0, 0, 0.45);
1094
+ margin-top: 4px;
1095
+ line-height: 1.5;
1096
+ }
1097
+ .jh-form-fields--horizontal .jh-field-label--horizontal[data-v-666784d9] {
1098
+ padding-top: 0;
1099
+ line-height: 1.5;
1100
+ }
1101
+ .jh-form-fields--inline .v-input[data-v-666784d9] {
1102
+ margin-bottom: 0 !important;
1103
+ }
1104
+ .jh-form-fields--readonly .jh-form-readonly-text[data-v-666784d9] {
1105
+ padding: 8px 0;
1106
+ min-height: 40px;
1107
+ color: rgba(0, 0, 0, 0.87);
1108
+ }
1109
+ .jh-field-label[data-v-666784d9] {
1110
+ }
1111
+ .jh-field-label--horizontal[data-v-666784d9] {
1112
+ padding-right: 12px;
1113
+ }
1114
+ .jh-field-label--vertical[data-v-666784d9] {
1115
+ display: block;
1116
+ }
1117
+ .jh-form-group-title[data-v-666784d9] {
1118
+ margin-top: 8px;
1119
+ margin-bottom: 16px;
1120
+ }
1121
+ .jh-form-group-title h3[data-v-666784d9] {
1122
+ color: rgba(0, 0, 0, 0.85);
1123
+ font-weight: 500;
1124
+ }
1125
+ .jh-field-wrapper[data-v-666784d9] {
1126
+ width: 100%;
1127
+ }
1128
+ .jh-field-input[data-v-666784d9] {
1129
+ width: 100%;
1130
+ }
1131
+ .jh-form-readonly-text[data-v-666784d9] {
1132
+ word-break: break-word;
1133
+ }
1134
+ .jh-field-extra[data-v-666784d9] {
1135
+ margin-top: -8px;
1136
+ line-height: 1.5;
1137
+ }
1138
+ .jh-color-preview[data-v-666784d9] {
1139
+ display: inline-block;
1140
+ width: 20px;
1141
+ height: 20px;
1142
+ border-radius: 4px;
1143
+ border: 1px solid rgba(0, 0, 0, 0.2);
1144
+ }
1145
+
1146
+
1147
+ .jh-query-filter[data-v-3f67f486] {
1148
+ padding: 16px;
1149
+ background: #fff;
1150
+ border-radius: 4px;
1151
+ }
1152
+
1153
+ /* 按钮容器样式 */
1154
+ .jh-query-filter-buttons[data-v-3f67f486] {
1155
+ display: flex;
1156
+ align-items: center;
1157
+ gap: 8px;
1158
+ }
1159
+
1160
+ /* 查询按钮样式 */
1161
+ .jh-query-filter-search-btn[data-v-3f67f486] {
1162
+ min-width: 80px;
1163
+ }
1164
+
1165
+ /* 重置按钮样式 */
1166
+ .jh-query-filter-reset-btn[data-v-3f67f486] {
1167
+ min-width: 80px;
1168
+ }
1169
+
1170
+ /* 展开/收起按钮样式 */
1171
+ .jh-query-filter-collapse-btn[data-v-3f67f486] {
1172
+ margin-left: 8px;
1173
+ }
1174
+
1175
+ /* Flex 工具类 */
1176
+ .d-flex[data-v-3f67f486] {
1177
+ display: flex;
1178
+ }
1179
+ .align-center[data-v-3f67f486] {
1180
+ align-items: center;
1181
+ }
1182
+ .align-end[data-v-3f67f486] {
1183
+ align-items: flex-end;
1184
+ }
1185
+ .gap-2[data-v-3f67f486] {
1186
+ gap: 8px;
1187
+ }
1188
+
1189
+
1190
+ /* 表格容器 */
1191
+ .jh-pro-table[data-v-5f4cb103] {
1192
+ border-radius: 8px;
1193
+ position: relative;
1194
+ }
1195
+
1196
+
1197
+ /* 幽灵模式 */
1198
+ .jh-pro-table-ghost[data-v-5f4cb103] {
1199
+ background: transparent;
1200
+ border: none;
1201
+ box-shadow: none;
1202
+ }
1203
+
1204
+ /* 表格标题区 */
1205
+ .jh-pro-table-header[data-v-5f4cb103] {
1206
+ display: flex;
1207
+ align-items: center;
1208
+ justify-content: space-between;
1209
+ padding: 16px 24px;
1210
+ border-bottom: 1px solid #f0f0f0;
1211
+ min-height: 64px;
1212
+ }
1213
+ .jh-pro-table-header-left[data-v-5f4cb103] {
1214
+ display: flex;
1215
+ align-items: center;
1216
+ gap: 16px;
1217
+ flex: 1;
1218
+ }
1219
+ .jh-pro-table-header-right[data-v-5f4cb103] {
1220
+ display: flex;
1221
+ align-items: center;
1222
+ gap: 8px;
1223
+ }
1224
+ .jh-pro-table-title[data-v-5f4cb103] {
1225
+ display: flex;
1226
+ align-items: center;
1227
+ font-size: 16px;
1228
+ font-weight: 500;
1229
+ color: rgba(0, 0, 0, 0.85);
1230
+ }
1231
+ .jh-pro-table-title-text[data-v-5f4cb103] {
1232
+ line-height: 24px;
1233
+ }
1234
+ .jh-pro-table-header-actions[data-v-5f4cb103] {
1235
+ display: flex;
1236
+ align-items: center;
1237
+ gap: 8px;
1238
+ }
1239
+
1240
+ /* 批量操作提示栏 */
1241
+ .jh-pro-table-alert[data-v-5f4cb103] {
1242
+ display: flex;
1243
+ align-items: center;
1244
+ justify-content: space-between;
1245
+ padding: 12px 24px;
1246
+ background: #e6f7ff;
1247
+ border: 1px solid #91d5ff;
1248
+ border-radius: 4px;
1249
+ margin: 16px 0 0;
1250
+ }
1251
+ .jh-pro-table-alert-info[data-v-5f4cb103] {
1252
+ display: flex;
1253
+ align-items: center;
1254
+ font-size: 14px;
1255
+ color: rgba(0, 0, 0, 0.65);
1256
+ }
1257
+ .jh-pro-table-alert-actions[data-v-5f4cb103] {
1258
+ display: flex;
1259
+ align-items: center;
1260
+ gap: 8px;
1261
+ }
1262
+
1263
+ /* 工具栏 */
1264
+ .jh-pro-table-toolbar[data-v-5f4cb103] {
1265
+ padding: 16px 0 !important;
1266
+ }
1267
+
1268
+ /* 表格额外内容区 */
1269
+ .jh-pro-table-extra[data-v-5f4cb103] {
1270
+ padding: 16px 24px;
1271
+ border-top: 1px solid #f0f0f0;
1272
+ }
1273
+
1274
+ /* 移动端适配 */
1275
+ @media (max-width: 600px) {
1276
+ .jh-pro-table-header[data-v-5f4cb103] {
1277
+ flex-direction: column;
1278
+ align-items: flex-start;
1279
+ padding: 12px 16px;
1280
+ min-height: auto;
1281
+ }
1282
+ .jh-pro-table-header-left[data-v-5f4cb103] {
1283
+ flex-direction: column;
1284
+ align-items: flex-start;
1285
+ gap: 8px;
1286
+ width: 100%;
1287
+ }
1288
+ .jh-pro-table-header-right[data-v-5f4cb103] {
1289
+ width: 100%;
1290
+ justify-content: flex-end;
1291
+ margin-top: 8px;
1292
+ }
1293
+ .jh-pro-table-alert[data-v-5f4cb103] {
1294
+ flex-direction: column;
1295
+ align-items: flex-start;
1296
+ gap: 8px;
1297
+ margin: 12px 16px 0;
1298
+ padding: 8px 12px;
1299
+ }
1300
+ .jh-pro-table-alert-actions[data-v-5f4cb103] {
1301
+ width: 100%;
1302
+ justify-content: flex-start;
1303
+ }
1304
+ .jh-pro-table-toolbar[data-v-5f4cb103] {
1305
+ padding: 12px 16px !important;
1306
+ }
1307
+ .jh-pro-table-extra[data-v-5f4cb103] {
1308
+ padding: 12px 16px;
1309
+ }
1310
+ }
1311
+
1312
+ /* 工具栏搜索框响应式 */
1313
+ .jh-toolbar-search[data-v-5f4cb103] {
1314
+ max-width: 200px;
1315
+ min-width: 120px;
1316
+ }
1317
+ @media (max-width: 600px) {
1318
+ .jh-toolbar-search[data-v-5f4cb103] {
1319
+ max-width: 150px;
1320
+ min-width: 100px;
1321
+ }
1322
+ }
1323
+
1324
+ /* 表格密度 */
1325
+ .jh-table-default[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1326
+ .jh-table-default[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1327
+ height: 48px !important;
1328
+ padding: 0 16px !important;
1329
+ }
1330
+ .jh-table-medium[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1331
+ .jh-table-medium[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1332
+ height: 40px !important;
1333
+ padding: 0 12px !important;
1334
+ }
1335
+ .jh-table-compact[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1336
+ .jh-table-compact[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1337
+ height: 32px !important;
1338
+ padding: 0 8px !important;
1339
+ font-size: 13px !important;
1340
+ }
1341
+
1342
+ /* 移动端表格密度调整 */
1343
+ @media (max-width: 600px) {
1344
+ .jh-table-default[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1345
+ .jh-table-default[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1346
+ height: 44px !important;
1347
+ padding: 0 12px !important;
1348
+ font-size: 14px !important;
1349
+ }
1350
+ .jh-table-medium[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1351
+ .jh-table-medium[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1352
+ height: 40px !important;
1353
+ padding: 0 10px !important;
1354
+ font-size: 13px !important;
1355
+ }
1356
+ .jh-table-compact[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > tbody > tr > td,
1357
+ .jh-table-compact[data-v-5f4cb103] .v-data-table > .v-data-table__wrapper > table > thead > tr > th {
1358
+ height: 36px !important;
1359
+ padding: 0 8px !important;
1360
+ font-size: 12px !important;
1361
+ }
1362
+ }
1363
+
1364
+ /* 移动端操作列样式优化 */
1365
+ @media (max-width: 600px) {
1366
+ /* 操作列下拉菜单触发器 */
1367
+ .jh-pro-table[data-v-5f4cb103] .v-data-table td[data-action-column] {
1368
+ padding: 0 8px !important;
1369
+ }
1370
+
1371
+ /* 操作按钮文字在小屏幕隐藏 */
1372
+ .jh-pro-table[data-v-5f4cb103] .v-btn--small .v-btn__content > span:not(.v-icon) {
1373
+ font-size: 13px;
1374
+ }
1375
+ }
1376
+
1377
+ /* 全屏样式 */
1378
+ .jh-table-fullscreen[data-v-5f4cb103] {
1379
+ position: fixed;
1380
+ top: 0;
1381
+ left: 0;
1382
+ right: 0;
1383
+ bottom: 0;
1384
+ z-index: 9999;
1385
+ background: white;
1386
+ padding: 16px;
1387
+ overflow: auto;
1388
+ }
1389
+ @media (max-width: 600px) {
1390
+ .jh-table-fullscreen[data-v-5f4cb103] {
1391
+ padding: 8px;
1392
+ }
1393
+ }
1394
+
1395
+ /* 无数据样式 */
1396
+ .jh-no-data[data-v-5f4cb103] {
1397
+ text-align: center;
1398
+ padding: 40px 0;
1399
+ color: rgba(0, 0, 0, 0.45);
1400
+ }
1401
+ .jh-table-schema-cell[data-v-5f4cb103] {
1402
+ min-width: 0;
1403
+ }
1404
+ .jh-table-json[data-v-5f4cb103] {
1405
+ margin: 0;
1406
+ font-family: 'Fira Code', 'JetBrains Mono', Consolas, monospace;
1407
+ font-size: 12px;
1408
+ white-space: pre-wrap;
1409
+ word-break: break-word;
1410
+ }
1411
+ .jh-table-code[data-v-5f4cb103] {
1412
+ font-family: 'Fira Code', 'JetBrains Mono', Consolas, monospace;
1413
+ font-size: 12px;
1414
+ background: #f4f5f7;
1415
+ padding: 2px 6px;
1416
+ border-radius: 4px;
1417
+ }
1418
+ @media (max-width: 600px) {
1419
+ .jh-no-data[data-v-5f4cb103] {
1420
+ padding: 24px 0;
1421
+ }
1422
+ .jh-no-data .v-icon[data-v-5f4cb103] {
1423
+ font-size: 48px !important;
1424
+ }
1425
+ }
1426
+
1427
+ /* 游标指针 */
1428
+ .cursor-pointer[data-v-5f4cb103] {
1429
+ cursor: pointer;
1430
+ }
1431
+
1432
+ /* Flex 工具类(如果没有 Tailwind) */
1433
+ .flex[data-v-5f4cb103] {
1434
+ display: flex;
1435
+ }
1436
+ .items-center[data-v-5f4cb103] {
1437
+ align-items: center;
1438
+ }
1439
+ .justify-end[data-v-5f4cb103] {
1440
+ justify-content: flex-end;
1441
+ }
1442
+ .flex-wrap[data-v-5f4cb103] {
1443
+ flex-wrap: wrap;
1444
+ }
1445
+ .gap-1[data-v-5f4cb103] {
1446
+ gap: 4px;
1447
+ }
1448
+ .gap-2[data-v-5f4cb103] {
1449
+ gap: 8px;
1450
+ }
1451
+
1452
+ /* 移动端工具栏响应式 */
1453
+ @media (max-width: 600px) {
1454
+ .jh-pro-table[data-v-5f4cb103] .v-row {
1455
+ margin: 0 !important;
1456
+ }
1457
+
1458
+ /* 工具栏按钮间距调整 */
1459
+ .flex.gap-2[data-v-5f4cb103] {
1460
+ gap: 4px;
1461
+ }
1462
+
1463
+ /* 密度和列设置菜单按钮在移动端可选择隐藏 */
1464
+ .jh-pro-table[data-v-5f4cb103] .v-btn--icon.v-size--small {
1465
+ width: 32px;
1466
+ height: 32px;
1467
+ }
1468
+ }
1469
+
1470
+ /* 分页器移动端优化 */
1471
+ @media (max-width: 600px) {
1472
+ .jh-pro-table[data-v-5f4cb103] .v-data-footer {
1473
+ flex-wrap: wrap;
1474
+ justify-content: center;
1475
+ padding: 8px 4px !important;
1476
+ }
1477
+ .jh-pro-table[data-v-5f4cb103] .v-data-footer__select {
1478
+ margin-left: 8px !important;
1479
+ margin-right: 8px !important;
1480
+ }
1481
+ .jh-pro-table[data-v-5f4cb103] .v-data-footer__pagination {
1482
+ margin: 4px 8px !important;
1483
+ }
1484
+ }
1485
+
1486
+
1487
+ .border-right[data-v-4421993c] {
1488
+ border-right: 1px solid #e0e0e0;
1489
+ }
1490
+ .tree-item[data-v-4421993c] {
1491
+ cursor: pointer;
1492
+ border-radius: 4px;
1493
+ transition: background-color 0.2s;
1494
+ }
1495
+ .tree-item[data-v-4421993c]:hover {
1496
+ background-color: #f5f5f5;
1497
+ }
1498
+
1499
+ /* 滚动条样式 */
1500
+ [data-v-4421993c]::-webkit-scrollbar {
1501
+ width: 6px;
1502
+ height: 6px;
1503
+ }
1504
+ [data-v-4421993c]::-webkit-scrollbar-track {
1505
+ background: #f1f1f1;
1506
+ }
1507
+ [data-v-4421993c]::-webkit-scrollbar-thumb {
1508
+ background: #c1c1c1;
1509
+ border-radius: 3px;
1510
+ }
1511
+ [data-v-4421993c]::-webkit-scrollbar-thumb:hover {
1512
+ background: #a8a8a8;
1513
+ }
1514
+
1515
+
1516
+ .jh-layout-main[data-v-181b7ada] {
1517
+ min-height: 100vh;
1518
+ }
1519
+ .jh-layout-content[data-v-181b7ada] {
1520
+ min-height: calc(100vh - 52px);
1521
+ transition: background-color 0.3s;
1522
+ }
1523
+ .jh-layout-settings-btn[data-v-181b7ada] {
1524
+ bottom: 24px !important;
1525
+ z-index: 999;
1526
+ }
1527
+ .jh-layout-settings-btn[data-v-181b7ada]:hover {
1528
+ transform: rotate(90deg);
1529
+ transition: transform 0.3s;
1530
+ }
1531
+
1532
+ /* 设置抽屉样式优化 */
1533
+ .jh-layout-settings[data-v-181b7ada] .v-list-item {
1534
+ padding: 12px 16px;
1535
+ }
1536
+ .jh-layout-settings[data-v-181b7ada] .v-list-item__content {
1537
+ padding: 0;
1538
+ }
1539
+
1540
+ /* 响应式调整 */
1541
+ @media (max-width: 600px) {
1542
+ .jh-layout-content[data-v-181b7ada] {
1543
+ min-height: calc(100vh - 52px);
1544
+ }
1545
+ .jh-layout-settings-btn[data-v-181b7ada] {
1546
+ bottom: 16px !important;
1547
+ right: 16px !important;
1548
+ }
1549
+ }
1550
+
1551
+
1552
+ /* 卡片容器 */
1553
+ .jh-card[data-v-7e359408] {
1554
+ display: flex;
1555
+ flex-direction: column;
1556
+ background: #ffffff;
1557
+ border-radius: 4px;
1558
+ transition: box-shadow 0.3s;
1559
+ position: relative;
1560
+ width: 100%;
1561
+ }
1562
+
1563
+ /* 边框 */
1564
+ .jh-card--bordered[data-v-7e359408] {
1565
+ border: 1px solid #e8e8e8;
1566
+ }
1567
+
1568
+ /* 幽灵模式 */
1569
+ .jh-card--ghost[data-v-7e359408] {
1570
+ background: transparent;
1571
+ border: none;
1572
+ }
1573
+
1574
+ /* 悬浮效果 */
1575
+ .jh-card--hoverable[data-v-7e359408]:hover {
1576
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
1577
+ cursor: pointer;
1578
+ }
1579
+
1580
+ /* 分栏模式 */
1581
+ .jh-card--split-vertical[data-v-7e359408],
1582
+ .jh-card--split-horizontal[data-v-7e359408] {
1583
+ display: flex;
1584
+ }
1585
+ .jh-card--split-vertical[data-v-7e359408] {
1586
+ flex-direction: row;
1587
+ }
1588
+ .jh-card--split-horizontal[data-v-7e359408] {
1589
+ flex-direction: column;
1590
+ }
1591
+ .jh-card--split-vertical > .jh-card[data-v-7e359408],
1592
+ .jh-card--split-horizontal > .jh-card[data-v-7e359408] {
1593
+ border-radius: 0;
1594
+ }
1595
+ .jh-card--split-vertical > .jh-card[data-v-7e359408]:not(:last-child) {
1596
+ border-right: 1px solid #e8e8e8;
1597
+ }
1598
+ .jh-card--split-horizontal > .jh-card[data-v-7e359408]:not(:last-child) {
1599
+ border-bottom: 1px solid #e8e8e8;
1600
+ }
1601
+
1602
+ /* 居中布局 */
1603
+ .jh-card--layout-center[data-v-7e359408] {
1604
+ display: flex;
1605
+ justify-content: center;
1606
+ align-items: center;
1607
+ }
1608
+
1609
+ /* 标题栏 */
1610
+ .jh-card-header[data-v-7e359408] {
1611
+ display: flex;
1612
+ align-items: center;
1613
+ justify-content: space-between;
1614
+ padding: 16px 24px;
1615
+ min-height: 56px;
1616
+ }
1617
+ .jh-card-header--small[data-v-7e359408] {
1618
+ padding: 12px 16px;
1619
+ min-height: 48px;
1620
+ }
1621
+ .jh-card-header-left[data-v-7e359408] {
1622
+ display: flex;
1623
+ align-items: center;
1624
+ flex: 1;
1625
+ }
1626
+ .jh-card-title[data-v-7e359408] {
1627
+ font-size: 16px;
1628
+ font-weight: 500;
1629
+ color: rgba(0, 0, 0, 0.85);
1630
+ line-height: 1.5;
1631
+ }
1632
+ .jh-card-extra[data-v-7e359408] {
1633
+ color: rgba(0, 0, 0, 0.65);
1634
+ font-size: 14px;
1635
+ }
1636
+
1637
+ /* 内容区 */
1638
+ .jh-card-body[data-v-7e359408] {
1639
+ padding: 24px;
1640
+ flex: 1;
1641
+ display: flex;
1642
+ flex-direction: column;
1643
+ }
1644
+ .jh-card-body--small[data-v-7e359408] {
1645
+ padding: 16px;
1646
+ }
1647
+ .jh-card-body--ghost[data-v-7e359408] {
1648
+ padding: 0;
1649
+ }
1650
+ .jh-card-body--center[data-v-7e359408] {
1651
+ justify-content: center;
1652
+ align-items: center;
1653
+ }
1654
+
1655
+ /* 加载状态 */
1656
+ .jh-card-loading[data-v-7e359408] {
1657
+ display: flex;
1658
+ justify-content: center;
1659
+ align-items: center;
1660
+ min-height: 100px;
1661
+ }
1662
+
1663
+ /* 操作区 */
1664
+ .jh-card-actions[data-v-7e359408] {
1665
+ display: flex;
1666
+ align-items: center;
1667
+ justify-content: space-around;
1668
+ padding: 12px 0;
1669
+ background: #fafafa;
1670
+ border-top: 1px solid #e8e8e8;
1671
+ }
1672
+ .jh-card-action-item[data-v-7e359408] {
1673
+ display: flex;
1674
+ align-items: center;
1675
+ color: rgba(0, 0, 0, 0.65);
1676
+ cursor: pointer;
1677
+ transition: color 0.3s;
1678
+ }
1679
+ .jh-card-action-item[data-v-7e359408]:hover {
1680
+ color: #1890ff;
1681
+ }
1682
+
1683
+ /* Tabs */
1684
+ .jh-card-tabs[data-v-7e359408] {
1685
+ border-bottom: 1px solid #e8e8e8;
1686
+ }
1687
+ .jh-card-tabs--card .v-tab[data-v-7e359408] {
1688
+ border: 1px solid #e8e8e8;
1689
+ border-bottom: none;
1690
+ background: #fafafa;
1691
+ margin-right: 2px;
1692
+ }
1693
+ .jh-card-tabs--card .v-tab--active[data-v-7e359408] {
1694
+ background: #ffffff;
1695
+ }
1696
+
1697
+ /* 小尺寸 */
1698
+ .jh-card--small .jh-card-title[data-v-7e359408] {
1699
+ font-size: 14px;
1700
+ }
1701
+
1702
+ /* Divider */
1703
+ .jh-card-divider[data-v-7e359408] {
1704
+ margin: 0;
1705
+ }
1706
+
1707
+
1708
+ /* 卡片容器 */
1709
+ .jh-statistic-card[data-v-39b0e8b7] {
1710
+ background: #ffffff;
1711
+ border-radius: 4px;
1712
+ padding: 24px;
1713
+ position: relative;
1714
+ transition: box-shadow 0.3s;
1715
+ }
1716
+ .jh-statistic-card--bordered[data-v-39b0e8b7] {
1717
+ border: 1px solid #e8e8e8;
1718
+ }
1719
+ .jh-statistic-card[data-v-39b0e8b7]:hover {
1720
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
1721
+ }
1722
+
1723
+ /* 标题区域 */
1724
+ .jh-statistic-card-header[data-v-39b0e8b7] {
1725
+ display: flex;
1726
+ align-items: center;
1727
+ margin-bottom: 12px;
1728
+ }
1729
+ .jh-statistic-card-title[data-v-39b0e8b7] {
1730
+ color: rgba(0, 0, 0, 0.65);
1731
+ font-size: 14px;
1732
+ line-height: 22px;
1733
+ }
1734
+ .jh-statistic-card-tooltip[data-v-39b0e8b7] {
1735
+ margin-left: 4px;
1736
+ color: rgba(0, 0, 0, 0.45);
1737
+ }
1738
+
1739
+ /* 内容区域 */
1740
+ .jh-statistic-card-content[data-v-39b0e8b7] {
1741
+ display: flex;
1742
+ align-items: flex-start;
1743
+ justify-content: space-between;
1744
+ }
1745
+ .jh-statistic-card--vertical .jh-statistic-card-content[data-v-39b0e8b7] {
1746
+ flex-direction: column;
1747
+ }
1748
+
1749
+ /* 统计数据区域 */
1750
+ .jh-statistic-card-statistic[data-v-39b0e8b7] {
1751
+ flex: 1;
1752
+ }
1753
+
1754
+ /* 数值区域 */
1755
+ .jh-statistic-card-value-wrapper[data-v-39b0e8b7] {
1756
+ display: flex;
1757
+ align-items: baseline;
1758
+ margin-bottom: 8px;
1759
+ }
1760
+ .jh-statistic-card-value[data-v-39b0e8b7] {
1761
+ font-size: 30px;
1762
+ font-weight: 500;
1763
+ color: rgba(0, 0, 0, 0.85);
1764
+ line-height: 38px;
1765
+ }
1766
+ .jh-statistic-card-prefix[data-v-39b0e8b7],
1767
+ .jh-statistic-card-suffix[data-v-39b0e8b7] {
1768
+ font-size: 16px;
1769
+ color: rgba(0, 0, 0, 0.65);
1770
+ margin: 0 4px;
1771
+ }
1772
+
1773
+ /* 趋势指标 */
1774
+ .jh-statistic-card-trend[data-v-39b0e8b7] {
1775
+ display: flex;
1776
+ align-items: center;
1777
+ font-size: 14px;
1778
+ margin-bottom: 4px;
1779
+ }
1780
+ .jh-statistic-card-trend-icon[data-v-39b0e8b7] {
1781
+ margin-right: 4px;
1782
+ }
1783
+
1784
+ /* 描述信息 */
1785
+ .jh-statistic-card-description[data-v-39b0e8b7] {
1786
+ color: rgba(0, 0, 0, 0.45);
1787
+ font-size: 14px;
1788
+ line-height: 22px;
1789
+ }
1790
+
1791
+ /* 图表区域 */
1792
+ .jh-statistic-card-chart[data-v-39b0e8b7] {
1793
+ margin-left: 16px;
1794
+ display: flex;
1795
+ align-items: center;
1796
+ }
1797
+ .jh-statistic-card--vertical .jh-statistic-card-chart[data-v-39b0e8b7] {
1798
+ margin-left: 0;
1799
+ margin-top: 16px;
1800
+ width: 100%;
1801
+ }
1802
+
1803
+ /* 底部区域 */
1804
+ .jh-statistic-card-footer[data-v-39b0e8b7] {
1805
+ margin-top: 16px;
1806
+ padding-top: 12px;
1807
+ border-top: 1px solid #e8e8e8;
1808
+ color: rgba(0, 0, 0, 0.65);
1809
+ font-size: 14px;
1810
+ }
1811
+
1812
+ /* 加载状态 */
1813
+ .jh-statistic-card--loading[data-v-39b0e8b7] {
1814
+ opacity: 0.6;
1815
+ pointer-events: none;
1816
+ }
1817
+
1818
+
1819
+ .jh-watermark[data-v-44935ffe] {
1820
+ position: relative;
1821
+ min-height: 100%;
1822
+ }
1823
+ .jh-watermark-layer[data-v-44935ffe] {
1824
+ position: absolute;
1825
+ inset: 0;
1826
+ pointer-events: none;
1827
+ background-repeat: repeat;
1828
+ }
1829
+
1830
+
1831
+ /* 自定义样式可以在这里添加 */
1832
+
1833
+
1834
+ .jh-toast__content[data-v-0da7bef5] {
1835
+ display: flex;
1836
+ align-items: center;
1837
+ flex: 1;
1838
+ }
1839
+ .jh-toast__icon[data-v-0da7bef5] {
1840
+ margin-right: 12px;
1841
+ }
1842
+ .jh-toast__message[data-v-0da7bef5] {
1843
+ flex: 1;
1844
+ word-break: break-word;
1845
+ }
1846
+
1847
+ /* 响应式样式 */
1848
+ @media screen and (max-width: 600px) {
1849
+ .jh-toast__message[data-v-0da7bef5] {
1850
+ max-width: calc(100vw - 200px);
1851
+ }
1852
+ }
1853
+
1854
+
1855
+ .text-pre-line[data-v-4d697b30] {
1856
+ white-space: pre-line;
1857
+ }
1858
+
1859
+
1860
+ /* 表单布局样式 */
1861
+ .jh-form[data-v-0a365969] {
1862
+ width: 100%;
1863
+ }
1864
+
1865
+ /* 水平布局 */
1866
+ .jh-form--horizontal .jh-field-label--horizontal[data-v-0a365969] {
1867
+ padding-top: 0;
1868
+ line-height: 1.5;
1869
+ }
1870
+
1871
+ /* 行内布局 */
1872
+ .jh-form--inline .v-input[data-v-0a365969] {
1873
+ margin-bottom: 0 !important;
1874
+ }
1875
+
1876
+ /* 只读模式 */
1877
+ .jh-form--readonly .jh-form-readonly-text[data-v-0a365969] {
1878
+ padding: 8px 0;
1879
+ min-height: 40px;
1880
+ color: rgba(0, 0, 0, 0.87);
1881
+ }
1882
+
1883
+ /* 字段标签 */
1884
+ .jh-field-label[data-v-0a365969] {
1885
+ }
1886
+ .jh-field-label--horizontal[data-v-0a365969] {
1887
+ padding-right: 12px;
1888
+ }
1889
+ .jh-field-label--vertical[data-v-0a365969] {
1890
+ display: block;
1891
+ }
1892
+
1893
+ /* 表单分组标题 */
1894
+ .jh-form-group-title[data-v-0a365969] {
1895
+ margin-top: 8px;
1896
+ margin-bottom: 16px;
1897
+ }
1898
+ .jh-form-group-title h3[data-v-0a365969] {
1899
+ color: rgba(0, 0, 0, 0.85);
1900
+ font-weight: 500;
1901
+ }
1902
+
1903
+ /* 字段包装器 */
1904
+ .jh-field-wrapper[data-v-0a365969] {
1905
+ width: 100%;
1906
+ }
1907
+
1908
+ /* 字段输入区域 */
1909
+ .jh-field-input[data-v-0a365969] {
1910
+ width: 100%;
1911
+ }
1912
+
1913
+ /* 只读文本 */
1914
+ .jh-form-readonly-text[data-v-0a365969] {
1915
+ word-break: break-word;
1916
+ }
1917
+
1918
+ /* 额外提示信息 */
1919
+ .jh-field-extra[data-v-0a365969] {
1920
+ margin-top: -8px;
1921
+ line-height: 1.5;
1922
+ }
1923
+
1924
+
1925
+ /* 输入标签 */
1926
+ .jh-input-label[data-v-9ad4133c] {
1927
+ display: block;
1928
+ font-size: 14px;
1929
+ color: rgba(0, 0, 0, 0.6);
1930
+ margin-bottom: 4px;
1931
+ }
1932
+
1933
+ /* 输入框样式 */
1934
+ .jh-v-input[data-v-9ad4133c] {
1935
+ margin-top: 0;
1936
+ }
1937
+
1938
+
1939
+ /* 输入标签 */
1940
+ .jh-input-label[data-v-b71c0556] {
1941
+ display: block;
1942
+ font-size: 14px;
1943
+ color: rgba(0, 0, 0, 0.6);
1944
+ margin-bottom: 4px;
1945
+ }
1946
+
1947
+ /* 输入框样式 */
1948
+ .jh-v-input[data-v-b71c0556] {
1949
+ margin-top: 0;
1950
+ }
1951
+
1952
+
1953
+ .jh-drawer-header[data-v-51648bd1] {
1954
+ border-bottom: 1px solid #e0e0e0;
1955
+ }
1956
+ .jh-drawer-action-btn-group[data-v-51648bd1] {
1957
+ display: flex;
1958
+ align-items: center;
1959
+ }
1960
+ .jh-drawer-bottom[data-v-51648bd1] {
1961
+ border-top-left-radius: 16px;
1962
+ border-top-right-radius: 16px;
1963
+ }
1964
+ .drawer-close-float-btn[data-v-51648bd1] {
1965
+ z-index: 1000;
1966
+ }
1967
+
1968
+
1969
+ .jh-steps-form-container[data-v-7e20b247] {
1970
+ display: flex;
1971
+ width: 100%;
1972
+ }
1973
+
1974
+ /* 垂直布局样式 */
1975
+ .jh-steps-form-stepper[data-v-7e20b247] {
1976
+ width: 250px;
1977
+ border-right: 1px solid rgba(0, 0, 0, 0.12);
1978
+ padding: 16px;
1979
+ }
1980
+ .jh-steps-form-content[data-v-7e20b247] {
1981
+ flex: 1;
1982
+ padding: 16px 24px;
1983
+ }
1984
+ .vertical-steps[data-v-7e20b247] {
1985
+ display: flex;
1986
+ flex-direction: column;
1987
+ }
1988
+ .vertical-step-item[data-v-7e20b247] {
1989
+ display: flex;
1990
+ align-items: flex-start;
1991
+ padding: 12px 0;
1992
+ position: relative;
1993
+ cursor: default;
1994
+ }
1995
+ .vertical-step-item.editable[data-v-7e20b247] {
1996
+ cursor: pointer;
1997
+ }
1998
+ .vertical-step-item[data-v-7e20b247]:not(:last-child)::after {
1999
+ content: '';
2000
+ position: absolute;
2001
+ left: 15px;
2002
+ top: 40px;
2003
+ width: 1px;
2004
+ height: calc(100% - 16px);
2005
+ background-color: rgba(0, 0, 0, 0.12);
2006
+ }
2007
+ .vertical-step-item.completed[data-v-7e20b247]:not(:last-child)::after {
2008
+ background-color: #4caf50;
2009
+ }
2010
+ .step-number[data-v-7e20b247] {
2011
+ width: 32px;
2012
+ height: 32px;
2013
+ border-radius: 50%;
2014
+ display: flex;
2015
+ align-items: center;
2016
+ justify-content: center;
2017
+ background-color: rgba(0, 0, 0, 0.12);
2018
+ color: rgba(0, 0, 0, 0.6);
2019
+ font-size: 14px;
2020
+ font-weight: 500;
2021
+ margin-right: 12px;
2022
+ flex-shrink: 0;
2023
+ }
2024
+ .vertical-step-item.active .step-number[data-v-7e20b247] {
2025
+ background-color: #1976d2;
2026
+ color: white;
2027
+ }
2028
+ .vertical-step-item.completed .step-number[data-v-7e20b247] {
2029
+ background-color: #4caf50;
2030
+ color: white;
2031
+ }
2032
+ .step-info[data-v-7e20b247] {
2033
+ flex: 1;
2034
+ }
2035
+ .step-title[data-v-7e20b247] {
2036
+ font-size: 14px;
2037
+ font-weight: 500;
2038
+ line-height: 1.2;
2039
+ margin-bottom: 4px;
2040
+ }
2041
+ .vertical-step-item.active .step-title[data-v-7e20b247] {
2042
+ color: #1976d2;
2043
+ }
2044
+ .step-subtitle[data-v-7e20b247] {
2045
+ font-size: 12px;
2046
+ color: rgba(0, 0, 0, 0.6);
2047
+ line-height: 1.2;
2048
+ }
2049
+ .jh-steps-form[data-v-7e20b247] {
2050
+ width: 100%;
2051
+ }
2052
+
2053
+ /* 水平布局时隐藏垂直步骤指示器 */
2054
+ .jh-steps-form-container:not(.is-vertical) .jh-steps-form-stepper[data-v-7e20b247] {
2055
+ display: none;
2056
+ }
2057
+ .jh-steps-form-container:not(.is-vertical) .jh-steps-form-content[data-v-7e20b247] {
2058
+ width: 100%;
2059
+ padding: 0;
2060
+ }
2061
+ .step-content[data-v-7e20b247] {
2062
+ min-height: 200px;
2063
+ }
2064
+ .step-actions[data-v-7e20b247] {
2065
+ padding-top: 16px;
2066
+ border-top: 1px solid rgba(0, 0, 0, 0.12);
2067
+ }
2068
+
2069
+ /* 响应式调整 */
2070
+ @media (max-width: 600px) {
2071
+ .step-content[data-v-7e20b247] {
2072
+ min-height: 150px;
2073
+ }
2074
+ }
2075
+
2076
+
2077
+ /* 表单列表容器 */
2078
+ .jh-form-list[data-v-ce7ba014] {
2079
+ width: 100%;
2080
+ }
2081
+
2082
+ /* 列表头部 */
2083
+ .jh-form-list-header[data-v-ce7ba014] {
2084
+ margin-bottom: 16px;
2085
+ }
2086
+
2087
+ /* 列表主体 */
2088
+ .jh-form-list-body[data-v-ce7ba014] {
2089
+ position: relative;
2090
+ }
2091
+ .jh-form-list-body--inline[data-v-ce7ba014] {
2092
+ gap: 8px;
2093
+ }
2094
+
2095
+ /* 列表项 */
2096
+ .jh-form-list-item[data-v-ce7ba014] {
2097
+ position: relative;
2098
+ }
2099
+ .jh-form-list-item--card[data-v-ce7ba014] {
2100
+ transition: box-shadow 0.2s ease;
2101
+ }
2102
+ .jh-form-list-item--card[data-v-ce7ba014]:hover {
2103
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2104
+ }
2105
+ .jh-form-list-item--error[data-v-ce7ba014] {
2106
+ border-color: #f44336 !important;
2107
+ }
2108
+
2109
+ /* 列表项头部 */
2110
+ .jh-form-list-item-header[data-v-ce7ba014] {
2111
+ min-height: 48px;
2112
+ }
2113
+ .jh-form-list-item-index[data-v-ce7ba014] {
2114
+ font-weight: 500;
2115
+ font-size: 14px;
2116
+ color: rgba(0, 0, 0, 0.6);
2117
+ }
2118
+
2119
+ /* 列表项操作 */
2120
+ .jh-form-list-item-actions[data-v-ce7ba014] {
2121
+ display: flex;
2122
+ gap: 4px;
2123
+ }
2124
+
2125
+ /* 拖拽把手 */
2126
+ .jh-form-list-drag-handle[data-v-ce7ba014] {
2127
+ cursor: move;
2128
+ color: rgba(0, 0, 0, 0.4);
2129
+ }
2130
+ .jh-form-list-drag-handle[data-v-ce7ba014]:hover {
2131
+ color: rgba(0, 0, 0, 0.6);
2132
+ }
2133
+
2134
+ /* 拖拽状态 */
2135
+ .jh-form-list-ghost[data-v-ce7ba014] {
2136
+ opacity: 0.5;
2137
+ background: rgba(0, 0, 0, 0.05);
2138
+ }
2139
+ .jh-form-list-dragging[data-v-ce7ba014] {
2140
+ cursor: move;
2141
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
2142
+ }
2143
+
2144
+ /* 列表底部 */
2145
+ .jh-form-list-footer[data-v-ce7ba014] {
2146
+ display: flex;
2147
+ justify-content: center;
2148
+ }
2149
+
2150
+ /* 空列表占位 */
2151
+ .jh-form-list-empty[data-v-ce7ba014] {
2152
+ padding: 60px 20px;
2153
+ text-align: center;
2154
+ color: rgba(0, 0, 0, 0.4);
2155
+ }
2156
+ .jh-form-list-empty p[data-v-ce7ba014] {
2157
+ margin: 0;
2158
+ font-size: 14px;
2159
+ }
2160
+
2161
+ /* 禁用状态 */
2162
+ .jh-form-list--disabled[data-v-ce7ba014] {
2163
+ opacity: 0.6;
2164
+ pointer-events: none;
2165
+ }
2166
+
2167
+ /* 只读状态 */
2168
+ .jh-form-list--readonly .jh-form-list-item-actions[data-v-ce7ba014],
2169
+ .jh-form-list--readonly .jh-form-list-footer[data-v-ce7ba014] {
2170
+ display: none;
2171
+ }
2172
+
2173
+ /* Table 模式样式优化 */
2174
+ .jh-form-list-body--table[data-v-ce7ba014] .v-data-table tbody tr:hover {
2175
+ background-color: rgba(0, 0, 0, 0.02);
2176
+ }
2177
+ .jh-form-list-body--table[data-v-ce7ba014] .v-input {
2178
+ margin-top: 0;
2179
+ padding-top: 0;
2180
+ }
2181
+
2182
+ /* 响应式 */
2183
+ @media (max-width: 600px) {
2184
+ .jh-form-list-item-header[data-v-ce7ba014] {
2185
+ flex-wrap: wrap;
2186
+ }
2187
+ .jh-form-list-item-actions[data-v-ce7ba014] {
2188
+ margin-top: 8px;
2189
+ }
2190
+ }
2191
+
2192
+
2193
+ .aspect-square[data-v-a8e9f800] {
2194
+ aspect-ratio: 1 / 1;
2195
+ }
2196
+ .grid[data-v-a8e9f800] {
2197
+ display: grid;
2198
+ }
2199
+
2200
+
2201
+ [data-v-0d5540e8] .jsoneditor-menu a.jsoneditor-poweredBy {
2202
+ display: none !important;
2203
+ }
2204
+ [data-v-0d5540e8] .jsoneditor-menu {
2205
+ background-color: #4caf50 !important;
2206
+ border-bottom: 1px solid #4caf50 !important;
2207
+ }
2208
+ [data-v-0d5540e8] .jsoneditor {
2209
+ border: thin solid #4caf50 !important;
2210
+ }
2211
+ [data-v-0d5540e8] .jsoneditor-modal .pico-modal-header {
2212
+ background: #4caf50 !important;
2213
+ }
2214
+ [data-v-0d5540e8] .jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,[data-v-0d5540e8] .jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc {
2215
+ background: #4caf50 !important;
2216
+ border-color: #4caf50 !important;
2217
+ }
2218
+
2219
+
2220
+ [data-v-024b241e] .editormd,[data-v-024b241e] .CodeMirror-gutters,[data-v-024b241e] .editormd-toolbar,[data-v-024b241e] .editormd .CodeMirror,[data-v-024b241e] .editormd-menu > li.divider,[data-v-024b241e] .editormd-menu > li > a:hover,[data-v-024b241e] .editormd-menu > li > a.active {
2221
+ border-color: #eff2f5 !important;
2222
+ }
2223
+ [data-v-024b241e] .CodeMirror-gutter {
2224
+ background-color: #fff;
2225
+ }
2226
+ [data-v-024b241e] .CodeMirror-scroll {
2227
+ overflow-x: hidden !important;
2228
+ }
2229
+ [data-v-024b241e] .editormd-dialog-close {
2230
+ color: #3F4254 !important;
2231
+ }
2232
+ [data-v-024b241e] .editormd-preview-container ol.linenums li,[data-v-024b241e] .editormd-html-preview ol.linenums li {
2233
+ list-style-type: none;
2234
+ }
2235
+ [data-v-024b241e] .editormd-preview-container ol.linenums,[data-v-024b241e] .editormd-html-preview ol.linenums {
2236
+ color: #999;
2237
+ padding-left: 0;
2238
+ }
2239
+ [data-v-024b241e] .editormd {
2240
+ margin-bottom: 0;
2241
+ }
2242
+
2243
+
2244
+ .draggable-container[data-v-a384b1a0] {
2245
+ margin: 10px;
2246
+ }
2247
+ .title[data-v-a384b1a0] {
2248
+ padding: 6px 12px;
2249
+ font-weight: 500;
2250
+ color: #333;
2251
+ }
2252
+ .draggable-item[data-v-a384b1a0] {
2253
+ padding: 6px 12px;
2254
+ margin: 0px 10px 6px 10px;
2255
+ border: solid 1px #eee;
2256
+ background-color: #f1f1f1;
2257
+ cursor: move;
2258
+ transition: background-color 0.2s;
2259
+ }
2260
+ .draggable-item[data-v-a384b1a0]:hover {
2261
+ background-color: #fdfdfd;
2262
+ }
2263
+ [data-v-a384b1a0] .jh-ghost-class {
2264
+ background-color: #e3f2fd !important;
2265
+ opacity: 0.8 !important;
2266
+ }
2267
+ [data-v-a384b1a0] .jh-chosen-class {
2268
+ background-color: #bbdefb !important;
2269
+ opacity: 1 !important;
2270
+ }
2271
+ [data-v-a384b1a0] .jh-drag-class {
2272
+ background-color: #90caf9 !important;
2273
+ opacity: 0.9 !important;
2274
+ box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;
2275
+ }
2276
+ .draggable-placeholder[data-v-a384b1a0] {
2277
+ color: #999;
2278
+ -webkit-user-select: none;
2279
+ -moz-user-select: none;
2280
+ user-select: none;
2281
+ }
2282
+
2283
+
2284
+ [data-v-5113d453] .jh-v-input {
2285
+ border: 1px solid #e5e7eb;
2286
+ }
2287
+ [data-v-5113d453] .jh-v-input .v-input__slot {
2288
+ margin: 0 !important;
2289
+ background-color: #fff !important;
2290
+ }
2291
+
2292
+
2293
+ .jh-editable-table[data-v-52ef24ea] {
2294
+ width: 100%;
2295
+ }
2296
+ .jh-editable-cell[data-v-52ef24ea] {
2297
+ min-height: 48px;
2298
+ display: flex;
2299
+ align-items: center;
2300
+ }
2301
+ .jh-editable-actions[data-v-52ef24ea] {
2302
+ display: flex;
2303
+ gap: 4px;
2304
+ justify-content: center;
2305
+ align-items: center;
2306
+ }
2307
+ .jh-editable-footer[data-v-52ef24ea] {
2308
+ border-top: 1px solid rgba(0, 0, 0, 0.12);
2309
+ }
2310
+
2311
+ /* 编辑模式下的输入框样式优化 */
2312
+ .jh-editable-table[data-v-52ef24ea] .v-text-field.v-text-field--enclosed .v-text-field__details {
2313
+ margin-bottom: 0;
2314
+ }
2315
+ .jh-editable-table[data-v-52ef24ea] .v-input--dense > .v-input__control > .v-input__slot {
2316
+ margin-bottom: 0;
2317
+ }
2318
+