cnhis-design-vue 3.1.51-beta.2 → 3.1.51-beta.21

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 (135) hide show
  1. package/es/components/base-search/src/index.vue2.js +1 -1
  2. package/es/components/callback/index.d.ts +69 -0
  3. package/es/components/callback/index.js +1 -0
  4. package/es/components/callback/src/components/dialog/drawer.vue.d.ts +353 -0
  5. package/es/components/callback/src/components/dialog/drawer.vue.js +1 -0
  6. package/es/components/callback/src/components/dialog/drawer.vue2.js +1 -0
  7. package/es/components/callback/src/components/dialog/modal.vue.d.ts +166 -0
  8. package/es/components/callback/src/components/dialog/modal.vue.js +1 -0
  9. package/es/components/callback/src/components/dialog/modal.vue2.js +1 -0
  10. package/es/components/callback/src/components/popup/index.vue.d.ts +48 -0
  11. package/es/components/callback/src/components/popup/index.vue.js +1 -0
  12. package/es/components/callback/src/components/render/drawerIframe/index.vue.d.ts +62 -0
  13. package/es/components/callback/src/components/render/drawerIframe/index.vue.js +1 -0
  14. package/es/components/callback/src/components/render/drawerIframe/index.vue2.js +1 -0
  15. package/es/components/callback/src/components/render/enums.d.ts +5 -0
  16. package/es/components/callback/src/components/render/enums.js +1 -0
  17. package/es/components/callback/src/components/render/index.vue.d.ts +57 -0
  18. package/es/components/callback/src/components/render/index.vue.js +1 -0
  19. package/es/components/callback/src/components/render/popupMaps.d.ts +5702 -0
  20. package/es/components/callback/src/components/render/popupMaps.js +1 -0
  21. package/es/components/callback/src/index.vue.d.ts +68 -0
  22. package/es/components/callback/src/index.vue.js +1 -0
  23. package/es/components/callback/src/index.vue2.js +1 -0
  24. package/es/components/callback/src/types/index.d.ts +11 -0
  25. package/es/components/callback/style/callback-iconfont.ttf +0 -0
  26. package/es/components/callback/style/index.css +1 -0
  27. package/es/components/classification/src/index.vue2.js +1 -1
  28. package/es/components/expand-field/index.d.ts +0 -13
  29. package/es/components/expand-field/src/components/FormItemPerson.vue.d.ts +0 -13
  30. package/es/components/expand-field/src/components/PersonModal.vue.d.ts +0 -13
  31. package/es/components/expand-field/src/components/PersonModal.vue2.js +1 -1
  32. package/es/components/expand-field/src/components/form.vue.d.ts +0 -13
  33. package/es/components/expand-field/src/index.vue.d.ts +0 -13
  34. package/es/components/expand-field/src/index.vue2.js +1 -1
  35. package/es/components/fabric-chart/index.d.ts +5 -6
  36. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +5 -6
  37. package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
  38. package/es/components/fabric-chart/src/components/PopupMenu.js +1 -1
  39. package/es/components/fabric-chart/src/components/PopupTip.vue.d.ts +0 -6
  40. package/es/components/fabric-chart/src/components/PopupTip.vue2.js +1 -1
  41. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.js +1 -1
  42. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  43. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
  44. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +1 -1
  45. package/es/components/fabric-chart/style/index.css +1 -1
  46. package/es/components/form-config/index.d.ts +6 -2
  47. package/es/components/form-config/src/FormConfig.vue.d.ts +6 -2
  48. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +3 -1
  49. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +3 -1
  50. package/es/components/form-render/index.d.ts +3 -1
  51. package/es/components/form-render/src/FormRender.vue.d.ts +3 -1
  52. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  53. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +3 -1
  54. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  55. package/es/components/form-render/src/components/renderer/select.js +1 -1
  56. package/es/components/form-render/src/hooks/useFormEvent.d.ts +3 -1
  57. package/es/components/form-render/src/hooks/useFormEvent.js +1 -1
  58. package/es/components/form-render/src/types/index.d.ts +4 -1
  59. package/es/components/iho-table/src/IhoTable.vue2.js +1 -1
  60. package/es/components/iho-table/src/plugins/keyboardEventPlugin/index.js +1 -1
  61. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useSelectOption.d.ts +2 -0
  62. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/hooks/useSelectOption.js +1 -1
  63. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.d.ts +27 -0
  64. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  65. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  66. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.d.ts +2 -1
  67. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js +1 -1
  68. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  69. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/separateUtils.d.ts +4 -3
  70. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/separateUtils.js +1 -1
  71. package/es/components/iho-table/src/plugins/varialbleHeightPlugin/index.js +1 -1
  72. package/es/components/iho-table/src/types/index.d.ts +8 -1
  73. package/es/components/index.css +1 -1
  74. package/es/components/index.d.ts +6 -3
  75. package/es/components/index.js +1 -1
  76. package/es/components/info-header/index.d.ts +6 -2
  77. package/es/components/info-header/src/InfoHeader.vue.d.ts +6 -2
  78. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +3 -1
  79. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +3 -1
  80. package/es/components/scale-view/src/hooks/use-component.d.ts +615 -255
  81. package/es/components/select-label/index.d.ts +617 -256
  82. package/es/components/select-label/index.js +1 -1
  83. package/es/components/{iho-select-label/src/LabelFormContent.vue.d.ts → select-label/src/ihoLabel/IhoLabelFormContent.vue.d.ts} +5 -5
  84. package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue.js +1 -0
  85. package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue2.js +1 -0
  86. package/es/components/{iho-select-label/src/SelectLabel.vue.d.ts → select-label/src/ihoLabel/IhoSelectLabel.vue.d.ts} +7 -7
  87. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue.js +1 -0
  88. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -0
  89. package/es/components/{iho-select-label/src/components/label-classify.vue.d.ts → select-label/src/ihoLabel/iho-label-classify.vue.d.ts} +1 -1
  90. package/es/components/select-label/src/ihoLabel/iho-label-classify.vue.js +1 -0
  91. package/es/components/select-label/src/ihoLabel/iho-label-classify.vue2.js +1 -0
  92. package/es/components/select-label/src/index.vue.d.ts +899 -0
  93. package/es/components/select-label/src/index.vue.js +1 -0
  94. package/es/components/select-label/src/index.vue2.js +1 -0
  95. package/es/components/shortcut-provider/src/hooks/useShortcuts.d.ts +1 -0
  96. package/es/components/shortcut-provider/src/hooks/useShortcuts.js +1 -1
  97. package/es/components/shortcut-setter/index.d.ts +4 -1
  98. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +4 -1
  99. package/es/components/slider-tree/index.d.ts +79 -0
  100. package/es/components/slider-tree/index.js +1 -0
  101. package/es/components/slider-tree/src/hooks/useAsyncData.d.ts +6 -0
  102. package/es/components/slider-tree/src/hooks/useAsyncData.js +1 -0
  103. package/es/components/slider-tree/src/index.vue.d.ts +77 -0
  104. package/es/components/slider-tree/src/index.vue.js +1 -0
  105. package/es/components/slider-tree/src/index.vue2.js +1 -0
  106. package/es/components/slider-tree/src/utils/index.d.ts +13 -0
  107. package/es/components/slider-tree/src/utils/index.js +1 -0
  108. package/es/components/slider-tree/src/utils/tool.d.ts +1 -0
  109. package/es/components/slider-tree/src/utils/tool.js +1 -0
  110. package/es/components/slider-tree/style/index.css +1 -0
  111. package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue2.js +1 -1
  112. package/es/components/table-filter/src/hooks/useAdvanced.js +1 -1
  113. package/es/shared/directive/flexibleResize.d.ts +4 -0
  114. package/es/{components/classification/src → shared}/directive/flexibleResize.js +1 -1
  115. package/es/shared/directive/index.d.ts +1 -0
  116. package/es/shared/directive/index.js +1 -0
  117. package/es/shared/package.json.js +1 -1
  118. package/es/shared/types/business.d.ts +7 -0
  119. package/es/shared/utils/index.js +1 -1
  120. package/package.json +2 -2
  121. package/es/components/classification/src/directive/flexibleResize.d.ts +0 -28
  122. package/es/components/iho-select-label/index.d.ts +0 -363
  123. package/es/components/iho-select-label/index.js +0 -1
  124. package/es/components/iho-select-label/src/LabelFormContent.vue.js +0 -1
  125. package/es/components/iho-select-label/src/LabelFormContent.vue2.js +0 -1
  126. package/es/components/iho-select-label/src/SelectLabel.vue.js +0 -1
  127. package/es/components/iho-select-label/src/SelectLabel.vue2.js +0 -1
  128. package/es/components/iho-select-label/src/components/label-classify.vue.js +0 -1
  129. package/es/components/iho-select-label/src/components/label-classify.vue2.js +0 -1
  130. package/es/components/iho-select-label/style/iho-select-label-iconfont.ttf +0 -0
  131. package/es/components/iho-select-label/style/index.css +0 -1
  132. package/es/components/table-filter/src/types/tool.d.ts +0 -7
  133. /package/es/components/{iho-select-label → callback}/src/types/index.js +0 -0
  134. /package/es/components/{iho-select-label → select-label}/src/types/index.d.ts +0 -0
  135. /package/es/components/{table-filter/src/types/tool.js → select-label/src/types/index.js} +0 -0
@@ -1,12 +1,13 @@
1
- import { AnyObject } from '../../../../../../../../es/shared/types';
1
+ import { AnyObject, ArrayAble } from '../../../../../../../../es/shared/types';
2
2
  import { VxeTableDefines } from 'vxe-table';
3
3
  import { IhoTableFieldItem } from '../../../../../../../../es/components/iho-table';
4
4
  declare type ParsedRowDataInfo = {
5
5
  field: string;
6
- data: string[];
6
+ data: ArrayAble<string>[];
7
7
  };
8
8
  export declare function getColumnInfoMaxLength(parsedRowDataInfo: ParsedRowDataInfo[]): number;
9
9
  export declare function generateSeparateRowData(parsedRowDataInfo: ParsedRowDataInfo[], index: number): AnyObject;
10
- export declare function contentSeparate(value: unknown, field: IhoTableFieldItem, width: number): any[];
10
+ export declare function contentSeparate(value: unknown, field: IhoTableFieldItem, width: number, isDeep?: boolean): any[];
11
11
  export declare function isSeparateColumn(field: IhoTableFieldItem | VxeTableDefines.ColumnInfo): boolean | "" | undefined;
12
+ export declare function getLengthDiffArray(l1: number, l2: number, defaultValue?: string): string[];
12
13
  export {};
@@ -1 +1 @@
1
- import{getStringWidth as e}from"../../../../../../../shared/utils/index.js";import{isArray as n,cloneDeep as r,isString as t,isNumber as l}from"lodash-es";import{EDITABLE_WIDGET_TYPE as d}from"../../../../constants/index.js";function i(e){return Math.max(...e.map((e=>e.data.length)),1)}function o(e,n){return e.reduce(((e,r)=>(e[r.field]=r.data[n],e)),{})}function u(d,i,o){return n(d)?d.map((e=>{var n,t,l,d;return null!=(d=null==(l=null==(t=null==(n=i.editRender)?void 0:n.props)?void 0:t.separateFormatter)?void 0:l.call(t,r(e)))?d:i.field?e[i.field]:null})):t(d)&&l(o)?(o-=24,[...d].reduce(((n,r)=>{const t=n[n.length-1];return e(t+r)>o?n.push(r):n[n.length-1]=t+r,n}),[""])):[d]}function a(e){var n;return e.field&&(null==(n=e.editRender)?void 0:n.name)===d.SEPARATE}export{u as contentSeparate,o as generateSeparateRowData,i as getColumnInfoMaxLength,a as isSeparateColumn};
1
+ import{getStringWidth as r}from"../../../../../../../shared/utils/index.js";import{isArray as t,isString as n,isNumber as e}from"lodash-es";import{EDITABLE_WIDGET_TYPE as o}from"../../../../constants/index.js";import{getLowCodeFieldFromField as i}from"../../../../utils/index.js";function a(r){return Math.max(...r.map((r=>r.data.length)),1)}function u(r,t){return r.reduce(((r,n)=>(r[n.field]=n.data[t],r)),{})}function s(o,a,u,d=!1){var f;if(t(o)){if(d){const r=null==(f=i(a))?void 0:f.separateFormatter;return o.map((t=>s(r?r(t):t,a,u)))}return o}if(!n(o)||!e(u))return[o];u-=24;const m=[...o].reduce(((t,n)=>{const e=t[t.length-1];return r(e+n)>u?t.push(n):t[t.length-1]=e+n,t}),[""]);return d?[m]:m}function d(r){var t;return r.field&&(null==(t=r.editRender)?void 0:t.name)===o.SEPARATE}function f(r,t,n=""){const e=Math.abs(r-t);return Array.from({length:e}).map((()=>n))}export{s as contentSeparate,u as generateSeparateRowData,a as getColumnInfoMaxLength,f as getLengthDiffArray,d as isSeparateColumn};
@@ -1 +1 @@
1
- import{unref as e,onBeforeUnmount as t,shallowReactive as o,createVNode as l,defineComponent as n,inject as r,ref as a,computed as s,provide as i,watch as u,onMounted as d,h as c}from"vue";import{traverse as p,widthAppend as f}from"../../../../../shared/utils/index.js";import{doAnimation as m}from"../../../../../shared/utils/anime.js";import{useThrottleFn as h}from"@vueuse/core";import{promiseTimeout as g}from"@vueuse/shared";import{last as v,isFunction as x,isNumber as y}from"lodash-es";import"../../../index.js";import{EDITABLE_WIDGET_TYPE as b,InjectionIhoTableUUID as I}from"../../constants/index.js";import{useUUIDMap as T,IhoTableUtils as w}from"../../utils/index.js";import{defineTablePlugin as R}from"../../hooks/useTablePlugin.js";class D{constructor(){this.records={},this.maxRecords=o(new Map)}set(e,t,o){if(this.records[e]||(this.records[e]={}),this.records[e][t]===o)return;this.records[e][t]=o;const l=Math.max(...Object.values(this.records[e]),0);this.maxRecords.get(e)!==l&&this.maxRecords.set(e,l)}getMax(e){return this.maxRecords.get(e)||0}}const{getItemFromUUID:H,removeItemFromUUID:M}=T((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:C,setItemFromUUID:U}=T((()=>null)),{getItemFromUUID:$,removeItemFromUUID:k,setItemFromUUID:F}=T((()=>{}));let j={};function E(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=H(a),{oSize:u=0,gt:d=100}=null!=(n=$(a))?n:{},{internalData:c,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=c;if(d>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let T=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const w=[0];let R=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(w)||0)+Math.max(y,i.getMax(n));if(w.push(r),r>l)return R=Math.max(0,o-u),T+=Math.min(R,u),!0})),R>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;R>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[R],rowIndex:R,$rowIndex:R,_rowIndex:R,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return R--,!0})))break}}const D=`${w[R]}px`,M=`${h.reduce(((e,o)=>{const l=t.getRowSeq(o);return e+Math.max(y,i.getMax(l))}),0)}px`;["main","left","right"].forEach((t=>{const o=m[`${t}-body-table`],n=o?e(o):null;n&&(n.style.marginTop=D,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=M)}))}));const S=Math.min(h.length,R+T);if(f.startIndex===R&&f.endIndex===S)return;f.startIndex=R,f.endIndex=S;const C=h.slice(f.startIndex,f.endIndex);C.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...C)}const Y=h(E,300);function q(e){var t,o;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(o=null==(t=e.editRender)?void 0:t.name)?o:w.getCellType(e))!==b.SEPARATE}function L(){const o="variableHeightRendererPlugin";return R({name:o,vxe(e){j=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(I),n=r("$xetable"),p=a(),m=H(o),h=s((()=>t.payload.row[t.payload.column.field]));function v(){const{row:e,column:o}=t.payload,l=n.getRowSeq(e);if(!m||null==l||!p.value)return;const r=p.value.clientHeight;m.set(l,o.field,r)}i("updateCellHeight",v),u([()=>t.payload.rowIndex,()=>t.payload.column.field,h,()=>t.payload.column.renderWidth],(async()=>{await g(0),v()})),d((()=>{n&&!S(o)&&U(o,n),v()}));const b=s((()=>{var o,l,n,r,a;const s=null!=(l=null==(o=t.payload.column.editRender)?void 0:o.props)?l:{},i=null!=(r=null==(n=s.slots)?void 0:n.default)?r:s.slotFn;if(x(i))return i;const u=null==(a=t.payload.column.editRender)?void 0:a.name;if(u){const o=e.renderer.get(u);if(null==o?void 0:o.renderCell)return()=>o.renderCell(t.payload.column.editRender,t.payload)}return()=>h.value})),T=s((()=>{if(t.payload.column.treeNode)return"";const e=t.payload.column.renderWidth;return y(e)&&e>0?f(e-20-2):""}));return()=>l("div",{ref:p,style:{padding:"7px 0",width:T.value,overflow:"hidden"}},[c(b.value,t.payload)])}})},apply(n){function r(t){const o=S(t.uuid);if(!o)return;t.scrollY={enabled:!1},o.reactData.scrollYLoad=!1;const l=function(t){const o=t.internalData.elemStore["main-body-wrapper"];return o?e(o):null}(o);l&&E(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=$(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(j,{payload:e},null)}n.dataHooks.dataStart.tap(o,a),n.eventHooks.onFilterChange.tap(o,((e,t)=>a(t))),n.eventHooks.onSortChange.tap(o,((e,t)=>a(t))),n.eventHooks.onToggleTreeExpand.tap(o,((e,t)=>a(t))),n.eventHooks.onResizableChange.tap(o,(async({column:e},t)=>{e.editRender&&e.editRender.props&&q(e.editRender.props)&&a(t)})),n.eventHooks.onScroll.tap(o,h(((e,t)=>{if(e.isX)return;const{uuid:o}=t;if(!o)return;const l=S(o);l&&E(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(q(e)){e.slots={...e.slots,default:s};const t=e.className,o="variable-height";e.className=t?function(e){return x(t)?[t(e),o]:[t,o]}:o}return e})),n.fieldHooks.fieldList.tap(o,((t,o,{$table:l})=>(o.uuid&&p(t,((t,n)=>{var a,s,i,u;if(null==(s=null==(a=t.editRender)?void 0:a.props)?void 0:s.variableHeight){const t=null!=(u=null==(i=o.rowConfig)?void 0:i.height)?u:36,a=H(o.uuid),s=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,a.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,s?x(s)?s(e):s:null)},o.sortableConfig&&o.sortableConfig.enable){const t=o.sortableConfig.onEnd;o.sortableConfig.onEnd=function(l){const n=S(o.uuid);if(n){const{internalData:{elemStore:t}}=n,l=t["main-table-body"];l&&e(l)&&E(n,o,{scrollTop:e(l).scrollTop})}x(t)&&t(l)}}o.scrollY={...o.scrollY,mode:"default"},o.onWheel=function(t){let o=null,l=0,n=!0;return function(r){if(!t.uuid)return;const a=S(t.uuid);if(!a)return;const{internalData:s}=a,{isHover:i}=t.rowConfig||{},{deltaX:u,deltaY:d}=r,{refTableLeftBody:c,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=d,g=u,v=h<0,x=e(f),y=x?x.$el:null;if(!y)return;if(v?y.scrollTop<=0:y.scrollTop>=y.scrollHeight-y.clientHeight)return;const b=y.scrollTop+h,I=y.scrollLeft+g;if(b===s.lastScrollTop)return;r.preventDefault(),s.lastScrollTop=b,s.lastScrollLeft=I,s.lastScrollTime=Date.now(),i&&a.clearHoverRow();const T=c.value,w=p.value,R=T?T.$el:null,D=w?w.$el:null,H=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=H*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,R&&(R.scrollTop=e),D&&(D.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{F(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),C(e.value.uuid),k(e.value.uuid))}))}))}})}export{L as variableHeightRendererPlugin};
1
+ import{unref as e,onBeforeUnmount as t,shallowReactive as o,createVNode as l,defineComponent as n,inject as r,ref as a,computed as s,provide as i,watch as u,onMounted as d,h as c}from"vue";import{traverse as p,widthAppend as f}from"../../../../../shared/utils/index.js";import{doAnimation as m}from"../../../../../shared/utils/anime.js";import{useThrottleFn as h}from"@vueuse/core";import{promiseTimeout as g}from"@vueuse/shared";import{last as v,isFunction as x,isNumber as y}from"lodash-es";import"../../../index.js";import{EDITABLE_WIDGET_TYPE as b,InjectionIhoTableUUID as I}from"../../constants/index.js";import{useUUIDMap as T,IhoTableUtils as w}from"../../utils/index.js";import{defineTablePlugin as R}from"../../hooks/useTablePlugin.js";class D{constructor(){this.records={},this.maxRecords=o(new Map)}set(e,t,o){if(this.records[e]||(this.records[e]={}),this.records[e][t]===o)return;this.records[e][t]=o;const l=Math.max(...Object.values(this.records[e]),0);this.maxRecords.get(e)!==l&&this.maxRecords.set(e,l)}getMax(e){return this.maxRecords.get(e)||0}}const{getItemFromUUID:H,removeItemFromUUID:M}=T((()=>new D),!0),{getItemFromUUID:S,removeItemFromUUID:C,setItemFromUUID:U}=T((()=>null)),{getItemFromUUID:$,removeItemFromUUID:k,setItemFromUUID:F}=T((()=>{}));let j={};function E(t,o,{scrollTop:l=0}){var n,r;const{uuid:a,rowConfig:s={}}=o;if(!a)return;const i=H(a),{oSize:u=0,gt:d=100}=null!=(n=$(a))?n:{},{internalData:c,reactData:p}=t,{scrollYStore:f,elemStore:m,afterFullData:h,fullDataRowIdData:g}=c;if(d>h.length)return;const y=null!=(r=s.height)?r:36,b=m["main-body-wrapper"],I=b?e(b):null;let T=I?Math.max(8,Math.ceil(I.clientHeight/y)+2+u):8;const w=[0];let R=0;if(l&&h.find(((e,o)=>{const n=t.getRowSeq(e),r=(v(w)||0)+Math.max(y,i.getMax(n));if(w.push(r),r>l)return R=Math.max(0,o-u),T+=Math.min(R,u),!0})),R>0&&x(o.spanMethod)){const{spanMethod:e}=o,l={rowspan:1,colspan:1};for(;R>0;){if(!t.getColumns().some(((t,o)=>{const{rowspan:n,colspan:r}=e({column:t,columnIndex:o,$columnIndex:o,row:h[R],rowIndex:R,$rowIndex:R,_rowIndex:R,isHidden:!t.visible,fixed:t.fixed,type:t.type,visibleData:h})||l;if(0===n&&0===r)return R--,!0})))break}}const D=`${w[R]}px`,M=`${h.reduce(((e,o)=>{const l=t.getRowSeq(o);return e+Math.max(y,i.getMax(l))}),0)}px`;["main","left","right"].forEach((t=>{const o=m[`${t}-body-table`],n=o?e(o):null;n&&(n.style.marginTop=D,n.scrollTop=l),["header","body","footer"].forEach((o=>{const l=m[`${t}-${o}-ySpace`],n=l?e(l):null;n&&(n.style.height=M)}))}));const S=Math.min(h.length,R+T);if(f.startIndex===R&&f.endIndex===S)return;f.startIndex=R,f.endIndex=S;const C=h.slice(f.startIndex,f.endIndex);C.forEach(((e,o)=>{const l=t.getRowid(e),n=g[l];n&&(n.$index=o)})),p.tableData.length=0,p.tableData.push(...C)}const Y=h(E,300);function q(e){var t,o;return(!0===e.variableHeight||"1"===e.variableHeight)&&(null!=(o=null==(t=e.editRender)?void 0:t.name)?o:w.getCellType(e))!==b.SEPARATE}function L(){const o="variableHeightRendererPlugin";return R({name:o,vxe(e){j=n({props:{payload:{type:Object,required:!0}},setup(t){const o=r(I),n=r("$xetable"),p=a(),m=H(o),h=s((()=>t.payload.row[t.payload.column.field]));function v(){const{row:e,column:o}=t.payload,l=n.getRowSeq(e);if(!m||null==l||!p.value)return;const r=p.value.clientHeight;m.set(l,o.field,r)}i("updateCellHeight",v),u([()=>t.payload.rowIndex,()=>t.payload.column.field,h,()=>t.payload.column.renderWidth],(async()=>{await g(0),v()})),d((()=>{n&&!S(o)&&U(o,n),v()}));const b=s((()=>{var o,l,n,r,a;const s=null!=(l=null==(o=t.payload.column.editRender)?void 0:o.props)?l:{},i=null!=(r=null==(n=s.slots)?void 0:n.default)?r:s.slotFn;if(x(i))return i;const u=null==(a=t.payload.column.editRender)?void 0:a.name;if(u){const o=e.renderer.get(u);if(null==o?void 0:o.renderCell)return()=>o.renderCell(t.payload.column.editRender,t.payload)}return()=>h.value})),T=s((()=>{if(t.payload.column.treeNode)return"";const e=t.payload.column.renderWidth;return y(e)&&e>0?f(e-20-2):""}));return()=>l("div",{ref:p,style:{padding:"7px 0",width:T.value,overflow:"hidden"}},[c(b.value,t.payload)])}})},apply(n){function r(t){const o=S(t.uuid);if(!o)return;t.scrollY={enabled:!1},o.reactData.scrollYLoad=!1;const l=function(t){const o=t.internalData.elemStore["main-body-wrapper"];return o?e(o):null}(o);l&&E(o,t,{scrollTop:l.scrollTop})}function a(e){if(!e.uuid)return;const t=$(e.uuid);t&&(e.scrollY=t),setTimeout((()=>r(e)),300)}function s(e){return l(j,{payload:e},null)}n.dataHooks.dataStart.tap(o,a),n.eventHooks.onFilterChange.tap(o,((e,t)=>a(t))),n.eventHooks.onSortChange.tap(o,((e,t)=>a(t))),n.eventHooks.onToggleTreeExpand.tap(o,((e,t)=>a(t))),n.eventHooks.onResizableChange.tap(o,(async({column:e},t)=>{e.editRender&&e.editRender.props&&q(e.editRender.props)&&a(t)})),n.eventHooks.onScroll.tap(o,h(((e,t)=>{if(e.isX)return;const{uuid:o}=t;if(!o)return;const l=S(o);l&&E(l,t,e)}),100,!0,!0)),n.fieldHooks.field.tap(o,(e=>{if(q(e)){e.slots={...e.slots,default:s};const t=e.className,o="variable-height";e.className=t?function(e){return x(t)?[t(e),o]:[t,o]}:o}return e})),n.fieldHooks.fieldList.tap(o,((t,o,{$table:l})=>(o.uuid&&p(t,((t,n)=>{var a,s;if(q(t)){const t=null!=(s=null==(a=o.rowConfig)?void 0:a.height)?s:36,i=H(o.uuid),u=o.cellStyle;if(o.cellStyle=function(e){const o={};if(l.value){const n=Math.max(t,i.getMax(l.value.getRowSeq(e.row)));o.height=`${n}px`}return Object.assign(o,u?x(u)?u(e):u:null)},o.sortableConfig&&o.sortableConfig.enable){const t=o.sortableConfig.onEnd;o.sortableConfig.onEnd=function(l){const n=S(o.uuid);if(n){const{internalData:{elemStore:t}}=n,l=t["main-table-body"];l&&e(l)&&E(n,o,{scrollTop:e(l).scrollTop})}x(t)&&t(l)}}o.scrollY={...o.scrollY,mode:"default"},o.onWheel=function(t){let o=null,l=0,n=!0;return function(r){if(!t.uuid)return;const a=S(t.uuid);if(!a)return;const{internalData:s}=a,{isHover:i}=t.rowConfig||{},{deltaX:u,deltaY:d}=r,{refTableLeftBody:c,refTableRightBody:p,refTableBody:f}=a.getRefMaps(),h=d,g=u,v=h<0,x=e(f),y=x?x.$el:null;if(!y)return;if(v?y.scrollTop<=0:y.scrollTop>=y.scrollHeight-y.clientHeight)return;const b=y.scrollTop+h,I=y.scrollLeft+g;if(b===s.lastScrollTop)return;r.preventDefault(),s.lastScrollTop=b,s.lastScrollLeft=I,s.lastScrollTime=Date.now(),i&&a.clearHoverRow();const T=c.value,w=p.value,R=T?T.$el:null,D=w?w.$el:null,H=Math.min(100,Math.abs(Math.floor(h/2)));n&&(l=y.scrollTop,n=!1),l+=H*(v?-1:1),o&&o(),o=m(y.scrollTop,l,400,(e=>{y.scrollTop=e,R&&(R.scrollTop=e),D&&(D.scrollTop=e)}),"easeOutCubic",(()=>{l=y.scrollTop,n=!0})),Y(a,t,y)}}(o),setTimeout((()=>{F(o.uuid,o.scrollY),r(o)}),300),n()}})),t))),n.setupHooks.setup.tap(o,(e=>{t((()=>{e.value.uuid&&(M(e.value.uuid),C(e.value.uuid),k(e.value.uuid))}))}))}})}export{L as variableHeightRendererPlugin};
@@ -1,4 +1,4 @@
1
- import { AnyObject, ArrayAble, BindEventSettingItem, FormOperationalConfig, LOW_CODE_VALUE_RELATION, MaybeString, TupleToUnion } from '../../../../../es/shared/types';
1
+ import { AnyObject, ArrayAble, BindEventSettingItem, FormOperationalConfig, Func, LOW_CODE_VALUE_RELATION, MaybeString, TupleToUnion } from '../../../../../es/shared/types';
2
2
  import { VxeTableProps, VxeTableDefines, VxeTableInstance, VxeColumnPropTypes, VxeTablePropTypes, VxeTableConstructor } from 'vxe-table';
3
3
  import { VxePagerEventProps } from 'vxe-table/types/pager';
4
4
  import { VxeTableEventProps, VxeTableListeners, VxeTablePrivateMethods } from 'vxe-table/types/table';
@@ -89,6 +89,7 @@ export declare namespace IhoTableLowCodeField {
89
89
  column: VxeTableDefines.ColumnInfo;
90
90
  rowIndex?: number;
91
91
  isFullData?: boolean;
92
+ connectColumn?: VxeTableDefines.ColumnInfo;
92
93
  }) => Promise<AnyObject[]>;
93
94
  }
94
95
  export declare type LowCodeTableFieldItem = {
@@ -122,6 +123,11 @@ export declare type LowCodeTableFieldItem = {
122
123
  headerSlotFn: NonNullable<IhoTableFieldItem['slots']>['header'];
123
124
  editSlotFn: NonNullable<IhoTableFieldItem['slots']>['edit'];
124
125
  footerSlotFn: NonNullable<IhoTableFieldItem['slots']>['footer'];
126
+ separateSlot: AnyObject | Func;
127
+ separateFormatter: (row: AnyObject) => any;
128
+ separateDeep: boolean;
129
+ separateBinder: ArrayAble<string>;
130
+ separateRowEdit: boolean;
125
131
  /**
126
132
  * 即将被废弃,请使用表格外层的beforeEditMethod属性
127
133
  * @deprecated
@@ -174,4 +180,5 @@ export declare type IhoTableSeparateInfo = {
174
180
  originalData: AnyObject;
175
181
  separateIndex: number;
176
182
  separateLength: number;
183
+ ihoTableHandler?: IhoTableHandler;
177
184
  };