dynamicformdjx 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elementPlus/EleDynamicCascadeInput.d.ts +3 -3
- package/dist/elementPlus/EleDynamicForm.d.ts +1 -1
- package/dist/elementPlus/hooks/renderForm.d.ts +27 -6
- package/dist/elementPlus/index.cjs +1 -1
- package/dist/elementPlus/index.mjs +535 -454
- package/dist/hooks/useDyForm.d.ts +5 -1
- package/dist/{index-MF72-iEr.js → index-B7xg-BCF.js} +24 -16
- package/dist/{index-CA3F2Lxo.cjs → index-DyThWcVg.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +326 -262
- package/dist/naiveUi/NaiDynamicCascadeInput.d.ts +3 -3
- package/dist/naiveUi/NaiDynamicForm.d.ts +1 -1
- package/dist/naiveUi/hooks/renderForm.d.ts +19 -4
- package/dist/naiveUi/index.cjs +1 -1
- package/dist/naiveUi/index.mjs +463 -380
- package/dist/origin/DynamicCascadeInput.d.ts +3 -3
- package/dist/types/index.d.ts +14 -3
- package/dist/utils/tools.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PropType } from 'vue';
|
|
2
|
-
import { ValueType, DyRandomFun, DyBtnConfig, DyListConfig, DyCasConfig, DyCasFormItem } from '../types';
|
|
1
|
+
import { PropType, SlotsType } from 'vue';
|
|
2
|
+
import { ValueType, DyRandomFun, DyBtnConfig, DyListConfig, DyCasConfig, DyCasFormItem, DynamicCasInputSlots } from '../types';
|
|
3
3
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
4
|
modelValue: {
|
|
5
5
|
type: PropType<ValueType>;
|
|
@@ -77,5 +77,5 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
77
77
|
randomFun: DyRandomFun;
|
|
78
78
|
depth: number;
|
|
79
79
|
newChildTxt: (it: DyCasFormItem) => string;
|
|
80
|
-
},
|
|
80
|
+
}, SlotsType<DynamicCasInputSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
81
81
|
export default _default;
|
|
@@ -60,7 +60,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
60
60
|
};
|
|
61
61
|
}>> & Readonly<{}>, {
|
|
62
62
|
formConfig: FormProps;
|
|
63
|
-
preset: PresetType;
|
|
64
63
|
rowConfig: RowProps;
|
|
64
|
+
preset: PresetType;
|
|
65
65
|
}, SlotsType<DynamicFormSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
66
66
|
export default _default;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import { ElDropdown, ElPopover, InputProps, SelectProps } from 'element-plus';
|
|
1
2
|
import { Ref, VNode, AllowedComponentProps } from 'vue';
|
|
2
|
-
import { InputProps, SelectProps } from 'element-plus';
|
|
3
3
|
import { DyFormItem, SelectOptionItem } from '../../types/form';
|
|
4
4
|
import { RadioGroupProps } from 'element-plus/es/components/radio/src/radio-group';
|
|
5
5
|
import { CheckboxGroupProps } from 'element-plus/es/components/checkbox/src/checkbox-group';
|
|
6
|
+
import { SwitchProps } from 'element-plus/es/components/switch/src/switch';
|
|
6
7
|
import { DatePickerProps } from 'element-plus/es/components/date-picker/src/props';
|
|
7
8
|
import { TimePickerDefaultProps } from 'element-plus/es/components/time-picker/src/common/props';
|
|
8
9
|
import { TreeComponentProps } from 'element-plus/es/components/tree/src/tree.type';
|
|
9
|
-
|
|
10
|
+
import { CheckboxProps } from 'element-plus/es/components/checkbox/src/checkbox';
|
|
11
|
+
import { SliderProps } from 'element-plus/es/components/slider/src/slider';
|
|
12
|
+
import { InputNumberProps } from 'element-plus/es/components/input-number/src/input-number';
|
|
13
|
+
import { InputTagProps } from 'element-plus/es/components/input-tag/src/input-tag';
|
|
10
14
|
export type SelectOption = Omit<SelectOptionItem, 'class' | 'style'> | Record<string, any>;
|
|
11
15
|
export type TreeSelectOption = {
|
|
12
16
|
label?: string;
|
|
@@ -26,9 +30,14 @@ export declare function renderSelect(model: Ref<any>, options: SelectOption[], o
|
|
|
26
30
|
* - 单选:ElDropdown(点击项立即选中)
|
|
27
31
|
* - 多选(model 是数组):ElPopover + ElCheckboxGroup
|
|
28
32
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
33
|
+
type PropsOf<C> = C extends new (...args: any) => {
|
|
34
|
+
$props: infer P;
|
|
35
|
+
} ? P : never;
|
|
36
|
+
type PopSelectSingleProps = OptionsType<PropsOf<typeof ElDropdown>>;
|
|
37
|
+
type PopSelectMultipleProps = OptionsType<PropsOf<typeof ElPopover>>;
|
|
38
|
+
export type PopSelectOptionProps = PopSelectSingleProps | PopSelectMultipleProps;
|
|
39
|
+
export declare function renderPopSelect(model: Ref<Array<string | number>>, options: Array<SelectOption>, optionProps?: PopSelectMultipleProps, rf?: DyFormItem, defaultRender?: VNode): VNode;
|
|
40
|
+
export declare function renderPopSelect(model: Ref<string | number | null>, options: Array<SelectOption>, optionProps?: PopSelectSingleProps, rf?: DyFormItem, defaultRender?: VNode): VNode;
|
|
32
41
|
export declare function renderTreeSelect(model: Ref<any>, options: TreeSelectOption[], optionProps?: OptionsType<TreeComponentProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
33
42
|
[key: string]: any;
|
|
34
43
|
}>;
|
|
@@ -41,7 +50,7 @@ export declare function renderRadioButtonGroup(value: Ref<string | number | null
|
|
|
41
50
|
export declare function renderCheckboxGroup(model: Ref<(string | number)[]>, options: SelectOption[], optionProps?: OptionsType<CheckboxGroupProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
42
51
|
[key: string]: any;
|
|
43
52
|
}>;
|
|
44
|
-
export declare function renderSwitch(value: Ref<boolean>, optionProps?: OptionsType<
|
|
53
|
+
export declare function renderSwitch(value: Ref<boolean>, optionProps?: OptionsType<SwitchProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
45
54
|
[key: string]: any;
|
|
46
55
|
}>;
|
|
47
56
|
export declare function renderDatePicker(value: Ref<any>, optionProps?: OptionsType<DatePickerProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
@@ -50,4 +59,16 @@ export declare function renderDatePicker(value: Ref<any>, optionProps?: OptionsT
|
|
|
50
59
|
export declare function renderTimePicker(value: Ref<any>, optionProps?: OptionsType<TimePickerDefaultProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
51
60
|
[key: string]: any;
|
|
52
61
|
}>;
|
|
62
|
+
export declare function renderCheckbox(model: Ref<boolean | number | string>, optionProps?: OptionsType<CheckboxProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
63
|
+
[key: string]: any;
|
|
64
|
+
}>;
|
|
65
|
+
export declare function renderDynamicTags(model: Ref<any[]>, optionProps?: OptionsType<InputTagProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
66
|
+
[key: string]: any;
|
|
67
|
+
}>;
|
|
68
|
+
export declare function renderSlider(model: Ref<number | number[]>, optionProps?: OptionsType<SliderProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
69
|
+
[key: string]: any;
|
|
70
|
+
}>;
|
|
71
|
+
export declare function renderInputNumber(model: Ref<number | null>, optionProps?: OptionsType<InputNumberProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
72
|
+
[key: string]: any;
|
|
73
|
+
}>;
|
|
53
74
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),N=require("../index-CA3F2Lxo.cjs"),d=require("element-plus"),D=t.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,i)=>!0},slots:Object,setup(e,{emit:i,expose:m,slots:u}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},c={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},v={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,y=t.ref(N.tranArr(e.modelValue,e.randomFun,v.arraySplitSymbol)),f=t.ref(null);t.watch(y,a=>{if(!e.isController)return;const o=N.resetObj(a,v.arraySplitSymbol);i("update:modelValue",o),i("onMerge",o,t.toRaw(y.value))},{deep:!0}),m({onSet:a=>{y.value=N.tranArr(a??e.modelValue,e.randomFun,v.arraySplitSymbol)},getResult:(a="res")=>a==="ori"?t.toRaw(y.value):N.resetObj(y.value,v.arraySplitSymbol)});const p=()=>y.value.push({rId:e.randomFun(),key:"",value:""}),n=()=>{y.value=N.tranArr(e.modelValue,e.randomFun,v.arraySplitSymbol),i("onReset")},r=()=>{y.value.sort((o,b)=>+o.rId-+b.rId);const a=N.resetObj(y.value,v.arraySplitSymbol);i("update:modelValue",a),i("onMerge",a,t.toRaw(y.value)),y.value=N.tranArr(a,e.randomFun,v.arraySplitSymbol)};return()=>t.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:c.maxHeight}},[t.createVNode("div",{class:`dyFormList ${y.value.length?"":"noList"}`,ref:f},[y.value.map((a,o,b)=>{const h={row:a,index:o,isLast:o===b.length-1,addItem:()=>{y.value.push({rId:e.randomFun(),key:"",value:""}),c.autoScroll&&t.nextTick(()=>{const g=f.value;g?.scrollTo({top:g.scrollHeight,behavior:"smooth"})})},removeItem:()=>{y.value=y.value.filter(g=>g.rId!==a.rId)},toggleArray:()=>a.isArray=!a.isArray,toggleNumber:()=>a.isNumber=!a.isNumber};return t.createVNode("div",{class:"dItem",key:a.rId},[t.createVNode("div",{class:"input"},[t.createVNode(d.ElInput,{size:l,modelValue:a.key,class:"key",onInput:g=>{a.key=g}},null),t.createTextVNode(":"),t.createVNode(d.ElInput,{size:l,modelValue:a.value,class:"value",onInput:g=>{c.allowFilter&&a.isNumber?a.value=N.formatNumberInput(g,a.isArray,v.arraySplitSymbol):a.value=g}},{prefix:()=>u.typeTools?u.typeTools(h):t.createVNode(t.Fragment,null,[!c.hideArrayBtn&&t.createVNode(d.ElButton,{class:"typeBtn",type:a.isArray?"success":"default",size:"small",onClick:h.toggleArray},{default:()=>[t.createTextVNode("Array")]}),!c.hideNumberBtn&&t.createVNode(d.ElButton,{class:"typeBtn",type:a.isNumber?"success":"default",size:"small",onClick:h.toggleNumber},{default:()=>[t.createTextVNode("Number")]})])})]),t.createVNode("div",{class:"btn"},[u.rowActions?u.rowActions(h):t.createVNode(t.Fragment,null,[t.createVNode(d.ElButton,{type:"success",size:l,disabled:!h.isLast,onClick:h.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(d.ElButton,{size:l,type:"danger",onClick:h.removeItem},{default:()=>[t.createTextVNode("-")]})])])])})]),t.createVNode("div",{class:`control ${y.value.length?"":"noList"}`},[!y.value.length&&(u.newBtn?u.newBtn({newItem:p}):t.createVNode(d.ElButton,{size:l,type:"success",onClick:p},{default:()=>[s.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!c.hideReset&&(u.resetBtn?u.resetBtn({reset:n}):t.createVNode(d.ElButton,{size:l,type:"default",onClick:n},{default:()=>[s.resetTxt]})),u.mergeBtn?u.mergeBtn({merge:r}):t.createVNode(d.ElButton,{size:l,type:"info",onClick:r},{default:()=>[s.mergeTxt]})])])])}});function G(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const $=t.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,i)=>!0},setup(e,{emit:i,expose:m}){const u={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},s={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,showPad:!0,retractLen:0,borderColors:[],...e.configs},c={arraySplitSymbol:",",...e.dyListConfigs},v=n=>["string","number"].includes(n),l=n=>Object.keys(n).map((r,a)=>{let o=n[r];const b=Array.isArray(o),h=b?o.every(V=>typeof V=="number"):typeof o=="number",g=o===null;return v(typeof o)&&(o=n[r]),g&&(o=""),{rId:e.randomFun(a),key:r,value:Object.prototype.toString.call(o)==="[object Object]"?l(n[r]):b?o.join(c.arraySplitSymbol):o,isArray:b||void 0,isNumber:h||void 0}}),y=n=>n.reduce((r,a)=>{const o=a.value;return a.key.trim().length&&(r[a.key]=Array.isArray(o)?y(o):N.parseValue(a.value,a.isArray,a.isNumber,c.arraySplitSymbol)),r},{}),f=t.ref(l(e.modelValue)),p=(n,r=1,a)=>t.createVNode("div",{class:[`depth-${r}`,s.showBorder?"":"no-border",s.showPad?"":"no-pad"],style:{"--depth":r,["--c"+[r]]:N.saferRepairColor(s.borderColors,r)}},[n.map((o,b,h)=>{const g=Array.isArray(o.value),V=v(typeof o.value);return t.createVNode("div",{class:"dItem",key:o.rId,style:{marginLeft:r>1?`${r*s.retractLen}px`:"0"}},[t.createVNode("div",{class:"input"},[!g&&t.createVNode(t.Fragment,null,[t.createVNode(d.ElInput,{modelValue:o.key,class:"key",onInput:k=>o.key=k},null),t.createTextVNode(":")]),t.createVNode(d.ElInput,{class:`value ${g?"isKey":""}`,modelValue:V?o.value:o.key,onInput:k=>{if(g){o.key=k;return}s.allowFilter&&o.isNumber?o.value=N.formatNumberInput(k,o.isArray,c.arraySplitSymbol):o.value=k}},{prefix:Array.isArray(o.value)?void 0:()=>t.createVNode(t.Fragment,null,[t.createVNode(d.ElButton,{type:o.isArray?"success":"default",size:"small",onClick:()=>{o.isArray=!o.isArray}},{default:()=>[t.createTextVNode("Array")]}),t.createTextVNode(" "),t.createVNode(d.ElButton,{type:o.isNumber?"success":"default",size:"small",onClick:()=>{o.isNumber=!o.isNumber}},{default:()=>[t.createTextVNode("Number")]})]),suffix:()=>{let k;return r<e.depth?!g&&t.createVNode(d.ElButton,{type:"success",size:"small",onClick:()=>{V&&(o.value=[],o.isArray=void 0),o.value.push({rId:e.randomFun(),key:"",value:""})}},G(k=e.newChildTxt(o))?k:{default:()=>[k]}):null}})]),t.createVNode("div",{class:"btn"},[t.createVNode(d.ElButton,{type:"success",disabled:b!==h.length-1,onClick:()=>{n.push({rId:e.randomFun(),key:"",value:""})}},{default:()=>[t.createTextVNode("+")]}),t.createVNode(d.ElButton,{type:"danger",onClick:()=>{if(n.splice(b,1),n.length<1){if(a===void 0)return y([]);const k=f.value.findIndex(F=>F.rId===a?.rId);r<1?f.value.splice(k,1,{...a,value:""}):a.value=""}}},{default:()=>[t.createTextVNode("-")]})]),Array.isArray(o.value)&&p(o.value,r+1,o)])})]);return t.watch(f,n=>{if(!e.isController)return;const r=y(n);i("update:modelValue",r),i("onMerge",r,t.toRaw(f.value))},{deep:!0}),m({onSet:n=>{f.value=l(n??e.modelValue)},getResult:(n="res")=>n==="ori"?t.toRaw(f.value):y(f.value)}),()=>t.createVNode("div",{class:e.dyCls??"dynamicCascadeForm"},[t.createVNode("div",{class:"dyFormList",style:{maxHeight:s.maxHeight}},[p(f.value)]),t.createVNode("div",{class:"control"},[!f.value.length&&t.createVNode(d.ElButton,{type:"success",onClick:()=>{f.value.push({rId:e.randomFun(),key:"",value:""})}},{default:()=>[u.newTxt]}),!e.isController&&t.createVNode(t.Fragment,null,[!s.hideReset&&t.createVNode(d.ElButton,{type:"default",onClick:()=>{f.value=l(e.modelValue),i("onReset")}},{default:()=>[u.resetTxt]}),t.createVNode(d.ElButton,{type:"info",onClick:()=>{const n=y(f.value);i("update:modelValue",n),i("onMerge",n,t.toRaw(f.value)),f.value=l(n)}},{default:()=>[u.mergeTxt]})])])])}}),z=t.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:i,slots:m}){const u=t.ref(null),s=t.computed(()=>(e.items??[]).filter(p=>!p.hidden)),c=t.computed(()=>s.value?s.value.reduce((p,n)=>(p[n.key]=n.value.value,p),{}):{}),v=t.computed(()=>({...s.value?.reduce((n,r)=>{let a=r.rule;return r.required&&!r.rule&&(a={required:!0,message:r.requiredHint?.(r.label??"")??`${r.label}不能为空`,trigger:"blur"}),n[r.key]=a,n},{}),...e.rules})),l=t.computed(()=>[...s.value].sort((n,r)=>{const a=n.sort??1/0,o=r.sort??1/0;return Number(a)-Number(o)}));function y(p=null){s.value&&s.value.forEach(n=>{n.value.value=p})}function f(){return new Promise((p,n)=>{u.value?.validate((r,a)=>{r?p(c.value):n(a)})})}if(i({reset:y,validator:f,getResult:(p="res")=>p==="ori"?s.value:c.value}),!e.items)throw new Error("prop items must be not null");return()=>t.createVNode("div",{class:"naiDynamicForm"},[m.header&&t.createVNode("div",{class:"header"},[m.header?.()]),t.createVNode(d.ElForm,t.mergeProps({ref:u},e.formConfig,{model:c.value,rules:v.value}),{default(){const p=l.value;return e.preset==="grid"?t.h(d.ElRow,{...e.rowConfig},{default:()=>p?.map(n=>t.h(d.ElCol,{span:n.span??24,offset:n.offset??0},{default:()=>t.h(d.ElFormItem,{label:n.label,prop:n.path||n.key},{default:I(n)})}))}):p?.map(n=>t.h(d.ElFormItem,{label:n.label,prop:n.path||n.key},{default:I(n)}))}}),m.footer&&t.h("div",{class:"footer"},m.footer?.())])}});function I(e){return function(){return e.render2?e.render2(e):null}}function C(e,i,m){return e?.[i]??m}function M(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function E(e){return(e??[]).map(i=>{if(M(i)){const m=i.children??i.options??[];return{...i,__isGroup:!0,__children:m}}return{...i,__isGroup:!1}})}function L(e,i,m="label",u="value"){const s=E(i);for(const c of s)if(c.__isGroup){for(const v of c.__children)if(C(v,u,v.value)===e)return C(v,m,v.label)}else if(C(c,u,c.value)===e)return C(c,m,c.label);return""}function R(e,i={},m){const{onChange:u,value:s,...c}=m;return t.h(d.ElInput,{...c,modelValue:e.value,"onUpdate:modelValue":v=>{e.value=v,m?.onChange?.(v,m)},...i})}function T(e,i,m={},u){const{onChange:s,labelField:c,valueField:v,options:l,...y}=u??{},f=c??"label",p=v??"value",n=E(l??i);return t.h(d.ElSelect,{...y,modelValue:e.value,"onUpdate:modelValue":r=>{e.value=r,u?.onChange?.(r,u,n)},...m},{default:()=>n.map((r,a)=>{if(r.__isGroup)return t.h(d.ElOptionGroup,{key:r.key??`g-${a}`,label:C(r,f,r.label)},{default:()=>(r.__children??[]).map((h,g)=>{const V=C(h,f,h.label),k=C(h,p,h.value);return t.h(d.ElOption,{key:h.key??`${a}-${g}`,label:V,value:k,disabled:h.disabled})})});const o=C(r,f,r.label),b=C(r,p,r.value);return t.h(d.ElOption,{key:r.key??`${a}`,label:o,value:b,disabled:r.disabled})})})}function A(e,i,m={},u,s){const{labelField:c,valueField:v,options:l,onChange:y,...f}=u??{},p=c??"label",n=v??"value",r=l??i,a=E(r),o=()=>{if(s)return s;const b=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?L(e.value,r,p,n)||String(e.value):"请选择";return t.h(d.ElButton,null,{default:()=>b})};return Array.isArray(e.value)?t.createVNode(d.ElPopover,{trigger:"click",...f,...m},{reference:()=>o(),default:()=>t.h(d.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":b=>{e.value=b,u?.onChange?.(b,u,a)}},{default:()=>t.h(d.ElSpace,{wrap:!0},{default:()=>a.flatMap((b,h)=>(b.__isGroup?b.__children??[]:[b]).map((V,k)=>{const F=C(V,p,V.label),S=C(V,n,V.value);return t.h(d.ElCheckbox,{key:V.key??`${h}-${k}`,label:S,disabled:V.disabled},{default:()=>F})}))})})}):t.createVNode(d.ElDropdown,{trigger:"click",...f,onCommand:b=>{e.value=b,u?.onChange?.(b,u,a)},...m},{default:()=>o(),dropdown:()=>t.h(d.ElDropdownMenu,null,{default:()=>a.flatMap((b,h)=>(b.__isGroup?b.__children??[]:[b]).map((V,k)=>{const F=C(V,p,V.label),S=C(V,n,V.value);return t.h(d.ElDropdownItem,{key:V.key??`${h}-${k}`,command:S,disabled:V.disabled},{default:()=>F})}))})})}function w(e,i,m={},u){const{valueField:s="value",labelField:c="label",childrenField:v="children",onChange:l,options:y,...f}=u??{},p=y??i;return t.h(d.ElTreeSelect,{...f,data:p,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,u?.onChange?.(n,u,p)},props:{value:s,label:c,children:v,disabled:"disabled"},...m})}function x(e,i,m={},u){const{onChange:s,labelField:c,valueField:v,options:l,...y}=u??{},f=c??"label",p=v??"value",n=l??i;return t.h(d.ElRadioGroup,{...y,modelValue:e.value,"onUpdate:modelValue":r=>{e.value=r,u?.onChange?.(r,u,n)},...m},{default:()=>(n??[]).map((r,a)=>{const o=C(r,f,r.label),b=C(r,p,r.value);return t.h(d.ElRadio,{key:r.key??a,label:b,disabled:r.disabled},()=>o)})})}function B(e,i,m={},u){const{onChange:s,labelField:c,valueField:v,options:l,...y}=u??{},f=c??"label",p=v??"value",n=l??i;return t.h(d.ElRadioGroup,{...y,modelValue:e.value,"onUpdate:modelValue":r=>{e.value=r,u?.onChange?.(r,u,n)},...m},{default:()=>(n??[]).map((r,a)=>{const o=C(r,f,r.label),b=C(r,p,r.value);return t.h(d.ElRadioButton,{key:r.key??a,label:b,disabled:r.disabled},()=>o)})})}function O(e,i,m={},u){const{onChange:s,labelField:c,valueField:v,options:l,...y}=u??{},f=c??"label",p=v??"value",n=l??i;return t.h(d.ElCheckboxGroup,{...y,modelValue:e.value,"onUpdate:modelValue":r=>{e.value=r,u?.onChange?.(r,u,n)},...m},{default:()=>t.h(d.ElSpace,{wrap:!0},{default:()=>(n??[]).map((r,a)=>{const o=C(r,f,r.label),b=C(r,p,r.value);return t.h(d.ElCheckbox,{key:r.key??a,label:b,disabled:r.disabled},()=>o)})})})}function P(e,i={},m){const{onChange:u,...s}=m??{};return t.h(d.ElSwitch,{...s,modelValue:e.value,"onUpdate:modelValue":c=>{e.value=c,m?.onChange?.(c,m)},...i})}function _(e,i={},m){const{onChange:u,...s}=m??{};return t.h(d.ElDatePicker,{...s,modelValue:e.value,"onUpdate:modelValue":c=>{e.value=c,m?.onChange?.(c,m)},...i})}function j(e,i={},m){const{onChange:u,...s}=m??{};return t.h(d.ElTimePicker,{...s,modelValue:e.value,"onUpdate:modelValue":c=>{e.value=c,m?.onChange?.(c,m)},...i})}const U=Object.freeze(Object.defineProperty({__proto__:null,renderCheckboxGroup:O,renderDatePicker:_,renderInput:R,renderPopSelect:A,renderRadioButtonGroup:B,renderRadioGroup:x,renderSelect:T,renderSwitch:P,renderTimePicker:j,renderTreeSelect:w},Symbol.toStringTag,{value:"Module"}));function q(e){return function(m,u=!0){const s=e,c={renderInput:l=>s.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>s.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>s.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>s.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>s.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>s.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>s.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>s.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>s.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>s.renderTimePicker(l.value,l.renderProps??{},l)};return m.map(l=>{const y=l;if(y.value=N.ensureRef(l.value),typeof l.render2=="function")y.render2=l.render2;else{const f=l.renderType??"renderInput",p=c[f];p?y.render2=()=>p(y):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),y.render2=()=>c.renderInput(y))}return u?t.shallowReactive(y):y})}}const H=q(U);exports.EleDynamicCascadeInput=$;exports.EleDynamicForm=z;exports.EleDynamicInput=D;exports.renderCheckboxGroup=O;exports.renderDatePicker=_;exports.renderInput=R;exports.renderPopSelect=A;exports.renderRadioButtonGroup=B;exports.renderRadioGroup=x;exports.renderSelect=T;exports.renderSwitch=P;exports.renderTimePicker=j;exports.renderTreeSelect=w;exports.useDecorateForm=H;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),F=require("../index-DyThWcVg.cjs"),y=require("element-plus"),H=r.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,d)=>!0},slots:Object,setup(e,{emit:d,expose:a,slots:t}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},o={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},f={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,i=r.ref(F.tranArr(e.modelValue,e.randomFun,f.arraySplitSymbol)),h=r.ref(null);r.watch(i,m=>{if(!e.isController)return;const C=F.resetObj(m,f.arraySplitSymbol);d("update:modelValue",C),d("onMerge",C,r.toRaw(i.value))},{deep:!0}),a({onSet:m=>{i.value=F.tranArr(m??e.modelValue,e.randomFun,f.arraySplitSymbol)},getResult:(m="res")=>m==="ori"?r.toRaw(i.value):F.resetObj(i.value,f.arraySplitSymbol)});const c=()=>i.value.push({rId:e.randomFun(),key:"",value:""}),v=()=>{i.value=F.tranArr(e.modelValue,e.randomFun,f.arraySplitSymbol),d("onReset")},n=()=>{i.value.sort((C,p)=>+C.rId-+p.rId);const m=F.resetObj(i.value,f.arraySplitSymbol);d("update:modelValue",m),d("onMerge",m,r.toRaw(i.value)),i.value=F.tranArr(m,e.randomFun,f.arraySplitSymbol)};return()=>r.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:o.maxHeight}},[r.createVNode("div",{class:`dyFormList ${i.value.length?"":"noList"}`,ref:h},[i.value.map((m,C,p)=>{const b={row:m,index:C,isLast:C===p.length-1,addItem:()=>{i.value.push({rId:e.randomFun(),key:"",value:""}),o.autoScroll&&r.nextTick(()=>{const g=h.value;g?.scrollTo({top:g.scrollHeight,behavior:"smooth"})})},removeItem:()=>{i.value=i.value.filter(g=>g.rId!==m.rId)},toggleArray:()=>m.isArray=!m.isArray,toggleNumber:()=>m.isNumber=!m.isNumber};return r.createVNode("div",{class:"dItem",key:m.rId},[r.createVNode("div",{class:"input"},[r.createVNode(y.ElInput,{size:l,modelValue:m.key,class:"key",onInput:g=>{m.key=g}},null),r.createTextVNode(":"),r.createVNode(y.ElInput,{size:l,modelValue:m.value,class:"value",onInput:g=>{o.allowFilter&&m.isNumber?m.value=F.formatNumberInput(g,m.isArray,f.arraySplitSymbol):m.value=g}},{prefix:()=>t.typeTools?t.typeTools(b):r.createVNode(r.Fragment,null,[!o.hideArrayBtn&&r.createVNode(y.ElButton,{class:"typeBtn",type:m.isArray?"success":"default",size:"small",onClick:b.toggleArray},{default:()=>[r.createTextVNode("Array")]}),!o.hideNumberBtn&&r.createVNode(y.ElButton,{class:"typeBtn",type:m.isNumber?"success":"default",size:"small",onClick:b.toggleNumber},{default:()=>[r.createTextVNode("Number")]})])})]),r.createVNode("div",{class:"btn"},[t.rowActions?t.rowActions(b):r.createVNode(r.Fragment,null,[r.createVNode(y.ElButton,{type:"success",size:l,disabled:!b.isLast,onClick:b.addItem},{default:()=>[r.createTextVNode("+")]}),r.createVNode(y.ElButton,{size:l,type:"danger",onClick:b.removeItem},{default:()=>[r.createTextVNode("-")]})])])])})]),r.createVNode("div",{class:`control ${i.value.length?"":"noList"}`},[!i.value.length&&(t.newBtn?t.newBtn({newItem:c}):r.createVNode(y.ElButton,{size:l,type:"success",onClick:c},{default:()=>[s.newTxt]})),!e.isController&&r.createVNode(r.Fragment,null,[!o.hideReset&&(t.resetBtn?t.resetBtn({reset:v}):r.createVNode(y.ElButton,{size:l,type:"default",onClick:v},{default:()=>[s.resetTxt]})),t.mergeBtn?t.mergeBtn({merge:n}):r.createVNode(y.ElButton,{size:l,type:"info",onClick:n},{default:()=>[s.mergeTxt]})])])])}});function K(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const J=r.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,d)=>!0},slots:Object,setup(e,{emit:d,expose:a,slots:t}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},o={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},f={arraySplitSymbol:",",...e.dyListConfigs},l=p=>["string","number"].includes(p),i=p=>Object.keys(p).map((b,g)=>{let u=p[b];const N=Array.isArray(u),E=N?u.every(R=>typeof R=="number"):typeof u=="number",S=u===null;return l(typeof u)&&(u=p[b]),S&&(u=""),{rId:e.randomFun(g),key:b,value:Object.prototype.toString.call(u)==="[object Object]"?i(p[b]):N?u.join(f.arraySplitSymbol):u,isArray:N||void 0,isNumber:E||void 0}}),h=p=>p.reduce((b,g)=>{const u=g.value;return g.key.trim().length&&(b[g.key]=Array.isArray(u)?h(u):F.parseValue(g.value,g.isArray,g.isNumber,f.arraySplitSymbol)),b},{}),c=r.ref(i(e.modelValue)),v=(p,b=1,g)=>r.createVNode("div",{class:[`depth-${b}`,o.showBorder?"":"no-border",o.showPad?"":"no-pad"],style:{"--depth":b,["--c"+[b]]:F.saferRepairColor(o.borderColors,b)}},[p.map((u,N,E)=>{const S=Array.isArray(u.value),R=l(typeof u.value),I={row:u,index:N,isLast:N===E.length-1,addItem:()=>{p.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{R&&(u.value=[],u.isArray=void 0),u.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(p.splice(N,1),p.length<1){if(g===void 0)return h([]);const k=c.value.findIndex(q=>q.rId===g?.rId);b<1?c.value.splice(k,1,{...g,value:""}):g.value=""}},toggleArray:()=>u.isArray=!u.isArray,toggleNumber:()=>u.isNumber=!u.isNumber};return r.createVNode("div",{class:"dItem",key:u.rId,style:{marginLeft:b>1?`${b*o.retractLen}px`:"0"}},[r.createVNode("div",{class:"input"},[!S&&r.createVNode(r.Fragment,null,[r.createVNode(y.ElInput,{modelValue:u.key,class:"key",onInput:k=>u.key=k},null),r.createTextVNode(":")]),r.createVNode(y.ElInput,{class:`value ${S?"isKey":""}`,modelValue:R?u.value:u.key,onInput:k=>{if(S){u.key=k;return}o.allowFilter&&u.isNumber?u.value=F.formatNumberInput(k,u.isArray,f.arraySplitSymbol):u.value=k}},{prefix:Array.isArray(u.value)?void 0:()=>t.typeTools?t.typeTools(I):r.createVNode(r.Fragment,null,[!o.hideArrayBtn&&r.createVNode(y.ElButton,{type:u.isArray?"success":"default",size:"small",onClick:I.toggleArray},{default:()=>[r.createTextVNode("Array")]}),r.createTextVNode(" "),!o.hideNumberBtn&&r.createVNode(y.ElButton,{type:u.isNumber?"success":"default",size:"small",onClick:I.toggleNumber},{default:()=>[r.createTextVNode("Number")]})]),suffix:()=>{let k;return b<e.depth?!S&&(t.newChild?t.newChild(I):r.createVNode(y.ElButton,{type:"success",size:"small",onClick:()=>{R&&(u.value=[],u.isArray=void 0),u.value.push({rId:e.randomFun(),key:"",value:""})}},K(k=e.newChildTxt(u))?k:{default:()=>[k]})):null}})]),r.createVNode("div",{class:"btn"},[t.rowActions?t.rowActions(I):r.createVNode(r.Fragment,null,[r.createVNode(y.ElButton,{type:"success",disabled:!I.isLast,onClick:I.addItem},{default:()=>[r.createTextVNode("+")]}),r.createVNode(y.ElButton,{type:"danger",onClick:I.removeItem},{default:()=>[r.createTextVNode("-")]})])]),Array.isArray(u.value)&&v(u.value,b+1,u)])})]);r.watch(c,p=>{if(!e.isController)return;const b=h(p);d("update:modelValue",b),d("onMerge",b,r.toRaw(c.value))},{deep:!0}),a({onSet:p=>{c.value=i(p??e.modelValue)},getResult:(p="res")=>p==="ori"?r.toRaw(c.value):h(c.value)});const n=()=>c.value.push({rId:e.randomFun(),key:"",value:""}),m=()=>{c.value=i(e.modelValue),d("onReset")},C=()=>{const p=h(c.value);d("update:modelValue",p),d("onMerge",p,r.toRaw(c.value)),c.value=i(p)};return()=>r.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[r.createVNode("div",{class:`dyFormList ${c.value.length?"":"noObj"}`,style:{maxHeight:o.maxHeight}},[v(c.value)]),r.createVNode("div",{class:`control ${c.value.length?"":"noObj"}`},[!c.value.length&&(t.newBtn?t.newBtn({newItem:n}):r.createVNode(y.ElButton,{type:"success",onClick:n},{default:()=>[s.newTxt]})),!e.isController&&r.createVNode(r.Fragment,null,[!o.hideReset&&(t.resetBtn?t.resetBtn({reset:m}):r.createVNode(y.ElButton,{type:"default",onClick:m},{default:()=>[s.resetTxt]})),t.mergeBtn?t.mergeBtn({merge:C}):r.createVNode(y.ElButton,{type:"info",onClick:C},{default:()=>[s.mergeTxt]})])])])}}),Q=r.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:d,slots:a}){const t=r.ref(null),s=r.computed(()=>(e.items??[]).filter(c=>!c.hidden)),o=r.computed(()=>s.value?s.value.reduce((c,v)=>(c[v.key]=v.value.value,c),{}):{}),f=r.computed(()=>({...s.value?.reduce((v,n)=>{let m=n.rule;return n.required&&!n.rule&&(m={required:!0,message:n.requiredHint?.(n.label??"")??`${n.label}不能为空`,trigger:"blur"}),v[n.key]=m,v},{}),...e.rules})),l=r.computed(()=>[...s.value].sort((v,n)=>{const m=v.sort??1/0,C=n.sort??1/0;return Number(m)-Number(C)}));function i(c=null){s.value&&s.value.forEach(v=>{v.value.value=c})}function h(){return new Promise((c,v)=>{t.value?.validate((n,m)=>{n?c(o.value):v(m)})})}if(d({reset:i,validator:h,getResult:(c="res")=>c==="ori"?s.value:o.value}),!e.items)throw new Error("prop items must be not null");return()=>r.createVNode("div",{class:"naiDynamicForm"},[a.header&&r.createVNode("div",{class:"header"},[a.header?.()]),r.createVNode(y.ElForm,r.mergeProps({ref:t},e.formConfig,{model:o.value,rules:f.value}),{default(){const c=l.value;return e.preset==="grid"?r.h(y.ElRow,{...e.rowConfig},{default:()=>c?.map(v=>r.h(y.ElCol,{span:v.span??24,offset:v.offset??0},{default:()=>r.h(y.ElFormItem,{label:v.label,prop:v.path||v.key},{default:A(v)})}))}):c?.map(v=>r.h(y.ElFormItem,{label:v.label,prop:v.path||v.key},{default:A(v)}))}}),a.footer&&r.h("div",{class:"footer"},a.footer?.())])}});function A(e){return function(){return e.render2?e.render2(e):null}}function V(e,d,a){return e?.[d]??a}function W(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function T(e){return(e??[]).map(d=>{if(W(d)){const a=d.children??d.options??[];return{...d,__isGroup:!0,__children:a}}return{...d,__isGroup:!1}})}function X(e,d,a="label",t="value"){const s=T(d);for(const o of s)if(o.__isGroup){for(const f of o.__children)if(V(f,t,f.value)===e)return V(f,a,f.label)}else if(V(o,t,o.value)===e)return V(o,a,o.label);return""}function B(e,d={},a){const{onChange:t,value:s,...o}=a;return r.h(y.ElInput,{...o,modelValue:e.value,"onUpdate:modelValue":f=>{e.value=f,a?.onChange?.(f,a)},...d})}function w(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=T(l??d);return r.h(y.ElSelect,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>v.map((n,m)=>{if(n.__isGroup)return r.h(y.ElOptionGroup,{key:n.key??`g-${m}`,label:V(n,h,n.label)},{default:()=>(n.__children??[]).map((b,g)=>{const u=V(b,h,b.label),N=V(b,c,b.value);return r.h(y.ElOption,{key:b.key??`${m}-${g}`,label:u,value:N,disabled:b.disabled})})});const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElOption,{key:n.key??`${m}`,label:C,value:p,disabled:n.disabled})})})}function x(e,d,a={},t,s){const{labelField:o,valueField:f,options:l,onChange:i,...h}=t??{},c=o??"label",v=f??"value",n=l??d,m=T(n),C=()=>{if(s)return s;const p=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?X(e.value,n,c,v)||String(e.value):"请选择";return r.h(y.ElButton,null,{default:()=>p})};return Array.isArray(e.value)?r.createVNode(y.ElPopover,{trigger:"click",...h,...a},{reference:()=>C(),default:()=>r.h(y.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":p=>{e.value=p,t?.onChange?.(p,t,m)}},{default:()=>r.h(y.ElSpace,{wrap:!0},{default:()=>m.flatMap((p,b)=>(p.__isGroup?p.__children??[]:[p]).map((u,N)=>{const E=V(u,c,u.label),S=V(u,v,u.value);return r.h(y.ElCheckbox,{key:u.key??`${b}-${N}`,label:S,disabled:u.disabled},{default:()=>E})}))})})}):r.createVNode(y.ElDropdown,{trigger:"click",...h,onCommand:p=>{e.value=p,t?.onChange?.(p,t,m)},...a},{default:()=>C(),dropdown:()=>r.h(y.ElDropdownMenu,null,{default:()=>m.flatMap((p,b)=>(p.__isGroup?p.__children??[]:[p]).map((u,N)=>{const E=V(u,c,u.label),S=V(u,v,u.value);return r.h(y.ElDropdownItem,{key:u.key??`${b}-${N}`,command:S,disabled:u.disabled},{default:()=>E})}))})})}function O(e,d,a={},t){const{valueField:s="value",labelField:o="label",childrenField:f="children",onChange:l,options:i,...h}=t??{},c=i??d;return r.h(y.ElTreeSelect,{...h,data:c,modelValue:e.value,"onUpdate:modelValue":v=>{e.value=v,t?.onChange?.(v,t,c)},props:{value:s,label:o,children:f,disabled:"disabled"},...a})}function P(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElRadio,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})}function j(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElRadioButton,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})}function _(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElCheckboxGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>r.h(y.ElSpace,{wrap:!0},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElCheckbox,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})})}function D(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElSwitch,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function $(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElDatePicker,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function G(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElTimePicker,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function z(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElCheckbox,{...s,label:d?.label??a?.label,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(e.value,a)},...d})}function L(e,d={},a){const{onChange:t,value:s,labelField:o="label",valueField:f,...l}=a??{};return r.h(y.ElInputTag,{...l,modelValue:f?e.value.map(i=>i[f]):e.value,"onUpdate:modelValue":i=>{e.value=f?i.map(h=>({[o]:h,[f]:h})):i,a?.onChange?.(i,a)},...d})}function M(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElSlider,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function U(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElInputNumber,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o??null,a?.onChange?.(e.value,a)},...d})}const Y=Object.freeze(Object.defineProperty({__proto__:null,renderCheckbox:z,renderCheckboxGroup:_,renderDatePicker:$,renderDynamicTags:L,renderInput:B,renderInputNumber:U,renderPopSelect:x,renderRadioButtonGroup:j,renderRadioGroup:P,renderSelect:w,renderSlider:M,renderSwitch:D,renderTimePicker:G,renderTreeSelect:O},Symbol.toStringTag,{value:"Module"}));function Z(e){return function(a,t=!0){const s=e,o={renderInput:l=>s.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>s.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>s.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>s.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>s.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>s.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>s.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>s.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>s.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>s.renderTimePicker(l.value,l.renderProps??{},l),renderCheckbox:l=>s.renderCheckbox(l.value,l.renderProps??{},l),renderDynamicTags:l=>s.renderDynamicTags(l.value,l.renderProps??{},l),renderSlider:l=>s.renderSlider(l.value,l.renderProps??{},l),renderInputNumber:l=>s.renderInputNumber(l.value,l.renderProps??{},l)};return a.map(l=>{const i=l;if(i.value=F.ensureRef(l.value),typeof l.render2=="function")i.render2=l.render2;else{const h=l.renderType??"renderInput",c=o[h];c?i.render2=()=>c(i):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),i.render2=()=>o.renderInput(i))}return t?r.shallowReactive(i):i})}}const ee=Z(Y);exports.EleDynamicCascadeInput=J;exports.EleDynamicForm=Q;exports.EleDynamicInput=H;exports.renderCheckbox=z;exports.renderCheckboxGroup=_;exports.renderDatePicker=$;exports.renderDynamicTags=L;exports.renderInput=B;exports.renderInputNumber=U;exports.renderPopSelect=x;exports.renderRadioButtonGroup=j;exports.renderRadioGroup=P;exports.renderSelect=w;exports.renderSlider=M;exports.renderSwitch=D;exports.renderTimePicker=G;exports.renderTreeSelect=O;exports.useDecorateForm=ee;
|