在日常的敲代码中,这时候有一个需求,需要设置默认查找截止到当前时间的前一个月的所有数据。
但是当我在网上搜了好久,发现貌似只有设置普通的默认值。。。
所以干脆在自己写完之后出一篇文章,省的大家还得在网上慢慢找
protable设置默认值:
{
{
title: '状态',
hideInTable: true,
dataIndex: 'audit_state',
//设置默认值为5
initialValue: 5,
//这里建议设置为es6 的新属性 map
valueEnum: StateEnum
},
},
export const StateEnum = new Map([
[0, '全部'],
[5, '待审核'],
[10, '审核通过'],
[20, '审核不通过']
])
protable设置时间默认值:
{
title: '洗澡时间',
dataIndex: 'lalala',
//设置为时间戳读取模式
valueType: 'dateRange',
hideInTable: true,
search: {
//查找项数据传递转换
//选择时间之后,protable会自动把用户选择的数据返回为一个数组
//【起始时间,结束时间】
//可以在里面对他们进行重命名
transform: value => ({
lalalastart:dayjs(value[0]).startOf('day').format('X'),
lalalaend: dayjs(value[1]).endOf('day').format('X')
})
},
//设置默认值
initialValue: [
//subtract(减少的数量,'时间格式,比如秒/分钟')
//add(增加的数量,'时间格式,比如秒/分钟')
//unix()转换为时间戳,但是他会自动转换为秒时间戳,这里需要*1000
//帮助他转换为毫秒时间戳
dayjs().subtract(1, 'month').unix() * 1000,
dayjs().unix() * 1000
]
},
设置多选框的默认值
{
title: '蛋糕状态',
dataIndex: 'online_states',
hideInTable: true,
align: 'center',
//默认多选0,1
initialValue: [0, 1],
//这个可以帮你的多选呈现更合理,感兴趣的可以直接放上去试一试
fieldProps: {
mode: 'multiple'
},
//这个是后端要求是以,隔开所以做了一下转换
search: {
transform: value => ({ online_states: value.join(',') })
},
valueEnum: onlineStates
},
export const onlineStates = new Map([
[0, '生的'],
[1, '熟的'],
[3, '糊了']
])