weaver-e10-builder 1.5.16 → 1.6.4
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/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +4 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +109 -51
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/form-attachment-setting.d.ts +3 -0
- package/dist/commands/form-attachment-setting.d.ts.map +1 -0
- package/dist/commands/form-attachment-setting.js +422 -0
- package/dist/commands/form-attachment-setting.js.map +1 -0
- package/dist/commands/form-data.d.ts.map +1 -1
- package/dist/commands/form-data.js +49 -1
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.d.ts +21 -0
- package/dist/commands/form-ebuilder-scope.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +41 -8
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +6 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +138 -31
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-layout-code-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-code-reviewed.js +61 -0
- package/dist/commands/form-layout-code-reviewed.js.map +1 -0
- package/dist/commands/form-layout-describe.d.ts +3 -0
- package/dist/commands/form-layout-describe.d.ts.map +1 -0
- package/dist/commands/form-layout-describe.js +58 -0
- package/dist/commands/form-layout-describe.js.map +1 -0
- package/dist/commands/form-layout-diff.d.ts +3 -0
- package/dist/commands/form-layout-diff.d.ts.map +1 -0
- package/dist/commands/form-layout-diff.js +48 -0
- package/dist/commands/form-layout-diff.js.map +1 -0
- package/dist/commands/form-layout-document.d.ts +3 -0
- package/dist/commands/form-layout-document.d.ts.map +1 -0
- package/dist/commands/form-layout-document.js +81 -0
- package/dist/commands/form-layout-document.js.map +1 -0
- package/dist/commands/form-layout-edit.d.ts +3 -0
- package/dist/commands/form-layout-edit.d.ts.map +1 -0
- package/dist/commands/form-layout-edit.js +51 -0
- package/dist/commands/form-layout-edit.js.map +1 -0
- package/dist/commands/form-layout-init-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-init-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-init-reviewed.js +78 -0
- package/dist/commands/form-layout-init-reviewed.js.map +1 -0
- package/dist/commands/form-layout-restore.d.ts.map +1 -1
- package/dist/commands/form-layout-restore.js +23 -0
- package/dist/commands/form-layout-restore.js.map +1 -1
- package/dist/commands/form-layout-template-catalog.d.ts +3 -0
- package/dist/commands/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/commands/form-layout-template-catalog.js +45 -0
- package/dist/commands/form-layout-template-catalog.js.map +1 -0
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +80 -5
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +39 -6
- package/dist/commands/project.js.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +12 -5
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.js +5 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts +6 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.js +23 -5
- package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.js +22 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +13 -4
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +9 -2
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/date_trigger.js +2 -2
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +11 -10
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/event_button.js +1 -1
- package/dist/services/actionflow/components/event_button.js.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts +29 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.js +67 -3
- package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
- package/dist/services/actionflow/components/time_batch_trigger.js +2 -2
- package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +44 -1
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +231 -5
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +8 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +120 -14
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/system_params.d.ts.map +1 -1
- package/dist/services/actionflow/system_params.js +4 -1
- package/dist/services/actionflow/system_params.js.map +1 -1
- package/dist/services/actionflow/trigger_common.d.ts.map +1 -1
- package/dist/services/actionflow/trigger_common.js +12 -3
- package/dist/services/actionflow/trigger_common.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +117 -40
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-attachment-settings.d.ts +110 -0
- package/dist/services/form-attachment-settings.d.ts.map +1 -0
- package/dist/services/form-attachment-settings.js +332 -0
- package/dist/services/form-attachment-settings.js.map +1 -0
- package/dist/services/form-attachment-upload.d.ts +30 -0
- package/dist/services/form-attachment-upload.d.ts.map +1 -0
- package/dist/services/form-attachment-upload.js +76 -0
- package/dist/services/form-attachment-upload.js.map +1 -0
- package/dist/services/form-data-openapi.d.ts +2 -0
- package/dist/services/form-data-openapi.d.ts.map +1 -1
- package/dist/services/form-data-openapi.js +1 -0
- package/dist/services/form-data-openapi.js.map +1 -1
- package/dist/services/form-layout-code-reviewed.d.ts +32 -0
- package/dist/services/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/services/form-layout-code-reviewed.js +101 -0
- package/dist/services/form-layout-code-reviewed.js.map +1 -0
- package/dist/services/form-layout-describe.d.ts +4 -0
- package/dist/services/form-layout-describe.d.ts.map +1 -0
- package/dist/services/form-layout-describe.js +107 -0
- package/dist/services/form-layout-describe.js.map +1 -0
- package/dist/services/form-layout-diff.d.ts +37 -0
- package/dist/services/form-layout-diff.d.ts.map +1 -0
- package/dist/services/form-layout-diff.js +232 -0
- package/dist/services/form-layout-diff.js.map +1 -0
- package/dist/services/form-layout-document-apply.d.ts +23 -0
- package/dist/services/form-layout-document-apply.d.ts.map +1 -0
- package/dist/services/form-layout-document-apply.js +82 -0
- package/dist/services/form-layout-document-apply.js.map +1 -0
- package/dist/services/form-layout-document.d.ts +13 -0
- package/dist/services/form-layout-document.d.ts.map +1 -0
- package/dist/services/form-layout-document.js +228 -0
- package/dist/services/form-layout-document.js.map +1 -0
- package/dist/services/form-layout-edit.d.ts +21 -0
- package/dist/services/form-layout-edit.d.ts.map +1 -0
- package/dist/services/form-layout-edit.js +103 -0
- package/dist/services/form-layout-edit.js.map +1 -0
- package/dist/services/form-layout-init-plan.d.ts +54 -0
- package/dist/services/form-layout-init-plan.d.ts.map +1 -0
- package/dist/services/form-layout-init-plan.js +211 -0
- package/dist/services/form-layout-init-plan.js.map +1 -0
- package/dist/services/form-layout-source/review.d.ts +4 -0
- package/dist/services/form-layout-source/review.d.ts.map +1 -0
- package/dist/services/form-layout-source/review.js +54 -0
- package/dist/services/form-layout-source/review.js.map +1 -0
- package/dist/services/form-layout-template-advanced.d.ts +5 -0
- package/dist/services/form-layout-template-advanced.d.ts.map +1 -1
- package/dist/services/form-layout-template-advanced.js +17 -1
- package/dist/services/form-layout-template-advanced.js.map +1 -1
- package/dist/services/form-layout-template-catalog.d.ts +13 -0
- package/dist/services/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/services/form-layout-template-catalog.js +27 -0
- package/dist/services/form-layout-template-catalog.js.map +1 -0
- package/dist/services/form-layout-template-flow.d.ts +1 -1
- package/dist/services/form-layout-template-flow.d.ts.map +1 -1
- package/dist/services/form-layout-template-flow.js.map +1 -1
- package/dist/services/form-layout-template-verification.d.ts +34 -0
- package/dist/services/form-layout-template-verification.d.ts.map +1 -0
- package/dist/services/form-layout-template-verification.js +124 -0
- package/dist/services/form-layout-template-verification.js.map +1 -0
- package/dist/services/form-style-template.d.ts +3 -3
- package/dist/services/form-style-template.d.ts.map +1 -1
- package/dist/services/form-style-template.js +18 -13
- package/dist/services/form-style-template.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +163 -155
- package/skill-docs/_catalog.md +110 -106
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +60 -3
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +35 -33
- package/skill-docs/assets/sample/api/formApi.js +689 -510
- package/skill-docs/assets/sample/app/config.js +4 -0
- package/skill-docs/assets/sample/app/fields.js +25 -0
- package/skill-docs/assets/sample/entry.js +24 -22
- package/skill-docs/assets/sample/eslint.config.cjs +1 -0
- package/skill-docs/assets/sample/pages/Items.js +247 -0
- package/skill-docs/assets/sample/styles/prototypeStyles.js +137 -0
- package/skill-docs/references/coding/guide-edit-backfill.md +102 -150
- package/skill-docs/references/coding/guide-form-crud.md +195 -172
- package/skill-docs/references/coding/guide-html-to-react.md +250 -0
- package/skill-docs/references/coding/guide-page-code.md +194 -167
- package/skill-docs/references/coding/guide-page-export.md +27 -18
- package/skill-docs/references/coding/ref-compile-rules.md +7 -7
- package/skill-docs/references/common/capability-boundaries.md +20 -1
- package/skill-docs/references/common/guide-plan-template.md +29 -3
- package/skill-docs/references/common/map.md +13 -8
- package/skill-docs/references/common/ref-cli-commands.md +31 -10
- package/skill-docs/references/components/display-FilePreview.md +5 -4
- package/skill-docs/references/form/guide-browser-definition.md +57 -13
- package/skill-docs/references/form/guide-create-form.md +258 -258
- package/skill-docs/references/form/guide-field-linkage.md +4 -1
- package/skill-docs/references/form/guide-form-attachment-setting.md +95 -0
- package/skill-docs/references/form/guide-form-data.md +22 -1
- package/skill-docs/references/form/layout/code-block/code-block-guide.md +153 -0
- package/skill-docs/references/form/layout/code-block/controls.md +60 -0
- package/skill-docs/references/form/layout/code-block/coverage.md +32 -0
- package/skill-docs/references/form/layout/code-block/details.md +57 -0
- package/skill-docs/references/form/layout/code-block/events-validation.md +42 -0
- package/skill-docs/references/form/layout/code-block/foundations-fields.md +56 -0
- package/skill-docs/references/form/layout/code-block/layout-css.md +116 -0
- package/skill-docs/references/form/layout/code-block/recipes.md +164 -0
- package/skill-docs/references/form/layout/code-block/troubleshooting.md +49 -0
- package/skill-docs/references/form/layout/code-block/ui-global.md +47 -0
- package/skill-docs/references/form/layout/document.md +39 -0
- package/skill-docs/references/form/layout/incremental.md +133 -0
- package/skill-docs/references/form/layout/initialization.md +39 -0
- package/skill-docs/references/form/layout/inspect-edit.md +76 -0
- package/skill-docs/references/form/layout/layout-overview.md +67 -0
- package/skill-docs/references/form/layout/management.md +64 -0
- package/skill-docs/references/form/layout/planning.md +76 -0
- package/skill-docs/references/form/layout/source-restoration.md +388 -0
- package/skill-docs/references/form/layout/template/advanced-css.md +167 -0
- package/skill-docs/references/form/layout/template/advanced.md +318 -0
- package/skill-docs/references/form/layout/template/easy.md +64 -0
- package/skill-docs/references/form/layout/template/flow.md +30 -0
- package/skill-docs/references/form/layout/template/template-guide.md +56 -0
- package/skill-docs/references/form/layout/workflow-layout.md +44 -0
- package/skill-docs/references/form/ref-form-fields.md +303 -301
- package/skill-docs/references/workflow/guide-workflow-node-layout.md +189 -187
- package/skill-docs/assets/sample/config/config.js +0 -0
- package/skill-docs/assets/sample/config/configLoad.js +0 -0
- package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
- package/skill-docs/assets/sample/config/config_default.js +0 -0
- package/skill-docs/assets/sample/memo.md +0 -0
- package/skill-docs/assets/sample/readme.js +0 -8
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ApiClient } from '../core/client.js';
|
|
2
|
+
export interface TemplateEvidence {
|
|
3
|
+
kind: 'advanced' | 'flow';
|
|
4
|
+
id: string;
|
|
5
|
+
fingerprint: string;
|
|
6
|
+
style: Record<string, unknown>;
|
|
7
|
+
columns?: Array<{
|
|
8
|
+
type: string;
|
|
9
|
+
size: number;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export interface EasyTemplateEvidence {
|
|
13
|
+
kind: 'easy';
|
|
14
|
+
id: string;
|
|
15
|
+
fingerprint: string;
|
|
16
|
+
columns: Array<{
|
|
17
|
+
type: string;
|
|
18
|
+
size: number;
|
|
19
|
+
}>;
|
|
20
|
+
rowHeight: number;
|
|
21
|
+
titleStyle: {
|
|
22
|
+
backColor?: string;
|
|
23
|
+
borderColor?: string;
|
|
24
|
+
};
|
|
25
|
+
fieldStyle: {
|
|
26
|
+
backColor?: string;
|
|
27
|
+
borderColor?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare function readEasyTemplateEvidence(client: Pick<ApiClient, 'get' | 'post'>, baseUrl: string, id: string): Promise<EasyTemplateEvidence>;
|
|
31
|
+
export declare function verifyAppliedEasyTemplate(evidence: EasyTemplateEvidence, formLayout: any): string[];
|
|
32
|
+
export declare function readTemplateEvidence(client: Pick<ApiClient, 'post'>, baseUrl: string, layoutType: string, id: string): Promise<TemplateEvidence>;
|
|
33
|
+
export declare function verifyAppliedTemplate(evidence: TemplateEvidence, formLayout: any): string[];
|
|
34
|
+
//# sourceMappingURL=form-layout-template-verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-layout-template-verification.d.ts","sourceRoot":"","sources":["../../src/services/form-layout-template-verification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AACD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,UAAU,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAMD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EACrG,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqB3C;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,EAAE,CAgBnG;AAqBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EACzF,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmB3D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,EAAE,CAoB3F"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { digest } from './form-layout-source/schema.js';
|
|
2
|
+
import { AdvancedTemplateService } from './form-layout-template-advanced.js';
|
|
3
|
+
import { FlowTemplateService } from './form-layout-template-flow.js';
|
|
4
|
+
import { EasyTemplateService, buildEasyPayload } from './form-layout-template-easy.js';
|
|
5
|
+
function cellStyle(cell) {
|
|
6
|
+
return { backColor: cell?.style?.backColor, borderColor: cell?.style?.borderTop?.color };
|
|
7
|
+
}
|
|
8
|
+
export async function readEasyTemplateEvidence(client, baseUrl, id) {
|
|
9
|
+
const api = new EasyTemplateService(client, baseUrl);
|
|
10
|
+
const template = await api.get(id);
|
|
11
|
+
const payload = buildEasyPayload(template.data, {}, id);
|
|
12
|
+
const { module: _module, id: _id, ...styleTemplateParam } = payload;
|
|
13
|
+
const response = await client.post(`${baseUrl}/api/form/local/initLayout`, {
|
|
14
|
+
module: 'form', initMode: 0, colNum: 2, styleTemplateParam,
|
|
15
|
+
});
|
|
16
|
+
if (response?.code !== 200 || response?.status !== true)
|
|
17
|
+
throw new Error('简易模板预览失败');
|
|
18
|
+
const sheet = response.data?.pageLayouts?.[0]?.config?.workbook?.Sheet1;
|
|
19
|
+
const columns = sheet?.columns;
|
|
20
|
+
const cells = sheet?.cells;
|
|
21
|
+
if (!Array.isArray(columns) || columns.length < 2 || !Array.isArray(cells))
|
|
22
|
+
throw new Error('简易模板预览缺少主网格');
|
|
23
|
+
const title = cells.find((cell) => Number(cell.row) === 0 && Number(cell.col) === 0);
|
|
24
|
+
const field = cells.find((cell) => Number(cell.row) === 0 && Number(cell.col) === 1);
|
|
25
|
+
if (!title || !field)
|
|
26
|
+
throw new Error('简易模板预览缺少标题和字段单元格');
|
|
27
|
+
const evidence = { kind: 'easy', id,
|
|
28
|
+
columns: columns.map((col) => ({ type: String(col.type), size: Number(col.size) })),
|
|
29
|
+
rowHeight: Number(template.data.rowHeight), titleStyle: cellStyle(title), fieldStyle: cellStyle(field) };
|
|
30
|
+
return { ...evidence, fingerprint: digest({ config: template.data, ...evidence }) };
|
|
31
|
+
}
|
|
32
|
+
export function verifyAppliedEasyTemplate(evidence, formLayout) {
|
|
33
|
+
const sheet = formLayout?.pageLayouts?.[0]?.config?.workbook?.Sheet1;
|
|
34
|
+
if (!sheet)
|
|
35
|
+
return ['简易模板主网格未回读'];
|
|
36
|
+
const issues = [];
|
|
37
|
+
const columns = Array.isArray(sheet.columns) ? sheet.columns.map((col) => ({
|
|
38
|
+
type: String(col.type), size: Number(col.size),
|
|
39
|
+
})) : [];
|
|
40
|
+
if (digest(columns) !== digest(evidence.columns))
|
|
41
|
+
issues.push('简易模板列宽未与应用后布局一致');
|
|
42
|
+
if (!Array.isArray(sheet.rows) || !sheet.rows.some((row) => Number(row.size) === evidence.rowHeight))
|
|
43
|
+
issues.push('简易模板行高未与应用后布局一致');
|
|
44
|
+
const actual = Array.isArray(sheet.cells) ? sheet.cells : [];
|
|
45
|
+
const hasStyle = (style) => actual.some((cell) => matchesSpecified(style, cellStyle(cell)));
|
|
46
|
+
if (!hasStyle(evidence.titleStyle))
|
|
47
|
+
issues.push('简易模板标题颜色或边框未与应用后布局一致');
|
|
48
|
+
if (!hasStyle(evidence.fieldStyle))
|
|
49
|
+
issues.push('简易模板字段颜色或边框未与应用后布局一致');
|
|
50
|
+
return issues;
|
|
51
|
+
}
|
|
52
|
+
function object(value, label) {
|
|
53
|
+
let parsed = value;
|
|
54
|
+
if (typeof parsed === 'string') {
|
|
55
|
+
try {
|
|
56
|
+
parsed = JSON.parse(parsed);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
throw new Error(`${label} 不是有效 JSON`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
63
|
+
throw new Error(`${label} 格式无效`);
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
function matchesSpecified(expected, actual) {
|
|
67
|
+
if (expected === undefined || actual === undefined)
|
|
68
|
+
return expected === actual;
|
|
69
|
+
if (expected && typeof expected === 'object' && !Array.isArray(expected)) {
|
|
70
|
+
if (!actual || typeof actual !== 'object' || Array.isArray(actual))
|
|
71
|
+
return false;
|
|
72
|
+
return Object.entries(expected).every(([key, value]) => matchesSpecified(value, actual[key]));
|
|
73
|
+
}
|
|
74
|
+
return digest(expected) === digest(actual);
|
|
75
|
+
}
|
|
76
|
+
export async function readTemplateEvidence(client, baseUrl, layoutType, id) {
|
|
77
|
+
if (layoutType === 'FLOW') {
|
|
78
|
+
const row = (await new FlowTemplateService(client, baseUrl).list()).find(item => String(item.id) === id);
|
|
79
|
+
if (!row || Number(row.templateStatus) !== 1)
|
|
80
|
+
throw new Error(`流式模板 ${id} 不存在或未启用`);
|
|
81
|
+
const raw = object(row.styleJson, '流式模板样式');
|
|
82
|
+
const style = { formHeader: object(raw.formHeader, 'formHeader'),
|
|
83
|
+
styleConfig: object(raw.styleConfig, 'styleConfig') };
|
|
84
|
+
return { kind: 'flow', id, fingerprint: digest(style), style };
|
|
85
|
+
}
|
|
86
|
+
if (layoutType === 'EXCEL') {
|
|
87
|
+
const template = await new AdvancedTemplateService(client, baseUrl).get(id);
|
|
88
|
+
const style = object(template.layoutInfo?.formStyle?.styleConfig || '{}', '高级模板布局样式');
|
|
89
|
+
const columns = template.layoutInfo?.pageLayouts?.[0]?.config?.workbook?.Sheet1?.columns;
|
|
90
|
+
if (!Array.isArray(columns) || !columns.length)
|
|
91
|
+
throw new Error('高级模板主网格列宽缺失');
|
|
92
|
+
const normalized = columns.map((col) => ({ type: String(col.type), size: Number(col.size) }));
|
|
93
|
+
if (normalized.some(col => !Number.isFinite(col.size)))
|
|
94
|
+
throw new Error('高级模板列宽无效');
|
|
95
|
+
return { kind: 'advanced', id, fingerprint: digest({ style, columns: normalized }), style, columns: normalized };
|
|
96
|
+
}
|
|
97
|
+
throw new Error(`不支持的布局类型 ${layoutType}`);
|
|
98
|
+
}
|
|
99
|
+
export function verifyAppliedTemplate(evidence, formLayout) {
|
|
100
|
+
const issues = [];
|
|
101
|
+
const actualStyle = formLayout?.formStyle || {};
|
|
102
|
+
for (const [section, expected] of Object.entries(evidence.style)) {
|
|
103
|
+
try {
|
|
104
|
+
const actual = evidence.kind === 'flow'
|
|
105
|
+
? object(actualStyle[section], `已应用布局 ${section}`)
|
|
106
|
+
: object(actualStyle.styleConfig, '已应用布局 styleConfig')[section];
|
|
107
|
+
if (actual === undefined || !matchesSpecified(expected, actual))
|
|
108
|
+
issues.push(`模板样式 ${section} 未与应用后布局一致`);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
issues.push(`模板样式 ${section} 无法从应用后布局回读`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (evidence.columns) {
|
|
115
|
+
const actualColumns = formLayout?.pageLayouts?.[0]?.config?.workbook?.Sheet1?.columns;
|
|
116
|
+
const normalized = Array.isArray(actualColumns) ? actualColumns.map((col) => ({
|
|
117
|
+
type: String(col.type), size: Number(col.size),
|
|
118
|
+
})) : [];
|
|
119
|
+
if (digest(normalized) !== digest(evidence.columns))
|
|
120
|
+
issues.push('模板主网格列宽未与应用后布局一致');
|
|
121
|
+
}
|
|
122
|
+
return issues;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=form-layout-template-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-layout-template-verification.js","sourceRoot":"","sources":["../../src/services/form-layout-template-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ export declare const layoutCn: (layoutType: string) => string;
|
|
|
10
10
|
* 读样式模板列表。两个端点都是**租户级**的模板清单(不是应用级),
|
|
11
11
|
* 所以**不需要 appId** —— `ebbusinessid` 用 formId 即可。
|
|
12
12
|
*/
|
|
13
|
-
export declare function fetchStyleTemplates(client: ApiClient, baseUrl: string, formId: string, layoutType: string): Promise<StyleTemplate[]>;
|
|
13
|
+
export declare function fetchStyleTemplates(client: Pick<ApiClient, 'post'>, baseUrl: string, formId: string, layoutType: string): Promise<StyleTemplate[]>;
|
|
14
14
|
/**
|
|
15
15
|
* 把 `--style-template` 的输入解析成该布局类型下的 styleTemplateId。
|
|
16
16
|
*
|
|
17
17
|
* 传 id 时**会校验它确实属于这套**——这正是当初踩坑的地方:跨套 id 平台不报错、直接忽略。
|
|
18
|
-
*
|
|
18
|
+
* 分页读取完整目录后校验 ID,避免平台静默忽略跨类别或不存在的模板。
|
|
19
19
|
*/
|
|
20
|
-
export declare function resolveStyleTemplateId(client: ApiClient, baseUrl: string, formId: string, layoutType: string, input: string): Promise<StyleTemplate>;
|
|
20
|
+
export declare function resolveStyleTemplateId(client: Pick<ApiClient, 'post'>, baseUrl: string, formId: string, layoutType: string, input: string): Promise<StyleTemplate>;
|
|
21
21
|
//# sourceMappingURL=form-style-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-style-template.d.ts","sourceRoot":"","sources":["../../src/services/form-style-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"form-style-template.d.ts","sourceRoot":"","sources":["../../src/services/form-style-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA4BnD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,OAAgC,CAAC;AAEnF,kBAAkB;AAClB,eAAO,MAAM,QAAQ,GAAI,YAAY,MAAM,KAAG,MAAmD,CAAC;AAElG;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CA8B1B;AAoBD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CA6BxB"}
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
/** PC 端。两套接口都用它(移动端是另一套 id,本 CLI 暂不涉及)。 */
|
|
22
22
|
const CLIENT_TYPE_PC = '0';
|
|
23
|
-
|
|
24
|
-
const PAGE_SIZE = 200;
|
|
23
|
+
const PAGE_SIZE = 100;
|
|
25
24
|
export const isFlowLayout = (layoutType) => layoutType === 'FLOW';
|
|
26
25
|
/** 只用于展示和报错文案。 */
|
|
27
26
|
export const layoutCn = (layoutType) => (isFlowLayout(layoutType) ? '流式' : '表格式');
|
|
@@ -44,12 +43,23 @@ export async function fetchStyleTemplates(client, baseUrl, formId, layoutType) {
|
|
|
44
43
|
pageNo: 1, pageSize: PAGE_SIZE, clientType: CLIENT_TYPE_PC, templateStatus: 1,
|
|
45
44
|
module: 'ebuilderform', customParam: { terminal: '' },
|
|
46
45
|
};
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
const rows = [];
|
|
47
|
+
for (let pageNo = 1; pageNo <= 1000; pageNo++) {
|
|
48
|
+
const res = await client.post(`${baseUrl}${path}`, { ...body, pageNo }, { ebbusinessid: formId });
|
|
49
|
+
if (res?.code !== 200 || !res?.status) {
|
|
50
|
+
throw new Error(`读取${layoutCn(layoutType)}样式模板失败: ${res?.msg || '未知错误'}`);
|
|
51
|
+
}
|
|
52
|
+
const page = res?.data?.result ?? res?.data?.pageDatas?.result;
|
|
53
|
+
const count = Number(res?.data?.totalCount ?? res?.data?.pageDatas?.totalCount);
|
|
54
|
+
if (!Array.isArray(page) || !Number.isFinite(count))
|
|
55
|
+
throw new Error('样式模板列表分页格式未知');
|
|
56
|
+
rows.push(...page);
|
|
57
|
+
if (rows.length >= count)
|
|
58
|
+
return rows.map(t => ({ id: String(t.id), name: String(t.templateName ?? t.name ?? '') }));
|
|
59
|
+
if (!page.length)
|
|
60
|
+
throw new Error('样式模板分页提前结束');
|
|
50
61
|
}
|
|
51
|
-
|
|
52
|
-
return rows.map((t) => ({ id: String(t.id), name: String(t.templateName ?? t.name ?? '') }));
|
|
62
|
+
throw new Error('样式模板分页超过上限');
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* 报错时列出可选模板。列表是按租户的,实测流式那套 40 条里大半是用户自己导入的副本
|
|
@@ -72,7 +82,7 @@ function dupHint(dups) {
|
|
|
72
82
|
* 把 `--style-template` 的输入解析成该布局类型下的 styleTemplateId。
|
|
73
83
|
*
|
|
74
84
|
* 传 id 时**会校验它确实属于这套**——这正是当初踩坑的地方:跨套 id 平台不报错、直接忽略。
|
|
75
|
-
*
|
|
85
|
+
* 分页读取完整目录后校验 ID,避免平台静默忽略跨类别或不存在的模板。
|
|
76
86
|
*/
|
|
77
87
|
export async function resolveStyleTemplateId(client, baseUrl, formId, layoutType, input) {
|
|
78
88
|
const all = await fetchStyleTemplates(client, baseUrl, formId, layoutType);
|
|
@@ -82,11 +92,6 @@ export async function resolveStyleTemplateId(client, baseUrl, formId, layoutType
|
|
|
82
92
|
const hit = all.find((t) => t.id === trimmed);
|
|
83
93
|
if (hit)
|
|
84
94
|
return hit;
|
|
85
|
-
if (all.length >= PAGE_SIZE) {
|
|
86
|
-
// 列表可能被截断,无法断言不存在,放行但说清楚
|
|
87
|
-
console.error(`⚠ 未在${cn}模板列表中找到 id ${trimmed}(列表已达单页上限,可能被截断),按原值提交`);
|
|
88
|
-
return { id: trimmed, name: trimmed };
|
|
89
|
-
}
|
|
90
95
|
const other = isFlowLayout(layoutType) ? '表格式' : '流式';
|
|
91
96
|
throw new Error(`id ${trimmed} 不属于${cn}布局的样式模板(平台不会报错,只会静默忽略、样式不变)。`
|
|
92
97
|
+ `\n 如果它来自${other}那套,请确认表单布局类型——两套模板不能混用。`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-style-template.js","sourceRoot":"","sources":["../../src/services/form-style-template.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2CAA2C;AAC3C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,
|
|
1
|
+
{"version":3,"file":"form-style-template.js","sourceRoot":"","sources":["../../src/services/form-style-template.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2CAA2C;AAC3C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,MAAM,SAAS,GAAG,GAAG,CAAC;AAOtB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAW,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC;AAEnF,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAkB,EAAU,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAA+B,EAC/B,OAAe,EACf,MAAc,EACd,UAAkB;IAElB,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI;QACf,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,2DAA2D,CAAC;IAChE,iDAAiD;IACjD,MAAM,IAAI,GAA4B,IAAI;QACxC,CAAC,CAAC;YACA,WAAW,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE;YAC3E,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SACtF;QACD,CAAC,CAAC;YACA,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;YAC7E,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SACtD,CAAC;IAEJ,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAClG,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrH,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,SAAS,aAAa,CAAC,GAAoB;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,cAAc,KAAK,GAAG,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,uCAAuC;AACvC,SAAS,OAAO,CAAC,IAAqB;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA+B,EAC/B,OAAe,EACf,MAAc,EACd,UAAkB,EAClB,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC9C,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QACpB,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,MAAM,OAAO,OAAO,EAAE,8BAA8B;cAClD,YAAY,KAAK,yBAAyB;cAC1C,aAAa,CAAC,GAAG,CAAC,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,QAAQ,OAAO,CAAC,MAAM,OAAO,OAAO,sBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,CAClF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,KAAK,CACb,WAAW,OAAO,SAAS,EAAE,aAAa;UACxC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;UACtF,aAAa,CAAC,GAAG,CAAC,CACrB,CAAC;AACJ,CAAC"}
|