cnhis-design-vue 3.1.16-beta.12 → 3.1.16-beta.15

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 (49) hide show
  1. package/es/packages/big-table/src/BigTable.vue.d.ts +6 -1
  2. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +2 -2
  3. package/es/packages/big-table/src/components/edit-form/edit-date.js +13 -3
  4. package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -0
  5. package/es/packages/big-table/src/hooks/useSeparateRow.js +5 -2
  6. package/es/packages/button-print/index.d.ts +1 -1
  7. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +1 -1
  8. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +15 -3
  9. package/es/packages/fabric-chart/src/components/PopupTip.js +2 -2
  10. package/es/packages/fabric-chart/src/hooks/useCenter.js +11 -2
  11. package/es/packages/form-config/index.d.ts +7 -2
  12. package/es/packages/form-config/src/FormConfig.vue.d.ts +7 -2
  13. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +3 -1
  14. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +4 -1
  15. package/es/packages/form-render/index.d.ts +3 -1
  16. package/es/packages/form-render/index.js +0 -1
  17. package/es/packages/form-render/src/FormRender.js +5 -6
  18. package/es/packages/form-render/src/FormRender.vue.d.ts +3 -1
  19. package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts} +3 -3
  20. package/es/packages/form-render/src/components/renderer/combination.js +82 -0
  21. package/es/packages/form-render/src/components/renderer/date.js +12 -4
  22. package/es/packages/form-render/src/components/renderer/formItem.js +11 -3
  23. package/es/packages/form-render/src/components/renderer/index.d.ts +1 -0
  24. package/es/packages/form-render/src/components/renderer/index.js +2 -1
  25. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.d.ts +0 -0
  26. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.js +0 -0
  27. package/es/packages/form-render/src/components/renderer/jsonCombination/index.d.ts +44 -0
  28. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js +14 -9
  29. package/es/packages/form-render/src/hooks/index.d.ts +0 -1
  30. package/es/packages/form-render/src/hooks/index.js +0 -1
  31. package/es/packages/form-render/src/hooks/useFieldListAdaptor.d.ts +1 -1
  32. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +7 -3
  33. package/es/packages/form-render/src/types/fieldItem.d.ts +4 -0
  34. package/es/packages/form-render/src/types/index.d.ts +1 -1
  35. package/es/packages/form-render/src/utils/index.js +3 -2
  36. package/es/packages/form-render/src/utils/schema.d.ts +60 -0
  37. package/es/packages/form-render/src/utils/schema.js +5 -2
  38. package/es/packages/form-render/style/index.css +7 -0
  39. package/es/packages/index.css +7 -0
  40. package/es/packages/index.js +0 -1
  41. package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +1 -0
  42. package/es/packages/shortcut-setter/index.d.ts +4 -1
  43. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +4 -1
  44. package/es/src/utils/index.d.ts +1 -0
  45. package/es/src/utils/index.js +11 -1
  46. package/global.d.ts +8 -8
  47. package/package.json +4 -4
  48. package/es/packages/form-render/src/hooks/useInitialData.d.ts +0 -5
  49. package/es/packages/form-render/src/hooks/useInitialData.js +0 -16
@@ -1126,7 +1126,12 @@ declare const _default: import("vue").DefineComponent<{
1126
1126
  textColorGhostHoverWarning: string;
1127
1127
  textColorGhostPressedWarning: string;
1128
1128
  textColorGhostFocusWarning: string;
1129
- textColorGhostDisabledWarning: string;
1129
+ textColorGhostDisabledWarning: string; /**
1130
+ * 判断是否渲染EditForm
1131
+ * @param {*} row
1132
+ * @param {*} column
1133
+ * @returns
1134
+ */
1130
1135
  borderWarning: string;
1131
1136
  borderHoverWarning: string;
1132
1137
  borderPressedWarning: string;
@@ -354,10 +354,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
354
354
  showSeq = true
355
355
  } = map;
356
356
  if (isEdit) {
357
- state.editConfig = Object.assign(state.editConfig, editConfig);
357
+ Object.assign(state.editConfig, editConfig);
358
358
  state.rowConfig.height = 48;
359
359
  }
360
- state.rowConfig = Object.assign(state.rowConfig, rowConfig);
360
+ Object.assign(state.rowConfig, rowConfig);
361
361
  state.rowConfig.keyField = handleRowId.value;
362
362
  if (selectType) {
363
363
  isBatchSelect = 1;
@@ -1,4 +1,5 @@
1
- import { defineComponent, createVNode, mergeProps } from 'vue';
1
+ import { defineComponent, computed, createVNode, mergeProps } from 'vue';
2
+ import { generateTimeFormat } from '../../../../../src/utils';
2
3
  import { isFunction } from 'lodash-es';
3
4
  import { NDatePicker } from 'naive-ui';
4
5
 
@@ -25,7 +26,6 @@ var EditDate = defineComponent({
25
26
  emits: ["formChange"],
26
27
  setup(props, {
27
28
  attrs,
28
- slots,
29
29
  emit
30
30
  }) {
31
31
  const onConfirm = (value) => {
@@ -102,11 +102,21 @@ var EditDate = defineComponent({
102
102
  return customDateDisabled(ts, props.row);
103
103
  };
104
104
  }
105
+ const formatConfig = computed(() => {
106
+ const valueFormat = props.col.valueFormat || "yyyy-MM-dd HH:mm:ss";
107
+ return {
108
+ valueFormat,
109
+ format: valueFormat,
110
+ timePickerProps: {
111
+ format: generateTimeFormat(valueFormat)
112
+ }
113
+ };
114
+ });
105
115
  const config = {
106
116
  type: props.col.type || props.col.dateType || "datetime",
107
117
  clearable: props.col.clearable || true,
108
118
  disabled: props.col.disabled || false,
109
- valueFormat: props.col.valueFormat || "yyyy-MM-dd HH:mm:ss",
119
+ ...formatConfig.value,
110
120
  isDateDisabled: customDateDisabledDecorator(props.col.isDateDisabled) || isDateDisabled,
111
121
  placeholder: props.col.placeholder || "\u8BF7\u9009\u62E9",
112
122
  ...props.col.componentProps || {}
@@ -41,6 +41,7 @@ var editTime = defineComponent({
41
41
  const config = {
42
42
  placeholder: props.col.placeholder || "\u8BF7\u9009\u62E9",
43
43
  valueFormat: props.col.valueFormat || "HH:mm",
44
+ format: props.col.valueFormat || "yyyy-MM-dd HH:mm:ss",
44
45
  ...props.col.componentProps || {}
45
46
  };
46
47
  return () => createVNode(NTimePicker, mergeProps(attrs, config, {
@@ -84,13 +84,15 @@ function useSeparateRow(getColumnConfig, getFieldItem, $VXETable) {
84
84
  });
85
85
  }
86
86
  (await res).push(...Array.from({ length: getColumnInfoMaxLength(parsedRowData) }).map((_, index) => {
87
+ const separateData = getSeparateRowData(parsedRowData, index);
87
88
  if (index === 0) {
88
89
  separateDataMap.value.set(row, {
89
90
  row,
90
91
  rawRow: rawData[dataIndex],
91
92
  index,
92
- separateData: getSeparateRowData(parsedRowData, index)
93
+ separateData
93
94
  });
95
+ row.$__SEPARATE_DATA = [separateData];
94
96
  return row;
95
97
  }
96
98
  const data2 = { $__SEPARATE: true };
@@ -98,8 +100,9 @@ function useSeparateRow(getColumnConfig, getFieldItem, $VXETable) {
98
100
  row: data2,
99
101
  rawRow: rawData[dataIndex],
100
102
  index,
101
- separateData: getSeparateRowData(parsedRowData, index)
103
+ separateData
102
104
  });
105
+ row.$__SEPARATE_DATA.push(separateData);
103
106
  return data2;
104
107
  }));
105
108
  return res;
@@ -161,7 +161,7 @@ declare const ButtonPrint: SFCWithInstall<import("vue").DefineComponent<{
161
161
  init: () => Promise<boolean>;
162
162
  handleClickBtn: () => Promise<false | undefined>;
163
163
  reformatPrintParams: () => void;
164
- verifiySuccess: () => void;
164
+ verifiySuccess: (token: any) => void;
165
165
  NDropdown: import("vue").DefineComponent<{
166
166
  readonly theme: import("vue").PropType<import("naive-ui/es/_mixins").Theme<"Dropdown", {
167
167
  optionHeightSmall: string;
@@ -165,7 +165,7 @@ declare const _default: import("vue").DefineComponent<{
165
165
  init: () => Promise<boolean>;
166
166
  handleClickBtn: () => Promise<false | undefined>;
167
167
  reformatPrintParams: () => void;
168
- verifiySuccess: () => void;
168
+ verifiySuccess: (token: any) => void;
169
169
  NDropdown: import("vue").DefineComponent<{
170
170
  readonly theme: import("vue").PropType<import("naive-ui/es/_mixins").Theme<"Dropdown", {
171
171
  optionHeightSmall: string;
@@ -240,6 +240,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
240
240
  state.visible = false;
241
241
  });
242
242
  };
243
+ const handleClickEdit = () => {
244
+ props.prevFn().catch(() => {
245
+ prevFnError();
246
+ return Promise.reject();
247
+ }).then(() => {
248
+ state.identityVerification.visible = true;
249
+ }).finally(() => {
250
+ state.visible = false;
251
+ });
252
+ };
243
253
  const handleSelect = (key) => {
244
254
  switch (key) {
245
255
  case "printText":
@@ -249,7 +259,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
249
259
  handleClickPreview();
250
260
  break;
251
261
  case "formatEditText":
252
- verifiySuccess();
262
+ handleClickEdit();
253
263
  break;
254
264
  case "downloadPdf":
255
265
  handleClickPdf();
@@ -406,11 +416,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
406
416
  }
407
417
  state.printParams = formatParams(state.templateParams, props.params);
408
418
  };
409
- const verifiySuccess = () => {
419
+ const verifiySuccess = (token) => {
420
+ state.identityVerification.visible = false;
410
421
  const queryParams = {
411
422
  formatId: state.currentFormatId,
412
423
  templateId: getTemplateIdByFormatId(state.currentFormatId),
413
- params: getPrintParams()
424
+ params: getPrintParams(),
425
+ token
414
426
  };
415
427
  printInstance.editPrintFormat(queryParams, (res) => {
416
428
  callLocalServicesSuccessCb(res, "edit");
@@ -20,8 +20,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  style: normalizeStyle(unref(pointStyle))
21
21
  }, [
22
22
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.list, (item) => {
23
- return openBlock(), createElementBlock("li", null, toDisplayString(item), 1);
24
- }), 256))
23
+ return openBlock(), createElementBlock("li", { key: item }, toDisplayString(item), 1);
24
+ }), 128))
25
25
  ], 4), [
26
26
  [vShow, __props.show]
27
27
  ])
@@ -430,9 +430,18 @@ function useCenter(canvas, propItems, emits, cumputedX, cumputedY, getXValue, ge
430
430
  x: point.left,
431
431
  y: point.top
432
432
  };
433
- const yValue = getYValue(type, point.top);
434
- pointTipProps.list = [`${title} ${yValue}${unit || ""}`, `\u65F6\u95F4 ${((data == null ? void 0 : data.time) || getXValue(point.left)).slice(-5)}`];
433
+ pointTipProps.list = [getListValue(), `\u65F6\u95F4 ${((data == null ? void 0 : data.time) || getXValue(point.left)).slice(-5)}`];
435
434
  pointTipProps.show = true;
435
+ function getListValue() {
436
+ const { value, drugReduce, physicsReduce } = data;
437
+ if (drugReduce) {
438
+ return `\u836F\u7269\u964D${type == "pain" ? "\u75DB" : "\u6E29"} ${value}\u2014>${drugReduce}${unit || ""}`;
439
+ }
440
+ if (physicsReduce) {
441
+ return `\u7269\u7406\u964D${type == "pain" ? "\u75DB" : "\u6E29"} ${value}\u2014>${physicsReduce}${unit || ""}`;
442
+ }
443
+ return `${title} ${value}${unit || ""}`;
444
+ }
436
445
  }
437
446
  function moveLimit(point) {
438
447
  point.setCoords();
@@ -229,6 +229,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
229
229
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
230
230
  lazyRequest?: boolean | undefined;
231
231
  maxGroupNum?: number | undefined;
232
+ jsonCombination?: boolean | undefined;
232
233
  children?: any[] | undefined;
233
234
  properties?: any[] | undefined;
234
235
  componentProps?: import("../../../es/src/types").AnyObject | undefined;
@@ -3988,7 +3989,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
3988
3989
  }>>;
3989
3990
  emit: (event: "formChange", ...args: any[]) => void;
3990
3991
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3991
- formModel: import("@formily/core").Form<any>;
3992
+ formModel: import("@formily/core").Form<{
3993
+ [x: string]: any;
3994
+ }>;
3992
3995
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
3993
3996
  businessCollector: import("..").BusinessCollector;
3994
3997
  formItemDepsCollector: import("..").FormItemDepsCollector;
@@ -9074,7 +9077,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
9074
9077
  }>>;
9075
9078
  emit: (event: "formChange", ...args: any[]) => void;
9076
9079
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
9077
- formModel: import("@formily/core").Form<any>;
9080
+ formModel: import("@formily/core").Form<{
9081
+ [x: string]: any;
9082
+ }>;
9078
9083
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
9079
9084
  businessCollector: import("..").BusinessCollector;
9080
9085
  formItemDepsCollector: import("..").FormItemDepsCollector;
@@ -231,6 +231,7 @@ declare const _default: import("vue").DefineComponent<{
231
231
  content?: string | import("../..").FormRenderer | Record<string, import("../..").FormRenderer> | undefined;
232
232
  lazyRequest?: boolean | undefined;
233
233
  maxGroupNum?: number | undefined;
234
+ jsonCombination?: boolean | undefined;
234
235
  children?: any[] | undefined;
235
236
  properties?: any[] | undefined;
236
237
  componentProps?: import("../../../../es/src/types").AnyObject | undefined;
@@ -3990,7 +3991,9 @@ declare const _default: import("vue").DefineComponent<{
3990
3991
  }>>;
3991
3992
  emit: (event: "formChange", ...args: any[]) => void;
3992
3993
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3993
- formModel: import("@formily/core").Form<any>;
3994
+ formModel: import("@formily/core").Form<{
3995
+ [x: string]: any;
3996
+ }>;
3994
3997
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
3995
3998
  businessCollector: import("../..").BusinessCollector;
3996
3999
  formItemDepsCollector: import("../..").FormItemDepsCollector;
@@ -9076,7 +9079,9 @@ declare const _default: import("vue").DefineComponent<{
9076
9079
  }>>;
9077
9080
  emit: (event: "formChange", ...args: any[]) => void;
9078
9081
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
9079
- formModel: import("@formily/core").Form<any>;
9082
+ formModel: import("@formily/core").Form<{
9083
+ [x: string]: any;
9084
+ }>;
9080
9085
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
9081
9086
  businessCollector: import("../..").BusinessCollector;
9082
9087
  formItemDepsCollector: import("../..").FormItemDepsCollector;
@@ -3580,7 +3580,9 @@ declare const _default: import("vue").DefineComponent<{}, {
3580
3580
  }>>;
3581
3581
  emit: (event: "formChange", ...args: any[]) => void;
3582
3582
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3583
- formModel: import("@formily/core").Form<any>;
3583
+ formModel: import("@formily/core").Form<{
3584
+ [x: string]: any;
3585
+ }>;
3584
3586
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
3585
3587
  businessCollector: import("../../../../../es/packages/form-render").BusinessCollector;
3586
3588
  formItemDepsCollector: import("../../../../../es/packages/form-render").FormItemDepsCollector;
@@ -92,6 +92,7 @@ declare const _default: import("vue").DefineComponent<{}, {
92
92
  content?: string | import("../../../../../es/packages/form-render").FormRenderer | Record<string, import("../../../../../es/packages/form-render").FormRenderer> | undefined;
93
93
  lazyRequest?: boolean | undefined;
94
94
  maxGroupNum?: number | undefined;
95
+ jsonCombination?: boolean | undefined;
95
96
  children?: any[] | undefined;
96
97
  properties?: any[] | undefined;
97
98
  componentProps?: import("../../../../../es/src/types").AnyObject | undefined;
@@ -3851,7 +3852,9 @@ declare const _default: import("vue").DefineComponent<{}, {
3851
3852
  }>>;
3852
3853
  emit: (event: "formChange", ...args: any[]) => void;
3853
3854
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3854
- formModel: import("@formily/core").Form<any>;
3855
+ formModel: import("@formily/core").Form<{
3856
+ [x: string]: any;
3857
+ }>;
3855
3858
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
3856
3859
  businessCollector: import("../../../../../es/packages/form-render").BusinessCollector;
3857
3860
  formItemDepsCollector: import("../../../../../es/packages/form-render").FormItemDepsCollector;
@@ -236,7 +236,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
236
236
  }>>;
237
237
  emit: (event: "formChange", ...args: any[]) => void;
238
238
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
239
- formModel: import("@formily/core").Form<any>;
239
+ formModel: import("@formily/core").Form<{
240
+ [x: string]: any;
241
+ }>;
240
242
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
241
243
  businessCollector: import("./src/hooks").BusinessCollector;
242
244
  formItemDepsCollector: import("./src/hooks").FormItemDepsCollector;
@@ -12,7 +12,6 @@ export { useFormValidator } from './src/hooks/useFormValidator.js';
12
12
  export { BusinessCollector, useBusinessBinding } from './src/hooks/useBusinessBinding.js';
13
13
  export { ContextCollector, useChangeContext } from './src/hooks/useChangeContext.js';
14
14
  export { FormItemDepsCollector, useFormItemDeps } from './src/hooks/useFormItemDeps.js';
15
- export { useInitialData } from './src/hooks/useInitialData.js';
16
15
  export { useAnchor } from './src/hooks/useAnchor.js';
17
16
  export { useFormContext } from './src/hooks/useFormContext.js';
18
17
 
@@ -6,10 +6,9 @@ import { cloneDeep, isArray } from 'lodash-es';
6
6
  import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
7
7
  import { FormItemLineBarDepKeyPrepend } from '../../../packages/form-render/src/constants';
8
8
  import { useFormRenderLifeCycle } from '../../../packages/form-render/src/hooks/useFormRenderLifeCycle';
9
- import { arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
9
+ import { createObjSchema, arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
10
10
  import { useNuiThemeOverrides } from '../../../packages/form-table/src/hooks/useNuiThemeOverrides';
11
11
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
12
- import { useInitialData } from './hooks/useInitialData.js';
13
12
  import { useFormContext } from './hooks/useFormContext.js';
14
13
  import { useFieldListAdaptor } from './hooks/useFieldListAdaptor.js';
15
14
  import { useFieldVisitor } from './hooks/useFieldVisitor.js';
@@ -50,7 +49,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
50
49
  const { nuiThemeOverrides } = useNuiThemeOverrides();
51
50
  useFormRenderLifeCycle(props).callLifeCycle("onSetup");
52
51
  const formModel = createForm({
53
- initialValues: useInitialData().assignInitialData(props.initialData, props.fieldList),
52
+ initialValues: props.initialData,
54
53
  effects() {
55
54
  onFieldValueChange("*", async (field) => {
56
55
  const fieldKey = field.props.name.toString();
@@ -68,16 +67,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
68
67
  });
69
68
  const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props, formModel);
70
69
  const scrollbarRef = ref();
71
- const { schemaAdaptor } = useFieldListAdaptor(businessCollector, formUUID);
70
+ const { schemaAdaptor } = useFieldListAdaptor(businessCollector);
72
71
  const parsedSchema = computed(() => {
73
72
  if (props.schema) {
74
73
  return props.schema;
75
74
  }
76
75
  if (props.fieldList) {
77
76
  const _fieldList = useFieldVisitor().traverse(cloneDeep(props.fieldList), props.fieldVisitor);
78
- return { type: "object", properties: schemaAdaptor(_fieldList) };
77
+ return createObjSchema(schemaAdaptor(_fieldList));
79
78
  }
80
- return { type: "object", properties: {} };
79
+ return createObjSchema({});
81
80
  });
82
81
  const { currentAnchor, generateAnchorList, anchorIdList, formHeight, onScroll } = useAnchor(props, scrollbarRef, formItemDepsCollector);
83
82
  watch(parsedSchema, generateAnchorList, { immediate: true });
@@ -236,7 +236,9 @@ declare const _default: import("vue").DefineComponent<{
236
236
  }>>;
237
237
  emit: (event: "formChange", ...args: any[]) => void;
238
238
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
239
- formModel: import("@formily/core").Form<any>;
239
+ formModel: import("@formily/core").Form<{
240
+ [x: string]: any;
241
+ }>;
240
242
  SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
241
243
  businessCollector: import("./hooks").BusinessCollector;
242
244
  formItemDepsCollector: import("./hooks").FormItemDepsCollector;
@@ -1,4 +1,4 @@
1
- import { FieldItem } from '../../../../../../../es/packages/form-render';
1
+ import { FieldItem } from '../../../../../../es/packages/form-render';
2
2
  import { PropType } from 'vue';
3
3
  export declare const COMBINATION: import("vue").DefineComponent<{
4
4
  title: {
@@ -6,7 +6,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
6
6
  default: string;
7
7
  };
8
8
  value: {
9
- type: StringConstructor;
9
+ type: ArrayConstructor;
10
10
  };
11
11
  maxGroupNum: {
12
12
  type: NumberConstructor;
@@ -24,7 +24,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
24
24
  default: string;
25
25
  };
26
26
  value: {
27
- type: StringConstructor;
27
+ type: ArrayConstructor;
28
28
  };
29
29
  maxGroupNum: {
30
30
  type: NumberConstructor;
@@ -0,0 +1,82 @@
1
+ import { defineComponent, ref, computed, inject, createVNode, createTextVNode } from 'vue';
2
+ import { isNumber } from 'lodash-es';
3
+ import { useFieldListAdaptor } from '../../../../../packages/form-render';
4
+ import { useField, RecursionField, connect } from '@formily/vue';
5
+ import { NButton } from 'naive-ui';
6
+ import { InjectionBusinessCollector } from '../../../../../packages/form-render/src/constants';
7
+ import { createObjSchema } from '../../../../../packages/form-render/src/utils';
8
+
9
+ const script = defineComponent({
10
+ name: "FormCombination",
11
+ props: {
12
+ title: {
13
+ type: String,
14
+ default: ""
15
+ },
16
+ value: {
17
+ type: Array
18
+ },
19
+ maxGroupNum: {
20
+ type: Number
21
+ },
22
+ getProperties: {
23
+ type: Function,
24
+ default: () => []
25
+ },
26
+ onInput: {},
27
+ onBlur: {},
28
+ onChange: {}
29
+ },
30
+ emits: ["update:value"],
31
+ setup(props) {
32
+ const field = useField();
33
+ const currentGroupNum = ref(1);
34
+ const maxGroupNum = computed(() => {
35
+ if (!isNumber(props.maxGroupNum))
36
+ return Infinity;
37
+ if (props.maxGroupNum < 1)
38
+ return 0;
39
+ return ~~props.maxGroupNum;
40
+ });
41
+ function addGroup() {
42
+ currentGroupNum.value++;
43
+ }
44
+ async function removeGroup(idx) {
45
+ currentGroupNum.value--;
46
+ await field.value.remove(idx);
47
+ }
48
+ const collector = inject(InjectionBusinessCollector);
49
+ const {
50
+ schemaAdaptor
51
+ } = useFieldListAdaptor(collector);
52
+ return () => {
53
+ return createVNode("section", {
54
+ "class": "form-render__combination"
55
+ }, [createVNode("header", {
56
+ "class": "form-render__combinationHeader"
57
+ }, [createVNode("div", {
58
+ "class": "form-render__combinationHeaderText"
59
+ }, [props.title]), createVNode(NButton, {
60
+ "onClick": addGroup,
61
+ "type": "info",
62
+ "text": true,
63
+ "disabled": currentGroupNum.value >= maxGroupNum.value
64
+ }, {
65
+ default: () => [createTextVNode("\u65B0\u589E")]
66
+ })]), Array.from({
67
+ length: currentGroupNum.value
68
+ }).map((_, idx) => createVNode("section", {
69
+ "class": "form-render__combinationContent"
70
+ }, [createVNode(RecursionField, {
71
+ "schema": createObjSchema(schemaAdaptor(props.getProperties())),
72
+ "name": idx
73
+ }, null), idx === 0 ? null : createVNode("i", {
74
+ "class": "form-render__combinationClose",
75
+ "onClick": () => removeGroup(idx)
76
+ }, ["-"])]))]);
77
+ };
78
+ }
79
+ });
80
+ const COMBINATION = connect(script);
81
+
82
+ export { COMBINATION };
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, computed, watch, createVNode, mergeProps } from 'vue';
2
+ import { generateTimeFormat } from '../../../../../src/utils';
2
3
  import { connect, mapProps } from '@formily/vue';
3
4
  import { isObject } from '@vueuse/core';
4
5
  import { format } from 'date-fns';
@@ -66,9 +67,7 @@ const script = defineComponent({
66
67
  }
67
68
  }
68
69
  const validateConfig = computed(() => {
69
- const result = {
70
- valueFormat: props.valueFormat
71
- };
70
+ const result = {};
72
71
  if (isObject(props.validate)) {
73
72
  const {
74
73
  min_date,
@@ -81,6 +80,15 @@ const script = defineComponent({
81
80
  }
82
81
  return result;
83
82
  });
83
+ const formatConfig = computed(() => {
84
+ return {
85
+ valueFormat: props.valueFormat,
86
+ format: props.valueFormat,
87
+ timePickerProps: {
88
+ format: generateTimeFormat(props.valueFormat)
89
+ }
90
+ };
91
+ });
84
92
  function formatDate(value) {
85
93
  if (!value)
86
94
  return value;
@@ -95,7 +103,7 @@ const script = defineComponent({
95
103
  get: () => formatDate(props.value),
96
104
  set: (value) => emit("update:value", value)
97
105
  });
98
- return () => createVNode(NDatePicker, mergeProps(validateConfig.value, {
106
+ return () => createVNode(NDatePicker, mergeProps(validateConfig.value, formatConfig.value, {
99
107
  "formatted-value": valueRef.value,
100
108
  "onUpdate:formatted-value": ($event) => valueRef.value = $event
101
109
  }), null);
@@ -1,9 +1,10 @@
1
1
  import { defineComponent, inject, computed, createVNode } from 'vue';
2
2
  import { isVoidField } from '@formily/core';
3
- import { connect, mapProps } from '@formily/vue';
3
+ import { useField, connect, mapProps } from '@formily/vue';
4
4
  import { NFormItem } from 'naive-ui';
5
5
  import AnnotationEdit from '../../../../../packages/annotation-edit';
6
- import { InjectionAnnotation } from '../../../../../packages/form-render/src/constants';
6
+ import { InjectionAnnotation, InjectionFormUUID } from '../../../../../packages/form-render/src/constants';
7
+ import { elementIdEscape } from '../../../../../packages/form-render/src/utils';
7
8
 
8
9
  const script = defineComponent({
9
10
  props: {
@@ -38,6 +39,11 @@ const script = defineComponent({
38
39
  return annotation.value && props.annotation !== false;
39
40
  });
40
41
  const showLabel = computed(() => props.label && props.label !== " ");
42
+ const field = useField();
43
+ const uuid = inject(InjectionFormUUID);
44
+ const id = computed(() => {
45
+ return elementIdEscape(`${uuid}-${field.value.path.toString()}`);
46
+ });
41
47
  function renderLabel() {
42
48
  return showLabel.value ? createVNode("section", {
43
49
  "class": "form-render__formItemLabel"
@@ -47,7 +53,9 @@ const script = defineComponent({
47
53
  }]
48
54
  }, [props.label]), showAnnotation.value ? renderAnnotation() : null]) : null;
49
55
  }
50
- return () => createVNode(NFormItem, null, {
56
+ return () => createVNode(NFormItem, {
57
+ id: id.value
58
+ }, {
51
59
  ...slots,
52
60
  label: renderLabel
53
61
  });
@@ -7,6 +7,7 @@ export * from './linebar';
7
7
  export * from './inputGroup';
8
8
  export * from './date';
9
9
  export * from './cascader';
10
+ export * from './jsonCombination';
10
11
  export * from './combination';
11
12
  export * from './checkbox';
12
13
  export * from './switch';
@@ -7,7 +7,8 @@ export { LINEBAR } from './linebar.js';
7
7
  export { INPUT_GROUP } from './inputGroup.js';
8
8
  export { DATE } from './date.js';
9
9
  export { SEARCH_CASCADE } from './cascader.js';
10
- export { COMBINATION } from './combination/index.js';
10
+ export { JSON_COMBINATION } from './jsonCombination/index.js';
11
+ export { COMBINATION } from './combination.js';
11
12
  export { CHECKBOX } from './checkbox.js';
12
13
  export { SWITCH } from './switch.js';
13
14
  export { RADIO } from './radio.js';
@@ -0,0 +1,44 @@
1
+ import { FieldItem } from '../../../../../../../es/packages/form-render';
2
+ import { PropType } from 'vue';
3
+ export declare const JSON_COMBINATION: import("vue").DefineComponent<{
4
+ title: {
5
+ type: StringConstructor;
6
+ default: string;
7
+ };
8
+ value: {
9
+ type: (ArrayConstructor | StringConstructor)[];
10
+ };
11
+ maxGroupNum: {
12
+ type: NumberConstructor;
13
+ };
14
+ getProperties: {
15
+ type: PropType<() => FieldItem[]>;
16
+ default: () => never[];
17
+ };
18
+ onInput: {};
19
+ onBlur: {};
20
+ onChange: {};
21
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
22
+ title: {
23
+ type: StringConstructor;
24
+ default: string;
25
+ };
26
+ value: {
27
+ type: (ArrayConstructor | StringConstructor)[];
28
+ };
29
+ maxGroupNum: {
30
+ type: NumberConstructor;
31
+ };
32
+ getProperties: {
33
+ type: PropType<() => FieldItem[]>;
34
+ default: () => never[];
35
+ };
36
+ onInput: {};
37
+ onBlur: {};
38
+ onChange: {};
39
+ }>> & {
40
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
41
+ }, {
42
+ title: string;
43
+ getProperties: () => FieldItem[];
44
+ }>;
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, ref, computed, watch, onMounted, createVNode, createTextVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
3
  import { Path } from '@formily/path';
4
- import { isNumber, isEqual } from 'lodash-es';
5
- import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/combination/hooks/useDeepValidate';
6
- import { mergeDeepProperties, formRenderLog } from '../../../utils/index.js';
4
+ import { isNumber, isArray, isEqual } from 'lodash-es';
5
+ import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/jsonCombination/hooks/useDeepValidate';
6
+ import { formRenderLog, mergeDeepProperties } from '../../../utils/index.js';
7
7
  import { connect, mapProps } from '@formily/vue';
8
8
  import { useDebounceFn, isObject } from '@vueuse/core';
9
9
  import { NButton } from 'naive-ui';
@@ -11,14 +11,14 @@ import FormRender from '../../../FormRender.js';
11
11
  import { assignUpdateValue } from '../../../utils/schema.js';
12
12
 
13
13
  const script = defineComponent({
14
- name: "FormCombination",
14
+ name: "FormJsonCombination",
15
15
  props: {
16
16
  title: {
17
17
  type: String,
18
18
  default: ""
19
19
  },
20
20
  value: {
21
- type: String
21
+ type: [String, Array]
22
22
  },
23
23
  maxGroupNum: {
24
24
  type: Number
@@ -35,12 +35,18 @@ const script = defineComponent({
35
35
  setup(props, {
36
36
  emit
37
37
  }) {
38
+ formRenderLog("\u5F53\u524DCOMBINATION\u63A7\u4EF6\u4E3Ajson\u6A21\u5F0F,\u63A8\u8350\u4F7F\u7528\u975Ejson\u6A21\u5F0F,FieldItem.jsonCombination=false", "warn");
38
39
  const emitChange = useDebounceFn(function emitChange2() {
39
40
  emit("update:value", JSON.stringify(combinationData.value));
40
41
  }, 300);
41
42
  const combinationData = ref([]);
42
43
  const currentGroupNum = computed(() => combinationData.value.length);
43
44
  function setCombinationData(data, withInitialData = false) {
45
+ if (isArray(data)) {
46
+ if (!data.length)
47
+ data.push({});
48
+ data = JSON.stringify(data);
49
+ }
44
50
  const parsedData = getParsedData(data);
45
51
  if (!needLoad(parsedData))
46
52
  return;
@@ -66,7 +72,6 @@ const script = defineComponent({
66
72
  return null;
67
73
  return result;
68
74
  } catch (e) {
69
- formRenderLog(`invalid JSON value ${data2} in COMBINATION => ${props.title}`, "warn");
70
75
  return null;
71
76
  }
72
77
  }
@@ -141,7 +146,7 @@ const script = defineComponent({
141
146
  })]), Array.from({
142
147
  length: currentGroupNum.value
143
148
  }).map((_, idx) => createVNode("section", {
144
- "class": "form-render__combinationContent"
149
+ "class": "form-render__combinationContentJson"
145
150
  }, [createVNode(FormRenderComponent, {
146
151
  "ref": (_ref) => setFormRenderRef(idx, _ref),
147
152
  "fieldList": props.getProperties(),
@@ -153,6 +158,6 @@ const script = defineComponent({
153
158
  };
154
159
  }
155
160
  });
156
- const COMBINATION = connect(script, mapProps(assignUpdateValue));
161
+ const JSON_COMBINATION = connect(script, mapProps(assignUpdateValue));
157
162
 
158
- export { COMBINATION };
163
+ export { JSON_COMBINATION };
@@ -9,6 +9,5 @@ export * from './useFormValidator';
9
9
  export * from './useBusinessBinding';
10
10
  export * from './useChangeContext';
11
11
  export * from './useFormItemDeps';
12
- export * from './useInitialData';
13
12
  export * from './useAnchor';
14
13
  export * from './useFormContext';
@@ -9,6 +9,5 @@ export { useFormValidator } from './useFormValidator.js';
9
9
  export { BusinessCollector, useBusinessBinding } from './useBusinessBinding.js';
10
10
  export { ContextCollector, useChangeContext } from './useChangeContext.js';
11
11
  export { FormItemDepsCollector, useFormItemDeps } from './useFormItemDeps.js';
12
- export { useInitialData } from './useInitialData.js';
13
12
  export { useAnchor } from './useAnchor.js';
14
13
  export { useFormContext } from './useFormContext.js';
@@ -3,7 +3,7 @@ import { FieldItem } from '../types';
3
3
  /**
4
4
  * @description 胶水层, 将低代码平台中的fieldList转换为JSONSchema
5
5
  */
6
- export declare function useFieldListAdaptor(collector: BusinessCollector, uuid: string): {
6
+ export declare function useFieldListAdaptor(collector: BusinessCollector): {
7
7
  schemaAdaptor: (fieldList: FieldItem[]) => Record<string, import("@formily/json-schema/esm/types").Stringify<{
8
8
  [key: symbol]: any;
9
9
  [key: `x-${string}`]: any;
@@ -2,10 +2,10 @@ import { isObject } from '@vueuse/core';
2
2
  import { pick } from 'lodash-es';
3
3
  import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
4
4
  import { arrayed, parseNumberFromMaybeString, formRenderLog } from '../utils/index.js';
5
- import { fieldKeyEscape, createLinebarId, elementIdEscape } from '../utils/schema.js';
5
+ import { fieldKeyEscape, createLinebarId } from '../utils/schema.js';
6
6
  import { transformDateFormat } from '../utils/business.js';
7
7
 
8
- function useFieldListAdaptor(collector, uuid) {
8
+ function useFieldListAdaptor(collector) {
9
9
  const { createValidatorSchema } = useFormValidator();
10
10
  const createStandardSchema = (item) => {
11
11
  var _a;
@@ -14,6 +14,7 @@ function useFieldListAdaptor(collector, uuid) {
14
14
  type: (_a = item.fieldType) != null ? _a : "string",
15
15
  title: item.alias || item.name,
16
16
  "x-component": item.html_type,
17
+ default: item.default_val,
17
18
  "x-component-props": {
18
19
  placeholder: item.placeholder,
19
20
  clearable: item.is_empty === "0",
@@ -38,7 +39,6 @@ function useFieldListAdaptor(collector, uuid) {
38
39
  showLabel: item.hide_title !== "1",
39
40
  propertyKey: item.val_key,
40
41
  annotation: item.annotation,
41
- id: elementIdEscape(`${uuid}-${item.val_key}`),
42
42
  ...item.decoratorProps || {}
43
43
  }
44
44
  });
@@ -102,6 +102,10 @@ function useFieldListAdaptor(collector, uuid) {
102
102
  };
103
103
  const createCombinationSchema = (item) => {
104
104
  const schema = createStandardSchema(item);
105
+ schema.type = "array";
106
+ if (item.jsonCombination !== false) {
107
+ schema["x-component"] = "JSON_COMBINATION";
108
+ }
105
109
  Object.assign(schema["x-decorator-props"], {
106
110
  showLabel: false,
107
111
  showFeedback: false
@@ -171,6 +171,10 @@ export declare type FieldItem = {
171
171
  * COMBINATION控件最大表单组数量
172
172
  */
173
173
  maxGroupNum: number;
174
+ /**
175
+ * COMBINATION json format
176
+ */
177
+ jsonCombination: boolean;
174
178
  /**
175
179
  * COMBINATION控件子项
176
180
  */
@@ -43,7 +43,7 @@ export declare type FormChangePayload = {
43
43
  fieldKey: string;
44
44
  fieldName: string;
45
45
  fieldInstance: DataField;
46
- context: FormChangeContext;
46
+ context?: FormChangeContext;
47
47
  };
48
48
  export declare type DependKeyType = string | Record<string, string> | Array<{
49
49
  paramName: string;
@@ -1,9 +1,10 @@
1
1
  import { inject, provide, computed, createVNode, Fragment } from 'vue';
2
+ import { Path } from '@formily/path';
2
3
  import { isObject } from '@vue/shared';
3
4
  import { isNumber, isString, isFunction } from 'lodash-es';
4
5
  export { isIdCard, isMobile, parseAge2Birthday, parseAge2FromContext, parseBirthday, parseIdCard, transformDateFormat } from './business.js';
5
6
  export { queryDecorator, queryInput } from './dom.js';
6
- export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
7
+ export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
7
8
 
8
9
  function formRenderLog(message, type = "log") {
9
10
  console[type](`[FormRender]: ${message}`);
@@ -19,7 +20,7 @@ function mergeDeepProperties(target, fieldList, traverseProperties = ["children"
19
20
  if (!isObject(field))
20
21
  return;
21
22
  if (targetPropertyFor(field) != null && _target[propertyFor(field)] == null) {
22
- _target[propertyFor(field)] = targetPropertyFor(field);
23
+ Path.setIn(_target, propertyFor(field), targetPropertyFor(field));
23
24
  }
24
25
  traverseProperties.forEach((p) => {
25
26
  if (!field[p])
@@ -14,3 +14,63 @@ export declare function assignUpdateValue(props: AnyObject, field: GeneralField)
14
14
  [x: string]: any;
15
15
  };
16
16
  export declare function traverseFieldList(fieldList: FieldItem[], handler: (field: FieldItem) => void): void;
17
+ export declare function createObjSchema(properties: Record<string, ISchema>): {
18
+ type: string;
19
+ properties: Record<string, import("@formily/json-schema/esm/types").Stringify<{
20
+ [key: symbol]: any;
21
+ [key: `x-${string}`]: any;
22
+ [key: `x-${number}`]: any;
23
+ version?: string | undefined;
24
+ name?: import("@formily/json-schema/esm/types").SchemaKey | undefined;
25
+ title?: any;
26
+ description?: any;
27
+ default?: any;
28
+ readOnly?: boolean | undefined;
29
+ writeOnly?: boolean | undefined;
30
+ type?: import("@formily/json-schema/esm/types").SchemaTypes | undefined;
31
+ enum?: import("@formily/json-schema/esm/types").SchemaEnum<any> | undefined;
32
+ const?: any;
33
+ multipleOf?: number | undefined;
34
+ maximum?: number | undefined;
35
+ exclusiveMaximum?: number | undefined;
36
+ minimum?: number | undefined;
37
+ exclusiveMinimum?: number | undefined;
38
+ maxLength?: number | undefined;
39
+ minLength?: number | undefined;
40
+ pattern?: string | RegExp | undefined;
41
+ maxItems?: number | undefined;
42
+ minItems?: number | undefined;
43
+ uniqueItems?: boolean | undefined;
44
+ maxProperties?: number | undefined;
45
+ minProperties?: number | undefined;
46
+ required?: string | boolean | string[] | undefined;
47
+ format?: string | undefined;
48
+ $ref?: string | undefined;
49
+ $namespace?: string | undefined;
50
+ definitions?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
51
+ properties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
52
+ items?: import("@formily/json-schema/esm/types").SchemaItems<any, any, any, any, any, any, any, any> | undefined;
53
+ additionalItems?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
54
+ patternProperties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
55
+ additionalProperties?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
56
+ "x-value"?: any;
57
+ "x-index"?: number | undefined;
58
+ "x-pattern"?: any;
59
+ "x-display"?: any;
60
+ "x-validator"?: any;
61
+ "x-decorator"?: any;
62
+ "x-decorator-props"?: any;
63
+ "x-component"?: any;
64
+ "x-component-props"?: any;
65
+ "x-reactions"?: import("@formily/json-schema/esm/types").SchemaReactions<any> | undefined;
66
+ "x-content"?: any;
67
+ "x-data"?: any;
68
+ "x-visible"?: boolean | undefined;
69
+ "x-hidden"?: boolean | undefined;
70
+ "x-disabled"?: boolean | undefined;
71
+ "x-editable"?: boolean | undefined;
72
+ "x-read-only"?: boolean | undefined;
73
+ "x-read-pretty"?: boolean | undefined;
74
+ "x-compile-omitted"?: string[] | undefined;
75
+ }>>;
76
+ };
@@ -14,7 +14,7 @@ function fieldKeyEscape(fieldList) {
14
14
  return fieldList.map((f) => f.val_key).join("-").replace(/[.]/g, "_");
15
15
  }
16
16
  function elementIdEscape(id) {
17
- return id.replace(".", "-");
17
+ return id.replace(/[.]/g, "-");
18
18
  }
19
19
  function createLinebarId(id) {
20
20
  return elementIdEscape(`id-${id}`);
@@ -90,5 +90,8 @@ function traverseFieldList(fieldList, handler) {
90
90
  }
91
91
  traverse(fieldList);
92
92
  }
93
+ function createObjSchema(properties) {
94
+ return { type: "object", properties };
95
+ }
93
96
 
94
- export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
97
+ export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
@@ -125,8 +125,15 @@
125
125
  vertical-align: middle;
126
126
  font-size: 16px;
127
127
  }
128
+ .form-render__combinationContentJson {
129
+ position: relative;
130
+ }
128
131
  .form-render__combinationContent {
129
132
  position: relative;
133
+ display: grid !important;
134
+ grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
135
+ align-items: start;
136
+ gap: 0 16px;
130
137
  }
131
138
  .form-render__complex {
132
139
  width: 100%;
@@ -2946,8 +2946,15 @@ body > .vxe-table--tooltip-wrapper {
2946
2946
  vertical-align: middle;
2947
2947
  font-size: 16px;
2948
2948
  }
2949
+ .form-render__combinationContentJson {
2950
+ position: relative;
2951
+ }
2949
2952
  .form-render__combinationContent {
2950
2953
  position: relative;
2954
+ display: grid !important;
2955
+ grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
2956
+ align-items: start;
2957
+ gap: 0 16px;
2951
2958
  }
2952
2959
  .form-render__complex {
2953
2960
  width: 100%;
@@ -51,7 +51,6 @@ export { useFormValidator } from './form-render/src/hooks/useFormValidator.js';
51
51
  export { BusinessCollector, useBusinessBinding } from './form-render/src/hooks/useBusinessBinding.js';
52
52
  export { ContextCollector, useChangeContext } from './form-render/src/hooks/useChangeContext.js';
53
53
  export { FormItemDepsCollector, useFormItemDeps } from './form-render/src/hooks/useFormItemDeps.js';
54
- export { useInitialData } from './form-render/src/hooks/useInitialData.js';
55
54
  export { useAnchor } from './form-render/src/hooks/useAnchor.js';
56
55
  export { useFormContext } from './form-render/src/hooks/useFormContext.js';
57
56
  export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
@@ -88,6 +88,7 @@ class ShortcutManager {
88
88
  const callback = this.shortcutCallbackMap.get(keySignature);
89
89
  if (!callback)
90
90
  return;
91
+ event.preventDefault();
91
92
  const shortcutItem = Object.values(this.shortcutCache.value).find((item) => item.currentKeySignature === keySignature);
92
93
  if (!shortcutItem || shortcutItem.status !== ShortcutStatus.ACTIVE || shortcutItem.disabled)
93
94
  return;
@@ -122,6 +122,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
122
122
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
123
123
  lazyRequest?: boolean | undefined;
124
124
  maxGroupNum?: number | undefined;
125
+ jsonCombination?: boolean | undefined;
125
126
  children?: any[] | undefined;
126
127
  properties?: any[] | undefined;
127
128
  componentProps?: import("../../../es/src/types").AnyObject | undefined;
@@ -1931,7 +1932,9 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
1931
1932
  }>>;
1932
1933
  emit: (event: "formChange", ...args: any[]) => void;
1933
1934
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
1934
- formModel: import("@formily/core").Form<any>;
1935
+ formModel: import("@formily/core").Form<{
1936
+ [x: string]: any;
1937
+ }>;
1935
1938
  SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
1936
1939
  businessCollector: import("..").BusinessCollector;
1937
1940
  formItemDepsCollector: import("..").FormItemDepsCollector;
@@ -124,6 +124,7 @@ declare const _default: import("vue").DefineComponent<{
124
124
  content?: string | import("../../../../es/packages/form-render").FormRenderer | Record<string, import("../../../../es/packages/form-render").FormRenderer> | undefined;
125
125
  lazyRequest?: boolean | undefined;
126
126
  maxGroupNum?: number | undefined;
127
+ jsonCombination?: boolean | undefined;
127
128
  children?: any[] | undefined;
128
129
  properties?: any[] | undefined;
129
130
  componentProps?: import("../../../../es/src/types").AnyObject | undefined;
@@ -1933,7 +1934,9 @@ declare const _default: import("vue").DefineComponent<{
1933
1934
  }>>;
1934
1935
  emit: (event: "formChange", ...args: any[]) => void;
1935
1936
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
1936
- formModel: import("@formily/core").Form<any>;
1937
+ formModel: import("@formily/core").Form<{
1938
+ [x: string]: any;
1939
+ }>;
1937
1940
  SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
1938
1941
  businessCollector: import("../../../../es/packages/form-render").BusinessCollector;
1939
1942
  formItemDepsCollector: import("../../../../es/packages/form-render").FormItemDepsCollector;
@@ -1,2 +1,3 @@
1
1
  import { App, Component } from 'vue';
2
2
  export declare function safeComponentRegister(app: App, component: Component, cName?: string | undefined, scheduler?: () => void): void;
3
+ export declare function generateTimeFormat(format: string): string | undefined;
@@ -1,3 +1,5 @@
1
+ import { isString } from 'lodash-es';
2
+
1
3
  function safeComponentRegister(app, component, cName = component.name, scheduler) {
2
4
  if (!cName)
3
5
  throw new Error(`[CUI]: invalid component name for ${component}`);
@@ -11,5 +13,13 @@ function safeComponentRegister(app, component, cName = component.name, scheduler
11
13
  app.component(cName, component);
12
14
  }
13
15
  }
16
+ function generateTimeFormat(format) {
17
+ if (!isString(format))
18
+ return;
19
+ const matched = format.match(/[Hms:]+/);
20
+ if (!matched)
21
+ return;
22
+ return matched[0];
23
+ }
14
24
 
15
- export { safeComponentRegister };
25
+ export { generateTimeFormat, safeComponentRegister };
package/global.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import * as NaiveUI from 'naive-ui';
2
-
3
- declare module 'naive-ui' {
4
- // @ts-ignore
5
- export const NTree: any;
6
- }
7
-
8
- export {};
1
+ import * as NaiveUI from 'naive-ui';
2
+
3
+ declare module 'naive-ui' {
4
+ // @ts-ignore
5
+ export const NTree: any;
6
+ }
7
+
8
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
3
  "private": false,
4
- "version": "3.1.16-beta.12",
4
+ "version": "3.1.16-beta.15",
5
5
  "license": "ISC",
6
6
  "module": "es/packages/index.js",
7
7
  "main": "es/packages/index.js",
@@ -31,9 +31,9 @@
31
31
  "vue": "^3.2.0"
32
32
  },
33
33
  "dependencies": {
34
- "@formily/core": "^2.1.9",
35
- "@formily/path": "^2.1.9",
36
- "@formily/vue": "^2.1.9",
34
+ "@formily/core": "2.1.9",
35
+ "@formily/path": "2.1.9",
36
+ "@formily/vue": "2.1.9",
37
37
  "@highlightjs/vue-plugin": "^2.1.0",
38
38
  "@vicons/ionicons5": "^0.12.0",
39
39
  "@vueuse/core": "^8.6.0",
@@ -1,5 +0,0 @@
1
- import { AnyObject } from '../../../../../es/src/types';
2
- import { FieldItem } from '../types';
3
- export declare function useInitialData(): {
4
- assignInitialData: (initialData?: AnyObject, fieldList?: FieldItem[]) => any;
5
- };
@@ -1,16 +0,0 @@
1
- import { Path } from '@formily/path';
2
- import { mergeWith } from 'lodash-es';
3
- import { traverseFieldList } from '../../../../packages/form-render/src/utils';
4
-
5
- function useInitialData() {
6
- function assignInitialData(initialData, fieldList) {
7
- const defaultVal = {};
8
- fieldList && traverseFieldList(fieldList, (field) => {
9
- field.default_val != void 0 && Path.setIn(defaultVal, field.val_key, field.default_val);
10
- });
11
- return mergeWith({}, initialData, defaultVal);
12
- }
13
- return { assignInitialData };
14
- }
15
-
16
- export { useInitialData };