openyida 2026.9.21 → 2026.9.22-beta.2
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/README.md +14 -20
- package/bin/yida.js +6 -11
- package/lib/app/app-list.js +3 -7
- package/lib/app/canvas-compile.js +12 -22
- package/lib/app/check-prd-completeness.js +0 -7
- package/lib/app/create-app.js +1 -4
- package/lib/app/create-form/args.js +12 -37
- package/lib/app/create-form/batch.js +11 -86
- package/lib/app/create-form.js +86 -193
- package/lib/app/create-page.js +17 -84
- package/lib/app/custom-theme.js +0 -11
- package/lib/app/form-field-validator.js +41 -26
- package/lib/app/form-open-guard.js +10 -97
- package/lib/app/get-form-config.js +0 -1
- package/lib/app/inline-css-guard.js +31 -1
- package/lib/app/services/form-compiler.js +4 -2
- package/lib/app/theme-from-design.js +41 -144
- package/lib/app/theme-presets.js +1 -1
- package/lib/app/update-app.js +13 -63
- package/lib/asset/ai-image.js +9 -59
- package/lib/asset/asset-cmd.js +7 -18
- package/lib/asset/asset-plan.js +9 -102
- package/lib/asset/asset-resolve.js +10 -55
- package/lib/asset/asset-status.js +4 -5
- package/lib/asset/host-capabilities.js +2 -11
- package/lib/asset/url-verify.js +4 -19
- package/lib/auth/dws-sync.js +148 -0
- package/lib/auth/token-auth.js +73 -9
- package/lib/auth/token-store.js +50 -0
- package/lib/connector/connector-test.js +5 -19
- package/lib/connector/contract.js +1 -3
- package/lib/core/agent-capabilities.js +16 -19
- package/lib/core/command-manifest.js +40 -329
- package/lib/core/locales/en.js +17 -74
- package/lib/core/locales/zh.js +16 -73
- package/lib/core/redact.js +10 -15
- package/lib/core/sample.js +30 -72
- package/lib/core/utils.js +4 -0
- package/lib/design-plan/design-plan.js +4 -51
- package/lib/design-plan/init.js +26 -121
- package/lib/design-plan/materialize.js +348 -451
- package/lib/design-plan/normalize.js +29 -74
- package/lib/design-plan/parallel.js +16 -71
- package/lib/design-plan/patch.js +16 -63
- package/lib/design-plan/preview.js +8 -6
- package/lib/design-plan/validate.js +11 -71
- package/lib/process/create-process.js +50 -84
- package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
- package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
- package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
- package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
- package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
- package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
- package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
- package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
- package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
- package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
- package/package.json +1 -3
- package/scripts/postinstall.js +3 -3
- package/yida-skills/SKILL.md +16 -19
- package/yida-skills/references/official-example-schema-patterns.md +1 -1
- package/yida-skills/references/yida-api.md +0 -4
- package/yida-skills/skills/yida-app/SKILL.md +23 -46
- package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
- package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
- package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
- package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
- package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
- package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
- package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
- package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
- package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
- package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
- package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
- package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
- package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
- package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
- package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
- package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
- package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
- package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
- package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
- package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
- package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
- package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
- package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
- package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
- package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
- package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
- package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
- package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
- package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
- package/yida-skills/skills/yida-design/SKILL.md +14 -29
- package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
- package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
- package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
- package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
- package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
- package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
- package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
- package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
- package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
- package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
- package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
- package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
- package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
- package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
- package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
- package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
- package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
- package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
- package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
- package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
- package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
- package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
- package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
- package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
- package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
- package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
- package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
- package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
- package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
- package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
- package/yida-skills/skills/yida-integration/SKILL.md +0 -1
- package/yida-skills/skills/yida-login/SKILL.md +0 -2
- package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
- package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
- package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
- package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
- package/yida-skills/skills/yida-prd/SKILL.md +3 -5
- package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
- package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
- package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
- package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
- package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
- package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
- package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
- package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
- package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
- package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
- package/yida-skills/skills-index.json +16 -36
- package/lib/app/application-entry-urls.js +0 -31
- package/lib/app/application-style.js +0 -69
- package/lib/app/canvas-icon-exports.json +0 -6160
- package/lib/app/canvas-icon-guard.js +0 -87
- package/lib/app/canvas-navigation-guard.js +0 -84
- package/lib/app/canvas-path-guard.js +0 -78
- package/lib/app/canvas-theme-guard.js +0 -184
- package/lib/app/form-data-response-guard.js +0 -57
- package/lib/asset/asset-execution.js +0 -79
- package/lib/core/css-structure.js +0 -37
- package/lib/design/check-design.js +0 -51
- package/lib/design/document.js +0 -458
- package/lib/design/icon-contrast.js +0 -85
- package/lib/design/page-content.js +0 -11
- package/lib/design-plan/artifact-updates.js +0 -117
- package/lib/design-plan/confirmation.js +0 -13
- package/lib/design-plan/entry-navigation.js +0 -97
- package/lib/design-plan/navigation-policy.js +0 -38
- package/lib/design-plan/rebase.js +0 -60
- package/lib/design-plan/themes.js +0 -101
- package/lib/design-plan/visual-policy.js +0 -42
- package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
- package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
- package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
- package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
- package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
- package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
- package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
- package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
- package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
- package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
- package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
- package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
- package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
- package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
- package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
- package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
- package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
- package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
1. `source` 和 `target` 的 fieldId 是否正确(可通过 get-schema 技能查看)
|
|
117
117
|
2. `sourceType` 和 `targetType` 是否与字段类型一致
|
|
118
118
|
3. `dataFillingRules` 是否被正确设置到 `props.dataFillingRules`(而非只写在 `associationForm` 对象内)
|
|
119
|
-
4.
|
|
119
|
+
4. 关联表单字段的 Schema 节点**顶层**是否有 `fieldId` 属性(宜搭回填引擎依赖顶层 `fieldId` 识别字段,仅在 `props` 内有 `fieldId` 不生效)
|
|
120
120
|
|
|
121
121
|
**子表填充子表(tableRules)格式**:
|
|
122
122
|
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
|
|
165
165
|
**注意事项**:
|
|
166
166
|
- `tableRules` 用于实现"选择关联表单记录后,将其子表数据自动填充到当前表单的子表中"
|
|
167
|
-
- **`tableId` 必须填写被关联表单(源表)的子表 fieldId
|
|
167
|
+
- **`tableId` 必须填写被关联表单(源表)的子表 fieldId**,宜搭通过它在源表 Schema 中定位子表数据;填写当前表单的子表 fieldId 会导致 `getInstMultiSubTableDatas` 接口报 500 错误
|
|
168
168
|
- 每个 `tableRule` 对应源表的一个子表,可以配置多个子表的回填规则
|
|
169
169
|
- 子表内的 `target` 同样支持 `@label:字段标签` 语法,脚本会自动解析为 fieldId
|
|
170
170
|
- 确保 `rules[].source` 是源表子表内的字段 fieldId,`rules[].target` 是当前表单子表内的字段 fieldId
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
```
|
|
373
373
|
|
|
374
374
|
**关键点说明**:
|
|
375
|
-
1. `tableRules` 中的 `tableId` 填写的是**被关联表单(商品表)的子表 fieldId**(即「规格明细」子表的 fieldId),而非当前表单(订单表)的子表 fieldId。宜搭通过此 fieldId
|
|
375
|
+
1. `tableRules` 中的 `tableId` 填写的是**被关联表单(商品表)的子表 fieldId**(即「规格明细」子表的 fieldId),而非当前表单(订单表)的子表 fieldId。宜搭通过此 fieldId 在源表 Schema 中定位子表数据,填错会导致 `getInstMultiSubTableDatas` 接口报 500 错误
|
|
376
376
|
2. `tableRules` 中的每个 `rule.target` 支持 `@label:字段标签` 语法,用于定位当前表单子表内的字段
|
|
377
377
|
3. 选择商品后,商品表的「规格明细」子表数据会自动填充到订单表的「订单明细」子表中
|
|
378
378
|
4. 可以配置多个 `tableRule` 来实现多子表的数据回填
|
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
- 检查 `sourceType` 和 `targetType` 是否与字段类型一致
|
|
386
386
|
- 确认 `props.supportDataFilling` 是否为 `true`
|
|
387
387
|
- 确认每条规则同时包含 `sourceFieldId/targetFieldId/source/sourceType/target/targetType` 6 个字段(缺少任意一个不生效)
|
|
388
|
-
-
|
|
388
|
+
- 确认关联表单字段的 Schema 节点**顶层**有 `fieldId` 属性(宜搭回填引擎依赖顶层 `fieldId`,仅在 `props` 内有 `fieldId` 不生效)
|
|
389
389
|
|
|
390
390
|
**问题 2:子表填充子表不生效**
|
|
391
391
|
- 检查 `tableRules` 是否为数组且非空
|
|
@@ -13,14 +13,14 @@ openyida create-form batch <appType> .cache/openyida/<项目名>/forms.json --js
|
|
|
13
13
|
```json
|
|
14
14
|
{
|
|
15
15
|
"forms": [
|
|
16
|
-
{ "key": "customer", "title": "客户", "fieldsFile": "customer-fields.json"
|
|
16
|
+
{ "key": "customer", "title": "客户", "fieldsFile": "customer-fields.json" },
|
|
17
17
|
{ "key": "product", "title": "商品", "fieldsFile": "product-fields.json" },
|
|
18
18
|
{ "key": "order", "title": "订单", "fieldsFile": "order-fields.json", "dependsOn": ["customer", "product"] }
|
|
19
19
|
]
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
`fieldsFile` 相对任务文件所在目录,也可使用 `fields`
|
|
23
|
+
`fieldsFile` 相对任务文件所在目录,也可使用 `fields` 直接填写字段定义。普通 batch 项省略 `icon`,由 CLI 自动选择;只有用户明确给出表单图标目录中的合法名称时才设置,禁止写应用图标 `xian-*`。`locale` 也只在用户明确指定时设置。已有完整表单填写 `formUuid`,CLI 回读并复用。
|
|
24
24
|
|
|
25
25
|
客户和商品同时创建。订单的前置表单完成后开始创建;其他独立任务继续执行。依赖环、未知依赖、重复 key 和无效字段会在创建前报错。
|
|
26
26
|
|
|
@@ -63,10 +63,9 @@ batch 会在预校验前把紧凑写法规范化为下面的完整结构;前
|
|
|
63
63
|
- `--concurrency 1..4` 设置并发上限,默认 3。
|
|
64
64
|
- 结果保存在任务文件旁的 `.state.json`,包含每张表单的 ID、字段和状态。主流程从中汇总资源上下文,再配置导航。
|
|
65
65
|
- 相同任务再次执行时,成功表单回读复用。失败及中断任务保留原状态,其依赖标记为 blocked;独立任务继续。
|
|
66
|
-
- `success:false`
|
|
67
|
-
- `
|
|
68
|
-
- `inspect_unknown_write_then_reconcile` 表示当前指纹进入待核对状态:先回读远端资源;核对完成后建立新的 reconcile 任务,用已确认 `formUuid` 表示已有表单,仅保留确定尚未创建的任务。
|
|
66
|
+
- 当前批次返回 `success:false` 时,以返回的 `results`、子命令诊断和 `.state.json` 为准停止本轮创建;不得为补齐失败项改用单条 `create-form create`,也不得把剩余项拆成新的 batch。修正输入或为已知资源补入 `formUuid` 后,后续恢复仍使用原任务文件执行 batch。
|
|
67
|
+
- 恢复失败任务前,核对已创建资源并修复。准备新任务文件时,用 `formUuid` 复用完整表单,仅为确认尚未创建的表单保留创建任务。
|
|
69
68
|
- `.lock` 防止同一任务重复启动。进程异常退出遗留锁时,确认原进程已结束、核对已创建资源后再清理。
|
|
70
|
-
- background pending
|
|
69
|
+
- 首次 batch 返回 background pending 时等待运行时自动投递完成结果;pending 不是失败,也不是重试信号,不得再次调用 batch。
|
|
71
70
|
|
|
72
71
|
已有表单的字段修改仍使用 update/patch 等命令;不同表单可分别更新,同一张表单由一个任务维护。流程审批按 `yida-create-process` 执行,等待其依赖的表单就绪后再配置。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
```json
|
|
6
6
|
[
|
|
7
|
-
{ "type": "Divider", "title": "基本信息"
|
|
7
|
+
{ "type": "Divider", "title": "基本信息" },
|
|
8
8
|
{
|
|
9
9
|
"type": "ColumnContainer",
|
|
10
10
|
"layout": "6:6",
|
|
@@ -39,22 +39,22 @@
|
|
|
39
39
|
| `dataSource` | Array | 条件必填 | 选项类字段必填 |
|
|
40
40
|
| `multiple` | Boolean | 否 | 是否多选 |
|
|
41
41
|
| `remoteDataSource` | Object | 否 | 选项类字段远程搜索数据源配置 |
|
|
42
|
-
| `children` | Object[] | 条件必填 | `TableField` /
|
|
42
|
+
| `children` | Object[] | 条件必填 | `TableField` / 展示布局组件必填 |
|
|
43
43
|
| `associationForm` | Object | 条件必填 | `AssociationFormField` 必填 |
|
|
44
44
|
|
|
45
45
|
选项类字段包括 `SelectField`、`MultiSelectField`、`RadioField`、`CheckboxField`。固定选项必须在字段 JSON 中提供非空 `dataSource`;不要省略选项源,也不要只写旧式 `options`。
|
|
46
46
|
|
|
47
|
-
##
|
|
47
|
+
## 展示/布局组件
|
|
48
48
|
|
|
49
49
|
### Divider
|
|
50
50
|
|
|
51
51
|
普通业务分组优先使用 Divider:
|
|
52
52
|
|
|
53
53
|
```json
|
|
54
|
-
{ "type": "Divider", "title": "基本信息"
|
|
54
|
+
{ "type": "Divider", "title": "基本信息" }
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
普通企业表单不写 `dividerType`,OpenYida 会默认生成 `bold-with-thin`。显式样式优先级为 `bold-with-thin`、`double-color-trapezoid`、`left-dot-title`、`solid` / `dashed` / `thick` / `dotted`。需要门户/强分区识别时,同一张表单可统一显式写 `dividerType: "multi-parallelograms-end"`。
|
|
58
58
|
|
|
59
59
|
### ColumnContainer
|
|
60
60
|
|
|
@@ -73,9 +73,20 @@
|
|
|
73
73
|
}
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
###
|
|
76
|
+
### GroupContainer / PageSection
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
只在特殊场景使用,不要承载普通业务分组:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"type": "PageSection",
|
|
83
|
+
"title": "高级配置",
|
|
84
|
+
"showHeadDivider": true,
|
|
85
|
+
"children": [
|
|
86
|
+
{ "type": "TextField", "label": "配置说明" }
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
```
|
|
79
90
|
|
|
80
91
|
## update changes
|
|
81
92
|
|
|
@@ -118,3 +129,4 @@
|
|
|
118
129
|
| `SerialNumberField` | 流水号 | 自动生成 |
|
|
119
130
|
| `Divider` | 分割线 | `title`、`dividerType`、`showTitle` |
|
|
120
131
|
| `ColumnContainer` | 分栏布局,映射 `ColumnsLayout` | `layout`、`columnGap`、`rowGap`、二维 `children` |
|
|
132
|
+
| `GroupContainer` / `PageSection` | 特殊分组容器,映射 `PageSection` | `label`/`title`、`showHeadDivider`、`children` |
|
|
@@ -18,28 +18,30 @@
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## 表单展示/布局组件
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
字段 JSON 中可使用的展示/布局组件如下;生成表单时只从这张清单里选择,不要编造新的布局组件名。
|
|
24
24
|
|
|
25
|
-
|
|
|
25
|
+
| 组件 | 用法 | 典型场景 |
|
|
26
26
|
| --- | --- | --- |
|
|
27
|
-
| `Divider` | 作为独立字段插入字段数组,用 `title`
|
|
27
|
+
| `Divider` | 作为独立字段插入字段数组,用 `title` 表达章节标题,默认生成 `props.type: "bold-with-thin"` | 普通业务分组、章节分隔、字段较多时提升可读性 |
|
|
28
28
|
| `ColumnContainer` | 用二维 `children` 表达多列,每个子数组是一列;内部字段仍按普通字段 JSON 写 | 开始/结束日期、姓名/工号、部门/岗位、金额/币种、联系人/电话等短字段成组 |
|
|
29
|
+
| `GroupContainer` / `PageSection` | 作为容器包住一整块 `children`,标题写 `title`,映射到 `PageSection` | 需要折叠、边框、整块隐藏、整块权限或平台分组容器语义的少量特殊分组 |
|
|
30
|
+
|
|
31
|
+
默认结构是 `Divider` 做章节标题和分隔,`ColumnContainer` 做局部左右/多列布局。普通业务分组不要用 `GroupContainer` / `PageSection`,它们不是普通章节标题的替代品。
|
|
29
32
|
|
|
30
33
|
### 布局决策规则
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
默认表单是单列。不要为了“更高级”默认把整表改成双列,也不要用 `GroupContainer` / `PageSection` 做普通分组。
|
|
33
36
|
|
|
34
|
-
-
|
|
37
|
+
- 默认单列:字段较少、流程表单、移动端优先、长文本、说明、附件、地址、子表、审批意见、需要逐项认真填写的字段。
|
|
35
38
|
- 局部多列:短字段且天然成对或成组时使用 `ColumnContainer`,例如开始/结束日期、姓名/工号、部门/岗位、金额/币种、联系人/电话。
|
|
36
|
-
-
|
|
37
|
-
-
|
|
39
|
+
- 全局 `--layout double`:只有用户明确要求“整个表单双列”时才使用;一般更推荐在字段 JSON 内用 `ColumnContainer` 做局部多列。
|
|
40
|
+
- 语义分组:按业务含义分段,不按字段数量平均分。常见分组包括“基本信息”“业务信息”“时间计划”“补充材料”“审批信息”。
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
推荐结构:
|
|
40
43
|
|
|
41
44
|
```text
|
|
42
|
-
ColumnContainer > Field
|
|
43
45
|
Divider > ColumnContainer > Field
|
|
44
46
|
Divider > Field
|
|
45
47
|
```
|
|
@@ -58,61 +60,20 @@ Divider > Field
|
|
|
58
60
|
|
|
59
61
|
映射到 `componentName: "Divider"`。
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
| `dividerType` | 实际外观 | 适合的内容 |
|
|
64
|
-
| --- | --- | --- |
|
|
65
|
-
| `solid` | 1px 实线 | 密集录入、正式资料 |
|
|
66
|
-
| `dashed` | 1px 虚线 | 补充资料、轻量清单 |
|
|
67
|
-
| `thick` | 3px 粗实线 | 需要明确章节边界的长文档 |
|
|
68
|
-
| `dotted` | 1px 点线 | 轻量问卷、辅助分段 |
|
|
69
|
-
| `bold-with-thin` | 标题下短粗线接长细线 | 有章节层次的业务申请 |
|
|
70
|
-
| `solid-center` | 标题居中,两侧细线 | 简短、对称的章节标题 |
|
|
71
|
-
| `solid-left` | 左短线、标题、右长线 | 左对齐的阅读或填写分段 |
|
|
72
|
-
| `left-dot-title` | 左圆点加标题 | 高频登记、紧凑字段组 |
|
|
73
|
-
| `light-left-bar` | 浅底标题条,左侧短竖条 | 审核、资料维护的分组 |
|
|
74
|
-
| `light-bar` | 浅底标题条 | 温和的资料采集、说明章节 |
|
|
75
|
-
| `dark-bar` | 主色实底标题条 | 需要强识别的少量章节;不是固定黑底 |
|
|
76
|
-
| `light-left-title` | 浅底横条,左侧主色圆角标签 | 服务办理、品牌资料分段 |
|
|
77
|
-
| `light-center-title` | 浅底横条,中间主色圆角标签 | 活动报名、居中章节 |
|
|
78
|
-
| `light-house-title` | 浅底横条,中间屋顶形标签 | 服务专题、活动章节 |
|
|
79
|
-
| `light-hexagon-title` | 浅底横条,中间六边形标题 | 专题展示、阶段章节 |
|
|
80
|
-
| `hexagon-title` | 六边形标题与两侧错层线 | 主题展示、强章节识别 |
|
|
81
|
-
| `badge-line` | 徽章式标题接细线 | 荣誉、资质或专题资料 |
|
|
82
|
-
| `multi-parallelograms-end` | 梯形标题,尾部多条斜杠 | 赛事、制造或有动势的专题 |
|
|
83
|
-
| `center-title-with-bar` | 中间标题,两侧粗色条 | 短标题、强对称章节 |
|
|
84
|
-
| `double-color-trapezoid` | 主色梯形标题拼浅底横条 | 品牌分区、项目资料 |
|
|
85
|
-
| `arrow-right-title` | 右箭头标题接浅底横条 | 有明确先后顺序的阶段;样式本身不提供流程操作 |
|
|
86
|
-
| `square-blocks-title` | 左侧双方块、标题及底部细线 | 项目、资源或技术资料 |
|
|
87
|
-
| `inner-ellipse-title` | 主色胶囊横条内嵌浅底椭圆标题 | 轻松的活动、服务专题 |
|
|
88
|
-
|
|
89
|
-
选型顺序:用户指定的有效样式优先;已有页面局部修改保留原有有效样式;新页面再按下面的业务场景选择。先排除不适合标题长度、内容密度和主题的形态,同页同层级复用一个主样式。
|
|
90
|
-
|
|
91
|
-
| 页面情况 | 推荐候选 | 选择依据 |
|
|
92
|
-
| --- | --- | --- |
|
|
93
|
-
| 高频登记、密集录入、正式资料,或标题较长、主要在手机使用 | `solid`、`solid-left`、`left-dot-title`、`light-bar` | 装饰轻,便于连续扫描和填写 |
|
|
94
|
-
| 审核、档案维护、多章节申请 | `light-left-bar`、`bold-with-thin`、`light-left-title`、`double-color-trapezoid` | 分组明确,便于定位不同资料段 |
|
|
95
|
-
| 辅助材料、问卷、轻量清单 | `dashed`、`dotted` | 分隔存在感较低,不抢正文 |
|
|
96
|
-
| 活动报名、服务专题,标题简短且适合居中 | `solid-center`、`light-center-title`、`light-house-title`、`inner-ellipse-title` | 用对称或柔和标签组织章节 |
|
|
97
|
-
| 项目阶段、技术资料、赛事或需要明显章节识别的页面 | `arrow-right-title`、`square-blocks-title`、`multi-parallelograms-end`、`light-hexagon-title`、`hexagon-title` | 用方向或几何形态强化分区;箭头不代表已有流程交互 |
|
|
98
|
-
| 资质、荣誉、品牌专题或少量重点章节 | `badge-line`、`dark-bar`、`center-title-with-bar`、`thick` | 视觉权重较强,避免在密集页面大量重复 |
|
|
99
|
-
|
|
100
|
-
**不知道如何选择时,随机轮换。** 场景不明确,或多个候选同样合适时,将合适的候选随机打乱,按页面依次选用。优先用本轮尚未用过的样式,用完再重新打乱;没有可用的场景判断依据时,从全部 23 种中轮换。每页只选一次,同页各分组复用,不逐条随机。
|
|
101
|
-
|
|
102
|
-
把选定样式和理由(例如“场景不明确,随机轮换”)写入现有 `design.md` 的页面说明,并显式填入该页每个 `Divider.dividerType`。后续生成、编译、重试和局部修改复用已记录的值,不重新抽签,不需要新增状态文件或 CLI 参数。
|
|
103
|
-
|
|
104
|
-
`form-fields` 示例仅演示布局,其中的分割线不代表推荐默认值;复用示例时按当前页面重新选择。
|
|
63
|
+
样式推荐顺序以企业表单通用建议为优先,再按当前 CLI 支持的 `Divider.props.type` 白名单生成:
|
|
105
64
|
|
|
106
|
-
|
|
65
|
+
1. 默认推荐 `bold-with-thin`,适合企业级业务表单的章节标题。普通场景不要写 `dividerType`,OpenYida 会默认写入 `props.type: "bold-with-thin"`。
|
|
66
|
+
2. `double-color-trapezoid`,适合需要更强品牌识别和区块视觉权重的表单。
|
|
67
|
+
3. `left-dot-title`,适合轻量分组、字段较密但不希望分割线太重的表单。
|
|
68
|
+
4. `solid` / `dashed` / `thick` / `dotted` 等纯线型样式只用于低调分隔、兼容兜底或用户明确指定线型。
|
|
69
|
+
5. `multi-parallelograms-end` 只用于用户明确要求门户、强分区、流程阶段强调,或已有线上表单已使用该样式且需要保持一致的场景。
|
|
107
70
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
`none` 不参与推荐、轮换或字段生成;确实不需要分隔的内容区直接省略 Divider 组件。复杂装饰主要用于短标题;长标题和窄屏优先选简单线型、圆点或浅底,发布后检查换行与截断。
|
|
71
|
+
生成 Schema 时默认写入 `props.type: "bold-with-thin"`。只有在用户明确指定样式时才通过 `dividerType` 覆盖 `props.type`。同一张表单中的 `Divider` 必须保持同一个 `props.type`,避免章节样式跳变。如果是修改已有表单,先看线上 Schema 中 Divider 的原始 `props.type`,属于上述支持清单或强分区特殊值时优先复用。
|
|
111
72
|
|
|
112
73
|
| 属性 | 默认值 | 说明 |
|
|
113
74
|
| --- | --- | --- |
|
|
114
75
|
| `behavior` | `"NORMAL"` | 默认状态,支持 `"NORMAL"` / `"HIDDEN"` |
|
|
115
|
-
| `dividerType` | `"bold-with-thin"
|
|
76
|
+
| `dividerType` | `"bold-with-thin"` | 写入 Schema 的 `props.type`;优先级:`bold-with-thin` → `double-color-trapezoid` → `left-dot-title` → `solid` / `dashed` / `thick` / `dotted`;强分区特殊场景可显式用 `multi-parallelograms-end` |
|
|
116
77
|
| `showTitle` | `true` | 是否显示标题 |
|
|
117
78
|
| `title` | `"标题"` | 分割线标题,写入 `props.title` |
|
|
118
79
|
| `description` | `""` | 标题描述,写入 `props.description` |
|
|
@@ -133,11 +94,32 @@ OpenYida 支持以下 **23 个可见样式**,不接受 `none`(无分割线
|
|
|
133
94
|
| `rowGap` | `"16px"` | 多行场景行间距,写入 `props.rowGap` |
|
|
134
95
|
| `display` | `"VERTICAL"` | 移动端排列方式,支持 `"VERTICAL"` / `"HORIZONTAL"` |
|
|
135
96
|
| `mobileRowGap` | `"0px"` | 移动端垂直布局行间距 |
|
|
136
|
-
| `children` | `[]` |
|
|
97
|
+
| `children` | `[]` | 二维数组,每个子数组是一列内的字段或展示组件 |
|
|
98
|
+
|
|
99
|
+
### GroupContainer / PageSection
|
|
100
|
+
|
|
101
|
+
`GroupContainer` 是 `PageSection` 的别名,映射到 `componentName: "PageSection"`。标题写入 `props.title`,不会写 `props.label`。
|
|
137
102
|
|
|
138
|
-
|
|
103
|
+
默认不要为了普通字段分段而使用本组件。普通分段应写成 `Divider` + 后续字段,横向字段排布应写成 `Divider` + `ColumnContainer`。只有当整块内容需要作为一个容器被折叠、加边框、整体隐藏或承接平台分组样式时,才使用 `GroupContainer` / `PageSection`。
|
|
139
104
|
|
|
140
|
-
|
|
105
|
+
| 属性 | 默认值 | 说明 |
|
|
106
|
+
| --- | --- | --- |
|
|
107
|
+
| `behavior` | `"NORMAL"` | 默认状态,支持 `"NORMAL"` / `"HIDDEN"` |
|
|
108
|
+
| `label` / `title` | `"分组"` | 分组标题,写入 `props.title` |
|
|
109
|
+
| `showHeader` | `true` | 是否显示头部 |
|
|
110
|
+
| `tooltip` / `tips` | `""` | 用户提示,写入 `props.tooltip` |
|
|
111
|
+
| `showHeadDivider` | `true` | 是否显示头部分割线 |
|
|
112
|
+
| `sectionHeaderStyle` | `"origin"` | 分组头部样式 |
|
|
113
|
+
| `sectionHeaderBgColor` | `"#0089ff"` | 头部背景配色 |
|
|
114
|
+
| `sectionHeaderTitleColor` | `"#171A1D"` | 标题颜色 |
|
|
115
|
+
| `pcStyle` | `{ "value": "origin" }` | PC 端布局样式 |
|
|
116
|
+
| `showBorder` | `false` | PC 端显示边框 |
|
|
117
|
+
| `withMargin` | `false` | PC 端外边距 |
|
|
118
|
+
| `withPadding` | `true` | PC 端内边距 |
|
|
119
|
+
| `mobileStyle` | `{ "value": "origin" }` | Mobile 端布局样式 |
|
|
120
|
+
| `showBorderMobile` | `false` | Mobile 端显示边框 |
|
|
121
|
+
| `withMarginMobile` | `false` | Mobile 端外边距 |
|
|
122
|
+
| `withPaddingMobile` | `false` | Mobile 端内边距 |
|
|
141
123
|
|
|
142
124
|
---
|
|
143
125
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yida-create-page
|
|
3
|
-
description: 创建自定义展示页面(display 类型)并返回
|
|
3
|
+
description: 创建自定义展示页面(display 类型)并返回 formUuid;仅当目标 page 缺失且用户意图允许新增页面时使用。
|
|
4
4
|
---
|
|
5
5
|
# 创建自定义页面
|
|
6
6
|
|
|
@@ -50,7 +50,7 @@ description: 创建自定义展示页面(display 类型)并返回 pageId(
|
|
|
50
50
|
## 命令
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
openyida create-page <appType>
|
|
53
|
+
openyida create-page <appType> <pageName> [--mode dashboard] [--hide-nav]
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
| 参数 | 必填 | 说明 |
|
|
@@ -58,26 +58,18 @@ openyida create-page <appType> "<pageName>" [--mode dashboard] [--hide-nav] [--l
|
|
|
58
58
|
| `appType` | 是 | 应用 ID,如 `APP_XXX` |
|
|
59
59
|
| `pageName` | 是 | 页面名称 |
|
|
60
60
|
| `--mode dashboard` | 否 | 看板/驾驶舱页面推荐使用;只表达页面模式,不会自动隐藏导航 |
|
|
61
|
-
| `--hide-nav` | 否 | 仅当用户显式要求页面隐藏导航 / 无导航 /
|
|
62
|
-
| `--locale` | 否 | 页面内容语言:`zh_CN`、`en_US`、`ja_JP`;省略时按当前环境选择 |
|
|
63
|
-
| `--open` / `--no-open` | 否 | 控制成功后是否返回浏览器打开提示,由宿主执行打开,不影响页面配置 |
|
|
61
|
+
| `--hide-nav` | 否 | 仅当用户显式要求页面隐藏导航 / 无导航 / 全屏无框时使用;创建后隐藏页面级导航,并输出带 `isRenderNav=false` 的页面 URL;这不等同于应用导航隐藏,自绘应用侧导航需另执行 `openyida update-app <appType> --hide-app-nav` |
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
使用 `--hide-nav` 时,页面级配置与回读已包含在创建命令中,不需要常规追加 `update-form-config`。已确认的自定义应用导航隐藏在应用设置更新时同步保存,与这里的页面级配置分开执行。
|
|
63
|
+
页面导航需要隐藏时,创建成功拿到真实 `formUuid` 就配置并回读,可与源码开发并行;不等待页面发布。已确认的自定义应用导航隐藏在应用设置更新时同步保存,与这里的页面级配置分开执行。
|
|
68
64
|
|
|
69
65
|
默认生成页面导航可见;仅说“看板 / 驾驶舱 / 首页 / 门户 / 工作台”不等于隐藏导航。
|
|
70
66
|
|
|
71
67
|
## 输出
|
|
72
68
|
|
|
73
69
|
```json
|
|
74
|
-
{"success":true,"
|
|
70
|
+
{"success":true,"pageId":"FORM-XXX","pageName":"驾驶舱","appType":"APP_XXX","mode":"dashboard","hideNav":false,"chromeless":false,"url":"{base_url}/APP_XXX/workbench/FORM-XXX","workbenchUrl":"{base_url}/APP_XXX/workbench/FORM-XXX"}
|
|
75
71
|
```
|
|
76
72
|
|
|
77
|
-
隐藏导航时,`navigationVerification` 记录 `requestedRenderNav:false`、实际 `renderNav`、`verified` 和配置次数 `attempts`。回读优先使用平台的 `renderNav`,缺少该字段时才读 `isRenderNav`;布尔值及字符串 `"true"` / `"false"` 均可识别,缺失值不会当成隐藏成功。
|
|
78
|
-
|
|
79
|
-
补写后仍未确认时,命令以非零退出码返回 `success:false`、`pageCreated:true`、真实 `pageId` 和 `CREATE_PAGE_NAVIGATION_NOT_VERIFIED`。此时 `hideNav` 表示回读结果,未知为 `null`,`chromeless:false`;按 `recovery` 提供的参数对原页面执行 `update-form-config`,再用 `get-form-config --json` 确认。不要重跑创建命令,也不要用 URL 中的 `isRenderNav=false` 代替配置回读。
|
|
80
|
-
|
|
81
73
|
> 如需创建表单页面(带字段的数据收集页),请使用 `yida-create-form-page`。
|
|
82
74
|
|
|
83
75
|
## 异常处理
|
|
@@ -85,5 +77,5 @@ openyida create-page <appType> "<pageName>" [--mode dashboard] [--hide-nav] [--l
|
|
|
85
77
|
| 异常场景 | 处理方式 |
|
|
86
78
|
|---------|----------|
|
|
87
79
|
| 命令返回失败 | 检查 appType 是否正确,确认登录态有效(`openyida env`) |
|
|
88
|
-
| 返回 JSON 中无 pageId |
|
|
80
|
+
| 返回 JSON 中无 pageId | 不要猜测 formUuid,重新执行命令获取 |
|
|
89
81
|
| 页面名称重复 | 宜搭允许同名页面,但建议使用唯一名称避免混淆 |
|
|
@@ -35,13 +35,6 @@ description: 流程表单一体化创建(创建表单 → 转流程 → 配置
|
|
|
35
35
|
- 创建或转换任何远程资源前,CLI 必须先完成字段和流程定义的纯本地编译;本地编译失败时远程写入数必须为 0
|
|
36
36
|
- 复用普通表单时由 `configure-process` 统一执行表单模式只读 preflight、必要转换、发布与平台 view 回读,不要在外层先手动转换表单
|
|
37
37
|
|
|
38
|
-
## 配置失败后的原表恢复
|
|
39
|
-
|
|
40
|
-
- `create-process` 返回 `success:false` 且包含 `formUuid` 时,该表单已经存在,失败的是后续配置;新建模式与复用模式均适用。保存返回的 `appType/formUuid`,禁止去掉 `--formUuid`、再次 `create-form` 或另建同名表作为恢复手段。
|
|
41
|
-
- 先按错误中的 `stage`、`nextStep` 和 `recovery` 检查原表状态及权限。修正明确原因后只能复用原 `formUuid`,使用返回的完整 `retryCommand`;不得自动补 `--replace` 绕过已绑定流程的保护。
|
|
42
|
-
- `noWriteRetry:true`、`NON_IDEMPOTENT_RESULT_UNKNOWN` 或 `PUBLISHED_UNVERIFIED` 表示远程结果未确认:只读核实原表/流程,不能执行写重试,也不能新建替代资源。
|
|
43
|
-
- 无法安全恢复时保留原表,并向用户报告原表链接、失败阶段和需处理的问题;不要宣称流程已完成。
|
|
44
|
-
|
|
45
38
|
## 适用场景
|
|
46
39
|
|
|
47
40
|
用户需要"创建审批流程"、"新建流程表单"、"搭建审批系统",且 resource context 没有既有流程/表单目标时使用。
|
|
@@ -63,7 +56,7 @@ description: 流程表单一体化创建(创建表单 → 转流程 → 配置
|
|
|
63
56
|
## 用法 1:全新创建
|
|
64
57
|
|
|
65
58
|
```bash
|
|
66
|
-
openyida create-process <appType> <formTitle> <fieldsJsonFile> <processDefinitionFile>
|
|
59
|
+
openyida create-process <appType> <formTitle> <fieldsJsonFile> <processDefinitionFile>
|
|
67
60
|
```
|
|
68
61
|
|
|
69
62
|
## 用法 2:复用已有表单(推荐)
|
|
@@ -83,16 +76,12 @@ openyida create-process <appType> --formUuid <formUuid> <processDefinitionFile>
|
|
|
83
76
|
| `processDefinitionFile` | 是 | 流程定义文件(格式同 `yida-process-rule`) |
|
|
84
77
|
| `--replace` | 条件必填 | 仅当目标已存在 PUBLISHED 流程或 SAVED 草稿,并已获得用户对整图替换的明确确认时传入 |
|
|
85
78
|
|
|
86
|
-
参数不确定时先看 `openyida create-process --help`。缺参、重复参数或未知选项会在读文件和登录前返回 `CREATE_PROCESS_INVALID_ARGUMENTS`;按 `details.argument` 定位参数、`details.reason` 判断原因,修正后重试。复用参数写作 `--formUuid`。
|
|
87
|
-
|
|
88
79
|
## 输出
|
|
89
80
|
|
|
90
81
|
```json
|
|
91
|
-
{"success":true,"formUuid":"FORM-YYY","
|
|
82
|
+
{"success":true,"formUuid":"FORM-YYY","formTitle":"订单处理表","appType":"APP_XXX","fieldCount":6,"processCode":"TPROC--XXX","processId":"83145794990","processVersion":2,"verificationLevel":"PLATFORM_VIEW_VERIFIED","platformViewVerified":true,"url":"{base_url}/APP_XXX/workbench/FORM-YYY"}
|
|
92
83
|
```
|
|
93
84
|
|
|
94
|
-
`formMode` 区分新建(`create`)和复用(`reuse`)。复用模式不读取表单名称和字段数,`formTitle`、`fieldCount` 返回 `null`,表示未查询,不代表字段为空或转换失败;新建模式返回传入名称和创建结果中的字段数。配置失败时返回的表单信息也遵循此约定。流程是否成功以 `success` 和 `verificationLevel` 为准,不能根据字段数判断。
|
|
95
|
-
|
|
96
85
|
## 流程定义最小 DSL 合约
|
|
97
86
|
|
|
98
87
|
`processDefinitionFile` 只描述发起和结束之间的业务节点。OpenYida 编译器会自动注入发起节点和结束节点,`nodes` 数组里不要手写任何 start/end 节点。
|
|
@@ -5,8 +5,6 @@ description: JSX 自定义页面开发规范(React 16 平台 Jsx 组件、expo
|
|
|
5
5
|
|
|
6
6
|
# JSX 自定义页面开发
|
|
7
7
|
|
|
8
|
-
平台导航下的管理页面默认只实现业务内容,跨模块由平台菜单切换;同任务分类可用页内 Tab。维护 JSX 页同样遵守[管理页面边界](../yida-canvas-custom-page/references/navigation-and-entry-guide.md#平台导航下的管理页面),不默认追加自绘导航或隐藏平台导航。
|
|
9
|
-
|
|
10
8
|
## Resource-First 页面开发
|
|
11
9
|
|
|
12
10
|
编写页面源码前,先按根技能解析目标 app/page/form context:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
## 设计执行清单
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
实现前先用这一组规则统一检查页面实现;视觉方向由 `yida-design` 决定,本文件只负责把方向落到平台 JSX 组件页面的 token、组件和状态上。
|
|
14
14
|
|
|
15
15
|
1. **任务路径清晰**:页面标题、主操作、次操作、空状态入口和错误恢复入口一眼可见。
|
|
16
16
|
2. **场景模式一致**:同类列表、详情、看板、工作台使用一致的信息层级、按钮位置和状态表达。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yida-dashboard
|
|
3
|
-
description: "
|
|
3
|
+
description: "经营看板/驾驶舱/数据大屏产品化交付。含真实数据、筛选联动、卡片截图、组织内短链和钉钉待办闭环。常规图表使用 yida-rechart;明确 ECharts、复杂 ECharts option 或维护旧图表时使用 yida-chart。普通统计优先 yida-report。"
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
audience: developers
|
|
@@ -27,10 +27,9 @@ metadata:
|
|
|
27
27
|
|
|
28
28
|
## 何时触发
|
|
29
29
|
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
按任务判断,不按名称触发:待办、操作队列、业务列表、门户式工作台以及处理任务的看板由 `yida-canvas-custom-page` 实现;少量任务计数、辅助图表、管理者身份或隐藏导航都不足以触发本技能。首页选择遵循 [首页按任务选择](../yida-requirement-analysis/references/experience-groups.md#首页按任务选择)。
|
|
30
|
+
- 看板 / 驾驶舱 / 大屏 / Dashboard / 数据大屏。
|
|
31
|
+
- 经营看板 / 业务看板 / 管理驾驶舱 / 高层汇报。
|
|
32
|
+
- 指标卡截图、组织内短链、隐藏导航、看板派单闭环。
|
|
34
33
|
|
|
35
34
|
单个普通统计报表优先 `yida-report`;只解决单张图的实现问题时按“图表路由边界”选择 `yida-rechart` 或 `yida-chart`。
|
|
36
35
|
|
|
@@ -25,7 +25,7 @@ description: 宜搭数据管理。表单实例/子表/流程实例/任务中心
|
|
|
25
25
|
- 记录数量默认 1-3 条:单对象轻应用写 1 条;列表/工作台写 2 条;看板/排行/状态分布写 3 条。不要为了展示效果批量灌入大量数据。
|
|
26
26
|
- 示例记录必须是当前业务语义,不写“测试1 / demo / mock”;例如客户、订单、学生、商品、工单、活动等对象要有合理名称、状态、金额、数量、负责人或日期。
|
|
27
27
|
- 先执行 `openyida get-schema <appType> <formUuid> --field-map-json` 获取真实 `fieldId`;保存数据使用真实 fieldId 或 `--resolve-aliases` 可解析别名,禁止猜测字段 ID。
|
|
28
|
-
-
|
|
28
|
+
- 日期字段必须转成 13 位毫秒时间戳;单选/多选必须使用表单已配置选项;成员/部门字段只有可安全确认 userId/deptId 时才填,否则留空或跳过该字段。
|
|
29
29
|
- 每条实例单独执行一次 `openyida data create form`;不要把 1-3 条记录作为顶层数组塞进一个 `--data-file`。
|
|
30
30
|
- 写完必须 `openyida data query form` 抽查至少 1 条,并把写入数量和抽查结果交给 `yida-app` 页面阶段使用。
|
|
31
31
|
|
|
@@ -49,7 +49,7 @@ description: 宜搭数据管理。表单实例/子表/流程实例/任务中心
|
|
|
49
49
|
- 删除完成只以 `deleted=true && readbackVerified=true` 为准;`alreadyAbsent=true` 表示本次未再次发删除请求,可按幂等成功处理
|
|
50
50
|
- 当前不支持删除流程实例;禁止生成 `openyida data delete process`,禁止在 CLI 报不支持后探索一次性脚本、浏览器私有请求或底层 API 绕过正式能力
|
|
51
51
|
- **录入/更新数据前,必须先执行 `openyida get-schema` 获取真实字段 ID,并将字段 ID 映射记录到 `.cache/<项目名>-schema.json`**
|
|
52
|
-
- **生成测试数据或录入/更新数据时,`DateField`
|
|
52
|
+
- **生成测试数据或录入/更新数据时,`DateField` / `CascadeDateField` 必须使用 13 位毫秒时间戳(如 `1719705600000`),不要传 `YYYY-MM-DD`、`YYYY-MM-DD HH:mm:ss` 或 ISO 字符串**
|
|
53
53
|
- **录入数据后,必须执行 `openyida data query` 抽查至少 1 条记录,确认 `formData` 中字段有实际值(非空),否则说明字段 ID 有误,需重新排查**
|
|
54
54
|
- **读取子表明细超过 50 行时,必须使用 `openyida data query subform` 或 `listTableDataByFormInstIdAndTableId` 分页查询完整子表;不要把 `searchFormDatas.currentPage` 当作子表分页**
|
|
55
55
|
- **本技能不读写 memory**:数据操作通过 CLI 命令写入宜搭平台,不依赖跨会话的 memory 状态
|
|
@@ -127,8 +127,6 @@ description: 宜搭数据管理。表单实例/子表/流程实例/任务中心
|
|
|
127
127
|
|
|
128
128
|
## 命令
|
|
129
129
|
|
|
130
|
-
`data create/update` 的 `--data-json` 和 `--data-file` 中,`DateField` 传毫秒时间戳数字,`CascadeDateField` 传毫秒时间戳数组;不要传日期字符串或秒级时间戳。按业务时区转换,示例见 [日期字段格式](references/data-format-guide.md#日期字段datefield--cascadedatefield)。`--resolve-aliases` 只转换字段名,不转换日期值。
|
|
131
|
-
|
|
132
130
|
### 表单实例
|
|
133
131
|
|
|
134
132
|
```bash
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
- `formDataJson` 传字符串,不直接传对象
|
|
7
7
|
- `updateFormDataJson` 传字符串,不直接传对象
|
|
8
8
|
- `dynamicOrder` 传字符串,不直接传对象
|
|
9
|
-
-
|
|
9
|
+
- `DateField` / `CascadeDateField` 的保存、更新和测试数据值必须使用**13 位毫秒时间戳**,不要传日期字符串
|
|
10
10
|
|
|
11
11
|
## 查询条件格式
|
|
12
12
|
|
|
@@ -87,13 +87,13 @@
|
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
可用 JavaScript 转换固定日期:
|
|
91
91
|
|
|
92
92
|
```js
|
|
93
|
-
new Date('
|
|
93
|
+
new Date('2024-06-30T00:00:00+08:00').getTime()
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
如果传 `YYYY-MM-DD`、`YYYY-MM-DD HH:mm:ss` 或 ISO 字符串,宜搭可能保存失败、保存为空,或导致报表/筛选异常。
|
|
97
97
|
|
|
98
98
|
## 关联表单字段(AssociationFormField)
|
|
99
99
|
|
|
@@ -3,25 +3,13 @@ name: yida-design
|
|
|
3
3
|
description: >
|
|
4
4
|
当用户要做完整应用视觉设计、单页 UI 改造、主页面视觉设计、应用主题色或全局换肤时使用。
|
|
5
5
|
完整应用读取共享需求:Fast 并行输出 design.md,Plan 维护视觉事实后由 CLI 生成 design.md。
|
|
6
|
-
|
|
6
|
+
design.md 写主题 token、布局、材质、圆角、密度、呼吸感、组件和状态规则。
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# yida-design
|
|
10
10
|
|
|
11
11
|
宜搭应用和页面视觉设计技能,输出 `design.md`。
|
|
12
12
|
|
|
13
|
-
宜搭平台基础变量是平台提供的应用主题基础变量框架。项目主题在这套基础变量上按需扩展材质、布局、字体、动效和组件状态变量。先确定设计效果,再写入对应变量和消费位置;见 [主题扩展规则](references/application-theme-consistency.md#平台基础变量是应用主题基础框架)。
|
|
14
|
-
|
|
15
|
-
设计导航时,把菜单圆角、三态边框、选中阴影、项高、内距和间距一起写入主题,并在访问态的数据管理页与业务页面检查效果,见 [导航形状与密度的案例经验](references/application-theme-consistency.md#导航形状与密度的案例经验)。
|
|
16
|
-
|
|
17
|
-
确定风格前,按[设计方向比较](references/theme-selection.md#设计方向比较)以第一直觉为参照,发展两个更有表现力的方向,在当前规划轮次内选定。已有明确视觉要求时,在其范围内完善设计。
|
|
18
|
-
|
|
19
|
-
向用户说明设计时,写风格和适用场景:“设计主题风格为轻盈媒体栅格,适合产品展示型品牌官网。”风格名称与场景按当前项目填写;建议阶段使用“建议采用……风格”。
|
|
20
|
-
|
|
21
|
-
需要业务规划时调用 `use_skill("yida-prd")`。已有 `prd.md` 时直接读取其中的页面任务、区块和业务规则,再做视觉设计;查询业务字段或格式时,按需读取 `yida-prd` 的参考文件。
|
|
22
|
-
|
|
23
|
-
Fast、Plan 和单页设计使用相同的 UI 设计规则、主题变量和质量检查;流程只在编写方式与确认时机上有区别。共用 [主题索引](templates/design-themes/index.json),按 [共享主题选择规则](references/theme-selection.md) 先读摘要、选中后读一份完整主题。
|
|
24
|
-
|
|
25
13
|
完整应用沿用需求分析阶段确认的模式与风格,按 [设计模式路由](references/design-mode.md) 推进。Fast 使用下方视觉流程;Plan 使用 [视觉分支](sub_skill/yida-design-plan/SKILL.md) 维护视觉事实,由 `yida-app` 生成方案并请用户确认;业务规划始终归 `yida-prd`。单页设计和主题调整直接继续。
|
|
26
14
|
|
|
27
15
|
---
|
|
@@ -50,31 +38,29 @@ Fast、Plan 和单页设计使用相同的 UI 设计规则、主题变量和质
|
|
|
50
38
|
| 1 | [读取整理后的用户需求](workflow/step-1-read-brief.md) | 读取业务对象、页面场景、明确范围、品牌和色彩偏好 | 视觉输入摘要 |
|
|
51
39
|
| 2 | [选择主题色和 token](workflow/step-2-theme-system.md) | 确定主色、辅助色、中性色、字体层级、组件基调和宜搭 token 作用域 | `themeProfile` |
|
|
52
40
|
| 3 | [页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 根据用户需求中的页面场景确定布局骨架、区块、主操作、状态和响应式规则 | 低保真结构 + 交互路径 |
|
|
53
|
-
| 4 | [UI 视觉和状态设计](workflow/step-5-visual-states.md) |
|
|
41
|
+
| 4 | [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 从业务任务、信息拓扑和视觉 DNA 选择设计风格 | `design.md` 内容草稿 |
|
|
54
42
|
| 5 | [写入 design.md](workflow/step-6-handoff.md) | 写入唯一视觉事实源和稳定 `designRefs` | `prd/<项目名>/design.md` |
|
|
55
43
|
|
|
56
|
-
完整应用输出一份应用级 `design.md
|
|
44
|
+
完整应用输出一份应用级 `design.md`,包含主题、布局、组件、状态和响应式规则,Fast 手写格式见 [视觉输出契约](workflow/output-design.md);Plan 使用紧凑契约,由 CLI 生成完整文档。页面实现同时读取业务 PRD 和视觉契约。
|
|
57
45
|
|
|
58
46
|
---
|
|
59
47
|
|
|
60
48
|
## 核心规则
|
|
61
49
|
|
|
62
|
-
修改已有设计时,只读取并更新相关章节、页面记录和 token。Plan 统一按 [局部调整](../yida-app/workflow/plan/step-4-deliver.md#4-处理调整) 执行;Fast 直接修改当前 `design.md`,再按主题更新命令同步已有 CSS,保留未改的正文和自定义样式。
|
|
63
|
-
|
|
64
50
|
1. **平台能力优先**:数据录入、提交、编辑、审批、权限、字段校验走宜搭表单/流程;自定义页负责展示数据、呈现分析结果、放置业务入口、打开详情页,并串联表单、流程、报表和导航入口。
|
|
65
51
|
2. **美感提升保持功能契约**:页面美化、视觉升级和页面重构默认只调整颜色、布局、密度、间距、视觉层级、素材和图标表达;现有数据源、字段映射、按钮动作、筛选逻辑、提交 URL、权限和业务状态保持原样。
|
|
66
|
-
3. **默认保留平台应用导航**:普通自定义页、页面内 tab、分段、筛选和快捷入口都不触发 `yida-nav-shell`。PRD
|
|
52
|
+
3. **默认保留平台应用导航**:普通自定义页、页面内 tab、分段、筛选和快捷入口都不触发 `yida-nav-shell`。PRD 选择自定义导航,或用户明确要求自绘应用级导航、隐藏应用导航时,写 `appBlueprint.hideAppNav: 'y'` 并交给 `yida-nav-shell`。用户只说全屏、无导航或 `isRenderNav=false` 时,只写页面级隐藏配置。
|
|
67
53
|
4. **同应用页面入口归导航**:同应用页面优先放入平台导航或导航分组;自定义页内容区放当前页动作、原生表单新建/查看、外部链接和跨应用资源。
|
|
68
54
|
5. **表单入口响应式**:新增/提交页 URL 默认使用页面级隐藏导航的 `submission/{formUuid}?isRenderNav=false`;详情页 URL 默认使用 `formDetail/{formUuid}?formInstId={formInstId}&navConfig.layout=1180&isRenderNav=false`,且 `formInstId` 必须来自真实数据记录并优先取 `row.formInstId`;PC 端默认在侧边抽屉中用 iframe 承载宜搭原生表单,抽屉默认半屏 `50vw`,提交页和详情页使用同一宽度规则;移动端整页或新页打开。
|
|
69
|
-
6.
|
|
55
|
+
6. **主题文件**:Plan 直接使用 CLI 返回的 `outputs.theme`;Fast 和已有主题调整按 [主题文件生成与更新](workflow/output-design.md#cli-token-契约fast--plan-共用) 执行。主题 CSS 生成后只用 `Read` 查看目标 token、用小范围 `Edit` 逐组修改;不得用 Python、Node、Shell 或 `run_workspace_script` 脚本生成、复制、整文件重写、正则替换或 retheme `app-theme.css`,校验脚本只能读取并报告问题,不能改写主题文件。
|
|
70
56
|
7. **默认主题先做业务判断**:工作台、门户、列表、详情、普通看板和数据大屏默认都是浅底 / light 模式,但主色不固定为 `podBlue` 或 #1677ff;先根据行业、品牌、业务情绪和视觉目标做创意色彩判断,主题色可以是任意合法 CSS 颜色。只有用户明确说暗色/深色/夜间/高对比时才用深色沉浸。
|
|
71
57
|
8. **页面布局要到可实现粒度**:每个页面至少写清顶部/左侧/主体/右侧/底部区域、核心组件、信息密度、主操作位置、PC/移动端差异和空/载/错态。
|
|
72
58
|
9. **页面丰富度建议**:工作台、首页、门户、看板、展示页和业务入口页推荐规划 8-10 个有业务目的的区块以上,例如上下文标题、状态摘要、主操作、筛选、任务列表、最近记录、动态流、洞察、提醒、空态行动、右侧上下文和底部辅助信息。区块数量不是硬门槛,窄场景、单任务页面或用户明确要求精简时可以更少,但要写清每个区块的业务目的和取舍原因。计数按“区块组”算,不按子项算:`KPI 卡片: 学生总数, 课程总数, 出勤率, 平均分` 只能算 1 个状态摘要区块,`快捷入口: 录入学生/登记成绩/记录考勤/管理课程` 只能算 1 个动作区块;不能用重复 KPI 卡、重复快捷入口或大空白卡凑数量。
|
|
73
59
|
10. **工作台禁低密大卡片套路**:工作台 / 业务首页不能用“标题 + 4 个等宽大 KPI 白卡 + 图标快捷卡 + 大空态白卡”撑首屏。默认改成紧凑状态摘要条、任务/动态列表、最近记录、右侧上下文面板和高频动作;没有真实数据时也展示薄空态行 + 登记入口,不铺大块空白卡片。
|
|
74
|
-
11.
|
|
75
|
-
12.
|
|
76
|
-
13.
|
|
77
|
-
14.
|
|
60
|
+
11. **默认圆润高密且有呼吸感**:业务工具页默认使用圆润形状、紧凑信息密度和清晰呼吸节奏。`design.md` 必须写清 `roundedRule`、`densityRule` 和 `breathingRule`:卡片 padding 必须大于 20px(默认 22-28px),卡片与卡片的 gap 必须小于 20px(默认 12-18px),卡片圆角范围 0-32px(业务卡片默认 20-24px),控件 10-14px,状态摘要 64-88px,动作条 40-56px,列表行 44-56px,空态 88-120px 内;页面边距、卡片 gap 和卡片 padding 要形成可扫读的分组节奏。呼吸感来自对齐、分组、层级和节奏,不来自额外 margin、超宽空 KPI 框或空白卡撑页面。
|
|
61
|
+
12. **背景与卡片必须有层次对比**:默认业务页背景保持浅色调、清爽但不能与卡片相近或相同。`design.md` 必须写清 `surfaceContrast`:白色/浅色背景配有边框卡片;浅灰背景(如 `#F3F4F6`)配白色无边框卡片;浅彩色背景(如浅蓝、浅暖灰)配白色无边框卡片;渐变背景配玻璃感卡片。禁止浅底白卡无边框、同色背景同色卡片或只有阴影没有色差/边框的层次。
|
|
62
|
+
13. **设计风格先选后定制**:先按业务任务、信息拓扑选择风格,再按用户确认的色彩氛围协调页面、卡片、导航、填充、边界和交互。布局、圆角与材质可保留,模板固定灰阶和品牌色面积限制不能覆盖用户要求。“自然绿意”等整体风格不能缩减成只有按钮和 logo 变绿;明确只改强调色或忠实中性参考时才保持原画布。文字保留可读的中性层级,状态保留独立语义。
|
|
63
|
+
14. **应用主题统一**:`app-theme.css` 只在应用级配置,由平台统一作用于应用壳、原生表单、详情页和自定义页面外层。`YidaCodeCanvas` 页面只在 `YidaComp` 内消费 `--color-brand1-*`、`--color-group` 和 `--pod-*`;严禁页面代码修改或向上层注入主题变量。
|
|
78
64
|
15. **参考转成可执行选择**:参考 Dribbble / 优秀案例时,落到主色、背景素材、首屏构图、信息密度、动线、区块数量和反默认点。
|
|
79
65
|
16. **页面文案和图标使用专业表达**:渲染文案使用纯文本;图标只使用 `lucide-react` 或 `@ant-design/icons` 的具体组件,默认选择 `lucide-react`,并在 `design.md` 的 `iconSystem` 中写清业务动作、状态、导航和空态到图标组件的映射。emoji 不能改成 CSS 形状、字母占位、Unicode 符号或临时 SVG;如果需要图标,必须映射到上述两类库的具体组件。
|
|
80
66
|
17. **实现交接明确**:设计产物只定义页面结构、视觉系统和验收标准;常规业务图表使用 `yida-rechart`;ECharts 例外只用于用户明确要求复杂 ECharts option 或维护旧图表。
|
|
@@ -89,16 +75,15 @@ Fast、Plan 和单页设计使用相同的 UI 设计规则、主题变量和质
|
|
|
89
75
|
| [读取整理后的用户需求](workflow/step-1-read-brief.md) | 业务对象、页面场景、明确范围、品牌和色彩偏好 | 完整应用必读 |
|
|
90
76
|
| [选择主题色和 token](workflow/step-2-theme-system.md) | 主题 token、色彩、字体、组件基调 | 涉及主题或视觉 |
|
|
91
77
|
| [页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 布局骨架、内容区块、主操作、抽屉、响应式 | 页面设计 |
|
|
92
|
-
| [UI 视觉和状态设计](workflow/step-5-visual-states.md) |
|
|
78
|
+
| [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 设计风格选择、视觉 DNA、主题换肤、素材图标、空/载/错态、去 AI 味 | 输出前自检 |
|
|
93
79
|
| [写入 design.md](workflow/step-6-handoff.md) | `design.md` 必填内容、稳定引用和完成条件 | 输出前 |
|
|
94
80
|
| [page-design 单页设计](sub_skill/page-design/SKILL.md) | 单页主题证据、页面级设计流程、输出补充字段 | 单个自定义页设计 |
|
|
95
81
|
| [design.md 输出格式](workflow/output-design.md) | `design.md` 字段示例 | Fast 写入前;Plan 定制时按需 |
|
|
96
|
-
| [
|
|
97
|
-
| [视觉结构配方库](references/visual-scaffold-recipes.md) |
|
|
82
|
+
| [design.md 生成规则](references/style-design-selection.md) | 从业务推演视觉 DNA,选择设计风格并按主题色换肤,生成应用级 `design.md` | UI 视觉设计 |
|
|
83
|
+
| [视觉结构配方库](references/visual-scaffold-recipes.md) | 将高质量页面结构转成 `visualScaffold` 槽位,约束页面实现落地 | UI 视觉设计 |
|
|
98
84
|
| [页面质量门禁](references/page-quality-gates.md) | 区块数量、源码槽位、低密大卡片、主题一致性和 `pageSpecHandoff` 检查 | 页面结构、视觉与交接阶段 |
|
|
99
|
-
| [
|
|
100
|
-
| [
|
|
101
|
-
| [应用结构参考](../yida-prd/references/app/blueprint.md) | 应用角色、导航、页面清单、页面/表单/流程资源蓝图 | 完整应用或主页面 |
|
|
85
|
+
| [style-design 风格注册表](references/style-designs/registry.md) | 内置视觉 DNA 风格、选择评分、风险扣分、风格消费规则 | UI 视觉设计 |
|
|
86
|
+
| [应用结构参考](references/app/blueprint.md) | 应用角色、导航、页面清单、页面/表单/流程资源蓝图 | 完整应用或主页面 |
|
|
102
87
|
| [应用主题与 token 参考](references/theme/theme-token-presets.md) | 平台主题 key、候选主题、token profile | 需要主题 key 或 token |
|
|
103
88
|
| [应用主题 CSS 模板](references/theme/app-custom-theme-template.css) | AI 可复制修改的品牌、Shell、页面、表格和导航 token | 生成自定义应用主题文件时必读 |
|
|
104
89
|
| [yida-canvas-custom-page 样式实现指南](../yida-canvas-custom-page/references/canvas-style-implementation-guide.md) | 将 `design.md` 的 token、背景、圆角、密度和组件规则落到页面源码、antd、CSS、图表和控件状态 | 实现阶段 |
|