# useFormConfig Hook 使用文档 ## 概述 `useFormConfig` 是一个响应式表单配置 Hook,根据当前语言自动调整表单样式,支持自定义配置。 ## 基础用法 ### 默认配置 ```javascript import { useFormConfig } from '@/hooks/useFormConfig'; const { formLabelWidth, formLayout } = useFormConfig(); ``` **默认值:** - 中文标签宽度:`120px` - 英文标签宽度:`160px` ### 在模板中使用 ```vue ``` ## 自定义配置 ### 1. 自定义标签宽度 ```javascript // 方式1:分别设置中英文宽度 const { formLabelWidth } = useFormConfig({ zhWidth: '100px', // 中文宽度 enWidth: '140px' // 英文宽度 }); // 方式2:使用自定义宽度对象 const { formLabelWidth } = useFormConfig({ customWidths: { zh: '100px', en: '140px' } }); ``` ### 2. 自定义间距和字体 ```javascript const { formLabelWidth, formItemSpacing, inputPlaceholderStyle } = useFormConfig({ zhWidth: '100px', enWidth: '140px', spacing: { zh: '16px', en: '20px' }, fontSize: { zh: '13px', en: '12px' } }); ``` ### 3. 自定义按钮尺寸 ```javascript const { buttonSize } = useFormConfig({ defaultButtonSize: 'small' // 'large' | 'default' | 'small' }); ``` ## 完整配置选项 ```javascript const options = { // 标签宽度配置 zhWidth: '120px', // 中文标签宽度 enWidth: '160px', // 英文标签宽度 customWidths: { // 自定义宽度对象(优先级最高) zh: '100px', en: '140px' }, // 间距配置 spacing: { zh: '20px', // 中文表单项间距 en: '24px' // 英文表单项间距 }, // 按钮配置 defaultButtonSize: 'default', // 按钮尺寸 // 字体配置 fontSize: { zh: '14px', // 中文字体大小 en: '13px' // 英文字体大小 } }; const formConfig = useFormConfig(options); ``` ## 返回值 ```javascript const { // 基础配置 formLabelWidth, // 响应式标签宽度 formItemSpacing, // 响应式表单项间距 buttonSize, // 按钮尺寸 inputPlaceholderStyle, // 输入框占位符样式 validationMessageStyle, // 验证消息样式 formLayout, // 完整表单布局配置 // 响应式配置 responsiveFormConfig, // 响应式宽度配置 // 便捷方法 getCurrentLanguage, // 获取当前语言 } = useFormConfig(); ``` ## 使用场景 ### 场景1:标准表单(使用默认配置) ```vue ``` ### 场景2:紧凑表单(较小的标签宽度) ```vue ``` ### 场景3:宽松表单(较大的标签宽度) ```vue ``` ### 场景4:完整样式配置 ```vue ``` ## 注意事项 1. **优先级**:`customWidths` > `zhWidth/enWidth` > 默认值 2. **响应式**:所有配置都是响应式的,语言切换时自动更新 3. **单位**:宽度配置需要包含单位(如 `'120px'`) 4. **兼容性**:支持所有 Element Plus 表单组件