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

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 (133) 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 +5 -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 +153 -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 +152 -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 +1 -0
  107. package/es/components/slider-tree/src/utils/index.js +1 -0
  108. package/es/components/slider-tree/style/index.css +1 -0
  109. package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue2.js +1 -1
  110. package/es/components/table-filter/src/hooks/useAdvanced.js +1 -1
  111. package/es/shared/directive/flexibleResize.d.ts +4 -0
  112. package/es/{components/classification/src → shared}/directive/flexibleResize.js +1 -1
  113. package/es/shared/directive/index.d.ts +1 -0
  114. package/es/shared/directive/index.js +1 -0
  115. package/es/shared/package.json.js +1 -1
  116. package/es/shared/types/business.d.ts +7 -0
  117. package/es/shared/utils/index.js +1 -1
  118. package/package.json +2 -2
  119. package/es/components/classification/src/directive/flexibleResize.d.ts +0 -28
  120. package/es/components/iho-select-label/index.d.ts +0 -363
  121. package/es/components/iho-select-label/index.js +0 -1
  122. package/es/components/iho-select-label/src/LabelFormContent.vue.js +0 -1
  123. package/es/components/iho-select-label/src/LabelFormContent.vue2.js +0 -1
  124. package/es/components/iho-select-label/src/SelectLabel.vue.js +0 -1
  125. package/es/components/iho-select-label/src/SelectLabel.vue2.js +0 -1
  126. package/es/components/iho-select-label/src/components/label-classify.vue.js +0 -1
  127. package/es/components/iho-select-label/src/components/label-classify.vue2.js +0 -1
  128. package/es/components/iho-select-label/style/iho-select-label-iconfont.ttf +0 -0
  129. package/es/components/iho-select-label/style/index.css +0 -1
  130. package/es/components/table-filter/src/types/tool.d.ts +0 -7
  131. /package/es/components/{iho-select-label → callback}/src/types/index.js +0 -0
  132. /package/es/components/{iho-select-label → select-label}/src/types/index.d.ts +0 -0
  133. /package/es/components/{table-filter/src/types/tool.js → select-label/src/types/index.js} +0 -0
@@ -1 +1 @@
1
- import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawPoint as e,drawText as i}from"../useDraw.js";import{useBirthProcessCumputedPoint as o}from"../useCumputedPoint.js";import{bus as n}from"../useEvent.js";import{useCommon as r}from"../useCommon.js";import"vue";import{getIndex as a}from"../../utils/index.js";import{cloneDeep as l}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import{OTHER_MENU as s}from"../../constants/index.js";import"naive-ui";import"@vueuse/core";function d(d,c,u,f,h,m,g,p,v){const{cumputedX:x,getXValue:k}=o(c),{getEqualXTypes:y,handleAddPrevent:X,isGridLimit:b}=r(d,u,c),{other:P,yCellHeight:w,xCellWidth:j,endX:C,originX:E,originY:z,endY:A,markHeight:L,event:S,topGridYCellHeight:I}=c,H=new Map,M=l(P);function T(){var o;if(!(null==(o=null==M?void 0:M.horizontal)?void 0:o.length))return;const n="horizontal";H.set(n,[]);const{horizontal:r}=M;let a=z+w/2;r.forEach(((o,r)=>{const{title:l,type:s,pointAttr:c={},textStyle:u={},data:f}=o;let h=null;f.forEach(((o,f)=>{const{time:m,value:g}=o,p=x(m);if(!B(p))return;const v=e(s,{...c,left:p,top:a}),k=p+v.width/2+2,y=i([k,a],{value:g,...u,originX:"left"}),X=new t.Group([v,y],{lockMovementY:!0,objectCaching:!1,hasControls:!1,hasBorders:!1,hoverCursor:"pointer"});Object.assign(X,{originLeft:p,iconHalfWidth:v.width/2,origin:{type:"other",key:n,dataIndex:r,index:f,data:o,title:l},limitX:{x1:E,x2:C-X.width}}),h&&(X.limitX.x1=h.left,h.limitX.x2=X.left,X.prevPoint=h,h.nextPoint=X),h=X,O(X),H.get(n).push(X),d.value.add(X)})),a+=w}))}function W(){var t;if(!(null==(t=null==M?void 0:M.vertical)?void 0:t.length))return;const i="vertical";H.set(i,[]);const{vertical:o}=M;o.forEach(((t,o)=>{const{textStyle:n={},data:r,time:a}=t,l=x(a);if(!B(l))return;let s=z+w/2;r.forEach(((t,r)=>{const a=e(String(t),{...n,lockMovementY:!0,left:l,originX:"left",top:s,origin:{type:"other",key:i,dataIndex:o,index:r,data:{value:t}}});s+=w,O(a),H.get(i).push(a),d.value.add(a)}));const c=H.get(i).filter((t=>t.origin.dataIndex===o)),u=Math.max(...c.map((t=>t.width))),f=l>C-u;c.forEach(((t,e,i)=>{t.siblingPoints=i.filter((e=>e.origin.index!==t.origin.index)),t.maxTextWidth=u,f&&t.setCoords().set("originX","right")}))}))}function Y(t,e="add"){const{dataIndex:i,data:o,index:n,key:r}=t,l=M[r],s=["mark"].includes(r)?l.dataList[i]:l[i];switch(e){case"remove":s.data.splice(n,1);break;case"change":s.data[n]=o;break;default:{const t=Array.isArray(o)?o[0].time:o.time,e=a(t,s.data),i=Array.isArray(o)?o:[o];s.data.splice(e,0,...i);break}}V(t)}function V(t){var e;const{key:i}=t;switch(null==(e=d.value)||e.remove(...H.get(i)),H.delete(i),i){case"horizontal":T();break;case"vertical":W();break;case"mark":G()}}function G(){if(!(null==P?void 0:P.mark)||!L)return;const{title:t,titleStyle:o,pointAttr:n,dataList:r}=P.mark,a=i([E-5,A+L/2],{value:t,...o,originX:"right"});d.value.add(a);const l=A+L,s=[];r.forEach((t=>{const{time:i,list:o=[]}=t,r=x(i);if(!B(r))return;let a=A;o.forEach((t=>{let i=!1;const o=e("circleAndText",{...n,text:t.text,left:r,top:a,origin:{data:t,key:"mark",type:"other"}}),c=o.height;a+c<=l&&a>=A?(o.set("top",a+c/2),a+=c):(i||(a=A,i=!0),o.set("top",a-c/2),a-=c),s.push(o),O(o),d.value.add(o)}))})),function(t){const e=t=>{var e,i;return null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart},i=t.find((t=>e(t))),o=t.find((t=>!e(t)&&t.left>i.left)),n=t.filter((t=>!e(t)));t.forEach((t=>{const r={x1:E,x2:C};e(t)?(r.x2=o.left,t.otherPoints=n):(r.x1=i.left,t.startPoint=i),t.limitX=r}))}(s)}function O(t){if(S.hovered&&(t.on("mouseover",(()=>{q(t)})),t.on("mouseout",(()=>{f.show=!1}))),!S.evented)return;const{key:e}=t.origin,i=["mark","horizontal"].includes(e),o=["mark","vertical"].includes(e);t.on("moving",(()=>{i?function(t){t.setCoords(),t.left<t.limitX.x1&&t.set("left",t.limitX.x1);t.left>t.limitX.x2&&t.set("left",t.limitX.x2);if("mark"===t.origin.key){t.top<z&&t.set("top",z);const e=A+L-t.height/2;t.top>e&&t.set("top",e)}t.originLeft&&t.iconHalfWidth&&(t.originLeft=t.left+t.iconHalfWidth)}(t):(m(t),function(t){const e=t.left+t.maxTextWidth>C?"right":"left";t.setCoords().set({originX:e}),t.siblingPoints.forEach((i=>i.setCoords().set({originX:e,left:t.left})))}(t)),S.hovered&&q(t)})),t.on("mouseup",(n=>{var r;if(f.show=!1,1===n.button){i&&function(t){var e,i;if("mark"===t.origin.key){if((null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart)&&t.otherPoints)t.otherPoints.forEach((e=>{e.limitX.x1=t.left}));else{const e=t.startPoint.otherPoints.map((t=>t.left)),i=Math.min(...e);t.startPoint.limitX.x2=i}return}t.prevPoint&&(t.prevPoint.limitX.x2=t.left);t.nextPoint&&(t.nextPoint.limitX.x1=t.left)}(t);const e=k(null!=(r=t.originLeft)?r:t.left),n={...t.origin,...o?{time:e}:{data:{...t.origin.data,time:e}}};d.value.discardActiveObject(),u("change",n)}3===n.button&&["horizontal","vertical"].includes(e)&&(h.point={x:t.left,y:t.top},h.show=!0,h.target=t,h.list=s.map((t=>({...t,renderItem:()=>t.label}))))}))}function q(t){var e;f.point={x:t.left,y:"mark"===t.origin.key?t.top:t.top+I/2},f.list=[`时间 ${k(null!=(e=t.originLeft)?e:t.left).slice(-5)}`],"mark"===t.origin.key&&f.list.unshift(t.origin.data.name+" "),f.show=!0}function B(t){return t>=E&&t<=C}return function(){var t;if(!(null==(t=null==M?void 0:M.horizontal)?void 0:t.length))return;const{horizontal:i}=M,o=E-5;let n=z+w/2;i.forEach(((t,i)=>{const{title:r,titleStyle:a={},defaultAddValue:l}=t,s=r&&e(r,{...a,originX:"right",left:o,top:n,origin:{defaultAddValue:l,dataIndex:i,type:"other",key:"horizontal",title:r},originLeft:o,originTop:n});var c;(c=s).on("moving",(()=>{c.set("originX","center"),b(c)?q(c):f.show=!1})),c.on("mouseup:before",(t=>{if(f.show=!1,0===t.e.button&&b(c))if(y(H.get("horizontal"),c.left,"key",j).includes(c.origin.key))X("repeat");else{const t={data:{time:k(c.left),value:c.origin.defaultAddValue},...c.origin};u("add",t),Y(t)}!function(t){t.setCoords().set({originX:"right",left:t.originLeft,top:t.originTop})}(c)})),d.value.add(s),n+=w}))}(),T(),W(),G(),n.on((()=>{const t="horizontal",e=g(H.get(t));e.length>0?p((()=>{const i=function(t){const e=t.reduce(((t,e)=>{const{dataIndex:i}=e.origin;return t[i]=t[i]?t[i].concat(e.origin):[e.origin],t}),{});return Object.keys(e).map((t=>{const i=e[t];return M.horizontal[t].data.splice(i[0].index,i.length),i})).flat()}(e);V({key:t}),u("remove",i)})):v()})),{clickMenu:function({item:t,target:e}){if(!e)return;const{type:i}=t,o={...e.origin,type:"other"};u(i,o),"remove"===i&&Y(o,i)}}}export{d as useOther};
1
+ import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawPoint as e,drawText as i}from"../useDraw.js";import{useBirthProcessCumputedPoint as o}from"../useCumputedPoint.js";import{bus as n}from"../useEvent.js";import{useCommon as r}from"../useCommon.js";import"vue";import{getIndex as a}from"../../utils/index.js";import{cloneDeep as l}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import{OTHER_MENU as s}from"../../constants/index.js";import"naive-ui";import"@vueuse/core";function d(d,c,u,f,h,m,g,p,v){const{cumputedX:x,getXValue:k}=o(c),{getEqualXTypes:y,handleAddPrevent:X,isGridLimit:b}=r(d,u,c),{other:P,yCellHeight:w,xCellWidth:j,endX:z,originX:C,originY:E,endY:A,markHeight:L,event:M,topGridYCellHeight:S}=c,I=new Map,T=l(P);function H(){var o;if(!(null==(o=null==T?void 0:T.horizontal)?void 0:o.length))return;const n="horizontal";I.set(n,[]);const{horizontal:r}=T;let a=E+w/2;r.forEach(((o,r)=>{const{title:l,type:s,pointAttr:c={},textStyle:u={},data:f}=o;let h=null;f.forEach(((o,f)=>{const{time:m,value:g}=o,p=x(m);if(!B(p))return;const v=e(s,{...c,left:p,top:a}),k=p+v.width/2+2,y=i([k,a],{value:g,...u,originX:"left"}),X=new t.Group([v,y],{lockMovementY:!0,objectCaching:!1,hasControls:!1,hasBorders:!1,hoverCursor:"pointer"});Object.assign(X,{originLeft:p,iconHalfWidth:v.width/2,origin:{type:"other",key:n,dataIndex:r,index:f,data:o,title:l},limitX:{x1:C,x2:z-X.width}}),h&&(X.limitX.x1=h.left,h.limitX.x2=X.left,X.prevPoint=h,h.nextPoint=X),h=X,O(X),I.get(n).push(X),d.value.add(X)})),a+=w}))}function W(){var t;if(!(null==(t=null==T?void 0:T.vertical)?void 0:t.length))return;const i="vertical";I.set(i,[]);const{vertical:o}=T;o.forEach(((t,o)=>{const{textStyle:n={},data:r,time:a}=t,l=x(a);if(!B(l))return;let s=E+w/2;r.forEach(((t,r)=>{const a=e(String(t),{...n,lockMovementY:!0,left:l,originX:"left",top:s,origin:{type:"other",key:i,dataIndex:o,index:r,data:{value:t}}});s+=w,O(a),I.get(i).push(a),d.value.add(a)}));const c=I.get(i).filter((t=>t.origin.dataIndex===o)),u=Math.max(...c.map((t=>t.width))),f=l>z-u;c.forEach(((t,e,i)=>{t.siblingPoints=i.filter((e=>e.origin.index!==t.origin.index)),t.maxTextWidth=u,f&&t.setCoords().set("originX","right")}))}))}function Y(t,e="add"){const{dataIndex:i,data:o,index:n,key:r}=t,l=T[r],s=["mark"].includes(r)?l.dataList[i]:l[i];switch(e){case"remove":s.data.splice(n,1);break;case"change":s.data[n]=o;break;default:{const t=Array.isArray(o)?o[0].time:o.time,e=a(t,s.data),i=Array.isArray(o)?o:[o];s.data.splice(e,0,...i);break}}V(t)}function V(t){var e;const{key:i}=t;switch(null==(e=d.value)||e.remove(...I.get(i)),I.delete(i),i){case"horizontal":H();break;case"vertical":W();break;case"mark":G()}}function G(){if(!(null==P?void 0:P.mark)||!L)return;const{title:t,titleStyle:o,pointAttr:n,dataList:r}=P.mark,a=i([C-5,A+L/2],{value:t,...o,originX:"right"});d.value.add(a);const l=A+L,s=[];r.forEach((t=>{const{time:i,list:o=[]}=t,r=x(i);if(!B(r))return;let a=A;o.forEach((t=>{let i=!1;const o=e("circleAndText",{...n,text:t.text,left:r,top:a,origin:{data:t,key:"mark",type:"other"}}),c=o.height;a+c<=l&&a>=A?(o.set("top",a+c/2),a+=c):(i||(a=A,i=!0),o.set("top",a-c/2),a-=c),s.push(o),O(o),d.value.add(o)}))})),function(t){const e=t=>{var e,i;return null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart},i=t.find((t=>e(t))),o=t.find((t=>!e(t)&&t.left>i.left)),n=t.filter((t=>!e(t)));t.forEach((t=>{const r={x1:C,x2:z};e(t)?(r.x2=o.left,t.otherPoints=n):(r.x1=i.left,t.startPoint=i),t.limitX=r}))}(s)}function O(t){if(M.hovered&&(t.on("mouseover",(()=>{q(t)})),t.on("mouseout",(()=>{f.show=!1}))),!M.evented)return;const{key:e}=t.origin,i=["mark","horizontal"].includes(e),o=["mark","vertical"].includes(e);t.on("moving",(()=>{i?function(t){const e=t.origin.key,i="horizontal"===e;t.setCoords(),t.left<t.limitX.x1&&t.set("left",t.limitX.x1+(i?1:0));t.left>t.limitX.x2&&t.set("left",t.limitX.x2+(i?-1:0));if("mark"===e){t.top<E&&t.set("top",E);const e=A+L-t.height/2;t.top>e&&t.set("top",e)}i&&(t.originLeft=t.left+t.iconHalfWidth)}(t):(m(t),function(t){const e=t.left+t.maxTextWidth>z?"right":"left";t.setCoords().set({originX:e}),t.siblingPoints.forEach((i=>i.setCoords().set({originX:e,left:t.left})))}(t)),M.hovered&&q(t)})),t.on("mouseup",(n=>{var r;if(f.show=!1,1===n.button){i&&function(t){var e,i;if("mark"===t.origin.key){if((null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart)&&t.otherPoints)t.otherPoints.forEach((e=>{e.limitX.x1=t.left}));else{const e=t.startPoint.otherPoints.map((t=>t.left)),i=Math.min(...e);t.startPoint.limitX.x2=i}return}t.prevPoint&&(t.prevPoint.limitX.x2=t.left);t.nextPoint&&(t.nextPoint.limitX.x1=t.left)}(t);const e=k(null!=(r=t.originLeft)?r:t.left),n={...t.origin,...o?{time:e}:{data:{...t.origin.data,time:e}}};d.value.discardActiveObject(),u("change",n)}3===n.button&&["horizontal","vertical"].includes(e)&&(h.point={x:t.left,y:t.top},h.show=!0,h.target=t,h.list=s.map((t=>({...t,renderItem:()=>t.label}))))}))}function q(t){f.point={x:t.left,y:"mark"===t.origin.key?t.top:t.top+S/2};const e=!t.origin.isMenu&&t.originLeft?t.originLeft:t.left;f.list=[`时间 ${k(e).slice(-5)}`],"mark"===t.origin.key&&f.list.unshift(t.origin.data.name+" "),f.show=!0}function B(t){return t>=C&&t<=z}return function(){var t;if(!(null==(t=null==T?void 0:T.horizontal)?void 0:t.length))return;const{horizontal:i}=T,o=C-5;let n=E+w/2;i.forEach(((t,i)=>{const{title:r,titleStyle:a={},defaultAddValue:l}=t,s=r&&e(r,{...a,originX:"right",left:o,top:n,origin:{defaultAddValue:l,dataIndex:i,type:"other",key:"horizontal",title:r,isMenu:!0},originLeft:o,originTop:n});var c;(c=s).on("moving",(()=>{c.set("originX","center"),b(c)?q(c):f.show=!1})),c.on("mouseup:before",(t=>{if(f.show=!1,0===t.e.button&&b(c))if(y(I.get("horizontal"),c.left,"key",j).includes(c.origin.key))X("repeat"),console.log("重复节点");else{const t={data:{time:k(c.left),value:c.origin.defaultAddValue},...c.origin};u("add",t),Y(t)}!function(t){t.setCoords().set({originX:"right",left:t.originLeft,top:t.originTop})}(c)})),d.value.add(s),n+=w}))}(),H(),W(),G(),n.on((()=>{const t="horizontal",e=g(I.get(t));e.length>0?p((()=>{const i=function(t){const e=t.reduce(((t,e)=>{const{dataIndex:i}=e.origin;return t[i]=t[i]?t[i].concat(e.origin):[e.origin],t}),{});return Object.keys(e).map((t=>{const i=e[t];return T.horizontal[t].data.splice(i[0].index,i.length),i})).flat()}(e);V({key:t}),u("remove",i)})):v()})),{clickMenu:function({item:t,target:e}){if(!e)return;const{type:i}=t,o={...e.origin,type:"other"};u(i,o),"remove"===i&&Y(o,i)}}}export{d as useOther};
@@ -1 +1 @@
1
- import{ref as e,computed as t,reactive as a,onMounted as l,nextTick as u}from"vue";import{defaultBorderStyle as i}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{useCumputedPoint as r}from"../useCumputedPoint.js";import{useCanvasEvent as n}from"../useEvent.js";import{setOtherType as o,getFloorNumber as s}from"../../utils/index.js";import"lodash-es";import{format as d,addDays as v}from"date-fns";import"naive-ui";import"@vueuse/core";import{useTop as c}from"./useTop.js";import{useLeft as p}from"./useLeft.js";import{useRight as h}from"./useRight.js";import{useCenter as g}from"./useCenter.js";import{useBottom as m}from"./useBottom.js";import{useOther as f}from"./useOther.js";function y(y,Y,S,b,w,C){const x=15,D=e(),j=e(),V=e(),X=t((()=>{const{top:e}=Y.data;return e.date.show&&(e.date.height||x)||0})),H=t((()=>{var e;const{top:t}=Y.data;return(null==(e=t.hospitalDays)?void 0:e.show)&&(t.hospitalDays.height||x)||0})),L=t((()=>{var e;const{top:t}=Y.data;return(null==(e=t.operationDays)?void 0:e.show)&&(t.operationDays.height||x)||0})),I=t((()=>{var e,t,a;const{top:l}=Y.data;return((null==(e=l.xScalevalue)?void 0:e.show)&&(l.xScalevalue.height||x)||0)+((null==(t=l.xScalevalue)?void 0:t.show)&&null!=(a=l.dayHeight)?a:0)})),M=t((()=>{var e;const{bottom:t}=Y.data;return(null==(e=null==t?void 0:t.breathing)?void 0:e.show)&&(t.breathing.height||30)||0})),P=t((()=>{const{grid:e}=Y.data;return e.mainXCell*e.subXCell+e.surplusXCell})),N=t((()=>{const{grid:e}=Y.data;return e.mainYCell*e.subYCell+e.surplusYCell})),O=t((()=>{var e;const{width:t,right:a=null,top:l}=Y.data;if(!a)return t;return t-(null!=(e=a.width)?e:0)})),W=t((()=>{const{grid:e}=Y.data;return O.value-e.surplusXCell*q.value})),$=t((()=>{const{top:e,left:t}=Y.data;return e.titleWidth+T.value})),k=t((()=>{const{bottom:e=null,height:t}=Y.data;if(!e)return t;return t-(e.height||30)})),G=t((()=>{var e;const{top:t}=Y.data,a=t.xScalevalue.show&&(null!=(e=t.dayHeight)?e:0)||0,l=t.xScalevalue.show&&(t.xScalevalue.height||x)||0;return X.value+a+l+H.value+L.value})),R=t((()=>{const{grid:e}=Y.data;return G.value+e.surplusYCell*z.value})),q=t((()=>(O.value-$.value)/P.value)),z=t((()=>(k.value-G.value)/N.value)),T=t((()=>{var e,t;const{left:a}=Y.data;return(null==(e=a.icons)?void 0:e.show)&&((null==(t=a.icons)?void 0:t.width)||100)||0})),A=t((()=>{var e,t;const{top:a,grid:l}=Y.data,u=(null==(t=null==(e=a.date.list)?void 0:e.slice)?void 0:t.call(e,0,l.mainXCell))||[],i=a.xScalevalue.times;let r=$.value-q.value;const n=a.date.startDate||d(new Date,"yyyy-MM-dd");return u.reduce(((e,t,a)=>0===a?e.concat(n):e.concat(d(v(new Date(n.replace(/-/g,"/")),a),"yyyy-MM-dd"))),[]).map((e=>i.map((t=>{r+=q.value;const a=Date.parse(`${e} ${t.start}`),l=Date.parse(`${e} ${t.end}`);return{start:a,end:l,left:r,center:r+q.value/2,scaleCell:(l-a)/q.value}})))).flat()})),B=t((()=>ue("breathe"))),E=t((()=>ue("pulse"))),F=t((()=>ue("temperature"))),J=t((()=>ue("pain"))),K=t((()=>{var e;return(null==(e=Y.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),Q=t((()=>{const{left:e}=Y.data;return e.yScaleValue.map((e=>e.dataList.filter((e=>e.show)).map(((t,a)=>({...t,bigType:o(t.title,e.type),unit:e.unit,dataIndex:a}))))).flat()})),U=t((()=>{const{left:e}=Y.data;return e.yScaleValue.findIndex((e=>"pain"===e.type))})),Z=t((()=>{const{grid:e}=Y.data;return-1===U.value?0:z.value*e.subYCell})),_=t((()=>{const{left:e}=Y.data,t={originY:k.value,endY:k.value};return 0===U.value&&e.yScaleValue.length>1?(t.originY=R.value,t.endY=R.value+Z.value):U.value===e.yScaleValue.length-1&&(t.originY=k.value-Z.value,t.endY=k.value),t})),ee=t((()=>{const{left:e}=Y.data,t={originY:G.value,endY:k.value};return 0===U.value&&e.yScaleValue.length>1?(t.originY=R.value+Z.value,t.endY=k.value):U.value===e.yScaleValue.length-1&&(t.originY=R.value,t.endY=k.value-Z.value),t})),te=t((()=>{var e,t;const{top:a,grid:l}=Y.data,u=[];for(const i in a)a[i].show&&u.push({...a[i],list:(null==(t=null==(e=a[i].list)?void 0:e.slice)?void 0:t.call(e,0,l.mainXCell))||[],key:i});return u.sort(((e,t)=>e.seq-t.seq))})),ae=t((()=>{var e;const{left:t,right:a}=Y.data,l=t.yScaleValue.find((e=>"temperature"===e.type)),u=(null==a?void 0:a.yScaleValue)||{};return(null==(e=null==l?void 0:l.list)?void 0:e.length)&&Object.assign(u,{list:l.list.map((e=>s(1.8*e+32))),spaceGridNumber:l.spaceGridNumber}),u})),le=a({canvasWidth:Y.data.width,canvasHeight:Y.data.height,borderStyle:{...i,...Y.data.borderStyle||{}},selectionStyle:Y.data.selectionStyle||{},dateHeight:X.value,hospitalDaysHeight:H.value,operationDaysHeight:L.value,xScalevalueHeight:I.value,topList:te.value,breathingHeight:M.value,hospitalizationDate:Y.data.hospitalizationDate,grid:Y.data.grid,top:Y.data.top,left:Y.data.left,right:Y.data.right,bottom:Y.data.bottom,other:Y.data.other,painIndex:U.value,painHeight:Z.value,painOriginY:_.value,vitalSignsOriginY:ee.value,gridXNumber:P.value,gridYNumber:N.value,iconsWidth:T.value,originX:$.value,originY:G.value,originYLimit:R.value,endX:O.value,endXLimit:W.value,endY:k.value,xCellWidth:q.value,yCellHeight:z.value,xScaleList:A.value,breatheYCell:B.value,pulseYCell:E.value,temperatureYCell:F.value,painYCell:J.value,event:K.value,itemList:Q.value,getRightInfo:ae.value,config:Y.data.config||{}});function ue(e){const{yScaleValue:t}=Y.data.left,a=t.find((t=>t.type===e)),l=(null==a?void 0:a.list)||[];return l.length?z.value/((l[1]-l[0])/a.spaceGridNumber):0}const{cumputedX:ie,cumputedY:re,getXValue:ne,getYValue:oe}=r(le);return l((()=>{u((()=>{c(y,le);const{setPopup:e,isAddPoint:t,updateData:a,redrawPoints:l,clickMenu:u,gridPoints:i}=g(y,le,S,ie,re,ne,oe,Y.addRenderItem,w,C);j.value=l,V.value=u;const{drawScaleValue:r}=p(y,le,S,e,w,ie,re,ne,oe,t,a,i);h(y,le,r),m(y,le),f(y,le,ie);const{select:o}=n(y,le,S);D.value=o}))})),{propItems:le,redrawPoints:j,select:D,clickMenu:V}}export{y as useTemperatureChart};
1
+ import{ref as e,computed as t,reactive as a,watch as l}from"vue";import{defaultBorderStyle as u}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{useCumputedPoint as i}from"../useCumputedPoint.js";import{useCanvasEvent as r}from"../useEvent.js";import{setOtherType as n,getFloorNumber as o}from"../../utils/index.js";import"lodash-es";import{format as s,addDays as d}from"date-fns";import"naive-ui";import"@vueuse/core";import{useTop as v}from"./useTop.js";import{useLeft as c}from"./useLeft.js";import{useRight as p}from"./useRight.js";import{useCenter as h}from"./useCenter.js";import{useBottom as g}from"./useBottom.js";import{useOther as m}from"./useOther.js";function f(f,y,Y,S,b,w){const C=15,x=e(),D=e(),j=e(),V=t((()=>{const{top:e}=y.data;return e.date.show&&(e.date.height||C)||0})),X=t((()=>{var e;const{top:t}=y.data;return(null==(e=t.hospitalDays)?void 0:e.show)&&(t.hospitalDays.height||C)||0})),H=t((()=>{var e;const{top:t}=y.data;return(null==(e=t.operationDays)?void 0:e.show)&&(t.operationDays.height||C)||0})),L=t((()=>{var e,t,a;const{top:l}=y.data;return((null==(e=l.xScalevalue)?void 0:e.show)&&(l.xScalevalue.height||C)||0)+((null==(t=l.xScalevalue)?void 0:t.show)&&null!=(a=l.dayHeight)?a:0)})),I=t((()=>{var e;const{bottom:t}=y.data;return(null==(e=null==t?void 0:t.breathing)?void 0:e.show)&&(t.breathing.height||30)||0})),M=t((()=>{const{grid:e}=y.data;return e.mainXCell*e.subXCell+e.surplusXCell})),P=t((()=>{const{grid:e}=y.data;return e.mainYCell*e.subYCell+e.surplusYCell})),N=t((()=>{var e;const{width:t,right:a=null,top:l}=y.data;if(!a)return t;return t-(null!=(e=a.width)?e:0)})),O=t((()=>{const{grid:e}=y.data;return N.value-e.surplusXCell*R.value})),W=t((()=>{const{top:e,left:t}=y.data;return e.titleWidth+z.value})),$=t((()=>{const{bottom:e=null,height:t}=y.data;if(!e)return t;return t-(e.height||30)})),k=t((()=>{var e;const{top:t}=y.data,a=t.xScalevalue.show&&(null!=(e=t.dayHeight)?e:0)||0,l=t.xScalevalue.show&&(t.xScalevalue.height||C)||0;return V.value+a+l+X.value+H.value})),G=t((()=>{const{grid:e}=y.data;return k.value+e.surplusYCell*q.value})),R=t((()=>(N.value-W.value)/M.value)),q=t((()=>($.value-k.value)/P.value)),z=t((()=>{var e,t;const{left:a}=y.data;return(null==(e=a.icons)?void 0:e.show)&&((null==(t=a.icons)?void 0:t.width)||100)||0})),T=t((()=>{var e,t;const{top:a,grid:l}=y.data,u=(null==(t=null==(e=a.date.list)?void 0:e.slice)?void 0:t.call(e,0,l.mainXCell))||[],i=a.xScalevalue.times;let r=W.value-R.value;const n=a.date.startDate||s(new Date,"yyyy-MM-dd");return u.reduce(((e,t,a)=>0===a?e.concat(n):e.concat(s(d(new Date(n.replace(/-/g,"/")),a),"yyyy-MM-dd"))),[]).map((e=>i.map((t=>{r+=R.value;const a=Date.parse(`${e} ${t.start}`),l=Date.parse(`${e} ${t.end}`);return{start:a,end:l,left:r,center:r+R.value/2,scaleCell:(l-a)/R.value}})))).flat()})),A=t((()=>le("breathe"))),B=t((()=>le("pulse"))),E=t((()=>le("temperature"))),F=t((()=>le("pain"))),J=t((()=>{var e;return(null==(e=y.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),K=t((()=>{const{left:e}=y.data;return e.yScaleValue.map((e=>e.dataList.filter((e=>e.show)).map(((t,a)=>({...t,bigType:n(t.title,e.type),unit:e.unit,dataIndex:a}))))).flat()})),Q=t((()=>{const{left:e}=y.data;return e.yScaleValue.findIndex((e=>"pain"===e.type))})),U=t((()=>{const{grid:e}=y.data;return-1===Q.value?0:q.value*e.subYCell})),Z=t((()=>{const{left:e}=y.data,t={originY:$.value,endY:$.value};return 0===Q.value&&e.yScaleValue.length>1?(t.originY=G.value,t.endY=G.value+U.value):Q.value===e.yScaleValue.length-1&&(t.originY=$.value-U.value,t.endY=$.value),t})),_=t((()=>{const{left:e}=y.data,t={originY:k.value,endY:$.value};return 0===Q.value&&e.yScaleValue.length>1?(t.originY=G.value+U.value,t.endY=$.value):Q.value===e.yScaleValue.length-1&&(t.originY=G.value,t.endY=$.value-U.value),t})),ee=t((()=>{var e,t;const{top:a,grid:l}=y.data,u=[];for(const i in a)a[i].show&&u.push({...a[i],list:(null==(t=null==(e=a[i].list)?void 0:e.slice)?void 0:t.call(e,0,l.mainXCell))||[],key:i});return u.sort(((e,t)=>e.seq-t.seq))})),te=t((()=>{var e;const{left:t,right:a}=y.data,l=t.yScaleValue.find((e=>"temperature"===e.type)),u=(null==a?void 0:a.yScaleValue)||{};return(null==(e=null==l?void 0:l.list)?void 0:e.length)&&Object.assign(u,{list:l.list.map((e=>o(1.8*e+32))),spaceGridNumber:l.spaceGridNumber}),u})),ae=a({canvasWidth:y.data.width,canvasHeight:y.data.height,borderStyle:{...u,...y.data.borderStyle||{}},selectionStyle:y.data.selectionStyle||{},dateHeight:V.value,hospitalDaysHeight:X.value,operationDaysHeight:H.value,xScalevalueHeight:L.value,topList:ee.value,breathingHeight:I.value,hospitalizationDate:y.data.hospitalizationDate,grid:y.data.grid,top:y.data.top,left:y.data.left,right:y.data.right,bottom:y.data.bottom,other:y.data.other,painIndex:Q.value,painHeight:U.value,painOriginY:Z.value,vitalSignsOriginY:_.value,gridXNumber:M.value,gridYNumber:P.value,iconsWidth:z.value,originX:W.value,originY:k.value,originYLimit:G.value,endX:N.value,endXLimit:O.value,endY:$.value,xCellWidth:R.value,yCellHeight:q.value,xScaleList:T.value,breatheYCell:A.value,pulseYCell:B.value,temperatureYCell:E.value,painYCell:F.value,event:J.value,itemList:K.value,getRightInfo:te.value,config:y.data.config||{}});function le(e){const{yScaleValue:t}=y.data.left,a=t.find((t=>t.type===e)),l=(null==a?void 0:a.list)||[];return l.length?q.value/((l[1]-l[0])/a.spaceGridNumber):0}const{cumputedX:ue,cumputedY:ie,getXValue:re,getYValue:ne}=i(ae);return l((()=>f.value),(e=>{e&&function(){v(f,ae);const{setPopup:e,isAddPoint:t,updateData:a,redrawPoints:l,clickMenu:u,gridPoints:i}=h(f,ae,Y,ue,ie,re,ne,y.addRenderItem,b,w);D.value=l,j.value=u;const{drawScaleValue:n}=c(f,ae,Y,e,b,ue,ie,re,ne,t,a,i);p(f,ae,n),g(f,ae),m(f,ae,ue);const{select:o}=r(f,ae,Y);x.value=o}()}),{immediate:!0}),{propItems:ae,redrawPoints:D,select:x,clickMenu:j}}export{f as useTemperatureChart};
@@ -1 +1 @@
1
- .c-fabric-chart-popup-menu,.c-fabric-chart-popup-tip{display:flex;flex-flow:column nowrap;font-size:12px;margin:0;padding:8px 12px;position:absolute;z-index:1001}.c-fabric-chart-popup-menu>li,.c-fabric-chart-popup-tip>li{list-style:none}.c-fabric-chart-popup-tip{background:rgba(0,0,0,.7);border-radius:4px}.c-fabric-chart-popup-tip>li{color:#fff}.c-fabric-chart-popup-menu{background:#fff;border:1px solid #e2e6ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(56,56,56,.2);padding:8px 5px!important;z-index:1001}.c-fabric-chart-popup-menu>li{background:#fff;cursor:pointer;padding:5px}.c-fabric-chart-popup-menu>li:hover{background:#f0f7ff}.c-fabric-chart-popup-menu>li.no-click{cursor:default}.c-fabric-chart-popup-menu>li.no-click:hover{background:#fff}
1
+ .c-fabric-chart{position:relative;user-select:none}.c-fabric-chart-popup-menu,.c-fabric-chart-popup-tip{display:flex;flex-flow:column nowrap;font-size:12px;margin:0;padding:8px 12px;position:absolute;z-index:1001}.c-fabric-chart-popup-menu>li,.c-fabric-chart-popup-tip>li{list-style:none}.c-fabric-chart-popup-tip{background:rgba(0,0,0,.7);border-radius:4px}.c-fabric-chart-popup-tip>li{color:#fff}.c-fabric-chart-popup-menu{background:#fff;border:1px solid #e2e6ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(56,56,56,.2);padding:8px 5px!important;z-index:1001}.c-fabric-chart-popup-menu>li{background:#fff;cursor:pointer;padding:5px}.c-fabric-chart-popup-menu>li:hover{background:#f0f7ff}.c-fabric-chart-popup-menu>li.no-click{cursor:default}.c-fabric-chart-popup-menu>li.no-click:hover{background:#fff}
@@ -7839,7 +7839,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
7839
7839
  onKeydown: (event: KeyboardEvent) => Promise<void>;
7840
7840
  clearSpan: (uuid: string) => void;
7841
7841
  exposeEvent: {
7842
- validate(path?: string): Promise<void>;
7842
+ validate(path?: string, { force }?: {
7843
+ force?: boolean | undefined;
7844
+ }): Promise<void>;
7843
7845
  getFormValues(needCombineExtendKey?: boolean): any;
7844
7846
  setFormValues(values: import("../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
7845
7847
  setFieldState(path: string, setter: (field: Partial<Pick<import("@formily/core").Field<any, any, any, any>, import("@formily/core").NonFunctionPropertyNames<{
@@ -14221,7 +14223,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
14221
14223
  onKeydown: (event: KeyboardEvent) => Promise<void>;
14222
14224
  clearSpan: (uuid: string) => void;
14223
14225
  exposeEvent: {
14224
- validate(path?: string): Promise<void>;
14226
+ validate(path?: string, { force }?: {
14227
+ force?: boolean | undefined;
14228
+ }): Promise<void>;
14225
14229
  getFormValues(needCombineExtendKey?: boolean): any;
14226
14230
  setFormValues(values: import("../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
14227
14231
  setFieldState(path: string, setter: (field: Partial<Pick<import("@formily/core").Field<any, any, any, any>, import("@formily/core").NonFunctionPropertyNames<{
@@ -7841,7 +7841,9 @@ declare const _default: import("vue").DefineComponent<{
7841
7841
  onKeydown: (event: KeyboardEvent) => Promise<void>;
7842
7842
  clearSpan: (uuid: string) => void;
7843
7843
  exposeEvent: {
7844
- validate(path?: string): Promise<void>;
7844
+ validate(path?: string, { force }?: {
7845
+ force?: boolean | undefined;
7846
+ }): Promise<void>;
7845
7847
  getFormValues(needCombineExtendKey?: boolean): any;
7846
7848
  setFormValues(values: import("../../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
7847
7849
  setFieldState(path: string, setter: (field: Partial<Pick<import("../../../../es/components/form-render").Field<any, any, any, any>, import("../../../../es/components/form-render").NonFunctionPropertyNames<{
@@ -14223,7 +14225,9 @@ declare const _default: import("vue").DefineComponent<{
14223
14225
  onKeydown: (event: KeyboardEvent) => Promise<void>;
14224
14226
  clearSpan: (uuid: string) => void;
14225
14227
  exposeEvent: {
14226
- validate(path?: string): Promise<void>;
14228
+ validate(path?: string, { force }?: {
14229
+ force?: boolean | undefined;
14230
+ }): Promise<void>;
14227
14231
  getFormValues(needCombineExtendKey?: boolean): any;
14228
14232
  setFormValues(values: import("../../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
14229
14233
  setFieldState(path: string, setter: (field: Partial<Pick<import("../../../../es/components/form-render").Field<any, any, any, any>, import("../../../../es/components/form-render").NonFunctionPropertyNames<{
@@ -573,7 +573,9 @@ declare const _default: import("vue").DefineComponent<{}, {
573
573
  onKeydown: (event: KeyboardEvent) => Promise<void>;
574
574
  clearSpan: (uuid: string) => void;
575
575
  exposeEvent: {
576
- validate(path?: string): Promise<void>;
576
+ validate(path?: string, { force }?: {
577
+ force?: boolean | undefined;
578
+ }): Promise<void>;
577
579
  getFormValues(needCombineExtendKey?: boolean): any;
578
580
  setFormValues(values: AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
579
581
  setFieldState(path: string, setter: (field: Partial<Pick<import("../../../../../es/components/form-render").Field<any, any, any, any>, import("../../../../../es/components/form-render").NonFunctionPropertyNames<{
@@ -5945,7 +5945,9 @@ declare const _default: import("vue").DefineComponent<{
5945
5945
  onKeydown: (event: KeyboardEvent) => Promise<void>;
5946
5946
  clearSpan: (uuid: string) => void;
5947
5947
  exposeEvent: {
5948
- validate(path?: string): Promise<void>;
5948
+ validate(path?: string, { force }?: {
5949
+ force?: boolean | undefined;
5950
+ }): Promise<void>;
5949
5951
  getFormValues(needCombineExtendKey?: boolean): any;
5950
5952
  setFormValues(values: import("../../../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
5951
5953
  setFieldState(path: string, setter: (field: Partial<Pick<import("../../../../../es/components/form-render").Field<any, any, any, any>, import("../../../../../es/components/form-render").NonFunctionPropertyNames<{
@@ -560,7 +560,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{}, {
560
560
  onKeydown: (event: KeyboardEvent) => Promise<void>;
561
561
  clearSpan: (uuid: string) => void;
562
562
  exposeEvent: {
563
- validate(path?: string): Promise<void>;
563
+ validate(path?: string, { force }?: {
564
+ force?: boolean | undefined;
565
+ }): Promise<void>;
564
566
  getFormValues(needCombineExtendKey?: boolean): any;
565
567
  setFormValues(values: import("../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
566
568
  setFieldState(path: string, setter: (field: Partial<Pick<import("@formily/core/esm/models/Field").Field<any, any, any, any>, import("@formily/core/esm/types").NonFunctionPropertyNames<{
@@ -555,7 +555,9 @@ declare const _default: import("vue").DefineComponent<{
555
555
  onKeydown: (event: KeyboardEvent) => Promise<void>;
556
556
  clearSpan: (uuid: string) => void;
557
557
  exposeEvent: {
558
- validate(path?: string): Promise<void>;
558
+ validate(path?: string, { force }?: {
559
+ force?: boolean | undefined;
560
+ }): Promise<void>;
559
561
  getFormValues(needCombineExtendKey?: boolean): any;
560
562
  setFormValues(values: AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
561
563
  setFieldState(path: string, setter: (field: Partial<Pick<Field<any, any, any, any>, import("@formily/core").NonFunctionPropertyNames<{
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,computed as t,provide as r,onMounted as s,onUnmounted as a,nextTick as i,openBlock as l,createBlock as n,unref as m,normalizeClass as d,normalizeStyle as p,withCtx as u,createElementBlock as c,createVNode as f,isRef as h,Fragment as y,renderList as g,createCommentVNode as j,createElementVNode as b,withKeys as k,toDisplayString as v,renderSlot as F}from"vue";import{useTheme as C}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as S,cloneDeep as H,isObject as x,isBoolean as A}from"lodash-es";import{createForm as L,onFieldValueChange as B,onFieldMount as O,onFieldUnmount as R,onFieldReact as w,onFormMount as _}from"@formily/core";import{FormProvider as D,FormConsumer as V}from"@formily/vue";import{NForm as I,NTabs as N,NTabPane as q,NConfigProvider as W}from"naive-ui";import{InjectionFormLifeCycleCaller as E,InjectionFormGraph as K}from"./constants/index.js";import{useAutoHidden as T}from"./hooks/useAutoHidden.js";import{useComplexOptionsSpan as U}from"./hooks/useComplexOptions.js";import{useFormDomEvent as G,useFormExposeEvent as M}from"./hooks/useFormEvent.js";import{useFormGraph as P}from"./hooks/useFormGraph.js";import{useFormRenderLifeCycle as J}from"./hooks/useFormRenderLifeCycle.js";import{useLowCodeEvent as $}from"./hooks/useLowCodeEvent.js";import{useLowCodeReactions as z}from"./hooks/useLowCodeReactions.js";import{useNuiThemeOverrides as Q}from"./hooks/useNuiThemeOverrides.js";import{useOperationalForm as X}from"./hooks/useOperationalForm.js";import{useWordbookSetting as Y}from"./hooks/useWordbookSetting.js";import"../../../shared/utils/index.js";import"@formily/path";import"@vicons/ionicons5";import"@vue/shared";import"../index.js";import{createObjSchema as Z}from"./utils/schema.js";import{useFieldListAdaptor as ee}from"./hooks/useFieldListAdaptor.js";import{useFieldVisitor as oe}from"./hooks/useFieldVisitor.js";import"../../../shared/utils/tapable/SyncHook.js";import"../../../shared/utils/tapable/SyncBailHook.js";import"../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../shared/utils/tapable/SyncLoopHook.js";import"../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import{validateMessageLocale as te}from"./hooks/useFormValidator.js";import{useAnchor as re}from"./hooks/useAnchor.js";import{useFormContext as se}from"./hooks/useFormContext.js";import"./hooks/useFormRenderOptions.js";const ae={key:0,style:{height:"54px"}},ie={style:{"white-space":"pre"}};var le=e({__name:"FormRender",props:{fieldList:{type:Array},initialData:{type:Object,default:()=>({})},fieldVisitor:{type:Object},column:{type:Number,default:24},maxHeight:{type:[Number,String],default:""},anchor:{type:Boolean,default:!1},parallelism:{type:Number,default:3},businessFormatter:{type:Function},schema:{type:Object},components:{type:Object,default:()=>({})},scope:{type:Object,default:()=>({})},annotation:{type:Object},consumer:{type:Boolean,default:!1},uuid:{type:String},lifeCycle:{type:Object},requestInstance:{type:Object},enterToNextWidget:{type:[Boolean,Function],default:!0},lowCodeReactions:{type:Array},operationalForm:{type:Object},linebarAutoHidden:{type:Boolean},bordered:{type:[Boolean,String],default:!0},outBordered:{type:Boolean,default:!1},uniqueCacheData:{type:Boolean,default:!1},forceClearable:Boolean},emits:["formChange","annotationChange","scroll"],setup(e,{expose:le,emit:ne}){const me=e,de=C(),{nuiThemeOverrides:pe}=Q();te();const ue=o(),ce=t((()=>S(me.maxHeight)?me.maxHeight+"px":me.maxHeight)),{SchemaField:fe,businessCollector:he,formItemDepsCollector:ye,changeContextCollector:ge,formUUID:je}=se(me,ne),{anchorBarRef:be,currentAnchor:ke,updateAnchorList:ve,anchorIdList:Fe,onScroll:Ce}=re(me,ne,ue,ye),{callLifeCycle:Se}=J(me);r(E,Se),Se("onSetup");const{trigger:He}=T(),{observeFormGraph:xe,setGraph:Ae,removeGraph:Le}=P();r(K,xe);const{lowCodeEventTrigger:Be}=$(),Oe=L({initialValues:me.initialData,effects(e){B("*",(o=>{const t=o.props.name.toString();he.trigger(e,t),ye.trigger(t),ne("formChange",{fieldInstance:o,fieldKey:t,fieldName:o.title,value:o.value,context:ge.getContext(t,o.value)}),Be(o),Re(t),_e(t),Ve(t,o.value)})),O("*",Ae),R("*",Le),me.linebarAutoHidden&&(w("*",He),_((e=>e.query("*").forEach(He)))),me.anchor&&w("*",ve)}}),{lowCodeReactionsHandler:Re,triggerAllReactionsHandler:we}=z(t((()=>me.lowCodeReactions)),Oe),{operationalFormHandler:_e,triggerAllOperationalFormHandler:De}=X(t((()=>me.operationalForm)),Oe),{wordbookSettingHandler:Ve}=Y(Oe,ge);s(we),s(De);const{schemaAdaptor:Ie}=ee(he);let Ne=me.fieldList||[];const qe=t((()=>me.schema?me.schema:me.fieldList?(Ne=oe().traverse(H(me.fieldList),me.fieldVisitor),Z(Ie(Ne,me))):Z({}))),{onKeydown:We}=G({formModel:Oe,formRenderRef:ue,props:me}),{clearSpan:Ee}=U();a((()=>Ee(je)));const Ke=M({formModel:Oe,formRenderRef:ue,formItemDepsCollector:ye,getFieldList:()=>Ne,formUUID:je});return le({formModel:Oe,validate:(e="*")=>Ke.validate(e),getFormValues:(e=!0)=>Ke.getFormValues(e),async setFormValues(e,o={},t=!1,r=!0){var s,a,l,n;let m=!0,d=!0;x(o)?(d=null==(s=o.needSplitExtendKey)||s,m=null==(a=o.avoidDependKeyConnection)||a,t=null!=(l=o.avoidBusinessConnection)&&l,r=null==(n=o.overwrite)||n):A(o)&&(d=o),t&&(he.triggerLock=!0),m&&(ye.triggerDisabled=!0),Ke.setFormValues(e,d,r),await i(),he.triggerLock=!1,ye.triggerDisabled=!1},setFieldState(e,o){Ke.setFieldState(e,o)},resetFields(e="*"){Ke.resetFields(e)},queryWidget:async e=>Ke.queryWidget(e),getFieldList:()=>Ne,async reload(){console.error("reload function is abstract,it should be overwrite!")}}),(o,t)=>(l(),n(m(I),{class:d(["form-render",{"form-render--out-border":e.outBordered}]),"require-mark-placement":"left",style:p(m(de))},{default:u((()=>[e.anchor?(l(),c("section",ae,[f(m(N),{value:m(ke),"onUpdate:value":t[0]||(t[0]=e=>h(ke)?ke.value=e:null),type:"line",ref_key:"anchorBarRef",ref:be},{default:u((()=>[(l(!0),c(y,null,g(m(Fe),(e=>(l(),n(m(q),{name:e.name,tab:e.title,key:e.name},null,8,["name","tab"])))),128))])),_:1},8,["value"])])):j("v-if",!0),f(m(W),{"theme-overrides":m(pe)},{default:u((()=>[b("section",{class:"form-render__wrapper",style:p({"--column":e.column,"--form-height":m(ce)}),ref_key:"formRenderRef",ref:ue,onScroll:t[1]||(t[1]=(...e)=>m(Ce)&&m(Ce)(...e)),onKeydownCapture:t[2]||(t[2]=k(((...e)=>m(We)&&m(We)(...e)),["enter"]))},[f(m(D),{form:m(Oe)},{default:u((()=>[f(m(fe),{schema:m(qe)},null,8,["schema"]),e.consumer?(l(),n(m(V),{key:0},{default:u((({form:e})=>[b("div",ie,v(JSON.stringify(e.values,null,2)),1)])),_:1})):j("v-if",!0),F(o.$slots,"default")])),_:3},8,["form"])],36)])),_:3},8,["theme-overrides"])])),_:3},8,["class","style"]))}});export{le as default};
1
+ import{defineComponent as e,ref as o,computed as t,provide as r,onMounted as s,onUnmounted as a,nextTick as i,openBlock as l,createBlock as n,unref as m,normalizeClass as d,normalizeStyle as p,withCtx as u,createElementBlock as c,createVNode as f,isRef as h,Fragment as y,renderList as g,createCommentVNode as j,createElementVNode as b,withKeys as k,toDisplayString as v,renderSlot as F}from"vue";import{useTheme as C}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as S,cloneDeep as H,isObject as x,isBoolean as A}from"lodash-es";import{createForm as L,onFieldValueChange as B,onFieldMount as O,onFieldUnmount as R,onFieldReact as w,onFormMount as _}from"@formily/core";import{FormProvider as D,FormConsumer as V}from"@formily/vue";import{NForm as I,NTabs as N,NTabPane as q,NConfigProvider as W}from"naive-ui";import{InjectionFormLifeCycleCaller as E,InjectionFormGraph as K}from"./constants/index.js";import{useAutoHidden as T}from"./hooks/useAutoHidden.js";import{useComplexOptionsSpan as U}from"./hooks/useComplexOptions.js";import{useFormDomEvent as G,useFormExposeEvent as M}from"./hooks/useFormEvent.js";import{useFormGraph as P}from"./hooks/useFormGraph.js";import{useFormRenderLifeCycle as J}from"./hooks/useFormRenderLifeCycle.js";import{useLowCodeEvent as $}from"./hooks/useLowCodeEvent.js";import{useLowCodeReactions as z}from"./hooks/useLowCodeReactions.js";import{useNuiThemeOverrides as Q}from"./hooks/useNuiThemeOverrides.js";import{useOperationalForm as X}from"./hooks/useOperationalForm.js";import{useWordbookSetting as Y}from"./hooks/useWordbookSetting.js";import"../../../shared/utils/index.js";import"@formily/path";import"@vicons/ionicons5";import"@vue/shared";import"../index.js";import{createObjSchema as Z}from"./utils/schema.js";import{useFieldListAdaptor as ee}from"./hooks/useFieldListAdaptor.js";import{useFieldVisitor as oe}from"./hooks/useFieldVisitor.js";import"../../../shared/utils/tapable/SyncHook.js";import"../../../shared/utils/tapable/SyncBailHook.js";import"../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../shared/utils/tapable/SyncLoopHook.js";import"../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import{validateMessageLocale as te}from"./hooks/useFormValidator.js";import{useAnchor as re}from"./hooks/useAnchor.js";import{useFormContext as se}from"./hooks/useFormContext.js";import"./hooks/useFormRenderOptions.js";const ae={key:0,style:{height:"54px"}},ie={style:{"white-space":"pre"}};var le=e({__name:"FormRender",props:{fieldList:{type:Array},initialData:{type:Object,default:()=>({})},fieldVisitor:{type:Object},column:{type:Number,default:24},maxHeight:{type:[Number,String],default:""},anchor:{type:Boolean,default:!1},parallelism:{type:Number,default:3},businessFormatter:{type:Function},schema:{type:Object},components:{type:Object,default:()=>({})},scope:{type:Object,default:()=>({})},annotation:{type:Object},consumer:{type:Boolean,default:!1},uuid:{type:String},lifeCycle:{type:Object},requestInstance:{type:Object},enterToNextWidget:{type:[Boolean,Function],default:!0},lowCodeReactions:{type:Array},operationalForm:{type:Object},linebarAutoHidden:{type:Boolean},bordered:{type:[Boolean,String],default:!0},outBordered:{type:Boolean,default:!1},uniqueCacheData:{type:Boolean,default:!1},forceClearable:Boolean},emits:["formChange","annotationChange","scroll"],setup(e,{expose:le,emit:ne}){const me=e,de=C(),{nuiThemeOverrides:pe}=Q();te();const ue=o(),ce=t((()=>S(me.maxHeight)?me.maxHeight+"px":me.maxHeight)),{SchemaField:fe,businessCollector:he,formItemDepsCollector:ye,changeContextCollector:ge,formUUID:je}=se(me,ne),{anchorBarRef:be,currentAnchor:ke,updateAnchorList:ve,anchorIdList:Fe,onScroll:Ce}=re(me,ne,ue,ye),{callLifeCycle:Se}=J(me);r(E,Se),Se("onSetup");const{trigger:He}=T(),{observeFormGraph:xe,setGraph:Ae,removeGraph:Le}=P();r(K,xe);const{lowCodeEventTrigger:Be}=$(),Oe=L({initialValues:me.initialData,effects(e){B("*",(o=>{const t=o.props.name.toString();he.trigger(e,t),ye.trigger(t),ne("formChange",{fieldInstance:o,fieldKey:t,fieldName:o.title,value:o.value,context:ge.getContext(t,o.value)}),Be(o),Re(t),_e(t),Ve(t,o.value)})),O("*",Ae),R("*",Le),me.linebarAutoHidden&&(w("*",He),_((e=>e.query("*").forEach(He)))),me.anchor&&w("*",ve)}}),{lowCodeReactionsHandler:Re,triggerAllReactionsHandler:we}=z(t((()=>me.lowCodeReactions)),Oe),{operationalFormHandler:_e,triggerAllOperationalFormHandler:De}=X(t((()=>me.operationalForm)),Oe),{wordbookSettingHandler:Ve}=Y(Oe,ge);s(we),s(De);const{schemaAdaptor:Ie}=ee(he);let Ne=me.fieldList||[];const qe=t((()=>me.schema?me.schema:me.fieldList?(Ne=oe().traverse(H(me.fieldList),me.fieldVisitor),Z(Ie(Ne,me))):Z({}))),{onKeydown:We}=G({formModel:Oe,formRenderRef:ue,props:me}),{clearSpan:Ee}=U();a((()=>Ee(je)));const Ke=M({formModel:Oe,formRenderRef:ue,formItemDepsCollector:ye,getFieldList:()=>Ne,formUUID:je});return le({formModel:Oe,validate:(e="*",o={})=>Ke.validate(e,o),getFormValues:(e=!0)=>Ke.getFormValues(e),async setFormValues(e,o={},t=!1,r=!0){var s,a,l,n;let m=!0,d=!0;x(o)?(d=null==(s=o.needSplitExtendKey)||s,m=null==(a=o.avoidDependKeyConnection)||a,t=null!=(l=o.avoidBusinessConnection)&&l,r=null==(n=o.overwrite)||n):A(o)&&(d=o),t&&(he.triggerLock=!0),m&&(ye.triggerDisabled=!0),Ke.setFormValues(e,d,r),await i(),he.triggerLock=!1,ye.triggerDisabled=!1},setFieldState(e,o){Ke.setFieldState(e,o)},resetFields(e="*"){Ke.resetFields(e)},queryWidget:async e=>Ke.queryWidget(e),getFieldList:()=>Ne,async reload(){console.error("reload function is abstract,it should be overwrite!")}}),(o,t)=>(l(),n(m(I),{class:d(["form-render",{"form-render--out-border":e.outBordered}]),"require-mark-placement":"left",style:p(m(de))},{default:u((()=>[e.anchor?(l(),c("section",ae,[f(m(N),{value:m(ke),"onUpdate:value":t[0]||(t[0]=e=>h(ke)?ke.value=e:null),type:"line",ref_key:"anchorBarRef",ref:be},{default:u((()=>[(l(!0),c(y,null,g(m(Fe),(e=>(l(),n(m(q),{name:e.name,tab:e.title,key:e.name},null,8,["name","tab"])))),128))])),_:1},8,["value"])])):j("v-if",!0),f(m(W),{"theme-overrides":m(pe)},{default:u((()=>[b("section",{class:"form-render__wrapper",style:p({"--column":e.column,"--form-height":m(ce)}),ref_key:"formRenderRef",ref:ue,onScroll:t[1]||(t[1]=(...e)=>m(Ce)&&m(Ce)(...e)),onKeydownCapture:t[2]||(t[2]=k(((...e)=>m(We)&&m(We)(...e)),["enter"]))},[f(m(D),{form:m(Oe)},{default:u((()=>[f(m(fe),{schema:m(qe)},null,8,["schema"]),e.consumer?(l(),n(m(V),{key:0},{default:u((({form:e})=>[b("div",ie,v(JSON.stringify(e.values,null,2)),1)])),_:1})):j("v-if",!0),F(o.$slots,"default")])),_:3},8,["form"])],36)])),_:3},8,["theme-overrides"])])),_:3},8,["class","style"]))}});export{le as default};
@@ -558,7 +558,9 @@ declare const _default: import("vue").DefineComponent<{}, {
558
558
  onKeydown: (event: KeyboardEvent) => Promise<void>;
559
559
  clearSpan: (uuid: string) => void;
560
560
  exposeEvent: {
561
- validate(path?: string): Promise<void>;
561
+ validate(path?: string, { force }?: {
562
+ force?: boolean | undefined;
563
+ }): Promise<void>;
562
564
  getFormValues(needCombineExtendKey?: boolean): any;
563
565
  setFormValues(values: import("../../../../es/shared/types").AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
564
566
  setFieldState(path: string, setter: (field: Partial<Pick<import("../../../../es/components/form-render").Field<any, any, any, any>, import("../../../../es/components/form-render").NonFunctionPropertyNames<{
@@ -1 +1 @@
1
- import{defineComponent as e,watch as l,inject as o,computed as a,createVNode as t}from"vue";import{connect as n,mapProps as u}from"@formily/vue";import{HelpCircleSharp as r}from"@vicons/ionicons5";import{useVModel as i,useDebounceFn as s}from"@vueuse/core";import{cloneDeep as p,isString as v}from"lodash-es";import{NSelect as d,NSpin as m,NEmpty as f,NTooltip as c,NIcon as y,NTag as g}from"naive-ui";import"../../../index.js";import{InjectionChangeContextCollector as h}from"../../constants/index.js";import{useCommonInjection as C,useSelectOptionProps as b}from"../../hooks/useCommonInjection.js";import{assignUpdateValue as j,assignClearBindVisited as F,createVisitedSetter as w}from"../../utils/schema.js";import{useFormField as x}from"../../hooks/useFormField.js";import{useUrlConfigOptions as B,useAutographOptions as K}from"../../hooks/useFormRenderOptions.js";const S=n(e({name:"FormRemoteSearch",props:{value:{type:String},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},allowCreate:Boolean,labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},onChange:{},useLoading:{type:Boolean,default:!0},lazyRequest:{type:Boolean,default:!0},multiple:Boolean,deletable:Boolean},emits:["update:value"],setup(e,{slots:n,emit:u}){const j=i(e,"value",u),{field:F,fieldKey:S}=x(),{injectValueValidate:k,injectValueBindKey:O}=C();k(j);const D=O(j),R={onRequestConfigChange:({fetchData:e,valueKey:l})=>e(j.value,{[l]:j.value}),onDepsChange:({fetchData:e,valueKey:l})=>e(j.value,{[l]:j.value})},{labelKey:q,valueKey:L,showKey:P,fetchData:V,searchContent:I,fullOptions:U,loading:z}=e.urlConfig?B(e,j,R):K(e,j,R),A=s(((e="",l="label")=>V(e,{["value"===l?L.value:"keyword"]:e})),300);l(j,(e=>{if(e&&!U.value.find((l=>l[L.value]===e)))return A(e,"value")}));o(h).setContext(S.value,(e=>{return{currentOption:p((l=e,U.value.find((e=>e[L.value]===l))))};var l}));const{menuProps:T,nodeProps:$}=b(),E=a((()=>U.value.length||!e.allowCreate?U.value:I.value?[{[q.value]:I.value,[L.value]:I.value},...U.value]:U.value));async function G(e){z.value=e,e&&A()}function H(e){const l=e.alias||e[q.value];if(!l||!v(l))return"";const o=l;return e.desc?t("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[o,e.desc?t(c,null,{trigger:()=>t(y,{component:r},null),default:()=>e.desc}):null]):o}function J({option:l,handleClose:o}){var a;const n=null!=(a=P.value&&l[P.value])?a:l[q.value];if(!e.multiple)return n;return e.deletable?t(g,{closable:!0,onClose:function(e){e.stopPropagation(),o()}},{default:()=>n}):`${n};`}return()=>t(d,{remote:!0,filterable:!0,key:D.value,value:j.value,"onUpdate:value":e=>j.value=e,labelField:q.value,valueField:L.value,"menu-props":T,"node-props":$,onSearch:A,"onUpdate:show":G,options:E.value,onFocus:w(F),renderLabel:H,renderTag:J},{empty:()=>e.useLoading&&z.value?t(m,null,null):t(f,{description:"无数据"},null),...n})}}),u(j,F));export{S as REMOTE_SEARCH};
1
+ import{defineComponent as e,watch as l,inject as o,computed as a,ref as t,createVNode as n}from"vue";import{connect as u,mapProps as r}from"@formily/vue";import{HelpCircleSharp as i}from"@vicons/ionicons5";import{useVModel as s,useDebounceFn as p}from"@vueuse/core";import{cloneDeep as v,isString as d}from"lodash-es";import{NSelect as m,NSpin as c,NEmpty as f,NTooltip as y,NIcon as g,NTag as h}from"naive-ui";import"../../../index.js";import{InjectionChangeContextCollector as C}from"../../constants/index.js";import{useCommonInjection as b,useSelectOptionProps as j}from"../../hooks/useCommonInjection.js";import{assignUpdateValue as F,assignClearBindVisited as w,createVisitedSetter as x}from"../../utils/schema.js";import{useFormField as B}from"../../hooks/useFormField.js";import{useUrlConfigOptions as K,useAutographOptions as S}from"../../hooks/useFormRenderOptions.js";const k=u(e({name:"FormRemoteSearch",props:{value:{type:String},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},allowCreate:Boolean,labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},onChange:{},useLoading:{type:Boolean,default:!0},lazyRequest:{type:Boolean,default:!0},multiple:Boolean,deletable:Boolean},emits:["update:value"],setup(e,{slots:u,emit:r}){const F=s(e,"value",r),{field:w,fieldKey:k}=B(),{injectValueValidate:O,injectValueBindKey:D}=b();O(F);const R=D(F),q={onRequestConfigChange:({fetchData:e,valueKey:l})=>e(F.value,{[l]:F.value}),onDepsChange:({fetchData:e,valueKey:l})=>e(F.value,{[l]:F.value})},{labelKey:L,valueKey:P,showKey:V,fetchData:I,searchContent:U,fullOptions:z,loading:A}=e.urlConfig?K(e,F,q):S(e,F,q),T=p(((e="",l="label")=>I(e,{["value"===l?P.value:"keyword"]:e})),300);l(F,(e=>{if(e&&!z.value.find((l=>l[P.value]===e)))return T(e,"value")}));o(C).setContext(k.value,(e=>{return{currentOption:v((l=e,z.value.find((e=>e[P.value]===l))))};var l}));const{menuProps:$,nodeProps:E}=j(),G=a((()=>z.value.length||!e.allowCreate?z.value:U.value?[{[L.value]:U.value,[P.value]:U.value},...z.value]:z.value));async function H(e){A.value=e,e&&T()}function J(e){const l=e.alias||e[L.value];if(!l||!d(l))return"";const o=l;return e.desc?n("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[o,e.desc?n(y,null,{trigger:()=>n(g,{component:i},null),default:()=>e.desc}):null]):o}function M({option:l,handleClose:o}){var a;const t=null!=(a=V.value&&l[V.value])?a:l[L.value];if(!e.multiple)return N.value=t,t;return N.value="",e.deletable?n(h,{closable:!0,onClose:function(e){e.stopPropagation(),o()}},{default:()=>t}):`${t};`}const N=t("");return()=>n(m,{title:N.value,remote:!0,filterable:!0,key:R.value,value:F.value,"onUpdate:value":e=>F.value=e,labelField:L.value,valueField:P.value,"menu-props":$,"node-props":E,onSearch:T,"onUpdate:show":H,options:G.value,onFocus:x(w),renderLabel:J,renderTag:M},{empty:()=>e.useLoading&&A.value?n(c,null,null):n(f,{description:"无数据"},null),...u})}}),r(F,w));export{k as REMOTE_SEARCH};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as l,inject as t,useAttrs as o,ref as a,createVNode as u,mergeProps as n,toRaw as r,nextTick as s}from"vue";import{arrayed as i}from"../../../../../shared/utils/index.js";import{HelpCircleSharp as p}from"@vicons/ionicons5";import{promiseTimeout as m}from"@vueuse/shared";import{cloneDeep as c,isArray as d,isString as v,isObject as f,omit as y}from"lodash-es";import{useCommonInjection as h,useSelectOptionProps as g}from"../../hooks/useCommonInjection.js";import{useComplexOptions as S,useComplexOptionsSpan as b}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as j,InjectionFormUUID as C}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vue/shared";import"@vueuse/core";import{NSelect as w,NTooltip as k,NIcon as F,NTag as B}from"naive-ui";import"date-fns";import{assignUpdateValue as x,assignClearBindVisited as O,createVisitedSetter as A}from"../../utils/schema.js";import{useFormField as H}from"../../hooks/useFormField.js";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import{connect as P,mapProps as R}from"@formily/vue";import"./index.js";import{useUrlConfigOptions as V,useAutographOptions as K,useRecommendOptions as L,searchContentMatcher as E}from"../../hooks/useFormRenderOptions.js";const _=P(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify:Boolean,showCustomValue:Boolean,cursorPlacement:{type:String,default:"end"},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},commonNum:{type:Number,default:10},recentNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean},deletable:{type:Boolean,default:!0}},emits:["update:value","postRecommend"],setup(e,{slots:x,emit:O}){const P=l({get:()=>e.value,async set(e){O("update:value",e),J(e)}}),R=l((()=>(e.multiple&&e.allowModify&&console.warn("多选模式下不支持allowModify"),!e.multiple&&e.allowModify))),{labelKey:_,valueKey:I,showKey:N,fetchData:M,searchContent:W,fullOptions:q,filterOptions:U,remoteOptions:z,loading:D}=e.urlConfig?V(e,P):K(e,P),{renderComplexOption:T,hasComplexOption:$}=S(e,P),{getRecommend:G,postRecommend:J,sortedOptions:Q}=L(e,U,O,_,I),{field:X,fieldKey:Y}=H();t(j).setContext(Y.value,(e=>({currentOption:c(function(e){const l=re(q.value);return d(e)?function(e){const t=l.reduce(((e,l)=>(e[l[I.value]]=l,e)),{});return e.map((e=>t[e]))}(e):(t=e,l.find((e=>e[I.value]===t)));var t}(e))})));const Z=async(e="")=>(W.value=e,Promise.allSettled([M(e),G(e)])),{injectValueValidate:ee,injectValueWatchFromEmpty:le,injectValueBindKey:te}=h();le(P,Z),ee(P);const oe=te(P),{menuProps:ae,nodeProps:ue}=g();function ne(e){const l=e[_.value];if(!l||!v(l))return"";const t=W.value?E(W.value,l):null,o=t?u("section",null,[t.map(((e,l)=>0!==l&&e?u("span",{style:{color:l%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):l;return e.desc?u("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[o,e.desc?u(k,null,{trigger:()=>u(F,{component:p},null),default:()=>e.desc}):null]):o}function re(l){return e.allowCreate&&W.value&&!l.some((e=>e[_.value]===W.value))?[...l,{[_.value]:W.value,[I.value]:W.value,created:!0,shouldSave:e.shouldSave}]:l}const se=l((()=>re(R.value?q.value:Q.value))),ie=o(),pe=l((()=>{if(e.allowCreate||e.showCustomValue)return P.value;const l=e.multiple&&d(P.value);return q.value.find((e=>l?P.value.includes(e[I.value]):e[I.value]===P.value))?P.value:null})),me=a(!1);async function ce(e){e&&await Z(),me.value=e}let de=null;async function ve(l,t){P.value=l,de&&f(t)&&R.value&&(de.focus(),await s(),de.value=t[_.value]||"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&de.setSelectionRange(0,0)),z.value&&t&&i(t).forEach((e=>{if(!f(e))return;const l=e;l.created&&l.shouldSave&&z.value.push(y(r(l),["created","shouldSave"]))}))}const fe=t(C),{getSpan:ye}=b(),he=A(X,(async l=>{var t,o,a;R.value&&(de=l.target,de&&P.value&&(await s(),de.value=null!=(a=null!=(o=null==(t=q.value.find((e=>e[I.value]===P.value)))?void 0:t[_.value])?o:P.value)?a:"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&(await m(0),de.setSelectionRange(0,0))))}));function ge(e){if(!R.value)return;if(de=e.target,!de)return;if(!de.value)return P.value=null;const l=q.value.find((e=>e[_.value]===de.value));l?P.value=l[I.value]:(W.value=de.value,P.value=de.value)}function Se({option:l,handleClose:t}){var o;const a=null!=(o=N.value&&l[N.value])?o:l[_.value];return e.multiple?e.deletable?u(B,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>a}):`${a} ;`:a}function be(l){return u(w,n({key:oe.value,multiple:e.multiple,remote:!0,filterable:!0,loading:D.value,value:pe.value,onUpdateValue:ve,"menu-props":ae,"node-props":ue,labelField:_.value,valueField:I.value,options:se.value,onSearch:Z,show:me.value,"onUpdate:show":ce,onFocus:he,onBlur:ge,renderLabel:ne,renderTag:Se},l,ie),x)}return()=>{var e,l;if(!$.value)return be();const t=null!=(l=null==(e=X.value.decoratorProps)?void 0:e.span)?l:6,o=ye(fe,X.value.address);return u("section",{class:"form-render__selectChildField",style:{"--column":o+t}},[be({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),q.value.map((e=>T({option:e,value:P.value,valueKey:I.value,labelKey:_.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":o}}})))])}}}),R({dataSource:"options"},x,O));export{_ as SELECT};
1
+ import{defineComponent as e,computed as l,inject as t,useAttrs as o,ref as a,createVNode as u,mergeProps as n,toRaw as r,nextTick as s}from"vue";import{arrayed as i}from"../../../../../shared/utils/index.js";import{HelpCircleSharp as p}from"@vicons/ionicons5";import{promiseTimeout as m}from"@vueuse/shared";import{cloneDeep as c,isArray as d,isString as v,isObject as f,omit as y}from"lodash-es";import{useCommonInjection as h,useSelectOptionProps as g}from"../../hooks/useCommonInjection.js";import{useComplexOptions as S,useComplexOptionsSpan as b}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as j,InjectionFormUUID as C}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vue/shared";import"@vueuse/core";import{NSelect as w,NTooltip as k,NIcon as F,NTag as B}from"naive-ui";import"date-fns";import{assignUpdateValue as x,assignClearBindVisited as O,createVisitedSetter as A}from"../../utils/schema.js";import{useFormField as H}from"../../hooks/useFormField.js";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import{connect as P,mapProps as R}from"@formily/vue";import"./index.js";import{useUrlConfigOptions as V,useAutographOptions as K,useRecommendOptions as L,searchContentMatcher as E}from"../../hooks/useFormRenderOptions.js";const _=P(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify:Boolean,showCustomValue:Boolean,cursorPlacement:{type:String,default:"end"},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},commonNum:{type:Number,default:10},recentNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean},deletable:{type:Boolean,default:!0}},emits:["update:value","postRecommend"],setup(e,{slots:x,emit:O}){const P=l({get:()=>e.value,async set(e){O("update:value",e),J(e)}}),R=l((()=>(e.multiple&&e.allowModify&&console.warn("多选模式下不支持allowModify"),!e.multiple&&e.allowModify))),{labelKey:_,valueKey:I,showKey:N,fetchData:M,searchContent:W,fullOptions:q,filterOptions:U,remoteOptions:z,loading:D}=e.urlConfig?V(e,P):K(e,P),{renderComplexOption:T,hasComplexOption:$}=S(e,P),{getRecommend:G,postRecommend:J,sortedOptions:Q}=L(e,U,O,_,I),{field:X,fieldKey:Y}=H();t(j).setContext(Y.value,(e=>({currentOption:c(function(e){const l=re(q.value);return d(e)?function(e){const t=l.reduce(((e,l)=>(e[l[I.value]]=l,e)),{});return e.map((e=>t[e]))}(e):(t=e,l.find((e=>e[I.value]===t)));var t}(e))})));const Z=async(e="")=>(W.value=e,Promise.allSettled([M(e),G(e)])),{injectValueValidate:ee,injectValueWatchFromEmpty:le,injectValueBindKey:te}=h();le(P,Z),ee(P);const oe=te(P),{menuProps:ae,nodeProps:ue}=g();function ne(e){const l=e[_.value];if(!l||!v(l))return"";const t=W.value?E(W.value,l):null,o=t?u("section",null,[t.map(((e,l)=>0!==l&&e?u("span",{style:{color:l%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):l;return e.desc?u("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[o,e.desc?u(k,null,{trigger:()=>u(F,{component:p},null),default:()=>e.desc}):null]):o}function re(l){return e.allowCreate&&W.value&&!l.some((e=>e[_.value]===W.value))?[...l,{[_.value]:W.value,[I.value]:W.value,created:!0,shouldSave:e.shouldSave}]:l}const se=l((()=>re(R.value?q.value:Q.value))),ie=o(),pe=l((()=>{if(e.allowCreate||e.showCustomValue)return P.value;const l=e.multiple&&d(P.value);return q.value.find((e=>l?P.value.includes(e[I.value]):e[I.value]===P.value))?P.value:null})),me=a(!1);async function ce(e){e&&await Z(),me.value=e}let de=null;async function ve(l,t){P.value=l,de&&f(t)&&R.value&&(de.focus(),await s(),de.value=t[_.value]||"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&de.setSelectionRange(0,0)),z.value&&t&&i(t).forEach((e=>{if(!f(e))return;const l=e;l.created&&l.shouldSave&&z.value.push(y(r(l),["created","shouldSave"]))}))}const fe=t(C),{getSpan:ye}=b(),he=A(X,(async l=>{var t,o,a;R.value&&(de=l.target,de&&P.value&&(await s(),de.value=null!=(a=null!=(o=null==(t=q.value.find((e=>e[I.value]===P.value)))?void 0:t[_.value])?o:P.value)?a:"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&(await m(0),de.setSelectionRange(0,0))))}));function ge(e){if(!R.value)return;if(de=e.target,!de)return;if(!de.value)return P.value=null;const l=q.value.find((e=>e[_.value]===de.value));l?P.value=l[I.value]:(W.value=de.value,P.value=de.value)}const Se=a("");function be({option:l,handleClose:t}){var o;const a=null!=(o=N.value&&l[N.value])?o:l[_.value];return e.multiple?(Se.value="",e.deletable?u(B,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>u("span",{title:a},[a])}):`${a} ;`):(Se.value=a,a)}function je(l){return u(w,n({title:Se.value,key:oe.value,multiple:e.multiple,remote:!0,filterable:!0,loading:D.value,value:pe.value,onUpdateValue:ve,"menu-props":ae,"node-props":ue,labelField:_.value,valueField:I.value,options:se.value,onSearch:Z,show:me.value,"onUpdate:show":ce,onFocus:he,onBlur:ge,renderLabel:ne,renderTag:be},l,ie),x)}return()=>{var e,l;if(!$.value)return je();const t=null!=(l=null==(e=X.value.decoratorProps)?void 0:e.span)?l:6,o=ye(fe,X.value.address);return u("section",{class:"form-render__selectChildField",style:{"--column":o+t}},[je({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),q.value.map((e=>T({option:e,value:P.value,valueKey:I.value,labelKey:_.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":o}}})))])}}}),R({dataSource:"options"},x,O));export{_ as SELECT};
@@ -9,7 +9,9 @@ export declare function useFormExposeEvent({ formModel, formRenderRef, formUUID,
9
9
  getFieldList: () => FieldItem[];
10
10
  formItemDepsCollector: FormItemDepsCollector;
11
11
  }): {
12
- validate(path?: string): Promise<void>;
12
+ validate(path?: string, { force }?: {
13
+ force?: boolean | undefined;
14
+ }): Promise<void>;
13
15
  getFormValues(needCombineExtendKey?: boolean): any;
14
16
  setFormValues(values: AnyObject, needSplitExtendKey?: boolean, overwrite?: boolean): void;
15
17
  setFieldState(path: string, setter: (field: IFieldState) => void): void;
@@ -1 +1 @@
1
- import{arrayed as e,findAncestor as t}from"../../../../shared/utils/index.js";import{isField as r}from"@formily/core";import{Path as o}from"@formily/path";import{isObject as i}from"@vue/shared";import{promiseTimeout as n}from"@vueuse/shared";import{isArray as s,isString as a,isFunction as m}from"lodash-es";import{nextTick as f}from"vue";import"../../index.js";import{FormItemLineBarDepKeyPrepend as u,NESTED_FORM_ITEM_TYPE as l}from"../constants/index.js";import{queryDecoratorByAddress as d,queryInput as c,queryDecoratorByFieldKey as p,findNextWidget as g}from"../utils/dom.js";import{validateMessageParser as v,combineExtendKey as y,splitExtendKey as h}from"../utils/index.js";import{getParentLinebar as x}from"../utils/schema.js";function I({formModel:t,formRenderRef:n,formUUID:m,getFieldList:l,formItemDepsCollector:g}){return{validate(r="*"){return t.validate(r).catch((e=>Promise.reject(Array.isArray(e)?e.reduce(o,[]):e)));function o(t,r){if(!i(r))return t;let o=!1;return s(r.messages)&&r.messages.forEach((r=>{i(r)&&(t.push(...e(r).map(f)),o=!0)})),!o&&t.push(f(r)),t}function f(e){if(e.decoratorElement)return e;const r=t.query(e.path),o=r.get("title"),s=e.messages.map((e=>function(e,t){if(!t||!i(t.fieldItem))return e;const r=t.fieldItem.defined_error_msg;return v(r&&a(r)?r:e,t.fieldItem)}(e,r.get("decoratorProps")))),f=d(e.address,n.value,m);return{...e,messages:s,title:o,decoratorElement:f,...c(f)}}},getFormValues(e=!0){let r=t.getFormState().values;return e&&(r=y(l(),r)),r},setFormValues(e,i=!0,n=!0){i&&(e=h(l(),e)),t.setFieldState("*",(t=>{r(t)&&(n||o.existIn(e,t.path))&&(t.value=o.getIn(e,t.path))}))},setFieldState(e,r){t.setFieldState(e,r)},resetFields:(e="*")=>t.reset(e),queryWidget:async e=>n.value?await async function(e,t,r){if(!n.value)return s();const o=p(e,t,m);if(o)return s(o);const i=x(e,r);return i?(g.trigger(u+i,!0),await f(),s(p(e,t,m))):s();function s(e){return{decoratorElement:e,...c(e)}}}(e,n.value,l()):null}}function j({props:e,formRenderRef:r,formModel:o}){return{onKeydown:async function i(s){var a;if(e.enterToNextWidget&&s.target){if("TEXTAREA"===s.target.tagName&&!s.ctrlKey)return;s.preventDefault()}if(await n(0),Reflect.get(s,"stopCapture")||!e.enterToNextWidget||!r.value)return;const f=t(s.target,(e=>e.classList.contains("form-render__formItem")));if(!f)return;const u=`.form-render__formItem${l.map((e=>`:not([widget-type=${e}])`)).join("")}`,d=Array.from(r.value.querySelectorAll(u)),c=d.findIndex((e=>e.id===f.id));if(!~c)return;const{widget:p,field:v}=g(d,c,s.target);if(p)if(m(e.enterToNextWidget)){const t=v&&o.query(v).take();!t||e.enterToNextWidget(null==(a=t.decoratorProps)?void 0:a.fieldItem)?y():i({target:p})}else y();async function y(){await n(0),p.focus()}}}}export{j as useFormDomEvent,I as useFormExposeEvent};
1
+ import{arrayed as e,findAncestor as t}from"../../../../shared/utils/index.js";import{isField as r}from"@formily/core";import{Path as o}from"@formily/path";import{isObject as i}from"@vue/shared";import{promiseTimeout as n}from"@vueuse/shared";import{isArray as a,isString as s,isFunction as m}from"lodash-es";import{nextTick as f}from"vue";import"../../index.js";import{FormItemLineBarDepKeyPrepend as u,NESTED_FORM_ITEM_TYPE as l}from"../constants/index.js";import{queryDecoratorByAddress as d,queryInput as c,queryDecoratorByFieldKey as p,findNextWidget as g}from"../utils/dom.js";import{validateMessageParser as v,combineExtendKey as y,splitExtendKey as h}from"../utils/index.js";import{getParentLinebar as x}from"../utils/schema.js";function I({formModel:t,formRenderRef:n,formUUID:m,getFieldList:l,formItemDepsCollector:g}){return{validate(o="*",{force:f}={}){const u=[];f&&t.setFieldState(o,(e=>{"visible"===e.display&&"editable"!==e.pattern&&r(e)&&(u.push({pattern:e.pattern,state:e}),e.pattern="editable")}));const l=t.validate(o).catch((e=>Promise.reject(Array.isArray(e)?e.reduce(p,[]):e)));return f&&u.forEach((({pattern:e,state:t})=>t.pattern=e)),l;function p(t,r){if(!i(r))return t;let o=!1;return a(r.messages)&&r.messages.forEach((r=>{i(r)&&(t.push(...e(r).map(g)),o=!0)})),!o&&t.push(g(r)),t}function g(e){if(e.decoratorElement)return e;const r=t.query(e.path),o=r.get("title"),a=e.messages.map((e=>function(e,t){if(!t||!i(t.fieldItem))return e;const r=t.fieldItem.defined_error_msg;return v(r&&s(r)?r:e,t.fieldItem)}(e,r.get("decoratorProps")))),f=d(e.address,n.value,m);return{...e,messages:a,title:o,decoratorElement:f,...c(f)}}},getFormValues(e=!0){let r=t.getFormState().values;return e&&(r=y(l(),r)),r},setFormValues(e,i=!0,n=!0){i&&(e=h(l(),e)),t.setFieldState("*",(t=>{r(t)&&(n||o.existIn(e,t.path))&&(t.value=o.getIn(e,t.path))}))},setFieldState(e,r){t.setFieldState(e,r)},resetFields:(e="*")=>t.reset(e),queryWidget:async e=>n.value?await async function(e,t,r){if(!n.value)return a();const o=p(e,t,m);if(o)return a(o);const i=x(e,r);return i?(g.trigger(u+i,!0),await f(),a(p(e,t,m))):a();function a(e){return{decoratorElement:e,...c(e)}}}(e,n.value,l()):null}}function F({props:e,formRenderRef:r,formModel:o}){return{onKeydown:async function i(a){var s;if(e.enterToNextWidget&&a.target){if("TEXTAREA"===a.target.tagName&&!a.ctrlKey)return;a.preventDefault()}if(await n(0),Reflect.get(a,"stopCapture")||!e.enterToNextWidget||!r.value)return;const f=t(a.target,(e=>e.classList.contains("form-render__formItem")));if(!f)return;const u=`.form-render__formItem${l.map((e=>`:not([widget-type=${e}])`)).join("")}`,d=Array.from(r.value.querySelectorAll(u)),c=d.findIndex((e=>e.id===f.id));if(!~c)return;const{widget:p,field:v}=g(d,c,a.target);if(p)if(m(e.enterToNextWidget)){const t=v&&o.query(v).take();!t||e.enterToNextWidget(null==(s=t.decoratorProps)?void 0:s.fieldItem)?y():i({target:p})}else y();async function y(){await n(0),p.focus()}}}}export{F as useFormDomEvent,I as useFormExposeEvent};
@@ -32,9 +32,12 @@ export declare type FormRenderExpose = {
32
32
  /**
33
33
  * @desc 触发表单校验
34
34
  * @param {string} path 目标路径, 支持Path语法
35
+ * @param {{force?:boolean}} options 校验选项, force代表强制校验不可编辑项
35
36
  * @return {void | Promise<Object[]>}
36
37
  */
37
- validate(path?: string): Promise<unknown>;
38
+ validate(path?: string, options?: {
39
+ force?: boolean;
40
+ }): Promise<unknown>;
38
41
  /**
39
42
  * @desc 获取表单当前所有数据
40
43
  * @param {boolean} needCombineExtendKey 是否合并extendKey
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,provide as a,ref as o,watch as l,resolveComponent as n,openBlock as s,createElementBlock as r,unref as i,normalizeStyle as u,createBlock as d,resolveDynamicComponent as c,createElementVNode as f,createVNode as m,mergeProps as v,createSlots as p,renderList as b,withCtx as h,createCommentVNode as g,renderSlot as x,normalizeProps as k,guardReactiveProps as y}from"vue";import{useTheme as C}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as D}from"@vueuse/core";import"date-fns";import{isString as $,isFunction as j,pick as w}from"lodash-es";import{widthAppend as I,uuidGenerator as H}from"../../../shared/utils/index.js";import{promiseTimeout as _}from"@vueuse/shared";import{VxeTableEventNameList as A,InjectionIhoTableEmits as L,InjectionIhoTableAnnotation as T,InjectionIhoTableUUID as R,InjectionIhoTableInstance as E,InjectionIhoTableConfig as F,InjectionIhoTableFieldList as O,InjectionIhoTableHandler as S}from"./constants/index.js";import{createTableHooks as W,applyTableConfigHooks as q,applyTableFieldHooks as z,createTableEventHandlers as B,createDomInsertComponent as G,createDataTransfer as J}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as K}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as M}from"./utils/index.js";const N=["id"];var P=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",...A],setup(e,{expose:A,emit:P}){var Q,U;const V=e,X=C({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),Y=t((()=>{var e,t;const a=null!=(t=null==(e=V.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===a?"100%":$(a)&&(a.includes("calc")||a.endsWith("%"))?a:I(a)}})),Z=K(),ee=function(e,...t){P(e,...t);const a=i(le)[M(e)];j(a)&&a(...t),Z.trigger(e,...t)};a(L,ee);const te=W();a(T,t((()=>V.annotation)));const ae=H();a(R,ae);const oe=o();a(E,oe);const le=o({uuid:null!=(U=null==(Q=V.tableConfig)?void 0:Q.uuid)?U:ae});a(F,le);const ne=D(se,10);function se(){le.value=q(te,V.tableConfig,{$table:oe,emits:ee}),le.value.uuid=ae}const re=o([]);a(O,re);const ie=D(ue,10);function ue(){re.value=z(te,V.fieldList,le.value,{$table:oe,emits:ee})}const de=J(te,le,oe),ce=o([]);async function fe(){var e;ce.value=await de(V.tableData),null==(e=oe.value)||e.recalculate(!0)}const me={updateTableDataRef:D(fe,10),updateConfigRef:ne,updateFieldListRef:ie};a(S,me);const ve=B({hooks:te,config:le,$table:oe,context:me,emits:ee}),pe=t((()=>({...le.value,...ve})));let be=!1,he=!1,ge=!1;const xe=D((()=>{be&&se(),he&&ue(),ge&&fe(),be=!1,he=!1,ge=!1}),10);l((()=>V.tableConfig),(()=>{be=!0,he=!0,ge=!0,xe()}),{deep:!0}),l((()=>V.fieldList),(()=>{he=!0,ge=!0,xe()}),{deep:!0}),l([()=>[...V.tableData],()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(()=>{ge=!0,xe()})),l([()=>V.tableData,()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=le.value.treeConfig)?void 0:e.expandAll)&&(await _(11),null==(t=oe.value)||t.setAllTreeExpand(!0))})),se(),ue(),fe();const{header:ke,footer:ye}=G(te);function Ce(e){return w(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return A({$table:oe,async loadData(e){var t;null==(t=oe.value)||t.loadData(await de(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),reload(){var e,t;null==(e=oe.value)||e.loadColumn([]),null==(t=oe.value)||t.loadData([]),se(),ue(),fe()},...te.exposeHooks.expose.call({},le,{$table:oe,emits:ee})}),te.setupHooks.setup.call(le,re,{$table:oe,emits:ee}),(e,t)=>{const a=n("vxe-grid");return s(),r("section",{class:"iho-table",id:i(ae),style:u(i(X))},[(s(),d(c(i(ke)))),f("section",{style:u(i(Y))},[m(a,v({ref_key:"$table",ref:oe},i(pe),{columns:re.value,data:ce.value}),p({_:2},[b(e.$slots,((t,a)=>({name:a,fn:h((t=>[g(" 实际上所有的vxe-grid插槽都支持 "),x(e.$slots,a,k(y(Ce(t))))]))})))]),1040,["columns","data"])],4),(s(),d(c(i(ye))))],12,N)}}});export{P as default};
1
+ import{defineComponent as e,computed as t,provide as a,ref as o,watch as l,resolveComponent as n,openBlock as s,createElementBlock as r,unref as i,normalizeStyle as u,createBlock as d,resolveDynamicComponent as c,createElementVNode as f,createVNode as m,mergeProps as v,createSlots as p,renderList as b,withCtx as h,createCommentVNode as g,renderSlot as x,normalizeProps as k,guardReactiveProps as y}from"vue";import{useTheme as D}from"../../../shared/hooks/useTheme.js";import{useDebounceFn as C}from"@vueuse/core";import"date-fns";import{isString as $,isFunction as j,pick as w}from"lodash-es";import{widthAppend as I,uuidGenerator as H}from"../../../shared/utils/index.js";import{promiseTimeout as T}from"@vueuse/shared";import{VxeTableEventNameList as _,InjectionIhoTableEmits as A,InjectionIhoTableAnnotation as L,InjectionIhoTableUUID as R,InjectionIhoTableInstance as E,InjectionIhoTableConfig as F,InjectionIhoTableFieldList as O,InjectionIhoTableHandler as B}from"./constants/index.js";import{createTableHooks as S,applyTableConfigHooks as W,applyTableFieldHooks as q,createTableEventHandlers as z,createDomInsertComponent as G,createDataTransfer as J}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as K}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as M}from"./utils/index.js";const N=["id"];var P=e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard","rowDrag",..._],setup(e,{expose:_,emit:P}){var Q,U;const V=e,X=D({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),Y=t((()=>{var e,t;const a=null!=(t=null==(e=V.tableConfig)?void 0:e.height)?t:"100%";return{height:"auto"===a?"100%":$(a)&&(a.includes("calc")||a.endsWith("%"))?a:I(a)}})),Z=K(),ee=function(e,...t){P(e,...t);const a=i(le)[M(e)];j(a)&&a(...t),Z.trigger(e,...t)};a(A,ee);const te=S();a(L,t((()=>V.annotation)));const ae=H();a(R,ae);const oe=o();a(E,oe);const le=o({uuid:null!=(U=null==(Q=V.tableConfig)?void 0:Q.uuid)?U:ae});a(F,le);const ne=C(se,10);function se(){le.value=W(te,V.tableConfig,{$table:oe,emits:ee}),le.value.uuid=ae}const re=o([]);a(O,re);const ie=C(ue,10);function ue(){re.value=q(te,V.fieldList,le.value,{$table:oe,emits:ee})}const de=J(te,le,oe),ce=o([]);async function fe(){var e,t;const a=await de(V.tableData),o=null==(e=oe.value)?void 0:e.getTableData().fullData;if(o){let e=0;if(!(o.some((t=>{var o;if(!(null==(o=oe.value)?void 0:o.isInsertByRow(t)))return t!==a[e]||e++}))||e!==a.length))return}ce.value=a,null==(t=oe.value)||t.recalculate(!0)}const me={updateTableDataRef:C(fe,10),updateConfigRef:ne,updateFieldListRef:ie};a(B,me);const ve=z({hooks:te,config:le,$table:oe,context:me,emits:ee}),pe=t((()=>({...le.value,...ve})));let be=!1,he=!1,ge=!1;const xe=C((()=>{be&&se(),he&&ue(),ge&&fe(),be=!1,he=!1,ge=!1}),10);l((()=>V.tableConfig),(()=>{be=!0,he=!0,ge=!0,xe()}),{deep:!0}),l((()=>V.fieldList),(()=>{he=!0,ge=!0,xe()}),{deep:!0}),l([()=>[...V.tableData],()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(()=>{ge=!0,xe()})),l([()=>V.tableData,()=>{var e;return null==(e=V.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=le.value.treeConfig)?void 0:e.expandAll)&&(await T(11),null==(t=oe.value)||t.setAllTreeExpand(!0))})),se(),ue(),fe();const{header:ke,footer:ye}=G(te);function De(e){return w(e,["row","rowIndex","$rowIndex","column","columnIndex","$columnIndex","_columnIndex","checked","disabled","indeterminate"])}return _({$table:oe,async loadData(e){var t;null==(t=oe.value)||t.loadData(await de(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),reload(){var e,t;null==(e=oe.value)||e.loadColumn([]),null==(t=oe.value)||t.loadData([]),se(),ue(),fe()},...te.exposeHooks.expose.call({},le,{$table:oe,emits:ee})}),te.setupHooks.setup.call(le,re,{$table:oe,emits:ee}),(e,t)=>{const a=n("vxe-grid");return s(),r("section",{class:"iho-table",id:i(ae),style:u(i(X))},[(s(),d(c(i(ke)))),f("section",{style:u(i(Y))},[m(a,v({ref_key:"$table",ref:oe},i(pe),{columns:re.value,data:ce.value}),p({_:2},[b(e.$slots,((t,a)=>({name:a,fn:h((t=>[g(" 实际上所有的vxe-grid插槽都支持 "),x(e.$slots,a,k(y(De(t))))]))})))]),1040,["columns","data"])],4),(s(),d(c(i(ye))))],12,N)}}});export{P as default};
@@ -1 +1 @@
1
- import{unref as e}from"vue";import{promiseTimeout as t}from"@vueuse/shared";import"../../../index.js";import{useSessionStorage as n}from"@vueuse/core";import{isString as o,trim as l,isEmpty as i,isEqual as r,isFunction as u}from"lodash-es";import{selectOptionsMap as d}from"../rendererPlugins/editableWidgets/hooks/useSelectOption.js";import{IhoTableUtils as a}from"../../utils/index.js";import{EDITABLE_WIDGET_TYPE as s}from"../../constants/index.js";import{parse as c,isValid as p,compareDesc as f}from"date-fns";import{defineTablePlugin as m}from"../../hooks/useTablePlugin.js";function v(){const v="keyboardEventPlugin",g=n("ihoTableClipData","");return m({name:v,apply(n){function m(t,n,m,v,w){var b,C;if(!(null==(b=null==m?void 0:m.keyboardConfig)?void 0:b.isClip))return;if("paste"===t&&!n.getSelectedCell())return;const{row:y,column:R}=n.getSelectedCell()||n.getEditRecord()||{};if(!y||!R||!E(R,s.SELECT)&&e(g)===y[R.field])return;const x=m.uuid&&E(R,s.SELECT)&&d.get(m.uuid)[R.field],T=y[R.field];if("copy"===t){const e=(null==(C=(x||[]).filter((e=>T.includes(e.value))))?void 0:C.map((e=>e.label)).join(","))||T;g.value=e}else{if(o(e(g))&&(g.value=l(e(g)||"")),!e(g)||!function(e){var t;const n=null==(t=e.editRender)?void 0:t.props;return n&&Object.keys(s).includes(a.getCellType(n))}(R)||y.$__SEPARATE||!function(e,t,n,o){var l,i;const{beforeEditMethod:r}=t.editConfig||{},d={rowIndex:null!=(l=e.getRowIndex(n))?l:0,columnIndex:null!=(i=e.getColumnIndex(o))?i:0};return!r||u(r)&&r({row:n,column:o,...d,$table:e,$grid:void 0})}(n,m,y,R))return;if(E(R,s.DATE)&&function(t,n){var l;const i=null==(l=t.editRender)?void 0:l.props,r=e(g)||"";return!p(new Date(r))||o(i.connectField)&&n[i.connectField]&&(i.isStartDate&&f(new Date(r),new Date(n[i.connectField]))<0||i.isEndDate&&f(new Date(r),new Date(n[i.connectField]))>0)}(R,y))return;if(E(R,s.NUMBER)&&!/^-?\d*\.?\d+$/.test((e(g)||"").toString()))return;if(E(R,s.TIME)&&function(t){var n,o;const l=e(g)||"",i=null==(n=t.editRender)?void 0:n.props,r=c(l,(null==(o=null==i?void 0:i.componentProps)?void 0:o.valueFormat)||"HH:mm",new Date);return!p(r)}(R))return;let t=e(g)||"";if(x&&!i(x)){const e=x.filter((e=>t.split(",").includes(e.label))).map((e=>e.value));if(i(e))return;if(function(e){var t,n;const o=null==(t=e.editRender)?void 0:t.props;return E(e,s.SELECT)&&(null==(n=o.componentProps)?void 0:n.multiple)}(R)){if(r(T,e))return;t=e}else{if(e.includes(T))return;t=e[0]}}y[R.field]=t,v("formChange",{column:R,row:y,oldValue:T,value:t,index:n.getRowIndex(y)}),E(R,s.SEPARATE)&&(null==w||w())}}function E(e,t){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&a.getCellType(o)===t}n.eventHooks.onCopy.tap(v,(({$table:e},t,{emits:n})=>m("copy",e,t,n))),n.eventHooks.onPaste.tap(v,(({$table:e},t,{emits:n,updateTableDataRef:o})=>m("paste",e,t,n,o))),n.eventHooks.onKeydown.tap(v,(async({$event:e,$table:n},o,{emits:l})=>{await t(0);const{row:i,column:r}=n.getSelectedCell()||n.getEditRecord()||{};if(!i||!r)return;l("keyboard",{$table:n,key:e.key,index:n.getRowIndex(i),value:i[r.field],row:i,column:r})}))}})}export{v as keyboardEventPlugin};
1
+ import{unref as e}from"vue";import{promiseTimeout as t}from"@vueuse/shared";import"../../../index.js";import{useSessionStorage as n}from"@vueuse/core";import{selectOptionsMap as o}from"../rendererPlugins/editableWidgets/hooks/useSelectOption.js";import{IhoTableUtils as l}from"../../utils/index.js";import{EDITABLE_WIDGET_TYPE as i}from"../../constants/index.js";import{isString as r,trim as u,isEmpty as d,isEqual as a,isFunction as s}from"lodash-es";import{parse as c,isValid as p,compareDesc as f}from"date-fns";import{defineTablePlugin as m}from"../../hooks/useTablePlugin.js";function v(){const v="keyboardEventPlugin",g=n("ihoTableClipData","");return m({name:v,apply(n){function m(t,n,m,v,w){var b,C;if(!(null==(b=null==m?void 0:m.keyboardConfig)?void 0:b.isClip))return;if("paste"===t&&!n.getSelectedCell())return;const{row:y,column:R}=n.getSelectedCell()||n.getEditRecord()||{};if(!y||!R||!E(R,i.SELECT)&&e(g)===y[R.field])return;const x=m.uuid&&E(R,i.SELECT)&&o.get(m.uuid)[R.field],T=y[R.field];if("copy"===t){const e=(null==(C=(x||[]).filter((e=>T.includes(e.value))))?void 0:C.map((e=>e.label)).join(","))||T;g.value=e}else{if(r(e(g))&&(g.value=u(e(g)||"")),!e(g)||!function(e){var t;const n=null==(t=e.editRender)?void 0:t.props;return n&&Object.keys(i).includes(l.getCellType(n))}(R)||y.$__SEPARATE||!function(e,t,n,o){var l,i;const{beforeEditMethod:r}=t.editConfig||{},u={rowIndex:null!=(l=e.getRowIndex(n))?l:0,columnIndex:null!=(i=e.getColumnIndex(o))?i:0};return!r||s(r)&&r({row:n,column:o,...u,$table:e,$grid:void 0})}(n,m,y,R))return;if(E(R,i.DATE)&&function(t,n){var o;const l=null==(o=t.editRender)?void 0:o.props,i=e(g)||"";return!p(new Date(i))||r(l.connectField)&&n[l.connectField]&&(l.isStartDate&&f(new Date(i),new Date(n[l.connectField]))<0||l.isEndDate&&f(new Date(i),new Date(n[l.connectField]))>0)}(R,y))return;if(E(R,i.NUMBER)&&!/^-?\d*\.?\d+$/.test((e(g)||"").toString()))return;if(E(R,i.TIME)&&function(t){var n,o;const l=e(g)||"",i=null==(n=t.editRender)?void 0:n.props,r=c(l,(null==(o=null==i?void 0:i.componentProps)?void 0:o.valueFormat)||"HH:mm",new Date);return!p(r)}(R))return;let t=e(g)||"";if(x&&!d(x)){const e=x.filter((e=>t.split(",").includes(e.label))).map((e=>e.value));if(d(e))return;if(function(e){var t,n;const o=null==(t=e.editRender)?void 0:t.props;return E(e,i.SELECT)&&(null==(n=o.componentProps)?void 0:n.multiple)}(R)){if(a(T,e))return;t=e}else{if(e.includes(T))return;t=e[0]}}y[R.field]=t,v("formChange",{column:R,row:y,oldValue:T,value:t,index:n.getRowIndex(y)}),E(R,i.SEPARATE)&&(null==w||w())}}function E(e,t){var n;const o=null==(n=e.editRender)?void 0:n.props;return o&&l.getCellType(o)===t}n.eventHooks.onCopy.tap(v,(({$table:e},t,{emits:n})=>m("copy",e,t,n))),n.eventHooks.onPaste.tap(v,(({$table:e},t,{emits:n,updateTableDataRef:o})=>m("paste",e,t,n,o))),n.eventHooks.onKeydown.tap(v,(async({$event:e,$table:n},o,{emits:l})=>{await t(0);const{row:i,column:r}=n.getSelectedCell()||n.getEditRecord()||{};if(!i||!r)return;l("keyboard",{$table:n,key:e.key,index:n.getRowIndex(i),value:i[r.field],row:i,column:r})}))}})}export{v as keyboardEventPlugin};
@@ -1,2 +1,4 @@
1
1
  import { AnyObject } from '../../../../../../../../es/shared/types';
2
+ import { VxeTableConstructor } from 'vxe-table';
2
3
  export declare const selectOptionsMap: Map<string, Record<string, AnyObject[]>>;
4
+ export declare function getSelectOptions(uuid: string, field: string, row?: AnyObject, $table?: VxeTableConstructor): AnyObject[];
@@ -1 +1 @@
1
- import{reactive as o}from"vue";const e=o(new Map);export{e as selectOptionsMap};
1
+ import{reactive as e}from"vue";const n=e(new Map);function t(e,t,i,l){if(!e||!t)return[];if(l&&i){const{tableColumn:r}=l.reactData,o=r.find((e=>{var n,i;const l=null==(n=e.editRender)?void 0:n.props,r=null==(i=(null==l?void 0:l.connectField)||"")?void 0:i.split(",");return null==r?void 0:r.includes(t)}));if(o&&i[o.field])return n.get(e)[`${t}__${o.field}-${i[o.field]}`]}return n.get(e)[t]}export{t as getSelectOptions,n as selectOptionsMap};
@@ -55,6 +55,18 @@ declare const _default: import("vue").DefineComponent<{
55
55
  menuProps: {
56
56
  type: PropType<AnyObject>;
57
57
  };
58
+ multiple: {
59
+ type: BooleanConstructor;
60
+ default: boolean;
61
+ };
62
+ deletable: {
63
+ type: BooleanConstructor;
64
+ default: boolean;
65
+ };
66
+ selectAll: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
58
70
  }, () => 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<{
59
71
  value: {
60
72
  type: PropType<string | number | (string | number)[]>;
@@ -108,15 +120,30 @@ declare const _default: import("vue").DefineComponent<{
108
120
  menuProps: {
109
121
  type: PropType<AnyObject>;
110
122
  };
123
+ multiple: {
124
+ type: BooleanConstructor;
125
+ default: boolean;
126
+ };
127
+ deletable: {
128
+ type: BooleanConstructor;
129
+ default: boolean;
130
+ };
131
+ selectAll: {
132
+ type: BooleanConstructor;
133
+ default: boolean;
134
+ };
111
135
  }>> & {
112
136
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
113
137
  }, {
114
138
  options: AnyObject[];
139
+ multiple: boolean;
115
140
  labelField: string;
116
141
  valueField: string;
117
142
  placeholder: string;
143
+ deletable: boolean;
118
144
  shouldSave: boolean;
119
145
  consistentMenuWidth: boolean;
120
146
  allowCreate: boolean;
147
+ selectAll: boolean;
121
148
  }>;
122
149
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,inject as l,ref as o,computed as t,createVNode as a,toRaw as n,Fragment as u}from"vue";import{keywordMatcher as r,arrayed as i}from"../../../../../../../shared/utils/index.js";import{NSelect as s,NTooltip as d,NIcon as p,NTag as c}from"naive-ui";import{HelpCircleSharp as v}from"@vicons/ionicons5";import{InjectionIhoTableUUID as m}from"../../../../constants/index.js";import{selectOptionsMap as f}from"../hooks/useSelectOption.js";import{useIhoTableFormEvent as h}from"../../../../utils/index.js";import{useDebounceFn as y}from"@vueuse/core";import{isEmpty as b,isFunction as F,isArray as w,isObject as S,omit as g,cloneDeep as O}from"lodash-es";var x=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object}},emits:["update:value"],setup(e,{emit:x}){const j=l("$xetable"),P=o(null);function q(e){P.value=e}const _=o(!1),{emitFormChangeWithParams:k}=h({...e,$table:j}),C=o("");function W(){return E()}const M=o([]),$=t((()=>{let l=b(M.value)?e.options:M.value;return C.value?(l=l.filter((l=>l[e.labelField]&&l[e.labelField].includes(C.value)||r(C.value,l.keyword))),!e.allowCreate||l.some((l=>l[e.labelField]===C.value))?l:[...l,{[e.labelField]:C.value,[e.valueField]:C.value,created:!0,shouldSave:e.shouldSave}]):l})),B=o(!1),E=y((async function(l=""){C.value=l;try{if(B.value=!0,!F(e.queryOptions)||!b(e.options))return;M.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{B.value=!1}}),400),I=l(m);function U(l,o){const t=e.value;x("update:value",l);const a=f.get(I);a&&w(a[e.column.field])&&i(o).forEach((l=>{if(!S(l))return;const o=l;o.created&&o.shouldSave&&a[e.column.field].push(g(n(o),["created","shouldSave"]))})),k({oldValue:t,option:O(o)})}function A(e){var l,o;"Tab"===e.key&&P.value&&(null==(o=(l=P.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}function D({node:e,option:l}){return l.desc?a("div",{class:"iho-table__selectOptionWrapper"},[[e,a(d,null,{trigger:()=>a(p,{component:v},null),default:()=>l.desc})]]):e}function K({option:l,handleClose:o}){var t;const n=null!=(t=e.aliasField&&l[e.aliasField])?t:l[e.labelField];return w(e.value)?a(c,{closable:!0,onClose:e=>{e.stopPropagation(),o()}},{default:()=>n}):a(u,null,[n])}const N=()=>({class:"iho-table__selectOption"}),T=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>a(s,{ref:q,show:_.value,"onUpdate:show":e=>_.value=e,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:B.value,options:$.value,value:e.value,remote:!0,onSearch:E,clearable:!0,filterable:!0,nodeProps:N,menuProps:T.value,renderTag:K,renderOption:D,onUpdateShow:W,onUpdateValue:U,onKeydown:A},null)}});export{x as default};
1
+ import{defineComponent as e,inject as l,ref as t,computed as o,createVNode as n,toRaw as a,Fragment as u,createTextVNode as i}from"vue";import{keywordMatcher as r,arrayed as d}from"../../../../../../../shared/utils/index.js";import{NSelect as s,NTooltip as c,NIcon as p,NTag as v,NButton as f}from"naive-ui";import{HelpCircleSharp as m}from"@vicons/ionicons5";import{InjectionIhoTableUUID as y}from"../../../../constants/index.js";import{getSelectOptions as h,selectOptionsMap as b}from"../hooks/useSelectOption.js";import{useIhoTableFormEvent as F}from"../../../../utils/index.js";import{useDebounceFn as w}from"@vueuse/core";import{isEmpty as g,isFunction as S,isArray as O,isObject as q,omit as C,cloneDeep as x}from"lodash-es";var $=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean,default:!1},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0}},emits:["update:value"],setup(e,{emit:$}){const _=l("$xetable"),j=t(null);function k(e){j.value=e}const P=t(!1),{emitFormChangeWithParams:B}=F({...e,$table:_}),W=t("");function A(){return I()}const D=t([]),E=o((()=>{let l=g(D.value)?e.options:D.value;return W.value?(l=l.filter((l=>l[e.labelField]&&l[e.labelField].includes(W.value)||r(W.value,l.keyword))),!e.allowCreate||l.some((l=>l[e.labelField]===W.value))?l:[...l,{[e.labelField]:W.value,[e.valueField]:W.value,created:!0,shouldSave:e.shouldSave}]):l})),M=t(!1),I=w((async function(l=""){W.value=l;try{if(M.value=!0,!S(e.queryOptions)||!g(e.options))return;D.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{M.value=!1}}),400),U=l(y);function V(l,t){var o,n;const u=e.value;$("update:value",l);const i=h(U,e.column.field,e.row,_);U&&O(i)&&d(t).forEach((e=>{if(!q(e))return;const l=e;l.created&&l.shouldSave&&i.push(C(a(l),["created","shouldSave"]))}));const r=null==(o=e.column.editRender)?void 0:o.props;if(U&&(null==r?void 0:r.connectField)){const t=null==(n=r.connectField)?void 0:n.split(","),o=b.get(U);t.forEach((async t=>{var n;const{tableColumn:a}=_.reactData,u=a.find((e=>e.field===t)),i=null==(n=null==u?void 0:u.editRender)?void 0:n.props;if(null==i?void 0:i.queryOptions){const n=l?`${t}__${e.column.field}-${l}`:t;if(o[n])return;const a=await i.queryOptions({row:e.row,column:u,isFullData:!0,connectColumn:e.column});o[n]=a}}))}B({oldValue:u,option:x(t)})}function z(e){var l,t;"Tab"===e.key&&j.value&&(null==(t=(l=j.value).handleKeydown)||t.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}function K(l){const t=l?E.value.map((l=>l[e.valueField])):[],o=e.value,n=O(o)?o.length:0;t.length!==n&&($("update:value",t),B({oldValue:o,option:l?x(E.value):[]}))}function N({node:e,option:l}){return l.desc?n("div",{class:"iho-table__selectOptionWrapper"},[[e,n(c,null,{trigger:()=>n(p,{component:m},null),default:()=>l.desc})]]):e}function R({option:l,handleClose:t}){var o;const a=null!=(o=e.aliasField&&l[e.aliasField])?o:l[e.labelField];return O(e.value)?e.deletable?n(v,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>a}):`${a} ;`:n(u,null,[a])}function T(){return n(u,null,[n(f,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>K(!0)},{default:()=>[i("全选")]}),n(f,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>K(!1)},{default:()=>[i("清空")]})])}const G=()=>({class:"iho-table__selectOption"}),H=o((()=>{var l,t;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(t=null==(l=e.menuProps)?void 0:l.class)?t:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=T),n(s,{ref:k,show:P.value,"onUpdate:show":e=>P.value=e,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:M.value,options:E.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:I,clearable:!0,filterable:!0,nodeProps:G,menuProps:H.value,renderTag:R,renderOption:N,onUpdateShow:A,onUpdateValue:V,onKeydown:z},l)}}});export{$ as default};
@@ -1 +1 @@
1
- import{inject as e,createVNode as o,mergeProps as t,onBeforeUnmount as i}from"vue";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as n,InjectionIhoTableUUID as l}from"../../../../constants/index.js";import{useAutoFocus as r}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as s,getTitle as u,IhoTableRenderHelper as d,IhoTableUtils as p}from"../../../../utils/index.js";import c from"./editSelect.js";import{getDefaultValue as a,getArray as f}from"./selectUtils.js";import{selectOptionsMap as m}from"../hooks/useSelectOption.js";import{defineTablePlugin as v}from"../../../../hooks/useTablePlugin.js";function E(){const E="selectRendererPlugin";return v({name:E,vxe(i){i.interceptor.add("event.clearActived",s(n.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),i.renderer.add(n.SELECT,{renderCell({props:t},{row:i,column:n}){const r=e(l),s=m.get(r)[n.field]||[],d=a(i,t,s);return[o("span",{title:u(n,d)},[d])]},renderEdit:d.createRenderEdit((({fieldItem:i,emitFormClick:n,row:r,column:s,$rowIndex:u})=>{const d=e(l),p=m.get(d)[s.field]||[];return[o(c,t({queryOptions:i.queryOptions},i.componentProps,{options:p,column:s,row:r,"row-index":u,value:r[s.field],"onUpdate:value":e=>r[s.field]=e,onClick:n}),null)]}))})},apply(e){r(e).bindAutoFocusConfig(E,n.SELECT,".n-base-selection-input");let o=null;e.fieldHooks.fieldList.tap(E,((e,{uuid:t})=>(o=e,t&&m.set(t,{}),e))),e.fieldHooks.fieldEnd.tapPromise(E,(async({uuid:e})=>{if(!e)return;const t=m.get(e);null==o||o.forEach((async e=>{var o,i,n;const l=null==(o=e.editRender)?void 0:o.props;if(e.field&&l&&"SELECT"===p.getCellType(l)){if(t[e.field])return;let o=f(l.options)||f(null==(i=l.componentProps)?void 0:i.options)||[];if(l.queryOptions)try{const t={column:e,isFullData:!0};o=await(null==(n=l.queryOptions)?void 0:n.call(l,t))}catch(e){console.log(`获取${l.field}_options错误`)}t[e.field]=o}})),o=null})),e.setupHooks.setup.tap(E,(e=>{i((()=>{e.value.uuid&&m.delete(e.value.uuid)}))}))}})}export{E as selectRendererPlugin};
1
+ import{reactive as e,inject as o,createVNode as t,mergeProps as n,onBeforeUnmount as l}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as r,InjectionIhoTableUUID as s}from"../../../../constants/index.js";import{useAutoFocus as d}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as u,getTitle as c,IhoTableRenderHelper as a,IhoTableUtils as p}from"../../../../utils/index.js";import f from"./editSelect.js";import{getDefaultValue as m,isConnectField as v,getArray as E}from"./selectUtils.js";import{getSelectOptions as g,selectOptionsMap as w}from"../hooks/useSelectOption.js";import{cloneDeep as C,isEqual as b}from"lodash-es";import{defineTablePlugin as h}from"../../../../hooks/useTablePlugin.js";function x(){const x="selectRendererPlugin",k=e(new Map);return h({name:x,vxe(e){e.interceptor.add("event.clearActived",u(r.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),e.renderer.add(r.SELECT,{renderCell({props:e},{row:n,column:l,$table:r}){var d;const u=o(s),a=g(u,l.field,n,r),p=m(n,e,a),f=i(p).join(","),v=e&&(!0===(E=e.variableHeight)||"1"===E||(null==(d=e.componentProps)?void 0:d.indexedText));var E;return[t("span",{title:c(l,f)},[v?i(p).filter((e=>null!=e)).map(((e,o)=>[o+1,".",e,";",t("br",null,null)])):f])]},renderEdit:a.createRenderEdit((({fieldItem:e,emitFormClick:l,row:i,column:r,$rowIndex:d,$table:u})=>{const c=o(s),a=g(c,r.field,i,u);return[t(f,n({queryOptions:e.queryOptions},e.componentProps,{options:a,column:r,row:i,"row-index":d,value:i[r.field],"onUpdate:value":e=>i[r.field]=e,onClick:l}),null)]}))})},apply(e){async function o(e,o={}){var t,n,l;const i=null==(t=e.editRender)?void 0:t.props;if(!i)return[];let r=E(i.options)||E(null==(n=i.componentProps)?void 0:n.options)||[];if(i.queryOptions)try{const t={column:e,isFullData:!0,...o};r=await(null==(l=i.queryOptions)?void 0:l.call(i,t))}catch(e){console.log(`获取${i.field}_options错误`)}return r}d(e).bindAutoFocusConfig(x,r.SELECT,".n-base-selection-input"),e.fieldHooks.fieldList.tap(x,((e,{uuid:o})=>(o&&(w.get(o)||w.set(o,{}),k.set(o,C(e))),e))),e.dataHooks.data.tap(x,((e,{uuid:t},n)=>{if(!t)return;const l=k.get(t);if(!l||!l.length)return;const i=w.get(t);l.forEach((async t=>{var n;const r=null==(n=t.editRender)?void 0:n.props;if(t.field&&r&&"SELECT"===p.getCellType(r)){if(null==r?void 0:r.connectField){const n=r.connectField.split(","),s=e[r.columnName];n.forEach((async n=>{const d=null==l?void 0:l.find((e=>e.field===n));if(!d)return;const u=s?`${n}__${r.columnName}-${s}`:n;i[u]||(i[u]=[],i[u]=await o(d,{row:e,connectColumn:t}))}))}i[t.field]||v(l,t.field)||(i[t.field]=[],i[t.field]=await o(t,{row:e}))}}))})),e.setupHooks.setup.tap(x,(e=>{l((()=>{var o;const t=null==(o=e.value)?void 0:o.uuid;t&&(w.delete(t),k.delete(t))}))})),e.eventHooks.onCellDblclick.tap(x,(({$table:e},o,{emits:t})=>{var n;const{column:l,row:i}=e.reactData.editStore.actived,s=null==(n=l.editRender)?void 0:n.props,{cellDblclickSelectable:d=!1,multiple:u=!1,valueField:c="value"}=s.componentProps||{};if(!d||!l||!function(e){return e&&p.getCellType(e)===r.SELECT}(s))return;const a=o.uuid&&g(o.uuid,l.field,i,e);if(1!==(null==a?void 0:a.length))return;const f=u?[a[0][c]]:a[0][c],m=i[l.field];e.clearEdit(),b(f,m)||(i[l.field]=f,t("formChange",{column:l,row:i,oldValue:m,value:f,index:e.getRowIndex(i),$table:e,option:a[0]}))}))}})}export{x as selectRendererPlugin};
@@ -1,4 +1,5 @@
1
1
  import { AnyObject } from '../../../../../../../../es/shared/types';
2
- import { LowCodeTableFieldItem } from '../../../../../../../../es/components/iho-table/src/types';
2
+ import { LowCodeTableFieldItem, IhoTableFieldItem } from '../../../../../../../../es/components/iho-table/src/types';
3
3
  export declare function getDefaultValue(row: AnyObject, item: LowCodeTableFieldItem | any, options?: AnyObject[]): any;
4
4
  export declare function getArray(list: AnyObject[] | undefined): AnyObject[] | null | undefined;
5
+ export declare function isConnectField(columns: IhoTableFieldItem[], field: string): boolean;
@@ -1 +1 @@
1
- function l(l,r,u=[]){const{aliasField:i="",labelField:o="label",valueField:e="value"}=(null==r?void 0:r.componentProps)||{},a=l[r.columnName];return Array.isArray(a)?a.map((l=>t(l))).join(","):t(a);function t(l){var r,a,t;const d=null==(r=n(u))?void 0:r.find((n=>n[e]==l));return null!=(t=null!=(a=null==d?void 0:d[i])?a:null==d?void 0:d[o])?t:l}}function n(l){return Array.isArray(l)&&!l.length?null:l}export{n as getArray,l as getDefaultValue};
1
+ function l(l,r,e=[]){const{aliasField:u="",labelField:i="label",valueField:o="value"}=(null==r?void 0:r.componentProps)||{},t=l[r.columnName];return Array.isArray(t)?t.map((l=>a(l))):a(t);function a(l){var r,t,a;const d=null==(r=n(e))?void 0:r.find((n=>n[o]==l));return null!=(a=null!=(t=null==d?void 0:d[u])?t:null==d?void 0:d[i])?a:l}}function n(l){return Array.isArray(l)&&!l.length?null:l}function r(l,n){return l.some((l=>{var r,e;return((null==(e=null==(r=l.editRender)?void 0:r.props)?void 0:e.connectField)||"").split(",").includes(n)}))}export{n as getArray,l as getDefaultValue,r as isConnectField};
@@ -1 +1 @@
1
- import{reactive as e,inject as t,createVNode as o,toRaw as i,h as n,onBeforeUnmount as r}from"vue";import{traverse as s}from"../../../../../../../shared/utils/index.js";import{isFunction as a,isObject as u,range as l}from"lodash-es";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as d,InjectionIhoTableUUID as c}from"../../../../constants/index.js";import{useAutoFocus as p}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as f,IhoTableRenderHelper as m,getRowHeight as h,getColumnRenderWidth as v,parseMergeField as A}from"../../../../utils/index.js";import g from"./editSeparate.vue.js";import{contentSeparate as E,getColumnInfoMaxLength as R,generateSeparateRowData as w,isSeparateColumn as b}from"./separateUtils.js";import{getSeparateInfo as _,setSeparateInfo as k,deleteSeparateInfo as x}from"../../../../utils/separateMap.js";import{defineTablePlugin as P}from"../../../../hooks/useTablePlugin.js";function T(){const T="separateRendererPlugins",S=e(new Map);return P({name:T,vxe(e){e.interceptor.add("event.clearActived",f(d.SEPARATE,(e=>e.classList.contains("v-binder-follower-content")))),e.renderer.add(d.SEPARATE,{renderCell(e,{column:i,row:n}){var r,s;const a=t(c),u=(null!=(s=null==(r=_(a,n))?void 0:r.separateData)?s:{})[i.field];return o("section",{class:"iho-table__ellipsis",title:u},[u])},renderEdit:m.createRenderEdit((({fieldItem:e,column:r,row:s,emitFormClick:l})=>{var d,p,f;const m=t(c),v=_(m,s),A=h(),E={};let R=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return R&&(R=i(R),E.menu=a(R)?R:u(R)?e=>n(R,e):void 0),[o(g,{value:s[r.field],"onUpdate:value":e=>s[r.field]=e,"row-index":null==v?void 0:v.index,height:A,column:r,row:s,"display-content":null==(f=null==v?void 0:v.separateData)?void 0:f[r.field],onClick:l},E)]}))})},apply(e){function t(e){return(...t)=>{var o;return!(null==(o=t[0].row)?void 0:o.$__SEPARATE)&&(!a(e)||e(...t))}}p(e).bindAutoFocusConfig(T,d.SEPARATE,".iho-table__separateText"),e.fieldHooks.fieldList.tap(T,((e,{uuid:t})=>(t&&S.set(t,e.reduce(((e,t)=>(s(t,(t=>{b(t)&&(e.push(i(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(T,(async(e,t,{insertAfter:o,index:i,$table:n})=>{if(!t.uuid)return;const r=S.get(t.uuid);if(!r||!r.length)return;const s=[];for(const t of r){if(!t.field)continue;const o=await v(t,n);s.push({field:t.field,data:E(A(e,t),t,o)})}l(R(s)).forEach(((n,r,a)=>{const u=w(s,r),l={index:i,originalData:e,separateData:u,separateIndex:r,separateLength:a.length,isOriginRow:0===r,isLastRow:r===a.length-1};if(0===r)return e.$__SEPARATE_DATA=[u],void k(t.uuid,e,l);const d={$__SEPARATE:!0};k(t.uuid,d,l),e.$__SEPARATE_DATA.push(u),o(d)}))})),e.eventHooks.onResizableChange.tap(T,(async({column:e},t,o)=>{b(e)&&o.updateTableDataRef()})),e.configHooks.editConfig.tap(T,((e={},t)=>{const o=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var i;if(!t.uuid)return p();const n=S.get(t.uuid);if(!n||!n.length)return p();const{row:r,column:s}=e[0],u=_(t.uuid,r);if(!u)return p();const l=null==(i=s.editRender)?void 0:i.props;if(!l)return p();const{isOriginRow:d,isLastRow:c}=u;return("bottom"===l.separatePlacement?c:d)&&p();function p(){return!a(o)||o(...e)}},e})),e.configHooks.checkboxConfig.tap(T,((e={},o)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(T,(e=>{r((()=>{e.value.uuid&&(S.delete(e.value.uuid),x(e.value.uuid))}))}))}})}export{T as separateRendererPlugins};
1
+ import{reactive as e,inject as t,createVNode as a,toRaw as o,h as r,onBeforeUnmount as n}from"vue";import{traverse as i,arrayed as l}from"../../../../../../../shared/utils/index.js";import{isFunction as u,isObject as s,isArray as d,compact as p,range as c,flatten as f}from"lodash-es";import{NInput as _}from"naive-ui";import{uniq as m}from"xe-utils";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as E,InjectionIhoTableUUID as h,InjectionIhoTableHandler as A}from"../../../../constants/index.js";import{useAutoFocus as v}from"../hooks/useAutoFocus.js";import{createIhoTableClearActivedInterceptor as R,getLowCodeFieldFromField as g,IhoTableRenderHelper as T,getRowHeight as D,getColumnRenderWidth as w,parseMergeField as b}from"../../../../utils/index.js";import P from"./editSeparate.vue.js";import{contentSeparate as $,getLengthDiffArray as x,getColumnInfoMaxLength as C,generateSeparateRowData as S,isSeparateColumn as k}from"./separateUtils.js";import{getSeparateInfo as H,setSeparateInfo as j,deleteSeparateInfo as M}from"../../../../utils/separateMap.js";import{defineTablePlugin as O}from"../../../../hooks/useTablePlugin.js";function I(){const I="separateRendererPlugins",F=e(new Map);return O({name:I,vxe(e){e.interceptor.add("event.clearActived",R(E.SEPARATE,(e=>e.classList.contains("v-binder-follower-content")))),e.renderer.add(E.SEPARATE,{renderCell(e,{column:o,row:r}){var n,i;const l=t(h),u=null!=(i=null==(n=H(l,r))?void 0:n.separateData)?i:{},s=g(o),d=(null==s?void 0:s.separateFormatter)?s.separateFormatter(u[o.field]):u[o.field];return a("section",{class:"iho-table__ellipsis",title:d},[d])},renderEdit:T.createRenderEdit((({fieldItem:e,column:n,row:i,emitFormClick:l})=>{var d,p;const c=t(h),f=H(c,i),m=D(),E={};let v=null!=(p=null==(d=e.componentProps)?void 0:d.separateSlot)?p:e.separateSlot;return v&&(v=o(v),E.menu=u(v)?v:s(v)?e=>r(v,e):void 0),e.separateRowEdit?function(){if(!f)return[];if(f.ihoTableHandler=t(A),f.separateData["__"+n.field]=f.separateData["__"+n.field]||f.separateData[n.field],E.menu){const e=E.menu;return a(e,{column:n,col:n,row:i,value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)}return[a(_,{value:f.separateData["__"+n.field],"onUpdate:value":e=>f.separateData["__"+n.field]=e},null)]}():[a(P,{value:i[n.field],"onUpdate:value":e=>i[n.field]=e,"row-index":null==f?void 0:f.index,height:m,column:n,row:i,"display-content":null==(R=null==f?void 0:f.separateData)?void 0:R[n.field],onClick:l},E)];var R}))})},apply(e){function t(e){return(...t)=>{var a;return!(null==(a=t[0].row)?void 0:a.$__SEPARATE)&&(!u(e)||e(...t))}}v(e).bindAutoFocusConfig(I,E.SEPARATE,".iho-table__separateText"),e.eventHooks.onEditClosed.tap(I,(({row:e,column:t,$table:a},o,{emits:r})=>{if(!e.$__uuid)return;const n=g(t);if(!n||!n.separateRowEdit)return;const i=H(e.$__uuid,e);if(!i)return;const{separateData:l,originalData:u,ihoTableHandler:s,index:p}=i,{field:c}=t;if(l["__"+c]&&l["__"+c]!==l[c]&&d(u.$__SEPARATE_DATA)){const e=u.$__SEPARATE_DATA.map((e=>{var t;return null!=(t=e["__"+c])?t:e[c]})),o=u[c];u[c]=d(u[c])?e:e.join(""),r("formChange",{value:u[c],oldValue:o,row:u,column:t,index:p,$table:a}),null==s||s.updateTableDataRef()}})),e.fieldHooks.fieldList.tap(I,((e,{uuid:t})=>(t&&F.set(t,e.reduce(((e,t)=>(i(t,(t=>{k(t)&&(e.push(o(t)),t.showOverflow="ellipsis")})),e)),[])),e))),e.dataHooks.data.tapPromise(I,(async(e,t,{insertAfter:a,index:o,$table:r})=>{var n;if(!t.uuid)return;const i=F.get(t.uuid);if(!i||!i.length)return;const u=[];for(const t of i){if(!t.field)continue;const a=await w(t,r),o={field:t.field,column:t,data:$(b(e,t),t,a,null==(n=g(t))?void 0:n.separateDeep)};u.push(o)}function s(e){return u.find((t=>t.field===e))}u.forEach((e=>{const{column:t}=e,a=g(t);if(!a)return;if(!a.separateDeep||!a.separateBinder)return;const o=p(l(a.separateBinder).map(s));if(!o.length)return;const r=o.concat(e),n=Math.max(...r.map((e=>e.data.length)));c(n).forEach((e=>{const t=r.map((t=>{const a=t.data[e];return{item:a,data:t.data,length:d(a)?a.length:1}})),a=t.map((e=>e.length));if(1===m(a).length)return;const o=Math.max(...a);t.forEach((({item:t,data:a,length:r})=>{r!==o&&(d(t)?t.push(...x(o,r)):a[e]=c(o).map(((e,a)=>0===a?t:"")))}))}))})),u.forEach((e=>{e.data=f(e.data)})),c(C(u)).forEach(((r,n,i)=>{var l;const s=S(u,n),d={index:o,originalData:e,separateData:s,separateIndex:n,separateLength:i.length,isOriginRow:0===n,isLastRow:n===i.length-1};if(0===n)return e.$__SEPARATE_DATA=[s],e.$__SEPARATE_ROW_CACHE=e.$__SEPARATE_ROW_CACHE||[],e.$__uuid=t.uuid,void j(t.uuid,e,d);const p=null!=(l=e.$__SEPARATE_ROW_CACHE[n-1])?l:e.$__SEPARATE_ROW_CACHE[n-1]={$__SEPARATE:!0,$__uuid:t.uuid,$__ORIGIN_INDEX:o,$__SEPARATE_INDEX:n};j(t.uuid,p,d),e.$__SEPARATE_DATA.push(s),a(p)}))})),e.eventHooks.onResizableChange.tap(I,(async({column:e},t,a)=>{k(e)&&a.updateTableDataRef()})),e.configHooks.editConfig.tap(I,((e={},t)=>{const a=e.beforeEditMethod;return e.beforeEditMethod=(...e)=>{var o;if(!t.uuid)return c();const r=F.get(t.uuid);if(!r||!r.length)return c();const{row:n,column:i}=e[0],l=H(t.uuid,n);if(!l)return c();const s=null==(o=i.editRender)?void 0:o.props;if(!s||s.separateRowEdit)return c();const{isOriginRow:d,isLastRow:p}=l;return("bottom"===s.separatePlacement?p:d)&&c();function c(){return!u(a)||a(...e)}},e})),e.configHooks.checkboxConfig.tap(I,((e={},a)=>(e.checkMethod=t(e.checkMethod),e.visibleMethod=t(e.visibleMethod),e))),e.setupHooks.setup.tap(I,(e=>{n((()=>{e.value.uuid&&(F.delete(e.value.uuid),M(e.value.uuid))}))}))}})}export{I as separateRendererPlugins};