如何通过日期筛选数据

此片博客介绍的方法是通过请求后台数据给的状态,然后把自己选择的时间传过去实现筛选的,根据业务逻辑来参考吧!

下篇我们会说下通过vue过滤器来实现的方法!

业务逻辑:首先前端需要获取其用户选择的日期数据,然后通过接口把日期数据传给后端,后端接收数据会返回给前端新的数据,页面在进行渲染。到此功能会是实现了

html部分

<div class="ag_listmain clearfix"> 
                      <div class="ag_yearlist" v-for="(item,key) in list" :key="key" @click="agrouter(item.id)">
                        <div class="agtitle">
                            <p>余额提现-到{{item.from_to}}</p>
                            <label>{{item.created_at}}</label>
                        </div>
                        <div class="ag_money">
                              <h4>{{item.money}}</h4>
                              <label>提现成功</label>
                        </div>
                    </div>

vant日期组件

 <van-popup
          v-model="show"
          position="bottom"
        >
           <van-datetime-picker
            v-model="currentDate"
            type="year-month"
            :min-date="minDate"
            :formatter="formatter"
             @confirm="confirm()"
             @cancel='cancel()'      
          />
        </van-popup>

js部分

return{
	list:[]	,
	datesed:"",
}

 // 选择事件后确定按钮方法
 
              confirm(){
                   this.show=false;
                   this.page = 1;    //让当前的页面显示第一页。
                   this.dates = this.formatDate(this.currentDate,`yyyy${'年'}MM${'月'}`);  //将日期转化为时间值 在我的博客主页能找到这关于这个的博客
                   this.datesed = this.formatDate(this.currentDate,'yyyy-MM');  //将日期转化为时间值 在我的博客主页能找到这关于这个的博客
                   this.list = [];   // 让当前循环的数据为空,因为我做的数据分页是往里对堆数据的,
                   this.agplease(); //执行请求数据方法
                  //  console.log(this.datesed)   //获取时间值
              }, 
            //请求数据
            agplease(){
              this.axios.get('user/bill',{
                params : {
                  state : 3, //传参数
                  page:this.page,
                  page_size:8,
                  date : this.datesed,     //后台给的状态等于你提交的时间数据。这样就可以了,
                }
              }).then(res => {
              //   下面吗是我自己处理数据的方法,
                if(res.data.code === 200){
                    let aglist = res.data.data; // 总数据
                    let arr = aglist.list; // 数据·列表作为循环
                    let page_size =this.aglist.page_size; // 每页显示条数 
                    for(let i=0; i<arr.length; i++){
                      // console.log(this.list)
                      this.list.push(arr[i]); 
                    }
                    console.log(this.list);

                    this.lastpage =aglist.total_page;
                        // 加载状态结束
                        this.loading = false;
                  if(this.lastpage <= this.page){
                      this.finished = true;
                  }     
                  this.page++; 
                  //  console.log(this.list);
              
                }
                 
              })
            }   

上面的代码希望对你有帮助,当然写法有很多根据你们自己的风格去写

vue简单数据筛选

给大家分享一个简单的用vue实现数据筛选的代码,因为我下载了vue.js所以我是内联的,没有下载的同学可以去下载一下vue 官网

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="https://www.atool.online/vue.js"></script>
		<div id="app">
			<input type="text" v-model="keyword"/>
			<div class="box" v-for="item in flist" :key="item">
				{{item}}
			</div>
		</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				data:{
					keyword:"",
					list:["草莓","菠萝","杏","李子","西瓜","木瓜","哈密瓜","山竹","樱桃","香蕉","芒果"]
				},
				computed:{
					flist(){
						// 如果item(水果列表中变量的项)包含文字 this.keyword(搜索关键字)
						// a.includes(b)如果a包含b就返回true
						// 返回true当前水果·就保留
						return this.list.filter(item=>item.includes(this.keyword))
					}
				}
			})
		</script>
	</body>
</html>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部