@lingxiteam/ebe-utils 0.3.20 → 0.3.22

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 (370) hide show
  1. package/lib/pcpublic/src/components/pcfactory/src/StdUpload/assets/closeIcon.png +0 -0
  2. package/lib/pcpublic/src/components/pcfactory/src/StdUpload/assets/fileName.png +0 -0
  3. package/lib/pcpublic/src/components/pcfactory/src/StdUpload/assets/img.png +0 -0
  4. package/lib/pcpublic/src/components/pcfactory/src/Table/hooks/useFormatCell.ts +279 -0
  5. package/lib/pcpublic/src/components/pcfactory/src/utils/Empty/customLocale.tsx +6 -0
  6. package/lib/public/src/components/ExpBusiObjModal/index.less +28 -0
  7. package/lib/public/src/components/ExpBusiObjModal/index.tsx +315 -0
  8. package/lib/public/src/components/PreviewFile/index.less +200 -0
  9. package/lib/public/src/components/PreviewFile/index.tsx +787 -0
  10. package/lib/public/src/components/PreviewFile/utils.ts +90 -0
  11. package/lib/public/src/components/common/PreviewFile/index.less +200 -0
  12. package/lib/public/src/components/common/PreviewFile/index.tsx +787 -0
  13. package/lib/public/src/components/common/PreviewFile/utils.ts +90 -0
  14. package/lib/public/src/components/pcfactory/src/Alert/index.tsx +22 -0
  15. package/lib/public/src/components/pcfactory/src/Animation/index.tsx +186 -0
  16. package/lib/public/src/components/pcfactory/src/Animation/useAnimation.ts +270 -0
  17. package/lib/public/src/components/pcfactory/src/Animation/useBackgroundStyle.ts +74 -0
  18. package/lib/public/src/components/pcfactory/src/Audio/index.tsx +240 -0
  19. package/lib/public/src/components/pcfactory/src/BarChart/index.tsx +3 -0
  20. package/lib/public/src/components/pcfactory/src/Button/index.tsx +151 -0
  21. package/lib/public/src/components/pcfactory/src/Card/index.tsx +201 -0
  22. package/lib/public/src/components/pcfactory/src/Card/useExtendBtn.tsx +195 -0
  23. package/lib/public/src/components/pcfactory/src/Cascader/index.tsx +398 -0
  24. package/lib/public/src/components/pcfactory/src/ChartBar/index.tsx +15 -0
  25. package/lib/public/src/components/pcfactory/src/ChartBar/loader.tsx +12 -0
  26. package/lib/public/src/components/pcfactory/src/ChartLine/ChartLine.tsx +48 -0
  27. package/lib/public/src/components/pcfactory/src/ChartLine/PropsType.ts +88 -0
  28. package/lib/public/src/components/pcfactory/src/ChartLine/index.tsx +15 -0
  29. package/lib/public/src/components/pcfactory/src/ChartLine/loader.tsx +12 -0
  30. package/lib/public/src/components/pcfactory/src/Checkbox/index.tsx +144 -0
  31. package/lib/public/src/components/pcfactory/src/CheckboxGroup/index.tsx +319 -0
  32. package/lib/public/src/components/pcfactory/src/Collapse/index.tsx +195 -0
  33. package/lib/public/src/components/pcfactory/src/CollapsePanel/index.tsx +186 -0
  34. package/lib/public/src/components/pcfactory/src/Condition/index.tsx +22 -0
  35. package/lib/public/src/components/pcfactory/src/DatePicker/index.tsx +756 -0
  36. package/lib/public/src/components/pcfactory/src/Description/index.tsx +447 -0
  37. package/lib/public/src/components/pcfactory/src/Description/utils/getLabelSizeMode.ts +40 -0
  38. package/lib/public/src/components/pcfactory/src/Divider/components/CenterLineDivider/index.tsx +190 -0
  39. package/lib/public/src/components/pcfactory/src/Divider/components/CenterTabDivider/index.tsx +77 -0
  40. package/lib/public/src/components/pcfactory/src/Divider/components/LeftCardDivider/index.tsx +87 -0
  41. package/lib/public/src/components/pcfactory/src/Divider/components/LeftLineDivider/index.tsx +106 -0
  42. package/lib/public/src/components/pcfactory/src/Divider/components/LeftTabDivider/index.tsx +60 -0
  43. package/lib/public/src/components/pcfactory/src/Divider/components/LeftTopDivider/index.tsx +55 -0
  44. package/lib/public/src/components/pcfactory/src/Divider/components/LxDashed/index.module.less +10 -0
  45. package/lib/public/src/components/pcfactory/src/Divider/components/LxDashed/index.tsx +143 -0
  46. package/lib/public/src/components/pcfactory/src/Divider/components/LxSolid/index.module.less +10 -0
  47. package/lib/public/src/components/pcfactory/src/Divider/components/LxSolid/index.tsx +126 -0
  48. package/lib/public/src/components/pcfactory/src/Divider/index.tsx +210 -0
  49. package/lib/public/src/components/pcfactory/src/Dropdown/index.tsx +385 -0
  50. package/lib/public/src/components/pcfactory/src/DynamicTabs/PropsType.ts +31 -0
  51. package/lib/public/src/components/pcfactory/src/DynamicTabs/TabPage.tsx +63 -0
  52. package/lib/public/src/components/pcfactory/src/DynamicTabs/index.tsx +214 -0
  53. package/lib/public/src/components/pcfactory/src/Form/Form.tsx +600 -0
  54. package/lib/public/src/components/pcfactory/src/Form/WrapperForm.ts +14 -0
  55. package/lib/public/src/components/pcfactory/src/Form/index.tsx +15 -0
  56. package/lib/public/src/components/pcfactory/src/Form/useFormStatus.ts +47 -0
  57. package/lib/public/src/components/pcfactory/src/Form/useMonitor.ts +40 -0
  58. package/lib/public/src/components/pcfactory/src/FormGroup/TitleComp.tsx +107 -0
  59. package/lib/public/src/components/pcfactory/src/FormGroup/index.tsx +181 -0
  60. package/lib/public/src/components/pcfactory/src/FreeLayout/index.tsx +151 -0
  61. package/lib/public/src/components/pcfactory/src/Gantt/Gantt.tsx +460 -0
  62. package/lib/public/src/components/pcfactory/src/Gantt/const.ts +122 -0
  63. package/lib/public/src/components/pcfactory/src/Gantt/index.tsx +16 -0
  64. package/lib/public/src/components/pcfactory/src/Gantt/loader.tsx +12 -0
  65. package/lib/public/src/components/pcfactory/src/GridView/GridView.tsx +435 -0
  66. package/lib/public/src/components/pcfactory/src/GridView/index.tsx +24 -0
  67. package/lib/public/src/components/pcfactory/src/GridView/loader.tsx +12 -0
  68. package/lib/public/src/components/pcfactory/src/HorizontalView/index.tsx +32 -0
  69. package/lib/public/src/components/pcfactory/src/Icon/IconED/index.tsx +42 -0
  70. package/lib/public/src/components/pcfactory/src/Icon/PropsType.ts +57 -0
  71. package/lib/public/src/components/pcfactory/src/Icon/hooks/index.tsx +300 -0
  72. package/lib/public/src/components/pcfactory/src/Icon/index.tsx +69 -0
  73. package/lib/public/src/components/pcfactory/src/IconFont/index.tsx +24 -0
  74. package/lib/public/src/components/pcfactory/src/Img/BasicImage/index.tsx +90 -0
  75. package/lib/public/src/components/pcfactory/src/Img/assets/placeholder.png +0 -0
  76. package/lib/public/src/components/pcfactory/src/Img/index.tsx +91 -0
  77. package/lib/public/src/components/pcfactory/src/Input/index.tsx +425 -0
  78. package/lib/public/src/components/pcfactory/src/InputNumber/index.tsx +263 -0
  79. package/lib/public/src/components/pcfactory/src/LXPieChart/LXPieChart.tsx +23 -0
  80. package/lib/public/src/components/pcfactory/src/LXPieChart/PropsType.ts +11 -0
  81. package/lib/public/src/components/pcfactory/src/LXPieChart/index.less +6 -0
  82. package/lib/public/src/components/pcfactory/src/LXPieChart/index.tsx +15 -0
  83. package/lib/public/src/components/pcfactory/src/LXPieChart/loader.tsx +12 -0
  84. package/lib/public/src/components/pcfactory/src/LXRadarChart/LXRadarChat.tsx +25 -0
  85. package/lib/public/src/components/pcfactory/src/LXRadarChart/PropsType.ts +9 -0
  86. package/lib/public/src/components/pcfactory/src/LXRadarChart/index.less +7 -0
  87. package/lib/public/src/components/pcfactory/src/LXRadarChart/index.tsx +17 -0
  88. package/lib/public/src/components/pcfactory/src/LXRadarChart/loader.tsx +12 -0
  89. package/lib/public/src/components/pcfactory/src/Layout/index.tsx +130 -0
  90. package/lib/public/src/components/pcfactory/src/Layout/utils.ts +48 -0
  91. package/lib/public/src/components/pcfactory/src/LineChart/index.tsx +3 -0
  92. package/lib/public/src/components/pcfactory/src/Link/index.tsx +117 -0
  93. package/lib/public/src/components/pcfactory/src/LoopList/index.tsx +551 -0
  94. package/lib/public/src/components/pcfactory/src/Menu/index.tsx +422 -0
  95. package/lib/public/src/components/pcfactory/src/ModalSelect/BaseModalSelect.tsx +95 -0
  96. package/lib/public/src/components/pcfactory/src/ModalSelect/index.tsx +453 -0
  97. package/lib/public/src/components/pcfactory/src/MultipleSelect/index.tsx +3 -0
  98. package/lib/public/src/components/pcfactory/src/Pagination/index.tsx +104 -0
  99. package/lib/public/src/components/pcfactory/src/Password/index.tsx +88 -0
  100. package/lib/public/src/components/pcfactory/src/PictureVerifyCode/assets/placeholder.png +0 -0
  101. package/lib/public/src/components/pcfactory/src/PictureVerifyCode/index.tsx +76 -0
  102. package/lib/public/src/components/pcfactory/src/PieChart/index.tsx +3 -0
  103. package/lib/public/src/components/pcfactory/src/Progress/index.tsx +155 -0
  104. package/lib/public/src/components/pcfactory/src/QRCode/const.ts +5 -0
  105. package/lib/public/src/components/pcfactory/src/QRCode/index.tsx +146 -0
  106. package/lib/public/src/components/pcfactory/src/QuillEditor/QuillEditor.tsx +197 -0
  107. package/lib/public/src/components/pcfactory/src/QuillEditor/index.tsx +37 -0
  108. package/lib/public/src/components/pcfactory/src/QuillEditor/loader.ts +12 -0
  109. package/lib/public/src/components/pcfactory/src/RadarChart/RadarChartHook.ts +449 -0
  110. package/lib/public/src/components/pcfactory/src/RadarChart/RadarChartType.ts +39 -0
  111. package/lib/public/src/components/pcfactory/src/RadarChart/RadarECharts.tsx +86 -0
  112. package/lib/public/src/components/pcfactory/src/RadarChart/index.tsx +16 -0
  113. package/lib/public/src/components/pcfactory/src/RadarChart/loader.tsx +12 -0
  114. package/lib/public/src/components/pcfactory/src/RadarChart/radarDefaultConfig.js +55 -0
  115. package/lib/public/src/components/pcfactory/src/Radio/index.tsx +260 -0
  116. package/lib/public/src/components/pcfactory/src/RangePicker/index.tsx +3 -0
  117. package/lib/public/src/components/pcfactory/src/Rate/index.tsx +187 -0
  118. package/lib/public/src/components/pcfactory/src/ReactECharts/PropsType.ts +37 -0
  119. package/lib/public/src/components/pcfactory/src/ReactECharts/ReactECharts.tsx +672 -0
  120. package/lib/public/src/components/pcfactory/src/ReactECharts/index.tsx +26 -0
  121. package/lib/public/src/components/pcfactory/src/ReactECharts/loader.tsx +12 -0
  122. package/lib/public/src/components/pcfactory/src/RemoteComponent/components/FishRender.tsx +31 -0
  123. package/lib/public/src/components/pcfactory/src/RemoteComponent/components/ReactRender.tsx +55 -0
  124. package/lib/public/src/components/pcfactory/src/RemoteComponent/components/VueRender.tsx +32 -0
  125. package/lib/public/src/components/pcfactory/src/RemoteComponent/constant.ts +9 -0
  126. package/lib/public/src/components/pcfactory/src/RemoteComponent/index.tsx +82 -0
  127. package/lib/public/src/components/pcfactory/src/RemoteComponent/remote-component.config.ts +12 -0
  128. package/lib/public/src/components/pcfactory/src/Result/index.tsx +27 -0
  129. package/lib/public/src/components/pcfactory/src/RichTextEditor/LcdpUeditorMain.tsx +105 -0
  130. package/lib/public/src/components/pcfactory/src/RichTextEditor/RichTextEditor.tsx +234 -0
  131. package/lib/public/src/components/pcfactory/src/RichTextEditor/RichTextEditorMain.tsx +41 -0
  132. package/lib/public/src/components/pcfactory/src/RichTextEditor/index.tsx +33 -0
  133. package/lib/public/src/components/pcfactory/src/RichTextEditor/loader.ts +12 -0
  134. package/lib/public/src/components/pcfactory/src/Row/Row.tsx +66 -0
  135. package/lib/public/src/components/pcfactory/src/Row/index.tsx +9 -0
  136. package/lib/public/src/components/pcfactory/src/Row/loader.tsx +12 -0
  137. package/lib/public/src/components/pcfactory/src/Select/index.tsx +628 -0
  138. package/lib/public/src/components/pcfactory/src/Select/selectUtils.ts +257 -0
  139. package/lib/public/src/components/pcfactory/src/Slider/index.tsx +351 -0
  140. package/lib/public/src/components/pcfactory/src/StdUpload/DownloadProgress/DownloadProgress.tsx +27 -0
  141. package/lib/public/src/components/pcfactory/src/StdUpload/DownloadProgress/index.ts +3 -0
  142. package/lib/public/src/components/pcfactory/src/StdUpload/UploadItem.tsx +257 -0
  143. package/lib/public/src/components/pcfactory/src/StdUpload/assets/default.png +0 -0
  144. package/lib/public/src/components/pcfactory/src/StdUpload/assets/js.png +0 -0
  145. package/lib/public/src/components/pcfactory/src/StdUpload/assets/pdf.png +0 -0
  146. package/lib/public/src/components/pcfactory/src/StdUpload/assets/ppt.png +0 -0
  147. package/lib/public/src/components/pcfactory/src/StdUpload/assets/txt.png +0 -0
  148. package/lib/public/src/components/pcfactory/src/StdUpload/assets/word.png +0 -0
  149. package/lib/public/src/components/pcfactory/src/StdUpload/assets/xls.png +0 -0
  150. package/lib/public/src/components/pcfactory/src/StdUpload/assets/zip.png +0 -0
  151. package/lib/public/src/components/pcfactory/src/StdUpload/index.tsx +1050 -0
  152. package/lib/public/src/components/pcfactory/src/StdUpload/uploadItem.less +64 -0
  153. package/lib/public/src/components/pcfactory/src/Steps/constant/checkcircle.tsx +29 -0
  154. package/lib/public/src/components/pcfactory/src/Steps/constant/index.ts +2 -0
  155. package/lib/public/src/components/pcfactory/src/Steps/constant/vector.tsx +13 -0
  156. package/lib/public/src/components/pcfactory/src/Steps/index.tsx +343 -0
  157. package/lib/public/src/components/pcfactory/src/SuperSelect/ComSelect.tsx +538 -0
  158. package/lib/public/src/components/pcfactory/src/SuperSelect/index.tsx +127 -0
  159. package/lib/public/src/components/pcfactory/src/SuperSelect/loader.tsx +12 -0
  160. package/lib/public/src/components/pcfactory/src/Swiper/index.tsx +184 -0
  161. package/lib/public/src/components/pcfactory/src/Switch/index.tsx +219 -0
  162. package/lib/public/src/components/pcfactory/src/TabPane/index.tsx +145 -0
  163. package/lib/public/src/components/pcfactory/src/Table/BodyCell/index.tsx +278 -0
  164. package/lib/public/src/components/pcfactory/src/Table/EditComponent/index.tsx +554 -0
  165. package/lib/public/src/components/pcfactory/src/Table/FormatCell/GhostTag/index.tsx +34 -0
  166. package/lib/public/src/components/pcfactory/src/Table/FormatCell/Hyperlink/index.tsx +26 -0
  167. package/lib/public/src/components/pcfactory/src/Table/FormatCell/PointTag/index.tsx +41 -0
  168. package/lib/public/src/components/pcfactory/src/Table/FormatCell/PureColourFill/index.tsx +32 -0
  169. package/lib/public/src/components/pcfactory/src/Table/FormatCell/PureFadeColourTag/index.tsx +34 -0
  170. package/lib/public/src/components/pcfactory/src/Table/FormatCell/index.tsx +227 -0
  171. package/lib/public/src/components/pcfactory/src/Table/HeaderCell/HeaderCellTitle/index.tsx +63 -0
  172. package/lib/public/src/components/pcfactory/src/Table/HeaderCell/index.tsx +32 -0
  173. package/lib/public/src/components/pcfactory/src/Table/TableHead/index.tsx +501 -0
  174. package/lib/public/src/components/pcfactory/src/Table/TableSummaryRow/index.tsx +46 -0
  175. package/lib/public/src/components/pcfactory/src/Table/constant.ts +73 -0
  176. package/lib/public/src/components/pcfactory/src/Table/hooks/index.ts +32 -0
  177. package/lib/public/src/components/pcfactory/src/Table/hooks/useCMDActions.ts +325 -0
  178. package/lib/public/src/components/pcfactory/src/Table/hooks/useCheckStrict.ts +176 -0
  179. package/lib/public/src/components/pcfactory/src/Table/hooks/useColumns.tsx +1851 -0
  180. package/lib/public/src/components/pcfactory/src/Table/hooks/useCommon.ts +39 -0
  181. package/lib/public/src/components/pcfactory/src/Table/hooks/useDataSource.ts +201 -0
  182. package/lib/public/src/components/pcfactory/src/Table/hooks/useExpandable.tsx +324 -0
  183. package/lib/public/src/components/pcfactory/src/Table/hooks/useFilter.tsx +274 -0
  184. package/lib/public/src/components/pcfactory/src/Table/hooks/useFormatCell.ts +309 -0
  185. package/lib/public/src/components/pcfactory/src/Table/hooks/usePagination.ts +104 -0
  186. package/lib/public/src/components/pcfactory/src/Table/hooks/useRowEdit.ts +302 -0
  187. package/lib/public/src/components/pcfactory/src/Table/hooks/useRowMerge.ts +93 -0
  188. package/lib/public/src/components/pcfactory/src/Table/hooks/useScroll.ts +120 -0
  189. package/lib/public/src/components/pcfactory/src/Table/hooks/useSelection.ts +467 -0
  190. package/lib/public/src/components/pcfactory/src/Table/hooks/useSort.ts +39 -0
  191. package/lib/public/src/components/pcfactory/src/Table/hooks/useSummaryCol.ts +191 -0
  192. package/lib/public/src/components/pcfactory/src/Table/index.tsx +525 -0
  193. package/lib/public/src/components/pcfactory/src/Table/utils/SequenceId.ts +104 -0
  194. package/lib/public/src/components/pcfactory/src/Table/utils/index.ts +442 -0
  195. package/lib/public/src/components/pcfactory/src/Tabs/index.tsx +209 -0
  196. package/lib/public/src/components/pcfactory/src/Tag/index.tsx +39 -0
  197. package/lib/public/src/components/pcfactory/src/Text/index.tsx +191 -0
  198. package/lib/public/src/components/pcfactory/src/TextArea/ForIETextArea.tsx +96 -0
  199. package/lib/public/src/components/pcfactory/src/TextArea/index.tsx +255 -0
  200. package/lib/public/src/components/pcfactory/src/TimePicker/index.tsx +3 -0
  201. package/lib/public/src/components/pcfactory/src/TlrView/index.tsx +3 -0
  202. package/lib/public/src/components/pcfactory/src/TooltipView/PropsType.ts +22 -0
  203. package/lib/public/src/components/pcfactory/src/TooltipView/TooltipViewED/index.tsx +10 -0
  204. package/lib/public/src/components/pcfactory/src/TooltipView/hooks/index.tsx +90 -0
  205. package/lib/public/src/components/pcfactory/src/TooltipView/index.tsx +13 -0
  206. package/lib/public/src/components/pcfactory/src/Transfer/index.tsx +753 -0
  207. package/lib/public/src/components/pcfactory/src/Tree/TreeNodeMenu/index.tsx +102 -0
  208. package/lib/public/src/components/pcfactory/src/Tree/index.tsx +1303 -0
  209. package/lib/public/src/components/pcfactory/src/TreeSelect/index.tsx +639 -0
  210. package/lib/public/src/components/pcfactory/src/TreeTable/hooks/index.ts +4 -0
  211. package/lib/public/src/components/pcfactory/src/TreeTable/hooks/useCMDAction.ts +82 -0
  212. package/lib/public/src/components/pcfactory/src/TreeTable/hooks/useExpandable.tsx +61 -0
  213. package/lib/public/src/components/pcfactory/src/TreeTable/index.tsx +273 -0
  214. package/lib/public/src/components/pcfactory/src/Upload/Upload.tsx +740 -0
  215. package/lib/public/src/components/pcfactory/src/Upload/index.tsx +29 -0
  216. package/lib/public/src/components/pcfactory/src/Upload/loader.tsx +13 -0
  217. package/lib/public/src/components/pcfactory/src/VerificationCode/assets/placeholder.png +0 -0
  218. package/lib/public/src/components/pcfactory/src/VerificationCode/index.tsx +297 -0
  219. package/lib/public/src/components/pcfactory/src/VerticalView/index.tsx +25 -0
  220. package/lib/public/src/components/pcfactory/src/VideoPlayer/index.tsx +159 -0
  221. package/lib/public/src/components/pcfactory/src/View/index.tsx +150 -0
  222. package/lib/public/src/components/pcfactory/src/View/useBackgroundStyle.ts +75 -0
  223. package/lib/public/src/components/pcfactory/src/VirtualGroup/index.tsx +16 -0
  224. package/lib/public/src/components/pcfactory/src/Webview/index.tsx +104 -0
  225. package/lib/public/src/components/pcfactory/src/index.component.ts +253 -0
  226. package/lib/public/src/components/pcfactory/src/styles/common.less +107 -0
  227. package/lib/public/src/components/pcfactory/src/styles/compatible.less +976 -0
  228. package/lib/public/src/components/pcfactory/src/styles/components/Alert.less +25 -0
  229. package/lib/public/src/components/pcfactory/src/styles/components/Audio.less +198 -0
  230. package/lib/public/src/components/pcfactory/src/styles/components/Button.less +32 -0
  231. package/lib/public/src/components/pcfactory/src/styles/components/Card.less +155 -0
  232. package/lib/public/src/components/pcfactory/src/styles/components/Cascader.less +54 -0
  233. package/lib/public/src/components/pcfactory/src/styles/components/Checkbox.less +7 -0
  234. package/lib/public/src/components/pcfactory/src/styles/components/Collapse.less +214 -0
  235. package/lib/public/src/components/pcfactory/src/styles/components/DatePicker.less +22 -0
  236. package/lib/public/src/components/pcfactory/src/styles/components/Description.less +64 -0
  237. package/lib/public/src/components/pcfactory/src/styles/components/Divider.less +530 -0
  238. package/lib/public/src/components/pcfactory/src/styles/components/Drawer.less +54 -0
  239. package/lib/public/src/components/pcfactory/src/styles/components/Dropdown.less +11 -0
  240. package/lib/public/src/components/pcfactory/src/styles/components/DynamicDataContainer.less +16 -0
  241. package/lib/public/src/components/pcfactory/src/styles/components/DynamicTabs.less +254 -0
  242. package/lib/public/src/components/pcfactory/src/styles/components/Form.less +265 -0
  243. package/lib/public/src/components/pcfactory/src/styles/components/FormGroup.less +111 -0
  244. package/lib/public/src/components/pcfactory/src/styles/components/Gantt.less +139 -0
  245. package/lib/public/src/components/pcfactory/src/styles/components/GridView.less +62 -0
  246. package/lib/public/src/components/pcfactory/src/styles/components/Icon.less +20 -0
  247. package/lib/public/src/components/pcfactory/src/styles/components/Input.less +164 -0
  248. package/lib/public/src/components/pcfactory/src/styles/components/InputNumber.less +124 -0
  249. package/lib/public/src/components/pcfactory/src/styles/components/InputPassword.less +3 -0
  250. package/lib/public/src/components/pcfactory/src/styles/components/Link.less +4 -0
  251. package/lib/public/src/components/pcfactory/src/styles/components/LoopList.less +67 -0
  252. package/lib/public/src/components/pcfactory/src/styles/components/Menu.less +54 -0
  253. package/lib/public/src/components/pcfactory/src/styles/components/ModalSelect.less +42 -0
  254. package/lib/public/src/components/pcfactory/src/styles/components/Popconfirm.less +7 -0
  255. package/lib/public/src/components/pcfactory/src/styles/components/Progress.less +57 -0
  256. package/lib/public/src/components/pcfactory/src/styles/components/QuillEditor.less +15 -0
  257. package/lib/public/src/components/pcfactory/src/styles/components/Radio.less +7 -0
  258. package/lib/public/src/components/pcfactory/src/styles/components/Rate.less +16 -0
  259. package/lib/public/src/components/pcfactory/src/styles/components/Result.less +26 -0
  260. package/lib/public/src/components/pcfactory/src/styles/components/Select.less +146 -0
  261. package/lib/public/src/components/pcfactory/src/styles/components/Slider.less +78 -0
  262. package/lib/public/src/components/pcfactory/src/styles/components/StdUpload.less +225 -0
  263. package/lib/public/src/components/pcfactory/src/styles/components/Step.less +91 -0
  264. package/lib/public/src/components/pcfactory/src/styles/components/SuperSelect.less +83 -0
  265. package/lib/public/src/components/pcfactory/src/styles/components/Swiper.less +106 -0
  266. package/lib/public/src/components/pcfactory/src/styles/components/Switch.less +49 -0
  267. package/lib/public/src/components/pcfactory/src/styles/components/Table.less +1229 -0
  268. package/lib/public/src/components/pcfactory/src/styles/components/Tabs.less +291 -0
  269. package/lib/public/src/components/pcfactory/src/styles/components/Tag.less +107 -0
  270. package/lib/public/src/components/pcfactory/src/styles/components/TextArea.less +12 -0
  271. package/lib/public/src/components/pcfactory/src/styles/components/TooltipView.less +43 -0
  272. package/lib/public/src/components/pcfactory/src/styles/components/Transfer.less +155 -0
  273. package/lib/public/src/components/pcfactory/src/styles/components/Tree.less +329 -0
  274. package/lib/public/src/components/pcfactory/src/styles/components/TreeSelect.less +65 -0
  275. package/lib/public/src/components/pcfactory/src/styles/components/Upload.less +26 -0
  276. package/lib/public/src/components/pcfactory/src/styles/components/VerificationCode.less +162 -0
  277. package/lib/public/src/components/pcfactory/src/styles/components/Webview.less +31 -0
  278. package/lib/public/src/components/pcfactory/src/styles/index.less +10 -0
  279. package/lib/public/src/components/pcfactory/src/styles/index.ued.less +65 -0
  280. package/lib/public/src/components/pcfactory/src/styles/theme/variables/antdVariables.less +84 -0
  281. package/lib/public/src/components/pcfactory/src/styles/theme/variables/common.less +9 -0
  282. package/lib/public/src/components/pcfactory/src/styles/theme/variables/customVariables.less +35 -0
  283. package/lib/public/src/components/pcfactory/src/styles/theme/variables/index.less +2 -0
  284. package/lib/public/src/components/pcfactory/src/utils/ChannelContainer.tsx +150 -0
  285. package/lib/public/src/components/pcfactory/src/utils/ChildRender.ts +103 -0
  286. package/lib/public/src/components/pcfactory/src/utils/CustomModule.tsx +134 -0
  287. package/lib/public/src/components/pcfactory/src/utils/DummyFormContext.ts +136 -0
  288. package/lib/public/src/components/pcfactory/src/utils/Empty/customLocale.tsx +6 -0
  289. package/lib/public/src/components/pcfactory/src/utils/Empty/empty.tsx +37 -0
  290. package/lib/public/src/components/pcfactory/src/utils/LoaderHelper.tsx +29 -0
  291. package/lib/public/src/components/pcfactory/src/utils/PropsType.ts +21 -0
  292. package/lib/public/src/components/pcfactory/src/utils/WithSyncValue.ts +218 -0
  293. package/lib/public/src/components/pcfactory/src/utils/ahooks/index.ts +22 -0
  294. package/lib/public/src/components/pcfactory/src/utils/ahooks/useCreation.ts +23 -0
  295. package/lib/public/src/components/pcfactory/src/utils/ahooks/useDeepCompareEffect.ts +27 -0
  296. package/lib/public/src/components/pcfactory/src/utils/ahooks/useMap.ts +46 -0
  297. package/lib/public/src/components/pcfactory/src/utils/ahooks/useMemoizedFn.ts +27 -0
  298. package/lib/public/src/components/pcfactory/src/utils/ahooks/usePrevious.ts +19 -0
  299. package/lib/public/src/components/pcfactory/src/utils/ahooks/useSafeState.ts +26 -0
  300. package/lib/public/src/components/pcfactory/src/utils/ahooks/useSetState.ts +26 -0
  301. package/lib/public/src/components/pcfactory/src/utils/ahooks/useUnmountedRef.ts +14 -0
  302. package/lib/public/src/components/pcfactory/src/utils/ahooks/useUpdate.ts +9 -0
  303. package/lib/public/src/components/pcfactory/src/utils/ahooks/useUpdateEffect.ts +16 -0
  304. package/lib/public/src/components/pcfactory/src/utils/basicStatusTransfer.ts +32 -0
  305. package/lib/public/src/components/pcfactory/src/utils/common.ts +367 -0
  306. package/lib/public/src/components/pcfactory/src/utils/dynamicUtils/DynamicContext.tsx +106 -0
  307. package/lib/public/src/components/pcfactory/src/utils/formUtils/FormContext.tsx +131 -0
  308. package/lib/public/src/components/pcfactory/src/utils/formUtils/FormFields.tsx +646 -0
  309. package/lib/public/src/components/pcfactory/src/utils/formUtils/WrapperContainer.tsx +123 -0
  310. package/lib/public/src/components/pcfactory/src/utils/formUtils/cmdHelper.ts +411 -0
  311. package/lib/public/src/components/pcfactory/src/utils/formUtils/common.ts +28 -0
  312. package/lib/public/src/components/pcfactory/src/utils/getExportDefaultObj.ts +11 -0
  313. package/lib/public/src/components/pcfactory/src/utils/hooks/useCommonImperativeHandle.ts +140 -0
  314. package/lib/public/src/components/pcfactory/src/utils/hooks/useDataMask.ts +83 -0
  315. package/lib/public/src/components/pcfactory/src/utils/hooks/useDoubleClick.ts +63 -0
  316. package/lib/public/src/components/pcfactory/src/utils/hooks/useFuncExpExecute.ts +86 -0
  317. package/lib/public/src/components/pcfactory/src/utils/hooks/useGetStaticAttrData.ts +41 -0
  318. package/lib/public/src/components/pcfactory/src/utils/hooks/useHiddenStyle.ts +43 -0
  319. package/lib/public/src/components/pcfactory/src/utils/hooks/useInitReactQuill.ts +90 -0
  320. package/lib/public/src/components/pcfactory/src/utils/hooks/useListenState.ts +26 -0
  321. package/lib/public/src/components/pcfactory/src/utils/hooks/useLocale.ts +129 -0
  322. package/lib/public/src/components/pcfactory/src/utils/hooks/usePrintMode.tsx +80 -0
  323. package/lib/public/src/components/pcfactory/src/utils/hooks/useRules.ts +89 -0
  324. package/lib/public/src/components/pcfactory/src/utils/hooks/useTestHelper.ts +26 -0
  325. package/lib/public/src/components/pcfactory/src/utils/hooks/useToggleBoolean.ts +33 -0
  326. package/lib/public/src/components/pcfactory/src/utils/index.ts +19 -0
  327. package/lib/public/src/components/pcfactory/src/utils/polyfill.js +305 -0
  328. package/lib/public/src/components/pcfactory/src/utils/renderReadOnly.tsx +105 -0
  329. package/lib/public/src/components/pcfactory/src/variables.ts +2 -0
  330. package/lib/public/src/components/pcfactory/typings.d.ts +27 -0
  331. package/lib/public/src/hooks/useGenerateContext.ts +73 -0
  332. package/lib/public/src/styles/common.less +41 -0
  333. package/lib/public/src/styles/index.less +4 -0
  334. package/lib/public/src/styles/index.ts +1 -0
  335. package/lib/public/src/styles/theme/variables.less +130 -0
  336. package/lib/public/src/utils/LcdpSpin/index.less +13 -0
  337. package/lib/public/src/utils/LcdpSpin/index.tsx +12 -0
  338. package/lib/public/src/utils/ModalManager/Drawer/index.less +30 -0
  339. package/lib/public/src/utils/ModalManager/Drawer/index.tsx +109 -0
  340. package/lib/public/src/utils/ModalManager/Modal/index.less +7 -0
  341. package/lib/public/src/utils/ModalManager/Modal/index.tsx +96 -0
  342. package/lib/public/src/utils/ModalManager/index.tsx +278 -0
  343. package/lib/public/src/utils/Security/encipher/des.ts +52 -0
  344. package/lib/public/src/utils/customFuncMapping.ts +107 -0
  345. package/lib/public/src/utils/formUtils.ts +458 -0
  346. package/lib/public/src/utils/i18n/i18n.ts +15 -0
  347. package/lib/public/src/utils/i18n/index.ts +7 -0
  348. package/lib/public/src/utils/i18n/locale/app/en_US.ts +77 -0
  349. package/lib/public/src/utils/i18n/locale/app/index.ts +9 -0
  350. package/lib/public/src/utils/i18n/locale/app/otherLocale.ts +2 -0
  351. package/lib/public/src/utils/i18n/locale/app/zh_CN.ts +65 -0
  352. package/lib/public/src/utils/i18n/locale/app/zh_HK.ts +66 -0
  353. package/lib/public/src/utils/i18n/locale/base/en_US.ts +449 -0
  354. package/lib/public/src/utils/i18n/locale/base/index.ts +5 -0
  355. package/lib/public/src/utils/i18n/locale/base/zh_CN.ts +413 -0
  356. package/lib/public/src/utils/i18n/locale/base/zh_HK.ts +411 -0
  357. package/lib/public/src/utils/i18n/locale/pc/en_US.ts +131 -0
  358. package/lib/public/src/utils/i18n/locale/pc/index.ts +9 -0
  359. package/lib/public/src/utils/i18n/locale/pc/otherLocale.ts +2 -0
  360. package/lib/public/src/utils/i18n/locale/pc/zh_CN.ts +105 -0
  361. package/lib/public/src/utils/i18n/locale/pc/zh_HK.ts +105 -0
  362. package/lib/public/src/utils/i18n/localeMonitor.ts +71 -0
  363. package/lib/public/src/utils/i18n/locales.ts +30 -0
  364. package/lib/public/src/utils/i18n/replaceMessage.ts +29 -0
  365. package/lib/public/src/utils/i18n/types.ts +2 -0
  366. package/lib/public/src/utils/i18n/useLocale.ts +129 -0
  367. package/lib/public/src/utils/messageApi.ts +93 -0
  368. package/lib/public/src/utils/useTool.ts +428 -0
  369. package/package.json +2 -2
  370. /package/lib/public/src/utils/functors/{dateAdd.ts → DATEADD.ts} +0 -0
@@ -0,0 +1,787 @@
1
+ import api from '@/services/api/file';
2
+ import {
3
+ DownOutlined,
4
+ RotateLeftOutlined,
5
+ RotateRightOutlined,
6
+ } from '@ant-design/icons';
7
+ import { Cascader, message, Spin } from 'antd';
8
+ import classnames from 'classnames';
9
+ import React, {
10
+ useCallback,
11
+ useEffect,
12
+ useMemo,
13
+ useRef,
14
+ useState,
15
+ } from 'react';
16
+ import pageIcon from '../../assets/pageicon';
17
+ // @ts-ignore
18
+ import { Document, Page, pdfjs } from 'react-pdf';
19
+ // @ts-ignore
20
+ import pdfworker from 'react-pdf/dist/pdf.worker.entry';
21
+ import './index.less';
22
+ // @ts-ignore
23
+ import { addFileUrlSign, useCreation } from '@/utils/engine-utils';
24
+
25
+ import security from '@/utils/Security';
26
+
27
+ import { LocaleFunction } from '@lingxiteam/types';
28
+ import {
29
+ CAN_SCALE,
30
+ isUrlFormat,
31
+ LOCAL_PREVIEW,
32
+ parseFileInfo,
33
+ PREVIEW_MODE,
34
+ } from './utils';
35
+
36
+ interface PreviewFileProps {
37
+ // appId: string;
38
+ fileIdOrUrl: string;
39
+ // pageId: string;
40
+ file?: any;
41
+ showDownLoad?: boolean;
42
+ downloadClick?: (file: any) => void;
43
+ showDelete?: boolean;
44
+ deleteClick?: (url: string) => void;
45
+ windowWidth?: number;
46
+ getLocale: LocaleFunction;
47
+ language: string;
48
+ }
49
+
50
+ type fileItem = {
51
+ fileId?: string;
52
+ name?: string;
53
+ filePath?: string;
54
+ fullFilePath?: string[];
55
+ [key: string]: any;
56
+ };
57
+
58
+ pdfjs.GlobalWorkerOptions.workerSrc = pdfworker;
59
+ const prefix = 'lcdp-previewFile';
60
+ const PreviewFile: React.FC<PreviewFileProps> = (props) => {
61
+ const {
62
+ fileIdOrUrl,
63
+ // pageId,
64
+ file,
65
+ downloadClick,
66
+ showDownLoad,
67
+ showDelete,
68
+ deleteClick,
69
+ getLocale,
70
+ language,
71
+ } = props;
72
+ // const { appId } = props;
73
+ // const api = getApis({ appId, language, pageId });
74
+ const [fileDataMap, setFileDataMap] = useState<any>({});
75
+ const [loading, setLoading] = useState(false);
76
+ // 预览失败信息
77
+ const [resultInfo, setResultInfo] = useState<any>();
78
+ const [windowWidth, setWindowWidth] = useState<number>(
79
+ props?.windowWidth || window.innerWidth,
80
+ );
81
+ const tip = getLocale('notSupportPreview', '该文件不支持当前窗口预览');
82
+ const timeId = useRef<any>(null);
83
+ const [curPreviewFile, setCurPreviewFile] = useState<fileItem>();
84
+ // 当前预览文件信息
85
+ const { currentFileData, fileData } = useMemo(() => {
86
+ // 当前预览文件ID,ZIP预览时会切换当前预览的文件
87
+ const { fileId } = curPreviewFile || {};
88
+ let curData = fileId ? fileDataMap[fileId] : undefined;
89
+ if (curData?.previewMode === PREVIEW_MODE.ZIP && curData.zipChildFileId) {
90
+ curData = fileDataMap[curData.zipChildFileId] || curData;
91
+ }
92
+ // 当前打开文件的Id
93
+ const curFileId = fileIdOrUrl || file?.fileId;
94
+ return {
95
+ currentFileData: curData,
96
+ fileData: fileDataMap[curFileId],
97
+ };
98
+ }, [file, fileIdOrUrl, fileDataMap, curPreviewFile]);
99
+
100
+ // 是否支持放大缩小、旋转、切换页面
101
+ const pageSwitch = useMemo(
102
+ () => CAN_SCALE.includes(currentFileData?.previewMode),
103
+ [currentFileData?.previewMode],
104
+ );
105
+
106
+ const fileCacheMap = useCreation(() => fileDataMap, [fileDataMap]);
107
+
108
+ const {
109
+ pageNum,
110
+ setPageNum,
111
+ scale,
112
+ setScale,
113
+ rotation,
114
+ setRotation,
115
+ updateCurrentFileData,
116
+ } = useCreation(() => {
117
+ const updateData = (key: string, newVal: any | ((preVal: any) => any)) => {
118
+ const id = currentFileData?.fileId;
119
+ setFileDataMap((pre: any) => ({
120
+ ...pre,
121
+ [id]: {
122
+ ...(pre[id] || {}),
123
+ [key]: typeof newVal === 'function' ? newVal(pre[id]?.[key]) : newVal,
124
+ },
125
+ }));
126
+ };
127
+ return {
128
+ // pdf/ppt/doc等文件会转成多张图片,切换文件页码
129
+ pageNum: currentFileData?.pageNum || 1,
130
+ setPageNum: (newVal: any) => updateData('pageNum', newVal || 1),
131
+ // 放大缩小比例
132
+ scale: currentFileData?.scale || 0.7,
133
+ setScale: (newVal: any) => updateData('scale', newVal || 0.7),
134
+ rotation: currentFileData?.rotation,
135
+ setRotation: (angle?: number) =>
136
+ updateData(
137
+ 'rotation',
138
+ (rotation: any) => ((rotation || 0) + angle) % 360,
139
+ ),
140
+ updateCurrentFileData: updateData,
141
+ };
142
+ }, [currentFileData]);
143
+
144
+ const throttle = (fn: any) => (v?: any) => {
145
+ if (!timeId?.current) {
146
+ timeId.current = setTimeout(() => {
147
+ fn(v);
148
+ clearTimeout(timeId.current);
149
+ timeId.current = null;
150
+ }, 500);
151
+ }
152
+ };
153
+
154
+ const handleOnResize = () => {
155
+ setWindowWidth(window.innerWidth);
156
+ };
157
+
158
+ const onResizeThrottle = useCallback(() => {
159
+ return throttle(handleOnResize)();
160
+ }, []);
161
+
162
+ useEffect(() => {
163
+ const resize = () => {
164
+ onResizeThrottle();
165
+ };
166
+ window.addEventListener('resize', resize);
167
+ return () => {
168
+ window.removeEventListener('resize', resize);
169
+ if (timeId.current) {
170
+ clearTimeout(timeId.current);
171
+ }
172
+ };
173
+ }, []);
174
+
175
+ const getFilePreviewUrl = (id: string) =>
176
+ /^\d+$/.test(id) ? api.previewFileById(id) : id;
177
+
178
+ // 签名每次会增加一个时间戳,需要缓存url
179
+ const filePreviewUrl = useMemo(() => {
180
+ let url =
181
+ currentFileData?.serverFileUrl ||
182
+ currentFileData?.data?.dataUrl ||
183
+ currentFileData?.data?.url;
184
+
185
+ if (url) return url;
186
+ if (currentFileData?.serverFileId) {
187
+ url = getFilePreviewUrl(currentFileData?.serverFileId);
188
+ currentFileData.serverFileUrl = url;
189
+ } else {
190
+ url = getFilePreviewUrl(currentFileData?.fileId);
191
+ }
192
+ return url;
193
+ }, [currentFileData?.fileId]);
194
+
195
+ // 下载当前文件
196
+ const mydownloadClick = () => {
197
+ if (file) {
198
+ downloadClick && downloadClick(file);
199
+ }
200
+ };
201
+
202
+ const renderIMG = (src: string) => {
203
+ return <img width={windowWidth * 0.5 * scale} src={src} alt="" />;
204
+ };
205
+
206
+ // 根据下载接口获取文件,判断文件类型是否可以预览
207
+ const getFileData = (fileId: string): Promise<any> => {
208
+ const url = isUrlFormat(fileId) ? fileId : getFilePreviewUrl(fileId);
209
+ if (url) {
210
+ const xhr = new XMLHttpRequest(); // ActiveXObject只存在于IE7及以下,无需兼容
211
+ xhr.open('GET', url);
212
+ xhr.responseType = 'blob'; // 设置接受类型
213
+
214
+ const headers: any = {
215
+ // 'X-B-TARGET-ID': pageId,
216
+ 'X-B-AUTH': '1',
217
+ // 'APP-ID': props?.appId,
218
+ };
219
+ Object.keys(headers).forEach((header) => {
220
+ xhr.setRequestHeader(header, headers[header]); // 设置请求头参数
221
+ });
222
+ xhr.setRequestHeader(
223
+ 'X-SIGN',
224
+ security.httpEncryption.createHttpSignStr(url, {
225
+ method: 'GET',
226
+ headers,
227
+ body: '',
228
+ search: '',
229
+ }),
230
+ );
231
+ xhr.withCredentials = true;
232
+ return new Promise((resolve, reject) => {
233
+ xhr.onload = () => {
234
+ const data = xhr.response; // 获取响应体数据
235
+ if (xhr.status === 200) {
236
+ const position = xhr.getResponseHeader('Content-Disposition');
237
+ const filename = position?.match(/filename\*?=[^;]*/)?.[0];
238
+ if (filename) {
239
+ data.name = filename;
240
+ }
241
+ data.url = url;
242
+ try {
243
+ const reader = new FileReader();
244
+ reader.addEventListener('load', () => {
245
+ data.dataUrl = reader.result;
246
+ resolve(data);
247
+ });
248
+ reader.readAsDataURL(data);
249
+ } catch (e) {
250
+ resolve(data);
251
+ }
252
+ }
253
+ };
254
+ xhr.onerror = () => {
255
+ const previewUrl = new URL(url);
256
+ if (previewUrl.origin !== window.location.origin) {
257
+ // 非同源的根据url后缀判断
258
+ resolve({
259
+ name: url,
260
+ cors: true,
261
+ });
262
+ }
263
+ setResultInfo(tip);
264
+ reject();
265
+ };
266
+ xhr.onloadend = () => {
267
+ if (xhr.status === 404) {
268
+ setResultInfo(getLocale('fileNotExist', '文件资源不存在'));
269
+ reject();
270
+ }
271
+ };
272
+ xhr.send();
273
+ });
274
+ }
275
+ return Promise.resolve(null);
276
+ };
277
+
278
+ // 获取zip压缩文件目录
279
+ const getZipFileDir = async (fileItem: fileItem) => {
280
+ try {
281
+ const id = fileItem?.fileId;
282
+ if (!id) return undefined;
283
+ setLoading(true);
284
+ const zipDir = await api.getZipFileNode({ sourceFileId: id });
285
+ return {
286
+ ...fileItem,
287
+ zipDir,
288
+ };
289
+ } catch (e) {
290
+ return undefined;
291
+ } finally {
292
+ setLoading(false);
293
+ }
294
+ };
295
+
296
+ // 校验是否为指定格式
297
+ // 部分格式后端不支持预览转换,由前端处理
298
+ const checkPreview = async (fileItem: fileItem) => {
299
+ let fileInfo: fileItem = fileItem;
300
+ // 切换文件时优先从缓存取,若无则重新加载
301
+ const fileData = fileCacheMap[fileInfo?.fileId!];
302
+ let fileBlob: File & {
303
+ cors: boolean;
304
+ name: string;
305
+ } = fileData?.data;
306
+ if (fileInfo?.fileId && !fileData) {
307
+ try {
308
+ fileBlob = await getFileData(fileInfo?.fileId);
309
+ } catch (error) {
310
+ console.error('预览文件时候错误error', error);
311
+ }
312
+ }
313
+ let target = LOCAL_PREVIEW.find((val) => {
314
+ if (
315
+ val.suffix?.test(
316
+ fileInfo?.name || fileBlob?.name || fileInfo?.fileId || '',
317
+ ) ||
318
+ val.mimeTypeReg?.test(fileBlob?.type || '')
319
+ ) {
320
+ fileInfo.previewMode = val.previewMode;
321
+ if (fileBlob?.cors && !val.cors) {
322
+ // 预览跨域文件地址且无法通过平台定制方式预览的,通过iframe展示
323
+ fileInfo.previewMode = PREVIEW_MODE.IFRAME;
324
+ }
325
+ return true;
326
+ }
327
+ return false;
328
+ });
329
+ if (target?.previewMode === PREVIEW_MODE.TXT && fileBlob instanceof Blob) {
330
+ if (fileBlob?.text) {
331
+ // 兼容ie11
332
+ fileInfo.content = await fileBlob.text();
333
+ } else {
334
+ target = undefined;
335
+ }
336
+ }
337
+ if (target?.previewMode === PREVIEW_MODE.ZIP && !fileData) {
338
+ // ZIP 预览需要特殊处理,先获取zip文件的目录结构,在分层进行预览
339
+ const zipInfo = await getZipFileDir(fileInfo);
340
+ if (!zipInfo) return undefined;
341
+ fileInfo = zipInfo;
342
+ }
343
+ if (target && fileInfo) {
344
+ fileInfo.data = fileBlob;
345
+ setFileDataMap((pre: any) => ({
346
+ ...pre,
347
+ [fileInfo?.fileId!]: {
348
+ ...(pre[fileInfo?.fileId!] || {}),
349
+ ...fileInfo,
350
+ },
351
+ }));
352
+ }
353
+ return target;
354
+ };
355
+
356
+ const getFileInfo = async (fileItem: fileItem) => {
357
+ setLoading(true);
358
+ try {
359
+ const target = await checkPreview({
360
+ fileId: fileItem.fileId,
361
+ name: fileItem?.name,
362
+ });
363
+ if (target) {
364
+ setLoading(false);
365
+ return;
366
+ }
367
+ await getFile(fileItem);
368
+ } finally {
369
+ setLoading(false);
370
+ }
371
+ };
372
+
373
+ const viewFile = async (fileItem: fileItem, viewSource?: string) => {
374
+ if (!fileItem) return undefined;
375
+ switch (viewSource) {
376
+ // 来源压缩包子文件预览处理
377
+ case PREVIEW_MODE.ZIP: {
378
+ const { zipSourceFileId, filePath } = fileItem || {};
379
+ // 预览zip 子文件
380
+ const fileInfo = await api.viewZipFile({
381
+ filePath,
382
+ sourceFileId: zipSourceFileId,
383
+ });
384
+ return fileInfo;
385
+ }
386
+ default: {
387
+ // 常规文件预览处理
388
+ const id = fileItem.fileId;
389
+ if (!id) return undefined;
390
+ let fileInfo = fileCacheMap[id];
391
+ const isUrl = isUrlFormat(id);
392
+ // 当传入的fileIdOrUrl是合法的网络地址时,则视为外部地址,所有不支持浏览器直接预览
393
+ if (!fileInfo && !isUrl) {
394
+ fileInfo = await api.viewFile({
395
+ fileId: id,
396
+ // appId,
397
+ // pageId
398
+ });
399
+ }
400
+ return fileInfo;
401
+ }
402
+ }
403
+ };
404
+
405
+ // 根据平台预览接口获取转换后的文件格式
406
+ const getFile = async (fileItem: fileItem, viewSource?: string) => {
407
+ setLoading(true);
408
+ let fileInfo: any = null;
409
+ try {
410
+ fileInfo = await viewFile(fileItem, viewSource);
411
+ if (fileInfo && fileInfo?.resultCode !== '-2') {
412
+ const id = fileItem?.fileId;
413
+ if (id) {
414
+ // 根据预览接口返回参数补充文件参数
415
+ fileInfo = parseFileInfo(fileItem, fileInfo);
416
+ setFileDataMap((pre: any) => ({
417
+ ...pre,
418
+ [id]: {
419
+ // 切换文件的时候使用上一次的旋转
420
+ rotation: pre?.[fileInfo?.fileId]?.rotation,
421
+ ...fileInfo,
422
+ },
423
+ }));
424
+ }
425
+ } else if (!fileInfo?.previewMode) {
426
+ setResultInfo(tip);
427
+ }
428
+ } catch (e: any) {
429
+ const { resultCode } = e;
430
+ if (resultCode === '-2') {
431
+ if (!fileInfo?.previewMode) {
432
+ setResultInfo(tip);
433
+ }
434
+ } else {
435
+ setResultInfo(e.resultMsg);
436
+ }
437
+ } finally {
438
+ setLoading(false);
439
+ }
440
+ return fileInfo;
441
+ };
442
+
443
+ const initFile = async (curFile: fileItem) => {
444
+ setCurPreviewFile(curFile);
445
+ if (curFile?.fileId) {
446
+ await getFileInfo(curFile);
447
+ }
448
+ };
449
+
450
+ useEffect(() => {
451
+ const curFile: fileItem = {
452
+ ...(file || {}),
453
+ fileId: file?.fileId || fileIdOrUrl,
454
+ };
455
+ initFile(curFile);
456
+ }, [file, fileIdOrUrl]);
457
+
458
+ const renderPPT = () => {
459
+ return (
460
+ <div className="preview_content ppt">
461
+ {renderIMG(getFilePreviewUrl(currentFileData?.fileIdList[pageNum - 1]))}
462
+ </div>
463
+ );
464
+ };
465
+ const renderContent = () => (
466
+ <div className="preview_content txt">
467
+ <div className="code">{currentFileData?.content}</div>
468
+ </div>
469
+ );
470
+
471
+ const renderPDF = (fileUrl: string) => {
472
+ return (
473
+ <div className="pdf-container">
474
+ <Document
475
+ file={fileUrl}
476
+ loading={
477
+ <div className="pdf-loading">
478
+ <Spin size="large" />
479
+ </div>
480
+ }
481
+ options={{
482
+ cMapUrl: 'cmaps/',
483
+ cMapPacked: true,
484
+ }}
485
+ onLoadSuccess={onDocumentLoadSuccess}
486
+ >
487
+ <Page
488
+ pageNumber={pageNum}
489
+ width={windowWidth * 0.5}
490
+ scale={scale}
491
+ loading={
492
+ <div className="pdf-loading">
493
+ <Spin size="large" />
494
+ </div>
495
+ }
496
+ />
497
+ </Document>
498
+ </div>
499
+ );
500
+ };
501
+
502
+ const render = () => {
503
+ switch (currentFileData?.previewMode) {
504
+ case PREVIEW_MODE.IMG:
505
+ return renderIMG(filePreviewUrl);
506
+ case PREVIEW_MODE.PDF:
507
+ return renderPDF(filePreviewUrl);
508
+ case PREVIEW_MODE.HTML:
509
+ // eslint-disable-next-line react/no-danger
510
+ return (
511
+ <div className="preview_content">
512
+ <iframe
513
+ ref={(r) => {
514
+ if (r?.contentDocument?.write) {
515
+ // r.contentDocument?.write(addFileUrlSign(currentFileData?.content));
516
+ // r.contentDocument?.close?.();
517
+ // contentDocument.write 会直接往内存里面写,如果数据量较大会导致浏览器内存溢出,用其他方法修改下
518
+ const content = addFileUrlSign(currentFileData?.content);
519
+ const blob = new Blob([content], { type: 'text/html' });
520
+ const url = URL.createObjectURL(blob);
521
+ r.src = url;
522
+ }
523
+ }}
524
+ title={getLocale('preview', '预览')}
525
+ style={{
526
+ backgroundColor: '#fff',
527
+ overflow: 'auto',
528
+ height: '80vh',
529
+ width: '50vw',
530
+ }}
531
+ />
532
+ </div>
533
+ );
534
+ case PREVIEW_MODE.VIDEO:
535
+ return (
536
+ <div className="preview_content">
537
+ <video
538
+ src={getFilePreviewUrl(currentFileData?.fileId)}
539
+ loop
540
+ height="100%"
541
+ width={windowWidth * 0.8}
542
+ autoPlay={!loading}
543
+ muted
544
+ />
545
+ </div>
546
+ );
547
+ case PREVIEW_MODE.PPT:
548
+ return renderPPT();
549
+ case PREVIEW_MODE.TXT:
550
+ return renderContent();
551
+ case PREVIEW_MODE.IFRAME:
552
+ return (
553
+ <div className="preview_content">
554
+ <iframe
555
+ src={getFilePreviewUrl(currentFileData?.fileId)}
556
+ key={currentFileData?.fileId}
557
+ title={currentFileData?.name}
558
+ className="iframe"
559
+ />
560
+ </div>
561
+ );
562
+ default: {
563
+ let info = resultInfo;
564
+ let tips = '';
565
+ if (PREVIEW_MODE.ZIP === currentFileData?.previewMode) {
566
+ info = getLocale(
567
+ 'zipPreviewTitle',
568
+ '当前预览内容为压缩包,不支持直接预览',
569
+ );
570
+ tips = getLocale(
571
+ 'zipPreviewTips',
572
+ '请在下方选择压缩包内文件进行预览',
573
+ );
574
+ }
575
+ if (info) {
576
+ return (
577
+ <div className="error">
578
+ <div className="error-title">{info}</div>
579
+ {tips && <div className={`${prefix}-error-tips`}>{tips}</div>}
580
+ </div>
581
+ );
582
+ }
583
+ return null;
584
+ }
585
+ }
586
+ };
587
+
588
+ const onDocumentLoadSuccess = (params: any) => {
589
+ const { numPages } = params || {};
590
+ updateCurrentFileData('totalPage', numPages);
591
+ };
592
+
593
+ // 预览zip包里面的文件
594
+ const handlePreviewZipFile = async (val: any[], selectOptions: any[]) => {
595
+ if (val) {
596
+ const filePath = [...val].pop();
597
+ // 防止多次点击同一个文件
598
+ if (filePath === currentFileData?.fullFilePath) return;
599
+ const zipSourceFileId = file?.id || fileIdOrUrl;
600
+ const fileItem: fileItem = {
601
+ filePath,
602
+ fullFilePath: val,
603
+ fullFilePathName: selectOptions.map((opt) => opt.fileName),
604
+ zipSourceFileId,
605
+ // zip包内的文件部分后端转换后,不一定能返回fileId,根据zip的fileId和filePath临时生成一个用来渲染
606
+ fileId: `${zipSourceFileId}_${filePath}`,
607
+ };
608
+ let fileInfo = fileItem;
609
+ try {
610
+ // 预览当前文件
611
+ fileInfo = await getFile(fileItem, PREVIEW_MODE.ZIP);
612
+ } catch (e) {
613
+ //
614
+ }
615
+ setFileDataMap((pre: any) => ({
616
+ ...pre,
617
+ [zipSourceFileId]: {
618
+ ...(pre[zipSourceFileId] || {}),
619
+ zipChildFileId: fileInfo?.fileId,
620
+ },
621
+ }));
622
+ setCurPreviewFile(fileInfo);
623
+ }
624
+ };
625
+
626
+ const renderDisBtn = () => {
627
+ return (
628
+ <div className="pdf-disbtn" onClick={(e) => e.stopPropagation()}>
629
+ {fileData?.previewMode === PREVIEW_MODE.ZIP && (
630
+ <Cascader
631
+ placement="topLeft"
632
+ onChange={handlePreviewZipFile}
633
+ fieldNames={{
634
+ label: 'fileName',
635
+ value: 'filePath',
636
+ children: 'children',
637
+ }}
638
+ value={currentFileData?.fullFilePath}
639
+ dropdownClassName={`${prefix}-dropdown`}
640
+ options={fileData?.zipDir ? [fileData.zipDir] : []}
641
+ >
642
+ <div
643
+ className={classnames(`${prefix}-zip-select`, `${prefix}-group`)}
644
+ >
645
+ <span className={`${prefix}-zip-select-label`}>
646
+ {currentFileData?.fileId !== fileData?.fileId &&
647
+ currentFileData?.fullFilePathName
648
+ ? currentFileData?.fullFilePathName?.join('/')
649
+ : getLocale(
650
+ 'zipPreviewPlaceholder',
651
+ '请选择包内文件进行预览',
652
+ )}
653
+ </span>
654
+ <DownOutlined rev="" />
655
+ </div>
656
+ </Cascader>
657
+ )}
658
+ {pageSwitch && (
659
+ <>
660
+ <div className={`${prefix}-group`}>
661
+ <div
662
+ className="pdf-bt"
663
+ onClick={() => {
664
+ if (pageNum > 1) setPageNum(pageNum - 1);
665
+ }}
666
+ >
667
+ <img src={pageIcon.leftIcon} alt="" />
668
+ </div>
669
+ <div className="pdf-bt-text">{`${pageNum}/${
670
+ currentFileData?.totalPage || 1
671
+ }`}</div>
672
+ <div
673
+ className="pdf-bt"
674
+ onClick={() => {
675
+ if (pageNum < (currentFileData?.totalPage || 1))
676
+ setPageNum(pageNum + 1);
677
+ }}
678
+ >
679
+ <img src={pageIcon.rightIcon} alt="" />
680
+ </div>
681
+ </div>
682
+ <div className={`${prefix}-group`}>
683
+ <div
684
+ className="pdf-bt"
685
+ onClick={() => {
686
+ if (scale <= 0.1) {
687
+ message.info(getLocale('scaleMin'));
688
+ return;
689
+ }
690
+ const newScale = (scale * 10 - 0.1 * 10) / 10;
691
+ setScale(newScale);
692
+ }}
693
+ >
694
+ <img src={pageIcon.zoomOutIcon} alt="" />
695
+ </div>
696
+ <div className="pdf-bt-text">{`${Math.round(scale * 100)}%`}</div>
697
+ <div
698
+ className="pdf-bt"
699
+ onClick={() => {
700
+ if (scale >= 2) {
701
+ message.info(getLocale('scaleMax'));
702
+ return;
703
+ }
704
+ const newScale = (scale * 10 + 0.1 * 10) / 10;
705
+ setScale(newScale);
706
+ }}
707
+ >
708
+ <img src={pageIcon.zoomInIcon} alt="" />
709
+ </div>
710
+ </div>
711
+ <div className={`${prefix}-group`}>
712
+ <div
713
+ className="pdf-bt"
714
+ onClick={() => {
715
+ setRotation(-90);
716
+ }}
717
+ >
718
+ <RotateLeftOutlined rev="" />
719
+ </div>
720
+ <div
721
+ className="pdf-bt"
722
+ onClick={() => {
723
+ setRotation(90);
724
+ }}
725
+ >
726
+ <RotateRightOutlined rev="" />
727
+ </div>
728
+ </div>
729
+ </>
730
+ )}
731
+ {(showDownLoad || showDelete) && (
732
+ <div className={`${prefix}-group`}>
733
+ {showDownLoad && (
734
+ <div className="pdf-bt" onClick={mydownloadClick}>
735
+ <img src={pageIcon.downloadIcon} alt="" />
736
+ </div>
737
+ )}
738
+ {showDelete && (
739
+ <div
740
+ className="pdf-bt"
741
+ onClick={() => {
742
+ if (typeof deleteClick === 'function') {
743
+ deleteClick(file);
744
+ }
745
+ }}
746
+ >
747
+ <img src={pageIcon.deleteIcon} alt="" />
748
+ </div>
749
+ )}
750
+ </div>
751
+ )}
752
+ </div>
753
+ );
754
+ };
755
+
756
+ return (
757
+ <div
758
+ className={classnames(`${prefix}-wrap`, {
759
+ [`${prefix}-wrapPic`]:
760
+ currentFileData?.previewMode === PREVIEW_MODE.IMG || loading,
761
+ })}
762
+ >
763
+ <Spin size="large" spinning={loading} />
764
+ <div
765
+ className="content"
766
+ onClick={(e) => e.stopPropagation()}
767
+ style={
768
+ currentFileData?.previewMode
769
+ ? {
770
+ transform: `rotate(${rotation || 0}deg)`,
771
+ }
772
+ : undefined
773
+ }
774
+ >
775
+ {!loading && render()}
776
+ </div>
777
+ {renderDisBtn()}
778
+ </div>
779
+ );
780
+ };
781
+
782
+ PreviewFile.defaultProps = {
783
+ // eslint-disable-next-line react/default-props-match-prop-types
784
+ getLocale: (_l, t) => t ?? '',
785
+ };
786
+
787
+ export default PreviewFile;