注意
下文中 ui-extend
不是真实包名,指代当前ui库相关的库: @wxhccc/ue-element
使用方法
Optionals主要是提供了可选的便捷函数,可以更方便得使用本组件库。
import { createOption } from 'ui-extend'
方法列表
createOption
创建标准格式的option数据对象,通常用来生成下拉选项里的“全部”选项
类型定义:
declare const createOption = (value: null | undefined | string | number, label?: string) => Option
参数:
value
返回对象的value值,默认为: 0label
返回对象的label值,默认为: '全部'
示例:
import { createOption } from 'ui-extend'
createOption('')
// log { value: '', label: '全部' }
类型定义中的相关接口/类型说明,下同
FormItemProps
: 组建库的FormItem组建的props类型CommonFieldProps
: CommonField组件的props类型NamePath(string | number)
: FormItem组件的name/prop属性,同时也是对应表单域绑定值的keyFormFieldItemProps
: FormFieldItem组件的props类型RuleObject
: FormItem组件props的rules属性的规则项StrOrProps
: 字符串或者属性对象
createFFIRulesProps
生成FormFieldItem
组件带验证规则的props属性对象
类型定义:
type RuleRequired = boolean | string | [boolean | string | undefined, RuleObject['type']]
function createFFIRulesProps(
label: string,
requiredOrMsgOrWithType: RuleRequired = true,
rules: RuleObject[] = [],
others?: Partial<FormItemProps>
): FormItemProps
参数:
label
表单项label内容。required
是否必填 / 未填时特定的提示文字 / [前两者,(数据的类型,默认string)]rules
表单项额外的rules数组others
配置对象中的其他属性,可覆盖已配置属性,当需要使用此选项时,直接写FormItemProps对象可能更直观。
示例
import { createFFIRulesProps } from 'ui-extend'
createFFIRulesProps('姓名')
/** log
{
label: '姓名',
rules: [
{ required: true, message: '请输入姓名' }
]
}
**/
createFFIRulesProps('年龄', '请选择年龄', [{ type: 'number', min: 10, message: '抱歉你的年龄小于10岁', trigger: 'change' }], { size: 'small' })
/** log
{
label: '姓名',
rules: [
{ required: true, message: '请选择年龄' },
{ type: 'number', min: 10, message: '抱歉你的年龄小于10岁', trigger: 'change' }
],
size: 'small'
}
**/
createFormFieldItem
生成FormFieldItem
使用的配置数据对象
类型定义:
function createFormFieldItem <FP, V>(
component: Component,
labelOrProps?: StrOrProps<FormItemProps>,
name?: NamePath,
fieldExtra?: Partial<CommonFieldProps<V, FP>>,
extraProps?: Partial<FormFieldItemProps>
): FormFieldItemProps
参数:
component
配置数据中field对象中的component属性,可以用组件字符串或传入组件对象。labelOrProps
表单项的label字符串,或者props参数对象name
配置对象的prop/name属性fieldExtra
配置对象的field对象中的其他属性,可覆盖已配置属性extraProps
配置对象中的其他属性,可覆盖已配置属性
示例
import { createFormFieldItem } from 'ui-extend'
import CustomField from '...'
createFormFieldItem('ElInput', '姓名', 'name', { placeholder: '请输入' })
/** log
{
props: { label: '姓名' },
name: 'name',
field: {
component: 'ElInput',
placeholder: '请输入'
}
}
**/
createFormFieldItem(CustomField, { label: '自定义组件', rules: [] }, 'foo', { props: { data: [] } })
/** log
{
props: { label: '自定义组件', rules: [] },
name: 'foo',
field: {
component: CustomField,
// 和CommonFiled组件冲突的component组件的props,可以使用props传入
props: {
data: []
}
}
}
**/
createInputFormItem
基于createFormFieldItem函数定制,用于创建输入框表单项配置数据。
类型定义:
function createInputFormItem(
labelOrProps: StrOrProps<FormItemProps>,
name?: NamePath,
phOrFieldProps?: StrOrProps<Partial<CommonFieldProps<string, InputProps>>>,
extraProps: Partial<FormFieldItemProps>
): FormFieldItemProps
参数:
labelOrProps
表单项的label字符串,或者props参数对象name
配置对象的name/prop属性phOrFieldProps
filed对象的props参数对象,或者filed.props对象placeholder参数extraProps
配置对象中的其他属性,可覆盖已配置属性
示例
import { createInputFormItem } from 'ui-extend'
const props = createFFIRulesProps('金额', true)
createInputFormItem(props, 'money', '请输入金额', { prevProp: ['people'] })
/** log
{
props: {
label: '金额',
rules: [
{ required: true, message: '请输入金额', trigger: 'blur'}
]
},
name: 'money',
field: {
component: ElInput / AInput,
props: { placeholder: '请输入金额' }
},
prevProp: ['people']
}
**/
后续函数的统一接口类型
interface CreateHasDataFormItem<FE = Partial<CommonFieldProps>> {
(
/** label 或FormItem组件props */
labelOrProps: StrOrProps<FormItemProps>,
/** 配置对象的name/prop属性 */
name?: NamePath,
/** 数据项数组 */
data?: SelectOption[] | Option[],
/** 对应表单域的CommonFieldProps */
fieldExtra?: FE,
/** FormFieldItem组件的其他props */
extraProps?: Partial<FormFieldItemProps>
): FormFieldItemProps
}
createRadioGroupFormItem
基于createFormFieldItem函数定制,用于创建RadioGroup表单项配置数据。
类型定义:
type createRadioGroupFormItem = CreateHasDataFormItem<
Partial<CommonFieldProps<any, RadioGroupProps>>
>
参数:
labelOrProps
{String/Object} 表单项的label字符串,或者props参数对象prop
{String} 配置对象的prop属性data
{Array} filed对象的data参数对象数组fieldExtra
{Object} 配置对象的field对象中的其他属性,可覆盖已配置属性extraProps
{Object} 配置对象中的其他属性,可覆盖已配置属性
createCheckboxGroupFormItem
用于创建CheckboxGroup表单项配置数据。
类型定义:
type createRadioGroupFormItem = CreateHasDataFormItem<
Partial<CommonFieldProps<any, CheckboxGroup>>
>
createSelectFormItem
用于创建Select表单项配置数据。
类型定义:
function createSelectFormItem(
labelOrProps: StrOrProps<FormItemProps>,
name?: NamePath,
data?: SelectOption[],
phOrFieldProps?: StrOrProps<Partial<CommonFieldProps<StrOrNum, SelectProps>>>,
extraProps?: Partial<FormFieldItemProps>
)
参数:
labelOrProps
表单项的label字符串,或者props参数对象name
配置对象的prop属性data
filed对象的data参数对象数组phOrFieldProps
filed对象的props参数对象,或者filed.props对象placeholder参数fieldExtra
配置对象的field对象中的其他属性,可覆盖已配置属性extraProps
配置对象中的其他属性,可覆盖已配置属性
createDateFormItem
基于createFormFieldItem函数定制,用于创建日期选择器表单项配置数据。
类型定义:
reateDateFormItem(labelOrProps, prop, [typeOrFieldProps, fieldExtra, extraProps])
参数:
labelOrProps
{String/Object} 表单项的label字符串,或者props参数对象prop
{String} 配置对象的prop属性typeOrFieldProps
{String/Object} 时间选择器的类型,可选值有'date'、'daterange',也可以传入完整对象fieldExtra
{Object} 配置对象的field对象中的其他属性,可覆盖已配置属性extraProps
{Object} 配置对象中的其他属性,可覆盖已配置属性
type值说明
date:默认时间选择组件,设定绑定值为数字时间戳 daterange:日期范围选择,设定绑定值格式为日期字符串数组
createTableColumn
用于创建简单表格列配置数据对象。
类型定义:
reateTableColumn(label, prop[, others])
参数:
label
{String} 列配置对象label属性prop
{String} 配置对象的prop属性others
{Object} 配置对象中的其他属性,可覆盖已配置属性
返回值: object