--- name: form-component overview: 为 fms-vue 组件库新增一个精简的 Form 表单组件(Form + FormItem),支持 horizontal/vertical 两种布局、基础校验规则(required/pattern/min/max/len/type/自定义 validator)、提交与重置事件,并将校验错误态自动传递给内部 Input/Select/DatePicker 等控件。 design: architecture: framework: vue styleKeywords: - 极简 - 企业级 - 清晰层级 - token驱动 fontSystem: fontFamily: PingFang SC heading: size: 18px weight: 500 subheading: size: 12px weight: 500 body: size: 14px weight: 400 colorSystem: primary: - "#0f172b" - "#ffffff" background: - "#f5f6f8" - "#ffffff" text: - "#1f2329" - "#86909c" functional: - "#ef4444" - "#f59e0b" - "#16a34a" todos: - id: form-core content: 新增 form 目录:validate.js 校验工具、tokens.css 新增 form 专属 token status: completed - id: form-container content: 实现 form.vue 容器:provide 上下文、字段注册、submit/submitFailed/reset 事件,参考 [skill:antdv-next] Form API status: completed dependencies: - form-core - id: form-item content: 实现 form-item.vue 与 index.scss:label 布局、校验时机、错误态 provide,参考 [skill:antdv-next] FormItem 交互 status: completed dependencies: - form-container - id: control-inject content: 为 Input/Select/DatePicker/RangePicker/TimeSelect 注入错误态,Button 新增 htmlType prop status: completed dependencies: - form-item - id: demo-register content: 新增 demo/form.vue 演示页并注册到 App.vue,用 [skill:ui-ux-pro-max] 把关视觉 status: completed dependencies: - form-container - form-item - control-inject --- ## 产品概述 一个轻量的 Form 表单组件,遵循项目开发规范,参考 antdv-next 组件库的 API 与交互设计,但刻意精简功能:仅覆盖日常表单填写、校验与提交的核心场景。 ## 核心功能 - 两种布局:horizontal(label 在左)与 vertical(label 在上) - FormItem 表单项:label、必填红星标记、辅助说明(extra)、固定提示(help) - 校验规则:required、pattern、min/max/len、type(email/number/integer/url)、自定义 validator(支持同步/异步) - 提交/重置由原生 submit/reset 事件驱动,无需 ref 实例方法 - 校验失败自动给内部 Input/Select/DatePicker 等控件注入红色错误态(边框 + aria-invalid) - 支持全局 disabled、label 对齐、label 宽度、必填标记开关、label 冒号等配置 - 提交成功 / 失败事件(submit / submitFailed),供业务层回调 ## 技术栈 - Vue 3 Composition API(`