@dt-frames/ui 1.0.0 → 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 (165) hide show
  1. package/package.json +1 -10
  2. package/src/assets/data/icons/actions.ts +0 -427
  3. package/src/assets/data/icons/code.ts +0 -10
  4. package/src/assets/data/icons/commuticate.ts +0 -190
  5. package/src/assets/data/icons/currency.ts +0 -46
  6. package/src/assets/data/icons/devices.ts +0 -128
  7. package/src/assets/data/icons/edit.ts +0 -165
  8. package/src/assets/data/icons/file.ts +0 -104
  9. package/src/assets/data/icons/math.ts +0 -53
  10. package/src/assets/data/icons/message.ts +0 -75
  11. package/src/assets/data/icons/navigate.ts +0 -181
  12. package/src/assets/data/icons/other.ts +0 -333
  13. package/src/assets/data/icons.ts +0 -58
  14. package/src/assets/imgs/logo/logo.png +0 -0
  15. package/src/assets/locales/en_US.json +0 -3
  16. package/src/assets/locales/zh_CN.json +0 -3
  17. package/src/assets/style/index.less +0 -10
  18. package/src/assets/style/reset.less +0 -20
  19. package/src/components/container/index.less +0 -85
  20. package/src/components/container/index.ts +0 -8
  21. package/src/components/container/src/bar.ts +0 -107
  22. package/src/components/container/src/lazy-container.vue +0 -9
  23. package/src/components/container/src/scroll-bar.vue +0 -117
  24. package/src/components/container/src/scroll-container.vue +0 -61
  25. package/src/components/curd/index.ts +0 -5
  26. package/src/components/curd/src/components/dialog.vue +0 -65
  27. package/src/components/curd/src/components/props.ts +0 -32
  28. package/src/components/curd/src/hooks/useCurd.tsx +0 -72
  29. package/src/components/curd/src/types/curd.type.ts +0 -29
  30. package/src/components/excel/index.ts +0 -6
  31. package/src/components/excel/src/export2Excel.ts +0 -44
  32. package/src/components/forms/index.ts +0 -12
  33. package/src/components/forms/src/componentMap.ts +0 -44
  34. package/src/components/forms/src/components/formButton.vue +0 -150
  35. package/src/components/forms/src/components/formIcon.vue +0 -50
  36. package/src/components/forms/src/components/formItem.vue +0 -407
  37. package/src/components/forms/src/components/radioButton.vue +0 -58
  38. package/src/components/forms/src/const/form.const.ts +0 -7
  39. package/src/components/forms/src/hooks/helper.ts +0 -70
  40. package/src/components/forms/src/hooks/useForm.ts +0 -130
  41. package/src/components/forms/src/hooks/useFormActions.ts +0 -63
  42. package/src/components/forms/src/hooks/useFormEvents.ts +0 -247
  43. package/src/components/forms/src/hooks/useFormValue.ts +0 -49
  44. package/src/components/forms/src/hooks/useFormValues.ts +0 -131
  45. package/src/components/forms/src/hooks/useLabelWidth.ts +0 -57
  46. package/src/components/forms/src/index.less +0 -82
  47. package/src/components/forms/src/index.vue +0 -306
  48. package/src/components/forms/src/prop.ts +0 -80
  49. package/src/components/forms/src/types/form.type.ts +0 -269
  50. package/src/components/icons/index.ts +0 -7
  51. package/src/components/icons/src/index.less +0 -96
  52. package/src/components/icons/src/pick-icon.vue +0 -117
  53. package/src/components/icons/src/svg-icon.vue +0 -117
  54. package/src/components/iframe/index.ts +0 -5
  55. package/src/components/iframe/src/index.less +0 -3
  56. package/src/components/iframe/src/index.vue +0 -38
  57. package/src/components/index.ts +0 -46
  58. package/src/components/modal/index.ts +0 -8
  59. package/src/components/modal/src/components/close-icon.vue +0 -47
  60. package/src/components/modal/src/components/modal-wrap.vue +0 -118
  61. package/src/components/modal/src/components/modal.tsx +0 -30
  62. package/src/components/modal/src/components/modalFooter.vue +0 -38
  63. package/src/components/modal/src/hooks/useDrag.ts +0 -107
  64. package/src/components/modal/src/hooks/useFullScreen.ts +0 -27
  65. package/src/components/modal/src/hooks/useModal.ts +0 -177
  66. package/src/components/modal/src/index.less +0 -60
  67. package/src/components/modal/src/index.vue +0 -173
  68. package/src/components/modal/src/props.ts +0 -43
  69. package/src/components/modal/src/types/modal.type.ts +0 -27
  70. package/src/components/router/base-router.vue +0 -11
  71. package/src/components/router/index.ts +0 -3
  72. package/src/components/source/index.ts +0 -1
  73. package/src/components/source/src/hooks/useFetch.ts +0 -70
  74. package/src/components/source/src/hooks/usePage.ts +0 -3
  75. package/src/components/source/src/hooks/useSource.ts +0 -178
  76. package/src/components/source/src/index.ts +0 -5
  77. package/src/components/source/src/types/source.type.ts +0 -68
  78. package/src/components/source/src/types/table.type.ts +0 -8
  79. package/src/components/table/index.ts +0 -7
  80. package/src/components/table/src/components/TableActions.vue +0 -108
  81. package/src/components/table/src/components/TableHeader.vue +0 -77
  82. package/src/components/table/src/components/TableRender.vue +0 -76
  83. package/src/components/table/src/components/setting/Column.vue +0 -355
  84. package/src/components/table/src/components/setting/Download.vue +0 -55
  85. package/src/components/table/src/components/setting/Fullscreen.vue +0 -43
  86. package/src/components/table/src/components/setting/Size.vue +0 -42
  87. package/src/components/table/src/components/setting/index.vue +0 -64
  88. package/src/components/table/src/const.ts +0 -13
  89. package/src/components/table/src/hooks/useColumns.ts +0 -319
  90. package/src/components/table/src/hooks/useCustomRow.ts +0 -0
  91. package/src/components/table/src/hooks/useDataSource.ts +0 -99
  92. package/src/components/table/src/hooks/useLoading.ts +0 -29
  93. package/src/components/table/src/hooks/usePagination.ts +0 -76
  94. package/src/components/table/src/hooks/useRowSelection.ts +0 -146
  95. package/src/components/table/src/hooks/useRows.ts +0 -30
  96. package/src/components/table/src/hooks/useTable.ts +0 -77
  97. package/src/components/table/src/hooks/useTableHeader.ts +0 -48
  98. package/src/components/table/src/hooks/useTableInstance.ts +0 -29
  99. package/src/components/table/src/hooks/useTableScroll.ts +0 -227
  100. package/src/components/table/src/index.less +0 -162
  101. package/src/components/table/src/index.vue +0 -198
  102. package/src/components/table/src/props.ts +0 -152
  103. package/src/components/table/src/types/table.type.ts +0 -133
  104. package/src/components/table/src/types/tableHeader.type.ts +0 -27
  105. package/src/components/type.ts +0 -0
  106. package/src/directives/icon.ts +0 -36
  107. package/src/directives/index.ts +0 -26
  108. package/src/directives/permission.ts +0 -21
  109. package/src/global.d.ts +0 -8
  110. package/src/index.ts +0 -4
  111. package/src/theme/content/index.vue +0 -37
  112. package/src/theme/feature/back-top.vue +0 -11
  113. package/src/theme/feature/index.vue +0 -7
  114. package/src/theme/footer/index.less +0 -16
  115. package/src/theme/footer/index.vue +0 -24
  116. package/src/theme/header/components/bread-crumb.vue +0 -26
  117. package/src/theme/header/components/fullscreen.vue +0 -14
  118. package/src/theme/header/components/handler.ts +0 -81
  119. package/src/theme/header/components/index.ts +0 -21
  120. package/src/theme/header/components/lang-picker.vue +0 -36
  121. package/src/theme/header/components/logo.vue +0 -33
  122. package/src/theme/header/components/menu-search.vue +0 -62
  123. package/src/theme/header/components/notify.vue +0 -23
  124. package/src/theme/header/components/setting-theme.vue +0 -123
  125. package/src/theme/header/components/theme-drawer/enum.ts +0 -12
  126. package/src/theme/header/components/theme-drawer/feature.vue +0 -75
  127. package/src/theme/header/components/theme-drawer/index.ts +0 -7
  128. package/src/theme/header/components/theme-drawer/menu-type.vue +0 -40
  129. package/src/theme/header/components/theme-drawer/select-item.vue +0 -46
  130. package/src/theme/header/components/theme-drawer/switch-item.vue +0 -39
  131. package/src/theme/header/components/theme-drawer/theme-color.vue +0 -26
  132. package/src/theme/header/components/trigger.vue +0 -14
  133. package/src/theme/header/components/user-info.vue +0 -43
  134. package/src/theme/header/const/index.ts +0 -40
  135. package/src/theme/header/helper/menu-tree.ts +0 -67
  136. package/src/theme/header/index.less +0 -438
  137. package/src/theme/header/index.ts +0 -0
  138. package/src/theme/header/index.vue +0 -96
  139. package/src/theme/header/multiple-header.vue +0 -67
  140. package/src/theme/header/set-theme.less +0 -68
  141. package/src/theme/index.ts +0 -3
  142. package/src/theme/sider/components/basic-menu/basic-menu-item.vue +0 -14
  143. package/src/theme/sider/components/basic-menu/basic-menu.vue +0 -122
  144. package/src/theme/sider/components/basic-menu/basic-sub-menu-item.vue +0 -46
  145. package/src/theme/sider/components/basic-menu/menu-item-content.vue +0 -13
  146. package/src/theme/sider/components/drag-bar.vue +0 -26
  147. package/src/theme/sider/components/layout-menu.vue +0 -132
  148. package/src/theme/sider/components/props.ts +0 -97
  149. package/src/theme/sider/components/sider-trigger.vue +0 -24
  150. package/src/theme/sider/helper/sider.ts +0 -52
  151. package/src/theme/sider/helper/split-menu.ts +0 -147
  152. package/src/theme/sider/hooks/useDragLine.ts +0 -86
  153. package/src/theme/sider/hooks/useOpenKeys.ts +0 -57
  154. package/src/theme/sider/index.less +0 -203
  155. package/src/theme/sider/index.vue +0 -88
  156. package/src/theme/tabs/components/TabContent.vue +0 -37
  157. package/src/theme/tabs/components/TabRedo.vue +0 -18
  158. package/src/theme/tabs/hooks/useMultifyTabs.ts +0 -96
  159. package/src/theme/tabs/hooks/useTabDropdown.ts +0 -89
  160. package/src/theme/tabs/index.less +0 -165
  161. package/src/theme/tabs/index.vue +0 -98
  162. package/src/theme/tabs/types/tabs.type.ts +0 -8
  163. package/src/theme/theme.less +0 -66
  164. package/src/theme/theme.vue +0 -89
  165. package/src/theme/transition.less +0 -99
@@ -1,438 +0,0 @@
1
- @import './set-theme.less';
2
-
3
- @primary-color: #269ac1;
4
- @white: #fff;
5
- @error-color: #ED6F6F;
6
- @header-bg-color: #fff;
7
- @header-bg-dark-color: #3c4252;
8
-
9
- @header-height: 48px;
10
- @layout-header-fixed-z-index: 10;
11
- @header-light-bottom-border-color: #eee;
12
- @header-light-bg-hover-color: rgba(0,0,0,0.05);
13
- @text-color-base: #333;
14
- @header-dark-bg-hover-color: rgba(255,255,255,0.05);
15
- @multiple-tab-fixed-z-index: 1;
16
-
17
- .dt-header{
18
- display: flex;
19
- height: @header-height;
20
- padding: 0;
21
- line-height: @header-height;
22
- color: @white;
23
- align-items: center;
24
- justify-content: space-between;
25
-
26
- &--fixed {
27
- position: fixed;
28
- top: 0;
29
- left: 0;
30
- z-index: @layout-header-fixed-z-index;
31
- width: 100%;
32
- }
33
-
34
- &-logo {
35
- height: @header-height;
36
- min-width: 240px;
37
- padding: 0 10px;
38
- font-size: 14px;
39
- display: flex;
40
- align-items: center;
41
-
42
- img {
43
- width: @logo-width;
44
- height: @logo-width;
45
- margin-right: 10px;
46
- }
47
- }
48
-
49
- &-left {
50
- display: flex;
51
- height: 100%;
52
- align-items: center;
53
-
54
- .dt-header-trigger{
55
- display: flex;
56
- height: 100%;
57
- padding: 1px 15px 0 15px;
58
- cursor: pointer;
59
- align-items: center;
60
-
61
- .anticon {
62
- font-size: 16px;
63
- }
64
- }
65
- }
66
-
67
- &-menu {
68
- height: 100%;
69
- min-width: 0;
70
- flex: 1;
71
- align-items: center;
72
- }
73
-
74
- &-action {
75
- display: flex;
76
- min-width: 180px;
77
- align-items: center;
78
-
79
- &__item {
80
- display: flex !important;
81
- height: @header-height;
82
- padding: 0 2px;
83
- font-size: 1.2em;
84
- cursor: pointer;
85
- align-items: center;
86
-
87
- .ant-badge {
88
- height: @header-height;
89
- line-height: @header-height;
90
- }
91
-
92
- .ant-badge-dot {
93
- top: 10px;
94
- right: 2px;
95
- }
96
- }
97
-
98
- span[role='img'] {
99
- padding: 0 8px;
100
- }
101
-
102
- &>span{
103
- width: 40px;
104
- text-align: center;
105
- cursor: pointer;
106
- transition: all 0.25s;
107
- position: relative;
108
-
109
- .svg-icon{
110
- margin: 0 auto;
111
- height: 100% !important;
112
- }
113
- }
114
-
115
- .userInfo{
116
- padding: 0 10px;
117
- cursor: pointer;
118
- transition: all 0.25s;
119
- .name{
120
- padding-left: 10px;
121
- color: #333;
122
- }
123
- }
124
-
125
- .icon{
126
- padding: 0 14px;
127
- }
128
- }
129
-
130
- &--light{
131
- background-color: @header-bg-color !important;
132
- border-bottom: 1px solid @header-light-bottom-border-color;
133
- color: @text-color-base;
134
-
135
- .dt-header-logo {
136
- &:hover {
137
- background-color: @header-light-bg-hover-color;
138
- }
139
- }
140
-
141
- .dt-header-action {
142
- &>span, .userInfo{
143
- &:hover{
144
- background: rgba(0,0,0,0.05) !important;
145
- }
146
- }
147
- &__item {
148
- color: @text-color-base;
149
-
150
- .app-iconify {
151
- padding: 0 10px;
152
- font-size: 16px !important;
153
- }
154
-
155
- &:hover {
156
- background-color: @header-light-bg-hover-color;
157
- }
158
- }
159
-
160
- &-icon,
161
- span[role='img'] {
162
- color: @text-color-base;
163
- }
164
- }
165
- }
166
-
167
- &--dark {
168
- background-color: @header-bg-dark-color !important;
169
- .dt-header-logo {
170
- &:hover {
171
- background-color: @header-dark-bg-hover-color;
172
- }
173
- }
174
-
175
- .ant-menu-dark{
176
- background-color: @header-bg-dark-color;
177
- }
178
-
179
- .userInfo .name{
180
- color: @white;
181
- }
182
-
183
- .dt-icon, span{
184
- color: @white !important;
185
- align-items: center;
186
- }
187
-
188
- .dt-header-action {
189
-
190
- span i{
191
- color: @white !important;
192
- }
193
- &>span, .userInfo{
194
- &:hover{
195
- background: rgba(255,255,255,0.2) !important;
196
- }
197
- }
198
- }
199
- }
200
-
201
-
202
- .red-dot{
203
- width: 6px;
204
- height: 6px;
205
- display: block;
206
- border-radius: 3px;
207
- background: red;
208
- position: absolute;
209
- right: 4px;
210
- top: 10px;
211
- }
212
- }
213
-
214
- .dt-multiple-header{
215
- transition: width 0.2s;
216
- flex: 0 0 auto;
217
-
218
- &--fixed {
219
- position: fixed;
220
- top: 0;
221
- z-index: @multiple-tab-fixed-z-index;
222
- width: 100%;
223
- }
224
-
225
- &--top-menu{
226
- .dt-logo.light{
227
- border-bottom: none;
228
- }
229
-
230
- .ant-menu-submenu::after{
231
- border: none !important;
232
- }
233
-
234
- .ant-menu-submenu-selected::after, .ant-menu-submenu:hover::after{
235
- content: ' ';
236
- width: calc(100% - 66px);
237
- height: 4px;
238
- background: @primary-color;
239
- bottom: 5px;
240
- left: 50%;
241
- margin-left: -16px;
242
- border-radius: 2px;
243
- border: none;
244
- }
245
- }
246
- }
247
-
248
- .ant-menu-horizontal, .app-top-menu-popup {
249
- .svg-icon{
250
- padding: 16px 0;
251
- margin-right: 10px;
252
- height: 48px !important;
253
- }
254
-
255
- .menu-icon{
256
- width: 26px;
257
- }
258
- }
259
-
260
- .nofify__popover{
261
- width: 300px;
262
- .ant-popover-inner-content{
263
- padding: 0;
264
-
265
- .ant-tabs-tab{
266
- margin: 0;
267
- width: 100px;
268
- text-align: center;
269
- }
270
-
271
- .ant-tabs-content{
272
- height: 300px;
273
- position: relative;
274
-
275
- .ant-tabs-tabpane{
276
- position: absolute;
277
- top: 100px;
278
- .ant-empty-description{
279
- color: #999;
280
- font-size: 13px;
281
- }
282
- }
283
- }
284
-
285
- .load-more{
286
- line-height: 40px;
287
- border-top: 1px solid @border-color-base;
288
- width: 100%;
289
- display: block;
290
- text-align: center;
291
- color: #666;
292
- &:hover{
293
- color: @primary-color;
294
- }
295
- }
296
- }
297
- }
298
-
299
-
300
- .user-info__popover{
301
- width: 120px;
302
- .ant-popover-inner-content{
303
- padding: 8px 0;
304
- .user-operate{
305
- li{
306
- display: flex;
307
- line-height: 30px;
308
- padding: 0 10px;
309
- cursor: pointer;
310
- margin-bottom: 3px;
311
- transition: all 0.3s;
312
- &>span{
313
- display: inline-block;
314
- width: 28px;
315
- padding-right: 10px;
316
- color: #444;
317
- }
318
- &.border-bottom{
319
- border-bottom: 1px solid @border-color-base;
320
- }
321
-
322
- &:last-of-type{
323
- margin-bottom: 0;
324
- }
325
-
326
- &:hover{
327
- background: #f6f6f6;
328
- }
329
- }
330
- }
331
- }
332
- }
333
-
334
- .lacale__popover{
335
- width: 120px;
336
- .ant-popover-inner-content{
337
- padding: 8px 0;
338
- .lang li{
339
- line-height: 30px;
340
- padding: 0 10px;
341
- cursor: pointer;
342
- margin-bottom: 3px;
343
- transition: all 0.3s;
344
- &>span{
345
- display: inline-block;
346
- vertical-align: middle;
347
- &:last-of-type{
348
- padding-left: 10px;
349
- }
350
- }
351
- &:hover{
352
- background: #f6f6f6;
353
- }
354
- }
355
- }
356
- }
357
-
358
-
359
-
360
- .dt-menu-search{
361
- padding: 0 10px;
362
- display: flex;
363
- .ant-input-search{
364
- border-radius: 16px;
365
- width: 180px;
366
- overflow: hidden;
367
- height: 30px;
368
- border: 1px solid rgba(0,0,0,0.2);
369
- input, button{
370
- border: none;
371
- height: 28px;
372
- line-height: 28px;
373
- outline: none;
374
- box-shadow: none;
375
- }
376
- }
377
-
378
- .ant-empty-image{
379
- height: 40px;
380
- svg{
381
- width: 100%;
382
- }
383
- }
384
- }
385
-
386
- .menu_search__popover {
387
- width: 200px;
388
- .ant-popover-inner-content{
389
- max-height: 400px;
390
- height: 200px;
391
- padding: 0;
392
- overflow-y: auto;
393
- p{
394
- line-height: 38px;
395
- background: #fff;
396
- cursor: pointer;
397
- padding: 0 20px;
398
- border-bottom: 1px dashed #f2f2f2;
399
- transition: all 0.2s;
400
- &:hover{
401
- background: #f2f2f2;
402
- }
403
- }
404
- > div{
405
- margin: 40px 0;
406
- }
407
- }
408
- }
409
-
410
- .dt-feature-item{
411
- display: flex;
412
- justify-content: space-between;
413
- margin-bottom: 20px;
414
-
415
- .select-item{
416
- width: 130px;
417
- }
418
- }
419
-
420
- .setting-theme-tips{
421
- border: 1px solid @primary-color;
422
- background-color: rgba(0,0,0,0.04);
423
- color: @primary-color;
424
- padding: 10px;
425
- font-size: 12px;
426
- border-radius: 4px;
427
- }
428
-
429
- .dt-setting-theme-footer{
430
- margin-top: 20px;
431
- .ant-btn{
432
- margin: 10px 0;
433
- }
434
- }
435
-
436
- .ant-modal-confirm-body .ant-modal-confirm-content {
437
- color: #909399;
438
- }
File without changes
@@ -1,96 +0,0 @@
1
- <template>
2
- <LayoutHeader :class="getHeaderCls">
3
- <div class="dt-header-left">
4
- <DtLogo
5
- v-if="getShowHeaderLogo"
6
- :theme="getHeaderTheme"
7
- class="dt-header-logo"
8
- :style="getLogoWidth" />
9
-
10
- <DtTrigger
11
- v-if="getShowHeaderTrigger && !getSplit"
12
- :theme="getHeaderTheme" />
13
-
14
- <DtBreadCrumb v-if="getShowBread" />
15
- </div>
16
-
17
- <div class="dt-header-menu" v-if="getShowTopMenu">
18
- <LayoutMenu
19
- :isHorizontal="true"
20
- :theme="getHeaderTheme"
21
- :splitType="getSplitType"
22
- :menuMode="getMenuMode"
23
- />
24
- </div>
25
-
26
- <div class="dt-header-action" :style="{
27
- 'padding-right': getShowSettingTheme ? '' : '15px'
28
- }">
29
- <MenuSearch v-if="getShowSearch" />
30
-
31
- <Notify v-if="getShowNotice"/>
32
-
33
- <FullScreen v-if="getShowFullScreen" />
34
-
35
- <LangPicker v-if="getShowLocale" :reload="false"/>
36
-
37
- <UserInfo />
38
-
39
- <SettingTheme v-if="getShowSettingTheme"/>
40
- </div>
41
-
42
- </LayoutHeader>
43
- </template>
44
-
45
- <script lang="ts" setup>
46
- import { computed, unref } from 'vue';
47
- import { LayoutHeader } from 'ant-design-vue';
48
- import { useMenu, useHeader, MenuSplitTye, MenuMode } from '@dt-frames/core';
49
- import { DtLogo, DtTrigger, DtBreadCrumb, MenuSearch, Notify, FullScreen, UserInfo, LangPicker, SettingTheme } from './components'
50
- import LayoutMenu from '../sider/components/layout-menu.vue'
51
-
52
-
53
- const { getSplit } = useMenu()
54
- const {
55
- getHeaderTheme,
56
- getShowHeaderLogo,
57
- getShowHeaderTrigger,
58
- getShowBread,
59
- getShowLocale,
60
- getShowFullScreen,
61
- getShowSettingTheme,
62
- getShowNotice,
63
- getShowTopMenu,
64
- getShowSearch
65
- } = useHeader()
66
-
67
- const getSplitType = computed(() => {
68
- return unref(getSplit) ? MenuSplitTye.TOP : MenuSplitTye.NONE;
69
- });
70
-
71
- const getMenuMode = computed(() => {
72
- return unref(getSplit) ? MenuMode.HORIZONTAL : null;
73
- });
74
-
75
- const props = defineProps({
76
- fixed: Boolean
77
- })
78
-
79
- // 根据主题和是否固定顶部,动态计算header的类名
80
- const getHeaderCls = computed(() => {
81
- let theme = unref( getHeaderTheme )
82
-
83
- return [
84
- 'dt-header',
85
- {
86
- 'dt-header--fixed': props.fixed,
87
- [`dt-header--${ theme }`]: theme
88
- }
89
- ]
90
- })
91
-
92
- // 动态定义logo的宽度
93
- const getLogoWidth = computed(() => {
94
-
95
- })
96
- </script>
@@ -1,67 +0,0 @@
1
- <template>
2
- <div>
3
- <!-- 生成一个空的占位符, 只有在header为fixed的模式才显示 -->
4
- <div :style="getPlaceholderDomStyle" v-if="getFixed"></div>
5
-
6
- <div :style="getWrapStyle" :class="getClass">
7
- <LayoutHeader v-if="getShowInsetHeaderRef"/>
8
- <MultipleTabs v-if="getShowMultipleTab"/>
9
- </div>
10
- </div>
11
-
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import { computed, CSSProperties, unref } from 'vue';
16
- import LayoutHeader from './index.vue';
17
- import MultipleTabs from '../tabs/index.vue';
18
- import { useHeader, useMenu, useMultipleTab } from '@dt-frames/core';
19
-
20
- const {
21
- getHeaderHeight,
22
- getFixed,
23
- getShowFullHeaderRef,
24
- getHeaderTheme,
25
- getShowInsetHeaderRef,
26
- getTabsHeight
27
- } = useHeader()
28
-
29
- const { getCalcContentWidth, getIsMixMode, getIsTopMenu } = useMenu()
30
- const { getShowMultipleTab } = useMultipleTab()
31
-
32
- // 计算占位符的高度
33
- const getPlaceholderDomStyle = computed(() => {
34
- let height = unref(getHeaderHeight)
35
-
36
- if( unref(getIsMixMode) ) {
37
- height = unref(getShowMultipleTab) ? unref(getTabsHeight) : 0
38
- }
39
- return {
40
- height: `${height}px`,
41
- };
42
- });
43
-
44
- // 计算内容区域的style
45
- const getWrapStyle = computed(() => {
46
- const style: CSSProperties = { };
47
-
48
- if( unref( getFixed ) ) style.width = unref( getCalcContentWidth ) as unknown as string;
49
- if (unref(getShowFullHeaderRef)) style.top = '48px';
50
-
51
- return style;
52
- });
53
-
54
- // 容器设置动态class
55
- const getClass = computed( () => {
56
- return [
57
- 'dt-multiple-header',
58
- `dt-multiple-header--${unref(getHeaderTheme)}`,
59
-
60
- {
61
- 'dt-multiple-header--fixed': unref(getFixed),
62
- 'dt-multiple-header--top-menu': unref(getIsTopMenu)
63
- },
64
- ];
65
- } );
66
-
67
- </script>
@@ -1,68 +0,0 @@
1
- @primary-color: #269ac1;
2
-
3
- .dt-menu-type__wrap{
4
- display: flex;
5
- flex-direction: row;
6
- justify-content: center;
7
-
8
- .dt-menu-type__item{
9
- padding: 12px;
10
- position: relative;
11
- width: 56px;
12
- height: 48px;
13
- margin-right: 16px;
14
- overflow: hidden;
15
- cursor: pointer;
16
- background-color: #f0f2f5;
17
- border-radius: 4px;
18
- box-shadow: 0 1px 2.5px #0000002e;
19
- .dt-sidebar-menu-type{
20
- &::before{
21
- position: absolute;
22
- content: "";
23
- top: 0;
24
- left: 0;
25
- z-index: 1;
26
- width: 33%;
27
- height: 100%;
28
- background-color: #273352;
29
- }
30
- &::after{
31
- position: absolute;
32
- content: "";
33
- top: 0;
34
- left: 0;
35
- width: 100%;
36
- height: 25%;
37
- background-color: #fff;
38
- }
39
- }
40
- &:hover{
41
- border: 2px solid @primary-color;
42
- }
43
- }
44
-
45
- .dt-menu-type__item--top-menu .dt-sidebar-menu-type{
46
- &::before{
47
- width: 0;
48
- }
49
- &::after{
50
- background-color: #273352;
51
- }
52
- }
53
-
54
- .dt-menu-type__item--mix .dt-sidebar-menu-type{
55
- &::before{
56
- top: 25%;
57
- height: 75%;
58
- background-color: #fff;
59
- }
60
- &::after{
61
- background-color: #273352;
62
- }
63
- }
64
-
65
- .dt-menu-type__item--active{
66
- border: 2px solid @primary-color;
67
- }
68
- }
@@ -1,3 +0,0 @@
1
- import DtTheme from './theme.vue'
2
-
3
- export { DtTheme }
@@ -1,14 +0,0 @@
1
- <template>
2
- <MenuItem :key="item.url">
3
- <MenuItemContent v-bind="props"/>
4
- </MenuItem>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { MenuItem } from 'ant-design-vue';
9
- import MenuItemContent from './menu-item-content.vue';
10
- import { ItemProp } from "../props";
11
-
12
- const props = defineProps(ItemProp);
13
-
14
- </script>