@veltra/desktop 1.1.36 → 1.2.0
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/components/action/action-group.vue.d.ts +1 -1
- package/dist/components/action/action.vue.d.ts +1 -1
- package/dist/components/auto-complete/auto-complete.js +1 -0
- package/dist/components/auto-complete/auto-complete.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-form.js +12 -5
- package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
- package/dist/components/batch-edit/batch-edit.js +8 -3
- package/dist/components/batch-edit/batch-edit.js.map +1 -1
- package/dist/components/batch-edit/batch-edit.vue.d.ts +40 -35
- package/dist/components/batch-edit/di.js.map +1 -1
- package/dist/components/batch-edit/use-edit.js +41 -23
- package/dist/components/batch-edit/use-edit.js.map +1 -1
- package/dist/components/cascade/cascade.js +1 -0
- package/dist/components/cascade/cascade.js.map +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +4 -4
- package/dist/components/checkbox/checkbox-button.js +1 -0
- package/dist/components/checkbox/checkbox-button.js.map +1 -1
- package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
- package/dist/components/checkbox/checkbox.js +1 -0
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.js +1 -0
- package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
- package/dist/components/code-editor/code-editor.js +1 -0
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/condition-editor/core/evaluator.js +3 -3
- package/dist/components/condition-editor/core/evaluator.js.map +1 -1
- package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
- package/dist/components/date-picker/date-picker.js +1 -0
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +2 -0
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
- package/dist/components/empty/empty.vue.d.ts +1 -1
- package/dist/components/expression-editor/expression-editor.js +1 -0
- package/dist/components/expression-editor/expression-editor.js.map +1 -1
- package/dist/components/file-picker/file-picker.js +1 -0
- package/dist/components/file-picker/file-picker.js.map +1 -1
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/form.vue.d.ts +11 -19
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +24 -26
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/index.d.ts +0 -3
- package/dist/components/form/use-form-fields.js +88 -0
- package/dist/components/form/use-form-fields.js.map +1 -0
- package/dist/components/form/use-node-interceptor.js +19 -30
- package/dist/components/form/use-node-interceptor.js.map +1 -1
- package/dist/components/form-item/form-item.js.map +1 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +44 -18
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form-item/helper.js +4 -1
- package/dist/components/form-item/helper.js.map +1 -1
- package/dist/components/form-item/validate.d.ts +26 -0
- package/dist/components/form-item/validate.js +97 -0
- package/dist/components/form-item/validate.js.map +1 -0
- package/dist/components/group-input/group-input.js +1 -0
- package/dist/components/group-input/group-input.js.map +1 -1
- package/dist/components/index.d.ts +0 -3
- package/dist/components/index.js +0 -7
- package/dist/components/input/input.vue.d.ts +4 -4
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/multi-select/multi-select.js +1 -0
- package/dist/components/multi-select/multi-select.js.map +1 -1
- package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
- package/dist/components/multi-tree-select/multi-tree-select.js +1 -0
- package/dist/components/multi-tree-select/multi-tree-select.js.map +1 -1
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +4 -4
- package/dist/components/number-input/number-input.js +1 -0
- package/dist/components/number-input/number-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.js +1 -0
- package/dist/components/number-range-input/number-range-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
- package/dist/components/palette/palette.js +1 -0
- package/dist/components/palette/palette.js.map +1 -1
- package/dist/components/password-input/password-input.js +1 -0
- package/dist/components/password-input/password-input.js.map +1 -1
- package/dist/components/radio/radio.js +1 -0
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/radio-group/radio-group.js +1 -0
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/components/rich-text-editor/rich-text-editor.js +3 -2
- package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/components/rich-text-editor/toolbar.js +10 -7
- package/dist/components/rich-text-editor/toolbar.js.map +1 -1
- package/dist/components/select/select.js +6 -3
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/select/select.vue.d.ts +2 -2
- package/dist/components/slider/slider.js +15 -2
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/switch/switch.js +1 -0
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
- package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
- package/dist/components/tabs/tabs.vue.d.ts +2 -2
- package/dist/components/textarea/textarea.js +1 -0
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/tip/tip.vue.d.ts +3 -3
- package/dist/components/tree-select/tree-select.js +1 -0
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/tree-select/tree-select.vue.d.ts +4 -4
- package/dist/index.d.ts +5 -6
- package/dist/index.js +1 -4
- package/dist/types/auto-complete.d.ts +3 -2
- package/dist/types/batch-edit.d.ts +4 -5
- package/dist/types/cascade.d.ts +3 -2
- package/dist/types/checkbox-group.d.ts +2 -2
- package/dist/types/checkbox.d.ts +4 -3
- package/dist/types/code-editor.d.ts +3 -2
- package/dist/types/date-picker.d.ts +3 -2
- package/dist/types/date-range-picker.d.ts +3 -2
- package/dist/types/expression-editor.d.ts +3 -2
- package/dist/types/file-picker.d.ts +3 -2
- package/dist/types/form-field.d.ts +12 -0
- package/dist/types/form-item.d.ts +2 -2
- package/dist/types/form.d.ts +9 -48
- package/dist/types/group-input.d.ts +3 -2
- package/dist/types/index.d.ts +4 -2
- package/dist/types/input.d.ts +3 -2
- package/dist/types/multi-select.d.ts +3 -2
- package/dist/types/multi-tree-select.d.ts +3 -2
- package/dist/types/palette.d.ts +3 -2
- package/dist/types/radio-group.d.ts +3 -2
- package/dist/types/radio.d.ts +3 -2
- package/dist/types/rich-text-editor.d.ts +3 -2
- package/dist/types/select.d.ts +3 -2
- package/dist/types/slider.d.ts +3 -2
- package/dist/types/switch.d.ts +3 -2
- package/dist/types/text-editor.d.ts +3 -2
- package/dist/types/textarea.d.ts +3 -2
- package/dist/types/tree-select.d.ts +3 -2
- package/package.json +6 -6
- package/src/components/batch-edit/batch-edit-form.vue +20 -13
- package/src/components/batch-edit/batch-edit.vue +7 -8
- package/src/components/batch-edit/di.ts +1 -2
- package/src/components/batch-edit/use-edit.ts +58 -36
- package/src/components/date-range-picker/date-range-picker.vue +2 -0
- package/src/components/form/form.vue +22 -38
- package/src/components/form/index.ts +0 -6
- package/src/components/form/use-form-fields.ts +126 -0
- package/src/components/form/use-node-interceptor.ts +27 -56
- package/src/components/form-item/form-item.vue +69 -18
- package/src/components/form-item/helper.ts +10 -4
- package/src/components/form-item/validate.ts +155 -0
- package/src/components/rich-text-editor/rich-text-editor.vue +28 -25
- package/src/components/rich-text-editor/toolbar.vue +23 -19
- package/src/components/select/select.vue +6 -4
- package/src/components/slider/slider.vue +12 -2
- package/src/types/auto-complete.ts +4 -2
- package/src/types/batch-edit.ts +4 -5
- package/src/types/cascade.ts +4 -2
- package/src/types/checkbox-group.ts +2 -2
- package/src/types/checkbox.ts +5 -3
- package/src/types/code-editor.ts +4 -2
- package/src/types/date-picker.ts +4 -2
- package/src/types/date-range-picker.ts +4 -2
- package/src/types/expression-editor.ts +4 -2
- package/src/types/file-picker.ts +4 -2
- package/src/types/form-field.ts +11 -0
- package/src/types/form-item.ts +2 -2
- package/src/types/form.ts +9 -82
- package/src/types/group-input.ts +4 -2
- package/src/types/index.ts +1 -0
- package/src/types/input.ts +4 -2
- package/src/types/multi-select.ts +4 -2
- package/src/types/multi-tree-select.ts +5 -2
- package/src/types/palette.ts +4 -2
- package/src/types/radio-group.ts +4 -2
- package/src/types/radio.ts +4 -2
- package/src/types/rich-text-editor.ts +4 -2
- package/src/types/select.ts +4 -2
- package/src/types/slider.ts +4 -2
- package/src/types/switch.ts +4 -2
- package/src/types/text-editor.ts +4 -2
- package/src/types/textarea.ts +4 -2
- package/src/types/tree-select.ts +5 -2
- package/dist/components/form/dynamic-form-model.d.ts +0 -73
- package/dist/components/form/dynamic-form-model.js +0 -184
- package/dist/components/form/dynamic-form-model.js.map +0 -1
- package/dist/components/form/form-model.d.ts +0 -73
- package/dist/components/form/form-model.js +0 -179
- package/dist/components/form/form-model.js.map +0 -1
- package/dist/components/form/helper.d.ts +0 -16
- package/dist/components/form/helper.js +0 -20
- package/dist/components/form/helper.js.map +0 -1
- package/src/components/form/__test__/form-model.test.ts +0 -190
- package/src/components/form/dynamic-form-model.ts +0 -258
- package/src/components/form/form-model.ts +0 -255
- package/src/components/form/helper.ts +0 -23
package/dist/types/checkbox.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { ColorType } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/checkbox.d.ts
|
|
4
5
|
/** 复选框组件属性 */
|
|
5
|
-
interface CheckboxProps extends
|
|
6
|
+
interface CheckboxProps extends FormFieldComponentProps {
|
|
6
7
|
/** 部分选中 */
|
|
7
8
|
indeterminate?: boolean;
|
|
8
9
|
/** 是否选中 */
|
|
9
10
|
modelValue?: boolean;
|
|
10
11
|
}
|
|
11
|
-
interface CheckboxButtonProps extends
|
|
12
|
+
interface CheckboxButtonProps extends FormFieldComponentProps {
|
|
12
13
|
/** 是否选中 */
|
|
13
14
|
modelValue?: boolean;
|
|
14
15
|
/** 是否圆角 */
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/code-editor.d.ts
|
|
4
5
|
type CodeEditorLang = 'js' | 'sql' | 'java' | 'json';
|
|
5
6
|
/** 代码编辑器组件属性(不支持 `size`) */
|
|
6
|
-
interface CodeEditorProps extends Omit<
|
|
7
|
+
interface CodeEditorProps extends Omit<FormFieldComponentProps, 'size'> {
|
|
7
8
|
modelValue?: string;
|
|
8
9
|
/** 定义语言 */
|
|
9
10
|
language?: CodeEditorLang;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
import { Dater } from "@cat-kit/core";
|
|
3
4
|
|
|
4
5
|
//#region src/types/date-picker.d.ts
|
|
5
6
|
/** date-picker组件属性 */
|
|
6
|
-
interface DatePickerProps extends
|
|
7
|
+
interface DatePickerProps extends FormFieldComponentProps {
|
|
7
8
|
modelValue?: string | number | Date;
|
|
8
9
|
/** 占位 */
|
|
9
10
|
placeholder?: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
import { Dater } from "@cat-kit/core";
|
|
3
4
|
|
|
4
5
|
//#region src/types/date-range-picker.d.ts
|
|
5
6
|
/** date-range-picker组件属性 */
|
|
6
|
-
interface DateRangePickerProps extends
|
|
7
|
+
interface DateRangePickerProps extends FormFieldComponentProps {
|
|
7
8
|
modelValue?: [string, string];
|
|
8
9
|
/** 占位 */
|
|
9
10
|
placeholder?: [string, string];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/expression-editor.d.ts
|
|
4
5
|
interface VariableItem {
|
|
@@ -12,7 +13,7 @@ interface VariableItem {
|
|
|
12
13
|
/** 选中范围:仅叶子节点,或允许任意层级(含分支) */
|
|
13
14
|
type ExpressionSelectableLevels = 'leaf' | 'any';
|
|
14
15
|
/** 表达式编辑器组件属性 */
|
|
15
|
-
interface ExpressionEditorProps extends
|
|
16
|
+
interface ExpressionEditorProps extends FormFieldComponentProps {
|
|
16
17
|
modelValue?: string;
|
|
17
18
|
placeholder?: string;
|
|
18
19
|
/** 变量列表 */
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/file-picker.d.ts
|
|
4
5
|
/** 文件上传器组件属性 */
|
|
5
|
-
interface UploaderProps extends
|
|
6
|
+
interface UploaderProps extends FormFieldComponentProps {
|
|
6
7
|
/** 渲染标签 */
|
|
7
8
|
tag?: string;
|
|
8
9
|
/** 允许上传的文件类型 */
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PresetRule, ValidateRule } from "../components/form-item/validate.js";
|
|
2
|
+
import { FormComponentProps } from "@veltra/utils";
|
|
3
|
+
|
|
4
|
+
//#region src/types/form-field.d.ts
|
|
5
|
+
/** 带校验规则的表单控件通用属性 */
|
|
6
|
+
interface FormFieldComponentProps extends FormComponentProps {
|
|
7
|
+
/** 校验规则 */
|
|
8
|
+
rules?: ValidateRule;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { FormFieldComponentProps };
|
|
12
|
+
//# sourceMappingURL=form-field.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
2
|
|
|
3
3
|
//#region src/types/form-item.d.ts
|
|
4
4
|
/** 组件项组件属性 */
|
|
5
|
-
interface FormItemProps extends
|
|
5
|
+
interface FormItemProps extends FormFieldComponentProps {
|
|
6
6
|
/** 标签宽度 */
|
|
7
7
|
labelWidth?: string | number;
|
|
8
8
|
}
|
package/dist/types/form.d.ts
CHANGED
|
@@ -1,59 +1,16 @@
|
|
|
1
|
-
import { NestedFieldMarker } from "../components/form/helper.js";
|
|
2
1
|
import { ShallowRef } from "vue";
|
|
3
|
-
import { ComponentProps, DeconstructValue
|
|
2
|
+
import { ComponentProps, DeconstructValue } from "@veltra/utils";
|
|
4
3
|
|
|
5
4
|
//#region src/types/form.d.ts
|
|
6
|
-
interface FormModelItem<Val = any> extends ValidateRule {
|
|
7
|
-
/** 模型值 */
|
|
8
|
-
value?: Val;
|
|
9
|
-
}
|
|
10
|
-
type FormModelField = FormModelItem | NestedFieldMarker;
|
|
11
|
-
type ModelData<Fields extends Record<string, any>> = { [key in keyof Fields]: Fields[key] extends NestedFieldMarker<infer SubFields> ? ModelData<SubFields> : Fields[key] extends FormModelItem ? Fields[key]['value'] extends (() => infer T) ? T : Fields[key]['value'] : never };
|
|
12
|
-
type AllKeys<Fields extends Record<string, any>> = { [K in keyof Fields]: K extends string ? Fields[K] extends NestedFieldMarker<infer SubFields> ? `${K}.${AllKeys<SubFields>}` : K : never }[keyof Fields];
|
|
13
|
-
type ModelRules<Fields extends Record<string, FormModelItem>> = { [key in keyof Fields]: Omit<Fields[key], 'value'> };
|
|
14
|
-
interface DataSettingConfig {
|
|
15
|
-
/**
|
|
16
|
-
* 是否校验
|
|
17
|
-
* @default true
|
|
18
|
-
*/
|
|
19
|
-
validate?: boolean;
|
|
20
|
-
}
|
|
21
|
-
type IFormModel<Fields extends Record<string, any> = Record<string, any>> = {
|
|
22
|
-
/** 表单数据 */readonly data: ModelData<Fields>; /** 字段校验规则 */
|
|
23
|
-
readonly fields: Fields;
|
|
24
|
-
/**
|
|
25
|
-
* 字段键
|
|
26
|
-
*/
|
|
27
|
-
readonly allKeys: string[]; /** 需要校验的key */
|
|
28
|
-
formKeys: Map<number, string[]>; /** 错误 */
|
|
29
|
-
readonly errors: Map<string, string[] | undefined>;
|
|
30
|
-
/**
|
|
31
|
-
* 字段校验
|
|
32
|
-
* @param fields 字段, 如果不传入时将会使用keyFields来进行校验
|
|
33
|
-
*/
|
|
34
|
-
validate: (fields?: string | string[]) => Promise<boolean>; /** 重置数据 */
|
|
35
|
-
resetData(fields?: string | string[]): void;
|
|
36
|
-
/**
|
|
37
|
-
* 设置数据
|
|
38
|
-
* @param formData 表单值
|
|
39
|
-
* @param options 配置
|
|
40
|
-
*/
|
|
41
|
-
setData(formData: Partial<Record<string, any>>, config?: DataSettingConfig): void; /** 清除校验 */
|
|
42
|
-
clearValidate(): void; /** 监听值变更 */
|
|
43
|
-
onChange(cb: (field: string, val: any) => void): void; /** 关闭监听值变更 */
|
|
44
|
-
offChange(cb: (field: string, val: any) => void): void;
|
|
45
|
-
};
|
|
46
5
|
/** 表单组件属性 */
|
|
47
|
-
interface FormProps
|
|
6
|
+
interface FormProps extends ComponentProps {
|
|
48
7
|
/**
|
|
49
8
|
* 自定义表单列数
|
|
50
9
|
* - 默认根据尺寸断点自动排列
|
|
51
10
|
*/
|
|
52
11
|
cols?: number;
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
/** 表单数据模型 */
|
|
56
|
-
model: Model;
|
|
12
|
+
/** 表单数据 */
|
|
13
|
+
model?: Record<string, any>;
|
|
57
14
|
/** 表单项label宽度 */
|
|
58
15
|
labelWidth?: string | number;
|
|
59
16
|
/** 是否不显示tips */
|
|
@@ -65,8 +22,12 @@ interface FormProps<Model extends IFormModel = IFormModel> extends ComponentProp
|
|
|
65
22
|
}
|
|
66
23
|
interface _FormExposed {
|
|
67
24
|
el: ShallowRef<HTMLElement | null | undefined>;
|
|
25
|
+
validate: (keys?: string[]) => Promise<boolean>;
|
|
26
|
+
clearValidate: () => void;
|
|
27
|
+
/** 将 model 恢复为最近一次 props.model 引用变更时的快照,并清除校验 */
|
|
28
|
+
reset: () => void;
|
|
68
29
|
}
|
|
69
30
|
type FormExposed = DeconstructValue<_FormExposed>;
|
|
70
31
|
//#endregion
|
|
71
|
-
export {
|
|
32
|
+
export { FormExposed, FormProps, _FormExposed };
|
|
72
33
|
//# sourceMappingURL=form.d.ts.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { StyleValue } from "vue";
|
|
2
|
-
import { DeconstructValue
|
|
3
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
3
4
|
|
|
4
5
|
//#region src/types/group-input.d.ts
|
|
5
6
|
/** 分组输入组件属性 */
|
|
6
|
-
interface GroupInputProps<GroupItem extends Record<string, any> = Record<string, any>> extends
|
|
7
|
+
interface GroupInputProps<GroupItem extends Record<string, any> = Record<string, any>> extends FormFieldComponentProps {
|
|
7
8
|
modelValue?: GroupItem[];
|
|
8
9
|
/** 最大数量 */
|
|
9
10
|
max?: number;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { PresetRule, ValidateRule } from "../components/form-item/validate.js";
|
|
2
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
3
|
import { CascadeEmits, CascadeExposed, CascadeNode, CascadeProps, PanelItem, _CascadeExposed } from "./cascade.js";
|
|
2
4
|
import { Message, MessageEmits, MessageExposed, MessageInstance, MessageOptions, MessageProps, MessageType, _MessageExposed } from "./message.js";
|
|
3
5
|
import { MultiSelectEmits, MultiSelectExposed, MultiSelectProps, _MultiSelectExposed } from "./multi-select.js";
|
|
@@ -23,7 +25,6 @@ import { ButtonEmits, ButtonExposed, ButtonProps, ButtonType, _ButtonExposed } f
|
|
|
23
25
|
import { DatePanelEmits, DatePanelProps, PanelType } from "./date-panel.js";
|
|
24
26
|
import { DialogEmits, DialogExposed, DialogProps, DialogTransition, _DialogExposed } from "./dialog.js";
|
|
25
27
|
import { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps, _ActionExposed, _ActionGroupExposed } from "./action.js";
|
|
26
|
-
import { AllKeys, DataSettingConfig, FormExposed, FormModelField, FormModelItem, FormProps, IFormModel, ModelData, ModelRules, _FormExposed } from "./form.js";
|
|
27
28
|
import { TableColumn, TableColumnAlign, TableColumnNode, TableColumnRenderContext, TableColumnSlotsScope, TableEmits, TableExposed, TableProps, TableRow, TableRowSlotsScope, TableSummaryContext, _TableExposed } from "./table.js";
|
|
28
29
|
import { BatchEditColumn, BatchEditEmits, BatchEditExposed, BatchEditFeature, BatchEditProps, _BatchEditExposed } from "./batch-edit.js";
|
|
29
30
|
import { BreadcrumbEmits, BreadcrumbExposed, BreadcrumbItem, BreadcrumbProps, BreadcrumbSlotScope, _BreadcrumbExposed } from "./breadcrumb.js";
|
|
@@ -34,6 +35,7 @@ import { FloatButtonEmits, FloatButtonExposed, FloatButtonItem, FloatButtonProps
|
|
|
34
35
|
import { CalendarDay, CalendarEmits, CalendarExposed, CalendarMonth, CalendarProps, CalendarYear, _CalendarExposed } from "./calendar.js";
|
|
35
36
|
import { PaletteColorType, PaletteEmits, PaletteExposed, PaletteHSV, PaletteProps, PaletteRGB, _PaletteExposed } from "./palette.js";
|
|
36
37
|
import { InputEmits, InputExposed, InputProps, _InputExposed } from "./input.js";
|
|
38
|
+
import { FormExposed, FormProps, _FormExposed } from "./form.js";
|
|
37
39
|
import { UploaderEmits, UploaderExposed, UploaderProps, _UploaderExposed } from "./file-picker.js";
|
|
38
40
|
import { PopEmits, PopExposed, PopProps, _PopExposed } from "./pop.js";
|
|
39
41
|
import { GridInputEmits, GridInputExposed, GridInputProps, _GridInputExposed } from "./grid-input.js";
|
|
@@ -81,7 +83,7 @@ export type * from "@veltra/utils";
|
|
|
81
83
|
|
|
82
84
|
//#region src/types/index.d.ts
|
|
83
85
|
declare namespace index_d_exports {
|
|
84
|
-
export { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps,
|
|
86
|
+
export { ActionEmits, ActionExposed, ActionGroupExposed, ActionGroupProps, ActionProps, AnimationEmits, AnimationExposed, AnimationProps, AutoCompleteEmits, AutoCompleteExposed, AutoCompleteProps, BadgeEmits, BadgeExposed, BadgeProps, BarType, BatchEditColumn, BatchEditEmits, BatchEditExposed, BatchEditFeature, BatchEditProps, BreadcrumbEmits, BreadcrumbExposed, BreadcrumbItem, BreadcrumbProps, BreadcrumbSlotScope, BreakCols, Breakpoint, ButtonEmits, ButtonExposed, ButtonProps, ButtonType, CalendarDay, CalendarEmits, CalendarExposed, CalendarMonth, CalendarProps, CalendarYear, CardActionProps, CardContentProps, CardCoverProps, CardEmits, CardExposed, CardProps, CascadeEmits, CascadeExposed, CascadeNode, CascadeProps, CheckTagEmits, CheckTagExposed, CheckTagProps, CheckboxButtonEmits, CheckboxButtonProps, CheckboxEmits, CheckboxExposed, CheckboxGroupEmits, CheckboxGroupExposed, CheckboxGroupProps, CheckboxProps, CodeEditorEmits, CodeEditorExposed, CodeEditorLang, CodeEditorProps, CollapseEmits, CollapseItemProps, CollapseModelValue, CollapseProps, CollapseValue, ConditionConnector, ConditionEditorEmits, ConditionEditorExposed, ConditionEditorProps, ConditionExpression, ConditionField, ConditionGroup, ConditionLeaf, ConditionNode, ConditionValue, ContextmenuEmits, ContextmenuExposed, ContextmenuItem, ContextmenuProps, CssTransitionEmits, CssTransitionExposed, CssTransitionProps, DatePanelEmits, DatePanelProps, DatePickerEmits, DatePickerExposed, DatePickerProps, DateRangePickerEmits, DateRangePickerExposed, DateRangePickerProps, DialogEmits, DialogExposed, DialogProps, DialogTransition, DrawerDirection, DrawerEmits, DrawerExposed, DrawerMode, DrawerProps, DropdownEmits, DropdownExposed, DropdownProps, EmptyEmits, EmptyExposed, EmptyProps, ExpressionEditorEmits, ExpressionEditorExposed, ExpressionEditorProps, ExpressionSelectableLevels, FileViewerEmits, FileViewerExposed, FileViewerItem, FileViewerKind, FileViewerProps, FloatButtonEmits, FloatButtonExposed, FloatButtonItem, FloatButtonProps, FormExposed, FormFieldComponentProps, FormItemEmits, FormItemExposed, FormItemProps, FormProps, GanttChartEmits, GanttChartExposed, GanttChartProps, GridEmits, GridExposed, GridInputEmits, GridInputExposed, GridInputProps, GridItemProps, GridProps, GroupInputEmits, GroupInputExposed, GroupInputProps, IconEmits, IconExposed, IconProps, InputEmits, InputExposed, InputProps, LayoutEmits, LayoutExposed, LayoutProps, ListEmits, ListExposed, ListProps, LoadingEmits, LoadingExposed, LoadingProps, LoadingType, MenuEmits, MenuExposed, MenuItem, MenuProps, Message, MessageConfirmEmits, MessageConfirmExposed, MessageConfirmProps, MessageEmits, MessageExposed, MessageInstance, MessageOptions, MessageProps, MessageType, MultiAutoCompleteEmits, MultiAutoCompleteExposed, MultiAutoCompleteProps, MultiSelectEmits, MultiSelectExposed, MultiSelectProps, MultiTreeSelectEmits, MultiTreeSelectExposed, MultiTreeSelectProps, NodeRenderExposed, NodeRenderProps, NotificationEmits, NotificationExposed, NotificationProps, NumberEmits, NumberExposed, NumberInputEmits, NumberInputExposed, NumberInputProps, NumberProps, NumberRangeInputEmits, NumberRangeInputExposed, NumberRangeInputProps, NumberRangeTuple, PaginatorEmits, PaginatorExposed, PaginatorProps, PaletteColorType, PaletteEmits, PaletteExposed, PaletteHSV, PaletteProps, PaletteRGB, PanelItem, PanelType, PasswordInputEmits, PasswordInputExposed, PasswordInputProps, PopConfirmEmits, PopConfirmExposed, PopConfirmProps, PopEmits, PopExposed, PopProps, PresetRule, ProgressEmits, ProgressExposed, ProgressNodesEmits, ProgressNodesExposed, ProgressNodesProps, ProgressProps, QuickBatchEditEmits, QuickBatchEditExposed, QuickBatchEditProps, RadioEmits, RadioExposed, RadioGroupEmits, RadioGroupExposed, RadioGroupProps, RadioProps, RichTextEditorEmits, RichTextEditorExposed, RichTextEditorProps, RichTextFormat, ScrollEmits, ScrollExposed, ScrollPosition, ScrollProps, SelectEmits, SelectExposed, SelectProps, SliderEmits, SliderExposed, SliderProps, StepsEmits, StepsExposed, StepsProps, StepsSlotScope, SwitchEmits, SwitchExposed, SwitchProps, TabItem, TableColumn, TableColumnAlign, TableColumnNode, TableColumnRenderContext, TableColumnSlotsScope, TableEditorEmits, TableEditorExposed, TableEditorProps, TableEmits, TableExposed, TableProps, TableRow, TableRowSlotsScope, TableSummaryContext, TabsEmits, TabsExposed, TabsHorizontalEmits, TabsHorizontalExposed, TabsHorizontalProps, TabsProps, TabsVerticalEmits, TabsVerticalExposed, TabsVerticalProps, TagEmits, TagExposed, TagProps, TextEditorEmits, TextEditorExposed, TextEditorProps, TextEmits, TextExposed, TextProps, TextareaEmits, TextareaExposed, TextareaProps, ThemeExposed, ThemeProps, TipAlign, TipDirection, TipEmits, TipExposed, TipProps, ToolbarItem, TreeEmit, TreeExposed, TreeNode, TreeNodeProps, TreeProps, TreeSelectEmits, TreeSelectExposed, TreeSelectProps, UploaderEmits, UploaderExposed, UploaderProps, ValidateRule, VariableItem, WatermarkEmits, WatermarkExposed, WatermarkProps, _ActionExposed, _ActionGroupExposed, _AnimationExposed, _AutoCompleteExposed, _BadgeExposed, _BatchEditExposed, _BreadcrumbExposed, _ButtonExposed, _CalendarExposed, _CardExposed, _CascadeExposed, _CheckTagExposed, _CodeEditorExposed, _ConditionEditorExposed, _ContextmenuExposed, _CssTransitionExposed, _DatePickerExposed, _DateRangePickerExposed, _DialogExposed, _DrawerExposed, _DropdownExposed, _EmptyExposed, _ExpressionEditorExposed, _FileViewerExposed, _FloatButtonExposed, _FormExposed, _GanttChartExposed, _GridExposed, _GridInputExposed, _GroupInputExposed, _InputExposed, _LayoutExposed, _ListExposed, _LoadingExposed, _MenuExposed, _MessageConfirmExposed, _MessageExposed, _MultiAutoCompleteExposed, _MultiSelectExposed, _MultiTreeSelectExposed, _NotificationExposed, _PaginatorExposed, _PaletteExposed, _PasswordInputExposed, _PopConfirmExposed, _PopExposed, _ProgressExposed, _ProgressNodesExposed, _QuickBatchEditExposed, _RadioExposed, _RadioGroupExposed, _RichTextEditorExposed, _ScrollExposed, _SelectExposed, _SliderExposed, _StepsExposed, _SwitchExposed, _TableEditorExposed, _TableExposed, _TabsExposed, _TabsHorizontalExposed, _TabsVerticalExposed, _TextEditorExposed, _TextExposed, _TextareaExposed, _ThemeExposed, _TipExposed, _TreeExposed, _TreeSelectExposed, _UploaderExposed, _WatermarkExposed };
|
|
85
87
|
}
|
|
86
88
|
import * as import__veltra_utils from "@veltra/utils";
|
|
87
89
|
//#endregion
|
package/dist/types/input.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { ShallowRef } from "vue";
|
|
2
|
-
import { DeconstructValue
|
|
3
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
3
4
|
|
|
4
5
|
//#region src/types/input.d.ts
|
|
5
6
|
/** 输入框组件属性 */
|
|
6
|
-
interface InputProps extends
|
|
7
|
+
interface InputProps extends FormFieldComponentProps {
|
|
7
8
|
/** modelValue */
|
|
8
9
|
modelValue?: string;
|
|
9
10
|
/** 占位符 */
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { CSSProperties } from "vue";
|
|
2
|
-
import { DeconstructValue
|
|
3
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
3
4
|
|
|
4
5
|
//#region src/types/multi-select.d.ts
|
|
5
6
|
/** multi-select组件属性 */
|
|
6
|
-
interface MultiSelectProps extends
|
|
7
|
+
interface MultiSelectProps extends FormFieldComponentProps {
|
|
7
8
|
/** 绑定值 */
|
|
8
9
|
modelValue?: Array<any>;
|
|
9
10
|
/** 列表选项 */
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { TreeProps } from "./tree.js";
|
|
2
3
|
import { CSSProperties } from "vue";
|
|
3
|
-
import { DeconstructValue
|
|
4
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
4
5
|
|
|
5
6
|
//#region src/types/multi-tree-select.d.ts
|
|
6
7
|
/** 树形多选组件组件属性 */
|
|
7
|
-
interface MultiTreeSelectProps extends
|
|
8
|
+
interface MultiTreeSelectProps extends FormFieldComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
|
|
8
9
|
modelValue?: (string | number)[];
|
|
9
10
|
/**自定义占位文字 */
|
|
10
11
|
placeholder?: string;
|
package/dist/types/palette.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/palette.d.ts
|
|
4
5
|
/** 色调 */
|
|
@@ -16,7 +17,7 @@ interface PaletteHSV {
|
|
|
16
17
|
/** 调色盘组件颜色类型 */
|
|
17
18
|
type PaletteColorType = 'HEX' | 'RGB';
|
|
18
19
|
/** 调色盘组件属性 */
|
|
19
|
-
interface PaletteProps extends
|
|
20
|
+
interface PaletteProps extends FormFieldComponentProps {
|
|
20
21
|
modelValue?: string;
|
|
21
22
|
disabled?: boolean;
|
|
22
23
|
readonly?: boolean;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/radio-group.d.ts
|
|
4
5
|
/** 单选框默认父组件组件属性 */
|
|
5
|
-
interface RadioGroupProps extends
|
|
6
|
+
interface RadioGroupProps extends FormFieldComponentProps {
|
|
6
7
|
/** 值 */
|
|
7
8
|
modelValue?: any;
|
|
8
9
|
/** 单选框项 */
|
package/dist/types/radio.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/radio.d.ts
|
|
4
5
|
/** 单选框组件属性 */
|
|
5
|
-
interface RadioProps extends
|
|
6
|
+
interface RadioProps extends FormFieldComponentProps {
|
|
6
7
|
/** 单选框值 */
|
|
7
8
|
value?: any;
|
|
8
9
|
/** 文本 */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/rich-text-editor.d.ts
|
|
4
5
|
/** 富文本数据格式 */
|
|
@@ -6,7 +7,7 @@ type RichTextFormat = 'html' | 'json';
|
|
|
6
7
|
/** 工具栏项 */
|
|
7
8
|
type ToolbarItem = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'code' | 'heading' | 'bullet-list' | 'ordered-list' | 'blockquote' | 'code-block' | 'link' | 'undo' | 'redo' | '|';
|
|
8
9
|
/** 富文本编辑器组件属性 */
|
|
9
|
-
interface RichTextEditorProps extends
|
|
10
|
+
interface RichTextEditorProps extends FormFieldComponentProps {
|
|
10
11
|
modelValue?: string;
|
|
11
12
|
/** 数据格式:html 或 json */
|
|
12
13
|
format?: RichTextFormat;
|
package/dist/types/select.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { CSSProperties, ShallowRef } from "vue";
|
|
2
|
-
import { DeconstructValue
|
|
3
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
3
4
|
|
|
4
5
|
//#region src/types/select.d.ts
|
|
5
6
|
/** 选择器组件属性 */
|
|
6
|
-
interface SelectProps extends
|
|
7
|
+
interface SelectProps extends FormFieldComponentProps {
|
|
7
8
|
/** 绑定值 */
|
|
8
9
|
modelValue?: any;
|
|
9
10
|
/** 文本内容 */
|
package/dist/types/slider.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/slider.d.ts
|
|
4
5
|
/** 滑块组件属性 */
|
|
5
|
-
interface SliderProps<T extends number | [number, number]> extends
|
|
6
|
+
interface SliderProps<T extends number | [number, number]> extends FormFieldComponentProps {
|
|
6
7
|
modelValue?: T;
|
|
7
8
|
/**
|
|
8
9
|
* 最小值
|
package/dist/types/switch.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/switch.d.ts
|
|
4
5
|
/** 开关组件属性 */
|
|
5
|
-
interface SwitchProps extends
|
|
6
|
+
interface SwitchProps extends FormFieldComponentProps {
|
|
6
7
|
/** 开关状态 */
|
|
7
8
|
modelValue?: boolean;
|
|
8
9
|
/** 打开时显示的文字 */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/text-editor.d.ts
|
|
4
5
|
/** text-editor组件属性 */
|
|
@@ -6,7 +7,7 @@ interface BarType {
|
|
|
6
7
|
content: string;
|
|
7
8
|
bar: string;
|
|
8
9
|
}
|
|
9
|
-
interface TextEditorProps extends
|
|
10
|
+
interface TextEditorProps extends FormFieldComponentProps {
|
|
10
11
|
modelValue?: string;
|
|
11
12
|
placeholder?: string;
|
|
12
13
|
toolbar?: BarType[];
|
package/dist/types/textarea.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
2
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
2
3
|
|
|
3
4
|
//#region src/types/textarea.d.ts
|
|
4
5
|
/** textarea组件属性 */
|
|
5
|
-
interface TextareaProps extends
|
|
6
|
+
interface TextareaProps extends FormFieldComponentProps {
|
|
6
7
|
/**
|
|
7
8
|
* 文本域的值
|
|
8
9
|
*/
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { FormFieldComponentProps } from "./form-field.js";
|
|
1
2
|
import { TreeProps } from "./tree.js";
|
|
2
3
|
import { CSSProperties } from "vue";
|
|
3
|
-
import { DeconstructValue
|
|
4
|
+
import { DeconstructValue } from "@veltra/utils";
|
|
4
5
|
|
|
5
6
|
//#region src/types/tree-select.d.ts
|
|
6
7
|
/** 树形选择器组件属性 */
|
|
7
|
-
interface TreeSelectProps extends
|
|
8
|
+
interface TreeSelectProps extends FormFieldComponentProps, Omit<TreeProps, 'selected' | 'checked' | 'selectable' | 'checkable'> {
|
|
8
9
|
modelValue?: string | number;
|
|
9
10
|
/** 自定义占位文字 */
|
|
10
11
|
placeholder?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltra/desktop",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"src"
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
"@cat-kit/core": ">=1.1.6",
|
|
69
69
|
"@cat-kit/excel": ">=1.0.0",
|
|
70
70
|
"@cat-kit/fe": "^1.1.6",
|
|
71
|
-
"@veltra/compositions": "1.
|
|
72
|
-
"@veltra/directives": "1.
|
|
73
|
-
"@veltra/icons": "1.
|
|
74
|
-
"@veltra/styles": "1.
|
|
75
|
-
"@veltra/utils": "1.
|
|
71
|
+
"@veltra/compositions": "1.2.0",
|
|
72
|
+
"@veltra/directives": "1.2.0",
|
|
73
|
+
"@veltra/icons": "1.2.0",
|
|
74
|
+
"@veltra/styles": "1.2.0",
|
|
75
|
+
"@veltra/utils": "1.2.0",
|
|
76
76
|
"vue": ">=3.5.0"
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -26,23 +26,20 @@
|
|
|
26
26
|
<u-scroll always :class="cls.e('form-body')" :key="bodyKey">
|
|
27
27
|
<transition name="fade" appear mode="out-in">
|
|
28
28
|
<u-form
|
|
29
|
+
ref="formComponentRef"
|
|
29
30
|
:model="props.model"
|
|
30
31
|
:readonly="props.readonly"
|
|
31
32
|
@keydown="handleFormKeydown"
|
|
32
33
|
:label-width="props.labelWidth"
|
|
33
34
|
>
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
index: state.row?.index
|
|
43
|
-
}"
|
|
44
|
-
/>
|
|
45
|
-
</template>
|
|
35
|
+
<slot
|
|
36
|
+
v-bind="{
|
|
37
|
+
row: state.row,
|
|
38
|
+
depth: state.depth,
|
|
39
|
+
indexes: insertIndexes,
|
|
40
|
+
index: state.row?.index
|
|
41
|
+
}"
|
|
42
|
+
/>
|
|
46
43
|
</u-form>
|
|
47
44
|
</transition>
|
|
48
45
|
</u-scroll>
|
|
@@ -75,8 +72,9 @@
|
|
|
75
72
|
<script lang="ts" setup>
|
|
76
73
|
import { AddChild, Close, EditPen, Plus, View } from '@veltra/icons/normal'
|
|
77
74
|
import { bem } from '@veltra/utils'
|
|
78
|
-
import { computed, inject, type Component } from 'vue'
|
|
75
|
+
import { computed, inject, shallowRef, toRef, type Component } from 'vue'
|
|
79
76
|
|
|
77
|
+
import type { _FormExposed, FormExposed } from '../../types/form'
|
|
80
78
|
import { UButton } from '../button'
|
|
81
79
|
import { UForm } from '../form'
|
|
82
80
|
import { UIcon } from '../icon'
|
|
@@ -97,6 +95,15 @@ const {
|
|
|
97
95
|
dynamicFeatures
|
|
98
96
|
} = inject(BatchEditDIKey)!
|
|
99
97
|
|
|
98
|
+
const formComponentRef = shallowRef<FormExposed>()
|
|
99
|
+
|
|
100
|
+
defineExpose<_FormExposed>({
|
|
101
|
+
el: toRef(() => formComponentRef.value?.el),
|
|
102
|
+
validate: () => formComponentRef.value?.validate() ?? Promise.resolve(true),
|
|
103
|
+
clearValidate: () => formComponentRef.value?.clearValidate(),
|
|
104
|
+
reset: () => formComponentRef.value?.reset()
|
|
105
|
+
})
|
|
106
|
+
|
|
100
107
|
const creatable = computed(() => {
|
|
101
108
|
return (
|
|
102
109
|
state.type === 'create' &&
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
<BatchEditList :slots="slots" />
|
|
13
13
|
|
|
14
14
|
<!-- 编辑表单 -->
|
|
15
|
-
<BatchEditForm v-slot="scoped">
|
|
15
|
+
<BatchEditForm ref="formRef" v-slot="scoped">
|
|
16
16
|
<!-- @vue-ignore -->
|
|
17
17
|
<slot name="form" v-bind="scoped" />
|
|
18
18
|
</BatchEditForm>
|
|
19
19
|
</u-layout>
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
|
-
<script lang="ts" setup
|
|
22
|
+
<script lang="ts" setup>
|
|
23
23
|
import { bem } from '@veltra/utils'
|
|
24
24
|
import { computed, inject, provide, shallowRef, watch } from 'vue'
|
|
25
25
|
|
|
@@ -27,11 +27,11 @@ import type {
|
|
|
27
27
|
BatchEditEmits,
|
|
28
28
|
BatchEditFeature,
|
|
29
29
|
BatchEditProps,
|
|
30
|
-
IFormModel,
|
|
31
30
|
TableColumnSlotsScope,
|
|
32
31
|
TableExposed,
|
|
33
32
|
TableRow
|
|
34
33
|
} from '../../types'
|
|
34
|
+
import type { FormExposed } from '../../types/form'
|
|
35
35
|
import { DialogDIKey } from '../dialog/di'
|
|
36
36
|
import { ULayout } from '../layout'
|
|
37
37
|
import BatchEditForm from './batch-edit-form.vue'
|
|
@@ -41,7 +41,7 @@ import { useEdit } from './use-edit'
|
|
|
41
41
|
|
|
42
42
|
defineOptions({ name: 'BatchEdit' })
|
|
43
43
|
|
|
44
|
-
const props = withDefaults(defineProps<BatchEditProps
|
|
44
|
+
const props = withDefaults(defineProps<BatchEditProps>(), {
|
|
45
45
|
cols: () => ['1fr', '420px'],
|
|
46
46
|
mode: 'normal'
|
|
47
47
|
})
|
|
@@ -99,9 +99,7 @@ const slots = defineSlots<
|
|
|
99
99
|
{
|
|
100
100
|
form?: (props: {
|
|
101
101
|
/** 表单数据 */
|
|
102
|
-
data:
|
|
103
|
-
/** 表单模型 */
|
|
104
|
-
model: Model
|
|
102
|
+
data: Record<string, any> | undefined
|
|
105
103
|
/** 当前编辑的层级 */
|
|
106
104
|
depth?: number
|
|
107
105
|
/** 当前编辑的行 */
|
|
@@ -119,8 +117,9 @@ const slots = defineSlots<
|
|
|
119
117
|
const cls = bem('batch-edit')
|
|
120
118
|
|
|
121
119
|
const tableRef = shallowRef<TableExposed>()
|
|
120
|
+
const formRef = shallowRef<FormExposed>()
|
|
122
121
|
|
|
123
|
-
const editCtx = useEdit({ props, emit, tableRef })
|
|
122
|
+
const editCtx = useEdit({ props, emit, tableRef, formRef })
|
|
124
123
|
|
|
125
124
|
const { state, handleClose, handleSave, handleDelete, handleCreate } = editCtx
|
|
126
125
|
|
|
@@ -5,7 +5,6 @@ import type {
|
|
|
5
5
|
BatchEditEmits,
|
|
6
6
|
BatchEditFeature,
|
|
7
7
|
BatchEditProps,
|
|
8
|
-
IFormModel,
|
|
9
8
|
TableExposed,
|
|
10
9
|
TableRow
|
|
11
10
|
} from '../../types'
|
|
@@ -13,7 +12,7 @@ import type { EditReturned } from './use-edit'
|
|
|
13
12
|
export const BatchEditDIKey: InjectionKey<
|
|
14
13
|
{
|
|
15
14
|
cls: BEM<'batch-edit', 'u-'>
|
|
16
|
-
props: BatchEditProps
|
|
15
|
+
props: BatchEditProps
|
|
17
16
|
emit: BatchEditEmits
|
|
18
17
|
tableRef: ShallowRef<TableExposed | undefined>
|
|
19
18
|
staticFeatures: ComputedRef<Set<BatchEditFeature>>
|