fast-element-plus 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.full.js +12988 -2359
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +1 -1
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +1 -1
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +12988 -2359
- package/dist/index.full.mjs.map +1 -1
- package/dist/styles/index.css +41 -23
- package/dist/styles/index.css.map +1 -1
- package/es/components/avatar/src/avatar.d.ts +4 -4
- package/es/components/avatar/src/avatar.mjs +1 -1
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.d.ts +13 -5
- package/es/components/carNumber/src/carNumber.mjs +1 -1
- package/es/components/carNumber/src/carNumber.mjs.map +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/es/components/dialog/src/dialog.d.ts +4 -4
- package/es/components/dialog/src/dialog.mjs +1 -1
- package/es/components/dialog/src/dialog.mjs.map +1 -1
- package/es/components/drawer/src/drawer.d.ts +12 -4
- package/es/components/drawer/src/drawer.mjs +1 -1
- package/es/components/drawer/src/drawer.mjs.map +1 -1
- package/es/components/form/src/form.mjs +1 -1
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/formItem.mjs +1 -1
- package/es/components/form/src/formItem.mjs.map +1 -1
- package/es/components/formItemTip/src/formItemTip.mjs +1 -1
- package/es/components/formItemTip/src/formItemTip.mjs.map +1 -1
- package/es/components/icon/src/icon.mjs +1 -1
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/iconSelector/src/iconSelector.mjs +1 -1
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/es/components/image/src/image.mjs +1 -1
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/index.d.ts +1 -0
- package/es/components/index.mjs +1 -1
- package/es/components/inputDialogPage/index.d.ts +14 -0
- package/es/components/inputDialogPage/index.mjs +2 -0
- package/es/components/inputDialogPage/index.mjs.map +1 -0
- package/es/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
- package/es/components/inputDialogPage/src/inputDialogPage.mjs +2 -0
- package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -0
- package/es/components/layoutGrid/src/layoutGrid.mjs +1 -1
- package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
- package/es/components/layoutGrid/src/layoutGridItem.mjs +1 -1
- package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
- package/es/components/select/src/select.d.ts +39 -34
- package/es/components/select/src/select.mjs +1 -1
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/selectOption.mjs +1 -1
- package/es/components/select/src/selectOption.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.d.ts +39 -25
- package/es/components/selectPage/src/selectPage.mjs +1 -1
- package/es/components/selectPage/src/selectPage.mjs.map +1 -1
- package/es/components/selectV2/src/selectV2.d.ts +28 -35
- package/es/components/selectV2/src/selectV2.mjs +1 -1
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/src/table.d.ts +6 -6
- package/es/components/table/src/table.mjs +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.type.d.ts +1 -1
- package/es/components/table/src/table.type.mjs.map +1 -1
- package/es/components/table/src/tableColumn.mjs +1 -1
- package/es/components/table/src/tableColumn.mjs.map +1 -1
- package/es/components/table/src/tableColumnSettingDialog.mjs +1 -1
- package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
- package/es/components/table/src/useTable.mjs +1 -1
- package/es/components/table/src/useTable.mjs.map +1 -1
- package/es/components/table/utils/table.mjs +1 -1
- package/es/components/table/utils/table.mjs.map +1 -1
- package/es/components/tree/src/tree.d.ts +68 -174
- package/es/components/tree/src/tree.mjs +1 -1
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/treeSelect/src/treeSelect.d.ts +123 -221
- package/es/components/treeSelect/src/treeSelect.mjs +1 -1
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/es/directives/click-copy/index.mjs.map +1 -1
- package/es/directives/click-debounce/index.mjs.map +1 -1
- package/es/directives/click-draggable/index.mjs.map +1 -1
- package/es/directives/click-icon-copy/index.mjs.map +1 -1
- package/es/directives/click-longpress/index.mjs.map +1 -1
- package/es/directives/click-throttle/index.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/es/make-installer.mjs +1 -1
- package/es/make-installer.mjs.map +1 -1
- package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs +2 -0
- package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs.map +1 -0
- package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +2 -0
- package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs.map +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/avatar/src/avatar.d.ts +4 -4
- package/lib/components/avatar/src/avatar.js +1 -1
- package/lib/components/avatar/src/avatar.js.map +1 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/carNumber/src/carNumber.d.ts +13 -5
- package/lib/components/carNumber/src/carNumber.js +1 -1
- package/lib/components/carNumber/src/carNumber.js.map +1 -1
- package/lib/components/contextMenu/src/contextMenu.js +1 -1
- package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
- package/lib/components/dialog/src/dialog.d.ts +4 -4
- package/lib/components/dialog/src/dialog.js +1 -1
- package/lib/components/dialog/src/dialog.js.map +1 -1
- package/lib/components/drawer/src/drawer.d.ts +12 -4
- package/lib/components/drawer/src/drawer.js +1 -1
- package/lib/components/drawer/src/drawer.js.map +1 -1
- package/lib/components/form/src/form.js +1 -1
- package/lib/components/form/src/form.js.map +1 -1
- package/lib/components/form/src/formItem.js +1 -1
- package/lib/components/form/src/formItem.js.map +1 -1
- package/lib/components/formItemTip/src/formItemTip.js +1 -1
- package/lib/components/formItemTip/src/formItemTip.js.map +1 -1
- package/lib/components/icon/src/icon.js +1 -1
- package/lib/components/icon/src/icon.js.map +1 -1
- package/lib/components/iconSelector/src/iconSelector.js +1 -1
- package/lib/components/iconSelector/src/iconSelector.js.map +1 -1
- package/lib/components/image/src/image.js +1 -1
- package/lib/components/image/src/image.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -1
- package/lib/components/inputDialogPage/index.d.ts +14 -0
- package/lib/components/inputDialogPage/index.js +2 -0
- package/lib/components/inputDialogPage/index.js.map +1 -0
- package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
- package/lib/components/inputDialogPage/src/inputDialogPage.js +2 -0
- package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -0
- package/lib/components/layoutGrid/src/layoutGrid.js +1 -1
- package/lib/components/layoutGrid/src/layoutGrid.js.map +1 -1
- package/lib/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
- package/lib/components/layoutGrid/src/layoutGridItem.js +1 -1
- package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -1
- package/lib/components/select/src/select.d.ts +39 -34
- package/lib/components/select/src/select.js +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/selectOption.js +1 -1
- package/lib/components/select/src/selectOption.js.map +1 -1
- package/lib/components/selectPage/src/selectPage.d.ts +39 -25
- package/lib/components/selectPage/src/selectPage.js +1 -1
- package/lib/components/selectPage/src/selectPage.js.map +1 -1
- package/lib/components/selectV2/src/selectV2.d.ts +28 -35
- package/lib/components/selectV2/src/selectV2.js +1 -1
- package/lib/components/selectV2/src/selectV2.js.map +1 -1
- package/lib/components/table/src/table.d.ts +6 -6
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.type.d.ts +1 -1
- package/lib/components/table/src/table.type.js.map +1 -1
- package/lib/components/table/src/tableColumn.js +1 -1
- package/lib/components/table/src/tableColumn.js.map +1 -1
- package/lib/components/table/src/tableColumnSettingDialog.js +1 -1
- package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -1
- package/lib/components/table/src/useTable.js.map +1 -1
- package/lib/components/table/utils/table.js +1 -1
- package/lib/components/table/utils/table.js.map +1 -1
- package/lib/components/tree/src/tree.d.ts +68 -174
- package/lib/components/tree/src/tree.js +1 -1
- package/lib/components/tree/src/tree.js.map +1 -1
- package/lib/components/treeSelect/src/treeSelect.d.ts +123 -221
- package/lib/components/treeSelect/src/treeSelect.js +1 -1
- package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
- package/lib/directives/click-copy/index.js.map +1 -1
- package/lib/directives/click-debounce/index.js.map +1 -1
- package/lib/directives/click-draggable/index.js.map +1 -1
- package/lib/directives/click-icon-copy/index.js.map +1 -1
- package/lib/directives/click-longpress/index.js.map +1 -1
- package/lib/directives/click-throttle/index.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/make-installer.js.map +1 -1
- package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js +2 -0
- package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js.map +1 -0
- package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js +2 -0
- package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- 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 +2 -0
- 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 +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -3
- package/styles/components/dialog.scss +1 -1
- package/styles/components/select.scss +35 -0
- package/styles/components/selectPage.scss +0 -30
- package/styles/components/table.scss +1 -1
- package/styles/components/tree.scss +17 -2
- package/styles/index.scss +1 -0
- package/types/components.d.ts +110 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableColumn.mjs","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 { 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 { FaTableColumnCtx, FaTableColumnDateFormat, FaTableColumnType, FaTableDefaultSlotsResult, FaTableEnumColumnType } 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\tconst renderCellData = ({ row }: { row: any }): any => {\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\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(tableUtil.handleRowAccordingToProp(row, props.prop));\n\t\t\t}\n\t\t};\n\n\t\tconst getTagType = ({ row }: { row: any }): any => {\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\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\") as any;\n\t\t};\n\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\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\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\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\tconst handleCopyClick = async (value): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"复制失败\",\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\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 class=\"fa__copy-icon\" title=\"复制\" onClick={() => handleCopyClick(value)}>\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\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\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"timeInfo\") {\n\t\t\t\tconst userName = row[props.timeInfoField?.userName ?? \"createdUserName\"];\n\t\t\t\tconst time = row[props.timeInfoField?.time ?? \"createdTime\"];\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={time}>\n\t\t\t\t\t\t\t{userName && <span style=\"margin-right: 5px;\">{userName}</span>}\n\t\t\t\t\t\t\t<span>{time}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{time && (\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(time))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.tag) {\n\t\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue ? <ElTag type={getTagType({ row })}>{renderValue}</ElTag> : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tlet dateFormat;\n\t\t\t\tswitch (props.type) {\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t\t: null;\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (\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\tconst renderValue = row[props.prop];\n\t\t\t\tif (renderValue) {\n\t\t\t\t\tif (isNumber(renderValue)) {\n\t\t\t\t\t\tlet useGrouping = false;\n\t\t\t\t\t\tlet maximumFractionDigits: number;\n\t\t\t\t\t\tswitch (props.type) {\n\t\t\t\t\t\t\tcase \"d2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\t\t\tuseGrouping,\n\t\t\t\t\t\t}) as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn renderValue;\n\t\t\t} else if (props.link) {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t\t$index,\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}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t\t</ElText>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (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} else {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\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\"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\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\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","getTagType","enumKey","enumData","get","tableUtil","filterEnum","handleRowAccordingToProp","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","getTableDefaultSlots","autoWidthRender","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","handleCopyClick","CopyDocument","formatterRender","cellValue","defaultRender","_slot","_Fragment","style","ElTag","round","effect","size","dateUtil","dateTimeFix","renderValue","renderCellData","formatValue","_slot2","dayjs","format","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","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.mjs","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,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as e,inject as l,reactive as a,ref as o,createVNode as t,Fragment as d,mergeProps as n,createTextVNode as r,resolveComponent as i}from"vue";import{ElNotification as s,ElMessage as
|
|
1
|
+
import{defineComponent as e,inject as l,reactive as a,ref as o,createVNode as t,Fragment as d,mergeProps as n,createTextVNode as r,resolveComponent as i}from"vue";import{ElNotification as s,ElMessage as u,ElTable as c,ElTableColumn as m,ElInput as p,ElRadioGroup as h,ElRadio as b,ElInputNumber as f,ElSwitch as g}from"element-plus";import{FaDialog as w}from"../../dialog/index.mjs";import{stringUtil as x,useRender as y,useExpose as V,definePropType as C}from"@fast-china/utils";import v from"sortablejs";import{tableStateKey as S}from"./useTable.mjs";const T=/* @__PURE__ */e({name:"FaTableColumnsSettingDialog",props:{change:{type:C(Function)}},setup(e,{expose:C}){const T=l(S),U=a({tableKey:x.generateRandomString(8),sortableInstance:void 0,change:!1}),_=o(),I=e=>e+1,W=async()=>{U.change?e.change&&await e.change(T.orgColumns):u.info("列配置未发生变化")},k=()=>{_.value.close(async()=>{await W()})},K=()=>{U.change=!0;let e=T.orgColumns.filter(e=>!e?.pureSearch);e=e.sort((l,a)=>l.order!==a.order?l.order-a.order:e.indexOf(a)-e.indexOf(l)),T.orgColumns=[...e,...T.orgColumns.filter(e=>e?.pureSearch)],T.orgColumns.forEach((e,l)=>{e.order=l+1})},P=()=>{U.change=!0},j=(e,l=!1)=>{const a={modelValue:void 0,disabled:!1,placeholder:void 0};if(e?.type)switch(e?.type){case"expand":a.disabled=!0,a.placeholder="暂不支持宽度配置";break;case"image":a.disabled=!0,a.placeholder="图片列无需配置";break;case"date":case"time":case"dateTime":a.disabled=!0,a.placeholder="时间/日期列无需配置";break;case"timeInfo":a.disabled=!0,a.placeholder="当前列无需配置"}else e?.tag?(a.disabled=!0,a.placeholder="标签列无需配置"):e?.autoWidth&&(a.disabled=!0,a.placeholder="自动列宽无需配置");return a.disabled||(delete a.disabled,delete a.modelValue,delete a.placeholder),l&&delete a.placeholder,a},F=(e,l=!1,a=!1,o=!1)=>{const t={modelValue:void 0,disabled:!1,placeholder:void 0};return e?.pureSearch&&(t.disabled=!0,t.placeholder="搜索列无需配置"),t.disabled?o&&delete t.modelValue:(delete t.disabled,delete t.modelValue,delete t.placeholder),l&&delete t.placeholder,a&&(t.placeholder="999"),t};return y(()=>t(w,{ref:_,class:"fa-table__column-setting-dialog",onConfirmClick:k,showFullscreen:!1,confirmButtonText:U.change?"保存更改":"确认",fullHeight:!0},{header:()=>t(d,null,[r("列表配置(留空则恢复默认配置)"),t(i("el-text"),{type:"info"},{default:()=>[r("点击保存才会进行数据缓存,点击取消为本此生效")]})]),default:()=>t(c,{class:["fa-table__column-setting",`fa-table__column-setting-${U.tableKey}`],data:T.orgColumns,rowKey:"prop",border:!0},{default:()=>t(d,null,[t(m,{type:"index",fixed:"left",align:"center",width:45,index:I},null),t(m,{label:"列显示名称",minWidth:200},{default:({row:e})=>"image"===e.type?t(p,{disabled:!0,readonly:!0,modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称",onChange:P},null):t(p,n({modelValue:e.label,"onUpdate:modelValue":l=>e.label=l,placeholder:"请输入列显示名称"},F(e),{onChange:P}),null)}),t(m,{label:"固定",width:230},{default:({row:e})=>t(h,n({modelValue:e.fixed,"onUpdate:modelValue":l=>e.fixed=l},F(e,!1,!1,!0),{onChange:P}),{default:()=>[t(b,{value:!1},{default:()=>[r("无")]}),t(b,{value:"left"},{default:()=>[r("左侧")]}),t(b,{value:"right"},{default:()=>[r("右侧")]})]})}),t(m,{label:"宽度",width:200},{default:({row:e})=>t(f,n({modelValue:e.width,"onUpdate:modelValue":l=>e.width=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入宽度"},j(e),F(e),{onChange:P}),{suffix:()=>t("span",null,[r("px")])})}),t(m,{label:"小的宽度",width:200},{default:({row:e})=>t(f,n({modelValue:e.smallWidth,"onUpdate:modelValue":l=>e.smallWidth=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入小的宽度"},j(e),F(e),{onChange:P}),{suffix:()=>t("span",null,[r("px")])})}),t(m,{label:"顺序",width:100},{default:({row:e})=>t(f,n({style:"width: auto;",modelValue:e.order,"onUpdate:modelValue":l=>e.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入顺序"},F(e,!1,!0),{onChange:K}),null)}),t(m,{label:"排序",width:65},{default:({row:e})=>t(g,n({modelValue:e.sortable,"onUpdate:modelValue":l=>e.sortable=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:e.disabledSortable||"image"===e?.type},F(e,!0),{onChange:P}),null)}),t(m,{label:"复制",width:65},{default:({row:e})=>t(g,n({modelValue:e.copy,"onUpdate:modelValue":l=>e.copy=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type||!!e?.slot},F(e,!0),{onChange:P}),null)}),t(m,{label:"自动宽度",width:85},{default:({row:e})=>t(g,n({modelValue:e.autoWidth,"onUpdate:modelValue":l=>e.autoWidth=l,inlinePrompt:!0,activeText:"是",inactiveText:"否",disabled:!!e?.type},F(e,!0),{onChange:P}),null)}),t(m,{label:"显示",width:75},{default:({row:e})=>t(g,{modelValue:e.show,"onUpdate:modelValue":l=>e.show=l,inlinePrompt:!0,activeText:"显示",inactiveText:"隐藏",onChange:P},null)}),t(m,{label:"搜索框名称",minWidth:200},{default:({row:e})=>e.search?t(p,{modelValue:e.search.label,"onUpdate:modelValue":l=>e.search.label=l,placeholder:"请输入搜索框名称",onChange:P},null):t(p,{disabled:!0,placeholder:"当前列暂无搜索项配置"},null)}),t(m,{label:"搜索框顺序",width:200},{default:({row:e})=>e.search?t(f,{modelValue:e.search.order,"onUpdate:modelValue":l=>e.search.order=l,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"请输入搜索框顺序",onChange:P},null):t(f,{disabled:!0,min:1,max:999,stepStrictly:!0,controls:!1,clearable:!0,placeholder:"当前列暂无搜索项配置"},null)})])})})),V(C,{open:()=>{_.value.open(()=>{(()=>{const e=document.querySelector(`.fa-table__column-setting-${U.tableKey} .el-table__body-wrapper tbody`);U.sortableInstance&&U.sortableInstance.destroy(),U.sortableInstance=new v(e,{animation:150,delay:0,onEnd(e){const{newIndex:l,oldIndex:a}=e;if(l!==a){U.change=!0;const e=T.orgColumns.splice(a,1)[0];T.orgColumns.splice(l,0,e),T.orgColumns=T.orgColumns.map((e,l)=>({...e,order:l+1}))}}})})(),s({message:"点击保存才会进行数据缓存,点击取消为本此生效",type:"info"})})},change:W})}});export{T as default};
|
|
2
2
|
//# sourceMappingURL=tableColumnSettingDialog.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableColumnSettingDialog.mjs","sources":["../../../../../packages/components/table/src/tableColumnSettingDialog.tsx"],"sourcesContent":["import { Fragment, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElInput, ElInputNumber, ElMessage, ElNotification, ElRadio, ElRadioGroup, ElSwitch, ElTable, ElTableColumn } from \"element-plus\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { definePropType, stringUtil, useExpose, useRender } from \"@fast-china/utils\";\nimport Sortable from \"sortablejs\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx } from \"./table.type\";\nimport type { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport type { TableColumnCtx } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaTableColumnsSettingDialog\",\n\tprops: {\n\t\t/** @description 改变 */\n\t\tchange: {\n\t\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t\t},\n\t},\n\tsetup(props, { expose }) {\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst state = reactive({\n\t\t\ttableKey: stringUtil.generateRandomString(8),\n\t\t\tsortableInstance: undefined,\n\t\t\tchange: false,\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\n\t\tconst indexMethod = (index: number): number => {\n\t\t\treturn index + 1;\n\t\t};\n\n\t\t// /**\n\t\t// * 处理固定行ClassName\n\t\t// */\n\t\t// const handleFixedRowClassName = (row: FaTableColumnCtx) => {\n\t\t// \tif (row.fixed) {\n\t\t// \t\treturn \"fa-table__setting-fixed-column\";\n\t\t// \t}\n\t\t// };\n\n\t\tconst tableRowDrop = (): void => {\n\t\t\tconst tBody = document.querySelector(`.fa-table__column-setting-${state.tableKey} .el-table__body-wrapper tbody`) as any;\n\n\t\t\t// 销毁现有Sortable实例(如果存在)\n\t\t\tif (state.sortableInstance) {\n\t\t\t\tstate.sortableInstance.destroy();\n\t\t\t}\n\n\t\t\tstate.sortableInstance = new Sortable(tBody, {\n\t\t\t\t// ms, number 单位:ms,定义排序动画的时间\n\t\t\t\tanimation: 150,\n\t\t\t\tdelay: 0,\n\t\t\t\t// filter: \".fa-table__setting-fixed-column\",\n\t\t\t\t// onMove(evt: any) {\n\t\t\t\t// \tconst { related } = evt;\n\t\t\t\t// \treturn !related.classList.contains(\"fa-table__setting-fixed-column\");\n\t\t\t\t// },\n\t\t\t\tonEnd(evt: any): void {\n\t\t\t\t\tconst { newIndex, oldIndex } = evt;\n\t\t\t\t\tif (newIndex !== oldIndex) {\n\t\t\t\t\t\tstate.change = true;\n\t\t\t\t\t\tconst curRow = tableState.orgColumns.splice(oldIndex, 1)[0];\n\t\t\t\t\t\ttableState.orgColumns.splice(newIndex, 0, curRow);\n\t\t\t\t\t\ttableState.orgColumns = tableState.orgColumns.map((item, index) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\torder: index + 1,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\tconst open = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\ttableRowDrop();\n\t\t\t\tElNotification({\n\t\t\t\t\tmessage: \"点击保存才会进行数据缓存,点击取消为本此生效\",\n\t\t\t\t\ttype: \"info\",\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleChange = async (): Promise<void> => {\n\t\t\tif (state.change) {\n\t\t\t\tprops.change && (await props.change(tableState.orgColumns));\n\t\t\t} else {\n\t\t\t\tElMessage.info(\"列配置未发生变化\");\n\t\t\t}\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(async () => {\n\t\t\t\tawait handleChange();\n\t\t\t});\n\t\t};\n\n\t\tconst handleOrderChange = (): void => {\n\t\t\tstate.change = true;\n\t\t\tlet orderColumns = tableState.orgColumns.filter((f) => !f?.pureSearch);\n\t\t\torderColumns = orderColumns.sort((a, b) => {\n\t\t\t\tif (a.order !== b.order) {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t} else {\n\t\t\t\t\treturn orderColumns.indexOf(b) - orderColumns.indexOf(a);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttableState.orgColumns = [...orderColumns, ...tableState.orgColumns.filter((f) => f?.pureSearch)];\n\t\t\ttableState.orgColumns.forEach((item, index) => {\n\t\t\t\titem.order = index + 1;\n\t\t\t});\n\t\t};\n\n\t\tconst handleColumnChange = (): void => {\n\t\t\tstate.change = true;\n\t\t};\n\n\t\tconst autoWidthDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.type) {\n\t\t\t\tswitch (row?.type) {\n\t\t\t\t\tcase \"expand\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"暂不支持宽度配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"图片列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"时间/日期列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"timeInfo\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"当前列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (row?.tag) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"标签列无需配置\";\n\t\t\t} else if (row?.autoWidth) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"自动列宽无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst pureSearchDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false,\n\t\t\torderEl = false,\n\t\t\tradioEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.pureSearch) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"搜索列无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t} else {\n\t\t\t\tif (radioEl) {\n\t\t\t\t\tdelete result.modelValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (orderEl) {\n\t\t\t\tresult.placeholder = \"999\";\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<FaDialog\n\t\t\t\tref={faDialogRef}\n\t\t\t\tclass=\"fa-table__column-setting-dialog\"\n\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\tshowFullscreen={false}\n\t\t\t\tconfirmButtonText={state.change ? \"保存更改\" : \"确认\"}\n\t\t\t\tfillHeight\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t列表配置(留空则恢复默认配置)\n\t\t\t\t\t\t\t<el-text type=\"info\">点击保存才会进行数据缓存,点击取消为本此生效</el-text>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElTable\n\t\t\t\t\t\t\tclass={[\"fa-table__column-setting\", `fa-table__column-setting-${state.tableKey}`]}\n\t\t\t\t\t\t\tdata={tableState.orgColumns}\n\t\t\t\t\t\t\trowKey=\"prop\"\n\t\t\t\t\t\t\tborder\n\t\t\t\t\t\t\t// rowClassName={handleFixedRowClassName}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn type=\"index\" fixed=\"left\" align=\"center\" width={45} index={indexMethod} />\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"列显示名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.type === \"image\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"固定\" width={230}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.fixed}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value={false}>无</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"left\">左侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"right\">右侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElRadioGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.width}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"小的宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.smallWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入小的宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"顺序\" width={100}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleOrderChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"排序\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.sortable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={row.disabledSortable || row?.type === \"image\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"复制\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.copy}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type || !!row?.slot}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"自动宽度\" width={85}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.autoWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"显示\" width={75}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.show}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"显示\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"隐藏\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput disabled placeholder=\"当前列暂无搜索项配置\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框顺序\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"当前列暂无搜索项配置\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTable>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</FaDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 打开 */\n\t\t\topen,\n\t\t\t/** @description 列改变 */\n\t\t\tchange: handleChange,\n\t\t});\n\t},\n});\n"],"names":["TableColumnsSettingDialog","name","props","change","type","definePropType","Function","setup","expose","tableState","inject","tableStateKey","state","reactive","tableKey","stringUtil","generateRandomString","sortableInstance","undefined","faDialogRef","ref","indexMethod","index","handleChange","async","orgColumns","ElMessage","info","handleConfirmClick","value","close","handleOrderChange","orderColumns","filter","f","pureSearch","sort","a","b","order","indexOf","forEach","item","handleColumnChange","autoWidthDisabled","row","switchEl","result","modelValue","disabled","placeholder","tag","autoWidth","pureSearchDisabled","orderEl","radioEl","useRender","_createVNode","FaDialog","class","onConfirmClick","showFullscreen","confirmButtonText","fillHeight","header","_Fragment","_createTextVNode","_resolveComponent","default","ElTable","data","rowKey","border","ElTableColumn","fixed","align","width","label","minWidth","ElInput","readonly","$event","onChange","_mergeProps","ElRadioGroup","ElRadio","ElInputNumber","min","max","stepStrictly","controls","clearable","smallWidth","ElSwitch","sortable","inlinePrompt","activeText","inactiveText","disabledSortable","copy","slot","show","search","useExpose","open","tableRowDrop","tBody","document","querySelector","destroy","Sortable","animation","delay","onEnd","evt","newIndex","oldIndex","curRow","splice","map","ElNotification","message"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tableColumnSettingDialog.mjs","sources":["../../../../../packages/components/table/src/tableColumnSettingDialog.tsx"],"sourcesContent":["import { Fragment, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElInput, ElInputNumber, ElMessage, ElNotification, ElRadio, ElRadioGroup, ElSwitch, ElTable, ElTableColumn } from \"element-plus\";\nimport { FaDialog } from \"@fast-element-plus/components/dialog\";\nimport { definePropType, stringUtil, useExpose, useRender } from \"@fast-china/utils\";\nimport Sortable from \"sortablejs\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx } from \"./table.type\";\nimport type { FaDialogInstance } from \"@fast-element-plus/components/dialog\";\nimport type { TableColumnCtx } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaTableColumnsSettingDialog\",\n\tprops: {\n\t\t/** @description 改变 */\n\t\tchange: {\n\t\t\ttype: definePropType<(columns: FaTableColumnCtx[]) => Promise<void>>(Function),\n\t\t},\n\t},\n\tsetup(props, { expose }) {\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst state = reactive({\n\t\t\ttableKey: stringUtil.generateRandomString(8),\n\t\t\tsortableInstance: undefined,\n\t\t\tchange: false,\n\t\t});\n\n\t\tconst faDialogRef = ref<FaDialogInstance>();\n\n\t\tconst indexMethod = (index: number): number => {\n\t\t\treturn index + 1;\n\t\t};\n\n\t\t// /**\n\t\t// * 处理固定行ClassName\n\t\t// */\n\t\t// const handleFixedRowClassName = (row: FaTableColumnCtx) => {\n\t\t// \tif (row.fixed) {\n\t\t// \t\treturn \"fa-table__setting-fixed-column\";\n\t\t// \t}\n\t\t// };\n\n\t\tconst tableRowDrop = (): void => {\n\t\t\tconst tBody = document.querySelector(`.fa-table__column-setting-${state.tableKey} .el-table__body-wrapper tbody`) as any;\n\n\t\t\t// 销毁现有Sortable实例(如果存在)\n\t\t\tif (state.sortableInstance) {\n\t\t\t\tstate.sortableInstance.destroy();\n\t\t\t}\n\n\t\t\tstate.sortableInstance = new Sortable(tBody, {\n\t\t\t\t// ms, number 单位:ms,定义排序动画的时间\n\t\t\t\tanimation: 150,\n\t\t\t\tdelay: 0,\n\t\t\t\t// filter: \".fa-table__setting-fixed-column\",\n\t\t\t\t// onMove(evt: any) {\n\t\t\t\t// \tconst { related } = evt;\n\t\t\t\t// \treturn !related.classList.contains(\"fa-table__setting-fixed-column\");\n\t\t\t\t// },\n\t\t\t\tonEnd(evt: any): void {\n\t\t\t\t\tconst { newIndex, oldIndex } = evt;\n\t\t\t\t\tif (newIndex !== oldIndex) {\n\t\t\t\t\t\tstate.change = true;\n\t\t\t\t\t\tconst curRow = tableState.orgColumns.splice(oldIndex, 1)[0];\n\t\t\t\t\t\ttableState.orgColumns.splice(newIndex, 0, curRow);\n\t\t\t\t\t\ttableState.orgColumns = tableState.orgColumns.map((item, index) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\torder: index + 1,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t};\n\n\t\tconst open = (): void => {\n\t\t\tfaDialogRef.value.open(() => {\n\t\t\t\ttableRowDrop();\n\t\t\t\tElNotification({\n\t\t\t\t\tmessage: \"点击保存才会进行数据缓存,点击取消为本此生效\",\n\t\t\t\t\ttype: \"info\",\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleChange = async (): Promise<void> => {\n\t\t\tif (state.change) {\n\t\t\t\tprops.change && (await props.change(tableState.orgColumns));\n\t\t\t} else {\n\t\t\t\tElMessage.info(\"列配置未发生变化\");\n\t\t\t}\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tfaDialogRef.value.close(async () => {\n\t\t\t\tawait handleChange();\n\t\t\t});\n\t\t};\n\n\t\tconst handleOrderChange = (): void => {\n\t\t\tstate.change = true;\n\t\t\tlet orderColumns = tableState.orgColumns.filter((f) => !f?.pureSearch);\n\t\t\torderColumns = orderColumns.sort((a, b) => {\n\t\t\t\tif (a.order !== b.order) {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t} else {\n\t\t\t\t\treturn orderColumns.indexOf(b) - orderColumns.indexOf(a);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttableState.orgColumns = [...orderColumns, ...tableState.orgColumns.filter((f) => f?.pureSearch)];\n\t\t\ttableState.orgColumns.forEach((item, index) => {\n\t\t\t\titem.order = index + 1;\n\t\t\t});\n\t\t};\n\n\t\tconst handleColumnChange = (): void => {\n\t\t\tstate.change = true;\n\t\t};\n\n\t\tconst autoWidthDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.type) {\n\t\t\t\tswitch (row?.type) {\n\t\t\t\t\tcase \"expand\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"暂不支持宽度配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"图片列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"时间/日期列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"timeInfo\":\n\t\t\t\t\t\tresult.disabled = true;\n\t\t\t\t\t\tresult.placeholder = \"当前列无需配置\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (row?.tag) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"标签列无需配置\";\n\t\t\t} else if (row?.autoWidth) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"自动列宽无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst pureSearchDisabled = (\n\t\t\trow: FaTableColumnCtx,\n\t\t\tswitchEl = false,\n\t\t\torderEl = false,\n\t\t\tradioEl = false\n\t\t): {\n\t\t\tmodelValue: any;\n\t\t\tdisabled: boolean;\n\t\t\tplaceholder: any;\n\t\t} => {\n\t\t\tconst result = { modelValue: undefined, disabled: false, placeholder: undefined };\n\t\t\tif (row?.pureSearch) {\n\t\t\t\tresult.disabled = true;\n\t\t\t\tresult.placeholder = \"搜索列无需配置\";\n\t\t\t}\n\t\t\tif (!result.disabled) {\n\t\t\t\tdelete result.disabled;\n\t\t\t\tdelete result.modelValue;\n\t\t\t\tdelete result.placeholder;\n\t\t\t} else {\n\t\t\t\tif (radioEl) {\n\t\t\t\t\tdelete result.modelValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (switchEl) {\n\t\t\t\tdelete result.placeholder;\n\t\t\t}\n\t\t\tif (orderEl) {\n\t\t\t\tresult.placeholder = \"999\";\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<FaDialog\n\t\t\t\tref={faDialogRef}\n\t\t\t\tclass=\"fa-table__column-setting-dialog\"\n\t\t\t\tonConfirmClick={handleConfirmClick}\n\t\t\t\tshowFullscreen={false}\n\t\t\t\tconfirmButtonText={state.change ? \"保存更改\" : \"确认\"}\n\t\t\t\tfullHeight\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t列表配置(留空则恢复默认配置)\n\t\t\t\t\t\t\t<el-text type=\"info\">点击保存才会进行数据缓存,点击取消为本此生效</el-text>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElTable\n\t\t\t\t\t\t\tclass={[\"fa-table__column-setting\", `fa-table__column-setting-${state.tableKey}`]}\n\t\t\t\t\t\t\tdata={tableState.orgColumns}\n\t\t\t\t\t\t\trowKey=\"prop\"\n\t\t\t\t\t\t\tborder\n\t\t\t\t\t\t\t// rowClassName={handleFixedRowClassName}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn type=\"index\" fixed=\"left\" align=\"center\" width={45} index={indexMethod} />\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"列显示名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.type === \"image\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入列显示名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"固定\" width={230}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.fixed}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value={false}>无</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"left\">左侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElRadio value=\"right\">右侧</ElRadio>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElRadioGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.width}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsuffix: () => <span>px</span>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElInputNumber>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"小的宽度\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.smallWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入小的宽度\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...autoWidthDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsuffix: () => <span>px</span>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElInputNumber>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"顺序\" width={100}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"width: auto;\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, false, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleOrderChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"排序\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.sortable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={row.disabledSortable || row?.type === \"image\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"复制\" width={65}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.copy}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type || !!row?.slot}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"自动宽度\" width={85}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.autoWidth}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"是\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"否\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!row?.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...pureSearchDisabled(row, true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"显示\" width={75}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElSwitch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.show}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinlinePrompt\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveText=\"显示\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinactiveText=\"隐藏\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框名称\" minWidth={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框名称\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInput disabled placeholder=\"当前列暂无搜索项配置\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t\t<ElTableColumn label=\"搜索框顺序\" width={200}>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdefault: ({ row }: { row: FaTableColumnCtx; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\trow.search ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvModel={row.search.order}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"请输入搜索框顺序\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={handleColumnChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElInputNumber\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={999}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstepStrictly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrols={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"当前列暂无搜索项配置\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTable>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</FaDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 打开 */\n\t\t\topen,\n\t\t\t/** @description 列改变 */\n\t\t\tchange: handleChange,\n\t\t});\n\t},\n});\n"],"names":["TableColumnsSettingDialog","name","props","change","type","definePropType","Function","setup","expose","tableState","inject","tableStateKey","state","reactive","tableKey","stringUtil","generateRandomString","sortableInstance","undefined","faDialogRef","ref","indexMethod","index","handleChange","async","orgColumns","ElMessage","info","handleConfirmClick","value","close","handleOrderChange","orderColumns","filter","f","pureSearch","sort","a","b","order","indexOf","forEach","item","handleColumnChange","autoWidthDisabled","row","switchEl","result","modelValue","disabled","placeholder","tag","autoWidth","pureSearchDisabled","orderEl","radioEl","useRender","_createVNode","FaDialog","class","onConfirmClick","showFullscreen","confirmButtonText","fullHeight","header","_Fragment","_createTextVNode","_resolveComponent","default","ElTable","data","rowKey","border","ElTableColumn","fixed","align","width","label","minWidth","ElInput","readonly","$event","onChange","_mergeProps","ElRadioGroup","ElRadio","ElInputNumber","min","max","stepStrictly","controls","clearable","suffix","smallWidth","style","ElSwitch","sortable","inlinePrompt","activeText","inactiveText","disabledSortable","copy","slot","show","search","useExpose","open","tableRowDrop","tBody","document","querySelector","destroy","Sortable","animation","delay","onEnd","evt","newIndex","oldIndex","curRow","splice","map","ElNotification","message"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ref as a,reactive as e,provide as t,computed as o,nextTick as r,watch as n}from"vue";import{useGlobalSize as s,dayjs as l}from"element-plus";import{consoleError as i,clickUtil as c,execFunction as p}from"@fast-china/utils";import{isFunction as h,isArray as g}from"lodash-unified";import{tableUtil as m}from"../utils/table.mjs";import{getTableDefaultSlots as d}from"./table.type.mjs";const u
|
|
1
|
+
import{ref as a,reactive as e,provide as t,computed as o,nextTick as r,watch as n}from"vue";import{useGlobalSize as s,dayjs as l}from"element-plus";import{consoleError as i,clickUtil as c,execFunction as p}from"@fast-china/utils";import{isFunction as h,isArray as g}from"lodash-unified";import{tableUtil as m}from"../utils/table.mjs";import{getTableDefaultSlots as d}from"./table.type.mjs";const u=/* @__PURE__ */Symbol("tableState"),b=/* @__PURE__ */Symbol("enumMap"),P=(P,f,C)=>{const w=s(),S=a(),_=a(),D=e(/* @__PURE__ */new Map);t(b,D);const y=e({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:o(()=>y.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:o(()=>y.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:o(()=>[...y.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...P.props.span?[{prop:"__table-index",spanProp:P.props.span},{prop:"__table-selection",spanProp:P.props.span},{prop:"__table-operation",spanProp:P.props.span}]:[]]),tableData:[],tableSpanData:o(()=>{if(y.spanColumns?.length>0&&y.tableData?.length>0){const a=[];y.spanColumns.forEach(e=>{a[e.prop]=new Array(y.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<y.tableData.length;e++)y.spanColumns.forEach(t=>{y.tableData[e][t.spanProp]===y.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:P.searchForm,selected:!1,selectedList:[],selectedListIds:o(()=>y.selectedList.map(a=>h(P.rowKey)?P.rowKey(a):a[P.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:o(()=>{const a=y.autoColumnWidth.find(a=>"__table-operation"===a.prop);if(a)return`${a.width}px`;switch(w.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});t(u,y);const x=()=>{y.loading=!0,y.loadingText="加载中...",y.autoColumnWidth=[];const a=y.tableColumns.filter(a=>a.autoWidth);if(f?.operation&&a.push({prop:"__table-operation"}),a?.length>0){const e="default"===w.value?25:17;r(()=>{const t=document.querySelector(`.fa-table__${P.tableKey}`);t&&a.forEach(a=>{const o=t.querySelector(`.__fa-table__auto-width-column__cell-header__${a?.prop}`),r=t.querySelectorAll(`.__fa-table__auto-width-column__cell__${a?.prop}`);let n=0;o&&(n=Math.ceil(o.scrollWidth)+e,a?.sortable&&(n+=24)),r.forEach(a=>{const t=Math.ceil(a.scrollWidth)+e;t>n&&(n=t)});const s=y.autoColumnWidth.find(e=>e.prop===a?.prop);s?s.width=Math.max(s.width,n):y.autoColumnWidth.push({prop:a?.prop,width:n})})})}y.loading=!1},M=a=>{if(P.treeData){const e=[];return a.forEach(a=>{const t=a[P.props.children];g(t)?t.forEach(t=>e.push({...a,...t})):e.push({...a,...t||{}})}),e}return a},k=()=>{const a={...y.searchParam,...P.pagination?y.tablePagination:{}};return delete a.totalRows,a},z=async()=>{if(y.loading=!0,y.loadingText="加载中...",P.requestApi){const e=k();C("refresh",e);let t=[];try{const a=await P.requestApi(e);if(P.dataCallback&&P.dataCallback(a),P.pagination){const e=a;t=e.rows,Object.assign(y.tablePagination,{pageIndex:e.pageIndex,pageSize:e.pageSize,totalRows:e.totalRows})}else t=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:t.length});y.tableData=M(t)}catch(a){i("FaTable",a),y.tableData=[]}finally{y.loading=!1}}else{C("refresh",{searchValue:y.searchParam.searchValue});let a=M(P.data);if(a=a.filter(a=>!y.searchParam.searchValue||y.tableColumns.some(e=>a[e.prop]?.toString()?.toLowerCase().includes(y.searchParam.searchValue?.toLowerCase()))),y.searchParam.sortList?.length>0&&(a=a.sort(m.arrayDynamicSort(y.searchParam.sortList))),P.pagination){Object.assign(y.tablePagination,{totalRows:a.length});const e=(y.tablePagination.pageIndex-1)*y.tablePagination.pageSize,t=e+y.tablePagination.pageSize;y.tableData=a.slice(e,t)}else y.tableData=a,Object.assign(y.tablePagination,{pageIndex:1,pageSize:0,totalRows:a.length});y.loading=!1}x()},Y=()=>{let a=P.columns?P.columns:[];a.forEach(a=>{(a.pureSearch||a.search)&&(a.search.key??=a.prop,a.search.label??=a.label,a.search.defaultValue&&(y.searchParam[a.search.key]=a.search.defaultValue))}),a=a.sort((a,e)=>a?.order-e?.order),y.orgColumns=m.flatColumns(a,D)},R=()=>{if(P.hideSearchTime)y.searchParam.searchTimeList=void 0;else{const a=/* @__PURE__ */new Date,e=/* @__PURE__ */new Date;switch(P.dataSearchRange){case"Past1D":e.setDate(e.getDate()-1);break;case"Past3D":e.setDate(e.getDate()-3);break;case"Past1W":e.setDate(e.getDate()-7);break;case"Past1M":e.setMonth(e.getMonth()-1);break;case"Past3M":e.setMonth(e.getMonth()-3);break;case"Past6M":e.setMonth(e.getMonth()-6);break;case"Past1Y":e.setFullYear(e.getFullYear()-1);break;case"Past3Y":e.setFullYear(e.getFullYear()-3)}y.searchParam.searchTimeList=[l(e).format("YYYY-MM-DD 00:00:00"),l(a).format("YYYY-MM-DD 23:59:59")]}},W=async()=>{y.tablePagination.pageIndex=1,(()=>{const a={};for(const e in y.searchParam)y.searchParam[e]||!1===y.searchParam[e]||0===y.searchParam[e]?a[e]=y.searchParam[e]:y.searchParam[e]||delete y.searchParam[e];Object.assign(y.searchParam,a)})(),await z()},I=async()=>{y.orgColumns=[],y.autoColumnWidth=[],y.tableData=[],await c.debounceAsync(async()=>{Y(),await W()},300)};return n(()=>P.tableKey,async()=>{await I()}),n(()=>P.searchForm,a=>{y.searchForm=a}),{_globalSize:w,state:y,elementRef:S,tableRef:_,handleTableColumnAutoWidth:x,getRequestParam:k,loadTableColumns:Y,handleSizeChange:a=>{y.tablePagination.pageIndex=1,y.tablePagination.pageSize=a,C("sizeChange",a),C("paginationChange",1,a),z()},handlePaginationChange:a=>{y.tablePagination.pageIndex=a,C("sizeChange",y.tablePagination.pageSize),C("paginationChange",a,y.tablePagination.pageSize),z()},defaultSearchTime:R,tableSearch:W,tableReset:async()=>{y.tablePagination.pageIndex=1,y.searchParam={},R(),Object.keys(y.initParam??{}).forEach(a=>{y.searchParam[a]=y.initParam[a]}),C("reset",y.searchParam),await z()},doRender:I,doLoading:(a,e="加载中...")=>{y.loading=!0,y.loadingText=e,p(a).then().catch(a=>{i("FaTable",a)}).finally(()=>{y.loading=!1})},handleCustomCellClick:(a,{row:e,column:t,$index:o})=>{C("customCellClick",a,{row:e,column:t,$index:o,...d(y)})}}};export{b as enumMapKey,u as tableStateKey,P as useTable};
|
|
2
2
|
//# sourceMappingURL=useTable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTable.mjs","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? props.columns : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","Symbol","enumMapKey","useTable","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTable.mjs","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns ? props.columns : [];\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","enumMapKey","useTable","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isString as e,isFunction as n,isArray as t}from"lodash-unified";const l={formatValue:e=>t(e)?e.length?e.join(" , "):null:e,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(e,n,l,r){const i=l?.value??"value",o=l?.label??"label";let s={};return t(n)&&(s=n.find(n=>n[i]===e)),"tag"===r?s?.type??"info":s?s[o]:null},arrayDynamicSort:e=>function(n,t){if(e&&e.length>0)for(const l of e){const e=l.enField,r=l.mode,i=n[e],o=t[e];if("string"==typeof i&&"string"==typeof o){if("ascending"===r){const e=i.localeCompare(o,"zh-CN");if(0!==e)return e}else if("descending"===r){const e=o.localeCompare(i,"zh-CN");if(0!==e)return e}}else if("ascending"===r){if(i<o)return-1;if(i>o)return 1}else if("descending"===r){if(i>o)return-1;if(i<o)return 1}}return 0},setEnumMap(e,l,r){e&&(n(e)?
|
|
1
|
+
import{isString as e,isFunction as n,isArray as t}from"lodash-unified";const l={formatValue:e=>t(e)?e.length?e.join(" , "):null:e,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(e,n,l,r){const i=l?.value??"value",o=l?.label??"label";let s={};return t(n)&&(s=n.find(n=>n[i]===e)),"tag"===r?s?.type??"info":s?s[o]:null},arrayDynamicSort:e=>function(n,t){if(e&&e.length>0)for(const l of e){const e=l.enField,r=l.mode,i=n[e],o=t[e];if("string"==typeof i&&"string"==typeof o){if("ascending"===r){const e=i.localeCompare(o,"zh-CN");if(0!==e)return e}else if("descending"===r){const e=o.localeCompare(i,"zh-CN");if(0!==e)return e}}else if("ascending"===r){if(i<o)return-1;if(i>o)return 1}else if("descending"===r){if(i>o)return-1;if(i<o)return 1}}return 0},setEnumMap(e,l,r){e&&(n(e)?r.set(l,e()):t(e)&&r.set(l,e))},flatColumns(n,t){const l=[];return n.forEach(n=>{n._children?.length&&l.push(...this.flatColumns(n._children)),l.push(n),n.show=n.show??!0;let r=n.prop??n.search?.key;n.enum&&e(n.enum)&&(r=n.enum),this.setEnumMap(n.enum,r,t)}),l.filter(e=>!e._children?.length)}};export{l as tableUtil};
|
|
2
2
|
//# sourceMappingURL=table.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.mjs","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\
|
|
1
|
+
{"version":3,"file":"table.mjs","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":"uEAMO,MAAMA,EAAY,CAKxBC,YAAYC,GAGPC,EAAQD,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,EAAQa,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,EAAWF,GACdC,EAAQE,IAAIhC,EAAM6B,KACRlC,EAAQkC,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,EAAST,EAAIQ,QAC5BH,EAAUL,EAAIQ,MAIfL,KAAKX,WAAWQ,EAAIQ,KAAMH,EAASX,KAE7BK,EAAQW,OAAQ1C,IAAUA,EAAKiC,WAAWzC,OAClD"}
|