让你明明白白学知识,有代码,有讲解,抄的走,学的会!
在使用 iview 的时候, 我们做表单数据提交,发现,我们的model层,数据类型总是 Date类型, 明明我们在 DatePicker 上设置了 format= 'yyyy-MM-dd' 啊
是吧,懵逼了!
这个 format='yyyy-MM-dd' 是显示的格式,不是最终vue中data对象上的内容
直接看最终代码
<Form :model='formModel'>
<FormItem>
<DatePicker
format='yyyy-MM-dd'
v-model='formModel.startDate'
@on-change='formModel.startDate = $event'
type='date'>
</DatePicker>
</FormItem>
<FormItem>
<Button @click='handleSubmit'>提交</Button>
</FormItem>
</Form>
export default {
data () {
return {
// 快速做数据收集
formModel: {
startTime: '',
endTime: ''
// 其他字段
。。。。。
}
}
},
method: {
async handleSubmit() {
// 一次性将 someAPI 这个接口需要数据收集到
let res = await someAPI(this.formModel)
}
}
}
上面的示例,主要有2个
- 表单组件的 model 属性 一次性收集接口入参
- on-change 事件,在日期控件的值发生变化,及时复写 formModel中的字段, 且 $event 是我们设置的 format 格式化以后的数据 ,刚好就是接口所需要的
这就避免了 在 handleSubmit 提交数据的时候,再二次处理日期格式问题,代码更简洁