fast-element-plus 2.0.18 → 2.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/component.d.ts +17 -17
  3. package/dist/components/button/src/button.d.ts +1 -1
  4. package/dist/components/button/src/button.mjs +2 -2
  5. package/dist/components/button/src/button.mjs.map +1 -1
  6. package/dist/components/contextMenu/src/contextMenu.d.ts +1 -1
  7. package/dist/components/contextMenu/src/contextMenu.mjs +2 -2
  8. package/dist/components/contextMenu/src/contextMenu.mjs.map +1 -1
  9. package/dist/components/dialog/src/dialog.d.ts +2 -2
  10. package/dist/components/dialog/src/dialog.mjs +3 -3
  11. package/dist/components/dialog/src/dialog.mjs.map +1 -1
  12. package/dist/components/drawer/src/drawer.d.ts +2 -2
  13. package/dist/components/drawer/src/drawer.mjs +3 -3
  14. package/dist/components/drawer/src/drawer.mjs.map +1 -1
  15. package/dist/components/layoutGrid/src/layoutGridItem.d.ts +1 -1
  16. package/dist/components/layoutGrid/src/layoutGridItem.mjs +1 -1
  17. package/dist/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  18. package/dist/components/select/src/select.d.ts +1 -1
  19. package/dist/components/select/src/select.mjs +2 -2
  20. package/dist/components/select/src/select.mjs.map +1 -1
  21. package/dist/components/selectPage/src/selectPage.d.ts +10 -4
  22. package/dist/components/selectPage/src/selectPage.mjs +2 -2
  23. package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
  24. package/dist/components/selectV2/src/selectV2.d.ts +1 -1
  25. package/dist/components/selectV2/src/selectV2.mjs +2 -2
  26. package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
  27. package/dist/components/table/src/table.d.ts +1 -1
  28. package/dist/components/table/src/table.mjs +2 -2
  29. package/dist/components/table/src/table.mjs.map +1 -1
  30. package/dist/components/tree/src/tree.d.ts +1 -1
  31. package/dist/components/tree/src/tree.mjs +2 -2
  32. package/dist/components/tree/src/tree.mjs.map +1 -1
  33. package/dist/components/treeSelect/src/treeSelect.d.ts +19 -7
  34. package/dist/components/treeSelect/src/treeSelect.mjs +2 -2
  35. package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
  36. package/dist/components/upload/src/upload.mjs +2 -2
  37. package/dist/components/upload/src/upload.mjs.map +1 -1
  38. package/dist/components/uploadImage/src/uploadImage.mjs +1 -5
  39. package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
  40. package/dist/index.css +1 -1
  41. package/dist/index.css.map +1 -1
  42. package/dist/index.global.min.js +3 -3
  43. package/dist/index.global.min.js.map +1 -1
  44. package/dist/version.d.ts +1 -1
  45. package/dist/version.mjs +1 -1
  46. package/dist/version.mjs.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/src/table.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onActivated, 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\tuseSizeProp,\n} from \"element-plus\";\nimport { NotData } from \"@fast-element-plus/icons-vue\";\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 { CSSProperties, 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\ntype Layout = \"fixed\" | \"auto\";\n\n// type TreeProps = TableProps<DefaultRow>[\"treeProps\"];\n/** FaTable 树形数据的字段配置。 */\nexport interface TreeProps {\n\thasChildren?: string;\n\tchildren?: string;\n\tcheckStrictly?: boolean;\n}\n\n/** Element Plus Table 的透传 Props 定义。 */\nexport const tableProps = {\n\t/**\n\t * @description table data\n\t */\n\tdata: {\n\t\ttype: Array as PropType<DefaultRow[]>,\n\t\tdefault: () => [],\n\t},\n\t/**\n\t * @description size of Table\n\t */\n\tsize: useSizeProp,\n\twidth: [String, Number],\n\t/**\n\t * @description table's height. By default it has an `auto` height. If its value is a number, the height is measured in pixels; if its value is a string, the value will be assigned to element's style.height, the height is affected by external styles\n\t */\n\theight: [String, Number],\n\t/**\n\t * @description table's max-height. The legal value is a number or the height in px\n\t */\n\tmaxHeight: [String, Number],\n\t/**\n\t * @description whether width of column automatically fits its container\n\t */\n\tfit: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description whether Table is striped\n\t */\n\tstripe: Boolean,\n\t/**\n\t * @description whether Table has vertical border\n\t */\n\tborder: Boolean,\n\t/**\n\t * @description 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\t */\n\trowKey: [String, Function] as PropType<TableProps<DefaultRow>[\"rowKey\"]>,\n\t/**\n\t * @description whether Table header is visible\n\t */\n\tshowHeader: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description whether to display a summary row\n\t */\n\tshowSummary: Boolean,\n\t/**\n\t * @description displayed text for the first column of summary row\n\t */\n\tsumText: String,\n\t/**\n\t * @description custom summary method\n\t */\n\tsummaryMethod: Function as PropType<TableProps<DefaultRow>[\"summaryMethod\"]>,\n\t/**\n\t * @description function that returns custom class names for a row, or a string assigning class names for every row\n\t */\n\trowClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"rowClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a row, or an object assigning custom style for every row\n\t */\n\trowStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"rowStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a cell, or a string assigning class names for every cell\n\t */\n\tcellClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"cellClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a cell, or an object assigning custom style for every cell\n\t */\n\tcellStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"cellStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a row in table header, or a string assigning class names for every row in table header\n\t */\n\theaderRowClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"headerRowClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a row in table header, or an object assigning custom style for every row in table header\n\t */\n\theaderRowStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"headerRowStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a cell in table header, or a string assigning class names for every cell in table header\n\t */\n\theaderCellClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"headerCellClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a cell in table header, or an object assigning custom style for every cell in table header\n\t */\n\theaderCellStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"headerCellStyle\"]>,\n\t/**\n\t * @description whether current row is highlighted\n\t */\n\thighlightCurrentRow: Boolean,\n\t/**\n\t * @description key of current row, a set only prop\n\t */\n\tcurrentRowKey: [String, Number],\n\t/**\n\t * @description displayed text when data is empty. You can customize this area with `#empty`\n\t */\n\temptyText: String,\n\t/**\n\t * @description set expanded rows by this prop, prop's value is the keys of expand rows, you should set row-key before using this prop\n\t */\n\texpandRowKeys: Array as PropType<TableProps<DefaultRow>[\"expandRowKeys\"]>,\n\t/** @description controls whether a row can be expanded */\n\trowExpandable: Function as PropType<TableProps<DefaultRow>[\"rowExpandable\"]>,\n\t/**\n\t * @description whether expand all rows by default, works when the table has a column type=\"expand\" or contains tree structure data\n\t */\n\tdefaultExpandAll: Boolean,\n\t/**\n\t * @description set the default sort column and order. property `prop` is used to set default sort column, property `order` is used to set default sort order\n\t */\n\tdefaultSort: Object as PropType<TableProps<DefaultRow>[\"defaultSort\"]>,\n\t/**\n\t * @description the `effect` of the overflow tooltip\n\t */\n\ttooltipEffect: String,\n\t/**\n\t * @description the options for the overflow tooltip, [see the following tooltip component](tooltip.html#attributes)\n\t */\n\ttooltipOptions: Object as PropType<TableProps<DefaultRow>[\"tooltipOptions\"]>,\n\t/**\n\t * @description method that returns rowspan and colspan\n\t */\n\tspanMethod: Function as PropType<TableProps<DefaultRow>[\"spanMethod\"]>,\n\t/**\n\t * @description controls the behavior of master checkbox in multi-select tables when only some rows are selected (but not all). If true, all rows will be selected, else deselected\n\t */\n\tselectOnIndeterminate: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description horizontal indentation of tree data\n\t */\n\tindent: {\n\t\ttype: Number,\n\t\tdefault: 16,\n\t},\n\t/**\n\t * @description configuration for rendering nested data\n\t */\n\ttreeProps: {\n\t\ttype: Object as PropType<TreeProps>,\n\t\tdefault: () => ({\n\t\t\thasChildren: \"hasChildren\",\n\t\t\tchildren: \"children\",\n\t\t\tcheckStrictly: false,\n\t\t}),\n\t},\n\t/**\n\t * @description whether to lazy loading data\n\t */\n\tlazy: Boolean,\n\t/**\n\t * @description method for loading child row data, only works when `lazy` is true\n\t */\n\tload: Function as PropType<TableProps<DefaultRow>[\"load\"]>,\n\tstyle: {\n\t\ttype: Object as PropType<CSSProperties>,\n\t\tdefault: () => ({}),\n\t},\n\tclassName: {\n\t\ttype: String,\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description sets the algorithm used to lay out table cells, rows, and columns\n\t */\n\ttableLayout: {\n\t\ttype: String as PropType<Layout>,\n\t\tdefault: \"fixed\",\n\t},\n\t/**\n\t * @description always show scrollbar\n\t */\n\tscrollbarAlwaysOn: Boolean,\n\t/**\n\t * @description ensure main axis minimum-size doesn't follow the content\n\t */\n\tflexible: Boolean,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell.It will affect all the table columns\n\t */\n\tshowOverflowTooltip: [Boolean, Object] as PropType<TableProps<DefaultRow>[\"showOverflowTooltip\"]>,\n\t/** @description formats overflow tooltip content */\n\ttooltipFormatter: Function as PropType<TableProps<DefaultRow>[\"tooltipFormatter\"]>,\n\t/** @description element to which the filter panel is appended */\n\tappendFilterPanelTo: String,\n\tscrollbarTabindex: {\n\t\ttype: [Number, String],\n\t\tdefault: undefined,\n\t},\n\t/** @description whether the last column can be resized */\n\tallowDragLastColumn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether collapsed expanded-row content remains mounted */\n\tpreserveExpandedContent: Boolean,\n\t/** @description whether to use native scrollbars */\n\tnativeScrollbar: Boolean,\n};\n\n/** FaTable 的运行时 Props 定义。 */\nexport const faTableProps = {\n\t...tableProps,\n\t/** @description whether Table has vertical border */\n\tborder: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether current row is highlighted */\n\thighlightCurrentRow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 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/** @description 组件封装,原生的已经失效 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/** @description 表格Key */\n\ttableKey: {\n\t\ttype: String,\n\t\tdefault: () => randomString(8),\n\t},\n\t/** @description 表格数据 */\n\tdata: {\n\t\ttype: definePropType<DefaultRow[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<DefaultRow> | DefaultRow[]>>(Function),\n\t},\n\t/** @description 接口请求数据回调 */\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/** @description 列配置 */\n\tcolumns: {\n\t\ttype: definePropType<FaTableColumnCtx[] | false>([Array, Boolean]),\n\t\tdefault: () => false,\n\t},\n\t/** @description 表格列改变 */\n\tcolumnsChange: {\n\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t},\n\t/** @description 搜索表单 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/** @description 折叠搜素 */\n\tcollapsedSearch: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 高级搜素抽屉 */\n\tadvancedSearchDrawer: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** @description 搜索表单 */\n\tsearchForm: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 头部卡片 */\n\theaderCard: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 刷新按钮 */\n\trefreshBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 搜索按钮 */\n\tsearchBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 列配置按钮 */\n\tcolumnSettingBtn: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** @description 头部卡片右侧功能按钮 */\n\ttoolBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 隐藏搜索时间 */\n\thideSearchTime: Boolean,\n\t/** @description 未来搜索时间 */\n\tfutureSearchTime: Boolean,\n\t/** @description 搜索时间范围 */\n\tdataSearchRange: {\n\t\ttype: definePropType<FaTableDataRange>(String),\n\t\tdefault: \"Past3D\",\n\t},\n\t/** @description 分页 */\n\tpagination: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 页码 */\n\tpageSizes: {\n\t\ttype: definePropType<number[]>(Array),\n\t\tdefault: [20, 30, 50, 100],\n\t},\n\t/** @description 隐藏图片 */\n\thideImage: Boolean,\n\t/** @description 单选 */\n\tsingle: Boolean,\n\t/** @description 行点击选择 */\n\trowClickSelection: Boolean,\n\t/** @description 将父级数据的 children 展开为表格行,并把父级字段合并到子项;Element Plus 树表无需启用 */\n\ttreeData: Boolean,\n\t/** @description 配置选项 */\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/** @description 自动刷新,当传入 data 时候,如果存在更改则自动刷新 */\n\tautoRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * 等价于 Table-Column 的 selectable\n\t * @description 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/** @description 当用户手动勾选数据行的 Checkbox 时触发的事件 */\n\tselect: (selection: DefaultRow[], row: DefaultRow) => Array.isArray(selection) && typeof row === \"object\" && row !== null,\n\t/** @description 当用户手动勾选全选 Checkbox 时触发的事件 */\n\tselectAll: (selection: DefaultRow[]) => Array.isArray(selection),\n\t/** @description 当选择项发生变化时会触发该事件 */\n\tselectionChange: (newSelection: DefaultRow[]) => Array.isArray(newSelection),\n\t/** @description 当单元格 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/** @description 当单元格 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/** @description 当某个单元格被点击时会触发该事件 */\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/** @description 当某个单元格被双击击时会触发该事件 */\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/** @description 当某个单元格被鼠标右键点击时会触发该事件 */\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/** @description 当某一行被点击时会触发该事件 */\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/** @description 当某一行被鼠标右键点击时会触发该事件 */\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/** @description 当某一行被双击时会触发该事件 */\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/** @description 当某一列的表头被点击时会触发该事件 */\n\theaderClick: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** @description 当某一列的表头被鼠标右键点击时触发该事件 */\n\theaderContextmenu: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** @description 当表格的排序条件发生变化的时候会触发该事件 */\n\tsortChange: (data: { column: TableColumnCtx<DefaultRow>; prop: string; order: \"\" | \"ascending\" | \"descending\" }) =>\n\t\ttypeof data === \"object\" && data !== null,\n\t/** @description column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件 */\n\tfilterChange: (newFilters: Record<string, string[]>) => typeof newFilters === \"object\" && newFilters !== null,\n\t/** @description 当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 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/** @description 当拖动表头改变了列的宽度的时候会触发该事件 */\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/** @description 当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded) */\n\texpandChange: (row: DefaultRow, expanded: boolean | DefaultRow[]) =>\n\t\ttypeof row === \"object\" && row !== null && (typeof expanded === \"boolean\" || Array.isArray(expanded)),\n\t/** @description 表格滚动时触发 */\n\tscroll: (data: { scrollLeft: number; scrollTop: number }) => typeof data === \"object\" && data !== null,\n\n\t/** @description 表格刷新事件 */\n\trefresh: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** @description 表格重置事件 */\n\treset: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** @description 分页页码改变事件 */\n\tsizeChange: (pageSize: number) => typeof pageSize === \"number\",\n\t/** @description 分页改变事件 */\n\tpaginationChange: (pageIndex: number, pageSize: number) => typeof pageIndex === \"number\" && typeof pageSize === \"number\",\n\t/** @description 自定义单元格点击事件 */\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/** @description 默认内容插槽 */\n\tdefault: never;\n\t/** @description 插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。 */\n\tappend: never;\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 表格顶部插槽 */\n\ttopHeader: FaTableDefaultSlotsResult;\n\t/** @description 表格头部左侧插槽 */\n\theader: FaTableDefaultSlotsResult;\n\t/** @description 表格头部右侧功能按钮插槽 */\n\ttoolButton: FaTableDefaultSlotsResult;\n\t/** @description 表格头部右侧高级操作按钮插槽,ElDropdownMenuItem 标签 */\n\ttoolButtonAdv: FaTableDefaultSlotsResult;\n\t/** @description 表格操作列插槽 */\n\toperation: FaTableDefaultSlotsResult & {\n\t\trow: DefaultRow;\n\t\tcolumn: FaTableColumnCtx;\n\t\t$index: number;\n\t};\n\t/** @description 表格分页插槽 */\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/** @description 表格页脚插槽 */\n\tfooter: FaTableDefaultSlotsResult;\n\t/** @description 列配置 */\n\tcolumnSetting: never;\n} & Record<\n\t\tstring,\n\t\tFaTableDefaultSlotsResult & {\n\t\t\t/** @description slots为表格内容的时候才会返回 */\n\t\t\trow?: DefaultRow;\n\t\t\t/** @description slot为表头内容的时候返回 'TableColumnCtx<DefaultRow>' 否则返回 'FaTableColumnCtx' */\n\t\t\tcolumn?: TableColumnCtx<DefaultRow> | FaTableColumnCtx;\n\t\t\t/** @description slot为非搜索项的时候才会返回 */\n\t\t\t$index?: number;\n\t\t\t/** @description 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\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\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/** @description 原生的 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) 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(() => {\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) resizeTableColumns();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobserver.observe(element);\n\n\t\t\t\treturn () => {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t};\n\t\t\t}\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/** @description 用于多选表格,清空用户的选择 */\n\t\t\tclearSelection: computed(() => tableRef.value?.clearSelection),\n\t\t\t/** @description 返回当前选中的行 */\n\t\t\tgetSelectionRows: computed(() => tableRef.value?.getSelectionRows),\n\t\t\t/** @description 返回当前半选中的行。 */\n\t\t\tgetHalfSelectionRows: computed(() => tableRef.value?.getHalfSelectionRows),\n\t\t\t/** @description 用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowSelection: computed(() => tableRef.value?.toggleRowSelection),\n\t\t\t/** @description 用于多选表格,切换全选和全不选 */\n\t\t\ttoggleAllSelection: computed(() => tableRef.value?.toggleAllSelection),\n\t\t\t/** @description 用于可扩展的表格或树表格,如果某行被扩展,则切换。 使用第二个参数,您可以直接设置该行应该被扩展或折叠。 */\n\t\t\ttoggleRowExpansion: computed(() => tableRef.value?.toggleRowExpansion),\n\t\t\t/** @description 用于单选表格,设定某一行为选中行, 如果调用时不加参数,则会取消目前高亮行的选中状态。 */\n\t\t\tsetCurrentRow: computed(() => tableRef.value?.setCurrentRow),\n\t\t\t/** @description 用于清空排序条件,数据会恢复成未排序的状态 */\n\t\t\tclearSort: computed(() => tableRef.value?.clearSort),\n\t\t\t/** @description 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数,清除所有过滤器 */\n\t\t\tclearFilter: computed(() => tableRef.value?.clearFilter),\n\t\t\t/** @description 对 Table 进行重新布局。 当表格可见性变化时,您可能需要调用此方法以获得正确的布局 */\n\t\t\tdoLayout: computed(() => tableRef.value?.doLayout),\n\t\t\t/** @description 手动排序表格。 参数 prop 属性指定排序列,order 指定排序顺序。 */\n\t\t\tsort: computed(() => tableRef.value?.sort),\n\t\t\t/** @description 滚动到一组特定坐标 */\n\t\t\tscrollTo: computed(() => tableRef.value?.scrollTo),\n\t\t\t/** @description 设置垂直滚动位置 */\n\t\t\tsetScrollTop: computed(() => tableRef.value?.setScrollTop),\n\t\t\t/** @description 设置水平滚动位置 */\n\t\t\tsetScrollLeft: computed(() => tableRef.value?.setScrollLeft),\n\t\t\t/** @description 获取表列的 context */\n\t\t\tcolumns: computed(() => tableRef.value?.columns),\n\t\t\t/** @description 适用于 lazy Table, 需要设置 rowKey, 更新 key children */\n\t\t\tupdateKeyChildren: computed(() => tableRef.value?.updateKeyChildren),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 表格数据 */\n\t\t\ttableData: computed(() => state.tableData),\n\t\t\t/** @description 分页数据 */\n\t\t\ttablePagination: computed(() => state.tablePagination),\n\t\t\t/** @description 搜索参数 */\n\t\t\tsearchParam: computed(() => state.searchParam),\n\t\t\t/** @description 选中状态 */\n\t\t\tselected: computed(() => state.selected),\n\t\t\t/** @description 选中数据列表 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** @description 选中数据 rowKey 列表 */\n\t\t\tselectedListIds: computed(() => state.selectedListIds),\n\t\t\t/** @description 部分选中数据 rowKey 列表 */\n\t\t\tindeterminateSelectedListIds: computed(() => state.indeterminateSelectedListIds),\n\t\t\t/** @description 表格宽度 */\n\t\t\ttableWidth: computed(() => state.tableWidth),\n\t\t\t/** @description 表格高度 */\n\t\t\ttableHeight: computed(() => state.tableHeight),\n\t\t\t/** @description 部分选中(样式不一样而已),用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowIndeterminateSelection,\n\t\t\t/** @description 异步方法,刷新表格 */\n\t\t\trefresh: tableSearch,\n\t\t\t/** @description 异步方法,重置表格 */\n\t\t\treset: tableReset,\n\t\t\t/** @description 对 Table 进行重新渲染。当 TableKey 发生变化的时候可以通过此方法重新渲染表格 */\n\t\t\tdoRender,\n\t\t\t/** @description Table 加载 */\n\t\t\tdoLoading,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/src/table.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onActivated, onMounted, shallowRef, toRef, 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\tuseSizeProp,\n} from \"element-plus\";\nimport { NotData } from \"@fast-element-plus/icons-vue\";\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 { CSSProperties, 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\ntype Layout = \"fixed\" | \"auto\";\n\n// type TreeProps = TableProps<DefaultRow>[\"treeProps\"];\n/** FaTable 树形数据的字段配置。 */\nexport interface TreeProps {\n\thasChildren?: string;\n\tchildren?: string;\n\tcheckStrictly?: boolean;\n}\n\n/** Element Plus Table 的透传 Props 定义。 */\nexport const tableProps = {\n\t/**\n\t * @description table data\n\t */\n\tdata: {\n\t\ttype: Array as PropType<DefaultRow[]>,\n\t\tdefault: () => [],\n\t},\n\t/**\n\t * @description size of Table\n\t */\n\tsize: useSizeProp,\n\twidth: [String, Number],\n\t/**\n\t * @description table's height. By default it has an `auto` height. If its value is a number, the height is measured in pixels; if its value is a string, the value will be assigned to element's style.height, the height is affected by external styles\n\t */\n\theight: [String, Number],\n\t/**\n\t * @description table's max-height. The legal value is a number or the height in px\n\t */\n\tmaxHeight: [String, Number],\n\t/**\n\t * @description whether width of column automatically fits its container\n\t */\n\tfit: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description whether Table is striped\n\t */\n\tstripe: Boolean,\n\t/**\n\t * @description whether Table has vertical border\n\t */\n\tborder: Boolean,\n\t/**\n\t * @description 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\t */\n\trowKey: [String, Function] as PropType<TableProps<DefaultRow>[\"rowKey\"]>,\n\t/**\n\t * @description whether Table header is visible\n\t */\n\tshowHeader: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description whether to display a summary row\n\t */\n\tshowSummary: Boolean,\n\t/**\n\t * @description displayed text for the first column of summary row\n\t */\n\tsumText: String,\n\t/**\n\t * @description custom summary method\n\t */\n\tsummaryMethod: Function as PropType<TableProps<DefaultRow>[\"summaryMethod\"]>,\n\t/**\n\t * @description function that returns custom class names for a row, or a string assigning class names for every row\n\t */\n\trowClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"rowClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a row, or an object assigning custom style for every row\n\t */\n\trowStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"rowStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a cell, or a string assigning class names for every cell\n\t */\n\tcellClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"cellClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a cell, or an object assigning custom style for every cell\n\t */\n\tcellStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"cellStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a row in table header, or a string assigning class names for every row in table header\n\t */\n\theaderRowClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"headerRowClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a row in table header, or an object assigning custom style for every row in table header\n\t */\n\theaderRowStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"headerRowStyle\"]>,\n\t/**\n\t * @description function that returns custom class names for a cell in table header, or a string assigning class names for every cell in table header\n\t */\n\theaderCellClassName: [String, Function] as PropType<TableProps<DefaultRow>[\"headerCellClassName\"]>,\n\t/**\n\t * @description function that returns custom style for a cell in table header, or an object assigning custom style for every cell in table header\n\t */\n\theaderCellStyle: [Object, Function] as PropType<TableProps<DefaultRow>[\"headerCellStyle\"]>,\n\t/**\n\t * @description whether current row is highlighted\n\t */\n\thighlightCurrentRow: Boolean,\n\t/**\n\t * @description key of current row, a set only prop\n\t */\n\tcurrentRowKey: [String, Number],\n\t/**\n\t * @description displayed text when data is empty. You can customize this area with `#empty`\n\t */\n\temptyText: String,\n\t/**\n\t * @description set expanded rows by this prop, prop's value is the keys of expand rows, you should set row-key before using this prop\n\t */\n\texpandRowKeys: Array as PropType<TableProps<DefaultRow>[\"expandRowKeys\"]>,\n\t/** @description controls whether a row can be expanded */\n\trowExpandable: Function as PropType<TableProps<DefaultRow>[\"rowExpandable\"]>,\n\t/**\n\t * @description whether expand all rows by default, works when the table has a column type=\"expand\" or contains tree structure data\n\t */\n\tdefaultExpandAll: Boolean,\n\t/**\n\t * @description set the default sort column and order. property `prop` is used to set default sort column, property `order` is used to set default sort order\n\t */\n\tdefaultSort: Object as PropType<TableProps<DefaultRow>[\"defaultSort\"]>,\n\t/**\n\t * @description the `effect` of the overflow tooltip\n\t */\n\ttooltipEffect: String,\n\t/**\n\t * @description the options for the overflow tooltip, [see the following tooltip component](tooltip.html#attributes)\n\t */\n\ttooltipOptions: Object as PropType<TableProps<DefaultRow>[\"tooltipOptions\"]>,\n\t/**\n\t * @description method that returns rowspan and colspan\n\t */\n\tspanMethod: Function as PropType<TableProps<DefaultRow>[\"spanMethod\"]>,\n\t/**\n\t * @description controls the behavior of master checkbox in multi-select tables when only some rows are selected (but not all). If true, all rows will be selected, else deselected\n\t */\n\tselectOnIndeterminate: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description horizontal indentation of tree data\n\t */\n\tindent: {\n\t\ttype: Number,\n\t\tdefault: 16,\n\t},\n\t/**\n\t * @description configuration for rendering nested data\n\t */\n\ttreeProps: {\n\t\ttype: Object as PropType<TreeProps>,\n\t\tdefault: () => ({\n\t\t\thasChildren: \"hasChildren\",\n\t\t\tchildren: \"children\",\n\t\t\tcheckStrictly: false,\n\t\t}),\n\t},\n\t/**\n\t * @description whether to lazy loading data\n\t */\n\tlazy: Boolean,\n\t/**\n\t * @description method for loading child row data, only works when `lazy` is true\n\t */\n\tload: Function as PropType<TableProps<DefaultRow>[\"load\"]>,\n\tstyle: {\n\t\ttype: Object as PropType<CSSProperties>,\n\t\tdefault: () => ({}),\n\t},\n\tclassName: {\n\t\ttype: String,\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description sets the algorithm used to lay out table cells, rows, and columns\n\t */\n\ttableLayout: {\n\t\ttype: String as PropType<Layout>,\n\t\tdefault: \"fixed\",\n\t},\n\t/**\n\t * @description always show scrollbar\n\t */\n\tscrollbarAlwaysOn: Boolean,\n\t/**\n\t * @description ensure main axis minimum-size doesn't follow the content\n\t */\n\tflexible: Boolean,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell.It will affect all the table columns\n\t */\n\tshowOverflowTooltip: [Boolean, Object] as PropType<TableProps<DefaultRow>[\"showOverflowTooltip\"]>,\n\t/** @description formats overflow tooltip content */\n\ttooltipFormatter: Function as PropType<TableProps<DefaultRow>[\"tooltipFormatter\"]>,\n\t/** @description element to which the filter panel is appended */\n\tappendFilterPanelTo: String,\n\tscrollbarTabindex: {\n\t\ttype: [Number, String],\n\t\tdefault: undefined,\n\t},\n\t/** @description whether the last column can be resized */\n\tallowDragLastColumn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether collapsed expanded-row content remains mounted */\n\tpreserveExpandedContent: Boolean,\n\t/** @description whether to use native scrollbars */\n\tnativeScrollbar: Boolean,\n};\n\n/** FaTable 的运行时 Props 定义。 */\nexport const faTableProps = {\n\t...tableProps,\n\t/** @description whether Table has vertical border */\n\tborder: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether current row is highlighted */\n\thighlightCurrentRow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 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/** @description 组件封装,原生的已经失效 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/** @description 表格Key */\n\ttableKey: {\n\t\ttype: String,\n\t\tdefault: () => randomString(8),\n\t},\n\t/** @description 表格数据 */\n\tdata: {\n\t\ttype: definePropType<DefaultRow[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<DefaultRow> | DefaultRow[]>>(Function),\n\t},\n\t/** @description 接口请求数据回调 */\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/** @description 列配置 */\n\tcolumns: {\n\t\ttype: definePropType<FaTableColumnCtx[] | false>([Array, Boolean]),\n\t\tdefault: () => false,\n\t},\n\t/** @description 表格列改变 */\n\tcolumnsChange: {\n\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t},\n\t/** @description 搜索表单 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/** @description 折叠搜素 */\n\tcollapsedSearch: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 高级搜素抽屉 */\n\tadvancedSearchDrawer: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** @description 搜索表单 */\n\tsearchForm: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 头部卡片 */\n\theaderCard: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 刷新按钮 */\n\trefreshBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 搜索按钮 */\n\tsearchBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 列配置按钮 */\n\tcolumnSettingBtn: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\t/** @description 头部卡片右侧功能按钮 */\n\ttoolBtn: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 隐藏搜索时间 */\n\thideSearchTime: Boolean,\n\t/** @description 未来搜索时间 */\n\tfutureSearchTime: Boolean,\n\t/** @description 搜索时间范围 */\n\tdataSearchRange: {\n\t\ttype: definePropType<FaTableDataRange>(String),\n\t\tdefault: \"Past3D\",\n\t},\n\t/** @description 分页 */\n\tpagination: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 页码 */\n\tpageSizes: {\n\t\ttype: definePropType<number[]>(Array),\n\t\tdefault: [20, 30, 50, 100],\n\t},\n\t/** @description 隐藏图片 */\n\thideImage: Boolean,\n\t/** @description 单选 */\n\tsingle: Boolean,\n\t/** @description 行点击选择 */\n\trowClickSelection: Boolean,\n\t/** @description 将父级数据的 children 展开为表格行,并把父级字段合并到子项;Element Plus 树表无需启用 */\n\ttreeData: Boolean,\n\t/** @description 配置选项 */\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/** @description 自动刷新,当传入 data 时候,如果存在更改则自动刷新 */\n\tautoRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * 等价于 Table-Column 的 selectable\n\t * @description 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/** @description 当用户手动勾选数据行的 Checkbox 时触发的事件 */\n\tselect: (selection: DefaultRow[], row: DefaultRow) => Array.isArray(selection) && typeof row === \"object\" && row !== null,\n\t/** @description 当用户手动勾选全选 Checkbox 时触发的事件 */\n\tselectAll: (selection: DefaultRow[]) => Array.isArray(selection),\n\t/** @description 当选择项发生变化时会触发该事件 */\n\tselectionChange: (newSelection: DefaultRow[]) => Array.isArray(newSelection),\n\t/** @description 当单元格 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/** @description 当单元格 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/** @description 当某个单元格被点击时会触发该事件 */\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/** @description 当某个单元格被双击击时会触发该事件 */\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/** @description 当某个单元格被鼠标右键点击时会触发该事件 */\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/** @description 当某一行被点击时会触发该事件 */\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/** @description 当某一行被鼠标右键点击时会触发该事件 */\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/** @description 当某一行被双击时会触发该事件 */\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/** @description 当某一列的表头被点击时会触发该事件 */\n\theaderClick: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** @description 当某一列的表头被鼠标右键点击时触发该事件 */\n\theaderContextmenu: (column: TableColumnCtx<DefaultRow>, event: Event) => typeof column === \"object\" && column !== null && event instanceof Event,\n\t/** @description 当表格的排序条件发生变化的时候会触发该事件 */\n\tsortChange: (data: { column: TableColumnCtx<DefaultRow>; prop: string; order: \"\" | \"ascending\" | \"descending\" }) =>\n\t\ttypeof data === \"object\" && data !== null,\n\t/** @description column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件 */\n\tfilterChange: (newFilters: Record<string, string[]>) => typeof newFilters === \"object\" && newFilters !== null,\n\t/** @description 当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 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/** @description 当拖动表头改变了列的宽度的时候会触发该事件 */\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/** @description 当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded) */\n\texpandChange: (row: DefaultRow, expanded: boolean | DefaultRow[]) =>\n\t\ttypeof row === \"object\" && row !== null && (typeof expanded === \"boolean\" || Array.isArray(expanded)),\n\t/** @description 表格滚动时触发 */\n\tscroll: (data: { scrollLeft: number; scrollTop: number }) => typeof data === \"object\" && data !== null,\n\n\t/** @description 表格刷新事件 */\n\trefresh: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** @description 表格重置事件 */\n\treset: (params: PagedInput) => typeof params === \"object\" && params !== null,\n\t/** @description 分页页码改变事件 */\n\tsizeChange: (pageSize: number) => typeof pageSize === \"number\",\n\t/** @description 分页改变事件 */\n\tpaginationChange: (pageIndex: number, pageSize: number) => typeof pageIndex === \"number\" && typeof pageSize === \"number\",\n\t/** @description 自定义单元格点击事件 */\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/** @description 默认内容插槽 */\n\tdefault: never;\n\t/** @description 插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。 */\n\tappend: never;\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 表格顶部插槽 */\n\ttopHeader: FaTableDefaultSlotsResult;\n\t/** @description 表格头部左侧插槽 */\n\theader: FaTableDefaultSlotsResult;\n\t/** @description 表格头部右侧功能按钮插槽 */\n\ttoolButton: FaTableDefaultSlotsResult;\n\t/** @description 表格头部右侧高级操作按钮插槽,ElDropdownMenuItem 标签 */\n\ttoolButtonAdv: FaTableDefaultSlotsResult;\n\t/** @description 表格操作列插槽 */\n\toperation: FaTableDefaultSlotsResult & {\n\t\trow: DefaultRow;\n\t\tcolumn: FaTableColumnCtx;\n\t\t$index: number;\n\t};\n\t/** @description 表格分页插槽 */\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/** @description 表格页脚插槽 */\n\tfooter: FaTableDefaultSlotsResult;\n\t/** @description 列配置 */\n\tcolumnSetting: never;\n} & Record<\n\t\tstring,\n\t\tFaTableDefaultSlotsResult & {\n\t\t\t/** @description slots为表格内容的时候才会返回 */\n\t\t\trow?: DefaultRow;\n\t\t\t/** @description slot为表头内容的时候返回 'TableColumnCtx<DefaultRow>' 否则返回 'FaTableColumnCtx' */\n\t\t\tcolumn?: TableColumnCtx<DefaultRow> | FaTableColumnCtx;\n\t\t\t/** @description slot为非搜索项的时候才会返回 */\n\t\t\t$index?: number;\n\t\t\t/** @description 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\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\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/** @description 原生的 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) 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(() => {\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) resizeTableColumns();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobserver.observe(element);\n\n\t\t\t\treturn () => {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t};\n\t\t\t}\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/** @description 用于多选表格,清空用户的选择 */\n\t\t\tclearSelection: computed(() => tableRef.value?.clearSelection),\n\t\t\t/** @description 返回当前选中的行 */\n\t\t\tgetSelectionRows: computed(() => tableRef.value?.getSelectionRows),\n\t\t\t/** @description 返回当前半选中的行。 */\n\t\t\tgetHalfSelectionRows: computed(() => tableRef.value?.getHalfSelectionRows),\n\t\t\t/** @description 用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowSelection: computed(() => tableRef.value?.toggleRowSelection),\n\t\t\t/** @description 用于多选表格,切换全选和全不选 */\n\t\t\ttoggleAllSelection: computed(() => tableRef.value?.toggleAllSelection),\n\t\t\t/** @description 用于可扩展的表格或树表格,如果某行被扩展,则切换。 使用第二个参数,您可以直接设置该行应该被扩展或折叠。 */\n\t\t\ttoggleRowExpansion: computed(() => tableRef.value?.toggleRowExpansion),\n\t\t\t/** @description 用于单选表格,设定某一行为选中行, 如果调用时不加参数,则会取消目前高亮行的选中状态。 */\n\t\t\tsetCurrentRow: computed(() => tableRef.value?.setCurrentRow),\n\t\t\t/** @description 用于清空排序条件,数据会恢复成未排序的状态 */\n\t\t\tclearSort: computed(() => tableRef.value?.clearSort),\n\t\t\t/** @description 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数,清除所有过滤器 */\n\t\t\tclearFilter: computed(() => tableRef.value?.clearFilter),\n\t\t\t/** @description 对 Table 进行重新布局。 当表格可见性变化时,您可能需要调用此方法以获得正确的布局 */\n\t\t\tdoLayout: computed(() => tableRef.value?.doLayout),\n\t\t\t/** @description 手动排序表格。 参数 prop 属性指定排序列,order 指定排序顺序。 */\n\t\t\tsort: computed(() => tableRef.value?.sort),\n\t\t\t/** @description 滚动到一组特定坐标 */\n\t\t\tscrollTo: computed(() => tableRef.value?.scrollTo),\n\t\t\t/** @description 设置垂直滚动位置 */\n\t\t\tsetScrollTop: computed(() => tableRef.value?.setScrollTop),\n\t\t\t/** @description 设置水平滚动位置 */\n\t\t\tsetScrollLeft: computed(() => tableRef.value?.setScrollLeft),\n\t\t\t/** @description 获取表列的 context */\n\t\t\tcolumns: computed(() => tableRef.value?.columns),\n\t\t\t/** @description 适用于 lazy Table, 需要设置 rowKey, 更新 key children */\n\t\t\tupdateKeyChildren: computed(() => tableRef.value?.updateKeyChildren),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** @description 表格数据 */\n\t\t\ttableData: computed(() => state.tableData),\n\t\t\t/** @description 分页数据 */\n\t\t\ttablePagination: computed(() => state.tablePagination),\n\t\t\t/** @description 搜索参数 */\n\t\t\tsearchParam: computed(() => state.searchParam),\n\t\t\t/** @description 选中状态 */\n\t\t\tselected: computed(() => state.selected),\n\t\t\t/** @description 选中数据列表 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** @description 选中数据 rowKey 列表 */\n\t\t\tselectedListIds: computed(() => state.selectedListIds),\n\t\t\t/** @description 部分选中数据 rowKey 列表 */\n\t\t\tindeterminateSelectedListIds: computed(() => state.indeterminateSelectedListIds),\n\t\t\t/** @description 表格宽度 */\n\t\t\ttableWidth: computed(() => state.tableWidth),\n\t\t\t/** @description 表格高度 */\n\t\t\ttableHeight: computed(() => state.tableHeight),\n\t\t\t/** @description 部分选中(样式不一样而已),用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 */\n\t\t\ttoggleRowIndeterminateSelection,\n\t\t\t/** @description 异步方法,刷新表格 */\n\t\t\trefresh: tableSearch,\n\t\t\t/** @description 异步方法,重置表格 */\n\t\t\treset: tableReset,\n\t\t\t/** @description 对 Table 进行重新渲染。当 TableKey 发生变化的时候可以通过此方法重新渲染表格 */\n\t\t\tdoRender,\n\t\t\t/** @description Table 加载 */\n\t\t\tdoLoading,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
@@ -367,7 +367,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
367
367
  /** @description 在 Tree 中给定节点后插入一个节点 */
368
368
  insertAfter: import("vue").ComputedRef<((data: TreeNodeData, refNode: import("element-plus").TreeKey | TreeNodeData | import("element-plus/es/components/tree/src/model/node.mjs").default) => void) | undefined>;
369
369
  /** @description 加载状态 */
370
- loading: import("vue").ComputedRef<boolean>;
370
+ loading: import("vue").Ref<boolean, boolean>;
371
371
  /** @description 刷新 */
372
372
  refresh: () => Promise<void>;
373
373
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -6,7 +6,7 @@ import { definePropType, useProps } from "../../../utils/vue/props.mjs";
6
6
  import { useRender } from "../../../utils/vue/render.mjs";
7
7
  import { makeSlots } from "../../../utils/vue/slots.mjs";
8
8
  import { withDefineType } from "../../../utils/vue/with.mjs";
9
- import { computed, createTextVNode, createVNode, defineComponent, mergeProps, nextTick, onMounted, reactive, resolveDirective, shallowRef, useModel, watch, withDirectives } from "vue";
9
+ import { computed, createTextVNode, createVNode, defineComponent, mergeProps, nextTick, onMounted, reactive, resolveDirective, shallowRef, toRef, useModel, watch, withDirectives } from "vue";
10
10
  import { Expand, Fold } from "@element-plus/icons-vue";
11
11
  import { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from "element-plus";
12
12
  //#region src/components/tree/src/tree.tsx
@@ -330,7 +330,7 @@ var tree_default = defineComponent({
330
330
  /** @description 在 Tree 中给定节点后插入一个节点 */
331
331
  insertAfter: computed(() => treeRef.value?.insertAfter),
332
332
  /** @description 加载状态 */
333
- loading: computed(() => state.loading),
333
+ loading: toRef(state, "loading"),
334
334
  /** @description 刷新 */
335
335
  refresh: loadData
336
336
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, shallowRef, useModel, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义。 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义。 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string) => typeof value === \"string\" || value === null,\n\t/** @description 数据改变 */\n\tdataChange: (data: ElTreeOutput[]) => Array.isArray(data),\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => true,\n\t/** @description 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => true,\n};\n\n/** FaTree 的插槽参数。 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst treeRef = shallowRef<InstanceType<typeof ElTree> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\toriginalTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\tlet requestVersion = 0;\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.originalTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst loadData = async () => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = {\n\t\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\t\tsearchValue: state.searchValue,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.originalTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChange\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = () => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.originalTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.originalTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode) => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent) => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data[\"all\"] || (node.key !== undefined && node.key !== null)) {\n\t\t\t\tconst value = data[\"all\"] ? props.allValue : node.key;\n\t\t\t\tif (!isEqual(state.value, value)) {\n\t\t\t\t\tstate.value = value;\n\t\t\t\t\tselectedLabel.value = node.label;\n\t\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\t\temit(\"change\", data, node, instance, event);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 node-click,需要保持原始名称透传。\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.hamburger,\n\t\t\t(newValue) => {\n\t\t\t\tstate.hamburger = newValue;\n\t\t\t},\n\t\t\t{ immediate: 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) {\n\t\t\t\t\treturn loadData();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** @description 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, onMounted, reactive, shallowRef, toRef, useModel, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义。 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: () => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义。 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string) => typeof value === \"string\" || value === null,\n\t/** @description 数据改变 */\n\tdataChange: (data: ElTreeOutput[]) => Array.isArray(data),\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => true,\n\t/** @description 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => true,\n};\n\n/** FaTree 的插槽参数。 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst treeRef = shallowRef<InstanceType<typeof ElTree> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\toriginalTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\tlet requestVersion = 0;\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.originalTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst loadData = async () => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = {\n\t\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\t\tsearchValue: state.searchValue,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.originalTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChange\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = () => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.originalTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.originalTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode) => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent) => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data[\"all\"] || (node.key !== undefined && node.key !== null)) {\n\t\t\t\tconst value = data[\"all\"] ? props.allValue : node.key;\n\t\t\t\tif (!isEqual(state.value, value)) {\n\t\t\t\t\tstate.value = value;\n\t\t\t\t\tselectedLabel.value = node.label;\n\t\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\t\temit(\"change\", data, node, instance, event);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 node-click,需要保持原始名称透传。\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.hamburger,\n\t\t\t(newValue) => {\n\t\t\t\tstate.hamburger = newValue;\n\t\t\t},\n\t\t\t{ immediate: 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) {\n\t\t\t\t\treturn loadData();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t});\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** @description 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}