aldehyde 0.2.270 → 0.2.271

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 (197) hide show
  1. package/lib/controls/entry-control.d.ts.map +1 -1
  2. package/lib/controls/entry-control.js +1 -1
  3. package/lib/controls/entry-control.js.map +1 -1
  4. package/lib/controls/select/index.d.ts.map +1 -1
  5. package/lib/controls/select/index.js.map +1 -1
  6. package/lib/controls/upload/index.d.ts.map +1 -1
  7. package/lib/controls/upload/index.js.map +1 -1
  8. package/lib/controls/upload/mult-file-upload.d.ts.map +1 -1
  9. package/lib/controls/upload/mult-file-upload.js +41 -23
  10. package/lib/controls/upload/mult-file-upload.js.map +1 -1
  11. package/lib/detail/edit/fields-edit-card.js +1 -1
  12. package/lib/detail/edit/fields-edit-card.js.map +1 -1
  13. package/lib/detail/edit/row-edit-card.d.ts.map +1 -1
  14. package/lib/detail/edit/row-edit-card.js +1 -1
  15. package/lib/detail/edit/row-edit-card.js.map +1 -1
  16. package/lib/detail/edit/row-editor.js +1 -1
  17. package/lib/detail/edit/row-editor.js.map +1 -1
  18. package/lib/form/dtmpl-form.d.ts.map +1 -1
  19. package/lib/form/dtmpl-form.js +4 -4
  20. package/lib/form/dtmpl-form.js.map +1 -1
  21. package/lib/form/field-group-form.d.ts +1 -0
  22. package/lib/form/field-group-form.d.ts.map +1 -1
  23. package/lib/form/field-group-form.js +2 -1
  24. package/lib/form/field-group-form.js.map +1 -1
  25. package/lib/index.d.ts +2 -1
  26. package/lib/index.d.ts.map +1 -1
  27. package/lib/index.js +2 -1
  28. package/lib/index.js.map +1 -1
  29. package/lib/layout/menu/l2menu-message-bar.js +5 -5
  30. package/lib/layout/menu/l2menu-message-bar.js.map +1 -1
  31. package/lib/layout2/page.d.ts.map +1 -1
  32. package/lib/layout2/page.js +11 -3
  33. package/lib/layout2/page.js.map +1 -1
  34. package/lib/lowcode-components/bar-chart/index.d.ts +36 -0
  35. package/lib/lowcode-components/bar-chart/index.d.ts.map +1 -0
  36. package/lib/lowcode-components/bar-chart/index.js +85 -0
  37. package/lib/lowcode-components/bar-chart/index.js.map +1 -0
  38. package/lib/lowcode-components/base-color-block/index.d.ts +17 -0
  39. package/lib/lowcode-components/base-color-block/index.d.ts.map +1 -0
  40. package/lib/lowcode-components/base-color-block/index.js +10 -0
  41. package/lib/lowcode-components/base-color-block/index.js.map +1 -0
  42. package/lib/lowcode-components/base-image/index.d.ts +14 -0
  43. package/lib/lowcode-components/base-image/index.d.ts.map +1 -0
  44. package/lib/lowcode-components/base-image/index.js +23 -0
  45. package/lib/lowcode-components/base-image/index.js.map +1 -0
  46. package/lib/lowcode-components/base-text/index.d.ts +31 -0
  47. package/lib/lowcode-components/base-text/index.d.ts.map +1 -0
  48. package/lib/lowcode-components/base-text/index.js +43 -0
  49. package/lib/lowcode-components/base-text/index.js.map +1 -0
  50. package/lib/lowcode-components/column-chart/index.d.ts +36 -0
  51. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -0
  52. package/lib/lowcode-components/column-chart/index.js +85 -0
  53. package/lib/lowcode-components/column-chart/index.js.map +1 -0
  54. package/lib/lowcode-components/date-time/index.d.ts +23 -0
  55. package/lib/lowcode-components/date-time/index.d.ts.map +1 -0
  56. package/lib/lowcode-components/date-time/index.js +34 -0
  57. package/lib/lowcode-components/date-time/index.js.map +1 -0
  58. package/lib/lowcode-components/four-angle-glow-border/index.d.ts +17 -0
  59. package/lib/lowcode-components/four-angle-glow-border/index.d.ts.map +1 -0
  60. package/lib/lowcode-components/four-angle-glow-border/index.js +28 -0
  61. package/lib/lowcode-components/four-angle-glow-border/index.js.map +1 -0
  62. package/lib/lowcode-components/index.d.ts +23 -0
  63. package/lib/lowcode-components/index.d.ts.map +1 -0
  64. package/lib/lowcode-components/index.js +21 -0
  65. package/lib/lowcode-components/index.js.map +1 -0
  66. package/lib/lowcode-components/line-chart/index.d.ts +50 -0
  67. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -0
  68. package/lib/lowcode-components/line-chart/index.js +94 -0
  69. package/lib/lowcode-components/line-chart/index.js.map +1 -0
  70. package/lib/lowcode-components/lowcode-view/component/abstract-controller.d.ts +51 -0
  71. package/lib/lowcode-components/lowcode-view/component/abstract-controller.d.ts.map +1 -0
  72. package/lib/lowcode-components/lowcode-view/component/abstract-controller.js +36 -0
  73. package/lib/lowcode-components/lowcode-view/component/abstract-controller.js.map +1 -0
  74. package/lib/lowcode-components/lowcode-view/component/abstract-definition.d.ts +70 -0
  75. package/lib/lowcode-components/lowcode-view/component/abstract-definition.d.ts.map +1 -0
  76. package/lib/lowcode-components/lowcode-view/component/abstract-definition.js +12 -0
  77. package/lib/lowcode-components/lowcode-view/component/abstract-definition.js.map +1 -0
  78. package/lib/lowcode-components/lowcode-view/component/abstract-designer-controller.d.ts +28 -0
  79. package/lib/lowcode-components/lowcode-view/component/abstract-designer-controller.d.ts.map +1 -0
  80. package/lib/lowcode-components/lowcode-view/component/abstract-designer-controller.js +60 -0
  81. package/lib/lowcode-components/lowcode-view/component/abstract-designer-controller.js.map +1 -0
  82. package/lib/lowcode-components/lowcode-view/component/abstract-designer-loader.d.ts +15 -0
  83. package/lib/lowcode-components/lowcode-view/component/abstract-designer-loader.d.ts.map +1 -0
  84. package/lib/lowcode-components/lowcode-view/component/abstract-designer-loader.js +31 -0
  85. package/lib/lowcode-components/lowcode-view/component/abstract-designer-loader.js.map +1 -0
  86. package/lib/lowcode-components/lowcode-view/component/assets.d.ts +10 -0
  87. package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -0
  88. package/lib/lowcode-components/lowcode-view/component/assets.js +83 -0
  89. package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -0
  90. package/lib/lowcode-components/lowcode-view/component/component-container.d.ts +9 -0
  91. package/lib/lowcode-components/lowcode-view/component/component-container.d.ts.map +1 -0
  92. package/lib/lowcode-components/lowcode-view/component/component-container.js +68 -0
  93. package/lib/lowcode-components/lowcode-view/component/component-container.js.map +1 -0
  94. package/lib/lowcode-components/lowcode-view/component/component-controller.d.ts +22 -0
  95. package/lib/lowcode-components/lowcode-view/component/component-controller.d.ts.map +1 -0
  96. package/lib/lowcode-components/lowcode-view/component/component-controller.js +102 -0
  97. package/lib/lowcode-components/lowcode-view/component/component-controller.js.map +1 -0
  98. package/lib/lowcode-components/lowcode-view/component/component-definition.d.ts +12 -0
  99. package/lib/lowcode-components/lowcode-view/component/component-definition.d.ts.map +1 -0
  100. package/lib/lowcode-components/lowcode-view/component/component-definition.js +15 -0
  101. package/lib/lowcode-components/lowcode-view/component/component-definition.js.map +1 -0
  102. package/lib/lowcode-components/lowcode-view/component/layer-builder.d.ts +22 -0
  103. package/lib/lowcode-components/lowcode-view/component/layer-builder.d.ts.map +1 -0
  104. package/lib/lowcode-components/lowcode-view/component/layer-builder.js +83 -0
  105. package/lib/lowcode-components/lowcode-view/component/layer-builder.js.map +1 -0
  106. package/lib/lowcode-components/lowcode-view/component/loading.d.ts +4 -0
  107. package/lib/lowcode-components/lowcode-view/component/loading.d.ts.map +1 -0
  108. package/lib/lowcode-components/lowcode-view/component/loading.js +18 -0
  109. package/lib/lowcode-components/lowcode-view/component/loading.js.map +1 -0
  110. package/lib/lowcode-components/lowcode-view/index.d.ts +9 -0
  111. package/lib/lowcode-components/lowcode-view/index.d.ts.map +1 -0
  112. package/lib/lowcode-components/lowcode-view/index.js +89 -0
  113. package/lib/lowcode-components/lowcode-view/index.js.map +1 -0
  114. package/lib/lowcode-components/lowcode-view/interface.d.ts +139 -0
  115. package/lib/lowcode-components/lowcode-view/interface.d.ts.map +1 -0
  116. package/lib/lowcode-components/lowcode-view/interface.js +2 -0
  117. package/lib/lowcode-components/lowcode-view/interface.js.map +1 -0
  118. package/lib/lowcode-components/lowcode-view/lowcode-constant.d.ts +11 -0
  119. package/lib/lowcode-components/lowcode-view/lowcode-constant.d.ts.map +1 -0
  120. package/lib/lowcode-components/lowcode-view/lowcode-constant.js +10 -0
  121. package/lib/lowcode-components/lowcode-view/lowcode-constant.js.map +1 -0
  122. package/lib/module/dtmpl-edit-page.js +3 -2
  123. package/lib/module/dtmpl-edit-page.js.map +1 -1
  124. package/lib/module/dtmpl-view-drawer.d.ts.map +1 -1
  125. package/lib/module/dtmpl-view-drawer.js +2 -2
  126. package/lib/module/dtmpl-view-drawer.js.map +1 -1
  127. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  128. package/lib/routable/ltmpl-route.js.map +1 -1
  129. package/lib/table/relation-table.d.ts +10 -0
  130. package/lib/table/relation-table.d.ts.map +1 -1
  131. package/lib/table/relation-table.js +126 -29
  132. package/lib/table/relation-table.js.map +1 -1
  133. package/lib/tmpl/control-type-supportor.js +1 -1
  134. package/lib/tmpl/control-type-supportor.js.map +1 -1
  135. package/lib/tmpl/hc-data-source.d.ts.map +1 -1
  136. package/lib/tmpl/hc-data-source.js +13 -10
  137. package/lib/tmpl/hc-data-source.js.map +1 -1
  138. package/lib/tmpl/interface.d.ts +4 -0
  139. package/lib/tmpl/interface.d.ts.map +1 -1
  140. package/lib/tmpl/interface.js.map +1 -1
  141. package/lib/welcome/HCWelcome.d.ts.map +1 -1
  142. package/lib/welcome/HCWelcome.js +1 -6
  143. package/lib/welcome/HCWelcome.js.map +1 -1
  144. package/package.json +2 -2
  145. package/src/aldehyde/controls/entry-control.tsx +1 -3
  146. package/src/aldehyde/controls/select/index.tsx +0 -1
  147. package/src/aldehyde/controls/upload/index.tsx +0 -1
  148. package/src/aldehyde/controls/upload/mult-file-upload.tsx +45 -23
  149. package/src/aldehyde/detail/edit/fields-edit-card.tsx +1 -1
  150. package/src/aldehyde/detail/edit/row-edit-card.tsx +2 -14
  151. package/src/aldehyde/detail/edit/row-editor.tsx +1 -1
  152. package/src/aldehyde/form/dtmpl-form.tsx +5 -8
  153. package/src/aldehyde/form/field-group-form.tsx +4 -0
  154. package/src/aldehyde/index.tsx +3 -0
  155. package/src/aldehyde/layout/menu/l2menu-message-bar.tsx +6 -6
  156. package/src/aldehyde/layout2/page.tsx +13 -3
  157. package/src/aldehyde/lowcode-components/bar-chart/index.tsx +116 -0
  158. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +32 -0
  159. package/src/aldehyde/lowcode-components/base-image/index.tsx +45 -0
  160. package/src/aldehyde/lowcode-components/base-text/index.less +20 -0
  161. package/src/aldehyde/lowcode-components/base-text/index.tsx +88 -0
  162. package/src/aldehyde/lowcode-components/column-chart/index.tsx +116 -0
  163. package/src/aldehyde/lowcode-components/date-time/index.less +5 -0
  164. package/src/aldehyde/lowcode-components/date-time/index.tsx +65 -0
  165. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +50 -0
  166. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -0
  167. package/src/aldehyde/lowcode-components/index.ts +36 -0
  168. package/src/aldehyde/lowcode-components/line-chart/index.tsx +122 -0
  169. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -0
  170. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -0
  171. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-controller.ts +63 -0
  172. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +34 -0
  173. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +89 -0
  174. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +88 -0
  175. package/src/aldehyde/lowcode-components/lowcode-view/component/component-controller.ts +99 -0
  176. package/src/aldehyde/lowcode-components/lowcode-view/component/component-definition.ts +24 -0
  177. package/src/aldehyde/lowcode-components/lowcode-view/component/font/DingTalk JinBuTi.ttf +0 -0
  178. package/src/aldehyde/lowcode-components/lowcode-view/component/font/DouyinSansBold.ttf +0 -0
  179. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +27 -0
  180. package/src/aldehyde/lowcode-components/lowcode-view/component/font//344/274/230/350/256/276/346/240/207/351/242/230/351/273/221.ttf +0 -0
  181. package/src/aldehyde/lowcode-components/lowcode-view/component/font//345/272/236/351/227/250/346/255/243/351/201/223/346/240/207/351/242/230/344/275/223/345/205/215/350/264/271/347/211/210.ttf +0 -0
  182. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +91 -0
  183. package/src/aldehyde/lowcode-components/lowcode-view/component/loading.tsx +23 -0
  184. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -0
  185. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +122 -0
  186. package/src/aldehyde/lowcode-components/lowcode-view/index.less +12 -0
  187. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +107 -0
  188. package/src/aldehyde/lowcode-components/lowcode-view/interface.ts +190 -0
  189. package/src/aldehyde/lowcode-components/lowcode-view/lowcode-constant.tsx +12 -0
  190. package/src/aldehyde/module/dtmpl-edit-page.tsx +3 -3
  191. package/src/aldehyde/module/dtmpl-view-drawer.tsx +1 -2
  192. package/src/aldehyde/routable/ltmpl-route.tsx +0 -1
  193. package/src/aldehyde/table/relation-table.tsx +155 -40
  194. package/src/aldehyde/tmpl/control-type-supportor.tsx +1 -1
  195. package/src/aldehyde/tmpl/hc-data-source.tsx +14 -11
  196. package/src/aldehyde/tmpl/interface.tsx +5 -1
  197. package/src/aldehyde/welcome/HCWelcome.js +1 -6
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+
3
+ const style = {
4
+ width: "100%",
5
+ height: "100%",
6
+ backgroundColor: '#374f85',
7
+ background: 'linear-gradient(to right, #182848, #1a2848)',
8
+ color: '#1db3ff',
9
+ display: 'flex',
10
+ justifyContent: 'center',
11
+ alignItems: 'center',
12
+ fontSize: '16px',
13
+ fontWeight: '300'
14
+ }
15
+
16
+ const Loading = () => {
17
+
18
+ return (
19
+ <div style={style}>加 载 中 . . . . . .</div>
20
+ );
21
+ }
22
+
23
+ export default Loading;
@@ -0,0 +1,13 @@
1
+ .react-screen-box {
2
+ background-size: 100% 100%;
3
+ width: 100%;
4
+ height: 100%;
5
+
6
+ .screen-wrapper {
7
+ transition-property: all;
8
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
9
+ transition-duration: 300ms;
10
+ position: relative;
11
+ transform-origin: left top;
12
+ }
13
+ }
@@ -0,0 +1,122 @@
1
+ import React, { ReactNode, useEffect, useRef, useState } from 'react'
2
+ import debounce from "lodash/debounce";
3
+ import './index.less';
4
+ import { AdaptationType } from "../../interface";
5
+
6
+ interface ScreenFitProps {
7
+ children?: ReactNode,
8
+ width: number | string,
9
+ height: number | string,
10
+ bodyOverflowHidden?: boolean,
11
+ delay?: number,
12
+ mode?: AdaptationType,
13
+ scaleChange?: (xScale: number, yScale: number) => void,
14
+ containerStyle: {
15
+ width: number,
16
+ height: number,
17
+ },
18
+ }
19
+
20
+
21
+ export default function ScreenFit(props: ScreenFitProps) {
22
+ const { width, height, bodyOverflowHidden = true, delay = 500, scaleChange, containerStyle } = props
23
+ let bodyOverflow: string
24
+ const elRef = useRef<HTMLDivElement>(null)
25
+ const [size, setSize] = useState({ width, height, originalHeight: 0, originalWidth: 0 })
26
+
27
+ let observer: MutationObserver;
28
+
29
+ function updateSize() {
30
+ if (size.width && size.height) {
31
+ elRef.current.style.width = `${size.width}px`
32
+ elRef.current.style.height = `${size.height}px`
33
+ } else {
34
+ elRef.current.style.width = `${size.originalWidth}px`
35
+ elRef.current.style.height = `${size.originalHeight}px`
36
+ }
37
+ }
38
+
39
+ function updateScale() {
40
+ // 获取真实视口尺寸
41
+ const currentWidth = containerStyle.width || 0;
42
+ const currentHeight = containerStyle.height || 0;
43
+ // 获取大屏最终的宽高
44
+ const realWidth = size.width || size.originalWidth;
45
+ const realHeight = size.height || size.originalHeight;
46
+ // 计算缩放比例
47
+ const widthScale = currentWidth / +realWidth;
48
+ const heightScale = currentHeight / +realHeight;
49
+ switch (props.mode) {
50
+ case 'full-screen':
51
+ // 若要铺满全屏,则按照各自比例缩放
52
+ elRef.current.style.transform = `scale(${widthScale},${heightScale})`;
53
+ scaleChange?.(widthScale, heightScale);
54
+ break;
55
+ case 'full-x':
56
+ elRef.current.style.transform = `scale(${widthScale})`;
57
+ scaleChange?.(widthScale, widthScale);
58
+ break;
59
+ case 'full-y':
60
+ elRef.current.style.transform = `scale(${heightScale})`;
61
+ scaleChange?.(heightScale, heightScale);
62
+ elRef.current.style.margin = `0px ${(currentWidth - +realWidth * heightScale) / 2}px`;
63
+ break;
64
+ default:
65
+ // 按照宽高最小比例进行缩放
66
+ const scale = Math.min(widthScale, heightScale);
67
+ elRef.current.style.transform = `scale(${scale},${scale})`;
68
+ const domWidth = elRef.current.clientWidth;
69
+ const domHeight = elRef.current.clientHeight;
70
+ const mx = Math.max((currentWidth - domWidth * scale) / 2, 0);
71
+ const my = Math.max((currentHeight - domHeight * scale) / 2, 0);
72
+ elRef.current.style.margin = `${my}px ${mx}px`;
73
+ scaleChange?.(scale, scale);
74
+ break;
75
+ }
76
+ }
77
+
78
+ const onResize = debounce(() => {
79
+ if (!elRef.current) return;
80
+ updateSize();
81
+ updateScale();
82
+ }, delay)
83
+
84
+ function initState() {
85
+ if (bodyOverflowHidden) {
86
+ bodyOverflow = document.body.style.overflow;
87
+ document.body.style.overflow = 'hidden';
88
+ }
89
+ observer = new MutationObserver(() => onResize());
90
+ observer.observe(elRef.current, {
91
+ attributes: true,
92
+ attributeFilter: ['style'],
93
+ attributeOldValue: true
94
+ })
95
+ setSize({
96
+ ...size,
97
+ originalWidth: window.screen.width,
98
+ originalHeight: window.screen.height
99
+ })
100
+ updateSize();
101
+ updateScale();
102
+ window.addEventListener('resize', onResize);
103
+ }
104
+
105
+ useEffect(() => {
106
+ initState();
107
+ return () => {
108
+ observer.disconnect();
109
+ window.removeEventListener('resize', onResize);
110
+ if (bodyOverflowHidden)
111
+ document.body.style.overflow = bodyOverflow;
112
+ }
113
+ }, [])
114
+
115
+ return (
116
+ <div className={'react-screen-box'}>
117
+ <div className={'screen-wrapper'} ref={elRef}>
118
+ {props.children}
119
+ </div>
120
+ </div>
121
+ )
122
+ }
@@ -0,0 +1,12 @@
1
+ .lowcodeView {
2
+ width: 100%;
3
+ -ms-overflow-style: none;
4
+ /* IE和Edge */
5
+ scrollbar-width: none;
6
+ /* Firefox */
7
+ }
8
+
9
+ .lowcodeView::-webkit-scrollbar {
10
+ display: none;
11
+ /* Chrome, Safari和Opera */
12
+ }
@@ -0,0 +1,107 @@
1
+ import React, { CSSProperties, useEffect, useState, useRef } from 'react'
2
+ import { useParams } from 'react-router-dom';
3
+ import Loading from "./component/loading";
4
+ import layerBuilder from "./component/layer-builder";
5
+ import './component/font/FontGlobal.css';
6
+ import ScreenFit from "./component/screen-fit";
7
+ import { LayerManagerDataType, CanvasConfig } from "./interface";
8
+ import HcserviceV3 from "../../tmpl/hcservice-v3";
9
+ import LowcodeConstant from "./lowcode-constant";
10
+ import abstractDesignerLoader from "./component/abstract-designer-loader";
11
+ import "./index.less";
12
+
13
+ const fromBase64 = (base64: string) => {
14
+ const binaryString = atob(base64);
15
+ const utf8Array = new Uint8Array(binaryString.length);
16
+ for (let i = 0; i < binaryString.length; i++) {
17
+ utf8Array[i] = binaryString.charCodeAt(i);
18
+ }
19
+ return new TextDecoder().decode(utf8Array);
20
+ }
21
+
22
+
23
+ const screenFitStyleMap: Record<string, CSSProperties> = {
24
+ "none": { overflow: "auto" },
25
+ 'scale': { overflow: 'hidden' },
26
+ 'full-screen': { overflow: 'hidden' },
27
+ 'full-x': { overflow: 'hidden scroll' },
28
+ 'full-y': { overflow: 'scroll hidden' }
29
+ }
30
+
31
+ const serverKey = LowcodeConstant.lowcodeDtmpl.serverKey;
32
+ const sourceId = LowcodeConstant.lowcodeDtmpl.sourceId;
33
+
34
+ interface Props {
35
+ isFullScreen: boolean
36
+ }
37
+
38
+ const LowcodeView = (props: Props) => {
39
+ const { isFullScreen } = props;
40
+ const { sourceId: code } = useParams();
41
+ const canvasRef = useRef(null);
42
+ const [loading, setLoading] = useState<boolean>(false);
43
+ const [layerManager, setLayerManager] = useState<LayerManagerDataType>();
44
+ const [canvasConfig, setCanvasConfig] = useState<CanvasConfig>();
45
+ const { width, height, adaptationType, backgroundColor, backgroundImage } = canvasConfig || {};
46
+
47
+ useEffect(() => {
48
+ //加载
49
+ abstractDesignerLoader.load();
50
+ }, []);
51
+
52
+ // 获取画面数据
53
+ const getViewData = async () => {
54
+ setLoading(true);
55
+ const dtmpl = await HcserviceV3.requestMstrucDtmplData(serverKey, sourceId, code, null);
56
+ const data = dtmpl?.fieldMap || {};
57
+ const { layerManager, canvasManager } = data["内容"] ? JSON.parse(fromBase64(data["内容"]) || '{}') : {};
58
+ setLayerManager(layerManager);
59
+ setCanvasConfig(canvasManager);
60
+ setLoading(false);
61
+ }
62
+
63
+ useEffect(() => {
64
+ if (code) {
65
+ getViewData();
66
+ } else {
67
+ setLayerManager({});
68
+ setCanvasConfig({});
69
+ }
70
+ }, [code])
71
+
72
+ const canvasDom = () => <div style={{
73
+ width,
74
+ height,
75
+ background: backgroundColor,
76
+ backgroundImage: `url(${backgroundImage})`,
77
+ backgroundSize: "100% 100%",
78
+ backgroundRepeat: 'no-repeat',
79
+ overflow: 'hidden',
80
+ position: "relative"
81
+ }}>
82
+ {layerBuilder.buildCanvasComponents(layerManager)}
83
+ </div>;
84
+
85
+ return (
86
+ <div ref={canvasRef} className='lowcodeView' style={{ height: isFullScreen ? "100vh" : "calc(100vh - 121px)", ...screenFitStyleMap[adaptationType || "scale"] }}>
87
+ {loading || !layerManager ?
88
+ <Loading />
89
+ :
90
+ (adaptationType === 'none' ? canvasDom() :
91
+ <ScreenFit
92
+ width={width}
93
+ height={height}
94
+ mode={adaptationType}
95
+ containerStyle={{
96
+ width: canvasRef.current?.clientWidth,
97
+ height: canvasRef.current?.clientHeight
98
+ }}
99
+ >
100
+ {canvasDom()}
101
+ </ScreenFit>)
102
+ }
103
+ </div>
104
+ );
105
+ };
106
+
107
+ export default LowcodeView;
@@ -0,0 +1,190 @@
1
+ export interface ILayerItem {
2
+ //唯一标识
3
+ id?: string | undefined;
4
+ //组件名称
5
+ name?: string | undefined;
6
+ //组件类型
7
+ type?: string | undefined;
8
+ //宽度
9
+ width?: number;
10
+ //高度
11
+ height?: number;
12
+ //坐标
13
+ x?: number;
14
+ //y坐标
15
+ y?: number;
16
+ //是否隐藏
17
+ hide?: boolean;
18
+ //是否锁定
19
+ lock?: boolean;
20
+ //顺序
21
+ order?: number;
22
+ //父图层id
23
+ pid?: string;
24
+ //子图层列表
25
+ children?: ILayerItem[];
26
+ //子图层头指针
27
+ childHeader?: string;
28
+ //子图层尾指针
29
+ childTail?: string;
30
+ //前指针
31
+ prev?: string;
32
+ //后指针
33
+ next?: string;
34
+ // 旋转
35
+ transform?: string;
36
+ }
37
+
38
+ export interface LayerManagerDataType {
39
+ //元素样式
40
+ elemConfigs?: { [key: string]: Record<string, any> };
41
+ //图层信息
42
+ layerConfigs?: { [key: string]: ILayerItem };
43
+ //图层头指针
44
+ layerHeader?: string;
45
+ //图层尾指针
46
+ layerTail?: string;
47
+ }
48
+
49
+ export type AdaptationType = 'scale' | 'full-screen' | 'full-x' | 'full-y' | 'none';
50
+
51
+ /**
52
+ * 画布配置
53
+ */
54
+ export interface CanvasConfig {
55
+ //开启栅格化
56
+ rasterize?: boolean;
57
+ //栅格化拖拽步长
58
+ dragStep?: number;
59
+ //栅格化缩放步长
60
+ resizeStep?: number;
61
+ //画布宽
62
+ width?: number;
63
+ //画布高
64
+ height?: number;
65
+ //屏幕适配
66
+ adaptationType?: AdaptationType;
67
+ // 画布背景颜色
68
+ backgroundColor?: string;
69
+ // 画布背景图
70
+ backgroundImage?: string;
71
+ // 画布背景图类型
72
+ bagImgType?: string;
73
+ }
74
+
75
+ export interface ComponentInfoType {
76
+ id: string;
77
+ name: string;
78
+ type: string;
79
+ }
80
+
81
+ /**
82
+ * 数据配置项
83
+ */
84
+
85
+ export interface APIConfig {
86
+ sourceId: string;
87
+ }
88
+
89
+ export interface DataConfigType {
90
+ //数据来源方式
91
+ sourceType?: 'static' | 'api';
92
+ //静态数据(除了存放静态数据外,该属性还有动态数据的中转站的作用),其他动态数据获取到后统一都存放在静态数据中,需要使用到的时候再从静态数据中获取
93
+ staticData?: any;
94
+ apiData?: APIConfig;
95
+
96
+ }
97
+
98
+ export interface IFilterConfigType {
99
+ enable?: boolean;
100
+ blur?: number;
101
+ brightness?: number;
102
+ contrast?: number;
103
+ opacity?: number;
104
+ saturate?: number;
105
+ hueRotate?: number;
106
+ }
107
+
108
+ export interface ComponentBaseProps {
109
+ base?: ComponentInfoType;
110
+ style?: Record<string, any>;
111
+ data?: DataConfigType;
112
+ filter?: IFilterConfigType;
113
+ }
114
+
115
+ /**
116
+ * 主题
117
+ */
118
+ export interface ThemeColors {
119
+ //主体色
120
+ main?: string;
121
+ //主文字
122
+ mainText?: string;
123
+ //背景色
124
+ subText?: string;
125
+ //背景色
126
+ background?: string;
127
+ //补充一
128
+ supplementFirst?: string;
129
+ //补充二
130
+ supplementSecond?: string;
131
+ }
132
+
133
+ export interface ThemeItemType {
134
+ colors: ThemeColors;
135
+ name: string;
136
+ id: string;
137
+ }
138
+
139
+ export interface IFilter {
140
+ id: string;
141
+ name: string;
142
+ func: string;
143
+ }
144
+
145
+ export interface ProjectDataType {
146
+ //项目id
147
+ id?: string;
148
+ //画布设置
149
+ canvasManager?: CanvasConfig;
150
+ //全局主题
151
+ themeManager?: Array<ThemeItemType>;
152
+ //图层管理
153
+ layerManager?: LayerManagerDataType;
154
+ //过滤器管理
155
+ filterManager?: { filters: Record<string, IFilter>; };
156
+ }
157
+
158
+ /**
159
+ * 组件基础信息
160
+ */
161
+ export interface BaseInfoType {
162
+ /**
163
+ * 组件显示名称
164
+ */
165
+ compName: string;
166
+ /**
167
+ * 组件标识
168
+ */
169
+ compKey: string;
170
+ /**
171
+ * 主分类
172
+ */
173
+ categorize?: string;
174
+ /**
175
+ * 子分类
176
+ */
177
+ subCategorize?: string;
178
+ /**
179
+ * 版本
180
+ */
181
+ version?: string;
182
+ /**
183
+ * 初始宽度
184
+ */
185
+ width?: number;
186
+ /**
187
+ * 初始高度
188
+ */
189
+ height?: number;
190
+ }
@@ -0,0 +1,12 @@
1
+ function LowcodeConstant() {
2
+
3
+ }
4
+ export default LowcodeConstant;
5
+
6
+
7
+ LowcodeConstant.lowcodeDtmpl = {
8
+ name: '低代码页面数据请求',
9
+ serverKey: "DragDropPageServer",
10
+ sourceId: '446165759669608455',
11
+ type: 'dtmpl',
12
+ }
@@ -319,7 +319,6 @@ export default class DtmplEditPage extends React.PureComponent<
319
319
  const { dtmplConfig, id, dtmplData } = this.state;
320
320
 
321
321
  let title1 = title ? title : dtmplConfig ? dtmplConfig.title : "";
322
- debugger
323
322
  return (
324
323
  <>
325
324
  {" "}
@@ -364,10 +363,11 @@ debugger
364
363
  mask={false}
365
364
  onClose={onCancel}
366
365
  open={open}
367
- width={width}
368
366
  height={placement=="top" || placement=="bottom" ? height : "calc(100%)"}
369
367
  style={{
370
- maxWidth: (placement=="top" || placement=="bottom")?"100vw" :"92vw",
368
+ maxWidth: (placement=="top" || placement=="bottom")? "100vw" :"92vw",
369
+ border:"2px solid #d9d9d9",
370
+ width:width,
371
371
  }}
372
372
  extra={<Space>{this.getFooter()}</Space>}
373
373
  >
@@ -41,7 +41,6 @@ class DtmplViewDrawer extends React.PureComponent<DtmplViewDrawerProps, DtmplVie
41
41
 
42
42
  render() {
43
43
  const {title,sourceId,code,placement,open,onClose,width,height,cancelText,editable,serverKey,codeSource}=this.props;
44
- debugger
45
44
  return (<Drawer
46
45
  height={placement=="top" || placement=="bottom" ? height: "calc(100%)"}
47
46
  placement={placement}
@@ -50,11 +49,11 @@ class DtmplViewDrawer extends React.PureComponent<DtmplViewDrawerProps, DtmplVie
50
49
  mask={false}
51
50
  onClose={onClose}
52
51
  open={open}
53
- width={width}
54
52
  style={{
55
53
  maxWidth: (placement=="top" || placement=="bottom")?"100vw" :"92vw",
56
54
  //borderRightStyle:"2px solid #d9d9d9",
57
55
  border:"2px solid #d9d9d9",
56
+ width:width,
58
57
  // borderRightWidth:"2px",
59
58
  // borderLeftWidth:"2px",
60
59
  }}
@@ -350,7 +350,6 @@ Z
350
350
 
351
351
  let windowWidth = ltmplConfig?.buttonViewConfig?.windowWidth
352
352
  windowWidth= windowWidth && windowWidth>0 ? windowWidth : 1280;
353
-
354
353
  let windowHeight = ltmplConfig?.buttonViewConfig?.windowHeight;
355
354
  windowHeight= windowHeight && windowHeight>0 ? windowHeight : '80vh';
356
355