fast-element-plus 1.0.9 → 1.0.11

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 (119) hide show
  1. package/dist/index.full.js +1796 -12281
  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 +1796 -12281
  8. package/dist/index.full.mjs.map +1 -1
  9. package/es/components/selectV2/src/selectV2.d.ts +12 -13
  10. package/es/components/selectV2/src/selectV2.mjs +1 -1
  11. package/es/components/selectV2/src/selectV2.mjs.map +1 -1
  12. package/es/components/table/src/table.mjs +1 -1
  13. package/es/components/table/src/table.mjs.map +1 -1
  14. package/es/components/table/src/tableColumn.mjs +1 -1
  15. package/es/components/table/src/tableColumn.mjs.map +1 -1
  16. package/es/components/table/utils/table.mjs +1 -1
  17. package/es/components/table/utils/table.mjs.map +1 -1
  18. package/es/components/treeSelect/src/treeSelect.d.ts +48 -48
  19. package/es/components/treeSelect/src/treeSelect.mjs +1 -1
  20. package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
  21. package/es/version.d.ts +1 -1
  22. package/es/version.mjs +1 -1
  23. package/es/version.mjs.map +1 -1
  24. package/lib/components/selectV2/src/selectV2.d.ts +12 -13
  25. package/lib/components/selectV2/src/selectV2.js +1 -1
  26. package/lib/components/selectV2/src/selectV2.js.map +1 -1
  27. package/lib/components/table/src/table.js +1 -1
  28. package/lib/components/table/src/table.js.map +1 -1
  29. package/lib/components/table/src/tableColumn.js +1 -1
  30. package/lib/components/table/src/tableColumn.js.map +1 -1
  31. package/lib/components/table/utils/table.js +1 -1
  32. package/lib/components/table/utils/table.js.map +1 -1
  33. package/lib/components/treeSelect/src/treeSelect.d.ts +48 -48
  34. package/lib/components/treeSelect/src/treeSelect.js +1 -1
  35. package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
  36. package/lib/version.d.ts +1 -1
  37. package/lib/version.js +1 -1
  38. package/lib/version.js.map +1 -1
  39. package/package.json +1 -1
  40. package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs +0 -2
  41. package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs.map +0 -1
  42. package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +0 -2
  43. package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs.map +0 -1
  44. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.mjs +0 -2
  45. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.mjs.map +0 -1
  46. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.mjs +0 -2
  47. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.mjs.map +0 -1
  48. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.mjs +0 -2
  49. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.mjs.map +0 -1
  50. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.mjs +0 -2
  51. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.mjs.map +0 -1
  52. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.mjs +0 -2
  53. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.mjs.map +0 -1
  54. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.mjs +0 -2
  55. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.mjs.map +0 -1
  56. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.mjs +0 -2
  57. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.mjs.map +0 -1
  58. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.mjs +0 -2
  59. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.mjs.map +0 -1
  60. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.mjs +0 -2
  61. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.mjs.map +0 -1
  62. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.mjs +0 -2
  63. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.mjs.map +0 -1
  64. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.mjs +0 -2
  65. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.mjs.map +0 -1
  66. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.mjs +0 -2
  67. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.mjs.map +0 -1
  68. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.mjs +0 -2
  69. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.mjs.map +0 -1
  70. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.mjs +0 -2
  71. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.mjs.map +0 -1
  72. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.mjs +0 -2
  73. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.mjs.map +0 -1
  74. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.mjs +0 -2
  75. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.mjs.map +0 -1
  76. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.mjs +0 -2
  77. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.mjs.map +0 -1
  78. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.mjs +0 -2
  79. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.mjs.map +0 -1
  80. package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js +0 -2
  81. package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js.map +0 -1
  82. package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -2
  83. package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  84. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.js +0 -2
  85. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.js.map +0 -1
  86. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.js +0 -2
  87. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.js.map +0 -1
  88. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.js +0 -2
  89. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.js.map +0 -1
  90. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.js +0 -2
  91. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.js.map +0 -1
  92. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.js +0 -2
  93. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.js.map +0 -1
  94. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.js +0 -2
  95. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.js.map +0 -1
  96. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.js +0 -2
  97. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.js.map +0 -1
  98. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.js +0 -2
  99. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.js.map +0 -1
  100. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.js +0 -2
  101. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.js.map +0 -1
  102. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.js +0 -2
  103. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.js.map +0 -1
  104. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.js +0 -2
  105. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.js.map +0 -1
  106. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.js +0 -2
  107. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.js.map +0 -1
  108. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.js +0 -2
  109. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.js.map +0 -1
  110. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.js +0 -2
  111. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.js.map +0 -1
  112. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.js +0 -2
  113. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.js.map +0 -1
  114. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.js +0 -2
  115. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.js.map +0 -1
  116. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.js +0 -2
  117. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.js.map +0 -1
  118. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.js +0 -2
  119. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.js.map +0 -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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"}
@@ -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"}
@@ -2,6 +2,22 @@ import { SelectComponentProps } from '../../select/src/select';
2
2
  import { ElSelectorOutput } from '../../select';
3
3
  import { ComponentInternalInstance } from 'vue';
4
4
  export declare const faTreeSelectProps: {
5
+ /**
6
+ * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
7
+ * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
8
+ */
9
+ cacheData: {
10
+ type: import('vue').PropType<{
11
+ value: string | number | boolean | object;
12
+ currentLabel: string | number;
13
+ isDisabled: boolean;
14
+ }[]>;
15
+ default: {
16
+ value: string | number | boolean | object;
17
+ currentLabel: string | number;
18
+ isDisabled: boolean;
19
+ }[];
20
+ };
5
21
  /** @description whether Select is disabled 重载使其支持 ElForm*/
6
22
  disabled: {
7
23
  type: BooleanConstructor;
@@ -56,22 +72,6 @@ export declare const faTreeSelectProps: {
56
72
  expandOnClickNode: BooleanConstructor;
57
73
  /** @description 点击折叠节点,需要开启 'expandOnClickNode' */
58
74
  collapseOnClickNode: BooleanConstructor;
59
- /**
60
- * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
61
- * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
62
- */
63
- cacheData: {
64
- type: import('vue').PropType<{
65
- value: string | number | boolean | object;
66
- currentLabel: string | number;
67
- isDisabled: boolean;
68
- }[]>;
69
- default: {
70
- value: string | number | boolean | object;
71
- currentLabel: string | number;
72
- isDisabled: boolean;
73
- }[];
74
- };
75
75
  /** @description v-model绑定值 */
76
76
  modelValue: {
77
77
  type: import('vue').PropType<string | number | boolean | object | (string | number | boolean | object)[]>;
@@ -312,6 +312,22 @@ type FaTreeSelectSlots = {
312
312
  };
313
313
  };
314
314
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
315
+ /**
316
+ * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
317
+ * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
318
+ */
319
+ cacheData: {
320
+ type: import('vue').PropType<{
321
+ value: string | number | boolean | object;
322
+ currentLabel: string | number;
323
+ isDisabled: boolean;
324
+ }[]>;
325
+ default: {
326
+ value: string | number | boolean | object;
327
+ currentLabel: string | number;
328
+ isDisabled: boolean;
329
+ }[];
330
+ };
315
331
  /** @description whether Select is disabled 重载使其支持 ElForm*/
316
332
  disabled: {
317
333
  type: BooleanConstructor;
@@ -366,22 +382,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
366
382
  expandOnClickNode: BooleanConstructor;
367
383
  /** @description 点击折叠节点,需要开启 'expandOnClickNode' */
368
384
  collapseOnClickNode: BooleanConstructor;
369
- /**
370
- * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
371
- * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
372
- */
373
- cacheData: {
374
- type: import('vue').PropType<{
375
- value: string | number | boolean | object;
376
- currentLabel: string | number;
377
- isDisabled: boolean;
378
- }[]>;
379
- default: {
380
- value: string | number | boolean | object;
381
- currentLabel: string | number;
382
- isDisabled: boolean;
383
- }[];
384
- };
385
385
  /** @description v-model绑定值 */
386
386
  modelValue: {
387
387
  type: import('vue').PropType<string | number | boolean | object | (string | number | boolean | object)[]>;
@@ -605,6 +605,22 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
605
605
  blur: (evt: FocusEvent) => boolean;
606
606
  clear: () => boolean;
607
607
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
608
+ /**
609
+ * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
610
+ * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
611
+ */
612
+ cacheData: {
613
+ type: import('vue').PropType<{
614
+ value: string | number | boolean | object;
615
+ currentLabel: string | number;
616
+ isDisabled: boolean;
617
+ }[]>;
618
+ default: {
619
+ value: string | number | boolean | object;
620
+ currentLabel: string | number;
621
+ isDisabled: boolean;
622
+ }[];
623
+ };
608
624
  /** @description whether Select is disabled 重载使其支持 ElForm*/
609
625
  disabled: {
610
626
  type: BooleanConstructor;
@@ -659,22 +675,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
659
675
  expandOnClickNode: BooleanConstructor;
660
676
  /** @description 点击折叠节点,需要开启 'expandOnClickNode' */
661
677
  collapseOnClickNode: BooleanConstructor;
662
- /**
663
- * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签
664
- * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data
665
- */
666
- cacheData: {
667
- type: import('vue').PropType<{
668
- value: string | number | boolean | object;
669
- currentLabel: string | number;
670
- isDisabled: boolean;
671
- }[]>;
672
- default: {
673
- value: string | number | boolean | object;
674
- currentLabel: string | number;
675
- isDisabled: boolean;
676
- }[];
677
- };
678
678
  /** @description v-model绑定值 */
679
679
  modelValue: {
680
680
  type: import('vue').PropType<string | number | boolean | object | (string | number | boolean | object)[]>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("element-plus"),a=require("../../select/src/select.js"),t=require("../../tree/src/tree.props.js"),r=require("@fast-china/utils"),o=require("@vueuse/core"),i=require("lodash-unified"),d={...a.SelectProps,...t.treeProps,disabled:{type:Boolean,default:void 0},loadingText:{type:String,default:"加载中..."},noMatchText:{type:String,default:"暂无匹配的数据"},noDataText:{type:String,default:"暂无数据"},collapseTags:{type:Boolean,default:!0},collapseTagsTooltip:{type:Boolean,default:!0},nodeKey:{type:String,default:"value"},defaultExpandAll:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!0},highlightCurrent:{type:Boolean,default:!0},expandOnClickNode:Boolean,collapseOnClickNode:Boolean,cacheData:{type:r.definePropType(Array),default:[]},modelValue:{type:r.definePropType([String,Number,Boolean,Object,Array]),default:void 0},label:r.definePropType([String,Array]),width:{type:[String,Number],default:"100%"},moreDetail:Boolean,lazy:{type:Boolean,default:!0},defaultSelected:Boolean,props:{type:r.definePropType(Object),default:()=>({label:"label",hide:"hide",disabled:"disabled",children:"children"})},data:{type:r.definePropType(Array),default:()=>[]},requestApi:{type:r.definePropType(Function)},initParam:r.definePropType([String,Number,Object])},n={...l.selectEmits,...l.treeEmits,"update:modelValue":e=>i.isString(e)||i.isNumber(e)||i.isBoolean(e)||i.isObject(e)||i.isArray(e)||i.isNull(e),"update:label":e=>i.isString(e)||i.isArray(e)||i.isNull(e),dataChangeCallBack:e=>i.isArray(e),change:(e,l)=>!0},s=e.defineComponent({name:"FaTreeSelect",props:d,emits:n,slots:r.makeSlots(),setup(d,{attrs:n,slots:s,emit:u,expose:p}){const c=o.useVModel(d,"label",u),f=e.reactive({value:r.withDefineType(),loading:!1,selectorData:r.withDefineType([]),debut:!0,echo:!(d.data?.length>0),nextRefresh:!1}),h=e.ref(),m=e=>e?.map(e=>({...e,value:e[d.nodeKey],label:i.isFunction(d.props.label)?d.props.label(e):e[d.props.label??"label"],hide:i.isFunction(d.props.hide)?d.props.hide(e):e[d.props.hide??"hide"],disabled:i.isFunction(d.props.disabled)?d.props.disabled(e):e[d.props.disabled??"disabled"],children:i.isFunction(d.props.children)?m(d.props.children(e)):m(e[d.props.children??"children"])})).filter(e=>!e.hide),y=async()=>{if(d.requestApi){f.loading=!0;const l=d.initParam??{};try{const e=await d.requestApi(l);f.echo=!1,f.selectorData=m(e),u("dataChangeCallBack",f.selectorData)}catch(e){r.consoleError("FaTreeSelect",e),f.selectorData=[]}finally{f.loading=!1}}else f.echo=!1,f.selectorData=m(d.data)},b=(e,l,a)=>{if(!e)return!0;let t=a.parent,r=[a.label],o=1;for(;o<a.level;)r=[...r,t.label],t=t.parent,o++;const i=r.some(l=>-1!==l.indexOf(e));return d.filterNodeMethod?i&&d.filterNodeMethod(e,l,a):i},g=(e,l)=>{if(d.multiple){const l=e;if(0===l?.length)return f.value=null,c.value=null,u("update:modelValue",null),void u("change",null,null);const a=f.selectorData.filter(e=>l.includes(e.value));f.value=e,c.value=a.map(e=>e.label),u("update:modelValue",e),u("change",a,e)}else{if(i.isNil(e))return f.value=null,c.value=null,u("update:modelValue",null),void u("change",null,null);l??=f.selectorData.find(l=>l.value===e),f.value=e,c.value=l.label,u("update:modelValue",e),u("change",l,e)}},v=()=>{f.value=null,c.value=null,u("update:modelValue",null),u("clear")},S=(e,l,a,t)=>{d.expandOnClickNode&&(l.expanded?l.expanded&&d.collapseOnClickNode&&l.collapse():l.expand()),(d.checkStrictly||l.isLeaf)&&g(e.value,e),u("node-click",e,l,a,t)},x=async e=>{e&&(f.debut?(f.debut=!1,d.lazy&&await y()):f.nextRefresh&&(f.nextRefresh=!1,await y())),u("visible-change",e)};e.watch(()=>d.modelValue,e=>{if(f.echo&&!i.isNil(e)){const l=!i.isNil(d.label);if(d.multiple){if(!i.isArray(e))return void r.consoleError("FaTreeSelect","当启用 multiple 时,传入的 modelValue 必须是Array。");if(l&&!i.isArray(d.label))return void r.consoleError("FaTreeSelect","当启用 multiple 时,传入的 modelValue:label 必须是Array。");f.selectorData=e.slice(0,d.multipleLimit>0?d.multipleLimit:e.length).map((e,a)=>({value:e,label:l?d.label[a]:void 0}))}else{if(i.isArray(e))return void r.consoleError("FaTreeSelect","当禁用 multiple 时,传入的 modelValue 不能是Array。");if(l&&i.isArray(d.label))return void r.consoleError("FaTreeSelect","当禁用 multiple 时,传入的 modelValue:label 不能是Array。");f.selectorData=[{value:e,label:d.label}]}}f.value=e},{immediate:!0}),e.onMounted(async()=>{d.defaultSelected?(await y(),f.selectorData.length>0&&(d.multiple?g([f.selectorData[0].value]):g(f.selectorData[0].value,f.selectorData[0]))):!d.requestApi&&d.data?.length>0?(f.debut=!1,await y()):d.lazy||await y(),e.watch(()=>d.initParam,(e,l)=>{i.isEqual(e,l)||(f.nextRefresh=!0,i.isNil(f.value)||g())}),e.watch(()=>d.data,async()=>{d.requestApi||await y()},{deep:!0})});const N=r.useProps(d,{...a.SelectProps,...t.treeProps},["modelValue","popperClass","loading","expandOnClickNode","filterNodeMethod"]),T=r.useEmits({...l.selectEmits,...l.treeEmits},u,["update:modelValue","clear","visible-change","node-click"]);return r.useRender(()=>e.createVNode(l.ElTreeSelect,e.mergeProps(N.value,T.value,{ref:h,class:"fa-tree-select",popperClass:`fa-tree-select-dropdown ${d.popperClass}`,style:{width:r.addUnit(d.width)},modelValue:f.value,"onUpdate:modelValue":e=>f.value=e,loading:f.loading,data:f.selectorData,expandOnClickNode:!d.checkOnClickNode&&d.expandOnClickNode,filterNodeMethod:b,onNodeClick:S,onClear:v,onVisibleChange:x}),{...s.default&&{default:({node:e,data:l})=>s.default({node:e,data:l})},...s.header&&{header:()=>s.header()},...s.footer&&{footer:()=>s.footer()},...s.prefix&&{prefix:()=>s.prefix()},...s.empty&&{empty:()=>s.empty()},...s.tag&&{tag:()=>s.tag()},...s.loading&&{loading:()=>s.loading()},...s.label&&{label:({label:e,value:l})=>s.label({label:e,value:l})}})),r.useExpose(p,{loading:e.computed(()=>f.loading),refresh:y,setSelection:e=>g(e),clearSelection:()=>g(null)})}});exports.default=s,exports.faTreeSelectEmits=n,exports.faTreeSelectProps=d;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("element-plus"),a=require("../../select/src/select.js"),t=require("../../tree/src/tree.props.js"),r=require("@fast-china/utils"),o=require("@vueuse/core"),i=require("lodash-unified"),d={...a.SelectProps,...t.treeProps,cacheData:{type:r.definePropType(Array),default:[]},disabled:{type:Boolean,default:void 0},loadingText:{type:String,default:"加载中..."},noMatchText:{type:String,default:"暂无匹配的数据"},noDataText:{type:String,default:"暂无数据"},collapseTags:{type:Boolean,default:!0},collapseTagsTooltip:{type:Boolean,default:!0},nodeKey:{type:String,default:"value"},defaultExpandAll:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!0},highlightCurrent:{type:Boolean,default:!0},expandOnClickNode:Boolean,collapseOnClickNode:Boolean,modelValue:{type:r.definePropType([String,Number,Boolean,Object,Array]),default:void 0},label:r.definePropType([String,Array]),width:{type:[String,Number],default:"100%"},moreDetail:Boolean,lazy:{type:Boolean,default:!0},defaultSelected:Boolean,props:{type:r.definePropType(Object),default:()=>({label:"label",hide:"hide",disabled:"disabled",children:"children"})},data:{type:r.definePropType(Array),default:()=>[]},requestApi:{type:r.definePropType(Function)},initParam:r.definePropType([String,Number,Object])},n={...l.selectEmits,...l.treeEmits,"update:modelValue":e=>i.isString(e)||i.isNumber(e)||i.isBoolean(e)||i.isObject(e)||i.isArray(e)||i.isNull(e),"update:label":e=>i.isString(e)||i.isArray(e)||i.isNull(e),dataChangeCallBack:e=>i.isArray(e),change:(e,l)=>!0},s=e.defineComponent({name:"FaTreeSelect",props:d,emits:n,slots:r.makeSlots(),setup(d,{attrs:n,slots:s,emit:u,expose:p}){const c=o.useVModel(d,"label",u),f=e.reactive({value:r.withDefineType(),loading:!1,selectorData:r.withDefineType([]),debut:!0,echo:!(d.data?.length>0),nextRefresh:!1}),h=e.ref(),y=e=>e?.map(e=>({...e,value:e[d.nodeKey],label:i.isFunction(d.props.label)?d.props.label(e):e[d.props.label??"label"],hide:i.isFunction(d.props.hide)?d.props.hide(e):e[d.props.hide??"hide"],disabled:i.isFunction(d.props.disabled)?d.props.disabled(e):e[d.props.disabled??"disabled"],children:i.isFunction(d.props.children)?y(d.props.children(e)):y(e[d.props.children??"children"])})).filter(e=>!e.hide),m=async()=>{if(d.requestApi){f.loading=!0;const l=d.initParam??{};try{const e=await d.requestApi(l);f.echo=!1,f.selectorData=y(e),u("dataChangeCallBack",f.selectorData)}catch(e){r.consoleError("FaTreeSelect",e),f.selectorData=[]}finally{f.loading=!1}}else f.echo=!1,f.selectorData=y(d.data)},b=(e,l,a)=>{if(!e)return!0;let t=a.parent,r=[a.label],o=1;for(;o<a.level;)r=[...r,t.label],t=t.parent,o++;const i=r.some(l=>-1!==l.indexOf(e));return d.filterNodeMethod?i&&d.filterNodeMethod(e,l,a):i},g=(e,l)=>{if(d.multiple){const l=e;if(0===l?.length)return f.value=null,c.value=null,u("update:modelValue",null),void u("change",null,null);const a=f.selectorData.filter(e=>l.includes(e.value));f.value=e,c.value=a.map(e=>e.label),u("update:modelValue",e),u("change",a,e)}else{if(i.isNil(e))return f.value=null,c.value=null,u("update:modelValue",null),void u("change",null,null);l??=f.selectorData.find(l=>l.value===e),f.value=e,c.value=l.label,u("update:modelValue",e),u("change",l,e)}},v=()=>{f.value=null,c.value=null,u("update:modelValue",null),u("clear")},S=(e,l,a,t)=>{d.expandOnClickNode&&(l.expanded?l.expanded&&d.collapseOnClickNode&&l.collapse():l.expand()),(d.checkStrictly||l.isLeaf)&&g(e.value,e),u("node-click",e,l,a,t)},x=async e=>{e&&(f.debut?(f.debut=!1,d.lazy&&await m()):f.nextRefresh&&(f.nextRefresh=!1,await m())),u("visible-change",e)};e.watch(()=>d.modelValue,e=>{if(f.echo&&!i.isNil(e)){const l=!i.isNil(d.label);if(d.multiple){if(!i.isArray(e))return void r.consoleError("FaTreeSelect","当启用 multiple 时,传入的 modelValue 必须是Array。");if(l&&!i.isArray(d.label))return void r.consoleError("FaTreeSelect","当启用 multiple 时,传入的 modelValue:label 必须是Array。");f.selectorData=e.slice(0,d.multipleLimit>0?d.multipleLimit:e.length).map((e,a)=>({value:e,label:l?d.label[a]:void 0}))}else{if(i.isArray(e))return void r.consoleError("FaTreeSelect","当禁用 multiple 时,传入的 modelValue 不能是Array。");if(l&&i.isArray(d.label))return void r.consoleError("FaTreeSelect","当禁用 multiple 时,传入的 modelValue:label 不能是Array。");f.selectorData=[{value:e,label:d.label}]}}f.value=e},{immediate:!0}),e.onMounted(async()=>{d.defaultSelected?(await m(),f.selectorData.length>0&&(d.multiple?g([f.selectorData[0].value]):g(f.selectorData[0].value,f.selectorData[0]))):!d.requestApi&&d.data?.length>0?(f.debut=!1,await m()):d.lazy||await m(),e.watch(()=>d.initParam,(e,l)=>{i.isEqual(e,l)||(f.nextRefresh=!0,i.isNil(f.value)||g())}),e.watch(()=>d.data,async()=>{d.requestApi||await m()},{deep:!0})});const N=r.useProps(d,{...a.SelectProps,...t.treeProps},["modelValue","popperClass","lazy","loading","expandOnClickNode","filterNodeMethod"]),T=r.useEmits({...l.selectEmits,...l.treeEmits},u,["update:modelValue","clear","visible-change","node-click"]);return r.useRender(()=>e.createVNode(l.ElTreeSelect,e.mergeProps(N.value,T.value,{ref:h,class:"fa-tree-select",popperClass:`fa-tree-select-dropdown ${d.popperClass}`,style:{width:r.addUnit(d.width)},modelValue:f.value,"onUpdate:modelValue":e=>f.value=e,lazy:!1,loading:f.loading,data:f.selectorData,expandOnClickNode:!d.checkOnClickNode&&d.expandOnClickNode,filterNodeMethod:b,onNodeClick:S,onClear:v,onVisibleChange:x}),{...s.default&&{default:({node:e,data:l})=>s.default({node:e,data:l})},...s.header&&{header:()=>s.header()},...s.footer&&{footer:()=>s.footer()},...s.prefix&&{prefix:()=>s.prefix()},...s.empty&&{empty:()=>s.empty()},...s.tag&&{tag:()=>s.tag()},...s.loading&&{loading:()=>s.loading()},...s.label&&{label:({label:e,value:l})=>s.label({label:e,value:l})}})),r.useExpose(p,{loading:e.computed(()=>f.loading),refresh:m,setSelection:e=>g(e),clearSelection:()=>g(null)})}});exports.default=s,exports.faTreeSelectEmits=n,exports.faTreeSelectProps=d;
2
2
  //# sourceMappingURL=treeSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"treeSelect.js","sources":["../../../../../packages/components/treeSelect/src/treeSelect.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElTreeSelect, selectEmits, treeEmits } from \"element-plus\";\nimport { type SelectComponentProps, SelectProps } from \"@fast-element-plus/components/select/src/select\";\nimport { treeProps } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport { addUnit, consoleError, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport type { ElSelectorOutput } from \"@fast-element-plus/components/select\";\nimport type { FilterValue, TreeNodeData } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeSelectProps = {\n\t...SelectProps,\n\t...treeProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 */\n\texpandOnClickNode: Boolean,\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/**\n\t * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签\n\t * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data\n\t */\n\tcacheData: {\n\t\ttype: definePropType<\n\t\t\t{\n\t\t\t\tvalue: string | number | boolean | object;\n\t\t\t\tcurrentLabel: string | number;\n\t\t\t\tisDisabled: boolean;\n\t\t\t}[]\n\t\t>(Array),\n\t\tdefault: [] as {\n\t\t\tvalue: string | number | boolean | object;\n\t\t\tcurrentLabel: string | number;\n\t\t\tisDisabled: boolean;\n\t\t}[],\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[] | any[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] | any[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[] | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeSelectEmits = {\n\t...selectEmits,\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean => true,\n};\n\ntype FaTreeSelectSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElSelectorOutput };\n\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n};\n\nexport default defineComponent({\n\tname: \"FaTreeSelect\",\n\tprops: faTreeSelectProps,\n\temits: faTreeSelectEmits,\n\tslots: makeSlots<FaTreeSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst treeSelectRef = ref<InstanceType<typeof ElTreeSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[] | any[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.nodeKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTreeSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[], data?: ElSelectorOutput): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata ??= state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否开启了 checkStrictly\n\t\t\tif (props.checkStrictly) {\n\t\t\t\thandleChange(data.value, data);\n\t\t\t} else {\n\t\t\t\tif (node.isLeaf) {\n\t\t\t\t\thandleChange(data.value, data);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\t/**\n\t\t * 下拉框出现/隐藏时触发\n\t\t */\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\t// 懒加载\n\t\t\t\t\tprops.lazy && (await loadData());\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 multiple 时,传入的 modelValue 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 multiple 时,传入的 modelValue:label 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => ({\n\t\t\t\t\t\t\t\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 multiple 时,传入的 modelValue 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 multiple 时,传入的 modelValue:label 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\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\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\thandleChange([state.selectorData[0].value]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleChange(state.selectorData[0].value, state.selectorData[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\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\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeSelectProps = useProps(props, { ...SelectProps, ...treeProps }, [\n\t\t\t\"modelValue\",\n\t\t\t\"popperClass\",\n\t\t\t\"loading\",\n\t\t\t\"expandOnClickNode\",\n\t\t\t\"filterNodeMethod\",\n\t\t]);\n\t\tconst elTreeSelectEmits = useEmits({ ...selectEmits, ...treeEmits }, emit, [\"update:modelValue\", \"clear\", \"visible-change\", \"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElTreeSelect\n\t\t\t\t{...elTreeSelectProps.value}\n\t\t\t\t{...elTreeSelectEmits.value}\n\t\t\t\tref={treeSelectRef}\n\t\t\t\tclass=\"fa-tree-select\"\n\t\t\t\tpopperClass={`fa-tree-select-dropdown ${props.popperClass}`}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tloading={state.loading}\n\t\t\t\tdata={state.selectorData}\n\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\t...(slots.default && {\n\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElSelectorOutput }): VNode[] => slots.default({ node, data }),\n\t\t\t\t\t}),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElTreeSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t// TODO:这里 EL 没有返回类型,等待下一个版本修复\n\t\t\t// /** @description 使选择器的输入框获取焦点 */\n\t\t\t// focus: computed(() => treeSelectRef.value?.focus),\n\t\t\t// /** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\t// blur: computed(() => treeSelectRef.value?.blur),\n\t\t\t// /** @description 获取当前选中的标签 */\n\t\t\t// selectedLabel: computed(() => treeSelectRef.value?.selectedLabel),\n\n\t\t\t// /** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\t// filter: computed(() => treeSelectRef.value?.filter),\n\t\t\t// /** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\t// updateKeyChildren: computed(() => treeSelectRef.value?.updateKeyChildren),\n\t\t\t// /** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\t// getCheckedNodes: computed(() => treeSelectRef.value?.getCheckedNodes),\n\t\t\t// /** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\t// setCheckedNodes: computed(() => treeSelectRef.value?.setCheckedNodes),\n\t\t\t// /** @description 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\t// getCheckedKeys: computed(() => treeSelectRef.value?.getCheckedKeys),\n\t\t\t// /** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCheckedKeys: computed(() => treeSelectRef.value?.setCheckedKeys),\n\t\t\t// /** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\t// setChecked: computed(() => treeSelectRef.value?.setChecked),\n\t\t\t// /** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\t// getHalfCheckedNodes: computed(() => treeSelectRef.value?.getHalfCheckedNodes),\n\t\t\t// /** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\t// getHalfCheckedKeys: computed(() => treeSelectRef.value?.getHalfCheckedKeys),\n\t\t\t// /** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\t// getCurrentKey: computed(() => treeSelectRef.value?.getCurrentKey),\n\t\t\t// /** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\t// getCurrentNode: computed(() => treeSelectRef.value?.getCurrentNode),\n\t\t\t// /** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCurrentKey: computed(() => treeSelectRef.value?.setCurrentKey),\n\t\t\t// /** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCurrentNode: computed(() => treeSelectRef.value?.setCurrentNode),\n\t\t\t// /** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\t// getNode: computed(() => treeSelectRef.value?.getNode),\n\t\t\t// /** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\t// remove: computed(() => treeSelectRef.value?.remove),\n\t\t\t// /** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\t// append: computed(() => treeSelectRef.value?.append),\n\t\t\t// /** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\t// insertBefore: computed(() => treeSelectRef.value?.insertBefore),\n\t\t\t// /** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\t// insertAfter: computed(() => treeSelectRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["faTreeSelectProps","SelectProps","treeProps","disabled","type","Boolean","default","undefined","loadingText","String","noMatchText","noDataText","collapseTags","collapseTagsTooltip","nodeKey","defaultExpandAll","checkOnClickNode","highlightCurrent","expandOnClickNode","collapseOnClickNode","cacheData","definePropType","Array","modelValue","Number","Object","label","width","moreDetail","lazy","defaultSelected","props","hide","children","data","requestApi","Function","initParam","faTreeSelectEmits","selectEmits","treeEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","TreeSelect","name","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","state","reactive","withDefineType","loading","selectorData","debut","echo","length","nextRefresh","treeSelectRef","ref","handleData","map","m","isFunction","filter","f","loadData","async","params","resData","error","consoleError","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleChange","multiple","valueArr","dataList","includes","isNil","find","handleClear","handleNodeClick","node","instance","event","expanded","collapse","expand","checkStrictly","isLeaf","handleVisibleChange","visible","watch","newValue","hasLabel","slice","multipleLimit","item","index","immediate","onMounted","oldValue","isEqual","deep","elTreeSelectProps","useProps","elTreeSelectEmits","useEmits","useRender","_createVNode","ElTreeSelect","_mergeProps","class","popperClass","style","addUnit","$event","onNodeClick","onClear","onVisibleChange","header","footer","prefix","empty","tag","useExpose","computed","refresh","setSelection","clearSelection"],"mappings":"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"}
1
+ {"version":3,"file":"treeSelect.js","sources":["../../../../../packages/components/treeSelect/src/treeSelect.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElTreeSelect, selectEmits, treeEmits } from \"element-plus\";\nimport { type SelectComponentProps, SelectProps } from \"@fast-element-plus/components/select/src/select\";\nimport { treeProps } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport { addUnit, consoleError, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport type { ElSelectorOutput } from \"@fast-element-plus/components/select\";\nimport type { FilterValue, TreeNodeData } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeSelectProps = {\n\t...SelectProps,\n\t...treeProps,\n\t/**\n\t * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签\n\t * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data\n\t */\n\tcacheData: {\n\t\ttype: definePropType<\n\t\t\t{\n\t\t\t\tvalue: string | number | boolean | object;\n\t\t\t\tcurrentLabel: string | number;\n\t\t\t\tisDisabled: boolean;\n\t\t\t}[]\n\t\t>(Array),\n\t\tdefault: [] as {\n\t\t\tvalue: string | number | boolean | object;\n\t\t\tcurrentLabel: string | number;\n\t\t\tisDisabled: boolean;\n\t\t}[],\n\t},\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 */\n\texpandOnClickNode: Boolean,\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[] | any[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] | any[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[] | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeSelectEmits = {\n\t...selectEmits,\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean => true,\n};\n\ntype FaTreeSelectSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElSelectorOutput };\n\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n};\n\nexport default defineComponent({\n\tname: \"FaTreeSelect\",\n\tprops: faTreeSelectProps,\n\temits: faTreeSelectEmits,\n\tslots: makeSlots<FaTreeSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst treeSelectRef = ref<InstanceType<typeof ElTreeSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[] | any[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.nodeKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTreeSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[], data?: ElSelectorOutput): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata ??= state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否开启了 checkStrictly\n\t\t\tif (props.checkStrictly) {\n\t\t\t\thandleChange(data.value, data);\n\t\t\t} else {\n\t\t\t\tif (node.isLeaf) {\n\t\t\t\t\thandleChange(data.value, data);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\t/**\n\t\t * 下拉框出现/隐藏时触发\n\t\t */\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\t// 懒加载\n\t\t\t\t\tprops.lazy && (await loadData());\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 multiple 时,传入的 modelValue 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 multiple 时,传入的 modelValue:label 必须是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => ({\n\t\t\t\t\t\t\t\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 multiple 时,传入的 modelValue 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 multiple 时,传入的 modelValue:label 不能是Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\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\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\thandleChange([state.selectorData[0].value]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleChange(state.selectorData[0].value, state.selectorData[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\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\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeSelectProps = useProps(props, { ...SelectProps, ...treeProps }, [\n\t\t\t\"modelValue\",\n\t\t\t\"popperClass\",\n\t\t\t\"lazy\",\n\t\t\t\"loading\",\n\t\t\t\"expandOnClickNode\",\n\t\t\t\"filterNodeMethod\",\n\t\t]);\n\t\tconst elTreeSelectEmits = useEmits({ ...selectEmits, ...treeEmits }, emit, [\"update:modelValue\", \"clear\", \"visible-change\", \"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElTreeSelect\n\t\t\t\t{...elTreeSelectProps.value}\n\t\t\t\t{...elTreeSelectEmits.value}\n\t\t\t\tref={treeSelectRef}\n\t\t\t\tclass=\"fa-tree-select\"\n\t\t\t\tpopperClass={`fa-tree-select-dropdown ${props.popperClass}`}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tlazy={false}\n\t\t\t\tloading={state.loading}\n\t\t\t\tdata={state.selectorData}\n\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\t...(slots.default && {\n\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElSelectorOutput }): VNode[] => slots.default({ node, data }),\n\t\t\t\t\t}),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElTreeSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t// TODO:这里 EL 没有返回类型,等待下一个版本修复\n\t\t\t// /** @description 使选择器的输入框获取焦点 */\n\t\t\t// focus: computed(() => treeSelectRef.value?.focus),\n\t\t\t// /** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\t// blur: computed(() => treeSelectRef.value?.blur),\n\t\t\t// /** @description 获取当前选中的标签 */\n\t\t\t// selectedLabel: computed(() => treeSelectRef.value?.selectedLabel),\n\n\t\t\t// /** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\t// filter: computed(() => treeSelectRef.value?.filter),\n\t\t\t// /** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\t// updateKeyChildren: computed(() => treeSelectRef.value?.updateKeyChildren),\n\t\t\t// /** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\t// getCheckedNodes: computed(() => treeSelectRef.value?.getCheckedNodes),\n\t\t\t// /** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\t// setCheckedNodes: computed(() => treeSelectRef.value?.setCheckedNodes),\n\t\t\t// /** @description 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\t// getCheckedKeys: computed(() => treeSelectRef.value?.getCheckedKeys),\n\t\t\t// /** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCheckedKeys: computed(() => treeSelectRef.value?.setCheckedKeys),\n\t\t\t// /** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\t// setChecked: computed(() => treeSelectRef.value?.setChecked),\n\t\t\t// /** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\t// getHalfCheckedNodes: computed(() => treeSelectRef.value?.getHalfCheckedNodes),\n\t\t\t// /** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\t// getHalfCheckedKeys: computed(() => treeSelectRef.value?.getHalfCheckedKeys),\n\t\t\t// /** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\t// getCurrentKey: computed(() => treeSelectRef.value?.getCurrentKey),\n\t\t\t// /** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\t// getCurrentNode: computed(() => treeSelectRef.value?.getCurrentNode),\n\t\t\t// /** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCurrentKey: computed(() => treeSelectRef.value?.setCurrentKey),\n\t\t\t// /** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\t// setCurrentNode: computed(() => treeSelectRef.value?.setCurrentNode),\n\t\t\t// /** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\t// getNode: computed(() => treeSelectRef.value?.getNode),\n\t\t\t// /** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\t// remove: computed(() => treeSelectRef.value?.remove),\n\t\t\t// /** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\t// append: computed(() => treeSelectRef.value?.append),\n\t\t\t// /** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\t// insertBefore: computed(() => treeSelectRef.value?.insertBefore),\n\t\t\t// /** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\t// insertAfter: computed(() => treeSelectRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["faTreeSelectProps","SelectProps","treeProps","cacheData","type","definePropType","Array","default","disabled","Boolean","undefined","loadingText","String","noMatchText","noDataText","collapseTags","collapseTagsTooltip","nodeKey","defaultExpandAll","checkOnClickNode","highlightCurrent","expandOnClickNode","collapseOnClickNode","modelValue","Number","Object","label","width","moreDetail","lazy","defaultSelected","props","hide","children","data","requestApi","Function","initParam","faTreeSelectEmits","selectEmits","treeEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","TreeSelect","name","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","state","reactive","withDefineType","loading","selectorData","debut","echo","length","nextRefresh","treeSelectRef","ref","handleData","map","m","isFunction","filter","f","loadData","async","params","resData","error","consoleError","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleChange","multiple","valueArr","dataList","includes","isNil","find","handleClear","handleNodeClick","node","instance","event","expanded","collapse","expand","checkStrictly","isLeaf","handleVisibleChange","visible","watch","newValue","hasLabel","slice","multipleLimit","item","index","immediate","onMounted","oldValue","isEqual","deep","elTreeSelectProps","useProps","elTreeSelectEmits","useEmits","useRender","_createVNode","ElTreeSelect","_mergeProps","class","popperClass","style","addUnit","$event","onNodeClick","onClear","onVisibleChange","header","footer","prefix","empty","tag","useExpose","computed","refresh","setSelection","clearSelection"],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "1.0.9";
1
+ export declare const version = "1.0.11";
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.version="1.0.9";
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.version="1.0.11";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../packages/version.ts"],"sourcesContent":["export const version = \"1.0.9\";\n"],"names":[],"mappings":"gGAAuB"}
1
+ {"version":3,"file":"version.js","sources":["../../packages/version.ts"],"sourcesContent":["export const version = \"1.0.11\";\n"],"names":[],"mappings":"gGAAuB"}