在template里面给选择日期的el-date-picker一个监听事件change,我定义的是toWeek事件,v-show根据自己项目的需求可以根据条件控制显示和隐藏,focus事件是选择日期有焦点的时候,实行一些事件操作 在template中写显示日期和对应周几的表格table,我这里用的是elementUI里面的table组件,该组件的prop属性来接收获取到的数据,下面我定义的是label和timez,如下: 还需在data里面声明一些变量,如下: 在methods里面写toWeek事件,如下: 上面的代码是我和后台交互的时候来获取的周,如果不需要请求,只做那个效果的话可以这样: table中显示周的prop:label接收到的数据是数字1-7,直接显示出来用户体验不好,所以用了table的一个属性:formatter,常常用来格式化内容: 可以在methods里面写个事件:formatter=“week”,结合switch语句,如下: 以上完成后,页面上选择日期,表格里面显示的就是包含你所选择的日期的一周7天的日期和对应的周几了,鉴于是公司项目,就不方便截图展示了。
vue+elementUI日期选择器实现选择日期,自动对应周几
之前在公司的项目里面遇到这个问题,如今想起来在这里总结一下,如果有更好的方法,请各位大神多多指教。
<div class="block riqi" v-show=see> <span class="check-add-del-span">日期</span> <el-date-picker v-model="gradeDate" @focus="riqi" type="date" placeholder="选择日期" format="yyyy年MM月dd日" value-format="yyyy-MM-dd" @change="toWeek" > </el-date-picker> </div>
<el-table :data="timeData" style="width: 100%"> <el-table-column width="80" label="周" fixed="left" prop="label" align="center" :formatter="week"> </el-table-column> <el-table-column width="150" label="日期" prop="timez" align="center"></el-table-column> </el-table>
data(){ return{ gradeDate:'',//所选择的日期 timeData:[]//存放表格数据 } }
//监听点击日期对应周几 toWeek(){ var Setime = this.gradeDate; //给所选择的日期一个变量名 var ji = new Date(Setime).getDay() //将日期转换成周 var date = new Date(Setime); //指定在对象中存储的日期 var timeList = [] // console.log(date) for(var i=1-ji;i<8-ji;i++){ //根据选定的星期进行循环一周 var q = new Date(); //获取当前日期 // console.log(i); let tt = q.setTime(date.getTime() + 3600 * 1000 * 24*i);//将当前日期设置成指定日期的前i天的毫秒日期 let td = new Date(tt); //将获取到的毫秒日期指定到对象中存储 let time = td.getFullYear() + "-" + (td.getMonth()+1) + "-" + td.getDate(); //将毫秒日期转为年月日格式 // console.log(time); timeList.push(time) //将根据选择的日期循环出来一周的日期放进数组里面 } var that = this; that.$http.post('接口地址',{ //参数,没有可以空着 }).then(res=>{ console.log(res.data.data); if(res.data.data!=undefined&&res.data.data.length>0){ this.timeData=[]; for(var i=0;i<res.data.data.length;i++){ this.timeData.push({ timez:timeList[i],//后台返回的数据是7条,下标就是0-6,刚好可以作为timelist的下标来取对应下面周几的日期 label:res.data.data[i].weekday//后台返回的1-7,即周一到周日是固定显示的 }) } }else{ this.$message.success('查询失败!'); } }).catch(err =>{ }) },
//监听点击日期对应周几 toWeek(){ var Setime = this.gradeDate; //给所选择的日期一个变量名 var ji = new Date(Setime).getDay() //将日期转换成周 var date = new Date(Setime); //指定在对象中存储的日期 var timeList = [] // console.log(date) for(var i=1-ji;i<8-ji;i++){ //根据选定的星期进行循环一周 var q = new Date(); //获取当前日期 // console.log(i); let tt = q.setTime(date.getTime() + 3600 * 1000 * 24*i);//将当前日期设置成指定日期的前i天的毫秒日期 let td = new Date(tt); //将获取到的毫秒日期指定到对象中存储 let time = td.getFullYear() + "-" + (td.getMonth()+1) + "-" + td.getDate(); //将毫秒日期转为年月日格式 // console.log(time); timeList.push(time) //将根据选择的日期循环出来一周的日期放进数组里面 } this.timeData = []; for(var i=0;i<7;i++){ this.timeData.push({ timez:timeList[i], label:i+1 }) } },
Function(row, column, cellValue, index)
//周一到周日 week(row,column){ switch(row.label){ case 1: return '周一'; break; case 2: return '周二'; break; case 3: return '周三'; break; case 4: return '周四'; break; case 5: return '周五'; break; case 6: return '周六'; break; case 7: return '周日'; break; }
完结,不足之处可以给我指点指点哟。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算