@gct-paas/schema 0.1.4-dev.8 → 0.1.5-dev.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/index.esm.min.js +1 -0
- package/es/constants/design.d.ts +26 -0
- package/es/constants/design.mjs +30 -0
- package/es/constants/index.d.ts +28 -0
- package/es/constants/index.mjs +411 -0
- package/es/index.d.ts +1 -1
- package/es/index.mjs +13 -10
- package/es/interface/common/data-linkage-config.d.ts +17 -0
- package/es/interface/design/i-design-container-node.d.ts +13 -0
- package/es/interface/design/i-design-data.d.ts +44 -0
- package/es/interface/design/i-design-editor-data.d.ts +20 -0
- package/es/interface/design/i-design-editor-node.d.ts +15 -0
- package/es/interface/design/i-design-node-data.d.ts +19 -0
- package/es/interface/design/i-design-node.d.ts +80 -0
- package/es/interface/design/i-design-page-node-data.d.ts +15 -0
- package/es/interface/design/i-design-tree-item.d.ts +26 -0
- package/es/interface/design/i-drag-data-item.d.ts +46 -0
- package/es/interface/design/index.d.ts +9 -0
- package/es/interface/designer.d.ts +8 -7
- package/es/interface/index.d.ts +7 -2
- package/es/interface/modal/i-modal-body.d.ts +1 -1
- package/es/interface/modal/i-modal.d.ts +1 -1
- package/es/interface/relationship-diagram-config/i-relationship-diagram-node.d.ts +82 -0
- package/es/interface/relationship-diagram-config/i-rule-config.d.ts +135 -0
- package/es/interface/relationship-diagram-config/index.d.ts +2 -0
- package/es/interface/schema/index.d.ts +2 -0
- package/es/interface/schema/widget-props/i-button-props.d.ts +170 -0
- package/es/interface/schema/widget-props/i-card-list-props.d.ts +79 -0
- package/es/interface/schema/widget-props/i-display-props.d.ts +48 -0
- package/es/interface/schema/widget-props/i-form-container-props.d.ts +91 -0
- package/es/interface/schema/widget-props/i-form-input-props.d.ts +409 -0
- package/es/interface/schema/widget-props/i-layout-props.d.ts +77 -0
- package/es/interface/schema/widget-props/i-search-widget-props.d.ts +132 -0
- package/es/interface/schema/widget-props/i-table-column-props.d.ts +54 -0
- package/es/interface/schema/widget-props/i-table-props.d.ts +384 -0
- package/es/interface/schema/widget-props/index.d.ts +9 -0
- package/es/interface/schema/widget-types.d.ts +399 -0
- package/es/interface/widget/i-common.d.ts +2 -1
- package/es/interface/widget/i-editors.d.ts +3 -2
- package/es/interface/widget/i-events.d.ts +2 -9
- package/es/interface/widget/i-hooks-and-misc.d.ts +1 -0
- package/es/interface/widget/i-props.d.ts +14 -32
- package/es/interface/widget/i-schemas.d.ts +6 -4
- package/es/interface/widget/i-styles.d.ts +2 -1
- package/es/interface/widget/index.d.ts +9 -2
- package/es/interface/widget-info/i-designer-item-hooks.d.ts +21 -0
- package/es/interface/widget-info/i-designer-schema-exports.d.ts +13 -0
- package/es/interface/widget-info/i-widget-info-item.d.ts +78 -0
- package/es/interface/widget-info/i-widget-info.d.ts +19 -0
- package/es/interface/widget-info/index.d.ts +4 -0
- package/es/utils/field-editor-override-registry/field-editor-override-registry.d.ts +36 -0
- package/es/utils/field-editor-override-registry/field-editor-override-registry.mjs +29 -0
- package/es/utils/index.d.ts +4 -2
- package/es/utils/index.mjs +6 -0
- package/es/utils/schema/index.d.ts +38 -1
- package/es/utils/schema/index.mjs +83 -5
- package/es/utils/schema/search.d.ts +9 -0
- package/es/utils/schema/search.mjs +146 -0
- package/es/utils/schema/utils.d.ts +21 -0
- package/es/utils/schema/utils.mjs +182 -0
- package/es/utils/schema-style/index.mjs +203 -127
- package/es/utils/widget-info/widget-info.d.ts +104 -0
- package/es/utils/widget-info/widget-info.mjs +151 -0
- package/package.json +12 -13
- package/dist/index.esm.min.mjs +0 -237
- package/dist/index.min.cjs +0 -1
- package/dist/index.system.min.js +0 -1
- package/es/schema/common-config/common-style.d.ts +0 -3
- package/es/schema/common-config/common-style.mjs +0 -85
- package/es/schema/index.d.ts +0 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { LowCodeWidget } from '../widget';
|
|
2
|
+
import { IDesignerItemHooks } from './i-designer-item-hooks';
|
|
3
|
+
/**
|
|
4
|
+
* 设计界面单一组件配置信息
|
|
5
|
+
*
|
|
6
|
+
* @export
|
|
7
|
+
* @interface IWidgetInfoItem
|
|
8
|
+
*/
|
|
9
|
+
export interface IWidgetInfoItem {
|
|
10
|
+
/**
|
|
11
|
+
* 套件类别,用于识别可使用的系统。取 getApp 中的 suiteKey,例如 MedPro 使用 kit=['MEDPRO']
|
|
12
|
+
*
|
|
13
|
+
* @author zhanghanrui
|
|
14
|
+
* @date 2024-05-28 09:05:32
|
|
15
|
+
* @type {string[]}
|
|
16
|
+
*/
|
|
17
|
+
kit?: string[];
|
|
18
|
+
/**
|
|
19
|
+
* 项拖拽钩子
|
|
20
|
+
*
|
|
21
|
+
* @type {IDesignerItemHooks}
|
|
22
|
+
*/
|
|
23
|
+
hooks?: IDesignerItemHooks;
|
|
24
|
+
/**
|
|
25
|
+
* 白名单,只允许在白名单中的组件拖入
|
|
26
|
+
*
|
|
27
|
+
* @type {(string | RegExp)[]}
|
|
28
|
+
*/
|
|
29
|
+
whiteList?: (string | RegExp)[];
|
|
30
|
+
/**
|
|
31
|
+
* 黑名单,不允许拖入黑名单中的组件
|
|
32
|
+
*
|
|
33
|
+
* @type {(string | RegExp)[]}
|
|
34
|
+
*/
|
|
35
|
+
blackList?: (string | RegExp)[];
|
|
36
|
+
/**
|
|
37
|
+
* 基础组件描述
|
|
38
|
+
*
|
|
39
|
+
* @type {LowCodeWidget.BasicSchema}
|
|
40
|
+
*/
|
|
41
|
+
schema: LowCodeWidget.BasicSchema;
|
|
42
|
+
/**
|
|
43
|
+
* 组件支持配置事件描述
|
|
44
|
+
*
|
|
45
|
+
* @type {LowCodeWidget.EventsType[]}
|
|
46
|
+
*/
|
|
47
|
+
events?: LowCodeWidget.EventsType[];
|
|
48
|
+
/**
|
|
49
|
+
* 组件右侧属性表单模型描述
|
|
50
|
+
*
|
|
51
|
+
* @type {LowCodeWidget.PropEditor[]}
|
|
52
|
+
*/
|
|
53
|
+
propEditors: LowCodeWidget.PropEditor[];
|
|
54
|
+
/**
|
|
55
|
+
* 保存时钩子函数
|
|
56
|
+
*
|
|
57
|
+
* @type {LowCodeWidget.RunCallback}
|
|
58
|
+
*/
|
|
59
|
+
callback?: LowCodeWidget.RunCallback;
|
|
60
|
+
/**
|
|
61
|
+
* 拖入时钩子函数
|
|
62
|
+
*
|
|
63
|
+
* @type {LowCodeWidget.beforeCreate}
|
|
64
|
+
*/
|
|
65
|
+
beforeCreate?: LowCodeWidget.beforeCreate;
|
|
66
|
+
/**
|
|
67
|
+
* 样式编辑器配置
|
|
68
|
+
*
|
|
69
|
+
* @type {LowCodeWidget.StyleEditor[]}
|
|
70
|
+
*/
|
|
71
|
+
styleEditors?: LowCodeWidget.StyleEditor[];
|
|
72
|
+
/**
|
|
73
|
+
* 设计页面配置信息
|
|
74
|
+
*
|
|
75
|
+
* @type {LowCodeWidget.DesignerConfig}
|
|
76
|
+
*/
|
|
77
|
+
designerConfig?: LowCodeWidget.DesignerConfig;
|
|
78
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExportWidgetBeforeCreate, ExportWidgetBlackList, ExportWidgetCallback, ExportWidgetDesignerConfig, ExportWidgetEvents, ExportWidgetHooks, ExportWidgetPropEditors, ExportWidgetSchema, ExportWidgetStyleEditors, ExportWidgetWhiteList } from './i-designer-schema-exports';
|
|
2
|
+
/**
|
|
3
|
+
* 设计界面单一组件配置信息
|
|
4
|
+
*
|
|
5
|
+
* @export
|
|
6
|
+
* @interface IWidgetInfo
|
|
7
|
+
*/
|
|
8
|
+
export interface IWidgetInfo {
|
|
9
|
+
events: ExportWidgetEvents;
|
|
10
|
+
propEditors: ExportWidgetPropEditors;
|
|
11
|
+
schema: ExportWidgetSchema;
|
|
12
|
+
callback: ExportWidgetCallback;
|
|
13
|
+
beforeCreate: ExportWidgetBeforeCreate;
|
|
14
|
+
styleEditors: ExportWidgetStyleEditors;
|
|
15
|
+
designerConfig: ExportWidgetDesignerConfig;
|
|
16
|
+
hooks: ExportWidgetHooks;
|
|
17
|
+
whiteList: ExportWidgetWhiteList;
|
|
18
|
+
blackList: ExportWidgetBlackList;
|
|
19
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LowCodeWidget } from '../../interface';
|
|
2
|
+
import { MaterialEnum } from '@gct-paas/core';
|
|
3
|
+
/** 事件覆写函数类型 */
|
|
4
|
+
export type EventsOverrideFn = (selected: LowCodeWidget.BasicSchema, defaultEvents: LowCodeWidget.EventsType[]) => LowCodeWidget.BasicEvents[];
|
|
5
|
+
/** 属性编辑器覆写函数类型 */
|
|
6
|
+
export type PropEditorOverrideFn = (selected: LowCodeWidget.BasicSchema, defaultList: LowCodeWidget.PropEditor[], preCompInfo?: LowCodeWidget.BasicSchema) => LowCodeWidget.PropEditor[] | undefined;
|
|
7
|
+
/** 样式编辑器覆写函数类型 */
|
|
8
|
+
export type StyleEditorOverrideFn = (selected: LowCodeWidget.BasicSchema, defaultWidget: LowCodeWidget.StyleEditor[]) => LowCodeWidget.StyleEditor[] | undefined;
|
|
9
|
+
/** 容器编辑器覆写配置 */
|
|
10
|
+
export interface IContainerEditorOverrides {
|
|
11
|
+
events?: EventsOverrideFn;
|
|
12
|
+
propEditor?: PropEditorOverrideFn;
|
|
13
|
+
styleEditor?: StyleEditorOverrideFn;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 字段编辑器覆写注册表
|
|
17
|
+
*
|
|
18
|
+
* 用于按物料类型注册和获取编辑器(事件、属性编辑器、样式编辑器)的覆写配置。
|
|
19
|
+
* 通过静态方法统一操作,保证全局唯一实例的注册中心语义清晰。
|
|
20
|
+
*/
|
|
21
|
+
export declare class FieldEditorOverrideRegistry {
|
|
22
|
+
/** 物料类型到编辑器覆写配置的映射 */
|
|
23
|
+
private static _registry;
|
|
24
|
+
/**
|
|
25
|
+
* 注册指定物料类型的编辑器覆写配置
|
|
26
|
+
* @param materialType 物料类型
|
|
27
|
+
* @param overrides 编辑器覆写配置
|
|
28
|
+
*/
|
|
29
|
+
static register(materialType: MaterialEnum, overrides: IContainerEditorOverrides): void;
|
|
30
|
+
/**
|
|
31
|
+
* 获取指定物料类型的编辑器覆写配置
|
|
32
|
+
* @param materialType 物料类型
|
|
33
|
+
* @returns 编辑器覆写配置,未注册时返回 undefined
|
|
34
|
+
*/
|
|
35
|
+
static get(materialType: MaterialEnum): IContainerEditorOverrides | undefined;
|
|
36
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/utils/field-editor-override-registry/field-editor-override-registry.ts
|
|
2
|
+
/**
|
|
3
|
+
* 字段编辑器覆写注册表
|
|
4
|
+
*
|
|
5
|
+
* 用于按物料类型注册和获取编辑器(事件、属性编辑器、样式编辑器)的覆写配置。
|
|
6
|
+
* 通过静态方法统一操作,保证全局唯一实例的注册中心语义清晰。
|
|
7
|
+
*/
|
|
8
|
+
var FieldEditorOverrideRegistry = class FieldEditorOverrideRegistry {
|
|
9
|
+
/** 物料类型到编辑器覆写配置的映射 */
|
|
10
|
+
static _registry = /* @__PURE__ */ new Map();
|
|
11
|
+
/**
|
|
12
|
+
* 注册指定物料类型的编辑器覆写配置
|
|
13
|
+
* @param materialType 物料类型
|
|
14
|
+
* @param overrides 编辑器覆写配置
|
|
15
|
+
*/
|
|
16
|
+
static register(materialType, overrides) {
|
|
17
|
+
FieldEditorOverrideRegistry._registry.set(materialType, overrides);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 获取指定物料类型的编辑器覆写配置
|
|
21
|
+
* @param materialType 物料类型
|
|
22
|
+
* @returns 编辑器覆写配置,未注册时返回 undefined
|
|
23
|
+
*/
|
|
24
|
+
static get(materialType) {
|
|
25
|
+
return FieldEditorOverrideRegistry._registry.get(materialType);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { FieldEditorOverrideRegistry };
|
package/es/utils/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from './field-editor-override-registry/field-editor-override-registry';
|
|
2
|
+
export * from './schema';
|
|
3
|
+
export * from './schema-style';
|
|
4
|
+
export * from './widget-info/widget-info';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LowCodeWidget } from '../../interface';
|
|
1
|
+
import { IBasicSchema, LowCodeWidget } from '../../interface';
|
|
2
2
|
/**
|
|
3
3
|
* 获取组件所属位置
|
|
4
4
|
*
|
|
@@ -9,3 +9,40 @@ import { LowCodeWidget } from '../../interface';
|
|
|
9
9
|
* @return {*}
|
|
10
10
|
*/
|
|
11
11
|
export declare function getCompPos(widget: LowCodeWidget.BasicSchema, fieldType: string, componentType: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 是否是表单字段类型
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @param {LowCodeWidget.BasicSchema} widget
|
|
17
|
+
* @return {boolean}
|
|
18
|
+
*/
|
|
19
|
+
export declare function isFormFieldType(widget: LowCodeWidget.BasicSchema): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 初始化国际化处理
|
|
22
|
+
*
|
|
23
|
+
* @export
|
|
24
|
+
* @param {LowCodeWidget.BasicSchema['props']} props
|
|
25
|
+
*/
|
|
26
|
+
export declare function transformI18n(props: LowCodeWidget.BasicSchema['props']): void;
|
|
27
|
+
/**
|
|
28
|
+
* 克隆组件schema
|
|
29
|
+
*
|
|
30
|
+
* @export
|
|
31
|
+
* @param {LowCodeWidget.BasicSchema} widgetSchema
|
|
32
|
+
* @return {*} {LowCodeWidget.BasicSchema}
|
|
33
|
+
*/
|
|
34
|
+
export declare function cloneWidget(widgetSchema: LowCodeWidget.BasicSchema): LowCodeWidget.BasicSchema;
|
|
35
|
+
/**
|
|
36
|
+
* 递归获取所有非字段组件
|
|
37
|
+
*
|
|
38
|
+
* @param {LowCodeWidget.BasicSchema} item
|
|
39
|
+
* @param {string[]} [types=[]]
|
|
40
|
+
* @returns {*} {string[]}
|
|
41
|
+
*/
|
|
42
|
+
export declare function deepFindNotField(item: IObject[]): {
|
|
43
|
+
[x: string]: any;
|
|
44
|
+
[x: symbol]: any;
|
|
45
|
+
}[];
|
|
46
|
+
export declare function setChildrenId(widget: IBasicSchema): void;
|
|
47
|
+
export * from './search';
|
|
48
|
+
export * from './utils';
|
|
@@ -1,7 +1,85 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { getWidgetInfo } from "../widget-info/widget-info.mjs";
|
|
2
|
+
import "./search.mjs";
|
|
3
|
+
import "./utils.mjs";
|
|
4
|
+
import { MaterialEnum, TreeHelper, buildShortUUID, t } from "@gct-paas/core";
|
|
5
|
+
import { cloneDeep, has } from "lodash-es";
|
|
6
|
+
//#region src/utils/schema/index.ts
|
|
7
|
+
/**
|
|
8
|
+
* 获取组件所属位置
|
|
9
|
+
*
|
|
10
|
+
* @export
|
|
11
|
+
* @param {LowCodeWidget.BasicSchema} widget
|
|
12
|
+
* @param {string} fieldType
|
|
13
|
+
* @param {string} componentType
|
|
14
|
+
* @return {*}
|
|
15
|
+
*/
|
|
3
16
|
function getCompPos(widget, fieldType, componentType) {
|
|
4
|
-
|
|
17
|
+
return widget.type === componentType && has(widget, "preLocation") && new RegExp(`^${fieldType}_`).test(widget.preLocation);
|
|
5
18
|
}
|
|
6
|
-
|
|
7
|
-
|
|
19
|
+
/**
|
|
20
|
+
* 是否是表单字段类型
|
|
21
|
+
*
|
|
22
|
+
* @export
|
|
23
|
+
* @param {LowCodeWidget.BasicSchema} widget
|
|
24
|
+
* @return {boolean}
|
|
25
|
+
*/
|
|
26
|
+
function isFormFieldType(widget) {
|
|
27
|
+
return [
|
|
28
|
+
MaterialEnum.MaterialFormField,
|
|
29
|
+
MaterialEnum.MaterialSubTableModalField,
|
|
30
|
+
MaterialEnum.DescriptionsFormField
|
|
31
|
+
].includes(widget.materialType);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 初始化国际化处理
|
|
35
|
+
*
|
|
36
|
+
* @export
|
|
37
|
+
* @param {LowCodeWidget.BasicSchema['props']} props
|
|
38
|
+
*/
|
|
39
|
+
function transformI18n(props) {
|
|
40
|
+
const reg = /^\$\{(\S+)\}$/;
|
|
41
|
+
for (const key in props) {
|
|
42
|
+
const value = props[key];
|
|
43
|
+
if (reg.test(value)) props[key] = t(value.match(reg)?.[1]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 克隆组件schema
|
|
48
|
+
*
|
|
49
|
+
* @export
|
|
50
|
+
* @param {LowCodeWidget.BasicSchema} widgetSchema
|
|
51
|
+
* @return {*} {LowCodeWidget.BasicSchema}
|
|
52
|
+
*/
|
|
53
|
+
function cloneWidget(widgetSchema) {
|
|
54
|
+
const instance = cloneDeep(widgetSchema);
|
|
55
|
+
instance.id = buildShortUUID(instance.type);
|
|
56
|
+
instance.alias = t(instance.name);
|
|
57
|
+
if (instance.formItem) instance.props.label = t(instance.name);
|
|
58
|
+
const widgetInfo = getWidgetInfo(instance.platform);
|
|
59
|
+
if (widgetInfo) widgetInfo.beforeCreate?.[instance.type]?.(instance);
|
|
60
|
+
transformI18n(instance.props);
|
|
61
|
+
return instance;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 递归获取所有非字段组件
|
|
65
|
+
*
|
|
66
|
+
* @param {LowCodeWidget.BasicSchema} item
|
|
67
|
+
* @param {string[]} [types=[]]
|
|
68
|
+
* @returns {*} {string[]}
|
|
69
|
+
*/
|
|
70
|
+
function deepFindNotField(item) {
|
|
71
|
+
return item.map((node) => ({ ...node })).filter((node) => {
|
|
72
|
+
if (node.props?.model) return predicate(node);
|
|
73
|
+
node.children = node.children && deepFindNotField(node.children);
|
|
74
|
+
return predicate(node);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
var predicate = (node) => !node.formItem;
|
|
78
|
+
function setChildrenId(widget) {
|
|
79
|
+
if (widget.children?.length) TreeHelper.eachTree(widget.children, (child) => {
|
|
80
|
+
child.id = buildShortUUID(child.type);
|
|
81
|
+
return child;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { cloneWidget, deepFindNotField, getCompPos, isFormFieldType, setChildrenId, transformI18n };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FIELD_TYPE } from '@gct-paas/core';
|
|
2
|
+
export declare const basicSearchAttrsUtils: {
|
|
3
|
+
ope: {
|
|
4
|
+
from: string;
|
|
5
|
+
to: string;
|
|
6
|
+
transform: (value: FIELD_TYPE) => import('@gct-paas/core').SEARCH_SERVICE[];
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare const transformField2SearchComponent: (fieldType: FIELD_TYPE) => IObject;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { SEARCH_TYPE } from "../../constants/index.mjs";
|
|
2
|
+
import { FIELD_TYPE, SearchComponents } from "@gct-paas/core";
|
|
3
|
+
//#region src/utils/schema/search.ts
|
|
4
|
+
var basicSearchAttrsUtils = { ope: [{
|
|
5
|
+
from: "fieldType",
|
|
6
|
+
to: "ope",
|
|
7
|
+
transform: (value) => {
|
|
8
|
+
return [...SEARCH_TYPE[value]?.default || []];
|
|
9
|
+
}
|
|
10
|
+
}] };
|
|
11
|
+
var transformField2SearchComponent = (fieldType) => {
|
|
12
|
+
return {
|
|
13
|
+
[FIELD_TYPE.PRIMARY_KEY]: {
|
|
14
|
+
searchCmpKey: SearchComponents.SearchInput,
|
|
15
|
+
attrsTransform: []
|
|
16
|
+
},
|
|
17
|
+
[FIELD_TYPE.ASSOCIATED_PRIMARY_KEY]: {
|
|
18
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
19
|
+
attrsTransform: []
|
|
20
|
+
},
|
|
21
|
+
[FIELD_TYPE.TEXT]: {
|
|
22
|
+
searchCmpKey: SearchComponents.SearchInput,
|
|
23
|
+
attrsTransform: []
|
|
24
|
+
},
|
|
25
|
+
[FIELD_TYPE.LONG_TEXT]: {
|
|
26
|
+
searchCmpKey: SearchComponents.SearchInput,
|
|
27
|
+
attrsTransform: []
|
|
28
|
+
},
|
|
29
|
+
[FIELD_TYPE.SERIAL]: {
|
|
30
|
+
searchCmpKey: SearchComponents.SearchInput,
|
|
31
|
+
attrsTransform: []
|
|
32
|
+
},
|
|
33
|
+
[FIELD_TYPE.DATE]: {
|
|
34
|
+
searchCmpKey: SearchComponents.SearchDate,
|
|
35
|
+
attrsTransform: []
|
|
36
|
+
},
|
|
37
|
+
[FIELD_TYPE.DATE_TIME]: {
|
|
38
|
+
searchCmpKey: SearchComponents.SearchDateTime,
|
|
39
|
+
attrsTransform: []
|
|
40
|
+
},
|
|
41
|
+
[FIELD_TYPE.TIME]: {
|
|
42
|
+
searchCmpKey: SearchComponents.SearchTime,
|
|
43
|
+
attrsTransform: []
|
|
44
|
+
},
|
|
45
|
+
[FIELD_TYPE.INTEGER]: {
|
|
46
|
+
searchCmpKey: SearchComponents.SearchNumberInput,
|
|
47
|
+
attrsTransform: []
|
|
48
|
+
},
|
|
49
|
+
[FIELD_TYPE.DOUBLE]: {
|
|
50
|
+
searchCmpKey: SearchComponents.SearchStringNumberInput,
|
|
51
|
+
attrsTransform: []
|
|
52
|
+
},
|
|
53
|
+
[FIELD_TYPE.LONG]: {
|
|
54
|
+
searchCmpKey: SearchComponents.SearchNumberInput,
|
|
55
|
+
attrsTransform: []
|
|
56
|
+
},
|
|
57
|
+
[FIELD_TYPE.DECIMAL]: {
|
|
58
|
+
searchCmpKey: SearchComponents.SearchStringNumberInput,
|
|
59
|
+
attrsTransform: []
|
|
60
|
+
},
|
|
61
|
+
[FIELD_TYPE.BOOLEAN]: {
|
|
62
|
+
searchCmpKey: SearchComponents.SearchSwitch,
|
|
63
|
+
attrsTransform: []
|
|
64
|
+
},
|
|
65
|
+
[FIELD_TYPE.ENUM]: {
|
|
66
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
67
|
+
attrsTransform: []
|
|
68
|
+
},
|
|
69
|
+
[FIELD_TYPE.ENUM_MULTI]: {
|
|
70
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
71
|
+
attrsTransform: []
|
|
72
|
+
},
|
|
73
|
+
[FIELD_TYPE.ORG_MULTI]: {
|
|
74
|
+
searchCmpKey: SearchComponents.SearchSelectDepartment,
|
|
75
|
+
attrsTransform: []
|
|
76
|
+
},
|
|
77
|
+
[FIELD_TYPE.USER_MULTI]: {
|
|
78
|
+
searchCmpKey: SearchComponents.SearchUserSelect,
|
|
79
|
+
attrsTransform: []
|
|
80
|
+
},
|
|
81
|
+
[FIELD_TYPE.ORG]: {
|
|
82
|
+
searchCmpKey: SearchComponents.SearchSelectDepartment,
|
|
83
|
+
attrsTransform: []
|
|
84
|
+
},
|
|
85
|
+
[FIELD_TYPE.USER]: {
|
|
86
|
+
searchCmpKey: SearchComponents.SearchUserSelect,
|
|
87
|
+
attrsTransform: []
|
|
88
|
+
},
|
|
89
|
+
[FIELD_TYPE.REF_MULTI]: {
|
|
90
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
91
|
+
attrsTransform: [{
|
|
92
|
+
from: "refModelType",
|
|
93
|
+
to: "refModelType"
|
|
94
|
+
}]
|
|
95
|
+
},
|
|
96
|
+
[FIELD_TYPE.REF]: {
|
|
97
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
98
|
+
attrsTransform: [{
|
|
99
|
+
from: "refModelType",
|
|
100
|
+
to: "refModelType"
|
|
101
|
+
}]
|
|
102
|
+
},
|
|
103
|
+
[FIELD_TYPE.RDO_REF]: {
|
|
104
|
+
searchCmpKey: SearchComponents.SearchRdoSelect,
|
|
105
|
+
attrsTransform: []
|
|
106
|
+
},
|
|
107
|
+
[FIELD_TYPE.TRANSACTION]: {
|
|
108
|
+
searchCmpKey: SearchComponents.SearchTransaction,
|
|
109
|
+
attrsTransform: []
|
|
110
|
+
},
|
|
111
|
+
[FIELD_TYPE.PRINTER]: {
|
|
112
|
+
searchCmpKey: SearchComponents.SearchPrinter,
|
|
113
|
+
attrsTransform: []
|
|
114
|
+
},
|
|
115
|
+
[FIELD_TYPE.RANGE_USER]: {
|
|
116
|
+
searchCmpKey: SearchComponents.SearchSelectRangUser,
|
|
117
|
+
attrsTransform: []
|
|
118
|
+
},
|
|
119
|
+
[FIELD_TYPE.MESSAGE_TMPL]: {
|
|
120
|
+
searchCmpKey: SearchComponents.SearchSelect,
|
|
121
|
+
attrsTransform: []
|
|
122
|
+
},
|
|
123
|
+
[FIELD_TYPE.LABEL_TEMPLATE_REF]: {
|
|
124
|
+
searchCmpKey: SearchComponents.SearchTmplTreeSelect,
|
|
125
|
+
attrsTransform: []
|
|
126
|
+
},
|
|
127
|
+
[FIELD_TYPE.DOCUMENT_TEMPLATE]: {
|
|
128
|
+
searchCmpKey: SearchComponents.SearchTmplTreeSelect,
|
|
129
|
+
attrsTransform: []
|
|
130
|
+
},
|
|
131
|
+
[FIELD_TYPE.ONLINE_FORM_TEMPLATE]: {
|
|
132
|
+
searchCmpKey: SearchComponents.SearchTmplTreeSelect,
|
|
133
|
+
attrsTransform: []
|
|
134
|
+
},
|
|
135
|
+
[FIELD_TYPE.E_DHR_TEMPLATE]: {
|
|
136
|
+
searchCmpKey: SearchComponents.SearchTmplTreeSelect,
|
|
137
|
+
attrsTransform: []
|
|
138
|
+
},
|
|
139
|
+
[FIELD_TYPE.Biz_Process]: {
|
|
140
|
+
searchCmpKey: SearchComponents.SearchBizProcess,
|
|
141
|
+
attrsTransform: []
|
|
142
|
+
}
|
|
143
|
+
}[fieldType];
|
|
144
|
+
};
|
|
145
|
+
//#endregion
|
|
146
|
+
export { basicSearchAttrsUtils, transformField2SearchComponent };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FIELD_TYPE, ReturnTypeEnum, EntityFormulaReturnTypeEnum } from '@gct-paas/core';
|
|
2
|
+
/** 树转一维数组 */
|
|
3
|
+
export declare function flatten(array?: IObject[], path?: string, inSubTable?: boolean): IObject[];
|
|
4
|
+
/** 字段映射项 */
|
|
5
|
+
interface FieldFilterConfig {
|
|
6
|
+
filterArr: FIELD_TYPE[];
|
|
7
|
+
equal?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 字段填充映射处理
|
|
11
|
+
*/
|
|
12
|
+
export declare const transformMappingField: (fieldType: FIELD_TYPE) => FieldFilterConfig | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* 转换原始的returnType为字段类型
|
|
15
|
+
*/
|
|
16
|
+
export declare const convertMappingType: (type: ReturnTypeEnum) => EntityFormulaReturnTypeEnum;
|
|
17
|
+
/**
|
|
18
|
+
* 自动填充映射处理
|
|
19
|
+
*/
|
|
20
|
+
export declare const transformMappingField4Auto: (fieldType: FIELD_TYPE) => FieldFilterConfig | undefined;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { EntityFormulaReturnTypeEnum, FIELD_TYPE, MaterialEnum, ReturnTypeEnum } from "@gct-paas/core";
|
|
2
|
+
//#region src/utils/schema/utils.ts
|
|
3
|
+
/** 树转一维数组 */
|
|
4
|
+
function flatten(array = [], path = "", inSubTable = false) {
|
|
5
|
+
return [].concat(...array.map((item) => {
|
|
6
|
+
const key = item.materialType === MaterialEnum.MaterialSubTableModalField ? `modalfield_${item.id}` : item.id;
|
|
7
|
+
item.path = `${path}|${/^modalBody_/.test(item.id) ? "undefined" : key}`;
|
|
8
|
+
item.inSubTable = inSubTable || !!(/^modal_/.test(item.id) && item.props?.isSubTableModal);
|
|
9
|
+
const children = [...item.children || []];
|
|
10
|
+
if (item.type === "workflow-nodes" && item.props) {
|
|
11
|
+
/**工作流节点特殊逻辑处理 */
|
|
12
|
+
if (item.props.specModalInfo) children.push(item.props.specModalInfo);
|
|
13
|
+
if (item.props.workflowModalInfo) children.push(item.props.workflowModalInfo);
|
|
14
|
+
}
|
|
15
|
+
return [].concat({
|
|
16
|
+
id: item.id,
|
|
17
|
+
key,
|
|
18
|
+
name: item.name,
|
|
19
|
+
customName: item.alias,
|
|
20
|
+
path: item.path,
|
|
21
|
+
type: item.type,
|
|
22
|
+
inSubTable: item.inSubTable
|
|
23
|
+
}, flatten(children, item.path, item.inSubTable ?? false));
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 字段填充映射处理
|
|
28
|
+
*/
|
|
29
|
+
var transformMappingField = (fieldType) => {
|
|
30
|
+
return {
|
|
31
|
+
[FIELD_TYPE.TEXT]: { filterArr: [FIELD_TYPE.TEXT] },
|
|
32
|
+
[FIELD_TYPE.LONG_TEXT]: { filterArr: [FIELD_TYPE.TEXT, FIELD_TYPE.LONG_TEXT] },
|
|
33
|
+
[FIELD_TYPE.INTEGER]: { filterArr: [FIELD_TYPE.INTEGER] },
|
|
34
|
+
[FIELD_TYPE.LONG]: { filterArr: [FIELD_TYPE.INTEGER, FIELD_TYPE.LONG] },
|
|
35
|
+
[FIELD_TYPE.DOUBLE]: { filterArr: [FIELD_TYPE.DOUBLE, FIELD_TYPE.DECIMAL] },
|
|
36
|
+
[FIELD_TYPE.DECIMAL]: { filterArr: [FIELD_TYPE.DECIMAL] },
|
|
37
|
+
[FIELD_TYPE.BOOLEAN]: { filterArr: [FIELD_TYPE.BOOLEAN] },
|
|
38
|
+
[FIELD_TYPE.DATE]: { filterArr: [FIELD_TYPE.DATE] },
|
|
39
|
+
[FIELD_TYPE.TIME]: { filterArr: [FIELD_TYPE.TIME] },
|
|
40
|
+
[FIELD_TYPE.DATE_TIME]: { filterArr: [FIELD_TYPE.DATE_TIME] },
|
|
41
|
+
[FIELD_TYPE.IMAGE]: { filterArr: [FIELD_TYPE.IMAGE] },
|
|
42
|
+
[FIELD_TYPE.ATTACHMENT]: { filterArr: [FIELD_TYPE.ATTACHMENT] },
|
|
43
|
+
[FIELD_TYPE.MASTERSLAVE]: {
|
|
44
|
+
filterArr: [FIELD_TYPE.MASTERSLAVE],
|
|
45
|
+
equal: true
|
|
46
|
+
},
|
|
47
|
+
[FIELD_TYPE.USER]: { filterArr: [FIELD_TYPE.USER] },
|
|
48
|
+
[FIELD_TYPE.USER_MULTI]: { filterArr: [FIELD_TYPE.USER, FIELD_TYPE.USER_MULTI] },
|
|
49
|
+
[FIELD_TYPE.ORG]: { filterArr: [FIELD_TYPE.ORG] },
|
|
50
|
+
[FIELD_TYPE.ORG_MULTI]: { filterArr: [FIELD_TYPE.ORG, FIELD_TYPE.ORG_MULTI] },
|
|
51
|
+
[FIELD_TYPE.ENUM]: {
|
|
52
|
+
filterArr: [FIELD_TYPE.ENUM],
|
|
53
|
+
equal: true
|
|
54
|
+
},
|
|
55
|
+
[FIELD_TYPE.ENUM_MULTI]: {
|
|
56
|
+
filterArr: [FIELD_TYPE.ENUM, FIELD_TYPE.ENUM_MULTI],
|
|
57
|
+
equal: true
|
|
58
|
+
},
|
|
59
|
+
[FIELD_TYPE.REF]: {
|
|
60
|
+
filterArr: [FIELD_TYPE.REF],
|
|
61
|
+
equal: true
|
|
62
|
+
},
|
|
63
|
+
[FIELD_TYPE.REF_MULTI]: {
|
|
64
|
+
filterArr: [FIELD_TYPE.REF, FIELD_TYPE.REF_MULTI],
|
|
65
|
+
equal: true
|
|
66
|
+
},
|
|
67
|
+
[FIELD_TYPE.RDO_REF]: {
|
|
68
|
+
filterArr: [FIELD_TYPE.RDO_REF],
|
|
69
|
+
equal: true
|
|
70
|
+
},
|
|
71
|
+
[FIELD_TYPE.LABEL_TEMPLATE_REF]: { filterArr: [FIELD_TYPE.LABEL_TEMPLATE_REF] },
|
|
72
|
+
[FIELD_TYPE.DOCUMENT_TEMPLATE]: { filterArr: [FIELD_TYPE.DOCUMENT_TEMPLATE] },
|
|
73
|
+
[FIELD_TYPE.SERIALRULE]: { filterArr: [FIELD_TYPE.SERIALRULE] },
|
|
74
|
+
[FIELD_TYPE.PRINTER]: { filterArr: [FIELD_TYPE.PRINTER] },
|
|
75
|
+
[FIELD_TYPE.MESSAGE_TMPL]: { filterArr: [FIELD_TYPE.MESSAGE_TMPL] },
|
|
76
|
+
[FIELD_TYPE.RANGE_USER]: { filterArr: [FIELD_TYPE.RANGE_USER] },
|
|
77
|
+
[FIELD_TYPE.SIGNATURE]: { filterArr: [FIELD_TYPE.SIGNATURE] },
|
|
78
|
+
[FIELD_TYPE.ONLINE_FORM_TEMPLATE]: { filterArr: [FIELD_TYPE.ONLINE_FORM_TEMPLATE] },
|
|
79
|
+
[FIELD_TYPE.E_DHR_TEMPLATE]: { filterArr: [FIELD_TYPE.E_DHR_TEMPLATE] },
|
|
80
|
+
[FIELD_TYPE.ESOP]: { filterArr: [FIELD_TYPE.ESOP] }
|
|
81
|
+
}[fieldType];
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* 转换原始的returnType为字段类型
|
|
85
|
+
*/
|
|
86
|
+
var convertMappingType = (type) => {
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
old: ReturnTypeEnum.String,
|
|
90
|
+
new: EntityFormulaReturnTypeEnum.LongText
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
old: ReturnTypeEnum.Number,
|
|
94
|
+
new: EntityFormulaReturnTypeEnum.Double
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
old: ReturnTypeEnum.Boolean,
|
|
98
|
+
new: EntityFormulaReturnTypeEnum.Boolean
|
|
99
|
+
}
|
|
100
|
+
].find((i) => i.old == type)?.new ?? type;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* 自动填充映射处理
|
|
104
|
+
*/
|
|
105
|
+
var transformMappingField4Auto = (fieldType) => {
|
|
106
|
+
return {
|
|
107
|
+
[FIELD_TYPE.TEXT]: { filterArr: [FIELD_TYPE.TEXT, FIELD_TYPE.LONG_TEXT] },
|
|
108
|
+
[FIELD_TYPE.LONG_TEXT]: { filterArr: [FIELD_TYPE.LONG_TEXT] },
|
|
109
|
+
[FIELD_TYPE.INTEGER]: { filterArr: [
|
|
110
|
+
FIELD_TYPE.INTEGER,
|
|
111
|
+
FIELD_TYPE.LONG,
|
|
112
|
+
FIELD_TYPE.DOUBLE,
|
|
113
|
+
FIELD_TYPE.TEXT,
|
|
114
|
+
FIELD_TYPE.LONG_TEXT
|
|
115
|
+
] },
|
|
116
|
+
[FIELD_TYPE.LONG]: { filterArr: [
|
|
117
|
+
FIELD_TYPE.LONG,
|
|
118
|
+
FIELD_TYPE.TEXT,
|
|
119
|
+
FIELD_TYPE.LONG_TEXT,
|
|
120
|
+
FIELD_TYPE.DOUBLE
|
|
121
|
+
] },
|
|
122
|
+
[FIELD_TYPE.DOUBLE]: { filterArr: [
|
|
123
|
+
FIELD_TYPE.DOUBLE,
|
|
124
|
+
FIELD_TYPE.TEXT,
|
|
125
|
+
FIELD_TYPE.LONG_TEXT
|
|
126
|
+
] },
|
|
127
|
+
[FIELD_TYPE.DECIMAL]: { filterArr: [
|
|
128
|
+
FIELD_TYPE.DECIMAL,
|
|
129
|
+
FIELD_TYPE.TEXT,
|
|
130
|
+
FIELD_TYPE.LONG_TEXT
|
|
131
|
+
] },
|
|
132
|
+
[FIELD_TYPE.DATE]: { filterArr: [FIELD_TYPE.DATE] },
|
|
133
|
+
[FIELD_TYPE.TIME]: { filterArr: [FIELD_TYPE.TIME] },
|
|
134
|
+
[FIELD_TYPE.DATE_TIME]: { filterArr: [
|
|
135
|
+
FIELD_TYPE.DATE_TIME,
|
|
136
|
+
FIELD_TYPE.DATE,
|
|
137
|
+
FIELD_TYPE.TIME
|
|
138
|
+
] },
|
|
139
|
+
[FIELD_TYPE.IMAGE]: { filterArr: [FIELD_TYPE.IMAGE] },
|
|
140
|
+
[FIELD_TYPE.ATTACHMENT]: { filterArr: [FIELD_TYPE.ATTACHMENT] },
|
|
141
|
+
[FIELD_TYPE.MASTERSLAVE]: {
|
|
142
|
+
filterArr: [FIELD_TYPE.MASTERSLAVE],
|
|
143
|
+
equal: true
|
|
144
|
+
},
|
|
145
|
+
[FIELD_TYPE.USER]: { filterArr: [FIELD_TYPE.USER, FIELD_TYPE.USER_MULTI] },
|
|
146
|
+
[FIELD_TYPE.USER_MULTI]: { filterArr: [FIELD_TYPE.USER_MULTI] },
|
|
147
|
+
[FIELD_TYPE.ORG]: { filterArr: [FIELD_TYPE.ORG, FIELD_TYPE.ORG_MULTI] },
|
|
148
|
+
[FIELD_TYPE.ORG_MULTI]: { filterArr: [FIELD_TYPE.ORG_MULTI] },
|
|
149
|
+
[FIELD_TYPE.ENUM]: {
|
|
150
|
+
filterArr: [FIELD_TYPE.ENUM, FIELD_TYPE.ENUM_MULTI],
|
|
151
|
+
equal: true
|
|
152
|
+
},
|
|
153
|
+
[FIELD_TYPE.ENUM_MULTI]: {
|
|
154
|
+
filterArr: [FIELD_TYPE.ENUM_MULTI],
|
|
155
|
+
equal: true
|
|
156
|
+
},
|
|
157
|
+
[FIELD_TYPE.REF]: {
|
|
158
|
+
filterArr: [FIELD_TYPE.REF, FIELD_TYPE.REF_MULTI],
|
|
159
|
+
equal: true
|
|
160
|
+
},
|
|
161
|
+
[FIELD_TYPE.REF_MULTI]: {
|
|
162
|
+
filterArr: [FIELD_TYPE.REF_MULTI],
|
|
163
|
+
equal: true
|
|
164
|
+
},
|
|
165
|
+
[FIELD_TYPE.RDO_REF]: {
|
|
166
|
+
filterArr: [FIELD_TYPE.RDO_REF],
|
|
167
|
+
equal: true
|
|
168
|
+
},
|
|
169
|
+
[FIELD_TYPE.ESOP]: { filterArr: [FIELD_TYPE.ESOP] },
|
|
170
|
+
[FIELD_TYPE.TRANSACTION]: { filterArr: [FIELD_TYPE.TRANSACTION] },
|
|
171
|
+
[FIELD_TYPE.LABEL_TEMPLATE_REF]: { filterArr: [FIELD_TYPE.LABEL_TEMPLATE_REF] },
|
|
172
|
+
[FIELD_TYPE.DOCUMENT_TEMPLATE]: { filterArr: [FIELD_TYPE.DOCUMENT_TEMPLATE] },
|
|
173
|
+
[FIELD_TYPE.SERIALRULE]: { filterArr: [FIELD_TYPE.SERIALRULE] },
|
|
174
|
+
[FIELD_TYPE.PRINTER]: { filterArr: [FIELD_TYPE.PRINTER] },
|
|
175
|
+
[FIELD_TYPE.MESSAGE_TMPL]: { filterArr: [FIELD_TYPE.MESSAGE_TMPL] },
|
|
176
|
+
[FIELD_TYPE.RANGE_USER]: { filterArr: [FIELD_TYPE.RANGE_USER] },
|
|
177
|
+
[FIELD_TYPE.ONLINE_FORM_TEMPLATE]: { filterArr: [FIELD_TYPE.ONLINE_FORM_TEMPLATE] },
|
|
178
|
+
[FIELD_TYPE.E_DHR_TEMPLATE]: { filterArr: [FIELD_TYPE.E_DHR_TEMPLATE] }
|
|
179
|
+
}[fieldType];
|
|
180
|
+
};
|
|
181
|
+
//#endregion
|
|
182
|
+
export { convertMappingType, flatten, transformMappingField, transformMappingField4Auto };
|