@gct-paas/core 0.0.1-dev.15 → 0.0.1-dev.16
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.min.cjs +1 -1
- package/dist/index.system.min.js +1 -1
- package/es/constants/editor-register/editor-register.d.ts +14 -0
- package/es/constants/editor-register/editor-register.mjs +7 -0
- package/es/constants/editor-type/editor-type.d.ts +144 -0
- package/es/constants/editor-type/editor-type.mjs +41 -0
- package/es/constants/form-container-type/form-container-type.d.ts +14 -0
- package/es/constants/form-container-type/form-container-type.mjs +7 -0
- package/es/constants/index.d.ts +3 -0
- package/es/constants/index.mjs +3 -0
- package/es/controller/edit-form/edit-form.controller.d.ts +27 -0
- package/es/controller/edit-form/edit-form.controller.mjs +42 -0
- package/es/controller/editor/color-editor.controller.d.ts +13 -0
- package/es/controller/editor/color-editor.controller.mjs +7 -0
- package/es/controller/editor/length-unit-editor.controller.d.ts +13 -0
- package/es/controller/editor/length-unit-editor.controller.mjs +7 -0
- package/es/controller/editor-item/editor-item.controller.d.ts +14 -0
- package/es/controller/editor-item/editor-item.controller.mjs +9 -0
- package/es/controller/form/form.controller.d.ts +76 -0
- package/es/controller/form/form.controller.mjs +147 -0
- package/es/controller/form-collapse/form-collapse.controller.d.ts +18 -0
- package/es/controller/form-collapse/form-collapse.controller.mjs +13 -0
- package/es/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +18 -0
- package/es/controller/form-collapse-pane/form-collapse-pane.controller.mjs +13 -0
- package/es/controller/form-edit-item/form-edit-item.controller.d.ts +26 -0
- package/es/controller/form-edit-item/form-edit-item.controller.mjs +70 -0
- package/es/controller/form-group/form-group.controller.d.ts +18 -0
- package/es/controller/form-group/form-group.controller.mjs +13 -0
- package/es/controller/form-item/form-item.controller.d.ts +20 -0
- package/es/controller/form-item/form-item.controller.mjs +39 -0
- package/es/controller/form-item-basic/form-item-basic.controller.d.ts +57 -0
- package/es/controller/form-item-basic/form-item-basic.controller.mjs +48 -0
- package/es/controller/form-item-hidden/form-item-hidden.controller.d.ts +17 -0
- package/es/controller/form-item-hidden/form-item-hidden.controller.mjs +8 -0
- package/es/controller/form-tab/form-tab.controller.d.ts +18 -0
- package/es/controller/form-tab/form-tab.controller.mjs +13 -0
- package/es/controller/form-tab-pane/form-tab-pane.controller.d.ts +18 -0
- package/es/controller/form-tab-pane/form-tab-pane.controller.mjs +13 -0
- package/es/controller/gct-form/gct-form.controller.d.ts +101 -0
- package/es/controller/gct-form/gct-form.controller.mjs +214 -0
- package/es/controller/index.d.ts +15 -0
- package/es/controller/index.mjs +17 -0
- package/es/enums/page-designer/panel.d.ts +2 -0
- package/es/enums/page-designer/panel.mjs +1 -0
- package/es/global/gct/gct.d.ts +11 -3
- package/es/global/gct/gct.mjs +13 -2
- package/es/hooks/index.d.ts +4 -0
- package/es/hooks/index.mjs +4 -0
- package/es/hooks/use-form/use-form.d.ts +10 -0
- package/es/hooks/use-form/use-form.mjs +9 -0
- package/es/hooks/use-gct-form-value/use-gct-form-value.d.ts +22 -0
- package/es/hooks/use-gct-form-value/use-gct-form-value.mjs +84 -0
- package/es/hooks/use-modal/use-modal.d.ts +10 -0
- package/es/hooks/use-modal/use-modal.mjs +14 -0
- package/es/hooks/useCopyToClipboard.d.ts +11 -0
- package/es/hooks/useCopyToClipboard.mjs +58 -0
- package/es/index.d.ts +1 -0
- package/es/index.mjs +36 -0
- package/es/interface/controller/edit-form/edit-form.controller.d.ts +20 -0
- package/es/interface/controller/edit-form/edit-form.controller.mjs +1 -0
- package/es/interface/controller/editor/i-color-editor.controller.d.ts +11 -0
- package/es/interface/controller/editor/i-color-editor.controller.mjs +1 -0
- package/es/interface/controller/editor/i-length-unit-editor.controller.d.ts +11 -0
- package/es/interface/controller/editor/i-length-unit-editor.controller.mjs +1 -0
- package/es/interface/controller/editor-item/editor-item.controller.d.ts +19 -0
- package/es/interface/controller/editor-item/editor-item.controller.mjs +1 -0
- package/es/interface/controller/form/form.controller.d.ts +121 -0
- package/es/interface/controller/form/form.controller.mjs +3 -0
- package/es/interface/controller/form-collapse/form-collapse.controller.d.ts +23 -0
- package/es/interface/controller/form-collapse/form-collapse.controller.mjs +1 -0
- package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +23 -0
- package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.mjs +1 -0
- package/es/interface/controller/form-edit-item/form-edit-item.controller.d.ts +54 -0
- package/es/interface/controller/form-edit-item/form-edit-item.controller.mjs +1 -0
- package/es/interface/controller/form-group/form-group.controller.d.ts +24 -0
- package/es/interface/controller/form-group/form-group.controller.mjs +1 -0
- package/es/interface/controller/form-hidden-item/form-hidden-item.controller.d.ts +24 -0
- package/es/interface/controller/form-hidden-item/form-hidden-item.controller.mjs +1 -0
- package/es/interface/controller/form-item/form-item.controller.d.ts +40 -0
- package/es/interface/controller/form-item/form-item.controller.mjs +1 -0
- package/es/interface/controller/form-item-basic/form-item-basic.controller.d.ts +51 -0
- package/es/interface/controller/form-item-basic/form-item-basic.controller.mjs +1 -0
- package/es/interface/controller/form-tab/form-tab.controller.d.ts +23 -0
- package/es/interface/controller/form-tab/form-tab.controller.mjs +1 -0
- package/es/interface/controller/form-tab-pane/form-tab-pane.controller.d.ts +23 -0
- package/es/interface/controller/form-tab-pane/form-tab-pane.controller.mjs +1 -0
- package/es/interface/controller/index.d.ts +14 -0
- package/es/interface/events/form/i-form.event.d.ts +11 -0
- package/es/interface/events/form/i-form.event.mjs +1 -0
- package/es/interface/events/index.d.ts +1 -0
- package/es/interface/events/index.mjs +1 -0
- package/es/interface/form/i-editor/i-check-switch.d.ts +29 -0
- package/es/interface/form/i-editor/i-check-switch.mjs +3 -0
- package/es/interface/form/i-editor/i-checkbox-editor.d.ts +9 -0
- package/es/interface/form/i-editor/i-checkbox-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-color-editor.d.ts +13 -0
- package/es/interface/form/i-editor/i-color-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-editor-basic.d.ts +87 -0
- package/es/interface/form/i-editor/i-editor-basic.mjs +1 -0
- package/es/interface/form/i-editor/i-icon-select-editor.d.ts +21 -0
- package/es/interface/form/i-editor/i-icon-select-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-info-editor.d.ts +21 -0
- package/es/interface/form/i-editor/i-info-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-length-unit-editor.d.ts +13 -0
- package/es/interface/form/i-editor/i-length-unit-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-number-editor.d.ts +21 -0
- package/es/interface/form/i-editor/i-number-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-picker-editor.d.ts +30 -0
- package/es/interface/form/i-editor/i-picker-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-radio-editor.d.ts +21 -0
- package/es/interface/form/i-editor/i-radio-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-select-editor.d.ts +14 -0
- package/es/interface/form/i-editor/i-select-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-span-editor.d.ts +30 -0
- package/es/interface/form/i-editor/i-span-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-switch-editor.d.ts +14 -0
- package/es/interface/form/i-editor/i-switch-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-text-editor.d.ts +46 -0
- package/es/interface/form/i-editor/i-text-editor.mjs +3 -0
- package/es/interface/form/i-editor/i-textarea-editor.d.ts +25 -0
- package/es/interface/form/i-editor/i-textarea-editor.mjs +3 -0
- package/es/interface/form/i-form/i-edit-form.d.ts +42 -0
- package/es/interface/form/i-form/i-edit-form.mjs +1 -0
- package/es/interface/form/i-form/i-form-collapse-pane.d.ts +26 -0
- package/es/interface/form/i-form/i-form-collapse-pane.mjs +1 -0
- package/es/interface/form/i-form/i-form-collapse.d.ts +35 -0
- package/es/interface/form/i-form/i-form-collapse.mjs +1 -0
- package/es/interface/form/i-form/i-form-container.d.ts +53 -0
- package/es/interface/form/i-form/i-form-container.mjs +1 -0
- package/es/interface/form/i-form/i-form-edit-item.d.ts +140 -0
- package/es/interface/form/i-form/i-form-edit-item.mjs +1 -0
- package/es/interface/form/i-form/i-form-group-container.d.ts +24 -0
- package/es/interface/form/i-form/i-form-group-container.mjs +1 -0
- package/es/interface/form/i-form/i-form-group.d.ts +35 -0
- package/es/interface/form/i-form/i-form-group.mjs +1 -0
- package/es/interface/form/i-form/i-form-hidden-item.d.ts +11 -0
- package/es/interface/form/i-form/i-form-hidden-item.mjs +1 -0
- package/es/interface/form/i-form/i-form-item-basic.d.ts +126 -0
- package/es/interface/form/i-form/i-form-item-basic.mjs +1 -0
- package/es/interface/form/i-form/i-form-item.d.ts +11 -0
- package/es/interface/form/i-form/i-form-item.mjs +1 -0
- package/es/interface/form/i-form/i-form-tab-pane.d.ts +19 -0
- package/es/interface/form/i-form/i-form-tab-pane.mjs +1 -0
- package/es/interface/form/i-form/i-form-tab.d.ts +21 -0
- package/es/interface/form/i-form/i-form-tab.mjs +1 -0
- package/es/interface/form/i-form/i-form.d.ts +72 -0
- package/es/interface/form/i-form/i-form.mjs +1 -0
- package/es/interface/form/index.d.ts +28 -0
- package/es/interface/form/index.mjs +1 -0
- package/es/interface/i-dictionary/i-dictionary-item.d.ts +48 -0
- package/es/interface/i-dictionary/i-dictionary-item.mjs +1 -0
- package/es/interface/i-dictionary/i-dictionary.d.ts +52 -0
- package/es/interface/i-dictionary/i-dictionary.mjs +1 -0
- package/es/interface/i-modal/i-modal.d.ts +71 -0
- package/es/interface/i-modal/i-modal.mjs +3 -0
- package/es/interface/i-modal-data/i-modal-data.d.ts +34 -0
- package/es/interface/i-modal-data/i-modal-data.mjs +1 -0
- package/es/interface/index.d.ts +12 -4
- package/es/interface/index.mjs +0 -5
- package/es/interface/layout/i-flex-layout/i-flex-container.d.ts +75 -0
- package/es/interface/layout/i-flex-layout/i-flex-container.mjs +1 -0
- package/es/interface/layout/i-flex-layout/i-flex-item.d.ts +51 -0
- package/es/interface/layout/i-flex-layout/i-flex-item.mjs +1 -0
- package/es/interface/layout/i-grid-layout/i-grid-container.d.ts +29 -0
- package/es/interface/layout/i-grid-layout/i-grid-container.mjs +1 -0
- package/es/interface/layout/i-grid-layout/i-grid-item-span.d.ts +54 -0
- package/es/interface/layout/i-grid-layout/i-grid-item-span.mjs +1 -0
- package/es/interface/layout/i-grid-layout/i-grid-item.d.ts +37 -0
- package/es/interface/layout/i-grid-layout/i-grid-item.mjs +1 -0
- package/es/interface/layout/i-layout-basis/i-layout-container-basis.d.ts +11 -0
- package/es/interface/layout/i-layout-basis/i-layout-container-basis.mjs +1 -0
- package/es/interface/layout/index.d.ts +6 -0
- package/es/interface/layout/index.mjs +1 -0
- package/es/interface/provider/i-editor-provider/i-editor-provider.d.ts +24 -0
- package/es/interface/provider/i-editor-provider/i-editor-provider.mjs +1 -0
- package/es/interface/provider/i-form-item-provider/i-form-item-provider.d.ts +44 -0
- package/es/interface/provider/i-form-item-provider/i-form-item-provider.mjs +1 -0
- package/es/interface/provider/i-provider-basic/i-provider-basic.d.ts +25 -0
- package/es/interface/provider/i-provider-basic/i-provider-basic.mjs +1 -0
- package/es/interface/provider/index.d.ts +3 -0
- package/es/interface/provider/index.mjs +1 -0
- package/es/interface/state/form/form.state.d.ts +53 -0
- package/es/interface/state/form/form.state.mjs +1 -0
- package/es/interface/state/form-collapse/form-collapse.state.d.ts +11 -0
- package/es/interface/state/form-collapse/form-collapse.state.mjs +1 -0
- package/es/interface/state/form-collapse-pane/form-collapse-pane.state.d.ts +11 -0
- package/es/interface/state/form-collapse-pane/form-collapse-pane.state.mjs +1 -0
- package/es/interface/state/form-edit-item/form-edit-item.state.d.ts +38 -0
- package/es/interface/state/form-edit-item/form-edit-item.state.mjs +1 -0
- package/es/interface/state/form-group/form-group.state.d.ts +21 -0
- package/es/interface/state/form-group/form-group.state.mjs +1 -0
- package/es/interface/state/form-hidden-item/form-hidden-item.state.d.ts +5 -0
- package/es/interface/state/form-hidden-item/form-hidden-item.state.mjs +1 -0
- package/es/interface/state/form-item/form-item.state.d.ts +20 -0
- package/es/interface/state/form-item/form-item.state.mjs +1 -0
- package/es/interface/state/form-item-basic/form-item-basic.state.d.ts +63 -0
- package/es/interface/state/form-item-basic/form-item-basic.state.mjs +1 -0
- package/es/interface/state/form-tab/form-tab.state.d.ts +19 -0
- package/es/interface/state/form-tab/form-tab.state.mjs +1 -0
- package/es/interface/state/form-tab-pane/form-tab-pane.state.d.ts +11 -0
- package/es/interface/state/form-tab-pane/form-tab-pane.state.mjs +1 -0
- package/es/interface/state/i-designer-state.d.ts +0 -12
- package/es/interface/state/index.d.ts +10 -0
- package/es/register/editor-register/editor-register.d.ts +57 -0
- package/es/register/editor-register/editor-register.mjs +66 -0
- package/es/register/form-item-register/form-item-register.d.ts +47 -0
- package/es/register/form-item-register/form-item-register.mjs +52 -0
- package/es/register/index.d.ts +2 -0
- package/es/register/index.mjs +2 -0
- package/es/state/form/form.state.d.ts +24 -0
- package/es/state/form/form.state.mjs +17 -0
- package/es/state/form-collapse/form-collapse.state.d.ts +14 -0
- package/es/state/form-collapse/form-collapse.state.mjs +7 -0
- package/es/state/form-collapse-pane/form-collapse-pane.state.d.ts +14 -0
- package/es/state/form-collapse-pane/form-collapse-pane.state.mjs +7 -0
- package/es/state/form-edit-item/form-edit-item.state.d.ts +17 -0
- package/es/state/form-edit-item/form-edit-item.state.mjs +11 -0
- package/es/state/form-group/form-group.state.d.ts +21 -0
- package/es/state/form-group/form-group.state.mjs +15 -0
- package/es/state/form-item/form-item.state.d.ts +14 -0
- package/es/state/form-item/form-item.state.mjs +7 -0
- package/es/state/form-item-basic/form-item-basic.state.d.ts +17 -0
- package/es/state/form-item-basic/form-item-basic.state.mjs +10 -0
- package/es/state/form-tab/form-tab.state.d.ts +15 -0
- package/es/state/form-tab/form-tab.state.mjs +8 -0
- package/es/state/form-tab-pane/form-tab-pane.state.d.ts +14 -0
- package/es/state/form-tab-pane/form-tab-pane.state.mjs +7 -0
- package/es/state/index.d.ts +9 -0
- package/es/state/index.mjs +9 -0
- package/es/utils/dictionary/dictionary.d.ts +102 -0
- package/es/utils/dictionary/dictionary.mjs +147 -0
- package/es/utils/index.d.ts +2 -0
- package/es/utils/index.mjs +2 -0
- package/es/utils/width-install/width-install.d.ts +16 -0
- package/es/utils/width-install/width-install.mjs +21 -0
- package/package.json +6 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IFormEditItem, IFormEditItemController, IFormEditItemState } from '../../interface';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单编辑项控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-02 20:04:00
|
|
8
|
+
* @export
|
|
9
|
+
* @abstract
|
|
10
|
+
* @class FormEditItemController
|
|
11
|
+
* @extends {FormItemBasicController}
|
|
12
|
+
* @implements {IFormEditItemController}
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class FormEditItemController extends FormItemBasicController implements IFormEditItemController {
|
|
15
|
+
model: IFormEditItem;
|
|
16
|
+
state: IFormEditItemState;
|
|
17
|
+
get key(): string;
|
|
18
|
+
get value(): any;
|
|
19
|
+
set value(value: any);
|
|
20
|
+
get editorValue(): any;
|
|
21
|
+
set editorValue(v: any);
|
|
22
|
+
protected init(): void;
|
|
23
|
+
defaultValue(): void;
|
|
24
|
+
reset(): void;
|
|
25
|
+
protected crateItemState(): IFormEditItemState;
|
|
26
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { cloneDeep } from 'lodash-es';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
|
|
3
|
+
import '../../state/index.mjs';
|
|
4
|
+
import { FormEditItemState } from '../../state/form-edit-item/form-edit-item.state.mjs';
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
class FormEditItemController extends FormItemBasicController {
|
|
8
|
+
get key() {
|
|
9
|
+
return this.model.field ?? this.model.name;
|
|
10
|
+
}
|
|
11
|
+
get value() {
|
|
12
|
+
return this.form.state.data[this.key];
|
|
13
|
+
}
|
|
14
|
+
set value(value) {
|
|
15
|
+
const oldValue = cloneDeep(this.form.state.data[this.key]);
|
|
16
|
+
this.form.state.data[this.key] = value;
|
|
17
|
+
this.form.evt.emit("change", this.key, value, oldValue);
|
|
18
|
+
this.state.value = value;
|
|
19
|
+
}
|
|
20
|
+
get editorValue() {
|
|
21
|
+
if (this.model.fields) {
|
|
22
|
+
return this.model.fields.map((key) => {
|
|
23
|
+
return this.form.item[key].value;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return this.value;
|
|
27
|
+
}
|
|
28
|
+
set editorValue(v) {
|
|
29
|
+
if (this.model.fields) {
|
|
30
|
+
this.model.fields.forEach((key, i) => {
|
|
31
|
+
this.form.item[key].value = v?.[i];
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
this.value = v;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
init() {
|
|
38
|
+
super.init();
|
|
39
|
+
if (this.model.type !== "hidden") {
|
|
40
|
+
const { editor } = this.model;
|
|
41
|
+
this.state.readonly = editor.readonly;
|
|
42
|
+
if (editor.disabled != null) {
|
|
43
|
+
this.state.disabled = editor.disabled;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (this.model.dictionary) {
|
|
47
|
+
const { mode } = this.model.dictionary;
|
|
48
|
+
if (mode === "static") {
|
|
49
|
+
this.state.options = this.model.dictionary.items || [];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
defaultValue() {
|
|
54
|
+
if (this.form.state.data[this.key] === void 0 && this.model.defaultValue !== void 0) {
|
|
55
|
+
this.form.state.data[this.key] = this.model.defaultValue;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
reset() {
|
|
59
|
+
if (this.model.defaultValue !== void 0) {
|
|
60
|
+
this.value = this.model.defaultValue;
|
|
61
|
+
} else {
|
|
62
|
+
this.value = void 0;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
crateItemState() {
|
|
66
|
+
return new FormEditItemState();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { FormEditItemController };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IFormGroup, IFormGroupController, IFormGroupState } from '../../interface';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单分组控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-01 14:04:00
|
|
8
|
+
* @export
|
|
9
|
+
* @class FormGroupController
|
|
10
|
+
* @extends {FormItemBasicController}
|
|
11
|
+
* @implements {IFormGroupController}
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormGroupController extends FormItemBasicController implements IFormGroupController {
|
|
14
|
+
readonly type = "group";
|
|
15
|
+
model: IFormGroup;
|
|
16
|
+
state: IFormGroupState;
|
|
17
|
+
protected crateItemState(): IFormGroupState;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../state/index.mjs';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
|
|
3
|
+
import { FormGroupState } from '../../state/form-group/form-group.state.mjs';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class FormGroupController extends FormItemBasicController {
|
|
7
|
+
type = "group";
|
|
8
|
+
crateItemState() {
|
|
9
|
+
return new FormGroupState();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { FormGroupController };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IDictionaryItem, IFormItem, IFormItemController, IFormItemState } from '../../interface';
|
|
2
|
+
import { FormEditItemController } from '../form-edit-item/form-edit-item.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单项控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-02 20:04:03
|
|
8
|
+
* @export
|
|
9
|
+
* @class FormItemController
|
|
10
|
+
* @extends {FormEditItemController}
|
|
11
|
+
* @implements {IFormItemController}
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormItemController extends FormEditItemController implements IFormItemController {
|
|
14
|
+
readonly type = "item";
|
|
15
|
+
model: IFormItem;
|
|
16
|
+
state: IFormItemState;
|
|
17
|
+
loadDictionary(params?: IParams): Promise<IDictionaryItem[]>;
|
|
18
|
+
clearDictionary(): void;
|
|
19
|
+
protected crateItemState(): IFormItemState;
|
|
20
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import '../../state/index.mjs';
|
|
2
|
+
import { FormEditItemController } from '../form-edit-item/form-edit-item.controller.mjs';
|
|
3
|
+
import { FormItemState } from '../../state/form-item/form-item.state.mjs';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class FormItemController extends FormEditItemController {
|
|
7
|
+
type = "item";
|
|
8
|
+
async loadDictionary(params) {
|
|
9
|
+
if (this.state.options.length > 0) {
|
|
10
|
+
return this.state.options;
|
|
11
|
+
}
|
|
12
|
+
this.state.options = [];
|
|
13
|
+
this.state.loading = true;
|
|
14
|
+
try {
|
|
15
|
+
if (this.model.dictionary) {
|
|
16
|
+
this.state.options = await _gct.dictionary.asyncGetByConfig(
|
|
17
|
+
this.model.dictionary,
|
|
18
|
+
params
|
|
19
|
+
);
|
|
20
|
+
} else if (this.model.dictionaryTag) {
|
|
21
|
+
this.state.options = await _gct.dictionary.asyncGet(
|
|
22
|
+
this.model.dictionaryTag,
|
|
23
|
+
params
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
return this.state.options;
|
|
27
|
+
} finally {
|
|
28
|
+
this.state.loading = false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
clearDictionary() {
|
|
32
|
+
this.state.options = [];
|
|
33
|
+
}
|
|
34
|
+
crateItemState() {
|
|
35
|
+
return new FormItemState();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { FormItemController };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { IFormController, IFormItemBasic, IFormItemBasicController, IFormItemBasicState } from '../../interface';
|
|
2
|
+
/**
|
|
3
|
+
* 表单项基础控制器
|
|
4
|
+
*
|
|
5
|
+
* @author zhanghanrui
|
|
6
|
+
* @date 2024-04-01 14:04:08
|
|
7
|
+
* @export
|
|
8
|
+
* @abstract
|
|
9
|
+
* @class FormItemBasicController
|
|
10
|
+
* @implements {IFormItemBasicController}
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class FormItemBasicController implements IFormItemBasicController {
|
|
13
|
+
protected readonly form: IFormController;
|
|
14
|
+
readonly model: IFormItemBasic;
|
|
15
|
+
/**
|
|
16
|
+
* 表单项类型
|
|
17
|
+
*
|
|
18
|
+
* @author zhanghanrui
|
|
19
|
+
* @date 2024-04-01 14:04:45
|
|
20
|
+
* @abstract
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
23
|
+
abstract readonly type: string;
|
|
24
|
+
/**
|
|
25
|
+
* 表单项基础状态
|
|
26
|
+
*
|
|
27
|
+
* @description 禁止直接重写new实例,如果要覆盖重写 crateItemState 方法
|
|
28
|
+
* @author zhanghanrui
|
|
29
|
+
* @date 2024-04-02 22:04:07
|
|
30
|
+
* @type {IFormItemBasicState}
|
|
31
|
+
*/
|
|
32
|
+
state: IFormItemBasicState;
|
|
33
|
+
get data(): any;
|
|
34
|
+
/**
|
|
35
|
+
* Creates an instance of FormItemBasicController.
|
|
36
|
+
*
|
|
37
|
+
* @author zhanghanrui
|
|
38
|
+
* @date 2024-04-02 09:04:55
|
|
39
|
+
* @param {IFormController} form
|
|
40
|
+
* @param {IFormItemBasic} model
|
|
41
|
+
*/
|
|
42
|
+
constructor(form: IFormController, model: IFormItemBasic);
|
|
43
|
+
protected init(): void;
|
|
44
|
+
destroy(): void;
|
|
45
|
+
protected crateItemState(): IFormItemBasicState;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 加载表单项控制器实例
|
|
49
|
+
*
|
|
50
|
+
* @author zhanghanrui
|
|
51
|
+
* @date 2024-04-02 22:04:51
|
|
52
|
+
* @export
|
|
53
|
+
* @template T
|
|
54
|
+
* @param {() => T} fn
|
|
55
|
+
* @return {*} {T}
|
|
56
|
+
*/
|
|
57
|
+
export declare function useFormItemController<T extends IFormItemBasicController = IFormItemBasicController>(fn: () => T): T;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { reactive } from 'vue';
|
|
2
|
+
import '../../state/index.mjs';
|
|
3
|
+
import { FormItemBasicState } from '../../state/form-item-basic/form-item-basic.state.mjs';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class FormItemBasicController {
|
|
7
|
+
/**
|
|
8
|
+
* Creates an instance of FormItemBasicController.
|
|
9
|
+
*
|
|
10
|
+
* @author zhanghanrui
|
|
11
|
+
* @date 2024-04-02 09:04:55
|
|
12
|
+
* @param {IFormController} form
|
|
13
|
+
* @param {IFormItemBasic} model
|
|
14
|
+
*/
|
|
15
|
+
constructor(form, model) {
|
|
16
|
+
this.form = form;
|
|
17
|
+
this.model = model;
|
|
18
|
+
this.init();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 表单项基础状态
|
|
22
|
+
*
|
|
23
|
+
* @description 禁止直接重写new实例,如果要覆盖重写 crateItemState 方法
|
|
24
|
+
* @author zhanghanrui
|
|
25
|
+
* @date 2024-04-02 22:04:07
|
|
26
|
+
* @type {IFormItemBasicState}
|
|
27
|
+
*/
|
|
28
|
+
state = this.crateItemState();
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
get data() {
|
|
31
|
+
return this.form.state.data;
|
|
32
|
+
}
|
|
33
|
+
init() {
|
|
34
|
+
}
|
|
35
|
+
destroy() {
|
|
36
|
+
this.state.destroyed = true;
|
|
37
|
+
}
|
|
38
|
+
crateItemState() {
|
|
39
|
+
return new FormItemBasicState();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function useFormItemController(fn) {
|
|
43
|
+
const c = fn();
|
|
44
|
+
c.state = reactive(c.state);
|
|
45
|
+
return c;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { FormItemBasicController, useFormItemController };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IFormHiddenItem, IFormHiddenItemController, IFormHiddenItemState } from '../../interface';
|
|
2
|
+
import { FormEditItemController } from '../form-edit-item/form-edit-item.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单分组控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-01 14:04:00
|
|
8
|
+
* @export
|
|
9
|
+
* @class FormHiddenItemController
|
|
10
|
+
* @extends {FormEditItemController}
|
|
11
|
+
* @implements {IFormGroupController}
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormHiddenItemController extends FormEditItemController implements IFormHiddenItemController {
|
|
14
|
+
readonly type = "hidden";
|
|
15
|
+
model: IFormHiddenItem;
|
|
16
|
+
state: IFormHiddenItemState;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IFormTab, IFormTabController, IFormTabState } from '../../interface';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单分组控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-01 14:04:00
|
|
8
|
+
* @export
|
|
9
|
+
* @class FormTabController
|
|
10
|
+
* @extends {FormItemBasicController}
|
|
11
|
+
* @implements {IFormTabController}
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormTabController extends FormItemBasicController implements IFormTabController {
|
|
14
|
+
readonly type = "tab";
|
|
15
|
+
model: IFormTab;
|
|
16
|
+
state: IFormTabState;
|
|
17
|
+
protected crateItemState(): IFormTabState;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../state/index.mjs';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
|
|
3
|
+
import { FormTabState } from '../../state/form-tab/form-tab.state.mjs';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class FormTabController extends FormItemBasicController {
|
|
7
|
+
type = "tab";
|
|
8
|
+
crateItemState() {
|
|
9
|
+
return new FormTabState();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { FormTabController };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IFormTabPane, IFormTabPaneController, IFormTabPaneState } from '../../interface';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
|
|
3
|
+
/**
|
|
4
|
+
* 表单分组控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-01 14:04:00
|
|
8
|
+
* @export
|
|
9
|
+
* @class FormTabPaneController
|
|
10
|
+
* @extends {FormItemBasicController}
|
|
11
|
+
* @implements {IFormTabPaneController}
|
|
12
|
+
*/
|
|
13
|
+
export declare class FormTabPaneController extends FormItemBasicController implements IFormTabPaneController {
|
|
14
|
+
readonly type = "tab-pane";
|
|
15
|
+
model: IFormTabPane;
|
|
16
|
+
state: IFormTabPaneState;
|
|
17
|
+
protected crateItemState(): IFormTabPaneState;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../state/index.mjs';
|
|
2
|
+
import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
|
|
3
|
+
import { FormTabPaneState } from '../../state/form-tab-pane/form-tab-pane.state.mjs';
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class FormTabPaneController extends FormItemBasicController {
|
|
7
|
+
type = "tab-pane";
|
|
8
|
+
crateItemState() {
|
|
9
|
+
return new FormTabPaneState();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { FormTabPaneController };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { IForm, IFormState, IFormController, IFormItemBasic, IFormItem, IFormItemProvider, IFormItemBasicController, IFormEvent, IFormHiddenItem } from '../../interface';
|
|
2
|
+
import { QXEvent } from 'qx-util';
|
|
3
|
+
/**
|
|
4
|
+
* 表单控制器
|
|
5
|
+
*
|
|
6
|
+
* @author zhanghanrui
|
|
7
|
+
* @date 2024-04-02 20:04:14
|
|
8
|
+
* @export
|
|
9
|
+
* @class GctFormController
|
|
10
|
+
* @implements {IFormController}
|
|
11
|
+
*/
|
|
12
|
+
export declare class GctFormController implements IFormController {
|
|
13
|
+
readonly model: IForm;
|
|
14
|
+
readonly evt: QXEvent<IFormEvent>;
|
|
15
|
+
state: IFormState;
|
|
16
|
+
readonly item: Record<string, IFormItemBasicController>;
|
|
17
|
+
readonly provider: Record<string, IFormItemProvider>;
|
|
18
|
+
readonly context: IParams;
|
|
19
|
+
readonly params: IParams;
|
|
20
|
+
/**
|
|
21
|
+
* 所有属性的项标识,由 item 和 hidden 类型的表单项的 name 组成
|
|
22
|
+
*
|
|
23
|
+
* @author zhanghanrui
|
|
24
|
+
* @date 2024-04-02 20:04:20
|
|
25
|
+
* @protected
|
|
26
|
+
* @type {string[]}
|
|
27
|
+
*/
|
|
28
|
+
protected fields: string[];
|
|
29
|
+
/**
|
|
30
|
+
* 所有[item、hidden]表单项的映射,key 为表单项的 name
|
|
31
|
+
*
|
|
32
|
+
* @author zhanghanrui
|
|
33
|
+
* @date 2024-04-02 20:04:39
|
|
34
|
+
* @protected
|
|
35
|
+
* @type {(Record<string, IFormItem | IFormHiddenItem>)}
|
|
36
|
+
*/
|
|
37
|
+
protected modelMap: Record<string, IFormItem | IFormHiddenItem>;
|
|
38
|
+
constructor(model: IForm);
|
|
39
|
+
/**
|
|
40
|
+
* 表单初始化
|
|
41
|
+
*
|
|
42
|
+
* @author zhanghanrui
|
|
43
|
+
* @date 2024-04-01 13:04:27
|
|
44
|
+
* @protected
|
|
45
|
+
*/
|
|
46
|
+
protected init(): void;
|
|
47
|
+
/**
|
|
48
|
+
* 初始化表单事件订阅相关
|
|
49
|
+
*
|
|
50
|
+
* @author zhanghanrui
|
|
51
|
+
* @date 2024-04-02 14:04:31
|
|
52
|
+
* @protected
|
|
53
|
+
*/
|
|
54
|
+
protected initEvent(): void;
|
|
55
|
+
/**
|
|
56
|
+
* 计算表单状态,数据变更或加载数据后调用
|
|
57
|
+
*
|
|
58
|
+
* @author zhanghanrui
|
|
59
|
+
* @date 2024-04-02 21:04:15
|
|
60
|
+
* @protected
|
|
61
|
+
*/
|
|
62
|
+
protected calcState(): void;
|
|
63
|
+
/**
|
|
64
|
+
* 初始化表单项控制器
|
|
65
|
+
*
|
|
66
|
+
* @author zhanghanrui
|
|
67
|
+
* @date 2024-04-01 13:04:38
|
|
68
|
+
* @protected
|
|
69
|
+
* @param {IFormItemBasic[]} models
|
|
70
|
+
*/
|
|
71
|
+
protected initFormItems(models: IFormItemBasic[]): void;
|
|
72
|
+
/**
|
|
73
|
+
* 计算表单项隐藏
|
|
74
|
+
*
|
|
75
|
+
* @author zhanghanrui
|
|
76
|
+
* @date 2024-08-01 11:08:23
|
|
77
|
+
* @protected
|
|
78
|
+
*/
|
|
79
|
+
protected calcHidden(): void;
|
|
80
|
+
/**
|
|
81
|
+
* 获取当前表单数据
|
|
82
|
+
*
|
|
83
|
+
* @author zhanghanrui
|
|
84
|
+
* @date 2024-04-02 20:04:16
|
|
85
|
+
* @return {*} {IData}
|
|
86
|
+
*/
|
|
87
|
+
getData(): IData;
|
|
88
|
+
/**
|
|
89
|
+
* 重置表单数据
|
|
90
|
+
*
|
|
91
|
+
* @author zhanghanrui
|
|
92
|
+
* @date 2024-04-02 20:04:11
|
|
93
|
+
*/
|
|
94
|
+
resetData(): void;
|
|
95
|
+
load(): Promise<IData>;
|
|
96
|
+
destroy(): void;
|
|
97
|
+
validate(): Promise<boolean>;
|
|
98
|
+
validateItem(_key: string): Promise<boolean>;
|
|
99
|
+
loaded(): void;
|
|
100
|
+
mounted(): void;
|
|
101
|
+
}
|