fast-element-plus 1.0.10 → 1.0.12

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 (79) hide show
  1. package/dist/index.full.js +79 -41
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +1 -1
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +1 -1
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +79 -41
  8. package/dist/index.full.mjs.map +1 -1
  9. package/es/components/avatar/src/avatar.d.ts +37 -9
  10. package/es/components/button/src/button.d.ts +1 -1
  11. package/es/components/dialog/src/dialog.d.ts +3 -3
  12. package/es/components/form/src/form.d.ts +3 -3
  13. package/es/components/form/src/formItem.d.ts +7 -7
  14. package/es/components/icon/src/icon.d.ts +3 -3
  15. package/es/components/image/src/image.d.ts +2 -2
  16. package/es/components/inputDialogPage/src/inputDialogPage.d.ts +3 -3
  17. package/es/components/layoutGrid/src/layoutGrid.d.ts +2 -2
  18. package/es/components/layoutGrid/src/layoutGridItem.d.ts +4 -4
  19. package/es/components/select/src/select.d.ts +4 -4
  20. package/es/components/selectPage/src/selectPage.d.ts +3 -3
  21. package/es/components/selectV2/src/selectV2.d.ts +7 -7
  22. package/es/components/table/src/table.d.ts +27 -20
  23. package/es/components/table/src/table.mjs +1 -1
  24. package/es/components/table/src/table.mjs.map +1 -1
  25. package/es/components/table/src/tableColumn.d.ts +8 -8
  26. package/es/components/table/src/tableColumn.mjs +1 -1
  27. package/es/components/table/src/tableColumn.mjs.map +1 -1
  28. package/es/components/table/src/useTable.d.ts +1 -1
  29. package/es/components/table/src/useTable.mjs +1 -1
  30. package/es/components/table/src/useTable.mjs.map +1 -1
  31. package/es/components/table/utils/table.mjs +1 -1
  32. package/es/components/table/utils/table.mjs.map +1 -1
  33. package/es/components/tree/src/tree.d.ts +6 -6
  34. package/es/components/treeSelect/src/treeSelect.d.ts +51 -51
  35. package/es/components/treeSelect/src/treeSelect.mjs +1 -1
  36. package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
  37. package/es/components/upload/src/upload.d.ts +8 -4
  38. package/es/components/upload/src/useUpload.d.ts +4 -4
  39. package/es/components/uploadImage/src/uploadImage.d.ts +17 -13
  40. package/es/components/uploadImages/src/uploadImages.d.ts +11 -7
  41. package/es/version.d.ts +1 -1
  42. package/es/version.mjs +1 -1
  43. package/es/version.mjs.map +1 -1
  44. package/lib/components/avatar/src/avatar.d.ts +37 -9
  45. package/lib/components/button/src/button.d.ts +1 -1
  46. package/lib/components/dialog/src/dialog.d.ts +3 -3
  47. package/lib/components/form/src/form.d.ts +3 -3
  48. package/lib/components/form/src/formItem.d.ts +7 -7
  49. package/lib/components/icon/src/icon.d.ts +3 -3
  50. package/lib/components/image/src/image.d.ts +2 -2
  51. package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +3 -3
  52. package/lib/components/layoutGrid/src/layoutGrid.d.ts +2 -2
  53. package/lib/components/layoutGrid/src/layoutGridItem.d.ts +4 -4
  54. package/lib/components/select/src/select.d.ts +4 -4
  55. package/lib/components/selectPage/src/selectPage.d.ts +3 -3
  56. package/lib/components/selectV2/src/selectV2.d.ts +7 -7
  57. package/lib/components/table/src/table.d.ts +27 -20
  58. package/lib/components/table/src/table.js +1 -1
  59. package/lib/components/table/src/table.js.map +1 -1
  60. package/lib/components/table/src/tableColumn.d.ts +8 -8
  61. package/lib/components/table/src/tableColumn.js +1 -1
  62. package/lib/components/table/src/tableColumn.js.map +1 -1
  63. package/lib/components/table/src/useTable.d.ts +1 -1
  64. package/lib/components/table/src/useTable.js +1 -1
  65. package/lib/components/table/src/useTable.js.map +1 -1
  66. package/lib/components/table/utils/table.js +1 -1
  67. package/lib/components/table/utils/table.js.map +1 -1
  68. package/lib/components/tree/src/tree.d.ts +6 -6
  69. package/lib/components/treeSelect/src/treeSelect.d.ts +51 -51
  70. package/lib/components/treeSelect/src/treeSelect.js +1 -1
  71. package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
  72. package/lib/components/upload/src/upload.d.ts +8 -4
  73. package/lib/components/upload/src/useUpload.d.ts +4 -4
  74. package/lib/components/uploadImage/src/uploadImage.d.ts +17 -13
  75. package/lib/components/uploadImages/src/uploadImages.d.ts +11 -7
  76. package/lib/version.d.ts +1 -1
  77. package/lib/version.js +1 -1
  78. package/lib/version.js.map +1 -1
  79. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tableColumn.js","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isArray, isFunction, isNil, isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type {\n\tFaTableColumnCtx,\n\tFaTableColumnDateFormat,\n\tFaTableColumnType,\n\tFaTableDefaultSlotsResult,\n\tFaTableEnumColumnCtx,\n\tFaTableEnumColumnType,\n} from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n\t/** @description 展开列的自定义内容 */\n\texpand: FaTableDefaultSlotsResult & { expanded: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 隐藏图片 */\n\t\thideImage: Boolean,\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 图片列是否显示为原图,默认 false 显示缩略图 */\n\t\toriginalImage: Boolean,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 时间信息字段 */\n\t\ttimeInfoField: {\n\t\t\ttype: definePropType<{ userName?: string; time?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tuserName: \"createdUserName\",\n\t\t\t\ttime: \"createdTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\t(isNil(emitName) || isString(emitName)) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\t/** 获取ClassName */\n\t\tconst getClassName = (): string => {\n\t\t\tlet className = \"\";\n\t\t\tif (props.type === \"timeInfo\") {\n\t\t\t\tclassName += \"fa-table__line-height-normal-column\";\n\t\t\t}\n\t\t\tif (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tif (props.dateFix) {\n\t\t\t\t\tclassName += \"fa-table__line-height-normal-column\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.className) {\n\t\t\t\treturn `${className} ${props.className}`;\n\t\t\t}\n\t\t\treturn className ? className : undefined;\n\t\t};\n\n\t\t/** 获取宽度 */\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\t/** 表头自动宽度渲染 */\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\t/** 自动宽度渲染 */\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\t/** 表头渲染 */\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\t/** 复制渲染 */\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon\n\t\t\t\t\t\tclass=\"fa__copy-icon\"\n\t\t\t\t\t\ttitle=\"复制\"\n\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\t\t\t\t\tElMessage({\n\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\t\t\t\t\tElMessage({\n\t\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\t\tmessage: \"复制失败\",\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\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\t/** 渲染单元格数据 */\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tconst cellValue = tableUtil.handleRowAccordingToProp(row, props.prop);\n\n\t\t\tlet enumKey = props.prop;\n\t\t\tlet enumData: FaTableEnumColumnCtx[];\n\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t\tenumData = enumMap.get(enumKey);\n\t\t\t} else if (isArray(props.enum)) {\n\t\t\t\tenumData = props.enum;\n\t\t\t} else if (isFunction(props.enum)) {\n\t\t\t\tenumData = props.enum({ row });\n\t\t\t}\n\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(cellValue, enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(cellValue);\n\t\t\t}\n\t\t};\n\n\t\t/** 格式化渲染 */\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\t/** 时间信息列渲染 */\n\t\tconst timeInfoRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst userName = row[props.timeInfoField?.userName ?? \"createdUserName\"];\n\t\t\tconst time = row[props.timeInfoField?.time ?? \"createdTime\"];\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={time}>\n\t\t\t\t\t\t{userName && <span style=\"margin-right: 5px;\">{userName}</span>}\n\t\t\t\t\t\t<span>{time}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t{time && (\n\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(time))}\n\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 标签列渲染 */\n\t\tconst tagRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\tconst type = tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\");\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue ? <ElTag type={type}>{renderValue}</ElTag> : null}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 时间列渲染 */\n\t\tconst dateRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tlet dateFormat;\n\t\t\tswitch (props.type) {\n\t\t\t\tcase \"date\":\n\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"time\":\n\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dateTime\":\n\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t: null;\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue}\n\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 数值列渲染 */\n\t\tconst numberRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = row[props.prop];\n\t\t\tif (!renderValue || !isNumber(renderValue)) {\n\t\t\t\treturn formatterRender(row, column, renderValue, $index);\n\t\t\t}\n\t\t\tlet useGrouping = false;\n\t\t\tlet maximumFractionDigits: number;\n\t\t\tswitch (props.type) {\n\t\t\t\tcase \"d2\":\n\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d4\":\n\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d6\":\n\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd2\":\n\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd4\":\n\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd6\":\n\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn formatterRender(\n\t\t\t\trow,\n\t\t\t\tcolumn,\n\t\t\t\trenderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\tuseGrouping,\n\t\t\t\t}),\n\t\t\t\t$index\n\t\t\t);\n\t\t};\n\n\t\t/** 链接列渲染 */\n\t\tconst linkRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\treturn autoWidthRender(\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t</ElText>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"timeInfo\") {\n\t\t\t\treturn timeInfoRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.tag) {\n\t\t\t\treturn tagRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\treturn dateRender(row, column, $index);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\treturn numberRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.link) {\n\t\t\t\treturn linkRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t}\n\t\t\tif (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\treturn autoWidthRender(\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"className\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tclassName={getClassName()}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\tprops.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" original={props.originalImage} thumb />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tclassName={getClassName()}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tslots.header\n\t\t\t\t\t\t\t\t\t\t? slots.header({ column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t\t\t\t\t\t\t: headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tslots.default\n\t\t\t\t\t\t\t\t\t\t? slots.default({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t\t\t\t\t\t\t: defaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t\tfilterIcon: ({ filterOpened }: { filterOpened: boolean }) =>\n\t\t\t\t\t\t\t\t\tslots.filterIcon && slots.filterIcon({ filterOpened, ...getTableDefaultSlots(tableState) }),\n\t\t\t\t\t\t\t\texpand: ({ expanded }: { expanded: boolean }) =>\n\t\t\t\t\t\t\t\t\tslots.expand && slots.expand({ expanded, ...getTableDefaultSlots(tableState) }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","hideImage","copy","link","spanProp","click","clickEmit","originalImage","dateFix","dateFormat","tag","enum","dataDeleteField","timeInfoField","userName","time","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isNil","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getClassName","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","autoWidthRender","getTableDefaultSlots","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","CopyDocument","formatterRender","cellValue","tagRender","renderValue","renderCellData","tableUtil","handleRowAccordingToProp","enumData","enumKey","get","isArray","isFunction","filterEnum","formatValue","_Fragment","ElTag","defaultRender","timeInfoRender","_slot","style","round","effect","size","dateUtil","dateTimeFix","dateRender","_slot2","dayjs","format","numberRender","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","linkRender","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","original","thumb","notImage","filterIcon","filterOpened","expand","expanded"],"mappings":"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"}
1
+ {"version":3,"file":"tableColumn.js","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isArray, isFunction, isNil, isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type {\n\tFaTableColumnCtx,\n\tFaTableColumnDateFormat,\n\tFaTableColumnType,\n\tFaTableDefaultSlotsResult,\n\tFaTableEnumColumnCtx,\n\tFaTableEnumColumnType,\n} from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n\t/** @description 展开列的自定义内容 */\n\texpand: FaTableDefaultSlotsResult & { expanded: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 隐藏图片 */\n\t\thideImage: Boolean,\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 图片列是否显示为原图,默认 false 显示缩略图 */\n\t\toriginalImage: Boolean,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([String, Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 时间信息字段 */\n\t\ttimeInfoField: {\n\t\t\ttype: definePropType<{ userName?: string; time?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tuserName: \"createdUserName\",\n\t\t\t\ttime: \"createdTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\t(isNil(emitName) || isString(emitName)) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\t/** 获取ClassName */\n\t\tconst getClassName = (): string => {\n\t\t\tlet className = \"\";\n\t\t\tif (props.type === \"timeInfo\") {\n\t\t\t\tclassName += \"fa-table__line-height-normal-column\";\n\t\t\t}\n\t\t\tif (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tif (props.dateFix) {\n\t\t\t\t\tclassName += \"fa-table__line-height-normal-column\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (props.className) {\n\t\t\t\treturn `${className} ${props.className}`;\n\t\t\t}\n\t\t\treturn className ? className : undefined;\n\t\t};\n\n\t\t/** 获取宽度 */\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\t/** 表头自动宽度渲染 */\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\t/** 自动宽度渲染 */\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\t/** 表头渲染 */\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\t/** 复制渲染 */\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon\n\t\t\t\t\t\tclass=\"fa__copy-icon\"\n\t\t\t\t\t\ttitle=\"复制\"\n\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\t\t\t\t\tElMessage({\n\t\t\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\t\t\t\t\tElMessage({\n\t\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\t\tmessage: \"复制失败\",\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\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\t/** 渲染单元格数据 */\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tconst cellValue = tableUtil.handleRowAccordingToProp(row, props.prop);\n\n\t\t\tlet enumKey = props.prop;\n\t\t\tlet enumData: FaTableEnumColumnCtx[];\n\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t\tenumData = enumMap.get(enumKey);\n\t\t\t} else if (isArray(props.enum)) {\n\t\t\t\tenumData = props.enum;\n\t\t\t} else if (isFunction(props.enum)) {\n\t\t\t\tenumData = props.enum({ row });\n\t\t\t}\n\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(cellValue, enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(cellValue);\n\t\t\t}\n\t\t};\n\n\t\t/** 格式化渲染 */\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\t/** 时间信息列渲染 */\n\t\tconst timeInfoRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst userName = row[props.timeInfoField?.userName ?? \"createdUserName\"];\n\t\t\tconst time = row[props.timeInfoField?.time ?? \"createdTime\"];\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={time}>\n\t\t\t\t\t\t{userName && <span style=\"margin-right: 5px;\">{userName}</span>}\n\t\t\t\t\t\t<span>{time}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t{time && (\n\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(time))}\n\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 标签列渲染 */\n\t\tconst tagRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\n\t\t\tlet enumKey = props.prop;\n\t\t\tlet enumData: FaTableEnumColumnCtx[];\n\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t\tenumData = enumMap.get(enumKey);\n\t\t\t} else if (isArray(props.enum)) {\n\t\t\t\tenumData = props.enum;\n\t\t\t} else if (isFunction(props.enum)) {\n\t\t\t\tenumData = props.enum({ row });\n\t\t\t}\n\n\t\t\tconst type = tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\");\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue ? <ElTag type={type}>{renderValue}</ElTag> : null}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 时间列渲染 */\n\t\tconst dateRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tlet dateFormat;\n\t\t\tswitch (props.type) {\n\t\t\t\tcase \"date\":\n\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"time\":\n\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"dateTime\":\n\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t: null;\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue}\n\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\t/** 数值列渲染 */\n\t\tconst numberRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = row[props.prop];\n\t\t\tif (!renderValue || !isNumber(renderValue)) {\n\t\t\t\treturn formatterRender(row, column, renderValue, $index);\n\t\t\t}\n\t\t\tlet useGrouping = false;\n\t\t\tlet maximumFractionDigits: number;\n\t\t\tswitch (props.type) {\n\t\t\t\tcase \"d2\":\n\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d4\":\n\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d6\":\n\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd2\":\n\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd4\":\n\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"gd6\":\n\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn formatterRender(\n\t\t\t\trow,\n\t\t\t\tcolumn,\n\t\t\t\trenderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\tuseGrouping,\n\t\t\t\t}),\n\t\t\t\t$index\n\t\t\t);\n\t\t};\n\n\t\t/** 链接列渲染 */\n\t\tconst linkRender = (row: any, column: TableColumnCtx<any>, $index: number): VNode[] => {\n\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\treturn autoWidthRender(\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t</ElText>\n\t\t\t\t\t)}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"timeInfo\") {\n\t\t\t\treturn timeInfoRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.tag) {\n\t\t\t\treturn tagRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\treturn dateRender(row, column, $index);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\treturn numberRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.link) {\n\t\t\t\treturn linkRender(row, column, $index);\n\t\t\t}\n\t\t\tif (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t}\n\t\t\tif (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\treturn autoWidthRender(\n\t\t\t\t<Fragment>\n\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t{renderValue}\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"className\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tclassName={getClassName()}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\tprops.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" original={props.originalImage} thumb />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tclassName={getClassName()}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tslots.header\n\t\t\t\t\t\t\t\t\t\t? slots.header({ column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t\t\t\t\t\t\t: headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tslots.default\n\t\t\t\t\t\t\t\t\t\t? slots.default({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t\t\t\t\t\t\t: defaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t\tfilterIcon: ({ filterOpened }: { filterOpened: boolean }) =>\n\t\t\t\t\t\t\t\t\tslots.filterIcon && slots.filterIcon({ filterOpened, ...getTableDefaultSlots(tableState) }),\n\t\t\t\t\t\t\t\texpand: ({ expanded }: { expanded: boolean }) =>\n\t\t\t\t\t\t\t\t\tslots.expand && slots.expand({ expanded, ...getTableDefaultSlots(tableState) }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","hideImage","copy","link","spanProp","click","clickEmit","originalImage","dateFix","dateFormat","tag","enum","dataDeleteField","timeInfoField","userName","time","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isNil","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getClassName","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","autoWidthRender","getTableDefaultSlots","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","CopyDocument","formatterRender","cellValue","tagRender","renderValue","renderCellData","tableUtil","handleRowAccordingToProp","enumData","enumKey","get","isArray","isFunction","filterEnum","formatValue","_Fragment","ElTag","defaultRender","timeInfoRender","_slot","style","round","effect","size","dateUtil","dateTimeFix","dateRender","_slot2","dayjs","format","numberRender","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","linkRender","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","original","thumb","notImage","filterIcon","filterOpened","expand","expanded"],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const tableStateKey: InjectionKey<FaTableState>;
9
9
  export declare const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>>;
10
10
  type TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;
11
11
  export declare const useTable: (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext["slots"], emit: TableSetupContext["emit"]) => {
12
- _globalSize: import('vue').ComputedRef<"" | "small" | "default" | "large">;
12
+ _globalSize: import('vue').ComputedRef<"" | "default" | "small" | "large">;
13
13
  state: FaTableState;
14
14
  elementRef: import('vue').Ref<HTMLElement, HTMLElement>;
15
15
  tableRef: import('vue').Ref<TableInstance, TableInstance>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),e=require("element-plus"),t=require("@fast-china/utils"),r=require("lodash-unified"),o=require("../utils/table.js"),n=require("./table.type.js"),l=Symbol("tableState"),s=Symbol("enumMap");exports.enumMapKey=s,exports.tableStateKey=l,exports.useTable=(i,c,p)=>{const h=e.useGlobalSize(),u=a.ref(),d=a.ref(),g=a.reactive(new Map);a.provide(s,g);const m=a.reactive({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:a.computed(()=>m.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:a.computed(()=>m.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:a.computed(()=>[...m.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...i.props.span?[{prop:"__table-index",spanProp:i.props.span},{prop:"__table-selection",spanProp:i.props.span},{prop:"__table-operation",spanProp:i.props.span}]:[]]),tableData:[],tableSpanData:a.computed(()=>{if(m.spanColumns?.length>0&&m.tableData?.length>0){const a=[];m.spanColumns.forEach(e=>{a[e.prop]=new Array(m.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<m.tableData.length;e++)m.spanColumns.forEach(t=>{m.tableData[e][t.spanProp]===m.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:i.searchForm,selected:!1,selectedList:[],selectedListIds:a.computed(()=>m.selectedList.map(a=>r.isFunction(i.rowKey)?i.rowKey(a):a[i.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:a.computed(()=>{const a=m.autoColumnWidth.find(a=>"__table-operation"===a.prop);if(a)return`${a.width}px`;switch(h.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});a.provide(l,m);const b=()=>{m.loading=!0,m.loadingText="加载中...",m.autoColumnWidth=[];const e=m.tableColumns.filter(a=>a.autoWidth);if(c?.operation&&e.push({prop:"__table-operation"}),e?.length>0){const t="default"===h.value?25:17;a.nextTick(()=>{const a=document.querySelector(`.fa-table__${i.tableKey}`);a&&e.forEach(e=>{const r=a.querySelector(`.__fa-table__auto-width-column__cell-header__${e?.prop}`),o=a.querySelectorAll(`.__fa-table__auto-width-column__cell__${e?.prop}`);let n=0;r&&(n=Math.ceil(r.scrollWidth)+t,e?.sortable&&(n+=24)),o.forEach(a=>{const e=Math.ceil(a.scrollWidth)+t;e>n&&(n=e)});const l=m.autoColumnWidth.find(a=>a.prop===e?.prop);l?l.width=Math.max(l.width,n):m.autoColumnWidth.push({prop:e?.prop,width:n})})})}m.loading=!1},P=a=>{if(i.treeData){const e=[];return a.forEach(a=>{const t=a[i.props.children];r.isArray(t)?t.forEach(t=>e.push({...a,...t})):e.push({...a,...t||{}})}),e}return a},f=()=>{const a={...m.searchParam,...i.pagination?m.tablePagination:{}};return delete a.totalRows,a},C=async()=>{if(m.loading=!0,m.loadingText="加载中...",i.requestApi){const e=f();p("refresh",e);let r=[];try{const a=await i.requestApi(e);if(i.dataCallback&&i.dataCallback(a),i.pagination){const e=a;r=e.rows,Object.assign(m.tablePagination,{pageIndex:e.pageIndex,pageSize:e.pageSize,totalRows:e.totalRows})}else r=a,Object.assign(m.tablePagination,{pageIndex:1,pageSize:0,totalRows:r.length});m.tableData=P(r)}catch(a){t.consoleError("FaTable",a),m.tableData=[]}finally{m.loading=!1}}else{p("refresh",{searchValue:m.searchParam.searchValue});let a=P(i.data);if(a=a.filter(a=>!m.searchParam.searchValue||m.tableColumns.some(e=>a[e.prop]?.toString()?.toLowerCase().includes(m.searchParam.searchValue?.toLowerCase()))),m.searchParam.sortList?.length>0&&(a=a.sort(o.tableUtil.arrayDynamicSort(m.searchParam.sortList))),i.pagination){Object.assign(m.tablePagination,{totalRows:a.length});const e=(m.tablePagination.pageIndex-1)*m.tablePagination.pageSize,t=e+m.tablePagination.pageSize;m.tableData=a.slice(e,t)}else m.tableData=a,Object.assign(m.tablePagination,{pageIndex:1,pageSize:0,totalRows:a.length});m.loading=!1}b()},w=()=>{let a=i.columns?i.columns:[];a.forEach(a=>{(a.pureSearch||a.search)&&(a.search.key??=a.prop,a.search.label??=a.label,a.search.defaultValue&&(m.searchParam[a.search.key]=a.search.defaultValue))}),a=a.sort((a,e)=>a?.order-e?.order),m.orgColumns=o.tableUtil.flatColumns(a,g)},y=()=>{if(i.hideSearchTime)m.searchParam.searchTimeList=void 0;else{const a=new Date,t=new Date;switch(i.dataSearchRange){case"Past1D":t.setDate(t.getDate()-1);break;case"Past3D":t.setDate(t.getDate()-3);break;case"Past1W":t.setDate(t.getDate()-7);break;case"Past1M":t.setMonth(t.getMonth()-1);break;case"Past3M":t.setMonth(t.getMonth()-3);break;case"Past6M":t.setMonth(t.getMonth()-6);break;case"Past1Y":t.setFullYear(t.getFullYear()-1);break;case"Past3Y":t.setFullYear(t.getFullYear()-3)}m.searchParam.searchTimeList=[e.dayjs(t).format("YYYY-MM-DD 00:00:00"),e.dayjs(a).format("YYYY-MM-DD 23:59:59")]}},S=async()=>{m.tablePagination.pageIndex=1,(()=>{const a={};for(const e in m.searchParam)m.searchParam[e]||!1===m.searchParam[e]||0===m.searchParam[e]?a[e]=m.searchParam[e]:m.searchParam[e]||delete m.searchParam[e];Object.assign(m.searchParam,a)})(),await C()},x=async()=>{m.orgColumns=[],m.autoColumnWidth=[],m.tableData=[],await t.clickUtil.debounceAsync(async()=>{w(),await S()},300)};return a.watch(()=>i.tableKey,async()=>{await x()}),a.watch(()=>i.searchForm,a=>{m.searchForm=a}),{_globalSize:h,state:m,elementRef:u,tableRef:d,handleTableColumnAutoWidth:b,getRequestParam:f,loadTableColumns:w,handleSizeChange:a=>{m.tablePagination.pageIndex=1,m.tablePagination.pageSize=a,p("sizeChange",a),p("paginationChange",1,a),C()},handlePaginationChange:a=>{m.tablePagination.pageIndex=a,p("sizeChange",m.tablePagination.pageSize),p("paginationChange",a,m.tablePagination.pageSize),C()},defaultSearchTime:y,tableSearch:S,tableReset:async()=>{m.tablePagination.pageIndex=1,m.searchParam={},y(),Object.keys(m.initParam??{}).forEach(a=>{m.searchParam[a]=m.initParam[a]}),p("reset",m.searchParam),await C()},doRender:x,doLoading:(a,e="加载中...")=>{m.loading=!0,m.loadingText=e,t.execFunction(a).then().catch(a=>{t.consoleError("FaTable",a)}).finally(()=>{m.loading=!1})},handleCustomCellClick:(a,{row:e,column:t,$index:r})=>{p("customCellClick",a,{row:e,column:t,$index:r,...n.getTableDefaultSlots(m)})}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),a=require("element-plus"),t=require("@fast-china/utils"),r=require("lodash-unified"),o=require("../utils/table.js"),s=require("./table.type.js"),l=Symbol("tableState"),n=Symbol("enumMap");exports.enumMapKey=n,exports.tableStateKey=l,exports.useTable=(i,c,p)=>{const h=a.useGlobalSize(),u=e.ref(),g=e.ref(),d=e.reactive(new Map);e.provide(n,d);const b=e.reactive({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:e.computed(()=>b.orgColumns.filter(e=>e.prop&&!e.pureSearch)),searchColumns:e.computed(()=>b.orgColumns.filter(e=>e.pureSearch||e.search).sort((e,a)=>e.search?.order-a.search?.order)),spanColumns:e.computed(()=>[...b.orgColumns.filter(e=>e.spanProp).map(e=>({prop:e?.prop,spanProp:e?.spanProp})),...i.props.span?[{prop:"__table-index",spanProp:i.props.span},{prop:"__table-selection",spanProp:i.props.span},{prop:"__table-operation",spanProp:i.props.span}]:[]]),tableData:[],tableSpanData:e.computed(()=>{if(b.spanColumns?.length>0&&b.tableData?.length>0){const e=[];b.spanColumns.forEach(a=>{e[a.prop]=new Array(b.tableData.length).fill(1,0,1).fill(0,1),e[`${a.prop}-index`]=0});for(let a=1;a<b.tableData.length;a++)b.spanColumns.forEach(t=>{b.tableData[a][t.spanProp]===b.tableData[a-1][t.spanProp]?e[t.prop][e[`${t.prop}-index`]]++:(e[`${t.prop}-index`]=a,e[t.prop][a]=1)});return e}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:i.searchForm,selected:!1,selectedList:[],selectedListIds:e.computed(()=>b.selectedList.map(e=>r.isFunction(i.rowKey)?i.rowKey(e):e[i.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:e.computed(()=>{const e=b.autoColumnWidth.find(e=>"__table-operation"===e.prop);if(e)return`${e.width}px`;switch(h.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});e.provide(l,b);const m=()=>{b.loading=!0,b.loadingText="加载中...",b.autoColumnWidth=[];const a=b.tableColumns.filter(e=>e.autoWidth);if(c?.operation&&a.push({prop:"__table-operation"}),a?.length>0){const t="default"===h.value?25:17;e.nextTick(()=>{const e=document.querySelector(`.fa-table__${i.tableKey}`);e&&a.forEach(a=>{const r=e.querySelector(`.__fa-table__auto-width-column__cell-header__${a?.prop}`),o=e.querySelectorAll(`.__fa-table__auto-width-column__cell__${a?.prop}`);let s=0;r&&(s=Math.ceil(r.scrollWidth)+t,a?.sortable&&(s+=24)),o.forEach(e=>{const a=Math.ceil(e.scrollWidth)+t;a>s&&(s=a)});const l=b.autoColumnWidth.find(e=>e.prop===a?.prop);l?l.width=Math.max(l.width,s):b.autoColumnWidth.push({prop:a?.prop,width:s})})})}b.loading=!1},P=e=>{if(i.treeData){const a=[];return e.forEach(e=>{const t=e[i.props.children];r.isArray(t)?t.forEach(t=>a.push({...e,...t})):a.push({...e,...t||{}})}),a}return e},f=()=>{const e={...b.searchParam,...i.pagination?b.tablePagination:{}};return delete e.totalRows,e},C=async()=>{if(b.loading=!0,b.loadingText="加载中...",i.requestApi){const a=f();p("refresh",a);let r=[];try{const e=await i.requestApi(a);if(i.dataCallback&&i.dataCallback(e),i.pagination){const a=e;r=a.rows,Object.assign(b.tablePagination,{pageIndex:a.pageIndex,pageSize:a.pageSize,totalRows:a.totalRows})}else r=e,Object.assign(b.tablePagination,{pageIndex:1,pageSize:0,totalRows:r.length});b.tableData=P(r)}catch(e){t.consoleError("FaTable",e),b.tableData=[]}finally{b.loading=!1}}else{p("refresh",{searchValue:b.searchParam.searchValue});let e=P(i.data);if(e=e.filter(e=>!b.searchParam.searchValue||b.tableColumns.some(a=>e[a.prop]?.toString()?.toLowerCase().includes(b.searchParam.searchValue?.toLowerCase()))),b.searchParam.sortList?.length>0&&(e=e.sort(o.tableUtil.arrayDynamicSort(b.searchParam.sortList))),i.pagination){Object.assign(b.tablePagination,{totalRows:e.length});const a=(b.tablePagination.pageIndex-1)*b.tablePagination.pageSize,t=a+b.tablePagination.pageSize;b.tableData=e.slice(a,t)}else b.tableData=e,Object.assign(b.tablePagination,{pageIndex:1,pageSize:0,totalRows:e.length});b.loading=!1}m()},w=()=>{let e=i.columns?i.columns:[];e.forEach(e=>{(e.pureSearch||e.search)&&(e.search.key??=e.prop,e.search.label??=e.label,e.search.defaultValue&&(b.searchParam[e.search.key]=e.search.defaultValue))}),e=e.sort((e,a)=>e?.order-a?.order),b.orgColumns=o.tableUtil.flatColumns(e,d)},D=()=>{if(i.hideSearchTime)b.searchParam.searchTimeList=void 0;else{const e=new Date,t=new Date;if(i.futureSearchTime)switch(i.dataSearchRange){case"Past1D":e.setDate(e.getDate()+1);break;case"Past3D":e.setDate(e.getDate()+3);break;case"Past1W":e.setDate(e.getDate()+7);break;case"Past1M":e.setMonth(e.getMonth()+1);break;case"Past3M":e.setMonth(e.getMonth()+3);break;case"Past6M":e.setMonth(e.getMonth()+6);break;case"Past1Y":e.setFullYear(e.getFullYear()+1);break;case"Past3Y":e.setFullYear(e.getFullYear()+3)}else switch(i.dataSearchRange){case"Past1D":t.setDate(t.getDate()-1);break;case"Past3D":t.setDate(t.getDate()-3);break;case"Past1W":t.setDate(t.getDate()-7);break;case"Past1M":t.setMonth(t.getMonth()-1);break;case"Past3M":t.setMonth(t.getMonth()-3);break;case"Past6M":t.setMonth(t.getMonth()-6);break;case"Past1Y":t.setFullYear(t.getFullYear()-1);break;case"Past3Y":t.setFullYear(t.getFullYear()-3)}b.searchParam.searchTimeList=[a.dayjs(t).format("YYYY-MM-DD 00:00:00"),a.dayjs(e).format("YYYY-MM-DD 23:59:59")]}},S=async()=>{b.tablePagination.pageIndex=1,(()=>{const e={};for(const a in b.searchParam)b.searchParam[a]||!1===b.searchParam[a]||0===b.searchParam[a]?e[a]=b.searchParam[a]:b.searchParam[a]||delete b.searchParam[a];Object.assign(b.searchParam,e)})(),await C()},y=async()=>{b.orgColumns=[],b.autoColumnWidth=[],b.tableData=[],await t.clickUtil.debounceAsync(async()=>{w(),await S()},300)};return e.watch(()=>i.tableKey,async()=>{await y()}),e.watch(()=>i.searchForm,e=>{b.searchForm=e}),{_globalSize:h,state:b,elementRef:u,tableRef:g,handleTableColumnAutoWidth:m,getRequestParam:f,loadTableColumns:w,handleSizeChange:e=>{b.tablePagination.pageIndex=1,b.tablePagination.pageSize=e,p("sizeChange",e),p("paginationChange",1,e),C()},handlePaginationChange:e=>{b.tablePagination.pageIndex=e,p("sizeChange",b.tablePagination.pageSize),p("paginationChange",e,b.tablePagination.pageSize),C()},defaultSearchTime:D,tableSearch:S,tableReset:async()=>{b.tablePagination.pageIndex=1,b.searchParam={},D(),Object.keys(b.initParam??{}).forEach(e=>{b.searchParam[e]=b.initParam[e]}),p("reset",b.searchParam),await C()},doRender:y,doLoading:(e,a="加载中...")=>{b.loading=!0,b.loadingText=a,t.execFunction(e).then().catch(e=>{t.consoleError("FaTable",e)}).finally(()=>{b.loading=!1})},handleCustomCellClick:(e,{row:a,column:t,$index:r})=>{p("customCellClick",e,{row:a,column:t,$index:r,...s.getTableDefaultSlots(b)})}}};
2
2
  //# sourceMappingURL=useTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\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((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\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 = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 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\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][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(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\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\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: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\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\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\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});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\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\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 = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\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\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.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\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (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 loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? 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.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\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 - b?.order;\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(\"sizeChange\", state.tablePagination.pageSize);\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 = {};\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\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\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\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.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\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 clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\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"],"names":["tableStateKey","enumMapKey","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\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((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\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 = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 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\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][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(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\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\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: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\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\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\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});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\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\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 = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\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\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.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\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (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 loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? 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.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\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 - b?.order;\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(\"sizeChange\", state.tablePagination.pageSize);\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 = {};\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\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.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\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 clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\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"],"names":["tableStateKey","enumMapKey","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","futureSearchTime","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),n={formatValue:n=>e.isArray(n)?n.length?n.join(" , "):null:n,handleRowAccordingToProp:(e,n)=>n.includes(".")?(n.split(".").forEach(n=>e=e[n]),e):e[n]??null,handleProp(e){const n=e.split(".");return 1===n.length?e:n[n.length-1]},filterEnum(n,t,r,i){const l=r?.value??"value",s=r?.label??"label";let o={};return e.isArray(t)&&(o=t.find(e=>e[l]===n)),"tag"===i?o?.type??"info":o?o[s]:null},arrayDynamicSort:e=>function(n,t){if(e&&e.length>0)for(const r of e){const e=r.enField,i=r.mode,l=n[e],s=t[e];if("string"==typeof l&&"string"==typeof s){if("ascending"===i){const e=l.localeCompare(s,"zh-CN");if(0!==e)return e}else if("descending"===i){const e=s.localeCompare(l,"zh-CN");if(0!==e)return e}}else if("ascending"===i){if(l<s)return-1;if(l>s)return 1}else if("descending"===i){if(l>s)return-1;if(l<s)return 1}}return 0},setEnumMap(n,t,r){n&&(e.isFunction(n)?r.set(t,n()):e.isArray(n)&&r.set(t,n))},flatColumns(n,t){const r=[];return n.forEach(n=>{n._children?.length&&r.push(...this.flatColumns(n._children)),r.push(n),n.show=n.show??!0;let i=n.prop??n.search?.key;n.enum&&e.isString(n.enum)&&(i=n.enum),this.setEnumMap(n.enum,i,t)}),r.filter(e=>!e._children?.length)}};exports.tableUtil=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("lodash-unified"),n={formatValue:n=>e.isArray(n)?n.length?n.join(" , "):null:n,handleRowAccordingToProp:(e,n)=>n.includes(".")?(n.split(".").forEach(n=>e=e[n]),e):e[n],handleProp(e){const n=e.split(".");return 1===n.length?e:n[n.length-1]},filterEnum(n,t,r,i){const l=r?.value??"value",s=r?.label??"label";let o={};return e.isArray(t)&&(o=t.find(e=>e[l]===n)),"tag"===i?o?.type??"info":o?o[s]:null},arrayDynamicSort:e=>function(n,t){if(e&&e.length>0)for(const r of e){const e=r.enField,i=r.mode,l=n[e],s=t[e];if("string"==typeof l&&"string"==typeof s){if("ascending"===i){const e=l.localeCompare(s,"zh-CN");if(0!==e)return e}else if("descending"===i){const e=s.localeCompare(l,"zh-CN");if(0!==e)return e}}else if("ascending"===i){if(l<s)return-1;if(l>s)return 1}else if("descending"===i){if(l>s)return-1;if(l<s)return 1}}return 0},setEnumMap(n,t,r){n&&(e.isFunction(n)?r.set(t,n()):e.isArray(n)&&r.set(t,n))},flatColumns(n,t){const r=[];return n.forEach(n=>{n._children?.length&&r.push(...this.flatColumns(n._children)),r.push(n),n.show=n.show??!0;let i=n.prop??n.search?.key;n.enum&&e.isString(n.enum)&&(i=n.enum),this.setEnumMap(n.enum,i,t)}),r.filter(e=>!e._children?.length)}};exports.tableUtil=n;
2
2
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../../../packages/components/table/utils/table.ts"],"sourcesContent":["import { isArray, isFunction, isString } from \"lodash-unified\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType, PagedSortInput } from \"@fast-element-plus/components\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: any): any {\n\t\t// 如果当前值为数组,使用 / 拼接(根据需求自定义)\n\t\t// if (isArray(callValue)) return callValue.length ? callValue.join(\" / \") : \"--\";\n\t\tif (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;\n\t\t// return callValue ?? \"--\";\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: any, prop: string): any {\n\t\t// if (!prop.includes(\".\")) return row[prop] ?? \"--\";\n\t\tif (!prop.includes(\".\")) return row[prop] ?? null;\n\t\t// prop.split(\".\").forEach((item) => (row = row[item] ?? \"--\"));\n\t\tprop.split(\".\").forEach((item) => (row = row[item]));\n\t\treturn row;\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[propArr.length - 1];\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: any, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): string {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tlet filterData: any = {};\n\t\tif (isArray(enumData)) {\n\t\t\tfilterData = enumData.find((item: any) => item[value] === callValue);\n\t\t}\n\t\tif (type === \"tag\") {\n\t\t\treturn filterData?.type ?? \"info\";\n\t\t}\n\t\t// return filterData ? filterData[label] : \"--\";\n\t\treturn filterData ? filterData[label] : null;\n\t},\n\t/**\n\t * 数组动态排序\n\t */\n\tarrayDynamicSort(sortList: PagedSortInput[]): (a: any, b: any) => number {\n\t\treturn function (a: any, b: any) {\n\t\t\tif (sortList && 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\n\t\t\t\t\tconst aValue = a[property];\n\t\t\t\t\tconst bValue = 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 < bValue) return -1;\n\t\t\t\t\t\t\tif (aValue > bValue) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif (aValue > bValue) return -1;\n\t\t\t\t\t\t\tif (aValue < bValue) 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 = col.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\tthis.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"names":["tableUtil","formatValue","callValue","isArray","length","join","handleRowAccordingToProp","row","prop","includes","split","forEach","item","handleProp","propArr","filterEnum","enumData","fieldNames","type","value","label","filterData","find","arrayDynamicSort","sortList","a","b","condition","property","enField","order","mode","aValue","bValue","comparison","localeCompare","setEnumMap","columnEnum","enumMap","isFunction","set","flatColumns","columns","flatArr","col","_children","push","this","show","enumKey","search","key","enum","isString","filter"],"mappings":"kHAMaA,EAAY,CAKxBC,YAAYC,GAGPC,UAAQD,GAAmBA,EAAUE,OAASF,EAAUG,KAAK,OAAS,KAEnEH,EAORI,yBAAA,CAAyBC,EAAUC,IAE7BA,EAAKC,SAAS,MAEnBD,EAAKE,MAAM,KAAKC,QAASC,GAAUL,EAAMA,EAAIK,IACtCL,GAHyBA,EAAIC,IAAS,KAS9C,UAAAK,CAAWL,GACV,MAAMM,EAAUN,EAAKE,MAAM,KAC3B,OAAuB,IAAnBI,EAAQV,OAAqBI,EAC1BM,EAAQA,EAAQV,OAAS,EACjC,EAQA,UAAAW,CAAWb,EAAgBc,EAAkCC,EAA+CC,GAC3G,MAAMC,EAAQF,GAAYE,OAAS,QAC7BC,EAAQH,GAAYG,OAAS,QACnC,IAAIC,EAAkB,CAAA,EAItB,OAHIlB,EAAAA,QAAQa,KACXK,EAAaL,EAASM,KAAMV,GAAcA,EAAKO,KAAWjB,IAE9C,QAATgB,EACIG,GAAYH,MAAQ,OAGrBG,EAAaA,EAAWD,GAAS,IACzC,EAIAG,iBAAiBC,GACT,SAAUC,EAAQC,GACxB,GAAIF,GAAYA,EAASpB,OAAS,EACjC,IAAA,MAAWuB,KAAaH,EAAU,CACjC,MAAMI,EAAWD,EAAUE,QACrBC,EAAQH,EAAUI,KAElBC,EAASP,EAAEG,GACXK,EAASP,EAAEE,GAEjB,GAAsB,iBAAXI,GAAyC,iBAAXC,GACxC,GAAc,cAAVH,EAAuB,CAC1B,MAAMI,EAAaF,EAAOG,cAAcF,EAAQ,SAChD,GAAmB,IAAfC,EACH,OAAOA,CAET,MAAA,GAAqB,eAAVJ,EAAwB,CAClC,MAAMI,EAAaD,EAAOE,cAAcH,EAAQ,SAChD,GAAmB,IAAfE,EACH,OAAOA,CAET,OAEA,GAAc,cAAVJ,EAAuB,CAC1B,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,MAAA,GAAqB,eAAVH,EAAwB,CAClC,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,CAEF,CAGD,OAAO,CACR,EAKD,UAAAG,CAAWC,EAAmC7B,EAAc8B,GACtDD,IACDE,EAAAA,WAAWF,GACdC,EAAQE,IAAIhC,EAAM6B,KACRlC,UAAQkC,IAClBC,EAAQE,IAAIhC,EAAM6B,GAEpB,EAIA,WAAAI,CAAYC,EAA6BJ,GACxC,MAAMK,EAA8B,GAqBpC,OApBAD,EAAQ/B,QAASiC,IACZA,EAAIC,WAAWzC,QAClBuC,EAAQG,QAAQC,KAAKN,YAAYG,EAAIC,YAGtCF,EAAQG,KAAKF,GAGbA,EAAII,KAAOJ,EAAII,OAAQ,EAGvB,IAAIC,EAAUL,EAAIpC,MAAQoC,EAAIM,QAAQC,IAElCP,EAAIQ,MAAQC,EAAAA,SAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKX,WAAWQ,EAAIQ,KAAMH,EAASX,KAE7BK,EAAQW,OAAQ1C,IAAUA,EAAKiC,WAAWzC,OAClD"}
1
+ {"version":3,"file":"table.js","sources":["../../../../../packages/components/table/utils/table.ts"],"sourcesContent":["import { isArray, isFunction, isString } from \"lodash-unified\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType, PagedSortInput } from \"@fast-element-plus/components\";\n\n/**\n * 表格工具类\n */\nexport const tableUtil = {\n\t/**\n\t * @description 处理无数据情况\n\t * @param {String} callValue 需要处理的值\n\t */\n\tformatValue(callValue: any): any {\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: any, prop: string): any {\n\t\tif (!prop.includes(\".\")) return row[prop];\n\t\tprop.split(\".\").forEach((item) => (row = row[item]));\n\t\treturn row;\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[propArr.length - 1];\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: any, enumData: FaTableEnumColumnCtx[], fieldNames?: { label: string; value: string }, type?: \"tag\"): string {\n\t\tconst value = fieldNames?.value ?? \"value\";\n\t\tconst label = fieldNames?.label ?? \"label\";\n\t\tlet filterData: any = {};\n\t\tif (isArray(enumData)) {\n\t\t\tfilterData = enumData.find((item: any) => 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: any, b: any) => number {\n\t\treturn function (a: any, b: any) {\n\t\t\tif (sortList && 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\n\t\t\t\t\tconst aValue = a[property];\n\t\t\t\t\tconst bValue = 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 < bValue) return -1;\n\t\t\t\t\t\t\tif (aValue > bValue) return 1;\n\t\t\t\t\t\t} else if (order === \"descending\") {\n\t\t\t\t\t\t\tif (aValue > bValue) return -1;\n\t\t\t\t\t\t\tif (aValue < bValue) 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 = col.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\tthis.setEnumMap(col.enum, enumKey, enumMap);\n\t\t});\n\t\treturn flatArr.filter((item) => !item._children?.length);\n\t},\n};\n"],"names":["tableUtil","formatValue","callValue","isArray","length","join","handleRowAccordingToProp","row","prop","includes","split","forEach","item","handleProp","propArr","filterEnum","enumData","fieldNames","type","value","label","filterData","find","arrayDynamicSort","sortList","a","b","condition","property","enField","order","mode","aValue","bValue","comparison","localeCompare","setEnumMap","columnEnum","enumMap","isFunction","set","flatColumns","columns","flatArr","col","_children","push","this","show","enumKey","search","key","enum","isString","filter"],"mappings":"kHAMaA,EAAY,CAKxBC,YAAYC,GAEPC,UAAQD,GAAmBA,EAAUE,OAASF,EAAUG,KAAK,OAAS,KACnEH,EAORI,yBAAA,CAAyBC,EAAUC,IAC7BA,EAAKC,SAAS,MACnBD,EAAKE,MAAM,KAAKC,QAASC,GAAUL,EAAMA,EAAIK,IACtCL,GAFyBA,EAAIC,GAQrC,UAAAK,CAAWL,GACV,MAAMM,EAAUN,EAAKE,MAAM,KAC3B,OAAuB,IAAnBI,EAAQV,OAAqBI,EAC1BM,EAAQA,EAAQV,OAAS,EACjC,EAQA,UAAAW,CAAWb,EAAgBc,EAAkCC,EAA+CC,GAC3G,MAAMC,EAAQF,GAAYE,OAAS,QAC7BC,EAAQH,GAAYG,OAAS,QACnC,IAAIC,EAAkB,CAAA,EAItB,OAHIlB,EAAAA,QAAQa,KACXK,EAAaL,EAASM,KAAMV,GAAcA,EAAKO,KAAWjB,IAE9C,QAATgB,EACIG,GAAYH,MAAQ,OAErBG,EAAaA,EAAWD,GAAS,IACzC,EAIAG,iBAAiBC,GACT,SAAUC,EAAQC,GACxB,GAAIF,GAAYA,EAASpB,OAAS,EACjC,IAAA,MAAWuB,KAAaH,EAAU,CACjC,MAAMI,EAAWD,EAAUE,QACrBC,EAAQH,EAAUI,KAElBC,EAASP,EAAEG,GACXK,EAASP,EAAEE,GAEjB,GAAsB,iBAAXI,GAAyC,iBAAXC,GACxC,GAAc,cAAVH,EAAuB,CAC1B,MAAMI,EAAaF,EAAOG,cAAcF,EAAQ,SAChD,GAAmB,IAAfC,EACH,OAAOA,CAET,MAAA,GAAqB,eAAVJ,EAAwB,CAClC,MAAMI,EAAaD,EAAOE,cAAcH,EAAQ,SAChD,GAAmB,IAAfE,EACH,OAAOA,CAET,OAEA,GAAc,cAAVJ,EAAuB,CAC1B,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,MAAA,GAAqB,eAAVH,EAAwB,CAClC,GAAIE,EAASC,EAAQ,OAAO,EAC5B,GAAID,EAASC,EAAQ,OAAO,CAC7B,CAEF,CAGD,OAAO,CACR,EAKD,UAAAG,CAAWC,EAAmC7B,EAAc8B,GACtDD,IACDE,EAAAA,WAAWF,GACdC,EAAQE,IAAIhC,EAAM6B,KACRlC,UAAQkC,IAClBC,EAAQE,IAAIhC,EAAM6B,GAEpB,EAIA,WAAAI,CAAYC,EAA6BJ,GACxC,MAAMK,EAA8B,GAqBpC,OApBAD,EAAQ/B,QAASiC,IACZA,EAAIC,WAAWzC,QAClBuC,EAAQG,QAAQC,KAAKN,YAAYG,EAAIC,YAGtCF,EAAQG,KAAKF,GAGbA,EAAII,KAAOJ,EAAII,OAAQ,EAGvB,IAAIC,EAAUL,EAAIpC,MAAQoC,EAAIM,QAAQC,IAElCP,EAAIQ,MAAQC,EAAAA,SAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKX,WAAWQ,EAAIQ,KAAMH,EAASX,KAE7BK,EAAQW,OAAQ1C,IAAUA,EAAKiC,WAAWzC,OAClD"}
@@ -37,11 +37,11 @@ export declare const faTreeProps: {
37
37
  label: StringConstructor;
38
38
  /** @description 宽度 */
39
39
  width: {
40
- type: (NumberConstructor | StringConstructor)[];
40
+ type: (StringConstructor | NumberConstructor)[];
41
41
  default: number;
42
42
  };
43
43
  /** @description 默认选择 */
44
- defaultSelection: (NumberConstructor | StringConstructor)[];
44
+ defaultSelection: (StringConstructor | NumberConstructor)[];
45
45
  /** @description 标题 */
46
46
  title: StringConstructor;
47
47
  /** @description 折叠 */
@@ -203,11 +203,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
203
203
  label: StringConstructor;
204
204
  /** @description 宽度 */
205
205
  width: {
206
- type: (NumberConstructor | StringConstructor)[];
206
+ type: (StringConstructor | NumberConstructor)[];
207
207
  default: number;
208
208
  };
209
209
  /** @description 默认选择 */
210
- defaultSelection: (NumberConstructor | StringConstructor)[];
210
+ defaultSelection: (StringConstructor | NumberConstructor)[];
211
211
  /** @description 标题 */
212
212
  title: StringConstructor;
213
213
  /** @description 折叠 */
@@ -394,11 +394,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
394
394
  label: StringConstructor;
395
395
  /** @description 宽度 */
396
396
  width: {
397
- type: (NumberConstructor | StringConstructor)[];
397
+ type: (StringConstructor | NumberConstructor)[];
398
398
  default: number;
399
399
  };
400
400
  /** @description 默认选择 */
401
- defaultSelection: (NumberConstructor | StringConstructor)[];
401
+ defaultSelection: (StringConstructor | NumberConstructor)[];
402
402
  /** @description 标题 */
403
403
  title: StringConstructor;
404
404
  /** @description 折叠 */