ele-admin-plus 1.1.8-beta.1 → 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 (93) 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/props.d.ts +8 -5
  16. package/es/ele-data-table/props.js +4 -0
  17. package/es/ele-drawer/index.d.ts +2 -2
  18. package/es/ele-menus/index.d.ts +8 -0
  19. package/es/ele-menus/props.d.ts +3 -0
  20. package/es/ele-modal/index.d.ts +2 -2
  21. package/es/ele-page/style/index.scss +26 -21
  22. package/es/ele-pagination/style/index.scss +27 -13
  23. package/es/ele-pro-table/index.d.ts +16 -9
  24. package/es/ele-pro-table/index.js +24 -8
  25. package/es/ele-pro-table/props.d.ts +9 -6
  26. package/es/ele-pro-table/props.js +4 -0
  27. package/es/ele-pro-table/util.d.ts +18 -1
  28. package/es/ele-pro-table/util.js +19 -0
  29. package/es/ele-table/style/css-var.scss +46 -0
  30. package/es/ele-table/style/index.scss +7 -81
  31. package/es/ele-tour/index.js +2 -2
  32. package/es/ele-tour/util.d.ts +5 -0
  33. package/es/ele-tour/util.js +9 -1
  34. package/es/ele-upload-list/components/list-item.js +1 -1
  35. package/es/ele-upload-list/types.d.ts +2 -0
  36. package/es/ele-virtual-table/components/body-cell.d.ts +2 -2
  37. package/es/ele-virtual-table/components/body-row.d.ts +2 -2
  38. package/es/ele-virtual-table/index.d.ts +20 -12
  39. package/es/ele-virtual-table/index.js +14 -1
  40. package/es/ele-virtual-table/props.d.ts +6 -3
  41. package/es/ele-watermark/index.d.ts +9 -0
  42. package/es/ele-watermark/index.js +3 -5
  43. package/es/ele-watermark/props.d.ts +5 -0
  44. package/es/ele-watermark/props.js +5 -0
  45. package/es/style/themes/default.scss +16 -8
  46. package/es/style/util.scss +5 -0
  47. package/lib/ele-app/el.d.ts +7 -1
  48. package/lib/ele-app/style/overwrite/cascader/index.scss +2 -1
  49. package/lib/ele-app/style/overwrite/input/css-var.scss +5 -2
  50. package/lib/ele-app/style/overwrite/input/index.scss +148 -59
  51. package/lib/ele-app/style/overwrite/select/index.scss +57 -8
  52. package/lib/ele-app/style/overwrite/tree-select/index.scss +11 -2
  53. package/lib/ele-card/index.cjs +35 -48
  54. package/lib/ele-card/index.d.ts +2 -9
  55. package/lib/ele-card/props.cjs +1 -4
  56. package/lib/ele-card/props.d.ts +1 -4
  57. package/lib/ele-card/style/index.cjs +0 -1
  58. package/lib/ele-card/style/index.scss +54 -67
  59. package/lib/ele-cropper/style/index.scss +8 -0
  60. package/lib/ele-data-table/index.d.ts +17 -12
  61. package/lib/ele-data-table/props.cjs +4 -0
  62. package/lib/ele-data-table/props.d.ts +8 -5
  63. package/lib/ele-drawer/index.d.ts +2 -2
  64. package/lib/ele-menus/index.d.ts +8 -0
  65. package/lib/ele-menus/props.d.ts +3 -0
  66. package/lib/ele-modal/index.d.ts +2 -2
  67. package/lib/ele-page/style/index.scss +26 -21
  68. package/lib/ele-pagination/style/index.scss +27 -13
  69. package/lib/ele-pro-table/index.cjs +23 -7
  70. package/lib/ele-pro-table/index.d.ts +16 -9
  71. package/lib/ele-pro-table/props.cjs +4 -0
  72. package/lib/ele-pro-table/props.d.ts +9 -6
  73. package/lib/ele-pro-table/util.cjs +19 -0
  74. package/lib/ele-pro-table/util.d.ts +18 -1
  75. package/lib/ele-table/style/css-var.scss +46 -0
  76. package/lib/ele-table/style/index.scss +7 -81
  77. package/lib/ele-tour/index.cjs +1 -1
  78. package/lib/ele-tour/util.cjs +8 -0
  79. package/lib/ele-tour/util.d.ts +5 -0
  80. package/lib/ele-upload-list/components/list-item.cjs +1 -1
  81. package/lib/ele-upload-list/types.d.ts +2 -0
  82. package/lib/ele-virtual-table/components/body-cell.d.ts +2 -2
  83. package/lib/ele-virtual-table/components/body-row.d.ts +2 -2
  84. package/lib/ele-virtual-table/index.cjs +13 -0
  85. package/lib/ele-virtual-table/index.d.ts +20 -12
  86. package/lib/ele-virtual-table/props.d.ts +6 -3
  87. package/lib/ele-watermark/index.cjs +3 -5
  88. package/lib/ele-watermark/index.d.ts +9 -0
  89. package/lib/ele-watermark/props.cjs +5 -0
  90. package/lib/ele-watermark/props.d.ts +5 -0
  91. package/lib/style/themes/default.scss +16 -8
  92. package/lib/style/util.scss +5 -0
  93. package/package.json +20 -20
@@ -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,
@@ -153,7 +154,11 @@ const _sfc_main = vue.defineComponent({
153
154
  tableLimit.value
154
155
  );
155
156
  cacheData.value = props2.datasource;
156
- tableData.value = data;
157
+ tableData.value = util$1.addDefaultRowKey(
158
+ data,
159
+ util$1.getDefaultRowKey(props2.rowKey),
160
+ tablePage.value
161
+ );
157
162
  tablePage.value = page;
158
163
  tableTotal.value = total;
159
164
  onDone({ data, page, total, response: props2.datasource });
@@ -221,7 +226,11 @@ const _sfc_main = vue.defineComponent({
221
226
  return;
222
227
  }
223
228
  }
224
- tableData.value = data;
229
+ tableData.value = util$1.addDefaultRowKey(
230
+ data,
231
+ util$1.getDefaultRowKey(props2.rowKey),
232
+ tablePage.value
233
+ );
225
234
  tableTotal.value = total || data.length;
226
235
  }
227
236
  tableLoading.value = false;
@@ -312,14 +321,19 @@ const _sfc_main = vue.defineComponent({
312
321
  return tableData.value;
313
322
  };
314
323
  const setData = (data) => {
315
- tableData.value = data;
324
+ tableData.value = util$1.addDefaultRowKey(
325
+ data,
326
+ util$1.getDefaultRowKey(props2.rowKey),
327
+ tablePage.value
328
+ );
316
329
  };
317
330
  const goPageByRowKey = (key) => {
318
- if (!props2.rowKey || !paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
331
+ if (!paginationProps.value || tableLimit.value == null || isFunctionSource.value) {
319
332
  return;
320
333
  }
334
+ const rowKey = util$1.getRowKey(props2.rowKey);
321
335
  const data = util$1.sortData(props2.datasource, tableState.sorter);
322
- const index2 = data.findIndex((d) => util.getValue(d, props2.rowKey) === key);
336
+ const index2 = data.findIndex((d) => util.getValue(d, rowKey) === key);
323
337
  const page = Math.floor(index2 / tableLimit.value) + 1;
324
338
  if (tablePage.value !== page) {
325
339
  reload({ page });
@@ -382,13 +396,15 @@ const _sfc_main = vue.defineComponent({
382
396
  vue.watch(
383
397
  () => props2.current,
384
398
  (current) => {
385
- methods.setCurrentRowKey(util.getValue(current, props2.rowKey));
399
+ methods.setCurrentRowKey(util.getValue(current, util$1.getRowKey(props2.rowKey)));
386
400
  }
387
401
  );
388
402
  vue.watch(
389
403
  () => props2.selections,
390
404
  (selections) => {
391
- methods.setSelectedRowKeys(util.getRowKeys(selections, props2.rowKey));
405
+ methods.setSelectedRowKeys(
406
+ util.getRowKeys(selections, util$1.getRowKey(props2.rowKey))
407
+ );
392
408
  }
393
409
  );
394
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
  };
@@ -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[];
@@ -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
  }
@@ -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,