情况一:

报错如下:

原因分析:后台返回的日期格式为数字

那为什么日期格式变成数据了呢?代码如下:

String jsonString = JSON.toJSONString(enterprise);
Map map=JSON.parseObject(jsonString,Map.class);

发现将对象enterprise转换成Map过程中,日期变成了数字。

解决办法:让后台返回日期为字符串,而不是数字。

情况二:

给el-date-picker组件绑定的值设置初始值时,值的类型必须时字符串,否则就会导致前端下拉框不见,效果如下:

 原因分析:给el-date-picker组件绑定的值设置初始值时,返回的值为number类型,导致报错:

错误代码:

复制代码
data() {
    return {
      drainageDate: getCurrentMonth()
    }
  },
  created() {
    console.log(this.drainageDate)
    console.log(typeof this.drainageDate )
  },
复制代码

getCurrentMonth方法如下:

export function getCurrentMonth() {
  let today = new Date();
  const year = today.getFullYear();
  const month = today.getMonth() + 1;
  return year +(month < 10 ? '0' + month : month)  ;
}

created中打印的结果如下:

2034number

修改后的代码如下:

export function getCurrentMonth() {
  let today = new Date();
  const year = today.getFullYear();
  const month = today.getMonth() + 1;
  return year +""+  (month < 10 ? '0' + month : month)  ;
}

或者:

复制代码
/**
 * 获取当前月份
 * @returns {string}
 */
export function getCurrentMonth() {
  const dateObj = new Date();
  const year = dateObj.getFullYear()
  const month = String(dateObj.getMonth() + 1).padStart(2, "0")
  return `${year}${month}`
}

 

posted on 2022-05-08 10:31  周文豪  阅读(4917)  评论(0编辑  收藏  举报