dynamicformdjx 0.4.1 → 0.4.3
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/README.md +1 -6
- package/dist/elementPlus/EleDynamicCascadeInput.d.ts +3 -3
- package/dist/elementPlus/EleDynamicInput.d.ts +3 -3
- package/dist/elementPlus/hooks/renderForm.d.ts +42 -13
- package/dist/elementPlus/index.cjs +1 -1
- package/dist/elementPlus/index.mjs +563 -469
- package/dist/hooks/useDyForm.d.ts +3 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.mjs +306 -252
- package/dist/naiveUi/NaiDynamicCascadeInput.d.ts +3 -3
- package/dist/naiveUi/NaiDynamicInput.d.ts +3 -3
- package/dist/naiveUi/hooks/renderForm.d.ts +19 -4
- package/dist/naiveUi/index.cjs +1 -1
- package/dist/naiveUi/index.mjs +542 -446
- package/dist/origin/DynamicCascadeInput.d.ts +3 -3
- package/dist/origin/DynamicInput.d.ts +3 -3
- package/dist/types/form.d.ts +2 -2
- package/dist/types/index.d.ts +38 -0
- package/dist/utils/tools.d.ts +3 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,12 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
基于 **Vue 3** 的动态表单及录入。
|
|
4
4
|
|
|
5
|
-
[
|
|
6
|
-
> 1.当前为0.41版本,已完成所有配合element plus 或naive ui表单的适配
|
|
7
|
-
|
|
8
|
-
> 2.其中简单表单,自定义表单,装饰表单均可使用
|
|
9
|
-
|
|
10
|
-
> 3.文档还在完善中,可参考源码中的components组件查看具体使用
|
|
5
|
+
[Document](https://xczcdjx.github.io/dynamicFormDoc/v3/install.html)
|
|
11
6
|
|
|
12
7
|
[Vue2 版本](https://www.npmjs.com/package/dynamicformdjx-vue2)
|
|
13
8
|
|
|
@@ -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;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PropType } from 'vue';
|
|
2
|
-
import { FSize, ValueType, DyRandomFun, DyBtnConfig, DyListConfig, DyConfig, DyCFormItem } from '../types';
|
|
1
|
+
import { SlotsType, PropType } from 'vue';
|
|
2
|
+
import { FSize, ValueType, DyRandomFun, DyBtnConfig, DyListConfig, DyConfig, DyCFormItem, DynamicInputSlots } from '../types';
|
|
3
3
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
4
|
size: {
|
|
5
5
|
type: PropType<FSize>;
|
|
@@ -65,5 +65,5 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
65
65
|
}>, {
|
|
66
66
|
isController: boolean;
|
|
67
67
|
randomFun: DyRandomFun;
|
|
68
|
-
},
|
|
68
|
+
}, SlotsType<DynamicInputSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
69
69
|
export default _default;
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
import { InputProps } from 'element-plus';
|
|
2
1
|
import { Ref, VNode, AllowedComponentProps } from 'vue';
|
|
3
|
-
import {
|
|
2
|
+
import { InputProps, SelectProps } from 'element-plus';
|
|
3
|
+
import { DyFormItem, SelectOptionItem } from '../../types/form';
|
|
4
|
+
import { RadioGroupProps } from 'element-plus/es/components/radio/src/radio-group';
|
|
5
|
+
import { CheckboxGroupProps } from 'element-plus/es/components/checkbox/src/checkbox-group';
|
|
6
|
+
import { SwitchProps } from 'element-plus/es/components/switch/src/switch';
|
|
7
|
+
import { DatePickerProps } from 'element-plus/es/components/date-picker/src/props';
|
|
8
|
+
import { TimePickerDefaultProps } from 'element-plus/es/components/time-picker/src/common/props';
|
|
9
|
+
import { TreeComponentProps } from 'element-plus/es/components/tree/src/tree.type';
|
|
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';
|
|
4
14
|
type AnyProps = Record<string, any> & AllowedComponentProps;
|
|
5
|
-
type
|
|
6
|
-
export
|
|
15
|
+
export type SelectOption = Omit<SelectOptionItem, 'class' | 'style'> | Record<string, any>;
|
|
16
|
+
export type TreeSelectOption = {
|
|
17
|
+
label?: string;
|
|
18
|
+
value: any;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
children?: TreeSelectOption[];
|
|
21
|
+
} | Record<string, any>;
|
|
22
|
+
type OptionsType<T> = Partial<T> & AllowedComponentProps;
|
|
23
|
+
export declare function renderInput(model: Ref<string>, optionProps?: OptionsType<InputProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
7
24
|
[key: string]: any;
|
|
8
25
|
}>;
|
|
9
|
-
export declare function renderSelect(model: Ref<any>, options:
|
|
26
|
+
export declare function renderSelect(model: Ref<any>, options: SelectOption[], optionProps?: OptionsType<SelectProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
10
27
|
[key: string]: any;
|
|
11
28
|
}>;
|
|
12
29
|
/**
|
|
@@ -14,28 +31,40 @@ export declare function renderSelect(model: Ref<any>, options: any[], optionProp
|
|
|
14
31
|
* - 单选:ElDropdown(点击项立即选中)
|
|
15
32
|
* - 多选(model 是数组):ElPopover + ElCheckboxGroup
|
|
16
33
|
*/
|
|
17
|
-
export declare function renderPopSelect(model: Ref<string | number | Array<string | number> | null>, options: Array<
|
|
34
|
+
export declare function renderPopSelect(model: Ref<string | number | Array<string | number> | null>, options: Array<SelectOption>, optionProps?: AnyProps, rf?: DyFormItem, defaultRender?: VNode): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
18
35
|
[key: string]: any;
|
|
19
36
|
}>;
|
|
20
|
-
export declare function renderTreeSelect(model: Ref<any>, options:
|
|
37
|
+
export declare function renderTreeSelect(model: Ref<any>, options: TreeSelectOption[], optionProps?: OptionsType<TreeComponentProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
21
38
|
[key: string]: any;
|
|
22
39
|
}>;
|
|
23
|
-
export declare function renderRadioGroup(value: Ref<string | number | null | undefined>, options:
|
|
40
|
+
export declare function renderRadioGroup(value: Ref<string | number | null | undefined>, options: SelectOption[], optionProps?: OptionsType<RadioGroupProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
24
41
|
[key: string]: any;
|
|
25
42
|
}>;
|
|
26
|
-
export declare function renderRadioButtonGroup(value: Ref<string | number | null | undefined>, options:
|
|
43
|
+
export declare function renderRadioButtonGroup(value: Ref<string | number | null | undefined>, options: SelectOption[], optionProps?: OptionsType<RadioGroupProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
27
44
|
[key: string]: any;
|
|
28
45
|
}>;
|
|
29
|
-
export declare function renderCheckboxGroup(model: Ref<(string | number)[]>, options:
|
|
46
|
+
export declare function renderCheckboxGroup(model: Ref<(string | number)[]>, options: SelectOption[], optionProps?: OptionsType<CheckboxGroupProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
30
47
|
[key: string]: any;
|
|
31
48
|
}>;
|
|
32
|
-
export declare function renderSwitch(value: Ref<boolean>, optionProps?:
|
|
49
|
+
export declare function renderSwitch(value: Ref<boolean>, optionProps?: OptionsType<SwitchProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
33
50
|
[key: string]: any;
|
|
34
51
|
}>;
|
|
35
|
-
export declare function renderDatePicker(value: Ref<any>, optionProps?:
|
|
52
|
+
export declare function renderDatePicker(value: Ref<any>, optionProps?: OptionsType<DatePickerProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
36
53
|
[key: string]: any;
|
|
37
54
|
}>;
|
|
38
|
-
export declare function renderTimePicker(value: Ref<any>, optionProps?:
|
|
55
|
+
export declare function renderTimePicker(value: Ref<any>, optionProps?: OptionsType<TimePickerDefaultProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
56
|
+
[key: string]: any;
|
|
57
|
+
}>;
|
|
58
|
+
export declare function renderCheckbox(model: Ref<boolean | number | string>, optionProps?: OptionsType<CheckboxProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
}>;
|
|
61
|
+
export declare function renderDynamicTags(model: Ref<any[]>, optionProps?: OptionsType<InputTagProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
62
|
+
[key: string]: any;
|
|
63
|
+
}>;
|
|
64
|
+
export declare function renderSlider(model: Ref<number | number[]>, optionProps?: OptionsType<SliderProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
65
|
+
[key: string]: any;
|
|
66
|
+
}>;
|
|
67
|
+
export declare function renderInputNumber(model: Ref<number | null>, optionProps?: OptionsType<InputNumberProps>, rf?: DyFormItem): VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
39
68
|
[key: string]: any;
|
|
40
69
|
}>;
|
|
41
70
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),k=require("../index-CA3F2Lxo.cjs"),d=require("element-plus"),D=l.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,c)=>!0},setup(e,{emit:c,expose:i}){const y={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,...e.configs},s={arraySplitSymbol:",",...e.dyListConfigs},p=e.size,r=l.ref(k.tranArr(e.modelValue,e.randomFun,s.arraySplitSymbol)),v=l.ref(null);return l.watch(r,a=>{if(!e.isController)return;const m=k.resetObj(a,s.arraySplitSymbol);c("update:modelValue",m),c("onMerge",m,l.toRaw(r.value))},{deep:!0}),i({onSet:a=>{r.value=k.tranArr(a??e.modelValue,e.randomFun,s.arraySplitSymbol)},getResult:(a="res")=>a==="ori"?l.toRaw(r.value):k.resetObj(r.value,s.arraySplitSymbol)}),()=>l.createVNode("div",{class:e.dyCls??`dynamicForm ${p}`,style:{maxHeight:u.maxHeight}},[l.createVNode("div",{class:`dyFormList ${r.value.length?"":"noList"}`,ref:v},[r.value.map((a,m,n)=>l.createVNode("div",{class:"dItem",key:a.rId},[l.createVNode("div",{class:"input"},[l.createVNode(d.ElInput,{size:p,modelValue:a.key,class:"key",onInput:t=>{a.key=t}},null),l.createTextVNode(":"),l.createVNode(d.ElInput,{size:p,modelValue:a.value,class:"value",onInput:t=>{u.allowFilter&&a.isNumber?a.value=k.formatNumberInput(t,a.isArray,s.arraySplitSymbol):a.value=t}},{prefix:()=>l.createVNode(l.Fragment,null,[l.createVNode(d.ElButton,{class:"typeBtn",type:a.isArray?"success":"default",size:"small",onClick:()=>{a.isArray=!a.isArray}},{default:()=>[l.createTextVNode("Array")]}),l.createTextVNode(" "),l.createVNode(d.ElButton,{class:"typeBtn",type:a.isNumber?"success":"default",size:"small",onClick:()=>{a.isNumber=!a.isNumber}},{default:()=>[l.createTextVNode("Number")]})])})]),l.createVNode("div",{class:"btn"},[l.createVNode(d.ElButton,{type:"success",size:p,disabled:m!==n.length-1,onClick:()=>{r.value.push({rId:e.randomFun(),key:"",value:""}),u.autoScroll&&l.nextTick(()=>{const t=v.value;t?.scrollTo({top:t.scrollHeight,behavior:"smooth"})})}},{default:()=>[l.createTextVNode("+")]}),l.createVNode(d.ElButton,{size:p,type:"danger",onClick:()=>{r.value=r.value.filter(t=>t.rId!==a.rId)}},{default:()=>[l.createTextVNode("-")]})])]))]),l.createVNode("div",{class:`control ${r.value.length?"":"noList"}`},[!r.value.length&&l.createVNode(d.ElButton,{size:p,type:"success",onClick:()=>{r.value.push({rId:e.randomFun(),key:"",value:""})}},{default:()=>[y.newTxt]}),!e.isController&&l.createVNode(l.Fragment,null,[!u.hideReset&&l.createVNode(d.ElButton,{size:p,type:"default",onClick:()=>{r.value=k.tranArr(e.modelValue,e.randomFun,s.arraySplitSymbol),c("onReset")}},{default:()=>[y.resetTxt]}),l.createVNode(d.ElButton,{size:p,type:"info",onClick:()=>{r.value.sort((m,n)=>+m.rId-+n.rId);const a=k.resetObj(r.value,s.arraySplitSymbol);c("update:modelValue",a),c("onMerge",a,l.toRaw(r.value)),r.value=k.tranArr(a,e.randomFun,s.arraySplitSymbol)}},{default:()=>[y.mergeTxt]})])])])}});function G(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!l.isVNode(e)}const $=l.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,c)=>!0},setup(e,{emit:c,expose:i}){const y={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,showPad:!0,retractLen:0,borderColors:[],...e.configs},s={arraySplitSymbol:",",...e.dyListConfigs},p=n=>["string","number"].includes(n),r=n=>Object.keys(n).map((t,f)=>{let o=n[t];const b=Array.isArray(o),C=b?o.every(h=>typeof h=="number"):typeof o=="number",N=o===null;return p(typeof o)&&(o=n[t]),N&&(o=""),{rId:e.randomFun(f),key:t,value:Object.prototype.toString.call(o)==="[object Object]"?r(n[t]):b?o.join(s.arraySplitSymbol):o,isArray:b||void 0,isNumber:C||void 0}}),v=n=>n.reduce((t,f)=>{const o=f.value;return f.key.trim().length&&(t[f.key]=Array.isArray(o)?v(o):k.parseValue(f.value,f.isArray,f.isNumber,s.arraySplitSymbol)),t},{}),a=l.ref(r(e.modelValue)),m=(n,t=1,f)=>l.createVNode("div",{class:[`depth-${t}`,u.showBorder?"":"no-border",u.showPad?"":"no-pad"],style:{"--depth":t,["--c"+[t]]:k.saferRepairColor(u.borderColors,t)}},[n.map((o,b,C)=>{const N=Array.isArray(o.value),h=p(typeof o.value);return l.createVNode("div",{class:"dItem",key:o.rId,style:{marginLeft:t>1?`${t*u.retractLen}px`:"0"}},[l.createVNode("div",{class:"input"},[!N&&l.createVNode(l.Fragment,null,[l.createVNode(d.ElInput,{modelValue:o.key,class:"key",onInput:V=>o.key=V},null),l.createTextVNode(":")]),l.createVNode(d.ElInput,{class:`value ${N?"isKey":""}`,modelValue:h?o.value:o.key,onInput:V=>{if(N){o.key=V;return}u.allowFilter&&o.isNumber?o.value=k.formatNumberInput(V,o.isArray,s.arraySplitSymbol):o.value=V}},{prefix:Array.isArray(o.value)?void 0:()=>l.createVNode(l.Fragment,null,[l.createVNode(d.ElButton,{type:o.isArray?"success":"default",size:"small",onClick:()=>{o.isArray=!o.isArray}},{default:()=>[l.createTextVNode("Array")]}),l.createTextVNode(" "),l.createVNode(d.ElButton,{type:o.isNumber?"success":"default",size:"small",onClick:()=>{o.isNumber=!o.isNumber}},{default:()=>[l.createTextVNode("Number")]})]),suffix:()=>{let V;return t<e.depth?!N&&l.createVNode(d.ElButton,{type:"success",size:"small",onClick:()=>{h&&(o.value=[],o.isArray=void 0),o.value.push({rId:e.randomFun(),key:"",value:""})}},G(V=e.newChildTxt(o))?V:{default:()=>[V]}):null}})]),l.createVNode("div",{class:"btn"},[l.createVNode(d.ElButton,{type:"success",disabled:b!==C.length-1,onClick:()=>{n.push({rId:e.randomFun(),key:"",value:""})}},{default:()=>[l.createTextVNode("+")]}),l.createVNode(d.ElButton,{type:"danger",onClick:()=>{if(n.splice(b,1),n.length<1){if(f===void 0)return v([]);const V=a.value.findIndex(F=>F.rId===f?.rId);t<1?a.value.splice(V,1,{...f,value:""}):f.value=""}}},{default:()=>[l.createTextVNode("-")]})]),Array.isArray(o.value)&&m(o.value,t+1,o)])})]);return l.watch(a,n=>{if(!e.isController)return;const t=v(n);c("update:modelValue",t),c("onMerge",t,l.toRaw(a.value))},{deep:!0}),i({onSet:n=>{a.value=r(n??e.modelValue)},getResult:(n="res")=>n==="ori"?l.toRaw(a.value):v(a.value)}),()=>l.createVNode("div",{class:e.dyCls??"dynamicCascadeForm"},[l.createVNode("div",{class:"dyFormList",style:{maxHeight:u.maxHeight}},[m(a.value)]),l.createVNode("div",{class:"control"},[!a.value.length&&l.createVNode(d.ElButton,{type:"success",onClick:()=>{a.value.push({rId:e.randomFun(),key:"",value:""})}},{default:()=>[y.newTxt]}),!e.isController&&l.createVNode(l.Fragment,null,[!u.hideReset&&l.createVNode(d.ElButton,{type:"default",onClick:()=>{a.value=r(e.modelValue),c("onReset")}},{default:()=>[y.resetTxt]}),l.createVNode(d.ElButton,{type:"info",onClick:()=>{const n=v(a.value);c("update:modelValue",n),c("onMerge",n,l.toRaw(a.value)),a.value=r(n)}},{default:()=>[y.mergeTxt]})])])])}}),z=l.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:c,slots:i}){const y=l.ref(null),u=l.computed(()=>(e.items??[]).filter(m=>!m.hidden)),s=l.computed(()=>u.value?u.value.reduce((m,n)=>(m[n.key]=n.value.value,m),{}):{}),p=l.computed(()=>({...u.value?.reduce((n,t)=>{let f=t.rule;return t.required&&!t.rule&&(f={required:!0,message:t.requiredHint?.(t.label)??`${t.label}不能为空`,trigger:"blur"}),n[t.key]=f,n},{}),...e.rules})),r=l.computed(()=>[...u.value].sort((n,t)=>{const f=n.sort??1/0,o=t.sort??1/0;return Number(f)-Number(o)}));function v(m=null){u.value&&u.value.forEach(n=>{n.value.value=m})}function a(){return new Promise((m,n)=>{y.value?.validate((t,f)=>{t?m(s.value):n(f)})})}if(c({reset:v,validator:a,getResult:(m="res")=>m==="ori"?u.value:s.value}),!e.items)throw new Error("prop items must be not null");return()=>l.createVNode("div",{class:"naiDynamicForm"},[i.header&&l.createVNode("div",{class:"header"},[i.header?.()]),l.createVNode(d.ElForm,l.mergeProps({ref:y},e.formConfig,{model:s.value,rules:p.value}),{default(){const m=r.value;return e.preset==="grid"?l.h(d.ElRow,{...e.rowConfig},{default:()=>m?.map(n=>l.h(d.ElCol,{span:n.span??24,offset:n.offset??0},{default:()=>l.h(d.ElFormItem,{label:n.label,prop:n.path||n.key},{default:R(n)})}))}):m?.map(n=>l.h(d.ElFormItem,{label:n.label,prop:n.path||n.key},{default:R(n)}))}}),i.footer&&l.h("div",{class:"footer"},i.footer?.())])}});function R(e){return function(){return e.render2?e.render2(e):null}}function g(e,c,i){return e?.[c]??i}function M(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function E(e){return(e??[]).map(c=>{if(M(c)){const i=c.children??c.options??[];return{...c,__isGroup:!0,__children:i}}return{...c,__isGroup:!1}})}function L(e,c,i="label",y="value"){const u=E(c);for(const s of u)if(s.__isGroup){for(const p of s.__children)if(g(p,y,p.value)===e)return g(p,i,p.label)}else if(g(s,y,s.value)===e)return g(s,i,s.label);return""}function I(e,c={},i){const{onChange:y,value:u,...s}=i;return l.h(d.ElInput,{...s,modelValue:e.value,"onUpdate:modelValue":p=>{e.value=p,i?.onChange?.(p,i)},...c})}function T(e,c,i={},y){const{onChange:u,labelField:s,valueField:p,options:r,...v}=y??{},a=s??"label",m=p??"value",n=E(r??c);return l.h(d.ElSelect,{...v,modelValue:e.value,"onUpdate:modelValue":t=>{e.value=t,y?.onChange?.(t,y,n)},...i},{default:()=>n.map((t,f)=>{if(t.__isGroup)return l.h(d.ElOptionGroup,{key:t.key??`g-${f}`,label:g(t,a,t.label)},{default:()=>(t.__children??[]).map((C,N)=>{const h=g(C,a,C.label),V=g(C,m,C.value);return l.h(d.ElOption,{key:C.key??`${f}-${N}`,label:h,value:V,disabled:C.disabled})})});const o=g(t,a,t.label),b=g(t,m,t.value);return l.h(d.ElOption,{key:t.key??`${f}`,label:o,value:b,disabled:t.disabled})})})}function x(e,c,i={},y,u){const{labelField:s,valueField:p,options:r,onChange:v,...a}=y??{},m=s??"label",n=p??"value",t=r??c,f=E(t),o=()=>{if(u)return u;const b=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?L(e.value,t,m,n)||String(e.value):"请选择";return l.h(d.ElButton,null,{default:()=>b})};return Array.isArray(e.value)?l.createVNode(d.ElPopover,{trigger:"click",...a,...i},{reference:()=>o(),default:()=>l.h(d.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":b=>{e.value=b,y?.onChange?.(b,y,f)}},{default:()=>l.h(d.ElSpace,{wrap:!0},{default:()=>f.flatMap((b,C)=>(b.__isGroup?b.__children??[]:[b]).map((h,V)=>{const F=g(h,m,h.label),S=g(h,n,h.value);return l.h(d.ElCheckbox,{key:h.key??`${C}-${V}`,label:S,disabled:h.disabled},{default:()=>F})}))})})}):l.createVNode(d.ElDropdown,{trigger:"click",...a,onCommand:b=>{e.value=b,y?.onChange?.(b,y,f)},...i},{default:()=>o(),dropdown:()=>l.h(d.ElDropdownMenu,null,{default:()=>f.flatMap((b,C)=>(b.__isGroup?b.__children??[]:[b]).map((h,V)=>{const F=g(h,m,h.label),S=g(h,n,h.value);return l.h(d.ElDropdownItem,{key:h.key??`${C}-${V}`,command:S,disabled:h.disabled},{default:()=>F})}))})})}function A(e,c,i={},y){const{valueField:u="value",labelField:s="label",childrenField:p="children",onChange:r,options:v,...a}=y??{},m=v??c;return l.h(d.ElTreeSelect,{...a,data:m,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,y?.onChange?.(n,y,m)},props:{value:u,label:s,children:p,disabled:"disabled"},...i})}function w(e,c,i={},y){const{onChange:u,labelField:s,valueField:p,options:r,...v}=y??{},a=s??"label",m=p??"value",n=r??c;return l.h(d.ElRadioGroup,{...v,modelValue:e.value,"onUpdate:modelValue":t=>{e.value=t,y?.onChange?.(t,y,n)},...i},{default:()=>(n??[]).map((t,f)=>{const o=g(t,a,t.label),b=g(t,m,t.value);return l.h(d.ElRadio,{key:t.key??f,label:b,disabled:t.disabled},()=>o)})})}function O(e,c,i={},y){const{onChange:u,labelField:s,valueField:p,options:r,...v}=y??{},a=s??"label",m=p??"value",n=r??c;return l.h(d.ElRadioGroup,{...v,modelValue:e.value,"onUpdate:modelValue":t=>{e.value=t,y?.onChange?.(t,y,n)},...i},{default:()=>(n??[]).map((t,f)=>{const o=g(t,a,t.label),b=g(t,m,t.value);return l.h(d.ElRadioButton,{key:t.key??f,label:b,disabled:t.disabled},()=>o)})})}function P(e,c,i={},y){const{onChange:u,labelField:s,valueField:p,options:r,...v}=y??{},a=s??"label",m=p??"value",n=r??c;return l.h(d.ElCheckboxGroup,{...v,modelValue:e.value,"onUpdate:modelValue":t=>{e.value=t,y?.onChange?.(t,y,n)},...i},{default:()=>l.h(d.ElSpace,{wrap:!0},{default:()=>(n??[]).map((t,f)=>{const o=g(t,a,t.label),b=g(t,m,t.value);return l.h(d.ElCheckbox,{key:t.key??f,label:b,disabled:t.disabled},()=>o)})})})}function _(e,c={},i){const{onChange:y,...u}=i??{};return l.h(d.ElSwitch,{...u,modelValue:e.value,"onUpdate:modelValue":s=>{e.value=s,i?.onChange?.(s,i)},...c})}function B(e,c={},i){const{onChange:y,...u}=i??{};return l.h(d.ElDatePicker,{...u,modelValue:e.value,"onUpdate:modelValue":s=>{e.value=s,i?.onChange?.(s,i)},...c})}function j(e,c={},i){const{onChange:y,...u}=i??{};return l.h(d.ElTimePicker,{...u,modelValue:e.value,"onUpdate:modelValue":s=>{e.value=s,i?.onChange?.(s,i)},...c})}const U=Object.freeze(Object.defineProperty({__proto__:null,renderCheckboxGroup:P,renderDatePicker:B,renderInput:I,renderPopSelect:x,renderRadioButtonGroup:O,renderRadioGroup:w,renderSelect:T,renderSwitch:_,renderTimePicker:j,renderTreeSelect:A},Symbol.toStringTag,{value:"Module"}));function q(e){return function(i,y=!0){const u=e,s={renderInput:r=>u.renderInput(r.value,r.renderProps??{},r),renderSelect:r=>u.renderSelect(r.value,r.options??[],r.renderProps??{},r),renderPopSelect:r=>u.renderPopSelect(r.value,r.options??[],r.renderProps??{},r),renderTreeSelect:r=>u.renderTreeSelect(r.value,r.options??[],r.renderProps??{},r),renderRadioGroup:r=>u.renderRadioGroup(r.value,r.options??[],r.renderProps??{},r),renderRadioButtonGroup:r=>u.renderRadioButtonGroup(r.value,r.options??[],r.renderProps??{},r),renderCheckboxGroup:r=>u.renderCheckboxGroup(r.value,r.options??[],r.renderProps??{},r),renderSwitch:r=>u.renderSwitch(r.value,r.renderProps??{},r),renderDatePicker:r=>u.renderDatePicker(r.value,r.renderProps??{},r),renderTimePicker:r=>u.renderTimePicker(r.value,r.renderProps??{},r)};return i.map(r=>{const v=r;if(v.value=k.ensureRef(r.value),typeof r.render2=="function")v.render2=r.render2;else{const a=r.renderType??"renderInput",m=s[a];m?v.render2=()=>m(v):(console.warn(`[useDecorateForm] unknown renderType: ${r.renderType}`),v.render2=()=>s.renderInput(v))}return y?l.shallowReactive(v):v})}}const H=q(U);exports.EleDynamicCascadeInput=$;exports.EleDynamicForm=z;exports.EleDynamicInput=D;exports.renderCheckboxGroup=P;exports.renderDatePicker=B;exports.renderInput=I;exports.renderPopSelect=x;exports.renderRadioButtonGroup=O;exports.renderRadioGroup=w;exports.renderSelect=T;exports.renderSwitch=_;exports.renderTimePicker=j;exports.renderTreeSelect=A;exports.useDecorateForm=H;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),F=require("../index-CA3F2Lxo.cjs"),m=require("element-plus"),H=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,d)=>!0},slots:Object,setup(e,{emit:d,expose:o,slots:r}){const c={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},n={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},b={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,v=t.ref(F.tranArr(e.modelValue,e.randomFun,b.arraySplitSymbol)),g=t.ref(null);t.watch(v,i=>{if(!e.isController)return;const C=F.resetObj(i,b.arraySplitSymbol);d("update:modelValue",C),d("onMerge",C,t.toRaw(v.value))},{deep:!0}),o({onSet:i=>{v.value=F.tranArr(i??e.modelValue,e.randomFun,b.arraySplitSymbol)},getResult:(i="res")=>i==="ori"?t.toRaw(v.value):F.resetObj(v.value,b.arraySplitSymbol)});const s=()=>v.value.push({rId:e.randomFun(),key:"",value:""}),p=()=>{v.value=F.tranArr(e.modelValue,e.randomFun,b.arraySplitSymbol),d("onReset")},a=()=>{v.value.sort((C,y)=>+C.rId-+y.rId);const i=F.resetObj(v.value,b.arraySplitSymbol);d("update:modelValue",i),d("onMerge",i,t.toRaw(v.value)),v.value=F.tranArr(i,e.randomFun,b.arraySplitSymbol)};return()=>t.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:n.maxHeight}},[t.createVNode("div",{class:`dyFormList ${v.value.length?"":"noList"}`,ref:g},[v.value.map((i,C,y)=>{const f={row:i,index:C,isLast:C===y.length-1,addItem:()=>{v.value.push({rId:e.randomFun(),key:"",value:""}),n.autoScroll&&t.nextTick(()=>{const h=g.value;h?.scrollTo({top:h.scrollHeight,behavior:"smooth"})})},removeItem:()=>{v.value=v.value.filter(h=>h.rId!==i.rId)},toggleArray:()=>i.isArray=!i.isArray,toggleNumber:()=>i.isNumber=!i.isNumber};return t.createVNode("div",{class:"dItem",key:i.rId},[t.createVNode("div",{class:"input"},[t.createVNode(m.ElInput,{size:l,modelValue:i.key,class:"key",onInput:h=>{i.key=h}},null),t.createTextVNode(":"),t.createVNode(m.ElInput,{size:l,modelValue:i.value,class:"value",onInput:h=>{n.allowFilter&&i.isNumber?i.value=F.formatNumberInput(h,i.isArray,b.arraySplitSymbol):i.value=h}},{prefix:()=>r.typeTools?r.typeTools(f):t.createVNode(t.Fragment,null,[!n.hideArrayBtn&&t.createVNode(m.ElButton,{class:"typeBtn",type:i.isArray?"success":"default",size:"small",onClick:f.toggleArray},{default:()=>[t.createTextVNode("Array")]}),!n.hideNumberBtn&&t.createVNode(m.ElButton,{class:"typeBtn",type:i.isNumber?"success":"default",size:"small",onClick:f.toggleNumber},{default:()=>[t.createTextVNode("Number")]})])})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(f):t.createVNode(t.Fragment,null,[t.createVNode(m.ElButton,{type:"success",size:l,disabled:!f.isLast,onClick:f.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(m.ElButton,{size:l,type:"danger",onClick:f.removeItem},{default:()=>[t.createTextVNode("-")]})])])])})]),t.createVNode("div",{class:`control ${v.value.length?"":"noList"}`},[!v.value.length&&(r.newBtn?r.newBtn({newItem:s}):t.createVNode(m.ElButton,{size:l,type:"success",onClick:s},{default:()=>[c.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!n.hideReset&&(r.resetBtn?r.resetBtn({reset:p}):t.createVNode(m.ElButton,{size:l,type:"default",onClick:p},{default:()=>[c.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:a}):t.createVNode(m.ElButton,{size:l,type:"info",onClick:a},{default:()=>[c.mergeTxt]})])])])}});function K(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const J=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,d)=>!0},slots:Object,setup(e,{emit:d,expose:o,slots:r}){const c={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},n={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},b={arraySplitSymbol:",",...e.dyListConfigs},l=y=>["string","number"].includes(y),v=y=>Object.keys(y).map((f,h)=>{let u=y[f];const N=Array.isArray(u),I=N?u.every(R=>typeof R=="number"):typeof u=="number",S=u===null;return l(typeof u)&&(u=y[f]),S&&(u=""),{rId:e.randomFun(h),key:f,value:Object.prototype.toString.call(u)==="[object Object]"?v(y[f]):N?u.join(b.arraySplitSymbol):u,isArray:N||void 0,isNumber:I||void 0}}),g=y=>y.reduce((f,h)=>{const u=h.value;return h.key.trim().length&&(f[h.key]=Array.isArray(u)?g(u):F.parseValue(h.value,h.isArray,h.isNumber,b.arraySplitSymbol)),f},{}),s=t.ref(v(e.modelValue)),p=(y,f=1,h)=>t.createVNode("div",{class:[`depth-${f}`,n.showBorder?"":"no-border",n.showPad?"":"no-pad"],style:{"--depth":f,["--c"+[f]]:F.saferRepairColor(n.borderColors,f)}},[y.map((u,N,I)=>{const S=Array.isArray(u.value),R=l(typeof u.value),E={row:u,index:N,isLast:N===I.length-1,addItem:()=>{y.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{R&&(u.value=[],u.isArray=void 0),u.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(y.splice(N,1),y.length<1){if(h===void 0)return g([]);const k=s.value.findIndex(q=>q.rId===h?.rId);f<1?s.value.splice(k,1,{...h,value:""}):h.value=""}},toggleArray:()=>u.isArray=!u.isArray,toggleNumber:()=>u.isNumber=!u.isNumber};return t.createVNode("div",{class:"dItem",key:u.rId,style:{marginLeft:f>1?`${f*n.retractLen}px`:"0"}},[t.createVNode("div",{class:"input"},[!S&&t.createVNode(t.Fragment,null,[t.createVNode(m.ElInput,{modelValue:u.key,class:"key",onInput:k=>u.key=k},null),t.createTextVNode(":")]),t.createVNode(m.ElInput,{class:`value ${S?"isKey":""}`,modelValue:R?u.value:u.key,onInput:k=>{if(S){u.key=k;return}n.allowFilter&&u.isNumber?u.value=F.formatNumberInput(k,u.isArray,b.arraySplitSymbol):u.value=k}},{prefix:Array.isArray(u.value)?void 0:()=>r.typeTools?r.typeTools(E):t.createVNode(t.Fragment,null,[!n.hideArrayBtn&&t.createVNode(m.ElButton,{type:u.isArray?"success":"default",size:"small",onClick:E.toggleArray},{default:()=>[t.createTextVNode("Array")]}),t.createTextVNode(" "),!n.hideNumberBtn&&t.createVNode(m.ElButton,{type:u.isNumber?"success":"default",size:"small",onClick:E.toggleNumber},{default:()=>[t.createTextVNode("Number")]})]),suffix:()=>{let k;return f<e.depth?!S&&(r.newChild?r.newChild(E):t.createVNode(m.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}})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(E):t.createVNode(t.Fragment,null,[t.createVNode(m.ElButton,{type:"success",disabled:!E.isLast,onClick:E.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(m.ElButton,{type:"danger",onClick:E.removeItem},{default:()=>[t.createTextVNode("-")]})])]),Array.isArray(u.value)&&p(u.value,f+1,u)])})]);t.watch(s,y=>{if(!e.isController)return;const f=g(y);d("update:modelValue",f),d("onMerge",f,t.toRaw(s.value))},{deep:!0}),o({onSet:y=>{s.value=v(y??e.modelValue)},getResult:(y="res")=>y==="ori"?t.toRaw(s.value):g(s.value)});const a=()=>s.value.push({rId:e.randomFun(),key:"",value:""}),i=()=>{s.value=v(e.modelValue),d("onReset")},C=()=>{const y=g(s.value);d("update:modelValue",y),d("onMerge",y,t.toRaw(s.value)),s.value=v(y)};return()=>t.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[t.createVNode("div",{class:`dyFormList ${s.value.length?"":"noObj"}`,style:{maxHeight:n.maxHeight}},[p(s.value)]),t.createVNode("div",{class:`control ${s.value.length?"":"noObj"}`},[!s.value.length&&(r.newBtn?r.newBtn({newItem:a}):t.createVNode(m.ElButton,{type:"success",onClick:a},{default:()=>[c.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!n.hideReset&&(r.resetBtn?r.resetBtn({reset:i}):t.createVNode(m.ElButton,{type:"default",onClick:i},{default:()=>[c.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:C}):t.createVNode(m.ElButton,{type:"info",onClick:C},{default:()=>[c.mergeTxt]})])])])}}),Q=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:d,slots:o}){const r=t.ref(null),c=t.computed(()=>(e.items??[]).filter(s=>!s.hidden)),n=t.computed(()=>c.value?c.value.reduce((s,p)=>(s[p.key]=p.value.value,s),{}):{}),b=t.computed(()=>({...c.value?.reduce((p,a)=>{let i=a.rule;return a.required&&!a.rule&&(i={required:!0,message:a.requiredHint?.(a.label??"")??`${a.label}不能为空`,trigger:"blur"}),p[a.key]=i,p},{}),...e.rules})),l=t.computed(()=>[...c.value].sort((p,a)=>{const i=p.sort??1/0,C=a.sort??1/0;return Number(i)-Number(C)}));function v(s=null){c.value&&c.value.forEach(p=>{p.value.value=s})}function g(){return new Promise((s,p)=>{r.value?.validate((a,i)=>{a?s(n.value):p(i)})})}if(d({reset:v,validator:g,getResult:(s="res")=>s==="ori"?c.value:n.value}),!e.items)throw new Error("prop items must be not null");return()=>t.createVNode("div",{class:"naiDynamicForm"},[o.header&&t.createVNode("div",{class:"header"},[o.header?.()]),t.createVNode(m.ElForm,t.mergeProps({ref:r},e.formConfig,{model:n.value,rules:b.value}),{default(){const s=l.value;return e.preset==="grid"?t.h(m.ElRow,{...e.rowConfig},{default:()=>s?.map(p=>t.h(m.ElCol,{span:p.span??24,offset:p.offset??0},{default:()=>t.h(m.ElFormItem,{label:p.label,prop:p.path||p.key},{default:T(p)})}))}):s?.map(p=>t.h(m.ElFormItem,{label:p.label,prop:p.path||p.key},{default:T(p)}))}}),o.footer&&t.h("div",{class:"footer"},o.footer?.())])}});function T(e){return function(){return e.render2?e.render2(e):null}}function V(e,d,o){return e?.[d]??o}function W(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function A(e){return(e??[]).map(d=>{if(W(d)){const o=d.children??d.options??[];return{...d,__isGroup:!0,__children:o}}return{...d,__isGroup:!1}})}function X(e,d,o="label",r="value"){const c=A(d);for(const n of c)if(n.__isGroup){for(const b of n.__children)if(V(b,r,b.value)===e)return V(b,o,b.label)}else if(V(n,r,n.value)===e)return V(n,o,n.label);return""}function B(e,d={},o){const{onChange:r,value:c,...n}=o;return t.h(m.ElInput,{...n,modelValue:e.value,"onUpdate:modelValue":b=>{e.value=b,o?.onChange?.(b,o)},...d})}function w(e,d,o={},r){const{onChange:c,labelField:n,valueField:b,options:l,...v}=r??{},g=n??"label",s=b??"value",p=A(l??d);return t.h(m.ElSelect,{...v,modelValue:e.value,"onUpdate:modelValue":a=>{e.value=a,r?.onChange?.(a,r,p)},...o},{default:()=>p.map((a,i)=>{if(a.__isGroup)return t.h(m.ElOptionGroup,{key:a.key??`g-${i}`,label:V(a,g,a.label)},{default:()=>(a.__children??[]).map((f,h)=>{const u=V(f,g,f.label),N=V(f,s,f.value);return t.h(m.ElOption,{key:f.key??`${i}-${h}`,label:u,value:N,disabled:f.disabled})})});const C=V(a,g,a.label),y=V(a,s,a.value);return t.h(m.ElOption,{key:a.key??`${i}`,label:C,value:y,disabled:a.disabled})})})}function x(e,d,o={},r,c){const{labelField:n,valueField:b,options:l,onChange:v,...g}=r??{},s=n??"label",p=b??"value",a=l??d,i=A(a),C=()=>{if(c)return c;const y=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?X(e.value,a,s,p)||String(e.value):"请选择";return t.h(m.ElButton,null,{default:()=>y})};return Array.isArray(e.value)?t.createVNode(m.ElPopover,{trigger:"click",...g,...o},{reference:()=>C(),default:()=>t.h(m.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":y=>{e.value=y,r?.onChange?.(y,r,i)}},{default:()=>t.h(m.ElSpace,{wrap:!0},{default:()=>i.flatMap((y,f)=>(y.__isGroup?y.__children??[]:[y]).map((u,N)=>{const I=V(u,s,u.label),S=V(u,p,u.value);return t.h(m.ElCheckbox,{key:u.key??`${f}-${N}`,label:S,disabled:u.disabled},{default:()=>I})}))})})}):t.createVNode(m.ElDropdown,{trigger:"click",...g,onCommand:y=>{e.value=y,r?.onChange?.(y,r,i)},...o},{default:()=>C(),dropdown:()=>t.h(m.ElDropdownMenu,null,{default:()=>i.flatMap((y,f)=>(y.__isGroup?y.__children??[]:[y]).map((u,N)=>{const I=V(u,s,u.label),S=V(u,p,u.value);return t.h(m.ElDropdownItem,{key:u.key??`${f}-${N}`,command:S,disabled:u.disabled},{default:()=>I})}))})})}function O(e,d,o={},r){const{valueField:c="value",labelField:n="label",childrenField:b="children",onChange:l,options:v,...g}=r??{},s=v??d;return t.h(m.ElTreeSelect,{...g,data:s,modelValue:e.value,"onUpdate:modelValue":p=>{e.value=p,r?.onChange?.(p,r,s)},props:{value:c,label:n,children:b,disabled:"disabled"},...o})}function P(e,d,o={},r){const{onChange:c,labelField:n,valueField:b,options:l,...v}=r??{},g=n??"label",s=b??"value",p=l??d;return t.h(m.ElRadioGroup,{...v,modelValue:e.value,"onUpdate:modelValue":a=>{e.value=a,r?.onChange?.(a,r,p)},...o},{default:()=>(p??[]).map((a,i)=>{const C=V(a,g,a.label),y=V(a,s,a.value);return t.h(m.ElRadio,{key:a.key??i,label:y,disabled:a.disabled},()=>C)})})}function j(e,d,o={},r){const{onChange:c,labelField:n,valueField:b,options:l,...v}=r??{},g=n??"label",s=b??"value",p=l??d;return t.h(m.ElRadioGroup,{...v,modelValue:e.value,"onUpdate:modelValue":a=>{e.value=a,r?.onChange?.(a,r,p)},...o},{default:()=>(p??[]).map((a,i)=>{const C=V(a,g,a.label),y=V(a,s,a.value);return t.h(m.ElRadioButton,{key:a.key??i,label:y,disabled:a.disabled},()=>C)})})}function _(e,d,o={},r){const{onChange:c,labelField:n,valueField:b,options:l,...v}=r??{},g=n??"label",s=b??"value",p=l??d;return t.h(m.ElCheckboxGroup,{...v,modelValue:e.value,"onUpdate:modelValue":a=>{e.value=a,r?.onChange?.(a,r,p)},...o},{default:()=>t.h(m.ElSpace,{wrap:!0},{default:()=>(p??[]).map((a,i)=>{const C=V(a,g,a.label),y=V(a,s,a.value);return t.h(m.ElCheckbox,{key:a.key??i,label:y,disabled:a.disabled},()=>C)})})})}function D(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElSwitch,{...c,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,o?.onChange?.(n,o)},...d})}function $(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElDatePicker,{...c,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,o?.onChange?.(n,o)},...d})}function G(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElTimePicker,{...c,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,o?.onChange?.(n,o)},...d})}function z(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElCheckbox,{...c,label:d?.label??o?.label,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,o?.onChange?.(e.value,o)},...d})}function L(e,d={},o){const{onChange:r,labelField:c="label",valueField:n,...b}=o??{};return t.h(m.ElInputTag,{...b,modelValue:n?e.value.map(l=>l[n]):e.value,"onUpdate:modelValue":l=>{e.value=n?l.map(v=>({[c]:v,[n]:v})):l,o?.onChange?.(l,o)},...d})}function M(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElSlider,{...c,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,o?.onChange?.(n,o)},...d})}function U(e,d={},o){const{onChange:r,...c}=o??{};return t.h(m.ElInputNumber,{...c,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n??null,o?.onChange?.(e.value,o)},...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(o,r=!0){const c=e,n={renderInput:l=>c.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>c.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>c.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>c.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>c.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>c.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>c.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>c.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>c.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>c.renderTimePicker(l.value,l.renderProps??{},l)};return o.map(l=>{const v=l;if(v.value=F.ensureRef(l.value),typeof l.render2=="function")v.render2=l.render2;else{const g=l.renderType??"renderInput",s=n[g];s?v.render2=()=>s(v):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),v.render2=()=>n.renderInput(v))}return r?t.shallowReactive(v):v})}}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;
|