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
@@ -46,6 +46,9 @@ export declare const menusProps: {
46
46
  popperOffset: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
47
47
  ellipsisIcon: import("element-plus/es/utils/index").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) | ((new (...args: any[]) => (string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>) & {}) | (() => string | import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>))[], unknown, unknown, () => any, boolean>;
48
48
  popperEffect: import("element-plus/es/utils/index").EpPropFinalized<StringConstructor, "light" | "dark", unknown, "dark", boolean>;
49
+ popperClass: StringConstructor;
50
+ showTimeout: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
51
+ hideTimeout: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
49
52
  };
50
53
  export type MenusProps = ExtractPropTypes<typeof menusProps>;
51
54
  export type MenuPropKeys = Array<keyof typeof menuProps>;
@@ -200,11 +200,11 @@ declare const _default: import("vue").DefineComponent<{
200
200
  }>> & {
201
201
  onOpen?: (() => any) | undefined;
202
202
  onClose?: (() => any) | undefined;
203
- onOpenAutoFocus?: (() => any) | undefined;
204
- onCloseAutoFocus?: (() => any) | undefined;
205
203
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
206
204
  onOpened?: (() => any) | undefined;
207
205
  onClosed?: (() => any) | undefined;
206
+ onOpenAutoFocus?: (() => any) | undefined;
207
+ onCloseAutoFocus?: (() => any) | undefined;
208
208
  "onUpdate:fullscreen"?: ((_fullscreen: boolean) => any) | undefined;
209
209
  }, {
210
210
  form: boolean;
@@ -15,32 +15,12 @@
15
15
  &.is-multi-card {
16
16
  padding-bottom: 0;
17
17
 
18
+ .ele-card,
18
19
  .el-card {
19
20
  margin-bottom: eleVar('page', 'padding');
20
21
  }
21
22
  }
22
23
 
23
- /* 内部表格高度铺满 */
24
- &.is-flex-table {
25
- flex: 1;
26
- display: flex;
27
- flex-direction: column;
28
- overflow: auto;
29
-
30
- & > .ele-pro-table {
31
- flex: 1;
32
- display: flex;
33
- flex-direction: column;
34
- overflow: auto;
35
-
36
- & > .ele-pro-table-view {
37
- flex: 1;
38
- height: 100%;
39
- overflow: hidden;
40
- }
41
- }
42
- }
43
-
44
24
  /* 关闭页脚 */
45
25
  &.is-hide-footer + .ele-footer {
46
26
  display: none;
@@ -52,6 +32,31 @@
52
32
  flex: auto;
53
33
  }
54
34
 
35
+ .ele-page.is-hide-footer {
36
+ flex: none;
37
+ }
38
+
39
+ /* 内部表格高度铺满 */
40
+ .ele-page.is-flex-table {
41
+ flex: 1;
42
+ display: flex;
43
+ flex-direction: column;
44
+ overflow: auto;
45
+
46
+ & > .ele-pro-table {
47
+ flex: 1;
48
+ display: flex;
49
+ flex-direction: column;
50
+ overflow: auto;
51
+
52
+ & > .ele-pro-table-view {
53
+ flex: 1;
54
+ height: 100%;
55
+ overflow: hidden;
56
+ }
57
+ }
58
+ }
59
+
55
60
  /* 内容定宽 */
56
61
  .ele-admin-limited .ele-page:not(.is-plain) {
57
62
  margin: 0 auto;
@@ -92,20 +92,29 @@
92
92
  width: 50px;
93
93
  }
94
94
 
95
- .el-pagination__sizes .el-input {
96
- width: 96px;
95
+ .el-pagination__sizes {
96
+ .el-input,
97
+ .el-select {
98
+ width: 96px;
97
99
 
98
- .el-input__wrapper {
100
+ .el-select__caret {
101
+ margin-left: 0;
102
+ }
103
+ }
104
+
105
+ .el-input .el-input__wrapper,
106
+ .el-select .el-select__wrapper {
99
107
  padding-left: 1px;
100
108
  padding-right: 7px;
101
109
  }
102
110
 
103
- .el-select__caret {
104
- margin-left: 0;
111
+ .el-select__selected-item {
112
+ text-align: center;
105
113
  }
106
114
  }
107
115
 
108
- .el-input__inner {
116
+ .el-input__inner,
117
+ .el-select__selected-item > span {
109
118
  font-size: eleVar('pagination', 'sm-font-size');
110
119
  }
111
120
 
@@ -161,19 +170,24 @@
161
170
  width: 44px;
162
171
  }
163
172
 
164
- .el-pagination__sizes .el-input {
165
- width: 88px;
173
+ .el-pagination__sizes {
174
+ .el-input,
175
+ .el-select {
176
+ width: 88px;
166
177
 
167
- .el-input__wrapper {
168
- padding-right: 6px;
178
+ .el-select__caret {
179
+ font-size: 12px;
180
+ }
169
181
  }
170
182
 
171
- .el-select__caret {
172
- font-size: 12px;
183
+ .el-input .el-input__wrapper,
184
+ .el-select .el-select__wrapper {
185
+ padding-right: 6px;
173
186
  }
174
187
  }
175
188
 
176
- .el-input__inner {
189
+ .el-input__inner,
190
+ .el-select__selected-item > span {
177
191
  font-size: eleVar('pagination', 'sm-font-size');
178
192
  }
179
193
 
@@ -91,6 +91,7 @@ const _sfc_main = vue.defineComponent({
91
91
  pageIndex: tableIndex.value,
92
92
  emptyProps: tableEmptyProps.value,
93
93
  rowHeight: props2.virtual ? props2.rowHeight : void 0,
94
+ rowKey: util$1.getRowKey(props2.rowKey),
94
95
  style: props2.tableStyle,
95
96
  class: "ele-pro-table-view",
96
97
  ...events,
@@ -112,7 +113,11 @@ const _sfc_main = vue.defineComponent({
112
113
  const option = {
113
114
  ...props2.loadingProps || {},
114
115
  loading: tableLoading.value,
115
- class: ["ele-pro-table", { "is-maximized": tableMaximized.value }],
116
+ class: [
117
+ "ele-pro-table",
118
+ { "is-maximized": tableMaximized.value },
119
+ { "is-border": tableProps.value.border }
120
+ ],
116
121
  style: tableMaximized.value ? { zIndex } : void 0
117
122
  };
118
123
  return option;
@@ -149,7 +154,11 @@ const _sfc_main = vue.defineComponent({
149
154
  tableLimit.value
150
155
  );
151
156
  cacheData.value = props2.datasource;
152
- tableData.value = data;
157
+ tableData.value = util$1.addDefaultRowKey(
158
+ data,
159
+ util$1.getDefaultRowKey(props2.rowKey),
160
+ tablePage.value
161
+ );
153
162
  tablePage.value = page;
154
163
  tableTotal.value = total;
155
164
  onDone({ data, page, total, response: props2.datasource });
@@ -217,7 +226,11 @@ const _sfc_main = vue.defineComponent({
217
226
  return;
218
227
  }
219
228
  }
220
- tableData.value = data;
229
+ tableData.value = util$1.addDefaultRowKey(
230
+ data,
231
+ util$1.getDefaultRowKey(props2.rowKey),
232
+ tablePage.value
233
+ );
221
234
  tableTotal.value = total || data.length;
222
235
  }
223
236
  tableLoading.value = false;
@@ -308,14 +321,19 @@ const _sfc_main = vue.defineComponent({
308
321
  return tableData.value;
309
322
  };
310
323
  const setData = (data) => {
311
- tableData.value = data;
324
+ tableData.value = util$1.addDefaultRowKey(
325
+ data,
326
+ util$1.getDefaultRowKey(props2.rowKey),
327
+ tablePage.value
328
+ );
312
329
  };
313
330
  const goPageByRowKey = (key) => {
314
- if (!props2.rowKey || !paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
331
+ if (!paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
315
332
  return;
316
333
  }
334
+ const rowKey = util$1.getRowKey(props2.rowKey);
317
335
  const data = util$1.sortData(props2.datasource, tableState.sorter);
318
- const index2 = data.findIndex((d) => util.getValue(d, props2.rowKey) === key);
336
+ const index2 = data.findIndex((d) => util.getValue(d, rowKey) === key);
319
337
  const page = Math.floor(index2 / tableLimit.value) + 1;
320
338
  if (tablePage.value !== page) {
321
339
  reload({ page });
@@ -378,13 +396,15 @@ const _sfc_main = vue.defineComponent({
378
396
  vue.watch(
379
397
  () => props2.current,
380
398
  (current) => {
381
- methods.setCurrentRowKey(util.getValue(current, props2.rowKey));
399
+ methods.setCurrentRowKey(util.getValue(current, util$1.getRowKey(props2.rowKey)));
382
400
  }
383
401
  );
384
402
  vue.watch(
385
403
  () => props2.selections,
386
404
  (selections) => {
387
- methods.setSelectedRowKeys(util.getRowKeys(selections, props2.rowKey));
405
+ methods.setSelectedRowKeys(
406
+ util.getRowKeys(selections, util$1.getRowKey(props2.rowKey))
407
+ );
388
408
  }
389
409
  );
390
410
  vue.watch(
@@ -3,6 +3,10 @@ import type { EleLoadingProps, ElePaginationProps, EleDataTableProps } from '../
3
3
  import type { DataItem, Columns, Sorter, Filter, TableSize } from '../ele-data-table/types';
4
4
  import type { ReloadFunction, DoneParams, FetchCallback, TableViewInstance } from './types';
5
5
  declare const _default: import("vue").DefineComponent<{
6
+ rowKey: {
7
+ type: import("vue").PropType<string | ((row: DataItem) => string) | undefined>;
8
+ required: boolean;
9
+ };
6
10
  loading: BooleanConstructor;
7
11
  datasource: {
8
12
  type: import("vue").PropType<import("./types").Datasource>;
@@ -68,7 +72,6 @@ declare const _default: import("vue").DefineComponent<{
68
72
  };
69
73
  width: (StringConstructor | NumberConstructor)[];
70
74
  lazy: BooleanConstructor;
71
- rowKey: import("vue").PropType<string | ((row: any) => string) | undefined>;
72
75
  columns: {
73
76
  type: import("vue").PropType<Columns>;
74
77
  required: boolean;
@@ -78,7 +81,7 @@ declare const _default: import("vue").DefineComponent<{
78
81
  type: BooleanConstructor;
79
82
  default: boolean;
80
83
  };
81
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
84
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
82
85
  emptyText: StringConstructor;
83
86
  indent: {
84
87
  type: NumberConstructor;
@@ -113,7 +116,7 @@ declare const _default: import("vue").DefineComponent<{
113
116
  defaultExpandAll: BooleanConstructor;
114
117
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
115
118
  tooltipEffect: StringConstructor;
116
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
119
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
117
120
  spanMethod: import("vue").PropType<((data: {
118
121
  row: any;
119
122
  rowIndex: number;
@@ -223,16 +226,21 @@ declare const _default: import("vue").DefineComponent<{
223
226
  rowClick: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
224
227
  rowContextmenu: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
225
228
  rowDblclick: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
226
- headerClick: (_column: import("./types").Column, _e: MouseEvent) => boolean; /** 当前页数据 */
227
- headerContextmenu: (_column: import("./types").Column, _e: MouseEvent) => boolean; /** 当前页码 */
229
+ headerClick: (_column: import("./types").Column, _e: MouseEvent) => boolean;
230
+ headerContextmenu: (_column: import("./types").Column, _e: MouseEvent) => boolean;
228
231
  sortChange: (_sorter: Sorter) => boolean;
229
- filterChange: (_filter: Filter) => boolean;
232
+ filterChange: (_filter: Filter) => boolean; /** 每页显示数量 */
230
233
  currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean;
231
234
  headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean;
235
+ /** 数据请求状态 */
232
236
  expandChange: (_row: DataItem, _expanded: boolean) => boolean;
233
237
  'update:currentRowKey': (_currentRowKey?: import("../ele-data-table/types").DataKey | undefined) => boolean;
234
238
  'update:selectedRowKeys': (_selectedRowKeys?: import("../ele-data-table/types").DataKey[] | undefined) => boolean;
235
239
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
240
+ rowKey: {
241
+ type: import("vue").PropType<string | ((row: DataItem) => string) | undefined>;
242
+ required: boolean;
243
+ };
236
244
  loading: BooleanConstructor;
237
245
  datasource: {
238
246
  type: import("vue").PropType<import("./types").Datasource>;
@@ -298,7 +306,6 @@ declare const _default: import("vue").DefineComponent<{
298
306
  };
299
307
  width: (StringConstructor | NumberConstructor)[];
300
308
  lazy: BooleanConstructor;
301
- rowKey: import("vue").PropType<string | ((row: any) => string) | undefined>;
302
309
  columns: {
303
310
  type: import("vue").PropType<Columns>;
304
311
  required: boolean;
@@ -308,7 +315,7 @@ declare const _default: import("vue").DefineComponent<{
308
315
  type: BooleanConstructor;
309
316
  default: boolean;
310
317
  };
311
- showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
318
+ showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
312
319
  emptyText: StringConstructor;
313
320
  indent: {
314
321
  type: NumberConstructor;
@@ -343,7 +350,7 @@ declare const _default: import("vue").DefineComponent<{
343
350
  defaultExpandAll: BooleanConstructor;
344
351
  defaultSort: import("vue").PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
345
352
  tooltipEffect: StringConstructor;
346
- tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
353
+ tooltipOptions: import("vue").PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
347
354
  spanMethod: import("vue").PropType<((data: {
348
355
  row: any;
349
356
  rowIndex: number;
@@ -4,6 +4,10 @@ const core = require("../utils/core");
4
4
  const props = require("../ele-data-table/props");
5
5
  const proTableProps = {
6
6
  ...core.omit(props.dataTableProps, ["data", "pageIndex", "errorText", "cacheData"]),
7
+ rowKey: {
8
+ type: [String, Function],
9
+ required: false
10
+ },
7
11
  /** 数据请求状态 */
8
12
  loading: Boolean,
9
13
  /** 数据源 */
@@ -6,6 +6,10 @@ import type { Where, Datasource, RequestOption, ResponseOption, ParseData, DoneP
6
6
  * 属性
7
7
  */
8
8
  export declare const proTableProps: {
9
+ rowKey: {
10
+ type: PropType<string | ((row: DataItem) => string) | undefined>;
11
+ required: boolean;
12
+ };
9
13
  /** 数据请求状态 */
10
14
  loading: BooleanConstructor;
11
15
  /** 数据源 */
@@ -95,7 +99,6 @@ export declare const proTableProps: {
95
99
  };
96
100
  width: (StringConstructor | NumberConstructor)[];
97
101
  lazy: BooleanConstructor;
98
- rowKey: PropType<string | ((row: any) => string) | undefined>;
99
102
  columns: {
100
103
  type: PropType<Columns>;
101
104
  required: boolean;
@@ -105,7 +108,7 @@ export declare const proTableProps: {
105
108
  type: BooleanConstructor;
106
109
  default: boolean;
107
110
  };
108
- showOverflowTooltip: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
111
+ showOverflowTooltip: PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
109
112
  emptyText: StringConstructor;
110
113
  indent: {
111
114
  type: NumberConstructor;
@@ -140,7 +143,7 @@ export declare const proTableProps: {
140
143
  defaultExpandAll: BooleanConstructor;
141
144
  defaultSort: PropType<import("element-plus/es/components/table/src/table/defaults").Sort | undefined>;
142
145
  tooltipEffect: StringConstructor;
143
- tooltipOptions: PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
146
+ tooltipOptions: PropType<Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "effect" | "placement" | "popperOptions" | "popperClass" | "showArrow" | "appendTo" | "transition" | "enterable" | "showAfter" | "hideAfter">> | undefined>;
144
147
  spanMethod: PropType<((data: {
145
148
  row: any;
146
149
  rowIndex: number;
@@ -176,7 +179,7 @@ export declare const proTableProps: {
176
179
  };
177
180
  slotNormalize: {
178
181
  type: BooleanConstructor;
179
- default: boolean;
182
+ default: boolean; /** 自定义请求参数名称 */
180
183
  };
181
184
  sticky: BooleanConstructor;
182
185
  bottomLine: {
@@ -226,8 +229,8 @@ export declare const proTableEmits: {
226
229
  sortChange: (_sorter: import("./types").Sorter) => boolean;
227
230
  filterChange: (_filter: import("./types").Filter) => boolean;
228
231
  currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean;
229
- headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean;
230
- expandChange: (_row: DataItem, _expanded: boolean) => boolean; /** 数组数据源时刷新按钮点击事件 */
232
+ headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean; /** 表格最大化切换事件 */
233
+ expandChange: (_row: DataItem, _expanded: boolean) => boolean;
231
234
  'update:currentRowKey': (_currentRowKey?: import("../ele-data-table/types").DataKey | undefined) => boolean;
232
235
  'update:selectedRowKeys': (_selectedRowKeys?: import("../ele-data-table/types").DataKey[] | undefined) => boolean;
233
236
  };
@@ -4,18 +4,71 @@
4
4
 
5
5
  @include set-pro-table-var($ele);
6
6
 
7
- .ele-pro-table {
8
- /* 工具栏 */
9
- & > .ele-toolbar {
10
- border-bottom: none;
11
- border-bottom-left-radius: 0;
12
- border-bottom-right-radius: 0;
7
+ /* 工具栏 */
8
+ .ele-pro-table > .ele-toolbar {
9
+ border-bottom-left-radius: 0;
10
+ border-bottom-right-radius: 0;
11
+
12
+ & + .ele-toolbar {
13
+ border-top: none;
14
+ }
15
+ }
16
+
17
+ .ele-pro-table:not(.is-border) > .ele-toolbar {
18
+ border-top: none;
19
+ border-left: none;
20
+ border-right: none;
21
+ }
22
+
23
+ .ele-pro-table.is-border > .ele-toolbar {
24
+ border-bottom: none;
25
+ }
26
+
27
+ /* 取消表格上边圆角 */
28
+ .ele-pro-table > .ele-toolbar.is-default {
29
+ & + .ele-data-table > .el-table__inner-wrapper > .el-table__header-wrapper,
30
+ & + .ele-data-table.el-table--border > .el-table__inner-wrapper::after,
31
+ &
32
+ + .ele-data-table.el-table--border.hide-header
33
+ > .el-table__inner-wrapper
34
+ > .el-table__body-wrapper,
35
+ &
36
+ + .ele-virtual-table
37
+ > .el-table-v2
38
+ > .el-table-v2__main
39
+ > .el-table-v2__header-wrapper,
40
+ & + .ele-virtual-table.is-border > .el-table-v2::after,
41
+ &
42
+ + .ele-virtual-table.is-border.hide-header
43
+ > .el-table-v2
44
+ > .el-table-v2__main
45
+ > .el-table-v2__body
46
+ > div:not(.el-virtual-scrollbar) {
47
+ border-top-left-radius: 0;
48
+ border-top-right-radius: 0;
49
+ }
50
+
51
+ & + .ele-data-table.el-table--border::before,
52
+ & + .ele-virtual-table.is-border::before {
53
+ border-top-left-radius: 0;
13
54
  }
14
55
 
15
- /* 加载图标 */
16
- & > .ele-loading-spinner {
17
- background: transparent;
56
+ & + .ele-data-table.el-table--border::after,
57
+ & + .ele-virtual-table.is-border::after {
58
+ border-top-right-radius: 0;
18
59
  }
60
+
61
+ &
62
+ + .ele-data-table.hide-header:not(.el-table--border)
63
+ > .el-table__inner-wrapper::after,
64
+ & + .ele-virtual-table.hide-header:not(.is-border) > .el-table-v2::after {
65
+ display: none;
66
+ }
67
+ }
68
+
69
+ /* 加载图标 */
70
+ .ele-pro-table > .ele-loading-spinner {
71
+ background: transparent;
19
72
  }
20
73
 
21
74
  /* 底栏 */
@@ -361,12 +361,30 @@ function getCacheSize(cacheKey) {
361
361
  }
362
362
  }
363
363
  }
364
+ function getDefaultRowKey(rowKey) {
365
+ return rowKey ? void 0 : "_rowKey";
366
+ }
367
+ function getRowKey(rowKey) {
368
+ return rowKey ?? getDefaultRowKey();
369
+ }
370
+ function addDefaultRowKey(data, rowKey, page) {
371
+ if (rowKey == null) {
372
+ return data;
373
+ }
374
+ return data.map((d, i) => {
375
+ const item = { ...d };
376
+ item[rowKey] = `${page}-${i}`;
377
+ return item;
378
+ });
379
+ }
380
+ exports.addDefaultRowKey = addDefaultRowKey;
364
381
  exports.getCacheCols = getCacheCols;
365
382
  exports.getCacheSize = getCacheSize;
366
383
  exports.getCheckedColumns = getCheckedColumns;
367
384
  exports.getColId = getColId;
368
385
  exports.getColsCacheKey = getColsCacheKey;
369
386
  exports.getDefaultFilter = getDefaultFilter;
387
+ exports.getDefaultRowKey = getDefaultRowKey;
370
388
  exports.getInitCacheColumns = getInitCacheColumns;
371
389
  exports.getInitColumns = getInitColumns;
372
390
  exports.getOrderItems = getOrderItems;
@@ -377,6 +395,7 @@ exports.getRequestOrders = getRequestOrders;
377
395
  exports.getResponseData = getResponseData;
378
396
  exports.getResponseName = getResponseName;
379
397
  exports.getResponseResult = getResponseResult;
398
+ exports.getRowKey = getRowKey;
380
399
  exports.getSettingCols = getSettingCols;
381
400
  exports.getSizeCacheKey = getSizeCacheKey;
382
401
  exports.getTableLimit = getTableLimit;
@@ -1,5 +1,5 @@
1
1
  import type { ElePaginationProps } from '../ele-app/plus';
2
- import type { DataItem, Column, Columns, Sorter, Filter, TableSize, TreeProps } from '../ele-data-table/types';
2
+ import type { DataItem, Column, Columns, Sorter, Filter, TableSize, TreeProps, RowKey } from '../ele-data-table/types';
3
3
  import type { Orders, Filters, OrderItem, RequestOption, ResponseOption, TablePagination, DatasourceResult, ResponseResult, ReloadDataResult, ColItem, ProProps } from './types';
4
4
  /**
5
5
  * 合并复合属性
@@ -153,3 +153,20 @@ export declare function getSizeCacheKey(cacheKey: string): string;
153
153
  * @param cacheKey 缓存的名称
154
154
  */
155
155
  export declare function getCacheSize(cacheKey?: string): TableSize;
156
+ /**
157
+ * 获取默认 rowKey
158
+ * @param rowKey 自定义 rowKey
159
+ */
160
+ export declare function getDefaultRowKey(rowKey?: RowKey): "_rowKey" | undefined;
161
+ /**
162
+ * 获取 rowKey
163
+ * @param rowKey 自定义 rowKey
164
+ */
165
+ export declare function getRowKey(rowKey?: RowKey): string | ((row: DataItem) => string) | undefined;
166
+ /**
167
+ * 数据添加默认的 rowKey 字段
168
+ * @param data 数据
169
+ * @param rowKey 字段名
170
+ * @param page 页码
171
+ */
172
+ export declare function addDefaultRowKey(data: DataItem[], rowKey: string | undefined, page: number): DataItem[];
@@ -49,9 +49,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
49
49
  "onUpdate:modelValue": _ctx.onUpdateModelValue
50
50
  }, {
51
51
  default: vue.withCtx(() => [
52
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item) => {
52
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.items, (item, index2) => {
53
53
  return vue.openBlock(), vue.createBlock(_component_ElTabPane, {
54
- key: item.value,
54
+ key: index2 + "-" + item.value + "-" + item.label,
55
55
  name: item.value,
56
56
  disabled: _ctx.disabled || item.disabled
57
57
  }, {
@@ -6,3 +6,49 @@
6
6
  @include set-ele-var('table', $var);
7
7
  }
8
8
  }
9
+
10
+ /* 静态表格圆角 */
11
+ @mixin table-radius($radius) {
12
+ & > thead > tr:first-child > th:first-child,
13
+ & > thead > tr:first-child > td:first-child,
14
+ &.is-border:not(.has-header) > tr:first-child > td:first-child,
15
+ &.is-border:not(.has-header) > tbody > tr:first-child > td:first-child {
16
+ border-top-left-radius: $radius;
17
+ }
18
+
19
+ & > thead > tr:first-child > th:last-child,
20
+ & > thead > tr:first-child > td:last-child,
21
+ &.is-border:not(.has-header) > tr:first-child > td:last-child,
22
+ &.is-border:not(.has-header) > tbody > tr:first-child > td:last-child {
23
+ border-top-right-radius: $radius;
24
+ }
25
+
26
+ &.is-border:not(.has-footer) > tr:last-child > td:first-child,
27
+ &.is-border:not(.has-footer) > tbody > tr:last-child > td:first-child,
28
+ & > tfoot > tr:last-child > td:first-child {
29
+ border-bottom-left-radius: $radius;
30
+ }
31
+
32
+ &.is-border:not(.has-footer) > tr:last-child > td:last-child,
33
+ &.is-border:not(.has-footer) > tbody > tr:last-child > td:last-child,
34
+ & > tfoot > tr:last-child > td:last-child {
35
+ border-bottom-right-radius: $radius;
36
+ }
37
+
38
+ &.has-header {
39
+ border-top-left-radius: $radius;
40
+ border-top-right-radius: $radius;
41
+ }
42
+
43
+ &.has-footer {
44
+ border-bottom-left-radius: $radius;
45
+ border-bottom-right-radius: $radius;
46
+ }
47
+
48
+ &.is-border {
49
+ border-top-left-radius: $radius;
50
+ border-top-right-radius: $radius;
51
+ border-bottom-left-radius: $radius;
52
+ border-bottom-right-radius: $radius;
53
+ }
54
+ }