@iswangh/element-plus-kit-form 0.2.1 → 0.3.1
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 +10 -7
- package/dist/Form.vue.d.ts +112 -0
- package/dist/Form.vue.d.ts.map +1 -0
- package/dist/FormAction.vue.d.ts.map +1 -1
- package/dist/FormItem.vue.d.ts.map +1 -1
- package/dist/composables/index.d.ts +1 -1
- package/dist/composables/index.d.ts.map +1 -1
- package/dist/composables/useChangeEventState.d.ts +2 -2
- package/dist/composables/useChangeEventState.d.ts.map +1 -1
- package/dist/composables/useLoadOptions.d.ts +57 -0
- package/dist/composables/useLoadOptions.d.ts.map +1 -0
- package/dist/config/comp.d.ts +1 -5
- package/dist/config/comp.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +767 -832
- package/dist/style.css +1 -1
- package/dist/types/comp.d.ts +43 -30
- package/dist/types/el.d.ts +2 -16
- package/dist/types/form-item.d.ts +4 -13
- package/dist/types/index.d.ts +8 -9
- package/dist/types/options.d.ts +3 -62
- package/dist/utils/action.d.ts.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +12 -10
- package/dist/composables/useClearState.d.ts +0 -17
- package/dist/composables/useClearState.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/options.d.ts +0 -21
- package/dist/utils/options.d.ts.map +0 -1
- package/dist/utils/value.d.ts +0 -21
- package/dist/utils/value.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -152,11 +152,12 @@ interface FormItem<C extends FormItemComp = FormItemComp> {
|
|
|
152
152
|
prop: string // 表单字段名(必填)
|
|
153
153
|
label: string // 标签文本
|
|
154
154
|
compType: FormItemComp // 组件类型(必填)
|
|
155
|
-
compProps?: FormItemCompProps<C> // 组件属性配置
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
155
|
+
compProps?: FormItemCompProps<C> // 组件属性配置 // 对于支持 options 的组件(如 select、cascader、radio、checkbox 等),支持两种配置方式:
|
|
156
|
+
// 1. 静态数组:compProps.options: [{ label: '选项1', value: '1' }]
|
|
157
|
+
// 2. 动态加载(compProps.optionsLoader):
|
|
158
|
+
// - 函数模式:optionsLoader: (formData: Record<string, unknown>) => [{ label: '选项1', value: '1' }]
|
|
159
|
+
// - 对象模式:optionsLoader: { loader: (formData: Record<string, unknown>) => [...], deps: ['field1'], immediate: true }
|
|
160
|
+
// 当同时配置 options 和 optionsLoader 时,optionsLoader 优先级更高
|
|
160
161
|
vIf?: boolean | ((data?: any) => boolean) // 条件渲染(v-if)
|
|
161
162
|
vShow?: boolean | ((data?: any) => boolean) // 显示/隐藏(v-show)
|
|
162
163
|
colProps?: ColProps // 列布局属性(ElCol 属性)
|
|
@@ -170,7 +171,8 @@ interface FormItem<C extends FormItemComp = FormItemComp> {
|
|
|
170
171
|
|
|
171
172
|
- `autocomplete` - 自动完成输入框
|
|
172
173
|
- `cascader` - 级联选择器
|
|
173
|
-
- `checkbox` -
|
|
174
|
+
- `checkbox` - 复选框(单个)
|
|
175
|
+
- `checkbox-group` - 复选框组
|
|
174
176
|
- `color-picker` - 颜色选择器
|
|
175
177
|
- `color-picker-panel` - 颜色选择器面板
|
|
176
178
|
- `date-picker` - 日期选择器
|
|
@@ -179,7 +181,7 @@ interface FormItem<C extends FormItemComp = FormItemComp> {
|
|
|
179
181
|
- `input-number` - 数字输入框
|
|
180
182
|
- `input-tag` - 标签输入框
|
|
181
183
|
- `mention` - 提及输入框
|
|
182
|
-
- `radio` - 单选框组
|
|
184
|
+
- `radio-group` - 单选框组
|
|
183
185
|
- `rate` - 评分
|
|
184
186
|
- `select` - 选择器
|
|
185
187
|
- `select-v2` - 虚拟列表选择器
|
|
@@ -189,6 +191,7 @@ interface FormItem<C extends FormItemComp = FormItemComp> {
|
|
|
189
191
|
- `time-select` - 时间选择
|
|
190
192
|
- `transfer` - 穿梭框
|
|
191
193
|
- `tree-select` - 树形选择器
|
|
194
|
+
- `w-check-tag` - 可选标签(支持单选/多选)
|
|
192
195
|
- `custom` - 自定义组件(使用插槽)
|
|
193
196
|
|
|
194
197
|
#### 使用示例
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { FormItemProp } from 'element-plus';
|
|
2
|
+
import { Arrayable, ElFormProps, FormActionConfig, FormItemEventExtendedParams, FormItems, FormItemSlotScope, RowProps } from './types';
|
|
3
|
+
interface Props extends ElFormProps {
|
|
4
|
+
formItems: FormItems;
|
|
5
|
+
rowProps?: RowProps;
|
|
6
|
+
actionConfig?: FormActionConfig;
|
|
7
|
+
}
|
|
8
|
+
interface Slots {
|
|
9
|
+
/**
|
|
10
|
+
* FormItem 通用插槽
|
|
11
|
+
* @example #form-item-label
|
|
12
|
+
*/
|
|
13
|
+
[key: `form-item-${string}`]: (props: FormItemSlotScope) => any;
|
|
14
|
+
/**
|
|
15
|
+
* 动态组件插槽
|
|
16
|
+
* @example #username-prefix, #email-suffix
|
|
17
|
+
*/
|
|
18
|
+
[key: `${string}-${string}`]: (props: FormItemSlotScope) => any;
|
|
19
|
+
/**
|
|
20
|
+
* 自定义组件插槽
|
|
21
|
+
* @example #custom-field
|
|
22
|
+
*/
|
|
23
|
+
[key: string]: (props: FormItemSlotScope) => any;
|
|
24
|
+
}
|
|
25
|
+
type __VLS_Props = Props;
|
|
26
|
+
/**
|
|
27
|
+
* 切换或设置表单展开/折叠状态
|
|
28
|
+
*
|
|
29
|
+
* @param value - 可选,不传参则切换状态,传布尔值则设置状态
|
|
30
|
+
*/
|
|
31
|
+
declare function toggleExpand(value?: boolean): void;
|
|
32
|
+
type __VLS_PublicProps = {
|
|
33
|
+
'expanded'?: boolean;
|
|
34
|
+
} & __VLS_Props;
|
|
35
|
+
declare function __VLS_template(): {
|
|
36
|
+
attrs: Partial<{}>;
|
|
37
|
+
slots: Readonly<Slots> & Slots;
|
|
38
|
+
refs: {
|
|
39
|
+
formRef: any;
|
|
40
|
+
};
|
|
41
|
+
rootEl: any;
|
|
42
|
+
};
|
|
43
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
44
|
+
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_PublicProps>, {
|
|
45
|
+
model: () => {};
|
|
46
|
+
rowProps: () => {};
|
|
47
|
+
actionConfig: () => {};
|
|
48
|
+
}>>, {
|
|
49
|
+
fields: import('vue').Reactive<import('element-plus').FormItemContext[]> | undefined;
|
|
50
|
+
getField: (prop: FormItemProp) => import('element-plus').FormItemContext | undefined;
|
|
51
|
+
validate: () => import('element-plus').FormValidationResult | undefined;
|
|
52
|
+
validateField: (props: Arrayable<FormItemProp>) => import('element-plus').FormValidationResult | undefined;
|
|
53
|
+
resetFields: (props?: Arrayable<FormItemProp>) => void | undefined;
|
|
54
|
+
clearValidate: (props?: Arrayable<FormItemProp>) => void | undefined;
|
|
55
|
+
scrollToField: (prop: FormItemProp) => void | undefined;
|
|
56
|
+
expanded: boolean;
|
|
57
|
+
/** 切换或设置展开/折叠状态 */
|
|
58
|
+
toggleExpand: typeof toggleExpand;
|
|
59
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
60
|
+
validate: (prop: FormItemProp, isValid: boolean, message: string) => void;
|
|
61
|
+
change: (extendedParams: FormItemEventExtendedParams<string>, value: any) => void;
|
|
62
|
+
action: (eventName: string, data?: any) => void;
|
|
63
|
+
search: () => void;
|
|
64
|
+
reset: (resetData: Record<string, any>) => void;
|
|
65
|
+
submit: () => void;
|
|
66
|
+
cancel: () => void;
|
|
67
|
+
expand: (value: boolean) => void;
|
|
68
|
+
"update:expanded": (value: boolean) => void;
|
|
69
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_PublicProps>, {
|
|
70
|
+
model: () => {};
|
|
71
|
+
rowProps: () => {};
|
|
72
|
+
actionConfig: () => {};
|
|
73
|
+
}>>> & Readonly<{
|
|
74
|
+
onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined;
|
|
75
|
+
onSearch?: (() => any) | undefined;
|
|
76
|
+
onChange?: ((extendedParams: FormItemEventExtendedParams<string>, value: any) => any) | undefined;
|
|
77
|
+
onReset?: ((resetData: Record<string, any>) => any) | undefined;
|
|
78
|
+
onSubmit?: (() => any) | undefined;
|
|
79
|
+
onCancel?: (() => any) | undefined;
|
|
80
|
+
onExpand?: ((value: boolean) => any) | undefined;
|
|
81
|
+
onAction?: ((eventName: string, data?: any) => any) | undefined;
|
|
82
|
+
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
83
|
+
}>, {
|
|
84
|
+
model: Record<string, any>;
|
|
85
|
+
rowProps: RowProps;
|
|
86
|
+
actionConfig: FormActionConfig;
|
|
87
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
88
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
89
|
+
export default _default;
|
|
90
|
+
type __VLS_WithDefaults<P, D> = {
|
|
91
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
92
|
+
default: D[K];
|
|
93
|
+
}> : P[K];
|
|
94
|
+
};
|
|
95
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
96
|
+
type __VLS_TypePropsToOption<T> = {
|
|
97
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
98
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
99
|
+
} : {
|
|
100
|
+
type: import('vue').PropType<T[K]>;
|
|
101
|
+
required: true;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
105
|
+
new (): {
|
|
106
|
+
$slots: S;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
type __VLS_PrettifyLocal<T> = {
|
|
110
|
+
[K in keyof T]: T[K];
|
|
111
|
+
} & {};
|
|
112
|
+
//# sourceMappingURL=Form.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.vue.d.ts","sourceRoot":"","sources":["../src/Form.vue"],"names":[],"mappings":"AACA;AAqjBA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,cAAc,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAmB,WAAW,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,SAAS,EAAuB,iBAAiB,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAA;AAWhM,UAAU,KAAM,SAAQ,WAAW;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAeD,UAAU,KAAK;IACb;;;OAGG;IACH,CAAC,GAAG,EAAE,aAAa,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAA;IAE/D;;;OAGG;IACH,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAA;IAE/D;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAA;CACjD;AAID,KAAK,WAAW,GAAG,KAAK,CAAC;AA0EzB;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,QAapC;AA8WD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAqJT,OAAO,IAA6B;;;;;;EAKjD;AA6BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;qBAvOF,YAAY;;2BAEN,SAAS,CAAC,YAAY,CAAC;0BACxB,SAAS,CAAC,YAAY,CAAC;4BACrB,SAAS,CAAC,YAAY,CAAC;0BACzB,YAAY;;IAKlC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAndR,QAAQ;kBACJ,gBAAgB;4EA0rB/B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormAction.vue.d.ts","sourceRoot":"","sources":["../src/FormAction.vue"],"names":[],"mappings":"AACA;
|
|
1
|
+
{"version":3,"file":"FormAction.vue.d.ts","sourceRoot":"","sources":["../src/FormAction.vue"],"names":[],"mappings":"AACA;AA+JA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAwB,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAMrE,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAqGD,iBAAS,cAAc;WAsHT,OAAO,IAA6B;;yBAVpB,GAAG;;;;EAehC;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;mBAlPiB,MAAM;eAAS,GAAG;;;;;;;;mBAAlB,MAAM;eAAS,GAAG;;;cAV3C,OAAO;YAJT,OAAO;YAEP,gBAAgB;4EAqQzB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormItem.vue.d.ts","sourceRoot":"","sources":["../src/FormItem.vue"],"names":[],"mappings":"AACA;
|
|
1
|
+
{"version":3,"file":"FormItem.vue.d.ts","sourceRoot":"","sources":["../src/FormItem.vue"],"names":[],"mappings":"AACA;AAgLA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,SAAS,CAAA;AAMpE,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,IAAI,CAAA;CACb;AAED,UAAU,SAAS;IACjB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC3C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;CAC/C;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAQD,KAAK,WAAW,GAAG,KAAK,CAAC;AAiHzB,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,WAAW,CAAC;;;;;;;;;;;;;;cA9HH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;eAElB,SAAS;;AAuQvB,wBAUG;AAEH,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GAC5C,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AACF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC;AACF,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* 用于区分不同类型的值变化,防止重复触发 change 事件
|
|
4
4
|
*/
|
|
5
5
|
export declare function useChangeEventState(): {
|
|
6
|
-
/**
|
|
7
|
-
readonly
|
|
6
|
+
/** 是否在用户交互期间 */
|
|
7
|
+
readonly isUserInteractionDuring: boolean;
|
|
8
8
|
/** 开始用户交互 */
|
|
9
9
|
start(): void;
|
|
10
10
|
/** 结束用户交互(在 nextTick 中调用) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChangeEventState.d.ts","sourceRoot":"","sources":["../../src/composables/useChangeEventState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB;IAI/B,
|
|
1
|
+
{"version":3,"file":"useChangeEventState.d.ts","sourceRoot":"","sources":["../../src/composables/useChangeEventState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB;IAI/B,gBAAgB;;IAKhB,aAAa;;IAKb,6BAA6B;;EAKhC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 选项结果类型
|
|
3
|
+
*/
|
|
4
|
+
type OptionsResult = any[] | Array<{
|
|
5
|
+
prop: string;
|
|
6
|
+
options: any[];
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* 选项加载组合式函数
|
|
10
|
+
*
|
|
11
|
+
* @param formItems - 表单配置项
|
|
12
|
+
* @param formData - 表单数据(可选),会传递给 optionsLoader 函数
|
|
13
|
+
* @returns 加载函数、获取函数和加载状态
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
*
|
|
17
|
+
* const form = ref({ province: '1' })
|
|
18
|
+
* const formItems = ref<FormItems>([
|
|
19
|
+
* {
|
|
20
|
+
* prop: 'city',
|
|
21
|
+
* compType: 'select',
|
|
22
|
+
* compProps: {
|
|
23
|
+
* optionsLoader: (formData) => {
|
|
24
|
+
* const province = formData?.province || form.value.province
|
|
25
|
+
* return fetch(`/api/cities?province=${province}`).then(r => r.json())
|
|
26
|
+
* },
|
|
27
|
+
* },
|
|
28
|
+
* },
|
|
29
|
+
* ])
|
|
30
|
+
*
|
|
31
|
+
* const { loadOptions, getOptions, loading } = useLoadOptions(formItems.value, form.value)
|
|
32
|
+
*
|
|
33
|
+
* // 加载单个字段的选项
|
|
34
|
+
* await loadOptions('city')
|
|
35
|
+
*
|
|
36
|
+
* // 加载多个字段的选项
|
|
37
|
+
* await loadOptions(['city', 'district'])
|
|
38
|
+
*
|
|
39
|
+
* // 加载所有有 optionsLoader 的字段
|
|
40
|
+
* await loadOptions()
|
|
41
|
+
*
|
|
42
|
+
* // 获取单个字段的选项
|
|
43
|
+
* const cityOptions = getOptions('city') // 返回: any[]
|
|
44
|
+
*
|
|
45
|
+
* // 获取多个字段的选项
|
|
46
|
+
* const options = getOptions(['city', 'district']) // 返回: [{prop: 'city', options: [...]}, ...]
|
|
47
|
+
*
|
|
48
|
+
* // 获取所有字段的选项
|
|
49
|
+
* const allOptions = getOptions() // 返回: [{prop: 'city', options: [...]}, ...]
|
|
50
|
+
*/
|
|
51
|
+
export declare function useLoadOptions(formItems: any[], formData?: Record<string, any>): {
|
|
52
|
+
loading: import('vue').Ref<boolean, boolean>;
|
|
53
|
+
loadOptions: (props?: string | string[]) => Promise<void>;
|
|
54
|
+
getOptions: (props?: string | string[]) => OptionsResult;
|
|
55
|
+
};
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=useLoadOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadOptions.d.ts","sourceRoot":"","sources":["../../src/composables/useLoadOptions.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,KAAK,aAAa,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;0BAqB1C,MAAM,GAAG,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;yBAuCxC,MAAM,GAAG,MAAM,EAAE,KAAG,aAAa;EA0B9D"}
|
package/dist/config/comp.d.ts
CHANGED
|
@@ -3,9 +3,7 @@ import { FormItem } from '../types';
|
|
|
3
3
|
* 拓展的组件映射
|
|
4
4
|
* 导出以便在类型文件中使用 typeof 提取类型
|
|
5
5
|
*/
|
|
6
|
-
export declare const EXPAND_COMP_MAP:
|
|
7
|
-
readonly custom: "div";
|
|
8
|
-
};
|
|
6
|
+
export declare const EXPAND_COMP_MAP: Record<string, any>;
|
|
9
7
|
/**
|
|
10
8
|
* 表单组件类型映射配置
|
|
11
9
|
*
|
|
@@ -24,8 +22,6 @@ export declare const COMP_DEFAULT_CONFIG: {
|
|
|
24
22
|
* 获取组件默认属性
|
|
25
23
|
*/
|
|
26
24
|
getDefaults(formItem: FormItem): {
|
|
27
|
-
[x: string]: any;
|
|
28
|
-
options?: any[] | import('../types').OptionsLoader | import('../types').OptionsConfig | undefined;
|
|
29
25
|
slots?: import('../types').CompSlotsConfig<import('../types').FormItemComp> | undefined;
|
|
30
26
|
};
|
|
31
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comp.d.ts","sourceRoot":"","sources":["../../src/config/comp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"comp.d.ts","sourceRoot":"","sources":["../../src/config/comp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAIxC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAGtC,CAAA;AAgCV;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAwD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;0BACmB,QAAQ;;;IAe9B;;OAEG;sBACe,MAAM;IAoBxB;;OAEG;kCAC2B,QAAQ,QAAQ,MAAM;IAkBpD;;OAEG;6BACsB,QAAQ,QAAQ,MAAM;CAYhD,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
export * from './composables';
|
|
1
2
|
export { default } from './Form.vue';
|
|
2
3
|
export { default as WForm } from './Form.vue';
|
|
3
|
-
export type { FormActionConfig, FormItemEventExtendedParams, FormItems, FormItemSlotScope } from './types';
|
|
4
|
+
export type { FormActionConfig, FormItemEventExtendedParams, FormItems, FormItemSlotScope, RowProps, } from './types';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,2CAA2C,CAAA;AAClD,OAAO,gDAAgD,CAAA;AAEvD,OAAO,0CAA0C,CAAA;AACjD,OAAO,0CAA0C,CAAA;AAEjD,OAAO,6CAA6C,CAAA;AAEpD,OAAO,2CAA2C,CAAA;AAKlD,OAAO,4CAA4C,CAAA;AACnD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,gDAAgD,CAAA;AACvD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,8CAA8C,CAAA;AAErD,OAAO,6CAA6C,CAAA;AACpD,OAAO,gDAAgD,CAAA;AACvD,OAAO,+CAA+C,CAAA;AACtD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,kDAAkD,CAAA;AACzD,OAAO,wDAAwD,CAAA;AAC/D,OAAO,kDAAkD,CAAA;AACzD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,qDAAqD,CAAA;AAC5D,OAAO,kDAAkD,CAAA;AACzD,OAAO,6CAA6C,CAAA;AACpD,OAAO,6CAA6C,CAAA;AACpD,OAAO,2CAA2C,CAAA;AAClD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,yDAAyD,CAAA;AAChE,OAAO,+CAA+C,CAAA;AAEtD,OAAO,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,2CAA2C,CAAA;AAClD,OAAO,gDAAgD,CAAA;AAEvD,OAAO,0CAA0C,CAAA;AACjD,OAAO,0CAA0C,CAAA;AAEjD,OAAO,6CAA6C,CAAA;AAEpD,OAAO,2CAA2C,CAAA;AAKlD,OAAO,4CAA4C,CAAA;AACnD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,gDAAgD,CAAA;AACvD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,8CAA8C,CAAA;AAErD,OAAO,6CAA6C,CAAA;AACpD,OAAO,gDAAgD,CAAA;AACvD,OAAO,+CAA+C,CAAA;AACtD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,kDAAkD,CAAA;AACzD,OAAO,wDAAwD,CAAA;AAC/D,OAAO,kDAAkD,CAAA;AACzD,OAAO,kDAAkD,CAAA;AAEzD,OAAO,+CAA+C,CAAA;AACtD,OAAO,qDAAqD,CAAA;AAC5D,OAAO,kDAAkD,CAAA;AACzD,OAAO,6CAA6C,CAAA;AACpD,OAAO,6CAA6C,CAAA;AACpD,OAAO,2CAA2C,CAAA;AAClD,OAAO,mDAAmD,CAAA;AAC1D,OAAO,yDAAyD,CAAA;AAChE,OAAO,+CAA+C,CAAA;AAEtD,OAAO,oBAAoB,CAAA;AAG3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7C,YAAY,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,MAAM,SAAS,CAAA"}
|