新增
javascript
<a-form-item label="年度" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-date-picker
mode="year"
placeholder="请选择任务年度"
type="year"
format="YYYY"
v-decorator="['year', validatorRules.year]"
:open="yearShowOne"
@openChange="openChangeOne"
@panelChange="panelChangeOne"
></a-date-picker>
</a-form-item>
import moment from 'moment'
data(){
return{
yearShowOne: false,
}
}
computed:{
validatorRules(){
return{
year: {
rules: [
{
required: !this.formDisabled,
message: '请选择年度!',
validator: (rule, value, callback) => {
if (!value) {
callback('请选择年度!');
} else {
callback();
}
}
}
]
},
}
}
}
methods:{
submitForm(){
let formData = Object.assign(this.model, values);
if (formData.year) {
// 如果是 moment 对象则格式化,否则保持原样(已经是字符串)
if (moment.isMoment(formData.year)) {
formData.year = formData.year.format('YYYY');
}
// 如果不是 moment 对象,则假定它已经是正确的字符串格式
}
postAction(httpurl, formData).then((res)=>{
}
// 弹出日历和关闭日历的回调
openChangeOne(status) {
this.yearShowOne = status;
},
// 得到年份选择器的值
panelChangeOne(value) {
this.yearShowOne = false;
// 直接设置moment对象到表单
this.form.setFieldsValue({
year: value ? moment(value) : null
});
},
}
列表查询框
javascript
<a-form-item label="年度">
<a-date-picker
placeholder="请选择年度"
v-model="queryParam.year"
mode="year"
format="YYYY"
:open="yearShow"
@openChange="handleYearOpenChange"
@panelChange="handleYearPanelChange"
style="width: 100%"
/>
</a-form-item>
data(){
return{
yearShow: false, // 控制年份选择器显示状态
columns:[
{
title:'年度',
align:"center",
dataIndex: 'year',
customRender:function (text) {
// 只显示年份部分
return !text ? "" : (text.length > 4 ? text.substr(0,4) : text)
}
},
]
}
}
methods:{
// 处理年份选择
handleYearPanelChange(date) {
if (date) {
this.queryParam.year = date.format('YYYY');
} else {
this.queryParam.year = undefined;
}
this.yearShow = false;
},
// 重置查询时清空年份
searchReset() {
this.queryParam.year = undefined;
this.yearShow = false;
this.loadData(1);
},
}