@gct-paas/design 0.1.4-dev.8 → 0.1.4-dev.9

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 (158) hide show
  1. package/dist/assets/transform-js.worker-BtVTa-PT.js +666 -0
  2. package/dist/index.esm.min.mjs +18271 -17461
  3. package/dist/index.min.cjs +7 -7
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +7 -7
  6. package/es/assets/transform-js.worker-DdeZQ5i-.js +296567 -0
  7. package/es/components/design/design-content/design-content.mjs +12 -10
  8. package/es/components/design/design-drag-item/design-drag-item.mjs +13 -10
  9. package/es/components/design/design-drop-container/design-drop-container.d.ts +4 -0
  10. package/es/components/design/design-drop-container/design-drop-container.mjs +13 -10
  11. package/es/components/design/design-drop-line/design-drop-line.mjs +15 -11
  12. package/es/components/design/design-item-actions/design-item-actions.mjs +10 -9
  13. package/es/components/design/design-item-highlighter/design-item-highlighter.mjs +12 -9
  14. package/es/components/design/design-item-highlighter-container/design-item-highlighter-container.mjs +10 -9
  15. package/es/components/design/design-not-drag-item/design-not-drag-item.mjs +12 -10
  16. package/es/components/design-icon-button/design-icon-button.d.ts +0 -2
  17. package/es/components/design-icon-button/design-icon-button.mjs +1 -2
  18. package/es/components/design-save-tip/design-save-tip.mjs +1 -1
  19. package/es/components/design-view-layout/{design-view-layout.module.css → design-view-layout.css} +20 -17
  20. package/es/components/design-view-layout/design-view-layout.mjs +17 -16
  21. package/es/components/editor/index.mjs +3 -3
  22. package/es/components/editor/style/border-editor/border-box.vue2.mjs +5 -303
  23. package/es/components/editor/style/border-editor/border-box.vue3.mjs +305 -0
  24. package/es/components/editor/style/border-editor/border-editor.vue2.mjs +5 -58
  25. package/es/components/editor/style/border-editor/border-editor.vue3.mjs +60 -0
  26. package/es/components/editor/style/border-editor/border-radius.vue2.mjs +5 -210
  27. package/es/components/editor/style/border-editor/border-radius.vue3.mjs +212 -0
  28. package/es/components/editor/style/font-editor/align-group.vue2.mjs +5 -64
  29. package/es/components/editor/style/font-editor/align-group.vue3.mjs +66 -0
  30. package/es/components/editor/style/font-editor/font-editor.vue.mjs +2 -2
  31. package/es/components/editor/style/font-editor/font-style-group.vue2.mjs +5 -103
  32. package/es/components/editor/style/font-editor/font-style-group.vue3.mjs +105 -0
  33. package/es/components/editor/style/position-editor/position-editor.vue2.mjs +5 -240
  34. package/es/components/editor/style/position-editor/position-editor.vue3.mjs +242 -0
  35. package/es/components/editor/style/spacing-editor/spacing-editor.vue2.mjs +5 -309
  36. package/es/components/editor/style/spacing-editor/spacing-editor.vue3.mjs +311 -0
  37. package/es/components/icon/downleft-icon.vue.mjs +9 -25
  38. package/es/components/icon/downleft-icon.vue2.mjs +25 -9
  39. package/es/components/icon/downright-icon.vue.mjs +9 -25
  40. package/es/components/icon/downright-icon.vue2.mjs +25 -9
  41. package/es/components/icon/upleft-icon.vue.mjs +9 -25
  42. package/es/components/icon/upleft-icon.vue2.mjs +25 -9
  43. package/es/components/icon/upright-icon.vue.mjs +9 -25
  44. package/es/components/icon/upright-icon.vue2.mjs +25 -9
  45. package/es/components/index.mjs +2 -1
  46. package/es/components/material/material-content/material-content.d.ts +8 -0
  47. package/es/components/material/material-content/material-content.mjs +2 -2
  48. package/es/components/material/material-module/material-module.d.ts +4 -0
  49. package/es/components/material/material-module/material-module.mjs +12 -9
  50. package/es/components/material/material-module-drag-container/material-module-drag-container.d.ts +4 -0
  51. package/es/components/material/material-module-drag-item/material-module-drag-item.mjs +11 -9
  52. package/es/components/material/material-outline-tree/material-outline-tree.mjs +15 -12
  53. package/es/components/material/material-tabs/material-tabs.d.ts +4 -0
  54. package/es/components/panel/panel-content/panel-content.mjs +11 -9
  55. package/es/components/panel/panel-form/panel-form.mjs +12 -9
  56. package/es/components/panel/panel-path/panel-path.mjs +12 -9
  57. package/es/controller/view/design-view.controller.mjs +0 -1
  58. package/es/create-app-vue.d.ts +8 -0
  59. package/es/create-app-vue.mjs +11 -0
  60. package/es/editor/child-list-editor/child-list-editor.mjs +13 -11
  61. package/es/editor/model-field-select/model-field-select.mjs +12 -10
  62. package/es/hooks/design-view/constants/style-editor.const.d.ts +24 -0
  63. package/es/hooks/design-view/constants/style-editor.const.mjs +53 -0
  64. package/es/hooks/design-view/design-state.d.ts +2427 -0
  65. package/es/hooks/design-view/design-state.mjs +86 -0
  66. package/es/hooks/design-view/designer/useDesignCache.d.ts +4 -0
  67. package/es/hooks/design-view/designer/useDesignCache.mjs +27 -0
  68. package/es/hooks/design-view/designer/useDesignHistory.d.ts +16 -0
  69. package/es/hooks/design-view/designer/useDesignHistory.mjs +102 -0
  70. package/es/hooks/design-view/designer/useDesignModal.d.ts +1874 -0
  71. package/es/hooks/design-view/designer/useDesignModal.mjs +80 -0
  72. package/es/hooks/design-view/designer/useDesignPreview.d.ts +11 -0
  73. package/es/hooks/design-view/designer/useDesignPreview.mjs +143 -0
  74. package/es/hooks/design-view/designer/useDesignSave.d.ts +12 -0
  75. package/es/hooks/design-view/designer/useDesignSave.mjs +239 -0
  76. package/es/hooks/design-view/{usePropEditor.d.ts → editor/usePropEditor.d.ts} +1 -1
  77. package/es/hooks/design-view/editor/usePropEditor.mjs +99 -0
  78. package/es/hooks/design-view/{useStyle.d.ts → editor/useStyle.d.ts} +2 -2
  79. package/es/hooks/design-view/{useStyle.mjs → editor/useStyle.mjs} +1 -1
  80. package/es/hooks/design-view/editor/useStyleEditor.d.ts +30 -0
  81. package/es/hooks/design-view/editor/useStyleEditor.mjs +77 -0
  82. package/es/hooks/design-view/{useGlobal.d.ts → global/useGlobal.d.ts} +46 -40
  83. package/es/hooks/design-view/{useScope.mjs → layout/useScope.mjs} +17 -3
  84. package/es/hooks/design-view/{useToolkit.d.ts → layout/useToolkit.d.ts} +13 -11
  85. package/es/hooks/design-view/{useToolkit.mjs → layout/useToolkit.mjs} +22 -6
  86. package/es/hooks/design-view/{usePage.d.ts → page/usePage.d.ts} +2 -4
  87. package/es/hooks/design-view/{usePage.mjs → page/usePage.mjs} +9 -26
  88. package/es/hooks/design-view/page/usePageOccupy.d.ts +33 -0
  89. package/es/hooks/design-view/{usePageOccupy.mjs → page/usePageOccupy.mjs} +26 -18
  90. package/es/hooks/design-view/useDesigner.d.ts +153 -183
  91. package/es/hooks/design-view/useDesigner.mjs +76 -790
  92. package/es/hooks/design-view/utils/color.util.d.ts +21 -0
  93. package/es/hooks/design-view/utils/color.util.mjs +36 -0
  94. package/es/hooks/design-view/utils/field-schema.util.d.ts +55 -0
  95. package/es/hooks/design-view/{getFieldSchema.mjs → utils/field-schema.util.mjs} +28 -10
  96. package/es/hooks/design-view/widget/useSelectedWidget.d.ts +53 -0
  97. package/es/hooks/design-view/{useSelectedWidget.mjs → widget/useSelectedWidget.mjs} +12 -42
  98. package/es/hooks/design-view/{useWidget.d.ts → widget/useWidget.d.ts} +12 -8
  99. package/es/hooks/design-view/widget/useWidgetQuery.d.ts +13 -0
  100. package/es/hooks/design-view/widget/useWidgetQuery.mjs +88 -0
  101. package/es/hooks/design-view/widget/useWidgetRegistry.d.ts +11 -0
  102. package/es/hooks/design-view/widget/useWidgetRegistry.mjs +59 -0
  103. package/es/hooks/develop/useKeyParser.mjs +0 -4
  104. package/es/hooks/index.d.ts +20 -10
  105. package/es/hooks/use-model-field/use-model-field.d.ts +32 -0
  106. package/es/hooks/use-model-field/use-model-field.mjs +344 -0
  107. package/es/index.d.ts +2 -5
  108. package/es/index.mjs +100 -35
  109. package/es/interface/designer/i-designer-provider.d.ts +2 -85
  110. package/es/interface/designer/i-designer-state.d.ts +14 -0
  111. package/es/interface/designer/index.d.ts +0 -2
  112. package/es/plugins/design-custom-exp-menu/components/design-custom-exp-menu.component.mjs +12 -9
  113. package/es/plugins/design-editor/upload-file/index.mjs +4 -1
  114. package/es/plugins/design-editor/upload-file/upload-file.mjs +2 -2
  115. package/es/plugins/design-editor/upload-image/index.mjs +4 -1
  116. package/es/plugins/design-editor/user-signature/index.mjs +4 -1
  117. package/es/plugins/design-grid/components/design-grid.component.mjs +12 -9
  118. package/es/plugins/design-grid/design-grid.provider.mjs +33 -0
  119. package/es/plugins/design-grid-item/components/design-grid-item.component.mjs +12 -9
  120. package/es/plugins/design-tab-item/components/design-tab-item.component.mjs +12 -9
  121. package/es/plugins/design-tabs/components/design-tabs.component.mjs +12 -9
  122. package/es/register/designer-register/designer-register.d.ts +29 -0
  123. package/es/register/designer-register/designer-register.mjs +35 -0
  124. package/es/setup-app.d.ts +1 -0
  125. package/es/setup-app.mjs +18 -0
  126. package/es/utils/design-interceptors/design-interceptors.d.ts +8 -0
  127. package/es/utils/design-interceptors/design-interceptors.mjs +20 -0
  128. package/es/utils/field-filter/index.d.ts +4 -0
  129. package/es/utils/field-filter/index.mjs +58 -0
  130. package/es/utils/index.d.ts +5 -1
  131. package/es/utils/init-widget-info/init-widget-info.d.ts +16 -0
  132. package/es/utils/init-widget-info/init-widget-info.mjs +40 -0
  133. package/es/utils/plugin-pkg-util/plugin-pkg-util.mjs +0 -8
  134. package/es/utils/transform-js/index.d.ts +1 -0
  135. package/es/utils/transform-js/transform-js.d.ts +13 -0
  136. package/es/utils/transform-js/transform-js.mjs +48 -0
  137. package/es/utils/transform-js/transform-js.worker.d.ts +1 -0
  138. package/es/views/design-view.d.ts +2 -2
  139. package/es/views/design-view.mjs +14 -12
  140. package/package.json +13 -7
  141. package/es/components/design-view-layout/design-view-layout.module.scss.mjs +0 -27
  142. package/es/components/editor/style/border-editor/border-box.vue.mjs +0 -7
  143. package/es/components/editor/style/border-editor/border-editor.vue.mjs +0 -7
  144. package/es/components/editor/style/border-editor/border-radius.vue.mjs +0 -7
  145. package/es/components/editor/style/font-editor/align-group.vue.mjs +0 -7
  146. package/es/components/editor/style/font-editor/font-style-group.vue.mjs +0 -7
  147. package/es/components/editor/style/position-editor/position-editor.vue.mjs +0 -7
  148. package/es/components/editor/style/spacing-editor/spacing-editor.vue.mjs +0 -7
  149. package/es/hooks/design-view/getFieldSchema.d.ts +0 -26
  150. package/es/hooks/design-view/usePageOccupy.d.ts +0 -13
  151. package/es/hooks/design-view/usePropEditor.mjs +0 -99
  152. package/es/hooks/design-view/useSelectedWidget.d.ts +0 -53
  153. package/es/hooks/design-view/useStyleEditor.d.ts +0 -27
  154. package/es/interface/designer/i-designer-dnd-item-hooks.d.ts +0 -21
  155. package/es/interface/designer/i-designer-schema-exports.d.ts +0 -13
  156. /package/es/hooks/design-view/{useGlobal.mjs → global/useGlobal.mjs} +0 -0
  157. /package/es/hooks/design-view/{useScope.d.ts → layout/useScope.d.ts} +0 -0
  158. /package/es/hooks/design-view/{useWidget.mjs → widget/useWidget.mjs} +0 -0
@@ -0,0 +1,344 @@
1
+ import { watch, toRefs, reactive, toRaw } from 'vue';
2
+ import { SCOPEINFO, FIELD_TYPE, CreateType } from '@gct-paas/core';
3
+ import { cloneDeep, has } from 'lodash-es';
4
+
5
+ const objInfo = {
6
+ modelKey: "",
7
+ fieldCodeChain: "",
8
+ bindFormId: "",
9
+ isFieldModel: false,
10
+ relateObjList: []
11
+ };
12
+ const modelInfoMap = {};
13
+ const modelFieldMap = {};
14
+ const selectObj = {
15
+ modelName: "",
16
+ fieldList: [],
17
+ modelKey: "",
18
+ currentFormId: "",
19
+ fieldCodeChain: "",
20
+ isFieldModel: false
21
+ };
22
+ const fieldCascaderSelectValue = [];
23
+ const fieldPathChainList = [];
24
+ const fieldMap = {
25
+ objInfo,
26
+ modelInfoMap,
27
+ modelFieldMap,
28
+ fieldCascaderSelectValue,
29
+ fieldPathChainList
30
+ };
31
+ const fieldCacheMap = {
32
+ [SCOPEINFO.FIELD_FORM]: {
33
+ selectObj: reactive(cloneDeep(selectObj)),
34
+ ...toRefs(reactive(cloneDeep(fieldMap)))
35
+ },
36
+ [SCOPEINFO.FIELD_LIST]: {
37
+ selectObj: reactive(cloneDeep(selectObj)),
38
+ ...toRefs(reactive(cloneDeep(fieldMap)))
39
+ }
40
+ };
41
+ function useModelField(scope = SCOPEINFO.FIELD_FORM) {
42
+ const {
43
+ objInfo: objInfo2,
44
+ modelInfoMap: modelInfoMap2,
45
+ modelFieldMap: modelFieldMap2,
46
+ selectObj: selectObj2,
47
+ fieldCascaderSelectValue: fieldCascaderSelectValue2,
48
+ fieldPathChainList: fieldPathChainList2
49
+ } = fieldCacheMap[scope];
50
+ async function getModelDetail2FieldList(modelKey) {
51
+ const res = await _api.apaas.modelMeta.getDetail({
52
+ modelKey
53
+ });
54
+ return res;
55
+ }
56
+ function setModelFieldToMap(modelKey, fieldList = []) {
57
+ if (!modelFieldMap2.value[modelKey]) {
58
+ modelFieldMap2.value[modelKey] = fieldList?.reduce(
59
+ (prev, curr) => ({
60
+ ...prev,
61
+ [curr.key ?? ""]: curr
62
+ }),
63
+ {}
64
+ );
65
+ }
66
+ }
67
+ function setModelInfoToMap(modelList = []) {
68
+ modelList?.forEach((item) => {
69
+ if (!modelInfoMap2.value[item.key]) {
70
+ modelInfoMap2.value[item.key] = {
71
+ modelId: item.id,
72
+ modelKey: item.key,
73
+ modelName: item.name,
74
+ // NDO | RDO
75
+ modelType: item.type
76
+ };
77
+ }
78
+ });
79
+ }
80
+ function getModelFieldList(modelKey) {
81
+ if (!modelKey || !modelFieldMap2.value[modelKey]) {
82
+ return [];
83
+ }
84
+ return Object.values(toRaw(modelFieldMap2.value[modelKey]));
85
+ }
86
+ function getModelFieldInfo(modelKey, fieldKey) {
87
+ if (!modelKey || !fieldKey || !modelFieldMap2.value[modelKey]) {
88
+ return;
89
+ }
90
+ return modelFieldMap2.value[modelKey][fieldKey];
91
+ }
92
+ function getModelInfo(modelKey) {
93
+ if (!modelKey || !modelInfoMap2.value[modelKey]) {
94
+ return false;
95
+ }
96
+ return modelInfoMap2.value[modelKey];
97
+ }
98
+ function _checkRefModel(item, fieldTypes = []) {
99
+ return item.bindInfo && [FIELD_TYPE.REF, FIELD_TYPE.RDO_REF, ...fieldTypes].includes(item.type) && [CreateType.USER_DEFINED, CreateType.BUILTIN].includes(
100
+ item.createType
101
+ );
102
+ }
103
+ function getRefConfig({ item, formId }, {
104
+ links,
105
+ fieldLinks,
106
+ fieldType
107
+ }) {
108
+ const link = [...links, item.bindInfo];
109
+ return {
110
+ fieldKey: item.key,
111
+ fieldType: item.type,
112
+ belongModelKey: item.modelKey,
113
+ bindModelKey: item.bindInfo,
114
+ bindFormId: formId ?? "",
115
+ isFieldModel: true,
116
+ // ! 这边用对象的原因是模型 key 可能是特殊字符,所以如果直接用字符串拼接可能会有问题
117
+ fieldCodeChain: JSON.stringify({
118
+ // 关联模型的字段key
119
+ bindFieldKey: item.key,
120
+ // 字段所属模型的key
121
+ bindModelKey: item.bindInfo,
122
+ // 关联模型字段所属模型的key
123
+ belongModelKey: item.modelKey,
124
+ /**模型链路 */
125
+ modelLink: link,
126
+ /**字段链路 */
127
+ fieldLink: fieldLinks,
128
+ /**关联源模型的模型类型 */
129
+ refOriginFieldType: fieldType
130
+ }),
131
+ modelLink: link,
132
+ children: []
133
+ };
134
+ }
135
+ async function getRefInfo({ item, formId }, { modelKey, fieldType }) {
136
+ const oneLevelRefConfig = getRefConfig(
137
+ { item, formId },
138
+ { links: [modelKey], fieldLinks: [item.key], fieldType }
139
+ );
140
+ const twoLevelFieldData = await getModelDetail2FieldList(
141
+ oneLevelRefConfig.bindModelKey
142
+ );
143
+ const twoLevelRefConfigs = twoLevelFieldData?.fieldMetaList?.filter((a) => _checkRefModel(a)).map(
144
+ (i) => getRefConfig(
145
+ { item: i, formId },
146
+ {
147
+ links: oneLevelRefConfig.modelLink,
148
+ fieldLinks: [item.key, i.key],
149
+ fieldType
150
+ }
151
+ )
152
+ );
153
+ return { ...oneLevelRefConfig, children: twoLevelRefConfigs };
154
+ }
155
+ async function loadObjInfo(modelKey, {
156
+ formId,
157
+ childParentModelKey,
158
+ isShowCascader = true
159
+ } = {}) {
160
+ const info = await getModelDetail2FieldList(modelKey);
161
+ if (info) {
162
+ info.fieldMetaList?.forEach((item) => {
163
+ if (item.type === FIELD_TYPE.ASSOCIATED_PRIMARY_KEY && childParentModelKey) {
164
+ item.bindInfo = childParentModelKey;
165
+ }
166
+ });
167
+ const refList = await Promise.all(
168
+ info.fieldMetaList?.filter((a) => _checkRefModel(a, [FIELD_TYPE.ASSOCIATED_PRIMARY_KEY]))?.map(
169
+ (item) => getRefInfo(
170
+ { item, formId },
171
+ { modelKey, fieldType: item.type }
172
+ )
173
+ ) ?? []
174
+ );
175
+ objInfo2.value = {
176
+ modelKey: info.key,
177
+ fieldCodeChain: JSON.stringify({ modelKey: info.key }),
178
+ bindFormId: formId ?? "",
179
+ isFieldModel: false,
180
+ relateObjList: refList
181
+ };
182
+ setModelFieldToMap(info.key ?? "", info.fieldMetaList);
183
+ let modelDetails = [info];
184
+ const allRefList = [
185
+ ...new Set(
186
+ objInfo2.value.relateObjList?.map((item) => [item, ...item.children || []]).flat().map((item) => item.bindModelKey)
187
+ )
188
+ ];
189
+ if (allRefList?.length !== 0) {
190
+ const res = await _api.apaas.modelMeta.getByKeys({
191
+ modelKeys: allRefList.join(",") ?? ""
192
+ });
193
+ modelDetails = modelDetails?.concat(res ?? []);
194
+ }
195
+ setModelInfoToMap(modelDetails);
196
+ if (allRefList?.length !== 0 && isShowCascader) {
197
+ await Promise.all(
198
+ allRefList.map((k) => getModelDetail2FieldList(k))
199
+ ).then((res) => {
200
+ (res ?? []).forEach((info2) => {
201
+ if (info2) {
202
+ setModelFieldToMap(info2.key ?? "", info2.fieldMetaList);
203
+ }
204
+ });
205
+ });
206
+ }
207
+ }
208
+ return true;
209
+ }
210
+ async function fetchDetailList(modelKey) {
211
+ if (!modelFieldMap2.value[modelKey]) {
212
+ const info = await getModelDetail2FieldList(modelKey);
213
+ if (info) {
214
+ setModelFieldToMap(info.key ?? "", info.fieldMetaList);
215
+ }
216
+ }
217
+ }
218
+ function setSelectObjData(modelKey, info) {
219
+ const modelInfo = getModelInfo(modelKey);
220
+ if (modelInfo) {
221
+ selectObj2.modelKey = modelInfo.modelKey;
222
+ selectObj2.modelName = modelInfo.modelName;
223
+ selectObj2.currentFormId = info.bindFormId;
224
+ selectObj2.fieldCodeChain = info.fieldCodeChain;
225
+ selectObj2.isFieldModel = info.isFieldModel;
226
+ selectObj2.fieldList = getModelFieldList(modelInfo.modelKey);
227
+ }
228
+ }
229
+ watch(
230
+ [() => objInfo2.value, () => modelInfoMap2.value],
231
+ () => {
232
+ if (!selectObj2.modelKey && objInfo2.value.modelKey) {
233
+ setSelectObjData(objInfo2.value.modelKey, objInfo2.value);
234
+ }
235
+ },
236
+ {
237
+ immediate: true,
238
+ deep: true
239
+ }
240
+ );
241
+ function changeSelectInfo(modelKey, data) {
242
+ setSelectObjData(modelKey, data);
243
+ }
244
+ function clearSelectInfo() {
245
+ selectObj2.modelKey = "";
246
+ selectObj2.modelName = "";
247
+ selectObj2.currentFormId = "";
248
+ selectObj2.fieldCodeChain = "";
249
+ selectObj2.isFieldModel = false;
250
+ selectObj2.fieldList = [];
251
+ fieldCascaderSelectValue2.value = [];
252
+ }
253
+ function clearObjInfo() {
254
+ objInfo2.value = {
255
+ modelKey: "",
256
+ fieldCodeChain: "",
257
+ bindFormId: "",
258
+ isFieldModel: false,
259
+ relateObjList: []
260
+ };
261
+ }
262
+ function getFieldCodeChainStr(fieldCodeChain, currentFieldName) {
263
+ if (!fieldCodeChain) {
264
+ return "";
265
+ }
266
+ const fieldCodeChainObj = JSON.parse(fieldCodeChain);
267
+ if (has(fieldCodeChainObj, "bindFieldKey")) {
268
+ const fieldInfo = getModelFieldInfo(
269
+ fieldCodeChainObj.belongModelKey,
270
+ fieldCodeChainObj.bindFieldKey
271
+ );
272
+ const bindModelInfo = getModelInfo(fieldCodeChainObj.bindModelKey);
273
+ if (fieldInfo && bindModelInfo) {
274
+ return `${fieldInfo.name}(${bindModelInfo.modelName})${currentFieldName ? ` > ${currentFieldName}` : ""}`;
275
+ }
276
+ } else {
277
+ const modelInfo = getModelInfo(fieldCodeChainObj.modelKey);
278
+ if (modelInfo) {
279
+ return `${modelInfo.modelName}${currentFieldName ? ` > ${currentFieldName}` : ""}`;
280
+ }
281
+ }
282
+ return "";
283
+ }
284
+ async function getFieldPathChainList(fieldCodeChain, fieldName) {
285
+ if (!fieldCodeChain) {
286
+ fieldPathChainList2.value = [];
287
+ } else {
288
+ const fieldCodeChainObj = JSON.parse(fieldCodeChain);
289
+ const isFieldModel = has(fieldCodeChainObj, "bindFieldKey");
290
+ const modelKeys = isFieldModel ? fieldCodeChainObj.modelLink || [
291
+ fieldCodeChainObj.belongModelKey,
292
+ fieldCodeChainObj.bindModelKey
293
+ ] : [fieldCodeChainObj.modelKey];
294
+ if (modelKeys.some((item) => !getModelInfo(item))) {
295
+ const res = await _api.apaas.modelMeta.getByKeys({
296
+ modelKeys: modelKeys.join(",")
297
+ });
298
+ if (res) {
299
+ setModelInfoToMap(res);
300
+ }
301
+ }
302
+ if (isFieldModel) {
303
+ fieldPathChainList2.value = modelKeys.map((i) => getModelInfo(i).modelName).concat(fieldName);
304
+ } else {
305
+ const modelInfo = getModelInfo(fieldCodeChainObj.modelKey);
306
+ if (modelInfo) {
307
+ fieldPathChainList2.value = [modelInfo.modelName, fieldName];
308
+ }
309
+ }
310
+ }
311
+ return fieldPathChainList2.value;
312
+ }
313
+ async function reloadFieldToolkit(modelKey, formId, childParentModelKey) {
314
+ if (selectObj2.currentFormId === formId) {
315
+ return;
316
+ }
317
+ clearSelectInfo();
318
+ clearObjInfo();
319
+ await loadObjInfo(modelKey, {
320
+ formId,
321
+ childParentModelKey
322
+ });
323
+ }
324
+ return {
325
+ objInfo: objInfo2,
326
+ loadObjInfo,
327
+ getModelInfo,
328
+ getModelFieldList,
329
+ getModelFieldInfo,
330
+ selectObj: selectObj2,
331
+ modelFieldMap: modelFieldMap2,
332
+ fetchDetailList,
333
+ changeSelectInfo,
334
+ getFieldCodeChainStr,
335
+ getFieldPathChainList,
336
+ clearSelectInfo,
337
+ clearObjInfo,
338
+ fieldCascaderSelectValue: fieldCascaderSelectValue2,
339
+ fieldPathChainList: fieldPathChainList2,
340
+ reloadFieldToolkit
341
+ };
342
+ }
343
+
344
+ export { useModelField };
package/es/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { App } from 'vue';
2
1
  export * from './components';
3
2
  export * from './interface';
4
3
  export * from './constant';
@@ -10,7 +9,5 @@ export * from './provider';
10
9
  export * from './register';
11
10
  export * from './utils';
12
11
  export * from './views';
13
- declare const _default: {
14
- install(app: App): void;
15
- };
16
- export default _default;
12
+ export { designCreateAppVue } from './create-app-vue';
13
+ export { designSetupApp } from './setup-app';
package/es/index.mjs CHANGED
@@ -1,52 +1,117 @@
1
- import Components from './components/index.mjs';
2
- import Plugins from './plugins/index.mjs';
3
- import Editors from './editor/index.mjs';
1
+ import { DesignerRegister } from './register/designer-register/designer-register.mjs';
2
+ import './components/design-icon-button/design-icon-button.css';import './components/editor/style/font-editor/align-group.css';import './components/editor/style/font-editor/font-style-group.css';import './components/editor/style/position-editor/position-editor.css';import './components/editor/style/spacing-editor/spacing-editor.css';import './components/editor/style/border-editor/border-editor.css';import './components/editor/style/border-editor/border-radius.css';import './components/editor/style/border-editor/border-box.css';import './components/panel/panel-content/panel-content.css';import './components/panel/panel-form/panel-form.css';import './components/panel/panel-path/panel-path.css';import './components/material/material-content/material-content.css';import './components/material/material-module/material-module.css';import './components/material/material-module-drag-container/material-module-drag-container.css';import './components/material/material-module-drag-item/material-module-drag-item.css';import './components/material/material-outline-tree/material-outline-tree.css';import './components/material/material-tab-pane/material-tab-pane.css';import './components/material/material-tabs/material-tabs.css';import './components/design/design-item-preview/design-item-preview.css';import './components/design/design-not-found/design-not-found.css';import './components/design/design-drop-container/design-drop-container.css';import './components/design/design-content/design-content.css';import './components/design/design-not-drag-item/design-not-drag-item.css';import './components/design/design-drop-line/design-drop-line.css';import './components/design/design-drag-item/design-drag-item.css';import './components/mobile-container/mobile-container.css';import './components/design/design-item-highlighter/design-item-highlighter.css';import './components/design/design-item-hover-title/design-item-hover-title.css';import './components/design/design-item-actions/design-item-actions.css';import './components/design/design-item-highlighter-container/design-item-highlighter-container.css';export { MaterialRegister } from './register/material/material.register.mjs';
3
+ export { NodeRegister } from './register/node/node.register.mjs';
4
+ import 'vue';
4
5
  export { ControllerType, DesignItemActionTag, DesignItemAttribute, DesignNodeMode, DesignNodePrefix, DesignNodeType, DesignViewPrefix, InsertNodeMode, MaterialGroup } from './constant/index.mjs';
5
- export { DesignViewController } from './controller/view/design-view.controller.mjs';
6
- export { DesignContainerNode } from './data/design-container-node/design-container-node.mjs';
7
- export { DesignEditorNode } from './data/design-editor-node/design-editor-node.mjs';
8
- export { DesignNode } from './data/design-node/design-node.mjs';
9
- export { FieldSchema, initFieldWidgetRuntime } from './hooks/design-view/getFieldSchema.mjs';
10
- export { isModified, isNewDesigner, useDesigner, useDesignerController } from './hooks/design-view/useDesigner.mjs';
11
- export { useGlobal } from './hooks/design-view/useGlobal.mjs';
12
- export { currentPanel, loadPageInfo, lockPage, newKeyTag, pageInfo, pagePermissions, platform, togglePanel, unlockAvailable, usePage } from './hooks/design-view/usePage.mjs';
13
- export { destoryOccupyTimer, loadPageOccupyInfo, occupyPage, pageOccupyInfo } from './hooks/design-view/usePageOccupy.mjs';
14
- export { props, usePropEditor } from './hooks/design-view/usePropEditor.mjs';
15
- export { useScope } from './hooks/design-view/useScope.mjs';
16
- export { useSelectedWidget } from './hooks/design-view/useSelectedWidget.mjs';
17
- export { propsToStyle, schemaToStyle, useStyle } from './hooks/design-view/useStyle.mjs';
18
- export { useToolkit } from './hooks/design-view/useToolkit.mjs';
19
- export { NotMask, useWidget, widgetProps, widgetWrapperProps } from './hooks/design-view/useWidget.mjs';
6
+ export { designRegister, isModified, isNewDesigner, loading, methodMap, modalDesignId, modalDesignState, modalInfo, noMore, pageDesignHistoryList, pageJson, pageJsonSnapshot, pageNo, platform, pluginConfigs, regRoot, subTableModalId, subTableModalState, transformPageJson, widgetInfo } from './hooks/design-view/design-state.mjs';
7
+ export { useDesigner, useDesignerController } from './hooks/design-view/useDesigner.mjs';
8
+ export { useDesignModal } from './hooks/design-view/designer/useDesignModal.mjs';
9
+ export { useDesignHistory } from './hooks/design-view/designer/useDesignHistory.mjs';
10
+ export { useDesignPreview } from './hooks/design-view/designer/useDesignPreview.mjs';
11
+ export { buildRuntimeJson, useDesignSave } from './hooks/design-view/designer/useDesignSave.mjs';
12
+ export { useDesignCache } from './hooks/design-view/designer/useDesignCache.mjs';
13
+ export { useWidgetQuery } from './hooks/design-view/widget/useWidgetQuery.mjs';
14
+ export { useWidgetRegistry } from './hooks/design-view/widget/useWidgetRegistry.mjs';
15
+ export { NotMask, useWidget, widgetProps, widgetWrapperProps } from './hooks/design-view/widget/useWidget.mjs';
16
+ export { useSelectedWidget } from './hooks/design-view/widget/useSelectedWidget.mjs';
17
+ export { useGlobal } from './hooks/design-view/global/useGlobal.mjs';
18
+ export { currentPanel, loadPageInfo, lockPage, newKeyTag, pageInfo, pagePermissions, togglePanel, unlockAvailable, usePage } from './hooks/design-view/page/usePage.mjs';
19
+ export { destroyOccupyTimer, loadPageOccupyInfo, occupyPage, pageOccupyInfo, usePageOccupy } from './hooks/design-view/page/usePageOccupy.mjs';
20
+ export { propEditorProps, usePropEditor } from './hooks/design-view/editor/usePropEditor.mjs';
21
+ export { styleEditorProps, useStyleEditor } from './hooks/design-view/editor/useStyleEditor.mjs';
22
+ export { propsToStyle, schemaToStyle, useStyle } from './hooks/design-view/editor/useStyle.mjs';
23
+ export { useScope } from './hooks/design-view/layout/useScope.mjs';
24
+ export { useToolkit } from './hooks/design-view/layout/useToolkit.mjs';
25
+ export { FieldSchema, initFieldWidgetRuntime } from './hooks/design-view/utils/field-schema.util.mjs';
20
26
  export { useCacheHistory, useCacheHistoryInner } from './hooks/develop/useCacheHistory.mjs';
21
27
  export { useKeyParser } from './hooks/develop/useKeyParser.mjs';
22
28
  export { useDesignViewController } from './hooks/use-design-view-controller/use-design-view-controller.mjs';
29
+ export { useModelField } from './hooks/use-model-field/use-model-field.mjs';
23
30
  export { DesignViewHooks } from './hooks/designer.hooks.mjs';
24
- export { nodeContainerProps, nodeEditorProps, nodeProps } from './props/index.mjs';
25
- export { NodeBaseProvider } from './provider/node-base/node-base.provider.mjs';
26
- export { DesignEditorNodeProvider } from './provider/design-editor-node/design-editor-node.provider.mjs';
27
- export { DesignerRegister } from './register/designer-register/designer-register.mjs';
28
- export { MaterialRegister } from './register/material/material.register.mjs';
29
- export { NodeRegister } from './register/node/node.register.mjs';
31
+ import '@gct-paas/core';
32
+ import '@vueuse/core';
33
+ import 'lodash-es';
34
+ /* empty css */
35
+ import 'vue3-dnd';
36
+ /* empty css */
37
+ /* empty css */
38
+ /* empty css */
39
+ import 'dayjs';
40
+ import '@ant-design/icons-vue';
41
+ /* empty css */
42
+ import 'react-dnd-html5-backend';
30
43
  export { isCanCrop } from './utils/can-drop/can-drop.mjs';
31
44
  export { widthDesignEditorInstall } from './utils/design-install/design-install.mjs';
45
+ export { designInterceptors } from './utils/design-interceptors/design-interceptors.mjs';
46
+ export { transformField2Component } from './utils/field-attrs/index.mjs';
47
+ export { deptFilter, formulaFilter } from './utils/field-filter/index.mjs';
32
48
  export { findAllChildrenTypes } from './utils/find-deep-types/find-deep-types.mjs';
49
+ export { createWidgetProvider, onWidgetInfoInit } from './utils/init-widget-info/init-widget-info.mjs';
33
50
  export { PluginPgkUtil } from './utils/plugin-pkg-util/plugin-pkg-util.mjs';
34
- export { transformField2Component } from './utils/field-attrs/index.mjs';
35
- export { DesignView } from './views/design-view.mjs';
36
- export { CategoryEnum, FormDesignEnum, MenuClickEvent, ModelTypeEnum, PageTypeEnum, PrintTypeEnum, ProcessTypeEnum, ScriptTypeEnum } from './constant/page-designer.mjs';
37
- export { DesignEditorType } from './constant/design-editor-type.mjs';
51
+ export { buildRunJs, initMethodMap } from './utils/transform-js/transform-js.mjs';
52
+ /* empty css */
53
+ /* empty css */
54
+ /* empty css */
55
+ /* empty css */
56
+ /* empty css */
57
+ /* empty css */
58
+ /* empty css */
59
+ /* empty css */
60
+ /* empty css */
61
+ /* empty css */
62
+ /* empty css */
63
+ /* empty css */
64
+ /* empty css */
65
+ /* empty css */
66
+ /* empty css */
67
+ /* empty css */
68
+ /* empty css */
69
+ /* empty css */
70
+ /* empty css */
71
+ /* empty css */
72
+ /* empty css */
73
+ import './components/icon/upleft-icon.vue.mjs';
74
+ import './components/icon/downleft-icon.vue.mjs';
75
+ import './components/icon/downright-icon.vue.mjs';
76
+ import './components/icon/upright-icon.vue.mjs';
77
+ /* empty css */
78
+ import './components/editor/style/font-editor/util.mjs';
79
+ /* empty css */
80
+ /* empty css */
81
+ /* empty css */
38
82
  export { DesignSaveTip } from './components/design-save-tip/design-save-tip.mjs';
39
83
  export { DesignStepCheck } from './components/design-step-check/design-step-check.mjs';
40
84
  export { DesignViewLayout } from './components/design-view-layout/design-view-layout.mjs';
41
85
  export { ModalNameEditor } from './components/modal-name-editor/modal-name-editor.mjs';
86
+ export { DesignViewController } from './controller/view/design-view.controller.mjs';
87
+ export { DesignContainerNode } from './data/design-container-node/design-container-node.mjs';
88
+ export { DesignEditorNode } from './data/design-editor-node/design-editor-node.mjs';
89
+ export { DesignNode } from './data/design-node/design-node.mjs';
90
+ export { nodeContainerProps, nodeEditorProps, nodeProps } from './props/index.mjs';
91
+ export { NodeBaseProvider } from './provider/node-base/node-base.provider.mjs';
92
+ export { DesignEditorNodeProvider } from './provider/design-editor-node/design-editor-node.provider.mjs';
93
+ export { DesignView } from './views/design-view.mjs';
94
+ export { designCreateAppVue } from './create-app-vue.mjs';
95
+ export { designSetupApp } from './setup-app.mjs';
96
+ export { CategoryEnum, FormDesignEnum, MenuClickEvent, ModelTypeEnum, PageTypeEnum, PrintTypeEnum, ProcessTypeEnum, ScriptTypeEnum } from './constant/page-designer.mjs';
97
+ export { DesignEditorType } from './constant/design-editor-type.mjs';
42
98
  export { basicAttrsUtils } from './utils/field-attrs/basicAttrs.mjs';
99
+ export { BTN_TYPE_COLOR as btnTypeColor, PRESET_COLOR as presetColor } from './hooks/design-view/constants/style-editor.const.mjs';
100
+ export { rgba2hex, shadeColor } from './hooks/design-view/utils/color.util.mjs';
43
101
 
44
- const index = {
45
- install(app) {
46
- app.use(Components);
47
- app.use(Plugins);
48
- app.use(Editors);
102
+ function onInit() {
103
+ if (!_gct.register.designer) {
104
+ _gct.register.designer = {
105
+ pad: new DesignerRegister(),
106
+ mobile: new DesignerRegister(),
107
+ web: new DesignerRegister()
108
+ };
109
+ } else {
110
+ console.warn(
111
+ "设计器注册已存在,可能存在重复注册问题,请检查是否有重复引入设计器包的情况"
112
+ );
49
113
  }
50
- };
114
+ }
115
+ onInit();
51
116
 
52
- export { index as default };
117
+ export { DesignerRegister };
@@ -1,6 +1,5 @@
1
1
  import { Component } from 'vue';
2
- import { LowCodeWidget } from '@gct-paas/schema';
3
- import { ExportWidgetHooks } from './i-designer-schema-exports';
2
+ import { IWidgetInfoItem } from '@gct-paas/schema';
4
3
  /**
5
4
  * 设计界面项
6
5
  *
@@ -9,33 +8,7 @@ import { ExportWidgetHooks } from './i-designer-schema-exports';
9
8
  * @export
10
9
  * @interface IDesignerProvider
11
10
  */
12
- export interface IDesignerProvider {
13
- /**
14
- * 套件类别,用于识别可使用的系统。取 getApp 中的 suiteKey,例如 MedPro 使用 kit=['MEDPRO']
15
- *
16
- * @author zhanghanrui
17
- * @date 2024-05-28 09:05:32
18
- * @type {string[]}
19
- */
20
- kit?: string[];
21
- /**
22
- * 项拖拽钩子
23
- *
24
- * @type {LowCodeWidget.hooks}
25
- */
26
- hooks?: ExportWidgetHooks;
27
- /**
28
- * 白名单,只允许在白名单中的组件拖入
29
- *
30
- * @type {(string | RegExp)[]}
31
- */
32
- whiteList?: (string | RegExp)[];
33
- /**
34
- * 黑名单,不允许拖入黑名单中的组件
35
- *
36
- * @type {(string | RegExp)[]}
37
- */
38
- blackList?: (string | RegExp)[];
11
+ export interface IDesignerProvider extends IWidgetInfoItem {
39
12
  /**
40
13
  * render 绘制组件,目前只支持异步组件
41
14
  *
@@ -44,60 +17,4 @@ export interface IDesignerProvider {
44
17
  * @type {Component}
45
18
  */
46
19
  component: Component;
47
- /**
48
- * 基础组件描述
49
- *
50
- * @author zhanghanrui
51
- * @date 2024-05-24 16:05:12
52
- * @type {LowCodeWidget.BasicSchema}
53
- */
54
- schema: LowCodeWidget.BasicSchema;
55
- /**
56
- * 组件支持配置事件描述
57
- *
58
- * @author zhanghanrui
59
- * @date 2024-05-24 16:05:17
60
- * @type {LowCodeWidget.EventsType[]}
61
- */
62
- events?: LowCodeWidget.EventsType[];
63
- /**
64
- * 组件右侧属性表单模型描述
65
- *
66
- * @author zhanghanrui
67
- * @date 2024-05-24 16:05:43
68
- * @type {LowCodeWidget.PropEditor[]}
69
- */
70
- propEditors: LowCodeWidget.PropEditor[];
71
- /**
72
- * 保存时钩子函数
73
- *
74
- * @author zhanghanrui
75
- * @date 2024-05-24 18:05:15
76
- * @type {LowCodeWidget.RunCallback}
77
- */
78
- callback?: LowCodeWidget.RunCallback;
79
- /**
80
- * 拖入时钩子函数
81
- *
82
- * @author zhanghanrui
83
- * @date 2024-05-24 18:05:13
84
- * @type {LowCodeWidget.beforeCreate}
85
- */
86
- beforeCreate?: LowCodeWidget.beforeCreate;
87
- /**
88
- * 样式编辑器配置
89
- *
90
- * @author zhanghanrui
91
- * @date 2024-05-24 16:05:14
92
- * @type {LowCodeWidget.StyleEditor[]}
93
- */
94
- styleEditors?: LowCodeWidget.StyleEditor[];
95
- /**
96
- * 设计页面配置信息
97
- *
98
- * @author zhanghanrui
99
- * @date 2024-05-24 16:05:30
100
- * @type {LowCodeWidget.DesignerConfig}
101
- */
102
- designerConfig?: LowCodeWidget.DesignerConfig;
103
20
  }
@@ -12,6 +12,20 @@ export interface IDesignerState {
12
12
  * 设计页面是否正在拖拽中
13
13
  */
14
14
  isDragging: boolean;
15
+ /**
16
+ * 当前正在拖拽中的数据(旧拖拽)
17
+ *
18
+ * @deprecated
19
+ * @type {IData | null}
20
+ */
21
+ draggingData: IData | null;
22
+ /**
23
+ * 当前鼠标容器悬浮元素(旧拖拽)
24
+ *
25
+ * @deprecated
26
+ * @type {(HTMLDivElement | null)}
27
+ */
28
+ hoverEL: HTMLDivElement | null;
15
29
  /**
16
30
  * 拖拽放置目标容器
17
31
  */
@@ -1,6 +1,4 @@
1
- export type { IDesignerDndItemHooks } from './i-designer-dnd-item-hooks';
2
1
  export type { IDesignerHooks } from './i-designer-hooks';
3
2
  export type { IDesignerProvider } from './i-designer-provider';
4
- export type * from './i-designer-schema-exports';
5
3
  export type { IDesignerState } from './i-designer-state';
6
4
  export type { IDesignerController } from './i-designer.controller';