@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
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import ProForm, { ModalForm, ProFormText } from '@ant-design/pro-form';
|
|
2
|
+
import { EditableProTable, ProColumns } from '@ant-design/pro-table';
|
|
3
|
+
import { useIntl } from '@umijs/max';
|
|
4
|
+
import { Form, Spin } from 'antd';
|
|
5
|
+
import React, { useEffect, useState } from 'react';
|
|
6
|
+
import { batchSave, batchSaveI18n, queryI18nData, queryLangInfoList } from '../services';
|
|
7
|
+
import { EditMultiLangFormProps, LangInfoItem } from '../types';
|
|
8
|
+
|
|
9
|
+
type DataSourceType = {
|
|
10
|
+
langInfoId: React.Key;
|
|
11
|
+
lang?: string;
|
|
12
|
+
value?: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 设置多语言
|
|
17
|
+
*/
|
|
18
|
+
const defaultData: DataSourceType[] = [
|
|
19
|
+
{
|
|
20
|
+
langInfoId: -1,
|
|
21
|
+
lang: 'en_US',
|
|
22
|
+
value: '',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
langInfoId: -2,
|
|
26
|
+
lang: 'th_TH',
|
|
27
|
+
value: '',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
langInfoId: -3,
|
|
31
|
+
lang: 'zh_CN',
|
|
32
|
+
value: '',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
langInfoId: -4,
|
|
36
|
+
lang: 'zh_TW',
|
|
37
|
+
value: '',
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 多语言处理组件
|
|
43
|
+
* @param props
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
const EditMultiLangForm: React.FC<EditMultiLangFormProps> = (props) => {
|
|
47
|
+
const { version = 'v1' } = props;
|
|
48
|
+
const { formatMessage } = useIntl();
|
|
49
|
+
const [form] = Form.useForm();
|
|
50
|
+
|
|
51
|
+
const [editableKeys, setEditableRowKeys] = useState<React.Key[]>(() => defaultData.map((item) => item.langInfoId));
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 数据源
|
|
55
|
+
*/
|
|
56
|
+
const [dataSource, setDataSource] = useState<DataSourceType[]>(() => [...defaultData]);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 加载中标识
|
|
60
|
+
*/
|
|
61
|
+
const [loading, setLoading] = useState<boolean>(false);
|
|
62
|
+
// 处理表格表单缓存问题
|
|
63
|
+
const [tableKey, setTableKey] = useState<number>(0);
|
|
64
|
+
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (form && !props.modalFormVisible) {
|
|
67
|
+
form.resetFields();
|
|
68
|
+
// 清理数据状态,避免缓存问题
|
|
69
|
+
setDataSource(() => [...defaultData]);
|
|
70
|
+
setEditableRowKeys(() => defaultData.map((item) => item.langInfoId));
|
|
71
|
+
setTableKey((prev) => prev + 1);
|
|
72
|
+
}
|
|
73
|
+
}, [props.modalFormVisible]);
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 请求数据
|
|
77
|
+
*/
|
|
78
|
+
async function fetchData() {
|
|
79
|
+
if (!props.values) return;
|
|
80
|
+
|
|
81
|
+
// 深度拷贝defaultData,避免修改原始对象
|
|
82
|
+
const list: DataSourceType[] = defaultData.map((item) => ({
|
|
83
|
+
langInfoId: item.langInfoId,
|
|
84
|
+
lang: item.lang,
|
|
85
|
+
value: item.value,
|
|
86
|
+
}));
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 加载中
|
|
90
|
+
*/
|
|
91
|
+
setLoading(true);
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* 请求后台API设置的多语言
|
|
95
|
+
*/
|
|
96
|
+
const queryList = props.queryLangInfoList ?? queryLangInfoList;
|
|
97
|
+
const result = await queryList({ ...props.values });
|
|
98
|
+
|
|
99
|
+
if (result && result.code === 200) {
|
|
100
|
+
for (let j = 0; j < list.length; j++) {
|
|
101
|
+
for (let i = 0; i < result.rows.length; i++) {
|
|
102
|
+
if (result.rows[i].lang === list[j].lang) {
|
|
103
|
+
list[j].langInfoId = result.rows[i].langInfoId;
|
|
104
|
+
list[j].value = result.rows[i].value;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
setDataSource(list);
|
|
110
|
+
setEditableRowKeys(list.map((item) => item.langInfoId));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* 加载中
|
|
115
|
+
*/
|
|
116
|
+
setLoading(false);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* 请求数据
|
|
121
|
+
*/
|
|
122
|
+
async function fetchDataV2() {
|
|
123
|
+
if (!props.values) return;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 加载中
|
|
127
|
+
*/
|
|
128
|
+
setLoading(true);
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 请求后台API设置的多语言
|
|
132
|
+
*/
|
|
133
|
+
const queryList = props.queryLangInfoList ?? queryI18nData;
|
|
134
|
+
const result = await queryList({
|
|
135
|
+
tableName: props.values.tableName,
|
|
136
|
+
columnName: props.values.columnName,
|
|
137
|
+
dataId: props.values.recordId,
|
|
138
|
+
});
|
|
139
|
+
const i18nJson = result?.data?.i18nJson;
|
|
140
|
+
|
|
141
|
+
if (result?.code === 200 && i18nJson) {
|
|
142
|
+
const newList = dataSource.map((item, idx) => {
|
|
143
|
+
return {
|
|
144
|
+
...item,
|
|
145
|
+
value: i18nJson[item.lang]?.dic_name,
|
|
146
|
+
langInfoId: new Date().getTime() + idx,
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
setDataSource([...newList]);
|
|
151
|
+
setEditableRowKeys(newList.map((item) => item.langInfoId));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* 加载中
|
|
156
|
+
*/
|
|
157
|
+
setLoading(false);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
if (props.values) {
|
|
162
|
+
form.setFieldsValue({
|
|
163
|
+
...props.values,
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
if (version === 'v1') {
|
|
167
|
+
fetchData();
|
|
168
|
+
} else {
|
|
169
|
+
fetchDataV2();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}, [props.values]);
|
|
173
|
+
|
|
174
|
+
const columns: ProColumns<DataSourceType>[] = [
|
|
175
|
+
{
|
|
176
|
+
title: formatMessage({
|
|
177
|
+
id: 'cfmmUI.multilang.column.lang',
|
|
178
|
+
defaultMessage: '语言',
|
|
179
|
+
}),
|
|
180
|
+
key: 'lang',
|
|
181
|
+
dataIndex: 'lang',
|
|
182
|
+
valueType: 'select',
|
|
183
|
+
|
|
184
|
+
editable: () => {
|
|
185
|
+
return false;
|
|
186
|
+
},
|
|
187
|
+
valueEnum: {
|
|
188
|
+
en_US: {
|
|
189
|
+
text: formatMessage({
|
|
190
|
+
id: 'cfmmUI.multilang.column.lang.en_US',
|
|
191
|
+
defaultMessage: '英语',
|
|
192
|
+
}),
|
|
193
|
+
},
|
|
194
|
+
th_TH: {
|
|
195
|
+
text: formatMessage({
|
|
196
|
+
id: 'cfmmUI.multilang.column.lang.th_TH',
|
|
197
|
+
defaultMessage: '泰语',
|
|
198
|
+
}),
|
|
199
|
+
},
|
|
200
|
+
zh_CN: {
|
|
201
|
+
text: formatMessage({
|
|
202
|
+
id: 'cfmmUI.multilang.column.lang.zh_CN',
|
|
203
|
+
defaultMessage: '简体中文',
|
|
204
|
+
}),
|
|
205
|
+
},
|
|
206
|
+
zh_TW: {
|
|
207
|
+
text: formatMessage({
|
|
208
|
+
id: 'cfmmUI.multilang.column.lang.zh_TW',
|
|
209
|
+
defaultMessage: '繁體中文',
|
|
210
|
+
}),
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
title: formatMessage({
|
|
216
|
+
id: 'cfmmUI.multilang.column.value',
|
|
217
|
+
defaultMessage: '内容',
|
|
218
|
+
}),
|
|
219
|
+
dataIndex: 'value',
|
|
220
|
+
},
|
|
221
|
+
];
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* 提交方法
|
|
225
|
+
*/
|
|
226
|
+
const handleSubmit = async () => {
|
|
227
|
+
if (!props.values) return;
|
|
228
|
+
/**
|
|
229
|
+
* 加载中
|
|
230
|
+
*/
|
|
231
|
+
setLoading(true);
|
|
232
|
+
|
|
233
|
+
let data: LangInfoItem[] = [];
|
|
234
|
+
|
|
235
|
+
let onSave = props.batchSave ? props.batchSave : batchSave;
|
|
236
|
+
|
|
237
|
+
if (version === 'v1') {
|
|
238
|
+
data = new Array(dataSource.length);
|
|
239
|
+
|
|
240
|
+
for (let i = 0; i < dataSource.length; i++) {
|
|
241
|
+
data[i] = {
|
|
242
|
+
tableName: props.values.tableName,
|
|
243
|
+
columnName: props.values.columnName,
|
|
244
|
+
recordId: props.values.recordId,
|
|
245
|
+
langInfoId: Number(dataSource[i].langInfoId) > 0 ? Number(dataSource[i].langInfoId) : 0,
|
|
246
|
+
lang: dataSource[i].lang,
|
|
247
|
+
value: dataSource[i].value,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
data = dataSource.map(item => ({
|
|
252
|
+
lang: item.lang,
|
|
253
|
+
value: item.value,
|
|
254
|
+
dataId: props.values!.recordId,
|
|
255
|
+
tableName: props.values!.tableName,
|
|
256
|
+
columnName: props.values!.columnName,
|
|
257
|
+
}))
|
|
258
|
+
onSave = batchSaveI18n;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const result = await onSave(data);
|
|
262
|
+
|
|
263
|
+
// 返回数据处理
|
|
264
|
+
if (result && result.code === 200) {
|
|
265
|
+
props.setModalFormVisible(false);
|
|
266
|
+
|
|
267
|
+
//修改完成后,需要调用回调函数(大部分情况是需要刷新表格,如果不存在则不需要)
|
|
268
|
+
if (props.onAfterSubmit) {
|
|
269
|
+
props.onAfterSubmit();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* 加载中
|
|
275
|
+
*/
|
|
276
|
+
setLoading(false);
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
return (
|
|
280
|
+
<ModalForm
|
|
281
|
+
form={form}
|
|
282
|
+
width={800}
|
|
283
|
+
title={formatMessage({
|
|
284
|
+
id: 'cfmmUI.multilang.edit.form.title',
|
|
285
|
+
defaultMessage: '编辑多语言',
|
|
286
|
+
})}
|
|
287
|
+
open={props.modalFormVisible}
|
|
288
|
+
onOpenChange={props.setModalFormVisible}
|
|
289
|
+
onFinish={handleSubmit}
|
|
290
|
+
//关闭弹窗清除数据
|
|
291
|
+
modalProps={{
|
|
292
|
+
destroyOnHidden: true,
|
|
293
|
+
forceRender: true,
|
|
294
|
+
}}
|
|
295
|
+
>
|
|
296
|
+
<ProForm.Group>
|
|
297
|
+
<ProFormText
|
|
298
|
+
width="sm"
|
|
299
|
+
name="tableName"
|
|
300
|
+
disabled
|
|
301
|
+
tooltip={formatMessage({
|
|
302
|
+
id: 'cfmmUI.multilang.column.tableName.tooltip',
|
|
303
|
+
defaultMessage: '列名称',
|
|
304
|
+
})}
|
|
305
|
+
label={formatMessage({
|
|
306
|
+
id: 'cfmmUI.multilang.column.tableName',
|
|
307
|
+
defaultMessage: '表名称',
|
|
308
|
+
})}
|
|
309
|
+
/>
|
|
310
|
+
|
|
311
|
+
<ProFormText
|
|
312
|
+
width="sm"
|
|
313
|
+
name="columnName"
|
|
314
|
+
disabled
|
|
315
|
+
tooltip={formatMessage({
|
|
316
|
+
id: 'cfmmUI.multilang.column.columnName.tooltip',
|
|
317
|
+
defaultMessage: '列名称',
|
|
318
|
+
})}
|
|
319
|
+
label={formatMessage({
|
|
320
|
+
id: 'cfmmUI.multilang.column.columnName',
|
|
321
|
+
defaultMessage: '列名称',
|
|
322
|
+
})}
|
|
323
|
+
/>
|
|
324
|
+
|
|
325
|
+
<ProFormText
|
|
326
|
+
width="sm"
|
|
327
|
+
name="recordId"
|
|
328
|
+
disabled
|
|
329
|
+
tooltip={formatMessage({
|
|
330
|
+
id: 'cfmmUI.multilang.column.recordId.tooltip',
|
|
331
|
+
defaultMessage: '列名称',
|
|
332
|
+
})}
|
|
333
|
+
label={formatMessage({
|
|
334
|
+
id: 'cfmmUI.multilang.column.recordId',
|
|
335
|
+
defaultMessage: '记录ID',
|
|
336
|
+
})}
|
|
337
|
+
/>
|
|
338
|
+
</ProForm.Group>
|
|
339
|
+
|
|
340
|
+
<Spin spinning={loading}>
|
|
341
|
+
{/* 多语言编辑表格 */}
|
|
342
|
+
<EditableProTable<DataSourceType>
|
|
343
|
+
key={tableKey}
|
|
344
|
+
columns={columns}
|
|
345
|
+
rowKey="langInfoId"
|
|
346
|
+
value={dataSource}
|
|
347
|
+
onChange={setDataSource as any}
|
|
348
|
+
recordCreatorProps={false}
|
|
349
|
+
editable={{
|
|
350
|
+
type: 'multiple',
|
|
351
|
+
editableKeys,
|
|
352
|
+
actionRender: () => {
|
|
353
|
+
return [];
|
|
354
|
+
},
|
|
355
|
+
onValuesChange: (record, recordList) => {
|
|
356
|
+
setDataSource(recordList);
|
|
357
|
+
},
|
|
358
|
+
onChange: setEditableRowKeys,
|
|
359
|
+
}}
|
|
360
|
+
/>
|
|
361
|
+
</Spin>
|
|
362
|
+
</ModalForm>
|
|
363
|
+
);
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
export default React.memo(EditMultiLangForm);
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { DownloadOutlined } from '@ant-design/icons';
|
|
2
|
+
import { ProFormRadio, ProFormSelect, ProFormText } from '@ant-design/pro-components';
|
|
3
|
+
import { useIntl, useModel } from '@umijs/max';
|
|
4
|
+
import { FloatButton, Form, Modal } from 'antd';
|
|
5
|
+
import dayjs from 'dayjs';
|
|
6
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
7
|
+
import { usePageExport } from '../hooks/usePageExport';
|
|
8
|
+
import { ExportPageFormValues, ExportPageOptions, ExportPageProps } from '../types';
|
|
9
|
+
|
|
10
|
+
const initialValues: Omit<ExportPageFormValues, 'filename'> = {
|
|
11
|
+
exportType: 'pdf',
|
|
12
|
+
quality: 1,
|
|
13
|
+
imageType: 'image/png',
|
|
14
|
+
actionType: 'export',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const ExportPageWrapper: React.FC<ExportPageProps> = (props) => {
|
|
18
|
+
const { filename, pageWaterMarkText, showExportButton, floatButtonProps, exportPageOptions } = props;
|
|
19
|
+
|
|
20
|
+
const { formatMessage } = useIntl();
|
|
21
|
+
const { currentUser } = window.__POWERED_BY_QIANKUN__ ? useModel('@@qiankunStateFromMaster') : useModel('user');
|
|
22
|
+
const { onExportPDF, onPreviewPDF, onExportImage, onPreviewImage, loading } = usePageExport();
|
|
23
|
+
const exportRef = useRef<HTMLDivElement>(null);
|
|
24
|
+
const [form] = Form.useForm<ExportPageFormValues>();
|
|
25
|
+
|
|
26
|
+
const [exportLoading, setExportLoading] = useState<boolean>(false);
|
|
27
|
+
// 根据PDFWaterMark属性初始化tempWaterMark
|
|
28
|
+
const [tempWaterMark, setTempWaterMark] = useState<string | undefined>(currentUser.userName);
|
|
29
|
+
const [showModal, setShowModal] = useState<boolean>(false);
|
|
30
|
+
const [exportType, setExportType] = useState<ExportPageFormValues['exportType']>(initialValues.exportType);
|
|
31
|
+
const [imageType, setImageType] = useState<ExportPageFormValues['imageType']>(initialValues.imageType);
|
|
32
|
+
|
|
33
|
+
const handleImageTypeChange = (value: ExportPageFormValues['imageType']) => {
|
|
34
|
+
setImageType(value);
|
|
35
|
+
if (value === 'image/png') {
|
|
36
|
+
form.setFieldsValue({
|
|
37
|
+
quality: 1,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const handleFinish = (values: ExportPageFormValues) => {
|
|
43
|
+
if (loading || exportLoading) return; // 防止重复点击
|
|
44
|
+
|
|
45
|
+
setExportLoading(true);
|
|
46
|
+
setTempWaterMark(pageWaterMarkText ?? `${currentUser.userName} - ${dayjs().format('YYYY-MM-DD HH:mm:ss')}`);
|
|
47
|
+
|
|
48
|
+
const concatOptions: ExportPageOptions = {
|
|
49
|
+
...exportPageOptions,
|
|
50
|
+
filename: values.filename,
|
|
51
|
+
imageType: values.imageType,
|
|
52
|
+
quality: values.quality,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
if (!exportRef.current) return;
|
|
57
|
+
let actionFn;
|
|
58
|
+
if (values.exportType === 'pdf') {
|
|
59
|
+
actionFn = values.actionType === 'export' ? onExportPDF : onPreviewPDF;
|
|
60
|
+
} else {
|
|
61
|
+
actionFn = values.actionType === 'export' ? onExportImage : onPreviewImage;
|
|
62
|
+
}
|
|
63
|
+
actionFn(exportRef.current, {
|
|
64
|
+
...concatOptions,
|
|
65
|
+
}).finally(() => {
|
|
66
|
+
// 导出完成后恢复原始水印
|
|
67
|
+
setTempWaterMark(currentUser.userName);
|
|
68
|
+
setExportLoading(false);
|
|
69
|
+
});
|
|
70
|
+
}, 100); // 小延迟确保水印渲染
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// 将tempWaterMark传递给children
|
|
74
|
+
const renderChildren = () => {
|
|
75
|
+
if (!props.children) return null;
|
|
76
|
+
|
|
77
|
+
// 如果children是React元素,使用cloneElement传递props
|
|
78
|
+
if (React.isValidElement(props.children)) {
|
|
79
|
+
return React.cloneElement(props.children as any, {
|
|
80
|
+
tempWaterMark,
|
|
81
|
+
...(props.children.props || {}),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// 如果是数组或其他类型,遍历处理
|
|
86
|
+
if (Array.isArray(props.children)) {
|
|
87
|
+
return React.Children.map(props.children, (child) => {
|
|
88
|
+
if (React.isValidElement(child)) {
|
|
89
|
+
return React.cloneElement(child as any, {
|
|
90
|
+
tempWaterMark,
|
|
91
|
+
...(child.props || {}),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return child;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return props.children;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
if (showModal && (exportPageOptions || filename)) {
|
|
103
|
+
form.setFieldsValue({
|
|
104
|
+
filename,
|
|
105
|
+
...exportPageOptions,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}, [form, exportPageOptions, filename, showModal]);
|
|
109
|
+
|
|
110
|
+
return (
|
|
111
|
+
<>
|
|
112
|
+
<div ref={exportRef}>{renderChildren()}</div>
|
|
113
|
+
{showExportButton ? (
|
|
114
|
+
<FloatButton
|
|
115
|
+
icon={<DownloadOutlined />}
|
|
116
|
+
tooltip={<>{formatMessage({ id: 'cfmmUI.common.button.export' })} PDF</>}
|
|
117
|
+
onClick={() => setShowModal(true)}
|
|
118
|
+
{...floatButtonProps}
|
|
119
|
+
/>
|
|
120
|
+
) : null}
|
|
121
|
+
{showModal && (
|
|
122
|
+
<Modal
|
|
123
|
+
title={formatMessage({ id: 'cfmmUI.common.button.export' }) + ' PDF'}
|
|
124
|
+
open={showModal}
|
|
125
|
+
onCancel={() => setShowModal(false)}
|
|
126
|
+
okButtonProps={{ autoFocus: true, loading: exportLoading, htmlType: 'submit' }}
|
|
127
|
+
modalRender={(dom) => (
|
|
128
|
+
<Form layout="horizontal" form={form} initialValues={initialValues} clearOnDestroy onFinish={handleFinish}>
|
|
129
|
+
{dom}
|
|
130
|
+
</Form>
|
|
131
|
+
)}
|
|
132
|
+
>
|
|
133
|
+
<ProFormText
|
|
134
|
+
name="filename"
|
|
135
|
+
label={formatMessage({ id: 'cfmmUI.File.column.name', defaultMessage: '文件名称' })}
|
|
136
|
+
rules={[{ required: true }]}
|
|
137
|
+
></ProFormText>
|
|
138
|
+
<ProFormRadio.Group
|
|
139
|
+
fieldProps={{
|
|
140
|
+
optionType: 'button',
|
|
141
|
+
buttonStyle: 'solid',
|
|
142
|
+
onChange: (e) => setExportType(e.target.value),
|
|
143
|
+
}}
|
|
144
|
+
name="exportType"
|
|
145
|
+
label={formatMessage({ id: 'cfmmUI.File.column.exportType', defaultMessage: '导出类型' })}
|
|
146
|
+
rules={[{ required: true }]}
|
|
147
|
+
options={[
|
|
148
|
+
{ label: 'PDF', value: 'pdf' },
|
|
149
|
+
{ label: formatMessage({ id: 'cfmmUI.File.exportType.image', defaultMessage: '图片' }), value: 'image' },
|
|
150
|
+
]}
|
|
151
|
+
/>
|
|
152
|
+
<ProFormRadio.Group
|
|
153
|
+
fieldProps={{
|
|
154
|
+
optionType: 'button',
|
|
155
|
+
buttonStyle: 'solid',
|
|
156
|
+
}}
|
|
157
|
+
name="actionType"
|
|
158
|
+
rules={[{ required: true }]}
|
|
159
|
+
label={formatMessage({ id: 'cfmmUI.File.column.actionType', defaultMessage: '操作类型' })}
|
|
160
|
+
options={[
|
|
161
|
+
{ label: formatMessage({ id: 'cfmmUI.common.button.export', defaultMessage: '导出' }), value: 'export' },
|
|
162
|
+
{
|
|
163
|
+
label: formatMessage({ id: 'cfmmUI.common.button.preview', defaultMessage: '预览' }),
|
|
164
|
+
value: 'preview',
|
|
165
|
+
},
|
|
166
|
+
]}
|
|
167
|
+
/>
|
|
168
|
+
{exportType === 'image' && (
|
|
169
|
+
<ProFormRadio.Group
|
|
170
|
+
name="imageType"
|
|
171
|
+
label={formatMessage({ id: 'cfmmUI.File.column.imageType', defaultMessage: '图片格式' })}
|
|
172
|
+
fieldProps={{
|
|
173
|
+
optionType: 'button',
|
|
174
|
+
buttonStyle: 'solid',
|
|
175
|
+
onChange: (e) => handleImageTypeChange(e.target.value),
|
|
176
|
+
}}
|
|
177
|
+
rules={[{ required: true }]}
|
|
178
|
+
options={[
|
|
179
|
+
{ label: 'PNG', value: 'image/png' },
|
|
180
|
+
{ label: 'JPEG', value: 'image/jpeg' },
|
|
181
|
+
]}
|
|
182
|
+
/>
|
|
183
|
+
)}
|
|
184
|
+
<ProFormSelect
|
|
185
|
+
name="quality"
|
|
186
|
+
label={formatMessage({ id: 'cfmmUI.File.column.quality', defaultMessage: '压缩质量' })}
|
|
187
|
+
rules={[{ required: true }]}
|
|
188
|
+
fieldProps={{
|
|
189
|
+
allowClear: false,
|
|
190
|
+
disabled: exportType === 'image' && imageType === 'image/png',
|
|
191
|
+
}}
|
|
192
|
+
tooltip={
|
|
193
|
+
<>
|
|
194
|
+
<div>
|
|
195
|
+
{formatMessage({
|
|
196
|
+
id: 'cfmmUI.File.export.quality.tips',
|
|
197
|
+
defaultMessage: '压缩质量越高,图片越清晰,文件体积越大',
|
|
198
|
+
})}
|
|
199
|
+
</div>
|
|
200
|
+
<div>
|
|
201
|
+
{formatMessage({ id: 'cfmmUI.File.export.quality.png.tips', defaultMessage: 'PNG格式不支持压缩' })}
|
|
202
|
+
</div>
|
|
203
|
+
</>
|
|
204
|
+
}
|
|
205
|
+
options={[
|
|
206
|
+
{ label: '100%', value: 1 },
|
|
207
|
+
{ label: '90%', value: 0.9 },
|
|
208
|
+
{ label: '80%', value: 0.8 },
|
|
209
|
+
{ label: '70%', value: 0.7 },
|
|
210
|
+
{ label: '60%', value: 0.6 },
|
|
211
|
+
{ label: '50%', value: 0.5 },
|
|
212
|
+
{ label: '40%', value: 0.4 },
|
|
213
|
+
{ label: '30%', value: 0.3 },
|
|
214
|
+
{ label: '20%', value: 0.2 },
|
|
215
|
+
{ label: '10%', value: 0.1 },
|
|
216
|
+
]}
|
|
217
|
+
/>
|
|
218
|
+
</Modal>
|
|
219
|
+
)}
|
|
220
|
+
</>
|
|
221
|
+
);
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export default React.memo(ExportPageWrapper);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import MyUpload from './MyUpload';
|
|
2
|
+
import { useIntl } from '@umijs/max';
|
|
3
|
+
import { Modal } from 'antd';
|
|
4
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
5
|
+
import { FlieListModalProps, FileListType } from '../types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @param open 控制弹窗显示
|
|
10
|
+
* @param title 弹窗标题
|
|
11
|
+
* @param uploadType 上传文件类型
|
|
12
|
+
* @param removeConfirmTitle 删除确认弹窗标题
|
|
13
|
+
* @param removeConfirmContent 删除确认弹窗内容
|
|
14
|
+
* @param list
|
|
15
|
+
* @param onCancel 关闭弹窗事件函数
|
|
16
|
+
* @param onOk 提交事件函数
|
|
17
|
+
*/
|
|
18
|
+
const UploadFlieListModal = (props: FlieListModalProps) => {
|
|
19
|
+
const {
|
|
20
|
+
list,
|
|
21
|
+
open,
|
|
22
|
+
title,
|
|
23
|
+
bucketName,
|
|
24
|
+
uploadType = 'drag',
|
|
25
|
+
removeConfirmTitle,
|
|
26
|
+
removeConfirmContent,
|
|
27
|
+
onCancel,
|
|
28
|
+
onOk,
|
|
29
|
+
} = props;
|
|
30
|
+
const { formatMessage } = useIntl();
|
|
31
|
+
const [fileList, setFileList] = useState<FileListType[]>(list || []);
|
|
32
|
+
|
|
33
|
+
const init = () => {
|
|
34
|
+
setFileList([]);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const handleChange = useCallback((list: FileListType[]) => {
|
|
38
|
+
setFileList(list);
|
|
39
|
+
}, []);
|
|
40
|
+
|
|
41
|
+
// 取消按钮事件
|
|
42
|
+
const handleCancel = useCallback(() => {
|
|
43
|
+
init();
|
|
44
|
+
onCancel?.();
|
|
45
|
+
}, []);
|
|
46
|
+
|
|
47
|
+
// 确认后将文件id列表传给外部组件
|
|
48
|
+
const handleOk = useCallback(() => {
|
|
49
|
+
onOk(fileList, init);
|
|
50
|
+
}, [fileList]);
|
|
51
|
+
|
|
52
|
+
// 设置默认值
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
setFileList(list || []);
|
|
55
|
+
}, [list]);
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<Modal
|
|
59
|
+
title={title ? title : formatMessage({ id: 'cfmmUI.File.upload.file', defaultMessage: '上传文件' })}
|
|
60
|
+
destroyOnHidden
|
|
61
|
+
maskClosable={false}
|
|
62
|
+
width={800}
|
|
63
|
+
open={open}
|
|
64
|
+
onOk={handleOk}
|
|
65
|
+
onCancel={handleCancel}
|
|
66
|
+
>
|
|
67
|
+
<MyUpload
|
|
68
|
+
bucketName={bucketName}
|
|
69
|
+
uploadType={uploadType}
|
|
70
|
+
removeConfirmTitle={removeConfirmTitle}
|
|
71
|
+
removeConfirmContent={removeConfirmContent}
|
|
72
|
+
onChange={handleChange}
|
|
73
|
+
defautlFileList={fileList}
|
|
74
|
+
/>
|
|
75
|
+
</Modal>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export default React.memo(UploadFlieListModal);
|