ele-admin-plus 1.1.9-beta.10 → 1.1.9-beta.11

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 (157) hide show
  1. package/es/ele-alert/index.js +2 -2
  2. package/es/ele-basic-select/index.d.ts +1 -1
  3. package/es/ele-basic-select/index.js +7 -1
  4. package/es/ele-config-provider/types.d.ts +3 -1
  5. package/es/ele-cropper-modal/index.js +1 -1
  6. package/es/ele-drawer/index.d.ts +8 -5
  7. package/es/ele-drawer/index.js +107 -113
  8. package/es/ele-drawer/style/index.scss +48 -105
  9. package/es/ele-edit-tag/index.js +1 -1
  10. package/es/ele-file-list/components/file-grid-item.js +1 -1
  11. package/es/ele-file-list/components/file-table-item.js +1 -1
  12. package/es/ele-icon-select/components/icon-grid.js +1 -1
  13. package/es/ele-loading/index.d.ts +0 -4
  14. package/es/ele-loading/index.js +10 -16
  15. package/es/ele-map-picker/components/map-view.js +1 -1
  16. package/es/ele-map-picker/index.js +1 -1
  17. package/es/ele-menus/index.d.ts +4 -6
  18. package/es/ele-menus/index.js +1 -1
  19. package/es/ele-menus/props.d.ts +1 -3
  20. package/es/ele-menus/props.js +1 -3
  21. package/es/ele-menus/style/css-var.scss +1 -5
  22. package/es/ele-modal/index.d.ts +12 -6
  23. package/es/ele-modal/index.js +163 -184
  24. package/es/ele-modal/props.d.ts +2 -0
  25. package/es/ele-modal/props.js +2 -0
  26. package/es/ele-modal/style/index.scss +85 -146
  27. package/es/ele-modal/util.d.ts +18 -44
  28. package/es/ele-modal/util.js +53 -179
  29. package/es/ele-pagination/index.d.ts +9 -0
  30. package/es/ele-pagination/index.js +4 -1
  31. package/es/ele-pagination/props.d.ts +5 -0
  32. package/es/ele-pagination/props.js +5 -0
  33. package/es/ele-popconfirm/index.d.ts +3 -3
  34. package/es/ele-popconfirm/index.js +6 -28
  35. package/es/ele-popover/index.d.ts +2 -2
  36. package/es/ele-popover/index.js +6 -14
  37. package/es/ele-pro-layout/components/pro-header.d.ts +66 -11
  38. package/es/ele-pro-layout/components/pro-header.js +110 -20
  39. package/es/ele-pro-layout/components/pro-sidebar.d.ts +2 -7
  40. package/es/ele-pro-layout/components/pro-sidebar.js +2 -5
  41. package/es/ele-pro-layout/components/pro-sidebox.d.ts +2 -7
  42. package/es/ele-pro-layout/components/pro-sidebox.js +2 -5
  43. package/es/ele-pro-layout/components/tab-dropdown.js +1 -1
  44. package/es/ele-pro-layout/index.d.ts +25 -27
  45. package/es/ele-pro-layout/index.js +45 -29
  46. package/es/ele-pro-layout/props.d.ts +3 -6
  47. package/es/ele-pro-layout/props.js +2 -4
  48. package/es/ele-pro-layout/style/css-var.scss +3 -18
  49. package/es/ele-pro-layout/style/header.scss +74 -9
  50. package/es/ele-pro-layout/style/layout-mobile.scss +2 -2
  51. package/es/ele-pro-layout/style/layout-style.scss +8 -3
  52. package/es/ele-pro-layout/style/layout-theme.scss +48 -23
  53. package/es/ele-pro-layout/style/layout.scss +23 -3
  54. package/es/ele-pro-layout/style/sidebar.scss +0 -1
  55. package/es/ele-pro-layout/style/tabs.scss +19 -11
  56. package/es/ele-pro-layout/types.d.ts +1 -1
  57. package/es/ele-pro-table/components/tool-print.js +0 -3
  58. package/es/ele-pro-table/index.d.ts +3 -5
  59. package/es/ele-pro-table/index.js +2 -1
  60. package/es/ele-pro-table/util.d.ts +1 -1
  61. package/es/ele-tab-wrap/index.js +2 -1
  62. package/es/ele-table-select/index.d.ts +13 -12
  63. package/es/ele-table-select/index.js +27 -26
  64. package/es/ele-tabs/index.js +1 -0
  65. package/es/ele-tabs/style/css-var.scss +1 -30
  66. package/es/ele-tabs/style/index.scss +372 -241
  67. package/es/ele-tabs/types.d.ts +2 -1
  68. package/es/ele-tooltip/index.js +3 -0
  69. package/es/ele-tooltip/props.d.ts +5 -0
  70. package/es/ele-tooltip/props.js +2 -0
  71. package/es/ele-virtual-table/style/index.scss +1 -1
  72. package/es/icons/ResizeOutlined.d.ts +2 -0
  73. package/es/icons/ResizeOutlined.js +30 -0
  74. package/es/icons/index.d.ts +1 -0
  75. package/es/icons/index.js +50 -48
  76. package/es/style/themes/dark.scss +9 -15
  77. package/es/style/themes/default.scss +56 -80
  78. package/es/style/themes/rounded.scss +16 -30
  79. package/lib/ele-alert/index.cjs +2 -2
  80. package/lib/ele-basic-select/index.cjs +7 -1
  81. package/lib/ele-basic-select/index.d.ts +1 -1
  82. package/lib/ele-config-provider/types.d.ts +3 -1
  83. package/lib/ele-cropper-modal/index.cjs +1 -1
  84. package/lib/ele-drawer/index.cjs +105 -111
  85. package/lib/ele-drawer/index.d.ts +8 -5
  86. package/lib/ele-drawer/style/index.scss +48 -105
  87. package/lib/ele-edit-tag/index.cjs +1 -1
  88. package/lib/ele-file-list/components/file-grid-item.cjs +1 -1
  89. package/lib/ele-file-list/components/file-table-item.cjs +1 -1
  90. package/lib/ele-icon-select/components/icon-grid.cjs +1 -1
  91. package/lib/ele-loading/index.cjs +9 -15
  92. package/lib/ele-loading/index.d.ts +0 -4
  93. package/lib/ele-map-picker/components/map-view.cjs +1 -1
  94. package/lib/ele-map-picker/index.cjs +1 -1
  95. package/lib/ele-menus/index.cjs +1 -1
  96. package/lib/ele-menus/index.d.ts +4 -6
  97. package/lib/ele-menus/props.cjs +1 -3
  98. package/lib/ele-menus/props.d.ts +1 -3
  99. package/lib/ele-menus/style/css-var.scss +1 -5
  100. package/lib/ele-modal/index.cjs +176 -197
  101. package/lib/ele-modal/index.d.ts +12 -6
  102. package/lib/ele-modal/props.cjs +2 -0
  103. package/lib/ele-modal/props.d.ts +2 -0
  104. package/lib/ele-modal/style/index.scss +85 -146
  105. package/lib/ele-modal/util.cjs +53 -179
  106. package/lib/ele-modal/util.d.ts +18 -44
  107. package/lib/ele-pagination/index.cjs +4 -1
  108. package/lib/ele-pagination/index.d.ts +9 -0
  109. package/lib/ele-pagination/props.cjs +5 -0
  110. package/lib/ele-pagination/props.d.ts +5 -0
  111. package/lib/ele-popconfirm/index.cjs +5 -27
  112. package/lib/ele-popconfirm/index.d.ts +3 -3
  113. package/lib/ele-popover/index.cjs +5 -13
  114. package/lib/ele-popover/index.d.ts +2 -2
  115. package/lib/ele-pro-layout/components/pro-header.cjs +109 -19
  116. package/lib/ele-pro-layout/components/pro-header.d.ts +66 -11
  117. package/lib/ele-pro-layout/components/pro-sidebar.cjs +2 -5
  118. package/lib/ele-pro-layout/components/pro-sidebar.d.ts +2 -7
  119. package/lib/ele-pro-layout/components/pro-sidebox.cjs +2 -5
  120. package/lib/ele-pro-layout/components/pro-sidebox.d.ts +2 -7
  121. package/lib/ele-pro-layout/components/tab-dropdown.cjs +1 -1
  122. package/lib/ele-pro-layout/index.cjs +45 -29
  123. package/lib/ele-pro-layout/index.d.ts +25 -27
  124. package/lib/ele-pro-layout/props.cjs +2 -4
  125. package/lib/ele-pro-layout/props.d.ts +3 -6
  126. package/lib/ele-pro-layout/style/css-var.scss +3 -18
  127. package/lib/ele-pro-layout/style/header.scss +74 -9
  128. package/lib/ele-pro-layout/style/layout-mobile.scss +2 -2
  129. package/lib/ele-pro-layout/style/layout-style.scss +8 -3
  130. package/lib/ele-pro-layout/style/layout-theme.scss +48 -23
  131. package/lib/ele-pro-layout/style/layout.scss +23 -3
  132. package/lib/ele-pro-layout/style/sidebar.scss +0 -1
  133. package/lib/ele-pro-layout/style/tabs.scss +19 -11
  134. package/lib/ele-pro-layout/types.d.ts +1 -1
  135. package/lib/ele-pro-table/components/tool-print.cjs +0 -3
  136. package/lib/ele-pro-table/index.cjs +2 -1
  137. package/lib/ele-pro-table/index.d.ts +3 -5
  138. package/lib/ele-pro-table/util.d.ts +1 -1
  139. package/lib/ele-tab-wrap/index.cjs +2 -1
  140. package/lib/ele-table-select/index.cjs +27 -26
  141. package/lib/ele-table-select/index.d.ts +13 -12
  142. package/lib/ele-tabs/index.cjs +1 -0
  143. package/lib/ele-tabs/style/css-var.scss +1 -30
  144. package/lib/ele-tabs/style/index.scss +372 -241
  145. package/lib/ele-tabs/types.d.ts +2 -1
  146. package/lib/ele-tooltip/index.cjs +3 -0
  147. package/lib/ele-tooltip/props.cjs +2 -0
  148. package/lib/ele-tooltip/props.d.ts +5 -0
  149. package/lib/ele-virtual-table/style/index.scss +1 -1
  150. package/lib/icons/ResizeOutlined.cjs +29 -0
  151. package/lib/icons/ResizeOutlined.d.ts +2 -0
  152. package/lib/icons/index.cjs +2 -0
  153. package/lib/icons/index.d.ts +1 -0
  154. package/lib/style/themes/dark.scss +9 -15
  155. package/lib/style/themes/default.scss +56 -80
  156. package/lib/style/themes/rounded.scss +16 -30
  157. package/package.json +9 -9
@@ -27,9 +27,7 @@ declare const _default: import('vue').DefineComponent<{
27
27
  /** 菜单图标插槽名称 */
28
28
  iconSlot: StringConstructor;
29
29
  /** 是否开启菜单文本溢出提示 */
30
- menuTextEllipsisTooltip: BooleanConstructor;
31
- /** 菜单文本溢出提示属性 */
32
- menuTextEllipsisTooltipProps: PropType<Partial<import("../../ele-tooltip/props").TooltipProps>>;
30
+ menuTextEllipsisTooltip: PropType<boolean | Partial<import("../../ele-tooltip/props").TooltipProps> | undefined>;
33
31
  }, {
34
32
  menusRef: import("vue").Ref<ElScrollbarInstance>;
35
33
  menuItems: import("vue").ComputedRef<Partial<import("../../ele-menus/types").MenuItem>[]>;
@@ -69,9 +67,7 @@ declare const _default: import('vue').DefineComponent<{
69
67
  /** 菜单图标插槽名称 */
70
68
  iconSlot: StringConstructor;
71
69
  /** 是否开启菜单文本溢出提示 */
72
- menuTextEllipsisTooltip: BooleanConstructor;
73
- /** 菜单文本溢出提示属性 */
74
- menuTextEllipsisTooltipProps: PropType<Partial<import("../../ele-tooltip/props").TooltipProps>>;
70
+ menuTextEllipsisTooltip: PropType<boolean | Partial<import("../../ele-tooltip/props").TooltipProps> | undefined>;
75
71
  }>> & {
76
72
  onItemClick?: ((_item: Partial<import("../../ele-menus/types").MenuItem>, _e: MouseEvent) => any) | undefined;
77
73
  onItemMouseenter?: ((_item: Partial<import("../../ele-menus/types").MenuItem>, _e: MouseEvent) => any) | undefined;
@@ -82,6 +78,5 @@ declare const _default: import('vue').DefineComponent<{
82
78
  collapse: boolean;
83
79
  compact: boolean;
84
80
  colorfulIcon: boolean;
85
- menuTextEllipsisTooltip: boolean;
86
81
  }, {}>;
87
82
  export default _default;
@@ -30,9 +30,7 @@ const _sfc_main = defineComponent({
30
30
  /** 菜单图标插槽名称 */
31
31
  iconSlot: String,
32
32
  /** 是否开启菜单文本溢出提示 */
33
- menuTextEllipsisTooltip: Boolean,
34
- /** 菜单文本溢出提示属性 */
35
- menuTextEllipsisTooltipProps: Object
33
+ menuTextEllipsisTooltip: [Boolean, Object]
36
34
  },
37
35
  emits: {
38
36
  itemClick: (_item, _e) => true,
@@ -120,7 +118,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
120
118
  firstPopperClass: "ele-admin-sidebox-popup",
121
119
  tooltipDisabled: !_ctx.compact,
122
120
  textEllipsisTooltip: _ctx.menuTextEllipsisTooltip,
123
- textEllipsisTooltipProps: _ctx.menuTextEllipsisTooltipProps,
124
121
  onItemClick: _ctx.onItemClick,
125
122
  onItemMouseenter: _ctx.onItemMouseenter,
126
123
  onItemMouseleave: _ctx.onItemMouseleave
@@ -139,7 +136,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
139
136
  ]),
140
137
  key: "1"
141
138
  } : void 0
142
- ]), 1032, ["items", "theme", "popupColorful", "collapse", "defaultActive", "popperEffect", "tooltipDisabled", "textEllipsisTooltip", "textEllipsisTooltipProps", "onItemClick", "onItemMouseenter", "onItemMouseleave"])) : createCommentVNode("", true)
139
+ ]), 1032, ["items", "theme", "popupColorful", "collapse", "defaultActive", "popperEffect", "tooltipDisabled", "textEllipsisTooltip", "onItemClick", "onItemMouseenter", "onItemMouseleave"])) : createCommentVNode("", true)
143
140
  ]),
144
141
  _: 3
145
142
  }, 512),
@@ -68,7 +68,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
68
68
  popperOptions: {
69
69
  modifiers: [{ name: "offset", options: { offset: [12, 8] } }]
70
70
  }
71
- }, _ctx.dropdownProps, {
71
+ }, _ctx.dropdownProps || {}, {
72
72
  ref: "dropdownRef",
73
73
  items: _ctx.items,
74
74
  onCommand: _ctx.onCommand
@@ -9,7 +9,7 @@ declare const _default: import('vue').DefineComponent<{
9
9
  compact: BooleanConstructor;
10
10
  maximized: BooleanConstructor;
11
11
  tabBar: {
12
- type: BooleanConstructor;
12
+ type: import("vue").PropType<boolean | "header">;
13
13
  default: boolean;
14
14
  };
15
15
  breadcrumb: {
@@ -41,7 +41,7 @@ declare const _default: import('vue').DefineComponent<{
41
41
  type: BooleanConstructor;
42
42
  default: boolean;
43
43
  };
44
- ellipsisProps: import("vue").PropType<import("../ele-menus/types").EllipsisProps>;
44
+ ellipsisProps: import("vue").PropType<import("../ele-menus/types").EllipsisProps | undefined>;
45
45
  menuTrigger: {
46
46
  type: import("vue").PropType<import("element-plus/es/utils/index").EpPropMergeType<StringConstructor, "hover" | "click", unknown> | undefined>;
47
47
  default: string;
@@ -68,7 +68,8 @@ declare const _default: import('vue').DefineComponent<{
68
68
  };
69
69
  fixedHeader: {
70
70
  type: BooleanConstructor;
71
- default: boolean; /** 菜单数据 */
71
+ /** 页签选中 */
72
+ default: boolean;
72
73
  };
73
74
  fixedSidebar: BooleanConstructor;
74
75
  fixedBody: BooleanConstructor;
@@ -83,12 +84,11 @@ declare const _default: import('vue').DefineComponent<{
83
84
  default: boolean;
84
85
  };
85
86
  expanded: BooleanConstructor;
86
- compressOnEsc: BooleanConstructor;
87
- /** 侧栏一级菜单选中 */
87
+ compressOnEsc: BooleanConstructor; /** 侧栏一级菜单数据 */
88
88
  fixedHome: {
89
89
  type: BooleanConstructor;
90
- default: boolean; /** 侧栏是否隐藏 */
91
- };
90
+ default: boolean;
91
+ }; /** 侧栏一级菜单选中 */
92
92
  homePath: StringConstructor;
93
93
  redirectPath: {
94
94
  type: StringConstructor;
@@ -102,12 +102,12 @@ declare const _default: import('vue').DefineComponent<{
102
102
  tabSortable: BooleanConstructor;
103
103
  autoScrollTop: {
104
104
  type: BooleanConstructor;
105
- default: boolean;
105
+ default: boolean; /** 是否混合导航布局 */
106
106
  };
107
107
  headerTitleSlot: {
108
108
  type: StringConstructor;
109
- default: string;
110
- };
109
+ default: string; /** 是否双侧栏布局 */
110
+ }; /** 是否双侧栏布局 */
111
111
  headerIconSlot: {
112
112
  type: StringConstructor;
113
113
  default: string;
@@ -137,8 +137,7 @@ declare const _default: import('vue').DefineComponent<{
137
137
  type: NumberConstructor;
138
138
  default: number;
139
139
  };
140
- menuTextEllipsisTooltip: BooleanConstructor;
141
- menuTextEllipsisTooltipProps: import("vue").PropType<Partial<import("../ele-tooltip/props").TooltipProps>>;
140
+ menuTextEllipsisTooltip: import("vue").PropType<boolean | Partial<import("../ele-tooltip/props").TooltipProps> | undefined>;
142
141
  keepAlive: BooleanConstructor;
143
142
  transitionName: StringConstructor;
144
143
  transitionDelay: {
@@ -151,6 +150,7 @@ declare const _default: import('vue').DefineComponent<{
151
150
  };
152
151
  }, {
153
152
  contentRef: Ref<HTMLElement | null>;
153
+ modalsRef: Ref<HTMLElement | null>;
154
154
  levelData: import("vue").ShallowRef<LevelItem[]>;
155
155
  tabData: import("vue").ShallowRef<TabItem[]>;
156
156
  tabActive: Ref<string>;
@@ -166,7 +166,7 @@ declare const _default: import('vue').DefineComponent<{
166
166
  sidebox: import("vue").ComputedRef<boolean>;
167
167
  sidebar: import("vue").ComputedRef<boolean>;
168
168
  layoutClass: import("vue").ComputedRef<ClassValues>;
169
- backTopSelector: import("vue").ComputedRef<string | undefined>;
169
+ backTopSelector: import("vue").ComputedRef<string>;
170
170
  sidebarCollapse: import("vue").ComputedRef<boolean>;
171
171
  sidebarTheme: import("vue").ComputedRef<"light" | "dark">;
172
172
  updateCollapse: (val?: boolean | MouseEvent) => void;
@@ -211,7 +211,7 @@ declare const _default: import('vue').DefineComponent<{
211
211
  compact: BooleanConstructor;
212
212
  maximized: BooleanConstructor;
213
213
  tabBar: {
214
- type: BooleanConstructor;
214
+ type: import("vue").PropType<boolean | "header">;
215
215
  default: boolean;
216
216
  };
217
217
  breadcrumb: {
@@ -243,7 +243,7 @@ declare const _default: import('vue').DefineComponent<{
243
243
  type: BooleanConstructor;
244
244
  default: boolean;
245
245
  };
246
- ellipsisProps: import("vue").PropType<import("../ele-menus/types").EllipsisProps>;
246
+ ellipsisProps: import("vue").PropType<import("../ele-menus/types").EllipsisProps | undefined>;
247
247
  menuTrigger: {
248
248
  type: import("vue").PropType<import("element-plus/es/utils/index").EpPropMergeType<StringConstructor, "hover" | "click", unknown> | undefined>;
249
249
  default: string;
@@ -270,7 +270,8 @@ declare const _default: import('vue').DefineComponent<{
270
270
  };
271
271
  fixedHeader: {
272
272
  type: BooleanConstructor;
273
- default: boolean; /** 菜单数据 */
273
+ /** 页签选中 */
274
+ default: boolean;
274
275
  };
275
276
  fixedSidebar: BooleanConstructor;
276
277
  fixedBody: BooleanConstructor;
@@ -285,12 +286,11 @@ declare const _default: import('vue').DefineComponent<{
285
286
  default: boolean;
286
287
  };
287
288
  expanded: BooleanConstructor;
288
- compressOnEsc: BooleanConstructor;
289
- /** 侧栏一级菜单选中 */
289
+ compressOnEsc: BooleanConstructor; /** 侧栏一级菜单数据 */
290
290
  fixedHome: {
291
291
  type: BooleanConstructor;
292
- default: boolean; /** 侧栏是否隐藏 */
293
- };
292
+ default: boolean;
293
+ }; /** 侧栏一级菜单选中 */
294
294
  homePath: StringConstructor;
295
295
  redirectPath: {
296
296
  type: StringConstructor;
@@ -304,12 +304,12 @@ declare const _default: import('vue').DefineComponent<{
304
304
  tabSortable: BooleanConstructor;
305
305
  autoScrollTop: {
306
306
  type: BooleanConstructor;
307
- default: boolean;
307
+ default: boolean; /** 是否混合导航布局 */
308
308
  };
309
309
  headerTitleSlot: {
310
310
  type: StringConstructor;
311
- default: string;
312
- };
311
+ default: string; /** 是否双侧栏布局 */
312
+ }; /** 是否双侧栏布局 */
313
313
  headerIconSlot: {
314
314
  type: StringConstructor;
315
315
  default: string;
@@ -339,8 +339,7 @@ declare const _default: import('vue').DefineComponent<{
339
339
  type: NumberConstructor;
340
340
  default: number;
341
341
  };
342
- menuTextEllipsisTooltip: BooleanConstructor;
343
- menuTextEllipsisTooltipProps: import("vue").PropType<Partial<import("../ele-tooltip/props").TooltipProps>>;
342
+ menuTextEllipsisTooltip: import("vue").PropType<boolean | Partial<import("../ele-tooltip/props").TooltipProps> | undefined>;
344
343
  keepAlive: BooleanConstructor;
345
344
  transitionName: StringConstructor;
346
345
  transitionDelay: {
@@ -376,7 +375,7 @@ declare const _default: import('vue').DefineComponent<{
376
375
  expanded: boolean;
377
376
  compact: boolean;
378
377
  maximized: boolean;
379
- tabBar: boolean;
378
+ tabBar: boolean | "header";
380
379
  keepAlive: boolean;
381
380
  responsive: boolean;
382
381
  headerStyle: import("./types").HeaderStyle;
@@ -406,6 +405,5 @@ declare const _default: import('vue').DefineComponent<{
406
405
  sideboxTitleSlot: string;
407
406
  sideboxIconSlot: string;
408
407
  menuHoverTimeout: number;
409
- menuTextEllipsisTooltip: boolean;
410
408
  }, {}>;
411
409
  export default _default;
@@ -35,6 +35,7 @@ const _sfc_main = defineComponent({
35
35
  isHover: false
36
36
  };
37
37
  const contentRef = ref(null);
38
+ const modalsRef = ref(null);
38
39
  const levelData = shallowRef([]);
39
40
  const tabData = shallowRef([]);
40
41
  const tabActive = ref(getHomePath(props.homePath));
@@ -92,7 +93,7 @@ const _sfc_main = defineComponent({
92
93
  // 图标置于顶栏
93
94
  { "ele-admin-logo-auto": logoAuto && !mobile.value },
94
95
  // 开启页签栏
95
- { "ele-admin-open-tab": props.tabBar },
96
+ { "ele-admin-open-tab": props.tabBar && props.tabBar !== "header" },
96
97
  // 卡片风格页签
97
98
  { "ele-admin-tab-card": props.tabStyle === "button" },
98
99
  // 主体定宽
@@ -110,7 +111,7 @@ const _sfc_main = defineComponent({
110
111
  return props.backTopTarget;
111
112
  }
112
113
  if (props.fixedBody) {
113
- return ".ele-admin-layout.ele-admin-fixed-body>.ele-admin-main>.ele-admin-body>.ele-admin-content";
114
+ return ".ele-admin-layout.ele-admin-fixed-body>.ele-admin-main>.ele-admin-body>.ele-admin-wrapper>.ele-admin-content";
114
115
  }
115
116
  return "body";
116
117
  });
@@ -737,13 +738,15 @@ const _sfc_main = defineComponent({
737
738
  tabBar: props.tabBar,
738
739
  sidebar: sidebar.value,
739
740
  keepAlive: props.tabBar && props.keepAlive,
740
- responsive: props.responsive
741
+ responsive: props.responsive,
742
+ modalsEl: modalsRef.value
741
743
  };
742
744
  return state2;
743
745
  });
744
746
  provide(LAYOUT_KEY, layoutProvide);
745
747
  return {
746
748
  contentRef,
749
+ modalsRef,
747
750
  levelData,
748
751
  tabData,
749
752
  tabActive,
@@ -794,18 +797,23 @@ const _export_sfc = (sfc, props) => {
794
797
  return target;
795
798
  };
796
799
  const _hoisted_1 = { class: "ele-admin-body" };
797
- const _hoisted_2 = {
800
+ const _hoisted_2 = { class: "ele-admin-wrapper" };
801
+ const _hoisted_3 = {
798
802
  ref: "contentRef",
799
803
  class: "ele-admin-content"
800
804
  };
805
+ const _hoisted_4 = {
806
+ ref: "modalsRef",
807
+ class: "ele-admin-modals"
808
+ };
801
809
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
802
810
  const _component_ProHeader = resolveComponent("ProHeader");
803
811
  const _component_ProSidebox = resolveComponent("ProSidebox");
804
812
  const _component_ProSidebar = resolveComponent("ProSidebar");
805
813
  const _component_ProTabs = resolveComponent("ProTabs");
806
814
  const _component_ProIframe = resolveComponent("ProIframe");
807
- const _component_ReceiverView = resolveComponent("ReceiverView");
808
815
  const _component_ElBacktop = resolveComponent("ElBacktop");
816
+ const _component_ReceiverView = resolveComponent("ReceiverView");
809
817
  return openBlock(), createElementBlock("div", {
810
818
  class: normalizeClass(_ctx.layoutClass)
811
819
  }, [
@@ -827,14 +835,25 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
827
835
  homePath: _ctx.homeMenuPath,
828
836
  isHome: _ctx.isHome,
829
837
  menuTextEllipsisTooltip: _ctx.menuTextEllipsisTooltip,
830
- menuTextEllipsisTooltipProps: _ctx.menuTextEllipsisTooltipProps,
838
+ tabs: _ctx.tabData,
839
+ tabActive: _ctx.tabActive,
840
+ fixedHome: _ctx.fixedHome,
841
+ tabStyle: _ctx.tabStyle,
842
+ tabContextMenu: _ctx.tabContextMenu,
843
+ tabContextMenus: _ctx.tabContextMenus,
844
+ tabSortable: _ctx.tabSortable,
845
+ tabBar: _ctx.tabBar,
831
846
  onLogoClick: _ctx.onLogoClick,
832
847
  onOpen: _ctx.onHeadMenuOpen,
833
848
  onClsoe: _ctx.onHeadMenuClose,
834
849
  onItemClick: _ctx.onNavItemClick,
835
850
  onItemMouseenter: _ctx.onNavItemMouseenter,
836
851
  onMouseEnter: _ctx.onNavMouseEnter,
837
- onMouseLeave: _ctx.onNavMouseLeave
852
+ onMouseLeave: _ctx.onNavMouseLeave,
853
+ onTabClick: _ctx.onTabClick,
854
+ onTabRemove: _ctx.onTabRemove,
855
+ onTabContextMenu: _ctx.onTabContextMenu,
856
+ onTabSortChange: _ctx.onTabSortChange
838
857
  }, createSlots({ _: 2 }, [
839
858
  renderList(Object.keys(_ctx.$slots).filter(
840
859
  (k) => ![
@@ -843,11 +862,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
843
862
  "bottom",
844
863
  "boxTop",
845
864
  "boxBottom",
846
- "footer",
847
- "tabTitle",
848
- "tabContext",
849
- "tabExtra",
850
- "tabHome"
865
+ "footer"
851
866
  ].includes(k)
852
867
  ), (name) => {
853
868
  return {
@@ -857,7 +872,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
857
872
  ])
858
873
  };
859
874
  })
860
- ]), 1032, ["menus", "headerStyle", "active", "ellipsis", "ellipsisProps", "menuTrigger", "itemTrigger", "collapse", "sidebar", "titleSlot", "iconSlot", "levels", "breadcrumb", "breadcrumbSeparator", "homePath", "isHome", "menuTextEllipsisTooltip", "menuTextEllipsisTooltipProps", "onLogoClick", "onOpen", "onClsoe", "onItemClick", "onItemMouseenter", "onMouseEnter", "onMouseLeave"]),
875
+ ]), 1032, ["menus", "headerStyle", "active", "ellipsis", "ellipsisProps", "menuTrigger", "itemTrigger", "collapse", "sidebar", "titleSlot", "iconSlot", "levels", "breadcrumb", "breadcrumbSeparator", "homePath", "isHome", "menuTextEllipsisTooltip", "tabs", "tabActive", "fixedHome", "tabStyle", "tabContextMenu", "tabContextMenus", "tabSortable", "tabBar", "onLogoClick", "onOpen", "onClsoe", "onItemClick", "onItemMouseenter", "onMouseEnter", "onMouseLeave", "onTabClick", "onTabRemove", "onTabContextMenu", "onTabSortChange"]),
861
876
  createVNode(_component_ReceiverView, {
862
877
  class: "ele-admin-main",
863
878
  wrapPosition: false
@@ -876,7 +891,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
876
891
  titleSlot: _ctx.sideboxTitleSlot,
877
892
  iconSlot: _ctx.sideboxIconSlot,
878
893
  menuTextEllipsisTooltip: _ctx.menuTextEllipsisTooltip,
879
- menuTextEllipsisTooltipProps: _ctx.menuTextEllipsisTooltipProps,
880
894
  onItemClick: _ctx.onBoxItemClick,
881
895
  onItemMouseenter: _ctx.onBoxItemMouseenter,
882
896
  onMouseEnter: _ctx.onBoxMouseEnter,
@@ -906,7 +920,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
906
920
  ])
907
921
  };
908
922
  })
909
- ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "compact", "collapse", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "menuTextEllipsisTooltip", "menuTextEllipsisTooltipProps", "onItemClick", "onItemMouseenter", "onMouseEnter", "onMouseLeave"])) : createCommentVNode("", true),
923
+ ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "compact", "collapse", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "menuTextEllipsisTooltip", "onItemClick", "onItemMouseenter", "onMouseEnter", "onMouseLeave"])) : createCommentVNode("", true),
910
924
  _ctx.sidebar ? (openBlock(), createBlock(_component_ProSidebar, {
911
925
  key: 1,
912
926
  menus: _ctx.sidebarData,
@@ -921,7 +935,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
921
935
  titleSlot: _ctx.sidebarTitleSlot,
922
936
  iconSlot: _ctx.sidebarIconSlot,
923
937
  menuTextEllipsisTooltip: _ctx.menuTextEllipsisTooltip,
924
- menuTextEllipsisTooltipProps: _ctx.menuTextEllipsisTooltipProps,
925
938
  onOpen: _ctx.onSideMenuOpen,
926
939
  onClsoe: _ctx.onSideMenuClose,
927
940
  onItemClick: _ctx.onMenuItemClick,
@@ -952,9 +965,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
952
965
  ])
953
966
  };
954
967
  })
955
- ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "collapse", "uniqueOpened", "defaultOpeneds", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "menuTextEllipsisTooltip", "menuTextEllipsisTooltipProps", "onOpen", "onClsoe", "onItemClick", "onMouseEnter", "onMouseLeave"])) : createCommentVNode("", true),
968
+ ]), 1032, ["menus", "sidebarStyle", "colorfulIcon", "active", "collapse", "uniqueOpened", "defaultOpeneds", "popperEffect", "itemTrigger", "titleSlot", "iconSlot", "menuTextEllipsisTooltip", "onOpen", "onClsoe", "onItemClick", "onMouseEnter", "onMouseLeave"])) : createCommentVNode("", true),
956
969
  createElementVNode("div", _hoisted_1, [
957
- _ctx.tabBar ? (openBlock(), createBlock(_component_ProTabs, {
970
+ _ctx.tabBar && _ctx.tabBar !== "header" ? (openBlock(), createBlock(_component_ProTabs, {
958
971
  key: 0,
959
972
  tabs: _ctx.tabData,
960
973
  active: _ctx.tabActive,
@@ -982,6 +995,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
982
995
  })
983
996
  ]), 1032, ["tabs", "active", "tabStyle", "fixedHome", "homePath", "isHome", "tabContextMenu", "tabContextMenus", "tabSortable", "onTabClick", "onTabRemove", "onTabContextMenu", "onTabSortChange"])) : createCommentVNode("", true),
984
997
  createElementVNode("div", _hoisted_2, [
998
+ createElementVNode("div", _hoisted_3, [
999
+ renderSlot(_ctx.$slots, "default"),
1000
+ !_ctx.hideFooter ? renderSlot(_ctx.$slots, "footer", { key: 0 }) : createCommentVNode("", true)
1001
+ ], 512),
985
1002
  _ctx.tabBar && _ctx.keepAlive ? (openBlock(), createBlock(_component_ProIframe, {
986
1003
  key: 0,
987
1004
  keepAlive: _ctx.keepAlive,
@@ -990,9 +1007,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
990
1007
  tabData: _ctx.tabData,
991
1008
  tabActive: _ctx.tabActive
992
1009
  }, null, 8, ["keepAlive", "transitionName", "transitionDelay", "tabData", "tabActive"])) : createCommentVNode("", true),
993
- renderSlot(_ctx.$slots, "default"),
994
- !_ctx.hideFooter ? renderSlot(_ctx.$slots, "footer", { key: 1 }) : createCommentVNode("", true)
995
- ], 512)
1010
+ _ctx.backTop ? (openBlock(), createBlock(_component_ElBacktop, {
1011
+ key: _ctx.backTopSelector,
1012
+ target: _ctx.backTopSelector,
1013
+ visibilityHeight: _ctx.backTopVisibilityHeight,
1014
+ bottom: _ctx.backTopBottom,
1015
+ right: _ctx.backTopRight
1016
+ }, null, 8, ["target", "visibilityHeight", "bottom", "right"])) : createCommentVNode("", true),
1017
+ createElementVNode("div", _hoisted_4, null, 512)
1018
+ ])
996
1019
  ])
997
1020
  ]),
998
1021
  _: 3
@@ -1000,14 +1023,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1000
1023
  createElementVNode("div", {
1001
1024
  class: "ele-admin-mask",
1002
1025
  onClick: _cache[0] || (_cache[0] = (...args) => _ctx.updateCollapse && _ctx.updateCollapse(...args))
1003
- }),
1004
- _ctx.backTop ? (openBlock(), createBlock(_component_ElBacktop, {
1005
- key: 0,
1006
- right: _ctx.backTopRight,
1007
- bottom: _ctx.backTopBottom,
1008
- visibilityHeight: _ctx.backTopVisibilityHeight,
1009
- target: _ctx.backTopSelector
1010
- }, null, 8, ["right", "bottom", "visibilityHeight", "target"])) : createCommentVNode("", true)
1026
+ })
1011
1027
  ], 2);
1012
1028
  }
1013
1029
  const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
@@ -1,7 +1,6 @@
1
1
  import { MenuItem, TabItem, Layout, SidebarLayout, HeaderStyle, SidebarStyle, TabStyle, MenuI18n, TabItemEventOption, BodySizeChangeOption, MenuItemTrigger, BeforeClick } from './types';
2
2
  import { EleDropdownProps } from '../ele-app/plus';
3
3
  import { ContextMenus } from '../ele-tabs/types';
4
- import { EllipsisProps } from '../ele-menus/types';
5
4
  import { PropType, ExtractPropTypes } from 'vue';
6
5
 
7
6
  /**
@@ -20,7 +19,7 @@ export declare const proLayoutProps: {
20
19
  maximized: BooleanConstructor;
21
20
  /** 是否需要页签栏 */
22
21
  tabBar: {
23
- type: BooleanConstructor;
22
+ type: PropType<boolean | "header">;
24
23
  default: boolean;
25
24
  };
26
25
  /** 是否需要面包屑导航 */
@@ -61,7 +60,7 @@ export declare const proLayoutProps: {
61
60
  default: boolean;
62
61
  };
63
62
  /** 顶栏菜单省略项的属性 */
64
- ellipsisProps: PropType<EllipsisProps>;
63
+ ellipsisProps: PropType<import('../ele-menus/types').EllipsisProps | undefined>;
65
64
  /** 顶栏子菜单触发方式 */
66
65
  menuTrigger: {
67
66
  type: PropType<import('element-plus/es/utils/index').EpPropMergeType<StringConstructor, "hover" | "click", unknown> | undefined>;
@@ -194,9 +193,7 @@ export declare const proLayoutProps: {
194
193
  default: number;
195
194
  };
196
195
  /** 是否开启菜单文本溢出提示 */
197
- menuTextEllipsisTooltip: BooleanConstructor;
198
- /** 菜单文本溢出提示属性 */
199
- menuTextEllipsisTooltipProps: PropType<Partial<import('../ele-tooltip/props').TooltipProps>>;
196
+ menuTextEllipsisTooltip: PropType<boolean | Partial<import('../ele-tooltip/props').TooltipProps> | undefined>;
200
197
  /** 是否支持内链缓存 */
201
198
  keepAlive: BooleanConstructor;
202
199
  /** 内链切换动画 */
@@ -11,7 +11,7 @@ const proLayoutProps = {
11
11
  maximized: Boolean,
12
12
  /** 是否需要页签栏 */
13
13
  tabBar: {
14
- type: Boolean,
14
+ type: [Boolean, String],
15
15
  default: true
16
16
  },
17
17
  /** 是否需要面包屑导航 */
@@ -185,9 +185,7 @@ const proLayoutProps = {
185
185
  default: 600
186
186
  },
187
187
  /** 是否开启菜单文本溢出提示 */
188
- menuTextEllipsisTooltip: Boolean,
189
- /** 菜单文本溢出提示属性 */
190
- menuTextEllipsisTooltipProps: Object,
188
+ menuTextEllipsisTooltip: [Boolean, Object],
191
189
  /** 是否支持内链缓存 */
192
190
  keepAlive: Boolean,
193
191
  /** 内链切换动画 */
@@ -9,21 +9,10 @@
9
9
  .ele-admin-header,
10
10
  .ele-admin-sidebar,
11
11
  .ele-admin-sidebox,
12
- .ele-admin-tabs,
13
- .ele-modal-inner,
14
- .ele-drawer-inner {
12
+ .ele-admin-tabs {
15
13
  @include set-ele-var('header', $var);
16
14
  }
17
15
 
18
- .ele-admin-header.is-dark,
19
- .ele-admin-header.is-primary {
20
- @include set-ele-var('header-dark', $var);
21
- }
22
-
23
- .ele-admin-header.is-primary {
24
- @include set-ele-var('header-primary', $var);
25
- }
26
-
27
16
  .ele-admin-logo {
28
17
  @include set-ele-var('logo', $var);
29
18
  }
@@ -32,18 +21,14 @@
32
21
  .ele-admin-sidebar,
33
22
  .ele-admin-sidebox,
34
23
  .ele-admin-body,
35
- .ele-admin-mask,
36
- .ele-modal-inner,
37
- .ele-drawer-inner {
24
+ .ele-admin-mask {
38
25
  @include set-ele-var('sidebar', $var);
39
26
  }
40
27
 
41
28
  .ele-admin-header,
42
29
  .ele-admin-sidebox,
43
30
  .ele-admin-sidebox-popup,
44
- .ele-admin-body,
45
- .ele-modal-inner,
46
- .ele-drawer-inner {
31
+ .ele-admin-body {
47
32
  @include set-ele-var('sidebox', $var);
48
33
  }
49
34
  }
@@ -13,6 +13,11 @@
13
13
  z-index: calc(#{eleVar('layout', 'index')} + 3);
14
14
  flex-shrink: 0;
15
15
 
16
+ &.is-ghost {
17
+ background: hsla(0, 0%, 100%, 0.04);
18
+ backdrop-filter: blur(8px);
19
+ }
20
+
16
21
  /* 图标 */
17
22
  .ele-admin-logo {
18
23
  color: eleVar('logo', 'color');
@@ -41,7 +46,9 @@
41
46
 
42
47
  /* 面包屑 */
43
48
  .ele-admin-breadcrumb {
49
+ $tool-padding: eleVar('header', 'tool-padding');
44
50
  flex-shrink: 0;
51
+ margin-left: calc(#{eleVar('header', 'tools-padding')} + #{$tool-padding});
45
52
  }
46
53
 
47
54
  /* 菜单 */
@@ -59,21 +66,79 @@
59
66
  }
60
67
  }
61
68
 
62
- /* 工具栏 */
63
- .ele-admin-tools {
64
- height: 100%;
65
- flex-shrink: 0;
66
- padding: 0 12px;
67
- display: flex;
68
- align-items: center;
69
- box-sizing: border-box;
69
+ /* 页签栏 */
70
+ & > .ele-admin-tabs {
71
+ flex: 1;
72
+ overflow: hidden;
73
+ line-height: normal;
74
+
75
+ &.ele-tab-wrap {
76
+ padding-right: 0;
77
+ background: none;
78
+ box-shadow: none;
79
+ }
80
+
81
+ & + .ele-admin-tools {
82
+ padding-left: 0;
83
+ }
84
+
85
+ &.is-simple,
86
+ &.is-indicator {
87
+ align-self: flex-end;
88
+ }
89
+ }
90
+
91
+ & > .ele-admin-tabs.ele-tab-wrap.is-simple,
92
+ & > .ele-admin-tabs.ele-tab-wrap.is-indicator,
93
+ & > .ele-tab-wrap .ele-tabs.is-simple,
94
+ & > .ele-tab-wrap .ele-tabs.is-indicator {
95
+ $height: eleVar('header', 'height');
96
+ $tool-height: eleVar('header', 'tool-height');
97
+ $tab-height: calc(#{$height} - (#{$height} - #{$tool-height}) / 2);
98
+ #{eleVarName('tab', 'height')}: #{$tab-height};
99
+ }
100
+ }
101
+
102
+ /* 工具栏 */
103
+ .ele-admin-tools {
104
+ display: flex;
105
+ align-items: center;
106
+ padding: 0 eleVar('header', 'tools-padding');
107
+ box-sizing: border-box;
108
+ flex-shrink: 0;
109
+ height: 100%;
110
+
111
+ & + .ele-admin-breadcrumb {
112
+ margin-left: 0;
113
+ }
114
+
115
+ & + .ele-admin-tabs {
116
+ &.ele-tab-wrap,
117
+ &:not(.is-fixed-home) .el-tabs__nav-wrap:not(.is-scrollable) .el-tabs__nav {
118
+ padding-left: 0;
119
+ }
120
+ }
121
+
122
+ & + .is-simple,
123
+ & + .is-indicator {
124
+ &.is-fixed-home,
125
+ &:not(.is-fixed-home) .el-tabs__nav-wrap:not(.is-scrollable) .el-tabs__nav {
126
+ padding-left: eleVar('tab', 'simple-angle-size');
127
+ }
128
+ }
129
+
130
+ & + .is-button {
131
+ &.is-fixed-home,
132
+ &:not(.is-fixed-home) .el-tabs__nav-wrap:not(.is-scrollable) .el-tabs__nav {
133
+ padding-left: eleVar('tab', 'button-space');
134
+ }
70
135
  }
71
136
  }
72
137
 
73
138
  /* 操作按钮 */
74
139
  .ele-admin-tool {
75
140
  height: eleVar('header', 'tool-height');
76
- padding: 0 12px;
141
+ padding: 0 eleVar('header', 'tool-padding');
77
142
  display: flex;
78
143
  align-items: center;
79
144
  border-radius: eleVar('header', 'tool-radius');
@@ -30,7 +30,7 @@
30
30
  width: 100% !important;
31
31
  }
32
32
 
33
- .ele-admin-tabs {
33
+ .ele-admin-body > .ele-admin-tabs {
34
34
  left: 0 !important;
35
35
  }
36
36
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  &.is-dark,
58
58
  &.is-primary {
59
- box-shadow: eleVar('header-dark', 'shadow');
59
+ box-shadow: eleVar('header', 'dark-shadow');
60
60
  }
61
61
  }
62
62
  }