cnhis-design-vue 3.1.34-beta.8 → 3.1.34

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 (88) hide show
  1. package/README.md +123 -123
  2. package/es/components/big-table/index.d.ts +1 -41
  3. package/es/components/big-table/src/BigTable.vue.d.ts +10 -44
  4. package/es/components/big-table/src/BigTable.vue2.js +12 -557
  5. package/es/components/big-table/src/components/edit-form/edit-select.js +26 -19
  6. package/es/components/big-table/src/components/edit-form/useCommon.d.ts +1 -1
  7. package/es/components/big-table/src/hooks/useEvent.js +20 -2
  8. package/es/components/big-table/src/hooks/useFormat.js +1 -1
  9. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  10. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  11. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  12. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  13. package/es/components/fabric-chart/src/hooks/useCenter.js +132 -58
  14. package/es/components/fabric-chart/src/hooks/useLeft.js +8 -5
  15. package/es/components/fabric-chart/src/hooks/useTemperatureChart.js +1 -1
  16. package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
  17. package/es/components/fabric-chart/src/utils/utils.d.ts +6 -6
  18. package/es/components/fabric-chart/src/utils/utils.js +4 -13
  19. package/es/components/form-config/index.d.ts +26 -8
  20. package/es/components/form-config/src/FormConfig.vue.d.ts +26 -8
  21. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +4 -4
  22. package/es/components/form-config/src/components/FormConfigDragDisplay.vue.js +1 -0
  23. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +14 -4
  24. package/es/components/form-config/src/hooks/useConfigurationField.js +7 -1
  25. package/es/components/form-config/src/types/index.d.ts +1 -0
  26. package/es/components/form-render/index.d.ts +4 -4
  27. package/es/components/form-render/src/FormRender.vue.d.ts +4 -4
  28. package/es/components/form-render/src/FormRender.vue.js +15 -5
  29. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +4 -4
  30. package/es/components/form-render/src/components/renderer/formItem.js +2 -1
  31. package/es/components/form-render/src/components/renderer/jsonCombination/hooks/useDeepValidate.js +8 -8
  32. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +5 -0
  33. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.js +20 -4
  34. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +5 -0
  35. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +2 -2
  36. package/es/components/form-render/src/types/fieldItem.d.ts +8 -0
  37. package/es/components/form-render/src/utils/dom.d.ts +8 -2
  38. package/es/components/form-render/src/utils/dom.js +13 -6
  39. package/es/components/form-render/style/index.css +1 -1
  40. package/es/components/iho-table/src/IhoTable.vue.js +4 -0
  41. package/es/components/iho-table/src/constants/index.d.ts +4 -0
  42. package/es/components/iho-table/src/constants/index.js +6 -1
  43. package/es/components/iho-table/src/plugins/defaultConfigPlugin/index.js +11 -9
  44. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.js +1 -3
  45. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin/index.js +33 -5
  46. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/index.js +2 -2
  47. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +19 -2
  48. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js +5 -9
  49. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  50. package/es/components/iho-table/src/plugins/virtualTreePlugin/index.js +23 -23
  51. package/es/components/iho-table/src/types/index.d.ts +2 -0
  52. package/es/components/iho-table/src/utils/index.d.ts +3 -1
  53. package/es/components/iho-table/src/utils/index.js +1 -1
  54. package/es/components/index.css +1 -1
  55. package/es/components/keyboard/index.d.ts +5 -4
  56. package/es/components/keyboard/src/Keyboard.vue.d.ts +5 -4
  57. package/es/components/keyboard/src/components/NumberPanel.vue.d.ts +1 -0
  58. package/es/components/keyboard/src/components/NumberPanel.vue.js +3 -2
  59. package/es/components/keyboard/style/index.css +1 -1
  60. package/es/components/shortcut-setter/index.d.ts +6 -4
  61. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +6 -4
  62. package/es/shared/assets/img/failure.js +1 -1
  63. package/es/shared/assets/img/failure.png.js +1 -1
  64. package/es/shared/assets/img/icon-asc.js +1 -1
  65. package/es/shared/assets/img/icon-desc.js +1 -1
  66. package/es/shared/assets/img/no-permission.js +1 -1
  67. package/es/shared/assets/img/no-permission.png.js +1 -1
  68. package/es/shared/assets/img/nodata.js +1 -1
  69. package/es/shared/assets/img/nodata.png.js +1 -1
  70. package/es/shared/assets/img/notfound.js +1 -1
  71. package/es/shared/assets/img/notfound.png.js +1 -1
  72. package/es/shared/assets/img/qr.js +1 -1
  73. package/es/shared/assets/img/qr.png.js +1 -1
  74. package/es/shared/assets/img/success.js +1 -1
  75. package/es/shared/assets/img/success.png.js +1 -1
  76. package/es/shared/assets/img/video.js +1 -1
  77. package/es/shared/assets/img/video.png.js +1 -1
  78. package/es/shared/assets/img/video_default_cover.js +1 -1
  79. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  80. package/es/shared/assets/img/video_hover.js +1 -1
  81. package/es/shared/assets/img/video_play_hover.js +1 -1
  82. package/es/shared/assets/img/xb_big.js +1 -1
  83. package/es/shared/assets/img/xb_big.png.js +1 -1
  84. package/es/shared/assets/img/xb_small.js +1 -1
  85. package/es/shared/assets/img/xb_small.png.js +1 -1
  86. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  87. package/es/shared/utils/tapable/index.d.ts +139 -0
  88. package/package.json +2 -2
@@ -7,6 +7,7 @@ declare const _default: import("vue").DefineComponent<{
7
7
  type: StringConstructor;
8
8
  default: string;
9
9
  };
10
+ remark: StringConstructor;
10
11
  disabled: {
11
12
  type: BooleanConstructor;
12
13
  default: boolean;
@@ -21,6 +22,7 @@ declare const _default: import("vue").DefineComponent<{
21
22
  type: StringConstructor;
22
23
  default: string;
23
24
  };
25
+ remark: StringConstructor;
24
26
  disabled: {
25
27
  type: BooleanConstructor;
26
28
  default: boolean;
@@ -32,7 +34,9 @@ declare const _default: import("vue").DefineComponent<{
32
34
  formItemDepsCollector: import("../../../../../../../es/components/form-render").FormItemDepsCollector;
33
35
  ChevronDown: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
34
36
  ChevronUp: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
37
+ HelpCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
35
38
  NCollapseTransition: any;
39
+ NTooltip: any;
36
40
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
37
41
  show: {
38
42
  type: BooleanConstructor;
@@ -42,6 +46,7 @@ declare const _default: import("vue").DefineComponent<{
42
46
  type: StringConstructor;
43
47
  default: string;
44
48
  };
49
+ remark: StringConstructor;
45
50
  disabled: {
46
51
  type: BooleanConstructor;
47
52
  default: boolean;
@@ -1,8 +1,8 @@
1
- import { defineComponent, ref, inject, openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createBlock, unref, createVNode, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, ref, inject, openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createBlock, unref, withCtx, createVNode, createCommentVNode, renderSlot } from 'vue';
2
2
  import '../../../../index.js';
3
3
  import { InjectionFormItemDepsCollector, FormItemLineBarDepKeyPrepend } from '../../../constants/index.js';
4
- import { ChevronDown, ChevronUp } from '@vicons/ionicons5';
5
- import { NCollapseTransition } from 'naive-ui';
4
+ import { HelpCircleOutline, ChevronDown, ChevronUp } from '@vicons/ionicons5';
5
+ import { NTooltip, NCollapseTransition } from 'naive-ui';
6
6
  import _export_sfc from '../../../../../../_virtual/plugin-vue_export-helper.js';
7
7
  import { useFormField } from '../../../hooks/useFormField.js';
8
8
 
@@ -10,11 +10,13 @@ const _hoisted_1 = {
10
10
  class: "form-render__linebar",
11
11
  "anchor-target": ""
12
12
  };
13
+ const _hoisted_2 = { class: "form-render__linebarHeaderTitle" };
13
14
  const _sfc_main = /* @__PURE__ */ defineComponent({
14
15
  __name: "FormCollapse",
15
16
  props: {
16
17
  show: { type: Boolean, default: true },
17
18
  title: { type: String, default: "" },
19
+ remark: String,
18
20
  disabled: { type: Boolean, default: false }
19
21
  },
20
22
  setup(__props) {
@@ -36,7 +38,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
36
38
  class: "form-render__linebarHeader",
37
39
  onClick: toggleShow
38
40
  }, [
39
- createTextVNode(toDisplayString(__props.title) + " ", 1),
41
+ createElementVNode("div", _hoisted_2, [
42
+ createTextVNode(toDisplayString(__props.title) + " ", 1),
43
+ __props.remark ? (openBlock(), createBlock(unref(NTooltip), {
44
+ key: 0,
45
+ trigger: "hover"
46
+ }, {
47
+ trigger: withCtx(() => [
48
+ createVNode(unref(HelpCircleOutline))
49
+ ]),
50
+ default: withCtx(() => [
51
+ createTextVNode(" " + toDisplayString(__props.remark), 1)
52
+ ]),
53
+ _: 1
54
+ })) : createCommentVNode("v-if", true)
55
+ ]),
40
56
  _show.value ? (openBlock(), createBlock(unref(ChevronDown), { key: 0 })) : (openBlock(), createBlock(unref(ChevronUp), { key: 1 }))
41
57
  ]),
42
58
  createVNode(unref(NCollapseTransition), {
@@ -7,6 +7,7 @@ export declare const LINEBAR: import("vue").DefineComponent<{
7
7
  type: StringConstructor;
8
8
  default: string;
9
9
  };
10
+ remark: StringConstructor;
10
11
  disabled: {
11
12
  type: BooleanConstructor;
12
13
  default: boolean;
@@ -21,6 +22,7 @@ export declare const LINEBAR: import("vue").DefineComponent<{
21
22
  type: StringConstructor;
22
23
  default: string;
23
24
  };
25
+ remark: StringConstructor;
24
26
  disabled: {
25
27
  type: BooleanConstructor;
26
28
  default: boolean;
@@ -32,7 +34,9 @@ export declare const LINEBAR: import("vue").DefineComponent<{
32
34
  formItemDepsCollector: import("../../../hooks").FormItemDepsCollector;
33
35
  ChevronDown: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
34
36
  ChevronUp: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
37
+ HelpCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
35
38
  NCollapseTransition: any;
39
+ NTooltip: any;
36
40
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
37
41
  show: {
38
42
  type: BooleanConstructor;
@@ -42,6 +46,7 @@ export declare const LINEBAR: import("vue").DefineComponent<{
42
46
  type: StringConstructor;
43
47
  default: string;
44
48
  };
49
+ remark: StringConstructor;
45
50
  disabled: {
46
51
  type: BooleanConstructor;
47
52
  default: boolean;
@@ -182,10 +182,10 @@ function useFieldListAdaptor(collector) {
182
182
  title: item.alias || item.name,
183
183
  "x-component": "LINEBAR",
184
184
  "x-component-props": {
185
- line: item.__line,
186
185
  disabled: item.is_not_fold === "1",
187
186
  id: createLinebarId(item.val_key),
188
- show: item.is_show !== "0"
187
+ show: item.is_show !== "0",
188
+ remark: item.remark
189
189
  }
190
190
  };
191
191
  };
@@ -185,6 +185,14 @@ export declare type FieldItem = {
185
185
  * 是否使用json格式对该字段值进行合并
186
186
  */
187
187
  extendKey: string;
188
+ /**
189
+ * 是否允许linebar控件收起('1'表示不可收起)
190
+ */
191
+ is_not_fold: string;
192
+ /**
193
+ * linebar控件中的备注
194
+ */
195
+ remark: string;
188
196
  /**
189
197
  * 数据类型
190
198
  */
@@ -1,7 +1,13 @@
1
- import { Nullable, UndefinedAble } from '../../../../../es/shared/types';
1
+ import { Nullable } from '../../../../../es/shared/types';
2
2
  export declare function queryDecorator(key: string, wrapperElement: HTMLElement, formUUID: string): HTMLElement | null;
3
3
  export declare function queryInput(decoratorElement?: Nullable<HTMLElement>): {
4
4
  widgetElement: HTMLInputElement | null | undefined;
5
5
  widgetElementList: HTMLInputElement[];
6
6
  };
7
- export declare function findNextWidget(containers: HTMLElement[], currentContainerIndex: number, currentWidget: HTMLElement): UndefinedAble<HTMLElement>;
7
+ export declare function findNextWidget(containers: HTMLElement[], currentContainerIndex: number, currentWidget: HTMLElement): {
8
+ widget: HTMLElement;
9
+ field: string | null;
10
+ } | {
11
+ widget: null;
12
+ field: null;
13
+ };
@@ -13,17 +13,24 @@ function queryInput(decoratorElement) {
13
13
  function findNextWidget(containers, currentContainerIndex, currentWidget) {
14
14
  const nextWidget = findInnerNextWidget(containers[currentContainerIndex], currentWidget);
15
15
  if (nextWidget)
16
- return nextWidget;
17
- let result;
16
+ return { widget: nextWidget, field: getFormField(containers[currentContainerIndex]) };
17
+ let widget = null;
18
+ let field = null;
18
19
  containers.slice(currentContainerIndex + 1).some((container) => {
19
- return result = findInnerNextWidget(container);
20
+ const res = widget = findInnerNextWidget(container);
21
+ if (res)
22
+ field = getFormField(container);
23
+ return res;
20
24
  });
21
- return result;
25
+ return { widget, field };
26
+ function getFormField(formItemElement) {
27
+ return formItemElement && formItemElement.getAttribute("form-field");
28
+ }
22
29
  function findInnerNextWidget(container, currentWidget2) {
23
30
  const widgets = Array.from(container.querySelectorAll("textarea,input,[tabindex]"));
24
- const widgetIndex = currentWidget2 ? widgets.findIndex((widget) => widget === currentWidget2) : -1;
31
+ const widgetIndex = currentWidget2 ? widgets.findIndex((widget2) => widget2 === currentWidget2) : -1;
25
32
  return widgets.slice(widgetIndex + 1).find(
26
- (widget) => !Reflect.get(widget, "disabled") && !Array.from(widget.classList).some((className) => className.endsWith("--disabled"))
33
+ (widget2) => !Reflect.get(widget2, "disabled") && !Array.from(widget2.classList).some((className) => className.endsWith("--disabled"))
27
34
  );
28
35
  }
29
36
  }
@@ -1 +1 @@
1
- .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
1
+ .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;position:relative}.form-render__formItemLabel--text.has-annotation{margin-right:15px}.form-render__formItemLabel--annotation{position:absolute;right:calc(var(--icon-right)*1px);top:50%;transform:translateY(-50%)}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
@@ -105,6 +105,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
105
105
  const { header, footer } = createDomInsertComponent(hooks);
106
106
  expose({
107
107
  $table,
108
+ async loadData(data) {
109
+ var _a2;
110
+ (_a2 = $table.value) == null ? void 0 : _a2.loadData(await dataTransfer(data));
111
+ },
108
112
  setFilterState(fieldName, value) {
109
113
  return { fieldName, value };
110
114
  },
@@ -63,6 +63,10 @@ export declare enum IHO_TABLE_TREE_TYPE {
63
63
  UNKNOWN2 = 2,
64
64
  TRANSFORM_TREE_TYPE = 3
65
65
  }
66
+ export declare enum IHO_TABLE_FIXED_STATUS {
67
+ left = 1,
68
+ right = 2
69
+ }
66
70
  export declare const IhoTableCustomEventNameTuple: readonly ["formChange", "settingClick", "formClick", "keyboard"];
67
71
  export declare const IhoTableEventNameTuple: readonly ["formChange", "settingClick", "formClick", "keyboard", ...("toggleRowExpand" | "toggleTreeExpand" | "copy" | "scroll" | "cut" | "paste" | "keydown" | "keydownStart" | "keydownEnd" | "currentChange" | "radioChange" | "checkboxChange" | "checkboxAll" | "checkboxRangeStart" | "checkboxRangeChange" | "checkboxRangeEnd" | "cellClick" | "cellDblclick" | "cellMenu" | "cellMouseenter" | "cellMouseleave" | "headerCellClick" | "headerCellDblclick" | "headerCellMenu" | "footerCellClick" | "footerCellDblclick" | "footerCellMenu" | "sortChange" | "filterChange" | "filterVisible" | "resizableChange" | "menuClick" | "editClosed" | "editActived" | "editDisabled" | "validError" | "custom" | "openFnr" | "fnrChange" | "fnrFind" | "fnrFindAll" | "fnrReplace" | "fnrReplaceAll" | "cellAreaCopy" | "cellAreaCut" | "cellAreaPaste" | "cellAreaMerge" | "clearCellAreaMerge" | "headerCellAreaSelection" | "cellAreaSelectionStart" | "cellAreaSelectionDrag" | "cellAreaSelectionEnd" | "cellAreaExtensionStart" | "cellAreaExtensionDrag" | "cellAreaExtensionEnd" | "cellAreaArrowsStart" | "cellAreaArrowsEnd" | "activeCellChangeStart" | "activeCellChangeEnd")[]];
68
72
  export declare const InjectionIhoTableConfig: InjectionKey<Ref<IhoTableConfig>>;
@@ -135,6 +135,11 @@ var IHO_TABLE_TREE_TYPE = /* @__PURE__ */ ((IHO_TABLE_TREE_TYPE2) => {
135
135
  IHO_TABLE_TREE_TYPE2[IHO_TABLE_TREE_TYPE2["TRANSFORM_TREE_TYPE"] = 3] = "TRANSFORM_TREE_TYPE";
136
136
  return IHO_TABLE_TREE_TYPE2;
137
137
  })(IHO_TABLE_TREE_TYPE || {});
138
+ var IHO_TABLE_FIXED_STATUS = /* @__PURE__ */ ((IHO_TABLE_FIXED_STATUS2) => {
139
+ IHO_TABLE_FIXED_STATUS2[IHO_TABLE_FIXED_STATUS2["left"] = 1] = "left";
140
+ IHO_TABLE_FIXED_STATUS2[IHO_TABLE_FIXED_STATUS2["right"] = 2] = "right";
141
+ return IHO_TABLE_FIXED_STATUS2;
142
+ })(IHO_TABLE_FIXED_STATUS || {});
138
143
  const IhoTableCustomEventNameTuple = ["formChange", "settingClick", "formClick", "keyboard"];
139
144
  const IhoTableEventNameTuple = [...IhoTableCustomEventNameTuple, ...VxeTableEventNameList];
140
145
  const InjectionIhoTableConfig = Symbol("injectionIhoTableConfig");
@@ -147,4 +152,4 @@ const InjectionIhoTableEventListener = Symbol(
147
152
  "InjectionIhoTableEventListener"
148
153
  );
149
154
 
150
- export { EDITABLE_WIDGET_TYPE, HIGHEST_PRIORITY, IHO_TABLE_NUMBER_STATUS, IHO_TABLE_STRING_STATUS, IHO_TABLE_TREE_TYPE, IhoTableCustomEventNameTuple, IhoTableEventNameTuple, IhoTableRowGroupSequence, InjectionIhoTableConfig, InjectionIhoTableEmits, InjectionIhoTableEventListener, InjectionIhoTableFieldList, InjectionIhoTableHandler, InjectionIhoTableInstance, InjectionIhoTableUUID, VxeEventListenerNameList, VxeTableEventNameList, WIDGET_TYPE };
155
+ export { EDITABLE_WIDGET_TYPE, HIGHEST_PRIORITY, IHO_TABLE_FIXED_STATUS, IHO_TABLE_NUMBER_STATUS, IHO_TABLE_STRING_STATUS, IHO_TABLE_TREE_TYPE, IhoTableCustomEventNameTuple, IhoTableEventNameTuple, IhoTableRowGroupSequence, InjectionIhoTableConfig, InjectionIhoTableEmits, InjectionIhoTableEventListener, InjectionIhoTableFieldList, InjectionIhoTableHandler, InjectionIhoTableInstance, InjectionIhoTableUUID, VxeEventListenerNameList, VxeTableEventNameList, WIDGET_TYPE };
@@ -26,20 +26,22 @@ function defaultConfigPlugin() {
26
26
  },
27
27
  config
28
28
  );
29
- if (config.isTree === IHO_TABLE_TREE_TYPE.TRANSFORM_TREE_TYPE) {
30
- result.treeConfig = Object.assign(
31
- {},
32
- { transform: true, expandAll: true, lazy: true, reserve: true },
33
- result.treeConfig
34
- );
35
- }
36
29
  if (IhoTableStatusHelper.isPositive(config.isBatchSelect) || config.selectType) {
37
30
  result.selectType = config.selectType || "checkbox";
38
31
  }
32
+ return result;
33
+ });
34
+ hooks.configHooks.treeConfig.tap({ name: pluginName, stage: HIGHEST_PRIORITY }, (treeConfig, config) => {
35
+ if (config.isTree === IHO_TABLE_TREE_TYPE.TRANSFORM_TREE_TYPE) {
36
+ return Object.assign({ transform: true, expandAll: true, lazy: true, reserve: true }, treeConfig);
37
+ }
38
+ return treeConfig;
39
+ });
40
+ hooks.configHooks.mouseConfig.tap({ name: pluginName, stage: HIGHEST_PRIORITY }, (mouseConfig, config) => {
39
41
  if (isObject(config.keyboardConfig)) {
40
- result.mouseConfig = Object.assign({}, { selected: !!config.keyboardConfig.isEdit }, result.mouseConfig);
42
+ return Object.assign({ selected: !!config.keyboardConfig.isEdit }, mouseConfig);
41
43
  }
42
- return result;
44
+ return mouseConfig;
43
45
  });
44
46
  }
45
47
  });
@@ -10,9 +10,7 @@ function keyboardEventPlugin() {
10
10
  apply(hooks) {
11
11
  hooks.eventHooks.onKeydown.tap(pluginName, async ({ $event, $table }, _, { emits }) => {
12
12
  await promiseTimeout(0);
13
- const activeCellInfo = $table.getSelectedCell();
14
- const editCellInfo = $table.getEditRecord();
15
- const { row, column } = activeCellInfo || editCellInfo;
13
+ const { row, column } = $table.getSelectedCell() || $table.getEditRecord() || {};
16
14
  if (!row || !column)
17
15
  return;
18
16
  const key = $event.key;
@@ -1,8 +1,9 @@
1
- import { pick, cloneDeep, isObject } from 'lodash-es';
2
- import { toRaw } from 'vue';
3
- import { HIGHEST_PRIORITY, WIDGET_TYPE } from '../../constants/index.js';
1
+ import { pick, isFunction, cloneDeep, isObject } from 'lodash-es';
2
+ import { toRaw, h } from 'vue';
3
+ import { HIGHEST_PRIORITY, IHO_TABLE_FIXED_STATUS, WIDGET_TYPE } from '../../constants/index.js';
4
4
  import { defineTablePlugin } from '../../hooks/useTablePlugin.js';
5
5
  import { IhoTableStatusHelper, IhoTableUtils } from '../../utils/index.js';
6
+ import { getDefaultValue } from '../rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js';
6
7
 
7
8
  function lowCodeFieldAdaptorPlugin() {
8
9
  const pluginName = "lowCodeFieldAdaptorPlugin";
@@ -18,25 +19,52 @@ function lowCodeFieldAdaptorPlugin() {
18
19
  visible: IhoTableStatusHelper.notNegative(_field.isShow),
19
20
  minWidth: _field.colWidth,
20
21
  sortable: IhoTableStatusHelper.isPositive(_field.isSort),
21
- slots: { ..._field.slots, default: _field.slotFn, header: _field.headerSlotFn },
22
22
  title: _field.alias || _field.title,
23
+ fixed: IHO_TABLE_FIXED_STATUS[_field.isFixed],
23
24
  ...pick(_field, ["treeNode", "resizable"])
24
25
  };
26
+ slotsAdaptor(result, _field);
25
27
  settingObjAdaptor(result, _field, config);
26
28
  return result;
27
29
  });
28
30
  }
29
31
  });
30
32
  }
33
+ function slotsAdaptor(fieldItem, lowCodeField) {
34
+ const slots = {
35
+ ...lowCodeField.slots,
36
+ default: lowCodeField.slotFn,
37
+ header: lowCodeField.headerSlotFn
38
+ };
39
+ if (isFunction(lowCodeField.checkEditStatus)) {
40
+ const { default: defaultSlot } = slots;
41
+ if (isFunction(defaultSlot)) {
42
+ slots.default = (payload) => {
43
+ if (!lowCodeField.checkEditStatus(payload))
44
+ return [h("span", null, getDefaultValue(payload.row, payload.column.editRender.props))];
45
+ return defaultSlot(payload);
46
+ };
47
+ }
48
+ }
49
+ fieldItem.slots = slots;
50
+ }
31
51
  function settingObjAdaptor(fieldItem, lowCodeField, config) {
52
+ var _a, _b;
32
53
  const props = cloneDeep(toRaw(lowCodeField));
33
- props.componentProps = { size: config.size === "mini" ? "small" : config.size, ...props.componentProps };
54
+ props.componentProps = {
55
+ size: config.size === "mini" ? "small" : config.size,
56
+ options: lowCodeField.options,
57
+ ...props.componentProps
58
+ };
34
59
  fieldItem.editRender = {
35
60
  autofocus: "input",
36
61
  name: IhoTableUtils.getCellType(lowCodeField),
37
62
  props
38
63
  };
39
64
  fieldItem.editRender.enabled = !Reflect.get(WIDGET_TYPE, fieldItem.editRender.name);
65
+ if (isFunction((_a = fieldItem.slots) == null ? void 0 : _a.default)) {
66
+ fieldItem.editRender.enabled = fieldItem.editRender.enabled && isFunction((_b = fieldItem.slots) == null ? void 0 : _b.edit);
67
+ }
40
68
  if (!isObject(lowCodeField.settingObj))
41
69
  return;
42
70
  if (Reflect.has(lowCodeField.settingObj, "isHide")) {
@@ -17,7 +17,7 @@ function dateRendererPlugin() {
17
17
  emitFormClick,
18
18
  row,
19
19
  column,
20
- rowIndex
20
+ $rowIndex
21
21
  }) => {
22
22
  return [createVNode(EditDate, mergeProps({
23
23
  "value": row[column.field],
@@ -25,7 +25,7 @@ function dateRendererPlugin() {
25
25
  }, fieldItem.componentProps, {
26
26
  "column": column,
27
27
  "row": row,
28
- "row-index": rowIndex,
28
+ "row-index": $rowIndex,
29
29
  "onClick": emitFormClick
30
30
  }), null)];
31
31
  })
@@ -1,4 +1,6 @@
1
1
  import { createVNode, mergeProps } from 'vue';
2
+ import { findAncestor } from '../../../../../../../shared/utils/index.js';
3
+ import { isObject } from 'lodash-es';
2
4
  import '../../../../../index.js';
3
5
  import { EDITABLE_WIDGET_TYPE } from '../../../../constants/index.js';
4
6
  import { IhoTableRenderHelper } from '../../../../utils/index.js';
@@ -8,9 +10,24 @@ import { defineTablePlugin } from '../../../../hooks/useTablePlugin.js';
8
10
 
9
11
  function selectRendererPlugin() {
10
12
  const pluginName = "selectRendererPlugin";
13
+ function isHTMLElement(target) {
14
+ return isObject(target);
15
+ }
11
16
  return defineTablePlugin({
12
17
  name: pluginName,
13
18
  vxe(instance) {
19
+ instance.interceptor.add("event.clearActived", ({
20
+ $event,
21
+ column
22
+ }) => {
23
+ var _a;
24
+ if (((_a = column.editRender) == null ? void 0 : _a.name) !== EDITABLE_WIDGET_TYPE.SELECT)
25
+ return true;
26
+ const target = $event == null ? void 0 : $event.target;
27
+ if (!isHTMLElement(target))
28
+ return true;
29
+ return !findAncestor(target, (ele) => ele.classList.contains("n-base-select-menu-option-wrapper"));
30
+ });
14
31
  instance.renderer.add(EDITABLE_WIDGET_TYPE.SELECT, {
15
32
  renderCell({
16
33
  props
@@ -24,12 +41,12 @@ function selectRendererPlugin() {
24
41
  emitFormClick,
25
42
  row,
26
43
  column,
27
- rowIndex
44
+ $rowIndex
28
45
  }) => {
29
46
  return [createVNode(EditSelect, mergeProps(fieldItem.componentProps, {
30
47
  "column": column,
31
48
  "row": row,
32
- "row-index": rowIndex,
49
+ "row-index": $rowIndex,
33
50
  "value": row[column.field],
34
51
  "onUpdate:value": ($event) => row[column.field] = $event,
35
52
  "onClick": emitFormClick
@@ -1,19 +1,15 @@
1
1
  function getDefaultValue(row, item) {
2
- var _a;
3
2
  const value = row[item.columnName];
4
3
  if (Array.isArray(value))
5
- return (_a = value.map((v) => getValue(v))) == null ? void 0 : _a.join(",");
4
+ return value.map((v) => getValue(v)).join(",");
6
5
  return getValue(value);
7
6
  function getValue(value2) {
8
- var _a2, _b;
7
+ var _a;
9
8
  const findValue = (options) => {
10
- var _a3;
11
- return ((_a3 = options == null ? void 0 : options.find((v) => v.value == value2)) == null ? void 0 : _a3.label) || value2 || "";
9
+ var _a2;
10
+ return ((_a2 = options == null ? void 0 : options.find((v) => v.value == value2)) == null ? void 0 : _a2.label) || value2 || "";
12
11
  };
13
- if (item.formatMap) {
14
- return row[(_a2 = item.formatMap) == null ? void 0 : _a2.label];
15
- }
16
- return findValue(((_b = item.componentProps) == null ? void 0 : _b.options) || []);
12
+ return findValue(((_a = item.componentProps) == null ? void 0 : _a.options) || []);
17
13
  }
18
14
  }
19
15
 
@@ -129,7 +129,7 @@ function separateRendererPlugins() {
129
129
  context.updateTableDataRef();
130
130
  });
131
131
  hooks.configHooks.editConfig.tap(pluginName, (editConfig = {}, config) => {
132
- editConfig.activeMethod = avoidOperationDecorator(editConfig.activeMethod);
132
+ editConfig.beforeEditMethod = avoidOperationDecorator(editConfig.beforeEditMethod);
133
133
  return editConfig;
134
134
  });
135
135
  hooks.configHooks.checkboxConfig.tap(pluginName, (checkboxConfig = {}, config) => {
@@ -41,49 +41,49 @@ function virtualTreePlugin() {
41
41
  hooks.fieldHooks.fieldList.tap(pluginName, (fieldList, config) => {
42
42
  const { transform } = config.treeConfig || DMZ;
43
43
  if (transform && config.uuid) {
44
- let treeNodeColumnIndex = fieldList.findIndex((field) => field.treeNode);
44
+ const visibleField = fieldList.filter((field) => field.visible !== false);
45
+ let treeNodeColumnIndex = visibleField.findIndex((field) => field.treeNode);
45
46
  if (!~treeNodeColumnIndex) {
46
- fieldList.some((field, index) => {
47
+ visibleField.some((field, index) => {
47
48
  if (field.type)
48
49
  return;
49
50
  treeNodeColumnIndex = index;
50
51
  return field.treeNode = true;
51
52
  });
52
53
  }
54
+ const colspan = visibleField.length - treeNodeColumnIndex - visibleField.filter((field) => field.fixed === "right").length;
53
55
  treeNodeColumnIndexMap.set(config.uuid, {
54
56
  index: treeNodeColumnIndex,
55
- length: fieldList.length
57
+ colspan
56
58
  });
57
59
  }
58
60
  return fieldList;
59
61
  });
60
- hooks.configHooks.config.tap(pluginName, (config) => {
61
- if (!config.treeConfig)
62
- return config;
63
- const { transform, parentField = "parentId", rowField = "__parentId" } = config.treeConfig;
62
+ hooks.configHooks.treeConfig.tap(pluginName, (treeConfig, config) => {
63
+ if (!treeConfig)
64
+ return treeConfig;
65
+ const { transform, parentField = "parentId", rowField = "__parentId" } = treeConfig;
64
66
  if (!transform)
65
- return config;
66
- Object.assign(config.treeConfig, { parentField, rowField });
67
+ return treeConfig;
68
+ Object.assign(treeConfig, { parentField, rowField });
67
69
  if (transform && !isFunction(config.spanMethod)) {
68
- config.spanMethod = (...args) => {
69
- const { row, column, columnIndex } = args[0];
70
+ const hideCellSpan = Object.freeze({ rowspan: 0, colspan: 0 });
71
+ const defaultCellSpan = Object.freeze({ rowspan: 1, colspan: 1 });
72
+ config.spanMethod = ({ row, column, $columnIndex }) => {
70
73
  const treeNodeColumnInfo = treeNodeColumnIndexMap.get(config.uuid);
71
- if (!treeNodeColumnInfo)
72
- return;
74
+ if (!treeNodeColumnInfo) {
75
+ return defaultCellSpan;
76
+ }
73
77
  if (column.treeNode) {
74
- if (row[parentField])
75
- return { rowspan: 1, colspan: 1 };
76
- return { rowspan: 1, colspan: 99999 };
77
- } else {
78
- if (row[parentField])
79
- return { rowspan: 1, colspan: 1 };
80
- if (columnIndex < treeNodeColumnInfo.index)
81
- return { rowspan: 1, colspan: 1 };
82
- return { rowspan: 0, colspan: 0 };
78
+ return row[parentField] ? defaultCellSpan : { rowspan: 1, colspan: treeNodeColumnInfo.colspan };
79
+ }
80
+ if (row[parentField] || column.fixed === "right" || $columnIndex < treeNodeColumnInfo.index) {
81
+ return defaultCellSpan;
83
82
  }
83
+ return hideCellSpan;
84
84
  };
85
85
  }
86
- return config;
86
+ return treeConfig;
87
87
  });
88
88
  hooks.setupHooks.setup.tap(pluginName, (configRef) => {
89
89
  onBeforeUnmount(() => {
@@ -55,6 +55,7 @@ export declare type LowCodeTableFieldItem = {
55
55
  id: number | string;
56
56
  title: string;
57
57
  alias: string;
58
+ isFixed: 0 | 1 | 2;
58
59
  colWidth: VxeTableDefines.ColumnInfo['width'];
59
60
  settingObj: IhoTableLowCodeField.SettingObj;
60
61
  treeNode: boolean;
@@ -73,6 +74,7 @@ export declare type LowCodeTableFieldItem = {
73
74
  checked: string[];
74
75
  sortStatus: null | 'asc' | 'desc';
75
76
  }>;
77
+ checkEditStatus: (payload: VxeTableDefines.CellRenderBodyParams) => boolean | void;
76
78
  }> & Partial<Pick<VxeTableDefines.ColumnInfo, 'resizable'>>;
77
79
  export declare type IhoTableFormChangePayload = {
78
80
  column: IhoTableFieldItem;
@@ -15,7 +15,9 @@ export declare function useUUIDMap<T>(creator: () => T, isReactive?: boolean): {
15
15
  removeItemFromUUID: (uuid: string) => void;
16
16
  };
17
17
  export declare function getColumnRenderWidth(column: AnyObject, $table: MaybeRef<Nullable<VxeTableInstance>>): Promise<number>;
18
- export declare function useIhoTableFormEvent(payload: Pick<VxeGlobalRendererHandles.RenderEditParams, 'row' | 'rowIndex' | 'column'>): {
18
+ export declare function useIhoTableFormEvent(payload: Pick<VxeGlobalRendererHandles.RenderEditParams, 'row' | 'rowIndex' | 'column'> & {
19
+ $rowIndex?: number;
20
+ }): {
19
21
  emitFormChange: () => void;
20
22
  emitFormClick: () => void;
21
23
  emitFormChangeWithParams: (params?: AnyObject) => void;
@@ -57,7 +57,7 @@ function useIhoTableFormEvent(payload) {
57
57
  value: payload.row[payload.column.field],
58
58
  row: payload.row,
59
59
  column: payload.column,
60
- index: payload.rowIndex
60
+ index: payload.rowIndex > -1 ? payload.rowIndex : payload.$rowIndex
61
61
  };
62
62
  }
63
63
  function emitFormChangeWithParams(params = {}) {