cnhis-design-vue 3.1.33-beta.1 → 3.1.33-beta.2

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.
@@ -146,6 +146,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
146
146
  }
147
147
  }
148
148
  expose({
149
+ formModel,
149
150
  validate(path = "*") {
150
151
  return formModel.validate(path).catch((err) => {
151
152
  return Promise.reject(Array.isArray(err) ? err.reduce(errInfoNormalize, []) : err);
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, openBlock, createBlock, nextTick } from 'vue';
1
+ import { defineComponent, ref, computed, openBlock, createBlock, nextTick } from 'vue';
2
2
  import FormRender from './FormRender.vue.js';
3
3
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
4
4
 
@@ -29,6 +29,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
29
  }, {});
30
30
  expose({
31
31
  ...exposed,
32
+ formModel: computed(() => {
33
+ var _a;
34
+ return (_a = formRenderRef.value) == null ? void 0 : _a.formModel;
35
+ }),
32
36
  reload
33
37
  });
34
38
  return (_ctx, _cache) => {
@@ -4,8 +4,9 @@ import { isNumber } from 'lodash-es';
4
4
  import { NRadioGroup, NSpace, NRadio } from 'naive-ui';
5
5
  import '../../../index.js';
6
6
  import '../../utils/index.js';
7
+ import { useFormField } from '../../hooks/useFormField.js';
7
8
  import { useAutographOptions } from '../../hooks/useFormRenderOptions.js';
8
- import { assignUpdateValue } from '../../utils/schema.js';
9
+ import { visitedDecorator, assignUpdateValue } from '../../utils/schema.js';
9
10
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
10
11
 
11
12
  function _isSlot(s) {
@@ -57,21 +58,27 @@ const script = defineComponent({
57
58
  emit("update:value", v);
58
59
  }
59
60
  });
61
+ const {
62
+ field
63
+ } = useFormField();
60
64
  const {
61
65
  labelKey,
62
66
  valueKey,
63
67
  options
64
68
  } = useAutographOptions(props, valueRef);
65
69
  const {
66
- injectValueBindKey
70
+ injectValueBindKey,
71
+ injectValueValidate
67
72
  } = useCommonInjection();
73
+ injectValueValidate(valueRef);
68
74
  const key = injectValueBindKey(valueRef);
69
75
  return () => {
70
76
  let _slot;
71
77
  return createVNode(NRadioGroup, {
72
78
  "key": key.value,
73
79
  "value": valueRef.value,
74
- "onUpdate:value": ($event) => valueRef.value = $event
80
+ "onUpdate:value": ($event) => valueRef.value = $event,
81
+ "onClick": visitedDecorator(field)
75
82
  }, {
76
83
  default: () => [createVNode(NSpace, {
77
84
  "vertical": props.vertical
@@ -1,5 +1,5 @@
1
1
  import { AnyObject, UndefinedAble } from '../../../../../es/shared/types';
2
- import { DataField, Field } from '@formily/core';
2
+ import { DataField, Field, Form } from '@formily/core';
3
3
  import { ISchema } from '@formily/json-schema/esm/types';
4
4
  import { Component, FunctionalComponent } from 'vue';
5
5
  import { FIELD_BUSINESS_TYPE } from '../../../../../es/components/form-render/src/constants';
@@ -26,6 +26,7 @@ export declare type FormAsyncQueue = AsyncQueue<FormAsyncQueueItem, any, AnyObje
26
26
  export declare type AgeContext = Record<'age' | 'day' | 'month' | 'year' | 'hours', number>;
27
27
  export declare type IdCardParseInfo = Record<'sex' | 'birthday', string> & AgeContext;
28
28
  export declare type FormRenderExpose = {
29
+ formModel: Form;
29
30
  validate(path?: string): Promise<unknown>;
30
31
  getFormValues(needCombineExtendKey?: boolean): AnyObject;
31
32
  setFormValues(values: AnyObject, needSplitExtendKey?: boolean): AnyObject;
@@ -2,7 +2,7 @@ import { createVNode, mergeProps } from 'vue';
2
2
  import { NInput } from 'naive-ui';
3
3
  import '../../../../index.js';
4
4
  import { EDITABLE_WIDGET_TYPE } from '../../../constants/index.js';
5
- import { useIhoTableFormEvent } from '../../../utils/index.js';
5
+ import { IhoTableRenderHelper } from '../../../utils/index.js';
6
6
  import { defineTablePlugin } from '../../../hooks/useTablePlugin.js';
7
7
 
8
8
  function inputRendererPlugin() {
@@ -11,34 +11,21 @@ function inputRendererPlugin() {
11
11
  name: pluginName,
12
12
  vxe(instance) {
13
13
  instance.renderer.add(EDITABLE_WIDGET_TYPE.INPUT, {
14
- renderCell(renderOpts, {
15
- row,
16
- column
17
- }) {
18
- return [createVNode("span", null, [row[column.field]])];
19
- },
20
- renderEdit({
21
- props
22
- }, {
14
+ renderCell: IhoTableRenderHelper.createDefaultRenderCell(),
15
+ renderEdit: IhoTableRenderHelper.createRenderEdit(({
16
+ fieldItem,
23
17
  row,
24
18
  column,
25
- $rowIndex
26
- }) {
27
- const {
28
- emitFormClick,
29
- emitFormChange
30
- } = useIhoTableFormEvent({
31
- row,
32
- column,
33
- $rowIndex
34
- });
19
+ emitFormChange,
20
+ emitFormClick
21
+ }) => {
35
22
  return [createVNode(NInput, mergeProps({
36
23
  "value": row[column.field],
37
24
  "onUpdate:value": ($event) => row[column.field] = $event,
38
25
  "onBlur": emitFormChange,
39
26
  "onClick": emitFormClick
40
- }, props == null ? void 0 : props.componentProps), null)];
41
- }
27
+ }, fieldItem.componentProps), null)];
28
+ })
42
29
  });
43
30
  }
44
31
  });
@@ -2,7 +2,7 @@ import { createVNode, mergeProps } from 'vue';
2
2
  import { NInputNumber } from 'naive-ui';
3
3
  import '../../../../index.js';
4
4
  import { EDITABLE_WIDGET_TYPE } from '../../../constants/index.js';
5
- import { useIhoTableFormEvent } from '../../../utils/index.js';
5
+ import { IhoTableRenderHelper } from '../../../utils/index.js';
6
6
  import { defineTablePlugin } from '../../../hooks/useTablePlugin.js';
7
7
 
8
8
  function numberRendererPlugin() {
@@ -11,33 +11,20 @@ function numberRendererPlugin() {
11
11
  name: pluginName,
12
12
  vxe(instance) {
13
13
  instance.renderer.add(EDITABLE_WIDGET_TYPE.NUMBER, {
14
- renderCell(renderOpts, {
15
- row,
16
- column
17
- }) {
18
- return [createVNode("span", null, [row[column.field]])];
19
- },
20
- renderEdit({
21
- props
22
- }, {
14
+ renderCell: IhoTableRenderHelper.createDefaultRenderCell(),
15
+ renderEdit: IhoTableRenderHelper.createRenderEdit(({
23
16
  row,
24
17
  column,
25
- $rowIndex
26
- }) {
27
- const {
28
- emitFormClick,
29
- emitFormChange,
30
- createCustomEvent
31
- } = useIhoTableFormEvent({
32
- row,
33
- column,
34
- $rowIndex
35
- });
18
+ fieldItem,
19
+ emitFormClick,
20
+ emitFormChange,
21
+ createCustomEvent
22
+ }) => {
36
23
  const {
37
24
  placeholder = "\u8BF7\u8F93\u5165"
38
- } = (props == null ? void 0 : props.componentProps) || {};
25
+ } = fieldItem.componentProps || {};
39
26
  const config = {
40
- ...(props == null ? void 0 : props.componentProps) || {},
27
+ ...fieldItem.componentProps || {},
41
28
  clearable: true,
42
29
  placeholder,
43
30
  onBlur: createCustomEvent("formChange", {
@@ -50,7 +37,7 @@ function numberRendererPlugin() {
50
37
  "value": row[column.field],
51
38
  "onUpdate:value": ($event) => row[column.field] = $event
52
39
  }, config), null)];
53
- }
40
+ })
54
41
  });
55
42
  }
56
43
  });
@@ -3,7 +3,7 @@ import { traverse } from '../../../../../../../shared/utils/index.js';
3
3
  import { isFunction, isObject } from 'lodash-es';
4
4
  import '../../../../../index.js';
5
5
  import { EDITABLE_WIDGET_TYPE, InjectionIhoTableUUID } from '../../../../constants/index.js';
6
- import { getRowHeight, useIhoTableFormEvent, getColumnRenderWidth } from '../../../../utils/index.js';
6
+ import { IhoTableRenderHelper, getRowHeight, getColumnRenderWidth } from '../../../../utils/index.js';
7
7
  import { isSeparateColumn, contentSeparate, getColumnInfoMaxLength, generateSeparateRowData } from './separateUtils.js';
8
8
  import EditSeparate from './editSeparate.vue.js';
9
9
  import { defineTablePlugin } from '../../../../hooks/useTablePlugin.js';
@@ -35,27 +35,21 @@ function separateRendererPlugins() {
35
35
  };
36
36
  return createVNode("section", null, [separateRow.separateData[column.field]]);
37
37
  },
38
- renderEdit(renderOpts, {
38
+ renderEdit: IhoTableRenderHelper.createRenderEdit(({
39
+ fieldItem,
39
40
  column,
40
41
  row,
41
- $rowIndex
42
- }) {
43
- var _a, _b;
42
+ emitFormClick
43
+ }) => {
44
+ var _a;
44
45
  const uuid = inject(InjectionIhoTableUUID);
45
46
  const separateRow = getSeparateRowData(uuid, row);
46
47
  const height = getRowHeight();
47
48
  const slots = {};
48
- if ((_a = renderOpts.props) == null ? void 0 : _a.separateSlot) {
49
- const separate = toRaw(renderOpts.props.separateSlot);
49
+ if (fieldItem.separateSlot) {
50
+ const separate = toRaw(fieldItem.separateSlot);
50
51
  slots.menu = isFunction(separate) ? separate : isObject(separate) ? (props) => h(separate, props) : void 0;
51
52
  }
52
- const {
53
- emitFormClick
54
- } = useIhoTableFormEvent({
55
- row,
56
- column,
57
- $rowIndex
58
- });
59
53
  return [createVNode(EditSeparate, {
60
54
  "value": row[column.field],
61
55
  "onUpdate:value": ($event) => row[column.field] = $event,
@@ -63,10 +57,10 @@ function separateRendererPlugins() {
63
57
  "height": height,
64
58
  "column": column,
65
59
  "row": row,
66
- "displayContent": (_b = separateRow == null ? void 0 : separateRow.separateData) == null ? void 0 : _b[column.field],
60
+ "displayContent": (_a = separateRow == null ? void 0 : separateRow.separateData) == null ? void 0 : _a[column.field],
67
61
  "onClick": emitFormClick
68
62
  }, slots)];
69
- }
63
+ })
70
64
  });
71
65
  },
72
66
  apply(hooks) {
@@ -2,7 +2,7 @@ import { createVNode, mergeProps } from 'vue';
2
2
  import '../../../../index.js';
3
3
  import { EDITABLE_WIDGET_TYPE } from '../../../constants/index.js';
4
4
  import { NTimePicker } from 'naive-ui';
5
- import { useIhoTableFormEvent } from '../../../utils/index.js';
5
+ import { IhoTableRenderHelper } from '../../../utils/index.js';
6
6
  import { defineTablePlugin } from '../../../hooks/useTablePlugin.js';
7
7
 
8
8
  function timeRendererPlugin() {
@@ -11,33 +11,20 @@ function timeRendererPlugin() {
11
11
  name: pluginName,
12
12
  vxe(instance) {
13
13
  instance.renderer.add(EDITABLE_WIDGET_TYPE.TIME, {
14
- renderCell(renderOpts, {
15
- row,
16
- column
17
- }) {
18
- return [createVNode("span", null, [row[column.field]])];
19
- },
20
- renderEdit({
21
- props
22
- }, {
14
+ renderCell: IhoTableRenderHelper.createDefaultRenderCell(),
15
+ renderEdit: IhoTableRenderHelper.createRenderEdit(({
16
+ fieldItem,
23
17
  row,
24
18
  column,
25
- $rowIndex
26
- }) {
27
- const {
28
- emitFormClick,
29
- emitFormChange
30
- } = useIhoTableFormEvent({
31
- row,
32
- column,
33
- $rowIndex
34
- });
19
+ emitFormChange,
20
+ emitFormClick
21
+ }) => {
35
22
  const {
36
23
  placeholder = "\u8BF7\u9009\u62E9",
37
24
  valueFormat = "HH:mm"
38
- } = (props == null ? void 0 : props.componentProps) || {};
25
+ } = fieldItem.componentProps || {};
39
26
  const config = {
40
- ...(props == null ? void 0 : props.componentProps) || {},
27
+ ...fieldItem.componentProps || {},
41
28
  placeholder,
42
29
  valueFormat,
43
30
  format: valueFormat || "yyyy-MM-dd HH:mm:ss",
@@ -48,7 +35,7 @@ function timeRendererPlugin() {
48
35
  "formattedValue": row[column.field],
49
36
  "onUpdate:formattedValue": ($event) => row[column.field] = $event
50
37
  }, config), null)];
51
- }
38
+ })
52
39
  });
53
40
  }
54
41
  });
@@ -1,6 +1,7 @@
1
1
  import { AnyObject, Nullable } from '../../../../../es/shared/types';
2
2
  import { MaybeRef } from '@vueuse/core';
3
3
  import { VxeTableDefines, VxeTableInstance } from 'vxe-table';
4
+ import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
4
5
  import { EventListenerToEventName, IhoTableFieldItem, IhoTableFormChangePayload, LowCodeTableFieldItem } from '../../../../../es/components/iho-table';
5
6
  export declare function IhoTableLog(message: string): void;
6
7
  export declare function IhoTableWarn(message: string): void;
@@ -24,3 +25,12 @@ export declare function useIhoTableFormEvent({ row, column, $rowIndex }: {
24
25
  createCustomEvent: (eventName: 'formChange' | 'formClick', params: Partial<IhoTableFormChangePayload>) => () => void;
25
26
  };
26
27
  export declare function getLowCodeFieldFromField(field: IhoTableFieldItem): LowCodeTableFieldItem | undefined;
28
+ declare function createDefaultRenderCell(): ((renderOpts: import("vxe-table").VxeColumnPropTypes.EditRender, params: VxeGlobalRendererHandles.RenderCellParams) => VxeGlobalRendererHandles.RenderResult) | undefined;
29
+ declare function createRenderEdit(renderer: (payload: VxeGlobalRendererHandles.RenderEditParams & {
30
+ fieldItem: Partial<LowCodeTableFieldItem>;
31
+ } & ReturnType<typeof useIhoTableFormEvent>) => VxeGlobalRendererHandles.RenderResult): ((renderOpts: import("vxe-table").VxeColumnPropTypes.EditRender, params: VxeGlobalRendererHandles.RenderEditParams) => VxeGlobalRendererHandles.RenderResult) | undefined;
32
+ export declare const IhoTableRenderHelper: Readonly<{
33
+ createDefaultRenderCell: typeof createDefaultRenderCell;
34
+ createRenderEdit: typeof createRenderEdit;
35
+ }>;
36
+ export {};
@@ -1,10 +1,7 @@
1
+ import { inject, reactive, nextTick, unref, createVNode } from 'vue';
1
2
  import { isNumber } from 'lodash-es';
2
- import { inject, reactive, nextTick, unref } from 'vue';
3
3
  import { InjectionIhoTableConfig, InjectionIhoTableEmits } from '../constants/index.js';
4
4
 
5
- function IhoTableLog(message) {
6
- return console.log(`[IhoTable]: ${message}`);
7
- }
8
5
  function IhoTableWarn(message) {
9
6
  return console.warn(`[IhoTable]: ${message}`);
10
7
  }
@@ -75,14 +72,44 @@ function useIhoTableFormEvent({
75
72
  }
76
73
  function createCustomEvent(eventName, params) {
77
74
  return function() {
78
- emit(eventName, { ...getPayload(), ...params });
75
+ emit(eventName, {
76
+ ...getPayload(),
77
+ ...params
78
+ });
79
79
  };
80
80
  }
81
- return { emitFormChange, emitFormClick, createCustomEvent };
81
+ return {
82
+ emitFormChange,
83
+ emitFormClick,
84
+ createCustomEvent
85
+ };
82
86
  }
83
87
  function getLowCodeFieldFromField(field) {
84
88
  var _a;
85
89
  return (_a = field.editRender) == null ? void 0 : _a.props;
86
90
  }
91
+ function createDefaultRenderCell() {
92
+ return function(_, {
93
+ row,
94
+ column
95
+ }) {
96
+ return [createVNode("span", null, [row[column.field]])];
97
+ };
98
+ }
99
+ function createRenderEdit(renderer) {
100
+ return function({
101
+ props
102
+ }, params) {
103
+ return renderer({
104
+ ...params,
105
+ fieldItem: props || {},
106
+ ...useIhoTableFormEvent(params)
107
+ });
108
+ };
109
+ }
110
+ const IhoTableRenderHelper = Object.freeze({
111
+ createDefaultRenderCell,
112
+ createRenderEdit
113
+ });
87
114
 
88
- export { IhoTableLog, IhoTableUtils, IhoTableWarn, getColumnRenderWidth, getEventName, getLowCodeFieldFromField, getRowHeight, useIhoTableFormEvent, useUUIDMap };
115
+ export { IhoTableRenderHelper, IhoTableUtils, IhoTableWarn, getColumnRenderWidth, getEventName, getLowCodeFieldFromField, getRowHeight, useIhoTableFormEvent, useUUIDMap };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.1.33-beta.1",
3
+ "version": "3.1.33-beta.2",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -61,5 +61,5 @@
61
61
  "iOS 7",
62
62
  "last 3 iOS versions"
63
63
  ],
64
- "gitHead": "6be8d9cdbe579183d3a3b9cee244b44014659614"
64
+ "gitHead": "8e59a93c0bf13df41c02d88572afaafd4cc79d83"
65
65
  }