@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.
Files changed (526) hide show
  1. package/README.md +29 -0
  2. package/dist/cjs/components/ActionLogDrawer.tpl +148 -0
  3. package/dist/cjs/components/AddDrawerForm.tpl +38 -0
  4. package/dist/cjs/components/AuthorizeRender.tpl +11 -0
  5. package/dist/cjs/components/Authorized.tpl +39 -0
  6. package/dist/cjs/components/AuthorizedRoute.tpl +33 -0
  7. package/dist/cjs/components/AvatarDropdown.tpl +101 -0
  8. package/dist/cjs/components/CheckPermissions.tpl +100 -0
  9. package/dist/cjs/components/CopyButton.tpl +49 -0
  10. package/dist/cjs/components/CrudTable.tpl +650 -0
  11. package/dist/cjs/components/DicDropDownList.tpl +60 -0
  12. package/dist/cjs/components/DndTabs.tpl +159 -0
  13. package/dist/cjs/components/DndTag.tpl +89 -0
  14. package/dist/cjs/components/DropdownButton.tpl +123 -0
  15. package/dist/cjs/components/DynamicIcon.tpl +73 -0
  16. package/dist/cjs/components/DynamicIconModal.tpl +196 -0
  17. package/dist/cjs/components/EditMultiLangForm.tpl +366 -0
  18. package/dist/cjs/components/ExportPageWrapper.tpl +224 -0
  19. package/dist/cjs/components/FlieListModal.tpl +79 -0
  20. package/dist/cjs/components/FormUpload.tpl +561 -0
  21. package/dist/cjs/components/GlobalFooter.tpl +21 -0
  22. package/dist/cjs/components/GlobalHeader.less +51 -0
  23. package/dist/cjs/components/GlobalHeader.tpl +313 -0
  24. package/dist/cjs/components/HeaderSearch.less +32 -0
  25. package/dist/cjs/components/HeaderSearch.tpl +92 -0
  26. package/dist/cjs/components/HighlightStr.tpl +41 -0
  27. package/dist/cjs/components/ImportDataUpload.tpl +94 -0
  28. package/dist/cjs/components/ImportExecl.less +10 -0
  29. package/dist/cjs/components/ImportExecl.tpl +108 -0
  30. package/dist/cjs/components/KeepAliveDndTabs.tpl +151 -0
  31. package/dist/cjs/components/KeepAliveTabs.less +23 -0
  32. package/dist/cjs/components/KeepAliveTabs.tpl +136 -0
  33. package/dist/cjs/components/Loading.css +19 -0
  34. package/dist/cjs/components/LoadingSvg.tpl +14 -0
  35. package/dist/cjs/components/MenuFooter.css +13 -0
  36. package/dist/cjs/components/MenuFooter.tpl +24 -0
  37. package/dist/cjs/components/MyColorPicker.tpl +19 -0
  38. package/dist/cjs/components/MyFooterToolbar.css +6 -0
  39. package/dist/cjs/components/MyFooterToolbar.tpl +56 -0
  40. package/dist/cjs/components/MyPageContainer.tpl +43 -0
  41. package/dist/cjs/components/MyReactEcharts.tpl +11 -0
  42. package/dist/cjs/components/MySelect.tpl +267 -0
  43. package/dist/cjs/components/MySelectLang.tpl +22 -0
  44. package/dist/cjs/components/MySetps.tpl +85 -0
  45. package/dist/cjs/components/MyTagList.tpl +57 -0
  46. package/dist/cjs/components/MyUpload.less +39 -0
  47. package/dist/cjs/components/MyUpload.tpl +609 -0
  48. package/dist/cjs/components/NoFoundPage.tpl +46 -0
  49. package/dist/cjs/components/PDFWrapper.tpl +96 -0
  50. package/dist/cjs/components/PageLoading.tpl +16 -0
  51. package/dist/cjs/components/PermissionSelect.tpl +230 -0
  52. package/dist/cjs/components/ProFormUTCDatePicker.tpl +20 -0
  53. package/dist/cjs/components/ProFormUTCRangePicker.tpl +20 -0
  54. package/dist/cjs/components/PromiseRender.tpl +93 -0
  55. package/dist/cjs/components/QrCodeModal.tpl +19 -0
  56. package/dist/cjs/components/RandomAvatar.tpl +34 -0
  57. package/dist/cjs/components/RefDrawerForm.tpl +75 -0
  58. package/dist/cjs/components/ReportTable.tpl +336 -0
  59. package/dist/cjs/components/Secured.tpl +66 -0
  60. package/dist/cjs/components/ThemeSwitch.tpl +74 -0
  61. package/dist/cjs/components/TimeTypeSelect.tpl +35 -0
  62. package/dist/cjs/components/TipsTableTitle.tpl +37 -0
  63. package/dist/cjs/components/UTCDatePicker.tpl +107 -0
  64. package/dist/cjs/components/UTCRangePicker.tpl +142 -0
  65. package/dist/cjs/components/UpdateForm.tpl +32 -0
  66. package/dist/cjs/components/UserDisable.tpl +58 -0
  67. package/dist/cjs/components/UserNoPagePermission.tpl +58 -0
  68. package/dist/cjs/components/UserNoPermission.tpl +58 -0
  69. package/dist/cjs/components/ViewTableItemDrawer.tpl +29 -0
  70. package/dist/cjs/components/VolumeFormItem.tpl +59 -0
  71. package/dist/cjs/components/WangEditor.css +53 -0
  72. package/dist/cjs/components/WangEditor.tpl +174 -0
  73. package/dist/cjs/components/WangEditorView.tpl +24 -0
  74. package/dist/cjs/components/fileTypeMap.tpl +96 -0
  75. package/dist/cjs/components/renderAuthorize.tpl +44 -0
  76. package/dist/cjs/context/KeepAliveTabs.tpl +13 -0
  77. package/dist/cjs/context/index.tpl +1 -0
  78. package/dist/cjs/hooks/useAction.tpl +126 -0
  79. package/dist/cjs/hooks/useActionLocales.tpl +108 -0
  80. package/dist/cjs/hooks/useAuthority.tpl +27 -0
  81. package/dist/cjs/hooks/useColumnTitle.tpl +47 -0
  82. package/dist/cjs/hooks/useFormatLocale.tpl +82 -0
  83. package/dist/cjs/hooks/useKeepAliveTabs.tpl +255 -0
  84. package/dist/cjs/hooks/useMatchRoute.tpl +76 -0
  85. package/dist/cjs/hooks/useMemoizedFn.tpl +32 -0
  86. package/dist/cjs/hooks/useOutlet.tpl +20 -0
  87. package/dist/cjs/hooks/usePageExport.tpl +155 -0
  88. package/dist/cjs/hooks/useQueryTableList.tpl +91 -0
  89. package/dist/cjs/hooks/useRouteAuth.tpl +122 -0
  90. package/dist/cjs/index.d.ts +6 -0
  91. package/dist/cjs/index.js +122 -0
  92. package/dist/cjs/locales/en-US.d.ts +163 -0
  93. package/dist/cjs/locales/en-US.js +16 -0
  94. package/dist/cjs/locales/enUS/ActionLogDrawer.d.ts +6 -0
  95. package/dist/cjs/locales/enUS/ActionLogDrawer.js +11 -0
  96. package/dist/cjs/locales/enUS/DynamicIconModal.d.ts +4 -0
  97. package/dist/cjs/locales/enUS/DynamicIconModal.js +9 -0
  98. package/dist/cjs/locales/enUS/EditMultiLangForm.d.ts +16 -0
  99. package/dist/cjs/locales/enUS/EditMultiLangForm.js +21 -0
  100. package/dist/cjs/locales/enUS/File.d.ts +54 -0
  101. package/dist/cjs/locales/enUS/File.js +60 -0
  102. package/dist/cjs/locales/enUS/GlobalFooter.d.ts +4 -0
  103. package/dist/cjs/locales/enUS/GlobalFooter.js +9 -0
  104. package/dist/cjs/locales/enUS/GlobalHeader.d.ts +10 -0
  105. package/dist/cjs/locales/enUS/GlobalHeader.js +15 -0
  106. package/dist/cjs/locales/enUS/MyFooterToolbar.d.ts +5 -0
  107. package/dist/cjs/locales/enUS/MyFooterToolbar.js +10 -0
  108. package/dist/cjs/locales/enUS/PermissionSelect.d.ts +4 -0
  109. package/dist/cjs/locales/enUS/PermissionSelect.js +9 -0
  110. package/dist/cjs/locales/enUS/TimeTypeSelect.d.ts +6 -0
  111. package/dist/cjs/locales/enUS/TimeTypeSelect.js +11 -0
  112. package/dist/cjs/locales/enUS/common.d.ts +74 -0
  113. package/dist/cjs/locales/enUS/common.js +82 -0
  114. package/dist/cjs/locales/enUS/index.d.ts +163 -0
  115. package/dist/cjs/locales/enUS/index.js +25 -0
  116. package/dist/cjs/locales/enUS/pages.d.ts +10 -0
  117. package/dist/cjs/locales/enUS/pages.js +15 -0
  118. package/dist/cjs/locales/th-TH.d.ts +163 -0
  119. package/dist/cjs/locales/th-TH.js +16 -0
  120. package/dist/cjs/locales/zh-CN.d.ts +163 -0
  121. package/dist/cjs/locales/zh-CN.js +16 -0
  122. package/dist/cjs/locales/zh-TW.d.ts +162 -0
  123. package/dist/cjs/locales/zh-TW.js +16 -0
  124. package/dist/cjs/locales/zhCN/ActionLogDrawer.d.ts +6 -0
  125. package/dist/cjs/locales/zhCN/ActionLogDrawer.js +11 -0
  126. package/dist/cjs/locales/zhCN/DynamicIconModal.d.ts +4 -0
  127. package/dist/cjs/locales/zhCN/DynamicIconModal.js +9 -0
  128. package/dist/cjs/locales/zhCN/EditMultiLangForm.d.ts +16 -0
  129. package/dist/cjs/locales/zhCN/EditMultiLangForm.js +21 -0
  130. package/dist/cjs/locales/zhCN/File.d.ts +54 -0
  131. package/dist/cjs/locales/zhCN/File.js +60 -0
  132. package/dist/cjs/locales/zhCN/GlobalFooter.d.ts +4 -0
  133. package/dist/cjs/locales/zhCN/GlobalFooter.js +9 -0
  134. package/dist/cjs/locales/zhCN/GlobalHeader.d.ts +10 -0
  135. package/dist/cjs/locales/zhCN/GlobalHeader.js +15 -0
  136. package/dist/cjs/locales/zhCN/MyFooterToolbar.d.ts +5 -0
  137. package/dist/cjs/locales/zhCN/MyFooterToolbar.js +10 -0
  138. package/dist/cjs/locales/zhCN/PermissionSelect.d.ts +4 -0
  139. package/dist/cjs/locales/zhCN/PermissionSelect.js +9 -0
  140. package/dist/cjs/locales/zhCN/TimeTypeSelect.d.ts +6 -0
  141. package/dist/cjs/locales/zhCN/TimeTypeSelect.js +11 -0
  142. package/dist/cjs/locales/zhCN/common.d.ts +74 -0
  143. package/dist/cjs/locales/zhCN/common.js +82 -0
  144. package/dist/cjs/locales/zhCN/index.d.ts +163 -0
  145. package/dist/cjs/locales/zhCN/index.js +25 -0
  146. package/dist/cjs/locales/zhCN/pages.d.ts +10 -0
  147. package/dist/cjs/locales/zhCN/pages.js +15 -0
  148. package/dist/cjs/locales/zhTW/ActionLogDrawer.d.ts +6 -0
  149. package/dist/cjs/locales/zhTW/ActionLogDrawer.js +11 -0
  150. package/dist/cjs/locales/zhTW/DynamicIconModal.d.ts +4 -0
  151. package/dist/cjs/locales/zhTW/DynamicIconModal.js +9 -0
  152. package/dist/cjs/locales/zhTW/EditMultiLangForm.d.ts +16 -0
  153. package/dist/cjs/locales/zhTW/EditMultiLangForm.js +21 -0
  154. package/dist/cjs/locales/zhTW/File.d.ts +53 -0
  155. package/dist/cjs/locales/zhTW/File.js +59 -0
  156. package/dist/cjs/locales/zhTW/GlobalFooter.d.ts +4 -0
  157. package/dist/cjs/locales/zhTW/GlobalFooter.js +9 -0
  158. package/dist/cjs/locales/zhTW/GlobalHeader.d.ts +10 -0
  159. package/dist/cjs/locales/zhTW/GlobalHeader.js +15 -0
  160. package/dist/cjs/locales/zhTW/MyFooterToolbar.d.ts +5 -0
  161. package/dist/cjs/locales/zhTW/MyFooterToolbar.js +10 -0
  162. package/dist/cjs/locales/zhTW/PermissionSelect.d.ts +4 -0
  163. package/dist/cjs/locales/zhTW/PermissionSelect.js +9 -0
  164. package/dist/cjs/locales/zhTW/TimeTypeSelect.d.ts +6 -0
  165. package/dist/cjs/locales/zhTW/TimeTypeSelect.js +11 -0
  166. package/dist/cjs/locales/zhTW/common.d.ts +74 -0
  167. package/dist/cjs/locales/zhTW/common.js +82 -0
  168. package/dist/cjs/locales/zhTW/index.d.ts +162 -0
  169. package/dist/cjs/locales/zhTW/index.js +25 -0
  170. package/dist/cjs/locales/zhTW/pages.d.ts +10 -0
  171. package/dist/cjs/locales/zhTW/pages.js +15 -0
  172. package/dist/cjs/services/index.tpl +160 -0
  173. package/dist/cjs/types/ActionLogDrawerTypes.d.ts +1 -0
  174. package/dist/cjs/types/ActionLogDrawerTypes.js +7 -0
  175. package/dist/cjs/types/AvatarDropdownTypes.d.ts +1 -0
  176. package/dist/cjs/types/AvatarDropdownTypes.js +7 -0
  177. package/dist/cjs/types/CrudTableTypes.d.ts +1 -0
  178. package/dist/cjs/types/CrudTableTypes.js +7 -0
  179. package/dist/cjs/types/DatePickerTypes.d.ts +1 -0
  180. package/dist/cjs/types/DatePickerTypes.js +7 -0
  181. package/dist/cjs/types/DicDropDownListTypes.d.ts +1 -0
  182. package/dist/cjs/types/DicDropDownListTypes.js +7 -0
  183. package/dist/cjs/types/DndTabsTypes.d.ts +1 -0
  184. package/dist/cjs/types/DndTabsTypes.js +7 -0
  185. package/dist/cjs/types/DndTagTypes.d.ts +1 -0
  186. package/dist/cjs/types/DndTagTypes.js +7 -0
  187. package/dist/cjs/types/DropdownButtonTypes.d.ts +2 -0
  188. package/dist/cjs/types/DropdownButtonTypes.js +8 -0
  189. package/dist/cjs/types/DynamicIconTypes.d.ts +1 -0
  190. package/dist/cjs/types/DynamicIconTypes.js +7 -0
  191. package/dist/cjs/types/EditMultiLangFormTypes.d.ts +1 -0
  192. package/dist/cjs/types/EditMultiLangFormTypes.js +7 -0
  193. package/dist/cjs/types/ExportPageWrapperTypes.d.ts +1 -0
  194. package/dist/cjs/types/ExportPageWrapperTypes.js +7 -0
  195. package/dist/cjs/types/GlobalHeaderTypes.d.ts +1 -0
  196. package/dist/cjs/types/GlobalHeaderTypes.js +7 -0
  197. package/dist/cjs/types/HeaderSearchTypes.d.ts +1 -0
  198. package/dist/cjs/types/HeaderSearchTypes.js +7 -0
  199. package/dist/cjs/types/HighlightStrTypes.d.ts +1 -0
  200. package/dist/cjs/types/HighlightStrTypes.js +7 -0
  201. package/dist/cjs/types/ImportDataUploadTypes.d.ts +1 -0
  202. package/dist/cjs/types/ImportDataUploadTypes.js +7 -0
  203. package/dist/cjs/types/ImportExeclTypes.d.ts +1 -0
  204. package/dist/cjs/types/ImportExeclTypes.js +7 -0
  205. package/dist/cjs/types/KeepAliveTabsTypes.d.ts +1 -0
  206. package/dist/cjs/types/KeepAliveTabsTypes.js +7 -0
  207. package/dist/cjs/types/MenuFooterTypes.d.ts +1 -0
  208. package/dist/cjs/types/MenuFooterTypes.js +7 -0
  209. package/dist/cjs/types/MyFooterToolbarTypes.d.ts +1 -0
  210. package/dist/cjs/types/MyFooterToolbarTypes.js +7 -0
  211. package/dist/cjs/types/MyPageContainerTypes.d.ts +1 -0
  212. package/dist/cjs/types/MyPageContainerTypes.js +7 -0
  213. package/dist/cjs/types/MySelectLangTypes.d.ts +1 -0
  214. package/dist/cjs/types/MySelectLangTypes.js +7 -0
  215. package/dist/cjs/types/MySelectTypes.d.ts +1 -0
  216. package/dist/cjs/types/MySelectTypes.js +7 -0
  217. package/dist/cjs/types/MySetpsTypes.d.ts +1 -0
  218. package/dist/cjs/types/MySetpsTypes.js +7 -0
  219. package/dist/cjs/types/MyTagListTypes.d.ts +1 -0
  220. package/dist/cjs/types/MyTagListTypes.js +7 -0
  221. package/dist/cjs/types/MyUploadTypes.d.ts +1 -0
  222. package/dist/cjs/types/MyUploadTypes.js +7 -0
  223. package/dist/cjs/types/PermissionSelectTypes.d.ts +1 -0
  224. package/dist/cjs/types/PermissionSelectTypes.js +7 -0
  225. package/dist/cjs/types/QrCodeModalTypes.d.ts +1 -0
  226. package/dist/cjs/types/QrCodeModalTypes.js +7 -0
  227. package/dist/cjs/types/RandomAvatarTypes.d.ts +1 -0
  228. package/dist/cjs/types/RandomAvatarTypes.js +7 -0
  229. package/dist/cjs/types/RefDrawerFormTypes.d.ts +1 -0
  230. package/dist/cjs/types/RefDrawerFormTypes.js +7 -0
  231. package/dist/cjs/types/ReportTableTypes.d.ts +1 -0
  232. package/dist/cjs/types/ReportTableTypes.js +7 -0
  233. package/dist/cjs/types/ThemeSwitchTypes.d.ts +1 -0
  234. package/dist/cjs/types/ThemeSwitchTypes.js +7 -0
  235. package/dist/cjs/types/ViewTableItemDrawerTypes.d.ts +1 -0
  236. package/dist/cjs/types/ViewTableItemDrawerTypes.js +7 -0
  237. package/dist/cjs/types/VolumeFormItemTypes.d.ts +1 -0
  238. package/dist/cjs/types/VolumeFormItemTypes.js +7 -0
  239. package/dist/cjs/types/WangEditorTypes.d.ts +1 -0
  240. package/dist/cjs/types/WangEditorTypes.js +7 -0
  241. package/dist/cjs/types/index.d.ts +35 -0
  242. package/dist/cjs/types/index.js +250 -0
  243. package/dist/cjs/types/servicesTypes.d.ts +1 -0
  244. package/dist/cjs/types/servicesTypes.js +7 -0
  245. package/dist/cjs/utils/Authorized.tpl +17 -0
  246. package/dist/cjs/utils/authority.tpl +51 -0
  247. package/dist/cjs/utils/authorityFunction.tpl +17 -0
  248. package/dist/cjs/utils/excelHelper.tpl +825 -0
  249. package/dist/cjs/utils/exportPage.tpl +784 -0
  250. package/dist/cjs/utils/fileHelper.tpl +251 -0
  251. package/dist/cjs/utils/importHelper.tpl +283 -0
  252. package/dist/cjs/utils/utils.tpl +26 -0
  253. package/dist/cjs/utils/xmlRequest.tpl +92 -0
  254. package/dist/cjs/writeTmpFile/index.d.ts +5 -0
  255. package/dist/cjs/writeTmpFile/index.js +34 -0
  256. package/dist/cjs/writeTmpFile/runtime.d.ts +5 -0
  257. package/dist/cjs/writeTmpFile/runtime.js +15 -0
  258. package/dist/cjs/writeTmpFile/writeConstants.d.ts +6 -0
  259. package/dist/cjs/writeTmpFile/writeConstants.js +13 -0
  260. package/dist/cjs/writeTmpFile/writeIndex.d.ts +5 -0
  261. package/dist/cjs/writeTmpFile/writeIndex.js +10 -0
  262. package/dist/cjs/writeTmpFile/writeTypes.d.ts +5 -0
  263. package/dist/cjs/writeTmpFile/writeTypes.js +12 -0
  264. package/dist/esm/components/ActionLogDrawer.tpl +148 -0
  265. package/dist/esm/components/AddDrawerForm.tpl +38 -0
  266. package/dist/esm/components/AuthorizeRender.tpl +11 -0
  267. package/dist/esm/components/Authorized.tpl +39 -0
  268. package/dist/esm/components/AuthorizedRoute.tpl +33 -0
  269. package/dist/esm/components/AvatarDropdown.tpl +101 -0
  270. package/dist/esm/components/CheckPermissions.tpl +100 -0
  271. package/dist/esm/components/CopyButton.tpl +49 -0
  272. package/dist/esm/components/CrudTable.tpl +650 -0
  273. package/dist/esm/components/DicDropDownList.tpl +60 -0
  274. package/dist/esm/components/DndTabs.tpl +159 -0
  275. package/dist/esm/components/DndTag.tpl +89 -0
  276. package/dist/esm/components/DropdownButton.tpl +123 -0
  277. package/dist/esm/components/DynamicIcon.tpl +73 -0
  278. package/dist/esm/components/DynamicIconModal.tpl +196 -0
  279. package/dist/esm/components/EditMultiLangForm.tpl +366 -0
  280. package/dist/esm/components/ExportPageWrapper.tpl +224 -0
  281. package/dist/esm/components/FlieListModal.tpl +79 -0
  282. package/dist/esm/components/FormUpload.tpl +561 -0
  283. package/dist/esm/components/GlobalFooter.tpl +21 -0
  284. package/dist/esm/components/GlobalHeader.less +51 -0
  285. package/dist/esm/components/GlobalHeader.tpl +313 -0
  286. package/dist/esm/components/HeaderSearch.less +32 -0
  287. package/dist/esm/components/HeaderSearch.tpl +92 -0
  288. package/dist/esm/components/HighlightStr.tpl +41 -0
  289. package/dist/esm/components/ImportDataUpload.tpl +94 -0
  290. package/dist/esm/components/ImportExecl.less +10 -0
  291. package/dist/esm/components/ImportExecl.tpl +108 -0
  292. package/dist/esm/components/KeepAliveDndTabs.tpl +151 -0
  293. package/dist/esm/components/KeepAliveTabs.less +23 -0
  294. package/dist/esm/components/KeepAliveTabs.tpl +136 -0
  295. package/dist/esm/components/Loading.css +19 -0
  296. package/dist/esm/components/LoadingSvg.tpl +14 -0
  297. package/dist/esm/components/MenuFooter.css +13 -0
  298. package/dist/esm/components/MenuFooter.tpl +24 -0
  299. package/dist/esm/components/MyColorPicker.tpl +19 -0
  300. package/dist/esm/components/MyFooterToolbar.css +6 -0
  301. package/dist/esm/components/MyFooterToolbar.tpl +56 -0
  302. package/dist/esm/components/MyPageContainer.tpl +43 -0
  303. package/dist/esm/components/MyReactEcharts.tpl +11 -0
  304. package/dist/esm/components/MySelect.tpl +267 -0
  305. package/dist/esm/components/MySelectLang.tpl +22 -0
  306. package/dist/esm/components/MySetps.tpl +85 -0
  307. package/dist/esm/components/MyTagList.tpl +57 -0
  308. package/dist/esm/components/MyUpload.less +39 -0
  309. package/dist/esm/components/MyUpload.tpl +609 -0
  310. package/dist/esm/components/NoFoundPage.tpl +46 -0
  311. package/dist/esm/components/PDFWrapper.tpl +96 -0
  312. package/dist/esm/components/PageLoading.tpl +16 -0
  313. package/dist/esm/components/PermissionSelect.tpl +230 -0
  314. package/dist/esm/components/ProFormUTCDatePicker.tpl +20 -0
  315. package/dist/esm/components/ProFormUTCRangePicker.tpl +20 -0
  316. package/dist/esm/components/PromiseRender.tpl +93 -0
  317. package/dist/esm/components/QrCodeModal.tpl +19 -0
  318. package/dist/esm/components/RandomAvatar.tpl +34 -0
  319. package/dist/esm/components/RefDrawerForm.tpl +75 -0
  320. package/dist/esm/components/ReportTable.tpl +336 -0
  321. package/dist/esm/components/Secured.tpl +66 -0
  322. package/dist/esm/components/ThemeSwitch.tpl +74 -0
  323. package/dist/esm/components/TimeTypeSelect.tpl +35 -0
  324. package/dist/esm/components/TipsTableTitle.tpl +37 -0
  325. package/dist/esm/components/UTCDatePicker.tpl +107 -0
  326. package/dist/esm/components/UTCRangePicker.tpl +142 -0
  327. package/dist/esm/components/UpdateForm.tpl +32 -0
  328. package/dist/esm/components/UserDisable.tpl +58 -0
  329. package/dist/esm/components/UserNoPagePermission.tpl +58 -0
  330. package/dist/esm/components/UserNoPermission.tpl +58 -0
  331. package/dist/esm/components/ViewTableItemDrawer.tpl +29 -0
  332. package/dist/esm/components/VolumeFormItem.tpl +59 -0
  333. package/dist/esm/components/WangEditor.css +53 -0
  334. package/dist/esm/components/WangEditor.tpl +174 -0
  335. package/dist/esm/components/WangEditorView.tpl +24 -0
  336. package/dist/esm/components/fileTypeMap.tpl +96 -0
  337. package/dist/esm/components/renderAuthorize.tpl +44 -0
  338. package/dist/esm/context/KeepAliveTabs.tpl +13 -0
  339. package/dist/esm/context/index.tpl +1 -0
  340. package/dist/esm/hooks/useAction.tpl +126 -0
  341. package/dist/esm/hooks/useActionLocales.tpl +108 -0
  342. package/dist/esm/hooks/useAuthority.tpl +27 -0
  343. package/dist/esm/hooks/useColumnTitle.tpl +47 -0
  344. package/dist/esm/hooks/useFormatLocale.tpl +82 -0
  345. package/dist/esm/hooks/useKeepAliveTabs.tpl +255 -0
  346. package/dist/esm/hooks/useMatchRoute.tpl +76 -0
  347. package/dist/esm/hooks/useMemoizedFn.tpl +32 -0
  348. package/dist/esm/hooks/useOutlet.tpl +20 -0
  349. package/dist/esm/hooks/usePageExport.tpl +155 -0
  350. package/dist/esm/hooks/useQueryTableList.tpl +91 -0
  351. package/dist/esm/hooks/useRouteAuth.tpl +122 -0
  352. package/dist/esm/index.d.ts +6 -0
  353. package/dist/esm/index.js +115 -0
  354. package/dist/esm/locales/en-US.d.ts +163 -0
  355. package/dist/esm/locales/en-US.js +9 -0
  356. package/dist/esm/locales/enUS/ActionLogDrawer.d.ts +6 -0
  357. package/dist/esm/locales/enUS/ActionLogDrawer.js +5 -0
  358. package/dist/esm/locales/enUS/DynamicIconModal.d.ts +4 -0
  359. package/dist/esm/locales/enUS/DynamicIconModal.js +3 -0
  360. package/dist/esm/locales/enUS/EditMultiLangForm.d.ts +16 -0
  361. package/dist/esm/locales/enUS/EditMultiLangForm.js +15 -0
  362. package/dist/esm/locales/enUS/File.d.ts +54 -0
  363. package/dist/esm/locales/enUS/File.js +54 -0
  364. package/dist/esm/locales/enUS/GlobalFooter.d.ts +4 -0
  365. package/dist/esm/locales/enUS/GlobalFooter.js +3 -0
  366. package/dist/esm/locales/enUS/GlobalHeader.d.ts +10 -0
  367. package/dist/esm/locales/enUS/GlobalHeader.js +9 -0
  368. package/dist/esm/locales/enUS/MyFooterToolbar.d.ts +5 -0
  369. package/dist/esm/locales/enUS/MyFooterToolbar.js +4 -0
  370. package/dist/esm/locales/enUS/PermissionSelect.d.ts +4 -0
  371. package/dist/esm/locales/enUS/PermissionSelect.js +3 -0
  372. package/dist/esm/locales/enUS/TimeTypeSelect.d.ts +6 -0
  373. package/dist/esm/locales/enUS/TimeTypeSelect.js +5 -0
  374. package/dist/esm/locales/enUS/common.d.ts +74 -0
  375. package/dist/esm/locales/enUS/common.js +76 -0
  376. package/dist/esm/locales/enUS/index.d.ts +163 -0
  377. package/dist/esm/locales/enUS/index.js +18 -0
  378. package/dist/esm/locales/enUS/pages.d.ts +10 -0
  379. package/dist/esm/locales/enUS/pages.js +9 -0
  380. package/dist/esm/locales/th-TH.d.ts +163 -0
  381. package/dist/esm/locales/th-TH.js +9 -0
  382. package/dist/esm/locales/zh-CN.d.ts +163 -0
  383. package/dist/esm/locales/zh-CN.js +9 -0
  384. package/dist/esm/locales/zh-TW.d.ts +162 -0
  385. package/dist/esm/locales/zh-TW.js +9 -0
  386. package/dist/esm/locales/zhCN/ActionLogDrawer.d.ts +6 -0
  387. package/dist/esm/locales/zhCN/ActionLogDrawer.js +5 -0
  388. package/dist/esm/locales/zhCN/DynamicIconModal.d.ts +4 -0
  389. package/dist/esm/locales/zhCN/DynamicIconModal.js +3 -0
  390. package/dist/esm/locales/zhCN/EditMultiLangForm.d.ts +16 -0
  391. package/dist/esm/locales/zhCN/EditMultiLangForm.js +15 -0
  392. package/dist/esm/locales/zhCN/File.d.ts +54 -0
  393. package/dist/esm/locales/zhCN/File.js +54 -0
  394. package/dist/esm/locales/zhCN/GlobalFooter.d.ts +4 -0
  395. package/dist/esm/locales/zhCN/GlobalFooter.js +3 -0
  396. package/dist/esm/locales/zhCN/GlobalHeader.d.ts +10 -0
  397. package/dist/esm/locales/zhCN/GlobalHeader.js +9 -0
  398. package/dist/esm/locales/zhCN/MyFooterToolbar.d.ts +5 -0
  399. package/dist/esm/locales/zhCN/MyFooterToolbar.js +4 -0
  400. package/dist/esm/locales/zhCN/PermissionSelect.d.ts +4 -0
  401. package/dist/esm/locales/zhCN/PermissionSelect.js +3 -0
  402. package/dist/esm/locales/zhCN/TimeTypeSelect.d.ts +6 -0
  403. package/dist/esm/locales/zhCN/TimeTypeSelect.js +5 -0
  404. package/dist/esm/locales/zhCN/common.d.ts +74 -0
  405. package/dist/esm/locales/zhCN/common.js +76 -0
  406. package/dist/esm/locales/zhCN/index.d.ts +163 -0
  407. package/dist/esm/locales/zhCN/index.js +18 -0
  408. package/dist/esm/locales/zhCN/pages.d.ts +10 -0
  409. package/dist/esm/locales/zhCN/pages.js +9 -0
  410. package/dist/esm/locales/zhTW/ActionLogDrawer.d.ts +6 -0
  411. package/dist/esm/locales/zhTW/ActionLogDrawer.js +5 -0
  412. package/dist/esm/locales/zhTW/DynamicIconModal.d.ts +4 -0
  413. package/dist/esm/locales/zhTW/DynamicIconModal.js +3 -0
  414. package/dist/esm/locales/zhTW/EditMultiLangForm.d.ts +16 -0
  415. package/dist/esm/locales/zhTW/EditMultiLangForm.js +15 -0
  416. package/dist/esm/locales/zhTW/File.d.ts +53 -0
  417. package/dist/esm/locales/zhTW/File.js +53 -0
  418. package/dist/esm/locales/zhTW/GlobalFooter.d.ts +4 -0
  419. package/dist/esm/locales/zhTW/GlobalFooter.js +3 -0
  420. package/dist/esm/locales/zhTW/GlobalHeader.d.ts +10 -0
  421. package/dist/esm/locales/zhTW/GlobalHeader.js +9 -0
  422. package/dist/esm/locales/zhTW/MyFooterToolbar.d.ts +5 -0
  423. package/dist/esm/locales/zhTW/MyFooterToolbar.js +4 -0
  424. package/dist/esm/locales/zhTW/PermissionSelect.d.ts +4 -0
  425. package/dist/esm/locales/zhTW/PermissionSelect.js +3 -0
  426. package/dist/esm/locales/zhTW/TimeTypeSelect.d.ts +6 -0
  427. package/dist/esm/locales/zhTW/TimeTypeSelect.js +5 -0
  428. package/dist/esm/locales/zhTW/common.d.ts +74 -0
  429. package/dist/esm/locales/zhTW/common.js +76 -0
  430. package/dist/esm/locales/zhTW/index.d.ts +162 -0
  431. package/dist/esm/locales/zhTW/index.js +18 -0
  432. package/dist/esm/locales/zhTW/pages.d.ts +10 -0
  433. package/dist/esm/locales/zhTW/pages.js +9 -0
  434. package/dist/esm/services/index.tpl +160 -0
  435. package/dist/esm/types/ActionLogDrawerTypes.d.ts +1 -0
  436. package/dist/esm/types/ActionLogDrawerTypes.js +1 -0
  437. package/dist/esm/types/AvatarDropdownTypes.d.ts +1 -0
  438. package/dist/esm/types/AvatarDropdownTypes.js +1 -0
  439. package/dist/esm/types/CrudTableTypes.d.ts +1 -0
  440. package/dist/esm/types/CrudTableTypes.js +1 -0
  441. package/dist/esm/types/DatePickerTypes.d.ts +1 -0
  442. package/dist/esm/types/DatePickerTypes.js +1 -0
  443. package/dist/esm/types/DicDropDownListTypes.d.ts +1 -0
  444. package/dist/esm/types/DicDropDownListTypes.js +1 -0
  445. package/dist/esm/types/DndTabsTypes.d.ts +1 -0
  446. package/dist/esm/types/DndTabsTypes.js +1 -0
  447. package/dist/esm/types/DndTagTypes.d.ts +1 -0
  448. package/dist/esm/types/DndTagTypes.js +1 -0
  449. package/dist/esm/types/DropdownButtonTypes.d.ts +2 -0
  450. package/dist/esm/types/DropdownButtonTypes.js +2 -0
  451. package/dist/esm/types/DynamicIconTypes.d.ts +1 -0
  452. package/dist/esm/types/DynamicIconTypes.js +1 -0
  453. package/dist/esm/types/EditMultiLangFormTypes.d.ts +1 -0
  454. package/dist/esm/types/EditMultiLangFormTypes.js +1 -0
  455. package/dist/esm/types/ExportPageWrapperTypes.d.ts +1 -0
  456. package/dist/esm/types/ExportPageWrapperTypes.js +1 -0
  457. package/dist/esm/types/GlobalHeaderTypes.d.ts +1 -0
  458. package/dist/esm/types/GlobalHeaderTypes.js +1 -0
  459. package/dist/esm/types/HeaderSearchTypes.d.ts +1 -0
  460. package/dist/esm/types/HeaderSearchTypes.js +1 -0
  461. package/dist/esm/types/HighlightStrTypes.d.ts +1 -0
  462. package/dist/esm/types/HighlightStrTypes.js +1 -0
  463. package/dist/esm/types/ImportDataUploadTypes.d.ts +1 -0
  464. package/dist/esm/types/ImportDataUploadTypes.js +1 -0
  465. package/dist/esm/types/ImportExeclTypes.d.ts +1 -0
  466. package/dist/esm/types/ImportExeclTypes.js +1 -0
  467. package/dist/esm/types/KeepAliveTabsTypes.d.ts +1 -0
  468. package/dist/esm/types/KeepAliveTabsTypes.js +1 -0
  469. package/dist/esm/types/MenuFooterTypes.d.ts +1 -0
  470. package/dist/esm/types/MenuFooterTypes.js +1 -0
  471. package/dist/esm/types/MyFooterToolbarTypes.d.ts +1 -0
  472. package/dist/esm/types/MyFooterToolbarTypes.js +1 -0
  473. package/dist/esm/types/MyPageContainerTypes.d.ts +1 -0
  474. package/dist/esm/types/MyPageContainerTypes.js +1 -0
  475. package/dist/esm/types/MySelectLangTypes.d.ts +1 -0
  476. package/dist/esm/types/MySelectLangTypes.js +1 -0
  477. package/dist/esm/types/MySelectTypes.d.ts +1 -0
  478. package/dist/esm/types/MySelectTypes.js +1 -0
  479. package/dist/esm/types/MySetpsTypes.d.ts +1 -0
  480. package/dist/esm/types/MySetpsTypes.js +1 -0
  481. package/dist/esm/types/MyTagListTypes.d.ts +1 -0
  482. package/dist/esm/types/MyTagListTypes.js +1 -0
  483. package/dist/esm/types/MyUploadTypes.d.ts +1 -0
  484. package/dist/esm/types/MyUploadTypes.js +1 -0
  485. package/dist/esm/types/PermissionSelectTypes.d.ts +1 -0
  486. package/dist/esm/types/PermissionSelectTypes.js +1 -0
  487. package/dist/esm/types/QrCodeModalTypes.d.ts +1 -0
  488. package/dist/esm/types/QrCodeModalTypes.js +1 -0
  489. package/dist/esm/types/RandomAvatarTypes.d.ts +1 -0
  490. package/dist/esm/types/RandomAvatarTypes.js +1 -0
  491. package/dist/esm/types/RefDrawerFormTypes.d.ts +1 -0
  492. package/dist/esm/types/RefDrawerFormTypes.js +1 -0
  493. package/dist/esm/types/ReportTableTypes.d.ts +1 -0
  494. package/dist/esm/types/ReportTableTypes.js +1 -0
  495. package/dist/esm/types/ThemeSwitchTypes.d.ts +1 -0
  496. package/dist/esm/types/ThemeSwitchTypes.js +1 -0
  497. package/dist/esm/types/ViewTableItemDrawerTypes.d.ts +1 -0
  498. package/dist/esm/types/ViewTableItemDrawerTypes.js +1 -0
  499. package/dist/esm/types/VolumeFormItemTypes.d.ts +1 -0
  500. package/dist/esm/types/VolumeFormItemTypes.js +1 -0
  501. package/dist/esm/types/WangEditorTypes.d.ts +1 -0
  502. package/dist/esm/types/WangEditorTypes.js +1 -0
  503. package/dist/esm/types/index.d.ts +35 -0
  504. package/dist/esm/types/index.js +35 -0
  505. package/dist/esm/types/servicesTypes.d.ts +1 -0
  506. package/dist/esm/types/servicesTypes.js +1 -0
  507. package/dist/esm/utils/Authorized.tpl +17 -0
  508. package/dist/esm/utils/authority.tpl +51 -0
  509. package/dist/esm/utils/authorityFunction.tpl +17 -0
  510. package/dist/esm/utils/excelHelper.tpl +825 -0
  511. package/dist/esm/utils/exportPage.tpl +784 -0
  512. package/dist/esm/utils/fileHelper.tpl +251 -0
  513. package/dist/esm/utils/importHelper.tpl +283 -0
  514. package/dist/esm/utils/utils.tpl +26 -0
  515. package/dist/esm/utils/xmlRequest.tpl +92 -0
  516. package/dist/esm/writeTmpFile/index.d.ts +5 -0
  517. package/dist/esm/writeTmpFile/index.js +5 -0
  518. package/dist/esm/writeTmpFile/runtime.d.ts +5 -0
  519. package/dist/esm/writeTmpFile/runtime.js +8 -0
  520. package/dist/esm/writeTmpFile/writeConstants.d.ts +6 -0
  521. package/dist/esm/writeTmpFile/writeConstants.js +7 -0
  522. package/dist/esm/writeTmpFile/writeIndex.d.ts +5 -0
  523. package/dist/esm/writeTmpFile/writeIndex.js +4 -0
  524. package/dist/esm/writeTmpFile/writeTypes.d.ts +5 -0
  525. package/dist/esm/writeTmpFile/writeTypes.js +7 -0
  526. package/package.json +58 -0
@@ -0,0 +1,313 @@
1
+ import {
2
+ BranchesOutlined,
3
+ CloudDownloadOutlined,
4
+ EllipsisOutlined,
5
+ FileDoneOutlined,
6
+ FullscreenOutlined,
7
+ HomeOutlined,
8
+ QuestionCircleOutlined,
9
+ } from '@ant-design/icons';
10
+ import {
11
+ AvatarDropdown,
12
+ getLocale,
13
+ HeaderSearch,
14
+ history,
15
+ MySelectLang,
16
+ ThemeSwitch,
17
+ useIntl,
18
+ useModel,
19
+ } from '@umijs/max';
20
+ import { Dropdown, Tag, Tooltip } from 'antd';
21
+ import { toggleFull } from 'be-full';
22
+ import React, { Fragment, useMemo } from 'react';
23
+ import { GlobalHeaderProps, GlobalRightItem } from '../types';
24
+ import styles from './GlobalHeader.less';
25
+
26
+ const VERSION_KEY = 'version';
27
+ const ENV_TAG_COLOR: GlobalHeaderProps['ENVTagColor'] = {
28
+ dev: 'orange',
29
+ pre: 'orange',
30
+ test: 'green',
31
+ prod: 'green',
32
+ };
33
+
34
+ /**
35
+ * 全局头部组件
36
+ */
37
+ const GlobalHeader: React.FC<GlobalHeaderProps> = (props) => {
38
+ const { replaceItems, insertItems, ENVTagColor = ENV_TAG_COLOR } = props;
39
+
40
+ const { setIsDarkTheme, templateDownloadModalOpenChange } = useModel('global');
41
+
42
+ // 容错处理:防止useModel('globalRef')不存在或其中某个ref缺失
43
+ let globalRefs;
44
+ try {
45
+ globalRefs = useModel('globalRef');
46
+ } catch (error) {
47
+ console.warn('useModel("globalRef") not available:', error);
48
+ globalRefs = {};
49
+ }
50
+
51
+ const {
52
+ globalAuthRef,
53
+ globalSystemHelperRef,
54
+ globalUserSettingRef,
55
+ globalSystemVersionRef,
56
+ globalLangSettingRef,
57
+ globalThemeSettingRef,
58
+ } = globalRefs || {};
59
+
60
+ const { formatMessage } = useIntl();
61
+
62
+ const groupMap: Record<string, any> = {
63
+ auth: globalAuthRef || null,
64
+ helper: globalSystemHelperRef || null,
65
+ avatar: globalUserSettingRef || null,
66
+ version: globalSystemVersionRef || null,
67
+ selectLang: globalLangSettingRef || null,
68
+ themeSwitch: globalThemeSettingRef || null,
69
+ };
70
+
71
+ const items: GlobalRightItem[] = [
72
+ {
73
+ key: 'AuthDropdown',
74
+ group: groupMap.auth,
75
+ component: <></>,
76
+ },
77
+ {
78
+ key: 'HeaderSearch',
79
+ group: groupMap.helper,
80
+ component: (
81
+ <HeaderSearch
82
+ className={`${styles.action} ${styles.search}`}
83
+ placeholder="系统搜索"
84
+ defaultValue="广东翠峰"
85
+ options={[
86
+ {
87
+ label: <a href="http://www.cfmm.com.cn">广东翠峰</a>,
88
+ value: '广东翠峰',
89
+ },
90
+ ]}
91
+ onSearch={() => {
92
+ //输入文字,查询出来的数据
93
+ }}
94
+ />
95
+ ),
96
+ },
97
+ {
98
+ key: 'Website',
99
+ group: groupMap.helper,
100
+ component: (
101
+ <Tooltip
102
+ title={formatMessage({
103
+ id: 'cfmmUI.GlobalHeader.button.Website',
104
+ defaultMessage: '官方网站',
105
+ })}
106
+ >
107
+ <a
108
+ style={{
109
+ color: 'inherit',
110
+ }}
111
+ target="_blank"
112
+ href="http://www.cfmm.com.cn"
113
+ rel="noopener noreferrer"
114
+ className={styles.action}
115
+ >
116
+ <HomeOutlined />
117
+ </a>
118
+ </Tooltip>
119
+ ),
120
+ },
121
+ {
122
+ key: 'helpDocs',
123
+ group: groupMap.helper,
124
+ component: (
125
+ <Tooltip
126
+ title={formatMessage({
127
+ id: 'cfmmUI.GlobalHeader.button.helpDocs',
128
+ defaultMessage: '帮助文档',
129
+ })}
130
+ >
131
+ <a
132
+ style={{
133
+ color: 'inherit',
134
+ }}
135
+ target="_blank"
136
+ href={`${HELP_DOCS_URL}${getLocale() === 'en-US' ? '' : getLocale()}`}
137
+ rel="noopener noreferrer"
138
+ className={styles.action}
139
+ >
140
+ <QuestionCircleOutlined />
141
+ </a>
142
+ </Tooltip>
143
+ ),
144
+ },
145
+ {
146
+ key: 'Full',
147
+ group: groupMap.helper,
148
+ component: (
149
+ <Tooltip title={''}>
150
+ <a
151
+ style={{
152
+ color: 'inherit',
153
+ }}
154
+ className={styles.action}
155
+ onClick={() => {
156
+ toggleFull();
157
+ }}
158
+ >
159
+ <FullscreenOutlined />
160
+ </a>
161
+ </Tooltip>
162
+ ),
163
+ },
164
+ {
165
+ key: 'more',
166
+ group: groupMap.helper,
167
+ component: (
168
+ <Dropdown
169
+ menu={{
170
+ items: [
171
+ {
172
+ key: '1',
173
+ icon: <FileDoneOutlined />,
174
+ label: (
175
+ <a onClick={() => templateDownloadModalOpenChange?.(true)}>
176
+ {formatMessage({
177
+ id: 'cfmmUI.GlobalHeader.button.template',
178
+ defaultMessage: '模板下载',
179
+ })}
180
+ </a>
181
+ ),
182
+ },
183
+ {
184
+ key: '2',
185
+ icon: <CloudDownloadOutlined />,
186
+ label: (
187
+ <a onClick={() => history.push('/clientDashboard/clientDownloadDashboard?s=f')}>
188
+ {formatMessage({
189
+ id: 'cfmmUI.GlobalHeader.button.client',
190
+ defaultMessage: '客户端下载',
191
+ })}
192
+ </a>
193
+ ),
194
+ },
195
+ ],
196
+ }}
197
+ >
198
+ <EllipsisOutlined style={{ cursor: 'pointer', padding: '0 12px' }} />
199
+ </Dropdown>
200
+ ),
201
+ },
202
+ {
203
+ key: 'AvatarDropdown',
204
+ group: groupMap.avatar,
205
+ component: <AvatarDropdown className={styles.action} />,
206
+ },
207
+ {
208
+ key: 'REACT_APP_ENV',
209
+ group: groupMap.version,
210
+ component: REACT_APP_ENV ? (
211
+ <Tooltip
212
+ title={
213
+ <>
214
+ <div>{`Environment:${REACT_APP_ENV!.toLocaleUpperCase()}`}</div>
215
+ <div>{`Git Commit Hash Code:${localStorage.getItem(VERSION_KEY)?.toUpperCase()}`}</div>
216
+ </>
217
+ }
218
+ >
219
+ <Tag
220
+ icon={<BranchesOutlined />}
221
+ color={ENVTagColor[REACT_APP_ENV]}
222
+ >{`${REACT_APP_ENV!.toLocaleUpperCase()}-${localStorage.getItem(VERSION_KEY)?.toUpperCase()}`}</Tag>
223
+ </Tooltip>
224
+ ) : null,
225
+ },
226
+ {
227
+ key: 'MySelectLang',
228
+ group: groupMap.selectLang,
229
+ component: <MySelectLang className={styles.action} />,
230
+ },
231
+ {
232
+ key: 'ThemeSwitch',
233
+ group: groupMap.themeSwitch,
234
+ component: <ThemeSwitch style={{ height: 22 }} onThemeChange={setIsDarkTheme} />,
235
+ },
236
+ ];
237
+
238
+ const getModifiedItems = useMemo(() => {
239
+ if (!replaceItems?.length && !insertItems?.length) {
240
+ return items;
241
+ }
242
+
243
+ let newItems = [...items];
244
+
245
+ // 处理替换的项目
246
+ if (replaceItems?.length) {
247
+ const replaceKeys = new Set(replaceItems.map((item) => item.key));
248
+
249
+ newItems = newItems.map((item) =>
250
+ replaceKeys.has(item.key) ? replaceItems.find((replaceItem) => replaceItem.key === item.key) || item : item,
251
+ );
252
+ }
253
+
254
+ // 处理插入的项目
255
+ if (insertItems?.length) {
256
+ // 创建副本以避免直接修改原数组
257
+ const itemsWithInserts = [...newItems];
258
+
259
+ // 按索引从大到小排序,避免插入后索引变化
260
+ const sortedInserts = [...insertItems].sort((a, b) => b.index - a.index);
261
+
262
+ sortedInserts.forEach((item) => {
263
+ itemsWithInserts.splice(item.index, 0, item as GlobalRightItem);
264
+ });
265
+
266
+ newItems = itemsWithInserts;
267
+ }
268
+
269
+ return newItems;
270
+ }, [items, replaceItems, insertItems]);
271
+
272
+ // 按group分组渲染组件
273
+ const renderGroupedItems = useMemo(() => {
274
+ const result: React.ReactNode[] = [];
275
+ const renderedGroups = new Set<string>(); // 记录已渲染的分组
276
+
277
+ getModifiedItems.forEach((item, index) => {
278
+ if (item.group) {
279
+ const groupKey = Object.keys(groupMap).find((key) => groupMap[key as keyof typeof groupMap] === item.group);
280
+ const ref = groupKey ? groupMap[groupKey as keyof typeof groupMap] : null;
281
+
282
+ if (groupKey && ref && !renderedGroups.has(groupKey)) {
283
+ // 如果这个分组还没有渲染过,渲染整个分组
284
+ renderedGroups.add(groupKey);
285
+
286
+ // 找到所有属于这个分组的items
287
+ const groupItems = getModifiedItems.filter((groupItem) => groupItem.group === item.group);
288
+
289
+ result.push(
290
+ <div key={item.key} ref={ref} style={{ display: 'flex', alignItems: 'center', height: '100%' }}>
291
+ {groupItems.map((groupItem) => (
292
+ <Fragment key={groupItem.key}>{groupItem.component}</Fragment>
293
+ ))}
294
+ </div>,
295
+ );
296
+ } else if (!groupKey || !ref) {
297
+ // 如果分组的ref不存在,直接渲染组件
298
+ result.push(<Fragment key={item.key}>{item.component}</Fragment>);
299
+ }
300
+ // 如果分组已经渲染过,跳过这个item
301
+ } else {
302
+ // 没有分组的item直接渲染
303
+ result.push(<Fragment key={item.key}>{item.component}</Fragment>);
304
+ }
305
+ });
306
+
307
+ return result;
308
+ }, [getModifiedItems, groupMap]);
309
+
310
+ return <div className={styles.right}>{renderGroupedItems}</div>;
311
+ };
312
+
313
+ export default React.memo(GlobalHeader);
@@ -0,0 +1,32 @@
1
+ .headerSearch {
2
+ .input {
3
+ width: 0;
4
+ min-width: 0;
5
+ overflow: hidden;
6
+ background: transparent;
7
+ border-radius: 0;
8
+ transition: width 0.3s, margin-left 0.3s;
9
+
10
+ :global(.ant-select-selection) {
11
+ background: transparent;
12
+ }
13
+
14
+ input {
15
+ padding-right: 0;
16
+ padding-left: 0;
17
+ border: 0;
18
+ box-shadow: none !important;
19
+ }
20
+
21
+ &,
22
+ &:hover,
23
+ &:focus {
24
+ border-bottom: 1px solid @border-color-base;
25
+ }
26
+
27
+ &.show {
28
+ width: 210px;
29
+ margin-left: 8px;
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,92 @@
1
+ import { SearchOutlined } from "@ant-design/icons";
2
+ import { AutoComplete, Input, InputRef } from "antd";
3
+ import React, { useRef } from "react";
4
+ import useMergeValue from "use-merge-value";
5
+ import classNames from "classnames";
6
+ import styles from "./HeaderSearch.less";
7
+ import { HeaderSearchProps } from "../types";
8
+
9
+ //头部查询框
10
+ const HeaderSearch: React.FC<HeaderSearchProps> = (props) => {
11
+ const {
12
+ className,
13
+ defaultValue,
14
+ onVisibleChange,
15
+ placeholder,
16
+ open,
17
+ defaultOpen,
18
+ ...restProps
19
+ } = props;
20
+
21
+ const inputRef = useRef<InputRef | null>(null);
22
+
23
+ const [value, setValue] = useMergeValue<string | undefined>(defaultValue, {
24
+ value: props.value,
25
+ onChange: props.onChange,
26
+ });
27
+
28
+ const [searchMode, setSearchMode] = useMergeValue(defaultOpen || false, {
29
+ value: props.open,
30
+ onChange: onVisibleChange,
31
+ });
32
+
33
+ const inputClass = classNames(styles.input, {
34
+ [styles.show]: searchMode,
35
+ });
36
+
37
+ return (
38
+ <div
39
+ className={classNames(className, styles.headerSearch)}
40
+ onClick={() => {
41
+ setSearchMode(true);
42
+ if (searchMode && inputRef.current) {
43
+ inputRef.current.focus();
44
+ }
45
+ }}
46
+ onTransitionEnd={({ propertyName }) => {
47
+ if (propertyName === "width" && !searchMode) {
48
+ if (onVisibleChange) {
49
+ onVisibleChange(searchMode);
50
+ }
51
+ }
52
+ }}
53
+ >
54
+ <SearchOutlined
55
+ key="Icon"
56
+ style={{
57
+ cursor: "pointer",
58
+ }}
59
+ />
60
+ <AutoComplete
61
+ key="AutoComplete"
62
+ className={inputClass}
63
+ value={value}
64
+ style={{
65
+ height: 28,
66
+ marginTop: -6,
67
+ }}
68
+ options={restProps.options}
69
+ onChange={setValue}
70
+ >
71
+ <Input
72
+ ref={inputRef}
73
+ defaultValue={defaultValue}
74
+ aria-label={placeholder}
75
+ placeholder={placeholder}
76
+ onKeyDown={(e) => {
77
+ if (e.key === "Enter") {
78
+ if (restProps.onSearch) {
79
+ restProps.onSearch(value);
80
+ }
81
+ }
82
+ }}
83
+ onBlur={() => {
84
+ setSearchMode(false);
85
+ }}
86
+ />
87
+ </AutoComplete>
88
+ </div>
89
+ );
90
+ };
91
+
92
+ export default React.memo(HeaderSearch);
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { StringToHighlightingFnType, HighlightStrProps } from '../types';
3
+
4
+ /**
5
+ * 切割高亮字符串
6
+ * @param value 原始值
7
+ * @param highlightValue 高亮的值
8
+ * @returns {hasHighlight: index !== -1, beforeStr, highlightStr, afterStr}
9
+ */
10
+ export const stringToHighlighting: StringToHighlightingFnType = (value, highlightValue) => {
11
+ const index = value.toLocaleLowerCase().indexOf(highlightValue.toLocaleLowerCase());
12
+ const beforeStr = value.substring(0, index);
13
+ const highlightStr = value.substring(index, index + highlightValue.length);
14
+ const afterStr = value.slice(index + highlightValue.length);
15
+
16
+ return { hasHighlight: index !== -1, beforeStr, highlightStr, afterStr };
17
+ };
18
+
19
+
20
+ const style = { whiteSpace: 'nowrap', paddingBottom: 2 };
21
+
22
+ /**
23
+ * 高亮搜索条件
24
+ * @param {HighlightStrProps} props
25
+ */
26
+ const HighlightStr = (props: HighlightStrProps) => {
27
+ const { value, highlightValue, highlightStyle = {} } = props;
28
+ const { hasHighlight, beforeStr, highlightStr, afterStr } = stringToHighlighting(value, highlightValue);
29
+
30
+ return hasHighlight ? (
31
+ <span style={style}>
32
+ {beforeStr}
33
+ <span style={{ color: '#f50', ...highlightStyle }}>{highlightStr}</span>
34
+ {afterStr}
35
+ </span>
36
+ ) : (
37
+ <span style={style}>{value}</span>
38
+ );
39
+ };
40
+
41
+ export default React.memo(HighlightStr);
@@ -0,0 +1,94 @@
1
+ import { UploadOutlined } from '@ant-design/icons';
2
+ import { useIntl } from '@umijs/max';
3
+ import { Button, message, Upload, UploadProps } from 'antd';
4
+ import React from 'react';
5
+ import styles from './MyUpload.less';
6
+ import { ImportDataUploadProps } from '../types';
7
+
8
+ const ImportDataUpload: React.FC<ImportDataUploadProps> = (props) => {
9
+ const {
10
+ title,
11
+ uploadProps,
12
+ buttonProps,
13
+ children,
14
+ showDefautlMessage = true,
15
+ accept = '.txt,.json',
16
+ onImport,
17
+ } = props;
18
+
19
+ const { formatMessage } = useIntl();
20
+
21
+ // 导入文件
22
+ const handleCustomRequest: UploadProps['customRequest'] = async (info) => {
23
+ const { file } = info;
24
+ try {
25
+ let hide: any;
26
+ if (showDefautlMessage)
27
+ hide = message.loading(
28
+ formatMessage({
29
+ id: 'pages.File.import.waitingMessage',
30
+ defaultMessage: '正在导入',
31
+ }),
32
+ 0,
33
+ );
34
+ const reader = new FileReader();
35
+
36
+ reader.onload = (e) => {
37
+ hide?.()
38
+ try {
39
+ onImport?.(e.target?.result as any);
40
+
41
+ message.success(
42
+ formatMessage({
43
+ id: 'pages.File.import.successMessage',
44
+ defaultMessage: '导入成功!',
45
+ }),
46
+ );
47
+ } catch (error) {
48
+ message.error(
49
+ formatMessage(
50
+ {
51
+ id: 'pages.File.import.failMessage',
52
+ defaultMessage: '导入失败,请重试!',
53
+ },
54
+ {msg: JSON.stringify(error)}
55
+ ),
56
+ );
57
+ console.error('解析错误:', error);
58
+ }
59
+ };
60
+
61
+ reader.readAsText(file as File);
62
+ } catch (error: any) {
63
+ // 这里可以抛出文件类型错误不正确的相关提示
64
+ message.error(
65
+ formatMessage({
66
+ id: 'pages.File.format.failMessage',
67
+ defaultMessage: '文件格式不正确',
68
+ }) + error.message,
69
+ );
70
+
71
+ console.log('error', error);
72
+ }
73
+ };
74
+
75
+ return (
76
+ <Upload
77
+ className={styles.importNotList}
78
+ maxCount={1}
79
+ customRequest={handleCustomRequest}
80
+ {...uploadProps}
81
+ accept={accept}
82
+ >
83
+ {children ? (
84
+ children
85
+ ) : (
86
+ <Button type="primary" icon={<UploadOutlined />} {...buttonProps}>
87
+ {title ? title : formatMessage({ id: 'pages.File.import', defaultMessage: '导入' })}
88
+ </Button>
89
+ )}
90
+ </Upload>
91
+ );
92
+ };
93
+
94
+ export default React.memo(ImportDataUpload);
@@ -0,0 +1,10 @@
1
+ .importExexl {
2
+ // 不显示上传的文件列表
3
+ :global(.ant-upload-list) {
4
+ display: none;
5
+ }
6
+
7
+ :global(.mainAnt-upload-list) {
8
+ display: none;
9
+ }
10
+ }
@@ -0,0 +1,108 @@
1
+ import { importExexl } from '../utils/importHelper';
2
+ import { UploadOutlined } from '@ant-design/icons';
3
+ import { useIntl } from '@umijs/max';
4
+ import type { UploadFile, UploadProps } from 'antd';
5
+ import { Button, message, Upload } from 'antd';
6
+ import React from 'react';
7
+ import { ImportExeclProps } from '../types';
8
+ import styles from './ImportExecl.less';
9
+
10
+ const ImportExecl = <T,>(props: ImportExeclProps<T>) => {
11
+ const {
12
+ accept = ".xlsx, .xls",
13
+ title,
14
+ max,
15
+ header,
16
+ rangeStart,
17
+ uploadProps,
18
+ buttonProps,
19
+ children,
20
+ showDefautlMessage = true,
21
+ onChange,
22
+ } = props;
23
+
24
+ const { formatMessage } = useIntl();
25
+
26
+ // 导入文件
27
+ const handleCustomRequest: UploadProps['customRequest'] = async (info) => {
28
+ let hide;
29
+ try {
30
+ if (showDefautlMessage)
31
+ hide = message.loading(
32
+ formatMessage({
33
+ id: 'cfmmUI.File.import.waitingMessage',
34
+ defaultMessage: '正在导入',
35
+ }),
36
+ 0,
37
+ );
38
+
39
+ const data = await importExexl({ file: info.file, rangeStart, max, header });
40
+ const result = await onChange?.(data as T, info.file as UploadFile);
41
+
42
+ hide?.();
43
+ if (result && showDefautlMessage) {
44
+ if (result.success) {
45
+ if (result.data && typeof result.data === 'number') {
46
+ message.success(
47
+ formatMessage(
48
+ {
49
+ id: 'cfmmUI.File.import.exceed.success',
50
+ defaultMessage: '成功导入 {count} 条数据',
51
+ },
52
+ { count: result.data },
53
+ ),
54
+ );
55
+ } else {
56
+ message.success(
57
+ formatMessage({
58
+ id: 'cfmmUI.File.import.successMessage',
59
+ defaultMessage: '导入成功!',
60
+ }),
61
+ );
62
+ }
63
+ } else {
64
+ message.error(
65
+ formatMessage(
66
+ {
67
+ id: 'cfmmUI.File.import.failMessage',
68
+ defaultMessage: '导入失败,请重试!',
69
+ },
70
+ { msg: result.failMsg ? JSON.stringify(result.failMsg) : undefined },
71
+ ),
72
+ );
73
+ }
74
+ }
75
+ } catch (error: any) {
76
+ hide?.();
77
+ // 这里可以抛出文件类型错误不正确的相关提示
78
+ message.error(
79
+ formatMessage({
80
+ id: 'cfmmUI.File.format.failMessage',
81
+ defaultMessage: '文件格式不正确',
82
+ }) + error.message,
83
+ );
84
+
85
+ console.log('error', error);
86
+ }
87
+ };
88
+
89
+ return (
90
+ <Upload
91
+ accept={accept}
92
+ className={styles.importExexl}
93
+ maxCount={1}
94
+ customRequest={handleCustomRequest}
95
+ {...uploadProps}
96
+ >
97
+ {children ? (
98
+ children
99
+ ) : (
100
+ <Button type="primary" icon={<UploadOutlined />} {...buttonProps}>
101
+ {title ? title : formatMessage({ id: 'cfmmUI.File.import', defaultMessage: '导入' })}
102
+ </Button>
103
+ )}
104
+ </Upload>
105
+ );
106
+ };
107
+
108
+ export default React.memo(ImportExecl) as <T,>(props: ImportExeclProps<T>) => React.ReactElement;