cnhis-design-vue 3.2.4-beta.21 → 3.2.4-beta.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/es/components/annotation-edit/src/AnnotationEdit.js +1 -1
  2. package/es/components/callback/src/components/render/popupMaps.d.ts +5 -3
  3. package/es/components/field-set/index.d.ts +14 -1
  4. package/es/components/field-set/src/FieldColor.vue.d.ts +4 -25
  5. package/es/components/field-set/src/FieldFilter.vue.d.ts +487 -0
  6. package/es/components/field-set/src/FieldFilter.vue.js +1 -0
  7. package/es/components/field-set/src/FieldFilter.vue2.js +1 -0
  8. package/es/components/field-set/src/FieldSet.vue.d.ts +4 -25
  9. package/es/components/field-set/src/Index.vue.d.ts +15 -2
  10. package/es/components/field-set/src/Index.vue2.js +1 -1
  11. package/es/components/field-set/src/components/Row.vue.d.ts +5 -9
  12. package/es/components/field-set/src/components/Row.vue2.js +1 -1
  13. package/es/components/field-set/src/constants/filter.d.ts +93 -0
  14. package/es/components/field-set/src/constants/filter.js +1 -0
  15. package/es/components/field-set/src/types/index.d.ts +14 -1
  16. package/es/components/field-set/src/utils/index.d.ts +1 -0
  17. package/es/components/field-set/src/utils/index.js +1 -1
  18. package/es/components/form-config/index.d.ts +10 -6
  19. package/es/components/form-config/src/FormConfig.vue.d.ts +10 -6
  20. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +5 -3
  21. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +5 -3
  22. package/es/components/form-render/index.d.ts +5 -3
  23. package/es/components/form-render/src/FormRender.vue.d.ts +4 -2
  24. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  25. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +5 -3
  26. package/es/components/form-render/src/FormRenderWrapper.vue2.js +1 -1
  27. package/es/components/form-render/src/components/renderer/levelSearchCascader/index.js +1 -1
  28. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +2 -0
  29. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue2.js +1 -1
  30. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +2 -0
  31. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  32. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  33. package/es/components/form-render/src/components/renderer/searchCascade.js +1 -1
  34. package/es/components/form-render/src/components/renderer/select.js +1 -1
  35. package/es/components/form-render/src/hooks/useChangeContext.d.ts +3 -0
  36. package/es/components/form-render/src/hooks/useFormEvent.d.ts +3 -2
  37. package/es/components/form-render/src/hooks/useFormEvent.js +1 -1
  38. package/es/components/form-render/src/types/index.d.ts +4 -0
  39. package/es/components/form-render/src/utils/valueFormatter.d.ts +4 -0
  40. package/es/components/form-render/src/utils/valueFormatter.js +1 -0
  41. package/es/components/info-header/index.d.ts +10 -6
  42. package/es/components/info-header/src/InfoHeader.vue.d.ts +10 -6
  43. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +5 -3
  44. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +5 -3
  45. package/es/components/shortcut-setter/index.d.ts +5 -3
  46. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +5 -3
  47. package/es/shared/package.json.js +1 -1
  48. package/package.json +2 -2
@@ -389,8 +389,9 @@ declare const _default: import("vue").DefineComponent<{
389
389
  onScroll?: ((...args: any[]) => any) | undefined;
390
390
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
391
391
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
392
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
392
393
  }>>;
393
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
394
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
394
395
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
395
396
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
396
397
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -736,7 +737,7 @@ declare const _default: import("vue").DefineComponent<{
736
737
  readonly displayDirective: "if" | "show" | "show:lazy";
737
738
  }>;
738
739
  NTabs: any;
739
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
740
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
740
741
  fieldList: {
741
742
  type: PropType<FieldItem[]>;
742
743
  };
@@ -931,6 +932,7 @@ declare const _default: import("vue").DefineComponent<{
931
932
  onScroll?: ((...args: any[]) => any) | undefined;
932
933
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
933
934
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
935
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
934
936
  }, {
935
937
  anchor: boolean;
936
938
  maxHeight: string | number;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,provide as t,computed as r,onUnmounted as a,openBlock as s,createBlock as i,unref as l,mergeProps as n,withCtx as m,createElementBlock as d,createVNode as p,isRef as u,Fragment as c,renderList as f,createCommentVNode as h,createElementVNode as y,normalizeStyle as g,toDisplayString as b,renderSlot as j}from"vue";import{useTheme as v}from"../../../shared/hooks/useTheme.js";import{useElementSize as k}from"@vueuse/core";import"date-fns";import{isNumber as S,cloneDeep as F}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NForm as C,NTabs as w,NTabPane as H,NConfigProvider as A}from"naive-ui";import{useVersion as B}from"../../../shared/hooks/useVersion.js";import{createForm as x,onFormMount as L,onFieldValueChange as R,onFieldMount as O,onFieldUnmount as I,onFieldReact as V}from"@formily/core";import{Path as _}from"@formily/path";import{FormProvider as D,FormConsumer as N}from"@formily/vue";import{InjectionFormColumnWidth as W,InjectionFormLifeCycleCaller as U,InjectionFormGraph as q}from"./constants/index.js";import{createObjSchema as T}from"./utils/schema.js";import{useAnchor as E}from"./hooks/useAnchor.js";import{useAutoHidden as G}from"./hooks/useAutoHidden.js";import"../index.js";import{useComplexOptionsSpan as M}from"./hooks/useComplexOptions.js";import{useFieldListAdaptor as K}from"./hooks/useFieldListAdaptor.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{useFieldVisitor as P}from"./hooks/useFieldVisitor.js";import{useFormContext as z}from"./hooks/useFormContext.js";import{useFormDomEvent as J,useFormExposeEvent as $}from"./hooks/useFormEvent.js";import{useFormGraph as Q}from"./hooks/useFormGraph.js";import{useFormRenderLifeCycle as X}from"./hooks/useFormRenderLifeCycle.js";import{validateMessageLocale as Y}from"./hooks/useFormValidator.js";import{useLowCodeEvent as Z}from"./hooks/useLowCodeEvent.js";import{useLowCodeReactions as ee}from"./hooks/useLowCodeReactions.js";import{useNuiThemeOverrides as oe}from"./hooks/useNuiThemeOverrides.js";import{useOperationalForm as te}from"./hooks/useOperationalForm.js";import{useWordbookSetting as re}from"./hooks/useWordbookSetting.js";import{useNewLowCodeReactions as ae}from"./hooks/useNewLowCodeReactions.js";const se={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},annotationShortcuts:{type:Array},consumer:{type:Boolean,default:!1},uuid:{type:String},lifeCycle:{type:Object},requestInstance:{type:Object},enterToNextWidget:{type:[Boolean,Function],default:!0},autoExpand:Boolean,lowCodeReactions:{type:Array},newLowCodeReactions:{type:Array},operationalForm:{type:Array},dateOperationalForm:{type:Object},operationalFormInit:{type:Boolean,default:!0},linebarAutoHidden:{type:Boolean},bordered:{type:[Boolean,String],default:!0},labelPlacementOverwrite:Boolean,outBordered:{type:Boolean,default:!1},uniqueCacheData:{type:Boolean,default:!1},forceClearable:Boolean,wordSplitFilter:{type:Boolean,default:!0},selectMode:Boolean,selectedFields:{type:Array},linebarDirection:{type:String,default:"vertical"},linebarTextDirection:{type:String,default:"horizontal"},linebarWidth:{type:[Number,String],default:120},autoWidth:{type:[Boolean,Number],default:!1}},emits:["formChange","annotationChange","scroll","update:selectedFields"],setup(e,{expose:le,emit:ne}){const me=e,de=v(),{nuiThemeOverrides:pe}=oe();Y();const ue=o(),{width:ce}=k(ue);t(W,r((()=>ce.value?(ce.value-16*(me.column-1))/24:0)));const fe=r((()=>S(me.maxHeight)?me.maxHeight+"px":me.maxHeight)),{SchemaField:he,businessCollector:ye,formItemDepsCollector:ge,changeContextCollector:be,formUUID:je}=z(me,ne),{anchorBarRef:ve,currentAnchor:ke,updateAnchorList:Se,anchorIdList:Fe,onScroll:Ce}=E(me,ne,ue,ge),{callLifeCycle:we}=X(me);t(U,we),we("onSetup");const{trigger:He}=G(),{observeFormGraph:Ae,setGraph:Be,removeGraph:xe}=Q();t(q,Ae);const{lowCodeEventTrigger:Le}=Z(),Re=x({initialValues:me.initialData,effects(e){const o={};L((()=>{Object.assign(o,F(e.values))})),R("*",(t=>{const r=_.getIn(o,t.path);_.setIn(o,t.path,t.value);const a=t.props.name.toString();ye.trigger(e,a),ge.trigger(t.path),ne("formChange",{fieldInstance:t,fieldKey:a,oldValue:r,fieldName:t.title,value:t.value,context:be.getContext(a,t.value)}),Le(t),Oe(a),Ie(a),Ve.trigger(a),_e.trigger(a,t.value)})),O("*",Be),O("*",(e=>{const o=e.props.name.toString();Oe(o),Ie(o),me.operationalFormInit&&Ve.trigger(o)})),I("*",xe),V("*",(e=>He(e,me.linebarAutoHidden))),L((e=>e.query("*").forEach((e=>He(e,me.linebarAutoHidden))))),me.anchor&&V("*",Se)}}),{lowCodeReactionsHandler:Oe}=ee(r((()=>me.lowCodeReactions)),Re),{newLowCodeReactionsHandler:Ie}=ae(r((()=>me.newLowCodeReactions)),Re),Ve=te(me,Re),_e=re().create(Re,be),{schemaAdaptor:De}=K(ye,me.lifeCycle);let Ne=me.fieldList||[];const We=r((()=>me.schema?me.schema:me.fieldList?(Ne=P().traverse(F(me.fieldList),me.fieldVisitor),T(De(Ne,me))):T({}))),{onKeydown:Ue}=J({formModel:Re,formRenderRef:ue,props:me,formUUID:je}),{clearSpan:qe}=M();a((()=>qe(je)));const Te=$({formModel:Re,formRenderRef:ue,formItemDepsCollector:ge,businessCollector:ye,wordbookSettingHandler:_e,operationalFormHandler:Ve,getFieldList:()=>Ne,formUUID:je});return le({formModel:Re,validate:(e="*",o={})=>Te.validate(e,o),getFormValues:(e=!0)=>Te.getFormValues(e),setFormValues:async(e,o={})=>Te.setFormValues(e,o),setFieldState(e,o){Te.setFieldState(e,o)},resetFields(e="*"){Te.resetFields(e)},queryWidget:async e=>Te.queryWidget(e),getFieldList:()=>Ne,applySelectedSetting:e=>Te.applySelectedSetting(e),async reload(){console.error("reload function is abstract,it should be overwrite!")}}),(o,t)=>(s(),i(l(C),n({class:["form-render",{"form-render--out-border":e.outBordered}],"require-mark-placement":"left",style:l(de)},l(B)(),{uuid:l(je)}),{default:m((()=>[e.anchor?(s(),d("section",se,[p(l(w),{value:l(ke),"onUpdate:value":t[0]||(t[0]=e=>u(ke)?ke.value=e:null),type:"line",ref_key:"anchorBarRef",ref:ve},{default:m((()=>[(s(!0),d(c,null,f(l(Fe),(e=>(s(),i(l(H),{name:e.name,tab:e.title,key:e.name},null,8,["name","tab"])))),128))])),_:1},8,["value"])])):h("v-if",!0),p(l(A),{"theme-overrides":l(pe)},{default:m((()=>[y("section",{class:"form-render__wrapper",style:g({"--column":e.column,"--form-height":l(fe)}),ref_key:"formRenderRef",ref:ue,onScroll:t[1]||(t[1]=(...e)=>l(Ce)&&l(Ce)(...e)),onKeydownCapture:t[2]||(t[2]=(...e)=>l(Ue)&&l(Ue)(...e))},[p(l(D),{form:l(Re)},{default:m((()=>[p(l(he),{schema:l(We)},null,8,["schema"]),e.consumer?(s(),i(l(N),{key:0},{default:m((({form:e})=>[y("div",ie,b(JSON.stringify(e.values,null,2)),1)])),_:1})):h("v-if",!0),j(o.$slots,"default")])),_:3},8,["form"])],36)])),_:3},8,["theme-overrides"])])),_:3},16,["class","style","uuid"]))}});export{le as default};
1
+ import{defineComponent as e,ref as o,provide as t,computed as r,onUnmounted as a,openBlock as s,createBlock as i,unref as l,mergeProps as n,withCtx as m,createElementBlock as d,createVNode as p,isRef as u,Fragment as c,renderList as f,createCommentVNode as h,createElementVNode as y,normalizeStyle as g,toDisplayString as b,renderSlot as j}from"vue";import{useTheme as v}from"../../../shared/hooks/useTheme.js";import{useElementSize as k}from"@vueuse/core";import"date-fns";import{isNumber as F,cloneDeep as C}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{NForm as S,NTabs as w,NTabPane as H,NConfigProvider as x}from"naive-ui";import{useVersion as A}from"../../../shared/hooks/useVersion.js";import{createForm as B,onFormMount as L,onFieldValueChange as R,onFieldMount as O,onFieldUnmount as V,onFieldReact as I}from"@formily/core";import{Path as _}from"@formily/path";import{FormProvider as D,FormConsumer as N}from"@formily/vue";import{InjectionFormColumnWidth as T,InjectionFormLifeCycleCaller as W,InjectionFormGraph as U}from"./constants/index.js";import{createObjSchema as q}from"./utils/schema.js";import{useAnchor as E}from"./hooks/useAnchor.js";import{useAutoHidden as G}from"./hooks/useAutoHidden.js";import"../index.js";import{useComplexOptionsSpan as M}from"./hooks/useComplexOptions.js";import{useFieldListAdaptor as K}from"./hooks/useFieldListAdaptor.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{useFieldVisitor as P}from"./hooks/useFieldVisitor.js";import{useFormContext as z}from"./hooks/useFormContext.js";import{useFormDomEvent as J,useFormExposeEvent as $}from"./hooks/useFormEvent.js";import{useFormGraph as Q}from"./hooks/useFormGraph.js";import{useFormRenderLifeCycle as X}from"./hooks/useFormRenderLifeCycle.js";import{validateMessageLocale as Y}from"./hooks/useFormValidator.js";import{useLowCodeEvent as Z}from"./hooks/useLowCodeEvent.js";import{useLowCodeReactions as ee}from"./hooks/useLowCodeReactions.js";import{useNuiThemeOverrides as oe}from"./hooks/useNuiThemeOverrides.js";import{useOperationalForm as te}from"./hooks/useOperationalForm.js";import{useWordbookSetting as re}from"./hooks/useWordbookSetting.js";import{useNewLowCodeReactions as ae}from"./hooks/useNewLowCodeReactions.js";const se={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},annotationShortcuts:{type:Array},consumer:{type:Boolean,default:!1},uuid:{type:String},lifeCycle:{type:Object},requestInstance:{type:Object},enterToNextWidget:{type:[Boolean,Function],default:!0},autoExpand:Boolean,lowCodeReactions:{type:Array},newLowCodeReactions:{type:Array},operationalForm:{type:Array},dateOperationalForm:{type:Object},operationalFormInit:{type:Boolean,default:!0},linebarAutoHidden:{type:Boolean},bordered:{type:[Boolean,String],default:!0},labelPlacementOverwrite:Boolean,outBordered:{type:Boolean,default:!1},uniqueCacheData:{type:Boolean,default:!1},forceClearable:Boolean,wordSplitFilter:{type:Boolean,default:!0},selectMode:Boolean,selectedFields:{type:Array},linebarDirection:{type:String,default:"vertical"},linebarTextDirection:{type:String,default:"horizontal"},linebarWidth:{type:[Number,String],default:120},autoWidth:{type:[Boolean,Number],default:!1}},emits:["formChange","annotationChange","scroll","update:selectedFields","linebarChange"],setup(e,{expose:le,emit:ne}){const me=e,de=v(),{nuiThemeOverrides:pe}=oe();Y();const ue=o(),{width:ce}=k(ue);t(T,r((()=>ce.value?(ce.value-16*(me.column-1))/24:0)));const fe=r((()=>F(me.maxHeight)?me.maxHeight+"px":me.maxHeight)),{SchemaField:he,businessCollector:ye,formItemDepsCollector:ge,changeContextCollector:be,formUUID:je}=z(me,ne),{anchorBarRef:ve,currentAnchor:ke,updateAnchorList:Fe,anchorIdList:Ce,onScroll:Se}=E(me,ne,ue,ge),{callLifeCycle:we}=X(me);t(W,we),we("onSetup");const{trigger:He}=G(),{observeFormGraph:xe,setGraph:Ae,removeGraph:Be}=Q();t(U,xe);const{lowCodeEventTrigger:Le}=Z(),Re=B({initialValues:me.initialData,effects(e){const o={};L((()=>{Object.assign(o,C(e.values))})),R("*",(t=>{const r=_.getIn(o,t.path);_.setIn(o,t.path,t.value);const a=t.props.name.toString();ye.trigger(e,a),ge.trigger(t.path),ne("formChange",{fieldInstance:t,fieldKey:a,oldValue:r,fieldName:t.title,value:t.value,context:be.getContext(a,t.value)}),Le(t),Oe(a),Ve(a),Ie.trigger(a),_e.trigger(a,t.value)})),O("*",Ae),O("*",(e=>{const o=e.props.name.toString();Oe(o),Ve(o),me.operationalFormInit&&Ie.trigger(o)})),V("*",Be),I("*",(e=>He(e,me.linebarAutoHidden))),L((e=>e.query("*").forEach((e=>He(e,me.linebarAutoHidden))))),me.anchor&&I("*",Fe)}}),{lowCodeReactionsHandler:Oe}=ee(r((()=>me.lowCodeReactions)),Re),{newLowCodeReactionsHandler:Ve}=ae(r((()=>me.newLowCodeReactions)),Re),Ie=te(me,Re),_e=re().create(Re,be),{schemaAdaptor:De}=K(ye,me.lifeCycle);let Ne=me.fieldList||[];const Te=r((()=>me.schema?me.schema:me.fieldList?(Ne=P().traverse(C(me.fieldList),me.fieldVisitor),q(De(Ne,me))):q({}))),{onKeydown:We}=J({formModel:Re,formRenderRef:ue,props:me,formUUID:je}),{clearSpan:Ue}=M();a((()=>Ue(je)));const qe=$({formModel:Re,formRenderRef:ue,formItemDepsCollector:ge,businessCollector:ye,wordbookSettingHandler:_e,operationalFormHandler:Ie,getFieldList:()=>Ne,formUUID:je,changeContextCollector:be});return le({formModel:Re,validate:(e="*",o={})=>qe.validate(e,o),getFormValues:(e=!0)=>qe.getFormValues(e),setFormValues:async(e,o={})=>qe.setFormValues(e,o),setFieldState(e,o){qe.setFieldState(e,o)},resetFields(e="*"){qe.resetFields(e)},queryWidget:async e=>qe.queryWidget(e),getFieldList:()=>Ne,applySelectedSetting:e=>qe.applySelectedSetting(e),async reload(){console.error("reload function is abstract,it should be overwrite!")},getTextFormValues:()=>qe.getTextFormValues()}),(o,t)=>(s(),i(l(S),n({class:["form-render",{"form-render--out-border":e.outBordered}],"require-mark-placement":"left",style:l(de)},l(A)(),{uuid:l(je)}),{default:m((()=>[e.anchor?(s(),d("section",se,[p(l(w),{value:l(ke),"onUpdate:value":t[0]||(t[0]=e=>u(ke)?ke.value=e:null),type:"line",ref_key:"anchorBarRef",ref:ve},{default:m((()=>[(s(!0),d(c,null,f(l(Ce),(e=>(s(),i(l(H),{name:e.name,tab:e.title,key:e.name},null,8,["name","tab"])))),128))])),_:1},8,["value"])])):h("v-if",!0),p(l(x),{"theme-overrides":l(pe)},{default:m((()=>[y("section",{class:"form-render__wrapper",style:g({"--column":e.column,"--form-height":l(fe)}),ref_key:"formRenderRef",ref:ue,onScroll:t[1]||(t[1]=(...e)=>l(Se)&&l(Se)(...e)),onKeydownCapture:t[2]||(t[2]=(...e)=>l(We)&&l(We)(...e))},[p(l(D),{form:l(Re)},{default:m((()=>[p(l(he),{schema:l(Te)},null,8,["schema"]),e.consumer?(s(),i(l(N),{key:0},{default:m((({form:e})=>[y("div",ie,b(JSON.stringify(e.values,null,2)),1)])),_:1})):h("v-if",!0),j(o.$slots,"default")])),_:3},8,["form"])],36)])),_:3},8,["theme-overrides"])])),_:3},16,["class","style","uuid"]))}});export{le as default};
@@ -4,7 +4,7 @@ declare const _default: import("vue").DefineComponent<{}, {
4
4
  formRenderRef: import("vue").Ref<FormRenderExpose | undefined>;
5
5
  key: import("vue").Ref<number>;
6
6
  reload: () => Promise<void>;
7
- formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting"];
7
+ formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting", "getTextFormValues"];
8
8
  exposed: Partial<FormRenderExpose>;
9
9
  FormRender: import("vue").DefineComponent<{
10
10
  fieldList: {
@@ -392,8 +392,9 @@ declare const _default: import("vue").DefineComponent<{}, {
392
392
  onScroll?: ((...args: any[]) => any) | undefined;
393
393
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
394
394
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
395
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
395
396
  }>>;
396
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
397
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
397
398
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
398
399
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
399
400
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -739,7 +740,7 @@ declare const _default: import("vue").DefineComponent<{}, {
739
740
  readonly displayDirective: "if" | "show" | "show:lazy";
740
741
  }>;
741
742
  NTabs: any;
742
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
743
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
743
744
  fieldList: {
744
745
  type: import("vue").PropType<import("../../../components/form-render").FieldItem[]>;
745
746
  };
@@ -934,6 +935,7 @@ declare const _default: import("vue").DefineComponent<{}, {
934
935
  onScroll?: ((...args: any[]) => any) | undefined;
935
936
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
936
937
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
938
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
937
939
  }, {
938
940
  anchor: boolean;
939
941
  maxHeight: string | number;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as r,computed as t,openBlock as l,createBlock as a,withCtx as o,renderSlot as u,nextTick as d}from"vue";import s from"./FormRender.vue.js";var n=e({__name:"FormRenderWrapper",setup(e,{expose:n}){const i=r(),f=r(0);return n({...["validate","getFormValues","setFormValues","setFieldState","resetFields","queryWidget","getFieldList","applySelectedSetting"].reduce(((e,r)=>(e[r]=(...e)=>{var t;return(null==(t=i.value)?void 0:t[r]).call(t,...e)},e)),{}),formModel:t((()=>{var e;return null==(e=i.value)?void 0:e.formModel})),reload:async function(){f.value++,await d()}}),(e,r)=>(l(),a(s,{key:f.value,ref_key:"formRenderRef",ref:i},{default:o((()=>[u(e.$slots,"default")])),_:3}))}});export{n as default};
1
+ import{defineComponent as e,ref as r,computed as t,openBlock as l,createBlock as a,withCtx as o,renderSlot as u,nextTick as d}from"vue";import s from"./FormRender.vue.js";var n=e({__name:"FormRenderWrapper",setup(e,{expose:n}){const i=r(),m=r(0);return n({...["validate","getFormValues","setFormValues","setFieldState","resetFields","queryWidget","getFieldList","applySelectedSetting","getTextFormValues"].reduce(((e,r)=>(e[r]=(...e)=>{var t;return(null==(t=i.value)?void 0:t[r]).call(t,...e)},e)),{}),formModel:t((()=>{var e;return null==(e=i.value)?void 0:e.formModel})),reload:async function(){m.value++,await d()}}),(e,r)=>(l(),a(s,{key:m.value,ref_key:"formRenderRef",ref:i},{default:o((()=>[u(e.$slots,"default")])),_:3}))}});export{n as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as o,createVNode as t}from"vue";import a from"../../../../../../shared/components/no-data/NoData.vue.js";import"../../../../../../shared/utils/index.js";import"lodash-es";import"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useLevelSearchCascader as r}from"../../../../../../shared/hooks/useLevelSearchCascader.js";import"@vueuse/shared";import"../../../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{connect as s,mapProps as u}from"@formily/vue";import"../../../../index.js";import{InjectionAsyncQueue as i}from"../../../constants/index.js";import{useCommonInjection as l}from"../../../hooks/useCommonInjection.js";import n from"../../../../../search-cascader/index.js";import{assignUpdateValue as d}from"../../../utils/schema.js";import{useFormField as m}from"../../../hooks/useFormField.js";const p=s(e({name:"FormSearchCascade",props:{options:{type:Array,default:()=>[]},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},autograph:{type:String,required:!0},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},wordbook:{type:Object,required:!0},onChange:{},value:{type:[String,Array]}},emits:["update:value"],setup(e,{emit:s}){const u=o(i),{field:d,fieldKey:p}=m(),{valueRef:c,labelKey:v,valueKey:f,optionsRef:h,showRef:y,fetchData:j,menuWidth:S,searchCascaderRef:g}=r(e,s,{fieldKey:p,asyncQueue:u,getRequestPayload:()=>({field:d.value})});function k(){S.value=150}const{injectValueValidate:C,injectValueBindKey:K}=l();C(c);const x=K(c);return()=>t(n,{ref:g,value:c.value,"onUpdate:value":e=>c.value=e,show:y.value,"onUpdate:show":e=>y.value=e,options:h.value,key:x.value,labelKey:v.value,valueKey:f.value,search:j,onFocus:k,menuWidth:S.value},{empty:()=>t(a,null,null)})}}),u({dataSource:"options"},d));export{p as LEVEL_SEARCH_CASCADER};
1
+ import{defineComponent as e,inject as o,createVNode as a}from"vue";import t from"../../../../../../shared/components/no-data/NoData.vue.js";import"../../../../../../shared/utils/index.js";import"lodash-es";import"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useLevelSearchCascader as r}from"../../../../../../shared/hooks/useLevelSearchCascader.js";import"@vueuse/shared";import"../../../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{connect as s,mapProps as u}from"@formily/vue";import"../../../../index.js";import{InjectionAsyncQueue as l,InjectionChangeContextCollector as i}from"../../../constants/index.js";import{useCommonInjection as n}from"../../../hooks/useCommonInjection.js";import d from"../../../../../search-cascader/index.js";import{assignUpdateValue as m}from"../../../utils/schema.js";import{useFormField as p}from"../../../hooks/useFormField.js";const v=s(e({name:"FormSearchCascade",props:{options:{type:Array,default:()=>[]},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},autograph:{type:String,required:!0},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},wordbook:{type:Object,required:!0},onChange:{},value:{type:[String,Array]}},emits:["update:value"],setup(e,{emit:s}){const u=o(l),{field:m,fieldKey:v}=p(),{valueRef:c,labelKey:f,valueKey:h,optionsRef:y,showRef:j,fetchData:C,menuWidth:F,searchCascaderRef:S}=r(e,s,{fieldKey:v,asyncQueue:u,getRequestPayload:()=>({field:m.value})});function g(){F.value=150}o(i).setContext(v.value,(()=>({labelField:f.value,valueField:h.value})));const{injectValueValidate:k,injectValueBindKey:x}=n();k(c);const K=x(c);return()=>a(d,{ref:S,value:c.value,"onUpdate:value":e=>c.value=e,show:j.value,"onUpdate:show":e=>j.value=e,options:y.value,key:K.value,labelKey:f.value,valueKey:h.value,search:C,onFocus:g,menuWidth:F.value},{empty:()=>a(t,null,null)})}}),u({dataSource:"options"},m));export{v as LEVEL_SEARCH_CASCADER};
@@ -48,8 +48,10 @@ declare const _default: import("vue").DefineComponent<{
48
48
  };
49
49
  }>> & {}>>;
50
50
  _show: import("vue").Ref<boolean>;
51
+ globEmit: ((event: string, ...args: any[]) => void) | undefined;
51
52
  toggleShow: () => void;
52
53
  field: import("vue").Ref<import("@formily/core").GeneralField>;
54
+ fieldKey: import("vue").ComputedRef<string>;
53
55
  formItemDepsCollector: import("../../../../../../components/form-render").FormItemDepsCollector;
54
56
  globProps: Readonly<Partial<{
55
57
  fieldList: import("../../../../../../components/form-render").FieldItem[];
@@ -1 +1 @@
1
- import{defineComponent as e,ref as r,inject as i,computed as t,openBlock as l,createElementBlock as a,createElementVNode as n,normalizeClass as o,unref as s,normalizeStyle as d,renderSlot as u,createTextVNode as m,toDisplayString as v,createBlock as b,createCommentVNode as c,Fragment as f,createVNode as p,withCtx as h}from"vue";import{widthAppend as _}from"../../../../../../shared/utils/index.js";import"../../../../index.js";import g from"../../tooltipMessage.vue.js";import{InjectionFormItemDepsCollector as y,InjectionFormGlobalProps as k}from"../../../constants/index.js";import{ChevronDown as x,ChevronUp as D}from"@vicons/ionicons5";import{NCollapseTransition as w}from"naive-ui";import{useFormField as S}from"../../../hooks/useFormField.js";const j={class:"form-render__linebar"};var z=e({__name:"FormCollapse",props:{show:{type:Boolean,default:!0},title:{type:String,default:""},remark:String,disabled:{type:Boolean,default:!1},linebarDirection:{type:String},linebarWidth:{type:[Number,String]},linebarTextDirection:{type:String}},setup(e){const z=e,T=r(z.show);function B(){!z.disabled&&W.value&&(T.value=!T.value)}const{field:F}=S();i(y).setDeps(F.value.path,F.value.path.toString(),((e,r=!0)=>{T.value=r}));const H=i(k,{}),W=t((()=>{var e;return"horizontal"!==(null!=(e=z.linebarDirection)?e:H.linebarDirection)})),C=t((()=>W.value?"":["form-render__linebar--horizontal","form-render__linebar--horizontalBorder"])),$=t((()=>{var e,r;return null!=(r=null!=(e=z.linebarWidth)?e:H.linebarWidth)?r:120})),I=t((()=>W.value?{}:{"--form-render-linebar-width":_($.value),"border-right":"1px solid black"})),M=t((()=>["form-render__linebarHeader",{"form-render__linebarHeader--disabled":!!z.disabled}])),N=t((()=>{var e,r;return null!=(r=null!=(e=z.linebarTextDirection)?e:H.linebarTextDirection)?r:"horizontal"})),q=t((()=>"vertical"!==N.value||W.value?{}:{"writing-mode":"vertical-lr","text-orientation":"upright"}));return(r,i)=>(l(),a("section",j,[n("section",{class:o(s(C))},[n("header",{class:o(s(M)),onClick:B,style:d(s(I))},[n("div",{class:"form-render__linebarHeaderTitle",style:d(s(q))},[u(r.$slots,"title",{},(()=>[m(v(e.title),1)])),e.remark?(l(),b(g,{key:0,message:e.remark},null,8,["message"])):c("v-if",!0)],4),!e.disabled&&s(W)?(l(),a(f,{key:0},[T.value?(l(),b(s(x),{key:0})):(l(),b(s(D),{key:1}))],64)):c("v-if",!0)],6),p(s(w),{class:"form-render__linebarItem",show:T.value},{default:h((()=>[u(r.$slots,"default")])),_:3},8,["show"])],2)]))}});export{z as default};
1
+ import{defineComponent as e,ref as r,inject as l,computed as i,openBlock as t,createElementBlock as a,createElementVNode as n,normalizeClass as o,unref as s,normalizeStyle as d,renderSlot as u,createTextVNode as m,toDisplayString as f,createBlock as v,createCommentVNode as b,Fragment as c,createVNode as p,withCtx as h}from"vue";import{widthAppend as _}from"../../../../../../shared/utils/index.js";import"../../../../index.js";import y from"../../tooltipMessage.vue.js";import{InjectionFormGlobalEmit as g,InjectionFormItemDepsCollector as k,InjectionFormGlobalProps as x}from"../../../constants/index.js";import{ChevronDown as w,ChevronUp as D}from"@vicons/ionicons5";import{NCollapseTransition as S}from"naive-ui";import{useFormField as j}from"../../../hooks/useFormField.js";const z={class:"form-render__linebar"};var T=e({__name:"FormCollapse",props:{show:{type:Boolean,default:!0},title:{type:String,default:""},remark:String,disabled:{type:Boolean,default:!1},linebarDirection:{type:String},linebarWidth:{type:[Number,String]},linebarTextDirection:{type:String}},setup(e){const T=e,B=r(T.show),C=l(g);function F(){!T.disabled&&$.value&&(B.value=!B.value,null==C||C("linebarChange",{field:H.value,fieldKey:W.value,show:B.value,showRef:B}))}const{field:H,fieldKey:W}=j();l(k).setDeps(H.value.path,H.value.path.toString(),((e,r=!0)=>{B.value=r}));const K=l(x,{}),$=i((()=>{var e;return"horizontal"!==(null!=(e=T.linebarDirection)?e:K.linebarDirection)})),I=i((()=>$.value?"":["form-render__linebar--horizontal","form-render__linebar--horizontalBorder"])),M=i((()=>{var e,r;return null!=(r=null!=(e=T.linebarWidth)?e:K.linebarWidth)?r:120})),N=i((()=>$.value?{}:{"--form-render-linebar-width":_(M.value),"border-right":"1px solid black"})),R=i((()=>["form-render__linebarHeader",{"form-render__linebarHeader--disabled":!!T.disabled}])),q=i((()=>{var e,r;return null!=(r=null!=(e=T.linebarTextDirection)?e:K.linebarTextDirection)?r:"horizontal"})),A=i((()=>"vertical"!==q.value||$.value?{}:{"writing-mode":"vertical-lr","text-orientation":"upright"}));return(r,l)=>(t(),a("section",z,[n("section",{class:o(s(I))},[n("header",{class:o(s(R)),onClick:F,style:d(s(N))},[n("div",{class:"form-render__linebarHeaderTitle",style:d(s(A))},[u(r.$slots,"title",{},(()=>[m(f(e.title),1)])),e.remark?(t(),v(y,{key:0,message:e.remark},null,8,["message"])):b("v-if",!0)],4),!e.disabled&&s($)?(t(),a(c,{key:0},[B.value?(t(),v(s(w),{key:0})):(t(),v(s(D),{key:1}))],64)):b("v-if",!0)],6),p(s(S),{class:"form-render__linebarItem",show:B.value},{default:h((()=>[u(r.$slots,"default")])),_:3},8,["show"])],2)]))}});export{T as default};
@@ -47,8 +47,10 @@ export declare const LINEBAR: import("vue").DefineComponent<{
47
47
  };
48
48
  }>> & {}>>;
49
49
  _show: import("vue").Ref<boolean>;
50
+ globEmit: ((event: string, ...args: any[]) => void) | undefined;
50
51
  toggleShow: () => void;
51
52
  field: import("vue").Ref<import("@formily/core").GeneralField>;
53
+ fieldKey: import("vue").ComputedRef<string>;
52
54
  formItemDepsCollector: import("../../../hooks").FormItemDepsCollector;
53
55
  globProps: Readonly<Partial<{
54
56
  fieldList: import("../../../types").FieldItem[];
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,createVNode as l,mergeProps as a,isVNode as o}from"vue";import i from"../../../../../shared/components/CancelRadio/CancelRadio.js";import{connect as r,mapProps as n}from"@formily/vue";import{isArray as u,xor as d,isNumber as s,isEmpty as c}from"lodash-es";import{NCheckboxGroup as p,NCheckbox as m,NRadioGroup as v}from"naive-ui";import"../../../index.js";import{useComplexOptions as f}from"../../hooks/useComplexOptions.js";import"../../../../../shared/utils/index.js";import"@formily/core";import"@formily/path";import"@vicons/ionicons5";import"@vue/shared";import"@vueuse/core";import"date-fns";import{assignUpdateValue as h,createVisitedSetter as y}from"../../utils/schema.js";import{useUrlConfigOptions as g,useAutographOptions as j}from"../../hooks/useFormRenderOptions.js";import{useCommonInjection as b}from"../../hooks/useCommonInjection.js";import{useFormField as x}from"../../hooks/useFormField.js";function k(i,r,n){return e({name:i,props:{value:{type:[String,Number,Object,Array]},options:{type:Array,default:()=>[]},urlConfig:{type:Object},autograph:{type:String},lazyRequest:{type:Boolean,default:!1},requestCache:{type:Boolean,default:!0},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},wordbook:{type:Object},vertical:{type:Boolean,default:!1},childFieldStrategy:{type:String,default:"checked"},childWidthMode:{type:String,default:"outer"},clearable:Boolean,selectAll:Boolean,onChange:{}},emits:["update:value"],setup(e,{emit:i,attrs:v}){const{field:h}=x();const k=t({get(){return t=e.value,s(t)?t+"":t;var t},set(e){i("update:value",e)}}),{renderComplexOption:C}=f(e,k),{labelKey:F,valueKey:S,fullOptions:O}=e.urlConfig?g(e,k):j(e,k),{injectValueBindKey:w,injectValueValidate:_}=b();_(k);const B=w(k);function W(){k.value=null}const K=t({get:()=>u(k.value)&&k.value.length===O.value.length,set(e){const t=e?O.value.map((e=>e[S.value])):[];d(t,k.value).length&&(k.value=t)}}),R=t((()=>u(e.value)&&e.value.length&&e.value.length<O.value.length));function A(t){let a;const i={display:"flex",alignItems:"center"};if(t.__spanPercent&&"inner"===e.childWidthMode){const e=`${t.__spanPercent}%`;i.maxWidth=e,function(e,t){return!c(t.childrenFields)&&(u(e)?e.includes(t[S.value]):e===t[S.value])}(k.value,t)&&(i.width=e)}return l(n,{key:t[S.value],value:t[S.value],disabled:t.disabled,currentValue:k.value,cancelable:e.clearable,onCancel:W,style:i},"function"==typeof(r=a=C({value:k.value,option:t,valueKey:S.value,labelKey:F.value,childFieldStrategy:e.childFieldStrategy,childWidthMode:e.childWidthMode}))||"[object Object]"===Object.prototype.toString.call(r)&&!o(r)?a:{default:()=>[a]});var r}return()=>{const t=O.value.map((e=>{var t;const l=null==(t=e.childrenFields)?void 0:t.reduce(((e,t)=>e+ +(t.elem_width||3)),0);return{...e,__spanPercent:(l||0)/12*100}})),o={display:"flex",flexDirection:e.vertical?"column":"row",flexWrap:"wrap",justifyItems:"flex-start",alignItems:e.vertical?"flex-start":"center",width:"100%"},i=l(r,a({key:B.value,value:k.value,"onUpdate:value":e=>k.value=e,onClick:y(h),style:{width:"100%"}},v),{default:()=>[l("section",{style:o},[t.map(A)])]});return e.selectAll?l("section",null,[[r!==p?null:l(m,{checked:K.value,"onUpdate:checked":e=>K.value=e,indeterminate:R.value},{default:()=>"全选"}),i]]):i}}})}const C=r(k("FormRadio",v,i),n({dataSource:"options"},h)),F=r(k("FormCheckbox",p,m),n({dataSource:"options"},h));export{F as CHECKBOX,C as RADIO};
1
+ import{defineComponent as e,computed as t,inject as l,createVNode as a,mergeProps as o,isVNode as n}from"vue";import r from"../../../../../shared/components/CancelRadio/CancelRadio.js";import{connect as i,mapProps as u}from"@formily/vue";import{cloneDeep as d,isArray as s,xor as c,isNumber as p,isEmpty as v}from"lodash-es";import{NCheckboxGroup as m,NCheckbox as f,NRadioGroup as h}from"naive-ui";import"../../../index.js";import{InjectionChangeContextCollector as y}from"../../constants/index.js";import{useComplexOptions as g}from"../../hooks/useComplexOptions.js";import"../../../../../shared/utils/index.js";import"@formily/core";import"@formily/path";import"@vicons/ionicons5";import"@vue/shared";import"@vueuse/core";import"date-fns";import{assignUpdateValue as j,createVisitedSetter as b}from"../../utils/schema.js";import{useUrlConfigOptions as x,useAutographOptions as F}from"../../hooks/useFormRenderOptions.js";import{useCommonInjection as C}from"../../hooks/useCommonInjection.js";import{useFormField as k}from"../../hooks/useFormField.js";function S(r,i,u){return e({name:r,props:{value:{type:[String,Number,Object,Array]},options:{type:Array,default:()=>[]},urlConfig:{type:Object},autograph:{type:String},lazyRequest:{type:Boolean,default:!1},requestCache:{type:Boolean,default:!0},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},wordbook:{type:Object},vertical:{type:Boolean,default:!1},childFieldStrategy:{type:String,default:"checked"},childWidthMode:{type:String,default:"outer"},clearable:Boolean,selectAll:Boolean,onChange:{}},emits:["update:value"],setup(e,{emit:r,attrs:h}){const{field:j,fieldKey:S}=k();const O=t({get(){return t=e.value,p(t)?t+"":t;var t},set(e){r("update:value",e)}}),{renderComplexOption:w}=g(e,O),{labelKey:_,valueKey:B,fullOptions:K}=e.urlConfig?x(e,O):F(e,O);l(y).setContext(S.value,(e=>{return{currentOption:d((t=e,s(t)?function(e){const t=K.value.reduce(((e,t)=>(e[t[B.value]]=t,e)),{});return e.map((e=>t[e]))}(t):(l=t,K.value.find((e=>e[B.value]===l))))),labelField:_.value,valueField:B.value};var t,l}));const{injectValueBindKey:W,injectValueValidate:R}=C();R(O);const A=W(O);function I(){O.value=null}const M=t({get:()=>s(O.value)&&O.value.length===K.value.length,set(e){const t=e?K.value.map((e=>e[B.value])):[];c(t,O.value).length&&(O.value=t)}}),V=t((()=>s(e.value)&&e.value.length&&e.value.length<K.value.length));function P(t){let l;const o={display:"flex",alignItems:"center"};if(t.__spanPercent&&"inner"===e.childWidthMode){const e=`${t.__spanPercent}%`;o.maxWidth=e,function(e,t){return!v(t.childrenFields)&&(s(e)?e.includes(t[B.value]):e===t[B.value])}(O.value,t)&&(o.width=e)}return a(u,{key:t[B.value],value:t[B.value],disabled:t.disabled,currentValue:O.value,cancelable:e.clearable,onCancel:I,style:o},"function"==typeof(r=l=w({value:O.value,option:t,valueKey:B.value,labelKey:_.value,childFieldStrategy:e.childFieldStrategy,childWidthMode:e.childWidthMode}))||"[object Object]"===Object.prototype.toString.call(r)&&!n(r)?l:{default:()=>[l]});var r}return()=>{const t=K.value.map((e=>{var t;const l=null==(t=e.childrenFields)?void 0:t.reduce(((e,t)=>e+ +(t.elem_width||3)),0);return{...e,__spanPercent:(l||0)/12*100}})),l={display:"flex",flexDirection:e.vertical?"column":"row",flexWrap:"wrap",justifyItems:"flex-start",alignItems:e.vertical?"flex-start":"center",width:"100%"},n=a(i,o({key:A.value,value:O.value,"onUpdate:value":e=>O.value=e,onClick:b(j),style:{width:"100%"}},h),{default:()=>[a("section",{style:l},[t.map(P)])]});return e.selectAll?a("section",null,[[i!==m?null:a(f,{checked:M.value,"onUpdate:checked":e=>M.value=e,indeterminate:V.value},{default:()=>"全选"}),n]]):n}}})}const O=i(S("FormRadio",h,r),u({dataSource:"options"},j)),w=i(S("FormCheckbox",m,f),u({dataSource:"options"},j));export{w as CHECKBOX,O as RADIO};
@@ -1 +1 @@
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 v}from"@vueuse/core";import{cloneDeep as p,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 S,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 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:S,fieldKey:k}=x(),{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?B(e,F,q):K(e,F,q),T=v(((e,l="label")=>I(e,{["value"===l?P.value:"keyword"]:e},{avoidSearchContent:!1})),300);l(F,(e=>{if(e&&!z.value.find((l=>l[P.value]===e)))return T(e,"value")}),{immediate:!0});o(C).setContext(k.value,(e=>{return{currentOption:p((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:w(S),renderLabel:J,renderTag:M},{empty:()=>e.useLoading&&A.value?n(c,null,null):n(f,{description:"无数据"},null),...u})}}),r(F,S));export{k as REMOTE_SEARCH};
1
+ import{defineComponent as e,watch as l,inject as a,computed as o,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 v}from"@vueuse/core";import{cloneDeep as p,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 F}from"../../hooks/useCommonInjection.js";import{assignUpdateValue as j,assignClearBindVisited as S,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 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 j=s(e,"value",r),{field:S,fieldKey:k}=x(),{injectValueValidate:O,injectValueBindKey:D}=b();O(j);const R=D(j),q={onRequestConfigChange:({fetchData:e,valueKey:l})=>e(j.value,{[l]:j.value}),onDepsChange:({fetchData:e,valueKey:l})=>e(j.value,{[l]:j.value})},{labelKey:L,valueKey:P,showKey:V,fetchData:I,searchContent:U,fullOptions:z,loading:A}=e.urlConfig?B(e,j,q):K(e,j,q),T=v(((e,l="label")=>I(e,{["value"===l?P.value:"keyword"]:e},{avoidSearchContent:!1})),300);l(j,(e=>{if(e&&!z.value.find((l=>l[P.value]===e)))return T(e,"value")}),{immediate:!0});a(C).setContext(k.value,(e=>{return{currentOption:p((l=e,z.value.find((e=>e[P.value]===l)))),labelField:L.value,valueField:P.value};var l}));const{menuProps:$,nodeProps:E}=F(),G=o((()=>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 a=l;return e.desc?n("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[a,e.desc?n(y,null,{trigger:()=>n(g,{component:i},null),default:()=>e.desc}):null]):a}function M({option:l,handleClose:a}){var o;const t=null!=(o=V.value&&l[V.value])?o: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(),a()}},{default:()=>t}):`${t};`}const N=t("");return()=>n(m,{title:N.value,remote:!0,filterable:!0,key:R.value,value:j.value,"onUpdate:value":e=>j.value=e,labelField:L.value,valueField:P.value,"menu-props":$,"node-props":E,onSearch:T,"onUpdate:show":H,options:G.value,onFocus:w(S),renderLabel:J,renderTag:M},{empty:()=>e.useLoading&&A.value?n(c,null,null):n(f,{description:"无数据"},null),...u})}}),r(j,S));export{k as REMOTE_SEARCH};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as a,inject as l,watch as o,createVNode as r,nextTick as n}from"vue";import{connect as u,mapProps as i}from"@formily/vue";import{isEqual as s,isArray as c,isString as p}from"lodash-es";import{NCascader as d}from"naive-ui";import"../../../index.js";import{useCommonInjection as m}from"../../hooks/useCommonInjection.js";import{InjectionAsyncQueue as v,InjectionFormUUID as f}from"../../constants/index.js";import"@formily/path";import"@vueuse/core";import"../../../../../shared/utils/index.js";import"@formily/core";import"@vicons/ionicons5";import"@vue/shared";import"date-fns";import{assignUpdateValue as y,createVisitedSetter as h,traverseDependKey as k}from"../../utils/schema.js";import"@formily/reactive";import"../../hooks/useComplexOptions.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"@vueuse/shared";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import"./index.js";import{useFormField as j}from"../../hooks/useFormField.js";import"../../hooks/useFormValidator.js";const g=u(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},checkStrategy:{type:String,default:"child"},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:u,emit:i}){const y=t(),{field:g,title:b}=j(),C=t(1),S=t(!0);const w=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:e.labelField)?l:"text"})),F=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:e.valueField)?l:"value"})),A=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");if(!Array.isArray(t)||!t.length)return null;const a=t.map((e=>e[F.value])).slice(-1).join(""),l=t.map((e=>e[w.value])).join(" / ");return a||l}catch(e){return null}}));function H(e,t,a){i("update:value",c(a)?a.map((function(e){return{...e,label:e[w.value],children:void 0,parent:void 0,mergeItemValue:void 0}})):null)}const x=l(v);async function q(t){e.filterable?await async function(){if(!e.urlConfig||y.value&&e.requestCache)return;const t=await x.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:b.value,cache:e.requestCache,payload:{field:g.value,labelKey:w.value,valueKey:F.value}});function a(e,t,o){const r=[...o,...l(e)],n={[w.value]:e[w.value],[F.value]:e[F.value],depth:t+1,isLeaf:!0,keyword:e.keyword,mergeItemValue:r};return c(e.children)&&(n.children=e.children.map((e=>a(e,t+1,r))),n.isLeaf=!e.children.length),C.value=Math.max(C.value,t+1),n}function l(e){let t=[];if(p(e[w.value])&&(t=[...t,e[w.value]]),p(e.keyword)&&e.keyword.length>0){const a=e.keyword.split(",");t=[...t,...a]}return t}y.value=t.map((e=>a(e,0,[])))}():await async function(t){if(o(e,t))return;const a=await x.addAsync(r(s(t),i(e),b.value,t));if(!a.length&&t)return t.isLeaf=!0,H(0,0,n(t)),void(O.value=!1);const l=a.map((e=>u(e,s(t))));function o(e,t){return!i(e)||!t&&y.value&&e.requestCache||s(t)>=s(e)-1}function r(t,a,l,o){const r={lvlnr:t+1+""};return o&&a.dependKey&&k(a.dependKey,((e,t)=>{r[t]=o[e]})),{params:r,...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 u(a,l){return{[w.value]:a[w.value],[F.value]:a[F.value],depth:l+1,parent:t,isLeaf:l+2>=s(e)}}function i(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 B()}const V=`form-render__cascade--menu-${l(f)}`;async function B(){await n();const e=document.querySelector(`.${V} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}function K(t,a){if(!t||!a)return!1;const{mergeItemValue:l}=a;return!(e.checkStrategy.includes("child")&&a.depth<C.value)&&(l.length>0&&l.some((e=>e.includes(t.trim()))))}const{injectValueValidate:L,injectValueWatchFromEmpty:I,injectValueBindKey:E}=m();I((()=>e.value),q),L((()=>e.value)),o((()=>e.urlConfig),(async(t,a)=>{s(t,a)||(y.value=null,S.value?e.lazyRequest||(q(),S.value=!S.value):await q())}),{immediate:!0});const O=t(!1);function W(e){O.value=!!e,e&&q()}const z=a((()=>y.value||e.options||[])),N=a((()=>!e.filterable)),P=E(A);return()=>r(d,{key:P.value,remote:N.value,filterable:e.filterable,"menu-props":{class:V,onClick:B},"check-strategy":e.checkStrategy,show:!!O.value,"onUpdate:show":W,value:A.value,filter:K,"onUpdate:value":H,labelField:w.value,valueField:F.value,options:z.value,onLoad:q,onFocus:h(g)},u)}}),i({dataSource:"options"},y));export{g as SEARCH_CASCADER};
1
+ import{defineComponent as e,ref as t,computed as a,inject as l,watch as o,createVNode as r,nextTick as n}from"vue";import{connect as u,mapProps as i}from"@formily/vue";import{isEqual as s,isArray as c,isString as p}from"lodash-es";import{NCascader as d}from"naive-ui";import"../../../index.js";import{useCommonInjection as v}from"../../hooks/useCommonInjection.js";import{InjectionChangeContextCollector as m,InjectionAsyncQueue as f,InjectionFormUUID as y}from"../../constants/index.js";import"@formily/path";import"@vueuse/core";import"../../../../../shared/utils/index.js";import"@formily/core";import"@vicons/ionicons5";import"@vue/shared";import"date-fns";import{assignUpdateValue as h,createVisitedSetter as k,traverseDependKey as j}from"../../utils/schema.js";import"@formily/reactive";import"../../hooks/useComplexOptions.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"@vueuse/shared";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import"./index.js";import{useFormField as g}from"../../hooks/useFormField.js";import"../../hooks/useFormValidator.js";const b=u(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},checkStrategy:{type:String,default:"child"},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:u,emit:i}){const h=t(),{field:b,title:C,fieldKey:S}=g(),F=t(1),w=t(!0);const A=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:e.labelField)?l:"text"})),H=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:e.valueField)?l:"value"}));l(m).setContext(S.value,(()=>({labelField:A.value,valueField:H.value})));const x=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");if(!Array.isArray(t)||!t.length)return null;const a=t.map((e=>e[H.value])).slice(-1).join(""),l=t.map((e=>e[A.value])).join(" / ");return a||l}catch(e){return null}}));function q(e,t,a){i("update:value",c(a)?a.map((function(e){return{...e,label:e[A.value],children:void 0,parent:void 0,mergeItemValue:void 0}})):null)}const K=l(f);async function V(t){e.filterable?await async function(){if(!e.urlConfig||h.value&&e.requestCache)return;const t=await K.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:C.value,cache:e.requestCache,payload:{field:b.value,labelKey:A.value,valueKey:H.value}});function a(e,t,o){const r=[...o,...l(e)],n={[A.value]:e[A.value],[H.value]:e[H.value],depth:t+1,isLeaf:!0,keyword:e.keyword,mergeItemValue:r};return c(e.children)&&(n.children=e.children.map((e=>a(e,t+1,r))),n.isLeaf=!e.children.length),F.value=Math.max(F.value,t+1),n}function l(e){let t=[];if(p(e[A.value])&&(t=[...t,e[A.value]]),p(e.keyword)&&e.keyword.length>0){const a=e.keyword.split(",");t=[...t,...a]}return t}h.value=t.map((e=>a(e,0,[])))}():await async function(t){if(o(e,t))return;const a=await K.addAsync(r(s(t),i(e),C.value,t));if(!a.length&&t)return t.isLeaf=!0,q(0,0,n(t)),void(z.value=!1);const l=a.map((e=>u(e,s(t))));function o(e,t){return!i(e)||!t&&h.value&&e.requestCache||s(t)>=s(e)-1}function r(t,a,l,o){const r={lvlnr:t+1+""};return o&&a.dependKey&&j(a.dependKey,((e,t)=>{r[t]=o[e]})),{params:r,...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 u(a,l){return{[A.value]:a[A.value],[H.value]:a[H.value],depth:l+1,parent:t,isLeaf:l+2>=s(e)}}function i(e){return e.urlConfig}function s(e){var t;return null!=(t=null==e?void 0:e.depth)?t:-1}t?t.children=l:h.value=l}(t),await L()}const B=`form-render__cascade--menu-${l(y)}`;async function L(){await n();const e=document.querySelector(`.${B} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}function I(t,a){if(!t||!a)return!1;const{mergeItemValue:l}=a;return!(e.checkStrategy.includes("child")&&a.depth<F.value)&&(l.length>0&&l.some((e=>e.includes(t.trim()))))}const{injectValueValidate:E,injectValueWatchFromEmpty:O,injectValueBindKey:W}=v();O((()=>e.value),V),E((()=>e.value)),o((()=>e.urlConfig),(async(t,a)=>{s(t,a)||(h.value=null,w.value?e.lazyRequest||(V(),w.value=!w.value):await V())}),{immediate:!0});const z=t(!1);function N(e){z.value=!!e,e&&V()}const P=a((()=>h.value||e.options||[])),R=a((()=>!e.filterable)),U=W(x);return()=>r(d,{key:U.value,remote:R.value,filterable:e.filterable,"menu-props":{class:B,onClick:L},"check-strategy":e.checkStrategy,show:!!z.value,"onUpdate:show":N,value:x.value,filter:I,"onUpdate:value":q,labelField:A.value,valueField:H.value,options:P.value,onLoad:V,onFocus:k(b)},u)}}),i({dataSource:"options"},h));export{b as SEARCH_CASCADER};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as o,inject as t,useAttrs as l,ref as a,createVNode as r,mergeProps as s,toRaw as n}from"vue";import{arrayed as u}from"../../../../../shared/utils/index.js";import{cloneDeep as i,isArray as p,isObject as m,omit as d,xor as c}from"lodash-es";import{NSelect as y}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as f}from"../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as v}from"../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{connect as h,mapProps as b}from"@formily/vue";import{useCommonInjection as j,useSelectOptionProps as S}from"../../hooks/useCommonInjection.js";import{useComplexOptions as k,useComplexOptionsSpan as g}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as C,InjectionFormUUID as B}from"../../constants/index.js";import"@formily/path";import"@formily/core";import"@vicons/ionicons5";import{assignUpdateValue as F,assignClearBindVisited as w,createVisitedSetter as A}from"../../utils/schema.js";import"@formily/reactive";import"../../../index.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"./index.js";import"@vueuse/shared";import{useFormField as H}from"../../hooks/useFormField.js";import{useUrlConfigOptions as O,useAutographOptions as K,useRecommendOptions as R}from"../../hooks/useFormRenderOptions.js";import"../../hooks/useFormValidator.js";const x=h(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},selectAll:{type:Boolean},searchByValue:{type:Boolean},wordSplitFilter:{}},emits:["update:value","postRecommend"],setup(e,{slots:h,emit:b}){const F=o({get:()=>e.value,async set(e){b("update:value",e),D(e)}}),{labelKey:w,valueKey:x,showKey:V,fetchData:L,searchContent:P,fullOptions:_,filterOptions:N,remoteOptions:I,loading:W}=e.urlConfig?O(e,F):K(e,F),{modifyEvent:q,modifyAbleRef:E,getOptionsWithCreated:z}=f(e,{searchContent:P,labelKey:w,valueKey:x,valueRef:F,fullOptions:_}),{renderComplexOption:M,hasComplexOption:T}=k(e,F),{getRecommend:U,postRecommend:D,sortedOptions:G}=R(e,N,b,w,x),{field:J,fieldKey:Q}=H();t(C).setContext(Q.value,(e=>({currentOption:i(function(e){const o=z(_.value);return p(e)?function(e){const t=o.reduce(((e,o)=>(e[o[x.value]]=o,e)),{});return e.map((e=>t[e]))}(e):(t=e,o.find((e=>e[x.value]===t)));var t}(e))})));const X=async e=>(P.value=e,Promise.allSettled([L(e),U(e)])),{injectValueValidate:Y,injectValueWatchFromEmpty:Z,injectValueBindKey:$}=j();Z(F,(()=>e.lazyRequest&&X())),Y(F);const ee=$(F),{menuProps:oe,nodeProps:te}=S(),{renderTag:le,renderLabel:ae,renderSelectAll:re,titleRef:se}=v(e,{labelKey:w,valueKey:x,valueRef:F,showKey:V,searchContent:P}),ne=o((()=>z(E.value?_.value:G.value))),ue=l(),ie=o((()=>{if(e.allowCreate||e.showCustomValue)return F.value;const o=e.multiple&&p(F.value);return _.value.find((e=>o?F.value.includes(e[x.value]):e[x.value]===F.value))?F.value:null})),pe=a(!1);async function me(e){e&&await X(),pe.value=e}async function de(e,o){await q.updateValue(e,o),I.value&&o&&u(o).forEach((e=>{if(!m(e))return;const o=e;o.created&&o.shouldSave&&I.value.push(d(n(o),["created","shouldSave"]))}))}const ce=t(B),{getSpan:ye}=g(),fe=A(J,q.focus);function ve(o){if(!e.multiple)return;const t=o?ne.value.map((e=>e[x.value])):[];c(t,e.value).length&&(F.value=t)}function he(o){let t=h;return e.multiple&&e.selectAll&&(t={action:()=>re(ve),...h}),r(y,s({title:se.value,key:ee.value,multiple:e.multiple,remote:!0,filterable:!0,loading:W.value,value:ie.value,onUpdateValue:de,"menu-props":oe,"node-props":te,labelField:w.value,valueField:x.value,options:ne.value,onSearch:X,show:pe.value,"onUpdate:show":me,onFocus:fe,onBlur:q.blur,renderLabel:ae,renderTag:le},o,ue),t)}return()=>{var e,o;if(!T.value)return he();const t=null!=(o=null==(e=J.value.decoratorProps)?void 0:e.span)?o:6,l=ye(ce,J.value.address);return r("section",{class:"form-render__selectChildField",style:{"--column":l+t}},[he({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),_.value.map((e=>M({option:e,value:F.value,valueKey:x.value,labelKey:w.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":l}}})))])}}}),b({dataSource:"options"},F,w));export{x as SELECT};
1
+ import{defineComponent as e,computed as o,inject as t,useAttrs as l,ref as a,createVNode as r,mergeProps as s,toRaw as n}from"vue";import{arrayed as u}from"../../../../../shared/utils/index.js";import{cloneDeep as i,isArray as p,isObject as m,omit as d,xor as c}from"lodash-es";import{NSelect as v}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as y}from"../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as f}from"../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{connect as h,mapProps as b}from"@formily/vue";import{useCommonInjection as j,useSelectOptionProps as S}from"../../hooks/useCommonInjection.js";import{useComplexOptions as k,useComplexOptionsSpan as g}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as C,InjectionFormUUID as F}from"../../constants/index.js";import"@formily/path";import"@formily/core";import"@vicons/ionicons5";import{assignUpdateValue as B,assignClearBindVisited as w,createVisitedSetter as A}from"../../utils/schema.js";import"@formily/reactive";import"../../../index.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"./index.js";import"@vueuse/shared";import{useFormField as H}from"../../hooks/useFormField.js";import{useUrlConfigOptions as O,useAutographOptions as K,useRecommendOptions as R}from"../../hooks/useFormRenderOptions.js";import"../../hooks/useFormValidator.js";const x=h(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},selectAll:{type:Boolean},searchByValue:{type:Boolean},wordSplitFilter:{}},emits:["update:value","postRecommend"],setup(e,{slots:h,emit:b}){const B=o({get:()=>e.value,async set(e){b("update:value",e),D(e)}}),{labelKey:w,valueKey:x,showKey:V,fetchData:L,searchContent:P,fullOptions:_,filterOptions:N,remoteOptions:I,loading:W}=e.urlConfig?O(e,B):K(e,B),{modifyEvent:q,modifyAbleRef:E,getOptionsWithCreated:z}=y(e,{searchContent:P,labelKey:w,valueKey:x,valueRef:B,fullOptions:_}),{renderComplexOption:M,hasComplexOption:T}=k(e,B),{getRecommend:U,postRecommend:D,sortedOptions:G}=R(e,N,b,w,x),{field:J,fieldKey:Q}=H();t(C).setContext(Q.value,(e=>({currentOption:i(function(e){const o=z(_.value);return p(e)?function(e){const t=o.reduce(((e,o)=>(e[o[x.value]]=o,e)),{});return e.map((e=>t[e]))}(e):(t=e,o.find((e=>e[x.value]===t)));var t}(e)),labelField:w.value,valueField:x.value})));const X=async e=>(P.value=e,Promise.allSettled([L(e),U(e)])),{injectValueValidate:Y,injectValueWatchFromEmpty:Z,injectValueBindKey:$}=j();Z(B,(()=>e.lazyRequest&&X())),Y(B);const ee=$(B),{menuProps:oe,nodeProps:te}=S(),{renderTag:le,renderLabel:ae,renderSelectAll:re,titleRef:se}=f(e,{labelKey:w,valueKey:x,valueRef:B,showKey:V,searchContent:P}),ne=o((()=>z(E.value?_.value:G.value))),ue=l(),ie=o((()=>{if(e.allowCreate||e.showCustomValue)return B.value;const o=e.multiple&&p(B.value);return _.value.find((e=>o?B.value.includes(e[x.value]):e[x.value]===B.value))?B.value:null})),pe=a(!1);async function me(e){e&&await X(),pe.value=e}async function de(e,o){await q.updateValue(e,o),I.value&&o&&u(o).forEach((e=>{if(!m(e))return;const o=e;o.created&&o.shouldSave&&I.value.push(d(n(o),["created","shouldSave"]))}))}const ce=t(F),{getSpan:ve}=g(),ye=A(J,q.focus);function fe(o){if(!e.multiple)return;const t=o?ne.value.map((e=>e[x.value])):[];c(t,e.value).length&&(B.value=t)}function he(o){let t=h;return e.multiple&&e.selectAll&&(t={action:()=>re(fe),...h}),r(v,s({title:se.value,key:ee.value,multiple:e.multiple,remote:!0,filterable:!0,loading:W.value,value:ie.value,onUpdateValue:de,"menu-props":oe,"node-props":te,labelField:w.value,valueField:x.value,options:ne.value,onSearch:X,show:pe.value,"onUpdate:show":me,onFocus:ye,onBlur:q.blur,renderLabel:ae,renderTag:le},o,ue),t)}return()=>{var e,o;if(!T.value)return he();const t=null!=(o=null==(e=J.value.decoratorProps)?void 0:e.span)?o:6,l=ve(ce,J.value.address);return r("section",{class:"form-render__selectChildField",style:{"--column":l+t}},[he({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),_.value.map((e=>M({option:e,value:B.value,valueKey:x.value,labelKey:w.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":l}}})))])}}}),b({dataSource:"options"},B,w));export{x as SELECT};
@@ -4,6 +4,9 @@ export declare class ContextCollector {
4
4
  setContext(key: string, value: (value: unknown) => FormChangeContext): void;
5
5
  getContext(key: string, value: unknown): Partial<{
6
6
  currentOption: import("../../..").AnyObject;
7
+ labelField: string;
8
+ valueField: string;
9
+ aliasField: string;
7
10
  }> | undefined;
8
11
  }
9
12
  export declare function useChangeContext(): {
@@ -1,8 +1,8 @@
1
1
  import { Form } from '@formily/core';
2
2
  import { Ref } from 'vue';
3
- import { BusinessCollector, FieldItem, FormItemDepsCollector, FormRenderExpose, FormRenderProps, useOperationalForm } from '../../../../components/form-render';
3
+ import { BusinessCollector, ContextCollector, FieldItem, FormItemDepsCollector, FormRenderExpose, FormRenderProps, useOperationalForm } from '../../../../components/form-render';
4
4
  import { wordbookSettingHandler } from '../../../../components/form-render/src/hooks';
5
- export declare function useFormExposeEvent({ formModel, formRenderRef, formUUID, getFieldList, formItemDepsCollector, businessCollector, wordbookSettingHandler, operationalFormHandler }: {
5
+ export declare function useFormExposeEvent({ formModel, formRenderRef, formUUID, getFieldList, formItemDepsCollector, businessCollector, wordbookSettingHandler, operationalFormHandler, changeContextCollector }: {
6
6
  formModel: Form;
7
7
  formRenderRef: Ref<HTMLElement | undefined>;
8
8
  formUUID: string;
@@ -11,6 +11,7 @@ export declare function useFormExposeEvent({ formModel, formRenderRef, formUUID,
11
11
  businessCollector: BusinessCollector;
12
12
  wordbookSettingHandler: wordbookSettingHandler;
13
13
  operationalFormHandler: ReturnType<typeof useOperationalForm>;
14
+ changeContextCollector: ContextCollector;
14
15
  }): Omit<FormRenderExpose, 'formModel' | 'reload' | 'getFieldList'>;
15
16
  export declare function useFormDomEvent({ props, formRenderRef, formModel, formUUID }: {
16
17
  props: FormRenderProps;
@@ -1 +1 @@
1
- import{arrayed as e,findAncestor as t,targetStringIncludes as r}from"../../../../shared/utils/index.js";import{isField as o}from"@formily/core";import{Path as n}from"@formily/path";import{isObject as i}from"@vue/shared";import{promiseTimeout as a}from"@vueuse/shared";import{isFunction as s,isArray as d,isString as l}from"lodash-es";import{nextTick as u}from"vue";import"../../index.js";import{NESTED_FORM_ITEM_TYPE as c}from"../constants/index.js";import{queryDecoratorByAddress as f,queryInput as m,queryDecoratorByFieldKey as p,findNextWidget as g}from"../utils/dom.js";import{validateMessageParser as v,combineExtendKey as y,splitExtendKey as S}from"../utils/index.js";import{getParentLinebar as b}from"../utils/schema.js";import{useSelectedSetting as h}from"./useSelectedSetting.js";function x({formModel:t,formRenderRef:r,formUUID:a,getFieldList:c,formItemDepsCollector:g,businessCollector:x,wordbookSettingHandler:D,operationalFormHandler:E}){const{applySelectedSetting:F}=h();return{validate(n,{force:u}={}){if(null==n&&(n="*"),s(n)){const e=Object.entries(t.fields).reduce(((e,[t,r])=>(n(r)&&e.push(t),e)),[]);if(!e.length)return Promise.resolve();n=e.length?`*(${e.join(",")})`:"*"}const c=[];u&&t.setFieldState(n,(e=>{"visible"===e.display&&"editable"!==e.pattern&&o(e)&&(c.push({pattern:e.pattern,state:e}),e.pattern="editable")}));const p=t.validate(n).catch((e=>Promise.reject(Array.isArray(e)?e.reduce(g,[]):e)));return u&&c.forEach((({pattern:e,state:t})=>t.pattern=e)),p;function g(t,r){if(!i(r))return t;let o=!1;return d(r.messages)&&r.messages.forEach((r=>{i(r)&&(t.push(...e(r).map(y)),o=!0)})),!o&&t.push(y(r)),t}function y(e){if(e.decoratorElement)return e;const o=t.query(e.path),n=o.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&&l(r)?r:e,t.fieldItem)}(e,o.get("decoratorProps")))),d=f(e.address,r.value,a);return{...e,messages:s,title:n,decoratorElement:d,...m(d)}}},getFormValues(e=!0){let r=t.getFormState().values;return e&&(r=y(c(),r)),r},async setFormValues(e,r){r=Object.assign({avoidDependKeyConnection:!0,needSplitExtendKey:!0,avoidWordbookSettingConnection:!0,avoidOperationalFormConnection:!0,dependKeyKeepValue:!1,avoidBusinessConnection:!1,overwrite:!0},r),x.triggerDisabled=r.avoidBusinessConnection,g.triggerDisabled=r.avoidDependKeyConnection,g.keepValue=r.dependKeyKeepValue,D.triggerDisabled=r.avoidWordbookSettingConnection,E.triggerDisabled=r.avoidOperationalFormConnection,r.needSplitExtendKey&&(e=S(c(),e)),t.setFieldState("*",(t=>{o(t)&&(r.overwrite||n.existIn(e,t.path))&&(t.value=n.getIn(e,t.path))})),await u(),x.triggerDisabled=!1,g.triggerDisabled=!1,D.triggerDisabled=!1,E.triggerDisabled=!1,g.keepValue=!1},setFieldState(e,r){t.setFieldState(e,r)},resetFields:(e="*")=>t.reset(e),queryWidget:e=>async function(e,t,o){if(!r.value)return d();const i=p(e,t,a);if(i)return d(i);const s=b(e,o);return s?(g.trigger(n.parse(s),!0),await u(),d(p(e,t,a))):d();function d(e){return{decoratorElement:e,...m(e)}}}(e,r.value,c()),applySelectedSetting(e){const r=t.getFormState().values;F(r,e,((e,r)=>{t.setFieldState(e,(e=>{o(e)&&e.setValue(r)}))}))}}}function D({props:e,formRenderRef:o,formModel:n,formUUID:i}){return{onKeydown:async function d(l){var u;if("Enter"===l.code){if(e.enterToNextWidget&&l.target){if("TEXTAREA"===l.target.tagName&&!l.ctrlKey)return;l.preventDefault()}if(await a(0),Reflect.get(l,"stopCapture")||!e.enterToNextWidget||!o.value)return;const r=t(l.target,(e=>e.classList.contains("form-render__formItem")));if(!r)return;const i=`.form-render__formItem${c.map((e=>`:not([widget-type=${e}])`)).join("")}`,m=Array.from(o.value.querySelectorAll(i)),p=m.findIndex((e=>e.id===r.id));if(!~p)return;const{widget:v,field:y}=g(m,p,l.target);if(!v)return;if(s(e.enterToNextWidget)){const t=y&&n.query(y).take();!t||e.enterToNextWidget(null==(u=t.decoratorProps)?void 0:u.fieldItem)?f(v,e.autoExpand):d({target:v,code:"Enter"})}else f(v,e.autoExpand)}else if("Tab"===l.code){if(!e.autoExpand)return;await a(0);const t=document.querySelector(":focus");if(!t)return;f(t,!0)}async function f(e,o){if(await a(0),e.focus(),!o)return;if(!t(e,(e=>e.getAttribute("uuid")===i)))return;if(!r(["radio","checkbox"],e.className))if(e.click(),"INPUT"!==e.tagName){const t=e.querySelector("input");if(!t)return;t.focus(),n(t)}else n(e);function n(e){if("INPUT"!==e.tagName)return;const t=e.value;t&&t.match(/^\d{4}-\d{2}/)&&e.setSelectionRange(0,4)}}}}}export{D as useFormDomEvent,x as useFormExposeEvent};
1
+ import{arrayed as e,findAncestor as t,targetStringIncludes as r}from"../../../../shared/utils/index.js";import{isField as o}from"@formily/core";import{Path as n}from"@formily/path";import{isObject as i}from"@vue/shared";import{promiseTimeout as a}from"@vueuse/shared";import{isFunction as s,isArray as d,isString as l}from"lodash-es";import{nextTick as u}from"vue";import"../../index.js";import{NESTED_FORM_ITEM_TYPE as c}from"../constants/index.js";import{formValueFormatter as f}from"../utils/valueFormatter.js";import{queryDecoratorByAddress as m,queryInput as p,queryDecoratorByFieldKey as g,findNextWidget as v}from"../utils/dom.js";import{validateMessageParser as y,combineExtendKey as S,splitExtendKey as h}from"../utils/index.js";import{getParentLinebar as b}from"../utils/schema.js";import{useSelectedSetting as x}from"./useSelectedSetting.js";function F({formModel:t,formRenderRef:r,formUUID:a,getFieldList:c,formItemDepsCollector:v,businessCollector:F,wordbookSettingHandler:D,operationalFormHandler:E,changeContextCollector:I}){const{applySelectedSetting:j}=x();return{validate(n,{force:u}={}){if(null==n&&(n="*"),s(n)){const e=Object.entries(t.fields).reduce(((e,[t,r])=>(n(r)&&e.push(t),e)),[]);if(!e.length)return Promise.resolve();n=e.length?`*(${e.join(",")})`:"*"}const c=[];u&&t.setFieldState(n,(e=>{"visible"===e.display&&"editable"!==e.pattern&&o(e)&&(c.push({pattern:e.pattern,state:e}),e.pattern="editable")}));const f=t.validate(n).catch((e=>Promise.reject(Array.isArray(e)?e.reduce(g,[]):e)));return u&&c.forEach((({pattern:e,state:t})=>t.pattern=e)),f;function g(t,r){if(!i(r))return t;let o=!1;return d(r.messages)&&r.messages.forEach((r=>{i(r)&&(t.push(...e(r).map(v)),o=!0)})),!o&&t.push(v(r)),t}function v(e){if(e.decoratorElement)return e;const o=t.query(e.path),n=o.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 y(r&&l(r)?r:e,t.fieldItem)}(e,o.get("decoratorProps")))),d=m(e.address,r.value,a);return{...e,messages:s,title:n,decoratorElement:d,...p(d)}}},getFormValues(e=!0){let r=t.getFormState().values;return e&&(r=S(c(),r)),r},async setFormValues(e,r){r=Object.assign({avoidDependKeyConnection:!0,needSplitExtendKey:!0,avoidWordbookSettingConnection:!0,avoidOperationalFormConnection:!0,dependKeyKeepValue:!1,avoidBusinessConnection:!1,overwrite:!0},r),F.triggerDisabled=r.avoidBusinessConnection,v.triggerDisabled=r.avoidDependKeyConnection,v.keepValue=r.dependKeyKeepValue,D.triggerDisabled=r.avoidWordbookSettingConnection,E.triggerDisabled=r.avoidOperationalFormConnection,r.needSplitExtendKey&&(e=h(c(),e)),t.setFieldState("*",(t=>{o(t)&&(r.overwrite||n.existIn(e,t.path))&&(t.value=n.getIn(e,t.path))})),await u(),F.triggerDisabled=!1,v.triggerDisabled=!1,D.triggerDisabled=!1,E.triggerDisabled=!1,v.keepValue=!1},setFieldState(e,r){t.setFieldState(e,r)},resetFields:(e="*")=>t.reset(e),queryWidget:e=>async function(e,t,o){if(!r.value)return d();const i=g(e,t,a);if(i)return d(i);const s=b(e,o);return s?(v.trigger(n.parse(s),!0),await u(),d(g(e,t,a))):d();function d(e){return{decoratorElement:e,...p(e)}}}(e,r.value,c()),applySelectedSetting(e){const r=t.getFormState().values;j(r,e,((e,r)=>{t.setFieldState(e,(e=>{o(e)&&e.setValue(r)}))}))},getTextFormValues:()=>f(t,I)}}function D({props:e,formRenderRef:o,formModel:n,formUUID:i}){return{onKeydown:async function d(l){var u;if("Enter"===l.code){if(e.enterToNextWidget&&l.target){if("TEXTAREA"===l.target.tagName&&!l.ctrlKey)return;l.preventDefault()}if(await a(0),Reflect.get(l,"stopCapture")||!e.enterToNextWidget||!o.value)return;const r=t(l.target,(e=>e.classList.contains("form-render__formItem")));if(!r)return;const i=`.form-render__formItem${c.map((e=>`:not([widget-type=${e}])`)).join("")}`,m=Array.from(o.value.querySelectorAll(i)),p=m.findIndex((e=>e.id===r.id));if(!~p)return;const{widget:g,field:y}=v(m,p,l.target);if(!g)return;if(s(e.enterToNextWidget)){const t=y&&n.query(y).take();!t||e.enterToNextWidget(null==(u=t.decoratorProps)?void 0:u.fieldItem)?f(g,e.autoExpand):d({target:g,code:"Enter"})}else f(g,e.autoExpand)}else if("Tab"===l.code){if(!e.autoExpand)return;await a(0);const t=document.querySelector(":focus");if(!t)return;f(t,!0)}async function f(e,o){if(await a(0),e.focus(),!o)return;if(!t(e,(e=>e.getAttribute("uuid")===i)))return;if(!r(["radio","checkbox"],e.className))if(e.click(),"INPUT"!==e.tagName){const t=e.querySelector("input");if(!t)return;t.focus(),n(t)}else n(e);function n(e){if("INPUT"!==e.tagName)return;const t=e.value;t&&t.match(/^\d{4}-\d{2}/)&&e.setSelectionRange(0,4)}}}}}export{D as useFormDomEvent,F as useFormExposeEvent};
@@ -96,9 +96,13 @@ export declare type FormRenderExpose = {
96
96
  */
97
97
  reload(): Promise<any>;
98
98
  applySelectedSetting(settings: LowCodeTypes.selectedSettingConfig[]): void;
99
+ getTextFormValues(): AnyObject;
99
100
  };
100
101
  export declare type FormChangeContext = Partial<{
101
102
  currentOption: AnyObject;
103
+ labelField: string;
104
+ valueField: string;
105
+ aliasField: string;
102
106
  }>;
103
107
  export declare type FormChangePayload = {
104
108
  value: any;
@@ -0,0 +1,4 @@
1
+ import { AnyObject } from '../../../../shared/types';
2
+ import { Form } from '@formily/core';
3
+ import { ContextCollector } from '../../../../components/form-render';
4
+ export declare function formValueFormatter(formModel: Form, contextCollector: ContextCollector): AnyObject;
@@ -0,0 +1 @@
1
+ import{arrayed as e,jsonParse as t}from"../../../../shared/utils/index.js";import{isField as o}from"@formily/core";import{Path as n}from"@formily/path";import{cloneDeep as r,isArray as i,isObject as l,isString as a}from"lodash-es";function s(s,u){const m=r(s.values);return Object.entries(s.fields).forEach((([,r])=>{if(!o(r)||null==r.value||""==r.value||!i(r.component))return;const{currentOption:s,labelField:p="label"}=u.getContext(r.props.name.toString(),r.value)||{},f=r.component[0];if(["SELECT","RADIO","CHECKBOX"].includes(f)){if(!s)return;n.setIn(m,r.path,e(s).map((e=>l(e)?e[p]:e)).join())}else if(["SEARCH_CASCADER","LEVEL_SEARCH_CASCADER"].includes(f)){const e=a(r.value)?t(r.value):r.value;if(!i(e))return;n.setIn(m,r.path,e.map((e=>l(e)?e[p]:e)).join())}})),m}export{s as formValueFormatter};
@@ -2642,7 +2642,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2642
2642
  formRenderRef: import("vue").Ref<import("..").FormRenderExpose | undefined>;
2643
2643
  key: import("vue").Ref<number>;
2644
2644
  reload: () => Promise<void>;
2645
- formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting"];
2645
+ formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting", "getTextFormValues"];
2646
2646
  exposed: Partial<import("..").FormRenderExpose>;
2647
2647
  FormRender: import("vue").DefineComponent<{
2648
2648
  fieldList: {
@@ -3030,8 +3030,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3030
3030
  onScroll?: ((...args: any[]) => any) | undefined;
3031
3031
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
3032
3032
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
3033
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
3033
3034
  }>>;
3034
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
3035
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
3035
3036
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
3036
3037
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3037
3038
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -3377,7 +3378,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3377
3378
  readonly displayDirective: "if" | "show" | "show:lazy";
3378
3379
  }>;
3379
3380
  NTabs: any;
3380
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
3381
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
3381
3382
  fieldList: {
3382
3383
  type: import("vue").PropType<import("..").FieldItem[]>;
3383
3384
  };
@@ -3572,6 +3573,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3572
3573
  onScroll?: ((...args: any[]) => any) | undefined;
3573
3574
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
3574
3575
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
3576
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
3575
3577
  }, {
3576
3578
  anchor: boolean;
3577
3579
  maxHeight: string | number;
@@ -3717,7 +3719,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3717
3719
  formRenderRef: import("vue").Ref<import("..").FormRenderExpose | undefined>;
3718
3720
  key: import("vue").Ref<number>;
3719
3721
  reload: () => Promise<void>;
3720
- formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting"];
3722
+ formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting", "getTextFormValues"];
3721
3723
  exposed: Partial<import("..").FormRenderExpose>;
3722
3724
  FormRender: import("vue").DefineComponent<{
3723
3725
  fieldList: {
@@ -4105,8 +4107,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
4105
4107
  onScroll?: ((...args: any[]) => any) | undefined;
4106
4108
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
4107
4109
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
4110
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
4108
4111
  }>>;
4109
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
4112
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
4110
4113
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
4111
4114
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
4112
4115
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -4452,7 +4455,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
4452
4455
  readonly displayDirective: "if" | "show" | "show:lazy";
4453
4456
  }>;
4454
4457
  NTabs: any;
4455
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4458
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4456
4459
  fieldList: {
4457
4460
  type: import("vue").PropType<import("..").FieldItem[]>;
4458
4461
  };
@@ -4647,6 +4650,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
4647
4650
  onScroll?: ((...args: any[]) => any) | undefined;
4648
4651
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
4649
4652
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
4653
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
4650
4654
  }, {
4651
4655
  anchor: boolean;
4652
4656
  maxHeight: string | number;
@@ -2637,7 +2637,7 @@ declare const _default: import("vue").DefineComponent<{
2637
2637
  formRenderRef: import("vue").Ref<FormRenderExpose | undefined>;
2638
2638
  key: import("vue").Ref<number>;
2639
2639
  reload: () => Promise<void>;
2640
- formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting"];
2640
+ formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting", "getTextFormValues"];
2641
2641
  exposed: Partial<FormRenderExpose>;
2642
2642
  FormRender: import("vue").DefineComponent<{
2643
2643
  fieldList: {
@@ -3025,8 +3025,9 @@ declare const _default: import("vue").DefineComponent<{
3025
3025
  onScroll?: ((...args: any[]) => any) | undefined;
3026
3026
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
3027
3027
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
3028
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
3028
3029
  }>>;
3029
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
3030
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
3030
3031
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
3031
3032
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
3032
3033
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -3372,7 +3373,7 @@ declare const _default: import("vue").DefineComponent<{
3372
3373
  readonly displayDirective: "if" | "show" | "show:lazy";
3373
3374
  }>;
3374
3375
  NTabs: any;
3375
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
3376
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
3376
3377
  fieldList: {
3377
3378
  type: PropType<import("../../../components/form-render").FieldItem[]>;
3378
3379
  };
@@ -3567,6 +3568,7 @@ declare const _default: import("vue").DefineComponent<{
3567
3568
  onScroll?: ((...args: any[]) => any) | undefined;
3568
3569
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
3569
3570
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
3571
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
3570
3572
  }, {
3571
3573
  anchor: boolean;
3572
3574
  maxHeight: string | number;
@@ -3712,7 +3714,7 @@ declare const _default: import("vue").DefineComponent<{
3712
3714
  formRenderRef: import("vue").Ref<FormRenderExpose | undefined>;
3713
3715
  key: import("vue").Ref<number>;
3714
3716
  reload: () => Promise<void>;
3715
- formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting"];
3717
+ formRenderExposeKeyList: readonly ["validate", "getFormValues", "setFormValues", "setFieldState", "resetFields", "queryWidget", "getFieldList", "applySelectedSetting", "getTextFormValues"];
3716
3718
  exposed: Partial<FormRenderExpose>;
3717
3719
  FormRender: import("vue").DefineComponent<{
3718
3720
  fieldList: {
@@ -4100,8 +4102,9 @@ declare const _default: import("vue").DefineComponent<{
4100
4102
  onScroll?: ((...args: any[]) => any) | undefined;
4101
4103
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
4102
4104
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
4105
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
4103
4106
  }>>;
4104
- emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields", ...args: any[]) => void;
4107
+ emit: (event: "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", ...args: any[]) => void;
4105
4108
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
4106
4109
  nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
4107
4110
  formRenderRef: import("vue").Ref<HTMLElement | undefined>;
@@ -4447,7 +4450,7 @@ declare const _default: import("vue").DefineComponent<{
4447
4450
  readonly displayDirective: "if" | "show" | "show:lazy";
4448
4451
  }>;
4449
4452
  NTabs: any;
4450
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4453
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange")[], "scroll" | "formChange" | "annotationChange" | "update:selectedFields" | "linebarChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
4451
4454
  fieldList: {
4452
4455
  type: PropType<import("../../../components/form-render").FieldItem[]>;
4453
4456
  };
@@ -4642,6 +4645,7 @@ declare const _default: import("vue").DefineComponent<{
4642
4645
  onScroll?: ((...args: any[]) => any) | undefined;
4643
4646
  onAnnotationChange?: ((...args: any[]) => any) | undefined;
4644
4647
  "onUpdate:selectedFields"?: ((...args: any[]) => any) | undefined;
4648
+ onLinebarChange?: ((...args: any[]) => any) | undefined;
4645
4649
  }, {
4646
4650
  anchor: boolean;
4647
4651
  maxHeight: string | number;