fast-element-plus 1.0.0 → 1.0.1
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/Fast.png +0 -0
- package/LICENSE +201 -0
- package/README.md +164 -0
- package/README.zh.md +164 -0
- package/dist/index.full.js +28446 -0
- package/dist/index.full.js.map +1 -0
- package/dist/index.full.min.js +36 -0
- package/dist/index.full.min.js.map +1 -0
- package/dist/index.full.min.mjs +36 -0
- package/dist/index.full.min.mjs.map +1 -0
- package/dist/index.full.mjs +28445 -0
- package/dist/index.full.mjs.map +1 -0
- package/dist/styles/index.css +984 -0
- package/dist/styles/index.css.map +1 -0
- package/es/component.d.ts +3 -0
- package/es/component.mjs +52 -0
- package/es/component.mjs.map +1 -0
- package/es/components/avatar/index.d.ts +14 -0
- package/es/components/avatar/index.mjs +8 -0
- package/es/components/avatar/index.mjs.map +1 -0
- package/es/components/avatar/src/avatar.d.ts +96 -0
- package/es/components/avatar/src/avatar.mjs +76 -0
- package/es/components/avatar/src/avatar.mjs.map +1 -0
- package/es/components/button/index.d.ts +15 -0
- package/es/components/button/index.mjs +11 -0
- package/es/components/button/index.mjs.map +1 -0
- package/es/components/button/src/button.d.ts +173 -0
- package/es/components/button/src/button.mjs +118 -0
- package/es/components/button/src/button.mjs.map +1 -0
- package/es/components/carNumber/index.d.ts +9 -0
- package/es/components/carNumber/index.mjs +12 -0
- package/es/components/carNumber/index.mjs.map +1 -0
- package/es/components/carNumber/src/carNumber.d.ts +217 -0
- package/es/components/carNumber/src/carNumber.mjs +164 -0
- package/es/components/carNumber/src/carNumber.mjs.map +1 -0
- package/es/components/carNumber/src/common.d.ts +15 -0
- package/es/components/carNumber/src/common.mjs +75 -0
- package/es/components/carNumber/src/common.mjs.map +1 -0
- package/es/components/contextMenu/index.d.ts +9 -0
- package/es/components/contextMenu/index.mjs +9 -0
- package/es/components/contextMenu/index.mjs.map +1 -0
- package/es/components/contextMenu/src/contextMenu.d.ts +32 -0
- package/es/components/contextMenu/src/contextMenu.mjs +85 -0
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -0
- package/es/components/contextMenu/src/contextMenu.type.d.ts +33 -0
- package/es/components/contextMenu/src/contextMenu.type.mjs +2 -0
- package/es/components/contextMenu/src/contextMenu.type.mjs.map +1 -0
- package/es/components/dialog/index.d.ts +14 -0
- package/es/components/dialog/index.mjs +11 -0
- package/es/components/dialog/index.mjs.map +1 -0
- package/es/components/dialog/src/dialog.d.ts +454 -0
- package/es/components/dialog/src/dialog.mjs +285 -0
- package/es/components/dialog/src/dialog.mjs.map +1 -0
- package/es/components/drawer/index.d.ts +14 -0
- package/es/components/drawer/index.mjs +8 -0
- package/es/components/drawer/index.mjs.map +1 -0
- package/es/components/drawer/src/drawer.d.ts +449 -0
- package/es/components/drawer/src/drawer.mjs +284 -0
- package/es/components/drawer/src/drawer.mjs.map +1 -0
- package/es/components/form/index.d.ts +23 -0
- package/es/components/form/index.mjs +19 -0
- package/es/components/form/index.mjs.map +1 -0
- package/es/components/form/src/form.d.ts +194 -0
- package/es/components/form/src/form.mjs +109 -0
- package/es/components/form/src/form.mjs.map +1 -0
- package/es/components/form/src/formItem.d.ts +190 -0
- package/es/components/form/src/formItem.mjs +117 -0
- package/es/components/form/src/formItem.mjs.map +1 -0
- package/es/components/form/utils/form.d.ts +81 -0
- package/es/components/form/utils/form.mjs +217 -0
- package/es/components/form/utils/form.mjs.map +1 -0
- package/es/components/formItemTip/index.d.ts +12 -0
- package/es/components/formItemTip/index.mjs +10 -0
- package/es/components/formItemTip/index.mjs.map +1 -0
- package/es/components/formItemTip/src/formItemTip.d.ts +22 -0
- package/es/components/formItemTip/src/formItemTip.mjs +38 -0
- package/es/components/formItemTip/src/formItemTip.mjs.map +1 -0
- package/es/components/icon/index.d.ts +12 -0
- package/es/components/icon/index.mjs +8 -0
- package/es/components/icon/index.mjs.map +1 -0
- package/es/components/icon/src/icon.d.ts +39 -0
- package/es/components/icon/src/icon.mjs +69 -0
- package/es/components/icon/src/icon.mjs.map +1 -0
- package/es/components/iconSelector/index.d.ts +7 -0
- package/es/components/iconSelector/index.mjs +8 -0
- package/es/components/iconSelector/index.mjs.map +1 -0
- package/es/components/iconSelector/src/iconSelector.d.ts +23 -0
- package/es/components/iconSelector/src/iconSelector.mjs +143 -0
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -0
- package/es/components/image/index.d.ts +12 -0
- package/es/components/image/index.mjs +10 -0
- package/es/components/image/index.mjs.map +1 -0
- package/es/components/image/src/image.d.ts +225 -0
- package/es/components/image/src/image.mjs +90 -0
- package/es/components/image/src/image.mjs.map +1 -0
- package/es/components/index.d.ts +21 -0
- package/es/components/index.mjs +100 -0
- package/es/components/index.mjs.map +1 -0
- package/es/components/layoutGrid/index.d.ts +16 -0
- package/es/components/layoutGrid/index.mjs +14 -0
- package/es/components/layoutGrid/index.mjs.map +1 -0
- package/es/components/layoutGrid/src/layoutGrid.d.ts +60 -0
- package/es/components/layoutGrid/src/layoutGrid.mjs +178 -0
- package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -0
- package/es/components/layoutGrid/src/layoutGrid.type.d.ts +12 -0
- package/es/components/layoutGrid/src/layoutGrid.type.mjs +2 -0
- package/es/components/layoutGrid/src/layoutGrid.type.mjs.map +1 -0
- package/es/components/layoutGrid/src/layoutGridItem.d.ts +100 -0
- package/es/components/layoutGrid/src/layoutGridItem.mjs +97 -0
- package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -0
- package/es/components/select/index.d.ts +22 -0
- package/es/components/select/index.mjs +17 -0
- package/es/components/select/index.mjs.map +1 -0
- package/es/components/select/src/select.d.ts +1201 -0
- package/es/components/select/src/select.mjs +559 -0
- package/es/components/select/src/select.mjs.map +1 -0
- package/es/components/select/src/select.type.d.ts +28 -0
- package/es/components/select/src/select.type.mjs +2 -0
- package/es/components/select/src/select.type.mjs.map +1 -0
- package/es/components/select/src/selectOption.d.ts +99 -0
- package/es/components/select/src/selectOption.mjs +71 -0
- package/es/components/select/src/selectOption.mjs.map +1 -0
- package/es/components/selectPage/index.d.ts +14 -0
- package/es/components/selectPage/index.mjs +11 -0
- package/es/components/selectPage/index.mjs.map +1 -0
- package/es/components/selectPage/src/selectPage.d.ts +595 -0
- package/es/components/selectPage/src/selectPage.mjs +381 -0
- package/es/components/selectPage/src/selectPage.mjs.map +1 -0
- package/es/components/selectV2/index.d.ts +14 -0
- package/es/components/selectV2/index.mjs +11 -0
- package/es/components/selectV2/index.mjs.map +1 -0
- package/es/components/selectV2/src/selectV2.d.ts +1407 -0
- package/es/components/selectV2/src/selectV2.mjs +606 -0
- package/es/components/selectV2/src/selectV2.mjs.map +1 -0
- package/es/components/table/images/artwork.png.mjs +5 -0
- package/es/components/table/images/artwork.png.mjs.map +1 -0
- package/es/components/table/images/index.d.ts +4 -0
- package/es/components/table/images/notImage.png.mjs +5 -0
- package/es/components/table/images/notImage.png.mjs.map +1 -0
- package/es/components/table/index.d.ts +35 -0
- package/es/components/table/index.mjs +32 -0
- package/es/components/table/index.mjs.map +1 -0
- package/es/components/table/src/page.type.d.ts +145 -0
- package/es/components/table/src/page.type.mjs +16 -0
- package/es/components/table/src/page.type.mjs.map +1 -0
- package/es/components/table/src/table.d.ts +1382 -0
- package/es/components/table/src/table.mjs +1046 -0
- package/es/components/table/src/table.mjs.map +1 -0
- package/es/components/table/src/table.state.d.ts +115 -0
- package/es/components/table/src/table.state.mjs +2 -0
- package/es/components/table/src/table.state.mjs.map +1 -0
- package/es/components/table/src/table.type.d.ts +316 -0
- package/es/components/table/src/table.type.mjs +14 -0
- package/es/components/table/src/table.type.mjs.map +1 -0
- package/es/components/table/src/tableColumn.d.ts +644 -0
- package/es/components/table/src/tableColumn.mjs +604 -0
- package/es/components/table/src/tableColumn.mjs.map +1 -0
- package/es/components/table/src/tableColumnSettingDialog.d.ts +18 -0
- package/es/components/table/src/tableColumnSettingDialog.mjs +430 -0
- package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -0
- package/es/components/table/src/tablePagination.d.ts +24 -0
- package/es/components/table/src/tablePagination.mjs +56 -0
- package/es/components/table/src/tablePagination.mjs.map +1 -0
- package/es/components/table/src/tableSearchForm.d.ts +88 -0
- package/es/components/table/src/tableSearchForm.mjs +269 -0
- package/es/components/table/src/tableSearchForm.mjs.map +1 -0
- package/es/components/table/src/tableSearchFormItem.d.ts +37 -0
- package/es/components/table/src/tableSearchFormItem.mjs +121 -0
- package/es/components/table/src/tableSearchFormItem.mjs.map +1 -0
- package/es/components/table/src/useTable.d.ts +32 -0
- package/es/components/table/src/useTable.mjs +374 -0
- package/es/components/table/src/useTable.mjs.map +1 -0
- package/es/components/table/utils/table.d.ts +45 -0
- package/es/components/table/utils/table.mjs +122 -0
- package/es/components/table/utils/table.mjs.map +1 -0
- package/es/components/tree/index.d.ts +15 -0
- package/es/components/tree/index.mjs +12 -0
- package/es/components/tree/index.mjs.map +1 -0
- package/es/components/tree/src/tree.d.ts +668 -0
- package/es/components/tree/src/tree.mjs +364 -0
- package/es/components/tree/src/tree.mjs.map +1 -0
- package/es/components/tree/src/tree.props.d.ts +81 -0
- package/es/components/tree/src/tree.props.mjs +71 -0
- package/es/components/tree/src/tree.props.mjs.map +1 -0
- package/es/components/tree/src/tree.type.d.ts +36 -0
- package/es/components/tree/src/tree.type.mjs +2 -0
- package/es/components/tree/src/tree.type.mjs.map +1 -0
- package/es/components/treeSelect/index.d.ts +14 -0
- package/es/components/treeSelect/index.mjs +11 -0
- package/es/components/treeSelect/index.mjs.map +1 -0
- package/es/components/treeSelect/src/treeSelect.d.ts +1063 -0
- package/es/components/treeSelect/src/treeSelect.mjs +492 -0
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -0
- package/es/components/upload/index.d.ts +15 -0
- package/es/components/upload/index.mjs +11 -0
- package/es/components/upload/index.mjs.map +1 -0
- package/es/components/upload/src/upload.d.ts +525 -0
- package/es/components/upload/src/upload.mjs +140 -0
- package/es/components/upload/src/upload.mjs.map +1 -0
- package/es/components/upload/src/useUpload.d.ts +65 -0
- package/es/components/upload/src/useUpload.mjs +150 -0
- package/es/components/upload/src/useUpload.mjs.map +1 -0
- package/es/components/upload/utils/upload.d.ts +30 -0
- package/es/components/upload/utils/upload.mjs +119 -0
- package/es/components/upload/utils/upload.mjs.map +1 -0
- package/es/components/uploadImage/index.d.ts +14 -0
- package/es/components/uploadImage/index.mjs +11 -0
- package/es/components/uploadImage/index.mjs.map +1 -0
- package/es/components/uploadImage/src/uploadImage.d.ts +575 -0
- package/es/components/uploadImage/src/uploadImage.mjs +207 -0
- package/es/components/uploadImage/src/uploadImage.mjs.map +1 -0
- package/es/components/uploadImages/index.d.ts +14 -0
- package/es/components/uploadImages/index.mjs +8 -0
- package/es/components/uploadImages/index.mjs.map +1 -0
- package/es/components/uploadImages/src/uploadImages.d.ts +544 -0
- package/es/components/uploadImages/src/uploadImages.mjs +194 -0
- package/es/components/uploadImages/src/uploadImages.mjs.map +1 -0
- package/es/constants/index.d.ts +2 -0
- package/es/constants/index.mjs +7 -0
- package/es/constants/index.mjs.map +1 -0
- package/es/constants/mime.d.ts +61 -0
- package/es/constants/mime.mjs +62 -0
- package/es/constants/mime.mjs.map +1 -0
- package/es/constants/regex.d.ts +78 -0
- package/es/constants/regex.mjs +79 -0
- package/es/constants/regex.mjs.map +1 -0
- package/es/directive.d.ts +2 -0
- package/es/directive.mjs +11 -0
- package/es/directive.mjs.map +1 -0
- package/es/directives/click-copy/index.d.ts +2 -0
- package/es/directives/click-copy/index.mjs +36 -0
- package/es/directives/click-copy/index.mjs.map +1 -0
- package/es/directives/click-debounce/index.d.ts +2 -0
- package/es/directives/click-debounce/index.mjs +20 -0
- package/es/directives/click-debounce/index.mjs.map +1 -0
- package/es/directives/click-draggable/index.d.ts +2 -0
- package/es/directives/click-draggable/index.mjs +38 -0
- package/es/directives/click-draggable/index.mjs.map +1 -0
- package/es/directives/click-icon-copy/index.d.ts +2 -0
- package/es/directives/click-icon-copy/index.mjs +54 -0
- package/es/directives/click-icon-copy/index.mjs.map +1 -0
- package/es/directives/click-longpress/index.d.ts +2 -0
- package/es/directives/click-longpress/index.mjs +42 -0
- package/es/directives/click-longpress/index.mjs.map +1 -0
- package/es/directives/click-throttle/index.d.ts +2 -0
- package/es/directives/click-throttle/index.mjs +31 -0
- package/es/directives/click-throttle/index.mjs.map +1 -0
- package/es/directives/index.d.ts +6 -0
- package/es/directives/index.mjs +15 -0
- package/es/directives/index.mjs.map +1 -0
- package/es/element-plus.d.ts +2 -0
- package/es/element-plus.mjs +304 -0
- package/es/element-plus.mjs.map +1 -0
- package/es/hooks/index.d.ts +3 -0
- package/es/hooks/index.mjs +9 -0
- package/es/hooks/index.mjs.map +1 -0
- package/es/hooks/use-loading/index.d.ts +4 -0
- package/es/hooks/use-loading/index.mjs +34 -0
- package/es/hooks/use-loading/index.mjs.map +1 -0
- package/es/hooks/use-overlay/index.d.ts +4 -0
- package/es/hooks/use-overlay/index.mjs +26 -0
- package/es/hooks/use-overlay/index.mjs.map +1 -0
- package/es/hooks/use-screenFull/index.d.ts +7 -0
- package/es/hooks/use-screenFull/index.mjs +45 -0
- package/es/hooks/use-screenFull/index.mjs.map +1 -0
- package/es/index.d.ts +14 -0
- package/es/index.es.d.ts +6 -0
- package/es/index.mjs +138 -0
- package/es/index.mjs.map +1 -0
- package/es/make-installer.d.ts +6 -0
- package/es/make-installer.mjs +27 -0
- package/es/make-installer.mjs.map +1 -0
- package/es/version.d.ts +1 -0
- package/es/version.mjs +5 -0
- package/es/version.mjs.map +1 -0
- package/global.d.ts +2 -0
- package/lib/component.d.ts +3 -0
- package/lib/component.js +2 -0
- package/lib/component.js.map +1 -0
- package/lib/components/avatar/index.d.ts +14 -0
- package/lib/components/avatar/index.js +2 -0
- package/lib/components/avatar/index.js.map +1 -0
- package/lib/components/avatar/src/avatar.d.ts +96 -0
- package/lib/components/avatar/src/avatar.js +2 -0
- package/lib/components/avatar/src/avatar.js.map +1 -0
- package/lib/components/button/index.d.ts +15 -0
- package/lib/components/button/index.js +2 -0
- package/lib/components/button/index.js.map +1 -0
- package/lib/components/button/src/button.d.ts +173 -0
- package/lib/components/button/src/button.js +2 -0
- package/lib/components/button/src/button.js.map +1 -0
- package/lib/components/carNumber/index.d.ts +9 -0
- package/lib/components/carNumber/index.js +2 -0
- package/lib/components/carNumber/index.js.map +1 -0
- package/lib/components/carNumber/src/carNumber.d.ts +217 -0
- package/lib/components/carNumber/src/carNumber.js +2 -0
- package/lib/components/carNumber/src/carNumber.js.map +1 -0
- package/lib/components/carNumber/src/common.d.ts +15 -0
- package/lib/components/carNumber/src/common.js +2 -0
- package/lib/components/carNumber/src/common.js.map +1 -0
- package/lib/components/contextMenu/index.d.ts +9 -0
- package/lib/components/contextMenu/index.js +2 -0
- package/lib/components/contextMenu/index.js.map +1 -0
- package/lib/components/contextMenu/src/contextMenu.d.ts +32 -0
- package/lib/components/contextMenu/src/contextMenu.js +2 -0
- package/lib/components/contextMenu/src/contextMenu.js.map +1 -0
- package/lib/components/contextMenu/src/contextMenu.type.d.ts +33 -0
- package/lib/components/contextMenu/src/contextMenu.type.js +2 -0
- package/lib/components/contextMenu/src/contextMenu.type.js.map +1 -0
- package/lib/components/dialog/index.d.ts +14 -0
- package/lib/components/dialog/index.js +2 -0
- package/lib/components/dialog/index.js.map +1 -0
- package/lib/components/dialog/src/dialog.d.ts +454 -0
- package/lib/components/dialog/src/dialog.js +2 -0
- package/lib/components/dialog/src/dialog.js.map +1 -0
- package/lib/components/drawer/index.d.ts +14 -0
- package/lib/components/drawer/index.js +2 -0
- package/lib/components/drawer/index.js.map +1 -0
- package/lib/components/drawer/src/drawer.d.ts +449 -0
- package/lib/components/drawer/src/drawer.js +2 -0
- package/lib/components/drawer/src/drawer.js.map +1 -0
- package/lib/components/form/index.d.ts +23 -0
- package/lib/components/form/index.js +2 -0
- package/lib/components/form/index.js.map +1 -0
- package/lib/components/form/src/form.d.ts +194 -0
- package/lib/components/form/src/form.js +2 -0
- package/lib/components/form/src/form.js.map +1 -0
- package/lib/components/form/src/formItem.d.ts +190 -0
- package/lib/components/form/src/formItem.js +2 -0
- package/lib/components/form/src/formItem.js.map +1 -0
- package/lib/components/form/utils/form.d.ts +81 -0
- package/lib/components/form/utils/form.js +2 -0
- package/lib/components/form/utils/form.js.map +1 -0
- package/lib/components/formItemTip/index.d.ts +12 -0
- package/lib/components/formItemTip/index.js +2 -0
- package/lib/components/formItemTip/index.js.map +1 -0
- package/lib/components/formItemTip/src/formItemTip.d.ts +22 -0
- package/lib/components/formItemTip/src/formItemTip.js +2 -0
- package/lib/components/formItemTip/src/formItemTip.js.map +1 -0
- package/lib/components/icon/index.d.ts +12 -0
- package/lib/components/icon/index.js +2 -0
- package/lib/components/icon/index.js.map +1 -0
- package/lib/components/icon/src/icon.d.ts +39 -0
- package/lib/components/icon/src/icon.js +2 -0
- package/lib/components/icon/src/icon.js.map +1 -0
- package/lib/components/iconSelector/index.d.ts +7 -0
- package/lib/components/iconSelector/index.js +2 -0
- package/lib/components/iconSelector/index.js.map +1 -0
- package/lib/components/iconSelector/src/iconSelector.d.ts +23 -0
- package/lib/components/iconSelector/src/iconSelector.js +2 -0
- package/lib/components/iconSelector/src/iconSelector.js.map +1 -0
- package/lib/components/image/index.d.ts +12 -0
- package/lib/components/image/index.js +2 -0
- package/lib/components/image/index.js.map +1 -0
- package/lib/components/image/src/image.d.ts +225 -0
- package/lib/components/image/src/image.js +2 -0
- package/lib/components/image/src/image.js.map +1 -0
- package/lib/components/index.d.ts +21 -0
- package/lib/components/index.js +2 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/layoutGrid/index.d.ts +16 -0
- package/lib/components/layoutGrid/index.js +2 -0
- package/lib/components/layoutGrid/index.js.map +1 -0
- package/lib/components/layoutGrid/src/layoutGrid.d.ts +60 -0
- package/lib/components/layoutGrid/src/layoutGrid.js +2 -0
- package/lib/components/layoutGrid/src/layoutGrid.js.map +1 -0
- package/lib/components/layoutGrid/src/layoutGrid.type.d.ts +12 -0
- package/lib/components/layoutGrid/src/layoutGrid.type.js +2 -0
- package/lib/components/layoutGrid/src/layoutGrid.type.js.map +1 -0
- package/lib/components/layoutGrid/src/layoutGridItem.d.ts +100 -0
- package/lib/components/layoutGrid/src/layoutGridItem.js +2 -0
- package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -0
- package/lib/components/select/index.d.ts +22 -0
- package/lib/components/select/index.js +2 -0
- package/lib/components/select/index.js.map +1 -0
- package/lib/components/select/src/select.d.ts +1201 -0
- package/lib/components/select/src/select.js +2 -0
- package/lib/components/select/src/select.js.map +1 -0
- package/lib/components/select/src/select.type.d.ts +28 -0
- package/lib/components/select/src/select.type.js +2 -0
- package/lib/components/select/src/select.type.js.map +1 -0
- package/lib/components/select/src/selectOption.d.ts +99 -0
- package/lib/components/select/src/selectOption.js +2 -0
- package/lib/components/select/src/selectOption.js.map +1 -0
- package/lib/components/selectPage/index.d.ts +14 -0
- package/lib/components/selectPage/index.js +2 -0
- package/lib/components/selectPage/index.js.map +1 -0
- package/lib/components/selectPage/src/selectPage.d.ts +595 -0
- package/lib/components/selectPage/src/selectPage.js +2 -0
- package/lib/components/selectPage/src/selectPage.js.map +1 -0
- package/lib/components/selectV2/index.d.ts +14 -0
- package/lib/components/selectV2/index.js +2 -0
- package/lib/components/selectV2/index.js.map +1 -0
- package/lib/components/selectV2/src/selectV2.d.ts +1407 -0
- package/lib/components/selectV2/src/selectV2.js +2 -0
- package/lib/components/selectV2/src/selectV2.js.map +1 -0
- package/lib/components/table/images/artwork.png.js +2 -0
- package/lib/components/table/images/artwork.png.js.map +1 -0
- package/lib/components/table/images/index.d.ts +4 -0
- package/lib/components/table/images/notImage.png.js +2 -0
- package/lib/components/table/images/notImage.png.js.map +1 -0
- package/lib/components/table/index.d.ts +35 -0
- package/lib/components/table/index.js +2 -0
- package/lib/components/table/index.js.map +1 -0
- package/lib/components/table/src/page.type.d.ts +145 -0
- package/lib/components/table/src/page.type.js +2 -0
- package/lib/components/table/src/page.type.js.map +1 -0
- package/lib/components/table/src/table.d.ts +1382 -0
- package/lib/components/table/src/table.js +2 -0
- package/lib/components/table/src/table.js.map +1 -0
- package/lib/components/table/src/table.state.d.ts +115 -0
- package/lib/components/table/src/table.state.js +2 -0
- package/lib/components/table/src/table.state.js.map +1 -0
- package/lib/components/table/src/table.type.d.ts +316 -0
- package/lib/components/table/src/table.type.js +2 -0
- package/lib/components/table/src/table.type.js.map +1 -0
- package/lib/components/table/src/tableColumn.d.ts +644 -0
- package/lib/components/table/src/tableColumn.js +2 -0
- package/lib/components/table/src/tableColumn.js.map +1 -0
- package/lib/components/table/src/tableColumnSettingDialog.d.ts +18 -0
- package/lib/components/table/src/tableColumnSettingDialog.js +2 -0
- package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -0
- package/lib/components/table/src/tablePagination.d.ts +24 -0
- package/lib/components/table/src/tablePagination.js +2 -0
- package/lib/components/table/src/tablePagination.js.map +1 -0
- package/lib/components/table/src/tableSearchForm.d.ts +88 -0
- package/lib/components/table/src/tableSearchForm.js +2 -0
- package/lib/components/table/src/tableSearchForm.js.map +1 -0
- package/lib/components/table/src/tableSearchFormItem.d.ts +37 -0
- package/lib/components/table/src/tableSearchFormItem.js +2 -0
- package/lib/components/table/src/tableSearchFormItem.js.map +1 -0
- package/lib/components/table/src/useTable.d.ts +32 -0
- package/lib/components/table/src/useTable.js +2 -0
- package/lib/components/table/src/useTable.js.map +1 -0
- package/lib/components/table/utils/table.d.ts +45 -0
- package/lib/components/table/utils/table.js +2 -0
- package/lib/components/table/utils/table.js.map +1 -0
- package/lib/components/tree/index.d.ts +15 -0
- package/lib/components/tree/index.js +2 -0
- package/lib/components/tree/index.js.map +1 -0
- package/lib/components/tree/src/tree.d.ts +668 -0
- package/lib/components/tree/src/tree.js +2 -0
- package/lib/components/tree/src/tree.js.map +1 -0
- package/lib/components/tree/src/tree.props.d.ts +81 -0
- package/lib/components/tree/src/tree.props.js +2 -0
- package/lib/components/tree/src/tree.props.js.map +1 -0
- package/lib/components/tree/src/tree.type.d.ts +36 -0
- package/lib/components/tree/src/tree.type.js +2 -0
- package/lib/components/tree/src/tree.type.js.map +1 -0
- package/lib/components/treeSelect/index.d.ts +14 -0
- package/lib/components/treeSelect/index.js +2 -0
- package/lib/components/treeSelect/index.js.map +1 -0
- package/lib/components/treeSelect/src/treeSelect.d.ts +1063 -0
- package/lib/components/treeSelect/src/treeSelect.js +2 -0
- package/lib/components/treeSelect/src/treeSelect.js.map +1 -0
- package/lib/components/upload/index.d.ts +15 -0
- package/lib/components/upload/index.js +2 -0
- package/lib/components/upload/index.js.map +1 -0
- package/lib/components/upload/src/upload.d.ts +525 -0
- package/lib/components/upload/src/upload.js +2 -0
- package/lib/components/upload/src/upload.js.map +1 -0
- package/lib/components/upload/src/useUpload.d.ts +65 -0
- package/lib/components/upload/src/useUpload.js +2 -0
- package/lib/components/upload/src/useUpload.js.map +1 -0
- package/lib/components/upload/utils/upload.d.ts +30 -0
- package/lib/components/upload/utils/upload.js +2 -0
- package/lib/components/upload/utils/upload.js.map +1 -0
- package/lib/components/uploadImage/index.d.ts +14 -0
- package/lib/components/uploadImage/index.js +2 -0
- package/lib/components/uploadImage/index.js.map +1 -0
- package/lib/components/uploadImage/src/uploadImage.d.ts +575 -0
- package/lib/components/uploadImage/src/uploadImage.js +2 -0
- package/lib/components/uploadImage/src/uploadImage.js.map +1 -0
- package/lib/components/uploadImages/index.d.ts +14 -0
- package/lib/components/uploadImages/index.js +2 -0
- package/lib/components/uploadImages/index.js.map +1 -0
- package/lib/components/uploadImages/src/uploadImages.d.ts +544 -0
- package/lib/components/uploadImages/src/uploadImages.js +2 -0
- package/lib/components/uploadImages/src/uploadImages.js.map +1 -0
- package/lib/constants/index.d.ts +2 -0
- package/lib/constants/index.js +2 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/mime.d.ts +61 -0
- package/lib/constants/mime.js +2 -0
- package/lib/constants/mime.js.map +1 -0
- package/lib/constants/regex.d.ts +78 -0
- package/lib/constants/regex.js +2 -0
- package/lib/constants/regex.js.map +1 -0
- package/lib/directive.d.ts +2 -0
- package/lib/directive.js +2 -0
- package/lib/directive.js.map +1 -0
- package/lib/directives/click-copy/index.d.ts +2 -0
- package/lib/directives/click-copy/index.js +2 -0
- package/lib/directives/click-copy/index.js.map +1 -0
- package/lib/directives/click-debounce/index.d.ts +2 -0
- package/lib/directives/click-debounce/index.js +2 -0
- package/lib/directives/click-debounce/index.js.map +1 -0
- package/lib/directives/click-draggable/index.d.ts +2 -0
- package/lib/directives/click-draggable/index.js +2 -0
- package/lib/directives/click-draggable/index.js.map +1 -0
- package/lib/directives/click-icon-copy/index.d.ts +2 -0
- package/lib/directives/click-icon-copy/index.js +2 -0
- package/lib/directives/click-icon-copy/index.js.map +1 -0
- package/lib/directives/click-longpress/index.d.ts +2 -0
- package/lib/directives/click-longpress/index.js +2 -0
- package/lib/directives/click-longpress/index.js.map +1 -0
- package/lib/directives/click-throttle/index.d.ts +2 -0
- package/lib/directives/click-throttle/index.js +2 -0
- package/lib/directives/click-throttle/index.js.map +1 -0
- package/lib/directives/index.d.ts +6 -0
- package/lib/directives/index.js +2 -0
- package/lib/directives/index.js.map +1 -0
- package/lib/element-plus.d.ts +2 -0
- package/lib/element-plus.js +2 -0
- package/lib/element-plus.js.map +1 -0
- package/lib/hooks/index.d.ts +3 -0
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/use-loading/index.d.ts +4 -0
- package/lib/hooks/use-loading/index.js +2 -0
- package/lib/hooks/use-loading/index.js.map +1 -0
- package/lib/hooks/use-overlay/index.d.ts +4 -0
- package/lib/hooks/use-overlay/index.js +2 -0
- package/lib/hooks/use-overlay/index.js.map +1 -0
- package/lib/hooks/use-screenFull/index.d.ts +7 -0
- package/lib/hooks/use-screenFull/index.js +2 -0
- package/lib/hooks/use-screenFull/index.js.map +1 -0
- package/lib/index.d.ts +14 -0
- package/lib/index.es.d.ts +6 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/make-installer.d.ts +6 -0
- package/lib/make-installer.js +2 -0
- package/lib/make-installer.js.map +1 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/package.json +139 -26
- package/styles/common/animation.scss +46 -0
- package/styles/common/common.scss +44 -0
- package/styles/common/loading.scss +29 -0
- package/styles/common/overlay.scss +12 -0
- package/styles/components/carNumber.scss +44 -0
- package/styles/components/contextMenu.scss +34 -0
- package/styles/components/dialog.scss +88 -0
- package/styles/components/drawer.scss +87 -0
- package/styles/components/form.scss +44 -0
- package/styles/components/formItemTip.scss +7 -0
- package/styles/components/image.scss +19 -0
- package/styles/components/selectPage.scss +74 -0
- package/styles/components/selectV2.scss +22 -0
- package/styles/components/table.scss +439 -0
- package/styles/components/tree.scss +100 -0
- package/styles/components/uploadImage.scss +61 -0
- package/styles/components/uploadImages.scss +9 -0
- package/styles/index.scss +18 -0
- package/types/components.d.ts +36 -0
- package/types/env.d.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableSearchFormItem.mjs","sources":["../../../../../packages/components/table/src/tableSearchFormItem.tsx"],"sourcesContent":["import { Fragment, defineComponent, h, inject, reactive, resolveComponent } from \"vue\";\nimport { ElOption } from \"element-plus\";\nimport { dateUtil, definePropType, makeSlots, useRender, withDefineType } from \"@fast-china/utils\";\nimport { isString } from \"lodash-unified\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableEnumColumnCtx } from \"./table.type\";\n\n/**\n * 已知默认支持的el组件:\n * \tel-input\n * \tel-input-number\n * \tel-select\n * \tel-select-v2\n * \tel-tree-select\n * \tel-cascader\n * \tel-date-picker\n * \tel-time-picker\n * \tel-time-select,\n * \tel-switch\n * 已知组件的默认props\n * clearable:el-input,el-input-number,el-select,el-select-v2,el-tree-select,el-cascader,el-date-picker,el-time-picker,el-time-select\n * filterable:el-select,el-select-v2,el-tree-select\n * placeholder-请输入:el-input,el-input-number\n * placeholder-请选择:el-select,el-select-v2,el-tree-select,el-cascader\n * defaultTime:el-date-picker\n * shortcuts:el-date-picker\n * options:el-select-v2,el-cascader\n * data:el-tree-select\n * startPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * endPlaceholder:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * rangeSeparator:\n * \t\tel-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * \t\tel-time-picker isRange is true\n * unlinkPanels:el-date-picker type in [\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"]\n * 后缀 -select Select -page Page -cascader Cascader 结尾的\n * \tplaceholder:请选择\n * 后缀 -input Input 结尾的\n * \tplaceholder:请输入\n */\n\nconst clearableEls = [\n\t\"el-input\",\n\t\"ELInput\",\n\t\"el-input-number\",\n\t\"ELInputNumber\",\n\t\"el-select\",\n\t\"ElSelect\",\n\t\"el-select-v2\",\n\t\"ElSelectV2\",\n\t\"el-tree-select\",\n\t\"ElTreeSelect\",\n\t\"el-cascader\",\n\t\"ElCascader\",\n\t\"el-date-picker\",\n\t\"ElDatePicker\",\n\t\"el-time-picker\",\n\t\"ElTimePicker\",\n\t\"el-time-select\",\n\t\"ElTimeSelect\",\n];\n\ntype FaTableSearchFormItemSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => void;\n\t};\n};\n\nconst filterableEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\"];\n\nconst inputPlaceholderEls = [\"el-input\", \"ELInput\", \"el-input-number\", \"ELInputNumber\"];\n\nconst selectPlaceholderEls = [\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-tree-select\", \"ElTreeSelect\", \"el-cascader\", \"ElCascader\"];\n\nexport default defineComponent({\n\tname: \"FaTableSearchFormItem\",\n\tprops: {\n\t\t/** @description 列配置 */\n\t\tcolumn: {\n\t\t\ttype: definePropType<FaTableColumnCtx>(Object),\n\t\t\trequired: true,\n\t\t\t/** 这里的 default 不知道为什么,不写识别不出来类型 */\n\t\t\tdefault: {} as FaTableColumnCtx,\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => void>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormItemSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst state = reactive({\n\t\t\tenumDict: withDefineType<FaTableEnumColumnCtx[]>([]),\n\t\t\toldValue: undefined,\n\t\t});\n\n\t\tconst handleUpdateModelValue = (value: any): void => {\n\t\t\tif (isString(value)) {\n\t\t\t\t// 如果是字符串,则去除前后空格\n\t\t\t\tvalue = value.trim();\n\t\t\t}\n\t\t\tstate.oldValue = tableState.searchParam[props.column?.search?.key ?? props.column.prop];\n\t\t\ttableState.searchParam[props.column?.search?.key ?? props.column.prop] = value;\n\t\t};\n\n\t\tconst handleChange = (value: any): void => {\n\t\t\t// 改变触发的时候只有不等于的时候才会去刷新\n\t\t\t// if (!isEqual(value, state.oldValue)) {\n\t\t\tprops.search();\n\t\t\t// }\n\t\t};\n\n\t\tconst handleDefaultProps = (): any => {\n\t\t\tconst search = props.column.search;\n\t\t\tconst defaultProps: any = {};\n\t\t\tif (clearableEls.includes(search?.el)) {\n\t\t\t\tdefaultProps.clearable = true;\n\t\t\t}\n\t\t\tif (filterableEls.includes(search?.el)) {\n\t\t\t\tdefaultProps.filterable = true;\n\t\t\t}\n\t\t\tif (inputPlaceholderEls.includes(search?.el)) {\n\t\t\t\tdefaultProps.placeholder = \"请输入\";\n\t\t\t}\n\t\t\tif (selectPlaceholderEls.includes(search?.el)) {\n\t\t\t\tdefaultProps.placeholder = \"请选择\";\n\t\t\t}\n\t\t\tif ([\"el-date-picker\", \"ElDatePicker\"].includes(search?.el)) {\n\t\t\t\tdefaultProps.unlinkPanels = true;\n\t\t\t\tif ([\"datetimerange\", \"daterange\", \"monthrange\", \"yearrange\"].includes(search?.props?.type)) {\n\t\t\t\t\tdefaultProps.defaultTime = dateUtil.getDefaultTime();\n\t\t\t\t\tdefaultProps.shortcuts = dateUtil.getShortcuts();\n\t\t\t\t\tdefaultProps.rangeSeparator = \"至\";\n\t\t\t\t\tdefaultProps.startPlaceholder = \"开始时间\";\n\t\t\t\t\tdefaultProps.endPlaceholder = \"结束时间\";\n\t\t\t\t} else {\n\t\t\t\t\tdefaultProps.defaultTime = dateUtil.getSimpleTime();\n\t\t\t\t\tdefaultProps.shortcuts = dateUtil.getSimpleShortcuts();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ([\"el-time-picker\", \"ElTimePicker\"].includes(search?.el) && search?.props?.isRange) {\n\t\t\t\tdefaultProps.rangeSeparator = \"至\";\n\t\t\t\tdefaultProps.startPlaceholder = \"开始时间\";\n\t\t\t\tdefaultProps.endPlaceholder = \"结束时间\";\n\t\t\t}\n\t\t\tif (\n\t\t\t\t[\"el-select\", \"ElSelect\", \"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\", \"el-tree-select\", \"ElTreeSelect\"].includes(\n\t\t\t\t\tsearch?.el\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tlet enumData;\n\t\t\t\tif (props.column.enum && isString(props.column.enum)) {\n\t\t\t\t\tenumData = enumMap.get(props.column.enum);\n\t\t\t\t} else {\n\t\t\t\t\tenumData = enumMap.get(props.column.prop ?? props.column.search?.key);\n\t\t\t\t}\n\t\t\t\tenumData = enumData.filter((f: any) => f?.show !== false);\n\t\t\t\tstate.enumDict = enumData ?? [];\n\t\t\t}\n\t\t\tif ([\"el-select-v2\", \"ElSelectV2\", \"el-cascader\", \"ElCascader\"].includes(search?.el)) {\n\t\t\t\tdefaultProps.options = state.enumDict;\n\t\t\t}\n\t\t\tif ([\"el-tree-select\", \"ElTreeSelect\"].includes(search?.el)) {\n\t\t\t\tdefaultProps.data = state.enumDict;\n\t\t\t}\n\n\t\t\treturn defaultProps;\n\t\t};\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{props.column.search?.el &&\n\t\t\t\t\th(\n\t\t\t\t\t\tresolveComponent(props.column.search.el),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...handleDefaultProps(),\n\t\t\t\t\t\t\t...props.column.search.props,\n\t\t\t\t\t\t\tmodelValue: tableState.searchParam[props.column?.search?.key ?? props.column.prop],\n\t\t\t\t\t\t\t\"onUpdate:modelValue\": handleUpdateModelValue,\n\t\t\t\t\t\t\tonChange: handleChange,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t[\"el-select\", \"ElSelect\"].includes(props.column.search.el)\n\t\t\t\t\t\t\t\t\t? state.enumDict.map((selData: any, index: number) =>\n\t\t\t\t\t\t\t\t\t\t\th(ElOption, {\n\t\t\t\t\t\t\t\t\t\t\t\tkey: index,\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: selData[props.column.search.props?.label ?? \"label\"],\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: selData[props.column.search.props?.value ?? \"value\"],\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: selData[props.column.search.props?.disabled ?? \"disabled\"],\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: slots.default &&\n\t\t\t\t\t\t\t\t\t\tslots.default({\n\t\t\t\t\t\t\t\t\t\t\tcolumn: props.column,\n\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["clearableEls","filterableEls","inputPlaceholderEls","selectPlaceholderEls","name","props","column","type","definePropType","Object","required","default","search","Function","slots","makeSlots","setup","tableState","inject","tableStateKey","enumMap","enumMapKey","state","reactive","enumDict","withDefineType","oldValue","undefined","handleUpdateModelValue","value","isString","trim","searchParam","key","prop","handleChange","handleDefaultProps","defaultProps","includes","el","clearable","filterable","placeholder","unlinkPanels","defaultTime","dateUtil","getDefaultTime","shortcuts","getShortcuts","rangeSeparator","startPlaceholder","endPlaceholder","getSimpleTime","getSimpleShortcuts","isRange","enumData","enum","get","filter","f","show","options","data","useRender","_createVNode","_Fragment","h","resolveComponent","modelValue","onChange","map","selData","index","ElOption","label","disabled","getTableDefaultSlots"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { makeSlots } from '@fast-china/utils';
|
|
2
|
+
import { PagedInput } from './page.type';
|
|
3
|
+
import { FaTableSlots, faTableEmits, faTableProps } from './table';
|
|
4
|
+
import { FaTableState } from './table.state';
|
|
5
|
+
import { FaTableColumnCtx, FaTableEnumColumnCtx } from './table.type';
|
|
6
|
+
import { TableInstance } from 'element-plus';
|
|
7
|
+
import { ExtractPropTypes, InjectionKey, SetupContext } from 'vue';
|
|
8
|
+
export declare const tableStateKey: InjectionKey<FaTableState>;
|
|
9
|
+
export declare const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>>;
|
|
10
|
+
type TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;
|
|
11
|
+
export declare const useTable: (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext["slots"], emit: TableSetupContext["emit"]) => {
|
|
12
|
+
_globalSize: import('vue').ComputedRef<"" | "small" | "default" | "large">;
|
|
13
|
+
state: FaTableState;
|
|
14
|
+
elementRef: import('vue').Ref<HTMLElement, HTMLElement>;
|
|
15
|
+
tableRef: import('vue').Ref<TableInstance, TableInstance>;
|
|
16
|
+
handleTableColumnAutoWidth: () => void;
|
|
17
|
+
getRequestParam: () => PagedInput;
|
|
18
|
+
loadTableColumns: () => void;
|
|
19
|
+
handleSizeChange: (pageSize: number) => void;
|
|
20
|
+
handlePaginationChange: (val: number) => void;
|
|
21
|
+
defaultSearchTime: () => void;
|
|
22
|
+
tableSearch: () => Promise<void>;
|
|
23
|
+
tableReset: () => Promise<void>;
|
|
24
|
+
doRender: () => Promise<void>;
|
|
25
|
+
doLoading: (loadingFunction: () => void | Promise<void>, loadingText?: string) => void;
|
|
26
|
+
handleCustomCellClick: (emitName: string, { row, column, $index }: {
|
|
27
|
+
row: any;
|
|
28
|
+
column: FaTableColumnCtx;
|
|
29
|
+
$index: number;
|
|
30
|
+
}) => void;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { ref, reactive, provide, computed, nextTick, watch } from "vue";
|
|
2
|
+
import { useGlobalSize, dayjs } from "element-plus";
|
|
3
|
+
import { consoleError, clickUtil, execFunction } from "@fast-china/utils";
|
|
4
|
+
import { isFunction, isArray } from "lodash-unified";
|
|
5
|
+
import { tableUtil } from "../utils/table.mjs";
|
|
6
|
+
import { getTableDefaultSlots } from "./table.type.mjs";
|
|
7
|
+
const tableStateKey = Symbol("tableState");
|
|
8
|
+
const enumMapKey = Symbol("enumMap");
|
|
9
|
+
const useTable = (props, slots, emit) => {
|
|
10
|
+
const _globalSize = useGlobalSize();
|
|
11
|
+
const elementRef = ref();
|
|
12
|
+
const tableRef = ref();
|
|
13
|
+
const enumMap = reactive(/* @__PURE__ */ new Map());
|
|
14
|
+
provide(enumMapKey, enumMap);
|
|
15
|
+
const state = reactive({
|
|
16
|
+
loading: false,
|
|
17
|
+
loadingText: "加载中...",
|
|
18
|
+
orgColumns: [],
|
|
19
|
+
tableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),
|
|
20
|
+
searchColumns: computed(
|
|
21
|
+
() => state.orgColumns.filter((f) => f.pureSearch || f.search).sort((a, b) => {
|
|
22
|
+
return a.search?.order - b.search?.order;
|
|
23
|
+
})
|
|
24
|
+
),
|
|
25
|
+
spanColumns: computed(() => [
|
|
26
|
+
...state.orgColumns.filter((f) => f.spanProp).map((col) => {
|
|
27
|
+
return {
|
|
28
|
+
prop: col?.prop,
|
|
29
|
+
spanProp: col?.spanProp
|
|
30
|
+
};
|
|
31
|
+
}),
|
|
32
|
+
...props.props.span ? [
|
|
33
|
+
{ prop: "__table-index", spanProp: props.props.span },
|
|
34
|
+
{ prop: "__table-selection", spanProp: props.props.span },
|
|
35
|
+
{ prop: "__table-operation", spanProp: props.props.span }
|
|
36
|
+
] : []
|
|
37
|
+
]),
|
|
38
|
+
tableData: [],
|
|
39
|
+
tableSpanData: computed(() => {
|
|
40
|
+
if (state.spanColumns?.length > 0 && state.tableData?.length > 0) {
|
|
41
|
+
const result = [];
|
|
42
|
+
state.spanColumns.forEach((item) => {
|
|
43
|
+
result[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);
|
|
44
|
+
result[`${item.prop}-index`] = 0;
|
|
45
|
+
});
|
|
46
|
+
for (let i = 1; i < state.tableData.length; i++) {
|
|
47
|
+
state.spanColumns.forEach((item) => {
|
|
48
|
+
if (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {
|
|
49
|
+
result[item.prop][result[`${item.prop}-index`]]++;
|
|
50
|
+
} else {
|
|
51
|
+
result[`${item.prop}-index`] = i;
|
|
52
|
+
result[item.prop][i] = 1;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
return [];
|
|
59
|
+
}),
|
|
60
|
+
tablePagination: {
|
|
61
|
+
pageIndex: 1,
|
|
62
|
+
pageSize: 20,
|
|
63
|
+
totalRows: 0
|
|
64
|
+
},
|
|
65
|
+
initParam: {},
|
|
66
|
+
searchParam: {},
|
|
67
|
+
searchValueUpdate: "",
|
|
68
|
+
searchForm: props.searchForm,
|
|
69
|
+
hideImage: computed(() => props.hideImage),
|
|
70
|
+
selected: false,
|
|
71
|
+
selectedList: [],
|
|
72
|
+
selectedListIds: computed(() => state.selectedList.map((item) => isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey])),
|
|
73
|
+
indeterminateSelectedListIds: [],
|
|
74
|
+
responseConfig: void 0,
|
|
75
|
+
operationColumnWidth: computed(() => {
|
|
76
|
+
const findAutoCol = state.autoColumnWidth.find((f) => f.prop === "__table-operation");
|
|
77
|
+
if (findAutoCol) {
|
|
78
|
+
return `${findAutoCol.width}px`;
|
|
79
|
+
}
|
|
80
|
+
switch (_globalSize.value) {
|
|
81
|
+
case "large":
|
|
82
|
+
case "default":
|
|
83
|
+
return "54px";
|
|
84
|
+
case "small":
|
|
85
|
+
return "42px";
|
|
86
|
+
default:
|
|
87
|
+
return "auto";
|
|
88
|
+
}
|
|
89
|
+
}),
|
|
90
|
+
imagePreview: false,
|
|
91
|
+
previewList: [],
|
|
92
|
+
tableWidth: void 0,
|
|
93
|
+
tableHeight: void 0,
|
|
94
|
+
autoColumnWidth: []
|
|
95
|
+
});
|
|
96
|
+
provide(tableStateKey, state);
|
|
97
|
+
const handleTableColumnAutoWidth = () => {
|
|
98
|
+
state.loading = true;
|
|
99
|
+
state.loadingText = "加载中...";
|
|
100
|
+
state.autoColumnWidth = [];
|
|
101
|
+
const autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);
|
|
102
|
+
if (slots?.operation) {
|
|
103
|
+
autoWidthColumns.push({
|
|
104
|
+
prop: "__table-operation"
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (autoWidthColumns?.length > 0) {
|
|
108
|
+
const otherWidth = _globalSize.value === "default" ? 25 : 17;
|
|
109
|
+
nextTick(() => {
|
|
110
|
+
const tableDom = document.querySelector(`.fa-table__${props.tableKey}`);
|
|
111
|
+
if (tableDom) {
|
|
112
|
+
autoWidthColumns.forEach((item) => {
|
|
113
|
+
const headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);
|
|
114
|
+
const cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);
|
|
115
|
+
let maxWidth = 0;
|
|
116
|
+
if (headerColumnDom) {
|
|
117
|
+
maxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;
|
|
118
|
+
if (item?.sortable) {
|
|
119
|
+
maxWidth += 24;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
cellColumnDoms.forEach((cellDom) => {
|
|
123
|
+
const curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;
|
|
124
|
+
if (curWidth > maxWidth) {
|
|
125
|
+
maxWidth = curWidth;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);
|
|
129
|
+
if (findInfo) {
|
|
130
|
+
findInfo.width = Math.max(findInfo.width, maxWidth);
|
|
131
|
+
} else {
|
|
132
|
+
state.autoColumnWidth.push({
|
|
133
|
+
prop: item?.prop,
|
|
134
|
+
width: maxWidth
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
state.loading = false;
|
|
142
|
+
};
|
|
143
|
+
const handleTableData = (data) => {
|
|
144
|
+
if (props.treeData) {
|
|
145
|
+
const result = [];
|
|
146
|
+
data.forEach((row) => {
|
|
147
|
+
const rowList = row[props.props.children];
|
|
148
|
+
if (isArray(rowList)) {
|
|
149
|
+
rowList.forEach((cRow) => result.push({ ...row, ...cRow }));
|
|
150
|
+
} else {
|
|
151
|
+
result.push({ ...row, ...rowList || {} });
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return result;
|
|
155
|
+
} else {
|
|
156
|
+
return data;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const getRequestParam = () => {
|
|
160
|
+
const params = { ...state.searchParam, ...props.pagination ? state.tablePagination : {} };
|
|
161
|
+
delete params.totalRows;
|
|
162
|
+
return params;
|
|
163
|
+
};
|
|
164
|
+
const loadData = async () => {
|
|
165
|
+
state.loading = true;
|
|
166
|
+
state.loadingText = "加载中...";
|
|
167
|
+
if (props.requestApi) {
|
|
168
|
+
const params = getRequestParam();
|
|
169
|
+
emit("refresh", params);
|
|
170
|
+
let pageData = [];
|
|
171
|
+
try {
|
|
172
|
+
const resData = await props.requestApi(params);
|
|
173
|
+
props.dataCallback && props.dataCallback(resData);
|
|
174
|
+
if (props.pagination) {
|
|
175
|
+
const pageRes = resData;
|
|
176
|
+
pageData = pageRes.rows;
|
|
177
|
+
Object.assign(state.tablePagination, {
|
|
178
|
+
pageIndex: pageRes.pageIndex,
|
|
179
|
+
pageSize: pageRes.pageSize,
|
|
180
|
+
totalRows: pageRes.totalRows
|
|
181
|
+
});
|
|
182
|
+
} else {
|
|
183
|
+
pageData = resData;
|
|
184
|
+
Object.assign(state.tablePagination, {
|
|
185
|
+
pageIndex: 1,
|
|
186
|
+
pageSize: 0,
|
|
187
|
+
totalRows: pageData.length
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
state.tableData = handleTableData(pageData);
|
|
191
|
+
} catch (error) {
|
|
192
|
+
consoleError("FaTable", error);
|
|
193
|
+
state.tableData = [];
|
|
194
|
+
} finally {
|
|
195
|
+
state.loading = false;
|
|
196
|
+
}
|
|
197
|
+
} else {
|
|
198
|
+
emit("refresh", { searchValue: state.searchParam.searchValue });
|
|
199
|
+
let _value = handleTableData(props.data);
|
|
200
|
+
_value = _value.filter((f) => {
|
|
201
|
+
if (!state.searchParam.searchValue) return true;
|
|
202
|
+
return state.tableColumns.some((col) => {
|
|
203
|
+
return f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
if (state.searchParam.sortList?.length > 0) {
|
|
207
|
+
_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));
|
|
208
|
+
}
|
|
209
|
+
if (props.pagination) {
|
|
210
|
+
Object.assign(state.tablePagination, {
|
|
211
|
+
totalRows: _value.length
|
|
212
|
+
});
|
|
213
|
+
const pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;
|
|
214
|
+
const pageEnd = pageStart + state.tablePagination.pageSize;
|
|
215
|
+
state.tableData = _value.slice(pageStart, pageEnd);
|
|
216
|
+
} else {
|
|
217
|
+
state.tableData = _value;
|
|
218
|
+
Object.assign(state.tablePagination, {
|
|
219
|
+
pageIndex: 1,
|
|
220
|
+
pageSize: 0,
|
|
221
|
+
totalRows: _value.length
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
state.loading = false;
|
|
225
|
+
}
|
|
226
|
+
handleTableColumnAutoWidth();
|
|
227
|
+
};
|
|
228
|
+
const loadTableColumns = () => {
|
|
229
|
+
let columns = props.columns;
|
|
230
|
+
columns.forEach((col) => {
|
|
231
|
+
if (col.pureSearch || col.search) {
|
|
232
|
+
col.search.key ??= col.prop;
|
|
233
|
+
col.search.label ??= col.label;
|
|
234
|
+
if (col.search.defaultValue) {
|
|
235
|
+
state.searchParam[col.search.key] = col.search.defaultValue;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
columns = columns.sort((a, b) => {
|
|
240
|
+
return a?.order - b?.order;
|
|
241
|
+
});
|
|
242
|
+
state.orgColumns = tableUtil.flatColumns(columns, enumMap);
|
|
243
|
+
};
|
|
244
|
+
const handleSizeChange = (pageSize) => {
|
|
245
|
+
state.tablePagination.pageIndex = 1;
|
|
246
|
+
state.tablePagination.pageSize = pageSize;
|
|
247
|
+
emit("sizeChange", pageSize);
|
|
248
|
+
emit("paginationChange", 1, pageSize);
|
|
249
|
+
loadData();
|
|
250
|
+
};
|
|
251
|
+
const handlePaginationChange = (val) => {
|
|
252
|
+
state.tablePagination.pageIndex = val;
|
|
253
|
+
emit("sizeChange", state.tablePagination.pageSize);
|
|
254
|
+
emit("paginationChange", val, state.tablePagination.pageSize);
|
|
255
|
+
loadData();
|
|
256
|
+
};
|
|
257
|
+
const updatedTotalParam = () => {
|
|
258
|
+
const newSearchParam = {};
|
|
259
|
+
for (const key in state.searchParam) {
|
|
260
|
+
if (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {
|
|
261
|
+
newSearchParam[key] = state.searchParam[key];
|
|
262
|
+
} else if (!state.searchParam[key]) {
|
|
263
|
+
delete state.searchParam[key];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
Object.assign(state.searchParam, newSearchParam);
|
|
267
|
+
};
|
|
268
|
+
const defaultSearchTime = () => {
|
|
269
|
+
if (props.hideSearchTime) {
|
|
270
|
+
state.searchParam.searchTimeList = void 0;
|
|
271
|
+
} else {
|
|
272
|
+
const end = /* @__PURE__ */ new Date();
|
|
273
|
+
const start = /* @__PURE__ */ new Date();
|
|
274
|
+
switch (props.dataSearchRange) {
|
|
275
|
+
case "Past1D":
|
|
276
|
+
start.setDate(start.getDate() - 1);
|
|
277
|
+
break;
|
|
278
|
+
case "Past3D":
|
|
279
|
+
start.setDate(start.getDate() - 3);
|
|
280
|
+
break;
|
|
281
|
+
case "Past1W":
|
|
282
|
+
start.setDate(start.getDate() - 7);
|
|
283
|
+
break;
|
|
284
|
+
case "Past1M":
|
|
285
|
+
start.setMonth(start.getMonth() - 1);
|
|
286
|
+
break;
|
|
287
|
+
case "Past3M":
|
|
288
|
+
start.setMonth(start.getMonth() - 3);
|
|
289
|
+
break;
|
|
290
|
+
case "Past6M":
|
|
291
|
+
start.setMonth(start.getMonth() - 6);
|
|
292
|
+
break;
|
|
293
|
+
case "Past1Y":
|
|
294
|
+
start.setFullYear(start.getFullYear() - 1);
|
|
295
|
+
break;
|
|
296
|
+
case "Past3Y":
|
|
297
|
+
start.setFullYear(start.getFullYear() - 3);
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
state.searchParam.searchTimeList = [dayjs(start).format("YYYY-MM-DD 00:00:00"), dayjs(end).format("YYYY-MM-DD 23:59:59")];
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
const tableSearch = async () => {
|
|
304
|
+
state.tablePagination.pageIndex = 1;
|
|
305
|
+
updatedTotalParam();
|
|
306
|
+
await loadData();
|
|
307
|
+
};
|
|
308
|
+
const tableReset = async () => {
|
|
309
|
+
state.tablePagination.pageIndex = 1;
|
|
310
|
+
state.searchParam = {};
|
|
311
|
+
defaultSearchTime();
|
|
312
|
+
Object.keys(state.initParam ?? {}).forEach((key) => {
|
|
313
|
+
state.searchParam[key] = state.initParam[key];
|
|
314
|
+
});
|
|
315
|
+
emit("reset", state.searchParam);
|
|
316
|
+
await loadData();
|
|
317
|
+
};
|
|
318
|
+
const doRender = async () => {
|
|
319
|
+
state.orgColumns = [];
|
|
320
|
+
state.autoColumnWidth = [];
|
|
321
|
+
state.tableData = [];
|
|
322
|
+
await clickUtil.debounceAsync(async () => {
|
|
323
|
+
loadTableColumns();
|
|
324
|
+
await tableSearch();
|
|
325
|
+
}, 300);
|
|
326
|
+
};
|
|
327
|
+
const doLoading = (loadingFunction, loadingText = "加载中...") => {
|
|
328
|
+
state.loading = true;
|
|
329
|
+
state.loadingText = loadingText;
|
|
330
|
+
execFunction(loadingFunction).then().catch((error) => {
|
|
331
|
+
consoleError("FaTable", error);
|
|
332
|
+
}).finally(() => {
|
|
333
|
+
state.loading = false;
|
|
334
|
+
});
|
|
335
|
+
};
|
|
336
|
+
const handleCustomCellClick = (emitName, { row, column, $index }) => {
|
|
337
|
+
emit("customCellClick", emitName, { row, column, $index, ...getTableDefaultSlots(state) });
|
|
338
|
+
};
|
|
339
|
+
watch(
|
|
340
|
+
() => props.tableKey,
|
|
341
|
+
async () => {
|
|
342
|
+
await doRender();
|
|
343
|
+
}
|
|
344
|
+
);
|
|
345
|
+
watch(
|
|
346
|
+
() => props.searchForm,
|
|
347
|
+
(newValue) => {
|
|
348
|
+
state.searchForm = newValue;
|
|
349
|
+
}
|
|
350
|
+
);
|
|
351
|
+
return {
|
|
352
|
+
_globalSize,
|
|
353
|
+
state,
|
|
354
|
+
elementRef,
|
|
355
|
+
tableRef,
|
|
356
|
+
handleTableColumnAutoWidth,
|
|
357
|
+
getRequestParam,
|
|
358
|
+
loadTableColumns,
|
|
359
|
+
handleSizeChange,
|
|
360
|
+
handlePaginationChange,
|
|
361
|
+
defaultSearchTime,
|
|
362
|
+
tableSearch,
|
|
363
|
+
tableReset,
|
|
364
|
+
doRender,
|
|
365
|
+
doLoading,
|
|
366
|
+
handleCustomCellClick
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
export {
|
|
370
|
+
enumMapKey,
|
|
371
|
+
tableStateKey,
|
|
372
|
+
useTable
|
|
373
|
+
};
|
|
374
|
+
//# sourceMappingURL=useTable.mjs.map
|
|
@@ -0,0 +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\thideImage: computed(() => props.hideImage),\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;\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":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { FaTableColumnCtx, FaTableEnumColumnCtx, FaTableEnumColumnType, PagedSortInput } from '../..';
|
|
2
|
+
/**
|
|
3
|
+
* 表格工具类
|
|
4
|
+
*/
|
|
5
|
+
export declare const tableUtil: {
|
|
6
|
+
/**
|
|
7
|
+
* @description 处理无数据情况
|
|
8
|
+
* @param {String} callValue 需要处理的值
|
|
9
|
+
*/
|
|
10
|
+
formatValue(callValue: any): any;
|
|
11
|
+
/**
|
|
12
|
+
* @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)
|
|
13
|
+
* @param {Object} row 当前行数据
|
|
14
|
+
* @param {String} prop 当前 prop
|
|
15
|
+
*/
|
|
16
|
+
handleRowAccordingToProp(row: any, prop: string): any;
|
|
17
|
+
/**
|
|
18
|
+
* @description 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop
|
|
19
|
+
* @param {String} prop 当前 prop
|
|
20
|
+
*/
|
|
21
|
+
handleProp(prop: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* @description 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)
|
|
24
|
+
* @param {String} callValue 当前单元格值
|
|
25
|
+
* @param {Array} enumData 字典列表
|
|
26
|
+
* @param {Array} fieldNames 指定 label && value 的 key 值
|
|
27
|
+
* @param {String} type 过滤类型(目前只有 tag)
|
|
28
|
+
*/
|
|
29
|
+
filterEnum(callValue: any, enumData: FaTableEnumColumnCtx[], fieldNames?: {
|
|
30
|
+
label: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}, type?: "tag"): string;
|
|
33
|
+
/**
|
|
34
|
+
* 数组动态排序
|
|
35
|
+
*/
|
|
36
|
+
arrayDynamicSort(sortList: PagedSortInput[]): (a: any, b: any) => number;
|
|
37
|
+
/**
|
|
38
|
+
* 设置枚举
|
|
39
|
+
*/
|
|
40
|
+
setEnumMap(columnEnum: FaTableEnumColumnType, prop: string, enumMap: Map<string, FaTableEnumColumnCtx[]>): void;
|
|
41
|
+
/**
|
|
42
|
+
* 扁平化 columns
|
|
43
|
+
*/
|
|
44
|
+
flatColumns(columns: FaTableColumnCtx[], enumMap?: Map<string, FaTableEnumColumnCtx[]>): FaTableColumnCtx[];
|
|
45
|
+
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { isString, isFunction, isArray } from "lodash-unified";
|
|
2
|
+
const tableUtil = {
|
|
3
|
+
/**
|
|
4
|
+
* @description 处理无数据情况
|
|
5
|
+
* @param {String} callValue 需要处理的值
|
|
6
|
+
*/
|
|
7
|
+
formatValue(callValue) {
|
|
8
|
+
if (isArray(callValue)) return callValue.length ? callValue.join(` , `) : null;
|
|
9
|
+
return callValue;
|
|
10
|
+
},
|
|
11
|
+
/**
|
|
12
|
+
* @description 处理 prop 为多级嵌套的情况(列如: prop:user.name)
|
|
13
|
+
* @param {Object} row 当前行数据
|
|
14
|
+
* @param {String} prop 当前 prop
|
|
15
|
+
*/
|
|
16
|
+
handleRowAccordingToProp(row, prop) {
|
|
17
|
+
if (!prop.includes(".")) return row[prop] ?? null;
|
|
18
|
+
prop.split(".").forEach((item) => row = row[item]);
|
|
19
|
+
return row;
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* @description 处理 prop,当 prop 为多级嵌套时 ==> 返回最后一级 prop
|
|
23
|
+
* @param {String} prop 当前 prop
|
|
24
|
+
*/
|
|
25
|
+
handleProp(prop) {
|
|
26
|
+
const propArr = prop.split(".");
|
|
27
|
+
if (propArr.length === 1) return prop;
|
|
28
|
+
return propArr[propArr.length - 1];
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* @description 根据枚举列表查询当需要的数据(如果指定了 label 和 value 的 key值,会自动识别格式化)
|
|
32
|
+
* @param {String} callValue 当前单元格值
|
|
33
|
+
* @param {Array} enumData 字典列表
|
|
34
|
+
* @param {Array} fieldNames 指定 label && value 的 key 值
|
|
35
|
+
* @param {String} type 过滤类型(目前只有 tag)
|
|
36
|
+
*/
|
|
37
|
+
filterEnum(callValue, enumData, fieldNames, type) {
|
|
38
|
+
const value = fieldNames?.value ?? "value";
|
|
39
|
+
const label = fieldNames?.label ?? "label";
|
|
40
|
+
let filterData = {};
|
|
41
|
+
if (isArray(enumData)) {
|
|
42
|
+
filterData = enumData.find((item) => item[value] === callValue);
|
|
43
|
+
}
|
|
44
|
+
if (type === "tag") {
|
|
45
|
+
return filterData?.type ?? "primary";
|
|
46
|
+
}
|
|
47
|
+
return filterData ? filterData[label] : null;
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* 数组动态排序
|
|
51
|
+
*/
|
|
52
|
+
arrayDynamicSort(sortList) {
|
|
53
|
+
return function(a, b) {
|
|
54
|
+
if (sortList && sortList.length > 0) {
|
|
55
|
+
for (const condition of sortList) {
|
|
56
|
+
const property = condition.enField;
|
|
57
|
+
const order = condition.mode;
|
|
58
|
+
const aValue = a[property];
|
|
59
|
+
const bValue = b[property];
|
|
60
|
+
if (typeof aValue === "string" && typeof bValue === "string") {
|
|
61
|
+
if (order === "ascending") {
|
|
62
|
+
const comparison = aValue.localeCompare(bValue, "zh-CN");
|
|
63
|
+
if (comparison !== 0) {
|
|
64
|
+
return comparison;
|
|
65
|
+
}
|
|
66
|
+
} else if (order === "descending") {
|
|
67
|
+
const comparison = bValue.localeCompare(aValue, "zh-CN");
|
|
68
|
+
if (comparison !== 0) {
|
|
69
|
+
return comparison;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
if (order === "ascending") {
|
|
74
|
+
if (aValue < bValue) return -1;
|
|
75
|
+
if (aValue > bValue) return 1;
|
|
76
|
+
} else if (order === "descending") {
|
|
77
|
+
if (aValue > bValue) return -1;
|
|
78
|
+
if (aValue < bValue) return 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return 0;
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
/**
|
|
87
|
+
* 设置枚举
|
|
88
|
+
*/
|
|
89
|
+
setEnumMap(columnEnum, prop, enumMap) {
|
|
90
|
+
if (!columnEnum) return;
|
|
91
|
+
if (isFunction(columnEnum)) {
|
|
92
|
+
columnEnum().then((res) => {
|
|
93
|
+
enumMap.set(prop, res);
|
|
94
|
+
});
|
|
95
|
+
} else if (isArray(columnEnum)) {
|
|
96
|
+
enumMap.set(prop, columnEnum);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
/**
|
|
100
|
+
* 扁平化 columns
|
|
101
|
+
*/
|
|
102
|
+
flatColumns(columns, enumMap) {
|
|
103
|
+
const flatArr = [];
|
|
104
|
+
columns.forEach((col) => {
|
|
105
|
+
if (col._children?.length) {
|
|
106
|
+
flatArr.push(...this.flatColumns(col._children));
|
|
107
|
+
}
|
|
108
|
+
flatArr.push(col);
|
|
109
|
+
col.show = col.show ?? true;
|
|
110
|
+
let enumKey = col.prop ?? col.search?.key;
|
|
111
|
+
if (col.enum && isString(col.enum)) {
|
|
112
|
+
enumKey = col.enum;
|
|
113
|
+
}
|
|
114
|
+
this.setEnumMap(col.enum, enumKey, enumMap);
|
|
115
|
+
});
|
|
116
|
+
return flatArr.filter((item) => !item._children?.length);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
export {
|
|
120
|
+
tableUtil
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=table.mjs.map
|