@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,251 @@
1
+ import { request } from '@umijs/max';
2
+ import { message } from 'antd';
3
+ import { Base64 } from 'js-base64';
4
+
5
+ /**
6
+ * 文件大小
7
+ * @param size
8
+ * @returns
9
+ */
10
+ export const formatBytes = (bytes: number | undefined, decimals = 2) => {
11
+ if (!bytes && bytes !== 0) return;
12
+ if (bytes === 0) return '0 B';
13
+ const k = 1024;
14
+ const dm = decimals < 0 ? 0 : decimals;
15
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
16
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
17
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
18
+ };
19
+
20
+ /**
21
+ * 解析Content-Disposition中的文件名
22
+ * @param disposition 请求头Content-Disposition中的文件名
23
+ * @returns fileName
24
+ */
25
+ export function decodeFileName(disposition: string): string {
26
+ try {
27
+ // 提取文件名
28
+ const regex = /filename=(.*)/;
29
+ const matches = disposition.match(regex);
30
+ if (!matches || !matches[1]) return '下载文件';
31
+
32
+ // 解码
33
+ return decodeURIComponent(escape(matches[1]));
34
+ } catch (error) {
35
+ console.error('解码文件名失败:', error);
36
+ return '下载文件';
37
+ }
38
+ }
39
+
40
+ /**
41
+ * 将文件id转为下载的url
42
+ * @param fileId 文件id
43
+ * @returns url
44
+ */
45
+ export const fileIdToViewerUrl = (fileId?: string) => {
46
+ if (!fileId) return;
47
+ try {
48
+ return `${BACKEND_API_URL}minio/${fileId}`;
49
+ } catch (error) {
50
+ console.error('文件id转url失败:', error);
51
+ }
52
+ };
53
+
54
+ /**
55
+ * 通过URL预览文件
56
+ * @param fileId 文件id
57
+ * @param fileName 文件名
58
+ */
59
+ export const fileOnLineViewerFromId = (fileId: string, fileName?: string) => {
60
+ const fileUrl = fileIdToViewerUrl(fileId);
61
+ if (!fileUrl) return;
62
+
63
+ const previewUrl = `${fileUrl}&fullfilename=${fileName ?? fileId}`;
64
+
65
+ try {
66
+ const openUrl = `${FILE_VIEWER_URL}onlinePreview?url=${encodeURIComponent(Base64.encode(previewUrl))}`;
67
+ window.open(openUrl);
68
+ } catch (error) {
69
+ console.error('跳转失败:', error);
70
+ }
71
+ };
72
+
73
+ /**
74
+ * 通过URL下载文件
75
+ * @param fileUrl
76
+ */
77
+ export const fileDownloadFromUrl = async (url: string, name: string = '下载文件') => {
78
+ // 创建隐藏的可下载链接,https访问http的站点认为是不安全的,无法下载
79
+ let eleLink = document.createElement('a');
80
+ eleLink.download = name;
81
+ eleLink.style.display = 'none';
82
+ // 字符内容转变成blob地址
83
+ eleLink.href = url;
84
+ // 触发点击
85
+ document.body.appendChild(eleLink);
86
+ eleLink.click();
87
+ // 然后移除
88
+ document.body.removeChild(eleLink);
89
+ };
90
+
91
+ /**
92
+ * 通过文件id下载文件(下载minio资源)
93
+ * @param fileId
94
+ */
95
+ export const fileDownloadFromId = async (
96
+ fileId: string,
97
+ customFileName?: string,
98
+ onProgress?: (progress: number) => void,
99
+ ) => {
100
+ if (!fileId) return;
101
+
102
+ // 由于站点是https,minio是http,会被拦截,所以将文件请求到本地再下载(注意nginx需要配置代理)
103
+ try {
104
+ const { data, fileName } = await request(`/minio/${fileId}`, {
105
+ method: 'GET',
106
+ responseType: 'blob',
107
+ onDownloadProgress: (progressEvent) => {
108
+ if (progressEvent.total) {
109
+ const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
110
+ onProgress?.(percentCompleted);
111
+ }
112
+ },
113
+ });
114
+
115
+ if (data) {
116
+ const downloadUrl = window.URL.createObjectURL(data);
117
+ fileDownloadFromUrl(downloadUrl, customFileName || fileName);
118
+ }
119
+ } catch (error) {
120
+ message.error('下载失败, 原因:' + error);
121
+ console.error('下载图片失败:', error);
122
+ }
123
+ };
124
+
125
+ /**
126
+ * 通过生成的Blob下载文件
127
+ * @param dataBlob
128
+ */
129
+ export const fileDownloadFromBlob = (fileName: string, dataBlob: Blob) => {
130
+ let binaryData = [];
131
+ binaryData.push(dataBlob);
132
+ const objectUrl = window.URL.createObjectURL(new Blob(binaryData));
133
+
134
+ fileDownloadFromUrl(objectUrl, fileName);
135
+ };
136
+
137
+ type ImageSource = Blob | File | string; // string 可以是 base64 或 url
138
+
139
+ interface WatermarkOptions {
140
+ text?: string;
141
+ font?: string;
142
+ color?: string;
143
+ opacity?: number; //不透明度
144
+ spacing?: number; //水印间隔
145
+ rotation?: number; //旋转角度
146
+ }
147
+
148
+ /**
149
+ * 下载图片并添加水印
150
+ * @param fileName 文件名
151
+ * @param source 图片源(支持 Blob、File、base64、url)
152
+ * @param options 水印配置选项
153
+ */
154
+ export const downloadImgWithWatermark = async (fileName: string, source: ImageSource, options: WatermarkOptions = {}) => {
155
+ const {
156
+ text = '翠峰科技',
157
+ font = '16px Arial',
158
+ color = 'rgb(153, 153, 153)',
159
+ opacity = 0.3,
160
+ spacing = 400,
161
+ rotation = -30,
162
+ } = options;
163
+
164
+ try {
165
+ // 将不同类型的源转换为 blob URL
166
+ let blobUrl: string;
167
+ if (source instanceof File || source instanceof Blob) {
168
+ blobUrl = URL.createObjectURL(source);
169
+ } else if (source.startsWith('data:')) {
170
+ // 处理 base64
171
+ const response = await fetch(source);
172
+ const blob = await response.blob();
173
+ blobUrl = URL.createObjectURL(blob);
174
+ } else {
175
+ // 处理 URL
176
+ blobUrl = source;
177
+ }
178
+
179
+ // 创建图片对象
180
+ const img = new Image();
181
+ img.crossOrigin = 'anonymous'; // 处理跨域图片
182
+
183
+ return new Promise<void>((resolve, reject) => {
184
+ img.onload = () => {
185
+ // 创建 canvas
186
+ const canvas = document.createElement('canvas');
187
+ canvas.width = img.width;
188
+ canvas.height = img.height;
189
+ const ctx = canvas.getContext('2d');
190
+ if (!ctx) {
191
+ reject(new Error('无法获取 canvas context'));
192
+ return;
193
+ }
194
+
195
+ // 绘制原始图片
196
+ ctx.drawImage(img, 0, 0);
197
+
198
+ // 设置水印样式
199
+ ctx.font = font;
200
+ ctx.fillStyle = `${color.replace('rgb', 'rgba').replace(')', `, ${opacity})`)}`;
201
+ ctx.textAlign = 'center';
202
+
203
+ // 添加重复的水印
204
+ const rotationRad = (rotation * Math.PI) / 180;
205
+ for (let x = 0; x < canvas.width; x += spacing) {
206
+ for (let y = 0; y < canvas.height; y += spacing) {
207
+ ctx.save();
208
+ ctx.translate(x, y);
209
+ ctx.rotate(rotationRad);
210
+ ctx.fillText(text, 0, 0);
211
+ ctx.restore();
212
+ }
213
+ }
214
+
215
+ // 转换为图片并下载
216
+ canvas.toBlob(
217
+ (resultBlob) => {
218
+ if (!resultBlob) {
219
+ reject(new Error('无法创建 blob'));
220
+ return;
221
+ }
222
+
223
+ const link = document.createElement('a');
224
+ link.download = fileName;
225
+ link.href = URL.createObjectURL(resultBlob);
226
+ link.click();
227
+
228
+ // 清理 URL 对象
229
+ URL.revokeObjectURL(link.href);
230
+ if (source instanceof File || source instanceof Blob) {
231
+ URL.revokeObjectURL(blobUrl);
232
+ }
233
+
234
+ resolve();
235
+ },
236
+ 'image/png',
237
+ 1,
238
+ );
239
+ };
240
+
241
+ img.onerror = () => {
242
+ reject(new Error('图片加载失败'));
243
+ };
244
+
245
+ img.src = blobUrl;
246
+ });
247
+ } catch (error) {
248
+ console.error('下载图片失败:', error);
249
+ throw error;
250
+ }
251
+ };
@@ -0,0 +1,283 @@
1
+ // replaceTo:tsx
2
+ import { UTC_FORMAT } from '../constants';
3
+ import { getIntl } from '@umijs/max';
4
+ import { Modal, Tag } from 'antd';
5
+ import dayjs from 'dayjs';
6
+ import { parse } from 'querystring';
7
+ import * as XLSX from 'xlsx';
8
+
9
+ /**
10
+ * 提取括号中的值
11
+ * @param str
12
+ * @returns
13
+ */
14
+ export const getParenthesisValue = (str: string) => {
15
+ const matches = str.match(/\((.*?)\)/);
16
+ return matches ? matches[1] : null;
17
+ };
18
+
19
+ /**
20
+ * 导入excel
21
+ * @param files 文件对象
22
+ * @param max 最大读取行数
23
+ * @param header 哪行是表头,默认第一行
24
+ * @param rangeStart 开始读取行数{ c: 1, r: 2 } 从第2列第3行开始读取
25
+ * @return Promise<T = any[]>
26
+ */
27
+ export function importExexl<T = any>({
28
+ file,
29
+ max = 1,
30
+ rangeStart,
31
+ header,
32
+ }: {
33
+ file: any;
34
+ max?: number;
35
+ header?: number;
36
+ rangeStart?: { c: number; r: number };
37
+ }): Promise<T[]> {
38
+ return new Promise((resolve, reject) => {
39
+ // 通过FileReader对象读取文件
40
+ const fileReader = new FileReader();
41
+
42
+ fileReader.onload = (event) => {
43
+ try {
44
+ const { result } = event.target as any;
45
+
46
+ // 以二进制流方式读取得到整份excel表格对象, cellDates识别日期格式并转为标准时间
47
+ const workbook = XLSX.read(result, { type: 'binary', cellDates: true, dateNF: 'YYYY-MM-DDTHH:mm:ss[Z]' });
48
+ let data: any[] = []; // 存储获取到的数据
49
+
50
+ // 遍历每张工作表进行读取(这里默认只读取第一张表)
51
+ let sheetsIndex = 0;
52
+ for (const sheet in workbook.Sheets) {
53
+ if (workbook.Sheets.hasOwnProperty(sheet)) {
54
+ sheetsIndex++;
55
+ // 获取表格最后一行和最后一列的数值
56
+ const lastCell: any = workbook.Sheets[sheet]['!ref']
57
+ ? XLSX.utils.decode_range(workbook.Sheets[sheet]['!ref'])
58
+ : { e: 256, c: 65536 };
59
+ // 利用 sheet_to_json 方法将 excel 转成 json 数据
60
+ data = data.concat(
61
+ XLSX.utils.sheet_to_json(workbook.Sheets[sheet], {
62
+ header,
63
+ dateNF: 'YYYY-MM-DDTHH:mm:ss[Z]',
64
+ // 属性s从第1列第3行开始读取,属性c到最后一行最后一列结束(Excel 行号从1开始)
65
+ range: rangeStart
66
+ ? {
67
+ s: rangeStart,
68
+ e: { c: lastCell.e?.c, r: lastCell.e?.r },
69
+ }
70
+ : undefined,
71
+ }),
72
+ );
73
+
74
+ if (sheetsIndex === max) {
75
+ break; // 如果只取第一张表,就取消注释这行
76
+ }
77
+ }
78
+ }
79
+ return resolve(data);
80
+ } catch (e) {
81
+ return reject(e);
82
+ }
83
+ };
84
+
85
+ // 以二进制方式打开文件
86
+ fileReader.readAsBinaryString(file);
87
+ });
88
+ }
89
+
90
+ /**
91
+ * 判断对象的所有属性是不是下标
92
+ * @param obj
93
+ * @returns
94
+ */
95
+ function isIndexedObject(obj: Record<string, any>): boolean {
96
+ const keys = Object.keys(obj);
97
+ return keys.every((key, index) => key === index.toString());
98
+ }
99
+
100
+ /**
101
+ * 将可迭代对象转成数组
102
+ * @param obj
103
+ * @returns
104
+ */
105
+ function convertIndexedObjectToArray(obj: Record<string, any>): any[] {
106
+ const keys = Object.keys(obj).sort();
107
+ return keys.map((key) => obj[key]);
108
+ }
109
+
110
+ /**
111
+ * 将对象中所有可迭代对象转成数组
112
+ * @param obj
113
+ * @returns
114
+ */
115
+ function convertIndexedPropertiesToArrays(obj: Record<string, any>): any {
116
+ const result: Record<string, any> = {};
117
+
118
+ for (const key in obj) {
119
+ // 检查 key 是否是 obj 的自身属性
120
+ if (obj.hasOwnProperty(key)) {
121
+ const value = obj[key];
122
+
123
+ if (typeof value === 'object' && value !== null) {
124
+ if (isIndexedObject(value)) {
125
+ // 如果是索引对象,则转换为数组
126
+ result[key] = convertIndexedObjectToArray(value);
127
+ } else {
128
+ // 否则,递归调用本函数
129
+ result[key] = convertIndexedPropertiesToArrays(value);
130
+ }
131
+ } else {
132
+ // 原始值不用额外操作
133
+ result[key] = value;
134
+ }
135
+ }
136
+ }
137
+
138
+ return result;
139
+ }
140
+
141
+ /**
142
+ * 处理导入Execl单元格值(转标准日期,去除空格和换行)
143
+ * @param value 表格单元格的值
144
+ * @param value 表格单元格的值
145
+ * @returns
146
+ */
147
+ export const handleImportExeclCellValue = (value: unknown, type?: string) => {
148
+ if (!value) return;
149
+
150
+ if (type === 'parenthesisCode') {
151
+ return getParenthesisValue(value as string);
152
+ }
153
+ if (value instanceof Date || (type === 'date' && typeof value === 'string')) {
154
+ return dayjs.utc(value).format(UTC_FORMAT);
155
+ }
156
+ if (typeof value === 'string') {
157
+ return value.trim().replace(/\n/g, '');
158
+ }
159
+ return value;
160
+ };
161
+
162
+ /**
163
+ * 创建嵌套对象并设置值
164
+ * @param keys [] | string,为对象属性名,数组类型并且
165
+ * @param value 属性值
166
+ * @param obj 嵌套对象
167
+ * @returns (['a', 'b', 'c'], 1, {}) => {a: { b: {c : 1} } }
168
+ */
169
+ export const createNestedObjectAndSetValue = (keys: string | string[], value: any, obj: Record<string, any>, needHandleUnderline = true) => {
170
+ if (!keys.length) return obj;
171
+ // 过滤没有定义code的字段
172
+ if (typeof keys === 'string' && keys.startsWith('__EMPTY')) return obj;
173
+
174
+ //为了不改变原对象
175
+ const cloneObj = { ...obj };
176
+ // 当前操作的嵌套对象层级,从外到内
177
+ let current: any = cloneObj;
178
+ // 如果keys是字符串,转为数组
179
+ const newKeys = typeof keys === 'string' ? needHandleUnderline ? keys.split('_') : [keys] : keys;
180
+ // 最后一个键下标
181
+ const lastIndex = newKeys.length - 1;
182
+ // 转为嵌套对象
183
+ newKeys.forEach((key) => {
184
+ if (current[key] === undefined) {
185
+ current[key] = {};
186
+ }
187
+ // 如果是最后一个键,则直接赋值
188
+ if (key === newKeys[lastIndex]) {
189
+ // 判断是不是要取单元格括号中的code
190
+ const handleKey = key.split('?');
191
+ if (handleKey.length === 2 && value) {
192
+ // 取出单元格中的code并删除原有带?的字段,使用?前的字符串作为字段名,?后的作为识别类型
193
+ current[handleKey[0]] = handleImportExeclCellValue(value, parse(handleKey[1])?.type as string);
194
+ delete current[key];
195
+ } else {
196
+ // 处理导入单元格的值
197
+ current[key] = handleImportExeclCellValue(value);
198
+ }
199
+ } else {
200
+ // 移动到下一层级
201
+ current = current[key];
202
+ }
203
+ });
204
+
205
+ // 处理嵌套对象中的数组情况
206
+ // {
207
+ // a : {
208
+ // 0: 'xxx1',
209
+ // 1: 'xxx2',
210
+ // 2: 'xxx3',
211
+ // }
212
+ // }
213
+ // =》
214
+ // {
215
+ // a: ['xxx1', 'xxx2', 'xxx3']
216
+ // }
217
+ return convertIndexedPropertiesToArrays(cloneObj);
218
+ };
219
+
220
+ /**
221
+ * 处理execl导入的数据
222
+ * @param {T[]} list 列表
223
+ * @param {number} hasRowNum 是否添加表格行号
224
+ * @returns {T[]} list
225
+ */
226
+ export const handleImportList = <T extends Record<string, any> = any[]>(list: T[], options: { hasRowNum?: boolean, needHandleUnderline?: boolean } = {}): T[] => {
227
+ const { hasRowNum = true, needHandleUnderline = true } = options;
228
+
229
+ list.shift();
230
+ const newList: T[] = list.map((item: any, idx) => {
231
+ let newObj: T = {} as T;
232
+ // 添加行号
233
+ if (hasRowNum) {
234
+ item.rowNum = item['__rowNum__'] ? item['__rowNum__'] + 1 : idx;
235
+ }
236
+ // 处理获取到的数据转换成需要的格式
237
+ Object.entries(item).forEach((entry) => {
238
+ newObj = createNestedObjectAndSetValue(entry[0], entry[1], newObj, needHandleUnderline);
239
+ });
240
+ return newObj;
241
+ });
242
+
243
+ return newList;
244
+ };
245
+
246
+ /**
247
+ * 导入execl错误类型
248
+ */
249
+ export interface ImportErrorType {
250
+ rowNum: number;
251
+ itemCode: string;
252
+ message: string[];
253
+ }
254
+
255
+ export const showCheckErrorTips = (errorMessageList: ImportErrorType[]) => {
256
+ const { formatMessage } = getIntl();
257
+ Modal.error({
258
+ title: `${formatMessage({
259
+ id: 'pages.File.import.exceed.error.title',
260
+ defaultMessage: '导入失败,原因如下',
261
+ })}:`,
262
+ content: errorMessageList.map((item, idx) => (
263
+ <dl key={item.itemCode + idx}>
264
+ <dt style={{ marginBottom: 8 }}>
265
+ <Tag color="processing">
266
+ {formatMessage(
267
+ {
268
+ id: 'common.import.row.tips',
269
+ defaultMessage: '第n行',
270
+ },
271
+ { rowNum: item.rowNum },
272
+ )}
273
+ </Tag>
274
+ </dt>
275
+ {item.message.map((msg, idx) => (
276
+ <li key={msg + idx}>
277
+ {idx + 1}. {msg}
278
+ </li>
279
+ ))}
280
+ </dl>
281
+ )),
282
+ });
283
+ };
@@ -0,0 +1,26 @@
1
+ import { parse } from 'querystring';
2
+ import { getIntl, MenuItem } from '@umijs/max';
3
+
4
+ /**
5
+ * 获取url参数,即浏览器地址栏问号后面的参数
6
+ * @returns {Object}
7
+ */
8
+ export const getPageQuery = () => parse(window.location.href.split('?')[1]);
9
+
10
+ /**
11
+ * 判断是否分享页
12
+ * @returns {boolean}
13
+ */
14
+ export const isSharePage = () => getPageQuery()?.type?.slice(0, 5) === 'share';
15
+
16
+ /**
17
+ * 获取url参数中的token
18
+ * @returns {string}
19
+ */
20
+ export const getQueryToken = () => getPageQuery()?.token;
21
+
22
+ /**
23
+ * 判断是否全屏页
24
+ * @returns {boolean}
25
+ */
26
+ export const isFullPage = () => getPageQuery()?.s?.slice(0, 1) === 'f' || isSharePage();
@@ -0,0 +1,92 @@
1
+ import { getLocale } from '@umijs/max';
2
+ import { notification } from 'antd';
3
+
4
+ export const codeMessage: any = {
5
+ 200: '服务器成功返回请求的数据。',
6
+ 201: '新建或修改数据成功。',
7
+ 202: '一个请求已经进入后台排队(异步任务)。',
8
+ 204: '删除数据成功。',
9
+ 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
10
+ 401: '用户没有权限(令牌、用户名、密码错误)。',
11
+ 403: '用户得到授权,但是访问是被禁止的。',
12
+ 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
13
+ 406: '请求的格式不可得。',
14
+ 410: '请求的资源被永久删除,且不会再得到的。',
15
+ 422: '当创建一个对象时,发生一个验证错误。',
16
+ 500: '服务器发生错误,请检查服务器。',
17
+ 502: '网关错误。',
18
+ 503: '服务不可用,服务器暂时过载或维护。',
19
+ 504: '网关超时。',
20
+ };
21
+
22
+ export interface XmlRequestOptions {
23
+ method?: API.MethodTypes;
24
+ body?: any;
25
+ headers?: object;
26
+ onError?: ((this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) => any) | null;
27
+ onSuccess: (key: any) => void;
28
+ onProgress?: (percent: number, e: ProgressEvent<XMLHttpRequestEventTarget>) => void;
29
+ progressChange?: (percent: number, e: ProgressEvent<XMLHttpRequestEventTarget>) => void;
30
+ }
31
+
32
+ /**
33
+ * 现用户上传文件获取进度
34
+ * @param url 文件服务url
35
+ * @param {XmlRequestOptions} options
36
+ * @returns {Promise<T | any>}
37
+ */
38
+ function xmlRequest<T>(url: string, options: XmlRequestOptions): Promise<T | any> {
39
+ const { method = 'POST', body, progressChange, onProgress, onSuccess, onError = null } = options;
40
+
41
+ // 处理url参数增加国际化
42
+ const paraPrefix = url.indexOf('?') !== -1 ? '&' : '?';
43
+ const newUrl = url.concat(`${paraPrefix}lang=${getLocale()}`);
44
+
45
+ return new Promise<void>((resolve, reject) => {
46
+ const xhr = new XMLHttpRequest();
47
+ xhr.open(method, newUrl, true);
48
+
49
+ // 请求完成
50
+ xhr.onload = () => {
51
+ if (xhr.status < 200 || xhr.status >= 300) {
52
+ notification.error({
53
+ description: codeMessage[xhr.status],
54
+ message: `请求出错`,
55
+ });
56
+ reject();
57
+ } else {
58
+ const data = JSON.parse(xhr.response);
59
+ if (data.code && data.code !== 200) {
60
+ notification.error({
61
+ description: data.msg,
62
+ message: 'Error Occurred',
63
+ });
64
+ } else if (data.resultType && data.resultType !== 'SUCCESS') {
65
+ // 为了配合工单查询API处理出来的
66
+ notification.error({
67
+ description: data.exceptionDetail,
68
+ message: data.resultMsg,
69
+ });
70
+ }
71
+
72
+ resolve(data);
73
+ onSuccess?.(data.data);
74
+ }
75
+ };
76
+ if (progressChange || onProgress) {
77
+ xhr.upload.addEventListener('progress', (e) => {
78
+ if (e.lengthComputable) {
79
+ const percent = Math.floor((e.loaded / e.total) * 100);
80
+ onProgress?.(percent, e);
81
+ progressChange?.(percent, e);
82
+ }
83
+ });
84
+ }
85
+
86
+ xhr.onerror = onError;
87
+ xhr.setRequestHeader('Authorization', 'Bearer ' + JSON.parse(localStorage.getItem('token') || ''));
88
+ xhr.send(body);
89
+ });
90
+ }
91
+
92
+ export default xmlRequest;
@@ -0,0 +1,5 @@
1
+ import runtime from "./runtime";
2
+ import writeIndex from "./writeIndex";
3
+ import writeTypes from "./writeTypes";
4
+ import writeConstants from "./writeConstants";
5
+ export { runtime, writeIndex, writeTypes, writeConstants };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "runtime", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _runtime.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "writeConstants", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _writeConstants.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "writeIndex", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _writeIndex.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "writeTypes", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _writeTypes.default;
28
+ }
29
+ });
30
+ var _runtime = _interopRequireDefault(require("./runtime"));
31
+ var _writeIndex = _interopRequireDefault(require("./writeIndex"));
32
+ var _writeTypes = _interopRequireDefault(require("./writeTypes"));
33
+ var _writeConstants = _interopRequireDefault(require("./writeConstants"));
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ path: string;
3
+ content: string;
4
+ };
5
+ export default _default;