aldehyde 0.2.486 → 0.2.487

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 (35) hide show
  1. package/lib/controls/entry-control.d.ts +1 -0
  2. package/lib/controls/entry-control.d.ts.map +1 -1
  3. package/lib/controls/entry-control.js +2 -0
  4. package/lib/controls/entry-control.js.map +1 -1
  5. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts.map +1 -1
  6. package/lib/draw-canvas-edit/components/asset-bar/index.js +26 -7
  7. package/lib/draw-canvas-edit/components/asset-bar/index.js.map +1 -1
  8. package/lib/draw-canvas-edit/components/asset-bar/index.less +1 -1
  9. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts.map +1 -1
  10. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js +9 -5
  11. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js.map +1 -1
  12. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -1
  13. package/lib/draw-canvas-edit/components/render/index.js +1 -1
  14. package/lib/draw-canvas-edit/components/render/index.js.map +1 -1
  15. package/lib/module/dtmpl-edit-card.d.ts +1 -1
  16. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  17. package/lib/module/dtmpl-edit-card.js +40 -7
  18. package/lib/module/dtmpl-edit-card.js.map +1 -1
  19. package/lib/module/dtmpl-edit-page.d.ts +1 -1
  20. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  21. package/lib/module/dtmpl-edit-page.js +40 -7
  22. package/lib/module/dtmpl-edit-page.js.map +1 -1
  23. package/package.json +1 -1
  24. package/src/aldehyde/controls/entry-control.tsx +3 -0
  25. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +1 -1
  26. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +19 -6
  27. package/src/aldehyde/draw-canvas-edit/components/render/draws/graph-draw.ts +249 -249
  28. package/src/aldehyde/draw-canvas-edit/components/render/draws/link-draw.ts +1414 -1414
  29. package/src/aldehyde/draw-canvas-edit/components/render/draws/preview-draw.ts +273 -273
  30. package/src/aldehyde/draw-canvas-edit/components/render/draws/ref-line-draw.ts +70 -70
  31. package/src/aldehyde/draw-canvas-edit/components/render/draws/ruler-draw.ts +165 -165
  32. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-outside-handlers.ts +4 -0
  33. package/src/aldehyde/draw-canvas-edit/components/render/index.ts +0 -1
  34. package/src/aldehyde/module/dtmpl-edit-card.tsx +37 -7
  35. package/src/aldehyde/module/dtmpl-edit-page.tsx +38 -8
@@ -24,6 +24,7 @@ import Draggable from 'react-draggable';
24
24
  import DraggableModal from "./draggable-modal";
25
25
  import TmplConfigAnalysis from "../tmpl/tmpl-config-analysis";
26
26
  import { LocaleContext } from "../locale/LocaleProvider";
27
+ import { relValueFieldExtControlType } from "../controls/entry-control";
27
28
 
28
29
 
29
30
  interface ModalEditorProps extends DtmplBaseProps {
@@ -115,6 +116,7 @@ export default class DtmplEditPage extends React.PureComponent<
115
116
  ) {
116
117
  await this.loadConfigData();
117
118
  } else {
119
+ await this.handleBuildInFuncFields(dtmplConfig);
118
120
  await this.loadData(dtmplConfig);
119
121
  }
120
122
  }
@@ -146,6 +148,7 @@ export default class DtmplEditPage extends React.PureComponent<
146
148
  );
147
149
  }
148
150
  this.handleRelValueField(dtmplConfig);
151
+ await this.handleBuildInFuncFields(dtmplConfig);
149
152
  // 直接复制
150
153
  if (dtmplConfig?.entity && dtmplConfig?.entity?.code == code) {
151
154
  let dtmplData = dtmplConfig.entity;
@@ -167,7 +170,14 @@ export default class DtmplEditPage extends React.PureComponent<
167
170
  // 表单关联项secondCriterion处理start
168
171
  getSubDtmplData = async (valueField, code) => {
169
172
  const { serverKey } = this.props;
170
- const dtmplData = await HcserviceV3.requestDtmplData(serverKey, valueField.id, code.split("@R@")[0], null);
173
+ let dtmplData = null;
174
+ if (valueField.extRefPageId) { // 存在extRefPageId(扩展关联页面),则优先使用extRefPageId(例如:枚举值无指向页面,使用扩展关联页面)
175
+ const { entities } = await HcserviceV3.requestLtmplQueryTop(null, valueField.extRefPageId, { top: 1, secondCriterion: code.split("@R@")[0] }) || {};
176
+ dtmplData = entities?.[0];
177
+ } else { // 查询字段指向页面的数据
178
+ dtmplData = await HcserviceV3.requestDtmplData(serverKey, valueField.id, code.split("@R@")[0], null);
179
+ }
180
+ if (!dtmplData) return null;
171
181
  const subField = valueField.subRelValueField;
172
182
  const subData = dtmplData.fieldMap[subField.id];
173
183
  if (subField.subRelValueField && subData) { // 存在下级关联项
@@ -178,17 +188,21 @@ export default class DtmplEditPage extends React.PureComponent<
178
188
 
179
189
  getSecondCriteria = async (field) => {
180
190
  const { parentFormInstance } = this.props;
181
- const { relValueField, relValueField3, baseCriteria = {} } = field;
191
+ const { relValueField, relValueField3, baseCriteria = {}, relMinValueField, relMaxValueField } = field;
182
192
  const temForm = parentFormInstance || this.formRef.current;
183
- if (relValueField && temForm) {
193
+ if (relValueField && temForm) { // 设置默认值或查询次条件
184
194
  let relValueData = temForm.getFieldValue(relValueField.id);
185
195
  if (relValueField.subRelValueField && relValueData) {
186
196
  relValueData = await this.getSubDtmplData(relValueField, relValueData);
187
197
  }
188
- field.baseCriteria = { ...(baseCriteria || {}), "secondCriterion": relValueData };
198
+ if (!relValueFieldExtControlType.includes(field.extControlType)) {
199
+ field.defaultValue = relValueData; // 非关系型字段填充默认值
200
+ } else {
201
+ field.baseCriteria = { ...(baseCriteria || {}), "secondCriterion": relValueData };
202
+ }
189
203
  field.configChanged = true;
190
204
  }
191
- if (relValueField3 && temForm) {
205
+ if (relValueField3 && temForm) { // 设置查询三条件
192
206
  let relValueData = temForm.getFieldValue(relValueField3.id);
193
207
  if (relValueField3.subRelValueField && relValueData) {
194
208
  relValueData = await this.getSubDtmplData(relValueField3, relValueData);
@@ -196,6 +210,22 @@ export default class DtmplEditPage extends React.PureComponent<
196
210
  field.baseCriteria = { ...(field.baseCriteria || {}), "thirdCriterion": relValueData };
197
211
  field.configChanged = true;
198
212
  }
213
+ if (relMinValueField && temForm) { // 设置最小值
214
+ let relValueData = temForm.getFieldValue(relMinValueField.id);
215
+ if (relMinValueField.subRelValueField && relValueData) {
216
+ relValueData = await this.getSubDtmplData(relMinValueField, relValueData);
217
+ }
218
+ field.min = relValueData;
219
+ field.configChanged = true;
220
+ }
221
+ if (relMaxValueField && temForm) { // 设置最大值
222
+ let relValueData = temForm.getFieldValue(relMaxValueField.id);
223
+ if (relMaxValueField.subRelValueField && relValueData) {
224
+ relValueData = await this.getSubDtmplData(relMaxValueField, relValueData);
225
+ }
226
+ field.max = relValueData;
227
+ field.configChanged = true;
228
+ }
199
229
  return field;
200
230
  }
201
231
  // 表单关联项secondCriterion处理end
@@ -283,7 +313,7 @@ export default class DtmplEditPage extends React.PureComponent<
283
313
  * 匹配关联项的字段,实现值更新关联字段值变化
284
314
  */
285
315
  handleRelValueField = (dtmplConfig: DtmplConfig) => {
286
- if(!dtmplConfig){
316
+ if (!dtmplConfig) {
287
317
  return;
288
318
  }
289
319
  const { groups } = dtmplConfig;
@@ -316,8 +346,8 @@ export default class DtmplEditPage extends React.PureComponent<
316
346
  };
317
347
 
318
348
  //关联取值:根据 parentFormInstance / this.formRef 完善 dtmplConfig
319
- handleBuildInFuncFields = async () => {
320
- const { dtmplConfig } = this.state;
349
+ handleBuildInFuncFields = async (tDtmplConfig?: DtmplConfig) => {
350
+ const dtmplConfig = tDtmplConfig || this.state.dtmplConfig;
321
351
  if (dtmplConfig) {
322
352
  if (!dtmplConfig.buildInFuncFields) {
323
353
  dtmplConfig.buildInFuncFields = TmplConfigAnalysis.buildInFuncFields(dtmplConfig);