@cfmm/umi-plugins-ui-v2 0.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/README.md +29 -0
- package/dist/cjs/components/ActionLogDrawer.tpl +148 -0
- package/dist/cjs/components/AddDrawerForm.tpl +38 -0
- package/dist/cjs/components/AuthorizeRender.tpl +11 -0
- package/dist/cjs/components/Authorized.tpl +39 -0
- package/dist/cjs/components/AuthorizedRoute.tpl +33 -0
- package/dist/cjs/components/AvatarDropdown.tpl +101 -0
- package/dist/cjs/components/CheckPermissions.tpl +100 -0
- package/dist/cjs/components/CopyButton.tpl +49 -0
- package/dist/cjs/components/CrudTable.tpl +650 -0
- package/dist/cjs/components/DicDropDownList.tpl +60 -0
- package/dist/cjs/components/DndTabs.tpl +159 -0
- package/dist/cjs/components/DndTag.tpl +89 -0
- package/dist/cjs/components/DropdownButton.tpl +123 -0
- package/dist/cjs/components/DynamicIcon.tpl +73 -0
- package/dist/cjs/components/DynamicIconModal.tpl +196 -0
- package/dist/cjs/components/EditMultiLangForm.tpl +366 -0
- package/dist/cjs/components/ExportPageWrapper.tpl +224 -0
- package/dist/cjs/components/FlieListModal.tpl +79 -0
- package/dist/cjs/components/FormUpload.tpl +561 -0
- package/dist/cjs/components/GlobalFooter.tpl +21 -0
- package/dist/cjs/components/GlobalHeader.less +51 -0
- package/dist/cjs/components/GlobalHeader.tpl +313 -0
- package/dist/cjs/components/HeaderSearch.less +32 -0
- package/dist/cjs/components/HeaderSearch.tpl +92 -0
- package/dist/cjs/components/HighlightStr.tpl +41 -0
- package/dist/cjs/components/ImportDataUpload.tpl +94 -0
- package/dist/cjs/components/ImportExecl.less +10 -0
- package/dist/cjs/components/ImportExecl.tpl +108 -0
- package/dist/cjs/components/KeepAliveDndTabs.tpl +151 -0
- package/dist/cjs/components/KeepAliveTabs.less +23 -0
- package/dist/cjs/components/KeepAliveTabs.tpl +136 -0
- package/dist/cjs/components/Loading.css +19 -0
- package/dist/cjs/components/LoadingSvg.tpl +14 -0
- package/dist/cjs/components/MenuFooter.css +13 -0
- package/dist/cjs/components/MenuFooter.tpl +24 -0
- package/dist/cjs/components/MyColorPicker.tpl +19 -0
- package/dist/cjs/components/MyFooterToolbar.css +6 -0
- package/dist/cjs/components/MyFooterToolbar.tpl +56 -0
- package/dist/cjs/components/MyPageContainer.tpl +43 -0
- package/dist/cjs/components/MyReactEcharts.tpl +11 -0
- package/dist/cjs/components/MySelect.tpl +267 -0
- package/dist/cjs/components/MySelectLang.tpl +22 -0
- package/dist/cjs/components/MySetps.tpl +85 -0
- package/dist/cjs/components/MyTagList.tpl +57 -0
- package/dist/cjs/components/MyUpload.less +39 -0
- package/dist/cjs/components/MyUpload.tpl +609 -0
- package/dist/cjs/components/NoFoundPage.tpl +46 -0
- package/dist/cjs/components/PDFWrapper.tpl +96 -0
- package/dist/cjs/components/PageLoading.tpl +16 -0
- package/dist/cjs/components/PermissionSelect.tpl +230 -0
- package/dist/cjs/components/ProFormUTCDatePicker.tpl +20 -0
- package/dist/cjs/components/ProFormUTCRangePicker.tpl +20 -0
- package/dist/cjs/components/PromiseRender.tpl +93 -0
- package/dist/cjs/components/QrCodeModal.tpl +19 -0
- package/dist/cjs/components/RandomAvatar.tpl +34 -0
- package/dist/cjs/components/RefDrawerForm.tpl +75 -0
- package/dist/cjs/components/ReportTable.tpl +336 -0
- package/dist/cjs/components/Secured.tpl +66 -0
- package/dist/cjs/components/ThemeSwitch.tpl +74 -0
- package/dist/cjs/components/TimeTypeSelect.tpl +35 -0
- package/dist/cjs/components/TipsTableTitle.tpl +37 -0
- package/dist/cjs/components/UTCDatePicker.tpl +107 -0
- package/dist/cjs/components/UTCRangePicker.tpl +142 -0
- package/dist/cjs/components/UpdateForm.tpl +32 -0
- package/dist/cjs/components/UserDisable.tpl +58 -0
- package/dist/cjs/components/UserNoPagePermission.tpl +58 -0
- package/dist/cjs/components/UserNoPermission.tpl +58 -0
- package/dist/cjs/components/ViewTableItemDrawer.tpl +29 -0
- package/dist/cjs/components/VolumeFormItem.tpl +59 -0
- package/dist/cjs/components/WangEditor.css +53 -0
- package/dist/cjs/components/WangEditor.tpl +174 -0
- package/dist/cjs/components/WangEditorView.tpl +24 -0
- package/dist/cjs/components/fileTypeMap.tpl +96 -0
- package/dist/cjs/components/renderAuthorize.tpl +44 -0
- package/dist/cjs/context/KeepAliveTabs.tpl +13 -0
- package/dist/cjs/context/index.tpl +1 -0
- package/dist/cjs/hooks/useAction.tpl +126 -0
- package/dist/cjs/hooks/useActionLocales.tpl +108 -0
- package/dist/cjs/hooks/useAuthority.tpl +27 -0
- package/dist/cjs/hooks/useColumnTitle.tpl +47 -0
- package/dist/cjs/hooks/useFormatLocale.tpl +82 -0
- package/dist/cjs/hooks/useKeepAliveTabs.tpl +255 -0
- package/dist/cjs/hooks/useMatchRoute.tpl +76 -0
- package/dist/cjs/hooks/useMemoizedFn.tpl +32 -0
- package/dist/cjs/hooks/useOutlet.tpl +20 -0
- package/dist/cjs/hooks/usePageExport.tpl +155 -0
- package/dist/cjs/hooks/useQueryTableList.tpl +91 -0
- package/dist/cjs/hooks/useRouteAuth.tpl +122 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +122 -0
- package/dist/cjs/locales/en-US.d.ts +163 -0
- package/dist/cjs/locales/en-US.js +16 -0
- package/dist/cjs/locales/enUS/ActionLogDrawer.d.ts +6 -0
- package/dist/cjs/locales/enUS/ActionLogDrawer.js +11 -0
- package/dist/cjs/locales/enUS/DynamicIconModal.d.ts +4 -0
- package/dist/cjs/locales/enUS/DynamicIconModal.js +9 -0
- package/dist/cjs/locales/enUS/EditMultiLangForm.d.ts +16 -0
- package/dist/cjs/locales/enUS/EditMultiLangForm.js +21 -0
- package/dist/cjs/locales/enUS/File.d.ts +54 -0
- package/dist/cjs/locales/enUS/File.js +60 -0
- package/dist/cjs/locales/enUS/GlobalFooter.d.ts +4 -0
- package/dist/cjs/locales/enUS/GlobalFooter.js +9 -0
- package/dist/cjs/locales/enUS/GlobalHeader.d.ts +10 -0
- package/dist/cjs/locales/enUS/GlobalHeader.js +15 -0
- package/dist/cjs/locales/enUS/MyFooterToolbar.d.ts +5 -0
- package/dist/cjs/locales/enUS/MyFooterToolbar.js +10 -0
- package/dist/cjs/locales/enUS/PermissionSelect.d.ts +4 -0
- package/dist/cjs/locales/enUS/PermissionSelect.js +9 -0
- package/dist/cjs/locales/enUS/TimeTypeSelect.d.ts +6 -0
- package/dist/cjs/locales/enUS/TimeTypeSelect.js +11 -0
- package/dist/cjs/locales/enUS/common.d.ts +74 -0
- package/dist/cjs/locales/enUS/common.js +82 -0
- package/dist/cjs/locales/enUS/index.d.ts +163 -0
- package/dist/cjs/locales/enUS/index.js +25 -0
- package/dist/cjs/locales/enUS/pages.d.ts +10 -0
- package/dist/cjs/locales/enUS/pages.js +15 -0
- package/dist/cjs/locales/th-TH.d.ts +163 -0
- package/dist/cjs/locales/th-TH.js +16 -0
- package/dist/cjs/locales/zh-CN.d.ts +163 -0
- package/dist/cjs/locales/zh-CN.js +16 -0
- package/dist/cjs/locales/zh-TW.d.ts +162 -0
- package/dist/cjs/locales/zh-TW.js +16 -0
- package/dist/cjs/locales/zhCN/ActionLogDrawer.d.ts +6 -0
- package/dist/cjs/locales/zhCN/ActionLogDrawer.js +11 -0
- package/dist/cjs/locales/zhCN/DynamicIconModal.d.ts +4 -0
- package/dist/cjs/locales/zhCN/DynamicIconModal.js +9 -0
- package/dist/cjs/locales/zhCN/EditMultiLangForm.d.ts +16 -0
- package/dist/cjs/locales/zhCN/EditMultiLangForm.js +21 -0
- package/dist/cjs/locales/zhCN/File.d.ts +54 -0
- package/dist/cjs/locales/zhCN/File.js +60 -0
- package/dist/cjs/locales/zhCN/GlobalFooter.d.ts +4 -0
- package/dist/cjs/locales/zhCN/GlobalFooter.js +9 -0
- package/dist/cjs/locales/zhCN/GlobalHeader.d.ts +10 -0
- package/dist/cjs/locales/zhCN/GlobalHeader.js +15 -0
- package/dist/cjs/locales/zhCN/MyFooterToolbar.d.ts +5 -0
- package/dist/cjs/locales/zhCN/MyFooterToolbar.js +10 -0
- package/dist/cjs/locales/zhCN/PermissionSelect.d.ts +4 -0
- package/dist/cjs/locales/zhCN/PermissionSelect.js +9 -0
- package/dist/cjs/locales/zhCN/TimeTypeSelect.d.ts +6 -0
- package/dist/cjs/locales/zhCN/TimeTypeSelect.js +11 -0
- package/dist/cjs/locales/zhCN/common.d.ts +74 -0
- package/dist/cjs/locales/zhCN/common.js +82 -0
- package/dist/cjs/locales/zhCN/index.d.ts +163 -0
- package/dist/cjs/locales/zhCN/index.js +25 -0
- package/dist/cjs/locales/zhCN/pages.d.ts +10 -0
- package/dist/cjs/locales/zhCN/pages.js +15 -0
- package/dist/cjs/locales/zhTW/ActionLogDrawer.d.ts +6 -0
- package/dist/cjs/locales/zhTW/ActionLogDrawer.js +11 -0
- package/dist/cjs/locales/zhTW/DynamicIconModal.d.ts +4 -0
- package/dist/cjs/locales/zhTW/DynamicIconModal.js +9 -0
- package/dist/cjs/locales/zhTW/EditMultiLangForm.d.ts +16 -0
- package/dist/cjs/locales/zhTW/EditMultiLangForm.js +21 -0
- package/dist/cjs/locales/zhTW/File.d.ts +53 -0
- package/dist/cjs/locales/zhTW/File.js +59 -0
- package/dist/cjs/locales/zhTW/GlobalFooter.d.ts +4 -0
- package/dist/cjs/locales/zhTW/GlobalFooter.js +9 -0
- package/dist/cjs/locales/zhTW/GlobalHeader.d.ts +10 -0
- package/dist/cjs/locales/zhTW/GlobalHeader.js +15 -0
- package/dist/cjs/locales/zhTW/MyFooterToolbar.d.ts +5 -0
- package/dist/cjs/locales/zhTW/MyFooterToolbar.js +10 -0
- package/dist/cjs/locales/zhTW/PermissionSelect.d.ts +4 -0
- package/dist/cjs/locales/zhTW/PermissionSelect.js +9 -0
- package/dist/cjs/locales/zhTW/TimeTypeSelect.d.ts +6 -0
- package/dist/cjs/locales/zhTW/TimeTypeSelect.js +11 -0
- package/dist/cjs/locales/zhTW/common.d.ts +74 -0
- package/dist/cjs/locales/zhTW/common.js +82 -0
- package/dist/cjs/locales/zhTW/index.d.ts +162 -0
- package/dist/cjs/locales/zhTW/index.js +25 -0
- package/dist/cjs/locales/zhTW/pages.d.ts +10 -0
- package/dist/cjs/locales/zhTW/pages.js +15 -0
- package/dist/cjs/services/index.tpl +160 -0
- package/dist/cjs/types/ActionLogDrawerTypes.d.ts +1 -0
- package/dist/cjs/types/ActionLogDrawerTypes.js +7 -0
- package/dist/cjs/types/AvatarDropdownTypes.d.ts +1 -0
- package/dist/cjs/types/AvatarDropdownTypes.js +7 -0
- package/dist/cjs/types/CrudTableTypes.d.ts +1 -0
- package/dist/cjs/types/CrudTableTypes.js +7 -0
- package/dist/cjs/types/DatePickerTypes.d.ts +1 -0
- package/dist/cjs/types/DatePickerTypes.js +7 -0
- package/dist/cjs/types/DicDropDownListTypes.d.ts +1 -0
- package/dist/cjs/types/DicDropDownListTypes.js +7 -0
- package/dist/cjs/types/DndTabsTypes.d.ts +1 -0
- package/dist/cjs/types/DndTabsTypes.js +7 -0
- package/dist/cjs/types/DndTagTypes.d.ts +1 -0
- package/dist/cjs/types/DndTagTypes.js +7 -0
- package/dist/cjs/types/DropdownButtonTypes.d.ts +2 -0
- package/dist/cjs/types/DropdownButtonTypes.js +8 -0
- package/dist/cjs/types/DynamicIconTypes.d.ts +1 -0
- package/dist/cjs/types/DynamicIconTypes.js +7 -0
- package/dist/cjs/types/EditMultiLangFormTypes.d.ts +1 -0
- package/dist/cjs/types/EditMultiLangFormTypes.js +7 -0
- package/dist/cjs/types/ExportPageWrapperTypes.d.ts +1 -0
- package/dist/cjs/types/ExportPageWrapperTypes.js +7 -0
- package/dist/cjs/types/GlobalHeaderTypes.d.ts +1 -0
- package/dist/cjs/types/GlobalHeaderTypes.js +7 -0
- package/dist/cjs/types/HeaderSearchTypes.d.ts +1 -0
- package/dist/cjs/types/HeaderSearchTypes.js +7 -0
- package/dist/cjs/types/HighlightStrTypes.d.ts +1 -0
- package/dist/cjs/types/HighlightStrTypes.js +7 -0
- package/dist/cjs/types/ImportDataUploadTypes.d.ts +1 -0
- package/dist/cjs/types/ImportDataUploadTypes.js +7 -0
- package/dist/cjs/types/ImportExeclTypes.d.ts +1 -0
- package/dist/cjs/types/ImportExeclTypes.js +7 -0
- package/dist/cjs/types/KeepAliveTabsTypes.d.ts +1 -0
- package/dist/cjs/types/KeepAliveTabsTypes.js +7 -0
- package/dist/cjs/types/MenuFooterTypes.d.ts +1 -0
- package/dist/cjs/types/MenuFooterTypes.js +7 -0
- package/dist/cjs/types/MyFooterToolbarTypes.d.ts +1 -0
- package/dist/cjs/types/MyFooterToolbarTypes.js +7 -0
- package/dist/cjs/types/MyPageContainerTypes.d.ts +1 -0
- package/dist/cjs/types/MyPageContainerTypes.js +7 -0
- package/dist/cjs/types/MySelectLangTypes.d.ts +1 -0
- package/dist/cjs/types/MySelectLangTypes.js +7 -0
- package/dist/cjs/types/MySelectTypes.d.ts +1 -0
- package/dist/cjs/types/MySelectTypes.js +7 -0
- package/dist/cjs/types/MySetpsTypes.d.ts +1 -0
- package/dist/cjs/types/MySetpsTypes.js +7 -0
- package/dist/cjs/types/MyTagListTypes.d.ts +1 -0
- package/dist/cjs/types/MyTagListTypes.js +7 -0
- package/dist/cjs/types/MyUploadTypes.d.ts +1 -0
- package/dist/cjs/types/MyUploadTypes.js +7 -0
- package/dist/cjs/types/PermissionSelectTypes.d.ts +1 -0
- package/dist/cjs/types/PermissionSelectTypes.js +7 -0
- package/dist/cjs/types/QrCodeModalTypes.d.ts +1 -0
- package/dist/cjs/types/QrCodeModalTypes.js +7 -0
- package/dist/cjs/types/RandomAvatarTypes.d.ts +1 -0
- package/dist/cjs/types/RandomAvatarTypes.js +7 -0
- package/dist/cjs/types/RefDrawerFormTypes.d.ts +1 -0
- package/dist/cjs/types/RefDrawerFormTypes.js +7 -0
- package/dist/cjs/types/ReportTableTypes.d.ts +1 -0
- package/dist/cjs/types/ReportTableTypes.js +7 -0
- package/dist/cjs/types/ThemeSwitchTypes.d.ts +1 -0
- package/dist/cjs/types/ThemeSwitchTypes.js +7 -0
- package/dist/cjs/types/ViewTableItemDrawerTypes.d.ts +1 -0
- package/dist/cjs/types/ViewTableItemDrawerTypes.js +7 -0
- package/dist/cjs/types/VolumeFormItemTypes.d.ts +1 -0
- package/dist/cjs/types/VolumeFormItemTypes.js +7 -0
- package/dist/cjs/types/WangEditorTypes.d.ts +1 -0
- package/dist/cjs/types/WangEditorTypes.js +7 -0
- package/dist/cjs/types/index.d.ts +35 -0
- package/dist/cjs/types/index.js +250 -0
- package/dist/cjs/types/servicesTypes.d.ts +1 -0
- package/dist/cjs/types/servicesTypes.js +7 -0
- package/dist/cjs/utils/Authorized.tpl +17 -0
- package/dist/cjs/utils/authority.tpl +51 -0
- package/dist/cjs/utils/authorityFunction.tpl +17 -0
- package/dist/cjs/utils/excelHelper.tpl +825 -0
- package/dist/cjs/utils/exportPage.tpl +784 -0
- package/dist/cjs/utils/fileHelper.tpl +251 -0
- package/dist/cjs/utils/importHelper.tpl +283 -0
- package/dist/cjs/utils/utils.tpl +26 -0
- package/dist/cjs/utils/xmlRequest.tpl +92 -0
- package/dist/cjs/writeTmpFile/index.d.ts +5 -0
- package/dist/cjs/writeTmpFile/index.js +34 -0
- package/dist/cjs/writeTmpFile/runtime.d.ts +5 -0
- package/dist/cjs/writeTmpFile/runtime.js +15 -0
- package/dist/cjs/writeTmpFile/writeConstants.d.ts +6 -0
- package/dist/cjs/writeTmpFile/writeConstants.js +13 -0
- package/dist/cjs/writeTmpFile/writeIndex.d.ts +5 -0
- package/dist/cjs/writeTmpFile/writeIndex.js +10 -0
- package/dist/cjs/writeTmpFile/writeTypes.d.ts +5 -0
- package/dist/cjs/writeTmpFile/writeTypes.js +12 -0
- package/dist/esm/components/ActionLogDrawer.tpl +148 -0
- package/dist/esm/components/AddDrawerForm.tpl +38 -0
- package/dist/esm/components/AuthorizeRender.tpl +11 -0
- package/dist/esm/components/Authorized.tpl +39 -0
- package/dist/esm/components/AuthorizedRoute.tpl +33 -0
- package/dist/esm/components/AvatarDropdown.tpl +101 -0
- package/dist/esm/components/CheckPermissions.tpl +100 -0
- package/dist/esm/components/CopyButton.tpl +49 -0
- package/dist/esm/components/CrudTable.tpl +650 -0
- package/dist/esm/components/DicDropDownList.tpl +60 -0
- package/dist/esm/components/DndTabs.tpl +159 -0
- package/dist/esm/components/DndTag.tpl +89 -0
- package/dist/esm/components/DropdownButton.tpl +123 -0
- package/dist/esm/components/DynamicIcon.tpl +73 -0
- package/dist/esm/components/DynamicIconModal.tpl +196 -0
- package/dist/esm/components/EditMultiLangForm.tpl +366 -0
- package/dist/esm/components/ExportPageWrapper.tpl +224 -0
- package/dist/esm/components/FlieListModal.tpl +79 -0
- package/dist/esm/components/FormUpload.tpl +561 -0
- package/dist/esm/components/GlobalFooter.tpl +21 -0
- package/dist/esm/components/GlobalHeader.less +51 -0
- package/dist/esm/components/GlobalHeader.tpl +313 -0
- package/dist/esm/components/HeaderSearch.less +32 -0
- package/dist/esm/components/HeaderSearch.tpl +92 -0
- package/dist/esm/components/HighlightStr.tpl +41 -0
- package/dist/esm/components/ImportDataUpload.tpl +94 -0
- package/dist/esm/components/ImportExecl.less +10 -0
- package/dist/esm/components/ImportExecl.tpl +108 -0
- package/dist/esm/components/KeepAliveDndTabs.tpl +151 -0
- package/dist/esm/components/KeepAliveTabs.less +23 -0
- package/dist/esm/components/KeepAliveTabs.tpl +136 -0
- package/dist/esm/components/Loading.css +19 -0
- package/dist/esm/components/LoadingSvg.tpl +14 -0
- package/dist/esm/components/MenuFooter.css +13 -0
- package/dist/esm/components/MenuFooter.tpl +24 -0
- package/dist/esm/components/MyColorPicker.tpl +19 -0
- package/dist/esm/components/MyFooterToolbar.css +6 -0
- package/dist/esm/components/MyFooterToolbar.tpl +56 -0
- package/dist/esm/components/MyPageContainer.tpl +43 -0
- package/dist/esm/components/MyReactEcharts.tpl +11 -0
- package/dist/esm/components/MySelect.tpl +267 -0
- package/dist/esm/components/MySelectLang.tpl +22 -0
- package/dist/esm/components/MySetps.tpl +85 -0
- package/dist/esm/components/MyTagList.tpl +57 -0
- package/dist/esm/components/MyUpload.less +39 -0
- package/dist/esm/components/MyUpload.tpl +609 -0
- package/dist/esm/components/NoFoundPage.tpl +46 -0
- package/dist/esm/components/PDFWrapper.tpl +96 -0
- package/dist/esm/components/PageLoading.tpl +16 -0
- package/dist/esm/components/PermissionSelect.tpl +230 -0
- package/dist/esm/components/ProFormUTCDatePicker.tpl +20 -0
- package/dist/esm/components/ProFormUTCRangePicker.tpl +20 -0
- package/dist/esm/components/PromiseRender.tpl +93 -0
- package/dist/esm/components/QrCodeModal.tpl +19 -0
- package/dist/esm/components/RandomAvatar.tpl +34 -0
- package/dist/esm/components/RefDrawerForm.tpl +75 -0
- package/dist/esm/components/ReportTable.tpl +336 -0
- package/dist/esm/components/Secured.tpl +66 -0
- package/dist/esm/components/ThemeSwitch.tpl +74 -0
- package/dist/esm/components/TimeTypeSelect.tpl +35 -0
- package/dist/esm/components/TipsTableTitle.tpl +37 -0
- package/dist/esm/components/UTCDatePicker.tpl +107 -0
- package/dist/esm/components/UTCRangePicker.tpl +142 -0
- package/dist/esm/components/UpdateForm.tpl +32 -0
- package/dist/esm/components/UserDisable.tpl +58 -0
- package/dist/esm/components/UserNoPagePermission.tpl +58 -0
- package/dist/esm/components/UserNoPermission.tpl +58 -0
- package/dist/esm/components/ViewTableItemDrawer.tpl +29 -0
- package/dist/esm/components/VolumeFormItem.tpl +59 -0
- package/dist/esm/components/WangEditor.css +53 -0
- package/dist/esm/components/WangEditor.tpl +174 -0
- package/dist/esm/components/WangEditorView.tpl +24 -0
- package/dist/esm/components/fileTypeMap.tpl +96 -0
- package/dist/esm/components/renderAuthorize.tpl +44 -0
- package/dist/esm/context/KeepAliveTabs.tpl +13 -0
- package/dist/esm/context/index.tpl +1 -0
- package/dist/esm/hooks/useAction.tpl +126 -0
- package/dist/esm/hooks/useActionLocales.tpl +108 -0
- package/dist/esm/hooks/useAuthority.tpl +27 -0
- package/dist/esm/hooks/useColumnTitle.tpl +47 -0
- package/dist/esm/hooks/useFormatLocale.tpl +82 -0
- package/dist/esm/hooks/useKeepAliveTabs.tpl +255 -0
- package/dist/esm/hooks/useMatchRoute.tpl +76 -0
- package/dist/esm/hooks/useMemoizedFn.tpl +32 -0
- package/dist/esm/hooks/useOutlet.tpl +20 -0
- package/dist/esm/hooks/usePageExport.tpl +155 -0
- package/dist/esm/hooks/useQueryTableList.tpl +91 -0
- package/dist/esm/hooks/useRouteAuth.tpl +122 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +115 -0
- package/dist/esm/locales/en-US.d.ts +163 -0
- package/dist/esm/locales/en-US.js +9 -0
- package/dist/esm/locales/enUS/ActionLogDrawer.d.ts +6 -0
- package/dist/esm/locales/enUS/ActionLogDrawer.js +5 -0
- package/dist/esm/locales/enUS/DynamicIconModal.d.ts +4 -0
- package/dist/esm/locales/enUS/DynamicIconModal.js +3 -0
- package/dist/esm/locales/enUS/EditMultiLangForm.d.ts +16 -0
- package/dist/esm/locales/enUS/EditMultiLangForm.js +15 -0
- package/dist/esm/locales/enUS/File.d.ts +54 -0
- package/dist/esm/locales/enUS/File.js +54 -0
- package/dist/esm/locales/enUS/GlobalFooter.d.ts +4 -0
- package/dist/esm/locales/enUS/GlobalFooter.js +3 -0
- package/dist/esm/locales/enUS/GlobalHeader.d.ts +10 -0
- package/dist/esm/locales/enUS/GlobalHeader.js +9 -0
- package/dist/esm/locales/enUS/MyFooterToolbar.d.ts +5 -0
- package/dist/esm/locales/enUS/MyFooterToolbar.js +4 -0
- package/dist/esm/locales/enUS/PermissionSelect.d.ts +4 -0
- package/dist/esm/locales/enUS/PermissionSelect.js +3 -0
- package/dist/esm/locales/enUS/TimeTypeSelect.d.ts +6 -0
- package/dist/esm/locales/enUS/TimeTypeSelect.js +5 -0
- package/dist/esm/locales/enUS/common.d.ts +74 -0
- package/dist/esm/locales/enUS/common.js +76 -0
- package/dist/esm/locales/enUS/index.d.ts +163 -0
- package/dist/esm/locales/enUS/index.js +18 -0
- package/dist/esm/locales/enUS/pages.d.ts +10 -0
- package/dist/esm/locales/enUS/pages.js +9 -0
- package/dist/esm/locales/th-TH.d.ts +163 -0
- package/dist/esm/locales/th-TH.js +9 -0
- package/dist/esm/locales/zh-CN.d.ts +163 -0
- package/dist/esm/locales/zh-CN.js +9 -0
- package/dist/esm/locales/zh-TW.d.ts +162 -0
- package/dist/esm/locales/zh-TW.js +9 -0
- package/dist/esm/locales/zhCN/ActionLogDrawer.d.ts +6 -0
- package/dist/esm/locales/zhCN/ActionLogDrawer.js +5 -0
- package/dist/esm/locales/zhCN/DynamicIconModal.d.ts +4 -0
- package/dist/esm/locales/zhCN/DynamicIconModal.js +3 -0
- package/dist/esm/locales/zhCN/EditMultiLangForm.d.ts +16 -0
- package/dist/esm/locales/zhCN/EditMultiLangForm.js +15 -0
- package/dist/esm/locales/zhCN/File.d.ts +54 -0
- package/dist/esm/locales/zhCN/File.js +54 -0
- package/dist/esm/locales/zhCN/GlobalFooter.d.ts +4 -0
- package/dist/esm/locales/zhCN/GlobalFooter.js +3 -0
- package/dist/esm/locales/zhCN/GlobalHeader.d.ts +10 -0
- package/dist/esm/locales/zhCN/GlobalHeader.js +9 -0
- package/dist/esm/locales/zhCN/MyFooterToolbar.d.ts +5 -0
- package/dist/esm/locales/zhCN/MyFooterToolbar.js +4 -0
- package/dist/esm/locales/zhCN/PermissionSelect.d.ts +4 -0
- package/dist/esm/locales/zhCN/PermissionSelect.js +3 -0
- package/dist/esm/locales/zhCN/TimeTypeSelect.d.ts +6 -0
- package/dist/esm/locales/zhCN/TimeTypeSelect.js +5 -0
- package/dist/esm/locales/zhCN/common.d.ts +74 -0
- package/dist/esm/locales/zhCN/common.js +76 -0
- package/dist/esm/locales/zhCN/index.d.ts +163 -0
- package/dist/esm/locales/zhCN/index.js +18 -0
- package/dist/esm/locales/zhCN/pages.d.ts +10 -0
- package/dist/esm/locales/zhCN/pages.js +9 -0
- package/dist/esm/locales/zhTW/ActionLogDrawer.d.ts +6 -0
- package/dist/esm/locales/zhTW/ActionLogDrawer.js +5 -0
- package/dist/esm/locales/zhTW/DynamicIconModal.d.ts +4 -0
- package/dist/esm/locales/zhTW/DynamicIconModal.js +3 -0
- package/dist/esm/locales/zhTW/EditMultiLangForm.d.ts +16 -0
- package/dist/esm/locales/zhTW/EditMultiLangForm.js +15 -0
- package/dist/esm/locales/zhTW/File.d.ts +53 -0
- package/dist/esm/locales/zhTW/File.js +53 -0
- package/dist/esm/locales/zhTW/GlobalFooter.d.ts +4 -0
- package/dist/esm/locales/zhTW/GlobalFooter.js +3 -0
- package/dist/esm/locales/zhTW/GlobalHeader.d.ts +10 -0
- package/dist/esm/locales/zhTW/GlobalHeader.js +9 -0
- package/dist/esm/locales/zhTW/MyFooterToolbar.d.ts +5 -0
- package/dist/esm/locales/zhTW/MyFooterToolbar.js +4 -0
- package/dist/esm/locales/zhTW/PermissionSelect.d.ts +4 -0
- package/dist/esm/locales/zhTW/PermissionSelect.js +3 -0
- package/dist/esm/locales/zhTW/TimeTypeSelect.d.ts +6 -0
- package/dist/esm/locales/zhTW/TimeTypeSelect.js +5 -0
- package/dist/esm/locales/zhTW/common.d.ts +74 -0
- package/dist/esm/locales/zhTW/common.js +76 -0
- package/dist/esm/locales/zhTW/index.d.ts +162 -0
- package/dist/esm/locales/zhTW/index.js +18 -0
- package/dist/esm/locales/zhTW/pages.d.ts +10 -0
- package/dist/esm/locales/zhTW/pages.js +9 -0
- package/dist/esm/services/index.tpl +160 -0
- package/dist/esm/types/ActionLogDrawerTypes.d.ts +1 -0
- package/dist/esm/types/ActionLogDrawerTypes.js +1 -0
- package/dist/esm/types/AvatarDropdownTypes.d.ts +1 -0
- package/dist/esm/types/AvatarDropdownTypes.js +1 -0
- package/dist/esm/types/CrudTableTypes.d.ts +1 -0
- package/dist/esm/types/CrudTableTypes.js +1 -0
- package/dist/esm/types/DatePickerTypes.d.ts +1 -0
- package/dist/esm/types/DatePickerTypes.js +1 -0
- package/dist/esm/types/DicDropDownListTypes.d.ts +1 -0
- package/dist/esm/types/DicDropDownListTypes.js +1 -0
- package/dist/esm/types/DndTabsTypes.d.ts +1 -0
- package/dist/esm/types/DndTabsTypes.js +1 -0
- package/dist/esm/types/DndTagTypes.d.ts +1 -0
- package/dist/esm/types/DndTagTypes.js +1 -0
- package/dist/esm/types/DropdownButtonTypes.d.ts +2 -0
- package/dist/esm/types/DropdownButtonTypes.js +2 -0
- package/dist/esm/types/DynamicIconTypes.d.ts +1 -0
- package/dist/esm/types/DynamicIconTypes.js +1 -0
- package/dist/esm/types/EditMultiLangFormTypes.d.ts +1 -0
- package/dist/esm/types/EditMultiLangFormTypes.js +1 -0
- package/dist/esm/types/ExportPageWrapperTypes.d.ts +1 -0
- package/dist/esm/types/ExportPageWrapperTypes.js +1 -0
- package/dist/esm/types/GlobalHeaderTypes.d.ts +1 -0
- package/dist/esm/types/GlobalHeaderTypes.js +1 -0
- package/dist/esm/types/HeaderSearchTypes.d.ts +1 -0
- package/dist/esm/types/HeaderSearchTypes.js +1 -0
- package/dist/esm/types/HighlightStrTypes.d.ts +1 -0
- package/dist/esm/types/HighlightStrTypes.js +1 -0
- package/dist/esm/types/ImportDataUploadTypes.d.ts +1 -0
- package/dist/esm/types/ImportDataUploadTypes.js +1 -0
- package/dist/esm/types/ImportExeclTypes.d.ts +1 -0
- package/dist/esm/types/ImportExeclTypes.js +1 -0
- package/dist/esm/types/KeepAliveTabsTypes.d.ts +1 -0
- package/dist/esm/types/KeepAliveTabsTypes.js +1 -0
- package/dist/esm/types/MenuFooterTypes.d.ts +1 -0
- package/dist/esm/types/MenuFooterTypes.js +1 -0
- package/dist/esm/types/MyFooterToolbarTypes.d.ts +1 -0
- package/dist/esm/types/MyFooterToolbarTypes.js +1 -0
- package/dist/esm/types/MyPageContainerTypes.d.ts +1 -0
- package/dist/esm/types/MyPageContainerTypes.js +1 -0
- package/dist/esm/types/MySelectLangTypes.d.ts +1 -0
- package/dist/esm/types/MySelectLangTypes.js +1 -0
- package/dist/esm/types/MySelectTypes.d.ts +1 -0
- package/dist/esm/types/MySelectTypes.js +1 -0
- package/dist/esm/types/MySetpsTypes.d.ts +1 -0
- package/dist/esm/types/MySetpsTypes.js +1 -0
- package/dist/esm/types/MyTagListTypes.d.ts +1 -0
- package/dist/esm/types/MyTagListTypes.js +1 -0
- package/dist/esm/types/MyUploadTypes.d.ts +1 -0
- package/dist/esm/types/MyUploadTypes.js +1 -0
- package/dist/esm/types/PermissionSelectTypes.d.ts +1 -0
- package/dist/esm/types/PermissionSelectTypes.js +1 -0
- package/dist/esm/types/QrCodeModalTypes.d.ts +1 -0
- package/dist/esm/types/QrCodeModalTypes.js +1 -0
- package/dist/esm/types/RandomAvatarTypes.d.ts +1 -0
- package/dist/esm/types/RandomAvatarTypes.js +1 -0
- package/dist/esm/types/RefDrawerFormTypes.d.ts +1 -0
- package/dist/esm/types/RefDrawerFormTypes.js +1 -0
- package/dist/esm/types/ReportTableTypes.d.ts +1 -0
- package/dist/esm/types/ReportTableTypes.js +1 -0
- package/dist/esm/types/ThemeSwitchTypes.d.ts +1 -0
- package/dist/esm/types/ThemeSwitchTypes.js +1 -0
- package/dist/esm/types/ViewTableItemDrawerTypes.d.ts +1 -0
- package/dist/esm/types/ViewTableItemDrawerTypes.js +1 -0
- package/dist/esm/types/VolumeFormItemTypes.d.ts +1 -0
- package/dist/esm/types/VolumeFormItemTypes.js +1 -0
- package/dist/esm/types/WangEditorTypes.d.ts +1 -0
- package/dist/esm/types/WangEditorTypes.js +1 -0
- package/dist/esm/types/index.d.ts +35 -0
- package/dist/esm/types/index.js +35 -0
- package/dist/esm/types/servicesTypes.d.ts +1 -0
- package/dist/esm/types/servicesTypes.js +1 -0
- package/dist/esm/utils/Authorized.tpl +17 -0
- package/dist/esm/utils/authority.tpl +51 -0
- package/dist/esm/utils/authorityFunction.tpl +17 -0
- package/dist/esm/utils/excelHelper.tpl +825 -0
- package/dist/esm/utils/exportPage.tpl +784 -0
- package/dist/esm/utils/fileHelper.tpl +251 -0
- package/dist/esm/utils/importHelper.tpl +283 -0
- package/dist/esm/utils/utils.tpl +26 -0
- package/dist/esm/utils/xmlRequest.tpl +92 -0
- package/dist/esm/writeTmpFile/index.d.ts +5 -0
- package/dist/esm/writeTmpFile/index.js +5 -0
- package/dist/esm/writeTmpFile/runtime.d.ts +5 -0
- package/dist/esm/writeTmpFile/runtime.js +8 -0
- package/dist/esm/writeTmpFile/writeConstants.d.ts +6 -0
- package/dist/esm/writeTmpFile/writeConstants.js +7 -0
- package/dist/esm/writeTmpFile/writeIndex.d.ts +5 -0
- package/dist/esm/writeTmpFile/writeIndex.js +4 -0
- package/dist/esm/writeTmpFile/writeTypes.d.ts +5 -0
- package/dist/esm/writeTmpFile/writeTypes.js +7 -0
- package/package.json +58 -0
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @cfmm/umi-plugins-ui-v2
|
|
2
|
+
|
|
3
|
+
A umi plugin
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm i @cfmm/umi-plugins-ui-v2
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
Configure in `.umirc.ts`,
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
export default {
|
|
17
|
+
plugins: [
|
|
18
|
+
['@cfmm/umi-plugins-ui-v2'],
|
|
19
|
+
],
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
TODO
|
|
26
|
+
|
|
27
|
+
## LICENSE
|
|
28
|
+
|
|
29
|
+
MIT
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import useAction from '../hooks/useAction';
|
|
2
|
+
import useFormatLocale from '../hooks/useFormatLocale';
|
|
3
|
+
import { useIntl } from '@umijs/max';
|
|
4
|
+
import { useMemoizedFn } from 'ahooks';
|
|
5
|
+
import { Descriptions, Drawer } from 'antd';
|
|
6
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
7
|
+
import { queryEmployeeByCodes } from '../services';
|
|
8
|
+
import { ActionLogDrawerBaseRecordType, ActionLogDrawerProps } from '../types';
|
|
9
|
+
|
|
10
|
+
const ActionLogDrawer = <T extends ActionLogDrawerBaseRecordType>(props: ActionLogDrawerProps<T>) => {
|
|
11
|
+
const { row, createBy, createTime, updateBy, updateTime, ...drawerProps } = props;
|
|
12
|
+
const { formatMessage } = useIntl();
|
|
13
|
+
const { getLocalDate } = useFormatLocale();
|
|
14
|
+
const [employeeList, setEmployeeList] = useState<{ userCode: string; userName: string }[]>([]);
|
|
15
|
+
|
|
16
|
+
// 封装增删查改的hooks
|
|
17
|
+
const { doAction, loading: actionLoading } = useAction();
|
|
18
|
+
|
|
19
|
+
const createByCode = useMemo(() => {
|
|
20
|
+
return createBy ?? row?.createBy;
|
|
21
|
+
}, [row, createBy]);
|
|
22
|
+
|
|
23
|
+
const updateByCode = useMemo(() => {
|
|
24
|
+
return updateBy ?? row?.updateBy;
|
|
25
|
+
}, [row, updateBy]);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* 处理时间格式
|
|
29
|
+
*/
|
|
30
|
+
const getFormatTime = useMemoizedFn((time1?: string, time2?: string) => {
|
|
31
|
+
if (!time1 && !time2) return '-';
|
|
32
|
+
|
|
33
|
+
const time = time1 ?? time2;
|
|
34
|
+
|
|
35
|
+
return getLocalDate(time, { dateFormat: true, timeFormat: true });
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 根据编号,获取名称
|
|
40
|
+
*/
|
|
41
|
+
const getNameByCode = useMemoizedFn((code) => {
|
|
42
|
+
if(!code) return '-'
|
|
43
|
+
|
|
44
|
+
const employee = employeeList.find((item) => item.userCode === code);
|
|
45
|
+
return employee ? `${employee.userName}(${employee.userCode})` : code;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 根据员工编号list查询员工list
|
|
50
|
+
*/
|
|
51
|
+
const requestEmployeeByCode = async (userCodes: string[]) => {
|
|
52
|
+
if (actionLoading || !userCodes.length) return;
|
|
53
|
+
|
|
54
|
+
const { success, data } = await doAction('POST', { userCodes }, { actionFn: queryEmployeeByCodes, showMsg: false });
|
|
55
|
+
|
|
56
|
+
if (success && data) {
|
|
57
|
+
setEmployeeList(data);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
const codes = [createByCode, updateByCode].filter(Boolean) as string[];
|
|
63
|
+
requestEmployeeByCode(codes);
|
|
64
|
+
}, [createByCode, updateByCode]);
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<Drawer
|
|
68
|
+
width={500}
|
|
69
|
+
title={formatMessage({
|
|
70
|
+
id: 'cfmmUI.ActionLogDrawer.title',
|
|
71
|
+
defaultMessage: '操作记录',
|
|
72
|
+
})}
|
|
73
|
+
open={!!row}
|
|
74
|
+
closable={false}
|
|
75
|
+
{...drawerProps}
|
|
76
|
+
onClose={(e) => {
|
|
77
|
+
props.onClose?.(e);
|
|
78
|
+
setEmployeeList([]);
|
|
79
|
+
}}
|
|
80
|
+
>
|
|
81
|
+
<>
|
|
82
|
+
{props.children ? (
|
|
83
|
+
props.children
|
|
84
|
+
) : (
|
|
85
|
+
<>
|
|
86
|
+
<Descriptions
|
|
87
|
+
title={formatMessage({
|
|
88
|
+
id: 'cfmmUI.ActionLogDrawer.add',
|
|
89
|
+
defaultMessage: '新增',
|
|
90
|
+
})}
|
|
91
|
+
column={1}
|
|
92
|
+
>
|
|
93
|
+
<Descriptions.Item
|
|
94
|
+
label={formatMessage({
|
|
95
|
+
id: 'cfmmUI.common.createBy',
|
|
96
|
+
defaultMessage: '创建人',
|
|
97
|
+
})}
|
|
98
|
+
>
|
|
99
|
+
{getNameByCode(createByCode)}
|
|
100
|
+
</Descriptions.Item>
|
|
101
|
+
<Descriptions.Item
|
|
102
|
+
label={formatMessage({
|
|
103
|
+
id: 'cfmmUI.common.createTime',
|
|
104
|
+
defaultMessage: '创建时间',
|
|
105
|
+
})}
|
|
106
|
+
>
|
|
107
|
+
{getFormatTime(createTime, row?.createTime)}
|
|
108
|
+
</Descriptions.Item>
|
|
109
|
+
</Descriptions>
|
|
110
|
+
|
|
111
|
+
<Descriptions
|
|
112
|
+
title={formatMessage({
|
|
113
|
+
id: 'cfmmUI.ActionLogDrawer.update',
|
|
114
|
+
defaultMessage: '修改',
|
|
115
|
+
})}
|
|
116
|
+
column={1}
|
|
117
|
+
style={{ marginBlockStart: 30 }}
|
|
118
|
+
>
|
|
119
|
+
<Descriptions.Item
|
|
120
|
+
label={formatMessage({
|
|
121
|
+
id: 'cfmmUI.common.lastUpdateBy',
|
|
122
|
+
defaultMessage: '最后修改人员',
|
|
123
|
+
})}
|
|
124
|
+
>
|
|
125
|
+
{getNameByCode(updateByCode)}
|
|
126
|
+
</Descriptions.Item>
|
|
127
|
+
<Descriptions.Item
|
|
128
|
+
label={formatMessage({
|
|
129
|
+
id: 'cfmmUI.common.lastUpdateTime',
|
|
130
|
+
defaultMessage: '最后修改时间',
|
|
131
|
+
})}
|
|
132
|
+
>
|
|
133
|
+
{getFormatTime(updateTime, row?.updateTime)}
|
|
134
|
+
</Descriptions.Item>
|
|
135
|
+
</Descriptions>
|
|
136
|
+
</>
|
|
137
|
+
)}
|
|
138
|
+
</>
|
|
139
|
+
</Drawer>
|
|
140
|
+
);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* 列表操作记录弹窗,如果不是传入row,请使用open属性打开弹窗
|
|
145
|
+
*/
|
|
146
|
+
export default React.memo(ActionLogDrawer) as <T extends ActionLogDrawerBaseRecordType = any>(
|
|
147
|
+
props: ActionLogDrawerProps<T>,
|
|
148
|
+
) => JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Drawer, DrawerProps } from 'antd';
|
|
2
|
+
import { memo, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
interface CreateFormProps<T> extends DrawerProps {
|
|
5
|
+
onOpenChange: (visible: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 通用列表新增弹窗
|
|
10
|
+
* @param {CreateFormProps} props
|
|
11
|
+
* @children children
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function CreateForm<T>(props: CreateFormProps<T>) {
|
|
15
|
+
const { onOpenChange, ...reset } = props;
|
|
16
|
+
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (props.open) {
|
|
19
|
+
onOpenChange(true);
|
|
20
|
+
}
|
|
21
|
+
}, [props.open]);
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<Drawer
|
|
25
|
+
width={500}
|
|
26
|
+
destroyOnHidden
|
|
27
|
+
{...reset}
|
|
28
|
+
onClose={(e) => {
|
|
29
|
+
props.onClose?.(e);
|
|
30
|
+
onOpenChange(false);
|
|
31
|
+
}}
|
|
32
|
+
>
|
|
33
|
+
{props.children}
|
|
34
|
+
</Drawer>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default memo(CreateForm) as <T>(props: CreateFormProps<T>) => JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Authorized from './Authorized';
|
|
2
|
+
import Secured from './Secured';
|
|
3
|
+
import check from './CheckPermissions';
|
|
4
|
+
import renderAuthorize from './renderAuthorize';
|
|
5
|
+
|
|
6
|
+
Authorized.Secured = Secured;
|
|
7
|
+
Authorized.check = check;
|
|
8
|
+
|
|
9
|
+
const RenderAuthorize = renderAuthorize(Authorized);
|
|
10
|
+
|
|
11
|
+
export default RenderAuthorize;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Result } from 'antd';
|
|
3
|
+
import check, { IAuthorityType } from './CheckPermissions';
|
|
4
|
+
|
|
5
|
+
import AuthorizedRoute from './AuthorizedRoute';
|
|
6
|
+
import Secured from './Secured';
|
|
7
|
+
|
|
8
|
+
interface AuthorizedProps {
|
|
9
|
+
authority: IAuthorityType;
|
|
10
|
+
noMatch?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type IAuthorizedType = React.FunctionComponent<AuthorizedProps> & {
|
|
14
|
+
Secured: typeof Secured;
|
|
15
|
+
check: typeof check;
|
|
16
|
+
AuthorizedRoute: typeof AuthorizedRoute;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 权限组件
|
|
21
|
+
* @param param0
|
|
22
|
+
*/
|
|
23
|
+
const Authorized: React.FunctionComponent<AuthorizedProps> = ({
|
|
24
|
+
children,
|
|
25
|
+
authority,
|
|
26
|
+
noMatch = (
|
|
27
|
+
<Result
|
|
28
|
+
status="403"
|
|
29
|
+
title="403"
|
|
30
|
+
subTitle="Sorry, you are not authorized to access this page."
|
|
31
|
+
/>
|
|
32
|
+
),
|
|
33
|
+
}) => {
|
|
34
|
+
const childrenRender: React.ReactNode = typeof children === 'undefined' ? null : children;
|
|
35
|
+
const dom = check(authority, childrenRender, noMatch);
|
|
36
|
+
return <>{dom}</>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export default Authorized as IAuthorizedType;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Redirect, Route } from 'umi';
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Authorized from './Authorized';
|
|
5
|
+
import { IAuthorityType } from './CheckPermissions';
|
|
6
|
+
|
|
7
|
+
interface AuthorizedRouteProps {
|
|
8
|
+
currentAuthority: string;
|
|
9
|
+
component: React.ComponentClass<any, any>;
|
|
10
|
+
render: (props: any) => React.ReactNode;
|
|
11
|
+
redirectPath: string;
|
|
12
|
+
authority: IAuthorityType;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const AuthorizedRoute: React.SFC<AuthorizedRouteProps> = ({
|
|
16
|
+
component: Component,
|
|
17
|
+
render,
|
|
18
|
+
authority,
|
|
19
|
+
redirectPath,
|
|
20
|
+
...rest
|
|
21
|
+
}) => (
|
|
22
|
+
<Authorized
|
|
23
|
+
authority={authority}
|
|
24
|
+
noMatch={<Route {...rest} render={() => <Redirect to={{ pathname: redirectPath }} />} />}
|
|
25
|
+
>
|
|
26
|
+
<Route
|
|
27
|
+
{...rest}
|
|
28
|
+
render={(props: any) => (Component ? <Component {...props} /> : render(props))}
|
|
29
|
+
/>
|
|
30
|
+
</Authorized>
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
export default AuthorizedRoute;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { LogoutOutlined, SafetyOutlined, SettingOutlined } from "@ant-design/icons";
|
|
2
|
+
import RandomAvatar from "./RandomAvatar";
|
|
3
|
+
import { history, useIntl, useModel } from "@umijs/max";
|
|
4
|
+
import { Avatar, Dropdown, MenuProps, Spin } from "antd";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { AvatarDropdownProps } from "../types";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 主应用头部个人设置组件
|
|
10
|
+
* @param accountSettingsPath
|
|
11
|
+
* @param safeCenterUrl
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
const AvatarDropdown: React.FC<AvatarDropdownProps> = (props) => {
|
|
15
|
+
const {
|
|
16
|
+
accountSettingsPath = "/system/accountandsettings",
|
|
17
|
+
safeCenterUrl,
|
|
18
|
+
...attr
|
|
19
|
+
} = props;
|
|
20
|
+
|
|
21
|
+
const { currentUser } = useModel("user");
|
|
22
|
+
const { logout } = useModel("login");
|
|
23
|
+
const { formatMessage } = useIntl();
|
|
24
|
+
|
|
25
|
+
//菜单下拉框,与菜单事件对应
|
|
26
|
+
const items: MenuProps["items"] = [
|
|
27
|
+
{
|
|
28
|
+
label: formatMessage({
|
|
29
|
+
id: "cfmmUI.GlobalHeader.Dropdown.PersonalSettings",
|
|
30
|
+
defaultMessage: "个人设置",
|
|
31
|
+
}),
|
|
32
|
+
key: "accountandsettings",
|
|
33
|
+
icon: <SettingOutlined />,
|
|
34
|
+
onClick: () => {
|
|
35
|
+
history.push(accountSettingsPath);
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: "divider",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
label: formatMessage({
|
|
43
|
+
id: "cfmmUI.GlobalHeader.Dropdown.safeCenter",
|
|
44
|
+
defaultMessage: "安全中心",
|
|
45
|
+
}),
|
|
46
|
+
key: "safeCenter",
|
|
47
|
+
icon: <SafetyOutlined />,
|
|
48
|
+
onClick: () => {
|
|
49
|
+
try {
|
|
50
|
+
const url = safeCenterUrl ?? `${KEYCLOAK_URL}realms/${KEYCLOAK_REALM_NAME}/account/account-security/signing-in`;
|
|
51
|
+
window.open(url, "_blank");
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.log("error", error);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: "divider",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: formatMessage({
|
|
62
|
+
id: "cfmmUI.GlobalHeader.Dropdown.LogOut",
|
|
63
|
+
defaultMessage: "退出登录",
|
|
64
|
+
}),
|
|
65
|
+
key: "logout",
|
|
66
|
+
icon: <LogoutOutlined />,
|
|
67
|
+
onClick: () => {
|
|
68
|
+
logout();
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
//获取当前用户,进行相应的处理
|
|
74
|
+
//当前用户存在,则显示成正常的样式,如果不存在则显示成Loading状态
|
|
75
|
+
return currentUser ? (
|
|
76
|
+
<Dropdown menu={{ items }}>
|
|
77
|
+
<span {...attr}>
|
|
78
|
+
<Avatar
|
|
79
|
+
size="small"
|
|
80
|
+
style={{ marginRight: 8 }}
|
|
81
|
+
icon={<RandomAvatar avatarCode={currentUser.userCode} width={24} />}
|
|
82
|
+
/>
|
|
83
|
+
<span>{`${currentUser ? currentUser.userCode : "-"}(${
|
|
84
|
+
currentUser.userName ? currentUser.userName : "-"
|
|
85
|
+
})`}</span>
|
|
86
|
+
</span>
|
|
87
|
+
</Dropdown>
|
|
88
|
+
) : (
|
|
89
|
+
<span>
|
|
90
|
+
<Spin
|
|
91
|
+
size="small"
|
|
92
|
+
style={{
|
|
93
|
+
marginLeft: 8,
|
|
94
|
+
marginRight: 8,
|
|
95
|
+
}}
|
|
96
|
+
/>
|
|
97
|
+
</span>
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export default React.memo(AvatarDropdown);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CURRENT } from './renderAuthorize';
|
|
3
|
+
//*eslint-disable-next-line import/no-cycle*/
|
|
4
|
+
import PromiseRender from './PromiseRender';
|
|
5
|
+
|
|
6
|
+
export type IAuthorityType =
|
|
7
|
+
| undefined
|
|
8
|
+
| string
|
|
9
|
+
| string[]
|
|
10
|
+
| Promise<boolean>
|
|
11
|
+
| ((currentAuthority: string | string[]) => IAuthorityType);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 通用权限检查方法
|
|
15
|
+
* 该方法可以判断菜单中需要的权限组,及当前用户登陆后获取的用户组进行对比
|
|
16
|
+
*
|
|
17
|
+
*
|
|
18
|
+
* Common check permissions method
|
|
19
|
+
* @param { 权限判定 | Permission judgment } authority
|
|
20
|
+
* @param { 你的权限 | Your permission description } currentAuthority
|
|
21
|
+
* @param { 通过的组件 | Passing components } target
|
|
22
|
+
* @param { 未通过的组件 | no pass components } Exception
|
|
23
|
+
*/
|
|
24
|
+
const checkPermissions = <T, K>(
|
|
25
|
+
authority: IAuthorityType,
|
|
26
|
+
currentAuthority: string | string[],
|
|
27
|
+
target: T,
|
|
28
|
+
Exception: K,
|
|
29
|
+
): T | K | React.ReactNode => {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 查看每个菜单的要求授权组别,及当前用户权限组
|
|
33
|
+
*/
|
|
34
|
+
// console.log(`get authority(要求授权组别)==>${authority} currentAuthority(当前用户权限组)==>${currentAuthority}`)
|
|
35
|
+
|
|
36
|
+
// 没有判定权限.默认查看所有
|
|
37
|
+
// Retirement authority, return target;
|
|
38
|
+
if (!authority) {
|
|
39
|
+
return target;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// 数组处理
|
|
44
|
+
if (Array.isArray(authority)) {
|
|
45
|
+
if (Array.isArray(currentAuthority)) {
|
|
46
|
+
if (currentAuthority.some((item) => authority.includes(item))) {
|
|
47
|
+
return target;
|
|
48
|
+
}
|
|
49
|
+
} else if (authority.includes(currentAuthority)) {
|
|
50
|
+
return target;
|
|
51
|
+
}
|
|
52
|
+
return Exception;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
// string 处理
|
|
57
|
+
if (typeof authority === 'string') {
|
|
58
|
+
if (Array.isArray(currentAuthority)) {
|
|
59
|
+
if (currentAuthority.some((item) => authority === item)) {
|
|
60
|
+
return target;
|
|
61
|
+
}
|
|
62
|
+
} else if (authority === currentAuthority) {
|
|
63
|
+
return target;
|
|
64
|
+
}
|
|
65
|
+
return Exception;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
// Promise 处理
|
|
70
|
+
if (authority instanceof Promise) {
|
|
71
|
+
return <PromiseRender<T, K> ok={target} error={Exception} promise={authority} />;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
// Function 处理
|
|
76
|
+
if (typeof authority === 'function') {
|
|
77
|
+
const bool = authority(currentAuthority);
|
|
78
|
+
// 函数执行后返回值是 Promise
|
|
79
|
+
if (bool instanceof Promise) {
|
|
80
|
+
return <PromiseRender<T, K> ok={target} error={Exception} promise={bool} />;
|
|
81
|
+
}
|
|
82
|
+
if (bool) {
|
|
83
|
+
return target;
|
|
84
|
+
}
|
|
85
|
+
return Exception;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
//未支持的参数
|
|
90
|
+
throw new Error('unsupported parameters');
|
|
91
|
+
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export { checkPermissions };
|
|
95
|
+
|
|
96
|
+
function check<T, K>(authority: IAuthorityType, target: T, Exception: K): T | K | React.ReactNode {
|
|
97
|
+
return checkPermissions<T, K>(authority, CURRENT, target, Exception);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export default check;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CheckOutlined, CopyOutlined } from '@ant-design/icons';
|
|
2
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 复制按钮,效果和antd的table复制按钮一样
|
|
10
|
+
* @param text 需要复制的文本
|
|
11
|
+
*/
|
|
12
|
+
const CopyButton: React.FC<Props> = ({ text }) => {
|
|
13
|
+
|
|
14
|
+
const [copied, setCopied] = useState(false);
|
|
15
|
+
const timer = useRef<NodeJS.Timeout>();
|
|
16
|
+
|
|
17
|
+
const handleCopyClick = async () => {
|
|
18
|
+
try {
|
|
19
|
+
await navigator.clipboard.writeText(text);
|
|
20
|
+
setCopied(true);
|
|
21
|
+
|
|
22
|
+
timer.current = setTimeout(() => {
|
|
23
|
+
setCopied(false);
|
|
24
|
+
}, 3000);
|
|
25
|
+
|
|
26
|
+
} catch (err) {
|
|
27
|
+
console.error(err);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
return () => {
|
|
33
|
+
if (timer.current) {
|
|
34
|
+
clearTimeout(timer.current);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<span
|
|
41
|
+
style={{ cursor: 'pointer', marginLeft: '4px', position: 'relative', top: '-2px' }}
|
|
42
|
+
onClick={handleCopyClick}
|
|
43
|
+
>
|
|
44
|
+
{copied ? <CheckOutlined style={{ color: '#52c41a' }} /> : <CopyOutlined style={{ color: '#1890ff' }} />}
|
|
45
|
+
</span>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default React.memo(CopyButton);
|