gepic
Version:
基于vue3的设计器,可视化开发页面表单
465 lines (464 loc) • 25.8 kB
TypeScript
import { ComponentSchema, PageSchema } from '../../../types/epic-designer';
import { DesignerProps } from './types';
/**
* 接受一个PageSchema对象作为参数。根据传入的schemas和script属性,更新页面对应的数据
* @param pageSchema
*/
declare function setData(schema: PageSchema): void;
/**
* 返回当前页面数据的 PageSchema 对象,包含页面当前的 schemas 和 script 数据。
*/
declare function getData(): PageSchema;
/**
* 重置页面数据为默认数据。
*/
declare function reset(): void;
/**
* 保存数据
*/
declare function handleSave(): void;
/**
* 预览
*/
declare function handlePreview(): void;
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: {
header?(_: {}): any;
'header-prefix'?(_: {}): any;
'header-prefix'?(_: {}): any;
'header-title'?(_: {}): any;
'header-right-prefix'?(_: {}): any;
'header-right-action'?(_: {}): any;
'header-right-suffix'?(_: {}): any;
};
refs: {
previewRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
hideConfirm?: boolean;
width?: string;
}> & Readonly<{}>, {
handleOpen: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
width: string;
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
kb: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
pageSchema: PageSchema;
formData?: import('../../../types/epic-designer').FormDataModel;
disabled?: boolean;
}> & Readonly<{
onReady?: ((...args: unknown[] & []) => any) | undefined;
}>, {
ready: import('vue').Ref<boolean, boolean>;
pageManager: {
componentInstances: import('vue').Ref<Record<string, import('vue').ComponentPublicInstance>, Record<string, import('vue').ComponentPublicInstance>>;
funcs: import('vue').Ref<Record<string, any>, Record<string, any>>;
isDesignMode: import('vue').Ref<boolean, boolean>;
defaultComponentIds: import('vue').Ref<string[], string[]>;
pageSchema: {
schemas: {
[x: string]: any;
id?: string | undefined;
type: string;
label?: string | undefined;
field?: string | undefined;
componentProps?: any;
slotName?: string | undefined;
rules?: {
[x: string]: any;
trigger?: string | string[] | undefined;
required?: boolean | undefined;
type?: string | undefined;
pattern?: (RegExp | string) | undefined;
min?: number | undefined;
max?: number | undefined;
len?: number | undefined;
enum?: Array<string | number | boolean | null | undefined> | undefined;
whitespace?: boolean | undefined;
validator?: string | undefined;
isValidator?: boolean | undefined;
message?: string | ((a?: string) => string) | undefined;
}[] | undefined;
noFormItem?: boolean | undefined;
input?: boolean | undefined;
children?: /*elided*/ any[] | undefined;
slots?: {
[slotName: string]: ComponentSchema[];
} | undefined;
show?: boolean | ((renderCallbackParams: import('../../../types/epic-designer').RenderCallbackParams) => boolean) | undefined;
editData?: any;
}[];
canvas?: {
width?: string | undefined;
height?: string | undefined;
mode?: string | undefined;
} | undefined;
script?: string | undefined;
};
setPageSchema: (schema: PageSchema) => void;
forms: {};
addFormData: (formData: Record<string, any>, formName?: string) => void;
setFormData: (formData: Record<string, any>, formName?: string) => void;
getComponentInstance: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
find: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
findAll: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance[];
addComponentInstance: (id: string, instance: import('vue').ComponentPublicInstance) => void;
removeComponentInstance: (id: string) => void;
setMethods: (scriptStr: string, outputError?: boolean) => void;
doActions: (actions: import('@epic-designer/utils').ActionsModel[], ...args: any) => void;
setDesignMode: (isDesign?: boolean) => void;
setDefaultComponentIds: (schemas: ComponentSchema[]) => void;
};
getData: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
setData: (data: import('../../../types/epic-designer').FormDataModel, formName?: string) => void;
validate: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
getForms: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
setForms: (data: Record<string, import('../../../types/epic-designer').FormDataModel>) => void;
validateAll: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
getFormInstance: (formName?: string) => Promise<any>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
ready: ((...args: unknown[]) => any) | (() => any);
}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<{
pageSchema: PageSchema;
formData?: import('../../../types/epic-designer').FormDataModel;
disabled?: boolean;
}> & Readonly<{
onReady?: ((...args: unknown[] & []) => any) | undefined;
}>, {
ready: import('vue').Ref<boolean, boolean>;
pageManager: {
componentInstances: import('vue').Ref<Record<string, import('vue').ComponentPublicInstance>, Record<string, import('vue').ComponentPublicInstance>>;
funcs: import('vue').Ref<Record<string, any>, Record<string, any>>;
isDesignMode: import('vue').Ref<boolean, boolean>;
defaultComponentIds: import('vue').Ref<string[], string[]>;
pageSchema: {
schemas: {
[x: string]: any;
id?: string | undefined;
type: string;
label?: string | undefined;
field?: string | undefined;
componentProps?: any;
slotName?: string | undefined;
rules?: {
[x: string]: any;
trigger?: string | string[] | undefined;
required?: boolean | undefined;
type?: string | undefined;
pattern?: (RegExp | string) | undefined;
min?: number | undefined;
max?: number | undefined;
len?: number | undefined;
enum?: Array<string | number | boolean | null | undefined> | undefined;
whitespace?: boolean | undefined;
validator?: string | undefined;
isValidator?: boolean | undefined;
message?: string | ((a?: string) => string) | undefined;
}[] | undefined;
noFormItem?: boolean | undefined;
input?: boolean | undefined;
children?: /*elided*/ any[] | undefined;
slots?: {
[slotName: string]: ComponentSchema[];
} | undefined;
show?: boolean | ((renderCallbackParams: import('../../../types/epic-designer').RenderCallbackParams) => boolean) | undefined;
editData?: any;
}[];
canvas?: {
width?: string | undefined;
height?: string | undefined;
mode?: string | undefined;
} | undefined;
script?: string | undefined;
};
setPageSchema: (schema: PageSchema) => void;
forms: {};
addFormData: (formData: Record<string, any>, formName?: string) => void;
setFormData: (formData: Record<string, any>, formName?: string) => void;
getComponentInstance: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
find: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
findAll: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance[];
addComponentInstance: (id: string, instance: import('vue').ComponentPublicInstance) => void;
removeComponentInstance: (id: string) => void;
setMethods: (scriptStr: string, outputError?: boolean) => void;
doActions: (actions: import('@epic-designer/utils').ActionsModel[], ...args: any) => void;
setDesignMode: (isDesign?: boolean) => void;
setDefaultComponentIds: (schemas: ComponentSchema[]) => void;
};
getData: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
setData: (data: import('../../../types/epic-designer').FormDataModel, formName?: string) => void;
validate: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
getForms: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
setForms: (data: Record<string, import('../../../types/epic-designer').FormDataModel>) => void;
validateAll: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
getFormInstance: (formName?: string) => Promise<any>;
}, {}, {}, {}, {}> | null;
monacoEditorRef: unknown;
}, any, import('vue').ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<{
hideConfirm?: boolean;
width?: string;
}> & Readonly<{}>, {
handleOpen: () => void;
}, {}, {}, {}, {
width: string;
}> | null;
};
rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<DesignerProps, {
revoke: {
recordList: import('vue').Ref<{
type: string;
componentSchema: string;
}[], import('@epic-designer/utils').RecordModel[] | {
type: string;
componentSchema: string;
}[]>;
undoList: import('vue').Ref<{
type: string;
componentSchema: string;
}[], import('@epic-designer/utils').RecordModel[] | {
type: string;
componentSchema: string;
}[]>;
currentRecord: import('vue').Ref<{
type: string;
componentSchema: string;
} | null, import('@epic-designer/utils').RecordModel | {
type: string;
componentSchema: string;
} | null>;
push: (componentSchema: ComponentSchema[], type?: string) => void;
undo: () => import('@epic-designer/utils').RecordModel | false;
redo: () => import('@epic-designer/utils').RecordModel | false;
reset: () => void;
};
setData: typeof setData;
getData: typeof getData;
reset: typeof reset;
preview: typeof handlePreview;
save: typeof handleSave;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
reset: (...args: any[]) => void;
ready: (...args: any[]) => void;
save: (...args: any[]) => void;
imported: (...args: any[]) => void;
toggleDeviceMode: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<DesignerProps> & Readonly<{
onReset?: ((...args: any[]) => any) | undefined;
onReady?: ((...args: any[]) => any) | undefined;
onSave?: ((...args: any[]) => any) | undefined;
onImported?: ((...args: any[]) => any) | undefined;
onToggleDeviceMode?: ((...args: any[]) => any) | undefined;
}>, {
title: string;
disabledZoom: boolean;
draggable: boolean;
hiddenHeader: boolean;
lockDefaultSchemaEdit: boolean;
formMode: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
previewRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
hideConfirm?: boolean;
width?: string;
}> & Readonly<{}>, {
handleOpen: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
width: string;
}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
kb: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
pageSchema: PageSchema;
formData?: import('../../../types/epic-designer').FormDataModel;
disabled?: boolean;
}> & Readonly<{
onReady?: ((...args: unknown[] & []) => any) | undefined;
}>, {
ready: import('vue').Ref<boolean, boolean>;
pageManager: {
componentInstances: import('vue').Ref<Record<string, import('vue').ComponentPublicInstance>, Record<string, import('vue').ComponentPublicInstance>>;
funcs: import('vue').Ref<Record<string, any>, Record<string, any>>;
isDesignMode: import('vue').Ref<boolean, boolean>;
defaultComponentIds: import('vue').Ref<string[], string[]>;
pageSchema: {
schemas: {
[x: string]: any;
id?: string | undefined;
type: string;
label?: string | undefined;
field?: string | undefined;
componentProps?: any;
slotName?: string | undefined;
rules?: {
[x: string]: any;
trigger?: string | string[] | undefined;
required?: boolean | undefined;
type?: string | undefined;
pattern?: (RegExp | string) | undefined;
min?: number | undefined;
max?: number | undefined;
len?: number | undefined;
enum?: Array<string | number | boolean | null | undefined> | undefined;
whitespace?: boolean | undefined;
validator?: string | undefined;
isValidator?: boolean | undefined;
message?: string | ((a?: string) => string) | undefined;
}[] | undefined;
noFormItem?: boolean | undefined;
input?: boolean | undefined;
children?: /*elided*/ any[] | undefined;
slots?: {
[slotName: string]: ComponentSchema[];
} | undefined;
show?: boolean | ((renderCallbackParams: import('../../../types/epic-designer').RenderCallbackParams) => boolean) | undefined;
editData?: any;
}[];
canvas?: {
width?: string | undefined;
height?: string | undefined;
mode?: string | undefined;
} | undefined;
script?: string | undefined;
};
setPageSchema: (schema: PageSchema) => void;
forms: {};
addFormData: (formData: Record<string, any>, formName?: string) => void;
setFormData: (formData: Record<string, any>, formName?: string) => void;
getComponentInstance: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
find: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
findAll: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance[];
addComponentInstance: (id: string, instance: import('vue').ComponentPublicInstance) => void;
removeComponentInstance: (id: string) => void;
setMethods: (scriptStr: string, outputError?: boolean) => void;
doActions: (actions: import('@epic-designer/utils').ActionsModel[], ...args: any) => void;
setDesignMode: (isDesign?: boolean) => void;
setDefaultComponentIds: (schemas: ComponentSchema[]) => void;
};
getData: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
setData: (data: import('../../../types/epic-designer').FormDataModel, formName?: string) => void;
validate: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
getForms: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
setForms: (data: Record<string, import('../../../types/epic-designer').FormDataModel>) => void;
validateAll: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
getFormInstance: (formName?: string) => Promise<any>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
ready: ((...args: unknown[]) => any) | (() => any);
}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<{
pageSchema: PageSchema;
formData?: import('../../../types/epic-designer').FormDataModel;
disabled?: boolean;
}> & Readonly<{
onReady?: ((...args: unknown[] & []) => any) | undefined;
}>, {
ready: import('vue').Ref<boolean, boolean>;
pageManager: {
componentInstances: import('vue').Ref<Record<string, import('vue').ComponentPublicInstance>, Record<string, import('vue').ComponentPublicInstance>>;
funcs: import('vue').Ref<Record<string, any>, Record<string, any>>;
isDesignMode: import('vue').Ref<boolean, boolean>;
defaultComponentIds: import('vue').Ref<string[], string[]>;
pageSchema: {
schemas: {
[x: string]: any;
id?: string | undefined;
type: string;
label?: string | undefined;
field?: string | undefined;
componentProps?: any;
slotName?: string | undefined;
rules?: {
[x: string]: any;
trigger?: string | string[] | undefined;
required?: boolean | undefined;
type?: string | undefined;
pattern?: (RegExp | string) | undefined;
min?: number | undefined;
max?: number | undefined;
len?: number | undefined;
enum?: Array<string | number | boolean | null | undefined> | undefined;
whitespace?: boolean | undefined;
validator?: string | undefined;
isValidator?: boolean | undefined;
message?: string | ((a?: string) => string) | undefined;
}[] | undefined;
noFormItem?: boolean | undefined;
input?: boolean | undefined;
children?: /*elided*/ any[] | undefined;
slots?: {
[slotName: string]: ComponentSchema[];
} | undefined;
show?: boolean | ((renderCallbackParams: import('../../../types/epic-designer').RenderCallbackParams) => boolean) | undefined;
editData?: any;
}[];
canvas?: {
width?: string | undefined;
height?: string | undefined;
mode?: string | undefined;
} | undefined;
script?: string | undefined;
};
setPageSchema: (schema: PageSchema) => void;
forms: {};
addFormData: (formData: Record<string, any>, formName?: string) => void;
setFormData: (formData: Record<string, any>, formName?: string) => void;
getComponentInstance: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
find: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance | null;
findAll: (queryValue: string, queryField?: string) => import('vue').ComponentPublicInstance[];
addComponentInstance: (id: string, instance: import('vue').ComponentPublicInstance) => void;
removeComponentInstance: (id: string) => void;
setMethods: (scriptStr: string, outputError?: boolean) => void;
doActions: (actions: import('@epic-designer/utils').ActionsModel[], ...args: any) => void;
setDesignMode: (isDesign?: boolean) => void;
setDefaultComponentIds: (schemas: ComponentSchema[]) => void;
};
getData: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
setData: (data: import('../../../types/epic-designer').FormDataModel, formName?: string) => void;
validate: (formName?: string) => Promise<import('../../../types/epic-designer').FormDataModel>;
getForms: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
setForms: (data: Record<string, import('../../../types/epic-designer').FormDataModel>) => void;
validateAll: () => Promise<Record<string, import('../../../types/epic-designer').FormDataModel>>;
getFormInstance: (formName?: string) => Promise<any>;
}, {}, {}, {}, {}> | null;
monacoEditorRef: unknown;
}, any, import('vue').ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<{
hideConfirm?: boolean;
width?: string;
}> & Readonly<{}>, {
handleOpen: () => void;
}, {}, {}, {}, {
width: string;
}> | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};