vue+elementUI 时间范围选择器

vue

1、引入组件

<div>

<el-date-picker type="date" placeholder="选择开始日期" :picker-options="pickerOptionsStart" v-model="startTime" @change="startTimeChang"></el-date-picker>

<el-date-picker type="date" placeholder="选择结束日期" :picker-options="pickerOptionsOver" v-model="endTime" @change="endTimeChang"></el-date-picker>

<el-button style="margin-left: 10px;" plain size="mini" @click="theWeek">最近一周</el-button>

<el-button style="margin-left: 10px;" type="primary" @click="searchTime" icon="el-icon-search">查询</el-button

</div>

2、js 定义

data() {

return {

startTime: ‘’,

endTime: ‘’,

pickerOptionsStart: {

disabledDate (time) {

return time.getTime() < 1488297600000 || time.getTime() >= Date.now();

}

},

pickerOptionsOver: {

disabledDate (time) {

return time.getTime() < 1488297600000 || time.getTime() >= Date.now();

}

}

};

}

初始化定义:(最近一周)

 startTime: this.dateFilter(new Date() - 3600 * 1000 * 24 * 7),

endTime: this.dateFilter(new Date()),

3、时间格式化方法,@change的方式取值

    dateFilter:function (input) {

var d = new Date(input);

var year = d.getFullYear();

var month = d.getMonth() <9 ? \'0\' + (d.getMonth() + 1) : \'\' + (d.getMonth() + 1);

var day = d.getDate() <10 ? \'0\' + d.getDate() : \'\' + d.getDate();

// var hour = d.getHours();

// var minutes = d.getMinutes();

// var seconds = d.getSeconds();

return year+ \'-\' + month + \'-\' + day;

},

startTimeChang (val) {

let startTime = this.dateFilter(val);

this.startTime = startTime;

},

endTimeChang (val) {

let endTime = this.dateFilter(val);

this.endTime = endTime;

},

4、查询

  async searchTime() {

let param = {

userId: this.$store.state.userInfo.userId,

startTime: this.startTime,

endTime: this.endTime

};

try {

const reportData = await getTeamReportList(param);

if (reportData.result) {

console.log(reportData);

this.reportList = reportData.data;

} else {

throw new Error(reportData.msg);

}

} catch (err) {

this.$message.error(err.message);

console.log(\'获取数据失败\', err);

}

}

}

5、最近一周查询

    async theWeek() {

const end = new Date();

const start = new Date();

start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);

this.startTime = this.dateFilter(start);

this.endTime = this.dateFilter(end);

this.searchTime();

},

this.dateFilter(start):时间格式化

-
-
-
-
-

附:时间段组件设置默认时间段 (最近一小时)
html:

<el-date-picker v-model="valueTime" type="datetimerange" align="right"  start-placeholder="开始日期" end-placeholder="结束日期" size="mini"> </el-date-picker>

  js:

data() {

return {

valueTime: [new Date().getTime(), new Date().getTime() + ((1 * 60 * 60 * 1000) - 1)],

}

}

 

以上是 vue+elementUI 时间范围选择器 的全部内容, 来源链接: utcz.com/z/374694.html

回到顶部