ele-admin-plus 1.1.8-beta.1 → 1.1.8-beta.3

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 (95) 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 +15 -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-drawer/index.d.ts +2 -2
  19. package/es/ele-menus/index.d.ts +8 -0
  20. package/es/ele-menus/props.d.ts +3 -0
  21. package/es/ele-modal/index.d.ts +2 -2
  22. package/es/ele-page/style/index.scss +26 -21
  23. package/es/ele-pagination/style/index.scss +27 -13
  24. package/es/ele-pro-table/index.d.ts +16 -9
  25. package/es/ele-pro-table/index.js +24 -8
  26. package/es/ele-pro-table/props.d.ts +9 -6
  27. package/es/ele-pro-table/props.js +4 -0
  28. package/es/ele-pro-table/util.d.ts +18 -1
  29. package/es/ele-pro-table/util.js +19 -0
  30. package/es/ele-table/style/css-var.scss +46 -0
  31. package/es/ele-table/style/index.scss +7 -81
  32. package/es/ele-tour/index.js +2 -2
  33. package/es/ele-tour/util.d.ts +5 -0
  34. package/es/ele-tour/util.js +9 -1
  35. package/es/ele-upload-list/components/list-item.js +1 -1
  36. package/es/ele-upload-list/types.d.ts +2 -0
  37. package/es/ele-virtual-table/components/body-cell.d.ts +2 -2
  38. package/es/ele-virtual-table/components/body-row.d.ts +2 -2
  39. package/es/ele-virtual-table/index.d.ts +20 -12
  40. package/es/ele-virtual-table/index.js +14 -1
  41. package/es/ele-virtual-table/props.d.ts +6 -3
  42. package/es/ele-watermark/index.d.ts +9 -0
  43. package/es/ele-watermark/index.js +3 -5
  44. package/es/ele-watermark/props.d.ts +5 -0
  45. package/es/ele-watermark/props.js +5 -0
  46. package/es/style/themes/default.scss +16 -8
  47. package/es/style/util.scss +5 -0
  48. package/lib/ele-app/el.d.ts +7 -1
  49. package/lib/ele-app/style/overwrite/cascader/index.scss +2 -1
  50. package/lib/ele-app/style/overwrite/input/css-var.scss +5 -2
  51. package/lib/ele-app/style/overwrite/input/index.scss +148 -59
  52. package/lib/ele-app/style/overwrite/select/index.scss +57 -8
  53. package/lib/ele-app/style/overwrite/tree-select/index.scss +11 -2
  54. package/lib/ele-card/index.cjs +35 -48
  55. package/lib/ele-card/index.d.ts +2 -9
  56. package/lib/ele-card/props.cjs +1 -4
  57. package/lib/ele-card/props.d.ts +1 -4
  58. package/lib/ele-card/style/index.cjs +0 -1
  59. package/lib/ele-card/style/index.scss +54 -67
  60. package/lib/ele-cropper/style/index.scss +8 -0
  61. package/lib/ele-data-table/index.cjs +15 -0
  62. package/lib/ele-data-table/index.d.ts +17 -12
  63. package/lib/ele-data-table/props.cjs +4 -0
  64. package/lib/ele-data-table/props.d.ts +8 -5
  65. package/lib/ele-drawer/index.d.ts +2 -2
  66. package/lib/ele-menus/index.d.ts +8 -0
  67. package/lib/ele-menus/props.d.ts +3 -0
  68. package/lib/ele-modal/index.d.ts +2 -2
  69. package/lib/ele-page/style/index.scss +26 -21
  70. package/lib/ele-pagination/style/index.scss +27 -13
  71. package/lib/ele-pro-table/index.cjs +23 -7
  72. package/lib/ele-pro-table/index.d.ts +16 -9
  73. package/lib/ele-pro-table/props.cjs +4 -0
  74. package/lib/ele-pro-table/props.d.ts +9 -6
  75. package/lib/ele-pro-table/util.cjs +19 -0
  76. package/lib/ele-pro-table/util.d.ts +18 -1
  77. package/lib/ele-table/style/css-var.scss +46 -0
  78. package/lib/ele-table/style/index.scss +7 -81
  79. package/lib/ele-tour/index.cjs +1 -1
  80. package/lib/ele-tour/util.cjs +8 -0
  81. package/lib/ele-tour/util.d.ts +5 -0
  82. package/lib/ele-upload-list/components/list-item.cjs +1 -1
  83. package/lib/ele-upload-list/types.d.ts +2 -0
  84. package/lib/ele-virtual-table/components/body-cell.d.ts +2 -2
  85. package/lib/ele-virtual-table/components/body-row.d.ts +2 -2
  86. package/lib/ele-virtual-table/index.cjs +13 -0
  87. package/lib/ele-virtual-table/index.d.ts +20 -12
  88. package/lib/ele-virtual-table/props.d.ts +6 -3
  89. package/lib/ele-watermark/index.cjs +3 -5
  90. package/lib/ele-watermark/index.d.ts +9 -0
  91. package/lib/ele-watermark/props.cjs +5 -0
  92. package/lib/ele-watermark/props.d.ts +5 -0
  93. package/lib/style/themes/default.scss +16 -8
  94. package/lib/style/util.scss +5 -0
  95. package/package.json +31 -28
@@ -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
 
@@ -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;
@@ -9,7 +9,7 @@ import EleDataTable from "../ele-data-table/index";
9
9
  import EleVirtualTable from "../ele-virtual-table/index";
10
10
  import EleToolbar from "../ele-toolbar/index";
11
11
  import TableTools from "./components/table-tools";
12
- import { getDefaultFilter, getTablePage, getTableLimit, getTableSize, getPaginationProps, mergeProps, getInitCacheColumns, reloadData, getRequestOrders, getRequestFilters, getResponseResult, getResponseName, isAutoAmend, sortData } from "./util";
12
+ import { getDefaultFilter, getTablePage, getTableLimit, getTableSize, getPaginationProps, mergeProps, getRowKey, getInitCacheColumns, reloadData, addDefaultRowKey, getDefaultRowKey, getRequestOrders, getRequestFilters, getResponseResult, getResponseName, isAutoAmend, sortData } from "./util";
13
13
  import { proTableProps, proTableEmits } from "./props";
14
14
  const _sfc_main = defineComponent({
15
15
  name: "EleProTable",
@@ -90,6 +90,7 @@ const _sfc_main = defineComponent({
90
90
  pageIndex: tableIndex.value,
91
91
  emptyProps: tableEmptyProps.value,
92
92
  rowHeight: props.virtual ? props.rowHeight : void 0,
93
+ rowKey: getRowKey(props.rowKey),
93
94
  style: props.tableStyle,
94
95
  class: "ele-pro-table-view",
95
96
  ...events,
@@ -152,7 +153,11 @@ const _sfc_main = defineComponent({
152
153
  tableLimit.value
153
154
  );
154
155
  cacheData.value = props.datasource;
155
- tableData.value = data;
156
+ tableData.value = addDefaultRowKey(
157
+ data,
158
+ getDefaultRowKey(props.rowKey),
159
+ tablePage.value
160
+ );
156
161
  tablePage.value = page;
157
162
  tableTotal.value = total;
158
163
  onDone({ data, page, total, response: props.datasource });
@@ -220,7 +225,11 @@ const _sfc_main = defineComponent({
220
225
  return;
221
226
  }
222
227
  }
223
- tableData.value = data;
228
+ tableData.value = addDefaultRowKey(
229
+ data,
230
+ getDefaultRowKey(props.rowKey),
231
+ tablePage.value
232
+ );
224
233
  tableTotal.value = total || data.length;
225
234
  }
226
235
  tableLoading.value = false;
@@ -311,14 +320,19 @@ const _sfc_main = defineComponent({
311
320
  return tableData.value;
312
321
  };
313
322
  const setData = (data) => {
314
- tableData.value = data;
323
+ tableData.value = addDefaultRowKey(
324
+ data,
325
+ getDefaultRowKey(props.rowKey),
326
+ tablePage.value
327
+ );
315
328
  };
316
329
  const goPageByRowKey = (key) => {
317
- if (!props.rowKey || !paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
330
+ if (!paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
318
331
  return;
319
332
  }
333
+ const rowKey = getRowKey(props.rowKey);
320
334
  const data = sortData(props.datasource, tableState.sorter);
321
- const index2 = data.findIndex((d) => getValue(d, props.rowKey) === key);
335
+ const index2 = data.findIndex((d) => getValue(d, rowKey) === key);
322
336
  const page = Math.floor(index2 / tableLimit.value) + 1;
323
337
  if (tablePage.value !== page) {
324
338
  reload({ page });
@@ -381,13 +395,15 @@ const _sfc_main = defineComponent({
381
395
  watch(
382
396
  () => props.current,
383
397
  (current) => {
384
- methods.setCurrentRowKey(getValue(current, props.rowKey));
398
+ methods.setCurrentRowKey(getValue(current, getRowKey(props.rowKey)));
385
399
  }
386
400
  );
387
401
  watch(
388
402
  () => props.selections,
389
403
  (selections) => {
390
- methods.setSelectedRowKeys(getRowKeys(selections, props.rowKey));
404
+ methods.setSelectedRowKeys(
405
+ getRowKeys(selections, getRowKey(props.rowKey))
406
+ );
391
407
  }
392
408
  );
393
409
  watch(
@@ -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
  };
@@ -2,6 +2,10 @@ import { omit } from "../utils/core";
2
2
  import { dataTableProps, dataTableEmits } from "../ele-data-table/props";
3
3
  const proTableProps = {
4
4
  ...omit(dataTableProps, ["data", "pageIndex", "errorText", "cacheData"]),
5
+ rowKey: {
6
+ type: [String, Function],
7
+ required: false
8
+ },
5
9
  /** 数据请求状态 */
6
10
  loading: Boolean,
7
11
  /** 数据源 */
@@ -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[];
@@ -359,13 +359,31 @@ function getCacheSize(cacheKey) {
359
359
  }
360
360
  }
361
361
  }
362
+ function getDefaultRowKey(rowKey) {
363
+ return rowKey ? void 0 : "_rowKey";
364
+ }
365
+ function getRowKey(rowKey) {
366
+ return rowKey ?? getDefaultRowKey();
367
+ }
368
+ function addDefaultRowKey(data, rowKey, page) {
369
+ if (rowKey == null) {
370
+ return data;
371
+ }
372
+ return data.map((d, i) => {
373
+ const item = { ...d };
374
+ item[rowKey] = `${page}-${i}`;
375
+ return item;
376
+ });
377
+ }
362
378
  export {
379
+ addDefaultRowKey,
363
380
  getCacheCols,
364
381
  getCacheSize,
365
382
  getCheckedColumns,
366
383
  getColId,
367
384
  getColsCacheKey,
368
385
  getDefaultFilter,
386
+ getDefaultRowKey,
369
387
  getInitCacheColumns,
370
388
  getInitColumns,
371
389
  getOrderItems,
@@ -376,6 +394,7 @@ export {
376
394
  getResponseData,
377
395
  getResponseName,
378
396
  getResponseResult,
397
+ getRowKey,
379
398
  getSettingCols,
380
399
  getSizeCacheKey,
381
400
  getTableLimit,
@@ -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
+ }
@@ -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
  }
@@ -2,7 +2,7 @@ import { defineComponent, ref, shallowRef, onMounted, watch, nextTick, resolveCo
2
2
  import { ElButton } from "element-plus";
3
3
  import EleTooltip from "../ele-tooltip/index";
4
4
  import { useLicense, useLocale } from "../ele-config-provider/receiver";
5
- import { getOffset, getPopperProps } from "./util";
5
+ import { scrollIntoView, getOffset, getPopperProps } from "./util";
6
6
  import { tourProps, tourEmits } from "./props";
7
7
  const _sfc_main = defineComponent({
8
8
  name: "EleTour",
@@ -34,7 +34,7 @@ const _sfc_main = defineComponent({
34
34
  showMask.value = mask ?? props.mask;
35
35
  const el = typeof target === "function" ? target() : target;
36
36
  if (el) {
37
- el.focus();
37
+ scrollIntoView(el);
38
38
  const { width, height } = el.getBoundingClientRect();
39
39
  const { top, left } = getOffset(el);
40
40
  const space = padding ?? props.padding ?? 0;
@@ -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;
@@ -29,7 +29,15 @@ function getPopperProps(visible, modal, props) {
29
29
  popperClass: classes.join(" ")
30
30
  };
31
31
  }
32
+ function scrollIntoView(el) {
33
+ if (typeof el["scrollIntoViewIfNeeded"] === "function") {
34
+ el.scrollIntoViewIfNeeded(true);
35
+ } else {
36
+ el.scrollIntoView({ behavior: "instant", block: "nearest" });
37
+ }
38
+ }
32
39
  export {
33
40
  getOffset,
34
- getPopperProps
41
+ getPopperProps,
42
+ scrollIntoView
35
43
  };
@@ -97,7 +97,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
97
97
  })
98
98
  ]))
99
99
  ]),
100
- !_ctx.readonly && !_ctx.disabled ? (openBlock(), createElementBlock("div", {
100
+ !_ctx.readonly && !_ctx.disabled && !_ctx.item.readonly ? (openBlock(), createElementBlock("div", {
101
101
  key: 0,
102
102
  class: "ele-upload-remove",
103
103
  onClick: _cache[0] || (_cache[0] = 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
  /** 表格行高 */