fast-element-plus 2.0.16 → 2.0.17

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 (116) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/component.d.ts +6570 -2
  3. package/dist/component.mjs.map +1 -1
  4. package/dist/components/avatar/src/avatar.d.ts +19 -7
  5. package/dist/components/avatar/src/avatar.mjs +5 -0
  6. package/dist/components/avatar/src/avatar.mjs.map +1 -1
  7. package/dist/components/button/src/button.d.ts +4 -4
  8. package/dist/components/button/src/button.mjs +3 -4
  9. package/dist/components/button/src/button.mjs.map +1 -1
  10. package/dist/components/carNumber/src/carNumber.mjs +7 -9
  11. package/dist/components/carNumber/src/carNumber.mjs.map +1 -1
  12. package/dist/components/contextMenu/src/contextMenu.mjs +8 -7
  13. package/dist/components/contextMenu/src/contextMenu.mjs.map +1 -1
  14. package/dist/components/dialog/src/dialog.d.ts +7 -4
  15. package/dist/components/dialog/src/dialog.mjs +6 -7
  16. package/dist/components/dialog/src/dialog.mjs.map +1 -1
  17. package/dist/components/drawer/src/drawer.mjs +14 -14
  18. package/dist/components/drawer/src/drawer.mjs.map +1 -1
  19. package/dist/components/form/src/form.d.ts +36 -24
  20. package/dist/components/form/src/form.mjs +8 -9
  21. package/dist/components/form/src/form.mjs.map +1 -1
  22. package/dist/components/form/src/formItem.d.ts +3 -3
  23. package/dist/components/form/src/formItem.mjs +18 -17
  24. package/dist/components/form/src/formItem.mjs.map +1 -1
  25. package/dist/components/form/utils/form.d.ts +2 -2
  26. package/dist/components/form/utils/form.mjs +2 -2
  27. package/dist/components/form/utils/form.mjs.map +1 -1
  28. package/dist/components/icon/src/icon.mjs.map +1 -1
  29. package/dist/components/iconSelector/src/iconSelector.d.ts +2 -2
  30. package/dist/components/iconSelector/src/iconSelector.mjs +4 -5
  31. package/dist/components/iconSelector/src/iconSelector.mjs.map +1 -1
  32. package/dist/components/image/src/image.d.ts +1 -1
  33. package/dist/components/image/src/image.mjs +2 -2
  34. package/dist/components/image/src/image.mjs.map +1 -1
  35. package/dist/components/inputDialogPage/src/inputDialogPage.mjs +10 -12
  36. package/dist/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
  37. package/dist/components/layoutGrid/src/layoutGrid.d.ts +23 -11
  38. package/dist/components/layoutGrid/src/layoutGrid.mjs +42 -43
  39. package/dist/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
  40. package/dist/components/layoutGrid/src/layoutGrid.type.d.ts +1 -1
  41. package/dist/components/layoutGrid/src/layoutGridItem.mjs +13 -14
  42. package/dist/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  43. package/dist/components/select/src/select.d.ts +27 -12
  44. package/dist/components/select/src/select.mjs +46 -44
  45. package/dist/components/select/src/select.mjs.map +1 -1
  46. package/dist/components/select/src/selectOption.mjs +4 -5
  47. package/dist/components/select/src/selectOption.mjs.map +1 -1
  48. package/dist/components/selectPage/src/selectPage.d.ts +24 -9
  49. package/dist/components/selectPage/src/selectPage.mjs +45 -52
  50. package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
  51. package/dist/components/selectV2/src/selectV2.d.ts +49 -29
  52. package/dist/components/selectV2/src/selectV2.mjs +64 -62
  53. package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
  54. package/dist/components/table/src/table.d.ts +63 -29
  55. package/dist/components/table/src/table.mjs +77 -81
  56. package/dist/components/table/src/table.mjs.map +1 -1
  57. package/dist/components/table/src/table.type.d.ts +2 -2
  58. package/dist/components/table/src/table.type.mjs.map +1 -1
  59. package/dist/components/table/src/tableColumn.d.ts +7 -7
  60. package/dist/components/table/src/tableColumn.mjs +17 -30
  61. package/dist/components/table/src/tableColumn.mjs.map +1 -1
  62. package/dist/components/table/src/tableColumnSettingDialog.mjs +24 -14
  63. package/dist/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  64. package/dist/components/table/src/tablePagination.mjs +2 -3
  65. package/dist/components/table/src/tablePagination.mjs.map +1 -1
  66. package/dist/components/table/src/tableSearchForm.d.ts +4 -4
  67. package/dist/components/table/src/tableSearchForm.mjs +24 -27
  68. package/dist/components/table/src/tableSearchForm.mjs.map +1 -1
  69. package/dist/components/table/src/tableSearchFormItem.d.ts +1 -7
  70. package/dist/components/table/src/tableSearchFormItem.mjs +3 -6
  71. package/dist/components/table/src/tableSearchFormItem.mjs.map +1 -1
  72. package/dist/components/table/src/useTable.d.ts +4 -4
  73. package/dist/components/table/src/useTable.mjs +13 -14
  74. package/dist/components/table/src/useTable.mjs.map +1 -1
  75. package/dist/components/table/utils/table.mjs +5 -7
  76. package/dist/components/table/utils/table.mjs.map +1 -1
  77. package/dist/components/tree/src/tree.d.ts +6 -6
  78. package/dist/components/tree/src/tree.mjs +28 -26
  79. package/dist/components/tree/src/tree.mjs.map +1 -1
  80. package/dist/components/treeSelect/src/treeSelect.d.ts +30 -27
  81. package/dist/components/treeSelect/src/treeSelect.mjs +45 -43
  82. package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
  83. package/dist/components/upload/src/upload.d.ts +1 -1
  84. package/dist/components/upload/src/upload.mjs +4 -5
  85. package/dist/components/upload/src/upload.mjs.map +1 -1
  86. package/dist/components/upload/src/useUpload.mjs +5 -7
  87. package/dist/components/upload/src/useUpload.mjs.map +1 -1
  88. package/dist/components/upload/utils/upload.mjs +1 -1
  89. package/dist/components/upload/utils/upload.mjs.map +1 -1
  90. package/dist/components/uploadImage/src/uploadImage.d.ts +1 -1
  91. package/dist/components/uploadImage/src/uploadImage.mjs +7 -8
  92. package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
  93. package/dist/components/uploadImages/src/uploadImages.d.ts +1 -1
  94. package/dist/components/uploadImages/src/uploadImages.mjs +7 -8
  95. package/dist/components/uploadImages/src/uploadImages.mjs.map +1 -1
  96. package/dist/directives/click-copy/index.mjs +5 -9
  97. package/dist/directives/click-copy/index.mjs.map +1 -1
  98. package/dist/element-plus.mjs +5 -6
  99. package/dist/element-plus.mjs.map +1 -1
  100. package/dist/hooks/use-screenFull/index.mjs.map +1 -1
  101. package/dist/index.css +1 -1
  102. package/dist/index.css.map +1 -1
  103. package/dist/index.global.min.js +4 -4
  104. package/dist/index.global.min.js.map +1 -1
  105. package/dist/utils/index.d.ts +1 -0
  106. package/dist/utils/object/index.d.ts +8 -0
  107. package/dist/utils/object/index.mjs +113 -0
  108. package/dist/utils/object/index.mjs.map +1 -0
  109. package/dist/utils/string/index.mjs.map +1 -1
  110. package/dist/utils/vue/emits.mjs.map +1 -1
  111. package/dist/utils/vue/install.mjs.map +1 -1
  112. package/dist/utils/vue/render.mjs.map +1 -1
  113. package/dist/version.d.ts +1 -1
  114. package/dist/version.mjs +1 -1
  115. package/dist/version.mjs.map +1 -1
  116. package/package.json +4 -9
@@ -1 +1 @@
1
- {"version":3,"file":"tableSearchForm.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"../../../utils\";\nimport { FaDrawer } from \"../../drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"../../layoutGrid\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaDrawerInstance } from \"../../drawer\";\nimport type { FaLayoutGridBreakPoint, FaLayoutGridInstance, FaLayoutGridItemResponsive } from \"../../layoutGrid\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\n\ntype FaTableSearchFormSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Partial<Record<FaLayoutGridBreakPoint, number>>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = ref<FaLayoutGridInstance>();\n\n\t\tconst tableState = inject(tableStateKey);\n\t\tif (tableState === undefined) throw new Error(\"FaTableSearchForm 必须在 FaTable 内部渲染。\");\n\n\t\tconst breakPoint = computed<FaLayoutGridBreakPoint>(() => gridRef.value?.breakPoint ?? \"xl\");\n\t\tconst getColumnCount = (value: FaLayoutGridBreakPoint): number => {\n\t\t\tif (typeof props.cols === \"number\") return props.cols;\n\t\t\tif (typeof props.cols === \"object\") return props.cols[value] ?? 1;\n\t\t\treturn Number(props.cols) || 1;\n\t\t};\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tconst search = current.search;\n\t\t\t\t\tif (search === undefined) return prev;\n\t\t\t\t\tprev += (search[breakPoint.value]?.span ?? search.span ?? 1) + (search[breakPoint.value]?.offset ?? search.offset ?? 0);\n\t\t\t\t\tif (prev >= getColumnCount(breakPoint.value)) show = true;\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tbreakPoint: 0,\n\t\t});\n\n\t\tconst faTableSearchFormRef = ref<HTMLElement>();\n\t\tconst advancedSearchRef = ref<FaDrawerInstance>();\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (\n\t\t\titem: FaTableSearchColumnCtx\n\t\t): { span: number; offset: number } & Partial<Record<FaLayoutGridBreakPoint, FaLayoutGridItemResponsive>> => {\n\t\t\treturn {\n\t\t\t\tspan: item.span ?? 1,\n\t\t\t\toffset: item.offset ?? 0,\n\t\t\t\txs: item.xs,\n\t\t\t\tsm: item.sm,\n\t\t\t\tmd: item.md,\n\t\t\t\tlg: item.lg,\n\t\t\t\txl: item.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakPointChange = ({ breakPoint }: { breakPoint: FaLayoutGridBreakPoint }): void => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.breakPoint = getColumnCount(breakPoint) - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f.show).slice(0, state.breakPoint);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f.show).slice(state.breakPoint);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.breakPoint) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f.show).slice(0, state.breakPoint);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f.show).slice(state.breakPoint);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\t// @ts-expect-error Element Plus 的递归 Props 在此处触发类型实例化深度限制。\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() =>\n\t\t\ttableState.searchColumns.length > 0 ? (\n\t\t\t\t<div\n\t\t\t\t\tref={faTableSearchFormRef}\n\t\t\t\t\tclass={[\n\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\tgap={_globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\tonBreakPointChange={handleBreakPointChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) =>\n\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.search.key ?? item.prop} data-index={index} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\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\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\tonClick={props.search}\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</ElButton>\n\t\t\t\t\t\t\t\t\t\t<ElButton loading={tableState.loading} loadingIcon={Eleme} title=\"重置\" icon={Brush} onClick={props.reset}>\n\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\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\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\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\t\t\tonClick={() => advancedSearchRef.value?.open()}\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\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\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: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\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\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\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\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</form>\n\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\tonConfirmClick={props.search}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item) =>\n\t\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item.search.key} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\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\t\t<FaTableSearchFormItem column={item} search={props.search} />\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div />\n\t\t\t)\n\t\t);\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"tableSearchForm.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, onWatcherCleanup, reactive, shallowRef, watch } from \"vue\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"../../../utils\";\nimport { FaDrawer } from \"../../drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"../../layoutGrid\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaDrawerInstance } from \"../../drawer\";\nimport type { FaLayoutGridBreakpoint, FaLayoutGridInstance } from \"../../layoutGrid\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\n\ntype FaTableSearchFormSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Partial<Record<FaLayoutGridBreakpoint, number>>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = shallowRef<FaLayoutGridInstance | null>(null);\n\t\tconst advancedSearchRef = shallowRef<FaDrawerInstance | null>(null);\n\n\t\tconst tableState = inject(tableStateKey);\n\t\tif (tableState === undefined) throw new Error(\"FaTableSearchForm 必须在 FaTable 内部渲染。\");\n\n\t\tconst breakpoint = computed<FaLayoutGridBreakpoint>(() => gridRef.value?.breakpoint ?? \"xl\");\n\t\tconst getColumnCount = (value: FaLayoutGridBreakpoint) => {\n\t\t\tif (typeof props.cols === \"number\") return props.cols;\n\t\t\tif (typeof props.cols === \"object\") return props.cols[value] ?? 1;\n\t\t\treturn Number(props.cols) || 1;\n\t\t};\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tconst search = current.search;\n\t\t\t\t\tif (search === undefined) return prev;\n\t\t\t\t\tprev += (search[breakpoint.value]?.span ?? search.span ?? 1) + (search[breakpoint.value]?.offset ?? search.offset ?? 0);\n\t\t\t\t\tif (prev >= getColumnCount(breakpoint.value)) show = true;\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tinlineColumnCount: 0,\n\t\t});\n\n\t\t// @ts-expect-error Element Plus 的递归 Props 在此处触发类型实例化深度限制。\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (item: FaTableSearchColumnCtx) => {\n\t\t\treturn {\n\t\t\t\tspan: item.span ?? 1,\n\t\t\t\toffset: item.offset ?? 0,\n\t\t\t\txs: item.xs,\n\t\t\t\tsm: item.sm,\n\t\t\t\tmd: item.md,\n\t\t\t\tlg: item.lg,\n\t\t\t\txl: item.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakpointChange = ({ breakpoint }: { breakpoint: FaLayoutGridBreakpoint }) => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.inlineColumnCount = getColumnCount(breakpoint) - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f.show).slice(0, state.inlineColumnCount);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f.show).slice(state.inlineColumnCount);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.inlineColumnCount) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f.show).slice(0, state.inlineColumnCount);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f.show).slice(state.inlineColumnCount);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tconst refreshTimer = setTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t\tonWatcherCleanup(() => clearTimeout(refreshTimer));\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() =>\n\t\t\ttableState.searchColumns.length > 0 ? (\n\t\t\t\t<div\n\t\t\t\t\tclass={[\n\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\tgap={globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\tonBreakpointChange={handleBreakpointChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) =>\n\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.search.key ?? item.prop} data-index={index} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\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\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\tonClick={props.search}\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</ElButton>\n\t\t\t\t\t\t\t\t\t\t<ElButton loading={tableState.loading} loadingIcon={Eleme} title=\"重置\" icon={Brush} onClick={props.reset}>\n\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\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\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\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\t\t\tonClick={() => advancedSearchRef.value?.open()}\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\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\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: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\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\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\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\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</form>\n\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\tonConfirmClick={props.search}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item) =>\n\t\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item.search.key} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\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\t\t<FaTableSearchFormItem column={item} search={props.search} />\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div />\n\t\t\t)\n\t\t);\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;AAYwG,SAAA,QAAA,GAAA;CAAA,OAAA,OAAA,MAAA,cAAA,OAAA,UAAA,SAAA,KAAA,CAAA,MAAA,qBAAA,CAAA,QAAA,CAAA;AAAA;AAUxG,IAAA,0BAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;;EAEN,MAAM;GACL,MAAM;GACN,UAAU;EACX;;EAEA,iBAAiB;GAChB,MAAM;GACN,SAAS;EACV;;EAEA,sBAAsB;GACrB,MAAM;GACN,SAAS;EACV;;EAEA,MAAM;GACL,MAAM,eAAkF;IAAC;IAAQ;IAAQ;GAAM,CAAC;GAChH,gBAAgB;IAAE,IAAI;IAAG,IAAI;IAAG,IAAI;IAAG,IAAI;IAAG,IAAI;GAAE;EACrD;;EAEA,QAAQ;GACP,MAAM,eAAoC,QAAQ;GAClD,UAAU;EACX;;EAEA,OAAO;GACN,MAAM,eAAoC,QAAQ;GAClD,UAAU;EACX;CACD;CACA,OAAO,UAAkC;CACzC,MAAM,OAAO,EAAE,SAAS;EACvB,MAAM,aAAa,cAAc;EAGjC,MAAM,UAAU,WAAwC,IAAI;EAC5D,MAAM,oBAAoB,WAAoC,IAAI;EAElE,MAAM,aAAa,OAAO,aAAa;EACvC,IAAI,eAAe,KAAA,GAAW,MAAM,IAAI,MAAM,qCAAqC;EAEnF,MAAM,aAAa,eAAuC,QAAQ,OAAO,cAAc,IAAI;EAC3F,MAAM,kBAAkB,UAAkC;GACzD,IAAI,OAAO,MAAM,SAAS,UAAU,OAAO,MAAM;GACjD,IAAI,OAAO,MAAM,SAAS,UAAU,OAAO,MAAM,KAAK,UAAU;GAChE,OAAO,OAAO,MAAM,IAAI,KAAK;EAC9B;EAEA,MAAM,QAAQ,SAAS;GACtB,YAAY;GACZ,QAAQ;;GAER,WAAW;;GAEX,eAAe,eAAe;IAC7B,IAAI,OAAO;IACX,WAAW,cAAc,QAAQ,MAAM,YAAY;KAClD,MAAM,SAAS,QAAQ;KACvB,IAAI,WAAW,KAAA,GAAW,OAAO;KACjC,SAAS,OAAO,WAAW,MAAM,EAAE,QAAQ,OAAO,QAAQ,MAAM,OAAO,WAAW,MAAM,EAAE,UAAU,OAAO,UAAU;KACrH,IAAI,QAAQ,eAAe,WAAW,KAAK,GAAG,OAAO;KACrD,OAAO;IACR,GAAG,CAAC;IACJ,OAAO;GACR,CAAC;GACD,eAAe,eAAmC,CAAA,CAAE;GACpD,uBAAuB,eAAmC,CAAA,CAAE;GAC5D,mBAAmB;EACpB,CAAC;EAGD,MAAM,gBAAgB,eAAgB,MAAM,uBAAuB,MAAM,gBAAgB,WAAW,aAAc;EAGlH,MAAM,iBAAiB,SAAiC;GACvD,OAAO;IACN,MAAM,KAAK,QAAQ;IACnB,QAAQ,KAAK,UAAU;IACvB,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;GACV;EACD;EAEA,MAAM,0BAA0B,EAAE,iBAAyD;GAE1F,MAAM,oBAAoB,eAAe,UAAU,IAAI;GACvD,MAAM,gBAAgB,WAAW,cAAc,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,iBAAiB;GACrG,MAAM,wBAAwB,WAAW,cAAc,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,MAAM,iBAAiB;EAC3G;EAEA,YACO,WAAW,qBACX;GACL,IAAI,MAAM,mBAAmB;IAC5B,MAAM,gBAAgB,WAAW,cAAc,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM,iBAAiB;IACrG,MAAM,wBAAwB,WAAW,cAAc,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,MAAM,iBAAiB;GAC3G;EACD,CACD;EAEA,YACO,MAAM,uBACX,aAAa;GACb,IAAI,UAEH,MAAM,YAAY;QAElB,MAAM,YAAY,MAAM;GAEzB,MAAM,aAAa;GACnB,MAAM,eAAe,iBAAiB;IACrC,MAAM,aAAa;GACpB,GAAG,CAAC;GACJ,uBAAuB,aAAa,YAAY,CAAC;EAClD,CACD;EAEA,YACO,MAAM,kBACX,aAAa;GACb,IAAI,CAAC,MAAM,iBACV,MAAM,YAAY;QAGlB,MAAM,YAAY;EAEpB,GACA,EACC,WAAW,KACZ,CACD;EAEA,gBAAU;GAAA,IAAA;GAAA,OACT,WAAW,cAAc,SAAS,IAAC,YAAA,OAAA,EAAA,SAE1B,CACN,4BACA;IACC,2BAA2B,CAAC,MAAM;IAClC,6BAA6B,WAAW;GACzC,CAAC,EACD,GAAA,CAAA,YAAA,QAAA,EAAA,SAAA,gDAAA,GAAA,CAGC,CAAC,MAAM,cAAU,YAAA,cAAA;IAAA,OAEX;IAAO,aACD,MAAM;IAAS,OACrB,WAAW,UAAU,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IAAC,QAChD,MAAM;IAAI,sBACI;GAAsB,GAAA,EAAA,eAAA,CAEzC,cAAc,MAAM,KAAK,MAAM,UAC/B,KAAK,SAAM,YAAA,kBAAA,WAAA;IAAA,OACa,KAAK,OAAO,OAAO,KAAK;IAAI,cAAc;GAAK,GAAM,cAAc,KAAK,MAAM,CAAC,GAAA,EAAA,eAAA,CAAA,YAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,CAAA,YAAA,SAAA,EAAA,SAAA,sBAAA,GAAA,CAEhE,KAAK,OAAO,KAAK,CAAA,GAAA,YAAA,OAAA,EAAA,SAAA,wBAAA,GAAA,CAEnD,KAAK,OAAO,OACZ,MAAM,KAAK,OAAO,KAAK,GAAG;IACzB,QAAQ;IACR,QAAQ,MAAM;IACd,GAAG,qBAAqB,UAAU;GACnC,CAAC,IAAC,YAAA,6BAAA;IAAA,UAE6B;IAAI,UAAU,MAAM;GAAM,GAAA,IAAA,CACzD,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAID,IACL,GAAC,YAAA,kBAAA,EAAA,UAAA,KAAA,GAAA,EAAA,eAAA,CAAA,YAAA,OAAA,EAAA,SAAA,6BAAA,GAAA;IAAA,YAAA,UAAA;KAAA,WAIW,WAAW;KAAO,eACd;KAAK,SAAA;KAAA,QAAA;KAAA,SAAA;KAAA,QAIZ;KAAO,WACJ,MAAM;IAAM,GAAA,EAAA,eAAA,CAAA,gBAAA,IAAA,CAAA,EAAA,CAAA;IAAA,YAAA,UAAA;KAAA,WAIH,WAAW;KAAO,eAAe;KAAK,SAAA;KAAA,QAAmB;KAAK,WAAW,MAAM;IAAK,GAAA,EAAA,eAAA,CAAA,gBAAA,IAAA,CAAA,EAAA,CAAA;IAGtG,MAAM,uBACJ,MAAM,sBAAsB,SAAS,KAAC,YAAA,UAAA;KAAA,WAE5B,WAAW;KAAO,eACd;KAAK,SAAA;KAAA,QAAA;KAAA,SAAA;KAAA,QAIZ;KAAM,iBACG,kBAAkB,OAAO,KAAK;IAAC,GAAA,EAAA,eAAA,CAAA,gBAAA,MAAA,CAAA,EAAA,CAAA,IAK/C,MAAM,iBAAa,YAAA,UAAA;KAAA,WAET,WAAW;KAAO,eACd;KAAK,SACX,MAAM,YAAY,OAAO;KAAI,QAAA;KAAA,QAAA;KAAA,iBAGrB;MACd,MAAM,YAAY,CAAC,MAAM;KAC1B;IAAC,GAAA,EAAA,eAAA,CAEA,MAAM,YAAY,OAAO,MAAI,YAAA,QAAA,MAAA,EAAA,eAAA,CACrB,MAAM,YAAS,YAAA,WAAA,MAAA,IAAA,IAAA,YAAA,SAAA,MAAA,IAAA,CAA8B,EAAA,CAAA,CAAA,EAAA,CAAA;GAEvD,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAIN,CAAA,GAED,MAAM,wBAAwB,MAAM,sBAAsB,SAAS,KAAC,YAAA,UAAA;IAAA,OAE9D;IAAiB,SAAA;IAAA,QAAA;IAAA,SAAA;IAAA,gBAIR;IAAK,mBACF;IAAK,qBACH;IAAK,kBACR;IAAK,eACR;IAAK,kBACF,MAAM;GAAM,GAAA,EAAA,eAAA,CAAA,YAAA,QAAA,EAAA,SAAA,8CAAA,GAAA,CAAA,YAAA,cAAA;IAAA,OAGR,CAAC,IAAI,CAAC;IAAC,QAAQ;KAAE,IAAI;KAAG,IAAI;KAAG,IAAI;KAAG,IAAI;KAAG,IAAI;IAAE;GAAC,GAAA,QAAA,QACrE,MAAM,sBAAsB,KAAK,SACjC,KAAK,SAAM,YAAA,kBAAA,WAAA,EAAA,OACa,KAAK,QAAQ,KAAK,OAAO,IAAG,GAAM,cAAc,KAAK,MAAM,CAAC,GAAA,EAAA,eAAA,CAAA,YAAA,OAAA,EAAA,SAAA,6DAAA,GAAA,CAAA,YAAA,SAAA,EAAA,SAAA,sBAAA,GAAA,CAE7C,KAAK,OAAO,KAAK,CAAA,GAAA,YAAA,OAAA,EAAA,SAAA,wBAAA,GAAA,CAEnD,KAAK,OAAO,OACZ,MAAM,KAAK,OAAO,KAAK,GAAG;IACzB,QAAQ;IACR,QAAQ,MAAM;IACd,GAAG,qBAAqB,UAAU;GACnC,CAAC,IAAC,YAAA,6BAAA;IAAA,UAE6B;IAAI,UAAU,MAAM;GAAM,GAAA,IAAA,CACzD,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAID,IACL,CAAC,IAAA,QAAA,EAAA,eAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAIJ,CAAA,IAAA,YAAA,OAAA,MAAA,IAAA;EAIF,CACF;CACD;AACD,CAAC"}
@@ -8,8 +8,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
8
8
  column: {
9
9
  type: import("vue").PropType<FaTableColumnCtx>;
10
10
  required: true;
11
- /** 这里的 default 不知道为什么,不写识别不出来类型 */
12
- default: {};
13
11
  };
14
12
  /** @description 搜索 */
15
13
  search: {
@@ -21,15 +19,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
21
19
  column: {
22
20
  type: import("vue").PropType<FaTableColumnCtx>;
23
21
  required: true;
24
- /** 这里的 default 不知道为什么,不写识别不出来类型 */
25
- default: {};
26
22
  };
27
23
  /** @description 搜索 */
28
24
  search: {
29
25
  type: import("vue").PropType<() => Promise<void>>;
30
26
  required: true;
31
27
  };
32
- }>> & Readonly<{}>, {
33
- column: FaTableColumnCtx;
34
- }, import("../../../utils").TypedSlotsDeclaration<FaTableSearchFormItemSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
28
+ }>> & Readonly<{}>, {}, import("../../../utils").TypedSlotsDeclaration<FaTableSearchFormItemSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
35
29
  export default _default;
@@ -7,7 +7,6 @@ import { getTableDefaultSlots } from "./table.type.mjs";
7
7
  import { enumMapKey, tableStateKey } from "./useTable.mjs";
8
8
  import { Fragment, createVNode, defineComponent, h, inject, reactive, resolveComponent } from "vue";
9
9
  import { ElOption } from "element-plus";
10
- import { isString } from "lodash-unified";
11
10
  //#region src/components/table/src/tableSearchFormItem.tsx
12
11
  /**
13
12
  * 已知默认支持的el组件:
@@ -100,9 +99,7 @@ var tableSearchFormItem_default = defineComponent({
100
99
  /** @description 列配置 */
101
100
  column: {
102
101
  type: definePropType(Object),
103
- required: true,
104
- /** 这里的 default 不知道为什么,不写识别不出来类型 */
105
- default: {}
102
+ required: true
106
103
  },
107
104
  /** @description 搜索 */
108
105
  search: {
@@ -117,7 +114,7 @@ var tableSearchFormItem_default = defineComponent({
117
114
  if (tableState === void 0 || enumMap === void 0) throw new Error("FaTableSearchFormItem 必须在 FaTable 内部渲染。");
118
115
  const state = reactive({ enumDict: withDefineType([]) });
119
116
  const handleUpdateModelValue = (value) => {
120
- if (isString(value)) value = value.trim();
117
+ if (typeof value === "string") value = value.trim();
121
118
  const searchKey = props.column.search?.key ?? props.column.prop;
122
119
  if (searchKey) tableState.searchParam[searchKey] = value;
123
120
  };
@@ -167,7 +164,7 @@ var tableSearchFormItem_default = defineComponent({
167
164
  "ElTreeSelect"
168
165
  ].includes(search.el)) {
169
166
  let enumData;
170
- if (props.column.enum && isString(props.column.enum)) enumData = enumMap.get(props.column.enum);
167
+ if (props.column.enum && typeof props.column.enum === "string") enumData = enumMap.get(props.column.enum);
171
168
  else {
172
169
  const enumKey = props.column.prop ?? search.key;
173
170
  enumData = enumKey ? enumMap.get(enumKey) : void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"tableSearchFormItem.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchFormItem.tsx"],"sourcesContent":["import { Fragment, defineComponent, h, inject, reactive, resolveComponent } from \"vue\";\nimport { ElOption } from \"element-plus\";\nimport { isString } from \"lodash-unified\";\nimport {\n\tcreateDateRangeShortcuts,\n\tcreateDateShortcuts,\n\tcreateOneMonthRangeFromToday,\n\tdefinePropType,\n\tgetStartOfToday,\n\tmakeSlots,\n\tuseRender,\n\twithDefineType,\n} from \"../../../utils\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableEnumColumnCtx } from \"./table.type\";\n\n/**\n * 已知默认支持的el组件:\n * \tel-input\n * \tel-input-number\n * \tel-select\n * \tel-select-v2\n * \tel-tree-select\n * \tel-cascader\n * \tel-date-picker\n * \tel-time-picker\n * \tel-time-select,\n * \tel-switch\n * 已知组件的默认props\n * clearable:el-input,el-input-number,el-select,el-select-v2,el-tree-select,el-cascader,el-date-picker,el-time-picker,el-time-select\n * filterable:el-select,el-select-v2,el-tree-select\n * placeholder-请输入:el-input,el-input-number\n * placeholder-请选择:el-select,el-select-v2,el-tree-select,el-cascader\n * defaultTime:el-date-picker\n * shortcuts:el-date-picker\n * options:el-select-v2,el-cascader\n * data:el-tree-select\n * startPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * endPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * rangeSeparator:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * unlinkPanels:el-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * 后缀 -select Select -page Page -cascader Cascader 结尾的\n * \tplaceholder:请选择\n * 后缀 -input Input 结尾的\n * \tplaceholder:请输入\n */\n\nconst clearableEls = [\n\t\"el-input\",\n\t\"ELInput\",\n\t\"el-input-number\",\n\t\"ELInputNumber\",\n\t\"el-select\",\n\t\"ElSelect\",\n\t\"el-select-v2\",\n\t\"ElSelectV2\",\n\t\"el-tree-select\",\n\t\"ElTreeSelect\",\n\t\"el-cascader\",\n\t\"ElCascader\",\n\t\"el-date-picker\",\n\t\"ElDatePicker\",\n\t\"el-time-picker\",\n\t\"ElTimePicker\",\n\t\"el-time-select\",\n\t\"ElTimeSelect\",\n];\n\nconst elInputEls = [\"el-input\", \"ElInput\", \"ELInput\"];\n\ntype FaTableSearchFormItemSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nconst filterableEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\"];\n\nconst inputPlaceholderEls = [\"el-input\", \"ELInput\", \"el-input-number\", \"ELInputNumber\"];\n\nconst selectPlaceholderEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\", \"el-cascader\", \"ElCascader\"];\n\nexport default defineComponent({\n\tname: \"FaTableSearchFormItem\",\n\tprops: {\n\t\t/** @description 列配置 */\n\t\tcolumn: {\n\t\t\ttype: definePropType<FaTableColumnCtx>(Object),\n\t\t\trequired: true,\n\t\t\t/** 这里的 default 不知道为什么,不写识别不出来类型 */\n\t\t\tdefault: {},\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormItemSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\t\tif (tableState === undefined || enumMap === undefined) {\n\t\t\tthrow new Error(\"FaTableSearchFormItem 必须在 FaTable 内部渲染。\");\n\t\t}\n\n\t\tconst state = reactive({\n\t\t\tenumDict: withDefineType<FaTableEnumColumnCtx[]>([]),\n\t\t});\n\n\t\tconst handleUpdateModelValue = (value: unknown): void => {\n\t\t\tif (isString(value)) {\n\t\t\t\t// 如果是字符串,则去除前后空格\n\t\t\t\tvalue = value.trim();\n\t\t\t}\n\t\t\tconst searchKey = props.column.search?.key ?? props.column.prop;\n\t\t\tif (searchKey) tableState.searchParam[searchKey] = value;\n\t\t};\n\n\t\tconst handleChange = (_value: unknown): void => {\n\t\t\tprops.search();\n\t\t};\n\n\t\tconst handleDefaultProps = (): Record<string, unknown> => {\n\t\t\tconst search = props.column.search;\n\t\t\tconst defaultProps: Record<string, unknown> = {};\n\t\t\tif (!search) return defaultProps;\n\t\t\tif (clearableEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"clearable\"] = true;\n\t\t\t}\n\t\t\tif (filterableEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"filterable\"] = true;\n\t\t\t}\n\t\t\tif (inputPlaceholderEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"placeholder\"] = \"请输入\";\n\t\t\t}\n\t\t\tif (selectPlaceholderEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"placeholder\"] = \"请选择\";\n\t\t\t}\n\t\t\tif ([\"el-date-picker\", \"ElDatePicker\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"unlinkPanels\"] = true;\n\t\t\t\tif (\n\t\t\t\t\ttypeof search.props?.[\"type\"] === \"string\" &&\n\t\t\t\t\t[\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"].includes(search.props[\"type\"])\n\t\t\t\t) {\n\t\t\t\t\tdefaultProps[\"defaultTime\"] = createOneMonthRangeFromToday();\n\t\t\t\t\tdefaultProps[\"shortcuts\"] = createDateRangeShortcuts();\n\t\t\t\t\tdefaultProps[\"rangeSeparator\"] = \"至\";\n\t\t\t\t\tdefaultProps[\"startPlaceholder\"] = \"开始时间\";\n\t\t\t\t\tdefaultProps[\"endPlaceholder\"] = \"结束时间\";\n\t\t\t\t} else {\n\t\t\t\t\tdefaultProps[\"defaultTime\"] = getStartOfToday();\n\t\t\t\t\tdefaultProps[\"shortcuts\"] = createDateShortcuts();\n\t\t\t\t\tdefaultProps[\"placeholder\"] = \"请选择\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ([\"el-time-picker\", \"ElTimePicker\"].includes(search.el) && search.props?.[\"isRange\"]) {\n\t\t\t\tdefaultProps[\"rangeSeparator\"] = \"至\";\n\t\t\t\tdefaultProps[\"startPlaceholder\"] = \"开始时间\";\n\t\t\t\tdefaultProps[\"endPlaceholder\"] = \"结束时间\";\n\t\t\t}\n\t\t\tif (\n\t\t\t\t[\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\", \"el-tree-select\", \"ElTreeSelect\"].includes(\n\t\t\t\t\tsearch.el\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tlet enumData: FaTableEnumColumnCtx[] | undefined;\n\t\t\t\tif (props.column.enum && isString(props.column.enum)) {\n\t\t\t\t\tenumData = enumMap.get(props.column.enum);\n\t\t\t\t} else {\n\t\t\t\t\tconst enumKey = props.column.prop ?? search.key;\n\t\t\t\t\tenumData = enumKey ? enumMap.get(enumKey) : undefined;\n\t\t\t\t}\n\t\t\t\tenumData = enumData?.filter((item) => item.show !== false);\n\t\t\t\tstate.enumDict = enumData ?? [];\n\t\t\t}\n\t\t\tif ([\"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"options\"] = state.enumDict;\n\t\t\t}\n\t\t\tif ([\"el-tree-select\", \"ElTreeSelect\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"data\"] = state.enumDict;\n\t\t\t}\n\n\t\t\treturn defaultProps;\n\t\t};\n\n\t\tuseRender(() => {\n\t\t\tconst search = props.column.search;\n\t\t\tconst searchKey = search?.key ?? props.column.prop;\n\t\t\tif (!search?.el || !searchKey) return <Fragment />;\n\t\t\tconst value: unknown = tableState.searchParam[searchKey];\n\t\t\tconst inputClearable = search.props?.[\"clearable\"] !== false && value !== undefined && value !== null && value !== \"\";\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{h(\n\t\t\t\t\t\tresolveComponent(search.el),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...handleDefaultProps(),\n\t\t\t\t\t\t\t...search.props,\n\t\t\t\t\t\t\t...(elInputEls.includes(search.el) ? { clearable: inputClearable } : {}),\n\t\t\t\t\t\t\tmodelValue: value,\n\t\t\t\t\t\t\t\"onUpdate:modelValue\": handleUpdateModelValue,\n\t\t\t\t\t\t\tonChange: handleChange,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t[\"el-select\", \"ElSelect\"].includes(search.el)\n\t\t\t\t\t\t\t\t\t? state.enumDict.map((selData, index) =>\n\t\t\t\t\t\t\t\t\t\t\th(ElOption, {\n\t\t\t\t\t\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: selData[typeof search.props?.[\"label\"] === \"string\" ? search.props[\"label\"] : \"label\"] as\n\t\t\t\t\t\t\t\t\t\t\t\t\tstring | number,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: selData[typeof search.props?.[\"value\"] === \"string\" ? search.props[\"value\"] : \"value\"] as\n\t\t\t\t\t\t\t\t\t\t\t\t\tstring | number | boolean | object,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: Boolean(\n\t\t\t\t\t\t\t\t\t\t\t\t\tselData[typeof search.props?.[\"disabled\"] === \"string\" ? search.props[\"disabled\"] : \"disabled\"]\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)\n\t\t\t\t\t\t\t\t\t: slots[\"default\"]?.({\n\t\t\t\t\t\t\t\t\t\t\tcolumn: props.column,\n\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"tableSearchFormItem.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchFormItem.tsx"],"sourcesContent":["import { Fragment, defineComponent, h, inject, reactive, resolveComponent } from \"vue\";\nimport { ElOption } from \"element-plus\";\nimport {\n\tcreateDateRangeShortcuts,\n\tcreateDateShortcuts,\n\tcreateOneMonthRangeFromToday,\n\tdefinePropType,\n\tgetStartOfToday,\n\tmakeSlots,\n\tuseRender,\n\twithDefineType,\n} from \"../../../utils\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableEnumColumnCtx } from \"./table.type\";\n\n/**\n * 已知默认支持的el组件:\n * \tel-input\n * \tel-input-number\n * \tel-select\n * \tel-select-v2\n * \tel-tree-select\n * \tel-cascader\n * \tel-date-picker\n * \tel-time-picker\n * \tel-time-select,\n * \tel-switch\n * 已知组件的默认props\n * clearable:el-input,el-input-number,el-select,el-select-v2,el-tree-select,el-cascader,el-date-picker,el-time-picker,el-time-select\n * filterable:el-select,el-select-v2,el-tree-select\n * placeholder-请输入:el-input,el-input-number\n * placeholder-请选择:el-select,el-select-v2,el-tree-select,el-cascader\n * defaultTime:el-date-picker\n * shortcuts:el-date-picker\n * options:el-select-v2,el-cascader\n * data:el-tree-select\n * startPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * endPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * rangeSeparator:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * unlinkPanels:el-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * 后缀 -select Select -page Page -cascader Cascader 结尾的\n * \tplaceholder:请选择\n * 后缀 -input Input 结尾的\n * \tplaceholder:请输入\n */\n\nconst clearableEls = [\n\t\"el-input\",\n\t\"ELInput\",\n\t\"el-input-number\",\n\t\"ELInputNumber\",\n\t\"el-select\",\n\t\"ElSelect\",\n\t\"el-select-v2\",\n\t\"ElSelectV2\",\n\t\"el-tree-select\",\n\t\"ElTreeSelect\",\n\t\"el-cascader\",\n\t\"ElCascader\",\n\t\"el-date-picker\",\n\t\"ElDatePicker\",\n\t\"el-time-picker\",\n\t\"ElTimePicker\",\n\t\"el-time-select\",\n\t\"ElTimeSelect\",\n];\n\nconst elInputEls = [\"el-input\", \"ElInput\", \"ELInput\"];\n\ntype FaTableSearchFormItemSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nconst filterableEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\"];\n\nconst inputPlaceholderEls = [\"el-input\", \"ELInput\", \"el-input-number\", \"ELInputNumber\"];\n\nconst selectPlaceholderEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\", \"el-cascader\", \"ElCascader\"];\n\nexport default defineComponent({\n\tname: \"FaTableSearchFormItem\",\n\tprops: {\n\t\t/** @description 列配置 */\n\t\tcolumn: {\n\t\t\ttype: definePropType<FaTableColumnCtx>(Object),\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormItemSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\t\tif (tableState === undefined || enumMap === undefined) {\n\t\t\tthrow new Error(\"FaTableSearchFormItem 必须在 FaTable 内部渲染。\");\n\t\t}\n\n\t\tconst state = reactive({\n\t\t\tenumDict: withDefineType<FaTableEnumColumnCtx[]>([]),\n\t\t});\n\n\t\tconst handleUpdateModelValue = (value: unknown) => {\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\t// 如果是字符串,则去除前后空格\n\t\t\t\tvalue = value.trim();\n\t\t\t}\n\t\t\tconst searchKey = props.column.search?.key ?? props.column.prop;\n\t\t\tif (searchKey) tableState.searchParam[searchKey] = value;\n\t\t};\n\n\t\tconst handleChange = (_value: unknown) => {\n\t\t\tprops.search();\n\t\t};\n\n\t\tconst handleDefaultProps = () => {\n\t\t\tconst search = props.column.search;\n\t\t\tconst defaultProps: Record<string, unknown> = {};\n\t\t\tif (!search) return defaultProps;\n\t\t\tif (clearableEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"clearable\"] = true;\n\t\t\t}\n\t\t\tif (filterableEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"filterable\"] = true;\n\t\t\t}\n\t\t\tif (inputPlaceholderEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"placeholder\"] = \"请输入\";\n\t\t\t}\n\t\t\tif (selectPlaceholderEls.includes(search.el)) {\n\t\t\t\tdefaultProps[\"placeholder\"] = \"请选择\";\n\t\t\t}\n\t\t\tif ([\"el-date-picker\", \"ElDatePicker\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"unlinkPanels\"] = true;\n\t\t\t\tif (\n\t\t\t\t\ttypeof search.props?.[\"type\"] === \"string\" &&\n\t\t\t\t\t[\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"].includes(search.props[\"type\"])\n\t\t\t\t) {\n\t\t\t\t\tdefaultProps[\"defaultTime\"] = createOneMonthRangeFromToday();\n\t\t\t\t\tdefaultProps[\"shortcuts\"] = createDateRangeShortcuts();\n\t\t\t\t\tdefaultProps[\"rangeSeparator\"] = \"至\";\n\t\t\t\t\tdefaultProps[\"startPlaceholder\"] = \"开始时间\";\n\t\t\t\t\tdefaultProps[\"endPlaceholder\"] = \"结束时间\";\n\t\t\t\t} else {\n\t\t\t\t\tdefaultProps[\"defaultTime\"] = getStartOfToday();\n\t\t\t\t\tdefaultProps[\"shortcuts\"] = createDateShortcuts();\n\t\t\t\t\tdefaultProps[\"placeholder\"] = \"请选择\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ([\"el-time-picker\", \"ElTimePicker\"].includes(search.el) && search.props?.[\"isRange\"]) {\n\t\t\t\tdefaultProps[\"rangeSeparator\"] = \"至\";\n\t\t\t\tdefaultProps[\"startPlaceholder\"] = \"开始时间\";\n\t\t\t\tdefaultProps[\"endPlaceholder\"] = \"结束时间\";\n\t\t\t}\n\t\t\tif (\n\t\t\t\t[\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\", \"el-tree-select\", \"ElTreeSelect\"].includes(\n\t\t\t\t\tsearch.el\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tlet enumData: FaTableEnumColumnCtx[] | undefined;\n\t\t\t\tif (props.column.enum && typeof props.column.enum === \"string\") {\n\t\t\t\t\tenumData = enumMap.get(props.column.enum);\n\t\t\t\t} else {\n\t\t\t\t\tconst enumKey = props.column.prop ?? search.key;\n\t\t\t\t\tenumData = enumKey ? enumMap.get(enumKey) : undefined;\n\t\t\t\t}\n\t\t\t\tenumData = enumData?.filter((item) => item.show !== false);\n\t\t\t\tstate.enumDict = enumData ?? [];\n\t\t\t}\n\t\t\tif ([\"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"options\"] = state.enumDict;\n\t\t\t}\n\t\t\tif ([\"el-tree-select\", \"ElTreeSelect\"].includes(search.el)) {\n\t\t\t\tdefaultProps[\"data\"] = state.enumDict;\n\t\t\t}\n\n\t\t\treturn defaultProps;\n\t\t};\n\n\t\tuseRender(() => {\n\t\t\tconst search = props.column.search;\n\t\t\tconst searchKey = search?.key ?? props.column.prop;\n\t\t\tif (!search?.el || !searchKey) return <Fragment />;\n\t\t\tconst value: unknown = tableState.searchParam[searchKey];\n\t\t\tconst inputClearable = search.props?.[\"clearable\"] !== false && value !== undefined && value !== null && value !== \"\";\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{h(\n\t\t\t\t\t\tresolveComponent(search.el),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...handleDefaultProps(),\n\t\t\t\t\t\t\t...search.props,\n\t\t\t\t\t\t\t...(elInputEls.includes(search.el) ? { clearable: inputClearable } : {}),\n\t\t\t\t\t\t\tmodelValue: value,\n\t\t\t\t\t\t\t\"onUpdate:modelValue\": handleUpdateModelValue,\n\t\t\t\t\t\t\tonChange: handleChange,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t[\"el-select\", \"ElSelect\"].includes(search.el)\n\t\t\t\t\t\t\t\t\t? state.enumDict.map((selData, index) =>\n\t\t\t\t\t\t\t\t\t\t\th(ElOption, {\n\t\t\t\t\t\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: selData[typeof search.props?.[\"label\"] === \"string\" ? search.props[\"label\"] : \"label\"] as\n\t\t\t\t\t\t\t\t\t\t\t\t\tstring | number,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: selData[typeof search.props?.[\"value\"] === \"string\" ? search.props[\"value\"] : \"value\"] as\n\t\t\t\t\t\t\t\t\t\t\t\t\tstring | number | boolean | object,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: Boolean(\n\t\t\t\t\t\t\t\t\t\t\t\t\tselData[typeof search.props?.[\"disabled\"] === \"string\" ? search.props[\"disabled\"] : \"disabled\"]\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)\n\t\t\t\t\t\t\t\t\t: slots[\"default\"]?.({\n\t\t\t\t\t\t\t\t\t\t\tcolumn: props.column,\n\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t});\n\t},\n});\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { useGlobalSize } from "element-plus";
2
2
  import type { TableInstance } from "element-plus";
3
- import type { ExtractPropTypes, InjectionKey, Ref, SetupContext } from "vue";
3
+ import type { ExtractPropTypes, InjectionKey, SetupContext, ShallowRef } from "vue";
4
4
  import type { makeSlots } from "../../../utils";
5
5
  import type { PagedInput } from "./page.type";
6
6
  import type { FaTableSlots, faTableEmits, faTableProps } from "./table";
@@ -12,10 +12,10 @@ export declare const tableStateKey: InjectionKey<FaTableState>;
12
12
  export declare const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>>;
13
13
  type TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;
14
14
  interface TableComposable {
15
- _globalSize: ReturnType<typeof useGlobalSize>;
15
+ globalSize: ReturnType<typeof useGlobalSize>;
16
16
  state: FaTableState;
17
- elementRef: Ref<HTMLElement | undefined>;
18
- tableRef: Ref<TableInstance | undefined>;
17
+ elementRef: Readonly<ShallowRef<HTMLElement | null>>;
18
+ tableRef: Readonly<ShallowRef<TableInstance | null>>;
19
19
  handleTableColumnAutoWidth: () => void;
20
20
  getRequestParam: () => PagedInput;
21
21
  loadTableColumns: () => void;
@@ -2,9 +2,8 @@ import { debounce } from "../../../utils/async/index.mjs";
2
2
  import { callOptionalFunction } from "../../../utils/vue/func.mjs";
3
3
  import { tableUtil } from "../utils/table.mjs";
4
4
  import { getTableDefaultSlots } from "./table.type.mjs";
5
- import { computed, nextTick, provide, reactive, ref, watch } from "vue";
5
+ import { computed, nextTick, provide, reactive, shallowRef, watch } from "vue";
6
6
  import { dayjs, useGlobalSize } from "element-plus";
7
- import { isArray, isFunction } from "lodash-unified";
8
7
  //#region src/components/table/src/useTable.ts
9
8
  /** FaTable 状态的依赖注入键。 */
10
9
  const tableStateKey = Symbol("tableState");
@@ -19,9 +18,9 @@ const enumMapKey = Symbol("enumMap");
19
18
  * @returns FaTable 的状态、引用和操作方法。
20
19
  */
21
20
  const useTable = (props, slots, emit) => {
22
- const _globalSize = useGlobalSize();
23
- const elementRef = ref();
24
- const tableRef = ref();
21
+ const globalSize = useGlobalSize();
22
+ const elementRef = shallowRef(null);
23
+ const tableRef = shallowRef(null);
25
24
  /**
26
25
  * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)
27
26
  */
@@ -89,14 +88,14 @@ const useTable = (props, slots, emit) => {
89
88
  selected: false,
90
89
  selectedList: [],
91
90
  selectedListIds: computed(() => state.selectedList.flatMap((item) => {
92
- const rowKey = isFunction(props.rowKey) ? props.rowKey(item) : tableUtil.handleRowAccordingToProp(item, props.rowKey);
91
+ const rowKey = typeof props.rowKey === "function" ? props.rowKey(item) : tableUtil.handleRowAccordingToProp(item, props.rowKey);
93
92
  return typeof rowKey === "string" || typeof rowKey === "number" ? [rowKey] : [];
94
93
  })),
95
94
  indeterminateSelectedListIds: [],
96
95
  operationColumnWidth: computed(() => {
97
96
  const findAutoCol = state.autoColumnWidth.find((f) => f.prop === "__table-operation");
98
97
  if (findAutoCol) return `${findAutoCol.width}px`;
99
- switch (_globalSize.value) {
98
+ switch (globalSize.value) {
100
99
  case "large":
101
100
  case "default": return "54px";
102
101
  case "small": return "42px";
@@ -118,7 +117,7 @@ const useTable = (props, slots, emit) => {
118
117
  const autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);
119
118
  if (slots.operation) autoWidthColumns.push({ prop: "__table-operation" });
120
119
  if (autoWidthColumns.length > 0) {
121
- const otherWidth = _globalSize.value === "default" ? 25 : 17;
120
+ const otherWidth = globalSize.value === "default" ? 25 : 17;
122
121
  nextTick(() => {
123
122
  const tableDom = document.querySelector(`.fa-table__${props.tableKey}`);
124
123
  if (tableDom) autoWidthColumns.forEach((item) => {
@@ -133,8 +132,8 @@ const useTable = (props, slots, emit) => {
133
132
  const curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;
134
133
  if (curWidth > maxWidth) maxWidth = curWidth;
135
134
  });
136
- const findInfo = state.autoColumnWidth.find((f) => f.prop === item.prop);
137
- if (findInfo) findInfo.width = Math.max(findInfo.width, maxWidth);
135
+ const autoWidthEntry = state.autoColumnWidth.find((f) => f.prop === item.prop);
136
+ if (autoWidthEntry) autoWidthEntry.width = Math.max(autoWidthEntry.width, maxWidth);
138
137
  else if (item.prop) state.autoColumnWidth.push({
139
138
  prop: item.prop,
140
139
  width: maxWidth
@@ -152,7 +151,7 @@ const useTable = (props, slots, emit) => {
152
151
  const result = [];
153
152
  data.forEach((row) => {
154
153
  const rowList = row[props.props.children ?? "children"];
155
- if (isArray(rowList)) rowList.forEach((childRow) => {
154
+ if (Array.isArray(rowList)) rowList.forEach((childRow) => {
156
155
  result.push(typeof childRow === "object" && childRow !== null ? {
157
156
  ...row,
158
157
  ...childRow
@@ -187,7 +186,7 @@ const useTable = (props, slots, emit) => {
187
186
  if (currentRequestVersion !== requestVersion) return;
188
187
  props.dataCallback?.(resData);
189
188
  if (props.pagination) {
190
- if (isArray(resData)) {
189
+ if (Array.isArray(resData)) {
191
190
  pageData = resData;
192
191
  state.tablePagination.totalRows = resData.length;
193
192
  } else {
@@ -226,7 +225,7 @@ const useTable = (props, slots, emit) => {
226
225
  return (typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean" ? String(value) : "").toLowerCase().includes(searchValue.toLowerCase());
227
226
  });
228
227
  });
229
- if (isArray(state.searchParam.sortList) && state.searchParam.sortList.length > 0) _value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));
228
+ if (Array.isArray(state.searchParam.sortList) && state.searchParam.sortList.length > 0) _value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));
230
229
  if (props.pagination) {
231
230
  Object.assign(state.tablePagination, { totalRows: _value.length });
232
231
  const pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;
@@ -386,7 +385,7 @@ const useTable = (props, slots, emit) => {
386
385
  state.searchForm = newValue;
387
386
  });
388
387
  return {
389
- _globalSize,
388
+ globalSize,
390
389
  state,
391
390
  elementRef,
392
391
  tableRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.mjs","names":[],"sources":["../../../../src/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { callOptionalFunction, debounce } from \"../../../utils\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, Ref, SetupContext } from \"vue\";\nimport type { makeSlots } from \"../../../utils\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { DefaultRow, FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\n\n/** FaTable 状态的依赖注入键。 */\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\n/** FaTable 枚举映射的依赖注入键。 */\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\ninterface TableComposable {\n\t_globalSize: ReturnType<typeof useGlobalSize>;\n\tstate: FaTableState;\n\telementRef: Ref<HTMLElement | undefined>;\n\ttableRef: Ref<TableInstance | undefined>;\n\thandleTableColumnAutoWidth: () => void;\n\tgetRequestParam: () => PagedInput;\n\tloadTableColumns: () => void;\n\thandleSizeChange: (pageSize: number) => void;\n\thandlePaginationChange: (value: number) => void;\n\tdefaultSearchTime: () => void;\n\ttableSearch: () => Promise<void>;\n\ttableReset: () => Promise<void>;\n\tdoRender: () => Promise<void>;\n\tdoLoading: (loadingFunction: () => void | Promise<void>, loadingText?: string) => Promise<void>;\n\thandleCustomCellClick: (emitName: string, context: { row: DefaultRow; column: FaTableColumnCtx; $index: number }) => void;\n}\n\n/**\n * 创建 FaTable 的状态和操作方法。\n *\n * @param props - FaTable 的 Props。\n * @param slots - FaTable 的插槽。\n * @param emit - FaTable 的事件触发器。\n * @returns FaTable 的状态、引用和操作方法。\n */\nexport const useTable = (\n\tprops: ExtractPropTypes<typeof faTableProps>,\n\tslots: TableSetupContext[\"slots\"],\n\temit: TableSetupContext[\"emit\"]\n): TableComposable => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((item) => item.pureSearch === true || item.search !== undefined)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn (a.search?.order ?? 0) - (b.search?.order ?? 0);\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns.flatMap((column) => (column.spanProp ? [{ prop: column.prop ?? \"\", spanProp: column.spanProp }] : [])),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns.length > 0 && state.tableData.length > 0) {\n\t\t\t\tconst result: Record<string, number[]> = {};\n\t\t\t\tconst spanIndexes: Record<string, number> = {};\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array<number>(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tspanIndexes[item.prop] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tconst currentRow = state.tableData[i];\n\t\t\t\t\t\tconst previousRow = state.tableData[i - 1];\n\t\t\t\t\t\tconst spanValues = result[item.prop];\n\t\t\t\t\t\tconst spanIndex = spanIndexes[item.prop];\n\t\t\t\t\t\tif (currentRow === undefined || previousRow === undefined || spanValues === undefined || spanIndex === undefined) return;\n\t\t\t\t\t\tif (currentRow[item.spanProp] === previousRow[item.spanProp]) {\n\t\t\t\t\t\t\tspanValues[spanIndex] = (spanValues[spanIndex] ?? 0) + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tspanIndexes[item.prop] = i;\n\t\t\t\t\t\t\tspanValues[i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn {};\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() =>\n\t\t\tstate.selectedList.flatMap((item) => {\n\t\t\t\tconst rowKey: unknown = isFunction(props.rowKey) ? props.rowKey(item) : tableUtil.handleRowAccordingToProp(item, props.rowKey);\n\t\t\t\treturn typeof rowKey === \"string\" || typeof rowKey === \"number\" ? [rowKey] : [];\n\t\t\t})\n\t\t),\n\t\tindeterminateSelectedListIds: [],\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tcase \"\":\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: 0,\n\t\ttableHeight: 0,\n\t\tautoColumnWidth: [],\n\t});\n\tlet requestVersion = 0;\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (item.prop) {\n\t\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\t\tprop: item.prop,\n\t\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: DefaultRow[]): DefaultRow[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: DefaultRow[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList: unknown = row[props.props.children ?? \"children\"];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\tconst childRows: unknown[] = rowList;\n\t\t\t\t\tchildRows.forEach((childRow) => {\n\t\t\t\t\t\tresult.push(typeof childRow === \"object\" && childRow !== null ? { ...row, ...childRow } : row);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(typeof rowList === \"object\" && rowList !== null ? { ...row, ...rowList } : row);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tconst currentRequestVersion = ++requestVersion;\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData: DefaultRow[];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback?.(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tif (isArray(resData)) {\n\t\t\t\t\t\tpageData = resData;\n\t\t\t\t\t\tstate.tablePagination.totalRows = resData.length;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\t\tpageData = pageRes.rows ?? [];\n\t\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\t\tpageIndex: pageRes.pageIndex ?? state.tablePagination.pageIndex,\n\t\t\t\t\t\t\tpageSize: pageRes.pageSize ?? state.tablePagination.pageSize,\n\t\t\t\t\t\t\ttotalRows: pageRes.totalRows ?? pageData.length,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as DefaultRow[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.tableData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData([...props.data]);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tconst searchValue = state.searchParam.searchValue;\n\t\t\t\tif (typeof searchValue !== \"string\" || searchValue.length === 0) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\tconst value: unknown = tableUtil.handleRowAccordingToProp(f, col.prop ?? \"\");\n\t\t\t\t\tconst text =\n\t\t\t\t\t\ttypeof value === \"string\" || typeof value === \"number\" || typeof value === \"bigint\" || typeof value === \"boolean\"\n\t\t\t\t\t\t\t? String(value)\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\treturn text.toLowerCase().includes(searchValue.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (isArray(state.searchParam.sortList) && state.searchParam.sortList.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst cloneColumns = (columns: FaTableColumnCtx[]): FaTableColumnCtx[] =>\n\t\tcolumns.map((column) => ({\n\t\t\t...column,\n\t\t\t...(column.search && { search: { ...column.search, ...(column.search.props && { props: { ...column.search.props } }) } }),\n\t\t\t...(column._children && { _children: cloneColumns(column._children) }),\n\t\t}));\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? cloneColumns(props.columns) : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search ??= { el: \"\" };\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.key && col.search.defaultValue !== undefined) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn (a.order ?? 0) - (b.order ?? 0);\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam: Record<string, unknown> = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tif (props.futureSearchTime) {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\tconst renderTable = debounce((): Promise<void> => {\n\t\tloadTableColumns();\n\t\treturn tableSearch();\n\t}, 300);\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.assign(state.searchParam, state.initParam);\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait renderTable();\n\t};\n\n\tconst doLoading = async (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\ttry {\n\t\t\tawait callOptionalFunction(loadingFunction);\n\t\t} finally {\n\t\t\tstate.loading = false;\n\t\t}\n\t};\n\n\tconst handleCustomCellClick = (\n\t\temitName: string,\n\t\t{ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number }\n\t): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\t() => doRender()\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.mjs","names":[],"sources":["../../../../src/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, shallowRef, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { callOptionalFunction, debounce } from \"../../../utils\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext, ShallowRef } from \"vue\";\nimport type { makeSlots } from \"../../../utils\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { DefaultRow, FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\n\n/** FaTable 状态的依赖注入键。 */\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\n/** FaTable 枚举映射的依赖注入键。 */\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\ninterface TableComposable {\n\tglobalSize: ReturnType<typeof useGlobalSize>;\n\tstate: FaTableState;\n\telementRef: Readonly<ShallowRef<HTMLElement | null>>;\n\ttableRef: Readonly<ShallowRef<TableInstance | null>>;\n\thandleTableColumnAutoWidth: () => void;\n\tgetRequestParam: () => PagedInput;\n\tloadTableColumns: () => void;\n\thandleSizeChange: (pageSize: number) => void;\n\thandlePaginationChange: (value: number) => void;\n\tdefaultSearchTime: () => void;\n\ttableSearch: () => Promise<void>;\n\ttableReset: () => Promise<void>;\n\tdoRender: () => Promise<void>;\n\tdoLoading: (loadingFunction: () => void | Promise<void>, loadingText?: string) => Promise<void>;\n\thandleCustomCellClick: (emitName: string, context: { row: DefaultRow; column: FaTableColumnCtx; $index: number }) => void;\n}\n\n/**\n * 创建 FaTable 的状态和操作方法。\n *\n * @param props - FaTable 的 Props。\n * @param slots - FaTable 的插槽。\n * @param emit - FaTable 的事件触发器。\n * @returns FaTable 的状态、引用和操作方法。\n */\nexport const useTable = (\n\tprops: ExtractPropTypes<typeof faTableProps>,\n\tslots: TableSetupContext[\"slots\"],\n\temit: TableSetupContext[\"emit\"]\n): TableComposable => {\n\tconst globalSize = useGlobalSize();\n\n\tconst elementRef = shallowRef<HTMLElement | null>(null);\n\tconst tableRef = shallowRef<TableInstance | null>(null);\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((item) => item.pureSearch === true || item.search !== undefined)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn (a.search?.order ?? 0) - (b.search?.order ?? 0);\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns.flatMap((column) => (column.spanProp ? [{ prop: column.prop ?? \"\", spanProp: column.spanProp }] : [])),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns.length > 0 && state.tableData.length > 0) {\n\t\t\t\tconst result: Record<string, number[]> = {};\n\t\t\t\tconst spanIndexes: Record<string, number> = {};\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array<number>(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tspanIndexes[item.prop] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tconst currentRow = state.tableData[i];\n\t\t\t\t\t\tconst previousRow = state.tableData[i - 1];\n\t\t\t\t\t\tconst spanValues = result[item.prop];\n\t\t\t\t\t\tconst spanIndex = spanIndexes[item.prop];\n\t\t\t\t\t\tif (currentRow === undefined || previousRow === undefined || spanValues === undefined || spanIndex === undefined) return;\n\t\t\t\t\t\tif (currentRow[item.spanProp] === previousRow[item.spanProp]) {\n\t\t\t\t\t\t\tspanValues[spanIndex] = (spanValues[spanIndex] ?? 0) + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tspanIndexes[item.prop] = i;\n\t\t\t\t\t\t\tspanValues[i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn {};\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() =>\n\t\t\tstate.selectedList.flatMap((item) => {\n\t\t\t\tconst rowKey: unknown =\n\t\t\t\t\ttypeof props.rowKey === \"function\" ? props.rowKey(item) : tableUtil.handleRowAccordingToProp(item, props.rowKey);\n\t\t\t\treturn typeof rowKey === \"string\" || typeof rowKey === \"number\" ? [rowKey] : [];\n\t\t\t})\n\t\t),\n\t\tindeterminateSelectedListIds: [],\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tcase \"\":\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: 0,\n\t\ttableHeight: 0,\n\t\tautoColumnWidth: [],\n\t});\n\tlet requestVersion = 0;\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst autoWidthEntry = state.autoColumnWidth.find((f) => f.prop === item.prop);\n\t\t\t\t\t\tif (autoWidthEntry) {\n\t\t\t\t\t\t\tautoWidthEntry.width = Math.max(autoWidthEntry.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (item.prop) {\n\t\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\t\tprop: item.prop,\n\t\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: DefaultRow[]): DefaultRow[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: DefaultRow[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList: unknown = row[props.props.children ?? \"children\"];\n\t\t\t\tif (Array.isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\tconst childRows: unknown[] = rowList;\n\t\t\t\t\tchildRows.forEach((childRow) => {\n\t\t\t\t\t\tresult.push(typeof childRow === \"object\" && childRow !== null ? { ...row, ...childRow } : row);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(typeof rowList === \"object\" && rowList !== null ? { ...row, ...rowList } : row);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tconst currentRequestVersion = ++requestVersion;\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData: DefaultRow[];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback?.(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tif (Array.isArray(resData)) {\n\t\t\t\t\t\tpageData = resData;\n\t\t\t\t\t\tstate.tablePagination.totalRows = resData.length;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\t\tpageData = pageRes.rows ?? [];\n\t\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\t\tpageIndex: pageRes.pageIndex ?? state.tablePagination.pageIndex,\n\t\t\t\t\t\t\tpageSize: pageRes.pageSize ?? state.tablePagination.pageSize,\n\t\t\t\t\t\t\ttotalRows: pageRes.totalRows ?? pageData.length,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as DefaultRow[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.tableData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData([...props.data]);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tconst searchValue = state.searchParam.searchValue;\n\t\t\t\tif (typeof searchValue !== \"string\" || searchValue.length === 0) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\tconst value: unknown = tableUtil.handleRowAccordingToProp(f, col.prop ?? \"\");\n\t\t\t\t\tconst text =\n\t\t\t\t\t\ttypeof value === \"string\" || typeof value === \"number\" || typeof value === \"bigint\" || typeof value === \"boolean\"\n\t\t\t\t\t\t\t? String(value)\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\treturn text.toLowerCase().includes(searchValue.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (Array.isArray(state.searchParam.sortList) && state.searchParam.sortList.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst cloneColumns = (columns: FaTableColumnCtx[]): FaTableColumnCtx[] =>\n\t\tcolumns.map((column) => ({\n\t\t\t...column,\n\t\t\t...(column.search && { search: { ...column.search, ...(column.search.props && { props: { ...column.search.props } }) } }),\n\t\t\t...(column._children && { _children: cloneColumns(column._children) }),\n\t\t}));\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? cloneColumns(props.columns) : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search ??= { el: \"\" };\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.key && col.search.defaultValue !== undefined) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn (a.order ?? 0) - (b.order ?? 0);\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam: Record<string, unknown> = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tif (props.futureSearchTime) {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tend.setDate(end.getDate() + 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\t\tcase \"Past1D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3D\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1W\":\n\t\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past6M\":\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\tconst renderTable = debounce((): Promise<void> => {\n\t\tloadTableColumns();\n\t\treturn tableSearch();\n\t}, 300);\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.assign(state.searchParam, state.initParam);\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait renderTable();\n\t};\n\n\tconst doLoading = async (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\ttry {\n\t\t\tawait callOptionalFunction(loadingFunction);\n\t\t} finally {\n\t\t\tstate.loading = false;\n\t\t}\n\t};\n\n\tconst handleCustomCellClick = (\n\t\temitName: string,\n\t\t{ row, column, $index }: { row: DefaultRow; column: FaTableColumnCtx; $index: number }\n\t): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\t() => doRender()\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\tglobalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { isArray, isFunction, isString } from "lodash-unified";
2
1
  //#region src/components/table/utils/table.ts
3
2
  /**
4
3
  * 表格工具类
@@ -9,7 +8,7 @@ const tableUtil = {
9
8
  * @param {String} callValue 需要处理的值
10
9
  */
11
10
  formatValue(callValue) {
12
- if (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;
11
+ if (Array.isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;
13
12
  return callValue;
14
13
  },
15
14
  /**
@@ -44,8 +43,7 @@ const tableUtil = {
44
43
  filterEnum(callValue, enumData, fieldNames, type) {
45
44
  const value = fieldNames?.value ?? "value";
46
45
  const label = fieldNames?.label ?? "label";
47
- let filterData;
48
- if (isArray(enumData)) filterData = enumData.find((item) => item[value] === callValue);
46
+ const filterData = enumData.find((item) => item[value] === callValue);
49
47
  if (type === "tag") return filterData?.type ?? "info";
50
48
  return filterData ? filterData[label] : null;
51
49
  },
@@ -84,8 +82,8 @@ const tableUtil = {
84
82
  */
85
83
  setEnumMap(columnEnum, prop, enumMap) {
86
84
  if (!columnEnum) return;
87
- if (isFunction(columnEnum)) enumMap.set(prop, columnEnum());
88
- else if (isArray(columnEnum)) enumMap.set(prop, columnEnum);
85
+ if (typeof columnEnum === "function") enumMap.set(prop, columnEnum());
86
+ else if (Array.isArray(columnEnum)) enumMap.set(prop, columnEnum);
89
87
  },
90
88
  /**
91
89
  * 扁平化 columns
@@ -97,7 +95,7 @@ const tableUtil = {
97
95
  flatArr.push(col);
98
96
  col.show ??= true;
99
97
  let enumKey = col.prop ?? col.search?.key;
100
- if (col.enum && isString(col.enum)) enumKey = col.enum;
98
+ if (col.enum && typeof col.enum === "string") enumKey = col.enum;
101
99
  if (col.enum && enumKey && enumMap) this.setEnumMap(col.enum, enumKey, enumMap);
102
100
  });
103
101
  return flatArr.filter((item) => !item._children?.length);
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/utils/table.ts"],"sourcesContent":["import { isArray, isFunction, isString } from \"lodash-unified\";\nimport type { PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"../src/table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType } from \"../src/table.type\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: unknown): unknown {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\tif (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\treturn callValue;\n\t},\n\t/**\n\t * @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)\n\t * @param {Object} row 当前行数据\n\t * @param {String} prop 当前 prop\n\t */\n\thandleRowAccordingToProp(row: DefaultRow, prop: string): unknown {\n\t\tlet value: unknown = row;\n\t\tfor (const item of prop.split(\".\")) {\n\t\t\tif (typeof value !== \"object\" || value === null) return undefined;\n\t\t\tvalue = (value as Record<string, unknown>)[item];\n\t\t}\n\t\treturn value;\n\t},\n\t/**\n\t * @description 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop\n\t * @param {String} prop 当前 prop\n\t */\n\thandleProp(prop: string): string {\n\t\tconst propArr = prop.split(\".\");\n\t\tif (propArr.length === 1) return prop;\n\t\treturn propArr.at(-1) ?? prop;\n\t},\n\t/**\n\t * @description 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)\n\t * @param {String} callValue 当前单元格值\n\t * @param {Array} enumData 字典列表\n\t * @param {Array} fieldNames 指定 label && value 的 key 值\n\t * @param {String} type 过滤类型(目前只有 tag)\n\t */\n\tfilterEnum(callValue: unknown, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): unknown {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tlet filterData: FaTableEnumColumnCtx | undefined;\n\t\tif (isArray(enumData)) {\n\t\t\tfilterData = enumData.find((item) => item[value] === callValue);\n\t\t}\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: DefaultRow, b: DefaultRow) => number {\n\t\treturn (a, b) => {\n\t\t\tif (sortList.length > 0) {\n\t\t\t\tfor (const condition of sortList) {\n\t\t\t\t\tconst property = condition.enField;\n\t\t\t\t\tconst order = condition.mode;\n\t\t\t\t\tif (!property) continue;\n\n\t\t\t\t\tconst aValue: unknown = a[property];\n\t\t\t\t\tconst bValue: unknown = b[property];\n\n\t\t\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tconst comparison = aValue.localeCompare(bValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tconst comparison = bValue.localeCompare(aValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t};\n\t},\n\t/**\n\t * 设置枚举\n\t */\n\tsetEnumMap(columnEnum: FaTableEnumColumnType, prop: string, enumMap: Map<string, FaTableEnumColumnCtx[]>): void {\n\t\tif (!columnEnum) return;\n\t\tif (isFunction(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum());\n\t\t} else if (isArray(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum);\n\t\t}\n\t},\n\t/**\n\t * 扁平化 columns\n\t */\n\tflatColumns(columns: FaTableColumnCtx[], enumMap?: Map<string, FaTableEnumColumnCtx[]>): FaTableColumnCtx[] {\n\t\tconst flatArr: FaTableColumnCtx[] = [];\n\t\tcolumns.forEach((col) => {\n\t\t\tif (col._children?.length) {\n\t\t\t\tflatArr.push(...this.flatColumns(col._children));\n\t\t\t}\n\n\t\t\tflatArr.push(col);\n\n\t\t\t// 给每一项 column 添加 show && filterEnum 默认属性\n\t\t\tcol.show ??= true;\n\t\t\t// col.filterEnum = col.filterEnum ?? col.tag ?? false;\n\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && isString(col.enum)) {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tif (col.enum && enumKey && enumMap) this.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"mappings":";;;;;AAQA,MAAa,YAAY;;;;;CAKxB,YAAY,WAA6B;EAExC,IAAI,QAAQ,SAAS,GAAG,OAAO,UAAU,SAAS,UAAU,KAAK,KAAK,IAAI;EAC1E,OAAO;CACR;;;;;;CAMA,yBAAyB,KAAiB,MAAuB;EAChE,IAAI,QAAiB;EACrB,KAAK,MAAM,QAAQ,KAAK,MAAM,GAAG,GAAG;GACnC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,KAAA;GACxD,QAAS,MAAkC;EAC5C;EACA,OAAO;CACR;;;;;CAKA,WAAW,MAAsB;EAChC,MAAM,UAAU,KAAK,MAAM,GAAG;EAC9B,IAAI,QAAQ,WAAW,GAAG,OAAO;EACjC,OAAO,QAAQ,GAAG,EAAE,KAAK;CAC1B;;;;;;;;CAQA,WAAW,WAAoB,UAAkC,YAA+C,MAAuB;EACtI,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,QAAQ,YAAY,SAAS;EACnC,IAAI;EACJ,IAAI,QAAQ,QAAQ,GACnB,aAAa,SAAS,MAAM,SAAS,KAAK,WAAW,SAAS;EAE/D,IAAI,SAAS,OACZ,OAAO,YAAY,QAAQ;EAE5B,OAAO,aAAa,WAAW,SAAS;CACzC;;;;CAIA,iBAAiB,UAAsE;EACtF,QAAQ,GAAG,MAAM;GAChB,IAAI,SAAS,SAAS,GACrB,KAAK,MAAM,aAAa,UAAU;IACjC,MAAM,WAAW,UAAU;IAC3B,MAAM,QAAQ,UAAU;IACxB,IAAI,CAAC,UAAU;IAEf,MAAM,SAAkB,EAAE;IAC1B,MAAM,SAAkB,EAAE;IAE1B,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;KAC7D,IAAI,UAAU,aAAa;MAC1B,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET,OAAO,IAAI,UAAU,cAAc;MAClC,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET;IACD,OACC,IAAI,UAAU,aAAa;KAC1B,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD,OAAO,IAAI,UAAU,cAAc;KAClC,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD;GAEF;GAGD,OAAO;EACR;CACD;;;;CAIA,WAAW,YAAmC,MAAc,SAAoD;EAC/G,IAAI,CAAC,YAAY;EACjB,IAAI,WAAW,UAAU,GACxB,QAAQ,IAAI,MAAM,WAAW,CAAC;OACxB,IAAI,QAAQ,UAAU,GAC5B,QAAQ,IAAI,MAAM,UAAU;CAE9B;;;;CAIA,YAAY,SAA6B,SAAmE;EAC3G,MAAM,UAA8B,CAAC;EACrC,QAAQ,SAAS,QAAQ;GACxB,IAAI,IAAI,WAAW,QAClB,QAAQ,KAAK,GAAG,KAAK,YAAY,IAAI,SAAS,CAAC;GAGhD,QAAQ,KAAK,GAAG;GAGhB,IAAI,SAAS;GAGb,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ;GAEtC,IAAI,IAAI,QAAQ,SAAS,IAAI,IAAI,GAChC,UAAU,IAAI;GAIf,IAAI,IAAI,QAAQ,WAAW,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,OAAO;EAC/E,CAAC;EACD,OAAO,QAAQ,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM;CACxD;AACD"}
1
+ {"version":3,"file":"table.mjs","names":[],"sources":["../../../../src/components/table/utils/table.ts"],"sourcesContent":["import type { PagedSortInput } from \"../src/page.type\";\nimport type { DefaultRow } from \"../src/table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType } from \"../src/table.type\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: unknown): unknown {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\tif (Array.isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\treturn callValue;\n\t},\n\t/**\n\t * @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)\n\t * @param {Object} row 当前行数据\n\t * @param {String} prop 当前 prop\n\t */\n\thandleRowAccordingToProp(row: DefaultRow, prop: string): unknown {\n\t\tlet value: unknown = row;\n\t\tfor (const item of prop.split(\".\")) {\n\t\t\tif (typeof value !== \"object\" || value === null) return undefined;\n\t\t\tvalue = (value as Record<string, unknown>)[item];\n\t\t}\n\t\treturn value;\n\t},\n\t/**\n\t * @description 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop\n\t * @param {String} prop 当前 prop\n\t */\n\thandleProp(prop: string): string {\n\t\tconst propArr = prop.split(\".\");\n\t\tif (propArr.length === 1) return prop;\n\t\treturn propArr.at(-1) ?? prop;\n\t},\n\t/**\n\t * @description 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)\n\t * @param {String} callValue 当前单元格值\n\t * @param {Array} enumData 字典列表\n\t * @param {Array} fieldNames 指定 label && value 的 key 值\n\t * @param {String} type 过滤类型(目前只有 tag)\n\t */\n\tfilterEnum(callValue: unknown, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): unknown {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tconst filterData = enumData.find((item) => item[value] === callValue);\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: DefaultRow, b: DefaultRow) => number {\n\t\treturn (a, b) => {\n\t\t\tif (sortList.length > 0) {\n\t\t\t\tfor (const condition of sortList) {\n\t\t\t\t\tconst property = condition.enField;\n\t\t\t\t\tconst order = condition.mode;\n\t\t\t\t\tif (!property) continue;\n\n\t\t\t\t\tconst aValue: unknown = a[property];\n\t\t\t\t\tconst bValue: unknown = b[property];\n\n\t\t\t\t\tif (typeof aValue === \"string\" && typeof bValue === \"string\") {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tconst comparison = aValue.localeCompare(bValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tconst comparison = bValue.localeCompare(aValue, \"zh-CN\");\n\t\t\t\t\t\t\tif (comparison !== 0) {\n\t\t\t\t\t\t\t\treturn comparison;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (order === \"ascending\") {\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif ((aValue as string) > (bValue as string)) return -1;\n\t\t\t\t\t\t\tif ((aValue as string) < (bValue as string)) return 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t};\n\t},\n\t/**\n\t * 设置枚举\n\t */\n\tsetEnumMap(columnEnum: FaTableEnumColumnType, prop: string, enumMap: Map<string, FaTableEnumColumnCtx[]>): void {\n\t\tif (!columnEnum) return;\n\t\tif (typeof columnEnum === \"function\") {\n\t\t\tenumMap.set(prop, columnEnum());\n\t\t} else if (Array.isArray(columnEnum)) {\n\t\t\tenumMap.set(prop, columnEnum);\n\t\t}\n\t},\n\t/**\n\t * 扁平化 columns\n\t */\n\tflatColumns(columns: FaTableColumnCtx[], enumMap?: Map<string, FaTableEnumColumnCtx[]>): FaTableColumnCtx[] {\n\t\tconst flatArr: FaTableColumnCtx[] = [];\n\t\tcolumns.forEach((col) => {\n\t\t\tif (col._children?.length) {\n\t\t\t\tflatArr.push(...this.flatColumns(col._children));\n\t\t\t}\n\n\t\t\tflatArr.push(col);\n\n\t\t\t// 给每一项 column 添加 show && filterEnum 默认属性\n\t\t\tcol.show ??= true;\n\t\t\tlet enumKey = col.prop ?? col.search?.key;\n\n\t\t\tif (col.enum && typeof col.enum === \"string\") {\n\t\t\t\tenumKey = col.enum;\n\t\t\t}\n\n\t\t\t// 设置 enumMap\n\t\t\tif (col.enum && enumKey && enumMap) this.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"mappings":";;;;AAOA,MAAa,YAAY;;;;;CAKxB,YAAY,WAA6B;EAExC,IAAI,MAAM,QAAQ,SAAS,GAAG,OAAO,UAAU,SAAS,UAAU,KAAK,KAAK,IAAI;EAChF,OAAO;CACR;;;;;;CAMA,yBAAyB,KAAiB,MAAuB;EAChE,IAAI,QAAiB;EACrB,KAAK,MAAM,QAAQ,KAAK,MAAM,GAAG,GAAG;GACnC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO,KAAA;GACxD,QAAS,MAAkC;EAC5C;EACA,OAAO;CACR;;;;;CAKA,WAAW,MAAsB;EAChC,MAAM,UAAU,KAAK,MAAM,GAAG;EAC9B,IAAI,QAAQ,WAAW,GAAG,OAAO;EACjC,OAAO,QAAQ,GAAG,EAAE,KAAK;CAC1B;;;;;;;;CAQA,WAAW,WAAoB,UAAkC,YAA+C,MAAuB;EACtI,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,QAAQ,YAAY,SAAS;EACnC,MAAM,aAAa,SAAS,MAAM,SAAS,KAAK,WAAW,SAAS;EACpE,IAAI,SAAS,OACZ,OAAO,YAAY,QAAQ;EAE5B,OAAO,aAAa,WAAW,SAAS;CACzC;;;;CAIA,iBAAiB,UAAsE;EACtF,QAAQ,GAAG,MAAM;GAChB,IAAI,SAAS,SAAS,GACrB,KAAK,MAAM,aAAa,UAAU;IACjC,MAAM,WAAW,UAAU;IAC3B,MAAM,QAAQ,UAAU;IACxB,IAAI,CAAC,UAAU;IAEf,MAAM,SAAkB,EAAE;IAC1B,MAAM,SAAkB,EAAE;IAE1B,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;KAC7D,IAAI,UAAU,aAAa;MAC1B,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET,OAAO,IAAI,UAAU,cAAc;MAClC,MAAM,aAAa,OAAO,cAAc,QAAQ,OAAO;MACvD,IAAI,eAAe,GAClB,OAAO;KAET;IACD,OACC,IAAI,UAAU,aAAa;KAC1B,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD,OAAO,IAAI,UAAU,cAAc;KAClC,IAAK,SAAqB,QAAmB,OAAO;KACpD,IAAK,SAAqB,QAAmB,OAAO;IACrD;GAEF;GAGD,OAAO;EACR;CACD;;;;CAIA,WAAW,YAAmC,MAAc,SAAoD;EAC/G,IAAI,CAAC,YAAY;EACjB,IAAI,OAAO,eAAe,YACzB,QAAQ,IAAI,MAAM,WAAW,CAAC;OACxB,IAAI,MAAM,QAAQ,UAAU,GAClC,QAAQ,IAAI,MAAM,UAAU;CAE9B;;;;CAIA,YAAY,SAA6B,SAAmE;EAC3G,MAAM,UAA8B,CAAC;EACrC,QAAQ,SAAS,QAAQ;GACxB,IAAI,IAAI,WAAW,QAClB,QAAQ,KAAK,GAAG,KAAK,YAAY,IAAI,SAAS,CAAC;GAGhD,QAAQ,KAAK,GAAG;GAGhB,IAAI,SAAS;GACb,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ;GAEtC,IAAI,IAAI,QAAQ,OAAO,IAAI,SAAS,UACnC,UAAU,IAAI;GAIf,IAAI,IAAI,QAAQ,WAAW,SAAS,KAAK,WAAW,IAAI,MAAM,SAAS,OAAO;EAC/E,CAAC;EACD,OAAO,QAAQ,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM;CACxD;AACD"}
@@ -66,7 +66,7 @@ export declare const faTreeProps: {
66
66
  /** @description 树形数据 */
67
67
  data: {
68
68
  type: import("vue").PropType<ElTreeOutput<import("./tree.type").ElTreeValue, any>[]>;
69
- default: () => ElTreeOutput[];
69
+ default: () => never[];
70
70
  };
71
71
  /** @description 请求api */
72
72
  requestApi: {
@@ -152,7 +152,7 @@ export declare const faTreeEmits: {
152
152
  /** @description v-model:label 回调 */
153
153
  "update:label": (value: string) => boolean;
154
154
  /** @description 数据改变 */
155
- dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
155
+ dataChange: (data: ElTreeOutput[]) => boolean;
156
156
  /** @description 选中数据改变 */
157
157
  change: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
158
158
  /** @description 节点点击 */
@@ -247,7 +247,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
247
247
  /** @description 树形数据 */
248
248
  data: {
249
249
  type: import("vue").PropType<ElTreeOutput<import("./tree.type").ElTreeValue, any>[]>;
250
- default: () => ElTreeOutput[];
250
+ default: () => never[];
251
251
  };
252
252
  /** @description 请求api */
253
253
  requestApi: {
@@ -376,7 +376,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
376
376
  /** @description v-model:label 回调 */
377
377
  "update:label": (value: string) => boolean;
378
378
  /** @description 数据改变 */
379
- dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
379
+ dataChange: (data: ElTreeOutput[]) => boolean;
380
380
  /** @description 选中数据改变 */
381
381
  change: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
382
382
  /** @description 节点点击 */
@@ -455,7 +455,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
455
455
  /** @description 树形数据 */
456
456
  data: {
457
457
  type: import("vue").PropType<ElTreeOutput<import("./tree.type").ElTreeValue, any>[]>;
458
- default: () => ElTreeOutput[];
458
+ default: () => never[];
459
459
  };
460
460
  /** @description 请求api */
461
461
  requestApi: {
@@ -538,7 +538,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
538
538
  "onUpdate:modelValue"?: ((value: string | number | boolean | object | null | undefined) => any) | undefined;
539
539
  "onCurrent-change"?: ((data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => any) | undefined;
540
540
  "onUpdate:label"?: ((value: string) => any) | undefined;
541
- onDataChangeCallBack?: ((data: ElTreeOutput<import("./tree.type").ElTreeValue, any>[]) => any) | undefined;
541
+ onDataChange?: ((data: ElTreeOutput<import("./tree.type").ElTreeValue, any>[]) => any) | undefined;
542
542
  "onNode-click"?: ((_data: ElTreeOutput<import("./tree.type").ElTreeValue, any>, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => any) | undefined;
543
543
  "onCheck-change"?: ((data: any, checked: boolean, indeterminate: boolean) => any) | undefined;
544
544
  "onNode-contextmenu"?: ((evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any) | undefined;