@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.
Files changed (70) hide show
  1. package/dist/index.esm.min.js +1 -0
  2. package/es/constants/design.d.ts +26 -0
  3. package/es/constants/design.mjs +30 -0
  4. package/es/constants/index.d.ts +28 -0
  5. package/es/constants/index.mjs +411 -0
  6. package/es/index.d.ts +1 -1
  7. package/es/index.mjs +13 -10
  8. package/es/interface/common/data-linkage-config.d.ts +17 -0
  9. package/es/interface/design/i-design-container-node.d.ts +13 -0
  10. package/es/interface/design/i-design-data.d.ts +44 -0
  11. package/es/interface/design/i-design-editor-data.d.ts +20 -0
  12. package/es/interface/design/i-design-editor-node.d.ts +15 -0
  13. package/es/interface/design/i-design-node-data.d.ts +19 -0
  14. package/es/interface/design/i-design-node.d.ts +80 -0
  15. package/es/interface/design/i-design-page-node-data.d.ts +15 -0
  16. package/es/interface/design/i-design-tree-item.d.ts +26 -0
  17. package/es/interface/design/i-drag-data-item.d.ts +46 -0
  18. package/es/interface/design/index.d.ts +9 -0
  19. package/es/interface/designer.d.ts +8 -7
  20. package/es/interface/index.d.ts +7 -2
  21. package/es/interface/modal/i-modal-body.d.ts +1 -1
  22. package/es/interface/modal/i-modal.d.ts +1 -1
  23. package/es/interface/relationship-diagram-config/i-relationship-diagram-node.d.ts +82 -0
  24. package/es/interface/relationship-diagram-config/i-rule-config.d.ts +135 -0
  25. package/es/interface/relationship-diagram-config/index.d.ts +2 -0
  26. package/es/interface/schema/index.d.ts +2 -0
  27. package/es/interface/schema/widget-props/i-button-props.d.ts +170 -0
  28. package/es/interface/schema/widget-props/i-card-list-props.d.ts +79 -0
  29. package/es/interface/schema/widget-props/i-display-props.d.ts +48 -0
  30. package/es/interface/schema/widget-props/i-form-container-props.d.ts +91 -0
  31. package/es/interface/schema/widget-props/i-form-input-props.d.ts +409 -0
  32. package/es/interface/schema/widget-props/i-layout-props.d.ts +77 -0
  33. package/es/interface/schema/widget-props/i-search-widget-props.d.ts +132 -0
  34. package/es/interface/schema/widget-props/i-table-column-props.d.ts +54 -0
  35. package/es/interface/schema/widget-props/i-table-props.d.ts +384 -0
  36. package/es/interface/schema/widget-props/index.d.ts +9 -0
  37. package/es/interface/schema/widget-types.d.ts +399 -0
  38. package/es/interface/widget/i-common.d.ts +2 -1
  39. package/es/interface/widget/i-editors.d.ts +3 -2
  40. package/es/interface/widget/i-events.d.ts +2 -9
  41. package/es/interface/widget/i-hooks-and-misc.d.ts +1 -0
  42. package/es/interface/widget/i-props.d.ts +14 -32
  43. package/es/interface/widget/i-schemas.d.ts +6 -4
  44. package/es/interface/widget/i-styles.d.ts +2 -1
  45. package/es/interface/widget/index.d.ts +9 -2
  46. package/es/interface/widget-info/i-designer-item-hooks.d.ts +21 -0
  47. package/es/interface/widget-info/i-designer-schema-exports.d.ts +13 -0
  48. package/es/interface/widget-info/i-widget-info-item.d.ts +78 -0
  49. package/es/interface/widget-info/i-widget-info.d.ts +19 -0
  50. package/es/interface/widget-info/index.d.ts +4 -0
  51. package/es/utils/field-editor-override-registry/field-editor-override-registry.d.ts +36 -0
  52. package/es/utils/field-editor-override-registry/field-editor-override-registry.mjs +29 -0
  53. package/es/utils/index.d.ts +4 -2
  54. package/es/utils/index.mjs +6 -0
  55. package/es/utils/schema/index.d.ts +38 -1
  56. package/es/utils/schema/index.mjs +83 -5
  57. package/es/utils/schema/search.d.ts +9 -0
  58. package/es/utils/schema/search.mjs +146 -0
  59. package/es/utils/schema/utils.d.ts +21 -0
  60. package/es/utils/schema/utils.mjs +182 -0
  61. package/es/utils/schema-style/index.mjs +203 -127
  62. package/es/utils/widget-info/widget-info.d.ts +104 -0
  63. package/es/utils/widget-info/widget-info.mjs +151 -0
  64. package/package.json +12 -13
  65. package/dist/index.esm.min.mjs +0 -237
  66. package/dist/index.min.cjs +0 -1
  67. package/dist/index.system.min.js +0 -1
  68. package/es/schema/common-config/common-style.d.ts +0 -3
  69. package/es/schema/common-config/common-style.mjs +0 -85
  70. 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,4 @@
1
+ export type * from './i-designer-item-hooks';
2
+ export type * from './i-designer-schema-exports';
3
+ export type * from './i-widget-info-item';
4
+ export type * from './i-widget-info';
@@ -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 };
@@ -1,2 +1,4 @@
1
- export { getCompPos } from './schema';
2
- export { pxToVw, addPxUnit, addImportant, formatBorder, extractFontStyle, propsToStyle, makeStyleProp, ALIGN_TO_FLEX_MAP, transAlign2flex, generatePositionStyles, generateSpacingStyles, generateBorderStyles, generateWrapperStyle, } from './schema-style';
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';
@@ -0,0 +1,6 @@
1
+ import "./field-editor-override-registry/field-editor-override-registry.mjs";
2
+ import "./widget-info/widget-info.mjs";
3
+ import "./schema/search.mjs";
4
+ import "./schema/utils.mjs";
5
+ import "./schema/index.mjs";
6
+ import "./schema-style/index.mjs";
@@ -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 { has } from 'lodash-es';
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
- return widget.type === componentType && has(widget, "preLocation") && new RegExp(`^${fieldType}_`).test(widget.preLocation);
17
+ return widget.type === componentType && has(widget, "preLocation") && new RegExp(`^${fieldType}_`).test(widget.preLocation);
5
18
  }
6
-
7
- export { getCompPos };
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 };