ele-admin-plus 1.1.7 → 1.1.8-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/es/ele-app/el.d.ts +7 -1
  2. package/es/ele-app/style/overwrite/cascader/index.scss +2 -1
  3. package/es/ele-app/style/overwrite/input/css-var.scss +5 -2
  4. package/es/ele-app/style/overwrite/input/index.scss +148 -59
  5. package/es/ele-app/style/overwrite/select/index.scss +57 -8
  6. package/es/ele-app/style/overwrite/tree-select/index.scss +11 -2
  7. package/es/ele-card/index.d.ts +2 -9
  8. package/es/ele-card/index.js +36 -49
  9. package/es/ele-card/props.d.ts +1 -4
  10. package/es/ele-card/props.js +1 -4
  11. package/es/ele-card/style/index.js +0 -1
  12. package/es/ele-card/style/index.scss +54 -67
  13. package/es/ele-cropper/style/index.scss +8 -0
  14. package/es/ele-data-table/index.d.ts +17 -12
  15. package/es/ele-data-table/index.js +1 -0
  16. package/es/ele-data-table/props.d.ts +8 -5
  17. package/es/ele-data-table/props.js +4 -0
  18. package/es/ele-data-table/style/css-var.scss +20 -2
  19. package/es/ele-data-table/style/index.scss +87 -30
  20. package/es/ele-drawer/index.d.ts +2 -2
  21. package/es/ele-menus/index.d.ts +8 -0
  22. package/es/ele-menus/props.d.ts +3 -0
  23. package/es/ele-modal/index.d.ts +2 -2
  24. package/es/ele-page/style/index.scss +26 -21
  25. package/es/ele-pagination/style/index.scss +27 -13
  26. package/es/ele-pro-table/index.d.ts +16 -9
  27. package/es/ele-pro-table/index.js +29 -9
  28. package/es/ele-pro-table/props.d.ts +9 -6
  29. package/es/ele-pro-table/props.js +4 -0
  30. package/es/ele-pro-table/style/index.scss +62 -9
  31. package/es/ele-pro-table/util.d.ts +18 -1
  32. package/es/ele-pro-table/util.js +19 -0
  33. package/es/ele-segmented/index.js +2 -2
  34. package/es/ele-table/style/css-var.scss +46 -0
  35. package/es/ele-table/style/index.scss +8 -82
  36. package/es/ele-tabs/index.js +1 -1
  37. package/es/ele-toolbar/index.js +5 -1
  38. package/es/ele-tour/index.js +2 -2
  39. package/es/ele-tour/util.d.ts +5 -0
  40. package/es/ele-tour/util.js +9 -1
  41. package/es/ele-upload-list/components/list-item.js +1 -1
  42. package/es/ele-upload-list/types.d.ts +2 -0
  43. package/es/ele-virtual-table/components/body-cell.d.ts +2 -2
  44. package/es/ele-virtual-table/components/body-row.d.ts +2 -2
  45. package/es/ele-virtual-table/index.d.ts +20 -12
  46. package/es/ele-virtual-table/index.js +14 -1
  47. package/es/ele-virtual-table/props.d.ts +6 -3
  48. package/es/ele-virtual-table/style/css-var.scss +38 -16
  49. package/es/ele-virtual-table/style/index.scss +42 -31
  50. package/es/ele-watermark/index.d.ts +9 -0
  51. package/es/ele-watermark/index.js +3 -5
  52. package/es/ele-watermark/props.d.ts +5 -0
  53. package/es/ele-watermark/props.js +5 -0
  54. package/es/style/themes/default.scss +17 -9
  55. package/es/style/util.scss +5 -0
  56. package/lib/ele-app/el.d.ts +7 -1
  57. package/lib/ele-app/style/overwrite/cascader/index.scss +2 -1
  58. package/lib/ele-app/style/overwrite/input/css-var.scss +5 -2
  59. package/lib/ele-app/style/overwrite/input/index.scss +148 -59
  60. package/lib/ele-app/style/overwrite/select/index.scss +57 -8
  61. package/lib/ele-app/style/overwrite/tree-select/index.scss +11 -2
  62. package/lib/ele-card/index.cjs +35 -48
  63. package/lib/ele-card/index.d.ts +2 -9
  64. package/lib/ele-card/props.cjs +1 -4
  65. package/lib/ele-card/props.d.ts +1 -4
  66. package/lib/ele-card/style/index.cjs +0 -1
  67. package/lib/ele-card/style/index.scss +54 -67
  68. package/lib/ele-cropper/style/index.scss +8 -0
  69. package/lib/ele-data-table/index.cjs +1 -0
  70. package/lib/ele-data-table/index.d.ts +17 -12
  71. package/lib/ele-data-table/props.cjs +4 -0
  72. package/lib/ele-data-table/props.d.ts +8 -5
  73. package/lib/ele-data-table/style/css-var.scss +20 -2
  74. package/lib/ele-data-table/style/index.scss +87 -30
  75. package/lib/ele-drawer/index.d.ts +2 -2
  76. package/lib/ele-menus/index.d.ts +8 -0
  77. package/lib/ele-menus/props.d.ts +3 -0
  78. package/lib/ele-modal/index.d.ts +2 -2
  79. package/lib/ele-page/style/index.scss +26 -21
  80. package/lib/ele-pagination/style/index.scss +27 -13
  81. package/lib/ele-pro-table/index.cjs +28 -8
  82. package/lib/ele-pro-table/index.d.ts +16 -9
  83. package/lib/ele-pro-table/props.cjs +4 -0
  84. package/lib/ele-pro-table/props.d.ts +9 -6
  85. package/lib/ele-pro-table/style/index.scss +62 -9
  86. package/lib/ele-pro-table/util.cjs +19 -0
  87. package/lib/ele-pro-table/util.d.ts +18 -1
  88. package/lib/ele-segmented/index.cjs +2 -2
  89. package/lib/ele-table/style/css-var.scss +46 -0
  90. package/lib/ele-table/style/index.scss +8 -82
  91. package/lib/ele-tabs/index.cjs +1 -1
  92. package/lib/ele-toolbar/index.cjs +5 -1
  93. package/lib/ele-tour/index.cjs +1 -1
  94. package/lib/ele-tour/util.cjs +8 -0
  95. package/lib/ele-tour/util.d.ts +5 -0
  96. package/lib/ele-upload-list/components/list-item.cjs +1 -1
  97. package/lib/ele-upload-list/types.d.ts +2 -0
  98. package/lib/ele-virtual-table/components/body-cell.d.ts +2 -2
  99. package/lib/ele-virtual-table/components/body-row.d.ts +2 -2
  100. package/lib/ele-virtual-table/index.cjs +13 -0
  101. package/lib/ele-virtual-table/index.d.ts +20 -12
  102. package/lib/ele-virtual-table/props.d.ts +6 -3
  103. package/lib/ele-virtual-table/style/css-var.scss +38 -16
  104. package/lib/ele-virtual-table/style/index.scss +42 -31
  105. package/lib/ele-watermark/index.cjs +3 -5
  106. package/lib/ele-watermark/index.d.ts +9 -0
  107. package/lib/ele-watermark/props.cjs +5 -0
  108. package/lib/ele-watermark/props.d.ts +5 -0
  109. package/lib/style/themes/default.scss +17 -9
  110. package/lib/style/util.scss +5 -0
  111. package/package.json +20 -20
@@ -18,7 +18,7 @@
18
18
  & > th,
19
19
  & > td {
20
20
  color: eleVar('table', 'color');
21
- font-size: eleVar('table', 'font-szie');
21
+ font-size: eleVar('table', 'font-size');
22
22
  font-weight: normal;
23
23
  line-height: eleVar('table', 'line-height');
24
24
  padding: eleVar('table', 'padding');
@@ -82,33 +82,7 @@
82
82
  }
83
83
 
84
84
  /* 圆角 */
85
- & > thead > tr:first-child > th:first-child,
86
- & > thead > tr:first-child > td:first-child {
87
- border-top-left-radius: eleVar('table', 'radius');
88
- }
89
-
90
- & > thead > tr:first-child > th:last-child,
91
- & > thead > tr:first-child > td:last-child {
92
- border-top-right-radius: eleVar('table', 'radius');
93
- }
94
-
95
- & > tfoot > tr:last-child > td:first-child {
96
- border-bottom-left-radius: eleVar('table', 'radius');
97
- }
98
-
99
- & > tfoot > tr:last-child > td:last-child {
100
- border-bottom-right-radius: eleVar('table', 'radius');
101
- }
102
-
103
- &.has-header {
104
- border-top-left-radius: eleVar('table', 'radius');
105
- border-top-right-radius: eleVar('table', 'radius');
106
- }
107
-
108
- &.has-footer {
109
- border-bottom-left-radius: eleVar('table', 'radius');
110
- border-bottom-right-radius: eleVar('table', 'radius');
111
- }
85
+ @include table-radius(eleVar('table', 'radius'));
112
86
 
113
87
  /* 斑马纹 */
114
88
  &.is-stripe {
@@ -151,33 +125,7 @@
151
125
  }
152
126
  }
153
127
 
154
- & > thead > tr:first-child > th:first-child,
155
- & > thead > tr:first-child > td:first-child {
156
- border-top-left-radius: eleVar('table', 'lg-radius');
157
- }
158
-
159
- & > thead > tr:first-child > th:last-child,
160
- & > thead > tr:first-child > td:last-child {
161
- border-top-right-radius: eleVar('table', 'lg-radius');
162
- }
163
-
164
- & > tfoot > tr:last-child > td:first-child {
165
- border-bottom-left-radius: eleVar('table', 'lg-radius');
166
- }
167
-
168
- & > tfoot > tr:last-child > td:last-child {
169
- border-bottom-right-radius: eleVar('table', 'lg-radius');
170
- }
171
-
172
- &.has-header {
173
- border-top-left-radius: eleVar('table', 'lg-radius');
174
- border-top-right-radius: eleVar('table', 'lg-radius');
175
- }
176
-
177
- &.has-footer {
178
- border-bottom-left-radius: eleVar('table', 'lg-radius');
179
- border-bottom-right-radius: eleVar('table', 'lg-radius');
180
- }
128
+ @include table-radius(eleVar('table', 'lg-radius'));
181
129
  }
182
130
 
183
131
  /* 小型尺寸 */
@@ -193,33 +141,7 @@
193
141
  }
194
142
  }
195
143
 
196
- & > thead > tr:first-child > th:first-child,
197
- & > thead > tr:first-child > td:first-child {
198
- border-top-left-radius: eleVar('table', 'sm-radius');
199
- }
200
-
201
- & > thead > tr:first-child > th:last-child,
202
- & > thead > tr:first-child > td:last-child {
203
- border-top-right-radius: eleVar('table', 'sm-radius');
204
- }
205
-
206
- & > tfoot > tr:last-child > td:first-child {
207
- border-bottom-left-radius: eleVar('table', 'sm-radius');
208
- }
209
-
210
- & > tfoot > tr:last-child > td:last-child {
211
- border-bottom-right-radius: eleVar('table', 'sm-radius');
212
- }
213
-
214
- &.has-header {
215
- border-top-left-radius: eleVar('table', 'sm-radius');
216
- border-top-right-radius: eleVar('table', 'sm-radius');
217
- }
218
-
219
- &.has-footer {
220
- border-bottom-left-radius: eleVar('table', 'sm-radius');
221
- border-bottom-right-radius: eleVar('table', 'sm-radius');
222
- }
144
+ @include table-radius(eleVar('table', 'sm-radius'));
223
145
  }
224
146
 
225
147
  /* 全边框 */
@@ -238,6 +160,10 @@
238
160
  }
239
161
  }
240
162
 
163
+ &:not(.has-header) {
164
+ border-top: 1px solid eleVar('table', 'border-color');
165
+ }
166
+
241
167
  /* 表格内组件样式优化 */
242
168
  @include table-common-style();
243
169
  }
@@ -232,7 +232,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
232
232
  default: vue.withCtx(() => [
233
233
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index2) => {
234
234
  return vue.openBlock(), vue.createBlock(_component_ElTabPane, vue.mergeProps({
235
- key: index2 + "-" + item.name
235
+ key: index2 + "-" + item.name + "-" + item.label
236
236
  }, _ctx.omit(item, ["slot", "meta"])), vue.createSlots({
237
237
  label: vue.withCtx(() => [
238
238
  vue.createVNode(_component_TabTitle, {
@@ -17,7 +17,11 @@ const _export_sfc = (sfc, props2) => {
17
17
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
18
18
  const _component_EleText = vue.resolveComponent("EleText");
19
19
  return vue.openBlock(), vue.createElementBlock("div", {
20
- class: vue.normalizeClass(["ele-toolbar", { "is-plain": "plain" === _ctx.theme }])
20
+ class: vue.normalizeClass([
21
+ "ele-toolbar",
22
+ { "is-default": "plain" !== _ctx.theme },
23
+ { "is-plain": "plain" === _ctx.theme }
24
+ ])
21
25
  }, [
22
26
  _ctx.title || _ctx.subtitle ? (vue.openBlock(), vue.createElementBlock("div", {
23
27
  key: 0,
@@ -35,7 +35,7 @@ const _sfc_main = vue.defineComponent({
35
35
  showMask.value = mask ?? props2.mask;
36
36
  const el = typeof target === "function" ? target() : target;
37
37
  if (el) {
38
- el.focus();
38
+ util.scrollIntoView(el);
39
39
  const { width, height } = el.getBoundingClientRect();
40
40
  const { top, left } = util.getOffset(el);
41
41
  const space = padding ?? props2.padding ?? 0;
@@ -31,5 +31,13 @@ function getPopperProps(visible, modal, props) {
31
31
  popperClass: classes.join(" ")
32
32
  };
33
33
  }
34
+ function scrollIntoView(el) {
35
+ if (typeof el["scrollIntoViewIfNeeded"] === "function") {
36
+ el.scrollIntoViewIfNeeded(true);
37
+ } else {
38
+ el.scrollIntoView({ behavior: "instant", block: "nearest" });
39
+ }
40
+ }
34
41
  exports.getOffset = getOffset;
35
42
  exports.getPopperProps = getPopperProps;
43
+ exports.scrollIntoView = scrollIntoView;
@@ -12,3 +12,8 @@ export declare function getOffset(el: HTMLElement): Offset;
12
12
  * @param props 自定义属性
13
13
  */
14
14
  export declare function getPopperProps(visible?: boolean, modal?: boolean, props?: EleTooltipProps): EleTooltipProps;
15
+ /**
16
+ * 让元素可见
17
+ * @param el 元素
18
+ */
19
+ export declare function scrollIntoView(el: HTMLElement): void;
@@ -98,7 +98,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
98
98
  })
99
99
  ]))
100
100
  ]),
101
- !_ctx.readonly && !_ctx.disabled ? (vue.openBlock(), vue.createElementBlock("div", {
101
+ !_ctx.readonly && !_ctx.disabled && !_ctx.item.readonly ? (vue.openBlock(), vue.createElementBlock("div", {
102
102
  key: 0,
103
103
  class: "ele-upload-remove",
104
104
  onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => _ctx.onRemove && _ctx.onRemove(...args), ["stop"]))
@@ -14,6 +14,8 @@ export interface UploadItem extends Record<keyof any, any> {
14
14
  progress?: number;
15
15
  /** 选择的文件 */
16
16
  file?: File;
17
+ /** 是否只读 */
18
+ readonly?: boolean;
17
19
  }
18
20
 
19
21
  /**
@@ -30,7 +30,7 @@ declare const _default: import("vue").DefineComponent<{
30
30
  colspan: number;
31
31
  } | undefined) | undefined>;
32
32
  /** 溢出提示组件全局属性 */
33
- tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
33
+ tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
34
34
  /** 序号列起始编号 */
35
35
  pageIndex: NumberConstructor;
36
36
  /** 表格行高 */
@@ -110,7 +110,7 @@ declare const _default: import("vue").DefineComponent<{
110
110
  colspan: number;
111
111
  } | undefined) | undefined>;
112
112
  /** 溢出提示组件全局属性 */
113
- tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
113
+ tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
114
114
  /** 序号列起始编号 */
115
115
  pageIndex: NumberConstructor;
116
116
  /** 表格行高 */
@@ -29,7 +29,7 @@ declare const _default: import("vue").DefineComponent<{
29
29
  colspan: number;
30
30
  } | undefined) | undefined>;
31
31
  /** 溢出提示组件全局属性 */
32
- tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
32
+ tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
33
33
  /** 序号列起始编号 */
34
34
  pageIndex: NumberConstructor;
35
35
  /** 表格行高 */
@@ -109,7 +109,7 @@ declare const _default: import("vue").DefineComponent<{
109
109
  colspan: number;
110
110
  } | undefined) | undefined>;
111
111
  /** 溢出提示组件全局属性 */
112
- tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
112
+ tableTooltipProps: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
113
113
  /** 序号列起始编号 */
114
114
  pageIndex: NumberConstructor;
115
115
  /** 表格行高 */
@@ -894,6 +894,19 @@ const _sfc_main = vue.defineComponent({
894
894
  },
895
895
  { deep: true }
896
896
  );
897
+ vue.watch(
898
+ () => props2.showHeader,
899
+ (showHeader) => {
900
+ if (showHeader) {
901
+ vue.nextTick(() => {
902
+ const left = tableScrollLeft.value;
903
+ if (left) {
904
+ setScrollLeft(left - 1);
905
+ }
906
+ });
907
+ }
908
+ }
909
+ );
897
910
  return {
898
911
  rootRef,
899
912
  tableRef,
@@ -12,6 +12,10 @@ declare const _default: import("vue").DefineComponent<{
12
12
  type: BooleanConstructor;
13
13
  default: null;
14
14
  };
15
+ rowKey: {
16
+ type: import("vue").PropType<string | ((row: DataItem) => string) | undefined>;
17
+ required: boolean;
18
+ };
15
19
  columns: {
16
20
  type: import("vue").PropType<import("../ele-data-table/types").Columns>;
17
21
  required: boolean;
@@ -48,7 +52,7 @@ declare const _default: import("vue").DefineComponent<{
48
52
  maxHeight: (StringConstructor | NumberConstructor)[];
49
53
  fit: {
50
54
  type: BooleanConstructor;
51
- default: boolean; /** 是否是树形数据 */
55
+ default: boolean;
52
56
  };
53
57
  className: {
54
58
  type: StringConstructor;
@@ -56,7 +60,6 @@ declare const _default: import("vue").DefineComponent<{
56
60
  };
57
61
  width: (StringConstructor | NumberConstructor)[];
58
62
  lazy: BooleanConstructor;
59
- rowKey: import("vue").PropType<string | ((row: any) => string) | undefined>;
60
63
  data: {
61
64
  type: import("vue").PropType<any[]>;
62
65
  default: () => never[];
@@ -66,9 +69,10 @@ declare const _default: import("vue").DefineComponent<{
66
69
  type: BooleanConstructor;
67
70
  default: boolean;
68
71
  };
69
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
72
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
70
73
  emptyText: StringConstructor;
71
74
  indent: {
75
+ /** 是否显示表尾 */
72
76
  type: NumberConstructor;
73
77
  default: number;
74
78
  };
@@ -93,7 +97,7 @@ declare const _default: import("vue").DefineComponent<{
93
97
  defaultExpandAll: BooleanConstructor;
94
98
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
95
99
  tooltipEffect: StringConstructor;
96
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
100
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
97
101
  spanMethod: import("vue").PropType<((data: {
98
102
  row: any;
99
103
  rowIndex: number;
@@ -203,18 +207,18 @@ declare const _default: import("vue").DefineComponent<{
203
207
  cellDblclick: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
204
208
  cellContextmenu: (_row: DataItem, _column: Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
205
209
  rowClick: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
206
- rowContextmenu: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
210
+ rowContextmenu: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean; /** 根节点 */
207
211
  rowDblclick: (_row: DataItem, _column: Column, _e: MouseEvent) => boolean;
208
- /** 根节点 */
209
212
  headerClick: (_column: Column, _e: MouseEvent) => boolean;
210
213
  headerContextmenu: (_column: Column, _e: MouseEvent) => boolean;
211
214
  sortChange: (_sorter: import("../ele-data-table/types").Sorter) => boolean;
212
- filterChange: (_filter: Filter) => boolean; /** 表头行 */
215
+ filterChange: (_filter: Filter) => boolean; /** 主体区域列 */
213
216
  currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean;
217
+ /** 表头所有行列宽 */
214
218
  headerDragend: (_width: number, _old: number, _column: Column, _e: MouseEvent) => boolean;
215
219
  expandChange: (_row: DataItem, _expanded: boolean) => boolean;
216
220
  'update:currentRowKey': (_currentRowKey?: DataKey | undefined) => boolean;
217
- 'update:selectedRowKeys': (_selectedRowKeys?: DataKey[] | undefined) => boolean; /** 表格宽度 */
221
+ 'update:selectedRowKeys': (_selectedRowKeys?: DataKey[] | undefined) => boolean;
218
222
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
219
223
  rowHeight: NumberConstructor;
220
224
  stripe: {
@@ -225,6 +229,10 @@ declare const _default: import("vue").DefineComponent<{
225
229
  type: BooleanConstructor;
226
230
  default: null;
227
231
  };
232
+ rowKey: {
233
+ type: import("vue").PropType<string | ((row: DataItem) => string) | undefined>;
234
+ required: boolean;
235
+ };
228
236
  columns: {
229
237
  type: import("vue").PropType<import("../ele-data-table/types").Columns>;
230
238
  required: boolean;
@@ -261,7 +269,7 @@ declare const _default: import("vue").DefineComponent<{
261
269
  maxHeight: (StringConstructor | NumberConstructor)[];
262
270
  fit: {
263
271
  type: BooleanConstructor;
264
- default: boolean; /** 是否是树形数据 */
272
+ default: boolean;
265
273
  };
266
274
  className: {
267
275
  type: StringConstructor;
@@ -269,7 +277,6 @@ declare const _default: import("vue").DefineComponent<{
269
277
  };
270
278
  width: (StringConstructor | NumberConstructor)[];
271
279
  lazy: BooleanConstructor;
272
- rowKey: import("vue").PropType<string | ((row: any) => string) | undefined>;
273
280
  data: {
274
281
  type: import("vue").PropType<any[]>;
275
282
  default: () => never[];
@@ -279,9 +286,10 @@ declare const _default: import("vue").DefineComponent<{
279
286
  type: BooleanConstructor;
280
287
  default: boolean;
281
288
  };
282
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
289
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
283
290
  emptyText: StringConstructor;
284
291
  indent: {
292
+ /** 是否显示表尾 */
285
293
  type: NumberConstructor;
286
294
  default: number;
287
295
  };
@@ -306,7 +314,7 @@ declare const _default: import("vue").DefineComponent<{
306
314
  defaultExpandAll: BooleanConstructor;
307
315
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
308
316
  tooltipEffect: StringConstructor;
309
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
317
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
310
318
  spanMethod: import("vue").PropType<((data: {
311
319
  row: any;
312
320
  rowIndex: number;
@@ -13,6 +13,10 @@ export declare const virtualTableProps: {
13
13
  type: BooleanConstructor;
14
14
  default: null;
15
15
  };
16
+ rowKey: {
17
+ type: import("vue").PropType<string | ((row: import("../ele-data-table/types").DataItem) => string) | undefined>;
18
+ required: boolean;
19
+ };
16
20
  columns: {
17
21
  type: import("vue").PropType<import("../ele-data-table/types").Columns>;
18
22
  required: boolean;
@@ -57,7 +61,6 @@ export declare const virtualTableProps: {
57
61
  };
58
62
  width: (StringConstructor | NumberConstructor)[];
59
63
  lazy: BooleanConstructor;
60
- rowKey: import("vue").PropType<string | ((row: any) => string) | undefined>;
61
64
  data: {
62
65
  type: import("vue").PropType<any[]>;
63
66
  default: () => never[];
@@ -67,7 +70,7 @@ export declare const virtualTableProps: {
67
70
  type: BooleanConstructor;
68
71
  default: boolean;
69
72
  };
70
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
73
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
71
74
  emptyText: StringConstructor;
72
75
  indent: {
73
76
  type: NumberConstructor;
@@ -94,7 +97,7 @@ export declare const virtualTableProps: {
94
97
  defaultExpandAll: BooleanConstructor;
95
98
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
96
99
  tooltipEffect: StringConstructor;
97
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
100
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
98
101
  spanMethod: import("vue").PropType<((data: {
99
102
  row: any;
100
103
  rowIndex: number;
@@ -41,7 +41,7 @@
41
41
  }
42
42
  }
43
43
 
44
- /* 虚拟表格单元格 */
44
+ /* 虚拟表格全部行单元格 */
45
45
  @mixin virtual-table-td {
46
46
  @include virtual-table-tr {
47
47
  & > .ele-table-td {
@@ -50,31 +50,53 @@
50
50
  }
51
51
  }
52
52
 
53
- /* 虚拟表格圆角样式 */
53
+ /* 虚拟表格单元格间距 */
54
+ @mixin virtual-table-padding($padding) {
55
+ @include virtual-table-td {
56
+ padding: $padding;
57
+ padding-right: 0;
58
+ padding-left: 0;
59
+
60
+ & > .ele-table-cell {
61
+ padding: $padding;
62
+ padding-bottom: 0;
63
+ padding-top: 0;
64
+ }
65
+ }
66
+ }
67
+
68
+ /* 虚拟表格圆角 */
54
69
  @mixin virtual-table-radius($radius) {
55
- & > .el-table-v2 > .el-table-v2__main > .el-table-v2__header-wrapper {
70
+ & > .el-table-v2 > .el-table-v2__main > .el-table-v2__header-wrapper,
71
+ &.is-border > .el-table-v2::after,
72
+ &.is-border.hide-header
73
+ > .el-table-v2
74
+ > .el-table-v2__main
75
+ > .el-table-v2__body
76
+ > div:not(.el-virtual-scrollbar) {
56
77
  border-top-left-radius: $radius;
57
78
  border-top-right-radius: $radius;
58
79
  }
59
80
 
60
- & > .el-table-v2 > .el-table-v2__footer {
81
+ & > .el-table-v2 > .el-table-v2__footer,
82
+ &.is-border > .el-table-v2::before,
83
+ &.is-border:not(.has-footer)
84
+ > .el-table-v2
85
+ > .el-table-v2__main
86
+ > .el-table-v2__body
87
+ > div:not(.el-virtual-scrollbar) {
61
88
  border-bottom-left-radius: $radius;
62
89
  border-bottom-right-radius: $radius;
63
90
  }
64
- }
65
91
 
66
- /* 设置单元格间距 */
67
- @mixin virtual-table-padding($padding) {
68
- @include virtual-table-td {
69
- padding: $padding;
70
- padding-left: 0;
71
- padding-right: 0;
92
+ &.is-border::before {
93
+ border-bottom-left-radius: $radius;
94
+ border-top-left-radius: $radius;
95
+ }
72
96
 
73
- & > .ele-table-cell {
74
- padding: $padding;
75
- padding-top: 0;
76
- padding-bottom: 0;
77
- }
97
+ &.is-border::after {
98
+ border-bottom-right-radius: $radius;
99
+ border-top-right-radius: $radius;
78
100
  }
79
101
  }
80
102
 
@@ -22,8 +22,9 @@
22
22
  }
23
23
 
24
24
  & > .el-table-v2 {
25
- position: static;
25
+ font-size: eleVar('table', 'font-size');
26
26
  box-sizing: border-box;
27
+ position: static;
27
28
 
28
29
  & > .el-table-v2__main,
29
30
  & > .el-table-v2__footer {
@@ -345,23 +346,38 @@
345
346
  &::before,
346
347
  &::after {
347
348
  position: absolute;
349
+ box-sizing: border-box;
350
+ pointer-events: none;
348
351
  z-index: 5;
349
352
  }
350
353
  }
351
354
 
352
- & > .el-table-v2 {
355
+ & > .el-table-v2::before,
356
+ & > .el-table-v2::after {
357
+ left: 0;
358
+ right: 0;
359
+ width: 100%;
360
+ height: calc(1px + #{eleVar('table', 'radius')});
361
+ }
362
+
363
+ & > .el-table-v2::before {
364
+ content: '';
365
+ bottom: 0;
366
+ border-bottom: 1px solid eleVar('table', 'border-color');
367
+ }
368
+
369
+ &.is-border > .el-table-v2::after,
370
+ &.hide-header > .el-table-v2::after {
371
+ content: '';
372
+ top: 0;
373
+ border-top: 1px solid eleVar('table', 'border-color');
374
+ }
375
+
376
+ &.is-border > .el-table-v2 {
353
377
  &::before,
354
378
  &::after {
355
- left: 0;
356
- right: 0;
357
- height: 0;
358
- width: 100%;
359
- border-top: 1px solid eleVar('table', 'border-color');
360
- }
361
-
362
- &::before {
363
- content: '';
364
- bottom: 0;
379
+ border-right: 1px solid transparent;
380
+ border-left: 1px solid transparent;
365
381
  }
366
382
  }
367
383
 
@@ -370,12 +386,6 @@
370
386
  display: none;
371
387
  }
372
388
 
373
- &.hide-header > .el-table-v2::after,
374
- &.is-border > .el-table-v2::after {
375
- content: '';
376
- top: 0;
377
- }
378
-
379
389
  /* 全边框 */
380
390
  &.is-border {
381
391
  &::before,
@@ -383,17 +393,20 @@
383
393
  content: '';
384
394
  top: 0;
385
395
  bottom: 0;
386
- width: 0;
387
396
  height: 100%;
388
- border-left: 1px solid eleVar('table', 'border-color');
397
+ width: calc(1px + #{eleVar('table', 'radius')});
398
+ border-bottom: 1px solid transparent;
399
+ border-top: 1px solid transparent;
389
400
  }
390
401
 
391
402
  &::before {
392
403
  left: 0;
404
+ border-left: 1px solid eleVar('table', 'border-color');
393
405
  }
394
406
 
395
407
  &::after {
396
408
  right: 0;
409
+ border-right: 1px solid eleVar('table', 'border-color');
397
410
  }
398
411
 
399
412
  @include virtual-table-td {
@@ -407,30 +420,28 @@
407
420
 
408
421
  /* 隐藏表头 */
409
422
  &.hide-header > .el-table-v2 {
410
- & > .el-table-v2__table > .el-table-v2__header-wrapper {
423
+ & > .el-table-v2__main > .el-table-v2__header-wrapper {
411
424
  display: none;
412
425
  }
413
426
  }
414
427
 
415
428
  /* 粘性表头 */
416
- &.is-sticky > .el-table-v2 > .el-table-v2__main {
417
- & > .el-table-v2__header-wrapper {
429
+ &.is-sticky > .el-table-v2 {
430
+ & > .el-table-v2__main > .el-table-v2__header-wrapper {
418
431
  position: sticky;
419
432
  top: eleVar('table', 'sticky-top');
420
433
  }
421
434
  }
422
435
 
423
436
  /* 圆角 */
424
- &:not(.is-border) {
425
- @include virtual-table-radius(eleVar('table', 'radius'));
437
+ @include virtual-table-radius(eleVar('table', 'radius'));
426
438
 
427
- &.is-large {
428
- @include virtual-table-radius(eleVar('table', 'lg-radius'));
429
- }
439
+ &.is-large {
440
+ @include virtual-table-radius(eleVar('table', 'lg-radius'));
441
+ }
430
442
 
431
- &.is-small {
432
- @include virtual-table-radius(eleVar('table', 'sm-radius'));
433
- }
443
+ &.is-small {
444
+ @include virtual-table-radius(eleVar('table', 'sm-radius'));
434
445
  }
435
446
 
436
447
  /* 大型尺寸 */
@@ -3,7 +3,6 @@ const vue = require("vue");
3
3
  const util = require("./util");
4
4
  const props = require("./props");
5
5
  const SIZE = 2;
6
- const GAP = 3;
7
6
  const _sfc_main = vue.defineComponent({
8
7
  name: "EleWatermark",
9
8
  props: props.watermarkProps,
@@ -84,10 +83,9 @@ const _sfc_main = vue.defineComponent({
84
83
  if (props2.image || !ctx.measureText) {
85
84
  return 64;
86
85
  }
87
- const content = props2.content;
88
- const contents = Array.isArray(content) ? content : [content];
86
+ const lines = Array.isArray(props2.content) ? props2.content.length : 1;
89
87
  const { fontSize } = util.getFont(props2.font);
90
- return fontSize * contents.length + (contents.length - 1) * GAP;
88
+ return fontSize * lines + (lines - 1) * props2.lineGap;
91
89
  };
92
90
  const getMarkSize = (ctx) => {
93
91
  const width = props2.width;
@@ -111,7 +109,7 @@ const _sfc_main = vue.defineComponent({
111
109
  ctx.fillText(
112
110
  item ?? "",
113
111
  drawX,
114
- drawY + index2 * (mergedFontSize + GAP * ratio)
112
+ drawY + index2 * (mergedFontSize + props2.lineGap * ratio)
115
113
  );
116
114
  });
117
115
  };