aldehyde 0.2.235 → 0.2.237

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 (306) hide show
  1. package/lib/controls/action/index.d.ts +2 -0
  2. package/lib/controls/action/index.d.ts.map +1 -1
  3. package/lib/controls/chemstruc/graph.d.ts +2 -0
  4. package/lib/controls/chemstruc/graph.d.ts.map +1 -1
  5. package/lib/controls/collapse-card/index.d.ts +2 -0
  6. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  7. package/lib/controls/color-picker/index.d.ts +2 -0
  8. package/lib/controls/color-picker/index.d.ts.map +1 -1
  9. package/lib/controls/cquery/cquick-button.d.ts +2 -0
  10. package/lib/controls/cquery/cquick-button.d.ts.map +1 -1
  11. package/lib/controls/date-picker/index.d.ts.map +1 -1
  12. package/lib/controls/date-picker/index.js +9 -1
  13. package/lib/controls/date-picker/index.js.map +1 -1
  14. package/lib/controls/entity-select/entity-select.d.ts +2 -0
  15. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  16. package/lib/controls/entity-select/lab-tree-select.d.ts +2 -0
  17. package/lib/controls/entity-select/lab-tree-select.d.ts.map +1 -1
  18. package/lib/controls/entity-select/popover-entity-select.d.ts +2 -0
  19. package/lib/controls/entity-select/popover-entity-select.d.ts.map +1 -1
  20. package/lib/controls/entry-control.d.ts.map +1 -1
  21. package/lib/controls/entry-control.js +4 -1
  22. package/lib/controls/entry-control.js.map +1 -1
  23. package/lib/controls/file-view/drawer-file-view.js +1 -1
  24. package/lib/controls/file-view/drawer-file-view.js.map +1 -1
  25. package/lib/controls/file-view/index.d.ts +1 -1
  26. package/lib/controls/file-view/index.d.ts.map +1 -1
  27. package/lib/controls/file-view/index.js +3 -3
  28. package/lib/controls/file-view/index.js.map +1 -1
  29. package/lib/controls/file-view/multi-file-view.d.ts +12 -0
  30. package/lib/controls/file-view/multi-file-view.d.ts.map +1 -0
  31. package/lib/controls/file-view/multi-file-view.js +27 -0
  32. package/lib/controls/file-view/multi-file-view.js.map +1 -0
  33. package/lib/controls/password-setter/index.d.ts +2 -0
  34. package/lib/controls/password-setter/index.d.ts.map +1 -1
  35. package/lib/controls/relation-existion/index.d.ts +2 -0
  36. package/lib/controls/relation-existion/index.d.ts.map +1 -1
  37. package/lib/controls/rfield/index.d.ts +2 -0
  38. package/lib/controls/rfield/index.d.ts.map +1 -1
  39. package/lib/controls/select/index.d.ts +2 -0
  40. package/lib/controls/select/index.d.ts.map +1 -1
  41. package/lib/controls/signature/index.d.ts +2 -0
  42. package/lib/controls/signature/index.d.ts.map +1 -1
  43. package/lib/controls/text/ellipsis-text.d.ts +2 -0
  44. package/lib/controls/text/ellipsis-text.d.ts.map +1 -1
  45. package/lib/controls/tree-select/tree-entity-select.d.ts.map +1 -1
  46. package/lib/controls/tree-select/tree-entity-select.js +0 -1
  47. package/lib/controls/tree-select/tree-entity-select.js.map +1 -1
  48. package/lib/controls/upload/index.d.ts +2 -0
  49. package/lib/controls/upload/index.d.ts.map +1 -1
  50. package/lib/controls/upload/index.js +3 -2
  51. package/lib/controls/upload/index.js.map +1 -1
  52. package/lib/controls/upload/mult-file-upload.d.ts +35 -0
  53. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -0
  54. package/lib/controls/upload/mult-file-upload.js +181 -0
  55. package/lib/controls/upload/mult-file-upload.js.map +1 -0
  56. package/lib/controls/view-control.d.ts.map +1 -1
  57. package/lib/controls/view-control.js +3 -1
  58. package/lib/controls/view-control.js.map +1 -1
  59. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts +2 -0
  60. package/lib/custom-page/dtmpl-custom-edit-modal-page.d.ts.map +1 -1
  61. package/lib/detail/button/bottom-submit-button-bar.d.ts +2 -0
  62. package/lib/detail/button/bottom-submit-button-bar.d.ts.map +1 -1
  63. package/lib/detail/button/cquery-button-bar.d.ts +2 -0
  64. package/lib/detail/button/cquery-button-bar.d.ts.map +1 -1
  65. package/lib/detail/button/fix-right-submit-button-bar.d.ts +2 -0
  66. package/lib/detail/button/fix-right-submit-button-bar.d.ts.map +1 -1
  67. package/lib/detail/edit/fields-edit-card.d.ts +2 -0
  68. package/lib/detail/edit/fields-edit-card.d.ts.map +1 -1
  69. package/lib/detail/edit/modal-row-edit.d.ts +2 -0
  70. package/lib/detail/edit/modal-row-edit.d.ts.map +1 -1
  71. package/lib/detail/edit/row-edit-card.d.ts +2 -0
  72. package/lib/detail/edit/row-edit-card.d.ts.map +1 -1
  73. package/lib/detail/rightbar/index.d.ts +2 -0
  74. package/lib/detail/rightbar/index.d.ts.map +1 -1
  75. package/lib/detail/view/act-dtmpl-view.d.ts +2 -0
  76. package/lib/detail/view/act-dtmpl-view.d.ts.map +1 -1
  77. package/lib/detail/view/act-dtmpl-view.js +1 -1
  78. package/lib/detail/view/act-dtmpl-view.js.map +1 -1
  79. package/lib/detail/view/dtmpl-view.d.ts.map +1 -1
  80. package/lib/detail/view/dtmpl-view.js +0 -3
  81. package/lib/detail/view/dtmpl-view.js.map +1 -1
  82. package/lib/detail/view/field-view-group.d.ts +2 -0
  83. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  84. package/lib/detail/view/modal-dtmpl-view.d.ts +2 -0
  85. package/lib/detail/view/modal-dtmpl-view.d.ts.map +1 -1
  86. package/lib/detail/view/snapshot-timeline.d.ts +2 -0
  87. package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
  88. package/lib/detail/view/tab-act-dtmpl-view.d.ts +68 -0
  89. package/lib/detail/view/tab-act-dtmpl-view.d.ts.map +1 -0
  90. package/lib/detail/view/tab-act-dtmpl-view.js +182 -0
  91. package/lib/detail/view/tab-act-dtmpl-view.js.map +1 -0
  92. package/lib/export/export-frame.d.ts +2 -0
  93. package/lib/export/export-frame.d.ts.map +1 -1
  94. package/lib/export/select-code-export-frame.d.ts +2 -0
  95. package/lib/export/select-code-export-frame.d.ts.map +1 -1
  96. package/lib/form/criteria-form.d.ts.map +1 -1
  97. package/lib/form/criteria-form.js +11 -3
  98. package/lib/form/criteria-form.js.map +1 -1
  99. package/lib/form/dtmpl-form.d.ts +2 -0
  100. package/lib/form/dtmpl-form.d.ts.map +1 -1
  101. package/lib/form/field-group-form.d.ts +2 -0
  102. package/lib/form/field-group-form.d.ts.map +1 -1
  103. package/lib/form/form-Item-group.d.ts +2 -0
  104. package/lib/form/form-Item-group.d.ts.map +1 -1
  105. package/lib/form/form-Item-group.js +3 -2
  106. package/lib/form/form-Item-group.js.map +1 -1
  107. package/lib/hooks/use-match-route/index.d.ts +10 -0
  108. package/lib/hooks/use-match-route/index.d.ts.map +1 -0
  109. package/lib/hooks/use-match-route/index.js +41 -0
  110. package/lib/hooks/use-match-route/index.js.map +1 -0
  111. package/lib/hooks/use-tabs/index.d.ts +18 -0
  112. package/lib/hooks/use-tabs/index.d.ts.map +1 -0
  113. package/lib/hooks/use-tabs/index.js +112 -0
  114. package/lib/hooks/use-tabs/index.js.map +1 -0
  115. package/lib/import/excel-import.d.ts +2 -0
  116. package/lib/import/excel-import.d.ts.map +1 -1
  117. package/lib/layout/MainPage.js +1 -1
  118. package/lib/layout/MainPage.js.map +1 -1
  119. package/lib/layout/coverstyle.css +1 -1
  120. package/lib/layout/menu/block.d.ts +2 -0
  121. package/lib/layout/menu/block.d.ts.map +1 -1
  122. package/lib/layout/menu/l2menu-quick-bar.d.ts +2 -0
  123. package/lib/layout/menu/l2menu-quick-bar.d.ts.map +1 -1
  124. package/lib/layout/menu/menu-2layers.d.ts +2 -0
  125. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  126. package/lib/layout/menu/reset-password.d.ts +2 -0
  127. package/lib/layout/menu/reset-password.d.ts.map +1 -1
  128. package/lib/layout/menu/user-bar.d.ts +2 -0
  129. package/lib/layout/menu/user-bar.d.ts.map +1 -1
  130. package/lib/layout/menu/userinfo-bar.d.ts +2 -0
  131. package/lib/layout/menu/userinfo-bar.d.ts.map +1 -1
  132. package/lib/layout/sidebar/index.js +4 -2
  133. package/lib/layout/sidebar/index.js.map +1 -1
  134. package/lib/layout2/components/userButton.d.ts.map +1 -1
  135. package/lib/layout2/components/userButton.js +9 -2
  136. package/lib/layout2/components/userButton.js.map +1 -1
  137. package/lib/layout2/header.d.ts.map +1 -1
  138. package/lib/layout2/header.js +4 -66
  139. package/lib/layout2/header.js.map +1 -1
  140. package/lib/layout2/main.d.ts +1 -1
  141. package/lib/layout2/main.d.ts.map +1 -1
  142. package/lib/layout2/main.js +3 -3
  143. package/lib/layout2/main.js.map +1 -1
  144. package/lib/layout2/page.d.ts.map +1 -1
  145. package/lib/layout2/page.js +20 -2
  146. package/lib/layout2/page.js.map +1 -1
  147. package/lib/layout2/sider.d.ts +1 -2
  148. package/lib/layout2/sider.d.ts.map +1 -1
  149. package/lib/layout2/sider.js +6 -125
  150. package/lib/layout2/sider.js.map +1 -1
  151. package/lib/layout2/tabs/tabs-context.d.ts +20 -0
  152. package/lib/layout2/tabs/tabs-context.d.ts.map +1 -0
  153. package/lib/layout2/tabs/tabs-context.js +9 -0
  154. package/lib/layout2/tabs/tabs-context.js.map +1 -0
  155. package/lib/layout2/tabs/tabs-layout.d.ts +4 -0
  156. package/lib/layout2/tabs/tabs-layout.d.ts.map +1 -0
  157. package/lib/layout2/tabs/tabs-layout.js +87 -0
  158. package/lib/layout2/tabs/tabs-layout.js.map +1 -0
  159. package/lib/locale/LocaleProvider.d.ts +2 -0
  160. package/lib/locale/LocaleProvider.d.ts.map +1 -1
  161. package/lib/locale/LocaleProvider.js +7 -1
  162. package/lib/locale/LocaleProvider.js.map +1 -1
  163. package/lib/locale/useLocale.d.ts +2 -0
  164. package/lib/locale/useLocale.d.ts.map +1 -1
  165. package/lib/locale/useLocale.js +8 -2
  166. package/lib/locale/useLocale.js.map +1 -1
  167. package/lib/login/login.d.ts +2 -0
  168. package/lib/login/login.d.ts.map +1 -1
  169. package/lib/login2/login-page.js +1 -1
  170. package/lib/login2/login-page.js.map +1 -1
  171. package/lib/module/dtmpl-edit-card.d.ts +2 -0
  172. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  173. package/lib/module/dtmpl-edit-card.js +0 -1
  174. package/lib/module/dtmpl-edit-card.js.map +1 -1
  175. package/lib/module/dtmpl-edit-page.d.ts +2 -0
  176. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  177. package/lib/module/dtmpl-view-card.d.ts.map +1 -1
  178. package/lib/module/dtmpl-view-card.js +0 -10
  179. package/lib/module/dtmpl-view-card.js.map +1 -1
  180. package/lib/module/ltmpl-modal.d.ts +2 -0
  181. package/lib/module/ltmpl-modal.d.ts.map +1 -1
  182. package/lib/module/ltmpl-table.d.ts +4 -0
  183. package/lib/module/ltmpl-table.d.ts.map +1 -1
  184. package/lib/module/ltmpl-table.js +3 -2
  185. package/lib/module/ltmpl-table.js.map +1 -1
  186. package/lib/routable/dtmpl-route.d.ts.map +1 -1
  187. package/lib/routable/dtmpl-route.js +2 -2
  188. package/lib/routable/dtmpl-route.js.map +1 -1
  189. package/lib/routable/ltmpl-route.d.ts +1 -0
  190. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  191. package/lib/routable/ltmpl-route.js +20 -13
  192. package/lib/routable/ltmpl-route.js.map +1 -1
  193. package/lib/routable/ttmpl-route.d.ts +1 -0
  194. package/lib/routable/ttmpl-route.d.ts.map +1 -1
  195. package/lib/routable/ttmpl-route.js +2 -2
  196. package/lib/routable/ttmpl-route.js.map +1 -1
  197. package/lib/routable/withroute.d.ts.map +1 -1
  198. package/lib/routable/withroute.js +8 -2
  199. package/lib/routable/withroute.js.map +1 -1
  200. package/lib/table/act-table.d.ts +13 -2
  201. package/lib/table/act-table.d.ts.map +1 -1
  202. package/lib/table/act-table.js +117 -55
  203. package/lib/table/act-table.js.map +1 -1
  204. package/lib/table/column/column-builder.d.ts +1 -0
  205. package/lib/table/column/column-builder.d.ts.map +1 -1
  206. package/lib/table/column/column-builder.js +100 -81
  207. package/lib/table/column/column-builder.js.map +1 -1
  208. package/lib/table/modal-select-table.d.ts +2 -0
  209. package/lib/table/modal-select-table.d.ts.map +1 -1
  210. package/lib/table/modal-select-table.js +1 -1
  211. package/lib/table/modal-select-table.js.map +1 -1
  212. package/lib/table/pagination.d.ts +2 -0
  213. package/lib/table/pagination.d.ts.map +1 -1
  214. package/lib/table/query-table.d.ts +7 -3
  215. package/lib/table/query-table.d.ts.map +1 -1
  216. package/lib/table/query-table.js +62 -12
  217. package/lib/table/query-table.js.map +1 -1
  218. package/lib/table/relation-table.d.ts +2 -0
  219. package/lib/table/relation-table.d.ts.map +1 -1
  220. package/lib/table/relation-table.js +1 -1
  221. package/lib/table/relation-table.js.map +1 -1
  222. package/lib/table/select-table.d.ts +2 -0
  223. package/lib/table/select-table.d.ts.map +1 -1
  224. package/lib/table/select-table.js +2 -1
  225. package/lib/table/select-table.js.map +1 -1
  226. package/lib/table/selected-rows-card.d.ts +3 -0
  227. package/lib/table/selected-rows-card.d.ts.map +1 -1
  228. package/lib/table/selected-rows-card.js +2 -1
  229. package/lib/table/selected-rows-card.js.map +1 -1
  230. package/lib/table/stat/restat.d.ts +3 -1
  231. package/lib/table/stat/restat.d.ts.map +1 -1
  232. package/lib/table/stat/restat.js +1 -1
  233. package/lib/table/stat/restat.js.map +1 -1
  234. package/lib/tmpl/hcservice-v3.d.ts +5 -2
  235. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  236. package/lib/tmpl/hcservice-v3.js +62 -21
  237. package/lib/tmpl/hcservice-v3.js.map +1 -1
  238. package/lib/tmpl/interface.d.ts +28 -1
  239. package/lib/tmpl/interface.d.ts.map +1 -1
  240. package/lib/tmpl/interface.js.map +1 -1
  241. package/lib/tree/act-tree.d.ts +6 -1
  242. package/lib/tree/act-tree.d.ts.map +1 -1
  243. package/lib/tree/act-tree.js +5 -5
  244. package/lib/tree/act-tree.js.map +1 -1
  245. package/lib/tree/tmpl-tree.d.ts +2 -0
  246. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  247. package/lib/tree/tree-utils.js +1 -1
  248. package/lib/tree/tree-utils.js.map +1 -1
  249. package/lib/units/index.d.ts +5 -1
  250. package/lib/units/index.d.ts.map +1 -1
  251. package/lib/units/index.js +25 -0
  252. package/lib/units/index.js.map +1 -1
  253. package/lib/welcome/quick-entrance.d.ts +2 -0
  254. package/lib/welcome/quick-entrance.d.ts.map +1 -1
  255. package/lib/welcome/workbench.d.ts +2 -0
  256. package/lib/welcome/workbench.d.ts.map +1 -1
  257. package/package.json +3 -2
  258. package/src/aldehyde/controls/date-picker/index.tsx +15 -1
  259. package/src/aldehyde/controls/entry-control.tsx +4 -1
  260. package/src/aldehyde/controls/file-view/drawer-file-view.tsx +1 -1
  261. package/src/aldehyde/controls/file-view/index.tsx +4 -4
  262. package/src/aldehyde/controls/file-view/multi-file-view.tsx +43 -0
  263. package/src/aldehyde/controls/tree-select/tree-entity-select.tsx +0 -1
  264. package/src/aldehyde/controls/upload/index.tsx +8 -3
  265. package/src/aldehyde/controls/upload/mult-file-upload.tsx +216 -0
  266. package/src/aldehyde/controls/view-control.tsx +3 -1
  267. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +1 -3
  268. package/src/aldehyde/detail/view/dtmpl-view.tsx +1 -4
  269. package/src/aldehyde/detail/view/tab-act-dtmpl-view.tsx +304 -0
  270. package/src/aldehyde/form/criteria-form.tsx +23 -3
  271. package/src/aldehyde/form/form-Item-group.tsx +4 -3
  272. package/src/aldehyde/hooks/use-match-route/index.tsx +63 -0
  273. package/src/aldehyde/hooks/use-tabs/index.tsx +130 -0
  274. package/src/aldehyde/layout/MainPage.tsx +1 -1
  275. package/src/aldehyde/layout/coverstyle.css +1 -1
  276. package/src/aldehyde/layout/sidebar/index.tsx +4 -4
  277. package/src/aldehyde/layout2/components/userButton.tsx +15 -2
  278. package/src/aldehyde/layout2/header.tsx +5 -69
  279. package/src/aldehyde/layout2/main.tsx +4 -3
  280. package/src/aldehyde/layout2/page.tsx +25 -3
  281. package/src/aldehyde/layout2/sider.tsx +5 -133
  282. package/src/aldehyde/layout2/tabs/tabs-context.tsx +30 -0
  283. package/src/aldehyde/layout2/tabs/tabs-layout.tsx +152 -0
  284. package/src/aldehyde/locale/LocaleProvider.tsx +13 -2
  285. package/src/aldehyde/locale/useLocale.ts +10 -2
  286. package/src/aldehyde/login2/login-page.tsx +1 -1
  287. package/src/aldehyde/module/dtmpl-edit-card.tsx +0 -1
  288. package/src/aldehyde/module/dtmpl-view-card.tsx +0 -11
  289. package/src/aldehyde/module/ltmpl-table.tsx +13 -27
  290. package/src/aldehyde/routable/dtmpl-route.tsx +2 -1
  291. package/src/aldehyde/routable/ltmpl-route.tsx +38 -50
  292. package/src/aldehyde/routable/ttmpl-route.tsx +3 -2
  293. package/src/aldehyde/routable/withroute.tsx +12 -2
  294. package/src/aldehyde/table/act-table.tsx +158 -177
  295. package/src/aldehyde/table/column/column-builder.tsx +256 -257
  296. package/src/aldehyde/table/modal-select-table.tsx +3 -2
  297. package/src/aldehyde/table/query-table.tsx +84 -14
  298. package/src/aldehyde/table/relation-table.tsx +1 -2
  299. package/src/aldehyde/table/select-table.tsx +2 -1
  300. package/src/aldehyde/table/selected-rows-card.tsx +3 -0
  301. package/src/aldehyde/table/stat/restat.tsx +2 -3
  302. package/src/aldehyde/tmpl/hcservice-v3.tsx +58 -22
  303. package/src/aldehyde/tmpl/interface.tsx +36 -3
  304. package/src/aldehyde/tree/act-tree.tsx +7 -5
  305. package/src/aldehyde/tree/tree-utils.tsx +1 -1
  306. package/src/aldehyde/units/index.tsx +40 -1
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  ConfigProvider,
3
- Flex,
4
3
  Layout,
5
4
  Menu,
6
5
  MenuProps,
@@ -23,7 +22,7 @@ import {
23
22
  import { useLocale } from "../locale/useLocale";
24
23
  import { generate } from "@ant-design/colors";
25
24
  import { useLayoutContext } from "./LayoutContext";
26
- import ThemeColorGetter from "../table/column/theme-color-getter";
25
+ import { useSessionStorageState } from 'ahooks';
27
26
 
28
27
  type HeaderPropsType = {
29
28
  systemName: string;
@@ -33,69 +32,6 @@ type HeaderPropsType = {
33
32
 
34
33
  type MenuItem = Required<MenuProps>["items"][number];
35
34
 
36
- // const items: MenuItem[] = [
37
- // {
38
- // label: "Navigation One",
39
- // key: "mail",
40
- // icon: <img src={png1} alt="1" width={16} height={16}></img>,
41
- // },
42
- // {
43
- // label: "Navigation Two",
44
- // key: "app",
45
- // disabled: false,
46
- // icon: <img src={png2} alt="2" width={16} height={16}></img>,
47
- // },
48
- // {
49
- // label: "Navigation Two",
50
- // key: "app2",
51
- // disabled: false,
52
- // icon: <img src={png3} alt="2" width={16} height={16}></img>,
53
- // },
54
- // {
55
- // label: "Navigation Two",
56
- // key: "app3",
57
- // disabled: false,
58
- // icon: <img src={png4} alt="2" width={16} height={16}></img>,
59
- // },
60
- // {
61
- // label: "Navigation Two",
62
- // key: "app4",
63
- // disabled: true,
64
- // icon: <img src={png5} alt="2" width={16} height={16}></img>,
65
- // },
66
- // {
67
- // label: "Navigation Three - Submenu",
68
- // key: "SubMenu",
69
- // icon: <img src={png6} alt="2" width={16} height={16}></img>,
70
- // children: [
71
- // {
72
- // type: "group",
73
- // label: "Item 1",
74
- // children: [
75
- // { label: "Option 1", key: "setting:1" },
76
- // { label: "Option 2", key: "setting:2" },
77
- // ],
78
- // },
79
- // {
80
- // type: "group",
81
- // label: "Item 2",
82
- // children: [
83
- // { label: "Option 3", key: "setting:3" },
84
- // { label: "Option 4", key: "setting:4" },
85
- // ],
86
- // },
87
- // ],
88
- // },
89
- // {
90
- // key: "alipay",
91
- // label: (
92
- // <a href="https://ant.design" target="_blank" rel="noopener noreferrer">
93
- // Navigation Four - Link
94
- // </a>
95
- // ),
96
- // icon: <img src={png6} alt="2" width={16} height={16}></img>,
97
- // },
98
- // ];
99
35
 
100
36
  const { useToken } = theme;
101
37
 
@@ -210,7 +146,7 @@ const Header: React.FC<HeaderPropsType> = ({ systemName, menuList, style }) => {
210
146
  setDocumentTitle(translate("${" + documentTitle + "}"));
211
147
  }
212
148
  }, [menuList, sourceId]);
213
-
149
+ let systemLabel= translate("${"+systemName+"}");
214
150
  return (
215
151
  <Layout.Header
216
152
  style={{
@@ -234,7 +170,7 @@ const Header: React.FC<HeaderPropsType> = ({ systemName, menuList, style }) => {
234
170
  userSelect: "none",
235
171
  color: "inherit",
236
172
  }}
237
- to={"/v2"}
173
+ to={"/v2/home"}
238
174
  >
239
175
  <img
240
176
  src={homePng}
@@ -245,7 +181,7 @@ const Header: React.FC<HeaderPropsType> = ({ systemName, menuList, style }) => {
245
181
  marginRight: 5,
246
182
  }}
247
183
  />
248
- <Tooltip title={systemName}>
184
+ <Tooltip title={systemLabel}>
249
185
  <span
250
186
  style={{
251
187
  width: "100%",
@@ -255,7 +191,7 @@ const Header: React.FC<HeaderPropsType> = ({ systemName, menuList, style }) => {
255
191
  whiteSpace: "nowrap",
256
192
  }}
257
193
  >
258
- {systemName}
194
+ {translate(systemLabel)}
259
195
  </span>
260
196
  </Tooltip>
261
197
  </NavLink>
@@ -1,6 +1,7 @@
1
+ import React from "react";
1
2
  import { Layout } from "antd";
2
- import React, { useState } from "react";
3
- import { Outlet } from "react-router-dom";
3
+ import TabsLayout from "./tabs/tabs-layout";
4
+
4
5
 
5
6
  type MainPropsType = {
6
7
  style?: typeof Layout.Content.defaultProps.style;
@@ -18,7 +19,7 @@ const Main: React.FC<MainPropsType> = ({ style, children }) => {
18
19
  padding: 10,
19
20
  }}
20
21
  >
21
- {children ? children : <Outlet />}
22
+ {children ? children :<TabsLayout/>}
22
23
  </div>
23
24
  </Layout.Content>
24
25
  );
@@ -1,6 +1,5 @@
1
1
  import { Layout, theme } from "antd";
2
2
  import React, {
3
- HTMLAttributeAnchorTarget,
4
3
  useEffect,
5
4
  useRef,
6
5
  useState,
@@ -15,6 +14,8 @@ import { useVarCssColor } from "../hooks/useVarCssColor";
15
14
  import { generate } from "@ant-design/colors";
16
15
  import { LayoutProvider, useLayoutContext } from "./LayoutContext";
17
16
  import DocumentTitle from "react-document-title";
17
+ import Units from '../units';
18
+ import {useLocale} from "../locale/useLocale";
18
19
 
19
20
  type PagePropsType = {
20
21
  children?: React.ReactNode;
@@ -112,13 +113,21 @@ const handleMenuRes = (menuList: MenuConfigAPIType["blocks"]): MenuType[] => {
112
113
  return retList;
113
114
  };
114
115
 
116
+
117
+
115
118
  const getMenuConfig = async (): Promise<{
116
119
  systemName: string;
117
120
  menu: MenuType[];
118
121
  }> => {
122
+
119
123
  const res = await HcserviceV3.requestBlocks("", "");
120
124
 
121
125
  const menuList: MenuType[] = handleMenuRes(res.blocks);
126
+ let tmp={};
127
+ menuList.forEach((menu: MenuType) => {
128
+ getMenuMap(menu,tmp);
129
+ })
130
+ Units.setMenuMap(tmp);
122
131
 
123
132
  return {
124
133
  menu: menuList,
@@ -126,6 +135,16 @@ const getMenuConfig = async (): Promise<{
126
135
  };
127
136
  };
128
137
 
138
+ const getMenuMap=(menu:MenuType,menuMap:object={})=>{
139
+ if(menu){
140
+ menuMap[menu.id]=menu.label;
141
+ // eslint-disable-next-line no-unused-expressions
142
+ menu.children?.forEach((m: MenuType) => {
143
+ getMenuMap(m,menuMap);
144
+ })
145
+ }
146
+ }
147
+
129
148
  const { useToken } = theme;
130
149
 
131
150
  const Page: React.FC<PagePropsType> = (props: PagePropsType) => {
@@ -133,6 +152,7 @@ const Page: React.FC<PagePropsType> = (props: PagePropsType) => {
133
152
  documentTitle,
134
153
  updateMenuItemIdToFirstFloorIdxMap,
135
154
  } = useLayoutContext();
155
+ const { getSiderCollapsed } = useLocale();
136
156
  const {
137
157
  token: { colorPrimary },
138
158
  } = useToken();
@@ -145,6 +165,8 @@ const Page: React.FC<PagePropsType> = (props: PagePropsType) => {
145
165
 
146
166
  const [menu, SetMenu] = useState<MenuType[]>([]);
147
167
 
168
+
169
+
148
170
  useEffect(() => {
149
171
  getMenuConfig().then(({ menu, systemName: name }) => {
150
172
  setSystemName(name);
@@ -170,9 +192,9 @@ const Page: React.FC<PagePropsType> = (props: PagePropsType) => {
170
192
  }}
171
193
  >
172
194
  <Layout style={{ height: "100%" }}>
173
- <Header systemName={systemName} menuList={menu}></Header>
195
+ <Header systemName={systemName?systemName:Units.programName_NavLeft()} menuList={menu}></Header>
174
196
  <Layout>
175
- <Sider menuList={menu}></Sider>
197
+ <Sider menuList={menu} collapsed={getSiderCollapsed()}></Sider>
176
198
  <Main>{props.children}</Main>
177
199
  </Layout>
178
200
  </Layout>
@@ -1,5 +1,6 @@
1
1
  import { ConfigProvider, Layout, Menu, MenuProps, theme, Tooltip } from "antd";
2
2
  import React, { useEffect, useRef, useState } from "react";
3
+
3
4
  import { MenuType } from "./type/layout.type";
4
5
  import { NavLink, useParams, useSearchParams } from "react-router-dom";
5
6
  import {
@@ -10,146 +11,19 @@ import {
10
11
  import { useLocale } from "../locale/useLocale";
11
12
  import { generate } from "@ant-design/colors";
12
13
  import {
13
- MenuItemIdToFirstFloorIdxMapType,
14
14
  useLayoutContext,
15
15
  } from "./LayoutContext";
16
16
 
17
17
  type SiderPropsType = {
18
18
  menuList: MenuType[];
19
- style?: typeof Layout.Sider.defaultProps.style;
19
+ // style?: typeof Layout.Sider.defaultProps.style;
20
+ collapsed:boolean;
20
21
  };
21
22
 
22
23
  type MenuItem = Required<MenuProps>["items"][number];
23
24
 
24
25
  type SecoundFloorMenuList = MenuType[][];
25
26
 
26
- const items: MenuItem[] = [
27
- {
28
- label: "Navigation One",
29
- key: "mail",
30
- },
31
- {
32
- label: "Navigation Two",
33
- key: "app",
34
- disabled: false,
35
- },
36
- {
37
- label: "Navigation Two",
38
- key: "app2",
39
- disabled: false,
40
- },
41
- {
42
- label: "Navigation Two",
43
- key: "app3",
44
- disabled: false,
45
- },
46
- {
47
- label: "Navigation Two",
48
- key: "app4",
49
- disabled: true,
50
- },
51
- {
52
- label: "Navigation Two",
53
- key: "app5",
54
- disabled: true,
55
- },
56
- {
57
- label: "Navigation Two",
58
- key: "app6",
59
- disabled: true,
60
- },
61
- {
62
- label: "Navigation Two",
63
- key: "app7",
64
- disabled: true,
65
- },
66
- {
67
- label: "Navigation Two",
68
- key: "app8",
69
- disabled: true,
70
- },
71
- {
72
- label: "Navigation Two",
73
- key: "app9",
74
- disabled: true,
75
- },
76
- {
77
- label: "Navigation Two",
78
- key: "app10",
79
- disabled: true,
80
- },
81
- {
82
- label: "Navigation Two",
83
- key: "app11",
84
- disabled: true,
85
- },
86
- {
87
- label: "Navigation Two",
88
- key: "app12",
89
- disabled: false,
90
- },
91
- {
92
- label: "Navigation Two",
93
- key: "app13",
94
- disabled: false,
95
- },
96
- {
97
- label: "Navigation Two",
98
- key: "app14",
99
- disabled: false,
100
- },
101
- {
102
- label: "Navigation Two",
103
- key: "app15",
104
- disabled: false,
105
- },
106
- {
107
- label: "Navigation Two",
108
- key: "app16",
109
- disabled: false,
110
- },
111
- {
112
- label: "Navigation Two",
113
- key: "app17",
114
- disabled: false,
115
- },
116
- {
117
- label: "Navigation Two",
118
- key: "app18",
119
- disabled: false,
120
- },
121
- {
122
- label: "Navigation Three - Submenu",
123
- key: "SubMenu",
124
- children: [
125
- {
126
- type: "group",
127
- label: "Item 1",
128
- children: [
129
- { label: "Option 1", key: "setting:1" },
130
- { label: "Option 2", key: "setting:2" },
131
- ],
132
- },
133
- {
134
- type: "group",
135
- label: "Item 2",
136
- children: [
137
- { label: "Option 3", key: "setting:3" },
138
- { label: "Option 4", key: "setting:4" },
139
- ],
140
- },
141
- ],
142
- },
143
- {
144
- key: "alipay",
145
- label: (
146
- <a href="https://ant.design" target="_blank" rel="noopener noreferrer">
147
- Navigation Four - Link
148
- </a>
149
- ),
150
- },
151
- ];
152
-
153
27
  /**
154
28
  * @param menuList 自定义的menu
155
29
  * @returns 下标为 n 对应第 n 个根节点对应的第二层级menu
@@ -178,7 +52,7 @@ const getSecoundFloorMenuList = (
178
52
 
179
53
  const { useToken } = theme;
180
54
 
181
- const Sider: React.FC<SiderPropsType> = ({ menuList, style }) => {
55
+ const Sider: React.FC<SiderPropsType> = ({ menuList,collapsed }) => {
182
56
  const { setDocumentTitle, menuItemIdToFirstFloorIdxMap } = useLayoutContext();
183
57
 
184
58
  // token
@@ -286,15 +160,13 @@ const Sider: React.FC<SiderPropsType> = ({ menuList, style }) => {
286
160
  const menuClick = (openKeys) => {
287
161
  setSelectedKeys([...openKeys]);
288
162
  };
289
-
290
163
  return (
291
- <Layout.Sider
164
+ <Layout.Sider collapsed={collapsed} collapsedWidth={0}
292
165
  style={{
293
166
  background: colors[0],
294
167
  // color: "#FFFFFF",
295
168
  borderInlineEnd: "1px solid rgba(5, 5, 5, 0.06)",
296
169
  overflowY: "auto",
297
- ...style,
298
170
  }}
299
171
  >
300
172
  <ConfigProvider
@@ -0,0 +1,30 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
2
+
3
+ import { createContext } from 'react';
4
+
5
+ interface KeepAliveTabContextType {
6
+ /**
7
+ * 刷新tab
8
+ * @param path tab path 可以为空,为空则刷新当前tab
9
+ */
10
+ refreshTab: (path?: string) => void;
11
+ /**
12
+ * 关闭tab
13
+ * @param path tab path 可以为空,为空则关闭当前tab
14
+ */
15
+ closeTab: (path?: string) => void;
16
+ /**
17
+ * 关闭其他tab
18
+ * @param path tab path 可以为空,为空则关闭其他tab
19
+ */
20
+ closeOtherTab: (path?: string) => void;
21
+ }
22
+
23
+ const defaultValue = {
24
+ refreshTab: () => { },
25
+ closeTab: () => { },
26
+ closeOtherTab: () => { },
27
+ }
28
+
29
+
30
+ export const KeepAliveTabContext = createContext<KeepAliveTabContextType>(defaultValue);
@@ -0,0 +1,152 @@
1
+ import React, { useCallback, useMemo } from "react";
2
+ import {Dropdown, Tabs} from 'antd';
3
+ import { MenuItemType } from 'antd/es/menu/interface';
4
+ import { KeepAliveTabContext } from './tabs-context';
5
+ import {KeepAliveTab, useTabs} from "../../hooks/use-tabs";
6
+ import antdIcons from '@ant-design/icons';
7
+ import { useNavigate} from 'react-router-dom';
8
+ import Units from '../../units';
9
+ import {useLocale} from "../../locale/useLocale";
10
+ // import {arrayMove} from "react-sortable-hoc";
11
+
12
+
13
+ const TabsLayout: React.FC = (props) => {
14
+
15
+ const { translate } = useLocale();
16
+ const {
17
+ activeTabRoutePath,
18
+ tabs = [],
19
+ closeTab,
20
+ refreshTab,
21
+ closeOtherTab,
22
+ setTabs,
23
+ } = useTabs();
24
+
25
+ const getIcon = (icon?: string): React.ReactElement | undefined => {
26
+ return icon && antdIcons[icon] && React.createElement(antdIcons[icon]);
27
+ }
28
+
29
+ const menuItems: MenuItemType[] = useMemo(
30
+ () => [
31
+ tabs.length <= 1 ? null : {
32
+ label: translate("${关闭}"),
33
+ key: "close",
34
+ },
35
+ tabs.length <= 1 ? null : {
36
+ label: translate("${关闭其他}"),
37
+ key:"other",
38
+ },
39
+ ].filter(o => o !== null) ,
40
+ [tabs]);
41
+
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ const menuClick = useCallback(({ key, domEvent }: any, tab: KeepAliveTab) => {
44
+ domEvent.stopPropagation();
45
+
46
+ if (key === 'refresh') {
47
+ refreshTab(tab.routePath);
48
+ } else if (key ==="close") {
49
+ closeTab(tab.routePath);
50
+ } else if (key === "other") {
51
+ closeOtherTab(tab.routePath);
52
+ }
53
+ }, [closeOtherTab, closeTab, refreshTab]);
54
+
55
+ const renderTabTitle = useCallback((tab: KeepAliveTab) => {
56
+ let label=Units.mapMenu(tab.title)?Units.mapMenu(tab.title):tab.title;
57
+ label=translate("${"+label+"}");
58
+ return (
59
+ <Dropdown
60
+ menu={{
61
+ items: menuItems,
62
+ onClick: (e) => menuClick(e, tab),
63
+ }}
64
+ trigger={['contextMenu']}
65
+ onOpenChange={open => {
66
+ if (open) {
67
+ navigate(tab.pathname);
68
+ }
69
+ }}
70
+ >
71
+ <div className='flex gap-[6px]' style={{ margin: '-12px 0', padding: '12px 0' }}>
72
+ {getIcon(tab.icon)}
73
+ {label}
74
+ </div>
75
+ </Dropdown>
76
+ )
77
+ }, [menuItems]);
78
+
79
+ const tabItems = useMemo(() => {
80
+ return tabs.map(tab => {
81
+ return {
82
+ key: tab.routePath,
83
+ label: renderTabTitle(tab),
84
+ children: (
85
+ <div
86
+ key={tab.key}
87
+ className='overflow-y-auto'
88
+ // style={{
89
+ // height: `calc(100vh - ${defaultSetting.headerHeight + 36}px)`,
90
+ // }}
91
+ >
92
+ {/*<Watermark type='content'>*/}
93
+ {tab.children}
94
+ {/*</Watermark>*/}
95
+ </div>
96
+ ),
97
+ closable: tabs.length > 1, // 剩最后一个就不能删除了
98
+ }
99
+ })
100
+ },[tabs]);
101
+ //let tabItems=tabItemsf();
102
+
103
+ let navigate = useNavigate();
104
+
105
+ const onTabsChange =useCallback( (tabKey: string) => {
106
+ tabs.forEach(tab=>{
107
+ if(tab.routePath == tabKey){
108
+ navigate(tab.pathname);
109
+ }
110
+ })
111
+ },[tabs]);
112
+
113
+ const onTabEdit = (
114
+ targetKey: string,
115
+ action: 'add' | 'remove',
116
+ ) => {
117
+ if (action === 'remove') {
118
+ closeTab(targetKey);
119
+ }
120
+ };
121
+
122
+ const keepAliveContextValue = useMemo(
123
+ () => ({
124
+ closeTab,
125
+ closeOtherTab,
126
+ refreshTab,
127
+ }),
128
+ [closeTab, closeOtherTab, refreshTab]
129
+ );
130
+
131
+ return (
132
+ <KeepAliveTabContext.Provider value={keepAliveContextValue}>
133
+ <Tabs
134
+ tabBarStyle={{marginBottom:'4px'}}
135
+ activeKey={activeTabRoutePath}
136
+ items={tabItems}
137
+ type="editable-card"
138
+ onChange={onTabsChange}
139
+ hideAdd
140
+ onEdit={(e,a)=>{onTabEdit(e.toString(),a)}}
141
+ size="small"
142
+ // onDragEnd={({ activeIndex, overIndex }) => {
143
+ // setTabs(
144
+ // arrayMove(tabs, activeIndex, overIndex)
145
+ // );
146
+ // }}
147
+ />
148
+ </KeepAliveTabContext.Provider>
149
+ )
150
+ }
151
+
152
+ export default TabsLayout;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import React, { ReactNode, createContext, useEffect, useState } from "react";
3
3
  import { useNavigatorLanguage } from "./useLocale";
4
- import { antdLangMp, getLangWithLangApiMp, getLangWithLangMp } from "./langMp";
4
+ import {getLangWithLangApiMp, getLangWithLangMp } from "./langMp";
5
5
  import { LocaleType } from "./langMp";
6
6
  import HcserviceV3 from "../tmpl/hcservice-v3";
7
7
 
@@ -10,6 +10,8 @@ export const LocaleContext = createContext<{
10
10
  langPkg: any;
11
11
  availableLang: string[];
12
12
  changeLocale: (locale: LocaleType) => void;
13
+ siderCollapsed:boolean;
14
+ changeSiderCollapsed:()=>void;
13
15
  t: (...strs: string[]) => string;
14
16
  translate: (...strs: string[]) => string;
15
17
  getServiceLangStr?: ()=>string;
@@ -18,6 +20,8 @@ export const LocaleContext = createContext<{
18
20
  availableLang: [],
19
21
  langPkg: {},
20
22
  changeLocale: () => {},
23
+ siderCollapsed:false,
24
+ changeSiderCollapsed:()=>{},
21
25
  t: (...str) => str.join(""),
22
26
  translate: (str) => {
23
27
  let res = [],
@@ -76,6 +80,9 @@ export const LocaleProvider = ({
76
80
  const [locale, setLocale] = useState<LocaleType>(
77
81
  localeStorageLang ? localeStorageLang : getLangWithLangMp(navigatorLanguage)
78
82
  );
83
+
84
+ const [siderCollapsed, setSiderCollapsed] = useState<boolean>(false);
85
+
79
86
  const [langPkg, setLangPkg] = useState(
80
87
  localeStorageLangPkg ? localeStorageLangPkg : {}
81
88
  );
@@ -85,6 +92,10 @@ export const LocaleProvider = ({
85
92
  setLocale(locale);
86
93
  };
87
94
 
95
+ const changeSiderCollapsed = () => {
96
+ setSiderCollapsed(!siderCollapsed);
97
+ };
98
+
88
99
  const getServiceLangStr = () => {
89
100
  const langStr = getLangWithLangApiMp(locale);
90
101
  return langStr;
@@ -196,7 +207,7 @@ export const LocaleProvider = ({
196
207
 
197
208
  return (
198
209
  <LocaleContext.Provider
199
- value={{ locale, availableLang, langPkg, changeLocale, t, translate ,getServiceLangStr}}
210
+ value={{ locale, availableLang, langPkg, changeLocale,siderCollapsed,changeSiderCollapsed, t, translate ,getServiceLangStr}}
200
211
  >
201
212
  {children}
202
213
  </LocaleContext.Provider>
@@ -35,8 +35,9 @@ export const useNavigatorLanguage = (): Readonly<NavigatorLanguageState> => {
35
35
  export const useLocale = () => {
36
36
  const {
37
37
  locale,
38
- langPkg,
39
38
  changeLocale,
39
+ siderCollapsed,
40
+ changeSiderCollapsed,
40
41
  t,
41
42
  translate,
42
43
  availableLang,
@@ -50,8 +51,15 @@ export const useLocale = () => {
50
51
  setLocale: (loacle: LocaleType) => {
51
52
  changeLocale(loacle);
52
53
  },
54
+ getSiderCollapsed: () => {
55
+ return siderCollapsed;
56
+ },
57
+ changeSiderCollapsed: () => {
58
+ changeSiderCollapsed();
59
+ },
53
60
  t,
54
61
  translate,
55
- availableLang,getServiceLangStr
62
+ availableLang,getServiceLangStr,
63
+
56
64
  };
57
65
  };
@@ -66,7 +66,7 @@ const LoginPage = (props:LoginPageProps) => {
66
66
  <Login
67
67
  onFinish={(token) => {
68
68
  HCDataSource.clear();
69
- window.location.hash = "/v2";
69
+ window.location.hash = "/v2/home";
70
70
  ProgramConfig.setHydrocarbonToken(token);
71
71
  }}
72
72
  ></Login>
@@ -66,7 +66,6 @@ export default class DtmplEditCard extends React.PureComponent<
66
66
  await this.loadConfigData();
67
67
  } else if(prevProps.sourceId != this.props.sourceId || queryingCode!=code || !dtmplData ){
68
68
  //防止反复请求 code
69
- debugger
70
69
  if(code){
71
70
  await this.loadCodeData(dtmplConfig,code);
72
71
  }else{