create-yss-spec 2.2.0 → 2.2.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 +2 -2
- package/package.json +1 -1
- package/src/cli.js +56 -8
- package/template/.agents/rules/yss-ai-skills.md +59 -0
- package/template/.agents/skills/.yss-skills-manifest.json +28 -0
- package/template/.agents/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.agents/skills/file-export-download/SKILL.md +160 -0
- package/template/.agents/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.agents/skills/formily-foundation/SKILL.md +176 -0
- package/template/.agents/skills/formily-foundation/references/examples.md +486 -0
- package/template/.agents/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.agents/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.agents/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.agents/skills/frontend-commit/SKILL.md +118 -0
- package/template/.agents/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.agents/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.agents/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.agents/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.agents/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.agents/skills/page-form-module/SKILL.md +168 -0
- package/template/.agents/skills/page-list-module/SKILL.md +137 -0
- package/template/.agents/skills/page-skeleton/SKILL.md +76 -0
- package/template/.agents/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.agents/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.agents/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.agents/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.agents/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.agents/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.agents/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.agents/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.agents/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.agents/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.agents/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.agents/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.agents/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.agents/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.agents/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.agents/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.agents/skills/yss-components/SKILL.md +1 -1
- package/template/.agents/skills/yss-design-system/SKILL.md +1 -1
- package/template/.agents/skills/yss-formily/SKILL.md +233 -265
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.agents/skills/yss-hook/SKILL.md +1 -1
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.agents/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.agents/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.agents/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.agents/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.agents/skills/yss-router/references/boundaries.md +1 -1
- package/template/.agents/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.agents/skills/yss-ui/SKILL.md +1 -1
- package/template/.agents/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.agents/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.agents/skills/ytable-usage/SKILL.md +251 -0
- package/template/.agents/skills/ytree-usage/SKILL.md +132 -0
- package/template/.claude/skills/.yss-skills-manifest.json +29 -0
- package/template/.claude/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.claude/skills/file-export-download/SKILL.md +160 -0
- package/template/.claude/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.claude/skills/formily-foundation/SKILL.md +176 -0
- package/template/.claude/skills/formily-foundation/references/examples.md +486 -0
- package/template/.claude/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.claude/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.claude/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.claude/skills/frontend-commit/SKILL.md +118 -0
- package/template/.claude/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.claude/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.claude/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.claude/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.claude/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.claude/skills/page-form-module/SKILL.md +168 -0
- package/template/.claude/skills/page-list-module/SKILL.md +137 -0
- package/template/.claude/skills/page-skeleton/SKILL.md +76 -0
- package/template/.claude/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.claude/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.claude/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.claude/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.claude/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.claude/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.claude/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.claude/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.claude/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.claude/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.claude/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.claude/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.claude/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.claude/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.claude/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.claude/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.claude/skills/yss-components/SKILL.md +1 -1
- package/template/.claude/skills/yss-design-system/SKILL.md +1 -1
- package/template/.claude/skills/yss-formily/SKILL.md +233 -265
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.claude/skills/yss-hook/SKILL.md +1 -1
- package/template/.claude/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.claude/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.claude/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.claude/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.claude/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.claude/skills/yss-router/references/boundaries.md +1 -1
- package/template/.claude/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.claude/skills/yss-ui/SKILL.md +1 -1
- package/template/.claude/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.claude/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.claude/skills/ytable-usage/SKILL.md +251 -0
- package/template/.claude/skills/ytree-usage/SKILL.md +132 -0
- package/template/.codex/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.codex/skills/file-export-download/SKILL.md +160 -0
- package/template/.codex/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.codex/skills/formily-foundation/SKILL.md +176 -0
- package/template/.codex/skills/formily-foundation/references/examples.md +486 -0
- package/template/.codex/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.codex/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.codex/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.codex/skills/frontend-commit/SKILL.md +118 -0
- package/template/.codex/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.codex/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.codex/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.codex/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.codex/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.codex/skills/page-form-module/SKILL.md +168 -0
- package/template/.codex/skills/page-list-module/SKILL.md +137 -0
- package/template/.codex/skills/page-skeleton/SKILL.md +76 -0
- package/template/.codex/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.codex/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.codex/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.codex/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.codex/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.codex/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.codex/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.codex/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.codex/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.codex/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.codex/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.codex/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.codex/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.codex/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.codex/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.codex/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.codex/skills/yss-components/SKILL.md +1 -1
- package/template/.codex/skills/yss-design-system/SKILL.md +1 -1
- package/template/.codex/skills/yss-formily/SKILL.md +233 -265
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.codex/skills/yss-hook/SKILL.md +1 -1
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.codex/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.codex/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.codex/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.codex/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.codex/skills/yss-router/references/boundaries.md +1 -1
- package/template/.codex/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.codex/skills/yss-ui/SKILL.md +1 -1
- package/template/.codex/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.codex/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.codex/skills/ytable-usage/SKILL.md +251 -0
- package/template/.codex/skills/ytree-usage/SKILL.md +132 -0
- package/template/.cursor/skills/.yss-skills-manifest.json +29 -0
- package/template/.cursor/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.cursor/skills/file-export-download/SKILL.md +160 -0
- package/template/.cursor/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.cursor/skills/formily-foundation/SKILL.md +176 -0
- package/template/.cursor/skills/formily-foundation/references/examples.md +486 -0
- package/template/.cursor/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.cursor/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.cursor/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.cursor/skills/frontend-commit/SKILL.md +118 -0
- package/template/.cursor/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.cursor/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.cursor/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.cursor/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.cursor/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.cursor/skills/page-form-module/SKILL.md +168 -0
- package/template/.cursor/skills/page-list-module/SKILL.md +137 -0
- package/template/.cursor/skills/page-skeleton/SKILL.md +76 -0
- package/template/.cursor/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.cursor/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.cursor/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.cursor/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.cursor/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.cursor/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.cursor/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.cursor/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.cursor/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.cursor/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.cursor/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.cursor/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.cursor/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.cursor/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.cursor/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.cursor/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.cursor/skills/yss-components/SKILL.md +1 -1
- package/template/.cursor/skills/yss-design-system/SKILL.md +1 -1
- package/template/.cursor/skills/yss-formily/SKILL.md +233 -265
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.cursor/skills/yss-hook/SKILL.md +1 -1
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.cursor/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.cursor/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.cursor/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.cursor/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.cursor/skills/yss-router/references/boundaries.md +1 -1
- package/template/.cursor/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
- package/template/.cursor/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.cursor/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.cursor/skills/ytable-usage/SKILL.md +251 -0
- package/template/.cursor/skills/ytree-usage/SKILL.md +132 -0
- package/template/.cursorrules +32 -0
- package/template/.hermes/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.hermes/skills/file-export-download/SKILL.md +160 -0
- package/template/.hermes/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.hermes/skills/formily-foundation/SKILL.md +176 -0
- package/template/.hermes/skills/formily-foundation/references/examples.md +486 -0
- package/template/.hermes/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.hermes/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.hermes/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.hermes/skills/frontend-commit/SKILL.md +118 -0
- package/template/.hermes/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.hermes/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.hermes/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.hermes/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.hermes/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.hermes/skills/page-form-module/SKILL.md +168 -0
- package/template/.hermes/skills/page-list-module/SKILL.md +137 -0
- package/template/.hermes/skills/page-skeleton/SKILL.md +76 -0
- package/template/.hermes/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.hermes/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.hermes/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.hermes/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.hermes/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.hermes/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.hermes/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.hermes/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.hermes/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.hermes/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.hermes/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.hermes/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.hermes/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.hermes/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.hermes/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.hermes/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.hermes/skills/yss-components/SKILL.md +1 -1
- package/template/.hermes/skills/yss-design-system/SKILL.md +1 -1
- package/template/.hermes/skills/yss-formily/SKILL.md +233 -265
- package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.hermes/skills/yss-hook/SKILL.md +1 -1
- package/template/.hermes/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.hermes/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.hermes/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.hermes/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.hermes/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.hermes/skills/yss-router/references/boundaries.md +1 -1
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.hermes/skills/yss-ui/SKILL.md +1 -1
- package/template/.hermes/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.hermes/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.hermes/skills/ytable-usage/SKILL.md +251 -0
- package/template/.hermes/skills/ytree-usage/SKILL.md +132 -0
- package/template/.pi/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.pi/skills/file-export-download/SKILL.md +160 -0
- package/template/.pi/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.pi/skills/formily-foundation/SKILL.md +176 -0
- package/template/.pi/skills/formily-foundation/references/examples.md +486 -0
- package/template/.pi/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.pi/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.pi/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.pi/skills/frontend-commit/SKILL.md +118 -0
- package/template/.pi/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.pi/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.pi/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.pi/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.pi/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.pi/skills/page-form-module/SKILL.md +168 -0
- package/template/.pi/skills/page-list-module/SKILL.md +137 -0
- package/template/.pi/skills/page-skeleton/SKILL.md +76 -0
- package/template/.pi/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.pi/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.pi/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.pi/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.pi/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.pi/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.pi/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.pi/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.pi/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.pi/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.pi/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.pi/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.pi/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.pi/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.pi/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.pi/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.pi/skills/yss-components/SKILL.md +1 -1
- package/template/.pi/skills/yss-design-system/SKILL.md +1 -1
- package/template/.pi/skills/yss-formily/SKILL.md +233 -265
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.pi/skills/yss-hook/SKILL.md +1 -1
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.pi/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.pi/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.pi/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.pi/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.pi/skills/yss-router/references/boundaries.md +1 -1
- package/template/.pi/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.pi/skills/yss-ui/SKILL.md +1 -1
- package/template/.pi/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.pi/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.pi/skills/ytable-usage/SKILL.md +251 -0
- package/template/.pi/skills/ytree-usage/SKILL.md +132 -0
- package/template/.qoder/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.qoder/skills/file-export-download/SKILL.md +160 -0
- package/template/.qoder/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.qoder/skills/formily-foundation/SKILL.md +176 -0
- package/template/.qoder/skills/formily-foundation/references/examples.md +486 -0
- package/template/.qoder/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.qoder/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.qoder/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.qoder/skills/frontend-commit/SKILL.md +118 -0
- package/template/.qoder/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.qoder/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.qoder/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.qoder/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.qoder/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.qoder/skills/page-form-module/SKILL.md +168 -0
- package/template/.qoder/skills/page-list-module/SKILL.md +137 -0
- package/template/.qoder/skills/page-skeleton/SKILL.md +76 -0
- package/template/.qoder/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.qoder/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.qoder/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.qoder/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.qoder/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.qoder/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.qoder/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.qoder/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.qoder/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.qoder/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.qoder/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.qoder/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.qoder/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.qoder/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.qoder/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.qoder/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.qoder/skills/yss-components/SKILL.md +1 -1
- package/template/.qoder/skills/yss-design-system/SKILL.md +1 -1
- package/template/.qoder/skills/yss-formily/SKILL.md +233 -265
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.qoder/skills/yss-hook/SKILL.md +1 -1
- package/template/.qoder/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.qoder/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.qoder/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.qoder/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.qoder/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.qoder/skills/yss-router/references/boundaries.md +1 -1
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.qoder/skills/yss-ui/SKILL.md +1 -1
- package/template/.qoder/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.qoder/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.qoder/skills/ytable-usage/SKILL.md +251 -0
- package/template/.qoder/skills/ytree-usage/SKILL.md +132 -0
- package/template/.trae/skills/.yss-skills-manifest.json +29 -0
- package/template/.trae/skills/component-selection-imports/SKILL.md +64 -0
- package/template/.trae/skills/file-export-download/SKILL.md +160 -0
- package/template/.trae/skills/file-export-download/agents/openai.yaml +4 -0
- package/template/.trae/skills/formily-foundation/SKILL.md +176 -0
- package/template/.trae/skills/formily-foundation/references/examples.md +486 -0
- package/template/.trae/skills/formily-linkage-effects/SKILL.md +167 -0
- package/template/.trae/skills/formily-mode-slot-detail/SKILL.md +137 -0
- package/template/.trae/skills/formily-step-flow/SKILL.md +194 -0
- package/template/.trae/skills/frontend-commit/SKILL.md +118 -0
- package/template/.trae/skills/frontend-commit/agents/openai.yaml +7 -0
- package/template/.trae/skills/frontend-commit/references/scope-and-examples.md +111 -0
- package/template/.trae/skills/java-backend-commit/SKILL.md +121 -0
- package/template/.trae/skills/java-backend-commit/agents/openai.yaml +7 -0
- package/template/.trae/skills/java-backend-commit/references/scope-and-examples.md +118 -0
- package/template/.trae/skills/page-form-module/SKILL.md +168 -0
- package/template/.trae/skills/page-list-module/SKILL.md +137 -0
- package/template/.trae/skills/page-skeleton/SKILL.md +76 -0
- package/template/.trae/skills/page-skeleton/examples/AdvancedFormPage/constant.ts +34 -0
- package/template/.trae/skills/page-skeleton/examples/AdvancedFormPage/hooks/useRuleConfig.ts +75 -0
- package/template/.trae/skills/page-skeleton/examples/AdvancedFormPage/index.vue +107 -0
- package/template/.trae/skills/page-skeleton/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +256 -0
- package/template/.trae/skills/page-skeleton/examples/AdvancedFormPage/style.less +30 -0
- package/template/.trae/skills/page-skeleton/examples/StandardListPage/constant.ts +28 -0
- package/template/.trae/skills/page-skeleton/examples/StandardListPage/hooks/useQualityRuleList.ts +58 -0
- package/template/.trae/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts +65 -0
- package/template/.trae/skills/page-skeleton/examples/StandardListPage/index.vue +91 -0
- package/template/.trae/skills/page-skeleton/examples/StandardListPage/style.less +49 -0
- package/template/.trae/skills/prototype-page-acceptance/SKILL.md +62 -0
- package/template/.trae/skills/theme-token-usage/SKILL.md +123 -0
- package/template/.trae/skills/theme-token-usage/agents/openai.yaml +4 -0
- package/template/.trae/skills/vue3-best-practices/SKILL.md +68 -0
- package/template/.trae/skills/yedit-table-usage/SKILL.md +227 -0
- package/template/.trae/skills/yss-api-integration/SKILL.md +12 -2
- package/template/.trae/skills/yss-components/SKILL.md +1 -1
- package/template/.trae/skills/yss-design-system/SKILL.md +1 -1
- package/template/.trae/skills/yss-formily/SKILL.md +233 -265
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.trae/skills/yss-hook/SKILL.md +1 -1
- package/template/.trae/skills/yss-openapi-governance/SKILL.md +2 -2
- package/template/.trae/skills/yss-page-module-development/SKILL.md +12 -2
- package/template/.trae/skills/yss-page-module-development/references/component-map.md +34 -0
- package/template/.trae/skills/yss-page-module-development/references/hooks-map.md +11 -0
- package/template/.trae/skills/yss-page-module-development/references/utils-map.md +14 -0
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +62 -1
- package/template/.trae/skills/yss-router/references/boundaries.md +1 -1
- package/template/.trae/skills/yss-router/references/router-contract.yaml +6 -2
- package/template/.trae/skills/yss-ui/SKILL.md +1 -1
- package/template/.trae/skills/yss-use-table-height/SKILL.md +9 -0
- package/template/.trae/skills/yss-use-tree-height/SKILL.md +9 -0
- package/template/.trae/skills/ytable-usage/SKILL.md +251 -0
- package/template/.trae/skills/ytree-usage/SKILL.md +132 -0
- package/template/AGENTS.md +1 -13
- package/template/docs/adr/README.md +7 -0
- package/template/docs/agents/skill-migrations.md +16 -0
- package/template/docs/agents/skills-maintenance.md +2 -2
- package/template/docs/agents/yss-skill-registry.yaml +125 -25
- package/template/docs/process/implementation-repo-integration.md +1 -1
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +4 -4
- package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +1 -1
- package/template/scripts/lib/scenario-checks.mjs +21 -0
- package/template/scripts/lib/skill-governance.mjs +50 -0
- package/template/scripts/lib/skill-registry.mjs +82 -5
- package/template/scripts/lib/skill-supply-chain.mjs +5 -1
- package/template/scripts/verify-governance-release +7 -5
- package/template/scripts/verify-skill-governance +10 -0
- package/template/scripts/verify-template +3 -2
- package/template/skills-lock.json +285 -29
- package/template.manifest.json +30 -7
- package/template.snapshot.json +5 -4
- package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.agents/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-formily/references/examples.md +0 -65
- package/template/.claude/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.claude/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.claude/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.claude/skills/yss-formily/references/examples.md +0 -65
- package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.codex/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-formily/references/examples.md +0 -65
- package/template/.cursor/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.cursor/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-formily/references/examples.md +0 -65
- package/template/.hermes/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.hermes/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.hermes/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.hermes/skills/yss-formily/references/examples.md +0 -65
- package/template/.pi/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.pi/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-formily/references/examples.md +0 -65
- package/template/.qoder/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.qoder/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.qoder/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.qoder/skills/yss-formily/references/examples.md +0 -65
- package/template/.trae/skills/high-fidelity-html-prototype/SKILL.md +0 -89
- package/template/.trae/skills/high-fidelity-html-prototype/agents/openai.yaml +0 -5
- package/template/.trae/skills/yss-formily/agents/openai.yaml +0 -5
- package/template/.trae/skills/yss-formily/references/examples.md +0 -65
- package/template/docs/adr/0001-product-design-prototype-entrypoint.md +0 -54
- package/template/docs/adr/0002-yss-project-repository-mode.md +0 -3
- package/template/docs/adr/0003-machine-readable-lifecycle-registry.md +0 -5
- package/template/docs/adr/0006-stable-lifecycle-ids-and-generated-structure.md +0 -5
- package/template/docs/adr/0007-lifecycle-native-work-units.md +0 -5
package/template/.agents/skills/page-skeleton/examples/StandardListPage/hooks/useRuleActions.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { message } from 'ant-design-vue';
|
|
3
|
+
import type { YTableActionConfig } from '@yss-ui/components';
|
|
4
|
+
import { getApiApi } from '@/api/generated/quality';
|
|
5
|
+
import type { QualityRuleItem } from '../constant';
|
|
6
|
+
|
|
7
|
+
const { deleteQualityRule } = getApiApi();
|
|
8
|
+
|
|
9
|
+
/** 行操作与页面容器的通信回调。 */
|
|
10
|
+
export interface RuleActionCallbacks {
|
|
11
|
+
refreshList: () => Promise<void>;
|
|
12
|
+
onCreate: () => void;
|
|
13
|
+
onEdit: (row: QualityRuleItem) => void;
|
|
14
|
+
onView: (row: QualityRuleItem) => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** YTable 气泡确认助手。 */
|
|
18
|
+
interface ActionHelpers {
|
|
19
|
+
close: () => void;
|
|
20
|
+
hideLoading: () => void;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** 管理质量规则行操作和 YTable 操作列配置。 */
|
|
24
|
+
export const useRuleActions = (callbacks: RuleActionCallbacks) => {
|
|
25
|
+
/** 删除规则并刷新列表。 */
|
|
26
|
+
const handleDelete = async (row: QualityRuleItem): Promise<void> => {
|
|
27
|
+
if (!row.id) return;
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
await deleteQualityRule(row.id);
|
|
31
|
+
message.success('删除成功');
|
|
32
|
+
await callbacks.refreshList();
|
|
33
|
+
} catch {
|
|
34
|
+
// mutator 已展示错误,此处不重复 message.error。
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/** 标准操作列:查看/编辑立即执行,删除使用气泡确认。 */
|
|
39
|
+
const actionConfig = computed<YTableActionConfig>(() => ({
|
|
40
|
+
title: '操作',
|
|
41
|
+
width: 180,
|
|
42
|
+
fixed: 'right',
|
|
43
|
+
buttons: [
|
|
44
|
+
{ label: '查看', value: 'view', click: ({ row }) => callbacks.onView(row) },
|
|
45
|
+
{ label: '编辑', value: 'edit', click: ({ row }) => callbacks.onEdit(row) },
|
|
46
|
+
{
|
|
47
|
+
label: '删除',
|
|
48
|
+
value: 'delete',
|
|
49
|
+
type: 'link',
|
|
50
|
+
isConfirm: true,
|
|
51
|
+
confirmProps: { title: '确认删除此规则吗?删除后无法恢复', needLoading: true },
|
|
52
|
+
click: async ({ row }, _button, helpers: ActionHelpers) => {
|
|
53
|
+
try {
|
|
54
|
+
await handleDelete(row);
|
|
55
|
+
} finally {
|
|
56
|
+
helpers.hideLoading();
|
|
57
|
+
helpers.close();
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
}));
|
|
63
|
+
|
|
64
|
+
return { actionConfig, handleCreate: callbacks.onCreate };
|
|
65
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { onMounted, ref } from 'vue';
|
|
3
|
+
import { Input as AInput } from 'ant-design-vue';
|
|
4
|
+
import { YButton, YCard, YTable } from '@yss-ui/components';
|
|
5
|
+
import { useTableHeight } from '@yss-ui/hooks';
|
|
6
|
+
import { TABLE_COLUMNS, type QualityRuleItem } from './constant';
|
|
7
|
+
import { useQualityRuleList } from './hooks/useQualityRuleList';
|
|
8
|
+
import { useRuleActions } from './hooks/useRuleActions';
|
|
9
|
+
|
|
10
|
+
defineOptions({ name: 'StandardListPage' });
|
|
11
|
+
|
|
12
|
+
const emit = defineEmits<{
|
|
13
|
+
create: [];
|
|
14
|
+
edit: [row: QualityRuleItem];
|
|
15
|
+
view: [row: QualityRuleItem];
|
|
16
|
+
}>();
|
|
17
|
+
|
|
18
|
+
const tableAreaRef = ref<HTMLDivElement>();
|
|
19
|
+
const { tableHeight, isReady } = useTableHeight(tableAreaRef, {
|
|
20
|
+
withPagination: true,
|
|
21
|
+
withToolbar: true,
|
|
22
|
+
});
|
|
23
|
+
const { tableData, loading, pagination, searchForm, fetchList, handlePageChange, handleSearch, handleReset } =
|
|
24
|
+
useQualityRuleList();
|
|
25
|
+
const { actionConfig, handleCreate } = useRuleActions({
|
|
26
|
+
refreshList: fetchList,
|
|
27
|
+
onCreate: () => emit('create'),
|
|
28
|
+
onEdit: row => emit('edit', row),
|
|
29
|
+
onView: row => emit('view', row),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
/** 查看规则详情。 */
|
|
33
|
+
const handleRuleNameClick = (row: QualityRuleItem): void => {
|
|
34
|
+
emit('view', row);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
onMounted(() => {
|
|
38
|
+
void fetchList();
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<template>
|
|
43
|
+
<div class="quality-rule-page">
|
|
44
|
+
<YCard class="quality-rule-page__search-card">
|
|
45
|
+
<div class="quality-rule-page__search-content">
|
|
46
|
+
<AInput
|
|
47
|
+
v-model:value="searchForm.ruleName"
|
|
48
|
+
class="quality-rule-page__keyword"
|
|
49
|
+
placeholder="请输入规则名称"
|
|
50
|
+
allow-clear
|
|
51
|
+
@press-enter="handleSearch"
|
|
52
|
+
/>
|
|
53
|
+
<div class="quality-rule-page__search-actions">
|
|
54
|
+
<YButton @click="handleReset">重置</YButton>
|
|
55
|
+
<YButton type="primary" :loading="loading" @click="handleSearch">查询</YButton>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</YCard>
|
|
59
|
+
|
|
60
|
+
<YCard class="quality-rule-page__table-card">
|
|
61
|
+
<div ref="tableAreaRef" class="quality-rule-page__table-area">
|
|
62
|
+
<YTable
|
|
63
|
+
v-if="isReady"
|
|
64
|
+
:data="tableData"
|
|
65
|
+
:columns="TABLE_COLUMNS"
|
|
66
|
+
:loading="loading"
|
|
67
|
+
:height="tableHeight"
|
|
68
|
+
:action-config="actionConfig"
|
|
69
|
+
:toolbar-config="{ custom: true }"
|
|
70
|
+
pageable
|
|
71
|
+
v-model:pagination="pagination"
|
|
72
|
+
@page-change="handlePageChange"
|
|
73
|
+
>
|
|
74
|
+
<template #toolbar-right>
|
|
75
|
+
<YButton @click="fetchList">刷新</YButton>
|
|
76
|
+
<YButton type="primary" @click="handleCreate">新增质量规则</YButton>
|
|
77
|
+
</template>
|
|
78
|
+
<template #ruleName="{ row }">
|
|
79
|
+
<button class="quality-rule-page__rule-link" type="button" @click="handleRuleNameClick(row)">
|
|
80
|
+
{{ row.ruleName ?? '-' }}
|
|
81
|
+
</button>
|
|
82
|
+
</template>
|
|
83
|
+
</YTable>
|
|
84
|
+
</div>
|
|
85
|
+
</YCard>
|
|
86
|
+
</div>
|
|
87
|
+
</template>
|
|
88
|
+
|
|
89
|
+
<style scoped lang="less">
|
|
90
|
+
@import url('./style.less');
|
|
91
|
+
</style>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.quality-rule-page {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
min-height: 0;
|
|
7
|
+
gap: 12px;
|
|
8
|
+
|
|
9
|
+
&__search-content {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: 12px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&__keyword {
|
|
16
|
+
width: min(100%, 360px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__search-actions {
|
|
20
|
+
display: flex;
|
|
21
|
+
justify-content: flex-end;
|
|
22
|
+
gap: 8px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&__table-card,
|
|
26
|
+
&__table-area {
|
|
27
|
+
flex: 1;
|
|
28
|
+
min-height: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&__rule-link {
|
|
32
|
+
padding: 0;
|
|
33
|
+
color: var(--primary-color, #3371ff);
|
|
34
|
+
background: transparent;
|
|
35
|
+
border: 0;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
|
|
38
|
+
&:hover,
|
|
39
|
+
&:focus-visible {
|
|
40
|
+
color: var(--primary-color-hover, #4096ff);
|
|
41
|
+
text-decoration: underline;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&:focus-visible {
|
|
45
|
+
outline: 2px solid color-mix(in srgb, var(--primary-color, #3371ff) 35%, transparent);
|
|
46
|
+
outline-offset: 2px;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prototype-page-acceptance
|
|
3
|
+
description: 当用户提供原型截图、老项目路径、旧页面截图或要求按既有页面复刻业务页面时,指导先提取视觉和交互验收清单,开发后用截图/运行结果逐项对照,避免只实现字段而忽略布局、按钮、表格高度和控件类型。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 原型页面还原验收 Skill
|
|
7
|
+
|
|
8
|
+
## 触发条件
|
|
9
|
+
|
|
10
|
+
- 用户提供原型图、截图、设计稿、旧项目 view/logic/service 路径。
|
|
11
|
+
- 用户要求“参考老项目、照原型、复刻页面、保持和旧系统一致”。
|
|
12
|
+
- 开发结果需要人工视觉对照,而不只是接口和类型正确。
|
|
13
|
+
|
|
14
|
+
## 不适用场景
|
|
15
|
+
|
|
16
|
+
- 纯逻辑修复、纯 API 对接、无 UI 改动。
|
|
17
|
+
- 用户明确要求自由设计,不需要贴近旧页面。
|
|
18
|
+
- 组件库内部能力开发,不涉及业务页面还原。
|
|
19
|
+
|
|
20
|
+
## 硬约束(禁止/必须)
|
|
21
|
+
|
|
22
|
+
- 开发前必须打开用户给出的旧项目 view 文件、相关 logic/service 文件和当前项目相近页面,不得只看接口。
|
|
23
|
+
- 必须把截图/旧页面拆成验收清单:查询区布局、按钮位置、表格工具栏、表格高度/分页、操作列、弹窗/抽屉尺寸、表单 label 宽度和对齐、FormGrid 响应式、字段控件类型。
|
|
24
|
+
- Vue3 + YSS UI 列表查询区默认验收“字段在上、查询/重置按钮独占下一行并右对齐”;缩放或窄屏导致字段换行时,按钮必须仍在搜索卡片右下角,不得贴在第一行字段旁。
|
|
25
|
+
- 若截图里出现但需求文字没写的通用交互(查询/重置、表格列设置、新增按钮位置、分页器、抽屉底部按钮),默认按截图实现。
|
|
26
|
+
- 不允许用“用户没说”跳过截图里明显存在的 UI;只有业务含义不明时才询问。
|
|
27
|
+
- 开发后必须运行页面或至少完成类型/构建检查;可运行时必须截图对照首屏和关键弹窗/抽屉。
|
|
28
|
+
- 交付说明必须列出“已对照原型的验收项”和“未能验证的项”。
|
|
29
|
+
|
|
30
|
+
## 标准代码骨架
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
原型验收清单:
|
|
34
|
+
- 查询区:字段数量、FormGrid 响应式列数、label 固定宽度和右对齐、查询/重置按钮右下角位置,缩窄后按钮不贴第一行字段。
|
|
35
|
+
- 表格区:YTable、toolbar-config.custom、#toolbar-right 新增按钮、分页、无底部大空白。
|
|
36
|
+
- 操作列:按钮可见条件、更多菜单、删除气泡确认文案。
|
|
37
|
+
- 抽屉/弹窗:响应式宽度、底部按钮、查看态只读、label 右对齐且宽度统一、缩窄时 2 列变 1 列、备注/长文本占满行。
|
|
38
|
+
- 编辑表格:使用 YEditTable,列控件类型、可输入/多选、添加行/删除行、校验。
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
验收输出:
|
|
43
|
+
- 通过:查询区三列栅格,查询/重置按钮独占下一行并右对齐;缩窄到字段两行或三行时按钮仍在搜索卡片右下角。
|
|
44
|
+
- 通过:表格工具栏右侧为新增和列设置按钮,分页贴底显示,无大空白。
|
|
45
|
+
- 通过:抽屉宽度使用 min(90vw, 1200px),labelWidth 固定且右对齐,FormGrid 从 2 列响应式收缩为 1 列,查看态不显示保存。
|
|
46
|
+
- 未验证:后端真实数据返回为空,仅用 mock/空态验证布局。
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 交付检查清单
|
|
50
|
+
|
|
51
|
+
- [ ] 已读取旧项目 view/logic/service 或当前相近页面。
|
|
52
|
+
- [ ] 已把截图中可见 UI 转成验收清单。
|
|
53
|
+
- [ ] 查询/重置按钮右下角布局、表格工具栏、新增按钮、分页和空白高度已对照。
|
|
54
|
+
- [ ] 抽屉/弹窗响应式、label 宽度和右对齐、FormGrid 换列、底部按钮已对照。
|
|
55
|
+
- [ ] 编辑表格控件类型、可输入/多选、添加/删除已对照。
|
|
56
|
+
- [ ] 已运行类型检查、构建或浏览器截图验证,并说明未验证项。
|
|
57
|
+
|
|
58
|
+
## 失败兜底策略
|
|
59
|
+
|
|
60
|
+
- 旧项目代码太复杂时,先提取最终 UI 结构和字段映射,再复用当前项目组件实现。
|
|
61
|
+
- 截图与文字需求冲突时,优先按文字业务规则,UI 布局仍尽量按截图;冲突点写入交付说明。
|
|
62
|
+
- 无法运行项目时,至少执行静态类型检查并逐项说明哪些视觉项未验证。
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theme-token-usage
|
|
3
|
+
description: 指导 Vue3 YSS UI 微应用业务页面、公共组件、原型还原和主题修复使用可动态换肤的 CSS/Ant Design Token,覆盖主色、hover/active/selected/focus、状态色、中性色、透明色派生和暗色模式;当新增或修改 .vue、style.less、内联样式、TS 渲染配置、SVG 色值,或审查硬编码 #hex/rgb/渐变时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# YSS UI 主题 Token 使用 Skill
|
|
7
|
+
|
|
8
|
+
## 触发条件
|
|
9
|
+
|
|
10
|
+
- 新增、重构或按原型实现 Vue3 业务页面、公共组件、布局、卡片、树、表格、表单、抽屉和详情页。
|
|
11
|
+
- 修改 `.vue`、`.less`、`.css`、`.scss`、TS/TSX 渲染配置或 SVG 中的颜色、背景、边框、阴影、渐变。
|
|
12
|
+
- 页面需要跟随主应用主题、JSP 预设主题、暗色模式或运行时主色切换。
|
|
13
|
+
- 评审或修复 `#1677ff`、`#3371ff`、`rgb/rgba/hsl` 等硬编码色值。
|
|
14
|
+
|
|
15
|
+
## 不适用场景
|
|
16
|
+
|
|
17
|
+
- 只维护主题源文件中的默认值或主题预设,例如 `variables.less`、`store/theme.ts`、`config/themes.ts`。
|
|
18
|
+
- 用户明确要求不可换肤的品牌插画、数据可视化固定色板或第三方资产原色;仍需在代码中注明固定色语义。
|
|
19
|
+
- 只修改与视觉无关的类型、接口或纯业务逻辑。
|
|
20
|
+
|
|
21
|
+
## 开发前检查
|
|
22
|
+
|
|
23
|
+
1. 读取当前微应用的 `packages/src/styles/variables.less`、主题 store/config 和相近页面,确认真实 Token 名称与运行时同步逻辑。
|
|
24
|
+
2. 确认主应用传入的 `colorPrimary` 最终是否同步到 Ant Design ConfigProvider、YSS CSS 变量和 VXE 变量。
|
|
25
|
+
3. 搜索本次改动涉及的硬编码色值,覆盖 SFC style、`style.less`、内联 `style`、`:style`、TS 配置、SVG `fill/stroke`。
|
|
26
|
+
4. 区分“主题消费代码”和“主题定义代码”;禁止机械替换主题源文件中的合法默认色板。
|
|
27
|
+
|
|
28
|
+
> 变量在 `:root` 中声明,不代表它会随运行时主题更新。必须同时检查主题同步代码是否写入该变量。
|
|
29
|
+
|
|
30
|
+
## Token 选择
|
|
31
|
+
|
|
32
|
+
按以下优先级选值:
|
|
33
|
+
|
|
34
|
+
| 语义 | 优先使用 | 兼容选择 |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| 主色 | `var(--primary-color, #3371ff)` | `var(--yss-color-primary-6, #3371ff)` |
|
|
37
|
+
| hover | `var(--primary-color-hover, #4096ff)` | `var(--yss-color-primary-5, #4096ff)` |
|
|
38
|
+
| active | `var(--primary-color-active, #0958d9)` | `var(--yss-color-primary-7, #0958d9)` |
|
|
39
|
+
| 成功/警告/错误/信息 | `--success-color` / `--warning-color` / `--error-color` / `--info-color` | 对应 `--yss-color-*-6` |
|
|
40
|
+
| 正文/次要文字 | `--text-color` / `--text-color-secondary` | 使用项目已有语义 Token |
|
|
41
|
+
| 容器/页面背景 | `--bg-color-container` / `--bg-color` | 使用项目已有语义 Token |
|
|
42
|
+
| 边框/分割线 | `--border-color` / `--border-color-split` | 使用项目已有语义 Token |
|
|
43
|
+
| 反色文字 | `--text-color-inverse` | 不直接写 `#fff` |
|
|
44
|
+
|
|
45
|
+
需要主色透明背景、focus ring 或阴影时,从真实主色动态派生:
|
|
46
|
+
|
|
47
|
+
```less
|
|
48
|
+
background: color-mix(in srgb, var(--primary-color, #3371ff) 10%, transparent);
|
|
49
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color, #3371ff) 15%, transparent);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
仅当主题同步逻辑明确维护 `--primary-1` 时才可使用 `var(--primary-1)`。禁止用带蓝色 fallback 的 `var(--primary-1, rgba(...))` 冒充动态主题;变量未同步时,红色等主题仍会回落为蓝色。
|
|
53
|
+
|
|
54
|
+
## 硬约束(禁止/必须)
|
|
55
|
+
|
|
56
|
+
- 必须优先让 `YButton`、`YTable`、`YTree`、`YFormily` 和 Ant Design Vue 组件消费 ConfigProvider 主题;非必要不覆盖其主色样式。
|
|
57
|
+
- 业务消费代码禁止直接写品牌蓝、主题红及其 hover/active/selected/focus 色阶,包括十六进制、`rgb/rgba/hsl`、渐变和阴影。
|
|
58
|
+
- 必须使用语义 Token;禁止仅按“颜色长得接近”替换,例如把错误态改成主色。
|
|
59
|
+
- `var()` fallback 必须与项目默认 Token 一致;fallback 只负责兼容,不得成为实际换肤来源。
|
|
60
|
+
- 禁止在页面局部随意发明 `--primary-light` 等新变量。确需新增时,必须在统一主题源声明,并在运行时主题同步链路中更新。
|
|
61
|
+
- 禁止对 CSS 变量使用 Less 编译期颜色函数,例如 `fade(@primary-color, 10%)`;`@primary-color` 指向 `var()` 时无法可靠计算。
|
|
62
|
+
- 禁止写 `rgba(var(--primary-color), 0.1)`;十六进制 CSS 变量不能直接作为 `rgba()` 通道参数。
|
|
63
|
+
- 固定数据可视化色板、品牌资产原色或遮罩色允许保留,但必须与换肤语义无关,并添加中文说明。
|
|
64
|
+
- 新增交互样式时必须覆盖 default、hover、active、selected、focus、disabled 中实际存在的状态。
|
|
65
|
+
|
|
66
|
+
## 标准代码骨架
|
|
67
|
+
|
|
68
|
+
```less
|
|
69
|
+
@import url('@/styles/variables.less');
|
|
70
|
+
|
|
71
|
+
.module-card {
|
|
72
|
+
color: var(--text-color, rgba(0, 0, 0, 0.88));
|
|
73
|
+
background: var(--bg-color-container, #fff);
|
|
74
|
+
border: 1px solid var(--border-color-split, #f0f0f0);
|
|
75
|
+
|
|
76
|
+
&__link {
|
|
77
|
+
color: var(--primary-color, #3371ff);
|
|
78
|
+
|
|
79
|
+
&:hover {
|
|
80
|
+
color: var(--primary-color-hover, #4096ff);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&.is-selected {
|
|
85
|
+
color: var(--primary-color, #3371ff);
|
|
86
|
+
background: color-mix(in srgb, var(--primary-color, #3371ff) 10%, transparent);
|
|
87
|
+
border-color: var(--primary-color, #3371ff);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&:focus-visible {
|
|
91
|
+
outline: none;
|
|
92
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color, #3371ff) 15%, transparent);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
仅在 JS、图表或 Canvas 必须读取计算后色值时,优先使用 Ant Design Vue `theme.useToken()`;若消费微应用 CSS 变量,则通过 `getComputedStyle(document.documentElement)` 读取,不复制默认色板到业务常量。
|
|
98
|
+
|
|
99
|
+
## 验证流程
|
|
100
|
+
|
|
101
|
+
1. 扫描本次变更中的 `#hex`、`rgb/rgba`、`hsl/hsla`、渐变和 SVG 色值,逐项说明保留理由或替换为 Token。
|
|
102
|
+
2. 至少使用默认主色和一个明显不同的主色(例如红色)验证页面。
|
|
103
|
+
3. 检查文字、链接、图标、边框、背景、阴影以及 hover/active/selected/focus 状态是否同步变化。
|
|
104
|
+
4. 项目支持暗色模式时,再验证正文、次要文字、容器背景和边框;不得只验证主色。
|
|
105
|
+
5. 有原型截图时,主题适配与视觉还原必须同时通过,不能为像素接近而写死色值。
|
|
106
|
+
|
|
107
|
+
## 交付检查清单
|
|
108
|
+
|
|
109
|
+
- [ ] 已检查项目真实主题入口、Token 声明与运行时同步链路。
|
|
110
|
+
- [ ] 业务页面未硬编码品牌色及其交互态色阶。
|
|
111
|
+
- [ ] 主色透明态来自可动态更新的 Token,不依赖未同步的 `--primary-1` fallback。
|
|
112
|
+
- [ ] 状态色、中性色、容器背景和边框使用正确语义 Token。
|
|
113
|
+
- [ ] 已检查 SFC、Less、内联样式、TS 配置和 SVG,不只检查 `style.less`。
|
|
114
|
+
- [ ] 已用至少两种差异明显的主题色验证实际效果。
|
|
115
|
+
- [ ] 项目支持暗色模式时已完成暗色验收。
|
|
116
|
+
- [ ] 保留的固定色值均有明确、合理的非换肤语义。
|
|
117
|
+
|
|
118
|
+
## 失败兜底策略
|
|
119
|
+
|
|
120
|
+
- 找不到 Token 时,先查项目 `variables.less`、主题 store/config 和 `llms-full.txt`;禁止猜测变量名。
|
|
121
|
+
- 只有颜色值但没有语义 Token 时,先在统一主题源补充语义变量和运行时同步,再在页面消费。
|
|
122
|
+
- 第三方组件不跟随主题时,优先通过 ConfigProvider/component token 或其官方 CSS 变量桥接;最后才使用受控的深度样式覆盖。
|
|
123
|
+
- 浏览器目标不支持 `color-mix()` 时,在主题层生成并同步明确的透明态变量;不要在各页面散落固定透明色。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vue3-best-practices
|
|
3
|
+
description: 在 Vue3 业务页面、组件和 composable 中规范响应式状态、组件通信、异步竞态与大数精度;实现或重构 Vue3 逻辑时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vue3 Best Practices Skill
|
|
7
|
+
|
|
8
|
+
## 触发条件
|
|
9
|
+
|
|
10
|
+
- 业务页面出现响应式、组件通信、状态管理相关问题。
|
|
11
|
+
- 需要重构复杂组件逻辑到更稳的 Composition API 模式。
|
|
12
|
+
- 需要防止 `v-model`、`watch`、`reactive/ref` 常见误用。
|
|
13
|
+
|
|
14
|
+
## 不适用场景
|
|
15
|
+
|
|
16
|
+
- 纯样式调整,无状态逻辑修改。
|
|
17
|
+
- 仅写提交信息,不涉及代码实现。
|
|
18
|
+
- 仅做接口层封装,不涉及 Vue 组件行为。
|
|
19
|
+
|
|
20
|
+
## 硬约束(禁止/必须)
|
|
21
|
+
|
|
22
|
+
- 禁止直接修改 `props`,必须使用 `emit('update:xxx')`。
|
|
23
|
+
- 禁止在模板层写复杂业务逻辑,必须下沉到 `computed` 或 hook。
|
|
24
|
+
- 必须避免深层 watch 滥用,优先明确依赖源。
|
|
25
|
+
- 必须对异步请求做取消或竞态保护,避免旧请求覆盖新状态。
|
|
26
|
+
- 必须在复杂页面中拆 composable,禁止单文件耦合所有逻辑。
|
|
27
|
+
- 导出函数、composable、接口、类型与常量必须使用中文 JSDoc。
|
|
28
|
+
- 接口默认错误由 mutator 统一提示并 reject;业务逻辑只做状态恢复或错误转换,禁止在 `catch` 重复 `message.error`,除非请求显式设置了 `skipErrorHandler`。
|
|
29
|
+
- 在 hook/computed/watch 等业务逻辑里使用接口返回的 number 字段(id、主键、金额、数量等)时,禁止用 `Number()`/`parseInt`/`parseFloat`/`+x`/`*1`/`~~` 做任何数字转换,一律按字符串透传与比较;确需高精度数值计算时用 `decimal.js`/`big.js` 以字符串入参。底层 json-bigint 已存为字符串保精度,详见 `../yss-api-integration/SKILL.md`「大数字与精度」。
|
|
30
|
+
|
|
31
|
+
## 标准代码骨架
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
const props = defineProps<{ modelValue: string }>();
|
|
35
|
+
const emit = defineEmits<{ 'update:modelValue': [value: string] }>();
|
|
36
|
+
|
|
37
|
+
const localValue = computed({
|
|
38
|
+
get: () => props.modelValue,
|
|
39
|
+
set: value => emit('update:modelValue', value),
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const loading = ref(false);
|
|
43
|
+
|
|
44
|
+
/** 请求数据并维护加载状态。 */
|
|
45
|
+
const fetchData = async () => {
|
|
46
|
+
loading.value = true;
|
|
47
|
+
try {
|
|
48
|
+
await api();
|
|
49
|
+
} finally {
|
|
50
|
+
loading.value = false;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 交付检查清单
|
|
56
|
+
|
|
57
|
+
- [ ] `props` 单向数据流未被破坏。
|
|
58
|
+
- [ ] `v-model` 实现使用标准 `update:*` 事件。
|
|
59
|
+
- [ ] 异步逻辑具备 loading 与异常处理。
|
|
60
|
+
- [ ] 复杂逻辑已拆分到 composable。
|
|
61
|
+
- [ ] 接口返回的 number 字段在逻辑中保持字符串透传,未被 `Number()`/`parseInt`/`+x` 等转换。
|
|
62
|
+
- [ ] 模板表达式简洁,便于维护和测试。
|
|
63
|
+
|
|
64
|
+
## 失败兜底策略
|
|
65
|
+
|
|
66
|
+
- 响应式异常时,先定位是 `ref`/`reactive` 选型问题还是解构丢响应。
|
|
67
|
+
- 双向绑定异常时,先检查 `emit` 事件名和参数签名。
|
|
68
|
+
- 组件过重时,先抽离状态 hook,再处理视觉拆分。
|