fast-element-plus 2.0.20 → 2.0.21
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.
- package/CHANGELOG.md +7 -0
- package/dist/components/table/src/table.mjs +20 -20
- package/dist/components/table/src/table.mjs.map +1 -1
- package/dist/components/table/src/tableColumn.mjs +34 -28
- package/dist/components/table/src/tableColumn.mjs.map +1 -1
- package/dist/components/table/utils/table.mjs +2 -2
- package/dist/components/table/utils/table.mjs.map +1 -1
- package/dist/index.global.min.js +4 -4
- package/dist/index.global.min.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to this project are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and releases should follow [Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [2.0.21] - 2026-09-27
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Resolve nested `prop` paths consistently for default, date/time, numeric, link, tag, enum and image table columns, including local sorting.
|
|
12
|
+
|
|
7
13
|
## [2.0.20] - 2026-09-22
|
|
8
14
|
|
|
9
15
|
### Fixed
|
|
@@ -228,6 +234,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
|
228
234
|
- Scoped Table styles and added responsive IconSelector styling.
|
|
229
235
|
- Improved dialogs, drawers, tables, forms, trees, selectors, car-number input, images, and uploads for dark mode, touch input, and narrow viewports.
|
|
230
236
|
|
|
237
|
+
[2.0.21]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.20...v2.0.21
|
|
231
238
|
[2.0.20]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.19...v2.0.20
|
|
232
239
|
[2.0.19]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.18...v2.0.19
|
|
233
240
|
[2.0.18]: https://gitee.com/FastDotnet/fast.element.plus/compare/v2.0.17...v2.0.18
|
|
@@ -662,25 +662,6 @@ var table_default = defineComponent({
|
|
|
662
662
|
"columnKey": "__table-selection",
|
|
663
663
|
"selectable": props.rowSelectable
|
|
664
664
|
}, null),
|
|
665
|
-
slots.operation && createVNode(ElTableColumn, {
|
|
666
|
-
"fixed": "right",
|
|
667
|
-
"width": state.operationColumnWidth,
|
|
668
|
-
"headerAlign": "center",
|
|
669
|
-
"align": "left",
|
|
670
|
-
"showOverflowTooltip": false,
|
|
671
|
-
"className": "fa-table__operation-column",
|
|
672
|
-
"resizable": false,
|
|
673
|
-
"columnKey": "__table-operation"
|
|
674
|
-
}, {
|
|
675
|
-
header: () => createVNode("div", { "class": "fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation" }, [createVNode("span", null, [createTextVNode("操作")])]),
|
|
676
|
-
default: ({ row, column, $index }) => createVNode("div", { "class": "fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation" }, [slots.operation?.({
|
|
677
|
-
row,
|
|
678
|
-
column,
|
|
679
|
-
$index,
|
|
680
|
-
search: tableSearch,
|
|
681
|
-
...getTableDefaultSlots(state)
|
|
682
|
-
})])
|
|
683
|
-
}),
|
|
684
665
|
state.tableColumns.length === 0 ? slots.default?.() : state.tableColumns.map((col) => col.show && (col.type === "expand" ? createVNode(ElTableColumn, mergeProps(col, {
|
|
685
666
|
"width": 35,
|
|
686
667
|
"fixed": col.fixed ?? "left",
|
|
@@ -700,7 +681,26 @@ var table_default = defineComponent({
|
|
|
700
681
|
"resizable": true,
|
|
701
682
|
"onImagePreview": handleImagePreview,
|
|
702
683
|
"onCustomCellClick": handleCustomCellClick
|
|
703
|
-
}), pick(slots, tableColumnSlotNames.value))))
|
|
684
|
+
}), pick(slots, tableColumnSlotNames.value)))),
|
|
685
|
+
slots.operation && createVNode(ElTableColumn, {
|
|
686
|
+
"fixed": "right",
|
|
687
|
+
"width": state.operationColumnWidth,
|
|
688
|
+
"headerAlign": "center",
|
|
689
|
+
"align": "left",
|
|
690
|
+
"showOverflowTooltip": false,
|
|
691
|
+
"className": "fa-table__operation-column",
|
|
692
|
+
"resizable": false,
|
|
693
|
+
"columnKey": "__table-operation"
|
|
694
|
+
}, {
|
|
695
|
+
header: () => createVNode("div", { "class": "fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation" }, [createVNode("span", null, [createTextVNode("操作")])]),
|
|
696
|
+
default: ({ row, column, $index }) => createVNode("div", { "class": "fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation" }, [slots.operation?.({
|
|
697
|
+
row,
|
|
698
|
+
column,
|
|
699
|
+
$index,
|
|
700
|
+
search: tableSearch,
|
|
701
|
+
...getTableDefaultSlots(state)
|
|
702
|
+
})])
|
|
703
|
+
})
|
|
704
704
|
])
|
|
705
705
|
}), [[resolveDirective("loading"), state.loading]]),
|
|
706
706
|
createVNode("div", { "class": "fa-table__main-footer" }, [createVNode("div", { "class": "fa-table__main-footer__left" }, [slots.footer?.({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/src/table.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onActivated, onBeforeUnmount, onMounted, shallowRef, watch, watchEffect } from \"vue\";\nimport { Eleme, More, Refresh, Search, Setting } from \"@element-plus/icons-vue\";\nimport {\n\tElButton,\n\tElDatePicker,\n\tElDropdown,\n\tElDropdownItem,\n\tElDropdownMenu,\n\tElIcon,\n\tElImageViewer,\n\tElInput,\n\tElPagination,\n\tElTable,\n\tElTableColumn,\n} from \"element-plus\";\nimport { NotData } from \"@fast-element-plus/icons-vue\";\nimport { tableProps } from \"../../../internal/props\";\nimport {\n\tcreateDateRangeShortcuts,\n\tcreateOneMonthRangeFromToday,\n\tdebounce,\n\tdefinePropType,\n\tmakeSlots,\n\tomit,\n\tpick,\n\trandomString,\n\tuseExpose,\n\tuseProps,\n\tuseRender,\n} from \"../../../utils\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableColumn from \"./tableColumn\";\nimport FaTableColumnsSettingDialog from \"./tableColumnSettingDialog\";\nimport FaTablePagination from \"./tablePagination\";\nimport FaTableSearchForm from \"./tableSearchForm\";\nimport { useTable } from \"./useTable\";\nimport type { TableColumnCtx, TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\nimport type { FaLayoutGridBreakpoint } from \"../../layoutGrid\";\nimport type { PagedInput, PagedResult, PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableDataRange, FaTableDefaultSlotsResult } from \"./table.type\";\n\nexport { tableProps } from \"../../../internal/props\";\nexport type { TreeProps } from \"../../../internal/props\";\n\n/** FaTable 的运行时 Props 定义 */\nexport const faTableProps = {\n\t...tableProps,\n\t/** whether Table has vertical border */\n\tborder: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** whether current row is highlighted */\n\thighlightCurrentRow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<NonNullable<TableProps<DefaultRow>[\"rowKey\"]>>,\n\t\tdefault: \"id\",\n\t},\n\t/** 组件封装,原生的已经失效 method that returns rowspan and colspan */\n\tspanMethod: {\n\t\ttype: Function as PropType<TableProps<DefaultRow>[\"spanMethod\"]>,\n\t\tvalidator: () => {\n\t\t\tconsole.warn(\"[Fast:FaTable]\", \"'spanMethod' 属性,组件已经封装,外部使用会失效。\");\n\t\t\treturn false;\n\t\t},\n\t},\n\t/** 表格Key */\n\ttableKey: {\n\t\ttype: String,\n\t\tdefault: () => randomString(8),\n\t},\n\t/** 表格数据 */\n\tdata: {\n\t\ttype: definePropType<DefaultRow[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** 请求数据的函数 */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<DefaultRow> | DefaultRow[]>>(Function),\n\t},\n\t/** 接口请求数据回调 */\n\tdataCallback: {\n\t\ttype: definePropType<(data: PagedResult<DefaultRow> | DefaultRow[]) => void>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n\t/** 列配置 */\n\tcolumns: {\n\t\ttype: definePropType<FaTableColumnCtx[] | false>([Array, Boolean]),\n\t\tdefault: () => false,\n\t},\n\t/** 表格列改变 */\n\tcolumnsChange: {\n\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t},\n\t/** 搜索表单 Grid布局列配置 */\n\tsearchFormCols: {\n\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakpoint, number>>([String, Number, Object]),\n\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t},\n\t/** 折叠搜索 */\n\tcollapsedSearch: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 高级搜索抽屉 */\n\tadvancedSearchDrawer: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** 搜索表单 */\n\tsearchForm: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 头部卡片 */\n\theaderCard: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 刷新按钮 */\n\trefreshBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 搜索按钮 */\n\tsearchBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 列配置按钮 */\n\tcolumnSettingBtn: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** 头部卡片右侧功能按钮 */\n\ttoolBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 隐藏搜索时间 */\n\thideSearchTime: Boolean,\n\t/** 未来搜索时间 */\n\tfutureSearchTime: Boolean,\n\t/** 搜索时间范围 */\n\tdataSearchRange: {\n\t\ttype: definePropType<FaTableDataRange>(String),\n\t\tdefault: \"Past3D\",\n\t},\n\t/** 分页 */\n\tpagination: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 页码 */\n\tpageSizes: {\n\t\ttype: definePropType<number[]>(Array),\n\t\tdefault: [20, 30, 50, 100],\n\t},\n\t/** 隐藏图片 */\n\thideImage: Boolean,\n\t/** 单选 */\n\tsingle: Boolean,\n\t/** 行点击选择 */\n\trowClickSelection: Boolean,\n\t/** 将父级数据的 children 展开为表格行,并把父级字段合并到子项;Element Plus 树表无需启用 */\n\ttreeData: Boolean,\n\t/** 配置选项 */\n\tprops: {\n\t\ttype: definePropType<{ span?: string; children?: string }>(Object),\n\t\tdefault: () => ({\n\t\t\tspan: undefined,\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** 自动刷新,当传入 data 时候,如果存在更改则自动刷新 */\n\tautoRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * 等价于 Table-Column 的 selectable\n\t * function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\trowSelectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n};\n\n/** FaTable 的运行时 Emits 定义 */\nexport const faTableEmits = {\n\t/** 当用户手动勾选数据行的 Checkbox 时触发的事件 */\n\tselect: (selection: DefaultRow[], row: DefaultRow) => Array.isArray(selection) && typeof row === \"object\" && row !== null,\n\t/** 当用户手动勾选全选 Checkbox 时触发的事件 */\n\tselectAll: (selection: DefaultRow[]) => Array.isArray(selection),\n\t/** 当选择项发生变化时会触发该事件 */\n\tselectionChange: (newSelection: DefaultRow[]) => Array.isArray(newSelection),\n\t/** 当单元格 hover 进入时会触发该事件 */\n\tcellMouseEnter: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当单元格 hover 退出时会触发该事件 */\n\tcellMouseLeave: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被点击时会触发该事件 */\n\tcellClick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被双击击时会触发该事件 */\n\tcellDblclick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被鼠标右键点击时会触发该事件 */\n\tcellContextmenu: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某一行被点击时会触发该事件 */\n\trowClick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一行被鼠标右键点击时会触发该事件 */\n\trowContextmenu: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一行被双击时会触发该事件 */\n\trowDblclick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一列的表头被点击时会触发该事件 */\n\theaderClick: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一列的表头被鼠标右键点击时触发该事件 */\n\theaderContextmenu: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当表格的排序条件发生变化的时候会触发该事件 */\n\tsortChange: (data: { column: TableColumnCtx<DefaultRow>; prop: string; order: \"\" | \"ascending\" | \"descending\" }) =>\n\t\ttypeof data === \"object\" && data !== null,\n\t/** column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件 */\n\tfilterChange: (newFilters: Record<string, string[]>) => typeof newFilters === \"object\" && newFilters !== null,\n\t/** 当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 highlight-current-row 属性 */\n\tcurrentChange: (currentRow: DefaultRow, oldCurrentRow: DefaultRow | null) =>\n\t\ttypeof currentRow === \"object\" &&\n\t\tcurrentRow !== null &&\n\t\t(oldCurrentRow === null || (typeof oldCurrentRow === \"object\" && oldCurrentRow !== null)),\n\t/** 当拖动表头改变了列的宽度的时候会触发该事件 */\n\theaderDragend: (newWidth: number, oldWidth: number, column: TableColumnCtx<DefaultRow>, event: MouseEvent) =>\n\t\ttypeof newWidth === \"number\" && typeof oldWidth === \"number\" && typeof column === \"object\" && column !== null && event instanceof MouseEvent,\n\t/** 当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded) */\n\texpandChange: (row: DefaultRow, expanded: boolean | DefaultRow[]) =>\n\t\ttypeof row === \"object\" && row !== null && (typeof expanded === \"boolean\" || Array.isArray(expanded)),\n\t/** 表格滚动时触发 */\n\tscroll: (data: { scrollLeft: number; scrollTop: number }) => typeof data === \"object\" && data !== null,\n\n\t/** 表格刷新事件 */\n\trefresh: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** 表格重置事件 */\n\treset: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** 分页页码改变事件 */\n\tsizeChange: (pageSize: number) => typeof pageSize === \"number\",\n\t/** 分页改变事件 */\n\tpaginationChange: (pageIndex: number, pageSize: number) => typeof pageIndex === \"number\" && typeof pageSize === \"number\",\n\t/** 自定义单元格点击事件 */\n\tcustomCellClick: (\n\t\temitName: string,\n\t\t{ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult\n\t) =>\n\t\t(emitName == null || typeof emitName === \"string\") &&\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\ttypeof $index === \"number\",\n};\n\n/** FaTable 的插槽参数 */\nexport type FaTableSlots = Record<string, unknown> & {\n\t/** 默认内容插槽 */\n\tdefault: never;\n\t/** 插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。 */\n\tappend: never;\n\t/** 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** 表格顶部插槽 */\n\ttopHeader: FaTableDefaultSlotsResult;\n\t/** 表格头部左侧插槽 */\n\theader: FaTableDefaultSlotsResult;\n\t/** 表格头部右侧功能按钮插槽 */\n\ttoolButton: FaTableDefaultSlotsResult;\n\t/** 表格头部右侧高级操作按钮插槽,ElDropdownMenuItem 标签 */\n\ttoolButtonAdv: FaTableDefaultSlotsResult;\n\t/** 表格操作列插槽 */\n\toperation: FaTableDefaultSlotsResult & {\n\t\trow: DefaultRow;\n\t\tcolumn: FaTableColumnCtx;\n\t\t$index: number;\n\t};\n\t/** 表格分页插槽 */\n\tpagination: {\n\t\tpageIndex: number;\n\t\tpageSize: number;\n\t\ttotalRows: number;\n\t\thandleSizeChange: (val: number) => void;\n\t\thandlePaginationChange: (val: number) => void;\n\t};\n\t/** 表格页脚插槽 */\n\tfooter: FaTableDefaultSlotsResult;\n\t/** 列配置 */\n\tcolumnSetting: never;\n} & Record<\n\t\tstring,\n\t\tFaTableDefaultSlotsResult & {\n\t\t\t/** slots为表格内容的时候才会返回 */\n\t\t\trow?: DefaultRow;\n\t\t\t/** slot为表头内容的时候返回 'TableColumnCtx<DefaultRow>' 否则返回 'FaTableColumnCtx' */\n\t\t\tcolumn?: TableColumnCtx<DefaultRow> | FaTableColumnCtx;\n\t\t\t/** slot为非搜索项的时候才会返回 */\n\t\t\t$index?: number;\n\t\t\t/** slot为搜索项的时候才会返回 */\n\t\t\tsearch?: () => Promise<void>;\n\t\t}\n\t>;\n\nexport default defineComponent({\n\tname: \"FaTable\",\n\tprops: faTableProps,\n\temits: faTableEmits,\n\tslots: makeSlots<FaTableSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst columnSettingRef = shallowRef<InstanceType<typeof FaTableColumnsSettingDialog> | null>(null);\n\n\t\tconst {\n\t\t\tglobalSize,\n\t\t\tstate,\n\t\t\telementRef,\n\t\t\ttableRef,\n\t\t\thandleTableColumnAutoWidth,\n\t\t\tloadTableColumns,\n\t\t\thandleSizeChange,\n\t\t\thandlePaginationChange,\n\t\t\tdefaultSearchTime,\n\t\t\ttableSearch,\n\t\t\ttableReset,\n\t\t\tdoRender,\n\t\t\tsetManualLoading,\n\t\t\tdoLoading,\n\t\t\thandleCustomCellClick,\n\t\t} = useTable(props, slots, emit);\n\n\t\tconst notifyColumnsChange = debounce(() => props.columnsChange?.(state.orgColumns), 500);\n\t\tconst resizeTableColumns = debounce(handleTableColumnAutoWidth, 100);\n\n\t\tconst unmountedError = new Error(\"FaTable 已卸载,列布局任务已取消。\");\n\t\tconst reportColumnTask = (task: Promise<unknown>) => {\n\t\t\ttask.catch((error: unknown) => {\n\t\t\t\tif (error !== unmountedError) console.error(\"FaTable 列更新失败。\", error);\n\t\t\t});\n\t\t};\n\n\t\tlet lastRowIndex = 0;\n\t\tconst getInitParam = (): Record<string, unknown> => {\n\t\t\treturn typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {};\n\t\t};\n\t\tconst getRowKey = (row: DefaultRow) => {\n\t\t\tconst value: unknown = typeof props.rowKey === \"function\" ? props.rowKey(row) : tableUtil.handleRowAccordingToProp(row, props.rowKey);\n\t\t\treturn typeof value === \"string\" || typeof value === \"number\" ? value : undefined;\n\t\t};\n\n\t\tconst indexMethod = (index: number) => {\n\t\t\tif (index === 0) {\n\t\t\t\tlastRowIndex = 0;\n\t\t\t}\n\t\t\tif (state.spanColumns.length > 0) {\n\t\t\t\tconst rowspan = state.tableSpanData[\"__table-index\"]?.[index] ?? 0;\n\t\t\t\tif (rowspan === 0) {\n\t\t\t\t\treturn lastRowIndex + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize + 1;\n\t\t\t\t} else {\n\t\t\t\t\tlastRowIndex++;\n\t\t\t\t\treturn lastRowIndex + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn index + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize + 1;\n\t\t};\n\n\t\tconst handleSelect = (selection: DefaultRow[], row: DefaultRow) => {\n\t\t\t// 判断是否开启了单选\n\t\t\tif (props.single) {\n\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\tif (selection.length > 0) {\n\t\t\t\t\ttableRef.value?.toggleRowSelection(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"select\", selection, row);\n\t\t};\n\n\t\tconst handleSelectAll = (selection: DefaultRow[]) => {\n\t\t\tif (props.single) {\n\t\t\t\t// 判断是否已经选中数据\n\t\t\t\tif (state.selected) {\n\t\t\t\t\t// 默认选中的第一行\n\t\t\t\t\tif (state.tableData.length > 0) {\n\t\t\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\t\t\tconst firstRow = state.tableData[0];\n\t\t\t\t\t\tif (firstRow) tableRef.value?.toggleRowSelection(firstRow);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"selectAll\", selection);\n\t\t};\n\n\t\tconst handleSelectionChange = (newSelection: DefaultRow[]) => {\n\t\t\tnewSelection.length === 0 ? (state.selected = false) : (state.selected = true);\n\t\t\t// 判断是否为单选\n\t\t\tif (props.single && newSelection.length > 0) {\n\t\t\t\t// 这里获取最后一个是因为选中改变的事件会触发多次,会带入旧的数据\n\t\t\t\tconst lastSelection = newSelection.at(-1);\n\t\t\t\tstate.selectedList = lastSelection === undefined ? [] : [lastSelection];\n\t\t\t} else {\n\t\t\t\tstate.selectedList = newSelection;\n\t\t\t}\n\t\t\t// 如果已经取消选择了,那么部分选择也应该要取消\n\t\t\tstate.indeterminateSelectedListIds = state.indeterminateSelectedListIds.filter((f) => state.selectedListIds.some((s) => s === f));\n\t\t\temit(\"selectionChange\", state.selectedList);\n\t\t};\n\n\t\tconst toggleRowIndeterminateSelection = (row: DefaultRow, selected?: boolean) => {\n\t\t\tconst rowKey = getRowKey(row);\n\t\t\tif (rowKey === undefined) return;\n\t\t\tconst curRow = state.tableData.find((item) => getRowKey(item) === rowKey);\n\t\t\tif (selected === true) {\n\t\t\t\tif (!state.indeterminateSelectedListIds.some((s) => s === rowKey)) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.push(rowKey);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow, true);\n\t\t\t} else if (selected === false) {\n\t\t\t\tconst fIndex = state.indeterminateSelectedListIds.findIndex((f) => f === rowKey);\n\t\t\t\tif (fIndex >= 0) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.splice(fIndex, 1);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow, false);\n\t\t\t} else {\n\t\t\t\tconst fIndex = state.indeterminateSelectedListIds.findIndex((f) => f === rowKey);\n\t\t\t\tif (fIndex >= 0) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.splice(fIndex, 1);\n\t\t\t\t} else {\n\t\t\t\t\tstate.indeterminateSelectedListIds.push(rowKey);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow);\n\t\t\t}\n\t\t};\n\n\t\tconst handleSortChange = ({\n\t\t\tcolumn,\n\t\t\tprop,\n\t\t}: {\n\t\t\tcolumn: TableColumnCtx<DefaultRow> & { multiOrder?: \"\" | \"ascending\" | \"descending\" };\n\t\t\tprop: string | null;\n\t\t\torder: \"\" | \"ascending\" | \"descending\" | null;\n\t\t}) => {\n\t\t\tconst normalizedProp = prop ?? column.property;\n\t\t\tif (!column.multiOrder) {\n\t\t\t\tcolumn.multiOrder = \"descending\";\n\t\t\t} else if (column.multiOrder === \"descending\") {\n\t\t\t\tcolumn.multiOrder = \"ascending\";\n\t\t\t} else {\n\t\t\t\tcolumn.multiOrder = undefined;\n\t\t\t}\n\t\t\t// 排序集合非空判断\n\t\t\tconst initSortList: unknown = getInitParam()[\"sortList\"];\n\t\t\tstate.searchParam.sortList = [\n\t\t\t\t...(Array.isArray(initSortList) ? (initSortList as PagedSortInput[]) : []),\n\t\t\t\t...(state.searchParam.sortList ?? []),\n\t\t\t].filter((item, index, list) => list.findIndex((candidate) => candidate.enField === item.enField) === index);\n\n\t\t\t// 去原来的列中查找表格的列数据\n\t\t\tconst orgColumn = state.orgColumns.find((f) => f.prop === normalizedProp);\n\t\t\tconst enField = orgColumn?.sortableField ?? orgColumn?.prop ?? column.property;\n\t\t\tconst fieldIndex = state.searchParam.sortList.findIndex((f: PagedSortInput) => f.enField === enField);\n\t\t\tif (!column.multiOrder && fieldIndex >= 0) {\n\t\t\t\t// 如果是空的,删除排序\n\t\t\t\tstate.searchParam.sortList.splice(fieldIndex, 1);\n\t\t\t} else if (fieldIndex === -1) {\n\t\t\t\tstate.searchParam.sortList.push({\n\t\t\t\t\tenField,\n\t\t\t\t\tcnField: column.label,\n\t\t\t\t\tmode: column.multiOrder,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst sortItem = state.searchParam.sortList[fieldIndex];\n\t\t\t\tif (sortItem) sortItem.mode = column.multiOrder;\n\t\t\t}\n\t\t\t// 判断最后的排序集合中是否还存在数据,如果不存在,则删除排序集合\n\t\t\tif (state.searchParam.sortList.length === 0) {\n\t\t\t\tdelete state.searchParam.sortList;\n\t\t\t}\n\t\t\temit(\"sortChange\", { column, prop: normalizedProp, order: column.multiOrder ?? \"\" });\n\t\t\ttableSearch();\n\t\t};\n\n\t\tconst handleCurrentChange = (currentRow: DefaultRow | null, oldCurrentRow: DefaultRow | null) => {\n\t\t\tif (!currentRow) {\n\t\t\t\t// 这里为空的时候,会导致 Header 中的不确定状态还是true的状态\n\t\t\t\t// tableRef.value.clearSelection();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (props.rowClickSelection) {\n\t\t\t\t// 判断是否为单选\n\t\t\t\tif (props.single && oldCurrentRow) {\n\t\t\t\t\ttableRef.value?.toggleRowSelection(oldCurrentRow);\n\t\t\t\t}\n\t\t\t\ttableRef.value?.toggleRowSelection(currentRow);\n\t\t\t}\n\t\t\temit(\"currentChange\", currentRow, oldCurrentRow);\n\t\t};\n\n\t\tconst handleCellClassName = ({\n\t\t\trow,\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow>;\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\tlet localCellClassName = \"\";\n\t\t\t// 判断是否为选择列\n\t\t\tif (column.type === \"selection\") {\n\t\t\t\t// 判断是否在部分选中的集合中\n\t\t\t\tconst rowKey = getRowKey(row);\n\t\t\t\tif (state.indeterminateSelectedListIds.some((s) => s === rowKey)) {\n\t\t\t\t\tlocalCellClassName = \"fa-table__selection-column__indeterminate\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst columnInfo = state.tableColumns.find((f) => f.prop === column.property);\n\t\t\tif (columnInfo?.dataDeleteField) {\n\t\t\t\tif (row[columnInfo.dataDeleteField] === true) {\n\t\t\t\t\tif (localCellClassName) {\n\t\t\t\t\t\tlocalCellClassName += \" fa-table__data-delete-column\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalCellClassName = \"fa-table__data-delete-column\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.cellClassName) {\n\t\t\t\tconst cellClassName =\n\t\t\t\t\ttypeof props.cellClassName === \"string\" ? props.cellClassName : props.cellClassName({ row, column, rowIndex, columnIndex });\n\t\t\t\tif (!cellClassName) {\n\t\t\t\t\treturn localCellClassName;\n\t\t\t\t}\n\t\t\t\tif (localCellClassName) {\n\t\t\t\t\treturn `${localCellClassName} ${cellClassName}`;\n\t\t\t\t} else {\n\t\t\t\t\treturn cellClassName;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn localCellClassName;\n\t\t\t}\n\t\t};\n\n\t\tconst handleHeaderCellClassName = ({\n\t\t\trow,\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow> & { multiOrder?: \"\" | \"ascending\" | \"descending\" };\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\t// TODO:不晓得这里有无问题,EL 更新了还未测试\n\t\t\tcolumn.order = column.multiOrder === \"ascending\" || column.multiOrder === \"descending\" ? column.multiOrder : null;\n\t\t\tif (props.headerCellClassName) {\n\t\t\t\tif (typeof props.headerCellClassName === \"function\") {\n\t\t\t\t\treturn props.headerCellClassName({ row, column, rowIndex, columnIndex });\n\t\t\t\t} else {\n\t\t\t\t\treturn props.headerCellClassName;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\";\n\t\t};\n\n\t\tconst handleSpanMethod = ({\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow>;\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\t/** 原生的 span-method 会失效 */\n\t\t\tconst property = column.property as string | null | undefined;\n\t\t\tconst columnKey = column.columnKey as string | null | undefined;\n\t\t\tconst pKey = property ?? columnKey;\n\t\t\tif (pKey === undefined || pKey === null) return { rowspan: 1, colspan: 1 };\n\t\t\tif (state.spanColumns.findIndex((f) => f.prop === pKey) !== -1) {\n\t\t\t\tconst rowspan = state.tableSpanData[pKey]?.[rowIndex] ?? 0;\n\t\t\t\tif (rowspan > 0) {\n\t\t\t\t\treturn { rowspan, colspan: 1 };\n\t\t\t\t}\n\t\t\t\treturn { rowspan: 0, colspan: 0 };\n\t\t\t}\n\t\t\treturn { rowspan: 1, colspan: 1 };\n\t\t};\n\n\t\tconst handleHeaderDragend = (newWidth: number, oldWidth: number, column: TableColumnCtx<DefaultRow>, event: MouseEvent) => {\n\t\t\tstate.orgColumns.forEach((f) => {\n\t\t\t\tif (column.property === f.prop) {\n\t\t\t\t\tf.width = newWidth;\n\t\t\t\t\tf.smallWidth = newWidth;\n\t\t\t\t}\n\t\t\t});\n\t\t\temit(\"headerDragend\", newWidth, oldWidth, column, event);\n\t\t\tif (props.columnsChange) reportColumnTask(notifyColumnsChange());\n\t\t};\n\n\t\tconst handleImagePreview = (url: string) => {\n\t\t\tstate.previewList = [url];\n\t\t\tstate.imagePreview = true;\n\t\t};\n\n\t\tconst tableColumnOmitNames = [\"multiOrder\", \"columnId\", \"order\", \"sortableField\", \"disabledSortable\", \"spanProp\", \"pureSearch\", \"search\"];\n\t\tconst searchFormSlotNames = computed(() => [\n\t\t\t...new Set(state.searchColumns.flatMap((column) => (typeof column.search?.slot === \"string\" ? [column.search.slot] : []))),\n\t\t]);\n\t\tconst tableColumnSlotNames = computed(() => [\n\t\t\t...new Set(state.tableColumns.flatMap((column) => [column.slot, column.headerSlot].filter((name) => typeof name === \"string\"))),\n\t\t]);\n\t\tconst searchInputClearable = computed(() => {\n\t\t\tconst value = state.searchParam.searchValue;\n\t\t\treturn (value !== undefined && value !== \"\") || state.searchValueUpdate.length > 0;\n\t\t});\n\n\t\twatch(\n\t\t\t() => props.columns,\n\t\t\t() => {\n\t\t\t\tloadTableColumns();\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.initParam,\n\t\t\t() => {\n\t\t\t\t// 如果初始化参数改变了,则需要改变对应的搜索参数\n\t\t\t\tObject.entries(getInitParam()).forEach(([key, value]) => {\n\t\t\t\t\tstate.searchParam[key] = value;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tif (!props.requestApi && props.autoRefresh) {\n\t\t\t\t\treturn tableSearch();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatchEffect((onCleanup) => {\n\t\t\tconst element = elementRef.value;\n\t\t\tif (element) {\n\t\t\t\tconst observer = new ResizeObserver((entries) => {\n\t\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\t\tconst { width, height } = entry.contentRect;\n\t\t\t\t\t\tconst widthChanged = state.tableWidth !== width;\n\t\t\t\t\t\tstate.tableWidth = width;\n\t\t\t\t\t\tstate.tableHeight = height;\n\t\t\t\t\t\tif (widthChanged) reportColumnTask(resizeTableColumns());\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobserver.observe(element);\n\n\t\t\t\tonCleanup(() => observer.disconnect());\n\t\t\t}\n\t\t});\n\n\t\tonBeforeUnmount(() => {\n\t\t\tnotifyColumnsChange.cancel(unmountedError);\n\t\t\tresizeTableColumns.cancel(unmountedError);\n\t\t});\n\n\t\tonMounted(async () => {\n\t\t\tstate.initParam = getInitParam();\n\t\t\tdefaultSearchTime();\n\t\t\t// 初始化搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\t\tObject.entries(getInitParam()).forEach(([key, value]) => {\n\t\t\t\tstate.searchParam[key] = value;\n\t\t\t});\n\t\t\tawait tableSearch();\n\t\t\tloadTableColumns();\n\t\t\tif (!props.requestApi && props.autoRefresh) await tableSearch();\n\t\t});\n\n\t\tonActivated(() => {\n\t\t\t// 解决 keep-alive 后自动列宽失效的问题\n\t\t\thandleTableColumnAutoWidth();\n\t\t});\n\n\t\tconst elTableProps = useProps(props, tableProps, [\"data\", \"spanMethod\", \"headerCellClassName\", \"cellClassName\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tref={elementRef}\n\t\t\t\tclass={[\"fa-table\", `fa-table-${globalSize.value}`, `fa-table__${props.tableKey}`, { fa__click__disabled: state.loading }]}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--fa-table-width\": state.tableWidth ? `${state.tableWidth}px` : \"\",\n\t\t\t\t\t\"--fa-table-height\": state.tableHeight ? `${state.tableHeight}px` : \"\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<FaTableSearchForm\n\t\t\t\t\tvSlots={pick(slots, searchFormSlotNames.value)}\n\t\t\t\t\tshow={props.searchForm && state.searchForm}\n\t\t\t\t\tcollapsedSearch={props.collapsedSearch}\n\t\t\t\t\tadvancedSearchDrawer={props.advancedSearchDrawer}\n\t\t\t\t\tcols={props.searchFormCols}\n\t\t\t\t\tsearch={tableSearch}\n\t\t\t\t\treset={tableReset}\n\t\t\t\t/>\n\t\t\t\t{slots.topHeader && (\n\t\t\t\t\t<div class=\"el-card fa-table__header\">{slots.topHeader({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t)}\n\t\t\t\t<div class=\"el-card fa-table__main\">\n\t\t\t\t\t{props.headerCard && (\n\t\t\t\t\t\t<div class=\"fa-table__main-header\">\n\t\t\t\t\t\t\t<div class=\"fa-table__main-header-left\">{slots.header?.({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right\">\n\t\t\t\t\t\t\t\t{props.toolBtn && (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right__div-search\">\n\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-table__main-header-right__input-search\"\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tprefixIcon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"关键字搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\tvModel_trim={state.searchParam.searchValue}\n\t\t\t\t\t\t\t\t\t\t\t\tclearable={searchInputClearable.value}\n\t\t\t\t\t\t\t\t\t\t\t\tonCompositionupdate={(e: CompositionEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.searchValueUpdate = e.data;\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonCompositionend={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.searchValueUpdate = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={tableSearch}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right__div-search__hidden\">\n\t\t\t\t\t\t\t\t\t\t\t\t{state.searchParam.searchValue}\n\t\t\t\t\t\t\t\t\t\t\t\t{state.searchValueUpdate}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{props.requestApi && !props.hideSearchTime && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ElDatePicker 的 JSX 类型未声明 change 事件,运行时由内部 Picker 触发。\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange: tableSearch,\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-table__main-header-right__data-search\"\n\t\t\t\t\t\t\t\t\t\t\t\tpopperClass=\"fa-table__main-header-right__data-search__popper\"\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"daterange\"\n\t\t\t\t\t\t\t\t\t\t\t\tvModel={state.searchParam.searchTimeList}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultTime={createOneMonthRangeFromToday(props.futureSearchTime)}\n\t\t\t\t\t\t\t\t\t\t\t\tshortcuts={createDateRangeShortcuts(props.futureSearchTime)}\n\t\t\t\t\t\t\t\t\t\t\t\tvalueFormat=\"YYYY-MM-DD HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\t\tclearable={false}\n\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\tfallbackPlacements={[\"top\"]}\n\t\t\t\t\t\t\t\t\t\t\t\tunlinkPanels\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.refreshBtn && (\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\t\t\t\tcircle\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={tableSearch}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.searchBtn && state.searchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.searchForm ? \"隐藏搜索栏\" : \"显示搜索栏\"}\n\t\t\t\t\t\t\t\t\t\t\t\tcircle\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => (state.searchForm = !state.searchForm)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.columnSettingBtn && props.columns && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDropdown title=\"表格列配置\" trigger=\"click\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: () => <ElButton loading={state.loading} loadingIcon={Eleme} circle icon={Setting} />,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdropdown: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.columnSetting?.()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownItem title=\"表格列配置\" divided onClick={() => columnSettingRef.value?.open()}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t表格列配置\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t</ElDropdown>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{slots.toolButton?.({ search: tableSearch, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t{slots.toolButtonAdv && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDropdown title=\"高级操作\" trigger=\"click\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton loading={state.loading} loadingIcon={Eleme} circle icon={More}></ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdropdown: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.toolButtonAdv?.({ search: tableSearch, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t</ElDropdown>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<ElTable\n\t\t\t\t\t\t{...elTableProps.value}\n\t\t\t\t\t\tref={tableRef}\n\t\t\t\t\t\tvLoading={state.loading}\n\t\t\t\t\t\telement-loading-text={state.loadingText}\n\t\t\t\t\t\tdata={state.tableData}\n\t\t\t\t\t\tspanMethod={handleSpanMethod}\n\t\t\t\t\t\theaderCellClassName={handleHeaderCellClassName}\n\t\t\t\t\t\tcellClassName={handleCellClassName}\n\t\t\t\t\t\tonSelection-change={handleSelectionChange}\n\t\t\t\t\t\tonSort-change={handleSortChange}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonSelect-all={handleSelectAll}\n\t\t\t\t\t\tonCurrent-change={handleCurrentChange}\n\t\t\t\t\t\tonHeader-dragend={handleHeaderDragend}\n\t\t\t\t\t\tonCell-mouse-enter={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellMouseEnter\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-mouse-leave={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellMouseLeave\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-click={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellClick\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-dblclick={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellDblclick\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-contextmenu={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellContextmenu\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRow-click={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowClick\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRow-contextmenu={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowContextmenu\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRow-dblclick={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowDblclick\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonHeader-click={(column: TableColumnCtx<DefaultRow>, event: Event) => emit(\"headerClick\", column, event)}\n\t\t\t\t\t\tonHeader-contextmenu={(column: TableColumnCtx<DefaultRow>, event: Event) => emit(\"headerContextmenu\", column, event)}\n\t\t\t\t\t\tonFilter-change={(newFilters: Record<string, string[]>) => emit(\"filterChange\", newFilters)}\n\t\t\t\t\t\tonExpand-change={(row: DefaultRow, expanded: boolean | DefaultRow[]) => emit(\"expandChange\", row, expanded)}\n\t\t\t\t\t\tonScroll={(data: { scrollLeft: number; scrollTop: number }) => emit(\"scroll\", data)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tappend: () => slots.append?.(),\n\t\t\t\t\t\t\tempty: () => (\n\t\t\t\t\t\t\t\t<div class=\"fa-table__empty\">\n\t\t\t\t\t\t\t\t\t{slots.empty ? (\n\t\t\t\t\t\t\t\t\t\tslots.empty()\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t<NotData />\n\t\t\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t<div>暂无数据</div>\n\t\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__index-column\"\n\t\t\t\t\t\t\t\t\t\ttype=\"index\"\n\t\t\t\t\t\t\t\t\t\tfixed=\"left\"\n\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\tstate.tablePagination.pageIndex * state.tablePagination.pageSize >= 100\n\t\t\t\t\t\t\t\t\t\t\t\t? state.tablePagination.pageIndex * state.tablePagination.pageSize >= 1000\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 40\n\t\t\t\t\t\t\t\t\t\t\t\t: 30\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\tindex={indexMethod}\n\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-index\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__selection-column\"\n\t\t\t\t\t\t\t\t\t\ttype=\"selection\"\n\t\t\t\t\t\t\t\t\t\tfixed=\"left\"\n\t\t\t\t\t\t\t\t\t\twidth={35}\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\treserveSelection\n\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-selection\"\n\t\t\t\t\t\t\t\t\t\tselectable={props.rowSelectable}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{slots.operation && (\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\t\tfixed=\"right\"\n\t\t\t\t\t\t\t\t\t\t\twidth={state.operationColumnWidth}\n\t\t\t\t\t\t\t\t\t\t\theaderAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__operation-column\"\n\t\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-operation\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\theader: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>操作</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.operation?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: tableSearch,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(state),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{state.tableColumns.length === 0\n\t\t\t\t\t\t\t\t\t\t? slots.default?.()\n\t\t\t\t\t\t\t\t\t\t: state.tableColumns.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(col) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tcol.show &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(col.type === \"expand\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElTableColumn {...col} width={35} fixed={col.fixed ?? \"left\"} resizable={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow: DefaultRow;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: FaTableColumnCtx;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index: number;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{col.render?.({ row, column, $index, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{col.slot &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[col.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(state),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol.prop && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableColumn\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvSlots={pick(slots, tableColumnSlotNames.value)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...omit(col, tableColumnOmitNames)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thideImage={props.hideImage}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresizable={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonImagePreview={handleImagePreview}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonCustomCellClick={handleCustomCellClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTable>\n\t\t\t\t\t<div class=\"fa-table__main-footer\">\n\t\t\t\t\t\t<div class=\"fa-table__main-footer__left\">{slots.footer?.({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t\t\t{slots.pagination ? (\n\t\t\t\t\t\t\tslots.pagination({\n\t\t\t\t\t\t\t\tpageIndex: state.tablePagination.pageIndex,\n\t\t\t\t\t\t\t\tpageSize: state.tablePagination.pageSize,\n\t\t\t\t\t\t\t\ttotalRows: state.tablePagination.totalRows,\n\t\t\t\t\t\t\t\thandleSizeChange,\n\t\t\t\t\t\t\t\thandlePaginationChange,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{props.pagination ? (\n\t\t\t\t\t\t\t\t\t<FaTablePagination\n\t\t\t\t\t\t\t\t\t\tpageSizes={props.pageSizes}\n\t\t\t\t\t\t\t\t\t\tonSizeChange={handleSizeChange}\n\t\t\t\t\t\t\t\t\t\tonCurrentChange={handlePaginationChange}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<ElPagination class=\"fa-table-pagination\" size=\"small\" layout=\"total\" total={state.tableData.length} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{state.imagePreview && (\n\t\t\t\t\t<ElImageViewer\n\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\tteleported\n\t\t\t\t\t\tshowProgress\n\t\t\t\t\t\tonClose={() => (state.imagePreview = false)}\n\t\t\t\t\t\turlList={state.previewList}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{props.columnSettingBtn && <FaTableColumnsSettingDialog ref={columnSettingRef} change={props.columnsChange} />}\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** 用于多选表格,清空用户的选择 */\n\t\t\tclearSelection: computed(() => tableRef.value?.clearSelection),\n\t\t\t/** 返回当前选中的行 */\n\t\t\tgetSelectionRows: computed(() => tableRef.value?.getSelectionRows),\n\t\t\t/** 返回当前半选中的行。 */\n\t\t\tgetHalfSelectionRows: computed(() => tableRef.value?.getHalfSelectionRows),\n\t\t\t/** 用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowSelection: computed(() => tableRef.value?.toggleRowSelection),\n\t\t\t/** 用于多选表格,切换全选和全不选 */\n\t\t\ttoggleAllSelection: computed(() => tableRef.value?.toggleAllSelection),\n\t\t\t/** 用于可扩展的表格或树表格,如果某行被扩展,则切换。 使用第二个参数,您可以直接设置该行应该被扩展或折叠。 */\n\t\t\ttoggleRowExpansion: computed(() => tableRef.value?.toggleRowExpansion),\n\t\t\t/** 用于单选表格,设定某一行为选中行, 如果调用时不加参数,则会取消目前高亮行的选中状态。 */\n\t\t\tsetCurrentRow: computed(() => tableRef.value?.setCurrentRow),\n\t\t\t/** 用于清空排序条件,数据会恢复成未排序的状态 */\n\t\t\tclearSort: computed(() => tableRef.value?.clearSort),\n\t\t\t/** 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数,清除所有过滤器 */\n\t\t\tclearFilter: computed(() => tableRef.value?.clearFilter),\n\t\t\t/** 对 Table 进行重新布局。 当表格可见性变化时,您可能需要调用此方法以获得正确的布局 */\n\t\t\tdoLayout: computed(() => tableRef.value?.doLayout),\n\t\t\t/** 手动排序表格。 参数 prop 属性指定排序列,order 指定排序顺序。 */\n\t\t\tsort: computed(() => tableRef.value?.sort),\n\t\t\t/** 滚动到一组特定坐标 */\n\t\t\tscrollTo: computed(() => tableRef.value?.scrollTo),\n\t\t\t/** 设置垂直滚动位置 */\n\t\t\tsetScrollTop: computed(() => tableRef.value?.setScrollTop),\n\t\t\t/** 设置水平滚动位置 */\n\t\t\tsetScrollLeft: computed(() => tableRef.value?.setScrollLeft),\n\t\t\t/** 获取表列的 context */\n\t\t\tcolumns: computed(() => tableRef.value?.columns),\n\t\t\t/** 适用于 lazy Table, 需要设置 rowKey, 更新 key children */\n\t\t\tupdateKeyChildren: computed(() => tableRef.value?.updateKeyChildren),\n\t\t\t/** 聚合加载状态;手动关闭不能结束内部任务。 */\n\t\t\tloading: computed({ get: () => state.loading, set: setManualLoading }),\n\t\t\t/** 表格数据 */\n\t\t\ttableData: computed(() => state.tableData),\n\t\t\t/** 分页数据 */\n\t\t\ttablePagination: computed(() => state.tablePagination),\n\t\t\t/** 搜索参数 */\n\t\t\tsearchParam: computed(() => state.searchParam),\n\t\t\t/** 选中状态 */\n\t\t\tselected: computed(() => state.selected),\n\t\t\t/** 选中数据列表 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** 选中数据 rowKey 列表 */\n\t\t\tselectedListIds: computed(() => state.selectedListIds),\n\t\t\t/** 部分选中数据 rowKey 列表 */\n\t\t\tindeterminateSelectedListIds: computed(() => state.indeterminateSelectedListIds),\n\t\t\t/** 表格宽度 */\n\t\t\ttableWidth: computed(() => state.tableWidth),\n\t\t\t/** 表格高度 */\n\t\t\ttableHeight: computed(() => state.tableHeight),\n\t\t\t/** 部分选中(样式不一样而已),用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowIndeterminateSelection,\n\t\t\t/** 异步方法,刷新表格 */\n\t\t\trefresh: tableSearch,\n\t\t\t/** 异步方法,重置表格 */\n\t\t\treset: tableReset,\n\t\t\t/** 对 Table 进行重新渲染。当 TableKey 发生变化的时候可以通过此方法重新渲染表格 */\n\t\t\tdoRender,\n\t\t\t/** Table 加载 */\n\t\t\tdoLoading,\n\t\t});\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAa,eAAe;CAC3B,GAAG;;CAEH,QAAQ;EACP,MAAM;EACN,SAAS;CACV;;CAEA,qBAAqB;EACpB,MAAM;EACN,SAAS;CACV;;CAEA,QAAQ;EACP,MAAM,CAAC,QAAQ,QAAQ;EACvB,SAAS;CACV;;CAEA,YAAY;EACX,MAAM;EACN,iBAAiB;GAChB,QAAQ,KAAK,kBAAkB,iCAAiC;GAChE,OAAO;EACR;CACD;;CAEA,UAAU;EACT,MAAM;EACN,eAAe,aAAa,CAAC;CAC9B;;CAEA,MAAM;EACL,MAAM,eAA6B,KAAK;EACxC,eAAe,CAAA;CAChB;;CAEA,YAAY,EACX,MAAM,eAAyF,QAAQ,EACxG;;CAEA,cAAc,EACb,MAAM,eAAuE,QAAQ,EACtF;;CAEA,WAAW,eAAoD;EAAC;EAAQ;EAAQ;CAAM,CAAC;;CAEvF,SAAS;EACR,MAAM,eAA2C,CAAC,OAAO,OAAO,CAAC;EACjE,eAAe;CAChB;;CAEA,eAAe,EACd,MAAM,eAA+D,QAAQ,EAC9E;;CAEA,gBAAgB;EACf,MAAM,eAAyE;GAAC;GAAQ;GAAQ;EAAM,CAAC;EACvG,gBAAgB;GAAE,IAAI;GAAG,IAAI;GAAG,IAAI;GAAG,IAAI;GAAG,IAAI;EAAE;CACrD;;CAEA,iBAAiB;EAChB,MAAM;EACN,SAAS;CACV;;CAEA,sBAAsB;EACrB,MAAM;EACN,SAAS;CACV;;CAEA,YAAY;EACX,MAAM;EACN,SAAS;CACV;;CAEA,YAAY;EACX,MAAM;EACN,SAAS;CACV;;CAEA,YAAY;EACX,MAAM;EACN,SAAS;CACV;;CAEA,WAAW;EACV,MAAM;EACN,SAAS;CACV;;CAEA,kBAAkB;EACjB,MAAM;EACN,SAAS;CACV;;CAEA,SAAS;EACR,MAAM;EACN,SAAS;CACV;;CAEA,gBAAgB;;CAEhB,kBAAkB;;CAElB,iBAAiB;EAChB,MAAM,eAAiC,MAAM;EAC7C,SAAS;CACV;;CAEA,YAAY;EACX,MAAM;EACN,SAAS;CACV;;CAEA,WAAW;EACV,MAAM,eAAyB,KAAK;EACpC,SAAS;GAAC;GAAI;GAAI;GAAI;EAAG;CAC1B;;CAEA,WAAW;;CAEX,QAAQ;;CAER,mBAAmB;;CAEnB,UAAU;;CAEV,OAAO;EACN,MAAM,eAAqD,MAAM;EACjE,gBAAgB;GACf,MAAM,KAAA;GACN,UAAU;EACX;CACD;;CAEA,aAAa;EACZ,MAAM;EACN,SAAS;CACV;;;;;CAKA,eAAe;AAChB;;AAGA,MAAa,eAAe;;CAE3B,SAAS,WAAyB,QAAoB,MAAM,QAAQ,SAAS,KAAK,OAAO,QAAQ,YAAY,QAAQ;;CAErH,YAAY,cAA4B,MAAM,QAAQ,SAAS;;CAE/D,kBAAkB,iBAA+B,MAAM,QAAQ,YAAY;;CAE3E,iBAAiB,KAAiB,QAAoC,MAA4B,UACjG,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,gBAAgB,wBAChB,iBAAiB;;CAElB,iBAAiB,KAAiB,QAAoC,MAA4B,UACjG,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,gBAAgB,wBAChB,iBAAiB;;CAElB,YAAY,KAAiB,QAAoC,MAA4B,UAC5F,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,gBAAgB,wBAChB,iBAAiB;;CAElB,eAAe,KAAiB,QAAoC,MAA4B,UAC/F,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,gBAAgB,wBAChB,iBAAiB;;CAElB,kBAAkB,KAAiB,QAAoC,MAA4B,UAClG,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,gBAAgB,wBAChB,iBAAiB;;CAElB,WAAW,KAAiB,QAAoC,UAC/D,OAAO,QAAQ,YAAY,QAAQ,QAAQ,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAE9G,iBAAiB,KAAiB,QAAoC,UACrE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAE9G,cAAc,KAAiB,QAAoC,UAClE,OAAO,QAAQ,YAAY,QAAQ,QAAQ,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAE9G,cAAc,QAAoC,UAAiB,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAErI,oBAAoB,QAAoC,UAAiB,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAE3I,aAAa,SACZ,OAAO,SAAS,YAAY,SAAS;;CAEtC,eAAe,eAAyC,OAAO,eAAe,YAAY,eAAe;;CAEzG,gBAAgB,YAAwB,kBACvC,OAAO,eAAe,YACtB,eAAe,SACd,kBAAkB,QAAS,OAAO,kBAAkB,YAAY,kBAAkB;;CAEpF,gBAAgB,UAAkB,UAAkB,QAAoC,UACvF,OAAO,aAAa,YAAY,OAAO,aAAa,YAAY,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB;;CAEnI,eAAe,KAAiB,aAC/B,OAAO,QAAQ,YAAY,QAAQ,SAAS,OAAO,aAAa,aAAa,MAAM,QAAQ,QAAQ;;CAEpG,SAAS,SAAoD,OAAO,SAAS,YAAY,SAAS;;CAGlG,UAAU,WAAuB,OAAO,WAAW,YAAY,WAAW;;CAE1E,QAAQ,WAAuB,OAAO,WAAW,YAAY,WAAW;;CAExE,aAAa,aAAqB,OAAO,aAAa;;CAEtD,mBAAmB,WAAmB,aAAqB,OAAO,cAAc,YAAY,OAAO,aAAa;;CAEhH,kBACC,UACA,EAAE,KAAK,QAAQ,cAEd,YAAY,QAAQ,OAAO,aAAa,aACzC,OAAO,QAAQ,YACf,QAAQ,QACR,OAAO,WAAW,YAClB,WAAW,QACX,OAAO,WAAW;AACpB;AAkDA,IAAA,gBAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO,UAAwB;CAC/B,MAAM,OAAO,EAAE,OAAO,MAAM,UAAU;EACrC,MAAM,mBAAmB,WAAoE,IAAI;EAEjG,MAAM,EACL,YACA,OACA,YACA,UACA,4BACA,kBACA,kBACA,wBACA,mBACA,aACA,YACA,UACA,kBACA,WACA,0BACG,SAAS,OAAO,OAAO,IAAI;EAE/B,MAAM,sBAAsB,eAAe,MAAM,gBAAgB,MAAM,UAAU,GAAG,GAAG;EACvF,MAAM,qBAAqB,SAAS,4BAA4B,GAAG;EAEnE,MAAM,iCAAiB,IAAI,MAAM,uBAAuB;EACxD,MAAM,oBAAoB,SAA2B;GACpD,KAAK,OAAO,UAAmB;IAC9B,IAAI,UAAU,gBAAgB,QAAQ,MAAM,kBAAkB,KAAK;GACpE,CAAC;EACF;EAEA,IAAI,eAAe;EACnB,MAAM,qBAA8C;GACnD,OAAO,OAAO,MAAM,cAAc,YAAY,MAAM,cAAc,OAAO,MAAM,YAAY,CAAC;EAC7F;EACA,MAAM,aAAa,QAAoB;GACtC,MAAM,QAAiB,OAAO,MAAM,WAAW,aAAa,MAAM,OAAO,GAAG,IAAI,UAAU,yBAAyB,KAAK,MAAM,MAAM;GACpI,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,QAAQ,KAAA;EACzE;EAEA,MAAM,eAAe,UAAkB;GACtC,IAAI,UAAU,GACb,eAAe;GAEhB,IAAI,MAAM,YAAY,SAAS,GAAG;IAEjC,KADgB,MAAM,cAAc,gBAAgB,GAAG,UAAU,OACjD,GACf,OAAO,gBAAgB,MAAM,gBAAgB,YAAY,KAAK,MAAM,gBAAgB,WAAW;SACzF;KACN;KACA,OAAO,gBAAgB,MAAM,gBAAgB,YAAY,KAAK,MAAM,gBAAgB;IACrF;GACD;GACA,OAAO,SAAS,MAAM,gBAAgB,YAAY,KAAK,MAAM,gBAAgB,WAAW;EACzF;EAEA,MAAM,gBAAgB,WAAyB,QAAoB;GAElE,IAAI,MAAM,QAAQ;IACjB,SAAS,OAAO,eAAe;IAC/B,IAAI,UAAU,SAAS,GACtB,SAAS,OAAO,mBAAmB,GAAG;GAExC;GACA,KAAK,UAAU,WAAW,GAAG;EAC9B;EAEA,MAAM,mBAAmB,cAA4B;GACpD,IAAI,MAAM,QAAQ;IAEjB,IAAI,MAAM,UAEL;SAAA,MAAM,UAAU,SAAS,GAAG;MAC/B,SAAS,OAAO,eAAe;MAC/B,MAAM,WAAW,MAAM,UAAU;MACjC,IAAI,UAAU,SAAS,OAAO,mBAAmB,QAAQ;KAC1D;WAEA,SAAS,OAAO,eAAe;GAEjC;GACA,KAAK,aAAa,SAAS;EAC5B;EAEA,MAAM,yBAAyB,iBAA+B;GAC7D,aAAa,WAAW,IAAK,MAAM,WAAW,QAAU,MAAM,WAAW;GAEzE,IAAI,MAAM,UAAU,aAAa,SAAS,GAAG;IAE5C,MAAM,gBAAgB,aAAa,GAAG,EAAE;IACxC,MAAM,eAAe,kBAAkB,KAAA,IAAY,CAAA,IAAK,CAAC,aAAa;GACvE,OACC,MAAM,eAAe;GAGtB,MAAM,+BAA+B,MAAM,6BAA6B,QAAQ,MAAM,MAAM,gBAAgB,MAAM,MAAM,MAAM,CAAC,CAAC;GAChI,KAAK,mBAAmB,MAAM,YAAY;EAC3C;EAEA,MAAM,mCAAmC,KAAiB,aAAuB;GAChF,MAAM,SAAS,UAAU,GAAG;GAC5B,IAAI,WAAW,KAAA,GAAW;GAC1B,MAAM,SAAS,MAAM,UAAU,MAAM,SAAS,UAAU,IAAI,MAAM,MAAM;GACxE,IAAI,aAAa,MAAM;IACtB,IAAI,CAAC,MAAM,6BAA6B,MAAM,MAAM,MAAM,MAAM,GAC/D,MAAM,6BAA6B,KAAK,MAAM;IAE/C,IAAI,QAAQ,SAAS,OAAO,mBAAmB,QAAQ,IAAI;GAC5D,OAAO,IAAI,aAAa,OAAO;IAC9B,MAAM,SAAS,MAAM,6BAA6B,WAAW,MAAM,MAAM,MAAM;IAC/E,IAAI,UAAU,GACb,MAAM,6BAA6B,OAAO,QAAQ,CAAC;IAEpD,IAAI,QAAQ,SAAS,OAAO,mBAAmB,QAAQ,KAAK;GAC7D,OAAO;IACN,MAAM,SAAS,MAAM,6BAA6B,WAAW,MAAM,MAAM,MAAM;IAC/E,IAAI,UAAU,GACb,MAAM,6BAA6B,OAAO,QAAQ,CAAC;SAEnD,MAAM,6BAA6B,KAAK,MAAM;IAE/C,IAAI,QAAQ,SAAS,OAAO,mBAAmB,MAAM;GACtD;EACD;EAEA,MAAM,oBAAoB,EACzB,QACA,WAKK;GACL,MAAM,iBAAiB,QAAQ,OAAO;GACtC,IAAI,CAAC,OAAO,YACX,OAAO,aAAa;QACd,IAAI,OAAO,eAAe,cAChC,OAAO,aAAa;QAEpB,OAAO,aAAa,KAAA;GAGrB,MAAM,eAAwB,aAAa,CAAC,CAAC;GAC7C,MAAM,YAAY,WAAW,CAC5B,GAAI,MAAM,QAAQ,YAAY,IAAK,eAAoC,CAAA,GACvE,GAAI,MAAM,YAAY,YAAY,CAAA,CAAG,CACrC,CAAC,QAAQ,MAAM,OAAO,SAAS,KAAK,WAAW,cAAc,UAAU,YAAY,KAAK,OAAO,MAAM,KAAK;GAG3G,MAAM,YAAY,MAAM,WAAW,MAAM,MAAM,EAAE,SAAS,cAAc;GACxE,MAAM,UAAU,WAAW,iBAAiB,WAAW,QAAQ,OAAO;GACtE,MAAM,aAAa,MAAM,YAAY,SAAS,WAAW,MAAsB,EAAE,YAAY,OAAO;GACpG,IAAI,CAAC,OAAO,cAAc,cAAc,GAEvC,MAAM,YAAY,SAAS,OAAO,YAAY,CAAC;QACzC,IAAI,eAAe,IACzB,MAAM,YAAY,SAAS,KAAK;IAC/B;IACA,SAAS,OAAO;IAChB,MAAM,OAAO;GACd,CAAC;QACK;IACN,MAAM,WAAW,MAAM,YAAY,SAAS;IAC5C,IAAI,UAAU,SAAS,OAAO,OAAO;GACtC;GAEA,IAAI,MAAM,YAAY,SAAS,WAAW,GACzC,OAAO,MAAM,YAAY;GAE1B,KAAK,cAAc;IAAE;IAAQ,MAAM;IAAgB,OAAO,OAAO,cAAc;GAAG,CAAC;GACnF,YAAY;EACb;EAEA,MAAM,uBAAuB,YAA+B,kBAAqC;GAChG,IAAI,CAAC,YAGJ;GAED,IAAI,MAAM,mBAAmB;IAE5B,IAAI,MAAM,UAAU,eACnB,SAAS,OAAO,mBAAmB,aAAa;IAEjD,SAAS,OAAO,mBAAmB,UAAU;GAC9C;GACA,KAAK,iBAAiB,YAAY,aAAa;EAChD;EAEA,MAAM,uBAAuB,EAC5B,KACA,QACA,UACA,kBAMK;GACL,IAAI,qBAAqB;GAEzB,IAAI,OAAO,SAAS,aAAa;IAEhC,MAAM,SAAS,UAAU,GAAG;IAC5B,IAAI,MAAM,6BAA6B,MAAM,MAAM,MAAM,MAAM,GAC9D,qBAAqB;GAEvB;GACA,MAAM,aAAa,MAAM,aAAa,MAAM,MAAM,EAAE,SAAS,OAAO,QAAQ;GAC5E,IAAI,YAAY,iBACX;QAAA,IAAI,WAAW,qBAAqB,MAAM;KAC7C,IAAI,oBACH,sBAAsB;UAEtB,qBAAqB;IAEvB;;GAED,IAAI,MAAM,eAAe;IACxB,MAAM,gBACL,OAAO,MAAM,kBAAkB,WAAW,MAAM,gBAAgB,MAAM,cAAc;KAAE;KAAK;KAAQ;KAAU;IAAY,CAAC;IAC3H,IAAI,CAAC,eACJ,OAAO;IAER,IAAI,oBACH,OAAO,GAAG,mBAAkB,GAAI;SAEhC,OAAO;GAET,OACC,OAAO;EAET;EAEA,MAAM,6BAA6B,EAClC,KACA,QACA,UACA,kBAMK;GAEL,OAAO,QAAQ,OAAO,eAAe,eAAe,OAAO,eAAe,eAAe,OAAO,aAAa;GAC7G,IAAI,MAAM,qBAAqB;IAC9B,IAAI,OAAO,MAAM,wBAAwB,YACxC,OAAO,MAAM,oBAAoB;KAAE;KAAK;KAAQ;KAAU;IAAY,CAAC;SAEvE,OAAO,MAAM;GAEf;GACA,OAAO;EACR;EAEA,MAAM,oBAAoB,EACzB,QACA,eAMK;;GAEL,MAAM,WAAW,OAAO;GACxB,MAAM,YAAY,OAAO;GACzB,MAAM,OAAO,YAAY;GACzB,IAAI,SAAS,KAAA,KAAa,SAAS,MAAM,OAAO;IAAE,SAAS;IAAG,SAAS;GAAE;GACzE,IAAI,MAAM,YAAY,WAAW,MAAM,EAAE,SAAS,IAAI,MAAM,IAAI;IAC/D,MAAM,UAAU,MAAM,cAAc,KAAK,GAAG,aAAa;IACzD,IAAI,UAAU,GACb,OAAO;KAAE;KAAS,SAAS;IAAE;IAE9B,OAAO;KAAE,SAAS;KAAG,SAAS;IAAE;GACjC;GACA,OAAO;IAAE,SAAS;IAAG,SAAS;GAAE;EACjC;EAEA,MAAM,uBAAuB,UAAkB,UAAkB,QAAoC,UAAsB;GAC1H,MAAM,WAAW,SAAS,MAAM;IAC/B,IAAI,OAAO,aAAa,EAAE,MAAM;KAC/B,EAAE,QAAQ;KACV,EAAE,aAAa;IAChB;GACD,CAAC;GACD,KAAK,iBAAiB,UAAU,UAAU,QAAQ,KAAK;GACvD,IAAI,MAAM,eAAe,iBAAiB,oBAAoB,CAAC;EAChE;EAEA,MAAM,sBAAsB,QAAgB;GAC3C,MAAM,cAAc,CAAC,GAAG;GACxB,MAAM,eAAe;EACtB;EAEA,MAAM,uBAAuB;GAAC;GAAc;GAAY;GAAS;GAAiB;GAAoB;GAAY;GAAc;EAAQ;EACxI,MAAM,sBAAsB,eAAe,CAC1C,GAAG,IAAI,IAAI,MAAM,cAAc,SAAS,WAAY,OAAO,OAAO,QAAQ,SAAS,WAAW,CAAC,OAAO,OAAO,IAAI,IAAI,CAAA,CAAG,CAAC,CAAC,CAC1H;EACD,MAAM,uBAAuB,eAAe,CAC3C,GAAG,IAAI,IAAI,MAAM,aAAa,SAAS,WAAW,CAAC,OAAO,MAAM,OAAO,UAAU,CAAC,CAAC,QAAQ,SAAS,OAAO,SAAS,QAAQ,CAAC,CAAC,CAAC,CAC/H;EACD,MAAM,uBAAuB,eAAe;GAC3C,MAAM,QAAQ,MAAM,YAAY;GAChC,OAAQ,UAAU,KAAA,KAAa,UAAU,MAAO,MAAM,kBAAkB,SAAS;EAClF,CAAC;EAED,YACO,MAAM,eACN;GACL,iBAAiB;EAClB,GACA,EAAE,MAAM,KAAK,CACd;EAEA,YACO,MAAM,iBACN;GAEL,OAAO,QAAQ,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;IACxD,MAAM,YAAY,OAAO;GAC1B,CAAC;EACF,GACA,EAAE,MAAM,KAAK,CACd;EAEA,YACO,MAAM,YACN;GACL,IAAI,CAAC,MAAM,cAAc,MAAM,aAC9B,OAAO,YAAY;EAErB,GACA,EAAE,MAAM,KAAK,CACd;EAEA,aAAa,cAAc;GAC1B,MAAM,UAAU,WAAW;GAC3B,IAAI,SAAS;IACZ,MAAM,WAAW,IAAI,gBAAgB,YAAY;KAChD,KAAK,MAAM,SAAS,SAAS;MAC5B,MAAM,EAAE,OAAO,WAAW,MAAM;MAChC,MAAM,eAAe,MAAM,eAAe;MAC1C,MAAM,aAAa;MACnB,MAAM,cAAc;MACpB,IAAI,cAAc,iBAAiB,mBAAmB,CAAC;KACxD;IACD,CAAC;IACD,SAAS,QAAQ,OAAO;IAExB,gBAAgB,SAAS,WAAW,CAAC;GACtC;EACD,CAAC;EAED,sBAAsB;GACrB,oBAAoB,OAAO,cAAc;GACzC,mBAAmB,OAAO,cAAc;EACzC,CAAC;EAED,UAAU,YAAY;GACrB,MAAM,YAAY,aAAa;GAC/B,kBAAkB;GAElB,OAAO,QAAQ,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;IACxD,MAAM,YAAY,OAAO;GAC1B,CAAC;GACD,MAAM,YAAY;GAClB,iBAAiB;GACjB,IAAI,CAAC,MAAM,cAAc,MAAM,aAAa,MAAM,YAAY;EAC/D,CAAC;EAED,kBAAkB;GAEjB,2BAA2B;EAC5B,CAAC;EAED,MAAM,eAAe,SAAS,OAAO,YAAY;GAAC;GAAQ;GAAc;GAAuB;EAAe,CAAC;EAE/G,gBAAU,YAAA,OAAA;GAAA,OAEH;GAAU,SACR;IAAC;IAAY,YAAY,WAAW;IAAS,aAAa,MAAM;IAAY,EAAE,qBAAqB,MAAM,QAAQ;GAAC;GAAC,SACnH;IACN,oBAAoB,MAAM,aAAa,GAAG,MAAM,WAAU,MAAO;IACjE,qBAAqB,MAAM,cAAc,GAAG,MAAM,YAAW,MAAO;GACrE;EAAC,GAAA;GAAA,YAAA,yBAAA;IAAA,QAIM,MAAM,cAAc,MAAM;IAAU,mBACzB,MAAM;IAAe,wBAChB,MAAM;IAAoB,QAC1C,MAAM;IAAc,UAClB;IAAW,SACZ;GAAU,GANT,KAAK,OAAO,oBAAoB,KAAK,CAAC;GAQ9C,MAAM,aAAS,YAAA,OAAA,EAAA,SAAA,2BAAA,GAAA,CACwB,MAAM,UAAU;IAAE,QAAQ;IAAa,GAAG,qBAAqB,KAAK;GAAE,CAAC,CAAC,CAAA;GAC/G,YAAA,OAAA,EAAA,SAAA,yBAAA,GAAA;IAEC,MAAM,cAAU,YAAA,OAAA,EAAA,SAAA,wBAAA,GAAA,CAAA,YAAA,OAAA,EAAA,SAAA,6BAAA,GAAA,CAE0B,MAAM,SAAS;KAAE,QAAQ;KAAa,GAAG,qBAAqB,KAAK;IAAE,CAAC,CAAC,CAAA,GAAA,YAAA,OAAA,EAAA,SAAA,8BAAA,GAAA,CAE9G,MAAM,WAAO,YAAA,UAAA,MAAA;KAAA,YAAA,OAAA,EAAA,SAAA,0CAAA,GAAA,CAAA,YAAA,SAAA;MAAA,SAAA;MAAA,YAKA,MAAM;MAAO,cACX;MAAM,eAAA;MAAA,cAEL,MAAM,YAAY;MAAW,kBAAA,EAAA,QAAA,KAAA;MAAA,wBAAA,WAA7B,MAAM,YAAY,cAAW;MAAA,aAC/B,qBAAqB;MAAK,wBACf,MAAwB;OAC7C,MAAM,oBAAoB,EAAE;MAC7B;MAAC,0BACuB;OACvB,MAAM,oBAAoB;MAC3B;MAAC,YACS;KAAW,GAAA,IAAA,GAAA,YAAA,OAAA,EAAA,SAAA,kDAAA,GAAA,CAGpB,MAAM,YAAY,aAClB,MAAM,iBAAiB,CAAA,CAAA,CAAA;KAGzB,MAAM,cAAc,CAAC,MAAM,kBAAc,YAAA,cAAA,WAAA,EAIvC,UAAU,YAAW,GAAA;MAAA,SAAA;MAAA,eAAA;MAAA,YAIZ,MAAM;MAAO,QAAA;MAAA,cAEf,MAAM,YAAY;MAAc,wBAAA,WAAhC,MAAM,YAAY,iBAAc;MAAA,eAC3B,6BAA6B,MAAM,gBAAgB;MAAC,aACtD,yBAAyB,MAAM,gBAAgB;MAAC,eAAA;MAAA,aAEhD;MAAK,aAAA;MAAA,sBAEI,CAAC,KAAK;MAAC,gBAAA;KAAA,CAAA,GAAA,IAAA;KAI5B,MAAM,cAAU,YAAA,UAAA;MAAA,WAEN,MAAM;MAAO,eACT;MAAK,SAAA;MAAA,UAAA;MAAA,QAGZ;MAAO,WACJ;KAAW,GAAA,IAAA;KAGrB,MAAM,aAAa,MAAM,cAAc,SAAS,KAAC,YAAA,UAAA;MAAA,WAEvC,MAAM;MAAO,eACT;MAAK,SACX,MAAM,aAAa,UAAU;MAAO,UAAA;MAAA,QAErC;MAAM,iBACI,MAAM,aAAa,CAAC,MAAM;KAAW,GAAA,IAAA;KAGtD,MAAM,oBAAoB,MAAM,WAAO,YAAA,YAAA;MAAA,SAAA;MAAA,WAAA;KAAA,GAAA;MAGrC,eAAS,YAAA,UAAA;OAAA,WAAyB,MAAM;OAAO,eAAe;OAAK,UAAA;OAAA,QAAe;MAAO,GAAA,IAAA;MACzF,gBAAU,YAAA,gBAAA,MAAA,EAAA,eAAA,CAEP,MAAM,gBAAgB,GAAC,YAAA,gBAAA;OAAA,SAAA;OAAA,WAAA;OAAA,iBAC6B,iBAAiB,OAAO,KAAK;MAAC,GAAA,EAAA,eAAA,CAAA,gBAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA;KAIpF,CAAA;KAIH,MAAM,aAAa;MAAE,QAAQ;MAAa,GAAG,qBAAqB,KAAK;KAAE,CAAC;KAC1E,MAAM,iBAAa,YAAA,YAAA;MAAA,SAAA;MAAA,WAAA;KAAA,GAAA;MAGjB,eAAS,YAAA,UAAA;OAAA,WACW,MAAM;OAAO,eAAe;OAAK,UAAA;OAAA,QAAe;MAAI,GAAA,IAAA;MAExE,gBAAU,YAAA,gBAAA,MAAA,EAAA,eAAA,CAEP,MAAM,gBAAgB;OAAE,QAAQ;OAAa,GAAG,qBAAqB,KAAK;MAAE,CAAC,CAAC,EAAA,CAAA;KAEhF,CAAA;IAGH,CAAA,CAEF,CAAA,CAAA,CAAA;IAGH,eAAA,YAAA,SAAA,WAEI,aAAa,OAAK;KAAA,OACjB;KAAQ,wBAES,MAAM;KAAW,QACjC,MAAM;KAAS,cACT;KAAgB,uBACP;KAAyB,iBAC/B;KAAmB,sBACd;KAAqB,iBAC1B;KAAgB,YACrB;KAAY,gBACR;KAAe,oBACX;KAAmB,oBACnB;KAAmB,uBAChB,KAAiB,QAAoC,MAA4B,UACrG,KAAK,kBAAkB,KAAK,QAAQ,MAAM,KAAK;KAAC,uBAE5B,KAAiB,QAAoC,MAA4B,UACrG,KAAK,kBAAkB,KAAK,QAAQ,MAAM,KAAK;KAAC,iBAElC,KAAiB,QAAoC,MAA4B,UAC/F,KAAK,aAAa,KAAK,QAAQ,MAAM,KAAK;KAAC,oBAE1B,KAAiB,QAAoC,MAA4B,UAClG,KAAK,gBAAgB,KAAK,QAAQ,MAAM,KAAK;KAAC,uBAE1B,KAAiB,QAAoC,MAA4B,UACrG,KAAK,mBAAmB,KAAK,QAAQ,MAAM,KAAK;KAAC,gBAEpC,KAAiB,QAA2C,UAAiB;MAC1F,IAAI,QAAQ,KAAK,YAAY,KAAK,QAAQ,KAAK;KAChD;KAAC,sBACmB,KAAiB,QAA2C,UAAiB;MAChG,IAAI,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,KAAK;KACtD;KAAC,mBACgB,KAAiB,QAA2C,UAAiB;MAC7F,IAAI,QAAQ,KAAK,eAAe,KAAK,QAAQ,KAAK;KACnD;KAAC,mBACgB,QAAoC,UAAiB,KAAK,eAAe,QAAQ,KAAK;KAAC,yBACjF,QAAoC,UAAiB,KAAK,qBAAqB,QAAQ,KAAK;KAAC,oBAClG,eAAyC,KAAK,gBAAgB,UAAU;KAAC,oBACzE,KAAiB,aAAqC,KAAK,gBAAgB,KAAK,QAAQ;KAAC,aAChG,SAAoD,KAAK,UAAU,IAAI;IAAC,CAAA,GAAA;KAGlF,cAAc,MAAM,SAAS;KAC7B,aAAO,YAAA,OAAA,EAAA,SAAA,kBAAA,GAAA,CAEJ,MAAM,QACN,MAAM,MAAM,IAAC,YAAA,UAAA,MAAA,CAAA,YAAA,QAAA,MAAA,EAAA,eAAA,CAAA,YAAA,SAAA,MAAA,IAAA,CAAA,EAAA,CAAA,GAAA,YAAA,OAAA,MAAA,CAAA,gBAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAQb,CAAA;KAGH,eAAS,YAAA,UAAA,MAAA;MAAA,YAAA,eAAA;OAAA,aAAA;OAAA,QAAA;OAAA,SAAA;OAAA,SAOL,MAAM,gBAAgB,YAAY,MAAM,gBAAgB,YAAY,MACjE,MAAM,gBAAgB,YAAY,MAAM,gBAAgB,YAAY,MACnE,KACA,KACD;OAAE,SAAA;OAAA,SAGC;OAAW,uBACG;OAAK,aACf;OAAK,aAAA;MAAA,GAAA,IAAA;MAAA,YAAA,eAAA;OAAA,aAAA;OAAA,QAAA;OAAA,SAAA;OAAA,SAOT;OAAE,SAAA;OAAA,oBAAA;OAAA,uBAGY;OAAK,aACf;OAAK,aAAA;OAAA,cAEJ,MAAM;MAAa,GAAA,IAAA;MAE/B,MAAM,aAAS,YAAA,eAAA;OAAA,SAAA;OAAA,SAGP,MAAM;OAAoB,eAAA;OAAA,SAAA;OAAA,uBAGZ;OAAK,aAAA;OAAA,aAEf;OAAK,aAAA;MAAA,GAAA;OAIf,cAAQ,YAAA,OAAA,EAAA,SAAA,yGAAA,GAAA,CAAA,YAAA,QAAA,MAAA,CAAA,gBAAA,IAAA,CAAA,CAAA,CAAA,CAAA;OAKR,UAAU,EAAE,KAAK,QAAQ,aAAuE,YAAA,OAAA,EAAA,SAAA,2FAAA,GAAA,CAE7F,MAAM,YAAY;QAClB;QACA;QACA;QACA,QAAQ;QACR,GAAG,qBAAqB,KAAK;OAC9B,CAAC,CAAC,CAAA;MAEH,CAAA;MAIH,MAAM,aAAa,WAAW,IAC5B,MAAM,UAAU,IAChB,MAAM,aAAa,KAClB,QACA,IAAI,SACH,IAAI,SAAS,WAAQ,YAAA,eAAA,WACF,KAAG;OAAA,SAAS;OAAE,SAAS,IAAI,SAAS;OAAM,aAAa;MAAK,CAAA,GAAA,EAE7E,UAAU,EACT,KACA,QACA,aAKA,YAAA,UAAA,MAAA,CAEE,IAAI,SAAS;OAAE;OAAK;OAAQ;OAAQ,GAAG,qBAAqB,KAAK;MAAE,CAAC,GACpE,IAAI,QACJ,MAAM,IAAI,KAAK,GAAG;OACjB;OACA;OACA;OACA,GAAG,qBAAqB,KAAK;MAC9B,CAAC,CAAC,CAAA,EAEJ,CAAA,IAIH,IAAI,QAAI,YAAA,qBAAA,WAGF,KAAK,KAAK,oBAAoB,GAAC;OAAA,aACxB,MAAM;OAAS,aACf;OAAI,kBACC;OAAkB,qBACf;MAAqB,CAAA,GALhC,KAAK,OAAO,qBAAqB,KAAK,CAAC,EASpD;KAAC,CAAA;IAEJ,CAAA,GAAA,CAAA,CAAA,iBAAA,SAAA,GApKQ,MAAM,OAAO,CAAA,CAAA;IAAA,YAAA,OAAA,EAAA,SAAA,wBAAA,GAAA,CAAA,YAAA,OAAA,EAAA,SAAA,8BAAA,GAAA,CAwKmB,MAAM,SAAS;KAAE,QAAQ;KAAa,GAAG,qBAAqB,KAAK;IAAE,CAAC,CAAC,CAAA,GAChH,MAAM,aACN,MAAM,WAAW;KAChB,WAAW,MAAM,gBAAgB;KACjC,UAAU,MAAM,gBAAgB;KAChC,WAAW,MAAM,gBAAgB;KACjC;KACA;IACD,CAAC,IAAC,YAAA,UAAA,MAAA,CAGA,MAAM,aAAU,YAAA,yBAAA;KAAA,aAEJ,MAAM;KAAS,gBACZ;KAAgB,mBACb;IAAsB,GAAA,IAAA,IAAA,YAAA,cAAA;KAAA,SAAA;KAAA,QAAA;KAAA,UAAA;KAAA,SAGqC,MAAM,UAAU;IAAM,GAAA,IAAA,CACnG,CAAA,CAEF,CAAA;GAAA,CAAA;GAGF,MAAM,gBAAY,YAAA,eAAA;IAAA,sBAAA;IAAA,oBAAA;IAAA,cAAA;IAAA,gBAAA;IAAA,iBAMD,MAAM,eAAe;IAAM,WAClC,MAAM;GAAW,GAAA,IAAA;GAG3B,MAAM,oBAAgB,YAAA,kCAAA;IAAA,OAAsC;IAAgB,UAAU,MAAM;GAAa,GAAA,IAAA;EAAI,CAAA,CAE/G;EAED,OAAO,UAAU,QAAQ;;GAExB,gBAAgB,eAAe,SAAS,OAAO,cAAc;;GAE7D,kBAAkB,eAAe,SAAS,OAAO,gBAAgB;;GAEjE,sBAAsB,eAAe,SAAS,OAAO,oBAAoB;;GAEzE,oBAAoB,eAAe,SAAS,OAAO,kBAAkB;;GAErE,oBAAoB,eAAe,SAAS,OAAO,kBAAkB;;GAErE,oBAAoB,eAAe,SAAS,OAAO,kBAAkB;;GAErE,eAAe,eAAe,SAAS,OAAO,aAAa;;GAE3D,WAAW,eAAe,SAAS,OAAO,SAAS;;GAEnD,aAAa,eAAe,SAAS,OAAO,WAAW;;GAEvD,UAAU,eAAe,SAAS,OAAO,QAAQ;;GAEjD,MAAM,eAAe,SAAS,OAAO,IAAI;;GAEzC,UAAU,eAAe,SAAS,OAAO,QAAQ;;GAEjD,cAAc,eAAe,SAAS,OAAO,YAAY;;GAEzD,eAAe,eAAe,SAAS,OAAO,aAAa;;GAE3D,SAAS,eAAe,SAAS,OAAO,OAAO;;GAE/C,mBAAmB,eAAe,SAAS,OAAO,iBAAiB;;GAEnE,SAAS,SAAS;IAAE,WAAW,MAAM;IAAS,KAAK;GAAiB,CAAC;;GAErE,WAAW,eAAe,MAAM,SAAS;;GAEzC,iBAAiB,eAAe,MAAM,eAAe;;GAErD,aAAa,eAAe,MAAM,WAAW;;GAE7C,UAAU,eAAe,MAAM,QAAQ;;GAEvC,cAAc,eAAe,MAAM,YAAY;;GAE/C,iBAAiB,eAAe,MAAM,eAAe;;GAErD,8BAA8B,eAAe,MAAM,4BAA4B;;GAE/E,YAAY,eAAe,MAAM,UAAU;;GAE3C,aAAa,eAAe,MAAM,WAAW;;GAE7C;;GAEA,SAAS;;GAET,OAAO;;GAEP;;GAEA;EACD,CAAC;CACF;AACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/src/table.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onActivated, onBeforeUnmount, onMounted, shallowRef, watch, watchEffect } from \"vue\";\nimport { Eleme, More, Refresh, Search, Setting } from \"@element-plus/icons-vue\";\nimport {\n\tElButton,\n\tElDatePicker,\n\tElDropdown,\n\tElDropdownItem,\n\tElDropdownMenu,\n\tElIcon,\n\tElImageViewer,\n\tElInput,\n\tElPagination,\n\tElTable,\n\tElTableColumn,\n} from \"element-plus\";\nimport { NotData } from \"@fast-element-plus/icons-vue\";\nimport { tableProps } from \"../../../internal/props\";\nimport {\n\tcreateDateRangeShortcuts,\n\tcreateOneMonthRangeFromToday,\n\tdebounce,\n\tdefinePropType,\n\tmakeSlots,\n\tomit,\n\tpick,\n\trandomString,\n\tuseExpose,\n\tuseProps,\n\tuseRender,\n} from \"../../../utils\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableColumn from \"./tableColumn\";\nimport FaTableColumnsSettingDialog from \"./tableColumnSettingDialog\";\nimport FaTablePagination from \"./tablePagination\";\nimport FaTableSearchForm from \"./tableSearchForm\";\nimport { useTable } from \"./useTable\";\nimport type { TableColumnCtx, TableProps } from \"element-plus\";\nimport type { PropType } from \"vue\";\nimport type { FaLayoutGridBreakpoint } from \"../../layoutGrid\";\nimport type { PagedInput, PagedResult, PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableDataRange, FaTableDefaultSlotsResult } from \"./table.type\";\n\nexport { tableProps } from \"../../../internal/props\";\nexport type { TreeProps } from \"../../../internal/props\";\n\n/** FaTable 的运行时 Props 定义 */\nexport const faTableProps = {\n\t...tableProps,\n\t/** whether Table has vertical border */\n\tborder: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** whether current row is highlighted */\n\thighlightCurrentRow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** key of row data, used for optimizing rendering. Required if `reserve-selection` is on or display tree data. When its type is String, multi-level access is supported, e.g. `user.info.id`, but `user.info[0].id` is not supported, in which case `Function` should be used */\n\trowKey: {\n\t\ttype: [String, Function] as PropType<NonNullable<TableProps<DefaultRow>[\"rowKey\"]>>,\n\t\tdefault: \"id\",\n\t},\n\t/** 组件封装,原生的已经失效 method that returns rowspan and colspan */\n\tspanMethod: {\n\t\ttype: Function as PropType<TableProps<DefaultRow>[\"spanMethod\"]>,\n\t\tvalidator: () => {\n\t\t\tconsole.warn(\"[Fast:FaTable]\", \"'spanMethod' 属性,组件已经封装,外部使用会失效。\");\n\t\t\treturn false;\n\t\t},\n\t},\n\t/** 表格Key */\n\ttableKey: {\n\t\ttype: String,\n\t\tdefault: () => randomString(8),\n\t},\n\t/** 表格数据 */\n\tdata: {\n\t\ttype: definePropType<DefaultRow[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** 请求数据的函数 */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<DefaultRow> | DefaultRow[]>>(Function),\n\t},\n\t/** 接口请求数据回调 */\n\tdataCallback: {\n\t\ttype: definePropType<(data: PagedResult<DefaultRow> | DefaultRow[]) => void>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n\t/** 列配置 */\n\tcolumns: {\n\t\ttype: definePropType<FaTableColumnCtx[] | false>([Array, Boolean]),\n\t\tdefault: () => false,\n\t},\n\t/** 表格列改变 */\n\tcolumnsChange: {\n\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t},\n\t/** 搜索表单 Grid布局列配置 */\n\tsearchFormCols: {\n\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakpoint, number>>([String, Number, Object]),\n\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t},\n\t/** 折叠搜索 */\n\tcollapsedSearch: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 高级搜索抽屉 */\n\tadvancedSearchDrawer: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** 搜索表单 */\n\tsearchForm: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 头部卡片 */\n\theaderCard: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 刷新按钮 */\n\trefreshBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 搜索按钮 */\n\tsearchBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 列配置按钮 */\n\tcolumnSettingBtn: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** 头部卡片右侧功能按钮 */\n\ttoolBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 隐藏搜索时间 */\n\thideSearchTime: Boolean,\n\t/** 未来搜索时间 */\n\tfutureSearchTime: Boolean,\n\t/** 搜索时间范围 */\n\tdataSearchRange: {\n\t\ttype: definePropType<FaTableDataRange>(String),\n\t\tdefault: \"Past3D\",\n\t},\n\t/** 分页 */\n\tpagination: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 页码 */\n\tpageSizes: {\n\t\ttype: definePropType<number[]>(Array),\n\t\tdefault: [20, 30, 50, 100],\n\t},\n\t/** 隐藏图片 */\n\thideImage: Boolean,\n\t/** 单选 */\n\tsingle: Boolean,\n\t/** 行点击选择 */\n\trowClickSelection: Boolean,\n\t/** 将父级数据的 children 展开为表格行,并把父级字段合并到子项;Element Plus 树表无需启用 */\n\ttreeData: Boolean,\n\t/** 配置选项 */\n\tprops: {\n\t\ttype: definePropType<{ span?: string; children?: string }>(Object),\n\t\tdefault: () => ({\n\t\t\tspan: undefined,\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** 自动刷新,当传入 data 时候,如果存在更改则自动刷新 */\n\tautoRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * 等价于 Table-Column 的 selectable\n\t * function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\trowSelectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n};\n\n/** FaTable 的运行时 Emits 定义 */\nexport const faTableEmits = {\n\t/** 当用户手动勾选数据行的 Checkbox 时触发的事件 */\n\tselect: (selection: DefaultRow[], row: DefaultRow) => Array.isArray(selection) && typeof row === \"object\" && row !== null,\n\t/** 当用户手动勾选全选 Checkbox 时触发的事件 */\n\tselectAll: (selection: DefaultRow[]) => Array.isArray(selection),\n\t/** 当选择项发生变化时会触发该事件 */\n\tselectionChange: (newSelection: DefaultRow[]) => Array.isArray(newSelection),\n\t/** 当单元格 hover 进入时会触发该事件 */\n\tcellMouseEnter: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当单元格 hover 退出时会触发该事件 */\n\tcellMouseLeave: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被点击时会触发该事件 */\n\tcellClick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被双击击时会触发该事件 */\n\tcellDblclick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某个单元格被鼠标右键点击时会触发该事件 */\n\tcellContextmenu: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\tcell instanceof HTMLTableCellElement &&\n\t\tevent instanceof Event,\n\t/** 当某一行被点击时会触发该事件 */\n\trowClick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一行被鼠标右键点击时会触发该事件 */\n\trowContextmenu: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一行被双击时会触发该事件 */\n\trowDblclick: (row: DefaultRow, column: TableColumnCtx<DefaultRow>, event: Event) =>\n\t\ttypeof row === \"object\" && row !== null && typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一列的表头被点击时会触发该事件 */\n\theaderClick: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当某一列的表头被鼠标右键点击时触发该事件 */\n\theaderContextmenu: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** 当表格的排序条件发生变化的时候会触发该事件 */\n\tsortChange: (data: { column: TableColumnCtx<DefaultRow>; prop: string; order: \"\" | \"ascending\" | \"descending\" }) =>\n\t\ttypeof data === \"object\" && data !== null,\n\t/** column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件 */\n\tfilterChange: (newFilters: Record<string, string[]>) => typeof newFilters === \"object\" && newFilters !== null,\n\t/** 当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 highlight-current-row 属性 */\n\tcurrentChange: (currentRow: DefaultRow, oldCurrentRow: DefaultRow | null) =>\n\t\ttypeof currentRow === \"object\" &&\n\t\tcurrentRow !== null &&\n\t\t(oldCurrentRow === null || (typeof oldCurrentRow === \"object\" && oldCurrentRow !== null)),\n\t/** 当拖动表头改变了列的宽度的时候会触发该事件 */\n\theaderDragend: (newWidth: number, oldWidth: number, column: TableColumnCtx<DefaultRow>, event: MouseEvent) =>\n\t\ttypeof newWidth === \"number\" && typeof oldWidth === \"number\" && typeof column === \"object\" && column !== null && event instanceof MouseEvent,\n\t/** 当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded) */\n\texpandChange: (row: DefaultRow, expanded: boolean | DefaultRow[]) =>\n\t\ttypeof row === \"object\" && row !== null && (typeof expanded === \"boolean\" || Array.isArray(expanded)),\n\t/** 表格滚动时触发 */\n\tscroll: (data: { scrollLeft: number; scrollTop: number }) => typeof data === \"object\" && data !== null,\n\n\t/** 表格刷新事件 */\n\trefresh: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** 表格重置事件 */\n\treset: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** 分页页码改变事件 */\n\tsizeChange: (pageSize: number) => typeof pageSize === \"number\",\n\t/** 分页改变事件 */\n\tpaginationChange: (pageIndex: number, pageSize: number) => typeof pageIndex === \"number\" && typeof pageSize === \"number\",\n\t/** 自定义单元格点击事件 */\n\tcustomCellClick: (\n\t\temitName: string,\n\t\t{ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult\n\t) =>\n\t\t(emitName == null || typeof emitName === \"string\") &&\n\t\ttypeof row === \"object\" &&\n\t\trow !== null &&\n\t\ttypeof column === \"object\" &&\n\t\tcolumn !== null &&\n\t\ttypeof $index === \"number\",\n};\n\n/** FaTable 的插槽参数 */\nexport type FaTableSlots = Record<string, unknown> & {\n\t/** 默认内容插槽 */\n\tdefault: never;\n\t/** 插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。 */\n\tappend: never;\n\t/** 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** 表格顶部插槽 */\n\ttopHeader: FaTableDefaultSlotsResult;\n\t/** 表格头部左侧插槽 */\n\theader: FaTableDefaultSlotsResult;\n\t/** 表格头部右侧功能按钮插槽 */\n\ttoolButton: FaTableDefaultSlotsResult;\n\t/** 表格头部右侧高级操作按钮插槽,ElDropdownMenuItem 标签 */\n\ttoolButtonAdv: FaTableDefaultSlotsResult;\n\t/** 表格操作列插槽 */\n\toperation: FaTableDefaultSlotsResult & {\n\t\trow: DefaultRow;\n\t\tcolumn: FaTableColumnCtx;\n\t\t$index: number;\n\t};\n\t/** 表格分页插槽 */\n\tpagination: {\n\t\tpageIndex: number;\n\t\tpageSize: number;\n\t\ttotalRows: number;\n\t\thandleSizeChange: (val: number) => void;\n\t\thandlePaginationChange: (val: number) => void;\n\t};\n\t/** 表格页脚插槽 */\n\tfooter: FaTableDefaultSlotsResult;\n\t/** 列配置 */\n\tcolumnSetting: never;\n} & Record<\n\t\tstring,\n\t\tFaTableDefaultSlotsResult & {\n\t\t\t/** slots为表格内容的时候才会返回 */\n\t\t\trow?: DefaultRow;\n\t\t\t/** slot为表头内容的时候返回 'TableColumnCtx<DefaultRow>' 否则返回 'FaTableColumnCtx' */\n\t\t\tcolumn?: TableColumnCtx<DefaultRow> | FaTableColumnCtx;\n\t\t\t/** slot为非搜索项的时候才会返回 */\n\t\t\t$index?: number;\n\t\t\t/** slot为搜索项的时候才会返回 */\n\t\t\tsearch?: () => Promise<void>;\n\t\t}\n\t>;\n\nexport default defineComponent({\n\tname: \"FaTable\",\n\tprops: faTableProps,\n\temits: faTableEmits,\n\tslots: makeSlots<FaTableSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst columnSettingRef = shallowRef<InstanceType<typeof FaTableColumnsSettingDialog> | null>(null);\n\n\t\tconst {\n\t\t\tglobalSize,\n\t\t\tstate,\n\t\t\telementRef,\n\t\t\ttableRef,\n\t\t\thandleTableColumnAutoWidth,\n\t\t\tloadTableColumns,\n\t\t\thandleSizeChange,\n\t\t\thandlePaginationChange,\n\t\t\tdefaultSearchTime,\n\t\t\ttableSearch,\n\t\t\ttableReset,\n\t\t\tdoRender,\n\t\t\tsetManualLoading,\n\t\t\tdoLoading,\n\t\t\thandleCustomCellClick,\n\t\t} = useTable(props, slots, emit);\n\n\t\tconst notifyColumnsChange = debounce(() => props.columnsChange?.(state.orgColumns), 500);\n\t\tconst resizeTableColumns = debounce(handleTableColumnAutoWidth, 100);\n\n\t\tconst unmountedError = new Error(\"FaTable 已卸载,列布局任务已取消。\");\n\t\tconst reportColumnTask = (task: Promise<unknown>) => {\n\t\t\ttask.catch((error: unknown) => {\n\t\t\t\tif (error !== unmountedError) console.error(\"FaTable 列更新失败。\", error);\n\t\t\t});\n\t\t};\n\n\t\tlet lastRowIndex = 0;\n\t\tconst getInitParam = (): Record<string, unknown> => {\n\t\t\treturn typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {};\n\t\t};\n\t\tconst getRowKey = (row: DefaultRow) => {\n\t\t\tconst value: unknown = typeof props.rowKey === \"function\" ? props.rowKey(row) : tableUtil.handleRowAccordingToProp(row, props.rowKey);\n\t\t\treturn typeof value === \"string\" || typeof value === \"number\" ? value : undefined;\n\t\t};\n\n\t\tconst indexMethod = (index: number) => {\n\t\t\tif (index === 0) {\n\t\t\t\tlastRowIndex = 0;\n\t\t\t}\n\t\t\tif (state.spanColumns.length > 0) {\n\t\t\t\tconst rowspan = state.tableSpanData[\"__table-index\"]?.[index] ?? 0;\n\t\t\t\tif (rowspan === 0) {\n\t\t\t\t\treturn lastRowIndex + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize + 1;\n\t\t\t\t} else {\n\t\t\t\t\tlastRowIndex++;\n\t\t\t\t\treturn lastRowIndex + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn index + (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize + 1;\n\t\t};\n\n\t\tconst handleSelect = (selection: DefaultRow[], row: DefaultRow) => {\n\t\t\t// 判断是否开启了单选\n\t\t\tif (props.single) {\n\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\tif (selection.length > 0) {\n\t\t\t\t\ttableRef.value?.toggleRowSelection(row);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"select\", selection, row);\n\t\t};\n\n\t\tconst handleSelectAll = (selection: DefaultRow[]) => {\n\t\t\tif (props.single) {\n\t\t\t\t// 判断是否已经选中数据\n\t\t\t\tif (state.selected) {\n\t\t\t\t\t// 默认选中的第一行\n\t\t\t\t\tif (state.tableData.length > 0) {\n\t\t\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\t\t\tconst firstRow = state.tableData[0];\n\t\t\t\t\t\tif (firstRow) tableRef.value?.toggleRowSelection(firstRow);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttableRef.value?.clearSelection();\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"selectAll\", selection);\n\t\t};\n\n\t\tconst handleSelectionChange = (newSelection: DefaultRow[]) => {\n\t\t\tnewSelection.length === 0 ? (state.selected = false) : (state.selected = true);\n\t\t\t// 判断是否为单选\n\t\t\tif (props.single && newSelection.length > 0) {\n\t\t\t\t// 这里获取最后一个是因为选中改变的事件会触发多次,会带入旧的数据\n\t\t\t\tconst lastSelection = newSelection.at(-1);\n\t\t\t\tstate.selectedList = lastSelection === undefined ? [] : [lastSelection];\n\t\t\t} else {\n\t\t\t\tstate.selectedList = newSelection;\n\t\t\t}\n\t\t\t// 如果已经取消选择了,那么部分选择也应该要取消\n\t\t\tstate.indeterminateSelectedListIds = state.indeterminateSelectedListIds.filter((f) => state.selectedListIds.some((s) => s === f));\n\t\t\temit(\"selectionChange\", state.selectedList);\n\t\t};\n\n\t\tconst toggleRowIndeterminateSelection = (row: DefaultRow, selected?: boolean) => {\n\t\t\tconst rowKey = getRowKey(row);\n\t\t\tif (rowKey === undefined) return;\n\t\t\tconst curRow = state.tableData.find((item) => getRowKey(item) === rowKey);\n\t\t\tif (selected === true) {\n\t\t\t\tif (!state.indeterminateSelectedListIds.some((s) => s === rowKey)) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.push(rowKey);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow, true);\n\t\t\t} else if (selected === false) {\n\t\t\t\tconst fIndex = state.indeterminateSelectedListIds.findIndex((f) => f === rowKey);\n\t\t\t\tif (fIndex >= 0) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.splice(fIndex, 1);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow, false);\n\t\t\t} else {\n\t\t\t\tconst fIndex = state.indeterminateSelectedListIds.findIndex((f) => f === rowKey);\n\t\t\t\tif (fIndex >= 0) {\n\t\t\t\t\tstate.indeterminateSelectedListIds.splice(fIndex, 1);\n\t\t\t\t} else {\n\t\t\t\t\tstate.indeterminateSelectedListIds.push(rowKey);\n\t\t\t\t}\n\t\t\t\tif (curRow) tableRef.value?.toggleRowSelection(curRow);\n\t\t\t}\n\t\t};\n\n\t\tconst handleSortChange = ({\n\t\t\tcolumn,\n\t\t\tprop,\n\t\t}: {\n\t\t\tcolumn: TableColumnCtx<DefaultRow> & { multiOrder?: \"\" | \"ascending\" | \"descending\" };\n\t\t\tprop: string | null;\n\t\t\torder: \"\" | \"ascending\" | \"descending\" | null;\n\t\t}) => {\n\t\t\tconst normalizedProp = prop ?? column.property;\n\t\t\tif (!column.multiOrder) {\n\t\t\t\tcolumn.multiOrder = \"descending\";\n\t\t\t} else if (column.multiOrder === \"descending\") {\n\t\t\t\tcolumn.multiOrder = \"ascending\";\n\t\t\t} else {\n\t\t\t\tcolumn.multiOrder = undefined;\n\t\t\t}\n\t\t\t// 排序集合非空判断\n\t\t\tconst initSortList: unknown = getInitParam()[\"sortList\"];\n\t\t\tstate.searchParam.sortList = [\n\t\t\t\t...(Array.isArray(initSortList) ? (initSortList as PagedSortInput[]) : []),\n\t\t\t\t...(state.searchParam.sortList ?? []),\n\t\t\t].filter((item, index, list) => list.findIndex((candidate) => candidate.enField === item.enField) === index);\n\n\t\t\t// 去原来的列中查找表格的列数据\n\t\t\tconst orgColumn = state.orgColumns.find((f) => f.prop === normalizedProp);\n\t\t\tconst enField = orgColumn?.sortableField ?? orgColumn?.prop ?? column.property;\n\t\t\tconst fieldIndex = state.searchParam.sortList.findIndex((f: PagedSortInput) => f.enField === enField);\n\t\t\tif (!column.multiOrder && fieldIndex >= 0) {\n\t\t\t\t// 如果是空的,删除排序\n\t\t\t\tstate.searchParam.sortList.splice(fieldIndex, 1);\n\t\t\t} else if (fieldIndex === -1) {\n\t\t\t\tstate.searchParam.sortList.push({\n\t\t\t\t\tenField,\n\t\t\t\t\tcnField: column.label,\n\t\t\t\t\tmode: column.multiOrder,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst sortItem = state.searchParam.sortList[fieldIndex];\n\t\t\t\tif (sortItem) sortItem.mode = column.multiOrder;\n\t\t\t}\n\t\t\t// 判断最后的排序集合中是否还存在数据,如果不存在,则删除排序集合\n\t\t\tif (state.searchParam.sortList.length === 0) {\n\t\t\t\tdelete state.searchParam.sortList;\n\t\t\t}\n\t\t\temit(\"sortChange\", { column, prop: normalizedProp, order: column.multiOrder ?? \"\" });\n\t\t\ttableSearch();\n\t\t};\n\n\t\tconst handleCurrentChange = (currentRow: DefaultRow | null, oldCurrentRow: DefaultRow | null) => {\n\t\t\tif (!currentRow) {\n\t\t\t\t// 这里为空的时候,会导致 Header 中的不确定状态还是true的状态\n\t\t\t\t// tableRef.value.clearSelection();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (props.rowClickSelection) {\n\t\t\t\t// 判断是否为单选\n\t\t\t\tif (props.single && oldCurrentRow) {\n\t\t\t\t\ttableRef.value?.toggleRowSelection(oldCurrentRow);\n\t\t\t\t}\n\t\t\t\ttableRef.value?.toggleRowSelection(currentRow);\n\t\t\t}\n\t\t\temit(\"currentChange\", currentRow, oldCurrentRow);\n\t\t};\n\n\t\tconst handleCellClassName = ({\n\t\t\trow,\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow>;\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\tlet localCellClassName = \"\";\n\t\t\t// 判断是否为选择列\n\t\t\tif (column.type === \"selection\") {\n\t\t\t\t// 判断是否在部分选中的集合中\n\t\t\t\tconst rowKey = getRowKey(row);\n\t\t\t\tif (state.indeterminateSelectedListIds.some((s) => s === rowKey)) {\n\t\t\t\t\tlocalCellClassName = \"fa-table__selection-column__indeterminate\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst columnInfo = state.tableColumns.find((f) => f.prop === column.property);\n\t\t\tif (columnInfo?.dataDeleteField) {\n\t\t\t\tif (row[columnInfo.dataDeleteField] === true) {\n\t\t\t\t\tif (localCellClassName) {\n\t\t\t\t\t\tlocalCellClassName += \" fa-table__data-delete-column\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalCellClassName = \"fa-table__data-delete-column\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.cellClassName) {\n\t\t\t\tconst cellClassName =\n\t\t\t\t\ttypeof props.cellClassName === \"string\" ? props.cellClassName : props.cellClassName({ row, column, rowIndex, columnIndex });\n\t\t\t\tif (!cellClassName) {\n\t\t\t\t\treturn localCellClassName;\n\t\t\t\t}\n\t\t\t\tif (localCellClassName) {\n\t\t\t\t\treturn `${localCellClassName} ${cellClassName}`;\n\t\t\t\t} else {\n\t\t\t\t\treturn cellClassName;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn localCellClassName;\n\t\t\t}\n\t\t};\n\n\t\tconst handleHeaderCellClassName = ({\n\t\t\trow,\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow> & { multiOrder?: \"\" | \"ascending\" | \"descending\" };\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\t// TODO:不晓得这里有无问题,EL 更新了还未测试\n\t\t\tcolumn.order = column.multiOrder === \"ascending\" || column.multiOrder === \"descending\" ? column.multiOrder : null;\n\t\t\tif (props.headerCellClassName) {\n\t\t\t\tif (typeof props.headerCellClassName === \"function\") {\n\t\t\t\t\treturn props.headerCellClassName({ row, column, rowIndex, columnIndex });\n\t\t\t\t} else {\n\t\t\t\t\treturn props.headerCellClassName;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\";\n\t\t};\n\n\t\tconst handleSpanMethod = ({\n\t\t\tcolumn,\n\t\t\trowIndex,\n\t\t}: {\n\t\t\trow: DefaultRow;\n\t\t\tcolumn: TableColumnCtx<DefaultRow>;\n\t\t\trowIndex: number;\n\t\t\tcolumnIndex: number;\n\t\t}) => {\n\t\t\t/** 原生的 span-method 会失效 */\n\t\t\tconst property = column.property as string | null | undefined;\n\t\t\tconst columnKey = column.columnKey as string | null | undefined;\n\t\t\tconst pKey = property ?? columnKey;\n\t\t\tif (pKey === undefined || pKey === null) return { rowspan: 1, colspan: 1 };\n\t\t\tif (state.spanColumns.findIndex((f) => f.prop === pKey) !== -1) {\n\t\t\t\tconst rowspan = state.tableSpanData[pKey]?.[rowIndex] ?? 0;\n\t\t\t\tif (rowspan > 0) {\n\t\t\t\t\treturn { rowspan, colspan: 1 };\n\t\t\t\t}\n\t\t\t\treturn { rowspan: 0, colspan: 0 };\n\t\t\t}\n\t\t\treturn { rowspan: 1, colspan: 1 };\n\t\t};\n\n\t\tconst handleHeaderDragend = (newWidth: number, oldWidth: number, column: TableColumnCtx<DefaultRow>, event: MouseEvent) => {\n\t\t\tstate.orgColumns.forEach((f) => {\n\t\t\t\tif (column.property === f.prop) {\n\t\t\t\t\tf.width = newWidth;\n\t\t\t\t\tf.smallWidth = newWidth;\n\t\t\t\t}\n\t\t\t});\n\t\t\temit(\"headerDragend\", newWidth, oldWidth, column, event);\n\t\t\tif (props.columnsChange) reportColumnTask(notifyColumnsChange());\n\t\t};\n\n\t\tconst handleImagePreview = (url: string) => {\n\t\t\tstate.previewList = [url];\n\t\t\tstate.imagePreview = true;\n\t\t};\n\n\t\tconst tableColumnOmitNames = [\"multiOrder\", \"columnId\", \"order\", \"sortableField\", \"disabledSortable\", \"spanProp\", \"pureSearch\", \"search\"];\n\t\tconst searchFormSlotNames = computed(() => [\n\t\t\t...new Set(state.searchColumns.flatMap((column) => (typeof column.search?.slot === \"string\" ? [column.search.slot] : []))),\n\t\t]);\n\t\tconst tableColumnSlotNames = computed(() => [\n\t\t\t...new Set(state.tableColumns.flatMap((column) => [column.slot, column.headerSlot].filter((name) => typeof name === \"string\"))),\n\t\t]);\n\t\tconst searchInputClearable = computed(() => {\n\t\t\tconst value = state.searchParam.searchValue;\n\t\t\treturn (value !== undefined && value !== \"\") || state.searchValueUpdate.length > 0;\n\t\t});\n\n\t\twatch(\n\t\t\t() => props.columns,\n\t\t\t() => {\n\t\t\t\tloadTableColumns();\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.initParam,\n\t\t\t() => {\n\t\t\t\t// 如果初始化参数改变了,则需要改变对应的搜索参数\n\t\t\t\tObject.entries(getInitParam()).forEach(([key, value]) => {\n\t\t\t\t\tstate.searchParam[key] = value;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.data,\n\t\t\t() => {\n\t\t\t\tif (!props.requestApi && props.autoRefresh) {\n\t\t\t\t\treturn tableSearch();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\twatchEffect((onCleanup) => {\n\t\t\tconst element = elementRef.value;\n\t\t\tif (element) {\n\t\t\t\tconst observer = new ResizeObserver((entries) => {\n\t\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\t\tconst { width, height } = entry.contentRect;\n\t\t\t\t\t\tconst widthChanged = state.tableWidth !== width;\n\t\t\t\t\t\tstate.tableWidth = width;\n\t\t\t\t\t\tstate.tableHeight = height;\n\t\t\t\t\t\tif (widthChanged) reportColumnTask(resizeTableColumns());\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobserver.observe(element);\n\n\t\t\t\tonCleanup(() => observer.disconnect());\n\t\t\t}\n\t\t});\n\n\t\tonBeforeUnmount(() => {\n\t\t\tnotifyColumnsChange.cancel(unmountedError);\n\t\t\tresizeTableColumns.cancel(unmountedError);\n\t\t});\n\n\t\tonMounted(async () => {\n\t\t\tstate.initParam = getInitParam();\n\t\t\tdefaultSearchTime();\n\t\t\t// 初始化搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\t\tObject.entries(getInitParam()).forEach(([key, value]) => {\n\t\t\t\tstate.searchParam[key] = value;\n\t\t\t});\n\t\t\tawait tableSearch();\n\t\t\tloadTableColumns();\n\t\t\tif (!props.requestApi && props.autoRefresh) await tableSearch();\n\t\t});\n\n\t\tonActivated(() => {\n\t\t\t// 解决 keep-alive 后自动列宽失效的问题\n\t\t\thandleTableColumnAutoWidth();\n\t\t});\n\n\t\tconst elTableProps = useProps(props, tableProps, [\"data\", \"spanMethod\", \"headerCellClassName\", \"cellClassName\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tref={elementRef}\n\t\t\t\tclass={[\"fa-table\", `fa-table-${globalSize.value}`, `fa-table__${props.tableKey}`, { fa__click__disabled: state.loading }]}\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--fa-table-width\": state.tableWidth ? `${state.tableWidth}px` : \"\",\n\t\t\t\t\t\"--fa-table-height\": state.tableHeight ? `${state.tableHeight}px` : \"\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<FaTableSearchForm\n\t\t\t\t\tvSlots={pick(slots, searchFormSlotNames.value)}\n\t\t\t\t\tshow={props.searchForm && state.searchForm}\n\t\t\t\t\tcollapsedSearch={props.collapsedSearch}\n\t\t\t\t\tadvancedSearchDrawer={props.advancedSearchDrawer}\n\t\t\t\t\tcols={props.searchFormCols}\n\t\t\t\t\tsearch={tableSearch}\n\t\t\t\t\treset={tableReset}\n\t\t\t\t/>\n\t\t\t\t{slots.topHeader && (\n\t\t\t\t\t<div class=\"el-card fa-table__header\">{slots.topHeader({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t)}\n\t\t\t\t<div class=\"el-card fa-table__main\">\n\t\t\t\t\t{props.headerCard && (\n\t\t\t\t\t\t<div class=\"fa-table__main-header\">\n\t\t\t\t\t\t\t<div class=\"fa-table__main-header-left\">{slots.header?.({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right\">\n\t\t\t\t\t\t\t\t{props.toolBtn && (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right__div-search\">\n\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-table__main-header-right__input-search\"\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tprefixIcon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"关键字搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\tvModel_trim={state.searchParam.searchValue}\n\t\t\t\t\t\t\t\t\t\t\t\tclearable={searchInputClearable.value}\n\t\t\t\t\t\t\t\t\t\t\t\tonCompositionupdate={(e: CompositionEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.searchValueUpdate = e.data;\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonCompositionend={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.searchValueUpdate = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={tableSearch}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__main-header-right__div-search__hidden\">\n\t\t\t\t\t\t\t\t\t\t\t\t{state.searchParam.searchValue}\n\t\t\t\t\t\t\t\t\t\t\t\t{state.searchValueUpdate}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{props.requestApi && !props.hideSearchTime && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t{...{\n\t\t\t\t\t\t\t\t\t\t\t\t\t// ElDatePicker 的 JSX 类型未声明 change 事件,运行时由内部 Picker 触发。\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange: tableSearch,\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-table__main-header-right__data-search\"\n\t\t\t\t\t\t\t\t\t\t\t\tpopperClass=\"fa-table__main-header-right__data-search__popper\"\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"daterange\"\n\t\t\t\t\t\t\t\t\t\t\t\tvModel={state.searchParam.searchTimeList}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultTime={createOneMonthRangeFromToday(props.futureSearchTime)}\n\t\t\t\t\t\t\t\t\t\t\t\tshortcuts={createDateRangeShortcuts(props.futureSearchTime)}\n\t\t\t\t\t\t\t\t\t\t\t\tvalueFormat=\"YYYY-MM-DD HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\t\tclearable={false}\n\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\tfallbackPlacements={[\"top\"]}\n\t\t\t\t\t\t\t\t\t\t\t\tunlinkPanels\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.refreshBtn && (\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\t\t\t\tcircle\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={tableSearch}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.searchBtn && state.searchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.searchForm ? \"隐藏搜索栏\" : \"显示搜索栏\"}\n\t\t\t\t\t\t\t\t\t\t\t\tcircle\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => (state.searchForm = !state.searchForm)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{props.columnSettingBtn && props.columns && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDropdown title=\"表格列配置\" trigger=\"click\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: () => <ElButton loading={state.loading} loadingIcon={Eleme} circle icon={Setting} />,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdropdown: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.columnSetting?.()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownItem title=\"表格列配置\" divided onClick={() => columnSettingRef.value?.open()}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t表格列配置\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t</ElDropdown>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{slots.toolButton?.({ search: tableSearch, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t{slots.toolButtonAdv && (\n\t\t\t\t\t\t\t\t\t\t\t<ElDropdown title=\"高级操作\" trigger=\"click\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton loading={state.loading} loadingIcon={Eleme} circle icon={More}></ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdropdown: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.toolButtonAdv?.({ search: tableSearch, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElDropdownMenu>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t</ElDropdown>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<ElTable\n\t\t\t\t\t\t{...elTableProps.value}\n\t\t\t\t\t\tref={tableRef}\n\t\t\t\t\t\tvLoading={state.loading}\n\t\t\t\t\t\telement-loading-text={state.loadingText}\n\t\t\t\t\t\tdata={state.tableData}\n\t\t\t\t\t\tspanMethod={handleSpanMethod}\n\t\t\t\t\t\theaderCellClassName={handleHeaderCellClassName}\n\t\t\t\t\t\tcellClassName={handleCellClassName}\n\t\t\t\t\t\tonSelection-change={handleSelectionChange}\n\t\t\t\t\t\tonSort-change={handleSortChange}\n\t\t\t\t\t\tonSelect={handleSelect}\n\t\t\t\t\t\tonSelect-all={handleSelectAll}\n\t\t\t\t\t\tonCurrent-change={handleCurrentChange}\n\t\t\t\t\t\tonHeader-dragend={handleHeaderDragend}\n\t\t\t\t\t\tonCell-mouse-enter={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellMouseEnter\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-mouse-leave={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellMouseLeave\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-click={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellClick\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-dblclick={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellDblclick\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonCell-contextmenu={(row: DefaultRow, column: TableColumnCtx<DefaultRow>, cell: HTMLTableCellElement, event: Event) =>\n\t\t\t\t\t\t\temit(\"cellContextmenu\", row, column, cell, event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRow-click={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowClick\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRow-contextmenu={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowContextmenu\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRow-dblclick={(row: DefaultRow, column: TableColumnCtx<DefaultRow> | null, event: Event) => {\n\t\t\t\t\t\t\tif (column) emit(\"rowDblclick\", row, column, event);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonHeader-click={(column: TableColumnCtx<DefaultRow>, event: Event) => emit(\"headerClick\", column, event)}\n\t\t\t\t\t\tonHeader-contextmenu={(column: TableColumnCtx<DefaultRow>, event: Event) => emit(\"headerContextmenu\", column, event)}\n\t\t\t\t\t\tonFilter-change={(newFilters: Record<string, string[]>) => emit(\"filterChange\", newFilters)}\n\t\t\t\t\t\tonExpand-change={(row: DefaultRow, expanded: boolean | DefaultRow[]) => emit(\"expandChange\", row, expanded)}\n\t\t\t\t\t\tonScroll={(data: { scrollLeft: number; scrollTop: number }) => emit(\"scroll\", data)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tappend: () => slots.append?.(),\n\t\t\t\t\t\t\tempty: () => (\n\t\t\t\t\t\t\t\t<div class=\"fa-table__empty\">\n\t\t\t\t\t\t\t\t\t{slots.empty ? (\n\t\t\t\t\t\t\t\t\t\tslots.empty()\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t<NotData />\n\t\t\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t<div>暂无数据</div>\n\t\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__index-column\"\n\t\t\t\t\t\t\t\t\t\ttype=\"index\"\n\t\t\t\t\t\t\t\t\t\tfixed=\"left\"\n\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\tstate.tablePagination.pageIndex * state.tablePagination.pageSize >= 100\n\t\t\t\t\t\t\t\t\t\t\t\t? state.tablePagination.pageIndex * state.tablePagination.pageSize >= 1000\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 40\n\t\t\t\t\t\t\t\t\t\t\t\t: 30\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\tindex={indexMethod}\n\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-index\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__selection-column\"\n\t\t\t\t\t\t\t\t\t\ttype=\"selection\"\n\t\t\t\t\t\t\t\t\t\tfixed=\"left\"\n\t\t\t\t\t\t\t\t\t\twidth={35}\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\treserveSelection\n\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-selection\"\n\t\t\t\t\t\t\t\t\t\tselectable={props.rowSelectable}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{state.tableColumns.length === 0\n\t\t\t\t\t\t\t\t\t\t? slots.default?.()\n\t\t\t\t\t\t\t\t\t\t: state.tableColumns.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(col) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tcol.show &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t(col.type === \"expand\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElTableColumn {...col} width={35} fixed={col.fixed ?? \"left\"} resizable={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow: DefaultRow;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: FaTableColumnCtx;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index: number;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{col.render?.({ row, column, $index, ...getTableDefaultSlots(state) })}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{col.slot &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[col.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(state),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol.prop && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableColumn\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvSlots={pick(slots, tableColumnSlotNames.value)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...omit(col, tableColumnOmitNames)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thideImage={props.hideImage}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresizable={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonImagePreview={handleImagePreview}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonCustomCellClick={handleCustomCellClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{slots.operation && (\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t\t\t\t\tfixed=\"right\"\n\t\t\t\t\t\t\t\t\t\t\twidth={state.operationColumnWidth}\n\t\t\t\t\t\t\t\t\t\t\theaderAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\talign=\"left\"\n\t\t\t\t\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fa-table__operation-column\"\n\t\t\t\t\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\t\t\t\t\tcolumnKey=\"__table-operation\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\theader: () => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__auto-width-column__cell-header __fa-table__auto-width-column__cell-header____table-operation\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>操作</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__auto-width-column__cell __fa-table__auto-width-column__cell____table-operation\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{slots.operation?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: tableSearch,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(state),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTable>\n\t\t\t\t\t<div class=\"fa-table__main-footer\">\n\t\t\t\t\t\t<div class=\"fa-table__main-footer__left\">{slots.footer?.({ search: tableSearch, ...getTableDefaultSlots(state) })}</div>\n\t\t\t\t\t\t{slots.pagination ? (\n\t\t\t\t\t\t\tslots.pagination({\n\t\t\t\t\t\t\t\tpageIndex: state.tablePagination.pageIndex,\n\t\t\t\t\t\t\t\tpageSize: state.tablePagination.pageSize,\n\t\t\t\t\t\t\t\ttotalRows: state.tablePagination.totalRows,\n\t\t\t\t\t\t\t\thandleSizeChange,\n\t\t\t\t\t\t\t\thandlePaginationChange,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{props.pagination ? (\n\t\t\t\t\t\t\t\t\t<FaTablePagination\n\t\t\t\t\t\t\t\t\t\tpageSizes={props.pageSizes}\n\t\t\t\t\t\t\t\t\t\tonSizeChange={handleSizeChange}\n\t\t\t\t\t\t\t\t\t\tonCurrentChange={handlePaginationChange}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<ElPagination class=\"fa-table-pagination\" size=\"small\" layout=\"total\" total={state.tableData.length} />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{state.imagePreview && (\n\t\t\t\t\t<ElImageViewer\n\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\tteleported\n\t\t\t\t\t\tshowProgress\n\t\t\t\t\t\tonClose={() => (state.imagePreview = false)}\n\t\t\t\t\t\turlList={state.previewList}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{props.columnSettingBtn && <FaTableColumnsSettingDialog ref={columnSettingRef} change={props.columnsChange} />}\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** 用于多选表格,清空用户的选择 */\n\t\t\tclearSelection: computed(() => tableRef.value?.clearSelection),\n\t\t\t/** 返回当前选中的行 */\n\t\t\tgetSelectionRows: computed(() => tableRef.value?.getSelectionRows),\n\t\t\t/** 返回当前半选中的行。 */\n\t\t\tgetHalfSelectionRows: computed(() => tableRef.value?.getHalfSelectionRows),\n\t\t\t/** 用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowSelection: computed(() => tableRef.value?.toggleRowSelection),\n\t\t\t/** 用于多选表格,切换全选和全不选 */\n\t\t\ttoggleAllSelection: computed(() => tableRef.value?.toggleAllSelection),\n\t\t\t/** 用于可扩展的表格或树表格,如果某行被扩展,则切换。 使用第二个参数,您可以直接设置该行应该被扩展或折叠。 */\n\t\t\ttoggleRowExpansion: computed(() => tableRef.value?.toggleRowExpansion),\n\t\t\t/** 用于单选表格,设定某一行为选中行, 如果调用时不加参数,则会取消目前高亮行的选中状态。 */\n\t\t\tsetCurrentRow: computed(() => tableRef.value?.setCurrentRow),\n\t\t\t/** 用于清空排序条件,数据会恢复成未排序的状态 */\n\t\t\tclearSort: computed(() => tableRef.value?.clearSort),\n\t\t\t/** 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数,清除所有过滤器 */\n\t\t\tclearFilter: computed(() => tableRef.value?.clearFilter),\n\t\t\t/** 对 Table 进行重新布局。 当表格可见性变化时,您可能需要调用此方法以获得正确的布局 */\n\t\t\tdoLayout: computed(() => tableRef.value?.doLayout),\n\t\t\t/** 手动排序表格。 参数 prop 属性指定排序列,order 指定排序顺序。 */\n\t\t\tsort: computed(() => tableRef.value?.sort),\n\t\t\t/** 滚动到一组特定坐标 */\n\t\t\tscrollTo: computed(() => tableRef.value?.scrollTo),\n\t\t\t/** 设置垂直滚动位置 */\n\t\t\tsetScrollTop: computed(() => tableRef.value?.setScrollTop),\n\t\t\t/** 设置水平滚动位置 */\n\t\t\tsetScrollLeft: computed(() => tableRef.value?.setScrollLeft),\n\t\t\t/** 获取表列的 context */\n\t\t\tcolumns: computed(() => tableRef.value?.columns),\n\t\t\t/** 适用于 lazy Table, 需要设置 rowKey, 更新 key children */\n\t\t\tupdateKeyChildren: computed(() => tableRef.value?.updateKeyChildren),\n\t\t\t/** 聚合加载状态;手动关闭不能结束内部任务。 */\n\t\t\tloading: computed({ get: () => state.loading, set: setManualLoading }),\n\t\t\t/** 表格数据 */\n\t\t\ttableData: computed(() => state.tableData),\n\t\t\t/** 分页数据 */\n\t\t\ttablePagination: computed(() => state.tablePagination),\n\t\t\t/** 搜索参数 */\n\t\t\tsearchParam: computed(() => state.searchParam),\n\t\t\t/** 选中状态 */\n\t\t\tselected: computed(() => state.selected),\n\t\t\t/** 选中数据列表 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** 选中数据 rowKey 列表 */\n\t\t\tselectedListIds: computed(() => state.selectedListIds),\n\t\t\t/** 部分选中数据 rowKey 列表 */\n\t\t\tindeterminateSelectedListIds: computed(() => state.indeterminateSelectedListIds),\n\t\t\t/** 表格宽度 */\n\t\t\ttableWidth: computed(() => state.tableWidth),\n\t\t\t/** 表格高度 */\n\t\t\ttableHeight: computed(() => state.tableHeight),\n\t\t\t/** 部分选中(样式不一样而已),用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowIndeterminateSelection,\n\t\t\t/** 异步方法,刷新表格 */\n\t\t\trefresh: tableSearch,\n\t\t\t/** 异步方法,重置表格 */\n\t\t\treset: tableReset,\n\t\t\t/** 对 Table 进行重新渲染。当 TableKey 发生变化的时候可以通过此方法重新渲染表格 */\n\t\t\tdoRender,\n\t\t\t/** Table 加载 */\n\t\t\tdoLoading,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
|
|
@@ -235,8 +235,8 @@ var tableColumn_default = defineComponent({
|
|
|
235
235
|
break;
|
|
236
236
|
case "dateTime": dateFormat = "YYYY-MM-DD HH:mm:ss";
|
|
237
237
|
}
|
|
238
|
-
const
|
|
239
|
-
const renderValue =
|
|
238
|
+
const cellValue = tableUtil.handleRowAccordingToProp(row, props.prop ?? "");
|
|
239
|
+
const renderValue = cellValue ? formatterRender(row, column, dayjs(cellValue).format(props.dateFormat ?? dateFormat), $index) : null;
|
|
240
240
|
return [createVNode(Fragment, null, [
|
|
241
241
|
copyRender(renderValue),
|
|
242
242
|
renderValue,
|
|
@@ -250,8 +250,8 @@ var tableColumn_default = defineComponent({
|
|
|
250
250
|
};
|
|
251
251
|
/** 数值列渲染 */
|
|
252
252
|
const numberRender = (row, column, $index) => {
|
|
253
|
-
const
|
|
254
|
-
if (!
|
|
253
|
+
const cellValue = tableUtil.handleRowAccordingToProp(row, props.prop ?? "");
|
|
254
|
+
if (!cellValue || typeof cellValue !== "number") return [createVNode(Fragment, null, [formatterRender(row, column, cellValue, $index)])];
|
|
255
255
|
let useGrouping = false;
|
|
256
256
|
let maximumFractionDigits = 2;
|
|
257
257
|
switch (props.type) {
|
|
@@ -276,7 +276,7 @@ var tableColumn_default = defineComponent({
|
|
|
276
276
|
maximumFractionDigits = 6;
|
|
277
277
|
useGrouping = true;
|
|
278
278
|
}
|
|
279
|
-
return [createVNode(Fragment, null, [formatterRender(row, column,
|
|
279
|
+
return [createVNode(Fragment, null, [formatterRender(row, column, cellValue.toLocaleString("zh-CN", {
|
|
280
280
|
minimumFractionDigits: 2,
|
|
281
281
|
maximumFractionDigits,
|
|
282
282
|
useGrouping
|
|
@@ -284,7 +284,8 @@ var tableColumn_default = defineComponent({
|
|
|
284
284
|
};
|
|
285
285
|
/** 链接列渲染 */
|
|
286
286
|
const linkRender = (row, column, $index) => {
|
|
287
|
-
const
|
|
287
|
+
const cellValue = tableUtil.handleRowAccordingToProp(row, props.prop ?? "");
|
|
288
|
+
const renderValue = formatterRender(row, column, cellValue, $index);
|
|
288
289
|
return autoWidthRender([createVNode(Fragment, null, [copyRender(renderValue), renderValue && createVNode(ElText, {
|
|
289
290
|
"class": "el-link is-hover-underline fa-table__link-column__text",
|
|
290
291
|
"onClick": () => {
|
|
@@ -320,7 +321,8 @@ var tableColumn_default = defineComponent({
|
|
|
320
321
|
$index,
|
|
321
322
|
...getTableDefaultSlots(tableState)
|
|
322
323
|
}) ?? []);
|
|
323
|
-
const
|
|
324
|
+
const cellValue = tableUtil.handleRowAccordingToProp(row, props.prop ?? "");
|
|
325
|
+
const renderValue = formatterRender(row, column, cellValue, $index);
|
|
324
326
|
return autoWidthRender([createVNode(Fragment, null, [copyRender(renderValue), renderValue])]);
|
|
325
327
|
};
|
|
326
328
|
const elTableColumnProps = useProps(props, tableColumnProps, [
|
|
@@ -357,27 +359,31 @@ var tableColumn_default = defineComponent({
|
|
|
357
359
|
column,
|
|
358
360
|
$index
|
|
359
361
|
}),
|
|
360
|
-
default: ({ row }) =>
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
362
|
+
default: ({ row }) => {
|
|
363
|
+
const cellValue = tableUtil.handleRowAccordingToProp(row, props.prop ?? "");
|
|
364
|
+
const renderValue = displayText(cellValue);
|
|
365
|
+
return renderValue ? props.hideImage ? createVNode(ElImage, {
|
|
366
|
+
"class": "fa-image",
|
|
367
|
+
"lazy": true,
|
|
368
|
+
"src": artwork_default,
|
|
369
|
+
"fit": "cover",
|
|
370
|
+
"previewSrcList": [renderValue],
|
|
371
|
+
"closeOnPressEscape": true,
|
|
372
|
+
"hideOnClickModal": true,
|
|
373
|
+
"previewTeleported": true
|
|
374
|
+
}, null) : createVNode(FaImage, {
|
|
375
|
+
"lazy": true,
|
|
376
|
+
"src": renderValue,
|
|
377
|
+
"fit": "cover",
|
|
378
|
+
"original": props.originalImage,
|
|
379
|
+
"thumb": true
|
|
380
|
+
}, null) : createVNode(ElImage, {
|
|
381
|
+
"class": "fa-image",
|
|
382
|
+
"lazy": true,
|
|
383
|
+
"src": notImage_default,
|
|
384
|
+
"fit": "cover"
|
|
385
|
+
}, null);
|
|
386
|
+
}
|
|
381
387
|
}) : createVNode(ElTableColumn, mergeProps(elTableColumnProps.value, {
|
|
382
388
|
"type": props.type === "selection" || props.type === "index" || props.type === "expand" ? props.type : "default",
|
|
383
389
|
"className": getClassName(),
|