花了一个下午才解决,官方组件文档里面是没有处理方案说明的。
项目版本:Ant Design Vue 2.0.2
前端部分代码:
<template><a-modal:visible="visible":width="windowWidth":height="800":title="title":maskClosable="false"@ok="close"@cancel="close"cancelText="关闭"><a-col :md="6" :sm="8"><span style="color: red;width: 15px;float: left; margin-top: 5px;">★</span><a-form-item label="被查询人出生日期" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}"><a-date-picker placeholder="请选择被查询人出生日期查询(必填)" v-model="queryParam.csrq" /></a-form-item></a-col></a-modal></template>
<script>
import moment from "moment";
import 'moment/locale/zh-cn';
moment.locale('zh-cn');
export default {data () {return {moment,// 查询条件queryParam: {csrq:''},}},methods: {close () {this.cleandata();this.visible = false;}}}
}
</script>
前端点击选择日期后,点击提交按钮提交表单时,发现传给后台的日期参数格式有问题,跟前端显示的效果不一致
要么前端传之前处理,要么后端接收后处理。
我参考了https://blog.csdn.net/weixin_52691965/article/details/120769403在前端做处理。
处理后代码如下:
<a-col :md="6" :sm="8"><span style="color: red;width: 15px;float: left; margin-top: 5px;">★</span><a-form-item label="被查询人出生日期" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
<!-- <a-input placeholder="请输入被查询人出生日期yyyy-mm-dd查询(必填)" v-model="queryParam.csrq"></a-input>--><a-date-picker placeholder="请选择被查询人出生日期查询(必填)" v-model:value="birthDate" format="YYYY-MM-DD" @change="shijianobj" /></a-form-item></a-col>export default {data(){return{moment,birthDate:'',// 查询条件queryParam: {csrq:''},}},methods: {close () {this.cleandata();this.visible = false;},shijianobj(e){this.queryParam.csrq = moment(e._d).format("YYYY-MM-DD");}}
}
处理完后传到后端日期格式就是yyyy-MM-dd格式