@cluadwong/form-designer 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +261 -0
- package/dist/chunks/designer-ui.js +3092 -0
- package/dist/chunks/renderer-core.js +2635 -0
- package/dist/components/designer/CanvasSurface.vue.d.ts +64 -0
- package/dist/components/designer/CanvasSurface.vue.d.ts.map +1 -0
- package/dist/components/designer/DesignerToolbar.vue.d.ts +49 -0
- package/dist/components/designer/DesignerToolbar.vue.d.ts.map +1 -0
- package/dist/components/designer/FormDesigner.vue.d.ts +25 -0
- package/dist/components/designer/FormDesigner.vue.d.ts.map +1 -0
- package/dist/components/designer/HelpPanel.vue.d.ts +10 -0
- package/dist/components/designer/HelpPanel.vue.d.ts.map +1 -0
- package/dist/components/designer/InspectorPanel.vue.d.ts +48 -0
- package/dist/components/designer/InspectorPanel.vue.d.ts.map +1 -0
- package/dist/components/designer/NodeTreeItem.vue.d.ts +18 -0
- package/dist/components/designer/NodeTreeItem.vue.d.ts.map +1 -0
- package/dist/components/designer/PaletteSidebar.vue.d.ts +29 -0
- package/dist/components/designer/PaletteSidebar.vue.d.ts.map +1 -0
- package/dist/components/designer/StatusBar.vue.d.ts +25 -0
- package/dist/components/designer/StatusBar.vue.d.ts.map +1 -0
- package/dist/components/designer/composables/treeControl.d.ts +65 -0
- package/dist/components/designer/composables/treeControl.d.ts.map +1 -0
- package/dist/components/designer/composables/useFillData.d.ts +34 -0
- package/dist/components/designer/composables/useFillData.d.ts.map +1 -0
- package/dist/components/designer/composables/useNodeSelection.d.ts +56 -0
- package/dist/components/designer/composables/useNodeSelection.d.ts.map +1 -0
- package/dist/components/designer/composables/useSchemaDocument.d.ts +44 -0
- package/dist/components/designer/composables/useSchemaDocument.d.ts.map +1 -0
- package/dist/components/designer/composables/useSchemaEdits.d.ts +111 -0
- package/dist/components/designer/composables/useSchemaEdits.d.ts.map +1 -0
- package/dist/components/designer/config.d.ts +40 -0
- package/dist/components/designer/config.d.ts.map +1 -0
- package/dist/components/designer/export-api.d.ts +81 -0
- package/dist/components/designer/export-api.d.ts.map +1 -0
- package/dist/components/designer/inspectors/CellInspector.vue.d.ts +20 -0
- package/dist/components/designer/inspectors/CellInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/FieldPInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/FieldPInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/GridInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/GridInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/HeaderFooterFields.vue.d.ts +14 -0
- package/dist/components/designer/inspectors/HeaderFooterFields.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/HtmlInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/HtmlInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/ImageInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/ImageInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/IssuesPanel.vue.d.ts +11 -0
- package/dist/components/designer/inspectors/IssuesPanel.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/PageInspector.vue.d.ts +27 -0
- package/dist/components/designer/inspectors/PageInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/TableInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/TableInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/TextInspector.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/TextInspector.vue.d.ts.map +1 -0
- package/dist/components/designer/inspectors/TextStyleFields.vue.d.ts +10 -0
- package/dist/components/designer/inspectors/TextStyleFields.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/FormRenderer.vue.d.ts +106 -0
- package/dist/components/renderer-v2/FormRenderer.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/GridFormRenderer.vue.d.ts +49 -0
- package/dist/components/renderer-v2/GridFormRenderer.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/GridSchemaNode.vue.d.ts +46 -0
- package/dist/components/renderer-v2/GridSchemaNode.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/HtmlBlock.vue.d.ts +16 -0
- package/dist/components/renderer-v2/HtmlBlock.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/PaperViewport.vue.d.ts +63 -0
- package/dist/components/renderer-v2/PaperViewport.vue.d.ts.map +1 -0
- package/dist/components/renderer-v2/collectFieldValues.d.ts +29 -0
- package/dist/components/renderer-v2/collectFieldValues.d.ts.map +1 -0
- package/dist/components/renderer-v2/index.d.ts +13 -0
- package/dist/components/renderer-v2/index.d.ts.map +1 -0
- package/dist/components/renderer-v2/measure-rows.d.ts +12 -0
- package/dist/components/renderer-v2/measure-rows.d.ts.map +1 -0
- package/dist/components/renderer-v2/page-size-style.d.ts +28 -0
- package/dist/components/renderer-v2/page-size-style.d.ts.map +1 -0
- package/dist/components/renderer-v2/print-form.d.ts +20 -0
- package/dist/components/renderer-v2/print-form.d.ts.map +1 -0
- package/dist/designer-ui.css +5 -0
- package/dist/designer.d.ts +16 -0
- package/dist/designer.d.ts.map +1 -0
- package/dist/designer.js +16 -0
- package/dist/engine-v2/derivation.d.ts +81 -0
- package/dist/engine-v2/derivation.d.ts.map +1 -0
- package/dist/engine-v2/index.d.ts +3 -0
- package/dist/engine-v2/index.d.ts.map +1 -0
- package/dist/engine-v2/node-address.d.ts +25 -0
- package/dist/engine-v2/node-address.d.ts.map +1 -0
- package/dist/engine-v2/pagination.d.ts +120 -0
- package/dist/engine-v2/pagination.d.ts.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +14 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +5 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/zh-CN.d.ts +7 -0
- package/dist/i18n/zh-CN.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/renderer-core.css +1 -0
- package/dist/renderer.d.ts +22 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +93 -0
- package/dist/samples/types.d.ts +18 -0
- package/dist/samples/types.d.ts.map +1 -0
- package/dist/ticket-designer.css +5 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/schema-v2-index.d.ts +15 -0
- package/dist/types/schema-v2-index.d.ts.map +1 -0
- package/dist/types/schema-v2-operations.d.ts +124 -0
- package/dist/types/schema-v2-operations.d.ts.map +1 -0
- package/dist/types/schema-v2-serialization.d.ts +30 -0
- package/dist/types/schema-v2-serialization.d.ts.map +1 -0
- package/dist/types/schema-v2-table-rows.d.ts +17 -0
- package/dist/types/schema-v2-table-rows.d.ts.map +1 -0
- package/dist/types/schema-v2-validation.d.ts +10 -0
- package/dist/types/schema-v2-validation.d.ts.map +1 -0
- package/dist/types/schema-v2.d.ts +283 -0
- package/dist/types/schema-v2.d.ts.map +1 -0
- package/dist/utils/date-format.d.ts +34 -0
- package/dist/utils/date-format.d.ts.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设计器结构编辑动作:节点增删、Grid/Cell 结构、Inspector 的属性更新。
|
|
3
|
+
*
|
|
4
|
+
* 从 `FormDesigner.vue` 抽出(2026-09-07 批次 1 拆分):所有「改 schema」的动作集中在此,
|
|
5
|
+
* 只依赖文档句柄与选择态句柄,**不直接依赖组件实例**,可脱离 UI 单测。
|
|
6
|
+
*
|
|
7
|
+
* 闸门:结构性编辑统一走 `ctx.editable()`(设计态才允许),避免逐处手写守卫。
|
|
8
|
+
*/
|
|
9
|
+
import { type ComputedRef } from "vue";
|
|
10
|
+
import type { EditorNodeV2, HeaderFooterV2, TextStyleV2 } from "../../../types";
|
|
11
|
+
import type { SchemaDocument } from "./useSchemaDocument";
|
|
12
|
+
import type { NodeSelection } from "./useNodeSelection";
|
|
13
|
+
export type NodeKind = "text" | "field" | "table" | "html" | "image" | "grid";
|
|
14
|
+
export interface SchemaEditsContext {
|
|
15
|
+
document: SchemaDocument;
|
|
16
|
+
selection: NodeSelection;
|
|
17
|
+
/** 是否允许结构性编辑(设计态)。 */
|
|
18
|
+
editable: () => boolean;
|
|
19
|
+
/** 结构变化后清空选中(删除 / 撤销等场景)。 */
|
|
20
|
+
clearSelection: () => void;
|
|
21
|
+
}
|
|
22
|
+
export type SchemaEdits = ReturnType<typeof useSchemaEdits>;
|
|
23
|
+
export declare function useSchemaEdits(ctx: SchemaEditsContext): {
|
|
24
|
+
addRootGrid: () => void;
|
|
25
|
+
addGrid: () => void;
|
|
26
|
+
addNodeToSelectedCell: (kind: NodeKind) => void;
|
|
27
|
+
removeSelectedNode: () => void;
|
|
28
|
+
copySelected: () => void;
|
|
29
|
+
cutSelected: () => void;
|
|
30
|
+
pasteClipboard: () => void;
|
|
31
|
+
duplicateSelected: () => void;
|
|
32
|
+
mergeSelectedCellRight: () => void;
|
|
33
|
+
splitSelectedCell: () => void;
|
|
34
|
+
onCanvasNodeDragStart: (id: string) => void;
|
|
35
|
+
onDropNode: (detail: {
|
|
36
|
+
moveId: string;
|
|
37
|
+
cellId: string;
|
|
38
|
+
index: number;
|
|
39
|
+
}) => void;
|
|
40
|
+
onDropPalette: (detail: {
|
|
41
|
+
kind: NodeKind;
|
|
42
|
+
cellId: string;
|
|
43
|
+
}) => void;
|
|
44
|
+
updateSelectedNode: (updater: (node: EditorNodeV2) => EditorNodeV2, tag?: string) => void;
|
|
45
|
+
updateSelectedText: (event: Event) => void;
|
|
46
|
+
updateSelectedField: (event: Event) => void;
|
|
47
|
+
updateSelectedPrefix: (event: Event) => void;
|
|
48
|
+
updateSelectedSuffix: (event: Event) => void;
|
|
49
|
+
updateSelectedWidth: (event: Event) => void;
|
|
50
|
+
updateSelectedDefault: (event: Event) => void;
|
|
51
|
+
updateSelectedInnerBorder: (event: Event) => void;
|
|
52
|
+
updateSelectedAction: (event: Event) => void;
|
|
53
|
+
updateSelectedDateFormat: (event: Event) => void;
|
|
54
|
+
updateGridBorder: (event: Event) => void;
|
|
55
|
+
updateTableBorder: (event: Event) => void;
|
|
56
|
+
updateGridDimensions: (event: Event) => void;
|
|
57
|
+
updateTableRows: (event: Event) => void;
|
|
58
|
+
addTableColumn: () => void;
|
|
59
|
+
removeTableColumn: (columnKey: string) => void;
|
|
60
|
+
renameTableColumnKey: (oldKey: string, event: Event) => void;
|
|
61
|
+
updateTableColumn: (columnKey: string, field: "title" | "width" | "align", event: Event) => void;
|
|
62
|
+
updateTableHeaderFontSize: (event: Event) => void;
|
|
63
|
+
updateTableHeaderFontWeight: (event: Event) => void;
|
|
64
|
+
updateTableHeaderAlign: (event: Event) => void;
|
|
65
|
+
updateGridColumnWidth: (columnIndex: number, event: Event) => void;
|
|
66
|
+
updateGridCellDefault: (field: "cellPadding" | "cellAlign" | "cellVerticalAlign", event: Event) => void;
|
|
67
|
+
updateGridGap: (event: Event) => void;
|
|
68
|
+
updateSelectedCellPadding: (event: Event) => void;
|
|
69
|
+
updateSelectedCellAlign: (event: Event) => void;
|
|
70
|
+
updateSelectedCellVerticalAlign: (event: Event) => void;
|
|
71
|
+
updateSelectedCellFlex: (event: Event) => void;
|
|
72
|
+
updateSelectedCellRowHeight: (event: Event) => void;
|
|
73
|
+
updateSelectedTextStyle: (patch: Partial<TextStyleV2>) => void;
|
|
74
|
+
updateSelectedFontSize: (event: Event) => void;
|
|
75
|
+
updateSelectedLineHeight: (event: Event) => void;
|
|
76
|
+
updateSelectedFontWeight: (event: Event) => void;
|
|
77
|
+
updateSelectedColor: (event: Event) => void;
|
|
78
|
+
updateSelectedFontFamily: (event: Event) => void;
|
|
79
|
+
updateSelectedAlign: (event: Event) => void;
|
|
80
|
+
updateSelectedVerticalAlign: (event: Event) => void;
|
|
81
|
+
updateSelectedHtml: (event: Event) => void;
|
|
82
|
+
updateSelectedCss: (event: Event) => void;
|
|
83
|
+
updateSelectedImageSrc: (event: Event) => void;
|
|
84
|
+
updateSelectedImageField: (event: Event) => void;
|
|
85
|
+
updateSelectedImageSize: (dimension: "width" | "height", event: Event) => void;
|
|
86
|
+
updateSelectedImageFit: (event: Event) => void;
|
|
87
|
+
updateBaseRowHeight: (event: Event) => void;
|
|
88
|
+
updatePaperSize: (event: Event) => void;
|
|
89
|
+
paperMarginTop: ComputedRef<number>;
|
|
90
|
+
paperMarginRight: ComputedRef<number>;
|
|
91
|
+
paperMarginBottom: ComputedRef<number>;
|
|
92
|
+
paperMarginLeft: ComputedRef<number>;
|
|
93
|
+
updatePaperMarginSide: (side: "top" | "right" | "bottom" | "left", event: Event) => void;
|
|
94
|
+
updatePaperHeader: (next: Partial<HeaderFooterV2>) => void;
|
|
95
|
+
updatePaperHeaderContent: (zone: "left" | "center" | "right", event: Event) => void;
|
|
96
|
+
updatePaperHeaderEnabled: (event: Event) => void;
|
|
97
|
+
updatePaperHeaderHeight: (event: Event) => void;
|
|
98
|
+
updatePaperHeaderSeparator: (event: Event) => void;
|
|
99
|
+
updatePaperHeaderFontSize: (event: Event) => void;
|
|
100
|
+
updatePaperHeaderFontWeight: (event: Event) => void;
|
|
101
|
+
updatePaperHeaderColor: (event: Event) => void;
|
|
102
|
+
updatePaperFooter: (next: Partial<HeaderFooterV2>) => void;
|
|
103
|
+
updatePaperFooterContent: (zone: "left" | "center" | "right", event: Event) => void;
|
|
104
|
+
updatePaperFooterEnabled: (event: Event) => void;
|
|
105
|
+
updatePaperFooterHeight: (event: Event) => void;
|
|
106
|
+
updatePaperFooterSeparator: (event: Event) => void;
|
|
107
|
+
updatePaperFooterFontSize: (event: Event) => void;
|
|
108
|
+
updatePaperFooterFontWeight: (event: Event) => void;
|
|
109
|
+
updatePaperFooterColor: (event: Event) => void;
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=useSchemaEdits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSchemaEdits.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/composables/useSchemaEdits.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AA8BjD,OAAO,KAAK,EAEV,YAAY,EAQZ,cAAc,EAEd,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAiB5D,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB;uBA2B5B,IAAI;mBAUR,IAAI;kCASa,QAAQ,KAAG,IAAI;8BASrB,IAAI;wBAqEV,IAAI;uBAQL,IAAI;0BASD,IAAI;6BAMD,IAAI;kCAQC,IAAI;6BAWT,IAAI;gCASC,MAAM,KAAG,IAAI;yBAIpB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAG,IAAI;4BAOrD;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAG,IAAI;kCAS7D,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,QACvC,MAAM,KACX,IAAI;gCAM4B,KAAK,KAAG,IAAI;iCAQX,KAAK,KAAG,IAAI;kCAQX,KAAK,KAAG,IAAI;kCAWZ,KAAK,KAAG,IAAI;iCAWb,KAAK,KAAG,IAAI;mCAWV,KAAK,KAAG,IAAI;uCAWR,KAAK,KAAG,IAAI;kCAWjB,KAAK,KAAG,IAAI;sCAWR,KAAK,KAAG,IAAI;8BAkBpB,KAAK,KAAG,IAAI;+BAWX,KAAK,KAAG,IAAI;kCAWT,KAAK,KAAG,IAAI;6BAgBjB,KAAK,KAAG,IAAI;0BAWjB,IAAI;mCAKO,MAAM,KAAG,IAAI;mCAKb,MAAM,SAAS,KAAK,KAAG,IAAI;mCAQpD,MAAM,SACV,OAAO,GAAG,OAAO,GAAG,OAAO,SAC3B,KAAK,KACX,IAAI;uCA+BmC,KAAK,KAAG,IAAI;yCAOV,KAAK,KAAG,IAAI;oCAOjB,KAAK,KAAG,IAAI;yCA4BP,MAAM,SAAS,KAAK,KAAG,IAAI;mCAY9D,aAAa,GAAG,WAAW,GAAG,mBAAmB,SACjD,KAAK,KACX,IAAI;2BAcuB,KAAK,KAAG,IAAI;uCAQA,KAAK,KAAG,IAAI;qCASd,KAAK,KAAG,IAAI;6CAWJ,KAAK,KAAG,IAAI;oCAerB,KAAK,KAAG,IAAI;yCAWP,KAAK,KAAG,IAAI;qCAYhB,OAAO,CAAC,WAAW,CAAC,KAAG,IAAI;oCAU5B,KAAK,KAAG,IAAI;sCASV,KAAK,KAAG,IAAI;sCAOZ,KAAK,KAAG,IAAI;iCAOjB,KAAK,KAAG,IAAI;sCAKP,KAAK,KAAG,IAAI;iCAKjB,KAAK,KAAG,IAAI;yCAOJ,KAAK,KAAG,IAAI;gCAQrB,KAAK,KAAG,IAAI;+BAQb,KAAK,KAAG,IAAI;oCAQP,KAAK,KAAG,IAAI;sCAQV,KAAK,KAAG,IAAI;yCAQT,OAAO,GAAG,QAAQ,SAAS,KAAK,KAAG,IAAI;oCAW5C,KAAK,KAAG,IAAI;iCASf,KAAK,KAAG,IAAI;6BAOhB,KAAK,KAAG,IAAI;;;;;kCAyBpC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,SAClC,KAAK,KACX,IAAI;8BAmCgB,OAAO,CAAC,cAAc,CAAC,KAAG,IAAI;qCAK5B,MAAM,GAAG,QAAQ,GAAG,OAAO,SAAS,KAAK,KAAG,IAAI;sCAM/C,KAAK,KAAG,IAAI;qCAIb,KAAK,KAAG,IAAI;wCAKT,KAAK,KAAG,IAAI;uCAUb,KAAK,KAAG,IAAI;yCAKV,KAAK,KAAG,IAAI;oCAKjB,KAAK,KAAG,IAAI;8BAxCb,OAAO,CAAC,cAAc,CAAC,KAAG,IAAI;qCAK5B,MAAM,GAAG,QAAQ,GAAG,OAAO,SAAS,KAAK,KAAG,IAAI;sCAM/C,KAAK,KAAG,IAAI;qCAIb,KAAK,KAAG,IAAI;wCAKT,KAAK,KAAG,IAAI;uCAUb,KAAK,KAAG,IAAI;yCAKV,KAAK,KAAG,IAAI;oCAKjB,KAAK,KAAG,IAAI;EA4FrC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设计器全局 UI 配置(2026-09-08)。
|
|
3
|
+
*
|
|
4
|
+
* 用途:用一个结构化配置对象集中控制「设计页 UI」的可见性——当前主要作用于顶部
|
|
5
|
+
* 工具栏的模块按钮组,后续可扩展到左侧组件面板 / 右侧检查器等(配置结构已预留)。
|
|
6
|
+
*
|
|
7
|
+
* 设计约定:
|
|
8
|
+
* - `defaultDesignerUIConfig` 是**全局默认值**——默认显示**全部**模块(含「填充数据」组);
|
|
9
|
+
* 不想展示该组时由宿主经 `FormDesigner` 的 `uiConfig` prop 显式关闭。
|
|
10
|
+
* - 默认语言 `locale: "zh-CN"`(见 `src/i18n`);宿主经 `uiConfig.locale` 切换,如
|
|
11
|
+
* `<FormDesigner :ui-config="{ locale: 'en' }" />` 即可整页切英文(已迁移到 `t()` 的文案生效)。
|
|
12
|
+
* - 宿主通过 `<FormDesigner :ui-config="{ showFillDataModule: false }" />` 局部覆盖;
|
|
13
|
+
* `resolveDesignerUIConfig` 做浅合并(每个开关独立),未提供的键回退到默认。
|
|
14
|
+
* - 组件内统一用 `resolveDesignerUIConfig(props.uiConfig)` 得到完整配置,避免散落默认值。
|
|
15
|
+
*/
|
|
16
|
+
import type { Locale } from "../../i18n";
|
|
17
|
+
/** 设计页 UI 可见性开关 + 语言(每个开关独立,缺省见 `defaultDesignerUIConfig`)。 */
|
|
18
|
+
export interface DesignerUIConfig {
|
|
19
|
+
/** 新建空白按钮。 */
|
|
20
|
+
showNewBlank?: boolean;
|
|
21
|
+
/** 样例载入按钮(B3 注入的样例集)。 */
|
|
22
|
+
showSamples?: boolean;
|
|
23
|
+
/** 撤销 / 重做按钮组。 */
|
|
24
|
+
showUndoRedo?: boolean;
|
|
25
|
+
/** 模板模块组(保存模板 / 读取模板 / 导出文件 / 导入文件)。 */
|
|
26
|
+
showTemplateModule?: boolean;
|
|
27
|
+
/** 填充数据模块组(导入数据 / 导出数据 / 读取数据 / 保存数据)。默认显示。 */
|
|
28
|
+
showFillDataModule?: boolean;
|
|
29
|
+
/** 预览 / 打印按钮。 */
|
|
30
|
+
showPreviewPrint?: boolean;
|
|
31
|
+
/** 帮助按钮。 */
|
|
32
|
+
showHelp?: boolean;
|
|
33
|
+
/** 界面语言(默认简体中文)。 */
|
|
34
|
+
locale?: Locale;
|
|
35
|
+
}
|
|
36
|
+
/** 全局默认:显示所有模块,语言简体中文。 */
|
|
37
|
+
export declare const defaultDesignerUIConfig: DesignerUIConfig;
|
|
38
|
+
/** 浅合并宿主覆盖到默认配置,返回完整 `DesignerUIConfig`。 */
|
|
39
|
+
export declare function resolveDesignerUIConfig(partial?: Partial<DesignerUIConfig>): DesignerUIConfig;
|
|
40
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/components/designer/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0BAA0B;AAC1B,eAAO,MAAM,uBAAuB,EAAE,gBASrC,CAAC;AAEF,4CAA4C;AAC5C,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 设计器对外交付 API:把「当前表单」转成宿主可直接消费的 JSON 契约。
|
|
3
|
+
*
|
|
4
|
+
* 两个取值入口(宿主经 `FormDesigner` 的 ref 调用,或用同名纯函数):
|
|
5
|
+
* 1. **schema 配置** —— 整份 `FormSchemaV2`(版式描述),与工具栏「导出文件」同口径;
|
|
6
|
+
* 2. **表单数据** —— `{ 字段名: 值 }`(如 `{"单位":"运输队"}`)。取值口径与渲染期
|
|
7
|
+
* **完全同源**:直接复用 `collectFieldValues`(遍历渲染 DOM 的 `[data-field]`),
|
|
8
|
+
* 不另写一套 schema 遍历。表单没有任何字段时结果就是 `{}`。
|
|
9
|
+
*
|
|
10
|
+
* 工具栏「导出文件」/「导出数据」两个动作也调用同一组 API(见 `useSchemaDocument` /
|
|
11
|
+
* `useFillData`),并在控制台打印对应 JSON,便于联调时直接抄走数据。
|
|
12
|
+
*
|
|
13
|
+
* 除 `collectFormData` / `downloadJsonFile` 外均为纯函数,可脱离组件单测。
|
|
14
|
+
*/
|
|
15
|
+
import { type CollectFieldValuesOptions } from "../renderer-v2";
|
|
16
|
+
import type { FormDataV2, FormSchemaV2 } from "../../types";
|
|
17
|
+
/** 默认 JSON 缩进空格数(导出物是给人看 / 进版本库的,默认美化)。 */
|
|
18
|
+
export declare const JSON_INDENT = 2;
|
|
19
|
+
/** 导出文件名前缀(沿用 `ticket-designer-*` 命名惯例,与 `useSchemaDocument` / `useFillData` 一致)。 */
|
|
20
|
+
export declare const SCHEMA_EXPORT_PREFIX = "ticket-schema-v2";
|
|
21
|
+
export declare const FILL_DATA_EXPORT_PREFIX = "ticket-fill-data";
|
|
22
|
+
/**
|
|
23
|
+
* 采集渲染根容器内的**字段与值**,构成 `{ 字段名: 值 }`。
|
|
24
|
+
*
|
|
25
|
+
* 薄转发 `collectFieldValues`(渲染内核的 DOM 遍历采集器):两者是同一个实现,
|
|
26
|
+
* 保证「设计器导出的数据」与「消费页采集的数据」口径不会漂移。
|
|
27
|
+
*
|
|
28
|
+
* @param root 渲染根容器(设计器的 `.v2-canvas`),为 `null` 时返回 `{}`。
|
|
29
|
+
* @param options 脱敏口径等透传给 `collectFieldValues`。
|
|
30
|
+
*/
|
|
31
|
+
export declare function collectFormData(root: ParentNode | null | undefined, options?: CollectFieldValuesOptions): FormDataV2;
|
|
32
|
+
/** 序列化整份 schema(`pretty` 控制缩进,默认缩进)。 */
|
|
33
|
+
export declare function serializeSchemaJson(schema: FormSchemaV2, pretty?: boolean): string;
|
|
34
|
+
/** 序列化表单数据 JSON(`pretty` 控制缩进,默认缩进)。 */
|
|
35
|
+
export declare function serializeFormDataJson(data: FormDataV2, pretty?: boolean): string;
|
|
36
|
+
/** 生成带时间戳的导出文件名,避免连续导出互相覆盖。 */
|
|
37
|
+
export declare function exportFileName(prefix: string, stamp?: number): string;
|
|
38
|
+
/**
|
|
39
|
+
* 触发浏览器下载一个 JSON 文件(唯一的副作用点)。
|
|
40
|
+
* 非浏览器环境(Node / SSR)静默返回,调用方不必自己判断 `document`。
|
|
41
|
+
*/
|
|
42
|
+
export declare function downloadJsonFile(fileName: string, jsonText: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* `FormDesigner` 经 `defineExpose` 对宿主开放的程序化 API。
|
|
45
|
+
*
|
|
46
|
+
* 宿主典型用法(**宿主侧代码**,本仓库不改宿主):
|
|
47
|
+
* ```ts
|
|
48
|
+
* const designerRef = ref<InstanceType<typeof FormDesigner> | null>(null);
|
|
49
|
+
* // 保存:schema 配置 + 表单数据一起拿走
|
|
50
|
+
* const schema = designerRef.value!.getSchema(); // FormSchemaV2
|
|
51
|
+
* const data = designerRef.value!.getFormData(); // { 单位: "", 编号: "", ... }
|
|
52
|
+
* // 回填:
|
|
53
|
+
* designerRef.value!.setSchema(version.schema);
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export interface FormDesignerExposed {
|
|
57
|
+
/** 当前 schema 的深拷贝(改它不会污染设计器内部状态)。需要 JSON 文本时宿主自行 `JSON.stringify`。 */
|
|
58
|
+
getSchema: () => FormSchemaV2;
|
|
59
|
+
/**
|
|
60
|
+
* 当前表单的**字段与值**(`{ 字段名: 值 }`)。值来自渲染 DOM 遍历(`collectFieldValues`),
|
|
61
|
+
* 因此含用户在设计态 / 预览态就地输入的内容;表单没有配置字段时返回 `{}`。
|
|
62
|
+
* 需要 JSON 文本时宿主自行 `JSON.stringify`。
|
|
63
|
+
*/
|
|
64
|
+
getFormData: (options?: CollectFieldValuesOptions) => FormDataV2;
|
|
65
|
+
/** 载入一份 schema(对象或 JSON 文本),并清空历史与选中。 */
|
|
66
|
+
setSchema: (next: FormSchemaV2 | string) => void;
|
|
67
|
+
/** 下载 schema JSON 文件(与工具栏「导出文件」同一实现)。 */
|
|
68
|
+
exportSchemaFile: () => void;
|
|
69
|
+
/** 下载表单数据 JSON 文件(与工具栏「导出数据」同一实现)。 */
|
|
70
|
+
exportFillDataFile: () => void;
|
|
71
|
+
/** 触发打印(与工具栏「打印」同一实现)。 */
|
|
72
|
+
print: () => void;
|
|
73
|
+
/** 重置为空白模板(一个空 page + 一个根 Grid)。 */
|
|
74
|
+
resetBlank: () => void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* `setSchema` 的入参归一化:字符串按严格解析(`parseFormSchemaV2`,非法直接抛错),
|
|
78
|
+
* 对象走一次深拷贝——宿主传入的引用后续被它自己改,也不该影响设计器。
|
|
79
|
+
*/
|
|
80
|
+
export declare function normalizeIncomingSchema(next: FormSchemaV2 | string): FormSchemaV2;
|
|
81
|
+
//# sourceMappingURL=export-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-api.d.ts","sourceRoot":"","sources":["../../../src/components/designer/export-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,2CAA2C;AAC3C,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,GAAE,yBAA8B,GACtC,UAAU,CAGZ;AAED,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,UAAO,GAAG,MAAM,CAE/E;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,UAAO,GAAG,MAAM,CAE7E;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,CAEjF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAezE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,SAAS,EAAE,MAAM,YAAY,CAAC;IAC9B;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,yBAAyB,KAAK,UAAU,CAAC;IACjE,yCAAyC;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,KAAK,IAAI,CAAC;IACjD,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,oCAAoC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,YAAY,CAGjF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** 单元格(grid-cell):仅样式覆盖(padding / 行高 / 对齐)+ 合并拆分。 */
|
|
2
|
+
import type { GridCellV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: GridCellV2;
|
|
6
|
+
cellContext: {
|
|
7
|
+
rowIndex: number;
|
|
8
|
+
columnIndex: number;
|
|
9
|
+
hasNextSibling: boolean;
|
|
10
|
+
canSplit: boolean;
|
|
11
|
+
} | null;
|
|
12
|
+
cellBox: {
|
|
13
|
+
align?: string;
|
|
14
|
+
verticalAlign?: string;
|
|
15
|
+
} | null;
|
|
16
|
+
api: SchemaEdits;
|
|
17
|
+
};
|
|
18
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
export default _default;
|
|
20
|
+
//# sourceMappingURL=CellInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/CellInspector.vue"],"names":[],"mappings":"AAgGA,qDAAqD;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;;AA8IF,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 字段 P:字段名 / 前后标签 / 外部组件 action / 文本样式 / 默认值 / 宽度 / 内部边框。 */
|
|
2
|
+
import type { FieldPNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: FieldPNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=FieldPInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldPInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/FieldPInspector.vue"],"names":[],"mappings":"AAgFA,8DAA8D;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AAuK5D,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Grid 配置:行列数 / 列宽 / 边框 / 单元格默认 / 间距。 */
|
|
2
|
+
import type { GridNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: GridNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=GridInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/GridInspector.vue"],"names":[],"mappings":"AAiHA,0CAA0C;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AA4M1D,wBAMG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type HeaderFooterV2 } from "../../../types";
|
|
2
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
/** 段标题(页眉 / 页脚)。 */
|
|
5
|
+
label: string;
|
|
6
|
+
band: HeaderFooterV2 | undefined;
|
|
7
|
+
kind: "header" | "footer";
|
|
8
|
+
api: SchemaEdits;
|
|
9
|
+
/** 当前纸张边距(mm,四边同值):用于提示「带高不得超过边距」。 */
|
|
10
|
+
margin?: number;
|
|
11
|
+
};
|
|
12
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=HeaderFooterFields.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderFooterFields.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/HeaderFooterFields.vue"],"names":[],"mappings":"AAyKA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,GAAG,EAAE,WAAW,CAAC;IACjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;;AAwOF,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** HTML 模块:片段 + 模块内 CSS(Shadow DOM 隔离)。 */
|
|
2
|
+
import type { HtmlNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: HtmlNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=HtmlInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/HtmlInspector.vue"],"names":[],"mappings":"AAiCA,2CAA2C;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AA6D1D,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 图片:地址 / 数据字段 / 尺寸 / 填充方式。 */
|
|
2
|
+
import type { ImageNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: ImageNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=ImageInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/ImageInspector.vue"],"names":[],"mappings":"AA4DA,gCAAgC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AAmH3D,wBAMG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SchemaIssueV2 } from "../../../types";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
issues: SchemaIssueV2[];
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
select: (issue: SchemaIssueV2) => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onSelect?: ((issue: SchemaIssueV2) => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=IssuesPanel.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssuesPanel.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/IssuesPanel.vue"],"names":[],"mappings":"AAAA,OA0DO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;;;;;;AAgE/C,wBAOG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** 页面设置:纸张 / 四边边距 / 基础行高 / 分页开关 / 页眉 / 页脚(Inspector 组件化,2026-09-07 批次 2)。 */
|
|
2
|
+
import type { FormSchemaV2, HeaderFooterV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
paperSize: FormSchemaV2["paper"]["size"];
|
|
6
|
+
baseRowHeight: number;
|
|
7
|
+
/** 四边边距(mm),独立配置。 */
|
|
8
|
+
paperMarginTop: number;
|
|
9
|
+
paperMarginRight: number;
|
|
10
|
+
paperMarginBottom: number;
|
|
11
|
+
paperMarginLeft: number;
|
|
12
|
+
/** 页眉(paper 级全局配置,作用于所有物理页)。 */
|
|
13
|
+
header?: HeaderFooterV2;
|
|
14
|
+
/** 页脚(paper 级全局配置,作用于所有物理页)。 */
|
|
15
|
+
footer?: HeaderFooterV2;
|
|
16
|
+
api: SchemaEdits;
|
|
17
|
+
};
|
|
18
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
19
|
+
"paginate": boolean;
|
|
20
|
+
};
|
|
21
|
+
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
"update:paginate": (value: boolean) => any;
|
|
23
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
24
|
+
"onUpdate:paginate"?: ((value: boolean) => any) | undefined;
|
|
25
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=PageInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/PageInspector.vue"],"names":[],"mappings":"AA+GA,6EAA6E;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AASF,KAAK,iBAAiB,GAAG,WAAW,GAAG;IACvC,UAAU,EAAE,OAAO,CAAC;CACnB,CAAC;;;;;;AAuLF,wBAOG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 表格:最小行数 / 边框 / 列配置(增删列即增删派生字段)。 */
|
|
2
|
+
import type { TableNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: TableNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=TableInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/TableInspector.vue"],"names":[],"mappings":"AAkNA,sCAAsC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AA0N3D,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 固定文本节点:内容 + 文本样式。 */
|
|
2
|
+
import type { TextNodeV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
node: TextNodeV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=TextInspector.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInspector.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/TextInspector.vue"],"names":[],"mappings":"AAuBA,wBAAwB;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AAsD1D,wBAMG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 文本样式字段组(text / p 共用):字号 / 行高 / 粗细 / 颜色 / 对齐 / 字体。 */
|
|
2
|
+
import type { TextStyleV2 } from "../../../types";
|
|
3
|
+
import type { SchemaEdits } from "../composables/useSchemaEdits";
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
style?: TextStyleV2;
|
|
6
|
+
api: SchemaEdits;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=TextStyleFields.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextStyleFields.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/designer/inspectors/TextStyleFields.vue"],"names":[],"mappings":"AA8EA,wDAAwD;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,KAAK,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;;AAmJ7D,wBAMG"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { FieldActionTriggerV2, FieldPermissionV2, FieldRuleV2, FormDataV2, FormSchemaV2 } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* 消费页渲染形态选项(G8 / G10)。
|
|
4
|
+
*
|
|
5
|
+
* 设计态与消费态由**两个正交轴**区分(同一套渲染内核 `GridFormRenderer`):
|
|
6
|
+
* - `isDesign`(内核 `mode="design"`,仅设计器内):可编辑组件(表面层负责)+ 字段可就地输入看交互效果(不回写 schema);
|
|
7
|
+
* - `readonly`(消费态闸门):消费页不编辑组件,字段是否可输入由 `readonly` 全局控制,**默认 true(只读回显)**,
|
|
8
|
+
* 显式传 `false` 即进入「填写」——这正是 `FormRenderer` 这里唯一的输入控制。
|
|
9
|
+
*
|
|
10
|
+
* 因此 `FormRenderer` 不需要 `preview` / `fill` 这类模式区分:它永远是消费态(非 design),
|
|
11
|
+
* 对内统一传固定的非设计 `mode` 给内核,对外只暴露 `readonly` 与 `getFormData`。
|
|
12
|
+
*/
|
|
13
|
+
export interface FormRendererOptions {
|
|
14
|
+
/** 无外壳:去掉灰底纸张画布,便于嵌入消费页中部(G8 / G10)。 */
|
|
15
|
+
bare?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* 启用纸张视口缩放(浏览 / 移动端查看):包一层可平移缩放的视口。
|
|
18
|
+
* 启用时强制 `bare`(缩放态由视口管理,内核画布不再自带滚动/灰底),
|
|
19
|
+
* 缩放条与滚轮 / 双指捏合由视口提供;打印时缩放被 `@media print` 复位,走真实 mm。
|
|
20
|
+
*/
|
|
21
|
+
zoom?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 缩放视口挂载后自动适应宽度(窄屏 / 移动端查看场景)。仅当 `zoom` 为真时生效。
|
|
24
|
+
* 默认 false(保持 100%);窄屏传 true 可让表单自动铺满视口宽度。
|
|
25
|
+
*/
|
|
26
|
+
fitOnMount?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 只读闸门(与内核 `mode` **正交**):默认 **true** —— 消费页默认只读回显(仅浏览详情)。
|
|
29
|
+
* 设为 false 即进入「填写」态,字段可输入(契合「预览即消费模板、输入数据以配合业务流程流转」)。
|
|
30
|
+
* 设计态的「不回写 schema 的就地输入」是另一回事(内核 `mode="design"`,由设计器控制),与此无关。
|
|
31
|
+
*/
|
|
32
|
+
readonly?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 字段级运行时权限(P9.2a / P9.2b):与 `data` 同轨经 props 注入、不进 schema。
|
|
35
|
+
* `{ 字段名: "READ" | "EDIT" | "HIDDEN" }`——EDIT=可输入(缺省)、READ=只读回显、
|
|
36
|
+
* HIDDEN=脱敏显示(输入内容以 `***` 替代,占位与前后标签保留;真实值不进 DOM,
|
|
37
|
+
* `collectFieldValues` 跳过该字段,`getFormData` 仍返回真实值)。
|
|
38
|
+
* 未注明的字段一律 EDIT,向后兼容。
|
|
39
|
+
*/
|
|
40
|
+
fieldPermissions?: Record<string, FieldPermissionV2>;
|
|
41
|
+
/**
|
|
42
|
+
* 字段级校验规则(P9.2c):与 `data` / `fieldPermissions` 同轨经 props 注入、不进
|
|
43
|
+
* schema。`{ 字段名: { required: true } }`——经 `validate()` 对当前数据做必填校验,
|
|
44
|
+
* 返回值为空的字段名数组(空数组 = 全部通过)。后续可扩展更多规则。
|
|
45
|
+
*/
|
|
46
|
+
rules?: Record<string, FieldRuleV2>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 公共渲染入口(G8):消费页引用渲染器的唯一公开组件。
|
|
50
|
+
*
|
|
51
|
+
* 设计器(FormDesigner)仍直接引用内核 `GridFormRenderer`(并包 `CanvasSurface` 负责组件编辑);
|
|
52
|
+
* 本组件是在内核之上收敛出的「消费页友好」包装——props 收敛为 `schema / data / options`,
|
|
53
|
+
* 不暴露任何设计器私有状态(`selectedNodeId` / 拖拽态 / `node-drag-start`),从而可被独立引用与库化。
|
|
54
|
+
*
|
|
55
|
+
* 消费页典型流程:拿到 JSON 字符串 → `parseTolerantFormSchemaV2(json).schema` →
|
|
56
|
+
* `<FormRenderer :schema="schema" v-model:data="data" />`(只读回显);
|
|
57
|
+
* 需要录入时 `<FormRenderer :schema="schema" :options="{ readonly: false }" v-model:data="data" />`。
|
|
58
|
+
*/
|
|
59
|
+
type __VLS_Props = {
|
|
60
|
+
/** 设计器导出的 Schema(消费页由 json + 容错解析得到)。 */
|
|
61
|
+
schema: FormSchemaV2;
|
|
62
|
+
/** 字段数据;缺省为空(显示静态内容或 default)。 */
|
|
63
|
+
data?: FormDataV2 | null;
|
|
64
|
+
/** 渲染形态选项(G8 / G10:bare / zoom / fitOnMount / readonly)。 */
|
|
65
|
+
options?: FormRendererOptions;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* D2:向消费页暴露打印能力,使「触发」与「呈现」同归渲染层。
|
|
69
|
+
* 消费页 `ref.value.print()` 即可打印,无需自己 `window.print()`、也无需关心
|
|
70
|
+
* `@page` 纸张注入(由本组件持有内核渲染实例在挂载期完成)。
|
|
71
|
+
*
|
|
72
|
+
* 打印走内核的**局部打印**(vue-print-next):只把纸张序列化进同源 iframe,
|
|
73
|
+
* 消费页其余内容(导航 / 头部 / 其他区域)不进打印流。
|
|
74
|
+
* @returns 是否真的触发了打印(找不到打印根 / 宿主不支持时为 `false`)。
|
|
75
|
+
*/
|
|
76
|
+
declare function print(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 获取整个表单当前输入数据(消费页「提交 / 导出填写结果」入口)。
|
|
79
|
+
* 返回内部响应式 data 的快照——初始来自 `props.data`,每次字段 `field-change` 即时并入,
|
|
80
|
+
* 与 `update:data` 发射的口径一致。只读态返回的是回显数据,填写态返回的是已录入值。
|
|
81
|
+
*/
|
|
82
|
+
declare function getFormData(): FormDataV2;
|
|
83
|
+
/**
|
|
84
|
+
* P9.2c 提交校验:对当前数据执行 `options.rules` 里的必填规则(引擎
|
|
85
|
+
* `findEmptyRequiredFields` 为真相源),返回**值为空**的必填字段名数组。
|
|
86
|
+
* 空数组 = 全部通过。规则与 data 同轨经 props 注入、不进 schema;
|
|
87
|
+
* HIDDEN 脱敏字段的真实值在响应式数据侧,此处校验不受脱敏影响。
|
|
88
|
+
*/
|
|
89
|
+
declare function validate(): string[];
|
|
90
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {
|
|
91
|
+
print: typeof print;
|
|
92
|
+
getFormData: typeof getFormData;
|
|
93
|
+
validate: typeof validate;
|
|
94
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
95
|
+
action: (payload: FieldActionTriggerV2) => any;
|
|
96
|
+
"field-change": (field: string, value: string) => any;
|
|
97
|
+
"update:data": (data: FormDataV2) => any;
|
|
98
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
99
|
+
onAction?: ((payload: FieldActionTriggerV2) => any) | undefined;
|
|
100
|
+
"onField-change"?: ((field: string, value: string) => any) | undefined;
|
|
101
|
+
"onUpdate:data"?: ((data: FormDataV2) => any) | undefined;
|
|
102
|
+
}>, {
|
|
103
|
+
options: FormRendererOptions;
|
|
104
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
105
|
+
export default _default;
|
|
106
|
+
//# sourceMappingURL=FormRenderer.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/components/renderer-v2/FormRenderer.vue"],"names":[],"mappings":"AAiMA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACb,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACrD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,KAAK,WAAW,GAAG;IACf,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,kCAAkC;IAClC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAkDJ;;;;;;;;GAQG;AACH,iBAAS,KAAK,IAAI,OAAO,CAGxB;AAED;;;;GAIG;AACH,iBAAS,WAAW,IAAI,UAAU,CAEjC;AAED;;;;;GAKG;AACH,iBAAS,QAAQ,IAAI,MAAM,EAAE,CAE5B;;;;;;;;;;;;;;aAlFa,mBAAmB;;AAoNjC,wBASG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type FieldActionTriggerV2, type FormSchemaV2, type FormDataV2, type FieldPermissionV2 } from "../../types";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
schema: FormSchemaV2;
|
|
4
|
+
/**
|
|
5
|
+
* 渲染模式(A1 / A5 分层重构):显式声明调用方意图,取代旧版靠 `data != null` 推断三态。
|
|
6
|
+
* - design:设计态,字段以 contenteditable 就地占位(不回写 schema),结构可编辑。
|
|
7
|
+
* - preview:带数据回显,**字段可输入**(消费模板、输入数据以配合流程流转)。
|
|
8
|
+
* 未传时向后兼容:有 `data` → preview,否则 design。
|
|
9
|
+
* ⚠️ `mode` 不决定可编辑性;真正的「不可输入」由下面的 `readonly` 闸门决定。
|
|
10
|
+
*/
|
|
11
|
+
mode?: "design" | "preview";
|
|
12
|
+
/** 填充/预览态数据;用于字段取值与 Table 行数推导。设计态可为空(字段显示 default/占位)。 */
|
|
13
|
+
data?: FormDataV2 | null;
|
|
14
|
+
/**
|
|
15
|
+
* 只读闸门:为 `true` 时字段一律不可输入(真·只读回显/打印浏览)。
|
|
16
|
+
* 与 `mode` **正交**——`mode` 不决定可编辑性:
|
|
17
|
+
* - `FormRenderer` 默认 `readonly=true`(消费页默认只读回显),显式传 `readonly=false` 即进入填写态;
|
|
18
|
+
* - 设计器预览态显式传 `:readonly="false"`(查看输入交互效果,亦不回写 schema)。
|
|
19
|
+
*/
|
|
20
|
+
readonly?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 无外壳模式(G8/G10):去掉灰底纸张画布外壳(padding / 背景 / 阴影),
|
|
23
|
+
* 仅渲染纸张 `<main>`,便于消费页把表单嵌入自身页面中部(而非模拟整张纸)。
|
|
24
|
+
*/
|
|
25
|
+
bare?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 分页开关(默认 true):预览/填写/打印时按纸张正文高度把超高内容切成多个物理页;
|
|
28
|
+
* 设计态传 false,整页连续渲染便于编辑(不切分)。
|
|
29
|
+
*/
|
|
30
|
+
paginate?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 字段级运行时权限(P9.2a/P9.2b,与 `data` 同轨经 props 注入,不进 schema):
|
|
33
|
+
* `{ 字段名: "READ" | "EDIT" | "HIDDEN" }`。EDIT=可输入(缺省);READ=只读回显;
|
|
34
|
+
* HIDDEN=隐藏且保留固定空间(visibility:hidden,占位/分页高度不变,值仍可采集)。
|
|
35
|
+
* 未注明的字段一律 EDIT,向后兼容。
|
|
36
|
+
*/
|
|
37
|
+
fieldPermissions?: Record<string, FieldPermissionV2>;
|
|
38
|
+
};
|
|
39
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
40
|
+
"field-change": (field: string, value: string) => any;
|
|
41
|
+
"action-trigger": (payload: FieldActionTriggerV2) => any;
|
|
42
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
43
|
+
"onField-change"?: ((field: string, value: string) => any) | undefined;
|
|
44
|
+
"onAction-trigger"?: ((payload: FieldActionTriggerV2) => any) | undefined;
|
|
45
|
+
}>, {
|
|
46
|
+
paginate: boolean;
|
|
47
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
48
|
+
export default _default;
|
|
49
|
+
//# sourceMappingURL=GridFormRenderer.vue.d.ts.map
|