cnhis-design-vue 3.1.42-release.2 → 3.1.42-release.4

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 (157) hide show
  1. package/README.md +87 -87
  2. package/es/components/annotation-edit/src/AnnotationEdit.js +1 -1
  3. package/es/components/base-search/index.d.ts +2 -2
  4. package/es/components/base-search/src/index.vue.d.ts +2 -2
  5. package/es/components/base-search/style/index.css +1 -1
  6. package/es/components/bpmn-workflow/index.d.ts +12 -0
  7. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  8. package/es/components/bpmn-workflow/src/BpmnWorkflow.vue.d.ts +12 -0
  9. package/es/components/bpmn-workflow/src/BpmnWorkflow.vue.js +1 -1
  10. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  11. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  12. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  13. package/es/components/button-print/index.d.ts +4 -4
  14. package/es/components/button-print/src/ButtonPrint.vue.d.ts +4 -4
  15. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  16. package/es/components/button-print/src/components/EditFormat.vue.d.ts +4 -4
  17. package/es/components/button-print/src/components/IdentityVerification.vue.d.ts +4 -4
  18. package/es/components/classification/index.d.ts +1 -1
  19. package/es/components/classification/src/index.vue.d.ts +2 -2
  20. package/es/components/classification/style/index.css +1 -1
  21. package/es/components/date-picker/index.d.ts +4 -0
  22. package/es/components/date-picker/src/DatePicker.vue.d.ts +4 -0
  23. package/es/components/date-picker/src/DatePicker.vue.js +1 -1
  24. package/es/components/fabric-chart/index.d.ts +2 -2
  25. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +2 -2
  26. package/es/components/fabric-chart/src/hooks/useBirthProcess.d.ts +1 -0
  27. package/es/components/fabric-chart/src/hooks/useBirthProcess.js +1 -1
  28. package/es/components/fabric-chart/src/hooks/useBirthProcessChart.js +1 -1
  29. package/es/components/fabric-chart/src/hooks/useCenter.js +1 -1
  30. package/es/components/fabric-chart/src/hooks/useLeft.js +1 -1
  31. package/es/components/fabric-chart/src/hooks/useScaleColumn.d.ts +16 -0
  32. package/es/components/fabric-chart/src/hooks/useScaleColumn.js +1 -0
  33. package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
  34. package/es/components/field-set/index.d.ts +26 -81
  35. package/es/components/field-set/src/FieldSet.vue.d.ts +28 -32
  36. package/es/components/field-set/src/FieldSet.vue.js +1 -1
  37. package/es/components/field-set/style/index.css +1 -1
  38. package/es/components/form-config/index.d.ts +15 -15
  39. package/es/components/form-config/src/FormConfig.vue.d.ts +15 -15
  40. package/es/components/form-config/src/FormConfig.vue.js +1 -1
  41. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +3 -2
  42. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +8 -9
  43. package/es/components/form-config/src/components/FormConfigEdit.vue.js +1 -1
  44. package/es/components/form-config/src/components/renderer/DefaultNode.vue.js +1 -1
  45. package/es/components/form-config/src/constants/index.d.ts +12 -1
  46. package/es/components/form-config/src/constants/index.js +1 -1
  47. package/es/components/form-config/src/hooks/useConfigurationField.js +1 -1
  48. package/es/components/form-config/src/types/index.d.ts +1 -0
  49. package/es/components/form-render/index.d.ts +3 -2
  50. package/es/components/form-render/src/FormRender.vue.d.ts +3 -2
  51. package/es/components/form-render/src/FormRender.vue.js +1 -1
  52. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +3 -2
  53. package/es/components/form-render/src/components/renderer/combination.js +1 -1
  54. package/es/components/form-render/src/components/renderer/jsonCombination/index.js +1 -1
  55. package/es/components/form-render/src/components/renderer/levelSearchCascader.d.ts +18 -0
  56. package/es/components/form-render/src/components/renderer/levelSearchCascader.js +1 -1
  57. package/es/components/form-render/src/components/renderer/radio&checkbox.d.ts +36 -0
  58. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  59. package/es/components/form-render/src/components/renderer/remoteSearch.d.ts +18 -0
  60. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  61. package/es/components/form-render/src/components/renderer/searchCascade.d.ts +18 -0
  62. package/es/components/form-render/src/components/renderer/searchCascade.js +1 -1
  63. package/es/components/form-render/src/components/renderer/select.d.ts +32 -5
  64. package/es/components/form-render/src/components/renderer/select.js +1 -1
  65. package/es/components/form-render/src/hooks/useFormAsyncQueue.js +1 -1
  66. package/es/components/form-render/src/hooks/useFormRenderOptions.d.ts +13 -8
  67. package/es/components/form-render/src/hooks/useFormRenderOptions.js +1 -1
  68. package/es/components/form-render/src/types/fieldItem.d.ts +3 -4
  69. package/es/components/iho-table/index.d.ts +4 -1522
  70. package/es/components/iho-table/src/IhoTable.vue.d.ts +4 -1522
  71. package/es/components/iho-table/src/IhoTable.vue.js +1 -1
  72. package/es/components/iho-table/src/hooks/tapHooks/index.d.ts +4 -4
  73. package/es/components/iho-table/src/hooks/tapHooks/index.js +1 -1
  74. package/es/components/iho-table/src/hooks/tapHooks/useConfigHooks.d.ts +22 -21
  75. package/es/components/iho-table/src/hooks/tapHooks/useConfigHooks.js +1 -1
  76. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.d.ts +1 -1
  77. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue.js +1 -1
  78. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  79. package/es/components/iho-table/src/plugins/highLightSetPlugin.d.ts +1 -0
  80. package/es/components/iho-table/src/plugins/highLightSetPlugin.js +1 -0
  81. package/es/components/iho-table/src/plugins/index.js +1 -1
  82. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin/index.js +1 -1
  83. package/es/components/iho-table/src/plugins/maxCheckSizePlugin.d.ts +1 -0
  84. package/es/components/iho-table/src/plugins/maxCheckSizePlugin.js +1 -0
  85. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +4 -0
  86. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  87. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  88. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/separateRendererPlugin/index.js +1 -1
  89. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.d.ts +1 -1
  90. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.js +1 -1
  91. package/es/components/iho-table/src/plugins/rendererPlugins/widgets/defaultRendererPlugin.js +1 -1
  92. package/es/components/iho-table/src/plugins/varialbleHeightPlugin/index.js +1 -1
  93. package/es/components/iho-table/src/types/index.d.ts +7 -4
  94. package/es/components/iho-table/src/types/pluginType.d.ts +6 -3
  95. package/es/components/iho-table/src/utils/index.d.ts +3 -0
  96. package/es/components/iho-table/src/utils/index.js +1 -1
  97. package/es/components/iho-table/style/iconfont.ttf +0 -0
  98. package/es/components/iho-table/style/index.css +1 -1
  99. package/es/components/index.css +1 -1
  100. package/es/components/info-header/index.d.ts +6 -4
  101. package/es/components/info-header/src/InfoHeader.vue.d.ts +6 -4
  102. package/es/components/info-header/src/components/infoDescription/HiddenContent.vue.js +1 -1
  103. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +3 -2
  104. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +3 -2
  105. package/es/components/info-header/style/index.css +1 -1
  106. package/es/components/keyboard/src/Keyboard.vue.js +1 -1
  107. package/es/components/map/index.d.ts +2 -14
  108. package/es/components/map/src/Map.vue.d.ts +1 -14
  109. package/es/components/map/src/types/index.d.ts +19 -0
  110. package/es/components/map/src/types/index.js +1 -0
  111. package/es/components/recommend-search/index.d.ts +13 -128
  112. package/es/components/recommend-search/src/RecommendSearch.vue.d.ts +15 -130
  113. package/es/components/recommend-search/src/RecommendSearch.vue.js +1 -1
  114. package/es/components/recommend-search/src/components/BaseSearch.d.ts +84 -0
  115. package/es/components/recommend-search/src/components/BaseSearch.js +1 -0
  116. package/es/components/recommend-search/src/components/RecommendInput.vue.d.ts +3 -63
  117. package/es/components/recommend-search/src/components/RecommendInput.vue.js +1 -1
  118. package/es/components/recommend-search/src/components/RecommendMenu.vue.d.ts +1 -3
  119. package/es/components/recommend-search/src/components/RecommendMenu.vue.js +1 -1
  120. package/es/components/recommend-search/src/components/RecommendSelect.vue.d.ts +4 -62
  121. package/es/components/recommend-search/src/components/RecommendSelect.vue.js +1 -1
  122. package/es/components/recommend-search/src/constant/index.d.ts +3 -0
  123. package/es/components/recommend-search/src/constant/index.js +1 -1
  124. package/es/components/scale-view/index.d.ts +29 -94
  125. package/es/components/scale-view/src/ScaleView.vue.d.ts +29 -94
  126. package/es/components/scale-view/src/ScaleView.vue.js +1 -1
  127. package/es/components/scale-view/src/components/formitem/standard-modal.d.ts +3 -3
  128. package/es/components/scale-view/src/hooks/scaleview-computed.d.ts +1 -1
  129. package/es/components/scale-view/src/hooks/scaleview-computed.js +1 -1
  130. package/es/components/scale-view/src/hooks/use-component.d.ts +73 -3
  131. package/es/components/scale-view/style/index.css +1 -1
  132. package/es/components/select-label/src/LabelFormContent.vue.js +1 -1
  133. package/es/components/select-label/style/index.css +1 -1
  134. package/es/components/shortcut-setter/index.d.ts +4 -4
  135. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +4 -4
  136. package/es/components/steps-wheel/src/StepsWheel.vue.js +1 -1
  137. package/es/components/table-filter/src/types/index.d.ts +11 -2
  138. package/es/components/time-picker/src/TimePicker.vue.js +1 -1
  139. package/es/components/vod-chunk-upload/index.d.ts +73 -3
  140. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.d.ts +73 -3
  141. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.js +1 -1
  142. package/es/env.d.ts +24 -24
  143. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  144. package/es/shared/hooks/useDateTime.d.ts +2 -2
  145. package/es/shared/hooks/useDateTime.js +1 -1
  146. package/es/shared/utils/index.d.ts +3 -3
  147. package/es/shared/utils/index.js +1 -1
  148. package/es/shared/utils/tapable/index.d.ts +139 -0
  149. package/package.json +2 -2
  150. package/es/components/recommend-search/src/components/BaseSearch.vue.d.ts +0 -143
  151. package/es/components/recommend-search/src/components/BaseSearch.vue.js +0 -1
  152. package/es/components/scale-view/src/hooks/scaleview-props.d.ts +0 -115
  153. package/es/components/scale-view/src/hooks/scaleview-props.js +0 -1
  154. /package/es/components/base-search/style/{iconfont.ttf → base-search-iconfont.ttf} +0 -0
  155. /package/es/components/classification/style/{iconfont.ttf → classification-iconfont.ttf} +0 -0
  156. /package/es/components/info-header/style/{iconfont.ttf → info-header-font.ttf} +0 -0
  157. /package/es/components/select-label/style/{iconfont.ttf → select-label-iconfont.ttf} +0 -0
@@ -1 +1 @@
1
- import{defineComponent as e,ref as l,computed as o,inject as u,watch as a,createVNode as r}from"vue";import{connect as t,mapProps as n}from"@formily/vue";import{useVModel as i,useDebounceFn as s}from"@vueuse/core";import{isString as v,isArray as m,cloneDeep as p,isEqual as d}from"lodash-es";import{NSelect as f}from"naive-ui";import"../../../index.js";import{InjectionAsyncQueue as c,InjectionChangeContextCollector as y,InjectionFormItemDepsCollector as h}from"../../constants/index.js";import{createUrlConfigParams as C,formRenderLog as g}from"../../utils/index.js";import{useCommonInjection as j,useSelectOptionProps as x}from"../../hooks/useCommonInjection.js";import{useFormField as F}from"../../hooks/useFormField.js";import{createVisitedSetter as K,assignUpdateValue as b,assignClearBindVisited as k}from"../../utils/schema.js";const w=t(e({name:"FormRemoteSearch",props:{value:{type:String},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},urlConfig:{type:Object},onChange:{}},emits:["update:value"],setup(e,{slots:t,emit:n}){const b=i(e,"value",n),{field:k,fieldKey:w}=F(),S=l(null),V=o((()=>{var l,o;return null!=(o=null==(l=e.urlConfig)?void 0:l.nameKey)?o:"text"})),q=o((()=>{var l,o;return null!=(o=null==(l=e.urlConfig)?void 0:l.valueKey)?o:"value"})),A=u(c),B=s((async(l="",o="label")=>{if(!e.urlConfig)return S.value=null;try{S.value=await A.addAsync(await C({config:{...e.urlConfig,params:{...e.urlConfig.params,["value"===o?q.value:"keyword"]:l}},cache:e.requestCache,field:k.value}))}catch(e){v(e)&&g(e)}})),O=o((()=>m(S.value)?S.value:m(e.options)?e.options:[])),{injectValueValidate:P,injectValueBindKey:U}=j();P(b);const D=U(b);a(b,(e=>{if(e&&!O.value.find((l=>l[q.value]===e)))return B(e,"value")}));u(y).setContext(w.value,(e=>{return{currentOption:p((l=e,O.value.find((e=>e[q.value]===l))))};var l}));const I=u(h);a((()=>e.urlConfig),((e,l)=>{d(e,l)||(S.value=null,e&&(I.setDeps(w.value,e.dependKey||[],(async()=>{S.value=null,b.value=null})),b.value&&B(b.value,"value")))}),{immediate:!0});const{menuProps:R,nodeProps:z}=x();return()=>r(f,{remote:!0,filterable:!0,key:D.value,value:b.value,"onUpdate:value":e=>b.value=e,labelField:V.value,valueField:q.value,"menu-props":R,"node-props":z,onSearch:B,"onUpdate:show":e=>e&&B(),options:O.value,onFocus:K(k)},t)}}),n(b,k));export{w as REMOTE_SEARCH};
1
+ import{defineComponent as e,ref as l,computed as u,inject as a,watch as o,createVNode as t}from"vue";import{connect as n,mapProps as r}from"@formily/vue";import{useVModel as i,useDebounceFn as s}from"@vueuse/core";import{isString as v,isArray as m,cloneDeep as p,isEqual as d}from"lodash-es";import{NSelect as f}from"naive-ui";import"../../../index.js";import{InjectionAsyncQueue as c,InjectionChangeContextCollector as y,InjectionFormItemDepsCollector as g}from"../../constants/index.js";import{createUrlConfigParams as h,formRenderLog as C}from"../../utils/index.js";import{useCommonInjection as j,useSelectOptionProps as F}from"../../hooks/useCommonInjection.js";import{useFormField as x}from"../../hooks/useFormField.js";import{createVisitedSetter as b,assignUpdateValue as K,assignClearBindVisited as S}from"../../utils/schema.js";const k=n(e({name:"FormRemoteSearch",props:{value:{type:String},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},urlConfig:{type:Object},onChange:{}},emits:["update:value"],setup(e,{slots:n,emit:r}){const K=i(e,"value",r),{field:S,fieldKey:k}=x(),w=l(null),V=u((()=>{var l,u,a;return null!=(a=null!=(u=null==(l=e.urlConfig)?void 0:l.nameKey)?u:e.labelField)?a:"text"})),q=u((()=>{var l,u,a;return null!=(a=null!=(u=null==(l=e.urlConfig)?void 0:l.valueKey)?u:e.valueField)?a:"value"})),A=a(c),B=s((async(l="",u="label")=>{if(!e.urlConfig)return w.value=null;try{w.value=await A.addAsync(await h({config:{...e.urlConfig,params:{...e.urlConfig.params,["value"===u?q.value:"keyword"]:l}},cache:e.requestCache,field:S.value}))}catch(e){v(e)&&C(e)}})),O=u((()=>m(w.value)?w.value:m(e.options)?e.options:[])),{injectValueValidate:P,injectValueBindKey:U}=j();P(K);const D=U(K);o(K,(e=>{if(e&&!O.value.find((l=>l[q.value]===e)))return B(e,"value")}));a(y).setContext(k.value,(e=>{return{currentOption:p((l=e,O.value.find((e=>e[q.value]===l))))};var l}));const I=a(g);o((()=>e.urlConfig),((e,l)=>{d(e,l)||(w.value=null,e&&(I.setDeps(k.value,e.dependKey||[],(async()=>{w.value=null,K.value=null})),K.value&&B(K.value,"value")))}),{immediate:!0});const{menuProps:R,nodeProps:z}=F();return()=>t(f,{remote:!0,filterable:!0,key:D.value,value:K.value,"onUpdate:value":e=>K.value=e,labelField:V.value,valueField:q.value,"menu-props":R,"node-props":z,onSearch:B,"onUpdate:show":e=>e&&B(),options:O.value,onFocus:b(S)},n)}}),r(K,S));export{k as REMOTE_SEARCH};
@@ -23,6 +23,14 @@ export declare const SEARCH_CASCADER: import("vue").DefineComponent<{
23
23
  type: BooleanConstructor;
24
24
  default: boolean;
25
25
  };
26
+ labelField: {
27
+ type: StringConstructor;
28
+ default: string;
29
+ };
30
+ valueField: {
31
+ type: StringConstructor;
32
+ default: string;
33
+ };
26
34
  onChange: {};
27
35
  value: {};
28
36
  }, () => 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<{
@@ -47,12 +55,22 @@ export declare const SEARCH_CASCADER: import("vue").DefineComponent<{
47
55
  type: BooleanConstructor;
48
56
  default: boolean;
49
57
  };
58
+ labelField: {
59
+ type: StringConstructor;
60
+ default: string;
61
+ };
62
+ valueField: {
63
+ type: StringConstructor;
64
+ default: string;
65
+ };
50
66
  onChange: {};
51
67
  value: {};
52
68
  }>> & {
53
69
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
54
70
  }, {
55
71
  options: AnyObject[];
72
+ labelField: string;
73
+ valueField: string;
56
74
  requestCache: boolean;
57
75
  filterable: boolean;
58
76
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as a,inject as o,watch as r,createVNode as l,nextTick as n}from"vue";import{isEqual as i,isArray as u}from"lodash-es";import"../../../index.js";import{useCommonInjection as s}from"../../hooks/useCommonInjection.js";import{InjectionAsyncQueue as c,InjectionFormUUID as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../utils/index.js";import{useFormField as m}from"../../hooks/useFormField.js";import{NCascader as d}from"naive-ui";import"@vueuse/core";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"@formily/core";import"date-fns";import"@formily/reactive";import{connect as v,mapProps as f}from"@formily/vue";import"@vue/shared";import"./index.js";import"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as h,assignUpdateValue as y,traverseDependKey as j}from"../../utils/schema.js";const b=v(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:v,emit:f}){const y=t(),{field:b,title:k}=m(),C=a((()=>{var t,a;return null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:"text"})),g=a((()=>{var t,a;return null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:"value"})),A=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");return Array.isArray(t)&&t.length?t.map((e=>e[C.value])).join(" / "):null}catch(e){return null}}));function S(e,t,a){f("update:value",a.map((function(e){return{...e,label:e[C.value],children:void 0,parent:void 0}})))}const F=o(c);async function w(t){e.filterable?await async function(){if(!e.urlConfig||y.value&&e.requestCache)return;const t=await F.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:k.value,cache:e.requestCache});function a(e,t){const o={[C.value]:e[C.value],[g.value]:e[g.value],depth:t+1,isLeaf:!0};return u(e.children)&&(o.children=e.children.map((e=>a(e,t+1))),o.isLeaf=!e.children.length),o}y.value=t.map((e=>a(e,0)))}():await async function(t){if(r(e,t))return;const a=await F.addAsync(l(s(t),u(e),k.value,t));if(!a.length&&t)return t.isLeaf=!0,S(0,0,n(t)),void(K.value=!1);const o=a.map((e=>i(e,s(t))));function r(e,t){return!u(e)||!t&&y.value&&e.requestCache||s(t)>=s(e)-1}function l(t,a,o,r){const l={lvlnr:t+1+""};return r&&a.dependKey&&j(a.dependKey,((e,t)=>{l[t]=r[e]})),{params:l,...a,key:o,cache:e.requestCache}}function n(e){let t=e;const a=[e];for(;t.parent;)a.unshift(t.parent),t=t.parent;return a}function i(a,o){return{[C.value]:a[C.value],[g.value]:a[g.value],depth:o+1,parent:t,isLeaf:o+2>=s(e)}}function u(e){return e.urlConfig}function s(e){var t;return null!=(t=null==e?void 0:e.depth)?t:-1}t?t.children=o:y.value=o}(t),await x()}const H=`form-render__cascade--menu-${o(p)}`;async function x(){await n();const e=document.querySelector(`.${H} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}const{injectValueValidate:L,injectValueWatchFromEmpty:q,injectValueBindKey:B}=s();q((()=>e.value),w),L((()=>e.value)),r((()=>e.urlConfig),(async(e,t)=>{i(e,t)||(y.value=null,await w())}));const K=t(!1);function V(e){K.value=!!e,e&&w()}const E=a((()=>y.value||e.options||[])),O=a((()=>!e.filterable)),W=B(A);return()=>l(d,{key:W.value,remote:O.value,filterable:e.filterable,"menu-props":{class:H,onClick:x},checkStrategy:"child",show:!!K.value,"onUpdate:show":V,value:A.value,"onUpdate:value":S,labelField:C.value,valueField:g.value,options:E.value,onLoad:w,onFocus:h(b)},v)}}),f({dataSource:"options"},y));export{b as SEARCH_CASCADER};
1
+ import{defineComponent as e,ref as t,computed as a,inject as l,watch as r,createVNode as o,nextTick as n}from"vue";import{isEqual as i,isArray as u}from"lodash-es";import"../../../index.js";import{useCommonInjection as s}from"../../hooks/useCommonInjection.js";import{InjectionAsyncQueue as c,InjectionFormUUID as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../utils/index.js";import{useFormField as d}from"../../hooks/useFormField.js";import{NCascader as m}from"naive-ui";import"@vueuse/core";import"date-fns";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"@formily/core";import"@formily/reactive";import{connect as v,mapProps as f}from"@formily/vue";import"@vue/shared";import"./index.js";import"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as h,assignUpdateValue as y,traverseDependKey as j}from"../../utils/schema.js";const b=v(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:v,emit:f}){const y=t(),{field:b,title:k}=d(),C=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:e.labelField)?l:"text"})),g=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:e.valueField)?l:"value"})),F=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");return Array.isArray(t)&&t.length?t.map((e=>e[C.value])).join(" / "):null}catch(e){return null}}));function S(e,t,a){f("update:value",u(a)?a.map((function(e){return{...e,label:e[C.value],children:void 0,parent:void 0}})):null)}const A=l(c);async function w(t){e.filterable?await async function(){if(!e.urlConfig||y.value&&e.requestCache)return;const t=await A.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:k.value,cache:e.requestCache});function a(e,t){const l={[C.value]:e[C.value],[g.value]:e[g.value],depth:t+1,isLeaf:!0};return u(e.children)&&(l.children=e.children.map((e=>a(e,t+1))),l.isLeaf=!e.children.length),l}y.value=t.map((e=>a(e,0)))}():await async function(t){if(r(e,t))return;const a=await A.addAsync(o(s(t),u(e),k.value,t));if(!a.length&&t)return t.isLeaf=!0,S(0,0,n(t)),void(K.value=!1);const l=a.map((e=>i(e,s(t))));function r(e,t){return!u(e)||!t&&y.value&&e.requestCache||s(t)>=s(e)-1}function o(t,a,l,r){const o={lvlnr:t+1+""};return r&&a.dependKey&&j(a.dependKey,((e,t)=>{o[t]=r[e]})),{params:o,...a,key:l,cache:e.requestCache}}function n(e){let t=e;const a=[e];for(;t.parent;)a.unshift(t.parent),t=t.parent;return a}function i(a,l){return{[C.value]:a[C.value],[g.value]:a[g.value],depth:l+1,parent:t,isLeaf:l+2>=s(e)}}function u(e){return e.urlConfig}function s(e){var t;return null!=(t=null==e?void 0:e.depth)?t:-1}t?t.children=l:y.value=l}(t),await x()}const H=`form-render__cascade--menu-${l(p)}`;async function x(){await n();const e=document.querySelector(`.${H} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}const{injectValueValidate:L,injectValueWatchFromEmpty:q,injectValueBindKey:B}=s();q((()=>e.value),w),L((()=>e.value)),r((()=>e.urlConfig),(async(e,t)=>{i(e,t)||(y.value=null,await w())}));const K=t(!1);function V(e){K.value=!!e,e&&w()}const E=a((()=>y.value||e.options||[])),O=a((()=>!e.filterable)),W=B(F);return()=>o(m,{key:W.value,remote:O.value,filterable:e.filterable,"menu-props":{class:H,onClick:x},checkStrategy:"child",show:!!K.value,"onUpdate:show":V,value:F.value,"onUpdate:value":S,labelField:C.value,valueField:g.value,options:E.value,onLoad:w,onFocus:h(b)},v)}}),f({dataSource:"options"},y));export{b as SEARCH_CASCADER};
@@ -5,7 +5,7 @@ import { UrlConfig } from '../../types';
5
5
  import { PropType } from 'vue';
6
6
  export declare const SELECT: import("vue").DefineComponent<{
7
7
  value: {
8
- type: PropType<ArrayAble<string> | null>;
8
+ type: PropType<ArrayAble<string | number> | null>;
9
9
  };
10
10
  lazyRequest: {
11
11
  type: BooleanConstructor;
@@ -20,6 +20,14 @@ export declare const SELECT: import("vue").DefineComponent<{
20
20
  default: () => never[];
21
21
  };
22
22
  onChange: {};
23
+ labelField: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
27
+ valueField: {
28
+ type: StringConstructor;
29
+ default: string;
30
+ };
23
31
  allowCreate: BooleanConstructor;
24
32
  urlConfig: {
25
33
  type: PropType<UrlConfig>;
@@ -58,7 +66,11 @@ export declare const SELECT: import("vue").DefineComponent<{
58
66
  getRecommendInfo: {
59
67
  type: PropType<() => RecommendIds>;
60
68
  };
61
- recommendNum: {
69
+ commonNum: {
70
+ type: NumberConstructor;
71
+ default: number;
72
+ };
73
+ recentNum: {
62
74
  type: NumberConstructor;
63
75
  default: number;
64
76
  };
@@ -68,7 +80,7 @@ export declare const SELECT: import("vue").DefineComponent<{
68
80
  };
69
81
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:value" | "postRecommend")[], "update:value" | "postRecommend", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
70
82
  value: {
71
- type: PropType<ArrayAble<string> | null>;
83
+ type: PropType<ArrayAble<string | number> | null>;
72
84
  };
73
85
  lazyRequest: {
74
86
  type: BooleanConstructor;
@@ -83,6 +95,14 @@ export declare const SELECT: import("vue").DefineComponent<{
83
95
  default: () => never[];
84
96
  };
85
97
  onChange: {};
98
+ labelField: {
99
+ type: StringConstructor;
100
+ default: string;
101
+ };
102
+ valueField: {
103
+ type: StringConstructor;
104
+ default: string;
105
+ };
86
106
  allowCreate: BooleanConstructor;
87
107
  urlConfig: {
88
108
  type: PropType<UrlConfig>;
@@ -121,7 +141,11 @@ export declare const SELECT: import("vue").DefineComponent<{
121
141
  getRecommendInfo: {
122
142
  type: PropType<() => RecommendIds>;
123
143
  };
124
- recommendNum: {
144
+ commonNum: {
145
+ type: NumberConstructor;
146
+ default: number;
147
+ };
148
+ recentNum: {
125
149
  type: NumberConstructor;
126
150
  default: number;
127
151
  };
@@ -134,10 +158,13 @@ export declare const SELECT: import("vue").DefineComponent<{
134
158
  onPostRecommend?: ((...args: any[]) => any) | undefined;
135
159
  }, {
136
160
  options: AnyObject[];
161
+ labelField: string;
162
+ valueField: string;
137
163
  lazyRequest: boolean;
138
164
  requestCache: boolean;
139
165
  recommend: boolean;
140
166
  recommendCache: boolean;
141
- recommendNum: number;
167
+ commonNum: number;
168
+ recentNum: number;
142
169
  allowCreate: boolean;
143
170
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as o,inject as t,ref as a,createVNode as r}from"vue";import{useDebounceFn as l}from"@vueuse/core";import{cloneDeep as s,isString as i}from"lodash-es";import{useCommonInjection as n,useSelectOptionProps as u}from"../../hooks/useCommonInjection.js";import{InjectionChangeContextCollector as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../../index.js";import"../../utils/index.js";import{useFormField as m}from"../../hooks/useFormField.js";import{NSelect as c}from"naive-ui";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"@formily/core";import"date-fns";import"@formily/reactive";import{connect as d,mapProps as y}from"@formily/vue";import"@vue/shared";import"./index.js";import{useUrlConfigOptions as v,useAutographOptions as f,useRecommendOptions as h,searchContentMatcher as j}from"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as b,assignUpdateValue as k,assignClearBindVisited as S}from"../../utils/schema.js";const g=d(e({name:"FormSelect",props:{value:{type:[String,Array]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},allowCreate:Boolean,urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},recommendNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1}},emits:["update:value","postRecommend"],setup(e,{slots:d,emit:y}){const k=o({get:()=>e.value,async set(e){y("update:value",e),C(e)}}),{labelKey:S,valueKey:g,fetchData:A,fullOptions:F,filterOptions:H}=e.urlConfig?v(e,k):f(e,k),{getRecommend:B,postRecommend:C,sortedOptions:x}=h(e,H,y,S,g),{field:O,fieldKey:R}=m();t(p).setContext(R.value,(e=>{return{currentOption:s((o=e,F.value.find((e=>e[g.value]===o))))};var o}));const L=a(""),V=l((async(e="")=>{L.value=e,A(e),B(e)}),300),{injectValueValidate:w,injectValueWatchFromEmpty:K,injectValueBindKey:P}=n();K(k,V),w(k);const W=P(k),{menuProps:q,nodeProps:I}=u();function N(e){const o=e[S.value];if(!o||!i(o))return"";const t=j(L.value,o);return t?r("section",null,[t.map(((e,o)=>0!==o&&e?r("span",{style:{color:o%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):o}const U=o((()=>x.value.length||!e.allowCreate?x.value:L.value?[{[S.value]:L.value,[g.value]:L.value},...x.value]:x.value));return()=>r(c,{key:W.value,remote:!0,filterable:!0,value:k.value,"onUpdate:value":e=>k.value=e,"menu-props":q,"node-props":I,labelField:S.value,valueField:g.value,options:U.value,onSearch:V,"onUpdate:show":e=>e&&V(),onFocus:b(O),renderLabel:N},d)}}),y({dataSource:"options"},k,S));export{g as SELECT};
1
+ import{defineComponent as e,computed as o,inject as t,ref as a,createVNode as r}from"vue";import{useDebounceFn as l}from"@vueuse/core";import{cloneDeep as s,isArray as i,isString as n}from"lodash-es";import{useCommonInjection as u,useSelectOptionProps as p}from"../../hooks/useCommonInjection.js";import{InjectionChangeContextCollector as m}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../../index.js";import"../../utils/index.js";import{useFormField as c}from"../../hooks/useFormField.js";import{NSelect as d}from"naive-ui";import"date-fns";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"@formily/core";import"@formily/reactive";import{connect as y,mapProps as v}from"@formily/vue";import"@vue/shared";import"./index.js";import{useUrlConfigOptions as f,useAutographOptions as h,useRecommendOptions as j,searchContentMatcher as b}from"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as k,assignUpdateValue as S,assignClearBindVisited as g}from"../../utils/schema.js";const F=y(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"},allowCreate:Boolean,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}},emits:["update:value","postRecommend"],setup(e,{slots:y,emit:v}){const S=o({get:()=>e.value,async set(e){v("update:value",e),C(e)}}),{labelKey:g,valueKey:F,fetchData:A,fullOptions:H,filterOptions:x}=e.urlConfig?f(e,S):h(e,S),{getRecommend:B,postRecommend:C,sortedOptions:O}=j(e,x,v,g,F),{field:R,fieldKey:L}=c();t(m).setContext(L.value,(e=>{return{currentOption:s((o=e,i(o)?function(e){const o=H.value.reduce(((e,o)=>(e[o[F.value]]=o,e)),{});return e.map((e=>o[e]))}(o):(t=o,H.value.find((e=>e[F.value]===t)))))};var o,t}));const N=a(""),V=l((async(e="")=>{N.value=e,A(e),B(e)}),300),{injectValueValidate:w,injectValueWatchFromEmpty:K,injectValueBindKey:P}=u();K(S,V),w(S);const W=P(S),{menuProps:q,nodeProps:I}=p();function U(e){const o=e[g.value];if(!o||!n(o))return"";const t=b(N.value,o);return t?r("section",null,[t.map(((e,o)=>0!==o&&e?r("span",{style:{color:o%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):o}const z=o((()=>O.value.length||!e.allowCreate?O.value:N.value?[{[g.value]:N.value,[F.value]:N.value},...O.value]:O.value));return()=>r(d,{key:W.value,remote:!0,filterable:!0,value:S.value,"onUpdate:value":e=>S.value=e,"menu-props":q,"node-props":I,labelField:g.value,valueField:F.value,options:z.value,onSearch:V,"onUpdate:show":e=>e&&V(),onFocus:k(R),renderLabel:U},y)}}),v({dataSource:"options"},S,g));export{F as SELECT};
@@ -1 +1 @@
1
- import{uuidGenerator as e}from"../../../../shared/utils/index.js";import{isFunction as r}from"lodash-es";import"naive-ui";import{unref as t}from"vue";import"@vueuse/core";import{AsyncQueue as o}from"../../../../shared/hooks/useAsyncQueue.js";import"../../index.js";import{useCommonLog as s}from"./useCommonLog.js";import{useFormRequest as n}from"./useFormRequest.js";function u(u){const{getHttpInstance:a}=n();return{create:function(n=3,i){return new o({name:"FormRenderAsyncQueue",parallelism:n,async processor({key:e,method:o="post",cache:n,params:m,url:c},p,f){var l,d;const h=null!=(l=t(u))?l:a();if(!h)return s().invalidHttpInstanceLog(),p(),void f();try{i&&r(i.beforeRequest)&&(m=null!=(d=i.beforeRequest(e,m))?d:{});let t=await h[o](c,m);i&&r(i.afterRequest)&&(t=i.afterRequest(e,t)),p(void 0,Array.isArray(t)?t:[]),!n&&f()}catch(e){p(new Error(`Request error => ${e}`)),f()}},getKey:({url:r,method:t="post",cache:o,params:s})=>o?r+t+JSON.stringify(s||{}):e()})}}}export{u as useFormAsyncQueue};
1
+ import{uuidGenerator as e}from"../../../../shared/utils/index.js";import{isFunction as r}from"lodash-es";import"naive-ui";import{unref as t}from"vue";import"@vueuse/core";import"date-fns";import{AsyncQueue as o}from"../../../../shared/hooks/useAsyncQueue.js";import"../../index.js";import{useCommonLog as s}from"./useCommonLog.js";import{useFormRequest as n}from"./useFormRequest.js";function a(a){const{getHttpInstance:i}=n();return{create:function(n=3,u){return new o({name:"FormRenderAsyncQueue",parallelism:n,async processor({key:e,method:o="post",cache:n,params:m,url:p},c,f){var l,d;const h=null!=(l=t(a))?l:i();if(!h)return s().invalidHttpInstanceLog(),c(),void f();try{u&&r(u.beforeRequest)&&(m=null!=(d=u.beforeRequest(e,m))?d:{});let t=await h[o](p,m);u&&r(u.afterRequest)&&(t=u.afterRequest(e,t)),c(void 0,Array.isArray(t)?t:[]),!n&&f()}catch(e){c(new Error(`Request error => ${e}`)),f()}},getKey:({url:r,method:t="post",cache:o,params:s})=>o?r+t+JSON.stringify(s||{}):e()})}}}export{a as useFormAsyncQueue};
@@ -9,13 +9,16 @@ export declare function useRecommendOptions(props: {
9
9
  recentList?: RecommendItem[];
10
10
  getRecommendInfo?: () => RecommendIds;
11
11
  recommendCache: boolean;
12
- recommendNum: number;
12
+ commonNum: number;
13
+ recentNum: number;
13
14
  }, options: Ref<AnyObject[]>, emit: Func, labelKey: Ref<string>, valueKey: Ref<string>): {
14
15
  postRecommend: (value: unknown) => Promise<void>;
15
16
  getRecommend: (content?: string) => Promise<void>;
16
17
  sortedOptions: import("vue").ComputedRef<AnyObject[]>;
17
18
  };
18
19
  export declare function useUrlConfigOptions(props: {
20
+ labelField?: string;
21
+ valueField?: string;
19
22
  urlConfig?: UrlConfig;
20
23
  options?: AnyObject[];
21
24
  requestCache: boolean;
@@ -27,13 +30,15 @@ export declare function useUrlConfigOptions(props: {
27
30
  fullOptions: import("vue").ComputedRef<AnyObject[]>;
28
31
  fetchData: (content?: string) => Promise<null | undefined>;
29
32
  };
30
- export declare function useAutographOptions(props: {
31
- requestCache?: boolean;
32
- wordbook?: FormWordbook;
33
- autograph?: string;
34
- lazyRequest?: boolean;
35
- options?: AnyObject[];
36
- }, valueRef: Ref): {
33
+ export declare function useAutographOptions(props: Partial<{
34
+ labelField: string;
35
+ valueField: string;
36
+ requestCache: boolean;
37
+ wordbook: FormWordbook;
38
+ autograph: string;
39
+ lazyRequest: boolean;
40
+ options: AnyObject[];
41
+ }>, valueRef: Ref): {
37
42
  labelKey: import("vue").ComputedRef<string>;
38
43
  valueKey: import("vue").ComputedRef<string>;
39
44
  filterOptions: import("vue").ComputedRef<AnyObject[]>;
@@ -1 +1 @@
1
- import{checkInSetupEnv as e,jsonParse as n}from"../../../../shared/utils/index.js";import{useMemoize as t,useDebounceFn as o}from"@vueuse/core";import{identity as r,isString as u,isEqual as l,omit as a,isFunction as i}from"lodash-es";import{computed as c,inject as s,ref as v,watch as m}from"vue";import"../../index.js";import{InjectionAsyncQueue as d,InjectionFormItemDepsCollector as f}from"../constants/index.js";import{createUrlConfigParams as y,formRenderLog as p,keywordMatcher as h}from"../utils/index.js";import{useFormField as g}from"./useFormField.js";import{useFormRequest as w}from"./useFormRequest.js";function k(e,n){const t=v();return c({get:()=>t.value?t.value:e[n],set(e){t.value=e}})}const R=(()=>{const e=new Map,n=t((e=>new RegExp(`(.*)${e.split("").map((e=>`(${e})`)).join("(.*)")}(.*)`)),{getKey:r});return(t,o)=>{const r=e.get(t)||{};return e.set(t,r),Reflect.has(r,o)?r[o]:r[o]=o.match(n(t))}})();function C(){const e=v();return{searchContent:e,optionSearchFilter:function(n,t){return e.value?n.filter((n=>function(n,t){if(!e.value)return!0;const o=n?n[t]:"";return!!u(o)&&(!!R(e.value,o)||h(e.value,n.keyword))}(n,t))):n}}}function b(e,t,o,r,u){const l=k(e,"commonList"),v=k(e,"recentList"),{searchContent:m,optionSearchFilter:f}=C();function y(e){return n(e.itemObj)}const p=c((()=>{var e,n;return null!=(n=null==(e=l.value)?void 0:e.map(y))?n:[]})),h=c((()=>{var e,n;return null!=(n=null==(e=v.value)?void 0:e.map(y))?n:[]})),R=c((()=>{if(!e.recommend||!p.value.length&&!h.value.length)return t.value;const n=t.value.filter((e=>{return p.value.every(n)&&h.value.every(n);function n(n){return n[u.value]!==e[u.value]}}));return[...f(p.value,r.value),...f(h.value,r.value),...n]})),{getRecommendRequestInfo:b,getHttpInstance:K}=w();function j(n){const{url:t,getRecommendIds:o}=b(),r=i(o)?o():{},u=i(e.getRecommendInfo)?e.getRecommendInfo():{};return{url:t[n],info:Object.assign({},r,u)}}const{fieldKey:O}=g(),q=s(d);return{postRecommend:async function(n){if(!e.recommend)return;const t=K();if(!t)return;const{url:r,info:l}=j("post"),a=R.value.find((e=>e[u.value]===n));a&&o("postRecommend",await t.post(r,{...l,keyword:"",itemId:u.value,itemObj:JSON.stringify(a)}))},getRecommend:async function(n){if(!e.recommend)return;if(m.value=n,l.value&&v.value&&e.recommendCache)return;const t=await q.addAsync(function(n,t){const{url:o,info:r}=j("get");return{url:o,method:"get",key:n,cache:t,params:{...r,recNum:e.recommendNum,keyword:""}}}(O.value,e.recommendCache)),{commonly:o,recently:r}=t.reduce(((e,n)=>("commonly"===n.type?e.commonly.push(a(n,["type"])):"recently"===n.type&&e.recently.push(a(n,["type"])),e)),{commonly:[],recently:[]});l.value=o,v.value=r},sortedOptions:R}}function K(n,t){e();const r=s(d),a=c((()=>{var e,t;return null!=(t=null==(e=n.urlConfig)?void 0:e.nameKey)?t:"text"})),i=c((()=>{var e,t;return null!=(t=null==(e=n.urlConfig)?void 0:e.valueKey)?t:"value"})),{searchContent:h,optionSearchFilter:w}=C(),k=v(null),{field:R,fieldKey:b}=g(),K=o((async function(e){if(h.value=e||"",!n.urlConfig)return k.value=null;try{k.value=await r.addAsync(await y({config:n.urlConfig,cache:n.requestCache,field:R.value}))}catch(e){u(e)&&p(e)}}),300),j=c((()=>k.value?w(k.value,a.value):Array.isArray(n.options)?w(n.options,a.value):[])),O=c((()=>k.value||n.options||[])),q=s(f);return m((()=>n.urlConfig),((e,o)=>{l(e,o)||(k.value=null,e&&(q.setDeps(b.value,e.dependKey||[],(async()=>{k.value=null,t.value=null,!n.lazyRequest&&await K()})),(t.value||!n.lazyRequest)&&K()))}),{immediate:!0}),{labelKey:a,valueKey:i,filterOptions:j,fullOptions:O,fetchData:K}}function j(n,t){e();const r=s(d),a=c((()=>{var e,t,o;return null!=(o=null==(t=null==(e=n.wordbook)?void 0:e.render_key)?void 0:t[0])?o:"text"})),i=c((()=>{var e,t;return null!=(t=null==(e=n.wordbook)?void 0:e.value_key)?t:"value"})),{searchContent:f,optionSearchFilter:y}=C(),h=v(null),{fieldKey:k}=g(),{getSearchRequestInfo:R}=w(),b=o((async function(e){if(f.value=e||"",!n.autograph||!n.wordbook)return h.value=null;try{h.value=await r.addAsync(function(e,t,o){const r={autograph:t,wordbookId:e.id,wordbookType:e.type,fieldKeys:e.search_key,keyword:"",page:1};return{...R(),params:r,key:o,cache:n.requestCache}}(n.wordbook,n.autograph,k.value))}catch(e){u(e)&&p(e)}}),300),K=c((()=>h.value?y(h.value,a.value):Array.isArray(n.options)?y(n.options,a.value):[])),j=c((()=>h.value||n.options||[]));return m((()=>n.wordbook),((e,o)=>{l(e,o)||(h.value=null,e&&(t.value||!n.lazyRequest)&&b())}),{immediate:!0}),{labelKey:a,valueKey:i,filterOptions:K,fullOptions:j,fetchData:b}}export{R as searchContentMatcher,j as useAutographOptions,b as useRecommendOptions,K as useUrlConfigOptions};
1
+ import{checkInSetupEnv as e,jsonParse as n}from"../../../../shared/utils/index.js";import{useMemoize as t,useDebounceFn as l}from"@vueuse/core";import{identity as u,uniqBy as o,isString as r,isEqual as a,omit as i,isFunction as c}from"lodash-es";import{computed as s,inject as m,ref as v,watch as d}from"vue";import"../../index.js";import{InjectionAsyncQueue as f,InjectionFormItemDepsCollector as y}from"../constants/index.js";import{createUrlConfigParams as p,formRenderLog as h,keywordMatcher as g}from"../utils/index.js";import{useFormField as w}from"./useFormField.js";import{useFormRequest as k}from"./useFormRequest.js";function R(e,n){const t=v();return s({get:()=>t.value?t.value:e[n],set(e){t.value=e}})}const b=(()=>{const e=new Map,n=t((e=>new RegExp(`(.*)${e.split("").map((e=>`(${e})`)).join("(.*)")}(.*)`)),{getKey:u});return(t,l)=>{const u=e.get(t)||{};return e.set(t,u),Reflect.has(u,l)?u[l]:u[l]=l.match(n(t))}})();function C(){const e=v();return{searchContent:e,optionSearchFilter:function(n,t){return e.value?n.filter((n=>function(n,t){if(!e.value)return!0;const l=n?n[t]:"";return!!r(l)&&(!!b(e.value,l)||g(e.value,n.keyword))}(n,t))):n}}}function K(e,t,l,u,r){const a=R(e,"commonList"),v=R(e,"recentList"),{searchContent:d,optionSearchFilter:y}=C();function p(e){return n(e.itemObj)}const h=s((()=>{var e,n;return null!=(n=null==(e=a.value)?void 0:e.map(p))?n:[]})),g=s((()=>{var e,n;return null!=(n=null==(e=v.value)?void 0:e.map(p))?n:[]})),b=s((()=>{if(!e.recommend||!h.value.length&&!g.value.length)return t.value;const n=o(h.value.concat(g.value),(e=>e[r.value])),l=t.value.filter((e=>n.every((function(n){return n[r.value]!==e[r.value]}))));return[...y(n,u.value),...l]})),{getRecommendRequestInfo:K,getHttpInstance:F}=k();function j(n){const{url:t,getRecommendIds:l}=K(),u=c(l)?l():{},o=c(e.getRecommendInfo)?e.getRecommendInfo():{};return{url:t[n],info:Object.assign({},u,o)}}const{fieldKey:x}=w(),O=m(f);return{postRecommend:async function(n){if(!e.recommend)return;const t=F();if(!t)return;const{url:u,info:o}=j("post"),a=b.value.find((e=>e[r.value]===n));a&&l("postRecommend",await t.post(u,{...o,keyword:"",itemId:r.value,itemObj:JSON.stringify(a)}))},getRecommend:async function(n){if(!e.recommend)return;if(d.value=n,a.value&&v.value&&e.recommendCache)return;const t=await O.addAsync(function(n,t){const{url:l,info:u}=j("get");return{url:l,method:"get",key:n,cache:t,params:{...u,recNum:Math.max(e.commonNum,e.recentNum),keyword:""}}}(x.value,e.recommendCache)),{commonly:l,recently:u}=t.reduce(((e,n)=>("commonly"===n.type?e.commonly.push(i(n,["type"])):"recently"===n.type&&e.recently.push(i(n,["type"])),e)),{commonly:[],recently:[]});a.value=l.slice(0,e.commonNum),v.value=u.slice(0,e.recentNum)},sortedOptions:b}}function F(n,t){e();const u=m(f),o=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.urlConfig)?void 0:e.nameKey)?t:n.labelField)?l:"text"})),i=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.urlConfig)?void 0:e.valueKey)?t:n.valueField)?l:"value"})),{searchContent:c,optionSearchFilter:g}=C(),k=v(null),{field:R,fieldKey:b}=w(),K=l((async function(e){if(c.value=e||"",!n.urlConfig)return k.value=null;try{k.value=await u.addAsync(await p({config:n.urlConfig,cache:n.requestCache,field:R.value}))}catch(e){r(e)&&h(e)}}),300),F=s((()=>k.value?g(k.value,o.value):Array.isArray(n.options)?g(n.options,o.value):[])),j=s((()=>k.value||n.options||[])),x=m(y);return d((()=>n.urlConfig),((e,l)=>{a(e,l)||(k.value=null,e&&(x.setDeps(b.value,e.dependKey||[],(async()=>{k.value=null,t.value=null,!n.lazyRequest&&await K()})),(t.value||!n.lazyRequest)&&K()))}),{immediate:!0}),{labelKey:o,valueKey:i,filterOptions:F,fullOptions:j,fetchData:K}}function j(n,t){e();const u=m(f),o=s((()=>{var e,t,l,u;return null!=(u=null!=(l=null==(t=null==(e=n.wordbook)?void 0:e.render_key)?void 0:t[0])?l:n.labelField)?u:"text"})),i=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.wordbook)?void 0:e.value_key)?t:n.valueField)?l:"value"})),{searchContent:c,optionSearchFilter:y}=C(),p=v(null),{fieldKey:g}=w(),{getSearchRequestInfo:R}=k(),b=l((async function(e){if(c.value=e||"",!n.autograph||!n.wordbook)return p.value=null;try{p.value=await u.addAsync(function(e,t,l){const u={autograph:t,wordbookId:e.id,wordbookType:e.type,fieldKeys:e.search_key,keyword:"",page:1};return{...R(),params:u,key:l,cache:n.requestCache}}(n.wordbook,n.autograph,g.value))}catch(e){r(e)&&h(e)}}),300),K=s((()=>p.value?y(p.value,o.value):Array.isArray(n.options)?y(n.options,o.value):[])),F=s((()=>p.value||n.options||[]));return d((()=>n.wordbook),((e,l)=>{a(e,l)||(p.value=null,e&&(t.value||!n.lazyRequest)&&b())}),{immediate:!0}),{labelKey:o,valueKey:i,filterOptions:K,fullOptions:F,fetchData:b}}export{b as searchContentMatcher,j as useAutographOptions,K as useRecommendOptions,F as useUrlConfigOptions};
@@ -25,14 +25,13 @@ export declare type ValidateItem = Partial<{
25
25
  message: string;
26
26
  [key: string]: any;
27
27
  }>;
28
- export interface FormOptionItem {
29
- text: string;
30
- value: any;
28
+ export declare type FormOptionItem = {
31
29
  keyword?: string;
32
30
  disabled?: boolean;
33
31
  children?: FormOptionItem[];
34
32
  childrenFields?: FieldItem[];
35
- }
33
+ [key: string]: any;
34
+ };
36
35
  interface FormRendererPayload {
37
36
  clearable: boolean;
38
37
  disabled: boolean;